{"_id":"@youweichen/pi-web-ui","_rev":"41-4153cb6886f247d593625515e30b4c20","name":"@youweichen/pi-web-ui","dist-tags":{"beta":"0.6.0-beta.0","latest":"0.9.0"},"versions":{"0.45.0":{"name":"@youweichen/pi-web-ui","version":"0.45.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@users.noreply.github.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.45.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9f807b03cfaf3defb107d607cc55ac15d1271e70","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.45.0.tgz","fileCount":140,"integrity":"sha512-a90wBO5GpFFZ8gyoUwCmyy931g2HsSxRq42hKyF6yiSSw3ha7b2iHyQRa0DbBzT5ciHW0J6bKxf2UB/U8lITcA==","signatures":[{"sig":"MEQCIHDD50iU2b1W9iTwNu4+MEbemgzij1IpRicaIRh2gUnBAiA6spU0JkdGvDyFqXJS8sP5pdYM7TXrpWR1dasy870ZZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6427780},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"efc6549059a79b31305faeae685b5fd40d7a4fcc","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","@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.45.0_1788019382136_0.5181902119306956","host":"s3://npm-registry-packages-npm-production"}},"0.45.1":{"name":"@youweichen/pi-web-ui","version":"0.45.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.45.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1ba1a43fe1e3f6ade53c6785871f8dd8557dbd3e","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.45.1.tgz","fileCount":140,"integrity":"sha512-UlamlAp3aPEK1Iip3hlxNy9qDDvf2OGAduOwn8nIQjzldRp9rLZMZRXlQw16ssKVmqueMQyYP0ACxxwrSKlO4Q==","signatures":[{"sig":"MEUCIQDKgWyv296IWChWl/937sMIgMuXKrZD+CMBKA2Nt/VwRAIgY0pLPkR0H2HUnSDNZ4EOgqilkmjGMj65NSXVB3mwGaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6427765},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7d2c2782b119df06acff752c10bd07dd6c2a18af","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","@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.45.1_1788019697541_0.6837592693693351","host":"s3://npm-registry-packages-npm-production"}},"0.45.2":{"name":"@youweichen/pi-web-ui","version":"0.45.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.45.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"50d8c52c374f525cea5fb23c85ff24f3b97a4ace","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.45.2.tgz","fileCount":140,"integrity":"sha512-393LOq3hCBHUvJoJBqnvp37sIeJYienlDi1cyCtH/d3vUaIp3WWc/kgediFukOueuyXLSn1l2Y1IekizNXffDQ==","signatures":[{"sig":"MEQCIE+HWC5AKTtyzZUA3F1HLQMmC9jqDqy4aAZTdsoxO3JLAiAWhYsuphxKJ0wwgJz53hrRFoJElRANRMRHThYTVzh5fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6444353},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"902e2cef6a38296118ef1c87abf712e6507ba854","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","@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.45.2_1788194718603_0.6125531268545479","host":"s3://npm-registry-packages-npm-production"}},"0.46.0":{"name":"@youweichen/pi-web-ui","version":"0.46.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.46.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1ced44c8f0da3180e282256d951587768a5473f5","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.46.0.tgz","fileCount":140,"integrity":"sha512-tIi6q9Nm4Vk2xibLlthVO1LtgAKCvo2GL+poKC+JRcuUZ2xRJMsyGhRLLsONqGHOR/xXLZ+MU1bvrE0Cytv7sg==","signatures":[{"sig":"MEUCIHgEsxYZGTndpzdPOIuR7I/lPep7kD+EBM4iXHTfKPgYAiEAr0ASHqxjDWy7oFsq98Grpd7HqgE+pvwBv01yeaUtBuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6450065},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e526d55c239027b531b0cbd26e7813c246e1bca6","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","@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.46.0_1788278247004_0.8100413783585099","host":"s3://npm-registry-packages-npm-production"}},"0.46.1":{"name":"@youweichen/pi-web-ui","version":"0.46.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.46.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6b3cabbbcc9b282f274788605d21f95db216e015","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.46.1.tgz","fileCount":140,"integrity":"sha512-B3gYpNkN+V1P9+fsNAEnyaJF35tJ1D2d4OQiKTMpiXHRGUUdWekt0uvJfKN8h9J/O2fDbzeIrbipX/bi2oKnjA==","signatures":[{"sig":"MEYCIQCnvYAmiD6/4tY3ZjsrXRudVTANFeZq62WVXxJjRTpA9wIhAPLnfFrbmFqWpo+ieVyc3NuIEtUUZdi153x0r099sX5H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6449806},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"b4c9f8630a3929c055ffb35f8942d314d4e25471","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","@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.46.1_1788628455088_0.9961692275787308","host":"s3://npm-registry-packages-npm-production"}},"0.47.0":{"name":"@youweichen/pi-web-ui","version":"0.47.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"a0aca38aad7ff0a06d3dbbc18ec1323b97bda26e","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.0.tgz","fileCount":141,"integrity":"sha512-QhZYj9TLnRrvM/6CPn6NDEzbSIfN9z8TZXO/VNXEkj+HpaNzs7Nq/3JPvr+D5Ahg11Cr4GMtVPmnwuWdNjploQ==","signatures":[{"sig":"MEUCIQCi3SaGXREV7Cs0eTLIE0BAc0TP17ut5zyHgWZAMPwt/QIgB10Qx2+z0XVoR0LIc0w8HEERdV7QVHvdpPhp7756U/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6462844},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"8c81a5e8fa43f68cf97b58afacef56843682deef","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","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","@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_1789058982902_0.39076233874270216","host":"s3://npm-registry-packages-npm-production"}},"0.47.1":{"name":"@youweichen/pi-web-ui","version":"0.47.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"73a56a18b936a163d270db130329ec42504040d2","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.1.tgz","fileCount":141,"integrity":"sha512-4dh/bw71ZuYJb7dAL5ksJeR9amHSfUARAA8VqobSotpWmWpnPWE13f4iyOxMwy/1CLjzrHpdX/gJkxXD/UFnsQ==","signatures":[{"sig":"MEUCIDvDKKyXOfHN1de+dwV9d1RHsgpz7OiltXRo0CPtn2z2AiEAmHUyNoXC/3MQNqyikQ6RS3JWqD1LJzx5jqZ5hpQAZXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6466007},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"706dca0d80249a9d1af6a1a12394ce674c19e4ea","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","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","electron-updater":"^6.0.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":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.1_1789170587376_0.6720338682373885","host":"s3://npm-registry-packages-npm-production"}},"0.47.2":{"name":"@youweichen/pi-web-ui","version":"0.47.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8b7b715f72da47f25aeed0f8bf0d1ae9f3e4ad73","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.2.tgz","fileCount":141,"integrity":"sha512-SGDL7TzP+TiVCC62PACxRG2aZCrwdg85tDzf2jI2FqBT8kf7rSHMLL//k3u3lkUdd5JnaF7TgB/ia7hO5t21Vg==","signatures":[{"sig":"MEUCIE/6P9pX4hkGr0hhXoXjN1ykWne789wAl/PpwwKUwOu+AiEAvQsooLe25MV6MBMUNYypFl+8VMFUcQ1pMhb7LBXI0DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6469857},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"921a97a510d4ea08ef84bfdce2ee777c8cc0072c","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.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","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","electron-updater":"^6.0.0","rehype-highlight":"^7.0.1","@earendil-works/pi-ai":"^0.84.2","@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":"^26.15.3","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.2_1789228542261_0.5991343248004359","host":"s3://npm-registry-packages-npm-production"}},"0.47.3":{"name":"@youweichen/pi-web-ui","version":"0.47.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.3","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"34298c2034a75c6a086f7e3e321f05885bb7fc8e","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.3.tgz","fileCount":141,"integrity":"sha512-6n+CPtvOcC1BEuAhPcZsMEq+0JRp0nEmCnnzLAOUKS2Cz1exYQR4CQyOy/Gm8C+/i5cgnuuv72nLHh2CNQKjcQ==","signatures":[{"sig":"MEUCIQC+MbUpXXFQHButqSgkqVpG5cziJzEE6oLuRq5+Zwd6wgIgAlIiGjoXfiPxlLJtqfKdHFiqkh8s/48Jq4nJOdcec+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6470533},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2c888ceedb8c3ade6303ee2f2bca73a4923168b4","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.3_1789232827274_0.7956580108072404","host":"s3://npm-registry-packages-npm-production"}},"0.47.4":{"name":"@youweichen/pi-web-ui","version":"0.47.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.4","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"157075ec1b8a43a6d7fab8a80cb88ccd72820732","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.4.tgz","fileCount":141,"integrity":"sha512-DmGDzqZbaJ1UYY6dteX//0/xkowhmVfvP2mSXBZM4PBgG2+fGg0jY3uW349GAWEktNM4AuyGEfklUOLiKl2CKg==","signatures":[{"sig":"MEYCIQDFhTWE8pDCrjqmfceHchLVGojV53vzfNqkbLQxStqhVAIhAMpHIXZd7EzyImzxo0bV9QCbDzogkwRkPHQcaTdiEoXu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6474195},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"0275e37c0f3eda482ebe81b5e9f541127beb4897","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.4_1789254846747_0.423364829054111","host":"s3://npm-registry-packages-npm-production"}},"0.47.5":{"name":"@youweichen/pi-web-ui","version":"0.47.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.47.5","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3ea72a3a1b30cd39643f8ee1e70b6a05c8e92bef","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.47.5.tgz","fileCount":141,"integrity":"sha512-abONSX1KupgwiPCJ6yykQQvK2c0HxO0A1ZETWtNPeK5nrf70Ko5ZFPJ0VpLT8wZOKnUHgbhZ4liMtahGP+RPww==","signatures":[{"sig":"MEQCIFzaHCWPrz5YutiDMJImFoCN0gttYwhGUfrVDUvKIv6bAiBMQLByCm8IrsDcn3GMDyX1RcZGbDW8cEHeKqxmtELFCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6473634},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"f63a8fbb3867ef94f325173ee14b4e8e8c2860ea","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.47.5_1789260151109_0.4564498565852346","host":"s3://npm-registry-packages-npm-production"}},"0.48.0":{"name":"@youweichen/pi-web-ui","version":"0.48.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.48.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"727d2e0f7ccfcd3d95b6f36e8dd85ad73302c3be","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.48.0.tgz","fileCount":143,"integrity":"sha512-ppPj4zlVF6yY/XX8iJ89jSEtbh+8PHD2/o26HIfD60KMIiMvauFaGOVsv7GeVRqPqzFO5jOlvVgidXr0EVU+0Q==","signatures":[{"sig":"MEUCIFQn79Z8RodIpGT7ieaTe8Fc7iLPmnS7NX3xHtEnWwavAiEAxd7UIEKRWTqZeNfmO0bwQndMBE+rThv2TJ5/+gW0/5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCehWp+JBEIypULA4C4lqqbFAyKTlE8WVUuk5KaAOsHgIgdE8aFMNMGOnu/w2zhveCfELPWu0UrcsBxIA9fgdjuKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6498004},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"bc03c2c5a3451714d13db4cf4cb562e1c75ff730","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","electron":"^41.0.0","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.48.0_1790174500969_0.8534054935879953","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"@youweichen/pi-web-ui","version":"0.49.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.49.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6ab52b3c9467d7b2b352d9588496f9a971219303","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.49.0.tgz","fileCount":147,"integrity":"sha512-pkfyLNN0CXJHgI+JNR5WYF4e8Bmeb/ccrqSn9BgDm+1Tz6+rnNAwf6UkKjUzLLTSw2hf7hu7134xSa5Jll6jrQ==","signatures":[{"sig":"MEQCICGMzxMaCOLZD/O5xbL8rRZTyyC7roTleWtnrRVoU1j/AiBeP5V2IPE3+rVK43RPw4dEsogUaq/G2DBUAOvvC0UOcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICDUM+/ZUBvs24Y9reNXg4fbs4mz23u1r1d5fJ92uP2cAiBeKnDl8VCPadCICR+sWFH9oDPxPX79jSD7T6yat549TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6630748},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ae40115c30752048122d10520bade927320783d1","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.49.0_1790184171662_0.14540390544723647","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"@youweichen/pi-web-ui","version":"0.50.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.50.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"2124d96454c53fe082ff8699448fa5ae1b70b3ce","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.50.0.tgz","fileCount":149,"integrity":"sha512-oct2t1/vBSQL71vlOjoad8T0XFTWZwdiWSb5H6x09yeGtS9VnRpn4jGvtDqyMU3bn1yDrlUCmvAJTsy4lw+u2g==","signatures":[{"sig":"MEYCIQDxFmYQaqKDIma2iDCy1grwMTA1Jliqu5Py8dmDk226MQIhANPKRGgn5xmx/idjHq9ZJU0RrwvxlcZfI4ECqVL51N9i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEl/Szw8Q/6rM4HmcYFYr6tGDAPyMeCAB7apVyeFVIU7AiEA08NLwFx3PAgbvejc58OlW7nUxNhSBVi/oBuhhlIuCEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6639119},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"96a03734cdddbd107b848c7a0beaeed4afda7353","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.50.0_1790206898790_0.1126157274970172","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"@youweichen/pi-web-ui","version":"0.51.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.51.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8c1c44010da3612a0f85a7a82059f96b540d7f23","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.51.0.tgz","fileCount":178,"integrity":"sha512-ubg3F3aXA35y/FWr1TnhJbsxQf++2wo2+EcQ7KhIt0Ej2p3Cxgl+vN7cTYvdGAy9V3CY0L0IYXnemPF+irIWgw==","signatures":[{"sig":"MEYCIQDd8G/LsgXodiqxbg8IZJHWYzYjtAj0V89ViKt+mYZM+gIhAOnzsljcCw/LvVZcYcvk7AfMIIPdD3dKom00beZKxcft","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHffeS9FnLsNW/CiGcKaiLNCfYM6zcUeVlYVnVEH+XQ+AiB/zCqnCGMw/ov+IF2bNqzUUzgsBqw7wDAtm4uuF0Islw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7189136},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"5c3f8cf7662f0f16438ce4e69c89ea11561d947d","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.51.0_1790317860744_0.8398357537992713","host":"s3://npm-registry-packages-npm-production"}},"0.51.1":{"name":"@youweichen/pi-web-ui","version":"0.51.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.51.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"237b743ed74bfa7413c95e547a7f15fcf3c97d7b","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.51.1.tgz","fileCount":178,"integrity":"sha512-nGf3sHDCzj7geUPYp0fMxw+3EcTkn+CwWZIgloneNYaUhvMAVSeGZ/W0bu8RE9ECpSR9IlJTxIrCAWBC/5zAcg==","signatures":[{"sig":"MEYCIQDO65vj6be0NSJhX2eSbJ/RshmFP7tnruDKAod7u7XsDAIhAJQzEOm6TzbqIA4i2nGK/WBOAEEOauCHB88g6SKrMYcL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBXOs2fvbmOPbbF1w2O/zVgCMOQPC+Pz9bPT2lhL4mV+AiBCmPayTCV8VCKcyYeQJw7QvnsVn4nnNH6hysxc4iQ8CA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7190240},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"53d580c82a3c0f525d49a7f9c6e94155fc8c46c3","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.51.1_1790320587482_0.01633840811038989","host":"s3://npm-registry-packages-npm-production"}},"0.51.2":{"name":"@youweichen/pi-web-ui","version":"0.51.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.51.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"92e91a501dbdda1727f07a9c290d8fed57d4098a","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.51.2.tgz","fileCount":178,"integrity":"sha512-t7Z1xUHvDbZd+GEJWOsSYcLUhVHdqlqz+swi74DTCvtTcYnltOr1V3Pabhctxv3hOp0R7Gpgxfkng/9XXobgQw==","signatures":[{"sig":"MEYCIQCNop76xI5at/6VjKua8wdAwc4iRJbGsl1gUEdd3IbIMQIhAOH5xFy86m9VSHSQAw3cd1quw17q1pjYQ8AvsUO13Rrz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE8PASZxTux/6RYqD06YGXwQrZ/XVjMgOkCwfA7BPdB9AiBfT50nci/AVLEt1B/SQvDfAutzEYbMfjTuBi0AyiOWGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7199994},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ce002be58d953d1c314836fad52c50aabfa1748a","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.51.2_1790410978560_0.4419344770686171","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-beta.0":{"name":"@youweichen/pi-web-ui","version":"0.6.0-beta.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.0-beta.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"9c58b7f06c2ec98b593d67aec5db2f6c3a461fa4","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.0-beta.0.tgz","fileCount":181,"integrity":"sha512-l/Bw9JpxZ1CvnOmKyPnDF4tPmcSWSmvg/S6FvKvBRoUpdGD9fFlEkZ4pyu/EAtABS/qVtcQHvbWEFMla6cw1Rg==","signatures":[{"sig":"MEYCIQC9nBAqivMmrJstDSVHfHiVnCfQjLYrO34N/TuvgDAqDwIhAMQlij2O9TgowdjiiSyDiEiRV4HJB0eZcUjOCXnSv/1q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQChtzjKU5PQXzIBoskyGTpGwu4dZL89c8+pxgLwTxV3VQIgIKzjlAez29+uh+ECvdGMbJkuFmgTCyx4OToJUrw49Z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7254379},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d6acfc697f0224e3ba1ba602324fb7bb981172e4","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.0-beta.0_1790418865497_0.5282094373097233","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@youweichen/pi-web-ui","version":"0.6.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3e162e7bfea789110b232fd5827c5ebe1be8810e","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.0.tgz","fileCount":181,"integrity":"sha512-tiEn6SDKZK3R66KGjOwFomp67Cz+W7FqeX6SIBtMcguGaGYXX1j5KMKdv2leczroHWYN95nkHEvFquobxRnWQA==","signatures":[{"sig":"MEYCIQCJwWSR+zx/XhFzJr9vekGuE6Pj2xw/gIMFDrVO4K8eKwIhAN28QD154uXo+LaMFMG9Jz16MgYZObHvFOFRT+7Z2j4m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCzyf7JRQLogp+pNCf4MXurNVs4r/IY8I8OVf37/H5SCQIgTsxmroQCHyQ3lPB5og6V1brM4ExYTVBEN5ULhZXA/iw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7254449},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3e53c65d3a53c329e1eb5c2340e395b33e466daf","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.0_1790424154436_0.4408998370551642","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@youweichen/pi-web-ui","version":"0.6.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"c2e0cc83f6e5f532a9a193c5dc8864b983b3b798","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.1.tgz","fileCount":181,"integrity":"sha512-CRI25UAHFA4FMZlFzhtYG84ujUBfuOsGbvNwC82fhFd7R5fG/0H3VIFXLFxCf0b1hzwLBB3Tzdd6aMT/JFIVpA==","signatures":[{"sig":"MEQCIC7FCKJkPZi7lTN1Prs7revLwEp7zpOIeKD7rC3ZXFM3AiBYHXIBcS3ldz2CZNFM+Ygd8wVo3QoDBy+vbG/4fx4Zhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCc0kJQPG+A2yLiaW6j/ZlAKAjxp+pNIpSw2kaz0URKkgIhAK7OOXIgziew9vp6v2H2wNQSH564ektQrNLxp/AvjwZa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7261819},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"ab026288fb8f9351be47b174fd38a87a9b0cb3f6","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.1_1790434507203_0.041636751953298745","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@youweichen/pi-web-ui","version":"0.6.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"62929715a286ec1475190eeff946e1dad5bd3779","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.2.tgz","fileCount":181,"integrity":"sha512-THPB7elRUgwIVTvcj6uredqPxkocMFb6fTZzsKIxcnG/5A1cjfekvBAXcjBX8IcksJdiFu1ClUix9cuGES/G5Q==","signatures":[{"sig":"MEQCIFmz1UARDwNrcnVY8vOeWdhsjXb98Ph0JugJAM/NywqIAiAWpH7JDjjbnwi8NUqvlWWZ4ztrBH2b9RwZhc+H9bCkbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICk7Qv8pThDZWNm6zhOQIQ40/MyEzkK5w3/JBEOVg2fMAiBP+mnXw8aDekxrKmM8u2+aAcDCKoxglQx8jO8Yq3OMHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7270429},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cb9765176540fefffa4ab93ab54400e584ba5d00","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.2_1790446895488_0.3129837412467076","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@youweichen/pi-web-ui","version":"0.6.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.4","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"0d4bc63aedc9a44f5ccbbb374c45a4a451a3d9ff","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.4.tgz","fileCount":182,"integrity":"sha512-NWaZ7XsZU25c3a7csDwJNztdvZJOVfWah0klhPQyQ6zWyOm3jLrc1FxnrfnVfPb70bdmbC64PqVgCWpgiQNPGw==","signatures":[{"sig":"MEQCIGmfZc5Qj4kMjIn65iSg6IjD4er6IdAJYOab2z76ml2AAiA0UVM1h9k08lLvzi9xt4PRkJArJ06CBO5zMXQyTdw0qQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIALnKFQUZ80BdTiKZl0lKJ/bml10m5V9n107Ulf2IjnGAiAFmathJ/IK8HU4JP3l45551DXL3r2oOO3mT8FdB5KTxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7292594},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"778c9406b0926afb97329b5acc4396c0ec158f7d","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.4_1790484850800_0.9410770049669486","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@youweichen/pi-web-ui","version":"0.6.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.5","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"cca21447f9940c72ff86ce720677f67f9956fc6b","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.5.tgz","fileCount":183,"integrity":"sha512-qcTPY0cvETlrzGg/IXN2f9p3QHdJa/poe7SHdGJuWilW+/Xs/g+i2uWtlMNxbypTX7sMmVFBSuDnorod280EoQ==","signatures":[{"sig":"MEQCIC3aDyAvM/6jECLPNMdpGwm1IbzYdCiqpgZYmqUhv2GsAiB7k4jnHxqpOH6ap8cdjtbq6BuD3DNmFAo+BMNYUCs6ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClASYUEFmENeQh+PixgOVc1RqEt+BU4ZrxpKeWL6/RkQIgS9aSuIaUGUFYWsF7ILK7m4gGhvVRm2H4eOxFAjlX1jE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7319138},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3635e6fde28d116ed1584395742ea491926bda77","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.5_1790490832623_0.9169193510706561","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@youweichen/pi-web-ui","version":"0.6.6","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.6","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"27e682b610dedbc9314d70546d4e4b84f6ff7d81","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.6.tgz","fileCount":183,"integrity":"sha512-KargF4Qqt8TzyKUnEobCaEZb3tzLn9tnXZIestm7zEPsXyV9JKIAtl+dqfK+7I97o6G5sxXc9IOvNUKWtv3T8w==","signatures":[{"sig":"MEQCICfCmTJEUfrsedQ4HSWkUsjfmW68T6ZtzFotIqyU+ptTAiB+5jMeMASSWJSq08lIBFoPce5J4yyZNxXWj2wOMpid7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBvVpfyA8o1+YpOsssVVhPvYFeJGF8P5MA7IY1mX+wLPAiB2CqZ5xxcdLYRKFQ+htRrUC7BUDqa0PuYuM3WqV7lxTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7329001},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"4539c83eee54560fbd039ef80152b721c48077c5","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.6_1790501732104_0.469417072527502","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@youweichen/pi-web-ui","version":"0.6.7","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.7","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"63849669852df0ee1ac8c88cb9aead5176a452b8","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.7.tgz","fileCount":184,"integrity":"sha512-uYpR9MrbQae5yR2/CDIbKhhbzBtGKfO2pA6XfkyLURoBkHEbTZQZajlERgDr+g3yqjZaRH0dUAyeDBKXXm0pFg==","signatures":[{"sig":"MEYCIQD7yytRSmTmBikfEOkcMOAu7aCEcHvSwlPCSVT1jVjCiQIhAK1HPSjVdeX5eWwqFNjqQbVakqDgtdm+C34UwM+sVli9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC4mFm3J3s0kNTKdGEQQAlR0mS+sLgX2zg4QxAqkMHGnQIgPGTekRT0arH2i2lrIpn5XB01VkiUANNlxBg2u0bw4OI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7347004},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"2ca51994fa49e2562721c3eedf1edebf556d575f","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.7_1790514197755_0.8756814839260363","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@youweichen/pi-web-ui","version":"0.6.8","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.8","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5b8cdba16533a3cf67d737a2b65d3b16eab71589","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.8.tgz","fileCount":184,"integrity":"sha512-7g3tRdlPZRr0HVjKN7BUfTrW5Qvr8UBcdxL3dGgDf5Okd1HX0ad+u4jlrckVuOnUumSwATrKOCEVPPI+hE5VBQ==","signatures":[{"sig":"MEUCIQDtXH9uS1mcnSj9wBAD2viNxHOvjJX9EQfOD4ps7dYDSgIgXbgaSUPTFje1IBI8oo2ROaQMxOo3pfrHPhiyJ3kK6es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD/u/n9iMgoLYqgGICJT3ZdcUBcYi9Ioj7gwWgZWlu5twIhANiGk2hX1MO3wTzDPz2Wq95WYZ+z/tyMLf7zYm1O/0QQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7355646},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"3f3faf19424c2d12fb958745470ca0e5a20113d4","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.8_1790521103596_0.2294506335556048","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@youweichen/pi-web-ui","version":"0.6.9","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.9","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"91c0fdec758469f0f6a996d152ffc71910be2684","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.9.tgz","fileCount":185,"integrity":"sha512-p8Mwk06tRy/JFwWkX58afXRz54CCziaPa3giZNU2ZxpaIS6tmT8YrYY1D4fW700QGjr+fW4B8Tlqy7ALp2Sf8A==","signatures":[{"sig":"MEUCIGssyyVu/c5RpEDvQn7wxUBlKrrcxSd703/7GTyJ9OvAAiEA2+uEIYKRT4VF+RqV6GZ9/aO6B4RprAD/dZUz2oYwkOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDKuM2nvjj44C5fCgNkefgJfUUXf7a04H8fjTGiQJJGCAIhAKm/XRVhDzGW/hbTBzQsVOdjx5WEmcj8MzMVsSuzAREd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7358256},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"b694a7a8c89ca4a2d99c4d9c9c6498d301940c8b","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.9_1790549117989_0.1817628933862443","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@youweichen/pi-web-ui","version":"0.6.10","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.6.10","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8640bad5a806d7afc468ac2e9047b8bb82cd7e74","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.6.10.tgz","fileCount":185,"integrity":"sha512-XwRgTt7JgIwGTshon0UDZGM/1pY5MNCMbe0DKjvB9rQCpaDUbAti5E87foKniL18nUXDyqnS197B5Z1hcgMUhQ==","signatures":[{"sig":"MEYCIQCHiX1vU7wkiJGazTOZDCKgZyzlAtIL8pXiLR5f4OaXxwIhAP2SSqlhuj78XpVHeO8swupPhky3EsuIhKvryOEP5Lik","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnp0xKa6fCabySOifXlBOHddK1EVlVqgUXQ7PLkwv7bwIgKRH4jsCRpUgL43/0vL1Ukv9Qzp7v6Lw6GuzRtvvvwWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7360101},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"59019dd924e186dd9c0e4ea25b4e3992a0301a35","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.6.10_1790551595363_0.3570791240030988","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@youweichen/pi-web-ui","version":"0.7.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.7.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"190a7f0e15d1f19c1248fa2d8cfda03ef6732587","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.7.0.tgz","fileCount":186,"integrity":"sha512-bhijCMOpewjK7V/+DfgeXAiJ4cOt6QPxiqzBeFzuFxfAKsA8D453UgF1yTytw9E0PpdEpfAehUsPlbBmjliAbA==","signatures":[{"sig":"MEUCIAPx7qkF4YGZ1WiZ0ULkvisbhoB53aO5J6F+6YrW9j7iAiEAv8pMswC38PI73Iq91qQSAMkrmj8HJcM+Ic9TO2myffQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIETNKF45XxmQshhmMKBYlqyQ+1lnO96bOZHlp+075VQgAiEA8MLsLVe59ynIezuVcLUQ/glyC4p+XhB2ltKaqRT9A/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7413435},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"6c6b69ebb826e7aba5f8062aeddb8affa4c258cb","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.0_1790578878288_0.7641260112708619","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@youweichen/pi-web-ui","version":"0.7.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.7.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"8e6c1802a7c0fe4ef615c17761341fc426bb660b","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.7.1.tgz","fileCount":187,"integrity":"sha512-cMOL9lRUkKOR5t2nagqPH9fY2R5ANtXr/On38KQBw+z3jXOsgb0U/Ck4CsqBK4K2uo4Sr0lA0sZtI02GXVAm4A==","signatures":[{"sig":"MEYCIQD9l9/cIrUhE81O7l1xwuTz4/Zjkrzl4daYQVEFKhvlcgIhAItbXUCXxcnj7evPBw8tlYdXNayHhHoV6n9JTRjCuaaj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICEeyE1q7hdi3uZIEFil02NiG3gfFIUhJmNmRwur5yEkAiBbgl3HbwEonfaKQUmfnpbHeBm17mKY9/Hi+aWMShH5JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7417533},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"d427fe2cabdc8f8f7b515689a2b8a5a2283b9a6f","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.1_1790581606848_0.7977050110985888","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@youweichen/pi-web-ui","version":"0.7.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.7.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"6a2a88e468ea50b60637fdca5605e0a17729c6c7","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.7.2.tgz","fileCount":187,"integrity":"sha512-3ECOlRplgyyBG2milxETdm5/unJrqXe6jHo1FeIif93yN4c6RLqRkZPsdb6iY1a7uJN4RSV6T3DYjYvyNj6L4w==","signatures":[{"sig":"MEYCIQD574JAhd2ZcO+d9Xytj8DVR7Q0ymash4FDtqCNk04hRQIhALGGMP91bSoZeH9bDFqFhKyc/d8hMH0QEDP/NU/BxmpC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHdFIuQ0hD9+7kl9i2+c4i5dq30Ag9EZ7085PZhO8ertAiEA17Tth8IM+1+GJJS3MLam0XCbjPVBxpCVqQb7EyGvnps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7420616},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"1312e895e2dc079b7a268d83e2f083501e1704a1","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.2_1790583775047_0.08457877427116345","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@youweichen/pi-web-ui","version":"0.7.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.7.3","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"5e3b4a193d8c515df877b66903f6564c23be86e1","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.7.3.tgz","fileCount":187,"integrity":"sha512-ZnEzDbcnPMWOIJbwEOTtZfjd+a6LuvfCFY0rU8U+DdZpr1dcAhOzcwuWJ7VpJ8xPPzAfMxqG34NfJfQGFueEEw==","signatures":[{"sig":"MEUCIQD9fMXvUbIWDQm0SJ/ny1TSnnENL/2+mODyY/Q4nAczEgIgWNpM8Y20C1ti2eThaGHIy3GSdvv9N1X0ImXYn95wa/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDGkQBkfqSq2yRhP8I4HnfmCFr+dUNLw6W6qkSZ96NM0wIgMy8IVbHTPaoLEs1yzmwz24SOWUQ69AQOmXAip+ONKJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7422329},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"32a0cb1770867b96c0c6a29e2678f3e51b292139","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.3_1790588074742_0.6034872140288992","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@youweichen/pi-web-ui","version":"0.7.4","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.7.4","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"f27431a4dd8aeac2f54738714b99d235a7ccd68a","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.7.4.tgz","fileCount":187,"integrity":"sha512-c75acICvs0X1lrKfbApy+sqJ8h/ghWuCqpFBnXcXmjZFFcMKBmECv7VU6o2xu28bAVqEOz3p9K0qh7qDYb2i6w==","signatures":[{"sig":"MEUCIQD/VuodVdiMJDF3eYt4ePnrLrwi9iBGyy1c6D+A/SE41QIgBGzw5Sfi/TSoTNNSDGHcCBMpAfeHGr0nnS30FNAiN6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICDTG6ZpsbwrcZoiWnIWfsfaDLrSx9hAr/TiRtfeDQk3AiB2bg/oCih9HDA4Ee6AVhFPSobUjDYPy7iwZpQgSGxDUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7446292},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cf44ed6b9d278462ef32368ed797200ed3beb74d","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.7.4_1790613747897_0.5359227771770261","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@youweichen/pi-web-ui","version":"0.8.0","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.0","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"1eb965971b5f1c7777b422807e30ede43f9e48fa","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.0.tgz","fileCount":190,"integrity":"sha512-5OPPoFRllrJ20u8XiCC8dhcC/5rRcbFbyBoA1lvYQ4TvoA7OXW37Uq3aqmUThyTG7I22zP9kdhWEMfTFeROk+g==","signatures":[{"sig":"MEUCIQDGtPdUG7dv7WiWcpBO4wX0MaKIPTa0kHFviAC7GwgUtgIgVPwKo140Luq9q8dmJSt3vVwcEyALy2Fwe4cIq/EPccE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF0tA28TZ0HCT9Pw8WrRwSztU1sXivbIYt5uZfnvzr7kAiEA3vWXBOtd9TPQImJYQ901/m8sf7cMcJ78gnk7IghEroY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7472046},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"950e25f8eea836710593e1646d772551a16f88e4","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.0_1790643521044_0.7774422477397989","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@youweichen/pi-web-ui","version":"0.8.1","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.1","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"288c5111921caa85b85ce5c50d43efe266235860","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.1.tgz","fileCount":190,"integrity":"sha512-ShJfV0gGjaqcmMmiq13eeU4dz67Wm/sk5P+1fABs+sZGrPWiwwDKfeS+Mvoy5a+y5isqEHi3pP+oZ77FII0tqQ==","signatures":[{"sig":"MEUCIQCwtJlYML+cTTrHSk7sof1jzOza+VLYR8G9j6zBzDwi3AIgRi5u07TBXKEb/wDHU6wfGLx1KM+TSJzRMMp4+nKjRtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC6egvfOtdFeRMCao1ESZEL0+J+CCSNXep9CQ+1Zc30lwIhAN5gZqv/UVyZ48iWJ0cTTXpWzZN/xBxXKKH/obPSAv0c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7474913},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"cd8fca0684c5e6eb615fc57dd6595406bd919430","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.1_1790645700529_0.9235119759024355","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@youweichen/pi-web-ui","version":"0.8.2","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.2","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"e966add7ca902630e61012fd7bc732ee83048abc","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.2.tgz","fileCount":191,"integrity":"sha512-1fPv05JghUJ38h6relKLFWEjpIenoqN0uCskvVL8Imkw7JPLQH44K17OQQteKaMdTKXFcNBmbpDrBZGQxsWNdg==","signatures":[{"sig":"MEQCICzzzKwKnwQfSmynEC303HxdRfem9LWp9Tw4rud11o5SAiBDYb1I16VC2zPZWBQi6ib3MPe51qW6qQOFt8nA/aRrWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC1xJctZegzjDibhWZdJ2XaqyIuo3BsBa8jUY51IyX3+wIgaDQcnJFGQYPZVYrTLYL1OaX4gYJLWZE5lR64VaRFj8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7485213},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"33b9bfca1a25341b9e539c8b2ea0daf4934e0b57","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.2_1790649464414_0.818227151155994","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@youweichen/pi-web-ui","version":"0.8.3","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.3","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"35b92baf99e21afc096b78c642e014c3a073de31","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.3.tgz","fileCount":191,"integrity":"sha512-pHxU0g6uym29gQQYLFaZhgXuLIsIwgBbFEEvAo0ss2FkOaqQK45jnBn7YdiEJOuDSJEpyRhuzThggnGuvLbc+w==","signatures":[{"sig":"MEUCIQCPSxGVz5EcNHtZAFquYItapK9Z40wgRkWBZuwBaM8+IQIgXwGg7UokvSlfcmMbB9AhJOp2CBIDtxOFc7Nt39NUHIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEuDJvXo1IwdcsDGCo8ptNrf06/JPPq3Nt5Eg7CgUQM3AiACYczhpIh5ufhwrbNYYImSKjiqv4GfynbHGQgJbPoEPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7485273},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"18c1d7a191c53774b9cda063f953c5438f51be70","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.3_1790652571601_0.4069361578391413","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@youweichen/pi-web-ui","version":"0.8.5","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.5","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"4f3e37599bd55137d883a133561eb81f9d2c9575","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.5.tgz","fileCount":191,"integrity":"sha512-CEhah4scEYFlfoEQK9f92JwL0uyf/3h0FhfQ7PAak5+9qon4kNrzm6PacFlPpSbxw6/1Xz7LzWh0f2E9UUnFhA==","signatures":[{"sig":"MEUCIQCp2/Qc5Um0ePj4rvZdFsP/qfzIera2EcVbr9MenBQQkAIgbKdUuCZUkj1GNuXvtAkd3njo2tsapqiBiqfKpGfOiBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDQLzikn4py9N9OILZxmvQUf8070jlOQYZnD9thG75UdgIgZvTlusoYtuEnK72Q2M5t6quRtTbGFzy/ODkNCgrW/E0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7491380},"main":"electron/main.mjs","type":"module","_from":"file:/tmp/youweichen-pi-web-ui-0.8.5.tgz","engines":{"node":">=22.19.0"},"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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"_resolved":"/tmp/youweichen-pi-web-ui-0.8.5.tgz","_integrity":"sha512-CEhah4scEYFlfoEQK9f92JwL0uyf/3h0FhfQ7PAak5+9qon4kNrzm6PacFlPpSbxw6/1Xz7LzWh0f2E9UUnFhA==","repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.5_1790672079998_0.7542436291332177","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@youweichen/pi-web-ui","version":"0.8.6","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.6","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/pi-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/pi-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"210a34e1c8d91f94b0414f6ae53437827fc8e2ce","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.6.tgz","fileCount":191,"integrity":"sha512-Pr8lMl2daYkhWrfIBfHlrogoiQwxbSLj6gm54bXsD7XRhhVMFi5uo8PVLODhpJZ3NSL/a/MsWdmkIrUw3zpEXg==","signatures":[{"sig":"MEQCIEtZIgQKEZVNh0/GYEMzDm3YIr0jCS/q66nvqjULepk7AiAIfSH06zR3uHThKFuo8WR3pivenvdIoAtpWnZ88lfbig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYltb6ZahZe00FIgrHM86b+urNLqLoTO+V+J/WT8edAQIgSmDnc7FH7Qy/FRC3pKxGCai75ddPUo2DjK01YKzws+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7499614},"main":"electron/main.mjs","type":"module","engines":{"node":">=22.19.0"},"gitHead":"15cdd52a3dbb9c47911b26c3454484a199458b40","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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"repository":{"url":"git+https://github.com/youweichen0208/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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"^0.84.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"^0.84.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.6_1790780558150_0.5191904290297156","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@youweichen/pi-web-ui","version":"0.8.8","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","_id":"@youweichen/pi-web-ui@0.8.8","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"homepage":"https://github.com/youweichen0208/omp-web-ui#readme","bugs":{"url":"https://github.com/youweichen0208/omp-web-ui/issues"},"pi":{"extensions":["./extensions"]},"bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"dist":{"shasum":"3e400ebd9ab3d9774e64c64cff1795f84e1eac0a","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.8.8.tgz","fileCount":194,"integrity":"sha512-Lcvz0o4FMdVzDm4N001wpiXOCIL4tQ4nHL8GGhN00SAnmDGBJIxTwIOoBKB+GkCNij9Q5AcLe5ph4x462A5pww==","signatures":[{"sig":"MEYCIQDGhLv3rUt2DWEAOkSciJ1USmGLuesC/4HbHcH+1xuWogIhAKyfEdTEv/uvK9C1//qo/XBreJoeJ33nOv/x1wXxRzyB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDY4SmoG70GnlXgG44JrySp6hFnZxP5ILo9q5uznn38OgIgHZQQg1ZZwUT/0NPqBbExaznSZEQYr2uGkyee1OON7/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7518519},"main":"electron/main.mjs","type":"module","_from":"file:/Users/youweichen/Downloads/pi-release-0.8.8-tfvk4z3_/youweichen-pi-web-ui-0.8.8.tgz","engines":{"node":">=22.19.0"},"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","dev:electron":"electron .","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":"youweichen","email":"youweichen0208@gmail.com"},"_resolved":"/Users/youweichen/Downloads/pi-release-0.8.8-tfvk4z3_/youweichen-pi-web-ui-0.8.8.tgz","_integrity":"sha512-Lcvz0o4FMdVzDm4N001wpiXOCIL4tQ4nHL8GGhN00SAnmDGBJIxTwIOoBKB+GkCNij9Q5AcLe5ph4x462A5pww==","repository":{"url":"git+https://github.com/youweichen0208/omp-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":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"0.99.2","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"0.99.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","pi-subagents":"0.74.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-web-ui_0.8.8_1790872525271_0.3416436410781991","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"pi":{"extensions":["./extensions"]},"_id":"@youweichen/pi-web-ui@0.9.0","bin":{"pi-web-ui":"bin/pi-web-ui.mjs"},"bugs":{"url":"https://github.com/youweichen0208/omp-web-ui/issues"},"dist":{"shasum":"b2b35ed40b59b7d635cc6ae84b9a9be70623a9d1","tarball":"https://registry.npmjs.org/@youweichen/pi-web-ui/-/pi-web-ui-0.9.0.tgz","fileCount":201,"integrity":"sha512-wCMQ+NdKbJJsjS5wEAuf4XoqpdElpmXGv5KAjncvfGKTIWGIAWHGvYBovbznx88UcER/JOCgLjnIyGAcIp9pTA==","signatures":[{"sig":"MEQCICjl7ck326rl1H0bZsJod1p8HLOmSWz7x+MS8XhsfHR9AiA7qvO0b1DNrm2ypj9PlGXKtDKrjt+qTlEVXRAzhLbGow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzk/WtNa2IcyArnBIPkQWWEpOZ3vWqEaQGTsdraYvX2QIhAIUi2/kP798NaGElG39dmFPo2XfOIx2pu29uJmyt54vx"}],"unpackedSize":7617836},"main":"electron/main.mjs","name":"@youweichen/pi-web-ui","type":"module","author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"engines":{"node":">=22.19.0"},"gitHead":"b5394b5e591d06ad3404d0f555629f0e3eb32108","license":"MIT","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","prebuild":"node scripts/patch-pi-sdk.mjs","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","postinstall":"node scripts/patch-pi-sdk.mjs","test:freeze":"node tests/freeze-test.mjs","build:server":"tsc -p tsconfig.server.json","dev:electron":"electron .","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"},"version":"0.9.0","_npmUser":{"name":"youweichen","email":"youweichen0208@gmail.com"},"homepage":"https://github.com/youweichen0208/omp-web-ui#readme","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"repository":{"url":"git+https://github.com/youweichen0208/omp-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":{},"maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"_nodeVersion":"26.0.0","allowScripts":{"node-pty@1.1.0":true,"electron@41.10.7":true},"dependencies":{"ws":"^8.18.0","ssh2":"^1.17.0","express":"^4.21.2","typebox":"^1.3.14","node-pty":"^1.1.0","compression":"^1.8.1","electron-updater":"^6.0.0","@earendil-works/pi-ai":"1.0.0","@juicesharp/rpiv-todo":"2.11.0","@earendil-works/pi-coding-agent":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.0.3","react":"^18.3.1","vitest":"^4.1.11","mermaid":"^11.17.2","unified":"^11.0.5","electron":"^41.0.0","turndown":"^7.2.4","@types/ws":"^8.5.13","cross-env":"^10.1.0","react-dom":"^18.3.1","remark-gfm":"^4.0.0","typescript":"^5.7.2","@types/node":"^22.10.0","@types/ssh2":"^1.15.6","react-icons":"^5.7.0","@types/react":"^18.3.12","@xterm/xterm":"^6.0.0","concurrently":"^9.1.0","highlight.js":"^11.10.0","remark-parse":"^11.0.0","@types/express":"^4.17.21","react-markdown":"^9.0.1","@types/turndown":"^5.0.6","playwright-core":"^1.62.1","@types/react-dom":"^18.3.1","@xterm/addon-fit":"^0.11.0","electron-builder":"^26.15.3","rehype-highlight":"^7.0.1","@types/compression":"^1.8.1","turndown-plugin-gfm":"^1.0.2","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-web-ui_0.9.0_1790901185123_0.3649724894745918"}}},"time":{"created":"2026-08-29T16:03:01.928Z","modified":"2026-10-02T00:33:05.532Z","0.45.0":"2026-08-29T16:03:02.382Z","0.45.1":"2026-08-29T16:08:17.782Z","0.45.2":"2026-08-31T16:45:18.842Z","0.46.0":"2026-09-01T15:57:27.194Z","0.46.1":"2026-09-05T17:14:15.281Z","0.47.0":"2026-09-10T16:49:43.164Z","0.47.1":"2026-09-11T23:49:47.547Z","0.47.2":"2026-09-12T15:55:42.464Z","0.47.3":"2026-09-12T17:07:07.473Z","0.47.4":"2026-09-12T23:14:06.985Z","0.47.5":"2026-09-13T00:42:31.316Z","0.48.0":"2026-09-23T14:41:41.087Z","0.49.0":"2026-09-23T17:22:51.819Z","0.50.0":"2026-09-23T23:41:38.921Z","0.51.0":"2026-09-25T06:31:00.870Z","0.51.1":"2026-09-25T07:16:27.683Z","0.51.2":"2026-09-26T08:22:58.719Z","0.6.0-beta.0":"2026-09-26T10:34:25.656Z","0.6.0":"2026-09-26T12:02:34.594Z","0.6.1":"2026-09-26T14:55:07.328Z","0.6.2":"2026-09-26T18:21:35.681Z","0.6.4":"2026-09-27T04:54:10.963Z","0.6.5":"2026-09-27T06:33:52.803Z","0.6.6":"2026-09-27T09:35:32.280Z","0.6.7":"2026-09-27T13:03:17.940Z","0.6.8":"2026-09-27T14:58:23.733Z","0.6.9":"2026-09-27T22:45:18.118Z","0.6.10":"2026-09-27T23:26:35.558Z","0.7.0":"2026-09-28T07:01:18.460Z","0.7.1":"2026-09-28T07:46:46.985Z","0.7.2":"2026-09-28T08:22:55.197Z","0.7.3":"2026-09-28T09:34:34.900Z","0.7.4":"2026-09-28T16:42:28.070Z","0.8.0":"2026-09-29T00:58:41.227Z","0.8.1":"2026-09-29T01:35:00.676Z","0.8.2":"2026-09-29T02:37:44.583Z","0.8.3":"2026-09-29T03:29:31.752Z","0.8.5":"2026-09-29T08:54:40.209Z","0.8.6":"2026-09-30T15:02:38.315Z","0.8.8":"2026-10-01T16:35:25.457Z","0.9.0":"2026-10-02T00:33:05.321Z"},"bugs":{"url":"https://github.com/youweichen0208/omp-web-ui/issues"},"author":{"name":"youweichen","email":"youweichen0208@gmail.com"},"license":"MIT","homepage":"https://github.com/youweichen0208/omp-web-ui#readme","keywords":["pi","pi-package","coding-agent","ai","chat","web-ui","terminal","llm"],"repository":{"url":"git+https://github.com/youweichen0208/omp-web-ui.git","type":"git"},"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","maintainers":[{"name":"youweichen","email":"youweichen0208@gmail.com"}],"readme":"# pi-web-ui\n\n[中文](#快速开始) · [English](#english)\n\npi-web-ui 是独立维护的 [pi coding agent](https://www.npmjs.com/package/@earendil-works/pi-coding-agent) Web 与桌面界面。在浏览器或 Electron 窗口中使用 Agent 对话、文件树与预览、附件、终端、模型管理，以及内置的 SSH 节点工作台。\n\nSSH 工作台让 macOS 或 Windows 上的本机 pi-web-ui 服务连接 Linux/macOS 节点：左侧按组管理节点，中间开多个 SSH 终端标签并通过 SFTP 浏览文件，右侧是各节点独立的 Agent 对话。Agent 使用当前选中的远端终端执行命令，输出在终端中可见。节点的实际操作权限由远端账号或容器决定。\n\n## 快速开始\n\n需要 Node.js **22.19.0 或更高版本**，以及至少一个已配置的 pi 模型服务商（`~/.pi/agent`）。\n\n```bash\nnpm install -g @youweichen/pi-web-ui\npi-web-ui                         # 打开 http://127.0.0.1:8787\npi-web-ui --port 9000 --cwd /path/to/project\n```\n\n不安装到全局也可以运行 `npx @youweichen/pi-web-ui`。升级后若使用开机自启服务，运行 `pi-web-ui server restart`，让服务端加载新版本。\n\n### 版本与升级\n\n正式版通过 `npm install -g @youweichen/pi-web-ui@latest` 安装，桌面安装包见 [GitHub Releases](https://github.com/youweichen0208/pi-web-ui/releases)。`0.6.x` 的 SemVer 排序低于旧版 `0.51.2`；如果你在其他项目的依赖中固定了 `^0.51.2`，请显式改为 `^0.6.2` 才会切换到本系列。可运行 `npm view @youweichen/pi-web-ui dist-tags --json` 核对 npm 标签。\n\n## SSH 节点工作台\n\n1. 打开顶栏「SSH 节点」，点击左侧 `＋` 新增节点。填写分组、名称、地址、端口、用户名、认证方式和默认目录。\n2. 选择密码、本机私钥路径或本机 SSH agent 认证。密码和私钥口令保存在本机加密存储中；导入、导出节点 JSON 不包含凭据。\n3. 首次连接时核对远端主机密钥指纹，再选择信任。密钥变化会阻止连接；确认服务器换钥后，可在节点编辑窗口清除旧信任并重新核对。\n4. 连接后打开终端标签。右侧 Agent 使用当前选中的标签，保留该 shell 的目录和环境；运行时锁定人工输入，命令及结果同时显示在终端和对话中。\n\n节点资料分别保存在每台客户端，不自动同步。可从旧版 Remote-SSH 插件导入主机资料，旧配置不会被删除，凭据需要重新填写。SSH 工作台与本地项目终端相互独立。\n\n详细步骤、密钥配置、SFTP、故障排查见 [内置 SSH 节点工作台手册](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/ssh-workbench.md)。Windows 用户如果还使用外部 Xshell，可参考 [Xshell 与 SSH 连接手册](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/xshell.md)。\n\n## 其他功能\n\n- 多项目与多对话、消息流式显示、文件树与预览、文件附件和编辑。\n- 本地终端（xterm.js + node-pty）、Git 视图、模型及思考强度选择。\n- 中文和英文界面、声音提醒、可选插件及 pi 扩展。\n- CLI、开机自启服务、Docker 与 Electron 桌面版。\n\n## 运行与部署\n\n```bash\npi-web-ui server install    # macOS: launchd；Windows: 计划任务；Linux: systemd\npi-web-ui server status     # 也支持 start、stop、restart、uninstall\n```\n\n默认只监听 `127.0.0.1`。如果需要从其他设备访问，请参阅 [部署手册](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/deployment.md) 配置监听地址与 `PI_WEB_TOKEN` 鉴权；不要直接把未保护的 Web 界面暴露到公网。Docker 与环境变量也见 [部署手册](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/deployment.md) 和 [环境变量列表](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/env-vars.md)。\n\n桌面安装包在 [GitHub Releases](https://github.com/youweichen0208/pi-web-ui/releases) 提供。Electron 使用同一套服务端和界面，桌面版数据目录是 `~/.pi-web-desktop`，CLI 默认是 `~/.pi-web`；pi 的对话历史仍由 `~/.pi/agent` 管理。安装包目前未签名。源码构建方式见 [部署手册](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/deployment.md)。\n\n## 开发\n\n```bash\nnpm ci\nnpm run dev            # 后端 :8788，Vite :5173\nnpm run typecheck\nnpm run build\nnpm test\nnpm run test:smoke\n```\n\n项目架构与测试规范见 [docs/development.md](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/development.md)。源码及问题反馈位于 [youweichen0208/pi-web-ui](https://github.com/youweichen0208/pi-web-ui)。\n\n## English\n\npi-web-ui is an independently maintained web and Electron interface for the pi coding agent SDK. It includes chat, file browsing and editing, attachments, a local terminal, model management, and a built-in SSH node workbench with grouped hosts, multiple PTY tabs, SFTP files, and a separate Agent conversation for each node.\n\nRequires Node.js **>= 22.19.0** and a configured pi model provider. Install with `npm install -g @youweichen/pi-web-ui`, then run `pi-web-ui`. See the [SSH workbench guide](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/ssh-workbench.md), [Xshell guide](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/xshell.md), and [deployment guide](https://github.com/youweichen0208/pi-web-ui/blob/develop/docs/deployment.md).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}