github TypeScript analyzed 0d6364d deep scan · partial (305/3,474 files)

lidge-jun/cli-jaw

v2.17.51
github

🦈 2-line install personal AI assistant. 11 AI runtime surfaces (Claude, Codex, Cursor, Gemini, Grok, Antigravity, OpenCode, Copilot), 200+ skills, zero ban risk.

maintainer
lidge-jun
licence
MIT
first seen
2026-06-07
last seen
2026-09-17
releases · 30d
150
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 2 tools
transport stdio · http counts 2 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • claude:task:
  • claude:tool:
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 0d6364d · analyzer v33 · 18h ago

skills & prompt files 4

danger signals30

code evidence vv2.17.54-preview.20260917112220 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 3022

filesystem 400

  • fs lidge-jun-cli-jaw-0d6364d/bin/cli-jaw.ts :10 import { existsSync, readFileSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/browser.ts :6 import { rmSync, existsSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/chat.ts :6 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/clone.ts :5 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/dashboard.ts :2 import { existsSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/design.ts :9 import { readFileSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/dispatch-helpers.ts :1 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/doctor.ts :7 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/init.ts :7 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/launchd.ts :11 import { existsSync, readFileSync, writeFileSync, unlinkSync, readdirSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/map.ts :2 import { existsSync, statSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/mcp.ts :17 import { readFileSync, existsSync, unlinkSync } from 'node:fs';
show 28 more
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/project.ts :9 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/provider.ts :8 import { existsSync, mkdirSync, rmSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/serve.ts :12 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/service.ts :13 import { existsSync, writeFileSync, readFileSync, mkdirSync, rmSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/skill.ts :11 import { readFileSync, writeFileSync, existsSync, mkdirSync, rmSync, cpSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/slack.ts :1 import { readFileSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/status.ts :6 import { existsSync, readFileSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/tui/input-handler.ts :22 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/commands/tui/simple-mode.ts :5 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/postinstall.ts :25 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/bin/star-prompt.ts :2 import { existsSync } from 'node:fs';
  • fs (weak) lidge-jun-cli-jaw-0d6364d/docs/record-intro.mjs :4 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/folder/approved-roots-store.ts :2 import { mkdir, readFile, writeFile } from 'node:fs/promises';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/folder/dropped-paths.ts :1 import { lstat } from 'node:fs/promises';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/folder/ipc.ts :2 import { mkdir, readdir, rename, stat, lstat, readFile, realpath, writeFile } from 'node:fs/promises';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/folder/move-path.ts :1 import { access, lstat, rename } from 'node:fs/promises';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/install-cli.ts :1 import { existsSync, symlinkSync, unlinkSync, mkdirSync, lstatSync, realpathSync, readFileSync, writeFileSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/jaw-spawn.ts :3 import { existsSync, statSync, readdirSync, accessSync, constants, readFileSync, realpathSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/path-security.ts :1 import { realpathSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/terminal/index.ts :6 import { existsSync, statSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/terminal/shell-discovery.ts :1 import { existsSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/tray-manager.ts :3 import { readFileSync, writeFileSync, existsSync } from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/format-converters.ts :6 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/mcp-registry.ts :1 import fs from 'node:fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-distribution.ts :6 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-migration.ts :24 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-reset.ts :5 import fs from 'fs';
  • fs lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-symlinks.ts :6 import fs from 'fs';

360 more not shown — this panel samples each group; the count above is the real total.

shell / exec 283

  • shell lidge-jun-cli-jaw-0d6364d/bin/cli-jaw.ts :7 import { execFileSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/chat.ts :7 import { spawnSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/clone.ts :8 import { execSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/dashboard.ts :1 import { spawn } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/design.ts :8 import { spawn } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/doctor.ts :6 import { execFileSync, execSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/launchd.ts :10 import { execSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/mcp.ts :16 import { execSync, execFileSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/provider.ts :7 import { execFileSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/serve.ts :5 import { spawn } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/service.ts :12 import { execFileSync, spawn as nodeSpawn } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/skill.ts :14 import { execSync } from 'node:child_process';
show 28 more
  • shell lidge-jun-cli-jaw-0d6364d/bin/commands/slack.ts :18 import { execFile } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/postinstall.ts :28 import { execFileSync } from 'child_process';
  • shell lidge-jun-cli-jaw-0d6364d/bin/star-prompt.ts :1 import { spawnSync, type SpawnSyncReturns, type SpawnSyncOptionsWithStringEncoding } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/docs/record-intro.mjs :3 import { execSync } from 'child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/electron/build/after-sign.mjs :1 import { execFileSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/electron/src/main/index.ts :7 import type { ChildProcess } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/install-cli.ts :4 import { execSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/jaw-spawn.ts :1 import { spawn, type ChildProcess, execFileSync } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/mac-automation-permission.ts :1 import { spawn } from 'node:child_process';
  • shell lidge-jun-cli-jaw-0d6364d/lib/mcp/mcp-install.ts :40 const { execSync, execFileSync } = await import('child_process');
  • shell lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-distribution.ts :9 import { execSync } from 'child_process';
  • shell lidge-jun-cli-jaw-0d6364d/lib/mcp/skills-reset.ts :7 import { execSync } from 'child_process';
  • shell lidge-jun-cli-jaw-0d6364d/lib/quota-copilot.ts :10 import { execFileSync } from 'child_process';
  • shell lidge-jun-cli-jaw-0d6364d/lib/stt.ts :4 * No external npm dependencies — uses Node built-in https + child_process.
  • shell lidge-jun-cli-jaw-0d6364d/public/js/diagram/types.ts :38 // Use function replacement to avoid $& $' $` special patterns in val
  • shell lidge-jun-cli-jaw-0d6364d/public/js/render/svg-actions.ts :225 // Use function replacement to avoid $& $' $` special patterns in SVG content
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/capture-agy-quota-fixture.mjs :2 import { execFileSync } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-cli-bin-links.cjs :4 const { spawnSync } = require('node:child_process');
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-deps-audit.ts :18 import { execFileSync } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-electron-no-native.cjs :2 const { execSync } = require('node:child_process');
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-native-load.cjs :22 const { execFileSync } = require('node:child_process');
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-path-length.mjs :18 import { spawnSync } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-private-boundary.mjs :4 import { execFileSync } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-sidecar-smoke.mjs :7 import { spawn } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/check-strict-baseline.mjs :17 import { spawnSync } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/electron-dev-manager.mjs :2 import { spawn } from 'node:child_process';
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/ensure-native-modules.cjs :9 const { execFileSync } = require('child_process');
  • shell (weak) lidge-jun-cli-jaw-0d6364d/scripts/fresh-install-smoke.ts :5 import { execFileSync, spawn, type ChildProcess, type ExecFileSyncOptions } from 'node:child_process';

243 more not shown — this panel samples each group; the count above is the real total.

network 192

  • net lidge-jun-cli-jaw-0d6364d/bin/commands/ask.ts :93 const res = await fetch(`${apiUrl}/api/events`, {
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/browser.ts :64 const resp = await fetch(`${SERVER}/api/browser${path}`, opts);
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/chat-search.ts :47 const resp = await fetch(`${SERVER}/api/messages/search?${params}`, {
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/chat.ts :132 const r = await fetch(`${apiUrl}/api/settings`, { signal: AbortSignal.timeout(2000) });
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/dashboard.ts :184 const res = await fetch(url, { signal: AbortSignal.timeout(3000) });
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/doctor.ts :880 const res = await fetch(`http://127.0.0.1:${port}/api/health`, {
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/employee.ts :66 const res = await fetch(baseUrl + path, stripUndefined({ ...rest, headers: mergedHeaders, body, signal: AbortSignal.timeout(10000) }));
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/lock.ts :53 const res = await fetch(baseUrl + path, init);
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/memory.ts :24 const resp = await fetch(`${SERVER}/api/jaw-memory${path}`, opts);
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/reset.ts :63 await fetch(`${baseUrl}/api/session`, { signal: AbortSignal.timeout(2000) });
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/status.ts :68 const res = await fetch(url, { signal: AbortSignal.timeout(3000) });
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/tui/activity-http.ts :37 const response = await fetch(`${ctx.apiUrl.replace(/\/$/, '')}${path}`, {
show 28 more
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/tui/api.ts :28 const resp = await fetch(`${ctx.apiUrl}${path}`, req);
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/tui/channel.ts :38 fetch: (input, init) => fetch(input, {
  • net lidge-jun-cli-jaw-0d6364d/bin/commands/tui/overlays.ts :208 const res = await fetch(`${ctx.apiUrl}/api/bgtask?limit=10`);
  • net lidge-jun-cli-jaw-0d6364d/electron/src/main/index.ts :5 import { createServer } from 'node:net';
  • net lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/health-check.ts :22 const res = await fetch(url, { signal: ctl.signal, method: 'GET' });
  • net lidge-jun-cli-jaw-0d6364d/electron/src/main/lib/reminder-badge.ts :45 const res = await fetch(url, { cache: 'no-store' });
  • net lidge-jun-cli-jaw-0d6364d/electron/src/preload/metrics.ts :38 await fetch(POST_PATH, {
  • net lidge-jun-cli-jaw-0d6364d/lib/mcp/mcp-registry.ts :56 const res = await fetch(registryUrl);
  • net lidge-jun-cli-jaw-0d6364d/lib/quota-copilot.ts :175 const res = await fetch('https://api.github.com/copilot_internal/user', {
  • net lidge-jun-cli-jaw-0d6364d/lib/stt.ts :8 import https from 'node:https';
  • net lidge-jun-cli-jaw-0d6364d/lib/upload.ts :8 import https from 'node:https';
  • net lidge-jun-cli-jaw-0d6364d/public/js/api.ts :23 const res = await fetch(`${API_BASE}/api/auth/token`, signal ? { signal } : undefined);
  • net lidge-jun-cli-jaw-0d6364d/public/js/bounded-api.ts :20 const response=await Promise.race([fetch(API_BASE+path,{
  • net lidge-jun-cli-jaw-0d6364d/public/js/diagram/iframe-renderer.ts :82 return fetch(`${API_BASE}${path}`, { ...opts, headers });
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/avatar.ts :96 return fetch(path, { ...init, headers });
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/chat.ts :125 const res = await fetch(`${API_BASE}/api/message`, {
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/i18n.ts :129 return fetch(u.toString(), init);
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/session-hub.ts :263 const response = await fetch(`${API_BASE}/api/chat-sessions/${encodeURIComponent(sessionId)}`, {
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/settings-core.ts :39 const response = await fetch(`${API_BASE}/api/settings/runtime-default-migration`, {
  • net lidge-jun-cli-jaw-0d6364d/public/js/features/settings-slack.ts :24 const response = await fetch(`${API_BASE}/api/settings/slack/reset`, {
  • net lidge-jun-cli-jaw-0d6364d/public/js/render/link-preview.ts :84 const response = await fetch(`${API_BASE}/api/link-preview?url=${encodeURIComponent(url)}`);
  • net lidge-jun-cli-jaw-0d6364d/public/js/ws.ts :878 const res = await fetch(`${API_BASE}/api/goal`);
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/api.ts :42 const response = await fetch(path);
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/browser-panel/use-embedded-target-sync.ts :59 await fetch(`/api/dashboard/instances/${port}/embedded-browser/targets`, {
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/code/code-session-client.ts :83 const response = await fetch(`${base}/api/code${path}`, {
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/code/use-dictation.ts :67 const response = await fetch('/api/voice', {
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/components/InstanceLogsPanel.tsx :50 const res = await fetch(`/api/manager/instance-logs/${port}`);
  • net lidge-jun-cli-jaw-0d6364d/public/manager/src/dashboard-board/board-api.ts :49 const res = await fetch(`${BASE}/tasks`, { credentials: 'same-origin', cache: 'no-store' });

152 more not shown — this panel samples each group; the count above is the real total.

secrets 38

  • secrets lidge-jun-cli-jaw-0d6364d/bin/commands/dispatch.ts :68 const bossToken = process.env["JAW_BOSS_TOKEN"] || '';
  • secrets lidge-jun-cli-jaw-0d6364d/bin/commands/doctor.ts :390 if (process.env['CLI_JAW_SLACK_ALLOW_SHARED_TOKEN'] !== '1') {
  • secrets lidge-jun-cli-jaw-0d6364d/bin/commands/init.ts :277 if (requestedChannels.has('slack') && !slEnabled && !process.env['SLACK_BOT_TOKEN']) {
  • secrets lidge-jun-cli-jaw-0d6364d/bin/commands/orchestrate.ts :139 const bossToken = process.env['JAW_BOSS_TOKEN'] || '';
  • secrets lidge-jun-cli-jaw-0d6364d/electron/src/main/index.ts :172 process.env.CLI_JAW_ELECTRON_RENDERER_TOKEN = ELECTRON_RENDERER_TOKEN;
  • secrets lidge-jun-cli-jaw-0d6364d/electron/src/preload/index.ts :8 token: process.env.CLI_JAW_ELECTRON_RENDERER_TOKEN ?? '',
  • secrets lidge-jun-cli-jaw-0d6364d/lib/quota-copilot.ts :88 process.env["COPILOT_GITHUB_TOKEN"] ||
  • secrets lidge-jun-cli-jaw-0d6364d/lib/stt.ts :23 geminiApiKey: stt.geminiApiKey || process.env["GEMINI_API_KEY"] || '',
  • secrets lidge-jun-cli-jaw-0d6364d/server.ts :311 const JAW_AUTH_TOKEN = process.env["JAW_AUTH_TOKEN"] || crypto.randomBytes(32).toString('hex');
  • secrets lidge-jun-cli-jaw-0d6364d/src/agent/kiro-auth.ts :86 const selected = process.env['KIROCLI_TOKEN_KEY']?.trim();
  • secrets lidge-jun-cli-jaw-0d6364d/src/browser/web-ai/tab-lease-store.ts :129 const parsed = Number(process.env["JAW_BROWSER_PROVIDER_POOL_MAX_PER_KEY"] || process.env["AGBROWSE_PROVIDER_POOL_MAX_PER_KEY"] || DEFAULT_POOL_MAX_PER_KEY);
  • secrets lidge-jun-cli-jaw-0d6364d/src/cli/cli-status-worker.ts :266 if (process.env['CURSOR_API_KEY']) return { authenticated: true, source: 'CURSOR_API_KEY' };
show 26 more
  • secrets lidge-jun-cli-jaw-0d6364d/src/cli/readiness.ts :78 if (process.env["CURSOR_API_KEY"]) {
  • secrets lidge-jun-cli-jaw-0d6364d/src/core/config.ts :938 if (process.env["TELEGRAM_TOKEN"]) {
  • secrets lidge-jun-cli-jaw-0d6364d/src/jaw-ceo/store.ts :48 status: process.env["OPENAI_API_KEY"] ? 'idle' : 'disabled',
  • secrets lidge-jun-cli-jaw-0d6364d/src/manager/routes/embedded-browser.ts :396 return process.env['CLI_JAW_ELECTRON_RENDERER_TOKEN'] ?? '';
  • secrets lidge-jun-cli-jaw-0d6364d/src/messaging/channel-health.ts :165 && process.env['CLI_JAW_SLACK_ALLOW_SHARED_TOKEN'] !== '1'
  • secrets lidge-jun-cli-jaw-0d6364d/src/routes/jaw-ceo.ts :62 env: process.env["OPENAI_API_KEY"],
  • secrets lidge-jun-cli-jaw-0d6364d/src/routes/quota-cursor-dashboard.ts :101 if (process.env["CURSOR_API_KEY"]?.trim()) {
  • secrets lidge-jun-cli-jaw-0d6364d/src/routes/quota.ts :111 if (process.env["ANTHROPIC_AUTH_TOKEN"]) {
  • secrets lidge-jun-cli-jaw-0d6364d/src/routes/settings.ts :72 const gKey = String(input["geminiApiKey"] || process.env["GEMINI_API_KEY"] || '');
  • secrets lidge-jun-cli-jaw-0d6364d/src/slack/bot.ts :1691 const sharingAllowed = process.env['CLI_JAW_SLACK_ALLOW_SHARED_TOKEN'] === '1';
  • secrets lidge-jun-cli-jaw-0d6364d/src/telegram/bot.ts :665 const envToken = process.env["TELEGRAM_TOKEN"];
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/manager/embedding-provider.test.ts :77 process.env['TEST_EMBED_KEY'] = 'sk-from-env';
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/employee-isolation-guards.test.ts :74 process.env.JAW_BOSS_TOKEN = 'boss-test-token';
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/jaw-ceo-routes.test.ts :122 const prev = process.env.OPENAI_API_KEY;
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/manager-embedded-browser-registry.test.ts :72 process.env['CLI_JAW_ELECTRON_RENDERER_TOKEN'] = RENDERER_TOKEN;
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/messaging-gateway-legacy.test.ts :49 const previous = process.env['DISCORD_TOKEN'];
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/orchestrate-cli-contract.test.ts :35 assert.ok(cliSrc.includes("process.env['JAW_BOSS_TOKEN']"), 'CLI should read the boss token from env');
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/quota-cursor-parity.test.ts :11 const oldSession = process.env['CURSOR_SESSION_TOKEN'];
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/quota-kiro-parity.test.ts :86 const oldKey = process.env.KIROCLI_TOKEN_KEY;
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/quota-opencode-parity.test.ts :60 const old = process.env.OPENCODE_GO_API_KEY;
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/quota-reverse-cursor.test.ts :32 const prevSession = process.env["CURSOR_SESSION_TOKEN"];
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/quota-status.test.ts :94 ANTHROPIC_AUTH_TOKEN: process.env.ANTHROPIC_AUTH_TOKEN,
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/runtime-transport-settings.test.ts :228 const previous = process.env['SLACK_BOT_TOKEN'];
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/settings-watch.test.ts :203 process.env['SLACK_BOT_TOKEN'] = 'xoxb-e…(22 chars, redacted)';
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/slack-connection-reset-route.test.ts :114 process.env['SLACK_BOT_TOKEN'] = 'xoxb-s…(17 chars, redacted)';
  • secrets (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/slack-lifecycle.test.ts :141 delete process.env['CLI_JAW_SLACK_ALLOW_SHARED_TOKEN'];

database 77

  • db lidge-jun-cli-jaw-0d6364d/bin/commands/db.ts :1 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/scripts/ensure-native-modules.cjs :91 const Database = require('better-sqlite3');
  • db lidge-jun-cli-jaw-0d6364d/src/agent/kiro-auth.ts :4 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/code-mode/host.ts :1 import Database, { type Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/code-mode/store.ts :3 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/core/db-maintenance.ts :1 import type Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/core/db.ts :3 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/core/session-generation.ts :10 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/board/store.ts :3 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/connector/audit-log.ts :1 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/memory/chat-federation.ts :1 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/memory/embedding/sync.ts :3 import Database from 'better-sqlite3';
show 28 more
  • db lidge-jun-cli-jaw-0d6364d/src/manager/memory/embedding/vec-store.ts :1 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/reminders/store.ts :3 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/routes/dashboard-memory.ts :14 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/manager/schedule/store.ts :3 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/memory/indexing.ts :2 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/memory/synonyms.ts :1 import type Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/messaging/durable-ingress.ts :11 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/messaging/effect-once.ts :13 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/messaging/outbound-outbox.ts :10 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/messaging/queue-notice-store.ts :22 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/security/security-audit-log.ts :1 import Database from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/slack/action-store.ts :1 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/slack/interaction-store.ts :1 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/slack/rts-output-store.ts :3 import type { Database as SqliteDatabase } from 'better-sqlite3';
  • db lidge-jun-cli-jaw-0d6364d/src/telegram/update-offset.ts :1 import type Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/integration/compact-api-managed.test.ts :7 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/integration/messaging-ingress-restart.test.ts :12 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/manager/dashboard-memory-routes.test.ts :6 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/manager/memory-federation.test.ts :6 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/smoke/tui-activity-pty.mts :366 const Database = require('better-sqlite3'); const db = new Database(':memory:'); db.close();
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/activity-journal.test.ts :8 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/chat-search-fts.test.ts :7 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/code-native-host.test.ts :3 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/code-native-routes.test.ts :7 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/code-native-session.test.ts :4 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/code-native-store.test.ts :3 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/db-retention-maintenance.test.ts :7 import Database from 'better-sqlite3';
  • db (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/db-schema-migration.test.ts :16 import Database from 'better-sqlite3';

37 more not shown — this panel samples each group; the count above is the real total.

tool registrations 3

  • claude:task: lidge-jun-cli-jaw-0d6364d/src/agent/runtime/claude-sdk-children.ts :275
  • claude:task: lidge-jun-cli-jaw-0d6364d/src/agent/runtime/claude-sdk-children.ts :300
  • claude:tool: lidge-jun-cli-jaw-0d6364d/src/agent/runtime/claude-sdk-events.ts :76

install hooks 2

  • postinstall lidge-jun-cli-jaw-0d6364d/package.json :70 node scripts/postinstall-guard.cjs
  • prepublishOnly lidge-jun-cli-jaw-0d6364d/package.json :144 npm run check:private-boundary && npm run build && npm run build:frontend && npm run check:frontend-build-output

declared dependencies 66

  • @codemirror/autocomplete@^6.20.1
  • @codemirror/lang-markdown@^6.5.0
  • @codemirror/language@^6.12.3
  • @codemirror/language-data@^6.5.2
  • @codemirror/state@^6.6.0
  • @codemirror/view@^6.43.0
  • @grammyjs/runner@^2.0.3
  • @grammyjs/transformer-throttler@^1.2.1
  • @lezer/highlight@^1.2.3
  • @lucide/icons@^1.8.0
  • @milkdown/kit@^7.20.0
  • @replit/codemirror-vim@^6.3.0
show 28 more
  • @tanstack/virtual-core@^3.13.23
  • @uiw/react-codemirror@^4.25.9
  • @xterm/addon-fit@^0.11.0
  • @xterm/xterm@^6.0.0
  • better-sqlite3@^13.0.2
  • d3@^7.9.0
  • discord.js@^14.27.0
  • dompurify@^3.4.14
  • eventsource@^3.0.7
  • express@^5.2.1
  • fast-glob@^3.3.3
  • grammy@^1.44.0
  • helmet@^8.1.0
  • highlight.js@^11.11.1
  • katex@^0.16.44
  • marked@^18.0.0
  • marked-highlight@^2.2.3
  • mermaid@^11.17.1
  • node-fetch@^3.3.2
  • playwright-core@^1.58.2
  • react@^19.2.5
  • react-dom@^19.2.5
  • react-markdown@^10.1.0
  • rehype-katex@^7.0.1
  • rehype-sanitize@^6.0.0
  • remark-breaks@^4.0.0
  • remark-frontmatter@^5.0.0
  • remark-gfm@^4.0.1

26 more not shown — this panel samples each group; the count above is the real total.

clipboard 3

  • clipboard shell call lidge-jun-cli-jaw-0d6364d/bin/commands/slack.ts :55 Pipe it: jaw slack manifest | pbcopy
  • navigator.clipboard lidge-jun-cli-jaw-0d6364d/src/browser/web-ai/copy-markdown.ts :111 const clipboard = navigator.clipboard;
  • clipboard shell call lidge-jun-cli-jaw-0d6364d/tests/unit/slack-setup.test.ts :70 for (const name of ['open', 'pbcopy']) {

obfuscation 7

  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/scripts/check-native-load.cjs :145 const pty = require(${JSON.stringify(ptyRoot)});
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/goal-store-isolation.test.ts :61 await import(${JSON.stringify(join(unitDir, file))});
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/notifications-permission.test.ts :23 return await import(`../../public/js/features/notifications.ts?case=${Math.random()}`);
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/runtime-transport-boot-init.test.ts :137 const registry = await import(${JSON.stringify(registrySource)});
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/settings-boot-merge-parity.test.ts :44 const mod = await import('../../src/core/config.ts?home=' + encodeURIComponent(home));
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/settings-messaging-gateway-load.test.ts :45 const mod = await import('../../src/core/config.ts?home=' + encodeURIComponent(home));
  • dynamic require()/import() lidge-jun-cli-jaw-0d6364d/tests/unit/tui-local-render.test.ts :49 const presentation = await import(${JSON.stringify(new URL('../../src/cli/tui/presentation.ts', import.meta.url).href)});

perm:untrusted 8

  • untrusted lidge-jun-cli-jaw-0d6364d/public/js/diagram/iframe-renderer.ts :820 fetch(dataUrl).then(r => r.blob()).then(blob => {
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/chat-session-routes.test.ts :83 const before = await (await fetch(`${baseUrl}/api/chat-sessions`)).json();
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/code-routes.test.ts :67 const data = await (await fetch(`${url}/api/code/git-info?cwd=${encodeURIComponent(linked)}`)).json();
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/native-acp-callbacks.test.ts :165 assert.deepEqual(await (await fetch(base + '/api/runtime/requests?sessionId=other', { headers: auth })).json(), { ok: true, data: { requests: [] } });
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/prompt-slack-runtime.test.ts :74 const original = (await (await fetch(url)).json()).content as string;
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/session-hub-routing.test.ts :71 const scoped = await (await fetch(`${baseUrl}/api/messages?session=hub-b`)).json() as { data: Array<{ content: string }> };
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/slack-history-full-access.test.ts :117 const first = await (await fetch(baseUrl + '/api/slack/history?channel=' + CHANNEL)).json() as { hasMore?: boolean; nextCursor?: string };
  • untrusted (weak) lidge-jun-cli-jaw-0d6364d/tests/unit/wiki-routes.test.ts :211 const body = await (await fetch(`${baseUrl}/api/wiki/status`)).json();