{
  "name": "tasklens",
  "private": true,
  "version": "0.1.0",
  "license": "Apache-2.0",
  "type": "module",
  "//": {
    "打包": "npm run package —— release 编译 + 生成安装包,等价于 `tauri build`。",
    "打包流程": [
      "① src-tauri/tauri.conf.json 的 beforeBuildCommand 依次执行 `bun run build` 与 `bun run build:sidecar`:",
      "   bun run build = bun build agent-host/index.ts --target=node --outfile=agent-host/host.mjs(内置 AI 宿主打成单文件)→ tsc -b → vite build(前端 dist/)",
      "   build:sidecar = node tools/prepare-sidecar.mjs(按 rustc -vV 的 host triple 把 tasklens-cli 拷成 src-tauri/binaries/tasklens-cli-<triple>.exe)",
      "② cargo release 编译 → target/release/tasklens.exe",
      "③ 打包:tauri.conf.json 的 bundle.resources 带上 agent-host/host.mjs,bundle.externalBin 带上 tasklens-cli.exe,都放进安装目录"
    ],
    "产物": [
      "target/release/bundle/nsis/TaskLens_<版本>_x64-setup.exe(约 7 MB,推荐分发)",
      "target/release/bundle/msi/TaskLens_<版本>_x64_en-US.msi(约 9 MB)",
      "target/release/tasklens.exe(约 14 MB,免安装运行;旁边需有 tasklens-cli.exe 与 agent-host/host.mjs,构建时已 staged)"
    ],
    "注意事项": [
      "首次打包会联网下载 NSIS 与 WiX 工具链(之后走缓存)",
      "打包前先关掉正在运行的 tasklens.exe / tasklens-cli.exe,否则 Windows 锁住 target/ 里的二进制,cargo 报「拒绝访问」",
      "目标机器需 WebView2(Win11 自带,Win10 可能需安装);AI 功能需要 bun 或 node",
      "未做代码签名,SmartScreen 会提示「未知发布者」"
    ]
  },
  "scripts": {
    "dev": "bun build agent-host/index.ts --target=node --outfile=agent-host/host.mjs && cargo build -p tasklens-core --bin tasklens-cli && vite",
    "build": "bun build agent-host/index.ts --target=node --outfile=agent-host/host.mjs && tsc -b && vite build",
    "build:host": "bun build agent-host/index.ts --target=node --outfile=agent-host/host.mjs",
    "build:cli": "cargo build -p tasklens-core --bin tasklens-cli",
    "build:sidecar": "node tools/prepare-sidecar.mjs",
    "preview": "vite preview",
    "test": "vitest run",
    "test:watch": "vitest",
    "typecheck": "tsc -b",
    "check": "cargo test -p tasklens-core && tsc -b && vitest run",
    "tauri": "tauri",
    "tauri:dev": "tauri dev",
    "package": "tauri build",
    "package:nsis": "tauri build --bundles nsis",
    "package:msi": "tauri build --bundles msi",
    "package:exe": "tauri build --no-bundle",
    "package:debug": "tauri build --no-bundle --debug",
    "core:build": "cargo build -p tasklens-core --bin tasklens-cli --bin tasklens-mcp",
    "core:test": "cargo test -p tasklens-core"
  },
  "dependencies": {
    "@codemirror/commands": "^6.10.2",
    "@codemirror/lang-markdown": "^6.5.0",
    "@codemirror/language": "^6.12.2",
    "@codemirror/state": "^6.5.4",
    "@codemirror/view": "^6.39.16",
    "@dnd-kit/core": "^6.3.1",
    "@earendil-works/pi-agent-core": "^0.85.1",
    "@earendil-works/pi-coding-agent": "^0.85.1",
    "@fontsource-variable/inter": "^5.3.0",
    "@fontsource-variable/jetbrains-mono": "^5.3.0",
    "@lezer/highlight": "^1.2.3",
    "@phosphor-icons/react": "^2.1.10",
    "@radix-ui/react-dialog": "^1.1.15",
    "@radix-ui/react-dropdown-menu": "^2.1.16",
    "@radix-ui/react-select": "^2.2.6",
    "@radix-ui/react-tooltip": "^1.2.8",
    "@tauri-apps/api": "^2.11.1",
    "@tauri-apps/plugin-dialog": "^2.7.2",
    "@tauri-apps/plugin-opener": "^2.5.3",
    "clsx": "^2.1.1",
    "date-fns": "^4.1.0",
    "react": "^19.2.0",
    "react-dom": "^19.2.0",
    "react-markdown": "^10.1.0",
    "remark-gfm": "^4.0.1",
    "tailwind-merge": "^3.4.1",
    "typebox": "^1.3.30"
  },
  "devDependencies": {
    "@tailwindcss/vite": "^4.1.18",
    "@tauri-apps/cli": "^2.11.4",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@types/node": "^24.10.1",
    "@types/react": "^19.2.7",
    "@types/react-dom": "^19.2.3",
    "@vitejs/plugin-react": "^5.1.1",
    "jsdom": "^28.0.0",
    "tailwindcss": "^4.1.18",
    "typescript": "~5.9.3",
    "vite": "^7.3.5",
    "vitest": "^4.1.10"
  }
}