{"_id":"tower-studio","_rev":"79-4ef1937943cf09c78f27549631b56e08","name":"tower-studio","dist-tags":{"latest":"0.2.60"},"versions":{"0.1.0":{"name":"tower-studio","version":"0.1.0","_id":"tower-studio@0.1.0","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"2830aa3962c2442b91f6019cd8b6fb4d11ec3139","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.0.tgz","fileCount":771,"integrity":"sha512-Ty9+xvdGkibh00gUnUWxhRoUgFq4dKBSzhjfp1a0pHc1vLxnBANeso26OHi5XBs08a5mwqyCxaa6VTa3t0oyCA==","signatures":[{"sig":"MEYCIQCle67bOBckJk8KkN9eU1MkO/om4qG/m9CPxm9yMeE9AwIhAP93zhdVr2wLO7C3sbUazIPWRBFtx59b630AJsJQkqhw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37916530},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"e1554004c4f2a91133058073a94385ca4f59339a","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"prisma generate && node scripts/copy-monaco.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.0_1777294851675_0.699727060291244","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.1":{"name":"tower-studio","version":"0.1.1","_id":"tower-studio@0.1.1","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"3b74e70d860f98f92302c6febc1252dd3d262140","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.1.tgz","fileCount":771,"integrity":"sha512-amWfEewyGtJ4CMv5zpyFOMXyKfeorlWhlQjusxIabSh1pNhGB/xjOcdbaWespOhbHdNsfGbJIxFOY95qR4C6ug==","signatures":[{"sig":"MEUCIQCJGur1Q6wyq7lUAbjO5VQ/GwB71bhqDJKE3c/3W/qHgQIgQbVM5S6jF7Ix4modqULCpW593a+AqmFENRdRjjsKn70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37907712},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"0af5056000f0de2137f25e6461d160fc1521723f","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"prisma generate && node scripts/copy-monaco.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.1_1777296446402_0.468693335197218","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.2":{"name":"tower-studio","version":"0.1.2","_id":"tower-studio@0.1.2","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"2edb2ac0a1c3b80dd686efe87e57a46ae42a2e84","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.2.tgz","fileCount":508,"integrity":"sha512-MY78NBEJNoWmfULJCocZ2LhMTq+ML0VpncrPIcX2LOtl6jTxGs/cNRuYmtl1iYv9bqglUEAlxUM5x7HLONEY0Q==","signatures":[{"sig":"MEYCIQDpthLKpCKt33Jv+XT1zd2G8DG+xeK4ZZPsEUyVuIxoQwIhAIhN54bMc/Ep8iKVToadSknTvGqcOsQhgXt4mx3UW416","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32326287},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"112e0570d3cc62802342d405d5b0ce5cbe801de5","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete && cp -r .next/static .next/standalone/tower/.next/static","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"prisma generate && node scripts/copy-monaco.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.2_1777297823492_0.1651025595179707","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.3":{"name":"tower-studio","version":"0.1.3","_id":"tower-studio@0.1.3","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"86c643aa4cb8ca07d9acc41d6e54e2bc8886ab9e","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.3.tgz","fileCount":415,"integrity":"sha512-w1Kj2KhVLvylHbqJMnNghncA0jh5vgkvsxzRyZxzYhbBwZGgpqAJnogmCE8LmIwpkQcFNx7FtLMP+bgpqP+yBA==","signatures":[{"sig":"MEUCIQD8peETv0cL+GRZlSl2/jjmDFn9RhZTCw59ob1o9LrTJwIgFjoiumlNnM7vDZqqrGILYj3sK65BxTYo2upvS1m7ZHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22978477},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"c65e9d118cc1a793bc87fc31535e4c7955878c52","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete && cp -r .next/static .next/standalone/tower/.next/static","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"prisma generate && node scripts/copy-monaco.js && next build","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.3_1777339212250_0.5980269703393037","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.5":{"name":"tower-studio","version":"0.1.5","_id":"tower-studio@0.1.5","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"4e86aa5950961fb9105386bc115cfbac7eca01d9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.5.tgz","fileCount":771,"integrity":"sha512-vmNLNBw8wBYkmJph/YhDExlQ1bqqIVmZp4NQ+QeydYQlKgyNlJgF12JWXBBtNjeib+6XTQipRPDsMPrNsPWS5g==","signatures":[{"sig":"MEUCIQCx9f4f30370o5CRj7SAXEOQGE6jRFPvf3JBZhijwnhmAIgJlGYt9MNznyCWSHtOUQPr+3HV1MBtuo3XPvX9rq5JAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37910568},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"73c3bf5039f86d6d67515b3d6dfdfa4d0c4dc8ed","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"prisma generate && node scripts/copy-monaco.js && node scripts/link-prisma.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.5_1777340977338_0.07902070748963785","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.6":{"name":"tower-studio","version":"0.1.6","_id":"tower-studio@0.1.6","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"1a40451cfae361b531bdb287498d5dbc9c08560c","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.6.tgz","fileCount":771,"integrity":"sha512-vNTXl0chATb0ye8V+M4t9qRg7NtI1T1+jjilRtIEmAqDcXQWt2skkkTByFzIG3zd2jFavdib3Jn+86Ks64lgoA==","signatures":[{"sig":"MEYCIQC+jBEHdUYTTDVW0N/xZBt7g+RmKyL8xKGKvOSmrHRjTwIhAORlYRlO3j6ItnJ5DYz2W/G9yRHP5/cbQDzuXUTzMarp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37910572},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"ab2529ebfce6be3fd3273bdd5004cf60034876b7","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"npx prisma generate && node scripts/copy-monaco.js && node scripts/link-prisma.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.6_1777341424853_0.06459421382918684","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.8":{"name":"tower-studio","version":"0.1.8","_id":"tower-studio@0.1.8","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"5cf9b9587120f0a58ca88370dd57482fbaa69037","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.8.tgz","fileCount":771,"integrity":"sha512-dKVNQ3PbmDMndHfN83s4C+SJbTO/zpwWms1KFhdlmYncAGyo6k6L3UxDU/3RmnOsCelwZOJHpPB0wOZMHYJhXg==","signatures":[{"sig":"MEUCIGSTtyItsjmA2gMSMhEX8rOuQql2zoSs6LkcuimqlVKeAiEAvDfCbI0kWyhghjK8FFdHMxCTTGN3hiAWlHOttJ4Daxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37910567},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"3d9888b5ba9f198c3fc116ca45430977daf42a41","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/link-prisma.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.8_1777344693289_0.7116967447051494","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.9":{"name":"tower-studio","version":"0.1.9","_id":"tower-studio@0.1.9","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"414e51bbaaaa2fb614c75ba0cd4c51ea8c1267a8","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.9.tgz","fileCount":771,"integrity":"sha512-dVSXErqT3wWN9l8ufez8XPkmcrrg3Yuqms/db5vJ4KsnRPBBkqwkK3iZkKfcFH4PJQzYAupf4PFsZYgzmBzywQ==","signatures":[{"sig":"MEUCIE6zNJDQscWSeXFHMOIduQjxNfsBJJNmuxUZYn6uZOhIAiEAl/t/tKpgMN0JGO7DdSs+atXFSYw6JS3yll9Vi9cJIkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37914127},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"5011458e997bc971de9482099304b86076ec952f","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/link-prisma.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^29.0.1","eslint":"^9","prisma":"^6.19.2","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.9_1777347933754_0.1342448982908313","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.10":{"name":"tower-studio","version":"0.1.10","_id":"tower-studio@0.1.10","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"e40fd90822ae67f880c9ab27e1cffa5c17b841dd","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.10.tgz","fileCount":776,"integrity":"sha512-O/a1WU8CsnD4LFdWpr6YfrmGnzsHSwOl+An+8vl31d2SuSE37CkvwP9xZTV7A40ixl8DIn1X3s26fWHckMEbPg==","signatures":[{"sig":"MEYCIQCDcjEYN3IFLoFFt80LlEji4VKXvmcBOGFjIIv9ZPMTcQIhAIOXkyq6aabEA+nNJBefQKTeqXBTyAtMe029hjKg9ots","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37933694},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"8c5a3417a9cf9fa23ae2418e6bffb207952c3b86","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.10_1777355639727_0.8793776470803174","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.11":{"name":"tower-studio","version":"0.1.11","_id":"tower-studio@0.1.11","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"778322f64f88bbeb6128450bc9de785489f6a36e","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.11.tgz","fileCount":776,"integrity":"sha512-hp1zAsBiM0qvmbGorArq7OTqzNPtA/gTdTS/wPb4NpZdzrrLosDsD/Yz7v1WAWzxudLh/p3RFTQ6ABrFbvXRkQ==","signatures":[{"sig":"MEUCIB5t5z9Ncp/VVB5LzZud2OYkibHjIJQuPacgz2VOeDYNAiEArweIS4sad5BHYyc45F+5SGKMqeeCNq6IAta0TLOvSKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37975531},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.11_1777359664333_0.8191168073632598","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.12":{"name":"tower-studio","version":"0.1.12","_id":"tower-studio@0.1.12","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"185985d799b87c3b455ce9bc68b087d8e4f8dca7","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.12.tgz","fileCount":776,"integrity":"sha512-+TsX3GW8q74OPmRnuOd9iD9yXOoi/5n/f4DmxbIq1ZFECP1t/3sndZMAK7B5wtLj1gBo0AeB2bjenuvwhZ31/g==","signatures":[{"sig":"MEYCIQDl5rp0BZywSedB0I0M/qOODUvRZcjpur3HWwidEWMVeAIhALUyWuzRLd7qGMsXTTyXASzgfpykW4AAGdHAdZQHR4Ff","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37976464},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.12_1777362714213_0.6440617626784468","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.13":{"name":"tower-studio","version":"0.1.13","_id":"tower-studio@0.1.13","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"36484476e9d9b92bb2155a7358da8a6efd73932f","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.13.tgz","fileCount":776,"integrity":"sha512-2jbpNa6AYndRHKOzde+tcN054q8V/4G2b8TweY4svip117buFN8Wq/Dwrc/VY4FagqMGMTE4mfeGQxVz45tTQQ==","signatures":[{"sig":"MEYCIQDeI9pfsmU+59bZea7OOOvASkEePWM3HRUC/tizMAIxaAIhAOGCppyaZjH00HbabITdsoHd/OfHlDLDn5pmFaqrDsWT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37977181},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.13_1777363795196_0.9298648241126832","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.14":{"name":"tower-studio","version":"0.1.14","_id":"tower-studio@0.1.14","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"58e4a6c6362af5888f2e775f88bea82e4964f308","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.14.tgz","fileCount":776,"integrity":"sha512-J3tUbd8N0IQND6a5TEh0czpLReSH6y3RkmeRAeu/ni6vfnRaUwD1ycodqJtvsIrsmPCM0ST00IhsEindTcFtAA==","signatures":[{"sig":"MEUCIEjPLlPmOdZj48Xqyk233400m6zyqlSeyandJdC7rjihAiEAuOYE0EOUSpcsA4LGOujaJwmKHvCDGVChMwc57EhW68I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37977768},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.14_1777366068745_0.08559113044021127","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.15":{"name":"tower-studio","version":"0.1.15","_id":"tower-studio@0.1.15","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"d889d3667fd7dc6f688ba14d310c5eed9155a19c","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.15.tgz","fileCount":776,"integrity":"sha512-co4PTYbCdLLYPSCYezFUSKDYopBvXFdWHOislf865+6dsvIuE4FkXXWitH149nF9e28UnJeDiufPKmHKsmMYiQ==","signatures":[{"sig":"MEYCIQCeVNeSuyjf2fKlOc6TOvCVwQ4tXhLUg/Ezsoh4XCZrLwIhAIL2TR0TPp31yCuflI5uTLqQg181wIA9oZOQGQaR87x1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37977738},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.15_1777366892062_0.30000751050460783","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.16":{"name":"tower-studio","version":"0.1.16","_id":"tower-studio@0.1.16","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"b5363823718e1b1f06d6cdd078ea880f1792dba8","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.16.tgz","fileCount":776,"integrity":"sha512-LkpmFhVxinS54/HFAYMEYu+lQcjZfFWFpM8MwChC8kl6uibaUtoa9my7r1rvpCP4lK1RJFNifnPcx6cXRmD7gw==","signatures":[{"sig":"MEYCIQDc+gn2WXLmao0/3Pal+iWKueAehL7ZheG2S/ua2GGN6QIhAPxBz2sQ/Zs4mxEzpFNGP9w2G+s+poS7iL1F9BssTSkm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37968626},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.16_1777370751466_0.9983115368469921","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.17":{"name":"tower-studio","version":"0.1.17","_id":"tower-studio@0.1.17","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"c6a109357a76aea348ec324df8fdbec40ad79b8e","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.17.tgz","fileCount":776,"integrity":"sha512-qrr6C5j5Hk79ko6NLYOUA1AloLfbN3UIfoAZHtTc/wCeEgTM4l4EYdqV6X6YFHFLaSv6ZIAVK1bZQQ1mIymnzw==","signatures":[{"sig":"MEUCIQCEzUFP6HxA3B67ht1eGXpq9Hl9n/vjeCk/cdWjdlLeRgIgb9i9Gj78X7+q6yBveQmE0BmtMiLPjR6ns2VWnd1id+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37968609},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.17_1777374183520_0.1434139674128856","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.18":{"name":"tower-studio","version":"0.1.18","_id":"tower-studio@0.1.18","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"e6eb014d1c6d08fe9151bb225f614f3f9a470662","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.18.tgz","fileCount":776,"integrity":"sha512-lSAhtKoydK1N6jD1kciwUbbu4oiwLM2xOGSSgB1MPuYwyTDIPcQH1HOk9vkVEdjEpUF2AfL3xxPkXWNwLGjfLA==","signatures":[{"sig":"MEUCIQCLP5lDTm6M/e25qWfoltpmAViyYbyFgV2y6CQ5zg4b5gIgTifxuUw8JLOXShmHhUVnBdEitU/D7i0qlex5jj8fJhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37969316},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.18_1777374862636_0.09741699071643595","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.19":{"name":"tower-studio","version":"0.1.19","_id":"tower-studio@0.1.19","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"5b1e59d061b82f36b00a5e678c6dc47994c5664c","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.19.tgz","fileCount":776,"integrity":"sha512-xq4aOXIRyvGjd/fAeD992Hk2XCY1n3yYVkTGqCn8Qx3Pq2YvTa+YjCSAku/PDJ7kt7Dmvcxr8LW1CRUjboGJcQ==","signatures":[{"sig":"MEUCIAgP6rJ1AV1V7ov/aMi5UJfTYMNE2nGEvMzciNrD6wpHAiEAl7cN4CgdrrfzeFJZrGJi3AbNPlu7iqQiISlnFDI9J3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37969912},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.19_1777375338711_0.36806699121702025","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.20":{"name":"tower-studio","version":"0.1.20","_id":"tower-studio@0.1.20","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"306fc3de01fc5026c95fd6ccb8753102c824fa3f","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.20.tgz","fileCount":777,"integrity":"sha512-gdIhfZvU7s9Z0kylj/ncLZBHE9ulhgSHoI07KPgcXJsnLz0zHcmwLsfYHt0AySn36WrJtIu2KJUH3XknMIRPCA==","signatures":[{"sig":"MEUCIBcfg7etPxBySoqp5NpI3N+4fGtbuGBfL35UGfT8hhUBAiEAp8XiE6zOr8qkk5hNh71LD0D3LiFGzcl9Br9SppGOGhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37972389},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.20_1777375861073_0.11812939901860542","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.1.21":{"name":"tower-studio","version":"0.1.21","_id":"tower-studio@0.1.21","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"e7d5691d20ab0b6bcbe895cab0098928a3355fcb","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.1.21.tgz","fileCount":777,"integrity":"sha512-8kloPx2kEp8sGoaXZ1yfVO/GPpjFUnlYA2Nj7I6+RfVDmLMKEXUE0oNlVow7c9LaLj9X6NBHwY2oEAtFuZPlxw==","signatures":[{"sig":"MEQCH2Kcik9NwqmN6EWMXcy3KDvkH/Laaydwlrh2kxxCZw0CIQCWRFAjB3CfaLwgxhyV3pwiHK1eonjVJIbHSbPy0HZmBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37971815},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"af840087bab300fde13acfac072ef7e71466c9a0","scripts":{"dev":"next dev --webpack","mcp":"tsx src/mcp/index.ts","lint":"eslint","test":"vitest","build":"next build","start":"next start","predev":"node scripts/copy-monaco.js","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","release":"pnpm build:clean && npm pack","prebuild":"node scripts/copy-monaco.js","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","tower:init":"tsx scripts/init-tower.ts","build:clean":"rm -rf .next && next build && find .next -name '*.map' -delete","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/copy-monaco.js && node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build:clean && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","remark-gfm":"^4.0.1","simple-git":"^3.36.0","next-themes":"^0.4.6","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@prisma/client":"^6.19.2","react-markdown":"^10.1.0","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.1.21_1777434413091_0.6094643312672474","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.0":{"name":"tower-studio","version":"0.2.0","_id":"tower-studio@0.2.0","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"682816cd06bc83613566e4647e1220eb52a0e165","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.0.tgz","fileCount":710,"integrity":"sha512-ZAorQg7TpcTCasJyYC+/l5qpR/Qr0pUS+mbzekVEtGVyljHn4XKFH/PMQ7N5HMRho1LIC+j/uMv+hCU1IYeELg==","signatures":[{"sig":"MEQCIHjjss/27mPkn/l9c5EgNCWgkzT2MBeBUfkReoveTsayAiA3XEKRzbZkYkUSXBChI+13Qet9XP2jI0jr+d1pszd/rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24203899},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"b61c5bbf9edcc45eb7398da3fc9f63ba860a91f5","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tar":"^7.5.13","tsx":"^4.21.0","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","react":"19.2.4","ignore":"^7.0.5","prisma":"^6.19.2","shadcn":"^4.1.0","sonner":"^2.0.7","fuse.js":"^7.3.0","zustand":"^5.0.12","node-pty":"^1.1.0","react-dom":"19.2.4","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","next-themes":"^0.4.6","shell-quote":"^1.8.3","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","@prisma/client":"^6.19.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@xterm/addon-webgl":"^0.19.0","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@uiw/react-md-editor":"^4.0.11","react-reverse-portal":"^2.3.0","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.28.0","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","eslint":"^9","vitest":"^4.1.1","@types/ws":"^8.18.1","@types/tar":"^7.0.87","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@playwright/test":"^1.58.2","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","eslint-config-next":"16.2.1","@tailwindcss/postcss":"^4","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.0_1779941156896_0.38737292050518746","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.1":{"name":"tower-studio","version":"0.2.1","_id":"tower-studio@0.2.1","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"3e6193779e7f22640b0a134f48f81296bf46dfac","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.1.tgz","fileCount":1826,"integrity":"sha512-etuJvvZTj4ZSUrJgHZXg9mlMqYb3pwm1TKmWqsxXL0mAGmzf+Wxp/SElFxCEhnxPbG4dibnGYOKn4RCNSIUIww==","signatures":[{"sig":"MEUCIQCWzwmnO63RNGDF/asq5plzbo8jEzB6HHc9zjrzkHb5cQIgIt1fiSf5OxzyFRL6mALTVd08y2pt9ndBWgbvA5nhUMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51570043},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"b61c5bbf9edcc45eb7398da3fc9f63ba860a91f5","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"optionalDependencies":{"@vscode/ripgrep":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.1_1779951027440_0.1996063072953953","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.2":{"name":"tower-studio","version":"0.2.2","_id":"tower-studio@0.2.2","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"f2d50f87cec64a680ef894204f41f5fb1f211b92","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.2.tgz","fileCount":1705,"integrity":"sha512-bcRkPRkq3Ezd91z77DJ/ETfWD7wEkgHm/X+GVavMEnxWhwurqXAkmr2cDkq/o0LbY7g24zWai783R2+6yN8XLA==","signatures":[{"sig":"MEUCIDyrRS92Y6ix+n37KoI3zr15LGkrdBg2HJbVEF/f8XQ4AiEAvsxbYYIwGLDKQ1hvvVoc9P/HekGKdJaK8IpkaYrg2R8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35869469},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"b61c5bbf9edcc45eb7398da3fc9f63ba860a91f5","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.2_1779951588614_0.6948127968061912","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.3":{"name":"tower-studio","version":"0.2.3","_id":"tower-studio@0.2.3","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"bcb3840a0173b42c51d3e6c13731c0a336918225","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.3.tgz","fileCount":1705,"integrity":"sha512-xCoVQxdEHYwA6M4/njKxNhqqYW+ExiXEGdddY0v3QgmlW/GSuIHB8ZYWGWl7TovWgByNj5kvQnwQKB/+D54qMw==","signatures":[{"sig":"MEYCIQDCagBpAsrPWMo1INgtpvrCykmyz60J+G1/T2a7JrZtjAIhANGbB9LwxZknSAfGdToyAyytOz+fs5cbR9k6eLiRzhVi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35871892},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"b61c5bbf9edcc45eb7398da3fc9f63ba860a91f5","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.3_1779954572659_0.5820421844853376","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.4":{"name":"tower-studio","version":"0.2.4","_id":"tower-studio@0.2.4","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"3e190d76c4d2ab511fd18c083fe18661aec8088f","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.4.tgz","fileCount":1705,"integrity":"sha512-hXirjrmroVwg1SmJdXgf44OhybSftm2yIGExK8fNgGXj8QAg1Y9iQY9gYKQvniY+PU/7CkSrmTiv85gNPC+CAQ==","signatures":[{"sig":"MEQCIAqkqTgTkxMFHlqafhvXd+buqyx8S6Eu3HGRgG3b6JpkAiA4hD8cMYUoCXYTxwPc7PpwrRCdes36WuMi6lqgqilNGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35876625},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"dcf8e7d61c51ceaac47d6c5c62454451ffe6054c","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.4_1779959974657_0.07714201533866172","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.5":{"name":"tower-studio","version":"0.2.5","_id":"tower-studio@0.2.5","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"65851465e73d12f47017e3c4418b8c4e47859971","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.5.tgz","fileCount":1706,"integrity":"sha512-iPWuESCwgPICqxFoTkImBBOrl7eh9q/NX24A/oxpw02+1joV1JfoBy5VHwxeWWtGPGtkU+Akk8V/gkMXK6PjAw==","signatures":[{"sig":"MEUCIF8pOI1I6gkb1CA4BZ+As3Iq2Z3QPMNFSMC9rFk+aZAyAiEAkmtb7eJPV3ldgRNg7rBmRR0r3/w00lLxlErjdq3Feak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35880636},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"c4c19dd99a242e1734b88b574f4a2dfc462814b0","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.5_1779960892239_0.5061749467482255","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.6":{"name":"tower-studio","version":"0.2.6","_id":"tower-studio@0.2.6","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"df1d5631d9949d02cdd36fd78b5b34873cfb63f5","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.6.tgz","fileCount":1707,"integrity":"sha512-xbXJbag7j7c0Ga/fuye2FXdyxWip6i52BGUcMKzq+Q14RKb+HMJmLI+C17cO/hEw9xrV+4EuHOWiiVbBOfUb+Q==","signatures":[{"sig":"MEQCIH9jyubq74bMPNgr+sVvcXJynfI76dqDS5MT6ud1LuOpAiBz7G840JnerlfXJ+3XDtW/3LPh+rp84d4pL9zPZzs7rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35899779},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"e1fc8a52c37fec725e5f289be3ee85d7bffbe43d","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.6_1779962747676_0.23209941955746838","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.7":{"name":"tower-studio","version":"0.2.7","_id":"tower-studio@0.2.7","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"17a21ec5d4d49682b195ffc33ba2cea341d48135","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.7.tgz","fileCount":1706,"integrity":"sha512-1U8r3M+Y34gezyo3RRD81FcV1J90I8dWFNbhBnNF9lUbakxnLW89y8rqzkYnSXsJMiDTAqdbj9MyJtENJv9U1A==","signatures":[{"sig":"MEUCIQD64OtZwP+Dsa4SYgfW6HDze4eyhGASGLWN7sW8e7FPAgIgMHg91+KesHjbfLDOttXXoBWfhYJ2tZjdcXgCxpCovOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35934125},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"a3610e6df5043b0be288ae6c2e14716ee49efe76","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.7_1779964930260_0.8116319012834778","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.8":{"name":"tower-studio","version":"0.2.8","_id":"tower-studio@0.2.8","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"19f8c60b6d418404a1c096f0a265773c75263de9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.8.tgz","fileCount":1689,"integrity":"sha512-O7DRz/q+i8kkR6/UNcPrjnxi3mY4Dp1qAQDwbItQjdDJxJCjISaK2A4MeeeqyddyDKNvp+wn6Gz8ThIeq2IEjw==","signatures":[{"sig":"MEQCIEWjDICWBlV8BnZiUmBDgC2Pv4vEIQe2shH7DFhB+ywlAiAQPp/2dG3c9XuVrRR8m7RYwzyj4G/MXHv8QfAKipa3ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35860355},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"bab8954a840f6e37e34bbb679268e9cc31fc3cfb","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.8_1779965788946_0.6681377658497687","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.9":{"name":"tower-studio","version":"0.2.9","_id":"tower-studio@0.2.9","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"614723162515b51e50c7b504a22069ceebeadbb9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.9.tgz","fileCount":1689,"integrity":"sha512-jEnJdaxNqqdCjted2gUHkCZT9yhkGhz8/3xo4W0X0ol12THOGzYDQDZvdbUqNyIt8xPTP5VbR4Sc3Fe52Dwa9A==","signatures":[{"sig":"MEUCIHANnKudehS0yWo127TInD3zwvCR7+0CLu9MiyolAUctAiEAtCh8OmyhUAHK1nagnYEUK1xCdYdLVelfIMlC5UMzq64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35863287},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"3483f472ccab46b3bafaea1d3fe1e7198e5a2a95","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.9_1779966785610_0.8459828244259462","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.10":{"name":"tower-studio","version":"0.2.10","_id":"tower-studio@0.2.10","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"5cc79e134242fc19fe9c885b1842c17f495b7070","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.10.tgz","fileCount":1689,"integrity":"sha512-MhAu7hp6SRtgBzv0WWUgFo3sO3WmRl+ONHFHbycL2e2MsnZzPJy/6nZKhk1gBONaJRM9oUamLNYsiE908HPGJA==","signatures":[{"sig":"MEYCIQCCc02S0K2L+/lciK2um0nKJgwPFxHqUd9dJ6KJ8T/VAgIhAJMibum8CGatd4w5WgelwXjcoPNq6RH3Nzcd+WRZQ5tY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35879697},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"1ba3b880503b1327cad4a58138acdcac66601724","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.10_1779967342520_0.21757033649612567","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.12":{"name":"tower-studio","version":"0.2.12","_id":"tower-studio@0.2.12","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"3cbb0fd31919daadb51bd6a4967bf770895eb910","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.12.tgz","fileCount":1690,"integrity":"sha512-dPbbYZG/uUN5BBoghFFJpF1N1daIc7W6GlmWMoUT7qxmDhFTHc+c/4s9IBLe+bWCPGag0w10+vF174PtJv0j7Q==","signatures":[{"sig":"MEQCIDP/wmNvOtKFH6u1u04bPqcUvieLzC98tcZsFabZOVnQAiBlytOa7ool6OpftjUNEsrRT4M+n6JeNWkh5Kg2KdUBGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35711319},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"8e81f1c1009efcad02004c8445c22600a58e834c","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.12_1779972060665_0.3240131909000368","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.14":{"name":"tower-studio","version":"0.2.14","_id":"tower-studio@0.2.14","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"23ae587edc64f5a1c9001abe7280d822a0bbdd4a","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.14.tgz","fileCount":1688,"integrity":"sha512-TVft/2QqtOC2EQOTQICV8PE0NJs2dBVit/QG5bdLgAAIrqnWVyPPLcXKuUpkbrdjidgwE5rmQyJabWQKQik4fw==","signatures":[{"sig":"MEQCIB9HTlZWbz/TaV+x+uNiRToKBuVJypeleNt3N+QNnEa1AiAq3f43KtJMOBS801cB2Cz6btcG+xTXSz4N7aq0cV4tog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35697644},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"15f5f635c95bd244cdba63196b4b219ba63f0a60","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.14_1779974094099_0.11794881648229416","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.15":{"name":"tower-studio","version":"0.2.15","_id":"tower-studio@0.2.15","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"c59be918cc4e02e3a56c8c10c37c049e5fcdf811","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.15.tgz","fileCount":1696,"integrity":"sha512-GtEgc4nW9s7KOVY881z81UrTYfFVv/RqWSRRV0sYOzQPLQ/hdmz+/9ynhtHPmAh3QCcbTsKEs9I3Oc9p7exrug==","signatures":[{"sig":"MEQCIGgfNd/mOHQbNSISZcvllDk1eDSD2aYrk3OuGmSEqUSMAiBSV3GkIkhGN46FCR7cJH46i6MzbbWprtgEsBEuEy4zyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35772416},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","@vscode/ripgrep","esbuild","node-pty","prisma"]},"gitHead":"159834a78e29cbdb11ce47489332f38c725bbd1d","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@vscode/ripgrep":"^1.17.1","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.15_1780017947239_0.4312316825440641","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.16":{"name":"tower-studio","version":"0.2.16","_id":"tower-studio@0.2.16","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"79655d1f7cf7fa945536d120eb7beb73ebb5cb65","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.16.tgz","fileCount":1694,"integrity":"sha512-/7cYP1AUeCm8WUNJiEDseA9Qwk8VWByD/PwfQVS7xfkX6oI8v6dOKtH9q6omp5vTQ27KN/6etvyrOUo4KYmwvA==","signatures":[{"sig":"MEUCIAXJE978YRAqyGMCnGV+4qxb0ZUrE1rtpmJ4N79klqdUAiEA+b0DuBkStnGcHdVzNX/HYDsvD8xBII2epfxS9rZKm/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35760125},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"4b81e6e313fc16804ca2ed087cfaa2572e09ad02","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.16_1780022633602_0.5240844849215098","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.18":{"name":"tower-studio","version":"0.2.18","_id":"tower-studio@0.2.18","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"911a3d88eff3fe715240b3169e2016f552040fc3","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.18.tgz","fileCount":1694,"integrity":"sha512-ZdJh5byiOsujtzJCu+F+tIfIFWeYYAj5JRQ8mi0rA4lwIyh8Xm63O3DJhHrlbnEWuDvEAYyDZykDoeU1WjqbcQ==","signatures":[{"sig":"MEUCIQCIlEdioUL3IyJ/T2wAjdKbS/07lQFWTfykI7Pz0gvGqQIgAJ9dzuAqSYFHgX6mI0oGqEZrwAhnmyd+lqHmhJ5NUss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35838351},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"39cc5d748776915b39b7a67edf6c9c16eb346c44","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.18_1780044218027_0.9198775267644883","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.19":{"name":"tower-studio","version":"0.2.19","_id":"tower-studio@0.2.19","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"8fa701f84ea60b4e47f9ec938390d196cfc1bae1","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.19.tgz","fileCount":1669,"integrity":"sha512-79GqmqrNuneB0tvoJcbxJnR7fakvZoktaP5TsHdReP/FSLWZCBLOZPC+1urazxHxlOxBk/B95QBgBzrclm1AQg==","signatures":[{"sig":"MEMCIEBj8cks7p7KpPxIPesBWyoiEzXj9CJgcVf2qnWXnglXAh8qLJF91bQKpBYhKoFq8FxQQwoCF1YnJJsQUllP0+MD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35651770},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"_from":"file:tower-studio-0.2.19.tgz","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_resolved":"/Users/liujunping/project/f/tower/tower-studio-0.2.19.tgz","_integrity":"sha512-79GqmqrNuneB0tvoJcbxJnR7fakvZoktaP5TsHdReP/FSLWZCBLOZPC+1urazxHxlOxBk/B95QBgBzrclm1AQg==","_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.19_1781054074237_0.11359480936733402","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.20":{"name":"tower-studio","version":"0.2.20","_id":"tower-studio@0.2.20","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"4f1b40f587fac218dc063902c052cffff646edcf","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.20.tgz","fileCount":1669,"integrity":"sha512-ii6VbQyTM3KiMm4iz3FjF+E900wufqraWMis4i9wQBz3Qzr4XZCvlmrsUAY/mwdHR6xKiv4cyRl/4rNMuU37Mw==","signatures":[{"sig":"MEUCIEo6sp0/3xzwuBFI293BDPSLb1wHREEMzjV+OCtv1nc4AiEA2TMWEyuDnVGN+2cqVunpLd8Et0gSaCXppCZk0juhzAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35719107},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"f7bc178be7cf6d0ba51715ae3edd213aedd25110","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.20_1781087926621_0.0188097175550741","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.21":{"name":"tower-studio","version":"0.2.21","_id":"tower-studio@0.2.21","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"08f719bb8f732e28d1ab5fd1dda4c9340c83c3d8","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.21.tgz","fileCount":1670,"integrity":"sha512-cUh2uS0a4Jl9GCWMGwcNbMO0vxKkOpq0skw2CyI1LZJ//QYd49T+rzn3ioDyvUJFPc+9kCaWNcsPSZkTm5Figg==","signatures":[{"sig":"MEUCIQDBCnyFErEoZ1jQjCy192LAWOoW/cQVMYJcIOOrkPNsJAIgc0EmWfvR9A1XADqdZeFSv7LhuhkQtkYvpc0Qpl4yc0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35727715},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"85b7c415ce18ae5dca3d085a6509f7d39f6fd43b","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.21_1781141732313_0.49648685647586754","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.22":{"name":"tower-studio","version":"0.2.22","_id":"tower-studio@0.2.22","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"5aafe49184485dc86ed98227070297438a46e8c9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.22.tgz","fileCount":1670,"integrity":"sha512-DRPKRLw8VN8+tDz6r70gVxy9AyLHiwS5iV+yJK43oMmgX7/AfBGUn9EzXkMv2b1wTpWHfRcXyYmbLbMLWkacxA==","signatures":[{"sig":"MEUCIFUOERN+2Jzs5/E5tVdKxzcfV6W8CuvZRWCfU/x1nFzOAiEAv/D/V6JueIIYpCpCzcGREeHU8+HmB0P336NJ7eWA8r4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35751892},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"56a7c31e82aa324c18c78a59d02354bc72ea8124","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.22_1781159856502_0.6813820836913171","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.23":{"name":"tower-studio","version":"0.2.23","_id":"tower-studio@0.2.23","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"db2766d187e971fe78e54e40e95d13286a5c87a8","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.23.tgz","fileCount":1670,"integrity":"sha512-EfyM98e3/aWobEm4LajTaStsXwp8lfjuy3nrQT8LKOtlldwMbdmmu16zAkV5XcUXw0JvV0/QY84qJc2qpYxrOQ==","signatures":[{"sig":"MEYCIQCZuPizVWQeTa0JwHrxJHlUVQ0ncZRNmkxZZrUZGIj8zgIhAOvxsmCnMqR56ozjIVVCLzxdCvqh6kFdOThLCJ+Z4MJw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35754886},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"af324be7816f0b734cec066349ad3d7dbc219d5e","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.23_1781164712336_0.47772379340652504","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.24":{"name":"tower-studio","version":"0.2.24","_id":"tower-studio@0.2.24","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"97dc1116c9cde9d8952c415e5c563103d140fada","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.24.tgz","fileCount":1670,"integrity":"sha512-gc2RMjdMwTpBbjLq3c0+Ht723f9DDHkhjwf7vpNmQODSctnH8hmbAt8nqfyxtyK5muw/tvlzVLD3NFrvDx/a8w==","signatures":[{"sig":"MEUCIQD2mAcvrLHMNJqbNj7+B1H8VUXEk7P6HBh9Uq1IZEd0dQIgLTnpkkrduqhJ8OEBd7uZFy9bC5d1KMSZOl1MIeyi9WU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35757918},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"48037e72c3fe737d5e40e26b2e3ad03c713b993a","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.24_1781167973678_0.9446904839767196","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.25":{"name":"tower-studio","version":"0.2.25","_id":"tower-studio@0.2.25","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"404d974cbe2eab1e9b8d00ee353904d9953a6e65","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.25.tgz","fileCount":1670,"integrity":"sha512-0I9zOtUTaKXlQQb8gaubQkgqT2oTSWzjDzhgm/lv7HVXs2RBS23a4JKSMZ3uvs4jf4EOcZ5VzeTeiJ2QjuzPCg==","signatures":[{"sig":"MEUCIGV5cx/87kulXrRco4bXdTCkDp3/oZaVgqHi6Rr33D74AiEAjY2lGD36I+RgQ/PKqhxTFH/DjEaGApGctPeYluyPcw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35765495},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"cd6a335f12a0ba23a070de9e2c18d3f47a24c6f9","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.25_1781170233097_0.12421298124239755","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.26":{"name":"tower-studio","version":"0.2.26","_id":"tower-studio@0.2.26","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"89cf8c5bf7b84de5cde02cc5c03d7e160b201fb9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.26.tgz","fileCount":1671,"integrity":"sha512-q0nAayWLgjSravrlD43NETICJaBY05J5xPdn3ehs0ROfsooOJGphxKQffRkBfzfDJBAkm0ldieXs0wJsW8AapA==","signatures":[{"sig":"MEQCIEBtxFG4sf3lEMlxIgJ9NF0ndQCuZBccrHzGBnpfW8IvAiBUfSVuhu0LqS8gHvKT5u3KujcWN3ovqMZrEjjBPnmKMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35826230},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"36099f681bd5b4d273c36ff33677bd617058764c","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.26_1781171348545_0.026972156228108668","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.27":{"name":"tower-studio","version":"0.2.27","_id":"tower-studio@0.2.27","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"d669de3d0b2877afa27b9b214e14ffd85c5b490d","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.27.tgz","fileCount":1673,"integrity":"sha512-ZrY/b8Td0li7Gqwc78Jg6OtkvzTCciAXK2bIlsoK3aH9XAdHBfZ1sh0sSjXabyTbXfm9N9ozrZpz5n1ng9ujqg==","signatures":[{"sig":"MEUCIQC5+//eheRfHSypkmTGC+HTlQykiC3iVwLrV0SXfXmv9QIgaMxvqG7uQ12/jNL7TNKLnm9O8L5w2Fd8PakGeL16XrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35876382},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"2d4fe32103fac063a28b957b5dc6392634687a70","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.27_1781182901388_0.06717887799479283","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.28":{"name":"tower-studio","version":"0.2.28","_id":"tower-studio@0.2.28","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"84f82ccd790c1741a6a2760d7b174a0cdcb072f9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.28.tgz","fileCount":1673,"integrity":"sha512-d7n8KIH5XhBUnd7u/1R0JWmC5vSF+d7OizcFG/73NtVZcJrqyxF4XD2SPiqf1T7LKLmwyTCZ4QZZKZIEuvY7gQ==","signatures":[{"sig":"MEYCIQDi4Xd4LlRFxifI+5awnVtbx4mWmnpGYU1B01LJC03bGQIhAJngTGqwcPzCHLXqnerNCp8J+fq75A4JfgNxR9uOekyq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35878847},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"3fac80444784603bf354e147392d5efc41ee305b","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.28_1781184083361_0.2399962248473082","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.29":{"name":"tower-studio","version":"0.2.29","_id":"tower-studio@0.2.29","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"4e5bc84ba53c25141ad3f6721f69acf517f26f74","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.29.tgz","fileCount":1675,"integrity":"sha512-X/cB1U0HAfs4LrqqB4Z7nZVWrTBTPkni42BwIZ494hos9t5Gs3746ROxvdlAy58vZeEv+5JdmJkbVi5YKuz6WA==","signatures":[{"sig":"MEUCIA47CH++Y/6JlmA1uTMWiArrKa0ZXnc6EQhkphWganXeAiEA6+YxVZZDvk/QMHU23UWh56LdbuUL57t2fJeooNKyJHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35705440},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"1c26ba6d6dbf27a6293ecb59df84ff0dbc5e59f0","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.29_1781185934483_0.19486628899358527","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.30":{"name":"tower-studio","version":"0.2.30","_id":"tower-studio@0.2.30","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"de94d7f24bfc042980e5100011642ce7c29071e3","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.30.tgz","fileCount":1675,"integrity":"sha512-Sc7lB3NBbeNntMTFgOzPaMVz2bM416/JrftCL8nm3l2hMJaGMSoNpHmUnO8/gA6MifHZ1fL73Ga1ETOMEd/fIw==","signatures":[{"sig":"MEQCIAKzNd0HBapx+nJTv2qd+5tffsfL4/kX7hkwzwZHH8ofAiAyr6wTZkruFXDt74lBT5jxGn51wAL5hh9yUqGCpEvEuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35715826},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"4ebf59e136ef0fb3c34b9ec140b517157493f555","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.30_1781226873051_0.41662816101494626","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.31":{"name":"tower-studio","version":"0.2.31","_id":"tower-studio@0.2.31","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"1a64425e97d8f2ca7004c63bae36d0615f36ac2d","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.31.tgz","fileCount":1684,"integrity":"sha512-pp3w9GqBp/HwQTdqd+w7sQdBLtBsgsk0p4MbfHyV61EB10pUd4zxlv8ypL8lmnddN1g4iER3YtqyMRbASYnYXw==","signatures":[{"sig":"MEUCIEPjhQ++Vn6Xh3Okm/Z808yp9qz3OWu0omCUCSM6W6J8AiEAiX4xxDjLJIjenNgumnswStaLTirC2+hb95CgyDLuo9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35887686},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"999b187ff15b92715ab187dde5375a323abe0307","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.31_1781237739995_0.3395012756614355","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.32":{"name":"tower-studio","version":"0.2.32","_id":"tower-studio@0.2.32","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"d173ea8f001a9a5c7fd0306ca735735775ec6a5c","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.32.tgz","fileCount":1684,"integrity":"sha512-z/PiKmz37MttsEbU+gOWl+5gbRNVwYcgwTsblkC25B3gL39FqpWPlL15tgaedN+eRlD1TnoDArZLni2telLMgw==","signatures":[{"sig":"MEUCIHGzEedaZZLoC5SxHJkUH0QWf464W2cWVAYybP2kPkfBAiEAoIMAZR3chZyEKOWNH/w2TbkHywmZ4SAyKjA3c736jV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35894760},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"a89f8e0b70d67ee00b37a3648579ba6b4a4b0204","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.32_1781244701175_0.6222431327365665","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.33":{"name":"tower-studio","version":"0.2.33","_id":"tower-studio@0.2.33","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"abe5385272aa5b81d76462b6301dfd344aa5f45e","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.33.tgz","fileCount":1684,"integrity":"sha512-4xEa7RDiI10MWjLcSFrRYkjxTt8cneDmC37ooW9IaKI7jGdCTAGkIcNQ/NTpVz5Dfaa7V3tWjgPygjWC14Whlg==","signatures":[{"sig":"MEUCIQCjiajyi5i+TLcaEDGma6H7jZeDwoVaqJGVzjn2KO7x6QIgE1F0TpICilU+2nXJoeWVn9wlGAZRtEYspzgdez+v9sk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35899744},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"1982cc8a0e1787bea9b66eac9e3d9dc70c40b88a","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.33_1781248805787_0.09285314049349935","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.34":{"name":"tower-studio","version":"0.2.34","_id":"tower-studio@0.2.34","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"d174973ec88224ae292108c1c41c3a2f059c7552","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.34.tgz","fileCount":1692,"integrity":"sha512-CdgxSf44OaKvOGYvsUfeeTUJ+RKor3BQeJTAZselrxHN3EwwlXDEnIn1LCHSYFOS8k2bQbDe/IojjqF/osCkZg==","signatures":[{"sig":"MEYCIQDsMtn/2EXMwXjiEEhlrW80eAXQK+H7BHj7LHUxYsAUlAIhAJ0ykURHlp3RERVXVuvgo1W3/URfn1TntYoYLDJ5uq9L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36450860},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"ab2716ada117f4ab9153f4e249c999b18dc82c59","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.34_1781573839244_0.29183280688877233","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.35":{"name":"tower-studio","version":"0.2.35","_id":"tower-studio@0.2.35","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"f360834ad86ac150deac00b992b4df12479ff8b8","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.35.tgz","fileCount":1692,"integrity":"sha512-OCaQjde5iBlRte38zfjs0++XyweseO+VjndWJkfPnptwNezxIPDbjWjTn3Gn5QzEpcH8zAYAOOBJsmyiKDXDNQ==","signatures":[{"sig":"MEYCIQDL/by2wbboflhYJPIRLhSmhlyO+f1gRbN1D30g2lGXaAIhAIu/VAW1oFUnr+Mq5JjEBY0tst2aQhJ72Z1ew3r8nu1k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36465238},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"ea02982a16e46925dbbdb4bd2f6fa9be11fc60fe","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.35_1781577629813_0.17772149790820113","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.36":{"name":"tower-studio","version":"0.2.36","_id":"tower-studio@0.2.36","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"c77feae2dfe882e82b709e29e7890532937d14d3","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.36.tgz","fileCount":1692,"integrity":"sha512-NoMBy4GHmSS49mp8by00PS+sSjDCX/rRFUX3FOkTBoIisbc6ExNA+XmBNqX2Loa4GgPHx/zyeMHgKGNvk/m7Lw==","signatures":[{"sig":"MEYCIQDxcnwJyQrTDNx4DCWupfAT54SZWVFTfKx0zCyD/6ZlIwIhAP7HfgSqPUVNmgfrvj9mu7+yNP3+kJtN5IP8YlfTfUf5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36477879},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"ffb574b36a0091571ff7044b066520a3a6137482","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"next start","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.36_1781591437578_0.20261218762683098","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.37":{"name":"tower-studio","version":"0.2.37","_id":"tower-studio@0.2.37","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"30e399dacf4592662a6bc8da3eaafaf3fd29b437","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.37.tgz","fileCount":1694,"integrity":"sha512-LE9v4JSX8uzZes8oUvXqvZQlxZqLsrKGRCbTXcXESzJhIPYtO2tW60XxNdwpRcn3UGHOIBBxUTgYy9TpTei1uA==","signatures":[{"sig":"MEUCIQDIYsbLJWpjnuJk8PQxf5jVeHqhia+TLaAIzWNeFgIoPgIgMnOmjf+YcA0fM6wWAB0HHCqy69GVFlWFVhazPF63UTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36507558},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"7090cb2407bc6aa58c40f7ab8e6719d4247501cf","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.37_1781602836089_0.4950565262811859","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.38":{"name":"tower-studio","version":"0.2.38","_id":"tower-studio@0.2.38","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"1960f5df66463df2b3e6fa8c56eec83659fc4df6","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.38.tgz","fileCount":1694,"integrity":"sha512-2TxvF5S2Jo9ekqt3KTAUP/Lq8tK8ZhlyoekhRKXUNMaa17SkAgOQy3bG+tV0irFykHWX0Z+J5jjKRav54PutdA==","signatures":[{"sig":"MEQCHxktncTa/xbpyv3j3ZDrlKIEnsX4zN8y/AYXUrT2EOoCIQDTZSB53ex/eRXOERY8AGD03GRbowHfY7GUJIgBfddPZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36514491},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"544905ad2d4aa8f40790ce3c7e2e1622b76375d4","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.38_1781613558348_0.2931160056608737","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.39":{"name":"tower-studio","version":"0.2.39","_id":"tower-studio@0.2.39","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"b23b6877524e4a0d934e6ad2b0b5510685be6a24","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.39.tgz","fileCount":1695,"integrity":"sha512-zwCaRSSbtR7tQVbnnOimZFZvTRr0fRXucmmpAR5eN/tUEIUAwHJL7W3rUrGLy+bxS1jixvF3/MkJJZG1YJdRYA==","signatures":[{"sig":"MEUCIDKLiuj7/o7jIMCpreC79XTTiZBZheukXC9bjbAxlCBxAiEAhb3puNoVeZsMp4wr03oJuCSEFeo2/JYnufZR1d8Y0QM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36574581},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"eba45bc00fdbfb770a3daa0ccaf5bcc0ac8cf46c","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.39_1781691741196_0.2471694466230201","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.40":{"name":"tower-studio","version":"0.2.40","_id":"tower-studio@0.2.40","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"f635750d0798a907f906400fe3f88980a392b8a5","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.40.tgz","fileCount":1697,"integrity":"sha512-wH2C1M3wiMB71S0H+0RMz9BOX9SDBW6xXTZUreeEZAUDtN2/FPZ8SyNT1bveFjE1grviyYbBgiO8ySOoL+IPug==","signatures":[{"sig":"MEUCIQCyWZWV61kmN+Dm7R1eA65G7Stxo/uxwXTz3OiVYfup/wIgMIiRrSlLYk2oAUsLKbMaZqYubeE+fNr+FHRupC27AIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35841784},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"543690226c5752ae8f52d7b5f9d07d469d616fa2","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.40_1781924865070_0.5981872034515971","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.41":{"name":"tower-studio","version":"0.2.41","_id":"tower-studio@0.2.41","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"7ade589b7a8c3235dd01e5040197398a07482918","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.41.tgz","fileCount":1697,"integrity":"sha512-gVNESZbEFny3CNaNbpT5+tcYvIdhVI3lTbfas7rQFMlZgi3yfHvvhkvkphJbEslvLrtK02wCQSvIc+jM2GHLHA==","signatures":[{"sig":"MEUCIQCbk98eSChogVNCXVXIxU+U+gbRU+OJtqWNKQm/oRRodQIgUweM2QiP4u5LuhSSN3hR43mdZG9fH47YO6/x+IMryJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35875500},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"cd8b5249f955628fea717c931fb0a865c0908733","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.41_1782039627393_0.7669032554686706","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.42":{"name":"tower-studio","version":"0.2.42","_id":"tower-studio@0.2.42","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"cfb62c05aff7287a0fc105f6c17e1c9df899d89a","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.42.tgz","fileCount":1718,"integrity":"sha512-Nbcm6PlgmyKk80OtJJJA6sqBrcIyHiCAfYFG+wARGP7S2j2c+gCDUkNzkrzmxiCHTCIPSQqI4DGNAGGd4GbWDA==","signatures":[{"sig":"MEYCIQDO4DMwNdKTgnbh48Ktx/4HnlsV/yiY7/+xwu92UGX6dAIhAKlex5f2PEa8Z96TivvDBqAw8/VTH9gnbLvKDTZJVT5v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36121351},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"86b75c93866c31e922af7aae5a1193855baccd21","scripts":{"dev":"next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"tsx scripts/init-db.ts","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.42_1782178331927_0.93672851871346","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.43":{"name":"tower-studio","version":"0.2.43","_id":"tower-studio@0.2.43","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"2b1dc97ace2e8fd8f32f8b6c3bdfd81702ce20fa","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.43.tgz","fileCount":1727,"integrity":"sha512-EzfreX1cnzBggUjJTcMrrMNmiNDDv7tl+W7seTHwKwByq8ts23oAYM/MY0tsutYiGmgYMDiFlVwqeaSs0Fa0/w==","signatures":[{"sig":"MEQCIAiT2NAvjvpy+rpUZWCtwHxOu3SAjoCpjmNzuh4neSirAiAe7VRbEZTxlI9qkGER6CtXg2BE3KD6UpG6nnPGCz4/UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38976948},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"2ec908ef384fef9c82875cdcede21e8e1deaffec","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.43_1782272223177_0.6956865972126838","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.44":{"name":"tower-studio","version":"0.2.44","_id":"tower-studio@0.2.44","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"ef28191f12bd14b0b9c166e0ca75cda5382b2fcb","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.44.tgz","fileCount":1727,"integrity":"sha512-b0cfYmEgGNq01xF92R75WrAAT5IV3LhLsaDPxwaQ1tqt+Yo/53Z53zSU6OZqjiy4HKBUk5ozUseK7/XaZkwAzw==","signatures":[{"sig":"MEQCIFX/cBELgT/YaHwsp50eWLtjgNv/96I4dzZ7sM1NWnfjAiAlEHLbaULIgvkTghG5XGNgho1GgLmsdDccc1GRfugrXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36476623},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"6e70c68cd49f3515c87dfcc7150dbd78b619861b","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.44_1782280435257_0.29409324959323824","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.45":{"name":"tower-studio","version":"0.2.45","_id":"tower-studio@0.2.45","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"bf50c212a5c2466bbd040cf40d58a5907fa44a7f","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.45.tgz","fileCount":1794,"integrity":"sha512-5Hy+0i4o1TyL9Ar8Jt0qBNFOMEu5+lk4QTTwfiHWe2ZlZ3LT2k9GnDgFOz9h2VZIuwkMexZ/FM/mZmI6uDNbsw==","signatures":[{"sig":"MEUCIAoemdI2sItkrCxbGSGHVLfcO41QIj0cidRy4kGNsoBAAiEA+TRolsN6PIPOUyXU5nXeh+aj92/iB21E6rqYkQm5syk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37593624},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"53e2bfd9e0662171f1db2522fd05bf8317a15063","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.45_1782998255908_0.48316822779337976","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.46":{"name":"tower-studio","version":"0.2.46","_id":"tower-studio@0.2.46","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"c32728facc11a2bdda787dff597145273bc9f86e","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.46.tgz","fileCount":1811,"integrity":"sha512-1DDBIk1S7XQQ+I14CH4dkhuAja02vzFXhJcnCDKri3jtqdcOpyvMVv8E9NMlLukzEbF01LW/YMmFmx40I1YYVA==","signatures":[{"sig":"MEUCIQClTECzQVQrZnfCz//9OIGipG9M+hOoqp3b31qnKYf7XwIgTwYU8rmzWE3D8HQi1UsoiGHFUgeZbfIw3QvdFIsgRYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38944458},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"b6fcc6f0cf520bbf0de8d1e5b3fe20596e73d086","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.46_1783486565568_0.5632343506736945","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.47":{"name":"tower-studio","version":"0.2.47","_id":"tower-studio@0.2.47","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"4618c5163e7253e94cc361c64d34e26de73b5afd","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.47.tgz","fileCount":1812,"integrity":"sha512-B6a+cNnyKktLYXE3aX8y+QFWEQxLJgpSQrVzINr3786yjbQ+iOoz5Dl7PFnw1jTt6mJAiY9trUG16VR3h/U15Q==","signatures":[{"sig":"MEUCIDsM/ShpPnoy4EFwle1BE3EHb394a41aS5CZ57K6+y66AiEAp86wyia3r7T8syVGuoK5O2Kox/8RHLHG7nQkBD4wPPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38884491},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"f94fc537006c7e3246f3caf295ae343217354552","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.47_1783489967852_0.6196218946915031","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.48":{"name":"tower-studio","version":"0.2.48","_id":"tower-studio@0.2.48","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"e1966b8736b95e4020820ef34e405e7924c763ff","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.48.tgz","fileCount":1815,"integrity":"sha512-X4jdUDQF7JnUqIdJH4HnwKZRtifwkWLbcbq3oL1iPQUxI4JlHp+PI8cAply9bhhubdym5kYlxGuFD9Y6HgoTfg==","signatures":[{"sig":"MEUCIBRc4Gz29+NFINtD0kCO+I01KDcLKC2rVIbcO9lkH8IKAiEAhPnaHjryv7u6I2fSyZK+Fs6FQrhM2e2VyjtIw43EDdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39059001},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"865ac3f602672ef881b2971c78e4c431122548a5","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"10.9.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.48_1783646006994_0.1367433115796688","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.49":{"name":"tower-studio","version":"0.2.49","_id":"tower-studio@0.2.49","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"91d593beb37f9344cb32e803759ffab85ba79e87","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.49.tgz","fileCount":1826,"integrity":"sha512-f5MPN9IXCNg4LhUQTww5npfH3VBb5Rc0Gg8QDIz4QuUkWGguaxhUb1R0owysbhu1/UTL5F8Spawz4mVYtS2kLw==","signatures":[{"sig":"MEUCICPmqh5fpzZYPcFF9Tsbj5M2Wjbgy3HOaQconYErZDs7AiEAqFKT/5F+xGO+BaKaMyLnapNULidrUuLzrUUpNwaVod4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40678707},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"659607c0795e14fdcef4c68f6c153a411448c113","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.49_1783917436577_0.4996101729351463","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.50":{"name":"tower-studio","version":"0.2.50","_id":"tower-studio@0.2.50","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"42f84df0c03472c12541b39f4f17e90a38fa43ab","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.50.tgz","fileCount":1828,"integrity":"sha512-3wMJb0jymevu1O8W+AjbhAPVxlTfIiR3UMySFuGeB9Ra1mCXRVZjWIJhb2VTIz14pzrUTfIfps+tGRnzOBO+fA==","signatures":[{"sig":"MEYCIQDW36paV6zAZ9j7qIj2lvPTbDSxDsIVY7Ot8qxzgo3k7gIhAN4yADBvgmGNbqULhK6pRkk/Yvu/bdTrWKhL6XP34MFe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40780937},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"d67b1f28b47f84a79343498fc39e9e4e63b69785","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.50_1783940167548_0.7133578828936122","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.51":{"name":"tower-studio","version":"0.2.51","_id":"tower-studio@0.2.51","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"ab44f6ecb22e454d0f3c77783d090fee343e11a6","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.51.tgz","fileCount":1852,"integrity":"sha512-P7FFV0gjPdx3AdygiyK/ACPbVRVhSVzhP3A1fuJRCpCvX+EYlUkAXHZoSNwFL9gMHyuiFvLa8ij3aMynoUBkGQ==","signatures":[{"sig":"MEUCIQCdSehIugaasJjOMW406YO2mXwLFnw31RIW6wnF69sojwIgS9+Oe37cngJhjGPX4V2xAruZYZf0/u1iGYi2J9DukL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43374878},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"318cc0509150c54225be836b268e8dc47982914e","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.51_1784253512217_0.6062311897030155","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.52":{"name":"tower-studio","version":"0.2.52","_id":"tower-studio@0.2.52","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"4bbbf5b712cd5acc35a9f21aed7a1c7e5b4643c3","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.52.tgz","fileCount":1855,"integrity":"sha512-PsNlxTZ6h0iK9tMZ0S5F4VZUeqWOHn5TI8eak2DwAxVkx2htuUkW3gCmW4i6QAkKl/xRj+cgd4OUbL9OEbGmOg==","signatures":[{"sig":"MEUCIEFsDpgHmXCSfU5e+Cg5XYo8WV457zw7wSF6bHVlXXLIAiEAo26Hm+wUve8zJKNHl4PgPTdMdZB6czqG30uuvVCQLqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43899880},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"82def6ffc3388cf707748f57bf81feee72035742","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.52_1784462488409_0.9958326271201379","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.53":{"name":"tower-studio","version":"0.2.53","_id":"tower-studio@0.2.53","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"34d08380f5581f9868ba17d59ddaeaf6e1686af9","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.53.tgz","fileCount":1856,"integrity":"sha512-f2TqUB2kcjXYDiASsXLfmo+75PvZdSBBEdD6OUZY+7l89hk3ikOKsadwjO7Zpwgp/eUz8QBJ1GQ6Bw1keOzpEA==","signatures":[{"sig":"MEYCIQCjiymqVMAgI7Y33jUCYw3f/5blBb/crxj+yCeIp38HggIhAL6REdhSFcpVY3PYFyKkVj5ySLsvS+zpnEDzBX60aU/E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43987614},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"ba51b24264394de0ebb063447e15e4ad0feebbf6","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.53_1784770067711_0.2574397688503196","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.54":{"name":"tower-studio","version":"0.2.54","_id":"tower-studio@0.2.54","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"c0307bb44dcf4df3c210bc61e5b0810ee7f7eb5c","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.54.tgz","fileCount":1857,"integrity":"sha512-RzjTPGOr62Y2la+qZ5mtIhpDnhdc168JSYJdarxetmF5gKqqhOMJqeWCGOk3C9AEh9d8T3OOH1/JhS2bt1UWeg==","signatures":[{"sig":"MEUCIBm39RpGn61eRWOuo5Kbh0GsXn3oW2RHnmxR4+yCz03UAiEA9mZQxfYIsrest24uhH/OF6QXVAaY7JjIvL4Sgmrk0xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44064353},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"205f1d89538f571e4524d53a50b59dd38fc82aaa","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.54_1784799536222_0.7433452706821064","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.55":{"name":"tower-studio","version":"0.2.55","_id":"tower-studio@0.2.55","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"ba4af8d2ce785c93846dda095116e9aae403b6de","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.55.tgz","fileCount":1857,"integrity":"sha512-nEOP6iwmUvR+1A61bVR/aM8w+FVmZ6Kszfz7rkimACgb4lo+eFvLREe+85Xb6OIMTbg6fCzj6og4u/kPvFHJyQ==","signatures":[{"sig":"MEUCIQDCHW+vBRTrqEkh8JeR8xfaPcUnj0816eBx2fTSk3+d1wIgBt7LNltzK+raLyMcVDaJFuDg4+9Kj9JtWmmkuG6DlwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44126288},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"aa5fcab76928c7bd5481af9cad170c4a455319d7","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.55_1784861983054_0.4555785037524871","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.56":{"name":"tower-studio","version":"0.2.56","_id":"tower-studio@0.2.56","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"58bfd6d71533c85a0e1ebf639f2238dd66f97079","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.56.tgz","fileCount":1857,"integrity":"sha512-Q536HJy/Xzquqz+L3GUe9jdg13/uDRPLoPp9BUhRjieM4xrAgZq3F1ed9nwVQEwETReOYN48gBIBmbgJ9xlPFQ==","signatures":[{"sig":"MEUCIFnA24C32DCHPEalyUVx2yfxl+H25PmA4ngMArpKdeUyAiEA0yKSTsPEIt06Vg4HFYefA8BduVSNm72PqFUn8zAzQPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44177239},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"d6a9cb474ddf9291fb10db010a2e3198921f9e12","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.56_1784872510954_0.6005988615102276","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.57":{"name":"tower-studio","version":"0.2.57","_id":"tower-studio@0.2.57","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"a1ec716081165be3676a25c33d31acbab2c0e871","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.57.tgz","fileCount":1857,"integrity":"sha512-NVFmGE9pv6s6aOH4CW2LmybkqepYiCQEzlsZRzndt2SyPhKsjMADu/uNo95o4lKT/1olBiESBET540lohkigHA==","signatures":[{"sig":"MEUCICRVDc+siJbrcsc80WZqCZVKTEBlskmdcv/FVGqynxCAAiEAxA9hZ4VhPQmz+5vLgDzY1tXcRCUzAfykN9xYkYpZa+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44213139},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"24d85d7359211ecb6e989b286b41bf2da26bbed1","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.57_1784874960437_0.5670882101943002","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.58":{"name":"tower-studio","version":"0.2.58","_id":"tower-studio@0.2.58","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"8cb1e752beb440ab2020575e7304f9a6967aa6ae","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.58.tgz","fileCount":1855,"integrity":"sha512-mvoABpVC490tfXolvMiwX6oRNPfIRVuG6FIlFMQDW41nYh7gG0kWo6mNFJhqr/meI29rZPG/Q0Opqb3U4uEabg==","signatures":[{"sig":"MEQCIEr1++hyW2cWRDmFuoDvXJmKIZgGDBax9xBfb8ino1LAAiBqjFI8VceeA5RliNQAFSQWzSeJRjvC3NfahDX+WAA5UA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44238783},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"53a289a13bedd5a5bb35f382d8487ca9b285bca7","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.58_1784878436115_0.18898828630977604","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.59":{"name":"tower-studio","version":"0.2.59","_id":"tower-studio@0.2.59","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"e97703b363a3d52c4f94bdf7bd6a6d34b74556cf","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.59.tgz","fileCount":1856,"integrity":"sha512-tNnAZattnwrKJk1EXULKjMxwnl+7RgvwiES/CU7vmnQJATGSSgF7KsW7UWSVGzpBBuS22psLot4I6T6Sd2ADIA==","signatures":[{"sig":"MEQCIEGTWlCMfUPdqdnJ6mHczCeHeUI4kX56P9FvCYl1FuJlAiBT+dLOxtifiAFlrss5Dof8H0bku7gOEVwCG/SF7UAc/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44311811},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"f424af852c0a8f35a96fc0c5627ab13e808ea3df","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.59_1784879700673_0.27721730101411635","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"},"0.2.60":{"name":"tower-studio","version":"0.2.60","_id":"tower-studio@0.2.60","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"bin":{"tower":"bin/tower.mjs"},"dist":{"shasum":"9a00d0d5c7c110fe5621c0058fdedca14efb8434","tarball":"https://registry.npmjs.org/tower-studio/-/tower-studio-0.2.60.tgz","fileCount":1856,"integrity":"sha512-y80zMfU2f81bPWBVY2lCbw8UIEJujP1PVhlS0+bZ+aPRjZ47XKkD+8LxOjoS7Fg5sF11fnGqmY1qaHxRDhKh2Q==","signatures":[{"sig":"MEUCIHymfdfaQ3EPl+FQDXjsgjmrw8weKfITzV/WUyTXJi0iAiEAjWksyf7vsGqdUYowIyfZkBqfAk+9j9qAxzTH41Wvoqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44345178},"pnpm":{"onlyBuiltDependencies":["@prisma/engines","esbuild","node-pty","prisma"]},"gitHead":"7e7549210e413b845b5ff8c7d403d4fe6a927e0d","scripts":{"dev":"NEXT_DISTDIR=.next-dev TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" env -u TURBOPACK next dev --webpack -p 9022","mcp":"node dist/mcp-server.cjs","lint":"eslint","test":"vitest","build":"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js","start":"node bin/tower.mjs","predev":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build","db:init":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/init-db.ts","db:push":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma db push","db:seed":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/seed.ts","mcp:dev":"tsx src/mcp/index.ts","release":"pnpm build && npm pack","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test","test:run":"vitest run","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","db:studio":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" prisma studio","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","db:migrate":"TOWER_DATA_DIR=\"$HOME/.tower-dev\" DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx scripts/run-migrations.ts","db:generate":"prisma generate","db:init-fts":"DATABASE_URL=\"file:$HOME/.tower-dev/database/tower.db\" tsx prisma/init-fts.ts","postinstall":"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js","release:ship":"bash scripts/release.sh","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish"},"_npmUser":{"name":"jpliu","email":"fortune_coder@foxmail.com"},"_npmVersion":"11.6.2","description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.20.0","tsx":"^4.21.0","prisma":"^6.19.2","node-pty":"^1.1.0","tinykeys":"^4.0.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tar":"^7.5.13","zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","next":"16.2.1","jsdom":"^29.0.1","react":"19.2.4","eslint":"^9","ignore":"^7.0.5","shadcn":"^4.1.0","sonner":"^2.0.7","vitest":"^4.1.1","fuse.js":"^7.3.0","zustand":"^5.0.12","@types/ws":"^8.18.1","react-dom":"19.2.4","@types/tar":"^7.0.87","parse-diff":"^0.12.0","simple-git":"^3.36.0","streamdown":"^2.5.0","typescript":"^5","@types/node":"^20","next-themes":"^0.4.6","shell-quote":"^1.8.3","tailwindcss":"^4","@types/react":"^19","@xterm/xterm":"^6.0.0","lucide-react":"^1.6.0","@dnd-kit/core":"^6.3.1","monaco-editor":"^0.55.1","@base-ui/react":"^1.3.0","@iconify/react":"^6.0.2","tailwind-merge":"^3.5.0","tw-animate-css":"^1.4.0","@playwright/test":"^1.58.2","@types/react-dom":"^19","@xterm/addon-fit":"^0.11.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@types/shell-quote":"^1.7.5","@xterm/addon-webgl":"^0.19.0","eslint-config-next":"16.2.1","@xterm/addon-attach":"^0.12.0","@monaco-editor/react":"4.8.0-rc.3","@tailwindcss/postcss":"^4","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","react-reverse-portal":"^2.3.0","@testing-library/react":"^16.3.2","@xterm/addon-web-links":"^0.12.0","react-resizable-panels":"^2.1.9","@tailwindcss/typography":"^0.5.19","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.9.1","conventional-changelog-cli":"^5.0.0","@testing-library/user-event":"^14.6.1","@anthropic-ai/claude-agent-sdk":"^0.2.114"},"_npmOperationalInternal":{"tmp":"tmp/tower-studio_0.2.60_1784882570411_0.44243911236703326","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Tower moved to @tower-org/cli. Install with: npm install -g @tower-org/cli"}},"time":{"created":"2026-04-27T13:00:51.674Z","modified":"2026-07-27T01:42:59.688Z","0.1.0":"2026-04-27T13:00:52.193Z","0.1.1":"2026-04-27T13:27:27.014Z","0.1.2":"2026-04-27T13:50:24.663Z","0.1.3":"2026-04-28T01:20:12.643Z","0.1.5":"2026-04-28T01:49:37.879Z","0.1.6":"2026-04-28T01:57:06.064Z","0.1.8":"2026-04-28T02:51:33.827Z","0.1.9":"2026-04-28T03:45:34.254Z","0.1.10":"2026-04-28T05:54:00.285Z","0.1.11":"2026-04-28T07:01:04.948Z","0.1.12":"2026-04-28T07:51:54.746Z","0.1.13":"2026-04-28T08:09:55.870Z","0.1.14":"2026-04-28T08:47:49.271Z","0.1.15":"2026-04-28T09:01:32.611Z","0.1.16":"2026-04-28T10:05:52.023Z","0.1.17":"2026-04-28T11:03:04.032Z","0.1.18":"2026-04-28T11:14:23.255Z","0.1.19":"2026-04-28T11:22:19.339Z","0.1.20":"2026-04-28T11:31:01.667Z","0.1.21":"2026-04-29T03:46:53.650Z","0.2.0":"2026-05-28T04:05:57.247Z","0.2.1":"2026-05-28T06:50:27.800Z","0.2.2":"2026-05-28T06:59:49.046Z","0.2.3":"2026-05-28T07:49:33.051Z","0.2.4":"2026-05-28T09:19:35.061Z","0.2.5":"2026-05-28T09:34:52.593Z","0.2.6":"2026-05-28T10:05:47.986Z","0.2.7":"2026-05-28T10:42:10.606Z","0.2.8":"2026-05-28T10:56:29.270Z","0.2.9":"2026-05-28T11:13:05.954Z","0.2.10":"2026-05-28T11:22:22.911Z","0.2.12":"2026-05-28T12:41:00.995Z","0.2.14":"2026-05-28T13:14:54.441Z","0.2.15":"2026-05-29T01:25:47.557Z","0.2.16":"2026-05-29T02:43:53.969Z","0.2.18":"2026-05-29T08:43:38.358Z","0.2.19":"2026-06-10T01:14:34.554Z","0.2.20":"2026-06-10T10:38:46.950Z","0.2.21":"2026-06-11T01:35:32.589Z","0.2.22":"2026-06-11T06:37:36.869Z","0.2.23":"2026-06-11T07:58:32.656Z","0.2.24":"2026-06-11T08:52:54.068Z","0.2.25":"2026-06-11T09:30:33.691Z","0.2.26":"2026-06-11T09:49:08.859Z","0.2.27":"2026-06-11T13:01:41.757Z","0.2.28":"2026-06-11T13:21:23.674Z","0.2.29":"2026-06-11T13:52:14.939Z","0.2.30":"2026-06-12T01:14:33.401Z","0.2.31":"2026-06-12T04:15:40.445Z","0.2.32":"2026-06-12T06:11:41.714Z","0.2.33":"2026-06-12T07:20:06.136Z","0.2.34":"2026-06-16T01:37:19.639Z","0.2.35":"2026-06-16T02:40:30.149Z","0.2.36":"2026-06-16T06:30:37.920Z","0.2.37":"2026-06-16T09:40:36.350Z","0.2.38":"2026-06-16T12:39:18.651Z","0.2.39":"2026-06-17T10:22:21.581Z","0.2.40":"2026-06-20T03:07:45.431Z","0.2.41":"2026-06-21T11:00:27.664Z","0.2.42":"2026-06-23T01:32:12.247Z","0.2.43":"2026-06-24T03:37:03.465Z","0.2.44":"2026-06-24T05:53:55.582Z","0.2.45":"2026-07-02T13:17:36.317Z","0.2.46":"2026-07-08T04:56:05.852Z","0.2.47":"2026-07-08T05:52:48.152Z","0.2.48":"2026-07-10T01:13:27.353Z","0.2.49":"2026-07-13T04:37:16.939Z","0.2.50":"2026-07-13T10:56:07.916Z","0.2.51":"2026-07-17T01:58:32.574Z","0.2.52":"2026-07-19T12:01:28.719Z","0.2.53":"2026-07-23T01:27:48.000Z","0.2.54":"2026-07-23T09:38:56.562Z","0.2.55":"2026-07-24T02:59:43.501Z","0.2.56":"2026-07-24T05:55:11.278Z","0.2.57":"2026-07-24T06:36:00.854Z","0.2.58":"2026-07-24T07:33:56.607Z","0.2.59":"2026-07-24T07:55:01.019Z","0.2.60":"2026-07-24T08:42:50.780Z"},"description":"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP","maintainers":[{"name":"jpliu","email":"fortune_coder@foxmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"public/banner.jpg\" width=\"100%\" alt=\"Tower\" />\n</p>\n\n<p align=\"center\">\n  AI 任务调度平台\n</p>\n<p align=\"center\">\n  <a href=\"./README.md\">English</a> | <b>中文</b>\n</p>\n\nAI 任务调度平台 — 通过可视化看板管理、调度、执行 AI 辅助开发任务。\n\n集成终端、代码编辑器、文件树、实时预览和 MCP 工具链，为个人开发者打造一站式 AI 开发办公流程助手。\n\n## 快速开始\n\n### 环境要求\n\n- Node.js >= 22\n- pnpm（推荐）\n\n### 安装\n\n```bash\ngit clone <repo-url>\ncd tower\npnpm install\n\n# 配置环境变量\ncp .env.example .env\n# 默认使用 SQLite，无需额外配置\n\n# 初始化数据库\npnpm db:push\npnpm db:seed\npnpm db:init-fts\n\n# 启动开发服务器\npnpm dev\n```\n\n浏览器打开 http://localhost:3000\n\n### 生产构建\n\n```bash\npnpm build\npnpm start\n```\n\n## 核心概念\n\n```\nWorkspace（工作空间）\n  ├── Project（项目）\n  │     └── Task（任务）\n  │           ├── Label（标签）\n  │           ├── Execution（执行记录）\n  │           └── Message（消息历史）\n  └── Label（共享标签）\n```\n\n- **Workspace** — 顶层容器，管理多个项目和共享标签\n- **Project** — 项目，可关联 Git 仓库和本地路径，类型分为 NORMAL 和 GIT\n- **Task** — 任务卡片，在看板上按状态分列展示\n\n## 功能特性\n\n### 看板管理\n\n- 拖拽任务卡片在列间移动（TODO → IN_PROGRESS → IN_REVIEW → DONE）\n- 右键菜单：更改状态、启动执行、查看详情\n- 搜索框模糊搜索任务标题和描述\n- 任务优先级：LOW / MEDIUM / HIGH / CRITICAL\n- 自定义标签（颜色 + 名称）\n\n### 任务工作台\n\n进入任务详情页，左侧为终端面板，右侧为三标签工作区：\n\n#### 终端（Terminal）\n\n- 基于 xterm.js + node-pty 的浏览器终端\n- 完整 ANSI 渲染（颜色、进度条、光标移动）\n- 点击\"执行\"启动 Claude CLI，实时输出\n- 支持键盘输入，与 Claude 交互式对话\n- 窗口大小自动同步\n- 断开重连不丢失会话\n\n#### 文件浏览器（Files）\n\n- 树形目录浏览 worktree 文件结构\n- gitignore 自动过滤\n- 文件 git 状态标记（M/A/D）\n- 右键菜单：新建文件/文件夹、重命名、删除\n- 执行中自动刷新文件树\n\n#### 代码编辑器\n\n- Monaco Editor（VS Code 同款引擎）\n- 语法高亮：TypeScript、JavaScript、Python、JSON、YAML、CSS、HTML、Markdown、Prisma\n- 多标签编辑，Ctrl+S 保存\n- 未保存文件标记（dirty dot）\n- 主题跟随深色/浅色模式\n\n#### 变更（Changes）\n\n- 查看当前任务分支与基础分支的 diff\n- 合并确认流程\n\n#### 预览（Preview）\n\n- 启动前端开发服务器（如 `npm run dev`）\n- iframe 内嵌预览\n- 自动推算预览地址（根据命令识别端口）\n- 保存文件后自动刷新预览\n- 离开页面自动停止开发服务器\n\n### 任务执行生命周期\n\n```\n创建任务 → 点击执行 → TODO 自动变为 IN_PROGRESS\n    → Claude CLI 在终端运行 → 执行完成（exit 0）→ IN_REVIEW\n    → 人工检查 → 合格则 DONE / 不合格可重新执行\n```\n\n- 启动执行时自动创建 Git worktree（如配置了 baseBranch）\n- 执行完成后触发飞书通知（需配置）\n- 失败时任务保持 IN_PROGRESS，可重试\n\n### 项目管理\n\n- 创建项目时选择本地文件夹，自动检测 Git 仓库并填充 gitUrl\n- 项目类型：FRONTEND / BACKEND（影响预览功能可用性）\n- Git Path Mapping 规则：按 host + owner 自动推算本地路径\n\n### Mission Control 任务监控\n\n- `/missions` 面板跨工作区监控所有运行中的任务执行，每张卡片内嵌实时终端\n- 网格布局预设（1×1 … 3×3）本地持久化，支持按工作区筛选\n- 点击「启动任务」打开搜索弹窗 — 模糊搜索任务、按「工作区 → 项目」浏览或从最近任务挑选；可启动新执行或恢复历史会话\n- 双导航模式：input（直接在窗格打字）与 nav（居中窗格选择器，`1–9 / A–Z` 快捷定位），`Ctrl+;` 切换\n\n### AI 助手\n\n- 内置聊天，基于 Claude Agent SDK，SSE 流式 + 多模态（图片）输入\n- 定位为「任务管理操作员」—— 通过 Tower MCP 工具创建/移动任务、搜索、生成报告\n- 会话历史以磁盘 transcript 为准；resume 失效自动降级重试，MCP 断开自动重连\n\n### 版本时间线\n\n- 将任务归纳到项目版本，按版本回顾工作；未指定版本的任务进入 backlog\n\n### 笔记与资产\n\n- 按项目维护笔记（支持全文搜索）与资产上传（文件、图片、粘贴截图），UI 或 MCP 工具均可管理\n\n### 设置\n\n| 分类 | 配置项 |\n|------|--------|\n| 通用 | 主题（深色/浅色/系统）、语言（中/英）、默认终端 App |\n| 终端 | WebSocket 端口、空闲超时时间 |\n| 系统 | 上传限制、并发数、Git 超时、搜索参数 |\n| CLI Profile | CLI 命令、参数、环境变量 |\n| Prompts | 自定义 Agent 提示词模板 |\n| Agent | Agent 配置管理 |\n| Git 规则 | 路径映射规则（host/owner → 本地路径） |\n\n### 国际化\n\n支持中文和英文，在设置页切换。\n\n## MCP 集成\n\nTower 提供 MCP Server，可被外部 AI Agent 调用：\n\n```json\n{\n  \"mcpServers\": {\n    \"tower\": {\n      \"command\": \"npx\",\n      \"args\": [\"tsx\", \"<project-root>/src/mcp/index.ts\"]\n    }\n  }\n}\n```\n\n### 可用工具（31 个）\n\n| 分类 | 工具 |\n|------|------|\n| Workspace | list_workspaces, create_workspace, update_workspace, delete_workspace |\n| Project | list_projects, create_project, update_project, delete_project |\n| Task | list_tasks, create_task, update_task, move_task, delete_task, set_task_defaults, list_versions |\n| Label | list_labels, create_label, delete_label, set_task_labels |\n| Search | search（全局搜索任务/项目/仓库） |\n| Knowledge | identify_project |\n| Notes/Assets | manage_notes, manage_assets |\n| Terminal | start_task_execution, get_task_terminal_output, send_task_terminal_input, get_task_execution_status, stop_task_execution, resume_task_execution |\n| Report | daily_summary, daily_todo |\n\n## 开发命令\n\n```bash\npnpm dev            # 启动开发服务器（Webpack 模式，node-pty 需要）\npnpm build          # 生产构建\npnpm test           # 运行测试（watch 模式）\npnpm test:run       # 运行测试（单次）\npnpm db:push        # 同步 Prisma schema 到数据库\npnpm db:seed        # 填充种子数据\npnpm db:studio      # 打开 Prisma Studio（数据库可视化）\npnpm db:init-fts    # 初始化全文搜索索引\npnpm mcp            # 启动 MCP Server（独立进程）\n```\n\n## 技术栈\n\n- **框架**: Next.js 16 (App Router)\n- **语言**: TypeScript\n- **数据库**: SQLite (Prisma ORM)\n- **终端**: node-pty + xterm.js + WebSocket\n- **编辑器**: Monaco Editor\n- **样式**: TailwindCSS 4\n- **拖拽**: dnd-kit\n- **测试**: Vitest\n\n## 环境变量\n\n| 变量 | 说明 | 默认值 |\n|------|------|--------|\n| DATABASE_URL | 数据库连接串 | `file:./prisma/dev.db` (SQLite) |\n| PORT | 服务端口 | 3000 |\n","readmeFilename":"README.zh.md"}