{"_id":"pi-web-ui","_rev":"188-5cc001201ff658ae8fe57796b836bd83","name":"pi-web-ui","dist-tags":{"latest":"0.96.1"},"versions":{"0.1.1":{"name":"pi-web-ui","version":"0.1.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.1.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c59369d285dd785a1bf0175a6519414c70f1947a","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.1.1.tgz","fileCount":14,"integrity":"sha512-5drBCO+jIBVZQhcEg6B/3sJSgvpbWiKA7cVJkAv2oqsYQr9ntUl8TOPf5DNwqEDCYKvpsuzUx8a0VX4ZRG8o4g==","signatures":[{"sig":"MEYCIQDVF/bQSzD4y4vhuUyh7D6ti0ty2EJRBt+SFNZN1l7HdAIhAO1v5LsgLq96UqSmYGUzkTAY6R/uUQV1eW5JvIOpixQD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989843},"main":"dist/server/index.js","type":"module","engines":{"node":">=20.11"},"gitHead":"e02e0548d78dd1d5ef551431d37dd630b2bd5fe9","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.1.1_1785806498422_0.8249126236345494","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pi-web-ui","version":"0.2.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"647d71ddd92f1b6dd8d41ad6aa4fd5f769b40c1b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.0.tgz","fileCount":14,"integrity":"sha512-L+2pahe6ee/1SrhEjbyU2o2oB3Y9QcNl6BW9FtRFGJCHQmRJkQCt78HTsawIjKdGq2Txw15pYE/NX0FZcuOMKw==","signatures":[{"sig":"MEUCIQCrIGFHU7/yC1Zz8i889kotSJVb7E0Ig9HXTyNtWP625wIgIMOyvdX045/ULzrvE6Y1InRiUBWSR9f2J7xzGyABd+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1011951},"main":"dist/server/index.js","type":"module","engines":{"node":">=20.11"},"gitHead":"b5cafecaa114f528be727be927be9022cdab7a63","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.0_1785809841823_0.14126074158178836","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"pi-web-ui","version":"0.2.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a69f796d152fc8ff92c97b8984062c372894309f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.1.tgz","fileCount":15,"integrity":"sha512-NmAhqvCiB37Ljc33B+n0pBoOxY3CB3/tQZVZ9p6bI09yWWU8HUAP0QX3Bb5v/DlJNzAff8xniRDjVKOrRsxR6Q==","signatures":[{"sig":"MEUCIQDIrDZ6IfzqfYC4wwXL58k6tqVXk2UQb2zEp8QIEak6gAIgRLpgRxertB979NMTFKI1cfgbKaKd18Y1KiXvQJ8UJec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1025465},"main":"dist/server/index.js","type":"module","engines":{"node":">=20.11"},"gitHead":"e9cd92b19ebd85b6db543ba5ea4134eb36654256","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.1_1785810822874_0.5749130274107068","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"pi-web-ui","version":"0.2.2","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9d0e0c9d1b7148c8adc3b9448a5b25e5e57bae83","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.2.tgz","fileCount":15,"integrity":"sha512-tcOsV670tAf0s/P2k0em6ivdZLaY/wRYjs3NLBRcR/HzYHTHb4wlMG4ayCXchzEGj/nXncPMEHDbXljBjOPjuQ==","signatures":[{"sig":"MEYCIQCYCjiyEKGZHuhs+dwtLXex3jPIHsvlk7tjgZunJmGauwIhAMDcTZ9ItGtzAHVNpokGp9Rm9m6WC7ROKNEzEDZX0s8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1028370},"main":"dist/server/index.js","type":"module","engines":{"node":">=20.11"},"gitHead":"6767ae80819586a790e1f583c419a99391dd1070","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.2_1785813077011_0.12579221268517782","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"pi-web-ui","version":"0.2.3","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4c7dee0605b0e3860f57782ffdb90c978fa3192c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.3.tgz","fileCount":15,"integrity":"sha512-qZ5LfqSaMBfdeNgHvr2mI+GJJExLPXJicFG5Vb1xEMAdeGw1tsGOvzfy0H6J1Do+GnXzO8/f3Mrh5Q3RFI1EnQ==","signatures":[{"sig":"MEUCIQCh86Fc/RgjmN/uaGaUyw6P1tu0vZA3VLeQMRY2dfCajAIgFH1PXcGcq9K/UwSBr0CKOeMsPmRJIKTKpba3WkBMczM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1057790},"main":"dist/server/index.js","type":"module","engines":{"node":">=20.11"},"gitHead":"5a236fd07c0dcfdc43ab9e9fc6a06e327055bf04","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.3_1785819249595_0.3973396835207963","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"pi-web-ui","version":"0.2.4","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e6678acfc3ebd6aeba3a4075345704b9c97f193e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.4.tgz","fileCount":15,"integrity":"sha512-E3pc4JWosNPsKw50sb6jJUY9X0e3Fdr5Il81SMezxoethZUA5P49FbTHHy5c/Eq222QYi8k8JAzsCDXV3WFxnQ==","signatures":[{"sig":"MEUCIQDhAcs2CoUJvTUUD2ftqCrpyaToMH6lHO0pIf66PNtVNgIgYmV3OAsuBzmfL7c1Iln1swMSqiNn5Jf/L/aUC0XMBb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1058652},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"0831e0216acdfba3f06971780f8f9e6c5084e721","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.4_1785820296388_0.3671598111325911","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"pi-web-ui","version":"0.2.5","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.5","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b55f9adb24a88e93f64e2b175b718da3535c09a9","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.5.tgz","fileCount":15,"integrity":"sha512-e6TtFAjhovD64bDXCR/Ofi0OcOGKktld28eQnEYtSshnHfjf7ug5WhWcHUrW51wmlu3jYwLUqK62cm/8r8uT8w==","signatures":[{"sig":"MEQCIB78WXI2p3C3SYel6l7gM6jEH8EpfhExaQgjnsc0/NkJAiA7jj7OnU3kw/3QUBwJxKwj9Q9SMoJcgIFRO12ePgz8pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1059312},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8ae2b3012c28a7909f24ddb327affb3a78795336","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.5_1785821030482_0.6670158210798223","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"pi-web-ui","version":"0.2.6","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.6","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"682772679fec803743bfb64b2bd056cfdeedf3c3","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.6.tgz","fileCount":15,"integrity":"sha512-x7rSr5I48fuLEi3lsZXUugqvAnDOaaeT/mYYXwy9vCi3MIeW6HqYpV4GD6Ql7Iu41g/5XbxU7RWXt4g/rWUinw==","signatures":[{"sig":"MEUCICNfeNdqXZEMcWJDlA83kkZlYyko7H/4SOq2enIGfCERAiEAhEQdpi97qzlPQs2I5z0ZdfEjimDKFRAtZWKO/EptY7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1061135},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"df1bd3e87cdfa3ccae637880e9c05c61a10fc53e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.6_1785821632248_0.31103617181331944","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"pi-web-ui","version":"0.2.7","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.7","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"866c6630b7ab5b0357131f30159076f75956b2d2","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.7.tgz","fileCount":15,"integrity":"sha512-jKuzkU2p5hjSjoIXuQJVeYy/1qAfJxWTYwDSRkB7P862kNb+QPiUGw/cIAmj/P02NXcWWOxUJlRT1Ti/VcKjkw==","signatures":[{"sig":"MEUCIQDEwBUk9vCcUcvGhhk0/2fWSMWGJi0obJU7ZPPxtSNECAIgHYtYnx/7o5FLG2y1Jt7NSozgBXPYgf8CQXV55oHrmhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1061390},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"97e44528e40c3902e524d3841ce3fa4990471d0e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.7_1785826339816_0.24637825683105063","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"pi-web-ui","version":"0.2.8","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.8","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"af7d14492be3e23fc9db80744742c239e4aa1ade","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.8.tgz","fileCount":15,"integrity":"sha512-h/KyUVVVNxpKSkpSGKYCgXUO+SYVwBfmUFM+LK0zOqnES8FSKYSE6FP/z0SKqHAVOprCnOMo5EfSazSNRcAN3g==","signatures":[{"sig":"MEUCIAbqZ5Q/ykoCLM51SSXywLXYo4x+naMpoxiD8aXSNRQCAiEAq/SW0JuKMynhFgEoDWE4Us9vwOEW+RPQIxlvJG8RbTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1061758},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"38fcf87771cbb1460c403bd72f50f1fe78ed6169","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.8_1785826609677_0.6862319864931499","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"pi-web-ui","version":"0.2.9","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.9","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"24d2dfd53a72e0b69c9a16d638b258a69ef1b326","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.9.tgz","fileCount":15,"integrity":"sha512-06Dsn3dqELIYKA13ajguOAm2usyKCIxfjy9KyGLOxu8yt76fQ76eHG9OwVZDr6tHljb+VLXri4RNB4yrV3J5ng==","signatures":[{"sig":"MEUCIEZGAZ4gXb+mlcnaHG5cYRTNWxzUot/ooO2peVFLUJM4AiEAmG7hKiXTGuT1d/O47VOw3i6x4zskIRvufbq6smwZ/Bw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1061070},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"944166da9bbdc25c0f61c6f1fc4c939387ca54e4","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.9_1785826943045_0.569100879191127","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"pi-web-ui","version":"0.2.10","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.10","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"885a6d45e4f4242b53c1a64ed237926f39a8c542","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.10.tgz","fileCount":15,"integrity":"sha512-9Tgo99q1EoKb5HN/+m5g23wIRMurBFYd+4Hsdv1kzRuztaDaC5nZeK1mojSi3+dsv/t89EpTAVbKPG3346xMDA==","signatures":[{"sig":"MEQCICBoooT6eK8jlk82q7czpOPvumC/C2qi5UKsfM/pZbN5AiA8T8tbz3bOIytQpkNFfSxTSGcVBpXeJIpa0ERr+SWpoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075122},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2ef0d6e941949b0c161188d982020b3670ab7363","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.10_1785830248235_0.66575476542779","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"pi-web-ui","version":"0.2.11","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.11","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"baffb027c565b40842cb0d38996d066395a3ab39","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.11.tgz","fileCount":15,"integrity":"sha512-ofMZGP04kgr+UrF3mXfMGaVqWPhdiQfCJkqaBM5n/5d/miaFzois4u8NEpE5aZwSiStuAlUeY8aVk6r6fBncsg==","signatures":[{"sig":"MEYCIQDZUBVkMEnG8WVVTiCvajy6MhSSZaf0u7FUvRTppOIdzwIhAL04fWhMARlms3wt7e62IQYgxu9O8NZI5XH7t18yVWr/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1077780},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"994ca2762ce5e30b37cb556ddd8b5ae0a3067aaf","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.11_1785831762301_0.9962925346083475","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"pi-web-ui","version":"0.2.12","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.12","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e273b918998530a4a9f15ee4902c622696f5a5ba","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.12.tgz","fileCount":15,"integrity":"sha512-CO+tSNo+yMW9IKiYpv9d6fJYXyBS+Pjw8guiZ/6CTZgek9DTbRDbIuczNb9PWvy2Yfg4qFTSQWC/AHxzOqGtyA==","signatures":[{"sig":"MEYCIQD7a1x6jOWV66LOQNmSMLr65sUMWCy2u2V20jgEIeXNIwIhAIi0/la0L8oSM0mEe5QwFRCZoXis1NNFc0H0TYH4D2qz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078711},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5b06f8a21cb77f45700d560ba073316fc2b80e3d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.12_1785832696054_0.9076835091276074","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"pi-web-ui","version":"0.2.13","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.13","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"dab0d25fba62abb0728dfc0912e75e757ad3faf1","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.13.tgz","fileCount":15,"integrity":"sha512-u9qK6DnhT282LGgH07jZbt06hGSMiecLu94dzlqUr9h2GCaJwwwX6YOXDbk6968yBiD7mKkf2ZN/rzpazFn0ag==","signatures":[{"sig":"MEUCIQCusOzH82FfrdfZhrpjATxMK3aQU6J5q8kp8xR1p2OjZwIgAe4N/DCDOgwCePmAItbyz0C4JBLLMtTD+seiWg6RANQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1096329},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"50d770d95858941315e725ecac7570416b52edcb","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.13_1785837955601_0.6173651258056825","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"pi-web-ui","version":"0.2.14","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.14","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"afc1376f6b6fd078e90f428ae46ac75a250dde26","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.14.tgz","fileCount":15,"integrity":"sha512-i5O4F84V17g2CNY00yp1QhSIqIgha1Pck9cvhGvTDaRNYuyOYwmwwlRDb5G7LKULlMN7ik6CVa8tLbMWpDohjw==","signatures":[{"sig":"MEUCIQD43vPd3J0ORv5YXFn6SYC86IeFlqEyRtwh5kMslVGJvAIgCyNRjB4hR4ehPJpFnTjqFahxbvfSV9kQqJwTCqo1Ru4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1096637},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ee59a5688a995fd3b295bc6569186cc5ff812f43","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.14_1785858173875_0.207439704717449","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"pi-web-ui","version":"0.2.15","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.2.15","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"269376dfac9cf0904b5cd0731b569f594b1dd434","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.2.15.tgz","fileCount":15,"integrity":"sha512-B9d9zm9+Vwamv4kBtV+c9FDfDaanY8tZ+kPzG7AigPNECP/IsRdKrFsvFJlEwd3QW286cOqdg+JqHcgqZXX42w==","signatures":[{"sig":"MEUCIB7CMQwrk9SYpQzbnjMTJQQ+RKftO7n8DYqUy6MvpcPpAiEA+CNMAUI7DN5HVUE0gI3LLCYseiY+IulvmPgWxM0QeHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1098468},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6f34a1c410bc02ec93e567ce02c7dbde1e8e643f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.2.15_1785858770454_0.5636203584252792","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pi-web-ui","version":"0.3.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.3.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6b23270c81cd477c703ad5096e445298d5d2dfce","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.3.0.tgz","fileCount":16,"integrity":"sha512-c7p8QLKw0V4kl+6h+eB7p4xY3C5ZB4hEOaEE1i45faHi2Tf4e+rHZYG5ieqjrsrNrVaWkFNLXhTtFtwt9kiRwg==","signatures":[{"sig":"MEUCIQDdm81e3Uq1ewkuBA8iqlI07Jx3fJLpzTS8xlRJqo86hQIgAfYaijfC6TMWGyLlcXWJuM7zjH9RwU9YYO3YJDqdKLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1124116},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3ff5670aa407fdd897bbdaabd752d74e2b620989","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.3.0_1785888985498_0.6187728768209741","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pi-web-ui","version":"0.4.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.4.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ca58851506eefd8605962643caf7e158fda88f85","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.4.0.tgz","fileCount":16,"integrity":"sha512-e5N0mkBxt7BJ3UAKWugGE3QFu9dY40+r4/xT05uGBmT9liI+uRblAPJuVXbstJg7lBZVZpLImO14tEkGVfIKKQ==","signatures":[{"sig":"MEQCIFdef/1ihYV0LBDq5MjPP90vwK7wBmlimOYKEDa1e9NbAiBCOjt4cn98uf62T1qiUjBqOGu0bEllpkO5QQ1xbmsnrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1137901},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"38d14c13936ae0316c5a71921f7b8db88bad93a6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.4.0_1785902953228_0.2844395022414783","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"pi-web-ui","version":"0.5.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.5.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7dbd2471496b9d1bb3a164b9797ca89c80f54984","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.5.0.tgz","fileCount":16,"integrity":"sha512-2p9LaafyaZP0IkazqR2iAXAS+epRDgmNgcTVsHBj8+L95I2ieVH2tv52tqdgRfCdlghh2PFGy5e0YfQQfHxpkQ==","signatures":[{"sig":"MEQCIAGLUeXmzyiKtSTLEOPdhd/9NGlfcHx178CpgpBSBTmSAiAljsflodMJuAQmGfIG5erdChrNyR9ffKxN8PTdPz1V+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142522},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5cf4f223cf61a1d9d5d67175ce6c746a9f57c795","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.5.0_1785903942736_0.9721552465220602","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"pi-web-ui","version":"0.5.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.5.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"240c27efb2e43e7afe1275259fc86085c4ceb0c1","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.5.1.tgz","fileCount":16,"integrity":"sha512-AqaPgiRvuujTSGusxPE5C9ucuVKhhNka+6zOmP5YE9qcZ41j/CVsq3nFfBNqmUBo88T4ewzB7Nhj7EZd60Qr/w==","signatures":[{"sig":"MEUCIQDrhHWqJSAzNPbav68QkgdgTrP+8CbJH8/BXn6vK4v9ygIgKB+A0konG3fHXFJhlpkRz/IuKfExFp6jEdezRvbjwho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142547},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6ae0fd420d15b9f809b45c1e2025c7e3c38e3bc7","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.5.1_1785904440464_0.5813400771101174","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"pi-web-ui","version":"0.6.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.6.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c96822177702d7cf94ff9334ddcdd8235b9c4791","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.6.0.tgz","fileCount":16,"integrity":"sha512-lp4iD+qYJsdnYBvu7g/1XJJWmAcUt9VhzgLbIRIv7U55pydDb4G6Le9fOGMrDidDhp3rWPmVK7M9vT/l9pfPQA==","signatures":[{"sig":"MEUCIQCdeFeUgzqtRizlwz4bzNXHLKZMhMMmfh9xEql13qLcwwIgIyTkE9hC2jrhC/fqyc16ZZMNBKIy1F3tfxDPQqJu9bQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1151896},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"013eb0c0b9ca234ebf198be4b7887bb64f3ac9db","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.0_1785905001904_0.20210738421233843","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"pi-web-ui","version":"0.6.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.6.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"364eadd5e4357147a0da1ea18c7e52bc7d5d28f5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.6.1.tgz","fileCount":16,"integrity":"sha512-BsjEmqDKL5+RNV+6MmwMKQkerEHMKdPF84maDL9qfMeDzz1cGK4jGKoq07i+f7VhhgxqRjmK8zUz/IG4LpoK2A==","signatures":[{"sig":"MEUCIQChoBe7jWqjkh2fKYuvxE21zWmaSU/B7UAsDWaG+lZHFAIgbBs3KPgCB3vckRzdfzYlw20C6Om4xwOgekl5rIVyjKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1152339},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"564f89b748e9e925106e67378f0bff7b2ee48b7c","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.1_1785913522171_0.35950088620991316","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"pi-web-ui","version":"0.6.2","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.6.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ad19202f9048e04fcbf038aa2814a1d00c6f8550","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.6.2.tgz","fileCount":16,"integrity":"sha512-mZ9o2WkWCvhYtfWeFR1c4BqcYOPYk0y1AwUOWe1/p7ZNq5Lx8/Uspk9n7kJ06qRpak+dDtAiiqmbdGn0bVOF7A==","signatures":[{"sig":"MEYCIQDOfw7O+NIaYn+mL5B68pd+bvHJ3YnJOK+pm8Cm4IeyjQIhAPYUHxDN1xpaAYfv8hqoFl51au1ypBQpWOd5rkAxJNJC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1153103},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"bcaed6f847a24e80b803a8c98f51fe8f0330e05b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.2_1785914618629_0.6709103138928996","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"pi-web-ui","version":"0.7.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.7.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"de758c44d7602c5438cde23744d408dbd4d09f1e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.7.0.tgz","fileCount":16,"integrity":"sha512-9zYzn6QXTqd9ugJ2YNiHA5cMUpHJuHsRTu+kJ6/5Gu95lgHn9PNn5Ajjw21dWOL9geT5hmnQ3opG0oFQmDBLrw==","signatures":[{"sig":"MEQCIE1HmIa6hc9+W+erHw2mF3wW5H2p+uvXMld4Ddry5cGxAiAgkche+bL/IRxPMAdbbV3Ai3Imy1kqzs6a/YWwJjvkng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1162861},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"63976752f05b56fac30a65507bbb207415b0d66d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.0_1785922551099_0.8953681530579665","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"pi-web-ui","version":"0.8.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ac388a5907d588c55ccfd49d10e89cedb7d668bc","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.0.tgz","fileCount":16,"integrity":"sha512-6qXx2+N/6XZBg6b1M8im6IMP67OAnjsXK/Zn7jjfG8DfBApMvecO7/+qt3G4BOyLy7rhWlPF8idUvoPUk+6UtA==","signatures":[{"sig":"MEQCIBGCaQGPJIXHWurOexJspRxhdTz52XdnTD6cHBwwseshAiByXqU5BQJeF4OJRpmekbG+6WVoyBiulusnaKEg7ebDEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1172258},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5b79db8d32ff05ce3c0441e264c73de101655073","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.0_1785926824504_0.4503216169169615","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"pi-web-ui","version":"0.8.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7eb18c08b871fe38a8b5ea1001dd57d34ab61b3d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.1.tgz","fileCount":16,"integrity":"sha512-Abio9+bP01Xl2zWDCUQCZ6sSly/aVeekr5JziZVwpZIgxWJxfSzo+u9xbYh+iKyCO7bPeuF7YdR+pklBxJMkEw==","signatures":[{"sig":"MEUCIBIo0XBIvoYAgHh9r861JEVZ0NCu/X+pVMftOHl0NP1gAiEAqRVBo48Z6N3DOTNT6d+xTGsQSk4nNHnMez5GIf4AJDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1172406},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7fd31a3c6b20d5c9a93b4a4ab561629a39fe136f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.1_1785927219808_0.20329199712295232","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"pi-web-ui","version":"0.8.2","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a978290717665ee210df806f7c04685e3cfd3aa0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.2.tgz","fileCount":17,"integrity":"sha512-VRxWD/T99Be3I1vXLSLwGjHVf39C29I9livsrLA93o/1KOPb2/u1nHUAB2oo719SKjSCHNN+WPtJPVmzhYEr1Q==","signatures":[{"sig":"MEQCIFOcpWOs/hYgGfbdWJ0/j/c+HrJzTBb2DcuLRcnJHMdgAiBt3YRIfSc8Pmn42+LIQc0GDVK7tnXWnpHYWKww37pwXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165776},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"e97bd9ebd2c09e5fcb3b029e3e0483a6c6496395","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.2_1785929698181_0.5879630849503341","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"pi-web-ui","version":"0.8.3","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"80fb5eba159f83a536b2b517c52a9832aac8078e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.3.tgz","fileCount":17,"integrity":"sha512-GMTpF8i3CQCEc/74bGw6kEuHD+30WEqq2EMNADwBRsdqH6dRjtlSYea0nvE+yMHBPejdcUxdbg5oVkMRR7oLgg==","signatures":[{"sig":"MEQCIADT0CmfknZwrhtS/P0kg52C4GQYDKRDdUronAl+snxGAiBUgNOepu+TQKmBAKBUaItTapd36SRlLof58Je9BwyloA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1166577},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a71afc56d7f64b061546f15ec0a58dfbe7137129","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.3_1785930497658_0.3337102003311998","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"pi-web-ui","version":"0.8.4","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7531a5a3301a2ed94df87ba09cbc0524614e1e82","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.4.tgz","fileCount":17,"integrity":"sha512-EwsCv3P484NQQfc3ay5LN5tfEukIUDETK50yVjjX6OC3BCQ6z6zTz0YtQ2q5RPtc9QWXF66Y9wsICQy8rCJfhw==","signatures":[{"sig":"MEYCIQCIO3Jgnl+I/Yo/vhMnJy7Khi/f4e/LACzghgO0lFQd7QIhAPWioBbJVneDUYop4I0ZSb1S3bj8hA34YMya7M8SJWdZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1170394},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7a24ea93f43b83ff3330b53c44fe667696f5090d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.4_1785931411908_0.9909352579501551","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"pi-web-ui","version":"0.8.5","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.5","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c6c703b5f63f00779e3405771a8282c168963110","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.5.tgz","fileCount":17,"integrity":"sha512-g+Eqd6ZrImd5zYp4zqi7mkqNSEI/60lw4gd356HKlttbJ2W/Bx83m9uW/qjB8mGsdj7gmrHSfdAV5+BTFMybnw==","signatures":[{"sig":"MEUCIQCErkdWS9o0B/1BGrmThidVqH3qXFjLj+jMEMcWYErF9QIgAQ6oa6X7jDJnxPFWo9ikLZMk/j6m4sqVGv1/lXDRooU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1174695},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b3bd1729de14f59609589fe613d9b2cb41e28d17","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.5_1785976878595_0.47595421171195884","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"pi-web-ui","version":"0.8.6","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.6","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"363d84860d24df0094d8712f97be3805ec5db8e1","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.6.tgz","fileCount":17,"integrity":"sha512-EzivkMxJAUC6gPm0gIfO/BvvSfPiTDRzms5hyep5G7ddoXYCm3LOgCxSKBwRdt8GzxsSTUG1Tw+46W8bui0UUQ==","signatures":[{"sig":"MEQCICk9zQVmqayKo9MDHxFzhbYPhmE//EIpwieB8KG2D9bNAiAl1MtGpv+FLWSyyGuUyR16X1KmlZNTZ8KE7DSIGtsfTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1175672},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c6ef4d07ddb77d023b8a7738deaa091847f0945a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.6_1785978407215_0.022829684141252304","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"pi-web-ui","version":"0.8.7","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.7","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"49c3d6b0c0e18c5c1ed56da1d109be25c58eb866","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.7.tgz","fileCount":17,"integrity":"sha512-gUTbqwYHXYCUR3O60Sw7WQln+XqeqJ8xeC/wJW+67GJAtc1O+5sVt9ttuWAWp8AYJ8XspJKuXL5em0wCn3pvAg==","signatures":[{"sig":"MEYCIQDHS/a2iWiIP8o5YVHlVschEPtNUq51E8Q58/TkYfbH+wIhALkvTDV6VqxCBhxaTQ/RP+3x//op1jaIGpc8u6YcLa0m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1179168},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2eb651d5c5dbd8e57ff8d7d9cd7ccacd30b67392","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.7_1785979936393_0.1730476917120698","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"pi-web-ui","version":"0.8.8","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.8","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a72e6f554c54471f0625940cc6b8a1aabce0508e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.8.tgz","fileCount":17,"integrity":"sha512-Tksh2WIlE7icQ64S7FexcznaKmwemET/x1r6lVrVEOkd4O6rrIChDq26+3SfC2cim8eblt7YTvvGquygwMMaOw==","signatures":[{"sig":"MEYCIQCYk578m73UDcO6BUBnCuJUcXdaTdrvSQZ8MTREZyISdgIhAIW7qnSYbHKqijHHMqZUfyfIRKsncXSLNCJxs0lcEYio","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1179278},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4de0fd17170b1a643226c843c07197912b41aabb","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.8_1786027708140_0.23236816333656418","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"pi-web-ui","version":"0.8.9","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.8.9","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"68e416159516780f3a0081b333ece1b52cb3ead3","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.8.9.tgz","fileCount":17,"integrity":"sha512-12NrUecd2m6+K3Z5TY4RitTXxvnDoaEeQeebZPM0jN7c5hxb1w4bzNe3cxN50n8V9rwELzBAjJhMl/Pkhx1soQ==","signatures":[{"sig":"MEUCIQCoDIA1T2kU969W/8odyJCLDLUmZbbgR5CqwLKy76C1OAIgXpPcPmS7LeMUUzjqUA5DpDgzJsND2cFX8mhz+q8tCIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1179630},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b1fbe1c11ac74d40d4c4de3446ee44d4c657061e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"tsx watch server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.9_1786028816762_0.7763835268270645","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"pi-web-ui","version":"0.9.0","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.9.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ab1fd4564250eb8c4c541583872ea383fd535c14","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.9.0.tgz","fileCount":17,"integrity":"sha512-neJmPKBiTg54w2wrFUlb92JhgTSz6YWnMsNymUd+EX3EuF78I6n8D28UDlkor9DcBit8/Lrw1NSUbaUeMeCCFA==","signatures":[{"sig":"MEYCIQDXtIL9ouz4mFS5BNtr0wS+FjAdgnVbN6/2rtI6MKPWfwIhAKGcTVYk4N5T2BYa42B465KZcR5cGFgdd6BcfwTAw4oJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1185777},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c5853ebc6666e4df451746329ce55022a57243c3","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.9.0_1786032742299_0.7721679111473698","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"pi-web-ui","version":"0.9.1","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.9.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8fb0e25feb0ead4c9d1e6f97adaa67caa565f5ae","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.9.1.tgz","fileCount":17,"integrity":"sha512-9bfajh8uwwLirqT2OZY27sw4gs/HwepmpO6euj849fhuG37T31jURO44po9vw03KMTx4vCHu6Dj1qzkVL0P9xw==","signatures":[{"sig":"MEQCIDUi7FDaXdbkfEjzzTeiVTOX1sgS1+2GUEJZiUOqXOSQAiBmN5hwy1AhZiGTeAfGiAfDjSA+Dh+potvxpKd6HZJcAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1186747},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ac5a4c8db8208c5b935316ad836425cf6dbc6483","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.9.1_1786033157717_0.7527718225965621","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"pi-web-ui","version":"0.9.2","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.9.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b1aefcc274e8ff1bb17723ce312d5d4dea6b0ec2","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.9.2.tgz","fileCount":17,"integrity":"sha512-RYcuE/lx4zb9S9zM8YkyInTq4NZ7rt5dZXZFpSoTqvqXTOLf5TkhmuQVzjquHv6T7iGFJoQB6Ra4b5hKJVG3Xg==","signatures":[{"sig":"MEUCIQDriTvGfhE3dR5Hl8nNLDB7zQv+43nJ+Fsxu8+uRmxYWQIgf4b+jPhuzU6HA0pl9BnJ+KWYKmsdiFUxw33WWpC1PBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1188307},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ba526f0efdae144a68e8c51bec0e0c17228c8e7c","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.9.2_1786074746709_0.9487829618563166","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"pi-web-ui","version":"0.9.3","keywords":["pi","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.9.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2eeb5964694096d8b3eb91f52475701cbc19a988","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.9.3.tgz","fileCount":17,"integrity":"sha512-Tex6gUt+a3Me4UxXfSNczTKo2f8N33O7EYLPNyvGF07tYf3XQvqhTHIWFINSXLBCATXTtLHSE2BQlRo5qsTTpQ==","signatures":[{"sig":"MEUCIQD8/c24TqEThR9vRSCCQDVC1MMUgjDjOGBkYwv285EDaQIgOqYOOKpA2zHUmYGnLege+/FcLj8tnoY+fls8DRafDOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1189105},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"eb147d311ce74f3a116943c9a2f7afd129c89815","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.9.3_1786079126162_0.5053478876709134","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"pi-web-ui","version":"0.10.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.10.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"af1e300b2e472f3ab5c49c30c5bddc9548acd905","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.10.0.tgz","fileCount":18,"integrity":"sha512-0IRC4swRKf4oqHR/XLs5c2bFryIbxKsZq60RO5RixWHw0IyZf08d0dJAMp7RJRrKGYpXJiu3Q9R2vcBMOIEStA==","signatures":[{"sig":"MEUCIE8gQeI7rhk3VQUyzV81rhXXw5uVPAh16eToc4JXVKTFAiEAyZKz67KCYg7WlUjIfc5NcwO2FiTGdXurEzGUzWjZtNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1195288},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"9814dcfe8d94c78822d52f441a8e366b8596011e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.10.0_1786092650094_0.2539327143512988","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"pi-web-ui","version":"0.10.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.10.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e143effea43dd3e97681ae11c323d9fd81873466","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.10.1.tgz","fileCount":18,"integrity":"sha512-OwVdoWczFC8/eNtiKiz8hHsxtkDI4GpduzXpRESVbQGD732+Hyb+2qkOJdI/n0rMcmXhByQIFnrJeIhlxHVusg==","signatures":[{"sig":"MEQCIC1wBlDCCvjku556o5Tgei67HmUDLStbOIZnUv8yQCm2AiBDmSr3SK0Rud3VJhncr0W9aLLARauCWYAHKiRjftOz6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1196611},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"98c7bfd9f6f058bf7cecce14a5d2c44cb0204fd1","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.10.1_1786093510757_0.20550278140982847","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"pi-web-ui","version":"0.10.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.10.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7ad206019006b7929207e5fb394b1d17da0762cd","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.10.2.tgz","fileCount":18,"integrity":"sha512-w6KuFw6SeVI2er1lH1YHFDhbCCiCr4Xo4hFXaohhnau10fha0/546DT8tIWTJ6bZrOvmKFLAVmiQM4DirPGH4Q==","signatures":[{"sig":"MEUCIQD7NYBD84EUHSfxpQCoyCs+QWtY1ke9cum3M155NsdGEQIgEpaTsZLHd4nn4HreLnDta+PS6s0b4bvkwGDesesc72c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1197480},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"616f0ee10462c795d11c91ab33010751c940348f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.10.2_1786096210383_0.35683155200667005","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"pi-web-ui","version":"0.11.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0a8d9a1040669b91070d6c01bac6006f57f16da0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.0.tgz","fileCount":18,"integrity":"sha512-1Jaor8HYK7SppsjrJrRvR9iIoDp+kX3FHx63bbPzcT8R7zBXtez4Zz9naq1MW3AnAfKU0gFKy+qE/5rqhX2YAA==","signatures":[{"sig":"MEYCIQDGaDDQgq3YfVmFkErvzc2o7PyTGVInrRshpPLVFhEn+QIhAO64TxtzCyZkssM+eT34kon5zhVIviWoypIi++OSp0ni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1214321},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"88a4824f9de84086c8a14eb156858db484d86078","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.0_1786124298174_0.44695905764983435","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"pi-web-ui","version":"0.11.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"dc51d97ce92b2c459baf69595d45ff4a0312819f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.1.tgz","fileCount":20,"integrity":"sha512-1sAG9Ih9CMlaZ5TlpO619WLhQbFePiYLe3e4mruNIPQNvLSR7f8W88JMWh8TTKIEfytxUVVhmuuRHKE/TAbaLA==","signatures":[{"sig":"MEYCIQDd+S4UB9ETwAWaIr3rcsRQWljyIuP5FMirb4eqc2pEhQIhAMddbUVqFWouLgxNUhg9ckS2Nf8syGJIL3ZxGLutGLC4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1216266},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"94af288eeb905477ba3e489199eeb03c45d6190d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.1_1786124673362_0.33773865663219604","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"pi-web-ui","version":"0.11.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"d78fe3d4db9cb22f4b16939eb9b88fade7a59ee8","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.2.tgz","fileCount":21,"integrity":"sha512-RJAvqCLJS53KX6rzzVDt6ZFlkj2R62ulDSXl1gHhQ36Gqu0O+v73pSBGkkTorU35wJkW82k4UxMMlr06y5Hh9w==","signatures":[{"sig":"MEUCIBLv0cWCQ3/PSY2wcNRE0mU5WWIxFbQgPbhPtwkdN/jJAiEAi7rwO68n8uePmkxS9qEXQgV3M8iEchdCx2shb8agzH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1249979},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"0e7eab9e4745c53177dba4e755297e7f019c7af6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.2_1786125899452_0.677135429165916","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"pi-web-ui","version":"0.11.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5ab8a98bb065b2a14c0d1501f2ea28e6b8ac92c2","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.3.tgz","fileCount":21,"integrity":"sha512-7U9GLnzKXXivWvUW8/QP/o/ptU9t6teOQ31mZ22lK8SxjxoqMR4iLZpLCI6o7IIRsR+MkyMEGgnQEXx2b5ieCA==","signatures":[{"sig":"MEUCIBSBNNp7r/gneL87s/bl6wEwE2HRAtKcQDE+w93+DZLPAiEA+BW4G7Pq15vCKzYlRucvE47x9HQAxYKSLU3S9THXycg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1938267},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a793f35f2470bffaa3fbed345c96a19047c12369","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.3_1786126846470_0.1601755271467158","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"pi-web-ui","version":"0.11.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"31f045b76439e372c4f66ca004794607cf11c694","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.4.tgz","fileCount":21,"integrity":"sha512-/lQaLRRbPoSnplt6unXtrPpU5pr/OFb0ESmEor5qBt9ciArQc9777M4GyBX3V9nUMje3JgAx22OVN7TLDPM1UA==","signatures":[{"sig":"MEUCIQDbMMSWFZdiMDkaRHQLRLqvKQqNGYlxkwj7k6xia3Z8BwIgBT6E2a4zsreyHNwKJYa8kMupid11PuHNz8ujYoOG4YU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1617153},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cc390b76978834176a08766838340cfc9d528685","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.4_1786128426006_0.5554986932016628","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"pi-web-ui","version":"0.11.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.11.5","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"fd0cf483729afddb2e2aa7a1846e8e3338df9559","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.11.5.tgz","fileCount":21,"integrity":"sha512-k35pF0dMn2gd8qQ70tK7jZKU1mzoRasO5WBhVnRMZSnho5kShGwh2T0+871eC1MK4dEBIOYZaShRn8m8HpiSgQ==","signatures":[{"sig":"MEYCIQDr/K/+SAeUYContBodt30Viv0wylomOHIP5LMaTBQQhQIhAN1hY+Dj59nFXRF8V0wSZ9Zcf4iUCvSG0p8rEimI4azC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1619067},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c47bd3d1adf7247a686654e870c24d84a1b540e6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.11.5_1786129982989_0.7125006109018273","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"pi-web-ui","version":"0.12.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.12.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"eacf0034b8be636a38edd9732f3f23f421108795","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.12.0.tgz","fileCount":21,"integrity":"sha512-RAxqSE87279GuYa4lwIZpjBurFBUXmC+hucFPec7BKQwh6NSJc7Rje2RNWRL0fYgWmvpx5JhNp6IVJQkKIA7gA==","signatures":[{"sig":"MEQCIGNBgPEkqTwBnORWx1Sb9tO3n3/+nngjiGMDWok0IA9JAiBawhGQlFHg0JpMOyoAvgAFEbeJohp6fV6/s/fRKjALUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1634013},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"f7f6b7523b378ac5287b684f7c7813ce42111b80","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.12.0_1786155161062_0.2908640565751224","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"pi-web-ui","version":"0.13.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.13.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"25de6ba3055cb4c9a9c13b797a1fcd328c5068a0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.13.0.tgz","fileCount":21,"integrity":"sha512-zHBXBqre54jQWgvehhYk6cOy5Gftdj0ca14hEQdIiAhNipSwNc28kcrBvaPQmg3qxQaf3sUQYPVorg5vDd5quA==","signatures":[{"sig":"MEYCIQCeKdcIB0BmggmUpNfcrqOjw9f57kv7L0+tmRB+4lbQbgIhAOaEy/YFg2i/4iDDcHeAuPGIGEoH5WAiQeK1EABlFR9A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1640046},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5180c043de73539a6bfd7a2de895223ae7ef61c9","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.13.0_1786162654373_0.9067965779801264","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"pi-web-ui","version":"0.13.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.13.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7332f78341be7048069240c90c03afe6fd50605a","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.13.1.tgz","fileCount":21,"integrity":"sha512-ed7pyvExgFHzuwCHqujgM86bQ0WyqQ7DBeOeKRi2tX5f//IDbVpUssqrCjcvhUOeKNVcLT6DsfYVzZKo7pbh9A==","signatures":[{"sig":"MEUCIGIOqdkQu15JI+RnU0XrBD0QzFDJdOtnGbpHyQ8qKt/jAiEAk9KYfZoQ+AfcoOzDdER52l4Kn4vXZWyTozk0Fz/IS8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1640335},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d0596e442c6395cae2863d8df3bffeb570d00a85","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.13.1_1786163675726_0.23875303778545476","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"pi-web-ui","version":"0.14.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.14.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0157494f4971d595699f6f1bbac4d272f20e357f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.14.0.tgz","fileCount":21,"integrity":"sha512-WX627to5nFCUYO5WHMbDD8kwSED+MWkGxZRnkTmx0xzOdmE7T06M5/WzFrAWCpqOXqhZ/FQ7Qxo+7h7L0F49YQ==","signatures":[{"sig":"MEYCIQDwNpVOtyfXmTOPXYM0MAnvLKpg/JyZvrQLsMoJqIlBQwIhAK16sH1d5yTJ6IRt8ii4vrAGOD2vacD2zndQbvMicvVH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1643359},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b0c1dd0ac12c680ebd80acc661fa17b6d86d3352","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.14.0_1786207132084_0.4682871099912649","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"pi-web-ui","version":"0.14.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.14.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b707a6b8143cb2ff8f7ab9bf2c8f8e5a36d29151","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.14.1.tgz","fileCount":21,"integrity":"sha512-veP4hFNXm6rxox/MrRTNrv2TyQIzC2EXoBXgjJ7N3keOj+M4ftU7rWQvdFCYeHjj5NUWoWZ1O86TZQ4yGbHLqQ==","signatures":[{"sig":"MEUCIFtcjbjj+wZJm76tX1OkKx+WFVdN30ww9UNempWH5ED0AiEAwHLv+MHRya8EQNAmOa6rQDyePkCmrCnUAQgIVcgQwJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1644388},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5e2c1ad1bc2dd47a85aa9a923e90ab0278e3f038","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.14.1_1786330881094_0.727445925505875","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"pi-web-ui","version":"0.15.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"62a5c42bbe427f8ff7606fb34c5b711c4f84f0be","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.0.tgz","fileCount":21,"integrity":"sha512-03f1UlTxW+u3Vef5vT9Ecw2lzgWLDNvzPTxnOLFTzZwCtXxtySHrumuhcSkE0q7xHrkNYojSpUFulyFmP4FS+w==","signatures":[{"sig":"MEYCIQDtzCFGrhZxuWwgU89ds0tLK58l5dPKOS8PGDWY40wahQIhAM9MIMVOiW5kPX2hCFZy6zuSqthhI+oOdfxihIvOpfU5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646186},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8b762e664beb0644e6d403b0d7858932e3862f61","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.0_1786334502400_0.6445290743440888","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"pi-web-ui","version":"0.15.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b803b6064fc5de71585d2c41aa8c69e5beb3f486","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.1.tgz","fileCount":21,"integrity":"sha512-753sLC1hyecQdk3DvI0J1q2KQSNfc5w7RhVEHGjC1Z9QHBFFNt/K+NUTsTtLO3gn9pHw+fTnOihmG+a/miP8vw==","signatures":[{"sig":"MEUCIQCJUe3dIIvBeD6LYG/m25HpdXK45TeJXItcEh19fudoagIgBv0ZB4qJ13UAavGN+usM2h17zjrfNBIv7yJCDov8LrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646741},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7d3d8f6ec2c3f6d4d5ec69c375d1a1ebe5edb563","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.1_1786335426746_0.2852273962839611","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"pi-web-ui","version":"0.15.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"480cb3bf3436ee32ee5cd9f782571bda7e7a73bf","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.2.tgz","fileCount":21,"integrity":"sha512-fptr3DNZCsZlZl5rWelQ2xraF97L6D2jG4u6wFUeV+g3YhgUjzrF+1B8sb5bgzW88IU218kBdkLVFZpAg+QtQQ==","signatures":[{"sig":"MEUCIQCWTNd7NA0j5BPan15cIiZxVkzzSarKtvwOuz5VXDrrQQIgBlv2qSz1tno/PwAJjYwpWlmjBOsfjvoJkN5rVyFvb14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646810},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"296836e05d6cce15ab43d2202827d95ad7c3ef5f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.2_1786335837209_0.8804131100679549","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"pi-web-ui","version":"0.15.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"999201028aba9dbd62cd39c3b45364023523beb1","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.3.tgz","fileCount":23,"integrity":"sha512-z8EDHprTTMEY09YVJ7E0aKZ7BbuG+Ls8WaFzjs+b3CTkrskM93dByo9+NiIZQYncGn0KopwR2JvRnZNPLvXOCA==","signatures":[{"sig":"MEYCIQCKNlgVTM6t+S1d82QwNXFHNOGzhEfZryZM8D81UtF2EwIhALtq6gtMAX+woK2F6RYkWW8msBp+StLwb9dqIQI3C5Ax","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1648630},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"449d5123e2c6bb9e5e6b2d08331e1c96a5b90465","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.3_1786336027085_0.3718462130089666","host":"s3://npm-registry-packages-npm-production"}},"0.15.4":{"name":"pi-web-ui","version":"0.15.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"061fa92c115e09626239ee3835f8682e61a453de","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.4.tgz","fileCount":23,"integrity":"sha512-XGpRDeGtYsljGoaiKURj6oLUnN5jBnyDJfthEOMiYsLhypZ7Ht0cwt6RHTTL7OKIplw61StzZn5NZjS8RQKHQA==","signatures":[{"sig":"MEYCIQCj+aaDFS7qvtxotBygztFD+d1YmxP43jA/GZ2ejAKNEQIhAMFs72yd3TL6pFHvE310bfxdmKPIFa0ufq5SbhufpOCo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1648726},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"45705063af54978272c68edbe9a9655a499762a8","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.4_1786336470849_0.9995809160654479","host":"s3://npm-registry-packages-npm-production"}},"0.15.5":{"name":"pi-web-ui","version":"0.15.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.5","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7493fd50552668e81062cdfa9b5d3e4c2b524930","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.5.tgz","fileCount":22,"integrity":"sha512-3Y3VYYuODVeUiMPBN40gPh7jn9G9N//6R+4/2DQQbz3xYOU/NM4NGL2zWLBmnI5FNGmL/0mXQpZ7LEdxLVD6MA==","signatures":[{"sig":"MEUCIQCK90Z7sfyZAGc7QJ5ju4EizIlfrRY5f2U27uE9YbAgMQIgHGngA3wv+lHr3s9OLIgEV63tkFPEWstkkF2NiDMiDSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1649684},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1bbf58886ee565ee65c95f45a31394331aa763e9","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.5_1786339357015_0.44470359495625433","host":"s3://npm-registry-packages-npm-production"}},"0.15.6":{"name":"pi-web-ui","version":"0.15.6","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.15.6","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"13456ca8dc31fe1a5285b05cd9bc5c6dbd5cb414","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.15.6.tgz","fileCount":22,"integrity":"sha512-VVcaZ3uwOmEinwdNf+w6sQT+zk/TLFJioMH/j3dOlFgim/x0FabEifWhi61Yht+Kp9NBsf3ZptVgr0EFBhI+GQ==","signatures":[{"sig":"MEUCIF/IKZjtElzx6lWzd/W2ijhnhygYLyf0rqaphzww/ZdSAiEA/epg36qj7Ybrv7EZspRHcdv+S3zo+iTbtEKz9sIbomM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1656804},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b9da6f29eca07f3429f3119e7eb1be4c7fdf5cd2","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.15.6_1786379815773_0.7622115312161655","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"pi-web-ui","version":"0.16.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.16.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"708a9a6427871d5707ce2ae863392da932a15d02","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.16.0.tgz","fileCount":22,"integrity":"sha512-LxcshuHuevcgLsMC4fEJrqpW3L4PN2XpyzFWIgYmXtM73PsfmJnUbkiIzV07vpvzvsILriSqkCQATFFmwuTfHg==","signatures":[{"sig":"MEUCIQCFc8YM0RafHq4UABvXsAC/e8nKpHAqcghLK0YXQwzUsgIgL0/Ib6B5uZqM49VFKO8dUzV7LZm1c5quHWCHRw3Lgmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1661143},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d3077ed998b43e95bfb996a84cbc0a5ff57f3fc7","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.16.0_1786383286922_0.9975600814241088","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"pi-web-ui","version":"0.16.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.16.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6661f8026c990a6e5fca1b6b46e934812e70d028","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.16.1.tgz","fileCount":22,"integrity":"sha512-ZtQUWJ5Cr4If1pTwQgXKpC18i4XBF98cmagnTe0mkQT3NOjOeOxfiyprSTurUOgpXu761F37nJcgx9wLHxiuGw==","signatures":[{"sig":"MEQCIB9CH5Bv8pFr6kksK3eFanXttv0mPDS00l6LxLGdcUi0AiAROkCUtZwTffmr0DUgybI1bHQN88BiRLCXVmVslyzJmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1622521},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c5d0a99124a38b2bed86de8140192eb8c7d6ed73","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.16.1_1786384234945_0.0296699183349165","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"pi-web-ui","version":"0.16.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.16.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c7843da0a8984b7e4b9e080cf00f3ccaac14de75","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.16.2.tgz","fileCount":22,"integrity":"sha512-rvhzcd8md94lFht3jMXbwSWtVffQLFXcbm8Aj675YnP9ISVKTOvsV07csCf3uxKW/S+nHM+XQbwBGSNnSAkv/A==","signatures":[{"sig":"MEQCIFNrMbTxnpEwA1IbLMxBeH6or0Qem6dTrrYO1ZwMZMfYAiBJ++gsGfQ5FpzNONKxx8sGzLIF8citoc5cb2w8zki1Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1622733},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2af0f48dfd1ca904aeee267e5a55c8ddb6c55b35","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.16.2_1786410499094_0.36100384340561686","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"pi-web-ui","version":"0.17.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.17.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3bfaa0883ad3b95dcd32a15a26c6ec73a028ae36","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.17.0.tgz","fileCount":22,"integrity":"sha512-+TTJmaDTlxPLGS2roD4I9Rh+IeHLvdaliQJVPTv/5gSWPcXD+8e1m+AoDR8+MIvqYpsmV/n0mw6jqiIOkI5UaA==","signatures":[{"sig":"MEYCIQCSSAPoTV9GfW5KbIjkkjmaI531/DC4K8SbSRzobIMGEAIhAIsDy68mh8+sffSsGROdGLeKRwniuQQDrDfpHyyDa+l5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1639149},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"724fe4d83f0dfedaa3e98b1ba372f4d7553e9690","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.17.0_1786431567422_0.6408108117788984","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"pi-web-ui","version":"0.17.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.17.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9c9be3dd625484f6ca6cd2a8ad29435fb5d3fb50","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.17.1.tgz","fileCount":22,"integrity":"sha512-7DCqwyih2kS5vBPO4UZNA4aHyHTyp3CfYCSb7eAwJ/KtU+7GTemuzCHVBPB1gLe+wZ6CfI8As9Ika5hQYp9AdA==","signatures":[{"sig":"MEYCIQDneCqEtwXdlTqUpO5e6qrrAfT7oZ46aPBbRM0p23CfnAIhAOME4MlVUUiwdQg7Lglzc2oWE1iUOJ1Qt44hSdMJR4Or","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1640514},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c43e1fa4abb365c4a0a93ea406f5bb687b4cfc21","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.17.1_1786435205334_0.9131639909477594","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"pi-web-ui","version":"0.18.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.18.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a0adfe193d5679ab717cd5a4c0850a475e1c47ce","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.18.0.tgz","fileCount":22,"integrity":"sha512-SaV2gW+o+kpClsBmwRCGz90sZCoHCm/U3AothtoEwgofksPqxgSH87e1DjH6ozYQbskjR+uOOiGjMET+UyWjsQ==","signatures":[{"sig":"MEUCIQDi3IOoQINjfwyx8J99O70Fu1GHopiWKN/AfDJQH6zz1gIgcjibQg2z09AJUurpQEqyQUaS9uTZQQMfHVyeeDITG7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1643513},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b38f07a40fb2593c3a76fa453eb7127bbeb9a77b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.18.0_1786509997701_0.5784639587700784","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"pi-web-ui","version":"0.19.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.19.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"957d3ba28942a00cf354edec379c103ec81fa100","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.19.0.tgz","fileCount":22,"integrity":"sha512-MQhf1L1+r3QsAOdlG56y5ZV4Dzr87FlnHUMUlAMbXdqLJNpuvdsHYOkBUfqnh9M68bGVGZeBXWMHuJ+YwmxuOg==","signatures":[{"sig":"MEYCIQC56jVzN5q1O2ia6c3h3IFIGoOtRnoovAbTqcsPDD8SiwIhALO3Lr+ifMVWZJxCM005Ad100NX33blxuBaUXHFVsOjv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1697255},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6a917661f373b721e2df8e465f7bbb2de5995390","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.19.0_1786719571681_0.8580203874852754","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"pi-web-ui","version":"0.19.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.19.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"196e1840f17b0b7094d1378a07eda680a5cb61ca","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.19.1.tgz","fileCount":22,"integrity":"sha512-xOmyqv5vcxaFC5R7I/ge6D0xxo/clBsAknE+Obsu9i0+SF7zpEX7FMOsMl/KXoeh+tjlxLm/fr7luQiH0a8SHQ==","signatures":[{"sig":"MEYCIQCcp54MewLptw4FwUCiYkS1n4kQ50HGVdJxWGAhnAqpaQIhAKyxd5QyCfO+7CXgj3M/ckLC0q/nDCD02BP6YjLK8Ncw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1697245},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1fd4710f90d1f2829bfcbb5ae615812f040889fb","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.19.1_1786720750252_0.36025897436699994","host":"s3://npm-registry-packages-npm-production"}},"0.19.2":{"name":"pi-web-ui","version":"0.19.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.19.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"090b1b6a17243dddaab6f86a54115df56c11461a","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.19.2.tgz","fileCount":22,"integrity":"sha512-rPMzCZ093lJOlXIYTqLgNcCGLJetz1J+xpcck+0l7WP0aPl/VdcbFGL4q6fdzcTK8E/Uc8ZYC39nkAZ6aB07lA==","signatures":[{"sig":"MEUCIAW5zQVIAfWrSJ6GobYLG0EVVp1r9kXrEyRh9abw7bRpAiEA25zGwwPpaPybaBoHEt10U5RNR+EDuHYoGj8rxGbScG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1699103},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a0e51edc96881689f3da2552f0bb68ce0d664e18","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.19.2_1786724044167_0.04571928010742865","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"pi-web-ui","version":"0.20.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.20.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5a69a776390182f2cdae029ec0bc87edbb93e533","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.20.0.tgz","fileCount":23,"integrity":"sha512-hmXT85HACNH0hDVeMJfR8LqbMfe12mA+sXcPRtFVScqohLK9Es1bB0a24sT1QcNcJgVK5eKhnOw7LmE/VIreJQ==","signatures":[{"sig":"MEUCIHtvBGb6RnWn2hITyL+BCyRHBuugsGPtwFex3IawSUSsAiEA8RlKyIZPzUQ5FEFCxTdyY/zMfma3aWKwwHtCHOCjJVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1724290},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cd9513cb16b568bfbf74f60ec081adf0e7ffbcd2","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.20.0_1786768087963_0.2811321229798862","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"pi-web-ui","version":"0.20.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.20.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"f9de365acb9f479afb61cc417bbcc3dd5ed2de6c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.20.1.tgz","fileCount":23,"integrity":"sha512-7cm14srhN0Kc+cQJz7jGWS1+oCvjdnujgdGPM+CPFXO7WcuM7wteXXCrs315OcZKg9YxQhKmGemuxhHNbcEqMg==","signatures":[{"sig":"MEUCIAmqtxbvhDRSBqd1voCLEEBPTJtwCbdgwIXMFymmndBIAiEA5gwXZ9VYJXolt7BLm7Oe/pWn7lpq8whkvZ/HlBuAYAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1726558},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"dd96de39a27c11fbe7b1fa238130d8f6e86acb44","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.20.1_1786780928140_0.6265218336408558","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"pi-web-ui","version":"0.21.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.21.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1b84d6bc7f550708eb2f0ed5f327e7f04d2324cf","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.21.0.tgz","fileCount":23,"integrity":"sha512-S5PJGDZ9tv9LjCorsd5CwXi6hVP+ju7SgwjSOBxMEdhqSeuL6QIz96spqi5aGSz0ixgNzz4rlevNzm0od8t3TA==","signatures":[{"sig":"MEUCIQCoiJrC9HDswSAMtZsztXUu5Z4mATJvuBQc4Q+8L39CRwIgWGUDEjDSbwZdcLPX39M1HXQV1+qLf9V7RSkFCM2HM3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1751461},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cc858c0861010a68bf52647c7268bf29a1ba5a98","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.21.0_1786803548614_0.678638010253513","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"pi-web-ui","version":"0.21.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.21.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ec5d813c70a18689a25a1ab452c2d045fd767b10","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.21.1.tgz","fileCount":23,"integrity":"sha512-lcGeDnaAibXB/vo5QjRdcwcsXPdEzeG+JpMRjUvdD2/ILYunrvA1a65EJJfp2/qyVVjIO6ksYueKgna2jXIX1g==","signatures":[{"sig":"MEYCIQDYn81lYHjP3t3/LmH3ka0UMHmkvz6BB+80Vod8Zb2pMgIhALOx6mKFrcli2CLmcjShKneUSJqN+8ddj6T3gqMa1eJM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1751839},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"59a04df4ee3c4206fd6b93c097d993cd1b96443e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.21.1_1786804958714_0.972681868982447","host":"s3://npm-registry-packages-npm-production"}},"0.21.2":{"name":"pi-web-ui","version":"0.21.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.21.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4944b2ced067dbfaf49abe804f5ce710f225fc9c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.21.2.tgz","fileCount":23,"integrity":"sha512-e77YFz98hYP43DCaD4DXdZ9B0pdqAqXAoCVQvzk/s91JAi+pisP6l2F5+/oQReeh7pKDEYhE93OilnZol7vXjg==","signatures":[{"sig":"MEYCIQDcBWQXR4H66CH5VwzeHm1s9xBmeEs9UE3W6CDhXu9v9AIhAPGor0+RD12L0lsNpxvx1of6x6239LMXf5IJnDw2WyTz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1752745},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"91dc83c11b0b2fd43928935d5cd99211b063b79b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.21.2_1786813248972_0.14768313016409995","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"pi-web-ui","version":"0.22.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.22.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e02766b090179d9213104bcd9c85980d76ece025","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.22.0.tgz","fileCount":24,"integrity":"sha512-aR93XWKfApk78/QwAIzTQOHHQTFlBCsdiuS0e9Pk/hPe+d3a27zF8hHb2RS2HgyEOo8gDHUP3xFEdZVS+NU0sg==","signatures":[{"sig":"MEUCIE1h9QlflR+ti+nXK6WWzn18fNtiOfhRAGX7pOCAJdIzAiEA26XjdGgx9wrP502wESlVnF2Ys5DlkM86lpNkVrTEhqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1793562},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5e7023076049680ec8c7db69112969bcf8cc6e21","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.22.0_1786857897124_0.9049353155864044","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"pi-web-ui","version":"0.22.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.22.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6e3abfeb14a678cb047e4dcb43d6dee953cff903","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.22.1.tgz","fileCount":24,"integrity":"sha512-2bpPquQCFBJn5UElSSNhb8Nx/Wv2usqF5yzHm129hUc7ey0rRKh19ezGNwp0B/QBixXdRjNaPi8996WUMI0bpw==","signatures":[{"sig":"MEUCIDVTj3Y6uZEER/TDXU1y3XdJEvULsocgTPVJ8yua9+5CAiEAi2+UXfX5XYQDRehnaFegArzBTPZ9c5qoJEp23izk/pY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1794395},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4bafae0636dfb1315dc4ffdbe04c82841820dab6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.22.1_1786887773294_0.5812025429882586","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"pi-web-ui","version":"0.23.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.23.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"67f3183427f05f2df807bc1fa6d63d525bcbf67d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.23.0.tgz","fileCount":25,"integrity":"sha512-rAJdn6FlznGPndVlMGxRSIk/v20mG0igHITrLq2kRFuzwAoLmJyDYyrMuNrGtvmBCKNfVvhr3bxGRUj7X2RfaQ==","signatures":[{"sig":"MEYCIQCxAZuAe6/NFXj0cOpqjd/WZ/BH0mxRlVyAhvNlJiI1gwIhALXh7IhFOOCUdERxltQheEGQ7OVRJ5IXWxFTZE0gCf04","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1817667},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6a99597cb062de9de4b996da2d36b01fda9ca002","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.23.0_1786897919514_0.16413557796022982","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"pi-web-ui","version":"0.24.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.24.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0c66c7751bf383aea122cf71868aaf15e9e5a75b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.24.0.tgz","fileCount":26,"integrity":"sha512-zbHV2K3NXcnTEeg9G9BFNXYYmmRpTktIaVuvAXBzaVDj4cRWuaQ/CQ4thSNHCdt1XRN5G2frx9BCJZgWdZEkHA==","signatures":[{"sig":"MEUCIE64tpKDpkollKm0WljFPo8OMfJKRJROJ5HS9IigZcMwAiEAxlq01ueaW4axU/ze8W3FSHONOm8aHGzStcSZQ5Ti2xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1851064},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"88d9e4c9ce79974384c71daa1fb1570132d541f5","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.24.0_1786927270654_0.024402880682014017","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"pi-web-ui","version":"0.25.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.25.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5ea8bc04ab83485e3696b8d8a5ed240ad665f245","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.25.0.tgz","fileCount":26,"integrity":"sha512-Us96BLMnbYmRVKE7ewaT+MtIfSpHW4/YoXpE11Z43GRZX6zxpU25s9PMuvvK1+CS6dqnpq8JE2fuyOzBjmoqVw==","signatures":[{"sig":"MEYCIQCxegLGJMTdQm3TIb/lC8vP4w0ibk6BbGCLI9hXAuKYdwIhAITTcUVF3G9SQ7GlV3s8JQPYDYlYyCloOZfoEafI7H18","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1855466},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3b73adb9b7138eef6d1e18f8a4009680393e0110","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.25.0_1786928319237_0.5022188678926292","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"pi-web-ui","version":"0.26.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.26.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5ab62ba975a746c0e6d7873d1de3e87b8f8d6252","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.26.0.tgz","fileCount":26,"integrity":"sha512-TK022ZTrFt03N3W5cTEjAZ38JyPGQCIhlTcLIjVOEe4xgn5sXBXEvK7TKnYOXJAR8jbyFll6Yqtt3BdITZMmZQ==","signatures":[{"sig":"MEYCIQD/8mxIKWn2/8oHSqgKgNYsWLYepUAIerjtXKmnk3wc+wIhANCOxdSAq6o8RVRUh4dVK8mRn/JRmSmiccdpZMXm1UlC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1858011},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"520db4875e05cacba016295d9e341b41822cb656","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.26.0_1786929701097_0.9177147309529183","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"pi-web-ui","version":"0.26.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.26.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"f0447c9446d175d1ea2559e886c7b43331bd1e8e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.26.1.tgz","fileCount":26,"integrity":"sha512-OlFxzrTgivS/MMaMTR2vXeTAUKDqGrLsOLbFTH7mIzKgJEDAjn0sZRjGukrYykJtFxfWPOpa10WUDuPL8ljAZg==","signatures":[{"sig":"MEUCIQCWjofTb91CwaNwOX2qvEO1a+bPLwQZu/GEOIQt7qP+lAIgV8i7uUR+aW8uAfucnWw3MLKpu3Cfsk25XbastTAyi1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1877884},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"22f2f21340583232e2f5ef7f2bb5d99ec7459984","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.26.1_1787022378571_0.72074938063844","host":"s3://npm-registry-packages-npm-production"}},"0.26.2":{"name":"pi-web-ui","version":"0.26.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.26.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ebe45778db678d7b600b15463d32c72bfc0a9a53","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.26.2.tgz","fileCount":26,"integrity":"sha512-OiffoaeOmcEkN9vtyypTsqN6/541yyE0sGUhWpud1VWoHczzl5hG08+eHl0n3fk4qF6nQqM0jwUMeQY/yI9UMg==","signatures":[{"sig":"MEUCICkKhOViUfCCnZ6Wrd7wem4M/gYeZ83HqLqanea4viIvAiEA1CPzz3LxNP8961sGL50Rv8QuJ+5PzNqRKIiTrOqhYaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1880651},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1b768dd7839cebb4d5fe58e7094c910f746d49af","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.26.2_1787134869677_0.5295651563297374","host":"s3://npm-registry-packages-npm-production"}},"0.26.3":{"name":"pi-web-ui","version":"0.26.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.26.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"74aac045a0abe7c30bdf279e92c378a8fb91880d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.26.3.tgz","fileCount":26,"integrity":"sha512-+lzA/ayKjqA/O0OzvW+nDLuE8+h8fZ0rdVHqubh0RllDHlvc6IWdzGuJGlsvxr00awdDvfPhBwNG1ESSH8ybig==","signatures":[{"sig":"MEUCIQDRkkYY9Wluneb1RR5wHmO9LwUFsDBensNu0B5uaIyVYwIgOME4c6SQX8vO3VHyYDWNfQS2IG5FBJw23bzOTC81wgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1880639},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"550f8646f1a39a09fe68908d7c4d643e0077edc9","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.26.3_1787136271260_0.8585219561976043","host":"s3://npm-registry-packages-npm-production"}},"0.26.4":{"name":"pi-web-ui","version":"0.26.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.26.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8a85074a23d7ad2c402abf415b90086c81b55ca6","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.26.4.tgz","fileCount":26,"integrity":"sha512-Ev7uT1nwFRKoXLjE7TcpbvZew6m9fRYxFwxOxZNLSy20Il8Eu5GGKeTkbT9tBzgIev5jDqHmgzZoLodDRfN87w==","signatures":[{"sig":"MEQCIC0vG9QoEfZ9ijrRPbFWzo4c+p7CiTrYpYWrmYaXfbycAiBdTOvbVUI13Ms954PAtTiFV39k1CPUYjrTD7zKttisng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1880699},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b5acc1ec8741f8ad70308d1ee8c4701ab0b27bc7","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.26.4_1787137069744_0.1254189858594077","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"pi-web-ui","version":"0.27.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.27.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"f679c19847723c2acf60e7aab003125af07ee91f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.27.0.tgz","fileCount":28,"integrity":"sha512-j3Yw+sxJQoUvjveAlPJIkIlvi8ZcGOo/NBRAk/MUJn17cVPabIoo87Kc1JV/SkNcUlHkiAxkyyJ92As96osokQ==","signatures":[{"sig":"MEUCIQDSwutiRsI7koo0PPZilxKuRL4F9xr/rWN+wmsvqoJyvAIgb15G1c/2tFOXrlWahv2MAieayFJY5CLMKt8cU9VqT8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2010489},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ce35fa6be0cf14e92cbdd3172be415d9cac26c7a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.27.0_1787202802598_0.029035812262651728","host":"s3://npm-registry-packages-npm-production"}},"0.27.1":{"name":"pi-web-ui","version":"0.27.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.27.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"444874076b26fbf9ca10faf6f7810642977b1139","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.27.1.tgz","fileCount":28,"integrity":"sha512-4oCB5CYjGSIL/yLMGl53EE1HmtT2djXvBSXrKX8DUoZd7xEibZtuGd11ntIUugxamK8qJ8+6EZxXb/Z1/0CtFA==","signatures":[{"sig":"MEUCIEbTj1q+mm91P9/7mKq5urFNcwUTXORcPqEtGxIKwlszAiEA6t94PUTP3OCNtVZJ1VuVdXf9UQqbwHNmi/wiBZtBe3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2016836},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"db202b9c507ed7e0b2aebc5846adf1d2aff08d0f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.27.1_1787224062736_0.3334013964561895","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"pi-web-ui","version":"0.28.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.28.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"aae07c771d45af6fbbd559c9230f32aefe73426c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.28.0.tgz","fileCount":28,"integrity":"sha512-3HOcRqRZFUCS+K9xRJpH56oenS+fUsQGZSe/n/z9AhUY9UNnaXBTO5o62qQsgao8BwToN8uz476niA7s+xrXGQ==","signatures":[{"sig":"MEYCIQDwaI6Bh1rYHrlsOIRzofr2XBdpogQGdNI9ZMw3HIMQlAIhAP5PFAXNC49rpDxC7dLhquBOu7uEAKjK5jr/S3Lxg8OK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2059227},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"27199ff1f3b56eb84acbaaba119df09195aead45","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.28.0_1787311623175_0.5034186793422921","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"pi-web-ui","version":"0.28.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.28.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5863605d00407b1013d769390e8c3487489d5f6c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.28.1.tgz","fileCount":28,"integrity":"sha512-ebv1whYIA5+4YMZbB1/fjd8xaZ8Oe5WJHnjA6njJul7GQIWOfP83hLGzaESQotPWa7OPJI+w0Orab2oU2S6Kuw==","signatures":[{"sig":"MEUCIC7MvD0ywx7kF9Dm0GSf/BYQtxtoIENKPnsGgyYu4oTsAiEAs6ode1bsnIctwV9caglo4Nv3mSwvZXRldKZV2OvuEJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2059304},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5c3a6ffebc4fc0abd042b76aebaec6e6b82685c6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.28.1_1787315620758_0.6012845134879101","host":"s3://npm-registry-packages-npm-production"}},"0.28.2":{"name":"pi-web-ui","version":"0.28.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.28.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"454cbd6f3d3bd47a645cb0035ad3c8fb215d95be","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.28.2.tgz","fileCount":28,"integrity":"sha512-Nxe3HE6fF8oPrezs6f8FkJJQO3QkWK0faD60X3dbvGQcJtEptARfMLAqJwuez1WicTKVpQ0Mz2PtC4Dej6Sd3g==","signatures":[{"sig":"MEUCIB31w6S2IMRQCLz9q/sC5UptlouuLgbtjFpy3SHlzBm2AiEA0NUkCVJtErbOuRh9bRP3Q1upNQenVq4o0OXVBQjSm4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2059498},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"eff29f9a42a58741f63ac76d20468fe8998bfb3f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:freeze":"node freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.28.2_1787317505868_0.8193442180778292","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"pi-web-ui","version":"0.29.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.29.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3a558188e35d6a2336d2197c1f47efab6ca09ee0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.29.0.tgz","fileCount":47,"integrity":"sha512-uZ3vm2lc57dA9NET96CaioVD7aT1JfuJpLg06lWPb34MkX2urR8jDrcRVBCCCcBlZ/tpXtu12QkIkuptRvvr8g==","signatures":[{"sig":"MEYCIQDCb8hyF0xgi3XyYsX3Sf3mLvwnBfFr9KbXUH9dx1hJXwIhAIg8+cvw0ut0kcJvWC0LBiEUDUzwkGRc/nVfzUPNWUVU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2121952},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5b40acd41423c6371dfbe92f64b7a2a1cc65aacf","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.29.0_1787456977537_0.7594919933977395","host":"s3://npm-registry-packages-npm-production"}},"0.29.1":{"name":"pi-web-ui","version":"0.29.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.29.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"39d347a6ae68197126b178029ebabf10b102f3a0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.29.1.tgz","fileCount":47,"integrity":"sha512-YIADGEW9i6UsiQN0WUqBG7wNwee8NrOL8MmXPRtOoUb41rhAdDeBnwPT+hMA9s/vaBGNL//AAfEbuQnezA/2YQ==","signatures":[{"sig":"MEQCIC4xQtX97e06vOyGo+HKywu+Ig0vjsujL+PaE2rhXENvAiBZJyIH5IjVUVDA5C4Oe8KfNHctweXHn6FqdEyfcTThWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2122172},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"fa5832d7194de1377347107bb86e42ee7daebd43","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.29.1_1787458901551_0.38502620441470325","host":"s3://npm-registry-packages-npm-production"}},"0.29.2":{"name":"pi-web-ui","version":"0.29.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.29.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"de1548edee9951706784e0a6b03b22bbab8837f5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.29.2.tgz","fileCount":47,"integrity":"sha512-3//cB6QYTGwq6can0zAilwcsZCHbnYGjnWds79/pzzLCuDGaTygoKVYZ5aUVEEvfn+PV8G//ohOhOx62k60X5w==","signatures":[{"sig":"MEQCIFky3O6B5JrI8k8kWr36jgLyX45Or+tn/X0cjhE3StkHAiBEItlw3TTcQfjozkpVI1noLWAuaUyyNmXGD7DSYJu00w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2173217},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1ed307fb5efbb116a9e86f3ffae34469140b7e1a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.29.2_1787499590670_0.06606881006575538","host":"s3://npm-registry-packages-npm-production"}},"0.29.3":{"name":"pi-web-ui","version":"0.29.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.29.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"63b14bb84d26dc50771c8897bc27e8b985de7caf","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.29.3.tgz","fileCount":47,"integrity":"sha512-cniCiqh+zsf6/9yXCBqQ6j70I/86+Ub4yvQjQwMpkv0dPlpkUXXvC9DDSRY/34/AC9gV6oo52d6Z54k/nUCNWg==","signatures":[{"sig":"MEUCIQDPzeGDKrUOF1jbX+4je/cibZ3frV+iURNyA9A6uNMmlAIgZsI4yBxzo/KgfFlemIFqHFVH11LYXE9rlN121cb5NmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2174800},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2d86a4a748080f8cd1c826e8cef47544a5d3a09e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.29.3_1787499958982_0.55871219004172","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"pi-web-ui","version":"0.30.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.30.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"032af8be00c2f8bc9610824295200e889d0377ee","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.30.0.tgz","fileCount":47,"integrity":"sha512-wgAO9beFOkrAZtM3iAPHepEH6f27YtszqZS2zCxzKFHHiZi9u/9xPc94AvIk64FfTg8gin/e8wvWtMsth7UooA==","signatures":[{"sig":"MEUCIQDfOwTuGyQx8jH6HZt75ULG0gOWywhWj9BRzwt3Hz8/AQIgJbmp8hOqcJnjuF/7E2ZIu6hozpEa7FPPD/C7/in6Dj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2177573},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"09d5bcf3c4cb4be60fabddd7d6d16742e1b23cda","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.30.0_1787504961410_0.2055655727396033","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"pi-web-ui","version":"0.31.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.31.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5d7ecc3f64405f5161dd3e575a1fe07ff195b4d7","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.31.0.tgz","fileCount":49,"integrity":"sha512-12e6lO+WzWgZREjF93iy1r0KlSIgG31akx2RgPuLcBdtNJ3Kb3o4EQ/iKWg1DEoHOxXjn2gqkPsGFxFBfPttZg==","signatures":[{"sig":"MEUCIGyAUYTEEr0d3TFkw+Kwd5ZKKMSnoYp3hHHnAW5s8C/PAiEAx9zzFCA6MamhM6rR6Fdlnm/zoAjOnrrY+kYJdCDTuiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2454052},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7556de82aaa4c600bbb5d7645e059ca0158d5cad","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.31.0_1787538552253_0.39610608936195146","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"pi-web-ui","version":"0.32.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.32.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"d2815baafd97f6c096d1c5eed01ef27fc7d08a34","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.32.0.tgz","fileCount":49,"integrity":"sha512-9rrOtvwCLmJz+bzTypJQaOBtYUhpnFw8tdgraN9JQjM6rImyP5gT3VyaMspGfkYtOkfpu6CAH7qvPYc+jiZgUA==","signatures":[{"sig":"MEUCIQCKCAQOYpgEtFE2YoWCJ94gbUckqVzYjCC7Ihg5eVGmWgIgbrA72XRDBO0FiMtsFNGxFYdT842szqy6EArl4M1sR+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2453377},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3016d3c194ca3f6022243bccbb74e5a9fca1352b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.32.0_1787544936532_0.5936326713900706","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"pi-web-ui","version":"0.34.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.34.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"112ddb002ed79fa46517ce17c47a3b71923e4a0d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.34.0.tgz","fileCount":50,"integrity":"sha512-0joJ6sLMTY6Dfa0BARdRe3CPkz3PcItXX/IV9VbhjoiLBLHX3PCetktDUFQAJRT8QnVwAeB9g34vKRTOZV0cgw==","signatures":[{"sig":"MEQCIAy3FQw2od5w6j1/J2Jzr5RLky4H7b3XoMblnQfqi9TSAiBEe4DJJ4hvKrrLjJ1F4UhU0QtH8UBJNm7B1aptXYr3yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2554128},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1be44997b988f9e8b1bc2bcb1490c51beb102bd4","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.34.0_1787589746878_0.2637227178868349","host":"s3://npm-registry-packages-npm-production"}},"0.34.1":{"name":"pi-web-ui","version":"0.34.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.34.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"dc3ac95244c504c14c6376cb2ef3c583e2516d69","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.34.1.tgz","fileCount":50,"integrity":"sha512-rMwPoVCmSEgdFCMgO+o4MiWtP9sais14QtLw3NdKbNNlN8ZcgSYKevwtJx6K29WgK4liaQ2Foo5I3HZOm+7Bfw==","signatures":[{"sig":"MEUCIBzEKLqjMBhLxPY9CABtR819rGUtadde36gFAWywCDFGAiEAyTJ/gyKecVCtVRjXmbB89/xdbEbFsjV9OFTsIzW+Y44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2554506},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b4b8902c91eb06b5e5e370664155d87ebf4e1670","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.34.1_1787590942161_0.14734110974408998","host":"s3://npm-registry-packages-npm-production"}},"0.34.2":{"name":"pi-web-ui","version":"0.34.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.34.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8bf26ccd445f16671bec78f5027622fe6749ef2c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.34.2.tgz","fileCount":50,"integrity":"sha512-Z/kYM7s7XGRQ85MG2J83s9MNXzqIxl1BRIKq78bsGmEzYwRjGANHLNEWQfRZoBNnStPdzsgPnV8a00/T594Sdg==","signatures":[{"sig":"MEUCIFsb8dJ/e0TqrZ7D3/Xe5DuenCXUPK/cDdOFm4zPvfAlAiEAwWH7NBOozTi3KG4/uZkvrhtdZM53uYz//1KIVTnm32Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2554738},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3d8e491d889f5cb5f86b144955f95fe8fb61c8a3","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.34.2_1787592005133_0.7787035743019592","host":"s3://npm-registry-packages-npm-production"}},"0.34.3":{"name":"pi-web-ui","version":"0.34.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.34.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"35132c3328fc50113814b2799d136c6f39b17b8c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.34.3.tgz","fileCount":50,"integrity":"sha512-t1ad52TgIhJwT3mpyeL5oM8d2B2U511sQt80Ilzqbu/vEcA/56z0XmdQ3BgEeOf7FEsXGz5XCHXfWyVj+zXRow==","signatures":[{"sig":"MEUCIFA0tOvtq1Mr0HrJAsE2sEd/hK30xn5R8zaOcotAzJRtAiEA+WV+ItlVyCoQDJV9L0LO8h2f24uPEFepBJGTiludcOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2555903},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1b8033b7ce4dedcb731ba4d95c23ea9fc7b7e489","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.34.3_1787594099889_0.6482948030773981","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"pi-web-ui","version":"0.35.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.35.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0aed5f1fec9e5c8cc23a59504927549a520e9c40","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.35.0.tgz","fileCount":50,"integrity":"sha512-4Q3uGmc+OQt/yg6l+GqvILeam6yCI/jU7WSz0+m9U5aB7umm27vwjazCCU2obj+23xX9ucw6JavBliOE1J3Eig==","signatures":[{"sig":"MEYCIQDYDJO57U/cY1QsvNZcOmQR/QU2EKdnXlIGXRStfA3ZmgIhAKt7VW9zzri9J4uBghAO/ZzBZJb15JNuAKl9fea1+YOf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2554210},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"41aabdd8fca6900ece07c684cc46fc38ce844f87","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.35.0_1787711801474_0.10559171274438195","host":"s3://npm-registry-packages-npm-production"}},"0.35.1":{"name":"pi-web-ui","version":"0.35.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.35.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"aaf346fccc3130a1467f3ee2e2e520dbeec75e59","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.35.1.tgz","fileCount":50,"integrity":"sha512-eRk3eWS6qH0xUt/XbAeLSRHeGMLKmzSiWd2wNEKRD4TW5PYMxqVxhrx/lki1gJx/Xvi35kBEMkoZnzdwdpuWgQ==","signatures":[{"sig":"MEUCIHb3WhB4Y/XnFh/SxaD+eBP0KUNLLjRVuA9CS8dGyidNAiEAhOt2DfWKYubm14roKqaCYN1jfuh58gOf8QE4T4XLR9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2569336},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7bcba7c2319881828ca2b5e0a9fcf1c2a3f32585","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.35.1_1787796572384_0.9452150790185965","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"pi-web-ui","version":"0.36.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.36.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"568c1da8df59d8938d287a8b22b6b3372eb4a4ac","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.36.0.tgz","fileCount":50,"integrity":"sha512-u536kE3BsgD3XxyfbNu3DmV1BiAuGnm8MXGfXF9uj10V5eiIOSsU0quFuIoQDX373WrSUiIds8VW7Ei2/evKMw==","signatures":[{"sig":"MEUCIGtTgf8XfMd7rpODlwfVtkQGkkvc9/G7Q/dJLo1jU8vJAiEAs9FqP/RLp3YmYRD8reP/T0otNc/NsnXpYquxguqiK3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2571769},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2b12fcbeeec4a103b46c82e3a0da94c2bede230f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.36.0_1787799328382_0.36572244696902967","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"pi-web-ui","version":"0.43.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.43.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4b691410e91a9119594dfd08928dd08aaae95c2b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.43.0.tgz","fileCount":53,"integrity":"sha512-WVdTg1sXZ/DoXBR2cu27VBcioark9fKeUwpGbgwM9w8ueqjcl+quMtgIFMZmXcZGi5hlcgFB0chs6B5+L/0clw==","signatures":[{"sig":"MEYCIQC5UrvGoYYD7Pawfy46DYYeelxVTOR2tClWw5mlqM5bJQIhAKeoaMozzFOD0Bx8qA/lGh7igaVuFyeSCLSpLun0hhAN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2645692},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"87aa43885ea00656ab4c8316fce764dc75f09017","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.43.0_1787836458956_0.8150531668752843","host":"s3://npm-registry-packages-npm-production"}},"0.44.0":{"name":"pi-web-ui","version":"0.44.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.44.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"54ffa9f83eb4fce54fae060df715a547c6a6151d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.44.0.tgz","fileCount":53,"integrity":"sha512-pWA59YgoRKdK2iRCdruhPgA1aXhwRb1grEQIJPP6Ve82DHqbZYEoAPZsZlnMUctYUn4KsX24PLTtlCJcMgLVHg==","signatures":[{"sig":"MEQCIB2j6zGgyNaBxiVoatR5q7577sT3umTt06uSLOKvMuz8AiAX9Xf6yFaPm8gSgUCn0h+BzIrb6jSEkZYuJ1VlqmU9kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2648730},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cf03d93e0afd5bd894764be8bea09d37ae94febf","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.44.0_1787849522564_0.4029505490151928","host":"s3://npm-registry-packages-npm-production"}},"0.44.1":{"name":"pi-web-ui","version":"0.44.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.44.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2c6a9edd38529ffa395aff2657c5a2206504e269","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.44.1.tgz","fileCount":53,"integrity":"sha512-dWPx0Rgphwkpr7QRFcVrFKd4wtog3lDNzjK65T3PGQUkXFjHCt07VZjfquVNRaQurdfrcDKTtBqKmgrtp3ZjgQ==","signatures":[{"sig":"MEQCIBHu1NMM/IwsfKj7BeK6TaoYCMtYxydtK4enAD//6if9AiAD3Qd+Vo+ScjwWFGUioG+BOOM1tZUSxvom5boIoTd0Qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2648867},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"deca63de84c1262c1e94b21e3fdf4b62f95ea3cd","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.44.1_1787880729840_0.27747555113954947","host":"s3://npm-registry-packages-npm-production"}},"0.44.2":{"name":"pi-web-ui","version":"0.44.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"license":"MIT","_id":"pi-web-ui@0.44.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"f5269a53142ab007a39f3b42bac45ed14c2b1f17","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.44.2.tgz","fileCount":53,"integrity":"sha512-h1FV8PXW08X/UI9MnMiYYBa2eE6guBZrvr6RR203mjCUp7mfZH8kzm40Zt20ENOMiCKdIvPcFYuKGR+pbakFFg==","signatures":[{"sig":"MEUCICxV299+Jw0TPRirL5xxYs0dFQo1rIdPc1FnEht3v9HQAiEA48TlX1kjmj/jE3jOXwwWnTpO+5g1vxhPuELYKSJoExU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2645797},"main":"dist/server/index.js","type":"module","engines":{"node":">=22.19.0"},"gitHead":"bbc2711a9a712cd0a47262bf2b002039f481cdca","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.44.2_1787887910360_0.3512822576109691","host":"s3://npm-registry-packages-npm-production"}},"0.45.0":{"name":"pi-web-ui","version":"0.45.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.45.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1b5837e0279046b0c52b6ff2ee9d8525d75ea989","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.45.0.tgz","fileCount":54,"integrity":"sha512-GcILlXPjkSuyFXA/WKGFWOOmiN8t5xY+umBbHpfZFgZzWJfTQyA3+wn1J4VxFIv0KEC5j5NOauX4c8VgkpU7lw==","signatures":[{"sig":"MEUCIDt4LChYbYsXsybNvBg0XRgNcQQ7ft2MiLm7fkguOP1ZAiEA6pV/iIn/MNR3YxtI2KsU95e4usACYwoRBzlcsuIE8G8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2694918},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"23b1849394ebd8e49d566426befc26ccb882a055","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.45.0_1787923498677_0.9727201163705341","host":"s3://npm-registry-packages-npm-production"}},"0.46.0":{"name":"pi-web-ui","version":"0.46.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.46.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c5d0017f538f97363de95b3dd7217aca99f8767d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.46.0.tgz","fileCount":54,"integrity":"sha512-l+pzkyf4+KdSwp3/k1ak8JSppTVfiMECRkFN+QR6NLaelTZwPw6u2hhbIb7Dr64HNi2MBnD2S0wPRm6tyiG9pg==","signatures":[{"sig":"MEYCIQD2iQHpro64aguXxy0pPLss5pQydBw36/JlXJlp3jNnsgIhAPSl3cEEPyTuV5L1UtkS5BZLbvY5UJ2fTvFX1G+8gpNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2700893},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"90abbca6f23a0af8dda8feb5d2e3a09b44ee45cf","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.46.0_1787934487441_0.43149877964764616","host":"s3://npm-registry-packages-npm-production"}},"0.47.0":{"name":"pi-web-ui","version":"0.47.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.47.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5b42431971bb95fc7ae37a303143c557bfc1ee27","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.47.0.tgz","fileCount":54,"integrity":"sha512-k9g0vVrs5HUnU+4CxEPveKm+yT+cwZ6mH8gDv/gERM6WYcxVFO67nAn0OCXe7Lztd8kTXwQwwxZzbw5/htn/4Q==","signatures":[{"sig":"MEUCIQDYGjMWkbtR8Yuefylooqz+aKwR+V0Httwm5Ek17ywCEgIgRREs1GqNWBr5BAMV8jZN94soXmQifAiWkhl+0fb40U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2702867},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"96576cf657ad47c34bb6ab38f25e9792f3ba4f5e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.0_1787936539065_0.8228567118499197","host":"s3://npm-registry-packages-npm-production"}},"0.48.0":{"name":"pi-web-ui","version":"0.48.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.48.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2b5ee67a3365a45b89d262138b9b24f6550254db","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.48.0.tgz","fileCount":55,"integrity":"sha512-0gn2BqVwGSxTJONMGnJs+AtCUNRcSWuZ4J7M75ENsEADb0AKUfEugBiEuJbwKG64PFCwQZaBFT6hv2vbD50p6A==","signatures":[{"sig":"MEUCIGGV7OjmVa1zBRgMLrMB7FxPx615Z44KlgCqT5MfA09JAiEAkmpm3h5jQpp/t5OV5lOeCDMJsxsy19lEt4BiDwdCQ8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2769760},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a499f8f2b2d4d27605b3244e4a401bc91dea0a00","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.48.0_1787966749498_0.7963534281494831","host":"s3://npm-registry-packages-npm-production"}},"0.48.1":{"name":"pi-web-ui","version":"0.48.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.48.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c8ed4f67d1a313c54be21e7b470e5f66c7fa2d49","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.48.1.tgz","fileCount":55,"integrity":"sha512-L9Lik1P2Ew6YqIIQSJ1CjyYHRYd6ehXT7ijUq4kUmKlKiA5VuovwvK4vDeCfUhw2rk8snonbTlsFX0JnsFWGdw==","signatures":[{"sig":"MEUCIQCGlKbRe93Bi4buFcuuzRcE/Gg95s59KAeulNC4bDD6TgIgAO3GNI95p2G2pg3EEcS63P9NsJrToaimCOswGzJEubU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2769982},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"483fabbc98022612a9e90a83e13cecc07fcce549","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.48.1_1787972515889_0.6925258093234425","host":"s3://npm-registry-packages-npm-production"}},"0.48.2":{"name":"pi-web-ui","version":"0.48.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.48.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7f1d898463366ea1346f4e63d591da99b64bf4bf","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.48.2.tgz","fileCount":55,"integrity":"sha512-UgnVQRnkCdcaoOTxRyRl9lumaRp9fsgjbs4gObFV0KtbnTfs21lJVySdaItOgM3C3mj/llBeGGQk7SaFhNoFEw==","signatures":[{"sig":"MEUCIQCRaGNuCJa1XMVnUgl/EYgXfjA1MBBDoxM9iQNYWc8d5gIgeX4W8w9sBwSxCd3KgdOzizVtApb8/e2fmBGH/ob+/kU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2770098},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"935a62030a8f3b7563b96eb9a88bab6bc9b07d5a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","electron-updater":"^6.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.48.2_1787976757063_0.25963871454590803","host":"s3://npm-registry-packages-npm-production"}},"0.48.3":{"name":"pi-web-ui","version":"0.48.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.48.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"fee3d5eab6a79469c567d170ee07bfe9d825eef4","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.48.3.tgz","fileCount":57,"integrity":"sha512-4tnX1MQHEhXG6FvR9tcNRxVag8GEC8ihOH/8Y+J7PjJdtlslH9LyZoDwn9ODI70bNjqzxz7yaVWKknd7RLtqTA==","signatures":[{"sig":"MEUCIQD3bLT8Vs4FZTIDrvDh+jAa/r5lx0IdUHVDjxzATP92xwIgVTKb9/azZXrxyEAupKB0rZdaUGZuYWUM56fQzaJ0LgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3092343},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d162c353a3b57b16b3faa684ad845e98055a633e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","build:electron":"electron-builder build","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","start:electron":"electron .","publish:electron":"electron-builder build --publish always","build:electron:mac":"electron-builder build --mac","build:electron:win":"electron-builder build --win","build:electron:linux":"electron-builder build --linux"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.0.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^25.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.48.3_1788010807403_0.6023393182594361","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"pi-web-ui","version":"0.49.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.49.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1fd94eb0f3c60151d9e0c7245d22a2e7db60305e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.49.0.tgz","fileCount":56,"integrity":"sha512-NGxHnhiLDzsPZqN8gWs+orRK1Fe4Snq/L4o0WwKJGtLBOTGHdVlt/kYJVJ/xsZf5u9At2QJqUteD0KXthBodyg==","signatures":[{"sig":"MEUCIHgcc3QT48j3apM3gzi2jkijWJBIoEonhJcEj8wxmOCbAiEA1A4Y53pdbsUQCDu9MUjhhbPrMpLpFQw8/cQ/0ZIL+ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3081193},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b1d9fc9a303e58d1c9fc4ef9c416880b02f70c13","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.49.0_1788012750465_0.7715533709309932","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"pi-web-ui","version":"0.50.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.50.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"640bd4ad8e5e7d51b606caf890e359bf26dc777c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.50.0.tgz","fileCount":56,"integrity":"sha512-9g+3VayTN8RQb2P1RbfkgqaxqquUFkLYkVBwZKMcc2QE4CiFHL1zrHG7wiOGjFhb7vBwlCJaNHhnRZeVgtMjtQ==","signatures":[{"sig":"MEQCIH1msXu1D2+4bcHh/vODxyW2NLgCgv4nFg9ZJu9+5JTpAiB1h2tdugOCkO49QAVZmDkBnnCdQMknA605NBP1J0Bzrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3072226},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1a218334ba03dd48f9600c1796a78759166b5a6f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.50.0_1788018299879_0.625620704563643","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"pi-web-ui","version":"0.51.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.51.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"79676126ae1f32bd5fc20e551c21478e237ba034","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.51.0.tgz","fileCount":56,"integrity":"sha512-vuNICDtF7R2a8nJOolOvv12Catj7Hacf7afwr8RluB0V4MCwxwXd7LkBY5PXiENvStnnf3JrPe4KQdzA0KmqRA==","signatures":[{"sig":"MEUCIQDuIRCdTn78iqcUNOUNLtGgkVLP7SN/aXhsky/3b+Z7FAIgRX7WLmvGwz65RHlt93ZQLfEn6JLCowt+Xy+KqiXEL4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2346884},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ac6e54c2b1580368eb2df56220e20706d80b8f34","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.51.0_1788055668446_0.2207966601981235","host":"s3://npm-registry-packages-npm-production"}},"0.52.0":{"name":"pi-web-ui","version":"0.52.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.52.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3f1aaeda4db8c6363e8bd8df4d5fec5e6c499e56","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.52.0.tgz","fileCount":56,"integrity":"sha512-o/Z0n5XwoCpx07jd9xB3X9UaGv4smo+2S0YCMFRLn/tSspIg/KkmGPk3Rk8trlb3UlwcRQ3SJr5bc3PjLqCk3Q==","signatures":[{"sig":"MEUCIQD9PEIXV6wMgV7+LDxB9U0GziOMRmDtXWs9mdXWd2gUrwIgfTLEjAH6hsPpB7uQTaXD5VmjzGOzjJu3azguWD4Nhew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2346914},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3b51e81c7149203886a450dc23e72895a4f3c47e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.52.0_1788057389903_0.5608230556634479","host":"s3://npm-registry-packages-npm-production"}},"0.53.0":{"name":"pi-web-ui","version":"0.53.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.53.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c3d84fa5b43b020fe214dd71b65d55aa4e35c93c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.53.0.tgz","fileCount":56,"integrity":"sha512-ezngKmTzLiXwllVZM8lupS0WTa2r9bHQrxh8UWJTonTJOBRy95Rx/YHbZWT6nkAg+kSYX2CbvFOeFiBoe06pnw==","signatures":[{"sig":"MEUCIQCH4U2SX04XGX+bOpoZWXsO/qItSxyDCmcpYkhkHSPVRAIgVrqPCdc5uVuOAbWLt997hjPmJX/BocAjwW4ga9ljbFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2350921},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6c2da2c1e5c92ad0044c037ab49d2f7f10fd2114","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.53.0_1788069885989_0.3448350275034986","host":"s3://npm-registry-packages-npm-production"}},"0.54.0":{"name":"pi-web-ui","version":"0.54.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.54.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9624998902428bf91ea9e8b3c86116e634b9be30","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.54.0.tgz","fileCount":56,"integrity":"sha512-2Sx/lrJo8nSR0F0GUHr/Sb96KWArS6WhmSOVzkj21c5WvJ3Q55I3gbGIXhgZy/iJYFNOO1O7XRtzwGN40L9Qxw==","signatures":[{"sig":"MEYCIQDqy2Mp6vQXHYZ7J+iutnvHiVfCza7e5ylPVBE4YHnqDwIhAMFPJMt/+FIMJLLn5JSw5u6L4t32a/1Aq8g/c4QyaUTt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2357438},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"53583c29098b84463fb3a00c47feb50562001800","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.54.0_1788081165766_0.952821623618419","host":"s3://npm-registry-packages-npm-production"}},"0.55.0":{"name":"pi-web-ui","version":"0.55.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.55.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b999963bae330c777a54c57d66aa5999a8bdcc3f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.55.0.tgz","fileCount":56,"integrity":"sha512-eKPExlQudXO0utI9QTWssiN7w30O/utxEiumYWK6JLa0HhFuW22SlAEuxL7zcx7Tf2U6n1bcckLIJtun8YMzAA==","signatures":[{"sig":"MEUCIQDTD9JWSH6GuIVmFm2SSKGgJD6KByFDga/V+6IsUP82wAIgS2zVMfFN8wuYcGFgDVr8Pa5+q9abofIDcFHae6KDk0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2357866},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"943471fc74b473ce0f79bdce388b43aca92196d5","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.55.0_1788088474939_0.5866897212702715","host":"s3://npm-registry-packages-npm-production"}},"0.56.0":{"name":"pi-web-ui","version":"0.56.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.56.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a0c307e0b1c9a8f7c0ef5236abe240f8e51fda6b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.56.0.tgz","fileCount":56,"integrity":"sha512-LteMGpbUx1qCfaprHBoDfJ0mKdY/2kVal4jwSzf4uOCsU+hhOJBPonHPwg3hpMmN8dbPS6ZEJ/mWXlruFCGssw==","signatures":[{"sig":"MEUCIFq65jo/u98GUwOZCnjOvkOtswDda3pKoTNwUpj2/VhdAiEAtZ47Dvp35x49pzlBO1yD4qQyiD7iBqf46DZhImgFr28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2364070},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"7da30a380e7abd1e2b6f50dcbcebf1dd8169ba42","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.56.0_1788090825535_0.6779959619082683","host":"s3://npm-registry-packages-npm-production"}},"0.56.1":{"name":"pi-web-ui","version":"0.56.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.56.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"94df81a8a4c49b678ff8ad44b0b4066b2b8e0dec","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.56.1.tgz","fileCount":56,"integrity":"sha512-9q4RrHiDokNVXmk0w423SNsTpgxjMqPlgSQCSCgsxNZdxVA4vJ/vAs2vSZeZfSdjFDxnGtWc7mtKmTWZzZb/Pg==","signatures":[{"sig":"MEQCIGqq3Zjs8sxoDL5WkixePs4W6h3ycLkqvpShpfoniR24AiBTdoN9qw0qkJYDBGZd8mov9uv18RiVgNvRTVdKCOu+Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2364383},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"54e4418b58edc2df980185713b0ea7827e771ebc","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.56.1_1788091615497_0.45544627553717065","host":"s3://npm-registry-packages-npm-production"}},"0.57.0":{"name":"pi-web-ui","version":"0.57.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.57.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1d7d21a89c2361ba3f582fce78e8e51815c71e6b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.57.0.tgz","fileCount":56,"integrity":"sha512-MN6Nq7kuoVHlp1VYf9dYzIiwB71tta/+vKTZiCukJBrGH2MyBLC4U2jKcoHuOiz7VfJLmh/kA543pBDghXNLOg==","signatures":[{"sig":"MEUCIQD0zKupP586Kf8wN+fq+lrixXUkZk6SBTdXe8yyUuHWrAIgSpic2PVOtY9ksdlYvpdytjuwRiAo5Y+OU2SdO6PtIWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2364572},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"247f89280cd70abd21dfcf0626ddb65df08b4484","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.57.0_1788095078853_0.4735791971360628","host":"s3://npm-registry-packages-npm-production"}},"0.58.0":{"name":"pi-web-ui","version":"0.58.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.58.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2257d8fde408e7e7579120e302fe13cadd997b0e","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.58.0.tgz","fileCount":56,"integrity":"sha512-E9MgBjsjyk0q3EUns3ZX2JuDvBUM09U8Slw7t5P7zBiyMLf4aI5YtMDwruPTyZMQYIAdgW1jr6LPxnLl4fPkRQ==","signatures":[{"sig":"MEUCIQCVowLm3iT5h/ZubjtJSTJqLF876YpOt1UD3Z11unvL7AIgfwekKPx9bnEEAq2j/0Oa9KlsEy0827rAcSa5UznbJxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2368352},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b3f3616100bc35f1c1dec9a24541ac8497bf34ee","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@earendil-works/pi-coding-agent":"^0.84.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.58.0_1788101630152_0.867622985353738","host":"s3://npm-registry-packages-npm-production"}},"0.59.0":{"name":"pi-web-ui","version":"0.59.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.59.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"81ce097344b61ad2a68e26b55f98ea60afc178b5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.59.0.tgz","fileCount":65,"integrity":"sha512-kS4D/3ImXwkbNXIL7rqP1ssxmboGXYWqP3yk+4Imp6l6uz5FDBdNXsaDhFmrx+kZzDhjtF0ZjEOFVGhw7uVTjw==","signatures":[{"sig":"MEYCIQCjFHTil1SSCGQ7bNJNxg2dLLMgRFydyuvL1AYJ5rx14AIhAJHunr6QJ5CCkka5CSI10JPQHAJNdprI0HsKkBFLY6qp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2600326},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"9dab70218e3095846be14401ac1c24a7191c6772","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.59.0_1788269290278_0.12958097621625497","host":"s3://npm-registry-packages-npm-production"}},"0.59.1":{"name":"pi-web-ui","version":"0.59.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.59.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5dc51ad969aa510d6464128b1bd238edb4c765df","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.59.1.tgz","fileCount":65,"integrity":"sha512-3X6Ieh6VmVo0lEt+Vei22GiE20Y/kQgPDdHOip2D3EqVO4SGt6fAChD8fCyAbKbxOzvimzal5YwZtsexkEV/4A==","signatures":[{"sig":"MEUCIQCz1aeV/f6HyN1ZnzWv3sn8EFQP8WjC75M94YaO3WMAWgIgO3u9EcZTehCVv8JxrS1pwhLItPDpdJMrLWkwJrUoY78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2605875},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"552cc82b63986d09ef5c995935f1afdf22e59645","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.59.1_1788311643902_0.7687710588016545","host":"s3://npm-registry-packages-npm-production"}},"0.60.0":{"name":"pi-web-ui","version":"0.60.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.60.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9a2e22df673725076316f73cbc5d8d8b4e4dda2a","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.60.0.tgz","fileCount":65,"integrity":"sha512-wATN7XDtiHXM969zCJzcolvk4OUsQ53qeDwMQS381gL4i9wV9EeQrpBemXlR0KljQOEux2TMewPWyECRq2JQEw==","signatures":[{"sig":"MEUCIAhaoTaIli2s8DoCZ5OZTNjiPAI+0eWfrqwjB0aARfvMAiEA/aQZBWe2+7l2GbdhHjwOM5YAXJKtQoX7KevChUfYfSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2605767},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c246726122fc16d0bb325d6229f6ef68c183234e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.60.0_1788341007670_0.23738731483961661","host":"s3://npm-registry-packages-npm-production"}},"0.61.0":{"name":"pi-web-ui","version":"0.61.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.61.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"eaa095f3cbb441aecb96253f7156be92b09c6f9c","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.61.0.tgz","fileCount":65,"integrity":"sha512-7ScoHzV1A81Dbllnn68WAWSAEEtwc6yjLocU55jWycbYWF0B6M0T0OqEyGajeI1kb/Ebvzwy1rpG81kMh5K9xA==","signatures":[{"sig":"MEUCIBNP76LYGjbVdZd18qRoOeHCblNzycKnB6PTpj05ueK0AiEAokwz1jB8FANuboKV7hnmxRSVMq6KRDzHwxY9G4Y5gsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2639930},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a3e344707b8f9ab62a3053526e459dcb7ebbfea4","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.61.0_1788356974241_0.13853114820722934","host":"s3://npm-registry-packages-npm-production"}},"0.62.0":{"name":"pi-web-ui","version":"0.62.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.62.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6273832ecb3aeff19cfd7223e5a5d30cb78dc997","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.62.0.tgz","fileCount":65,"integrity":"sha512-0BNDcXn1TY4gs0TK6Zzwzb4COvjTuTTqzuNMixkHxHeiaL3qCb1oVdzEC5yFymYTcp2mTOydRcXKoY+jQOXRzw==","signatures":[{"sig":"MEUCID9TBG+juHTj322vFE7xb2xy1QrV1JjcwbOueq+HyWmUAiEAk1QSvLZjG24E1JjEx2OVr/Qr5SUrT6JWrSCp5vM4EBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2650144},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a537aaf72698db60f7e1686219a53a39dcdf2e58","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.62.0_1788368901223_0.9838619864503404","host":"s3://npm-registry-packages-npm-production"}},"0.62.1":{"name":"pi-web-ui","version":"0.62.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.62.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"044a84a3f782c977cb227a6a59929333d47a03db","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.62.1.tgz","fileCount":65,"integrity":"sha512-/IxA1RdtfNZUQn3uWLZA7ByX2Qd1O6vRVWhMK5accR6HloP/1Ag0R7cs9AdVZAn7H1suRKr9jNFEvDuSxwYYmg==","signatures":[{"sig":"MEUCIB3xhdMOiuI4cZmRmYoh8BoCe39ggn7CExIp6BWf/1gaAiEAn//wvk+ybVUqB/HEix4D2FApleCYd/tmOHLcDFtPt1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2650160},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"760f672a8e764e223041d34a97a9be72e8d194a9","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","dev:web":"vite --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","vitest":"^4.1.11","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.62.1_1788397999768_0.4732717942472655","host":"s3://npm-registry-packages-npm-production"}},"0.63.0":{"name":"pi-web-ui","version":"0.63.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.63.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"47431f2f1ae785d2ec14ce7115c6bf8b70fc2f7f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.63.0.tgz","fileCount":67,"integrity":"sha512-fbT70UYmWpBItbAgcL+ECjq/QBhj5RCE4ibNFwIcskLLEiHLmv5qNmt8NYkW5N7AMBWlq5q3WytS8qNV67EjdA==","signatures":[{"sig":"MEUCIQDH+kZG4kjSHT1mlsCNdi01bfALRjUDe62w83XvL2n3NwIgD5k18GbiCtis+GL8WlOJvm8tyuchPN35dNLa/l01t9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2730829},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"906a4e815d91fa8dc3d3dc16f490641ca5f4bf76","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.63.0_1788442879408_0.8857405843086443","host":"s3://npm-registry-packages-npm-production"}},"0.63.1":{"name":"pi-web-ui","version":"0.63.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.63.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"eb46c595ea0c21fb7095ec365b9da1c5cfa939c5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.63.1.tgz","fileCount":67,"integrity":"sha512-oZXdKhuocxdjXJR4rbbA7rQcaVY4I1Zz5L422HP4xvTa05Cx5UaWKe+C2YriDrDfx0aRdPZu/xolPRlt8jQwng==","signatures":[{"sig":"MEUCIQDcryPmG5pdYilaoKLLWWErfZDjRCo6NHN48WO7CdSc5wIgDL4H1R3onSrRe2MVssTHMzI68JzaVfezPeGfoIvCsfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2730894},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b906a46347ab0fe9e7c5a027926381be92923e1a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.63.1_1788444759862_0.8775655987093132","host":"s3://npm-registry-packages-npm-production"}},"0.63.2":{"name":"pi-web-ui","version":"0.63.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.63.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6906ffd32cef8d068ec51527353344f324a9ab0f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.63.2.tgz","fileCount":67,"integrity":"sha512-cLIJ1lp7EXodKK115UuVvIYS9XGqE6T+dOsak5d1gLwFeKsR4o3mSUxtwQsWf0qTgzkElz3nUe13TSc5y0+DoA==","signatures":[{"sig":"MEUCIA7TE8/5ZVaMZ4mYzsBo/97S/IOxgdpic9ou0XETKY3BAiEAhjQo4mm5b3aNwnMSxQxTeoF+DTvU76WhYZh95l9hKRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2736294},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4484627a4b81f236c4ba522fc9514c21e8a86043","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.63.2_1788448958767_0.6367552825605418","host":"s3://npm-registry-packages-npm-production"}},"0.63.3":{"name":"pi-web-ui","version":"0.63.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.63.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"73c954b743d8bdf352d72d0248296f3f7bade00f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.63.3.tgz","fileCount":92,"integrity":"sha512-ZIymK8Fh/tlC0+hQfYsOrqshqwir2c41LGxWtNrJnnxc2nMwElM4v3yXm5g4onLehewXHF2xuMNqrRPmp38IvA==","signatures":[{"sig":"MEUCIQC13IEbWtMC/OplpIvsvwptRNQwiY5aUCs0mddZ2XfP5QIgcdEOaI1G9dprz810B1Hf9Wk0ZtCYnyJ3Kf4m8L5iits=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDcChY+cXxIgxniovHf4zdwrE0ZkUnd4R2zxq7WaaNxXgIhAKVXtdhvBig2ENDJQZ9epX7Ozo0uxVJZRy3K1Z7UmPcw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2889447},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8319a41c7abbb83a0e76d473b1d015cc5a2f0014","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.63.3_1788486676059_0.8887102330227965","host":"s3://npm-registry-packages-npm-production"}},"0.63.4":{"name":"pi-web-ui","version":"0.63.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.63.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2bd93d40d1f609765d377750c944fb301ffd5e27","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.63.4.tgz","fileCount":92,"integrity":"sha512-stczoabeXZ1vtzZewNuzESsqaL8n+VS0Ldf4lvP4cig+AAcEyAKPfjQyIYa0DTRkWyR59/qmwIT4yeYb8w9hIg==","signatures":[{"sig":"MEUCIDI+6zPsiyrovgECsgOE2LXNlQWoQ5Rei7/O+tmz+sZCAiEAuTjS1+6O+xAGRuEtTCECdriKjP6H3o64L91r/Z+Gd/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDKCUcQuPsYSKY35/oYqv4Eo3f5SzRrzOHK7WHBPK7c3QIgQ0H3xdtjIe055n2Ivb+IQcTqERA+rdEauaL+eBpBznE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2889507},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8467d7cc99e1a4d326c0075935974c7d4b2f1b03","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.63.4_1788487771512_0.7998039781930222","host":"s3://npm-registry-packages-npm-production"}},"0.64.0":{"name":"pi-web-ui","version":"0.64.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"750a2148fcdabfb5d8ecb2fc001c7f7277131385","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.0.tgz","fileCount":92,"integrity":"sha512-XHyk9OHSsn7fOpxCaG8TGWR+mzZiqHAm/iZWvPAiMwvxHbgLVDNoSxvV9/9yDFPTrT0/QTT00KW20bekwz1/CQ==","signatures":[{"sig":"MEYCIQDxoRMrBaxnO4yLX3dXARk0zVHGFE/NOzmQqrBYm9etqQIhAJBY0BDxZX6Uusw4GhlgN+6Pozj5Bcy49EnTVogS+ImH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID1WN2uPHHtcG0vKPYYTNp4gic+f+zPUFizKEaxkBFGLAiAUAKK6ToOYonTQaL+NAvIhwhhL8TRnV+YvXtnw94wNfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2900717},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"f5b6662f908ba87e92734699d6f3156f8756bf87","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"12.0.2","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.0_1788509131063_0.2691555735112181","host":"s3://npm-registry-packages-npm-production"}},"0.64.1":{"name":"pi-web-ui","version":"0.64.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b2411443d7ad20792ac38c349674417a60344a4d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.1.tgz","fileCount":92,"integrity":"sha512-mZgXuz7LDZmGDiDKnV714xJvedsxrFsnRYUF1akWGs/7NwN5ArQlCoSZx0PJUikZ6i/F/SD95GIZT82H10vkUw==","signatures":[{"sig":"MEUCIQC352ZuPyo1adxNNGX+C4nuqYQ9kGm6jIlhkS+A/eyzrQIgVhhrdJ1xim7geCZmYfUEZkWiNxP09lXlWhxp/mQDq3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG59hQjH/ovd1Zxt5Yccrmxb7A0vGaQlNJXpw7bPiibsAiBMj9Te7f3YzYhemGnrjJqpQEGCBYOdYU+5YSmKomWPig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2911322},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"dbf97d9d507913c4b42f18b58a57107dfaeceb61","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.1_1788571421603_0.25029580489672143","host":"s3://npm-registry-packages-npm-production"}},"0.64.2":{"name":"pi-web-ui","version":"0.64.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0647495a10305a0cf9f4894ab458d603b90bbaa2","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.2.tgz","fileCount":92,"integrity":"sha512-PpiuyNcny9FvLfSAJ09WnOzHOx6T/+YJzdmOYgvlaNPlisLEWrOodeHJdDtaSgEPpt7hZiDfXrlnE6l42ADahg==","signatures":[{"sig":"MEUCIQDurEjbP/Cj7uxx+bqbi8e9PLAycPcg8k+6OOd7JBrTkwIgDZxckPGGzeiclBwH8uljQJS4JUM02gOm6CvZh4xZbJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIExIBlGkFJRzMBCciwifnhgPlcanTgWSCGn6nBIwP8dUAiByIsfG1pYh5ConTYlrHoVWhsyGj5pDgVSX6yI6I+EmRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2922684},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"0ccfde31788ed02c506ca22026a5ae8ae5b30030","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.2_1788598771510_0.9687150292705995","host":"s3://npm-registry-packages-npm-production"}},"0.64.3":{"name":"pi-web-ui","version":"0.64.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.3","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8b504ff235799b68742bc8eb142121cea3926614","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.3.tgz","fileCount":92,"integrity":"sha512-pDqJ0OPT1jS6cijxIQw0b2oFvLZBZ7eGRPP1nHope7bDAyk1JShxLg1DOC1IRMXLvRGUO8n4t4DpxvzRukMhew==","signatures":[{"sig":"MEYCIQCiErlrUJdve+75paYBk8IDsrT5a2Xc7rYESZEQtd2rkQIhAIF1mqw4dxQhtgnuXlErTiStn1hQI0w260R67V/gAACQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDct3sBTA5QhhuML3VqWoKqsUibBWVnKkMvR4UP9PkHJAIgCACmAX7+JqqilSg7tz+qS7qymAIGv3RsGHisJFdw46s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2926468},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"758c41b6192829395e627bdf737a42d5adab89bf","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.3_1788603584074_0.7306366264047781","host":"s3://npm-registry-packages-npm-production"}},"0.64.4":{"name":"pi-web-ui","version":"0.64.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.4","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6e0c45ff35761aa20fcc7a0f5ba9462a26022fe5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.4.tgz","fileCount":152,"integrity":"sha512-sJm4L46xmyaLFCFceqsOdsxxdranGnwi3YDc5UxTRtQWbBSGtKoFh5zf0D/ovEQDQgZiDkgynZ3TQpTCFupEzg==","signatures":[{"sig":"MEQCIAftG8PbBCm4kBwq7N6oZZgwXVBQX4oUk8OYDxU7RhpCAiApbsGKD117toFC1Lx96KvlshxtWogXXlCV+MSjru2VwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHhpERxZw7l1wdtdUn7+vQpz5t63PAsgTv7ffDAixzhOAiBrZnYlFyn+tHYbCSWhR7N3AbGV1vfQojHS2MTQe342Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6368002},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"eb8adac2faa04505355f1008124b6f930785ad6b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","mermaid":"^11.17.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.4_1788634316641_0.21792983375836905","host":"s3://npm-registry-packages-npm-production"}},"0.64.5":{"name":"pi-web-ui","version":"0.64.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.5","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"96bf1fd83872ca5987464cbd27e6101e3b0f06b3","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.5.tgz","fileCount":152,"integrity":"sha512-usHnfqo/DJbVU5jxh17nKDLiMwjXDzbGFKnrIvZEJ9vqm3EkHUoFJ0TaoPkR0NLyvQcsM/7mNB6vvu/PAFkKEg==","signatures":[{"sig":"MEYCIQC/yQlbzc45+4oTYnb98p/WaF5VS1wLCZAmwsOBn4HD2QIhAJHd6RUdtiAJfgtfKmJybpeyG+TQRJVULBNk7XSsxqx/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGdeJnIxpR14Dqv5n3p3WdQJRl8uv2W+eud6kY6ibOK/AiEA1lRTzEGDqKYR2TaQU4G+1sFsDGeSq3ISS8gxER2d4/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6370478},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"c3222386551e0ce88a0d5d8b7e9a76283a98a82c","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","mermaid":"^11.17.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.5_1788659930334_0.13824293298756896","host":"s3://npm-registry-packages-npm-production"}},"0.64.6":{"name":"pi-web-ui","version":"0.64.6","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.6","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"11d01030024a7d54d5a5a0ce4e7f2da51775f141","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.6.tgz","fileCount":152,"integrity":"sha512-77vKjtmdcfKI5kbg36qq6I6upoyP9tZdCVcRXy5NjfEOBowQYhjbhkQLhnOI5iGHe3m80sQzWYCNqaAu14kT5Q==","signatures":[{"sig":"MEUCICUQJLxB4DKYNoMIHbTps6zd5UYel4y/9aTpnfAagtP1AiEArSi76gscF98FsVMS0KwaoazA8oZeUGh5TVe+TeAw+iM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICsp73Rdc5vj5zE43uI1c3MxY2pR2EGSu+pKh6O6ErA0AiAIlQcfed0nlkrryUmspH4YxcvG/nQInhz3d4ArIdKP2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6392640},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"11c84df2ee76558ab40d4c4043d130433168bd3e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","mermaid":"^11.17.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.6_1788666229519_0.18303799064165616","host":"s3://npm-registry-packages-npm-production"}},"0.64.7":{"name":"pi-web-ui","version":"0.64.7","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.7","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c4893fe0a9c207efa01ff20dbe3f7ef2c26ff67d","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.7.tgz","fileCount":152,"integrity":"sha512-2RZA5IyoG5reMvpmhBchWyVcLg9OymFCG8+VopK4lRKr4mTFtmyvJCkjT72c9ZuOBON2tB8j+kCwoMndGu1ieQ==","signatures":[{"sig":"MEQCIFlp5JqVTvUxF7XZgrPGHjtyGl3Lt8ggTDvfchEPgiIRAiBOVkaNnxlcWSfvhGL8UPcKrCT5MpRXlEmLnw4NGpCCzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHAPQLKYAOH1AX51JDvo+SyuVV6bIhalYfnQYXJVKlXlAiAkv/v9CIjLZ+hH8XvZdqrMDJxoRGj71psUSMH3P+AbtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6395471},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"dd7fe9946e8d4357df5d3ad0e2fe432fd2dd8e5d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","mermaid":"^11.17.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.7_1788669431806_0.061561276384396235","host":"s3://npm-registry-packages-npm-production"}},"0.64.8":{"name":"pi-web-ui","version":"0.64.8","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.64.8","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3a32873acd68784d7fc2f883ad3d3da83b0847b9","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.64.8.tgz","fileCount":152,"integrity":"sha512-Wq2ng1he3NFJpLwI3Q38LMFzuuT/TJJW1ncUBOoo+mEoJAc0Da14AETzMM+jIpMrafR6/hxfToBbAGOgskypRA==","signatures":[{"sig":"MEUCIFLBMB4IazkR6tAjGX/cSslTIg1yRucfsNAoPE9mKTAfAiEAuRxBawDJGuDOuHhGiwP9wgYrBqsyZNHRzEuLjGy97Ro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEa+SFchzndIbodJfeJOYp6K+VrkiAejVno+qFBtiTPZAiEAuTN1DGw27EYjZRFQ/msVaQ5h4LvexrBs0GtCVH0nBfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6395471},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d6305e345fe989754ad56498651e565990e33d1d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","mermaid":"^11.17.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.64.8_1788669985776_0.5965154462851967","host":"s3://npm-registry-packages-npm-production"}},"0.65.0":{"name":"pi-web-ui","version":"0.65.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.65.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"27a68311c8d5b150361a29d42a5337f334e22a14","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.65.0.tgz","fileCount":94,"integrity":"sha512-cbYeHuY0FFg79bD0q0drRRK1yZnRe+TWnujM//Iwao8F1G/9bviZXsvW1W4BmgYV6NWeVUkblK+ULHyGr7daIg==","signatures":[{"sig":"MEUCIHc7j+pCimdhQ7C9nrT3m7VsBddouxHwaTXqEbD9TYmBAiEA8jJue8qUxQ1h2HRu380hj38XmL0zZbrFLsSBJ5efPeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCqbBBRshI0h/HkzXYZ0wmtNFkBNodJwbfI7qZnEWsASwIhALpoTTvl50XmfEh3LfFHwQa4gcqjfNyguZRxdkksUovZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2980434},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5c8be7df11c23c9451ad094e733a8a3d8cc95abe","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.65.0_1788704022162_0.7917563588280645","host":"s3://npm-registry-packages-npm-production"}},"0.66.0":{"name":"pi-web-ui","version":"0.66.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.66.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2b7b5abc29cf076bd782c2f4c71d2ba26244971f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.66.0.tgz","fileCount":94,"integrity":"sha512-0GXiisoQHF/SwMQYpM2nmC/7ruabtZ81nSvL387mPq5dEzF1oEI66ia+TwEr+Szmgk5s/ieHvMfTvW2s0O1E9Q==","signatures":[{"sig":"MEUCIGDL0uaVXvJPg122k/tDs5X9EIn4HZuDdz11L//psP9JAiEAsrlnnh5FH6JqtBzuDxYt6yASxqCxR4CR/BPcqXNEY0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBsjHJYqluu6WcKlhGCPXFmZpxOyotIqr/HDM2ytxbWjAiEAllvfCeM6pO4zG8LEbsp2AHaA/+FfTjrZ9bKhQlVwjno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2986351},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"901a5e1502fadd4d950afe51caf99a73258b1f85","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.66.0_1788743536826_0.7196199101134482","host":"s3://npm-registry-packages-npm-production"}},"0.67.0":{"name":"pi-web-ui","version":"0.67.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.67.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ca02bc7021a1e24836465f76f705ba1067e9a4ee","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.67.0.tgz","fileCount":97,"integrity":"sha512-Ts+jOcTkFQG5na7LpXVSK5kNZsN/xmottzL5Urq8RJoaopmkBc4SP+E+iShVMsWn7M+kthKr4711SDLOmzRKWw==","signatures":[{"sig":"MEUCIAI1IH6Q6I5d2sQEYspaEVmrKyuqRPioVWajZGY9XXAOAiEA4ytqONnQBPfb/yCOxwts582RFtm2y3dGigalkc5gJDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDxmid+cdjYu7Z/Sx+0pBFusCQJIHARBoFXbO0uWOCwnAiBsVg3MhkdD04BGku4CCnLeK+iwsiIXJY+nQG4b6H7HNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3030223},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"40c56b2c568f89cc327173c96bc9683c7199c76e","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.67.0_1788757914202_0.4676365784650669","host":"s3://npm-registry-packages-npm-production"}},"0.68.0":{"name":"pi-web-ui","version":"0.68.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.68.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"175c6537569de494263ffc78979a36223fe3e297","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.68.0.tgz","fileCount":97,"integrity":"sha512-AzbAO01WmoRygKtfG0/hLbjlqpHvB+YyVI65j5t5ZplyripLkYwJspWmL5qYErAaBj7p7gPchKxUI/1PZ0nNIQ==","signatures":[{"sig":"MEQCIG905E01tlmjZwU8YRjZc1iky5sQ1WKGOyeMUp3m3UFxAiBqGgYWFLyZYxLMkpgXAMRcuiizh1GgQt82NQPBYiQDJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDf/0PkKU9UxwOdp+fjPl0GPutiukvy690cw9U9vvTtowIgJxz8DCUKB5QjKBsBla+43Wsa3Kyahcy0lJBkhPZoDcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039414},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d60968850fc8f11e7a513840b746bd4774eef48c","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.68.0_1788763324179_0.7397026936370639","host":"s3://npm-registry-packages-npm-production"}},"0.68.1":{"name":"pi-web-ui","version":"0.68.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.68.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9cd903b9bd93547e60162051e4e5cbbf012212d5","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.68.1.tgz","fileCount":97,"integrity":"sha512-R3B7ikDIni9knAR4jPrcr/KVLt5nJRsPvGK+Z0zCynO2PrPvEtO1Rmd+9vAbsG+14hv38Q1PTQiWKXfTM2SPOQ==","signatures":[{"sig":"MEUCIFS/+74jkGIXLfiS98vtyh5lozmR1OlRk+RegCafKK9yAiEA8iofRNaCQ5Fx0R8XJEThr9wK/HCu1E45ZCNR6VM3YIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDN9QTzO0clm6Inmy8/jlzc2k82hPkE7N4/uJBCrynxwwIgKFa1VsCKcBWOWW6/j+SmOkDHRThWKRB1mJO4yU2tfxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3058752},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"de0aa341ec159aa24fc62d313a918c57e9e5ae37","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.68.1_1788786743997_0.4192235150478443","host":"s3://npm-registry-packages-npm-production"}},"0.68.2":{"name":"pi-web-ui","version":"0.68.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.68.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"dc5f3cee7638ac09337aa9fdecc5ecf08d8f142b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.68.2.tgz","fileCount":98,"integrity":"sha512-Mz57SInwU1Qppi8ThkeBNS7EK1PvdDNPOrpDaQvgzoLtDDFsZQ7g93bEB9ozqncKTOa4/OX0beb1qFHt4uVphQ==","signatures":[{"sig":"MEQCIBzNmO0DoyWp7fy+H+Vq8Vsq5oxjKSU//TSF6yMluQ3DAiANbqMgXg6EgGbB79KNJnaHLeQnU+AwW7PJc+XDEwy45w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIExnWDV3YkbB/Vxnaj4NB7ALy8ruexgizFhXHCpqAYBZAiEAgCUfU/3qG0WxISUuOrGKv840++XD70VAVxFkutZE+xs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3260860},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1f3b77107befc67bc26d892a54d726d46f92a177","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.68.2_1788835272545_0.7123495547460774","host":"s3://npm-registry-packages-npm-production"}},"0.69.0":{"name":"pi-web-ui","version":"0.69.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.69.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"401d4b6d5a5947ae3a6c8224b25988b88d33b101","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.69.0.tgz","fileCount":101,"integrity":"sha512-zdtW7Zj/fKXZFGa7ETqc8p4TF8Nw2OvSlWDDDrRlUVfa2JC/alSUb6TpRD+z5G5SZG/N7y/E5WQSu8rO/ILI9g==","signatures":[{"sig":"MEYCIQCL5JChU8zglPTGYInUVSDHHxxmWIMUeJaEG6bSBHGvSgIhAJipq7hNVkMjMFvO8elo6nT6KXska7bdt2enbvn5XJ/f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHTOqodZtNwbhG9HGgQXqApfP2SL0Y503NlPddtu4/hfAiEAnDycfpJixmh14tivYulWRyP6BLyuEzkeraVL5rtZ9LI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3360707},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2f21f05ff76785c3cae1fdf14611edc0b6504c3d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.69.0_1788874095224_0.23397925440580347","host":"s3://npm-registry-packages-npm-production"}},"0.70.0":{"name":"pi-web-ui","version":"0.70.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.70.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ab04a70d80ae626419cdf278c61493881ec376f8","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.70.0.tgz","fileCount":101,"integrity":"sha512-5J0oDv8yx1nr0K445X2G7v6uztCa09/vvmbxuWrX9RBi0DCw7jh/CcQxdVDlW5xVgQ4T9P3iH2kWDL8F9eUaFQ==","signatures":[{"sig":"MEUCIF/glFrYmhZ0Dv5lebTcZjr461xGnlDbeXWX48VzmO5bAiEA9i1ks/aNRdcd1IMlzfFKKc9iffVnqoRbmXXoIxljohI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHxRf5lOzdFX0HzhU7OQneDmeMJIoG6u6gP7a6Xt5VcSAiA8C0TNyum7BP9QpYJG0pcRcP5t11YMzMMzKbNmUsnnzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3376161},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6276a0b0f11b3d5518b825ac2c6fbccda5da17e2","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.70.0_1788929991360_0.17082857407179297","host":"s3://npm-registry-packages-npm-production"}},"0.71.0":{"name":"pi-web-ui","version":"0.71.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.71.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a5f2091a8fcf4224f6bf27e1f2e87a24c226e6b0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.71.0.tgz","fileCount":104,"integrity":"sha512-AZlcq1pR2L9iogShRo+L8zdZOgANCx3wgv9i0s2ani6KG1g3sNooKzv/djqjgHRq/MtG9xu8DLDpziWwLETv6g==","signatures":[{"sig":"MEUCIQCjXudSv83SSCEFqH7sdSqD5meSgU3MzZwdC8avWBEkmAIgDQdMx6JhS7UqXU7tHD+p574f3EKMjk8rmrpL0MucYeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCdfEt8H+fDbDqTMeHKXwlYfRwhV17i4avjINud+UJb+wIgcIBrMmnd2kg66lzD1m+5EvlHGVMQjqff9sbZpnPEygk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3400400},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5e6531dae5afde93a77d61afc05c636dedb6da2c","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.71.0_1788945965572_0.7661252772478004","host":"s3://npm-registry-packages-npm-production"}},"0.72.0":{"name":"pi-web-ui","version":"0.72.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.72.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4f6db734f8b75cd1effc2f2b63f2847d28b87f49","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.72.0.tgz","fileCount":104,"integrity":"sha512-vcAIBCKxXEcnvfTYFtmYeukviJy6jvEgHGomFh8cgnKDnKlEWrxa8BbXzGNAK3pVTKy+0cSyhdF8uV52I+b+2Q==","signatures":[{"sig":"MEYCIQCIaZOtWAXN31E5dWUzlo9eJi+PcYMJXAU+ReSIjCxV7wIhAPoJmdTIFpoHXbSNR1jhFQQBTNnKqEmW7zF3o9TFV9pZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCHig/FNkhA6zt0Oit/43YIbuTvZLdY2stOxUUoaQhfIQIhAOCa3NMhEgyUw0WlEWh7InJaPI42ZAyiYFneRonX6SrP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3414917},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a3be4bfeb8c9ad7b82a2db18d7134e04149a7f92","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.72.0_1788963216882_0.6354986855778815","host":"s3://npm-registry-packages-npm-production"}},"0.73.0":{"name":"pi-web-ui","version":"0.73.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.73.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a3a5c2369cd0620f724e8a5c784e3a1f271fc63f","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.73.0.tgz","fileCount":105,"integrity":"sha512-lRXvH0WqvW1S6kuLT2d/DyIlFssdwwf74mF+wb+PGNHLbrXIWHh0/ZAXzZelF/9bmQQWRkNlpHcYSGyK+5DbOQ==","signatures":[{"sig":"MEYCIQDxqXCeo2lBJokds9i7FeTNQfgsWSdaj0zQpLn5veBuvgIhAJASR8Ecs1o2/SABQTwCKammCRwollrB1nOWZgGyIKx0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFzvRZZTdaMVml2aRqzkMTOG95l+XqAYysTYhZNAW3DsAiEA0UFxhyMxrgPnEb3b5DEdHDDXM2N1MNP1SuQpvKAxTBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3457577},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"e907f35b83b1d1a124b85655e30652943573cbdd","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.73.0_1789033746644_0.35205642120064895","host":"s3://npm-registry-packages-npm-production"}},"0.74.0":{"name":"pi-web-ui","version":"0.74.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.74.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5507b6897796718be9f634fbb3ec558a30916491","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.74.0.tgz","fileCount":105,"integrity":"sha512-lZz2Wwf7N6t5jbd32aYw3ajT4+a7uUVRDHtRj/Mc6FWeiAMI5cH2QNJBlbNxlHv/oYEDZ7qDCj39iQiCk6pq/w==","signatures":[{"sig":"MEUCIDD3BZDvsP7TDHbducY9GSwVURc10suaFOytFo7T9RZmAiEAn62dikMAnbVOGR7E8opp9qI4492ifpSEmdWa4bEtlPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE5N7lAp/2KW3jR25dof37gdgcR6tNBCsmodotO1C/9WAiEA997lMgxUSLf2co2uvShyYmY4xcfsAkQoPr5nsYus6iU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3464640},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"233eba4fe7c6bfba368542526e18413e7391661f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.74.0_1789049415798_0.565588261250368","host":"s3://npm-registry-packages-npm-production"}},"0.75.0":{"name":"pi-web-ui","version":"0.75.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.75.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a8adb7ea606e79597bd240ace6bc9b277b59df52","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.75.0.tgz","fileCount":105,"integrity":"sha512-Fc0ZOB0+U2EgOZTRBAkrmz6zD77d+77iT3xuSkrrULv+aT6+rEhKzbAHMAH+TaFPEtkfkIr7n4SG4cyHXQqONw==","signatures":[{"sig":"MEUCIQC4dPGc4yV9bG2EtvkLcuyI8wDqlagn9syUcH1+GsQhYQIgNnwd9pUZduQ9Mr4uvFYYatM8T/T3cWRdnT14gyfy5h0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBfUTr6nWNB/EbUe/lXXsdGH7cfkouyMI65rUO2pTI4SAiEAsK9KBeEIpiAwhijVD51OcK7PTfmoF/2nFX/1xxW4Rrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3475853},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3e2dc1bc71b874de7c830a73a8270ab5839532f2","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.75.0_1789056457384_0.13554628722701145","host":"s3://npm-registry-packages-npm-production"}},"0.76.0":{"name":"pi-web-ui","version":"0.76.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.76.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1649d7b2543c8b911be8b355518ab6f53a1fb158","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.76.0.tgz","fileCount":105,"integrity":"sha512-geWMvZJL6f3lJThj27f4PAy13aKN5BsFvqzXuQTmhkYr30FU8SfpxAvvN+sCpo7AJQBoVDJZOeBgHEMZiSR2yw==","signatures":[{"sig":"MEUCIHg/tauEmiFm2L8nMPoq/H7FjfR4q+GrS7fh084nHaPUAiEA+f6Y0kZmIG8xq9OmXd9qFpqrkLJD3PMsMe1k3+0/Bck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGrU1I9nBEA7JqBqI5iB9Bczqe71gTdYGOt1zWjnLn2rAiEAigAdBAUOTE1LlX9pQ21x1FBmuqHUTgvTc0k81zwJ70w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3482247},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4706e682861fcec9cf9cd0796c2ee53a3a7d51f1","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.76.0_1789059526052_0.904923752737345","host":"s3://npm-registry-packages-npm-production"}},"0.77.0":{"name":"pi-web-ui","version":"0.77.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.77.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"b0edb39a3b120a145cd9e7fb258040d37f3adedb","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.77.0.tgz","fileCount":109,"integrity":"sha512-cxPEJtRWyyjz3d/BHgEKhAXEP6my23tjFnxlfR47USYc6h4tXd/6TMn3KZ2QN5Ji4Eh1qxve1a8HGLDBEP5zQw==","signatures":[{"sig":"MEUCIQDxINLE1kCNbpXVd5QR6fs5gTcegrIczLB/BqA/84iVkgIgM7hCLILuky+k1h+N86geZ2JY0v56TD/RxpGk7jqO3xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIARNHiSn5oQcYqPC7D3VTziWk++UKEF0IhWFFg/5rVX8AiEAvikyJ4I6Dz1ga1QPC5x7F0rta7z0BkQTUICQDOHNoGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3571550},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"87521b14e87d2fbcf5b8a9f577a502831b005421","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.77.0_1789128739553_0.6357721452358418","host":"s3://npm-registry-packages-npm-production"}},"0.78.0":{"name":"pi-web-ui","version":"0.78.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.78.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"7f4d9840992dc157ef09322202694742dfac565b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.78.0.tgz","fileCount":109,"integrity":"sha512-A9aKmk7UzAHWiZkacply8HQm0wduTNrzu3YEqsTGn+bTpLlHghug11RbSGriIVGZKvsspNEXtYZSEqli5jczZg==","signatures":[{"sig":"MEUCIFkUZuWAEYVPnt6Yd8vxOnQtl1rr+/PKFHp2W3iJ6bU/AiEA+fWQJY0mPYpD19PdadCMjsm+DHeXb98u3k12eTA3o9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEF8h1BSy/+Ixos/I53O0/VIfW0/epfWMf+nyvSgpF2GAiEA/C21WEISxD1hrOVJGT4kIrIuyTLpQHf0rV/YUq0ixyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3582557},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"24159553343b87f58adb3d97001668f74e6774bd","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.78.0_1789133662467_0.13702410297642764","host":"s3://npm-registry-packages-npm-production"}},"0.79.0":{"name":"pi-web-ui","version":"0.79.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.79.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0ab1aa47be61e274c814cd2cca8cb955e9bc44ca","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.79.0.tgz","fileCount":171,"integrity":"sha512-apa/1Pj1yXWKytej5HIcSKmp4fvSk9XyMe4r+WK49We7Ti0FQUJ/JaxMFJeJsgVLm6YQz4fKGjkIK/k05ON6EA==","signatures":[{"sig":"MEYCIQDoKshBsHuIKuHtJFQ4QMzB1krKcK26UbTDwHKEP0uM0QIhANvCVrn5NxCdUfRRwGB+h24TOuYe/MoHeNi/FkyWNOIQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID9rB0v5p0+qHDPOa1AczV9f9k9R8YedFyQTO8vTfGv5AiEA9oTUBCq5H7Syc2Z9khaLdWqHqOLgYo01GIawt3On4f0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4971836},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"46880b3772591beac91c0c1792bdc79a6fe3671f","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ tests/*.mjs tests/unit/ *.mjs","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.79.0_1789142084947_0.7848039342823168","host":"s3://npm-registry-packages-npm-production"}},"0.80.0":{"name":"pi-web-ui","version":"0.80.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.80.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0a46215e081f63b23e7da930e8d121c67bce8a1b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.80.0.tgz","fileCount":171,"integrity":"sha512-rQYZ01kOJkOnGXuQ0DrXaTq9Rm7LUgGRD9zIiBRDVUn6oMltpK96dTiUHBhPKdjmpbHmUcxNaouigtRqjtUF4Q==","signatures":[{"sig":"MEYCIQDLymLivSViw4xDJsEf9x0aCGjWtxiS/hZ0agGjUdCuAgIhAIglXGJ38dGPlr6W8xKLxrnkkD06Ncv2Dp/ZN3S16t9C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEbe/dSztN+M2QAQaODsECRRKM36JTtrF31DijHGtrHvAiBNlgvp4Ew5L9HuIP/kx1MkNAkmDHesqnXVv4cK6iuFTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4977313},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"f8511398168059b2304d232cce33fdc3ac4d58b7","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.80.0_1789149933842_0.31013790755349513","host":"s3://npm-registry-packages-npm-production"}},"0.80.1":{"name":"pi-web-ui","version":"0.80.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.80.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"ef621934bd2fac65117e5a093978401015ffaa59","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.80.1.tgz","fileCount":172,"integrity":"sha512-6QLcwCkX8aM3paaJEJ3sibKFChHROAB1Zf6dR+9di7J/w7WId9J4MEVT7INgV8ew8OqHHAZSb5fha/iYTYBCYQ==","signatures":[{"sig":"MEYCIQDl10/Yf5plB1CW8cQdLjW+lO+cVWQGisiKYiEPRV5L1QIhAOdXx3RwPtEGExs4QNM2KjnDUL8LiLl0pImKD9HqQvZV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDGubsoN+4797ne538GkArthhNVPK6Qy9uP/29OxfJy6AiB6zi2PC6xOkMpOPB6sTWlhFE/s/QKXgnE60Yrqe/zcNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4993896},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ad0e6c34fe431435f3cf2cc0f76b557dc21ec974","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.84.4","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.80.1_1789192396593_0.681968879101339","host":"s3://npm-registry-packages-npm-production"}},"0.80.2":{"name":"pi-web-ui","version":"0.80.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.80.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"903b215635e697928e32c83862cf87d9c30ae711","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.80.2.tgz","fileCount":172,"integrity":"sha512-ABuSeuDoaDi3k7HP4WvUm8vmVGE3bCv1Q7yiXNEPjvd6egbxq3VgGXDjNX6fcAd7WoNHxxYBNmt7SNBx3fxHyQ==","signatures":[{"sig":"MEYCIQCZmUr+/f0gsQg2qIte64Lg8Y26ChES/D40LvrLEX8gZgIhAJPgUfJuGrZeU6LkkflfdWIiwQQsoNTRG98UbnN1RC6v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTXW0V6SZJ7R2q5kaZcrPlOCvu7ch4Ij5q725LQYBluAIhAKDuA9cvVl5Xzkadj/GTgEON00pykKWT/s7Hx7lMt5Cu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5059602},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"a89ff6eb62810577ba76d6ba00346ea9978247c6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","prepublishOnly":"npm run build","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.80.2_1789214036844_0.14717782113474542","host":"s3://npm-registry-packages-npm-production"}},"0.81.0":{"name":"pi-web-ui","version":"0.81.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.81.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4324bcba3e7b214c5c6257e21fb2a401d7d50ce6","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.81.0.tgz","fileCount":172,"integrity":"sha512-Ewc8qQDBLquRydnUbcM1y61y189n2KsyyIbKzsVMMSUV9HWTjWuqpSFNi8WRg9NfW4Q4LBzDjE7G4gp3hCVl3Q==","signatures":[{"sig":"MEUCIEGvdWaXeJoz8JkpxWetQqZCJlsse4DlX4m1184nSlhsAiEAiGsoosSkLODABpQF1vQ39WkT7PgNx5qpoxu5douh9KI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTAsZBWo4yWgVKisJTYZRYD+oOJYi76TGf27Xc3tq4DQIgXoHQI8ng7YiHz/Jh8b7kKPC/Q60zMwVdXOyhqqa74pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5097592},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b4f34ea5f64c9b431162f2db5a4025f017f19924","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.81.0_1789228013094_0.5966494958714883","host":"s3://npm-registry-packages-npm-production"}},"0.83.0":{"name":"pi-web-ui","version":"0.83.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.83.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"cd38653f9ed268c326840e5d77a17785eaf3bdc0","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.83.0.tgz","fileCount":172,"integrity":"sha512-L4Sa5Dl2dN4/+nWfmVs0tQF3CijDOMwP9bvU+WYTBBKQ2xE96FgHeVaEsKitk+LMOqBmFVDz75YVz71m2xfAEw==","signatures":[{"sig":"MEQCIGqYDfHVv1af1KTfavLemE+ulRFjkkod7toPaOT14ahtAiArSr/ZrRAkXHDm1jpgo9Q1wcXWYreLCCpVN8a87E4dow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD/1Y4/6ne9Ia2f1eY15uVvE8R+8e1OfXtTLxI7mp8w9gIhANLz9CuXVwafB1s6+h9KclQIlij0idMn2031syU4EcWW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5175751},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6afceb973491d2ca0a112ef0bbc8cc1cb5a69b57","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.83.0_1789293207676_0.36794060418063923","host":"s3://npm-registry-packages-npm-production"}},"0.84.0":{"name":"pi-web-ui","version":"0.84.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.84.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"200044e72da107c7bf6d21d6705e487fcac6adbf","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.84.0.tgz","fileCount":172,"integrity":"sha512-WpoSkcWzwX0iAcW88yIxCRJSAPR4YsEsxmcXYmmDK2MBygud+QnxgEr3/phAbPy8G+5BPzEe+X1FfRbnc9mZHA==","signatures":[{"sig":"MEUCIExH+rIkJu4ikOZ5pyW1f3lY44/jzDBygab+f9a/j3/vAiEAjyXk1JqOt2sCPuVxsywuS3BnEL/iIMGsptdomtRGZOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD3zWTm41t30SlT0pm6FWwMFOquLO2x/Q4gAmnmgy2RrAIgSDODKV/snSxnbi94Ogy8VONTbpbBleqWopxIzQ3vFFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5186997},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"484146ef942595a0adf150b72404fb93ee8e41ed","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.84.0_1789308201348_0.11398872331645649","host":"s3://npm-registry-packages-npm-production"}},"0.85.0":{"name":"pi-web-ui","version":"0.85.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.85.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"01776d24f848b1a755827eb5ef013261ccffddb7","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.85.0.tgz","fileCount":172,"integrity":"sha512-NnpvcZRiz1L8U0g8HMIARz5nTV4n8E9NN3r/0q4l54h+VcT/Oxbh46lW+HIAMnHT9JQLeV2i4YEQFuq8r7QFqQ==","signatures":[{"sig":"MEUCIFSMTLM1Ll6MZ0ILx/FmoMlDVTt4rPAqnuN/qGzjvIxFAiEAy/1WhNj4K2Io9k3BjABKt55m62ayBswBDY1+Xo4cLvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD88rqC19SFco89we5ajdz+1b4CzsobyMrC0FfwquXsowIhAPkLiwr/hSK680wVbm4PBuuqcUG5KfVPM43Aib1K1/3W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5199602},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4470926eb0e7619e9d555f8d86061c562e23e605","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.85.0_1789355169247_0.2944063965585295","host":"s3://npm-registry-packages-npm-production"}},"0.86.1":{"name":"pi-web-ui","version":"0.86.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.86.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"de0703736469964ef9b997f645bb6e202a3c34bd","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.86.1.tgz","fileCount":177,"integrity":"sha512-xRNT0tazxXGZNgtQSpv/gvsX8tFJ2mma+w2fE1YrAFYfU5i9Aj2LQNDKR1+ZIsVFo2fBn5GPVSMTG7eUngGC/w==","signatures":[{"sig":"MEUCIAqzF5KaDdfgPidtvUCEFNf8SCs4fUy8/jX9LxHcOl8QAiEAuvPuPGsyYfZbMVTzqQkmHcHn0+VR452QTJtvTXfXKZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD28Q4aBpWXAbye9ZIYvpx7pRtAZNb92AjnzcVZJ89fNAIhAKKknPpAWwyzTNe3o871ZnCOX78/PnSGXuic26ixcK5O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5416142},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"863f1906c8a149e5fc2337773136a18b38250f86","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.86.1_1789438406719_0.27177673893634147","host":"s3://npm-registry-packages-npm-production"}},"0.86.2":{"name":"pi-web-ui","version":"0.86.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.86.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"42e001dbf6a4a41b4eed7131458e88389590b124","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.86.2.tgz","fileCount":177,"integrity":"sha512-66r9HoEhhAbLd7VmrdhqYxgramptd0jkQ61Xl+Rz25LlGZ78sdGb20QDQ4hfreWne4NPWtP/x4T4jgnn4FwX+A==","signatures":[{"sig":"MEYCIQCrECn0IOyVdP2aB+IE+jPvmKPalIrbrIym9UF/2UO2UwIhAO6RHeQVEJFqEPUS26k4KrjaEFF23Q98kOjKAoIocNnf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIALECAsDBh6JihO8vnQEpNCa3q9x7gGAZOfMOJcZwnbQAiBK0c5yJTh4Q5B1aoKLFJO6xxUmSFuaTBZvqiPoDoSjAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5416927},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"bd3daeeddae2806406afff401f1285b53f6f8088","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.86.2_1789440043002_0.18645114463140722","host":"s3://npm-registry-packages-npm-production"}},"0.87.0":{"name":"pi-web-ui","version":"0.87.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.87.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"717c2c535c7b1ba66244bf2b8be67fa38be13087","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.87.0.tgz","fileCount":182,"integrity":"sha512-qLc41LUpdBseB6IU3HTDB++rqQv7SXnD0VUBeAC5Q8rnfdv7guBRKsBK2EnvAWBJPawx5ijW/4zRju2UsTPHbw==","signatures":[{"sig":"MEYCIQDLzodwF6OqxsEGQffKxr+USTkuXHWZBAz2rUcm70xrIQIhAORisodsZitCOuMX0QsHGiNnmdhr8c60q9QWQh0uFntT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTk8U9X1Q4u03BDqt4eF1+xrTy0kVAt3/SLA5RVY1ANgIhANEqrH2Qux8CIVeYmR9y59y6rGa9XYFYhyRt0Wu6Cuhx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5663122},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2bd6ee28a1c61d9d897d13792ccbfa61472bf42d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.87.0_1789521164970_0.22451454469368803","host":"s3://npm-registry-packages-npm-production"}},"0.87.1":{"name":"pi-web-ui","version":"0.87.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.87.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"259e6023ebb76c82f769e0ce6f969476287ecf17","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.87.1.tgz","fileCount":182,"integrity":"sha512-Z9/ncMJBENU/cFr6x+Mh6crlMEqX0BvUoHQifZyyIFmaySvnbmZ5Mir4kOQP3OLCN6HxzQ5+cpd47E3QHhruwA==","signatures":[{"sig":"MEUCIHdpP4fhbmXdiS3pvrRUPMVoYGnTbvjdGi9uIpmCRdmNAiEAxCVZUMRvNjtUvcmnTXJjW+0eWL/ZSje69E1d8KJRVtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH0hS6vun9xCqujg+PjeLxeIxRUJT/PRf0AhZkJYGxJdAiEAtY8JNCI7CY2+PDIZqNdRnEwd3/3iHp/jzRV/Zdvd1HE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5672885},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"af4285d664b8cd4185072a26af8435256919621d","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.87.1_1789526825915_0.6507187683319913","host":"s3://npm-registry-packages-npm-production"}},"0.87.2":{"name":"pi-web-ui","version":"0.87.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.87.2","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e7ad3a25e864d621d045dd6f780e35310ebf6882","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.87.2.tgz","fileCount":182,"integrity":"sha512-a1HmAa1SRMAZk/BkdBJ5gaYSqL2LNl51p4qVVU29+yuWLRI/gvb6H7lXj7L7Bp22i+fEA1gs3+Vo/8XfzUiIIw==","signatures":[{"sig":"MEUCIEYx8FJnj7sEEJ2gtP8r4I+u3+Luh49ETLHH7Uhc0FadAiEAyNkSPKfoXn5ukI+mEVrbHsEMCznRdA4tupFJvVTgfSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHg3lZedHOFktzkRZs08KZFZwXweG0XPoYyHpT0b0cmoAiEAp5lWT/lro3rfe+QSu22zzvi97dtEPzWz+/3Ealdl7tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5678864},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"32c5440ae03d1713005ecf54f78f00d6c203967b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.87.2_1789534868120_0.306251802376567","host":"s3://npm-registry-packages-npm-production"}},"0.88.0":{"name":"pi-web-ui","version":"0.88.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.88.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"af902fae7e9b7f6c9e513d02847f35672635bda4","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.88.0.tgz","fileCount":192,"integrity":"sha512-4gvw/4ulaWDHpIpEHCHJTBaDWsLWoRfwwA/c5XTTNQEqArjmkSWaQ1HYAchaybrnzyDjKOLC9v9snLCiLo1maQ==","signatures":[{"sig":"MEQCIH2d9skSD8n1Eog8ubluy0TFEr7g2i0dpcqQkrr8vfXBAiAFosz9DxRhFCYA/soFJTTABYEVvuePO3V5CsCGVZzPdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDWYaWJEI3f7EO4mAI5lmtsKGg7ks+CgIjYVR1/0ZrYNAiBjS0IiAntwDfBzlrAblMfL5XE1Fv4DyzhYk4s4WoRj7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5852851},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6ff1fb648fc5b226c6a147c917d209d3d779a08b","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.88.0_1789567502745_0.48007499412681387","host":"s3://npm-registry-packages-npm-production"}},"0.89.0":{"name":"pi-web-ui","version":"0.89.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.89.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"902fdcdcb1306d62d752c95b912be3a993f10843","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.89.0.tgz","fileCount":194,"integrity":"sha512-TO78UkI6S9rkG2LU9UKPJ2DUIoO0a8Mz8DlnrHeL8gauxfs7E988gi7I2Y45glvz/+xp2SUAzlkvNRfqAcjC4A==","signatures":[{"sig":"MEQCICGaL25SGs4Nt6ypAV2erdtmTl2IbdJWWtLfJT7btZkIAiAGWVmYAN36OqdLK36SStBQnzQ6h7KHCeOVenEd70wqow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIASMzPIWtmGVbobtdjkupw0SS9qdPmebRrw0zA7/KvwUAiBz7UCLAzpmLW5lZftBqdUEPYBNQERSquXPMdKY3GyoCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6002919},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6acac50e5358eff3ae767a50ff3bda321d2630a2","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","katex":"^0.16.47","react":"^18.3.1","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.89.0_1789640428565_0.8005915929185856","host":"s3://npm-registry-packages-npm-production"}},"0.90.0":{"name":"pi-web-ui","version":"0.90.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.90.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e5c85b4da1436dace991b7b5f36c635c1e335532","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.90.0.tgz","fileCount":199,"integrity":"sha512-umNAStKMEJxOTO++kSn0awu9gYACJ+X1/EwoqXPfqd93m1lgDAFN4vYPpFbbjWWX96IdkxKtth+vL+fpyIkejA==","signatures":[{"sig":"MEQCIEAWol9YR795slMocBV3Ck0zTgrD70rR+8EXD5sL17UPAiA6+l2CchauR0bDkpxPPVZyVILvZAXvo85lKPk3MHigPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICfJb3vL+oxvBehffkRxHA3B9pc5aXKAY2nAGcUTHAdDAiB483dojr2WKCVUZQHEVuBt79O/gXsmlPPVuyBdxx/Eaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6101356},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"060ac46b3ffb17e9dfcd8c66ce27f717040288ea","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Web chat interface for the pi coding agent, powered by the pi SDK (@earendil-works/pi-coding-agent) — one-command run, Docker/systemd/launchd deployable","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.18.0","tar":"^7.5.22","katex":"^0.16.47","react":"^18.3.1","yauzl":"^3.4.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","react-dom":"^18.3.1","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","compression":"^1.8.1","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.10.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^9.0.1","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.1","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","jsdom":"^26.1.0","oxlint":"^1.81.0","vitest":"^4.1.11","esbuild":"^0.25.12","mermaid":"^11.17.2","electron":"^44.0.0","prettier":"^3.9.6","@types/ws":"^8.5.13","cross-env":"^10.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/react":"^18.3.12","@types/yauzl":"^3.4.0","concurrently":"^9.1.0","vis-timeline":"^8.5.4","@types/express":"^4.17.21","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","electron-builder":"^26.0.0","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.90.0_1789704487300_0.06628434008019624","host":"s3://npm-registry-packages-npm-production"}},"0.90.1":{"name":"pi-web-ui","version":"0.90.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.90.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a07640fa92108b2ab508972cf858937c4c45d9ef","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.90.1.tgz","fileCount":201,"integrity":"sha512-ln5yammhdkpJ66KStC26a7+WsKkIAMVzyDAwyGz9M4NKGdT7Pw3fOEqS0HoEck7CLwbSLjkGnakOKb1JF+9AYA==","signatures":[{"sig":"MEYCIQDo+SctREu7vKdArI+sm87wb0xyM8mRd5X0LzcMHPNKXAIhANci3iHJvBdrXTDcvU8mSp/mHfaH54Ez/K9dNX4eISe4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE/aVj6lNWmqoCo6JZlmmKRPjS0x4VQPsBp3byshzY/7AiEA/2YARTI0snlpMLqKZClx2u3fjcRhiyVFgETJh0KDcrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6200118},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"f9d6f7ff319701a3df83633a4bc7f70f516c9986","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.90.1_1789732940792_0.6551637376743797","host":"s3://npm-registry-packages-npm-production"}},"0.91.0":{"name":"pi-web-ui","version":"0.91.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.91.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"131df2fa31fd6b046553be7c20e172af2ce5232b","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.91.0.tgz","fileCount":207,"integrity":"sha512-ODWv/iNxlH7Y6G0BBIM7BqBBiKqmLaiSWriJszDk/7WZg0oU37UjPvdLk4TGhiiDrY8TDFwYYAlG28NtsABRmA==","signatures":[{"sig":"MEQCIGjIMNzYYoSt5+oOtYSp5gWO8fjtha7JSJMNdLZpdJXDAiAC7IIZUctTUHKD+IPMwr5X0+ZiWl+2I7t0OOarydy81Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDkkFT5XmCl9G3eIo27nhcd/YQn8vZkH6eCQ+dTe6mAIAiEA0n6M6oH98ol1sVxYg1yls+gNeh62CmZ3ZQj22+tRTuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6352655},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ec11c67abe72b7cb274fda40d4428434288d48aa","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.91.0_1789814023216_0.9037014133665249","host":"s3://npm-registry-packages-npm-production"}},"0.92.0":{"name":"pi-web-ui","version":"0.92.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.92.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"bfca6ff106d508c677d2827fcfcd2f583dc356c6","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.92.0.tgz","fileCount":219,"integrity":"sha512-ZLqSTL00WUBOLaq7zG6iULyL3g23mV0xn8tRf98AGdplJAO0G76nJvN1fFUFUlGu33zQPG3qSIUuIE0aZQXYnw==","signatures":[{"sig":"MEUCIDjVkN0iPzK/WdEGaqYmlcsLmOAwv9qbhlLRijl84bXHAiEA1q7MnomYU0/oBg55CLyoOTvvZYieghYe5IMAOFZHN5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCj84RjJaHZ1V8VMiHeyoK+nuNUUc0aRUZs/muv5YdwKgIgYHBrpVHH+WKj2MQoC4ZjCpqpl4dviVxTjIoZKA9YAAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6573069},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"803b10dceab650fe6db05f5e22bcc86b3cfc4fc1","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":"^0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.92.0_1789899237111_0.4518638878991581","host":"s3://npm-registry-packages-npm-production"}},"0.93.0":{"name":"pi-web-ui","version":"0.93.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.93.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0c169ac33900fd86bb7327e8ec08e719864e7ab6","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.93.0.tgz","fileCount":230,"integrity":"sha512-Xg/keHkRa/5yIQSNsW7FVVEDMTd5zxZnVpr7eAOariGqGee5wdl1Z1vYCXNkWMEu+ktybx3nND+AFG5VBQ3IXA==","signatures":[{"sig":"MEQCIBFUDZ8RxZmvt8VjjcHN4JjeQhgs0UUFYlVvQSRU/setAiAug0az4+mOJv/wqYxl4E6vR0cGxyUIE2Bu7beUI/u2Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE4m6Y/XYwBE+kHizEIouJrKvKe8mB4y2GS6ehvav7b/AiEAl7KK/CVJbvAbPcMla0ooH1lw0SrJ4e3chqnv1W2+gmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6719145},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"51545c312eb331c2fc45eec8f66ba3ef1978f3c8","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1 <0.87.0","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.93.0_1790010197822_0.007868508388706896","host":"s3://npm-registry-packages-npm-production"}},"0.94.0":{"name":"pi-web-ui","version":"0.94.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.94.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a65979105db2d334f6a56615e01299a0b8f72e29","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.94.0.tgz","fileCount":230,"integrity":"sha512-+dXnkhfHzCDlq87A0i0CuZb20vpmlwg6Rpd1LkTizM2bgtJd8GwISFSkbBwfhrHtKytPUa/5iQjteXcMAd2BRw==","signatures":[{"sig":"MEQCIHb4cRb5/ihbmSfE4UNa26GyGBUzpLD2eUfqROcmN4nHAiB3OUoFJvp69ALfA85FEBFFhcxj+PM8pn+LDQBM7dMH8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID6slzV8n7jzaXhw5Qf2Dw+WkOjLWjQt8k4zC4Ff9MW0AiEAuglYiqvI+5SniAhXiwKuuhe9bQCgVD0YteMYvDe2/VI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6746672},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8ed317f726ecfdfa5f743af022aa5382e17cadf6","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1 <0.87.0","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.94.0_1790014872690_0.3820943675087345","host":"s3://npm-registry-packages-npm-production"}},"0.94.1":{"name":"pi-web-ui","version":"0.94.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.94.1","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8838a9eb52fc1138f180fbf59636cf289ed05282","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.94.1.tgz","fileCount":230,"integrity":"sha512-72Gc7cG+6sipy9C9hv1ADmS0N4zGNqnfS0fjubXcTcVm3IPP5Y51qxOE9QLsqig3R7siBGSA4WScvYDfb3KU4g==","signatures":[{"sig":"MEYCIQD2tDA0ut2jDMPUJD1dMllqwIZR97P+QGVS9VZ4KSrdUQIhANceHCeHNpJ7wnMRsjhKkw4AO+HQehb9EQbm8gbnv2jx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZsG9egNGhfLAH0iVrHrWidowHOo7b/S/Rm6MHWzDyZQIgTDvjxif6vQeJP0A/ttK3wehOze/jI44IE+pC7PrT168=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6748416},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"9fa8905825f179b96feb9d67259edbea58658d5a","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","undici":"^8.9.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1 <0.87.0","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.94.1_1790040231653_0.14287977042443356","host":"s3://npm-registry-packages-npm-production"}},"0.95.0":{"name":"pi-web-ui","version":"0.95.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.95.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c881acba70a7edbe923cbb464f92f10f47319dbc","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.95.0.tgz","fileCount":249,"integrity":"sha512-LS1p8Mu9q/AbsIkLTVQZNCEUnmrJDgm+aJEMwZPSmN3c0k40Htu+BiRRHu9sy9hMkiS2ovwesY9F0vNxt9ymlQ==","signatures":[{"sig":"MEUCIF8cbJD380Cr0t+BcBq47x7QUwg1j3E9FdSaxQ/QwTUEAiEAxNWDgqLPXUwq5YI9fWZXqHPYl6nBgcHLpq3QiA/D2xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC7Pb4Z43wffoSwLCjkcRiB7fZ3O1/O8p1YOZWNqUBsyQIgV0ycQDLhT3LPdn9khvLPikodWLxACs2iGV0cdYbFt0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7266837},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"568f05aeb49d5dc416678bd7dd5cc0e9be27eaad","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","undici":"^8.9.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.95.0_1790222692631_0.10079296194622289","host":"s3://npm-registry-packages-npm-production"}},"0.96.0":{"name":"pi-web-ui","version":"0.96.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","_id":"pi-web-ui@0.96.0","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6d8b0501a0c682fc77d1aaf40b30ac685a463376","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.96.0.tgz","fileCount":257,"integrity":"sha512-joDkDu+s1gQ3vWL/kiAvhHFamHGrwd4Aa9UhD88ou6ejkri5zTgQ1FMqqg2xzpJ8h21fZPg5PaWoxieQzuWYCw==","signatures":[{"sig":"MEUCIQDdSGosB4d8aYyth35AG5VM2xJJ+/V4Jc8lw0qE3uVg5gIgfRdDUeXnYfVoN95n81/Kk5Vwh2wPsqBhbWtfhbxDE70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDxmPiPpE3XVWv/b+AbJWKibnq+WHAhpLdSsmmQuIDzbQIhAI8zQWXjWYMPb0ykcs59u8WeR9WpFO1XJzk0mTjJVPmE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7529589},"main":"bin/pi-web-ui.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"0bbbcbafe2cc4c7b010187c1dd753c726dc1df76","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node --import ./dist/server/resolve-global-sdk.js dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","test:smoke:core":"node tests/run-smoke.mjs --core","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","undici":"^8.9.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","rehype-sanitize":"^6.0.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.96.0_1790405855423_0.05214165575706953","host":"s3://npm-registry-packages-npm-production"}},"0.96.1":{"pi":{"image":"https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg","extensions":["./extensions"]},"_id":"pi-web-ui@0.96.1","bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"dist":{"shasum":"e0f5f70d7d7e7a72e9bacce11c19d6616d83eb9a","tarball":"https://registry.npmjs.org/pi-web-ui/-/pi-web-ui-0.96.1.tgz","fileCount":257,"integrity":"sha512-ZR/zPBGN9AlpWT6gKU8p0zGYkuehAwHxR8rmlXOolGQMIiI2GYjI5wL0OIesyLIaKcpmWzekwJD6cclNXccs7A==","signatures":[{"sig":"MEQCIDy8ecaGTrakpkEykezOMocWTqxIGPmlOPZv3G3jhka/AiBzmuaqRLX+/GKAv4t4hLAaHkLfajQbFrapvBlrgifRFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBXYu/OW9Ux5i3t6YTqbH0yvyAQh+Y+rxZbNfrixreO7AiEAztQzJ37X9EoNBUuH5BcWTC/AA0eJK0vd6jg3NUdwQpM="}],"unpackedSize":7539115},"main":"bin/pi-web-ui.mjs","name":"pi-web-ui","type":"module","author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"engines":{"node":">=22.19.0"},"gitHead":"bbcbec4b9e84949b93e16dedbb257cd3244f6244","license":"MIT","scripts":{"dev":"concurrently -k -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"","lint":"oxlint server/ web/src/ extensions/ scripts/ desktop/","test":"vitest run","build":"npm run build:web && npm run build:server && npm run build:dsh-runtime && npm run build:mermaid-vendor && npm run build:runtrace-vendor","start":"node --import ./dist/server/resolve-global-sdk.js dist/server/index.js","format":"prettier --write server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","dev:web":"vite --config web/vite.config.ts","lint:fix":"oxlint --fix server/ web/src/ extensions/ scripts/ desktop/","build:web":"vite build --config web/vite.config.ts","i18n:diff":"node scripts/i18n-diff.mjs","test:unit":"vitest run","typecheck":"tsc -p tsconfig.server.json --noEmit && tsc -p web/tsconfig.json --noEmit && tsc -p tsconfig.tests.json --noEmit && tsc -p desktop/tsconfig.json --noEmit && tsc -p plugins/page-picker/extension/tsconfig.json --noEmit","dev:server":"cross-env PI_WEB_PORT=8788 PI_WEB_ALLOW_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 node --watch --import tsx server/index.ts","test:smoke":"node tests/run-smoke.mjs","desktop:dev":"npm run build:desktop && electron dist/desktop/main.js","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","desktop:dist":"npm run build && npm run build:desktop && electron-builder -c desktop/electron-builder.yml","format:check":"prettier --check server/ web/src/ extensions/ scripts/ bin/ desktop/ tests/*.mjs tests/unit/ *.mjs","build:desktop":"tsc -p desktop/tsconfig.json","release:notes":"node scripts/release-notes.mjs","changelog:i18n":"node scripts/release-notes.mjs --unreleased","check:protocol":"node scripts/check-protocol-sync.mjs","pack:extension":"node plugins/page-picker/extension/pack.mjs","prepublishOnly":"npm run build","build:extension":"node plugins/page-picker/extension/build.mjs","test:smoke:core":"node tests/run-smoke.mjs --core","build:dsh-runtime":"node scripts/copy-dsh-runtime.mjs","build:mermaid-vendor":"node scripts/build-mermaid-vendor.mjs","build:runtrace-vendor":"node scripts/build-runtrace-vendor.mjs"},"version":"0.96.1","_npmUser":{"name":"xingshuyin","email":"xing-shuyin@qq.com"},"homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"_npmVersion":"11.12.1","description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","directories":{},"maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"_nodeVersion":"25.9.0","allowScripts":{"node-pty@1.1.0":true},"dependencies":{"ws":"^8.21.3","tar":"^7.5.22","katex":"^0.18.7","react":"^19.3.0","yauzl":"^3.4.0","undici":"^8.9.0","express":"^5.2.1","typebox":"^1.3.34","node-pty":"^1.1.0","react-dom":"^19.3.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","compression":"^1.8.2","react-icons":"^5.7.0","remark-math":"^6.0.0","@xterm/xterm":"^6.0.0","highlight.js":"^11.12.0","rehype-katex":"^7.0.1","html-to-image":"^1.11.13","remark-breaks":"^4.0.0","react-markdown":"^10.1.0","rehype-sanitize":"^6.0.0","@xterm/addon-fit":"^0.11.0","electron-updater":"^6.8.9","rehype-highlight":"^7.0.2","@deepseek-ai/dsh-sdk-protocol":"^0.1.1-rc.2","@earendil-works/pi-coding-agent":">=0.85.1","@deepseek-ai/dsh-sdk-jsonrpc-server":"^0.1.1-rc.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vite":"^8.3.0","jsdom":"^30.1.0","oxlint":"^1.83.0","vitest":"^5.0.1","esbuild":"^0.28.2","mermaid":"^12.0.0","electron":"^44.4.2","prettier":"^3.9.8","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"^7.0.2","@types/node":"^26.6.1","@types/react":"^19.3.0","@types/yauzl":"^3.4.0","concurrently":"^10.0.5","vis-timeline":"^8.5.4","@types/express":"^5.0.6","playwright-core":"^1.63.0","@types/react-dom":"^19.3.0","electron-builder":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^6.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-web-ui_0.96.1_1790416363869_0.9810642922783979"}}},"time":{"created":"2026-08-04T01:21:38.355Z","modified":"2026-09-26T09:52:44.173Z","0.1.0":"2026-06-06T02:42:59.189Z","0.1.1":"2026-08-04T01:21:38.550Z","0.2.0":"2026-08-04T02:17:21.991Z","0.2.1":"2026-08-04T02:33:43.134Z","0.2.2":"2026-08-04T03:11:17.177Z","0.2.3":"2026-08-04T04:54:09.751Z","0.2.4":"2026-08-04T05:11:36.567Z","0.2.5":"2026-08-04T05:23:50.639Z","0.2.6":"2026-08-04T05:33:52.431Z","0.2.7":"2026-08-04T06:52:19.960Z","0.2.8":"2026-08-04T06:56:49.832Z","0.2.9":"2026-08-04T07:02:23.257Z","0.2.10":"2026-08-04T07:57:28.408Z","0.2.11":"2026-08-04T08:22:42.478Z","0.2.12":"2026-08-04T08:38:16.216Z","0.2.13":"2026-08-04T10:05:55.782Z","0.2.14":"2026-08-04T15:42:54.073Z","0.2.15":"2026-08-04T15:52:50.644Z","0.3.0":"2026-08-05T00:16:25.682Z","0.4.0":"2026-08-05T04:09:13.378Z","0.5.0":"2026-08-05T04:25:42.970Z","0.5.1":"2026-08-05T04:34:00.697Z","0.6.0":"2026-08-05T04:43:22.077Z","0.6.1":"2026-08-05T07:05:22.338Z","0.6.2":"2026-08-05T07:23:38.836Z","0.7.0":"2026-08-05T09:35:51.239Z","0.8.0":"2026-08-05T10:47:04.658Z","0.8.1":"2026-08-05T10:53:39.971Z","0.8.2":"2026-08-05T11:34:58.353Z","0.8.3":"2026-08-05T11:48:17.801Z","0.8.4":"2026-08-05T12:03:32.107Z","0.8.5":"2026-08-06T00:41:18.790Z","0.8.6":"2026-08-06T01:06:47.393Z","0.8.7":"2026-08-06T01:32:16.613Z","0.8.8":"2026-08-06T14:48:28.329Z","0.8.9":"2026-08-06T15:06:57.051Z","0.9.0":"2026-08-06T16:12:22.462Z","0.9.1":"2026-08-06T16:19:17.888Z","0.9.2":"2026-08-07T03:52:26.868Z","0.9.3":"2026-08-07T05:05:26.355Z","0.10.0":"2026-08-07T08:50:50.279Z","0.10.1":"2026-08-07T09:05:10.969Z","0.10.2":"2026-08-07T09:50:10.537Z","0.11.0":"2026-08-07T17:38:18.357Z","0.11.1":"2026-08-07T17:44:33.525Z","0.11.2":"2026-08-07T18:04:59.640Z","0.11.3":"2026-08-07T18:20:46.665Z","0.11.4":"2026-08-07T18:47:06.185Z","0.11.5":"2026-08-07T19:13:03.258Z","0.12.0":"2026-08-08T02:12:41.264Z","0.13.0":"2026-08-08T04:17:34.566Z","0.13.1":"2026-08-08T04:34:35.872Z","0.14.0":"2026-08-08T16:38:52.274Z","0.14.1":"2026-08-10T03:01:21.250Z","0.15.0":"2026-08-10T04:01:42.585Z","0.15.1":"2026-08-10T04:17:06.893Z","0.15.2":"2026-08-10T04:23:57.337Z","0.15.3":"2026-08-10T04:27:07.311Z","0.15.4":"2026-08-10T04:34:31.020Z","0.15.5":"2026-08-10T05:22:37.165Z","0.15.6":"2026-08-10T16:36:55.925Z","0.16.0":"2026-08-10T17:34:47.131Z","0.16.1":"2026-08-10T17:50:35.086Z","0.16.2":"2026-08-11T01:08:19.266Z","0.17.0":"2026-08-11T06:59:27.563Z","0.17.1":"2026-08-11T08:00:05.491Z","0.18.0":"2026-08-12T04:46:37.853Z","0.19.0":"2026-08-14T14:59:31.882Z","0.19.1":"2026-08-14T15:19:10.430Z","0.19.2":"2026-08-14T16:14:04.340Z","0.20.0":"2026-08-15T04:28:08.126Z","0.20.1":"2026-08-15T08:02:08.341Z","0.21.0":"2026-08-15T14:19:08.768Z","0.21.1":"2026-08-15T14:42:38.875Z","0.21.2":"2026-08-15T17:00:49.121Z","0.22.0":"2026-08-16T05:24:57.324Z","0.22.1":"2026-08-16T13:42:53.435Z","0.23.0":"2026-08-16T16:31:59.678Z","0.24.0":"2026-08-17T00:41:10.813Z","0.25.0":"2026-08-17T00:58:39.403Z","0.26.0":"2026-08-17T01:21:41.225Z","0.26.1":"2026-08-18T03:06:18.736Z","0.26.2":"2026-08-19T10:21:09.875Z","0.26.3":"2026-08-19T10:44:31.470Z","0.26.4":"2026-08-19T10:57:49.974Z","0.27.0":"2026-08-20T05:13:22.772Z","0.27.1":"2026-08-20T11:07:42.883Z","0.28.0":"2026-08-21T11:27:03.346Z","0.28.1":"2026-08-21T12:33:40.929Z","0.28.2":"2026-08-21T13:05:06.026Z","0.29.0":"2026-08-23T03:49:37.693Z","0.29.1":"2026-08-23T04:21:41.743Z","0.29.2":"2026-08-23T15:39:50.929Z","0.29.3":"2026-08-23T15:45:59.160Z","0.30.0":"2026-08-23T17:09:21.566Z","0.31.0":"2026-08-24T02:29:12.444Z","0.32.0":"2026-08-24T04:15:36.713Z","0.34.0":"2026-08-24T16:42:27.074Z","0.34.1":"2026-08-24T17:02:22.376Z","0.34.2":"2026-08-24T17:20:05.356Z","0.34.3":"2026-08-24T17:55:00.098Z","0.35.0":"2026-08-26T02:36:41.720Z","0.35.1":"2026-08-27T02:09:32.609Z","0.36.0":"2026-08-27T02:55:28.562Z","0.43.0":"2026-08-27T13:14:19.109Z","0.44.0":"2026-08-27T16:52:02.764Z","0.44.1":"2026-08-28T01:32:10.063Z","0.44.2":"2026-08-28T03:31:50.530Z","0.45.0":"2026-08-28T13:24:58.909Z","0.46.0":"2026-08-28T16:28:07.632Z","0.47.0":"2026-08-28T17:02:19.647Z","0.48.0":"2026-08-29T01:25:49.693Z","0.48.1":"2026-08-29T03:01:56.092Z","0.48.2":"2026-08-29T04:12:37.223Z","0.48.3":"2026-08-29T13:40:07.562Z","0.49.0":"2026-08-29T14:12:30.646Z","0.50.0":"2026-08-29T15:45:00.092Z","0.51.0":"2026-08-30T02:07:48.591Z","0.52.0":"2026-08-30T02:36:30.072Z","0.53.0":"2026-08-30T06:04:46.127Z","0.54.0":"2026-08-30T09:12:45.946Z","0.55.0":"2026-08-30T11:14:35.094Z","0.56.0":"2026-08-30T11:53:45.681Z","0.56.1":"2026-08-30T12:06:55.673Z","0.57.0":"2026-08-30T13:04:39.014Z","0.58.0":"2026-08-30T14:53:50.350Z","0.59.0":"2026-09-01T13:28:10.441Z","0.59.1":"2026-09-02T01:14:04.110Z","0.60.0":"2026-09-02T09:23:27.834Z","0.61.0":"2026-09-02T13:49:34.387Z","0.62.0":"2026-09-02T17:08:21.433Z","0.62.1":"2026-09-03T01:13:19.970Z","0.63.0":"2026-09-03T13:41:19.594Z","0.63.1":"2026-09-03T14:12:40.036Z","0.63.2":"2026-09-03T15:22:38.938Z","0.63.3":"2026-09-04T01:51:16.186Z","0.63.4":"2026-09-04T02:09:31.623Z","0.64.0":"2026-09-04T08:05:31.211Z","0.64.1":"2026-09-05T01:23:41.881Z","0.64.2":"2026-09-05T08:59:31.635Z","0.64.3":"2026-09-05T10:19:44.205Z","0.64.4":"2026-09-05T18:51:56.778Z","0.64.5":"2026-09-06T01:58:50.471Z","0.64.6":"2026-09-06T03:43:49.664Z","0.64.7":"2026-09-06T04:37:11.934Z","0.64.8":"2026-09-06T04:46:25.902Z","0.65.0":"2026-09-06T14:13:42.305Z","0.66.0":"2026-09-07T01:12:16.972Z","0.67.0":"2026-09-07T05:11:54.321Z","0.68.0":"2026-09-07T06:42:04.271Z","0.68.1":"2026-09-07T13:12:24.166Z","0.68.2":"2026-09-08T02:41:12.688Z","0.69.0":"2026-09-08T13:28:15.325Z","0.70.0":"2026-09-09T04:59:51.489Z","0.71.0":"2026-09-09T09:26:05.725Z","0.72.0":"2026-09-09T14:13:36.982Z","0.73.0":"2026-09-10T09:49:06.936Z","0.74.0":"2026-09-10T14:10:15.941Z","0.75.0":"2026-09-10T16:07:37.557Z","0.76.0":"2026-09-10T16:58:46.175Z","0.77.0":"2026-09-11T12:12:19.722Z","0.78.0":"2026-09-11T13:34:22.586Z","0.79.0":"2026-09-11T15:54:45.098Z","0.80.0":"2026-09-11T18:05:33.993Z","0.80.1":"2026-09-12T05:53:16.729Z","0.80.2":"2026-09-12T11:53:56.971Z","0.81.0":"2026-09-12T15:46:53.226Z","0.83.0":"2026-09-13T09:53:27.801Z","0.84.0":"2026-09-13T14:03:21.481Z","0.85.0":"2026-09-14T03:06:09.392Z","0.86.1":"2026-09-15T02:13:26.830Z","0.86.2":"2026-09-15T02:40:43.189Z","0.87.0":"2026-09-16T01:12:45.169Z","0.87.1":"2026-09-16T02:47:06.101Z","0.87.2":"2026-09-16T05:01:08.293Z","0.88.0":"2026-09-16T14:05:02.869Z","0.89.0":"2026-09-17T10:20:28.707Z","0.90.0":"2026-09-18T04:08:07.470Z","0.90.1":"2026-09-18T12:02:20.963Z","0.91.0":"2026-09-19T10:33:43.384Z","0.92.0":"2026-09-20T10:13:57.250Z","0.93.0":"2026-09-21T17:03:18.050Z","0.94.0":"2026-09-21T18:21:12.838Z","0.94.1":"2026-09-22T01:23:51.821Z","0.95.0":"2026-09-24T04:04:52.797Z","0.96.0":"2026-09-26T06:57:35.582Z","0.96.1":"2026-09-26T09:52:44.007Z"},"bugs":{"url":"https://github.com/xing-shuyin/pi-web-ui/issues"},"author":{"name":"xingshuyin","email":"xingshuyin@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/xing-shuyin/pi-web-ui#readme","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"repository":{"url":"git+https://github.com/xing-shuyin/pi-web-ui.git","type":"git"},"description":"Just open your browser to get all your work done — browser cockpit for AI coding agents (chat, code, files, terminal, Git in one tab)","maintainers":[{"name":"xingshuyin","email":"xing-shuyin@qq.com"}],"readme":"# pi-web-ui\n\n[English](https://github.com/xing-shuyin/pi-web-ui/blob/main/README.md) | **简体中文**\n\n[![npm 版本](https://img.shields.io/npm/v/pi-web-ui?color=cb3837&logo=npm)](https://www.npmjs.com/package/pi-web-ui)\n[![Node.js](https://img.shields.io/node/v/pi-web-ui?logo=node.js&logoColor=white)](https://nodejs.org/)\n[![许可证](https://img.shields.io/github/license/xing-shuyin/pi-web-ui)](LICENSE)\n\n> 你只需要打开浏览器，就能完成所有工作。\n>\n> 聊天、写代码、改文件、用终端、管 Git —— 都在一个浏览器标签页里，不用开 IDE，不用来回切换。\n\nAI 编程智能体（pi / DSH）的浏览器工作台，宗旨只有一句话：**打开浏览器，什么都能干**。智能体在服务端运行，\n事件经 WebSocket 流式推送到浏览器。支持思考块与工具调用、附件与图片问答、内置终端、\n模型管理，以及设置面板（自定义系统提示词、技能/插件开关、设置预设一键应用）等功能。\n需要 Node.js ≥ 22.19 及配置好的 pi 环境。\n\n## 作者的其他项目\n\n> **正在使用 DSH 构建工具？**\n>\n> [**dsh-ui-tools**](https://github.com/xing-shuyin/dsh-ui-tools) 是作者的配套项目，\n> 用于在 DSH 生态中构建和扩展 UI 工具。\n\nQQ群 1126050727\n\n## 功能特性\n\n**对话**\n\n- WebSocket 流式聊天 —— pi SDK 在服务端进程内运行，事件以快照（60ms 节流）推送，浏览器按快照渲染。\n- 思考块、工具调用卡片、bash 输出，实时显示状态（执行中 → 已结束 · 等模型 · 耗时）。\n- **补充（steer）** —— 回复流式中可排队发送跟进消息，当前回合工具结算后立即注入（对应 pi CLI 的 Enter 打断语义）。\n- **斜杠命令** —— 输入 `/` 弹出命令选择器（内置 / 扩展 / 模板 / 技能）；内置 `/new /name /model /compact /cwd /thinking /resume /reload`，另有 `/help`（命令清单）、`/copy`（复制上一条回复）与 `/pi-web-ui:quit`（退出服务）。`/new` 可带首条提示（`/new 修一下失败的测试`），会作为新对话的第一条消息发出去。\n- **每项目多对话并发** —— 每个对话独立 agent runtime，切走后仍在后台运行；「运行的对话」列表显示流式进度，可随时切回。\n- **编辑重问** —— 把任意历史问题 fork 成新分支重新提问，原对话不受影响。\n- 超过 30 条的消息自动折叠为摘要行（惰性渲染，点击展开）。\n- 问题导航 —— 右侧浮动导航条 + 每个问题顶部的序号标签，一键跳转。\n- **提示词模板** —— 空对话状态展示一键模板库（仓库初始化、代码审查、调研、合并冲突……）；点卡片即填入输入框，也可把当前草稿存成自己的模板。\n- **模型报错自动重试** —— 按对话可配置重试次数（默认 6，`0` = 失败即停）；次数用完则失败轮次标红，红色报错旁有一键「重试」按钮。\n- **排队可控** —— 排队/插队的气泡可以 ✕ 移除，也可以 ↩ **撤回**：文字落回输入框（输入框非空时另起一行追加，绝不覆盖正在打的字）。\n- **消息自带信息** —— 每条消息头部显示角色、产出它的模型和本地 `HH:MM` 时间，每段文本都有复制按钮。附件渲染为独立可折叠卡片（模式徽章 `lines`/`ref`/`bridged` + 复制按钮 + 视觉桥「已转写」说明），技能调用渲染为技能卡（展开可见完整 `SKILL.md`），你输入的参数单独成气泡。\n- **压缩看得见** —— 上下文压缩显示为一张卡片（「已压缩 N tokens」），到货时自动展开并跳转；压缩进行中横幅实时计数（「正在压缩 · 12s」）并标明触发原因（手动 / 阈值 / 溢出）。\n\n**项目与会话**\n\n- **切换项目** —— 工作区根目录（agent 读写的位置、终端启动位置）随时可切，不用重启：\n  - **右下角状态栏的路径** —— 点 `📁 <路径>` 打开目录选择器：`Tab` 补全、`↑` 回上级、`💻` 跳到「电脑」根以便换盘符、点文件夹进入后按「选择」，或直接「选择当前目录」；「＋ 新建文件夹」可当场建目录，`Esc` 或点击别处关闭。\n  - **右侧文件树** —— 在任意文件夹上点右键 →「以项目打开」（同一菜单里还有「上传文件到此文件夹」）。\n  - **左栏「最近项目」**，或输入框里 `/cwd <路径>`（只输 `/cwd` 显示当前目录）。\n  - 启动默认工作目录来自 `--cwd <dir>` / `PI_WEB_CWD`。\n- **对话并行** —— 每个对话独立 agent runtime，切走后仍在后台流式；每项目最多同时 8 个（子代理不计入）。\n- **「运行的对话」列表** —— 按项目分组（当前项目置顶），子代理缩进挂在父对话下，带子代理 / 报错（悬停看原因）/ 流式徽标；✎ 行内改名；✕ 可选「仅关已结束的子代理」或「强行全关」（运行中会二次确认）；右键某行只作用于该对话的子代理子树。\n- **历史会话** —— 读的是 `<agentDir>/sessions/--<cwd>--/`，也就是 pi CLI/TUI 写的同一份转录：浏览器和终端里的 `pi` 共用每个项目的一份列表。支持 ✎ 行内重命名（写入的 `session_info` 与 pi 的 `/name` 同机制）与两步确认删除。\n- **最近项目** —— 本浏览器的记录 ∪ 所有有转录的目录，去掉你删过的（墓碑）和不存在的路径，按最近使用排序（显示 20 条，最多存 30）。\n- **回到现场** —— 重连会恢复上次用的工作目录（并提示落在哪），标签标题可显示当前项目名，每个项目记住自己的「模型 + 该服务商当前密钥」用于**新建**对话（已有内容的对话不被覆盖）。\n- 上次关服时仍在回答的对话，会在下次连接时一次性提示「上次运行被打断」，而不是历史里凭空少一段。\n\n**搜索与导航**\n\n- **全局搜索（Ctrl/Cmd+K）** —— 一个输入框搜三处：对话转录全文（含助手输出，最多 50 条、每条带跳转锚点）、最近项目、工作区文件名（受限遍历：50 条结果 / 2 万条目 / 4 秒 / 深度 24，触顶时会明确提示而不是卡住）。`↑`/`↓` + `Enter` 打开、`Esc` 关闭；点对话＝恢复并跳到命中消息，点项目＝切工作区并重搜，点文件＝打开预览。\n- **会话内搜索（Ctrl/Cmd+F）** —— 搜当前对话**实际渲染出来的文本**（大小写不敏感，走 CSS Custom Highlight API 高亮），`Enter` 下一个、`Shift+Enter` 上一个、`Esc` 关闭。被折叠的旧消息用消息数据建索引，所以长会话仍可搜——只有你跳到的那一条才会展开。\n- **长会话体验** —— 超过 30 条的消息折叠成摘要行（含思考/工具/bash/图片计数与 90 字预览）；问题导航条列出问过的每个问题；上滚后浮出「回到底部」；只有贴底时才自动跟随输出（你主动上滚就不会被拽回）；远离视口的消息替换为等高占位。\n\n**子代理与模板**\n\n- **第一方子代理** —— 后台派发独立对话并行做调研 / 实现 / 审查（`subagent_spawn`）；与普通对话一样在左栏管理：实时查看输出、补充（steer）、中止、移出。内存会话——不进历史 / resume 列表，可嵌套派发。\n- **子代理模板** —— 设置面板「子代理模板」里配置可复用预设：角色系统提示词（追加或整体替换）+ 技能/扩展白名单 + 可选模型 + 可选思考强度。AI 用 `subagent_templates` 工具查询清单、`subagent_spawn(template=\"…\")` 选用，也可以不传模板按主会话默认配置运行。模型与思考强度都留空 = 跟随主对话当前设置（与「跟随主对话」的模型回落同语义）；模板指定了就固定用那个组合（模型不支持的思考档位会自动收敛）。停用的模板保留在面板可随时重新启用，但对 AI 工具不可见（查不到、不能选）。模板全局共享（`<dataDir>/subagent-templates.json`，所有浏览器客户端一致）。首次运行自带 13 个内置模板 —— 前 6 个（review / implement / research / scout / audit / delegate）改编自 pi-subagents 社区项目，另 7 个（oracle / librarian / explore / metis / momus / multimodal-looker / sisyphus-junior）移植自 oh-my-pi 内置 agent —— 面板标「默认」徽标，可像普通模板一样修改或删除。\n\n**文件、图片与附件**\n\n- 一律只给路径引用：`reference`（仅路径）/ `lines`（选中行范围，引用上带行号），**文件内容永不注入 prompt**——模型用自己的 read 工具按需读（旧版 `inline` 全文注入已移除，旧客户端/旧草稿发来的 `inline` 按 `reference` 处理）。\n- 粘贴 / 拖拽 / 上传图片 —— 浏览器端自动缩放，模型支持识图时作为图片内容发送（不支持时提示警告）。\n- **视觉桥** —— 当前模型不支持识图时，把图片交给自动发现的视觉模型转写成文字证据（按批次缓存，可在设置里指定模型/开关）。\n- 免工作区路径附加任意文件 —— 存入全局上传目录，以绝对路径引用（内容不注入）。\n- 文件预览 —— 行号、点选/拖拽/Shift 选区（可添加到对话为 lines 附件）、GBK 回退解码、二进制十六进制视图、媒体 HTTP 预览（支持 Range）、下载按钮。\n- 实时文件树 —— 服务端对当前列出目录 fs.watch，改动即静默重列；超大目录显示截断提示。\n- **能浏览到工作区之外** —— 文件树可以越过工作区根到 💻「此电脑」层，列出所有盘符（POSIX 下是 `/`）；面包屑可直接跳到任意层级，`..` 回上级；目录被删/改名/无权限时降级为空列表 + 提示，而不是报错页。\n- **行内操作** —— 悬停文件：下载 / 引用附件（🔗）/ 复制名称 / 复制路径；悬停文件夹：引用附件、复制名称、复制路径（纯 HTTP 环境下剪贴板不可用时自动走兜底实现）。\n- **从文件树上传** —— 右键**文件夹行** →「上传文件到此文件夹」（同一菜单里还有「以项目打开」）；右键文件行或面板空白 →「上传文件到当前目录」（你正在浏览的那一层）。把系统文件拖到文件夹行上就上传到那一个文件夹（该行高亮），拖到面板则上传到当前目录；拖入的是**文件夹**会明确提示不支持，而不是静默没反应。单文件上限 100MB，空文件会被拒绝，文件名只取 basename 并替换 Windows 非法字符（限 200 字），目标目录不存在会自动创建，上传完成后列表会刷新——哪怕你当时正浏览别的地方。\n- **列表状态的边界** —— Windows/macOS 用工作区根的递归监听，**任何**子目录的改动都会刷新（400ms 防抖）；不支持监听的网络盘回退为 10 秒轮询（每个工作区只提示一次）；POSIX 隐藏构建噪声（`node_modules`、`.git`、`dist`、`.venv` ……）且最多 500 条，Windows 只隐藏依赖/VCS/数据目录且最多 2000 条，两者被截断时都会明说。\n- **预览也是编辑器** —— 文本文件可直接改并用 Ctrl/Cmd+S 保存（限 2MB、未改动时保存置灰、带未保存改动关闭会先确认）；Markdown 可切渲染/原文；HTML 在沙箱 iframe 里渲染，走目录映射 URL 让相对 CSS/图片正常加载（「启用脚本」是逐文件开关，且永不开同源）；图片/视频走 HTTP Range 流式；二进制给十六进制视图；文本支持行号、点选/拖拽/Shift 选区（作为 `lines` 附件添加）、50–200% 缩放、自动换行开关与全屏。\n- **下载不跟安全浏览打架** —— 先取字节再用浏览器的保存框存档（不支持时回退 blob 链接，超 200MB 走原生下载），Windows 非法文件名自动改写，取消保存框不算错误。\n\n**终端与 Git**\n\n- 内置终端（xterm.js + node-pty），每客户端独立 PTY 管理；Windows 优先 Git Bash，回退到随包下载的 busybox，再回退 `cmd`。同时最多 16 个在线终端（agent 自己开的不计入），每个标签切换时保留自己的 8000 行回滚；标签可行内重命名、可关闭（真杀进程），退出码会写进回滚。\n- **常用命令列表** —— 终端侧栏上半是当前项目的 `.pi/commands.json` 列表（`name` + `command` + `cwd`，`${pwd}` 展开为工作区）：点一行即运行（同名标签复用并重启，类 VSCode task），可增删改，也能从磁盘重读文件。\n- **AI bash 分组** —— agent 通过终端接管开的终端收进可折叠的「AI bash」分组，不会淹没你自己的标签。\n- **终端接管 bash**（设置 → 工具，默认关）—— 开启后 agent 的 `bash` 工具在可见的常驻终端里跑，而不是隐藏进程，因此 `cd`/venv/ssh 等 shell 状态能跨调用保留；静默阈值（默认 15 秒，`0` = 一直等）决定何时把安静的命令转后台，`head`/`tail` 控制模型要读的行数。\n- **活力检测** —— agent 用过的终端在对话仍流式时长时间没输出，服务端会把尾部输出作为 steer 推给 AI（「去读/回答/关掉它」），而不是干等。\n- **源代码管理（Git）面板** —— 经隐藏查询终端展示 status / branch / diff / 历史 / 未跟踪文件，另有逐文件暂存（＋）与取消暂存（－）、提交框（Enter 提交、兼容输入法）与「全部提交」（`git add -A && git commit`）、本地/远程跟踪分支分组的切换器（选远程分支会在本地建跟踪分支）、分离 HEAD 与 `↑领先 ↓落后` 徽标。「提交树」页加载 `git log --graph` 并可看每个提交的完整 diff。写操作（提交 / 切分支 / 推送 / 拉取）都在可见终端里跑并自动切到终端视图；仓库真实 git 目录变动时（含 worktree）以及 30 秒轮询兜底都会自动刷新，因此在浏览器之外提交也能自己出现在面板里。\n\n**模型与设置**\n\n- 模型管理 —— UI 里编辑 models.json、按 provider 设置 API key（密钥/headers 永不下发浏览器）。\n  - **模型选择器** —— 可按名称/provider/id 搜索，多个服务商时左侧有服务商栏；你常用的模型自动置顶并标「用过 N 次」，另带推理/视觉徽标；打开时滚到当前模型，底栏固定「刷新模型 / 管理模型」。\n  - **一个服务商多把密钥** —— 内置服务商可存多个命名密钥（`<agentDir>/provider-keys.json`）：加第二把不会丢掉第一把，可按名激活/删除（删掉当前活跃的会自动提升下一把）。选择器按密钥分组列出，点某把密钥下的模型即切过去；浏览器只拿到密钥昵称。\n  - **自定义服务商** —— 可增删改（API 类型、`baseUrl`、密钥、可选鉴权头）并逐模型配置上下文窗口/最大输出/文本或图片/推理；**抓取模型**在**服务端**探测 `/models`（所以局域网/回环地址不受 CORS 限制）并合并结果，已保存的服务商也能重新探测。手改过的 `models.json` 用「重新加载 models.json」拉进来（允许注释，与 SDK 一致）。\n- 思考强度（thinking level）按模型切换 —— 共七档，模型不支持的档位置灰，而不是静默换到别的档。\n- 首次配置引导 —— 没装 pi CLI 时可直接一键安装（失败有详情、可重试/跳过），然后选服务商 + 填密钥就能开用。\n- 设置面板：\n  - **系统提示词** —— 11 个来源（soul / tools / guidelines / pi 文档 / append / persona / terminal / markers / context / skills / cwd）拼成的 `{{token}}` 组合模板，点 token 芯片即可追加；每个来源可单独覆盖（`auto` 徽标、「以默认为底改写」、单独恢复默认，环境类来源保持只读）；另有两个查看器分别展示**实际生效的完整提示词**与**真正发给模型的工具 schema**。\n  - **输入历史与快捷短语** —— 历史有上限（1–500 条，可选单条字数上限，两步确认清空），用 `↑`/`↓` 在光标位于草稿首/末**视觉行**时翻（自动折行的行也算）；输入框上方的快捷短语可逐条编辑/上下移/删除/恢复默认。\n  - **技能** —— 逐个启停，另有「全文」芯片把整个 `SKILL.md` 注入提示词（单文件 8KB、总量 32KB）。\n  - **扩展** —— 逐个启停，`npm:` 装的可在可见终端里一键卸载（`pi remove npm:<包名>`）。\n  - **界面插件 / 目标审查 / 视觉桥 / 子代理模板** 各有自己的页，见 [界面插件](#界面插件)。\n  - **预设** —— 把当前组合（提示词模板/模式/覆盖、技能与扩展开关、工具开关、终端接管、重试次数、审查提示词、技能全文名单）存成命名预设，随时应用或删除；有意**不**包含（问卷、目标模式、显示偏好、视觉桥、默认子代理模型、快捷短语），应用预设后它们保持原值。\n  - **生效时机** —— 工具开关、重试次数、显示偏好、标记与技能全文名单即时生效；提示词模板/覆盖与技能扩展开关需重载会话，回答中改的会延后到「本回复结束后生效」（有提示）。\n  - **显示偏好** —— 思考块默认展开或折叠、工具卡默认展开、宽屏聊天列（宽屏下取消 860px 上限）、标签标题显示项目名、聊天壁纸（地址或上传，带压暗/模糊滑杆）。\n- 主题切换 —— 顶栏选择主题；主题是纯 `:root` 调色板覆盖（布局唯一在 styles.css）。如何添加自定义主题或向仓库贡献主题，见 [主题](#主题)。\n\n**代理工具与内联标记**\n\n- **工具开关** —— 设置 →「工具」把所有可选工具逐个列出：7 个终端工具（默认**关**）、7 个 `subagent_*` 工具（默认开），其余 11 个 —— `edit_soft` 与 `browser_page` 默认关，`delegate_task`/`ask_user_question`/`todo_list`/`conversation_read`/`present_files`/`skill`/`schedule_task`/`schedule_list`/`schedule_cancel` 默认开。开关即时生效、不重启，工具只是被禁用仍保留注册以便随时开回；`bash` 与 SDK 自带的 `edit`/`read` 有意不可关。\n- **内联标记** —— 状态改变不需要工具往返，AI 直接把标记写进回复：任务列表用 `[[todo:new:<主题>]]` / `[[todo:set:<id>,in_progress]]` / `[[todo:remove:<id>]]` / `[[todo:dep:<id>,blocks=<id>]]`，不打断的提醒用 `[[notify:<级别>:<内容>]]`，改对话标题用 `[[conv:rename:<标题>]]`。气泡定稿即执行，标记写错会以浏览器提示回显；任务列表同时以常驻 widget 显示在右栏文件树下方（`N/M done` + ✓/◐/○），跟随当前对话，且因为存在该对话自己的会话分支里，刷新后仍在。设置 →「工具」另有总开关与逐标记开关（这两项全局共享）。\n- **`edit_soft`** —— 更宽松的 `edit`（默认关）：缩进/空白导致内置工具失败时用它，先精确子串、再按去空白逐行核心匹配，`newText` 原样写入并保留文件换行符/BOM，结果带 diff 与 unified patch。\n- **`delegate_task`** —— 强制六段派单（TASK / EXPECTED OUTCOME / REQUIRED TOOLS / MUST DO / MUST NOT DO / CONTEXT）并在服务端校验：模板不可用、任务少于 20 字或任一段为空都会被打回，并把可用模板清单回给模型。卡片按六段结构化展示，跑完后可一键跳到对应子代理对话。\n- **`ask_user_question`** —— pi 引擎本身没有问卷工具，这是 pi-web-ui 加的：模型可以问结构化问题（单选/多选 + 富文本选项预览 + 自由文本），以对话框弹出；回答作为工具结果回给模型，取消则以工具错误返回，等你回答的时间不受工具看门狗限制，未答的问卷刷新/重连后会恢复。\n- **MCP 服务器** —— 放一份 `<dataDir>/mcp.json`（`{\"servers\":{\"github\":{\"command\":\"node\",\"args\":[\"mcp.js\"],\"cwd\":\"/x\"}}}`），该 stdio MCP 服务器声明的工具就会作为普通工具交给 AI（服务端执行）；某一个起不来只记一行日志，不影响其他。文件**热加载**：保存后一两秒内自动生效，无需重启——且只有配置真正变了的服务器才会重启（文件写坏会报错并保留正在运行的服务器）。\n- **扩展 UI 桥** —— pi 扩展可以驱动浏览器：`setWidget` 在文件树下方渲染实时面板（点标题居中放大），`setStatus` 在底栏显示状态文本，`notify` 弹通知，`select`/`confirm`/`input` 在输入框上方弹出非模态请求面板（选项走 Markdown 渲染，`Esc` 当作取消）；widget 文本里的 ANSI 色码会被剥掉，不会把扩展底栏变成转义序列噪声。\n- **插件能力** —— 插件可注册 `/命令`（选择器标 plugin 来源、服务端执行不耗 token）、注册带停止按钮的后台任务、声明设置表单、订阅运行/工具/对话事件，并在前端经 `window.__piWebUiHost` 切视图、新建对话。详见 [界面插件](#界面插件)。\n\n**声音与通知**\n\n- **声音提醒** —— 总开关 + 四个事件各自开关（提问 / 完成 / 开始 / 报错），每个都带试听按钮，另有音量滑杆（0–100%）。\n- **桌面 / 系统通知** —— 默认关；开启时在点击处申请浏览器权限，被拒则自动关回（并记住）。通知经 Service Worker 发出，所以装成 PWA 后后台也能收到，覆盖「完成 / 提问 / 报错」，点通知会把应用窗口拉到前台。你明显正在看页面时不会打扰——包括 Windows 上浏览器仍声称有焦点/可见但窗口已最小化的情况（改用原生窗口矩形判定）。\n\n**PWA 与离线**\n\n- **可安装** —— 带 web app manifest（独立窗口、192/512/1024 + maskable 图标、`./` 相对路径所以子路径部署也能装），Chrome/Edge 的「安装应用」或手机「添加到主屏幕」即可得到独立窗口与图标。\n- **离线应用壳** —— Service Worker 对导航请求走网络优先 + 缓存外壳兜底（后端宕机/重启时页面仍能打开），哈希静态资源缓存优先，而 `/ws`、`/api`、`/themes`、`/plugins` 永不缓存；新 worker 会立即接管已打开的页面。\n- **该提醒时才提醒** —— 页面加载的构建与服务端 wire 协议不一致时（比如刚更新完）会固定显示刷新提示条；标签标题可显示当前项目文件夹。\n\n**语言与语言包**\n\n- 顶栏语言菜单按母语名列出所有语言，「获取更多语言」打开的管理器列出 8 个可下载语言包的版本与下载/移除按钮（另有刷新）；语言包落在 `<dataDir>/locales/`，所以也能手工放进去做完全离线的安装。\n- 首次访问没有存过选择时，按浏览器语言 → 实例默认（`PI_WEB_LOCALE`）→ 英文的顺序决定；一旦你选过就一直跟着。\n- 服务端面向模型/工具的文案也跟随同一语言（工具返回值、提示词段落、提醒），所以中文界面下 `subagent_list` 这类工具也返回中文。\n\n**目标（Goal）模式**\n\n- GoalBar 目标栏 —— 设置目标 + 审查模型 + 最大轮数 + 锁定开关。\n- 目标调研向导（「AI 提炼」）—— 通过引导式问卷把原始需求收敛成明确目标。\n- 自动审查循环 —— 每轮结束后用独立审查会话核对「目标 + 最终文本 + git diff HEAD」；不达标就把审查意见作为 steer 注入重改，直到通过或达到轮数上限。\n\n**DeepSeek Harness（DSH）引擎**\n\n- **引擎可切换** —— `PI_WEB_ENGINE=pi|dsh`（默认 `pi`）。pi 引擎在进程内跑 pi SDK；**DSH 引擎**把官方 [`@deepseek-ai/dsh`](https://github.com/deepseek-ai/dsh)（DeepSeek Harness）运行时作为子进程拉起。`/api/health` 返回 `engine`；底栏显示 DSH 徽标。\n- **同一套 wire 协议** —— DSH 引擎实现与 pi 相同的 WebSocket 协议，目标/审查、SCM、后台任务、设置、插件、终端、message_delta 与快照全部一致。\n- **原生目标机制** —— DSH 自己的目标状态机 + round-driver 自动续轮；完成/受阻由模型自判定（无独立审查会话）。目标向导经模型 `ask_user_question` 驱动。\n- **真图片块** —— 图片作为真正的 image 内容发给支持视觉的 DeepSeek 模型（如 `deepseek-v4-flash-vision-exp`）；纯文本模型走文字转写桥。\n- **提问对话框** —— 模型 `ask_user_question` 弹出浏览器对话框（单选/多选 + 自由文本），支持排队与倒计时。\n- **工具 & MCP 桥** —— 插件 AI 工具与外部 MCP 服务器（`mcp.json`）都桥进 DSH 运行时，DSH 模型可直接调用（服务端执行）。\n- **技能启停** —— 设置面板暴露 DSH 技能目录；禁用即运行时过滤该技能，模型不可见。\n- **DSH 用户补丁** —— 在 `<dataDir>/dsh-patches/` 放 `.yml` Cordis 补丁扩展运行时，设置面板一键重扫生效；设置 →「插件」会列出补丁文件（大小/时间）与解析后的目录路径，坏文件跳过并把错误打到运行时的 stderr。\n\n**DSH 与 pi 引擎的差异**（切换前值得知道）：\n\n- 思考强度固定 `high`，改档会回答「DeepSeek V4 只支持高思考强度」。\n- 底栏的 token/成本/上下文按 DeepSeek 官方每百万定价与 100 万窗口计算。\n- 打开历史会话是只读回放：一发消息就会开**新分支**并把旧对话作为上下文注入（运行时不允许原地续聊）；编辑重问同理。\n- **停止**会杀掉运行时进程树，所以所有进行中的 DSH 对话都会停（有提示），半成品目标会先清除；不支持只中止 bash 工具。\n- 会话存在 `<dataDir>/dsh-sessions/`（与 pi 引擎的转录隔离），超过 `PI_WEB_DSH_SESSION_RETENTION_DAYS`（90）天自动清理；每项目最多同时 8 个对话；运行时崩溃按 1s/3s/9s 退避重启，60 秒内最多 2 次，超限就停下并提示你去查 API key 与 DSH 依赖。\n- 工具跑在 `workspace-write` 沙箱里、审批为 never——你的「停止」按钮就是控制阀。问卷是逐题向导（带选项预览与倒计时）。\n- pi 专属能力（会话重命名、`/compact`、`/reload`、扩展热重载、子代理模板、自定义服务商/多密钥、服务商模型探测、装 pi CLI、视觉桥、逐工具开关）都会给明确提示并被隐藏入口，而不是静默失败。\n\n**后台任务**\n\n- 后台任务面板 —— 在 bash 前后对比监听端口，检测 agent 启动的服务并列出端口 / pid / 名称 / 命令行（点命令行可展开全文）；可单独停止或全部关闭，顶栏按钮带实时数量徽标。\n- 列表属于**浏览器客户端**而非对话：切项目、切对话、重连都不丢，服务端每 30 秒刷新一次并剔除已退出的进程。检测会排除已知桌面软件，以及父链回溯到 `explorer` 而不是服务进程的进程（所以你自己开的浏览器不会被当成「AI 启动的服务」）。\n- 插件注册的任务带 🧩 标记与实时状态文本，走插件自己的停止回调（比如邮件轮询任务）。\n- 工具看门狗 —— 单个工具调用超过 20 分钟自动中断会话（超时在设置「工具」页可改，0 = 禁用；`PI_WEB_TOOL_TIMEOUT_MS` 只提供默认值；工具自己声明更长超时，如 bash `timeout`，则自动顺延）。问卷豁免。\n- **只停止 bash 命令** —— 中止运行中的 bash 工具而不打断对话。\n- **失联警告** —— 流式运行完全没事件超过 3 分钟（`PI_WEB_STALL_NOTIFY_MS`，`0` = 关）会指名对话地提醒一句，但不自动中止。\n\n**安全与运维**\n\n- 默认只绑 loopback；局域网 / 容器需显式 `PI_WEB_HOST=0.0.0.0`。\n- **口令鉴权** —— `PI_WEB_TOKEN` 可经 `Authorization: Bearer …`、`X-PI-Token: …`、`?token=…` 或 `pi_web_token` cookie 任一通过；`?token=` 链接一次登录、从地址栏抹除并把口令写入 cookie，每次授权请求都会刷新它，失效 cookie 在 401 时立即过期——所以改完口令后一次正确的 `?token=` 进入就永久恢复。`/api/health` 保持开放给探针。\n- WebSocket Origin/Host 同权威校验 —— 跨源页面直接拒绝（403），`Origin: null`（`file://` 页面）一律拒绝，设了口令时凭据不对会在升级前就被 401；反代场景用 `PI_WEB_ALLOW_ORIGINS` 白名单。\n- **Host 白名单** —— `PI_WEB_ALLOW_HOSTS=host1,host2` 在始终生效的同权威校验之上再加一层严格主机名白名单。\n- **实例收窄** —— `PI_WEB_TABS=chat,terminal,git` 只开放这些标签页，未列出的标签页在**服务端**也会被拒绝（对应消息返回说明），`chat` 永不可关。`PI_WEB_MANAGED=1` 声明实例由外部部署管理：自更新、装 pi CLI、插件市场安装都会被服务端拒绝并给出原因，前端也隐藏这些入口（版本按钮变成纯标签）。\n- **文件边界** —— 工作区相对路径的读写一律做 `..` 逃逸校验（工作区外的路径只能经显式绝对路径/机器浏览到达）；`/api/file` 内联只放行图片/视频/HTML，二进制不可能被 `<img>` 带走——其他类型必须走 `?download=1`（附件下载）。HTML 预览路由一律以 sandbox 下发。\n- 本地控制 socket 提供 `server status|quiesce|unquiesce`（排空模式：拒绝新 prompt/编辑重问/会话恢复，DSH 下还会拒绝新客户端连接，存量跑完）。\n- 凭据不下发浏览器 —— provider headers（可能含 Authorization）永不发送到前端，服务商 API key 只以昵称形式到达浏览器。\n- 10 种界面语言（中英内置 + 8 个可下载语言包：德/西/法/意/日/韩/葡/俄），语言包可在顶栏菜单里装/卸（见上方「语言与语言包」）。\n- **保留期** —— `uploads/` 里超过 `PI_WEB_UPLOAD_RETENTION_DAYS`（14 天，`0` = 不清理）的文件会在启动时与之后每 6 小时清理一次；DSH 会话有自己 90 天的清理。\n- **运维看门狗**（工具超时、模型失联、终端活力）都可调，见 [环境变量调优](#环境变量调优)。\n\n**部署与更新**\n\n- 前台运行 / 全局 npm 安装 / Docker（见 [Docker](#docker)）/ macOS launchd / Linux systemd / Windows 登录自启（HKCU `Run` 键 + 无控制台启动器 + 崩溃看门狗）/ 桌面快捷方式（`server shortcut`）。\n- `server install --print` 只打印将要写入的 launchd plist / systemd unit / Windows 启动器就退出，可在真正安装前先审阅。\n- **更新面板** —— 版本按钮在有新版本时显示黄点，另有「N 个更新」徽标；「检查全部更新」会比对本体、全局安装的 pi 核心与 `<agentDir>/npm/package.json` 里声明的直接依赖，每行都能单独更新，另有「全部更新」与「重新检查」；命令在可见终端里跑（pi 扩展走 `pi update npm:<名字>`，这是唯一能更新 pi 真正加载的那份的命令；其余走 `npm i -g <名字>@latest`）。刚发布不足 30 分钟会提醒 npm 缓存元数据可能还没同步。被 launchd/systemd/Windows 看门狗托管的实例多一个「重启服务」按钮；前台运行的实例没有，因为没有东西会把它拉回来。\n- **命令行更新插件** —— `pi-web-ui plugins --check-updates` 逐个对比插件记录的提交与远端 HEAD 并给出确切更新命令；每次 `install --force` 都会把旧版本快照到 `<dataDir>/plugin-backups/`（只留最近 3 份，拷贝失败自动回滚），所以 `pi-web-ui plugins --rollback <id>` 可以退回上一版。\n- pi CLI 里还有 `/webui`（来自随包的 `extensions/webui.ts`）：`/webui` 从 8787 起挑第一个空闲端口拉起服务，`--port 9000`、`--cwd <路径>`、`--no-browser`、`status`、`stop` 分别控制它；每个 pi 会话一个子进程，会话关闭时回收，不留孤儿进程。\n\n## 快捷键\n\n| 按键                        | 作用                                                                                                                                   |\n| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| `Enter`                     | 发送。触屏设备上 `Enter` 改为换行，`Ctrl/Cmd+Enter` 才发送（Windows 触屏笔记本当作桌面）。                                             |\n| `Shift+Enter`               | 输入框内换行。                                                                                                                         |\n| `↑` / `↓`                   | 光标在首/末**视觉行**时翻全局输入历史（跨对话持久化；自动折行的行也算，一段长草稿按 `↑` 是逐行上移光标而不是切历史）；`Esc` 回到草稿。 |\n| `Ctrl/Cmd+K`                | 全局搜索（对话 / 项目 / 工作区文件名）。                                                                                               |\n| `Ctrl/Cmd+F`                | 搜当前对话 —— `Enter` 下一个命中，`Shift+Enter` 上一个，`Esc` 关闭。                                                                   |\n| `/`                         | 打开斜杠命令选择器（`↑`/`↓` 选择、`Tab` 或 `Enter` 补全、`Esc` 关闭；输入空格则自动关闭）。                                            |\n| `Ctrl/Cmd+S`                | 预览里编辑文件时保存。                                                                                                                 |\n| `Ctrl/Cmd+A`                | 预览里全选行（光标不在文本框时）。                                                                                                     |\n| `Ctrl/Cmd+Enter`            | 提交「编辑重问」编辑器。                                                                                                               |\n| `Ctrl/Cmd+C` / `Ctrl/Cmd+V` | 终端里：有选中则复制（无选中时 `^C` 仍发给 shell）/ 原生粘贴。                                                                         |\n| `Esc`                       | 关闭预览、对话框、命令选择器、问卷或扩展请求面板（预览有未保存改动时会先问）。                                                         |\n| 拖放                        | 窗口任意位置拖入文件 = 附件到对话；拖到文件树 = 上传到那一个目录；不支持拖文件夹（展开后选文件）。                                     |\n\n## 界面截图\n\n![对话 + 提示词模板](https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/chat-prompts.jpeg)\n\n_对话 + 提示词模板_\n\n![运行轨迹时间线](https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/trajectory.jpeg)\n\n_运行轨迹时间线（run-trace 插件）_\n\n![设置面板](https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/settings.jpeg)\n\n_设置面板_\n\n![内置终端](https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/terminal.jpeg)\n\n_内置终端_\n\n![Git 源代码管理面板](https://raw.githubusercontent.com/xing-shuyin/pi-web-ui/main/assets/git.jpeg)\n\n_Git 源代码管理面板_\n\n## 安装\n\n```bash\nnpm i -g pi-web-ui            # 全局安装（推荐）\nnpx pi-web-ui                 # 或免安装直接跑（拉取最新版，启动在 :8787）\nnpm i -g .                    # 或安装本地 checkout\n```\n\n**npm ≥ 12？** npm 12+ 默认阻止依赖安装脚本（会看到 `npm warn install-scripts … blocked` 警告）。\nnode-pty 是原生模块，需要放行其脚本（其余两个包只是 no-op/纯提示，一并放行可消除警告）：\n\n```bash\nnpm i -g --allow-scripts=node-pty,@google/genai,protobufjs pi-web-ui@latest\n```\n\n### Termux（Android）\n\npi-web-ui 可以通过 [Termux](https://termux.dev) 在 Android 上运行，但原生依赖\n`node-pty` 需要编译工具链，而且 Android 有几个值得注意的坑：\n\n1. **先安装编译工具链** —— `node-pty` 需要 Python 和 C 工具链：\n\n   ```bash\n   pkg install python clang make binutils\n   ```\n\n2. **给 node-pty 构建指定一个占位 NDK 路径**。在 Android 上，gyp 会报\n   `Undefined variable android_ndk_path`，除非该变量有定义：\n\n   ```bash\n   GYP_DEFINES=\"android_ndk_path=' '\" npm i -g --allow-scripts=node-pty,@google/genai,protobufjs pi-web-ui@latest\n   ```\n\n3. **如果安装后 `pi-web-ui` 无法执行**（Android 上 exec 位和/或 shebang 可能\n   被破坏）：恢复它：\n\n   ```bash\n   chmod +x \"$(command -v pi-web-ui)\"\n   sed -i 's/\\r$//' \"$(command -v pi-web-ui)\"\n   ```\n\n4. **后台运行时加上 `--no-browser`**（没有桌面浏览器可以自动打开）：\n\n   ```bash\n   setsid nohup pi-web-ui --no-browser --cwd /path/to/workspace >~/pi-web.log 2>&1 &\n   ```\n\n   `setsid` 把服务器从启动它的 shell 的进程组中脱离，关闭 Termux 会话也不会\n   带走服务器 —— 单靠 `nohup` 在父进程组被杀时是不够的。\n\n启动时的 `[control] socket error: EACCES …/.pi-web/pi-web-ui.sock` 警告在\nAndroid 上无害：`pi-web-ui server stop/restart` 无法通过 control socket 工作，\n但 Web UI 本身不受影响。\n\n## 启动\n\n**前台启动**\n\n```bash\npi-web-ui                                           # 前台，http://localhost:8787\n```\n\n**启动参数 & 环境变量** —— 每个设置既能用命令行的 `--flag` 传，也能用环境变量设（flag 优先）。\n二者任选一种即可：\n\n| 参数                 | 环境变量              | 默认          | 作用                                              |\n| -------------------- | --------------------- | ------------- | ------------------------------------------------- |\n| `--port <n>`         | `PI_WEB_PORT`         | `8787`        | HTTP 端口                                         |\n| `--cwd <dir>`        | `PI_WEB_CWD`          | 当前目录      | 工作区根（读/写/终端）                            |\n| `--data-dir <dir>`   | `PI_WEB_DATA_DIR`     | `~/.pi-web`   | 数据目录（界面状态/插件/上传/主题/语言包）        |\n| `--engine <pi\\|dsh>` | `PI_WEB_ENGINE`       | `pi`          | 智能体引擎；`--engine dsh` = DeepSeek Harness     |\n| `--host <addr>`      | `PI_WEB_HOST`         | `127.0.0.1`   | 监听地址（`0.0.0.0` 供局域网/Docker）             |\n| `--agent-dir <dir>`  | `PI_CODING_AGENT_DIR` | `~/.pi/agent` | pi 配置目录（auth.json、models.json、会话、技能） |\n| `--no-browser`       | —                     | 关            | 启动但不自动打开浏览器                            |\n| _仅环境变量_         | `PI_WEB_TOKEN`        | 空            | 可选共享鉴权口令                                  |\n| _仅环境变量_         | `PI_WEB_DSH_*`        | —             | dsh 运行时、补丁与调试设置                        |\n\n两者等价 —— 任选其一：\n\n```bash\npi-web-ui --engine dsh --port 9000 --cwd /path/to/project\nPI_WEB_ENGINE=dsh PI_WEB_PORT=9000 PI_WEB_CWD=/path/to/project pi-web-ui\n```\n\n若用 dsh 引擎，需先安装运行时（`npm i -g @deepseek-ai/dsh@0.1.1-rc.2`）并准备 DeepSeek API key\n（读 `~/.pi/agent/auth.json`，在服务商/API key 面板设置）。\n\n## 停止\n\n- **前台**：在运行它的终端里按 `Ctrl+C`。\n- **作为服务**：`pi-web-ui server stop`。**Linux 和 Windows** 上会保留开机自启（下次登录/开机会回来，直到 `server uninstall`）；**macOS** 上 `stop` 会卸载 launchd 代理，因此不再登录自启——用 `pi-web-ui server start` 恢复。\n\n## 更新\n\n```bash\nnpm i -g pi-web-ui@latest     # 升级到最新发布版本\npi-web-ui server restart      # 重启服务使新版本生效（前台运行则手动重启）\n```\n\n## 卸载\n\n```bash\nnpm uninstall -g pi-web-ui\n```\n\n卸载**不会**删除你的聊天记录：历史面板里的转录存在 `<agentDir>/sessions/`（默认 `~/.pi/agent/sessions/`，按项目分子目录），其余状态（界面设置、最近项目、插件、上传、主题、语言包）存在 `<dataDir>`（默认 `~/.pi-web/`）。两者都能跨卸载/升级/重装保留，之后重跑 `pi-web-ui server install` 会重新读到（若要删除它们，先备份 `sessions/` 与 `plugins/` —— 卸载本身永不动这两处）。\n\n## 作为系统服务（开机自启）\n\n```bash\npi-web-ui server install --port 9000 --cwd /path/to/project   # 安装 + 启动\npi-web-ui server status                     # 运行中？开机自启？\npi-web-ui server restart                    # 重启（应用配置/版本变更）\npi-web-ui server stop                       # 停止（开机自启保留）\npi-web-ui server start                      # 再次启动\npi-web-ui server uninstall                  # 彻底移除服务\npi-web-ui server shortcut                   # 桌面一键启动图标\npi-web-ui server quiesce                    # 排空：拒绝新的对话/消息，存量运行继续跑完\npi-web-ui server unquiesce                  # 解除排空，恢复接收新工作\n```\n\n`server status` 还会经本地控制 socket 显示实时状态（版本、PID、排空状态、\n浏览器连接数、运行中对话数）——`quiesce`/`unquiesce` 也走同一个 socket。\n\n- **macOS** → launchd 代理（无需 sudo），日志 `/tmp/pi-web-ui.log` / `.err`\n- **Linux** → systemd unit（`systemctl enable --now`），日志 `journalctl -u pi-web-ui -f`\n- **Windows** → 登录自启 Run 键（HKCU，无需管理员）+ wscript 无窗口启动器 + 10 秒崩溃看门狗（PID 写在 `%APPDATA%\\pi-web-ui\\`）\n\n选项：`--port`（默认 8787）、`--cwd`（工作目录）、`--data-dir`（数据目录）、\n`--engine <pi|dsh>`、`--host`、`--agent-dir`、`--name`（自定义服务名）、\n`--print`（只打印将生成的配置，不安装）。重复执行 `server install`\n并传入新选项即可重新生成配置并重启服务 —— 这就是修改已装服务端口/工作目录/引擎的方式。\n`--engine` / `--host` / `--agent-dir` 会自动烘焙进服务；仅环境变量的（`PI_WEB_TOKEN`、\n`PI_WEB_DSH_*`）需手动写进服务配置。见上方「启动参数 & 环境变量」表。\n\n```bash\npi-web-ui server install --engine dsh --port 9000 --cwd /path/to/project\n```\n\n## Docker\n\n镜像会构建前后端、保留 `node-pty` 需要的编译工具链、预装 DSH 运行时（所以 `PI_WEB_ENGINE=dsh` 无需额外步骤）、以非 root 的 `node` 用户运行，并声明 `/app/.pi-web` 为数据卷：\n\n```bash\ndocker compose up -d          # 然后打开 http://localhost:8787\n```\n\n`docker-compose.yml` 已设好容器必需的 `PI_WEB_HOST=0.0.0.0`（端口映射的前提），并用命名卷 `pi-web-data` 持久化数据目录。文件里注释掉的块覆盖常见容器调整 —— 切 DSH 引擎、挂 `dsh-patches` 目录、把项目挂为 `PI_WEB_CWD`、把 `~/.pi/agent` 只读挂为 `PI_CODING_AGENT_DIR`（让容器能看到你的 API key 与模型配置）：\n\n```yaml\nservices:\n  pi-web-ui:\n    build: .\n    ports: [\"8787:8787\"]\n    environment:\n      PI_WEB_HOST: 0.0.0.0\n      # PI_WEB_ENGINE: dsh\n    volumes:\n      - pi-web-data:/app/.pi-web\n      # - ./my-project:/workspace:ro\n      # - ~/.pi/agent:/root/.pi/agent:ro\nvolumes:\n  pi-web-data:\n```\n\n## 界面插件\n\n插件是可选的界面组件（顶栏多出一个 tab，背后是插件自己的视图，可带服务端入口和 AI 工具）。\n它们安装在**数据目录的 plugins 文件夹**（`<dataDir>/plugins/<id>/`，默认\n`~/.pi-web/plugins/`）—— 一个插件就是一个目录：`manifest.json` + 可选服务端入口\n（`index.mjs`）+ 可选视图入口（`client/entry.mjs`）。目录不存在 = 没有插件，界面上不会有任何痕迹。\n\n### 插件目录\n\n以下插件随本仓库发布（`plugins/<id>/`），可直接从 GitHub 安装：\n\n| 插件                                                                                                      | 功能                                                                                                                                                                                                                                                                                                               |\n| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| 📬 [网页邮箱 webmail](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/webmail)                 | IMAP 收件箱浏览/搜索/阅读/标记/删除 + SMTP 发信、新邮件通知，可选「允许 AI 管理邮箱」（六个 `mail_*` AI 工具）。首次激活自动补装 npm 依赖。                                                                                                                                                                        |\n| 🗄️ [数据库 db-client](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/db-client)               | 数据库工作台：MySQL / PostgreSQL / SQLite / SQL Server / MongoDB / Redis 连接管理 + 库表树 —— 表结构、分页排序、SQL 编辑器、行编辑。驱动首次使用自动安装。                                                                                                                                                         |\n| 📝 [编辑器 + SSH vscode-editor](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/vscode-editor) | 类 VSCode 工作台：多根文件树（本地 + SSH 主机）、CodeMirror 多标签编辑器、Remote-SSH 远程文件浏览/编辑、可拖拽多终端面板（xterm.js）、SFTP 同步与下载到电脑。自动安装 `ssh2`。                                                                                                                                     |\n| 📊 [图表 mermaid](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/mermaid)                     | 把对话里的 ` ```mermaid ` 围栏渲染成 SVG 图表（fenced-code 渲染插件，本地引擎离线优先）。                                                                                                                                                                                                                          |\n| 🧭 [运行轨迹 run-trace](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/run-trace)             | 运行轨迹：任务 → 思考 → 工具 → 文件改动 → 结果的时间线聚合视图，支持回放与节点详情。                                                                                                                                                                                                                               |\n| 📖 [阅读 legado-web](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/legado-web)               | Legado 阅读（文本源）：基于兼容安卓书源的搜书 / 发现 / 详情 / 目录 / 正文阅读，支持书源导入、检测与删废源，并提供四个修源 AI 工具（`legado_rules`、`legado_book_sources`、`legado_source_probe`、`legado_run_rule`）与「🤖 AI 修复源」按钮（带失败现场直接开新对话）。书源/书架/进度存在 `<dataDir>/legado-web/`。 |\n| 💬 [微信通道 wechat-ilink](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/wechat-ilink) | 微信扫码登录（与腾讯 openclaw-weixin 同源的 ilink 协议）：出站长轮询收消息，在微信里直接指挥 agent，无需公网 IP。 |\n| 🎤 [语音输入 voice-input](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/voice-input) | 输入框旁的麦克风按钮：浏览器语音识别直接听写进输入框；不支持/识别失败时自动降级为服务端转写（远端接口，或一键安装的本地 Whisper，免费不出网）。 |\n| 🌐 [实时预览 live-preview](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/live-preview) | Live Server 式预览：`/liveserver` 看 HTML（含相对资源与自动刷新）、`/md` 看 Markdown 渲染；真服务只绑回环地址，经宿主通用代理对外只露同源前缀。 |\n| 🖼 [图片处理 image-toolkit](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/image-toolkit) | 图片处理工作台：压缩（按目标体积二分逼近）、裁剪、缩放、旋转/翻转、格式转换（PNG/JPEG/WebP/AVIF）、批量导出 ZIP、水印、滤镜调色、图片信息与 EXIF，可直接读写工作区图片；另给 AI 配了 4 个工具。 |\n| 📓 [笔记 notes](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/notes) | 随手记：笔记 + 待办 + 日程提醒三合一。顶栏按钮打开可自由拖拽的全局浮窗（位置/尺寸记忆，设置也在浮窗里，无独立视图页）；提醒走服务端定时（重启不丢、错过补送），另有 5 个 AI 工具与 `/note` `/todo` `/remind` 快速捕获。 |\n\n`plugins/demo-mailbox` 作为最小插件模板保留在仓库里（服务端入口 + 客户端视图 + 双向消息协议），兼作测试夹具——想自己写插件从这里入手。\n\n也可以直接在界面里装：**设置 → 界面插件 → 插件市场**列出可维护插件（同一套，随包在 `plugins/catalog.json`）并提供**安装 / 更新 / 卸载**（更新保留 `config.json`），还能用「添加插件」把任何第三方插件（填 `owner/repo` 或 `owner/repo/子目录`）加进列表——你加的条目存在 `<dataDir>/plugin-catalog.json`。插件作者想让插件进内置列表，往 `plugins/catalog.json` 提一行 PR 即可。\n\n安装示例（网页邮箱）：\n\n```bash\npi-web-ui install https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/webmail\n```\n\n每个插件在仓库里的目录都带独立 `README.md`，含完整功能清单、配置说明与注意事项。\n\n### 社区插件\n\n插件目录并不限于本仓库：条目的 `source` 可以指向任意 GitHub 仓库（`owner/repo`、monorepo 里的 `owner/repo/子目录`，\n两者都可带 `#ref`），所以在别处开发、发布、维护的插件同样能进市场列表，安装 / 更新 / 回滚与上面的插件完全一致——\n同样落在 `<dataDir>/plugins/<id>/`，更新时保留 `config.json`。\n\n装的时候代码是从那个仓库拉的，本仓库不做内置拷贝：社区条目只是一条指针，许可证、issue 与发布节奏都归插件作者。\n想要固定版本，在 `source` 里带上 `#ref`。\n\n| 插件 | 功能 |\n| ---- | ---- |\n| 🌿 [多仓库 Git multi-git](https://github.com/EinErste/pi-web-multigit) | 多仓库 Git 总览：项目目录下每个仓库的变更、差异、历史、分支、贮藏、跨仓搜索、时间线与单文件回滚，另有工作区分支聚合、Fetch/Pull（仅快进）与可选的内置终端；其余只读。 |\n\n想被收录，和任何条目一样只差一行：往 `plugins/catalog.json` 加一条并发 PR。不提 PR 也可以在市场里自行登记（存在\n`<dataDir>/plugin-catalog.json`），或用 `pi-web-ui install --catalog <url>` 把市场指向你自托管的目录文档。\n\n### 安装\n\n从 GitHub 安装（支持以下任意源写法）：\n\n```bash\npi-web-ui install owner/repo                                  # 简写\npi-web-ui install https://github.com/owner/repo               # 完整 URL（.git 可省）\npi-web-ui install https://github.com/o/r/tree/dev/sub/dir     # 指定分支 + 仓库内子目录\npi-web-ui install owner/repo#v1.2                             # 指定分支/tag（#后缀对以上任意写法都适用）\npi-web-ui install /path/to/plugin-dir                         # 本地目录直接安装（开发调试用）\n```\n\n常用选项：\n\n- `--name <id>` —— 自定义插件 id / 目录名（默认取仓库名或子目录名；仅限字母数字-`-`/`_`）。\n- `--force` —— 目标目录已存在时覆盖安装。插件本地的 `config.json`（凭据等）在升级时会原样保留。\n- `--data-dir <dir>` —— 覆盖数据目录（默认 `~/.pi-web`）。\n\nCLI 会浅克隆仓库（无 git 时回退 tarball 下载），定位其中的 `manifest.json`\n（包括仓库内子目录里的），然后把插件拷贝到 `<dataDir>/plugins/<id>/`。\n\n**没装 git？没有网络？** 直接把插件目录手工拷进 `~/.pi-web/plugins/` 也行——效果完全一样。\n\n### 更新\n\n对同一来源重新执行 `install` 并加 `--force` 即覆盖更新：\n\n```bash\n# 例：把网页邮箱插件更新到仓库里的最新版\npi-web-ui install https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/webmail --force\n```\n\n- 升级时会自动保留插件目录里的 `config.json`（账号凭据等）。\n- 存放在插件目录**其他位置**的本地数据不在保留范围内（如 db-client 的\n  `db-connections.json`、vscode-editor 的 `ssh-hosts.json`）——强制重装前请先备份。\n- 更新后刷新浏览器即可生效，无需重启服务。\n- 想知道哪些插件过时了：`pi-web-ui plugins --check-updates` 逐个对比记录的提交与远端 HEAD；退回上一版用 `pi-web-ui plugins --rollback <id>`（每次 `--force` 升级前都会自动备份旧目录，只留最近 3 份）。\n\n### 生效方式\n\n服务运行中只需**刷新浏览器**——新插件在 attach 时即被加载，无需重启；服务未运行则下次启动生效。\n每个插件会在顶栏出现一个 tab（🧩 或插件自带图标）。\n\n### 列出 / 停用 / 卸载\n\n```bash\npi-web-ui plugins             # 列出已装插件（id / 名称 / 版本 / 描述）\npi-web-ui uninstall <id>      # 卸载插件\n```\n\n- 想临时隐藏某个插件而不卸载：设置面板（⚙）→「界面插件」开关即可——按客户端持久化、纯 UI\n  隐藏，无需重启，随时可重新打开。\n- `uninstall` 会删除插件目录；刷新浏览器后 tab 即消失。写在插件目录内的配置文件也会一并删除——\n  如需保留请先备份 `<dataDir>/plugins/<id>/config.json`。\n\n## 浏览器扩展\n\n### 🎯 网页元素拾取（page-picker）\n\n在**开发中的网页**上点选元素，把它整理成 AI 能直接动手的上下文，一键注入 pi-web-ui 的对话输入框\n（`Alt+Shift+P` 或点扩展图标 → hover 高亮 → 点击拾取 → `Shift`+点击多选 → 写备注 → 「添加到对话」）。\n\n它不是 pi-web-ui 的服务端插件，而是一个**浏览器扩展**（所以不走 `pi-web-ui install`）：\n\n**下载装**（不需要 Node）：[`page-picker-extension.zip`](https://github.com/xing-shuyin/pi-web-ui/releases/latest/download/page-picker-extension.zip) →\n解压 → `chrome://extensions` 打开「开发者模式」→「加载已解压的扩展程序」→ 选解压出的目录 →\n点扩展的「扩展程序选项」填 pi-web-ui 地址（远程地址先点「授权该地址」）。\n\n详细说明（交互、采集了什么、远程部署、已知限制）见\n[`plugins/page-picker/README.md`](https://github.com/xing-shuyin/pi-web-ui/tree/main/plugins/page-picker)。\n\n采集的不是截图，而是**能让 AI 一次改对**的东西：React fiber 里的组件源码位置（`Card.tsx:18:5` +\n调用链）、Vue SFC 文件、命中的 CSS 规则**源文件与行号**（Vite dev 下精确反推）、\n只保留「与默认值不同」的计算样式子集、短且唯一的定位串、HTML 骨架与折叠文本；\n可选元素截图会走对话附件。\n\n## 主题\n\n每个主题是**一份纯 `:root` 调色板覆盖** —— 只写 CSS 变量的声明文件（变量全集见 `web/src/styles.css` 的 `:root`：`--bg/--accent/--term-*` 基础色，加 `--tooltip-bg/--code-bg/--notice-*` 等派生色）。布局只存在于打包的 `web/src/styles.css` 里，选主题只是覆盖变量，因此任何主题都能在所有版本上工作，改布局也不需要碰主题文件。内置主题由 `node make-light-theme.mjs` 生成。\n\n内置主题随 npm 包分发（`themes/`，共 23 套）。选择器把命名调色板（`nord`、`tokyo-night`、`catppuccin`、`one-dark`、`solarized-light`、`geist`、`ayu-light` 等）归在「现代经典」下，内置预设归在「原始预设」下：`white` / `mist` / `paper` / `sakura`（浅色）、`cyberpunk` / `dazzle` / `dark-teal`（深色）、`md-preview`，以及壁纸友好的 `translucent` / `transparent`（可配对话壁纸）。主题选择器在顶栏（🌞 图标），当前选择按浏览器存在 `localStorage`。\n\n### 使用主题\n\n在顶栏直接选择即可 —— 内置主题和用户主题合并显示在同一个菜单里；同名 id 时用户主题优先。\n\n### 本地添加主题（无需 GitHub）\n\n把任意 CSS 文件丢进**数据目录的 themes 文件夹**就会自动出现在主题菜单里 —— 不用重启、不用重新构建：\n\n1. 找到数据目录（默认 `~/.pi-web`，可用 `PI_WEB_DATA_DIR` 覆盖）。\n2. 创建 `<dataDir>/themes/` 并放入你的样式表，例如 `~/.pi-web/themes/my-theme.css`。\n3. 刷新页面，在顶栏选择它。**文件名（去掉 `.css`）** 就是菜单里显示的主题 id。\n\n```\n~/.pi-web/\n└── themes/\n    └── my-theme.css          # 菜单里显示为 \"my-theme\"\n```\n\n最容易的写法：复制一个内置调色板（如源码仓库里的 `themes/white.css`），改 `:root` 颜色即可 —— 想覆盖哪些变量就列哪些，没列的会落到 `styles.css` 的深色默认值。注意：\n\n- **终端跟随主题** —— 在你的 `:root` 里设置 `--term-*` 变量（终端 ANSI 配色 + `--term-bg`），xterm 画布和它的内边距容器都会自动适配（默认值见 `styles.css`）。\n- 代码高亮色（打包自带 `highlight.js` 的 `github-dark.css`）在浅色主题下必须覆盖，否则代码会看不清 —— 参照 `themes/white.css` 末尾的 `.hljs` 覆盖写法（深色主题可跳过）。\n- 主题 id 必须匹配 `^[A-Za-z0-9_-]+$`（不能有点和斜杠 —— 服务端有路径穿越防护）。\n\n### 向仓库贡献主题（GitHub）\n\n想让你的主题随包分发给所有人？在 [github.com/xing-shuyin/pi-web-ui](https://github.com/xing-shuyin/pi-web-ui) 开一个 Pull Request：\n\n1. Fork 并 clone 仓库。\n2. 创建 `themes/<id>.css` —— 一份纯 `:root` 调色板。以 `themes/white.css`（浅色）或 `themes/cyberpunk.css`（深色）为模板。\n3. 本地验证：运行 `npm run dev`，用顶栏主题选择器确认你的主题能被列出、渲染正确（对话卡片、代码块、工具调用卡片、Git/终端面板）。\n4. 如果你改了 `styles.css` 的变量清单，用 `node make-light-theme.mjs` 重新生成全部内置主题。\n5. 提交（`git add themes/<id>.css`）并开 PR。`themes/` 已在 npm 包 `files` 白名单里，合并发布后 `npm i -g pi-web-ui` 即可把你的主题带给所有人。\n\n合并主题的规则：必须是单一 CSS 文件、设置 `--term-*` 变量保证终端可读、浅色主题覆盖 `.hljs` 语法高亮色以保证代码可读。\n\n## 环境变量调优\n\n以下全部可选——默认值就是开发时一直在用的配置。完整参考：[`docs/env-vars.md`](docs/env-vars.md)。\n\n| 变量                           | 默认               | 作用                                                                                                                                                                                                           |\n| ------------------------------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `PI_WEB_TOOL_TIMEOUT_MS`       | `1200000`（20 分） | 单工具调用看门狗；超时自动中止（`ask_user_question` 豁免）。只做默认值，设置面板「工具」页优先。                                                                                                              |\n| `PI_WEB_STALL_NOTIFY_MS`       | `180000`（3 分）   | 流式运行完全没事件时给警告（不中止）；`0` = 关。                                                                                                                                                               |\n| `PI_WEB_TERMINAL_IDLE_MS`      | `15000`            | AI 开过的终端静默这么久就催它去看一眼；`0` = 关。                                                                                                                                                              |\n| `PI_WEB_TERMINAL_IDLE_LINES`   | `10`               | 该催命消息回送的终端尾部行数（1–500）。                                                                                                                                                                        |\n| `PI_WEB_VISION_TIMEOUT_MS`     | `90000`            | 视觉桥整批转写的超时。                                                                                                                                                                                         |\n| `PI_WEB_UPLOAD_RETENTION_DAYS` | `14`               | `<dataDir>/uploads/` 保留天数；`0` = 不清理。                                                                                                                                                                  |\n| `PI_WEB_SHELL`                 | 自动               | 仅 Windows：node-pty 用哪个 shell（自动顺序：`PI_WEB_SHELL` → `$SHELL` → Git Bash → 随包 busybox → `%COMSPEC%` → PowerShell）。                                                                                |\n| `PI_WEB_TABS`                  | 全部标签页         | 逗号分隔的标签页白名单（`chat,terminal,git,search,tasks,settings,plugins`）；未列入的在服务端也被拒绝，`chat` 不可关。                                                                                         |\n| `PI_WEB_MANAGED`               | 关                 | `1`/`true` 声明实例由外部部署管理：自更新、装 pi CLI、装插件都被拒绝并说明原因，前端也隐藏入口。                                                                                                               |\n| `PI_WEB_ALLOW_HOSTS`           | 空                 | 严格的主机名白名单（叠加在始终生效的同权威校验之上）。                                                                                                                                                         |\n| `PI_WEB_LOCALE`                | 空                 | 首访回退语言（显式选择与浏览器语言优先级更高）。                                                                                                                                                               |\n| `PI_WEB_LOCALE_BASE_URL`       | GitHub raw         | 语言包下载根 —— 指向镜像即可做离线/内网安装。                                                                                                                                                                  |\n| `PI_WEB_PKG_ROOT`              | 自动               | 显式指定包根目录（非标准安装位置时用）。                                                                                                                                                                       |\n| `PI_CODING_AGENT_SESSION_DIR`  | 空                 | 让 pi 把转录扁平写入该目录（而非 `<agentDir>/sessions/--<cwd>--/`，会改变历史列表读到的内容）。                                                                                                                |\n| `PI_WEB_SDK`                   | `bundled`          | 用哪一份 pi SDK：`bundled`（pi-web-ui 自带的副本）或 `global`（祖先链上更新的那份）。 |\n| `PI_WEB_ALLOW_ORIGINS`         | 空                 | WebSocket Origin 校验的额外白名单（逗号分隔；dev 代理 / 反向代理用）。 |\n| `PI_WEB_GIT_EXTENSION_CHECK`   | `1`（默认开）      | 设 `0`/`false`/`no`/`off` 关闭「全部组件更新」里的 git 行（走 `git ls-remote`），大型单体仓库场景可用。 |\n| `PI_WEB_PLUGIN_CATALOG_URL`    | 官方清单 URL       | 开机插件市场清单来源：默认指向官方社区清单 `https://xing-shuyin.github.io/pi-web-ui-plugins/catalog.json`（仅拉取文档写可安装列表，**不自动安装插件**）。设为空串或 `off`/`0`/`false`/`no` 可关闭；设 `PI_WEB_PLUGIN_CATALOG_INSTALL=1` 时顺手自动全部安装。 |\n| `PI_WEB_LAUNCHED_BY` / `PI_WEB_SERVICE_NAME` | 空 | 由 `pi-web-ui server install` 写进服务单元/启动脚本（`service` / `--name`）：服务端据此知道实例由平台服务托管，更新面板才会出现「重启服务」按钮。 |\n| `PI_WEB_DSH_*`                 | —                  | DSH 运行时旋钮：`PI_WEB_DSH_RUNTIME`、`PI_WEB_DSH_DATA_DIR`、`PI_WEB_DSH_PATCH_DIR`、`PI_WEB_DSH_QUESTION_TIMEOUT_MS`、`PI_WEB_DSH_TOOL_TIMEOUT_MS`、`PI_WEB_DSH_SESSION_RETENTION_DAYS`、`PI_WEB_DSH_DEBUG`。 |\n\n## 安全\n\n- **默认只绑 loopback** —— 服务器只监听 `127.0.0.1`，不暴露到网络；需要局域网访问或\n  Docker 端口映射时显式设置 `PI_WEB_HOST=0.0.0.0`（docker-compose.yml 已内置）。\n- **WebSocket Origin 校验** —— 浏览器页面连 `/ws` 时其 Origin 的 hostname **和端口**\n  必须与请求 Host 一致，跨源页面直接 403；无 Origin 的非浏览器客户端不受影响。\n  反向代理场景可用 `PI_WEB_ALLOW_ORIGINS=http://你的域名:端口` 放行。\n- **Quiesce 排空** —— `server quiesce` 后拒绝新的 prompt/编辑重问/会话恢复，存量运行\n  跑完为止（升级/备份前用）；`server unquiesce` 恢复。\n- **凭据不下发浏览器** —— provider 的 `headers`（可能含 Authorization / API key）\n  永不发给浏览器；模型管理 UI 编辑其他字段，服务端自动保留 headers。\n\n## 反向代理（nginx）\n\npi-web-ui 默认只绑 loopback，同机 nginx 反代是官方支持的远程访问方式（无需\n`PI_WEB_HOST=0.0.0.0`）：\n\n```nginx\n# pi-web-ui 在 127.0.0.1:8787，对外暴露为 https://your-host/pi/\nserver {\n    listen 443 ssl;\n    server_name your-host;\n    # ssl_certificate ... / ssl_certificate_key ...\n\n    # 应用入口（剥掉 /pi/ 前缀）\n    location /pi/ {\n        proxy_pass http://127.0.0.1:8787/;\n        proxy_http_version 1.1;\n        # 必须用 $http_host（保留端口）—— 服务端的 Origin 校验比较完整权威\n        # （hostname + 端口），$host 会丢掉端口导致 403\n        proxy_set_header Host $http_host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n\n    # WebSocket —— 必须原样转发 Host，否则升级被 403（页面能开，\n    # 但对话/终端一直重连）\n    location /ws {\n        proxy_pass http://127.0.0.1:8787;\n        proxy_http_version 1.1;\n        proxy_set_header Host $http_host;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_read_timeout 3600s;\n        proxy_send_timeout 3600s;\n    }\n\n    # 构建产物的绝对路径资源/API（根路径，不带 /pi/）\n    location /assets/  { proxy_pass http://127.0.0.1:8787; }\n    location = /favicon.svg           { proxy_pass http://127.0.0.1:8787; }\n    location = /api/file   { proxy_pass http://127.0.0.1:8787; }\n    location = /api/health { proxy_pass http://127.0.0.1:8787; }\n}\n```\n\n要点：\n\n- **`Host` 必须用 `$http_host`**（保留端口），`/pi/` 和 `/ws` 都要 —— Origin 校验比较\n  hostname **和**端口。`proxy_set_header Host $host` 或不设置（默认上游地址\n  `127.0.0.1:8787`）都会 403。\n- **同源自动通过**：只要浏览器 Origin 与转发后的 Host 一致（普通反代天然如此），\n  就无需 `PI_WEB_ALLOW_ORIGINS`；仅当浏览器 Origin 与后端看到的 Host 不同\n  （如 TLS 终止代理改了端口）才需要设置。\n- **不要开 `proxy_protocol`**（除非确实要真实客户端 IP）：它会让 nginx 拒绝所有\n  不带 PROXY 头的连接，局域网直连和 frp 以外的客户端全挂。用 frp 时同样去掉\n  `transport.proxyProtocolVersion`（除非 nginx 也 listen proxy_protocol）。\n- **局域网免代理访问**：直接设 `PI_WEB_HOST=0.0.0.0`（加防火墙规则），\n  或把上面的 server 块放到 80/443 端口。\n\n带 frp 内网穿透的完整可运行示例：`deploy/nginx-subpath.conf`。\n\n## 参与贡献\n\npi-web-ui 是一个小型开源项目 —— **你的贡献就是它成长的力量**。代码、插件、主题、文档、翻译、想法，统统欢迎；每一个合并的 PR 都会随下一次 `npm publish` 送达所有用户。❤️\n\n| 贡献方式               | 如何开始                                                                                                                                                                                                    |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 🧩 **写插件**          | 打造你自己的界面 tab + AI 工具。以 `plugins/demo-mailbox` 为最小模板（它兼作测试夹具），本地开发后既可开 PR 收录进[插件目录](#插件目录)，也可独立发布并照样收录（见[社区插件](#社区插件)）。                                                     |\n| 🎨 **贡献主题**        | 以 `themes/white.css`（浅色）或 `themes/cyberpunk.css`（深色）为纯调色板模板，调整 `:root` 配色 + `--term-*` + `.hljs`，用 `npm run dev` 验证后开 PR —— 完整步骤见[向仓库贡献主题](#向仓库贡献主题github)。 |\n| 💻 **修 bug / 加功能** | 在 [Issues](https://github.com/xing-shuyin/pi-web-ui/issues) 里挑一个，或提出新想法。Fork → 分支 → PR。代码约定见 `AGENTS.md`（Tab 缩进、i18n 双语 key、协议改动只动 `server/protocol.ts`）。               |\n| 📖 **文档与翻译**      | 完善 README、补插件文档、改错别字，或帮忙把界面/文档翻译成更多语言。                                                                                                                                        |\n| 💡 **想法与反馈**      | 在 [Issues](https://github.com/xing-shuyin/pi-web-ui/issues) 或 [Discussions](https://github.com/xing-shuyin/pi-web-ui/discussions) 里开帖 —— 功能建议、bug 报告、界面优化点子、部署经验分享都欢迎。        |\n\n**开 PR 前**，快速自检能让维护者更省心：\n\n- `npm run check:protocol` + `npm test` —— 协议同步与单元测试。\n- `npm run typecheck` —— 无类型错误。\n- `npm run build` —— 前后端都能编译。\n- 涉及协议改动：`server/index.ts` 与 `web/src/use-chat.ts` 两端 dispatch 都要加分支（详见 `AGENTS.md`「协议单源」）。\n\n> 喜欢 pi-web-ui？给仓库点个 ⭐，帮助更多人发现它。如果你在上面做了很酷的东西（插件、主题、部署方案），记得告诉我们 —— 我们乐于展示社区作品。\n\n## License\n\nMIT\n","readmeFilename":"README.zh-CN.md"}