{
  "name": "cli-jaw",
  "version": "2.2.18",
  "description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
  "type": "module",
  "keywords": [
    "ai-assistant",
    "cli",
    "antigravity",
    "claude",
    "codex",
    "cursor",
    "gemini",
    "grok",
    "pi",
    "copilot",
    "multi-agent",
    "orchestration",
    "telegram-bot",
    "discord-bot",
    "browser-automation",
    "mcp"
  ],
  "author": "CLI-JAW Contributors",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/lidge-jun/cli-jaw.git"
  },
  "homepage": "https://github.com/lidge-jun/cli-jaw#readme",
  "bugs": {
    "url": "https://github.com/lidge-jun/cli-jaw/issues"
  },
  "engines": {
    "node": ">=22.4.0"
  },
  "allowScripts": {
    "better-sqlite3": false
  },
  "bin": {
    "cli-jaw": "dist/bin/cli-jaw.js",
    "jaw": "dist/bin/cli-jaw.js"
  },
  "files": [
    "dist/",
    "!dist/src/lib/native/*.node",
    "public/",
    "scripts/",
    "package.json"
  ],
  "scripts": {
    "dev": "tsx --env-file=.env server.ts",
    "ensure:native": "node scripts/ensure-native-modules.cjs",
    "rebuild:native": "npm rebuild better-sqlite3",
    "postinstall": "node scripts/postinstall-guard.cjs",
    "clean:dist": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true});\"",
    "build:claude-e": "cargo build --release --manifest-path native/claude-e/Cargo.toml",
    "test:claude-e": "cargo test --manifest-path native/claude-e/Cargo.toml",
    "build:claude-exec": "npm run build:claude-e",
    "test:claude-exec": "npm run test:claude-e",
    "check:copilot-gap": "tsx scripts/check-copilot-gap.ts",
    "check:deps": "tsx scripts/check-deps-offline.ts",
    "check:strict-baseline": "node scripts/check-strict-baseline.mjs",
    "docs:check": "tsx scripts/docs/check-docs.mts",
    "check:frontend-build-output": "tsx scripts/check-web-ui-build-output.ts",
    "i18n:registry": "tsx scripts/i18n-registry.ts",
    "check:deps:online": "bash scripts/check-deps-online.sh",
    "prebuild": "npm run ensure:native",
    "pretest": "npm run ensure:native",
    "pretest:all": "npm run ensure:native",
    "pretest:integration": "npm run ensure:native",
    "pretest:smoke": "npm run ensure:native",
    "test": "tsx --experimental-test-module-mocks tests/run.mts",
    "test:all": "tsx --experimental-test-module-mocks tests/run.mts --all",
    "test:integration": "tsx --experimental-test-module-mocks --test tests/integration/*.test.ts",
    "test:coverage": "tsx --experimental-test-module-mocks --experimental-test-coverage tests/run.mts --all",
    "test:watch": "tsx --experimental-test-module-mocks tests/run.mts --watch",
    "test:web-ui-runtime": "tsx --import ./tests/setup/test-home.ts --experimental-test-module-mocks --test tests/unit/web-ui-runtime-*.test.ts tests/unit/web-ui-processblock-runtime.test.ts tests/unit/web-ui-mermaid-runtime.test.ts tests/unit/web-ui-sanitizer.test.ts tests/unit/web-ui-build-output-guard.test.ts",
    "test:events": "tsx --test tests/events.test.ts",
    "test:telegram": "tsx --test tests/telegram-forwarding.test.ts",
    "test:manager:browser": "tsx --test tests/browser/manager-layout-smoke.test.ts",
    "test:smoke": "TEST_PORT=3457 tsx --test tests/integration/api-smoke.test.ts",
    "smoke:opencode": "tsx scripts/smoke/opencode-external-dir-smoke.ts",
    "smoke:jwc:no-global": "node scripts/jwc-no-global-smoke.mjs",
    "test:install-risk": "node scripts/install-risk-gate.mjs",
    "test:waf": "WAF_TEST_ENABLED=1 npx tsx tests/waf/waf-runner.ts",
    "verify:fresh-install": "bash scripts/verify-fresh-install.sh",
    "collect:fresh-install-evidence": "bash scripts/collect-fresh-install-evidence.sh",
    "audit:fresh-install-evidence": "node scripts/audit-fresh-install-evidence.mjs",
    "verify:release-evidence": "node scripts/verify-release-evidence.mjs",
    "test:fresh-install": "tsx scripts/fresh-install-smoke.ts",
    "build": "bash scripts/atomic-build.sh",
    "postbuild": "bash scripts/verify-dist-assets.sh && node scripts/link-current-nvm-bin.cjs",
    "build:frontend": "vite build --config vite.config.ts",
    "qa:manager-frontend": "npm run build:frontend && npm run typecheck:frontend",
    "dev:frontend": "vite --config vite.config.ts",
    "preview:frontend": "vite preview --config vite.config.ts",
    "typecheck": "tsc --noEmit",
    "typecheck:frontend": "tsc --noEmit -p tsconfig.frontend.json",
    "gate:typecheck": "node scripts/release-gates.mjs typecheck",
    "gate:tests": "node scripts/release-gates.mjs tests",
    "gate:truth-table-fresh": "node scripts/release-gates.mjs truth-table-fresh",
    "gate:mcp-scope-frozen": "node scripts/release-gates.mjs mcp-scope-frozen",
    "gate:no-experimental-in-readme-ready-section": "node scripts/release-gates.mjs no-experimental-in-readme-ready-section",
    "gate:no-cloud-claims": "node scripts/release-gates.mjs no-cloud-claims",
    "gate:observe-actions-fixtures": "node scripts/release-gates.mjs observe-actions-fixtures",
    "gate:observation-bundle-fixtures": "node scripts/release-gates.mjs observation-bundle-fixtures",
    "gate:browser-primitives-catalog": "node scripts/release-gates.mjs browser-primitives-catalog",
    "gate:action-memory-safe-replay": "node scripts/release-gates.mjs action-memory-safe-replay",
    "gate:model-adapter-frozen": "node scripts/release-gates.mjs model-adapter-frozen",
    "gate:workflow-common-layer-no-sdk": "node scripts/release-gates.mjs workflow-common-layer-no-sdk",
    "gate:doc-drift": "node scripts/release-gates.mjs doc-drift",
    "gate:strict-baseline": "node scripts/release-gates.mjs strict-baseline",
    "gate:redaction-sinks": "node scripts/release-gates.mjs redaction-sinks",
    "gate:electron-version": "node scripts/release-gates.mjs electron-version",
    "gate:gate-docs": "node scripts/release-gates.mjs gate-docs",
    "gate:sidecar-prune-safety": "node scripts/release-gates.mjs sidecar-prune-safety",
    "gate:native-load": "node scripts/release-gates.mjs native-load",
    "gate:sidecar-smoke": "node scripts/release-gates.mjs sidecar-smoke",
    "gate:install-integrity": "node scripts/release-gates.mjs install-integrity",
    "check:sidecar-prune-safety": "node scripts/check-sidecar-prune-safety.mjs",
    "sync:electron-version": "node scripts/sync-electron-version.cjs",
    "gate:all": "node scripts/release-gates.mjs",
    "prepublishOnly": "npm run build && npm run build:frontend && npm run check:frontend-build-output",
    "electron:dev": "concurrently -k -n jaw,electron \"node scripts/electron-dev-manager.mjs\" \"npm --prefix electron run dev\"",
    "electron:build": "npm --prefix electron run build",
    "sidecar:bundle": "bash scripts/bundle-sidecar.sh darwin arm64",
    "electron:dist:mac": "npm run build:frontend && npm run sidecar:bundle && npm --prefix electron run build && CSC_IDENTITY_AUTO_DISCOVERY=false npm --prefix electron run dist:mac && npm run electron:resign:mac && npm run check:electron-dist-mac-no-jwc && npm run check:app-icons",
    "electron:resign:mac": "codesign --force --deep --sign - electron/dist/mac-arm64/cli-jaw.app",
    "electron:start": "npm --prefix electron run start",
    "check:cli-bin-links": "node scripts/check-cli-bin-links.cjs",
    "check:electron-sidecar-no-jwc": "node scripts/check-electron-sidecar-no-jwc.cjs",
    "check:electron-dist-mac-no-jwc": "node scripts/check-electron-sidecar-no-jwc.cjs --server-root electron/dist/mac-arm64/cli-jaw.app/Contents/Resources/server",
    "check:electron-dist-win-no-jwc": "node scripts/check-electron-sidecar-no-jwc.cjs --server-root electron/dist/win-unpacked/resources/server",
    "check:electron-dist-linux-no-jwc": "node scripts/check-electron-sidecar-no-jwc.cjs --server-root electron/dist/linux-unpacked/resources/server",
    "check:app-icons": "node scripts/check-app-icon-assets.cjs",
    "check:electron-no-native": "node scripts/check-electron-no-native.cjs",
    "smoke:tui-fullscreen": "tsx scripts/smoke/tui-fullscreen-frame-smoke.ts",
    "verify:dist-assets": "bash scripts/verify-dist-assets.sh"
  },
  "dependencies": {
    "@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",
    "@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.25.1",
    "dompurify": "^3.3.3",
    "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.14.0",
    "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",
    "remark-math": "^6.0.0",
    "remark-parse": "^11.0.0",
    "sqlite-vec": "^0.1.9",
    "trash": "^10.1.1",
    "unified": "^11.0.5",
    "unist-util-visit": "^5.1.0",
    "ws": "^8.18.0",
    "yaml": "^2.8.4"
  },
  "devDependencies": {
    "@types/better-sqlite3": "^7.6.13",
    "@types/d3": "^7.4.3",
    "@types/dompurify": "^3.0.5",
    "@types/express": "^5.0.6",
    "@types/mdast": "^4.0.4",
    "@types/node": "^25.5.2",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/unist": "^3.0.3",
    "@types/ws": "^8.5.0",
    "@vitejs/plugin-react": "^5.2.0",
    "concurrently": "^9.2.1",
    "jsdom": "^29.1.0",
    "tsx": "^4.21.0",
    "typescript": "^6.0.2",
    "vite": "^8.0.3"
  }
}
