{"_id":"@hyperdreamer/pi-webui","_rev":"71-06288f85bc156e9188dabeaa2c142735","name":"@hyperdreamer/pi-webui","dist-tags":{"latest":"1.21.0"},"versions":{"1.6.1":{"name":"@hyperdreamer/pi-webui","version":"1.6.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.6.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"a90262384002d859019b1d63bedc4d2e84898c9a","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.6.1.tgz","fileCount":276,"integrity":"sha512-qET7Y9WITvr4P3rzJV8FcCR1zXhjdp932GWCCSi/1iFTSGg6BtItZweeg73JjAgdg8Bo8RGvEYskOJSwvvUM2g==","signatures":[{"sig":"MEUCIHKDm+UGFqdpjPNIKf56wTxGi5TmRq8/OvzdvKDUuLtAAiEAlUWpPGF3LpEOdjzffwafpDYB1ZY8YSAsf9ca2mPb2yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4526428},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2758e5a54110d54b0d368d5eb8ab87ed97c35bc3","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.80.8","@earendil-works/pi-agent-core":"^0.80.8","@earendil-works/pi-coding-agent":"^0.80.8"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.8 <0.81","@earendil-works/pi-agent-core":">=0.80.8 <0.81","@earendil-works/pi-coding-agent":">=0.80.8 <0.81"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.6.1_1784977541810_0.07661332225466344","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@hyperdreamer/pi-webui","version":"1.7.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.7.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"e9f4e3138d61978f41f4da98cdf1844fbd07016f","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.7.0.tgz","fileCount":284,"integrity":"sha512-VWg3RMEA9s/5bM8ayvJOc8IFuW13Lrn8WOUqGC0bDkCXVT3ysM4eAaWPuPzx5h5sldiw6+uh6Yw5hy179i9DOA==","signatures":[{"sig":"MEQCIDTkNzfWZfupxpQxftW+4WKV6qIgCpLZNxXF0sxlnZibAiA1v98bEhtCskQg3KEP9Oc6XoGaUxl5DkKv7LPr4rMrsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4593397},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4f3c5b6833be1035655662cc86834ea98ed52b61","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.80.8","@earendil-works/pi-agent-core":"^0.80.8","@earendil-works/pi-coding-agent":"^0.80.8"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.8 <0.81","@earendil-works/pi-agent-core":">=0.80.8 <0.81","@earendil-works/pi-coding-agent":">=0.80.8 <0.81"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.7.0_1784990090124_0.252514917470108","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@hyperdreamer/pi-webui","version":"1.8.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.8.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"ea020e9d7ab6a19145043cde6129686b88b8f256","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.8.0.tgz","fileCount":284,"integrity":"sha512-c1ZhN++YoVGwfkABBxRhtv+j6ydeLuofQQQmaNpwfPetM7B2f5C9zendEo7Wr1lixkULScdD2ck9IQ0ExUr94Q==","signatures":[{"sig":"MEUCIQCRzyHI+WL1Qbv5xG0wyVeKPbbWfS5saTwDtQ4Z28ZOTAIgPGVyTSgFj77DVPb3jAHiH2rvEIzlb3q3epQlS10rbW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4610024},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3a8935a02ea08777b0ed749d4e0b9cc587168a54","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.80.8","@earendil-works/pi-agent-core":"^0.80.8","@earendil-works/pi-coding-agent":"^0.80.8"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.8 <0.81","@earendil-works/pi-agent-core":">=0.80.8 <0.81","@earendil-works/pi-coding-agent":">=0.80.8 <0.81"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.8.0_1785032321967_0.6712779301795937","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@hyperdreamer/pi-webui","version":"1.8.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.8.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"883844e8d43daa87484f0a236e6e850b528b922d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.8.1.tgz","fileCount":284,"integrity":"sha512-vT1xbo7DV1+b02/r6PqTML0RCaxPDDJBuj1B0HNHXXQmaZHwBrE32CIiHCuoBKzaHONV7W6ZS/Lz6a8GqCTqyw==","signatures":[{"sig":"MEUCIDfMgOKyb+dC92ixKn2mmKHEWGpzz2v7rBjOfh3BFj5yAiEA7CmA4pjmn8Cuwm16ovFFge/hhJ1Xq6IOZoHuzxgPOyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4610366},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"66fb84e0dafad12215bdaea9c6388e5777f6480a","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.8.1_1785037832306_0.8821472893722335","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@hyperdreamer/pi-webui","version":"1.9.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.9.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"cd8c62535e02435bc69d088bcd43729aaff2eb26","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.9.0.tgz","fileCount":276,"integrity":"sha512-s2m+KvUDni5S/IjbOq6A1V8bWq9MYOeb4AnAaP89vUqCfREqHJrlipnvPpzmugW6nhrwEbEZ3lXOscdFbpp/8w==","signatures":[{"sig":"MEUCIEOGW/pfJOmHUsmV+w0tfPMx88s694pQ9nJPCi/ktN5AAiEAlOgeaOK9hNJcs6rVELnZWCM3xtG9V+Mc0L0r9sOtHvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4566711},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"a95014823a4e5720697afee38114214af15c84a8","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.9.0_1785092180537_0.8281462896473548","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@hyperdreamer/pi-webui","version":"1.9.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.9.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"83480a082146ca6684ac8bb402f63712d016d78c","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.9.1.tgz","fileCount":276,"integrity":"sha512-V3oEHjFihjEmlQxFGLvpr1P4hwiKvD64vrshJe9gZbCm6GlGMDAzDjUZ5pYV+RDwdebCBrz85iY46/QX9F3Yvg==","signatures":[{"sig":"MEYCIQCRsoqwLAnF9SFXEsL8F4T2TRy/YwNJgLOxfkvUCt1HdQIhAMNTYMAHxQwB96Apx6ay7p9jRkdz4qMw6lfKuhXZSsPH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4567139},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2fd5fa12aaf1413e9917942ab4f66094ebf4f1ed","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.9.1_1785140359235_0.8205310407923514","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@hyperdreamer/pi-webui","version":"1.10.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"0ef55dc89618411cf0256a75fb474df12ab79c0c","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.0.tgz","fileCount":288,"integrity":"sha512-uGZnXWpjOYNoE83nqtJFoOlFamrC1rN5u+NL7hcXYkXz5r0NOodf17ruzODK90uXXgp+G3vjH8JUAkJgSUc7WA==","signatures":[{"sig":"MEUCIBiAB7BrOvtRWfzsaFPhBD646HuIhSyIV4xgIISTxjR2AiEAycVUwXjVdUBiYvjUoO6vF+CxnT2n2ZNnlGCmAeB3b3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4595389},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"149e864ead982cbb49a24ec4a8507d3283b7e34b","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.0_1785236543297_0.3818397331811201","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@hyperdreamer/pi-webui","version":"1.10.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"389e95fe3cbcc5ca49cc31607765facfc843c747","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.1.tgz","fileCount":288,"integrity":"sha512-3HD1G1buoLTunXFYen0JUCZtESwsbbBJT0mMarIC0ZM+xf/46PUAHB9WJwDaAFHueHo7aCi/5oWVC7nSAntrLw==","signatures":[{"sig":"MEUCIDtvjtacb/esGSiWwlUmMSIpygRSQUFyJGBXQEAzSIBXAiEAi7/wd8QzTM4BouxATb7DENX7S8yOdx2Boy2EUu8vutE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4612700},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"a6b16500f953f78fff06e808ac79f2ddde9b9236","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.1_1785264316045_0.7587875697616986","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@hyperdreamer/pi-webui","version":"1.10.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"a9c74d9944b05f2993e37d53b61c4fa4c8643d9b","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.2.tgz","fileCount":288,"integrity":"sha512-4WW35EO+zM6sb/JL7NGa+H7pdY6+6St0TzA2y2bf8CbqNq1TYM0aBT+SVQUBCGGCDadQ9+XpxLDSOj2f87kDxg==","signatures":[{"sig":"MEQCID++e1GJjToC9w/ZdMJHn2oTQ22/kc39rLeZilbzhZCEAiB7pxivj8PaX7fkJpxoDoIvNi0dum7pn6kRv6jzNXIC3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4612701},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9318a7dd2346bbf849fb5cbda404ee7a7b719df4","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.2_1785265633740_0.06553524900385299","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@hyperdreamer/pi-webui","version":"1.10.3","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.3","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"d1c0756bdf7b9b57d68ed2a0e69e3af6ab78142f","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.3.tgz","fileCount":292,"integrity":"sha512-eoJdCFQ7173p/kPgM7/iJpOIaWK7PXRfLdj2Q06fDkjCiT/3Yv/eIssFvJ9VK2swH2+TF51C760lsFo3KeJ2mQ==","signatures":[{"sig":"MEQCIC27dIExucfRQjqsUyy0O/Kt8bfMxnsRUQysgzf+/elTAiB7Ya7iZoJcL4XZrFNV/1Ey6+3EWKNbLq9wNo0h6m7b9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4643491},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9ceb65c249e1384a0b4011bb9bacd076ed9024a5","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.3_1785457455758_0.06072425021258443","host":"s3://npm-registry-packages-npm-production"}},"1.10.4":{"name":"@hyperdreamer/pi-webui","version":"1.10.4","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.4","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"5e6669a8b7e5cb6335b48c819882f269c33e8b87","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.4.tgz","fileCount":292,"integrity":"sha512-jduC3kwoZVlyMZ4vayGTMKUR1YAhThfVNdMsKgeX/SHY0LjVD8JxubkkzHcHnWK3nKHFNJUW/ei8b94J03Pfcg==","signatures":[{"sig":"MEUCIQCIWsAG0fUEDoaTxmNVVlUQQ0CkgY4gWOEdYYLnrj7hzQIgH2NeWokir6z69vTjjSMuzKBF25/hbdvT9sWKGNLm/iQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4644372},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"782a31788ae99b8f4a12b870b4a91ee124583935","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.4_1785493153546_0.31894470534218944","host":"s3://npm-registry-packages-npm-production"}},"1.10.5":{"name":"@hyperdreamer/pi-webui","version":"1.10.5","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.5","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"fa12046fa7f33177c7eb16b74525e1181cff2c07","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.5.tgz","fileCount":292,"integrity":"sha512-bUAYbuqT7FfLuLpx5IN0VnCLSCmFxXo6f95bpkdfMLCIUf+6Fy6K9n1wxQftwUN3lImrqPnBgODzQg8hm2oE8A==","signatures":[{"sig":"MEYCIQCwefaZDIPE4U/aVGwaoEQZvbQkxFhz9FELus25ctHdOwIhAIRWNNp8osvh/xidrP1OO5KNXe/O0TYDfq9LVQTsjlQp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4644358},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e92e401c75ad9a44f9596e35650574741dcb2cb9","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.5_1785500082087_0.4689608283551685","host":"s3://npm-registry-packages-npm-production"}},"1.10.6":{"name":"@hyperdreamer/pi-webui","version":"1.10.6","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.6","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"c830eb5731fec77e919f4383a22321dce4a4459d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.6.tgz","fileCount":292,"integrity":"sha512-vBxSVd3OKuDb+3AHXeYofQw6DcWQLGoReAC0udSR8DEmnatc1uJfcQXFRqbEkqEG8Nn6A+6T+9lpvW0IhE/hVw==","signatures":[{"sig":"MEYCIQDfPFIX7VoQgDuIR5EHuIAD7k4qoMNxqqfST2FrGZWRhwIhAO52MauMNqZEWlyR8HXbKK60PjC807HbN5MTtzzFbuyt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4644378},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"8eebf9f5d6087f860d25f37f65678989e4517620","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.6_1785507688336_0.7492566227753359","host":"s3://npm-registry-packages-npm-production"}},"1.10.7":{"name":"@hyperdreamer/pi-webui","version":"1.10.7","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.10.7","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"f322e57943bb842352d922585b9c0e145fd6e63b","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.10.7.tgz","fileCount":294,"integrity":"sha512-FSgYvmnO1WFQeHdvEdi1ZDwDS1g/TQVHcxNiz/3D4374XrrkNbvVQjQvbiksbnCeWHjfaZMSNLZ9hqZXnbCeuA==","signatures":[{"sig":"MEYCIQCD27ZyGBj60jwNR9MDyhN2SDnoBpsjBoZ83irEUd4bMQIhALneflb9JM+w9neJ3mRVDYJc63QUlK3/nwEspPw3M9Bh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.10.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4669381},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3de93abe2e84306ff775d5d68cc793047a9c48c5","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.10.7_1785540854373_0.1276761627384062","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.1":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"4da46e766742412c3df160d4fe9c35f5a7f4de7d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.1.tgz","fileCount":298,"integrity":"sha512-eB7xPZ1BoXTtzpsfGChx+YAvaRQ5a+s8VgFIyvl0S1M9YpWIYf2peqRUGQSTNuRvghPO/hww/TN5S8MfC1eDsA==","signatures":[{"sig":"MEYCIQDUxvOPIj7+OrY0Bo5nzgn13Rv+9kIjIB3zXDYEU5cTwQIhAMQn5kB4OybmUvfjOzu/nJhmcn3lI3lF9g1xusOrxvmz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4725498},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"00af7ccfc6440f7cc06cb85ed4061ef15f17bd29","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.1_1785558330995_0.6152805216094093","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.2":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"a44ca98f161410c4506c3429ef6b8e2f9511d0a5","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.2.tgz","fileCount":300,"integrity":"sha512-XXIeGj2583ubUt7Q7ObJB2MT9axQVNR5G7pX6CqqgPGZ48DM36XNR2/0tBELiIUTfyQGfqaUV25MFsrz4ni16A==","signatures":[{"sig":"MEUCIQD6F2oIgjB4k9I+BeGJ2TGPtnKbQkHxX/e4KX3frmDvowIgdB4n1noO6OTfYQ20aBWgE4KjMDStBXUnZwUkrve7AVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4743050},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"97dd1ca18574ee068aa01353affb48d276ee146d","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.2_1785579003248_0.9108711746928799","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.3":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.3","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.3","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"01646b49df63021eb89ef5fce203312f7793e1c1","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.3.tgz","fileCount":300,"integrity":"sha512-5IM30qMLZ2OKEEBodHgWasxFoxHe7a1f0h6pY3fEd7CoqbLz5wfIipShlS9aX1LND9H9+W9z/X1CGjFulzvU7A==","signatures":[{"sig":"MEUCIQCs+MZXl/sXauQFC/Ju09oMnlWEB22jq1Vw/tFxSTAfrgIgOPyvo+m4Jgu5RduCa1z/3c5b8PgWzD5uOjqW+C0Klt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4742524},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"b1cdb1fe80ddee1ad55f49c22789baca8677cdc2","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.3_1785595349369_0.47004949457160383","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.4":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.4","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.4","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"81c62f2d6160ad7c207c03f0903f8b5ed1d7ec80","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.4.tgz","fileCount":300,"integrity":"sha512-CEGhUsC0zTWaOZSk5yZ/Pjq3vKLUflgNddWpHCtdhaU261auUr8FMOl3RUFGNlMqx6lMuipbmzM2xuUtMH4CAw==","signatures":[{"sig":"MEUCIQD2vDu3AeDDHqzlCoih2Mubtm2IDse6EZAspwBFvicr5gIgUpc4UQ/3EYG7QxPbclI48/3LXzvtbTG/33QuSypBXxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4744911},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9f7e27874db720b709cc06f789542a53f626ac87","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.4_1785628629101_0.574960323336142","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.5":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.5","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.5","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"f413bfee03abd86ebf22808c090aa913c96ecddf","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.5.tgz","fileCount":325,"integrity":"sha512-mOCd2nRmKRXjaO/xUNcHP+Sk8rywdcpSeme7tT2/G2Rh4wMb8wjncacljR933f7jMvlpSK79qGFxyN/8eJntRQ==","signatures":[{"sig":"MEUCIQCPFITkw4/al3D/wwU8tFMK6WHaIc6fhhGF2mbVAOJF/QIgbbKBiUhoJUvfcSUitmc3vNr5AwdICEVih72YUmlitLk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5050531},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"80a9ff09a9d6e2b5109085074bb866ab14b8ed61","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-agent-core":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1 <0.83","@earendil-works/pi-agent-core":">=0.82.1 <0.83","@earendil-works/pi-coding-agent":">=0.82.1 <0.83"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.5_1785666598640_0.09786818061529146","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.6":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.6","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.6","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"e12a1fe4ec37c9e10b19dbd9ce4acfd93e6f5a8a","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.6.tgz","fileCount":325,"integrity":"sha512-GxfJH5E9rWs4oC2ODsYQ02NYAvn2/SGVYODyjbGBwwMqP8T7yBCAr4J8U0Lpa2s2ch07beSqWSlneupLHQF+dA==","signatures":[{"sig":"MEYCIQD+HO6/aT/nTx2HWTF+VoBhJ0MHaA7GLeUq4PD2+k4c1AIhAKVBbz/e2E11XFAnGm/FQhaAp+A1dtqvgu5nJOedfw/v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5064338},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"41383d0647f721d53eb072faf9bb0b00bb310ac2","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.6_1785699226003_0.44710911973143985","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.7":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.7","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.7","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"119cad5dacb04822d97c7ef639f92a8ad85d9a37","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.7.tgz","fileCount":331,"integrity":"sha512-vtB6zhY0k9fQlun5RVOZWdP52lMrs7uvwnrOsrnolh1CRy1QU5aAm+mKDJzq3KVKivAn1+5wVnEflKUUMOGCZQ==","signatures":[{"sig":"MEUCIDE6hs6IHY24eW542VbuEznfpO1ut4IwuJsPyHMZWJFoAiEA3ZU+3SWb12pPMXGSqtpJvIuSQ/UA1vaRj7oxg0+tQfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5113661},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ec578c2b0b6dad29132ce4fe50352c7416bcd342","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.7_1785735575618_0.9072119171476241","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.8":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.8","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.8","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"a582fdfe28e277bb57ac5ae805b0acfd47c60dd2","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.8.tgz","fileCount":331,"integrity":"sha512-aNSL6B/VSMeOUYj4SngQtzFCYah1oxTlOroCILfSN2a6mlHptCNTGxTOh0TzEUZsQPQ/fcEvIHxIB6vCtEfP0A==","signatures":[{"sig":"MEUCIGSPrhWOW4o5Tn7uf/xrEsdRKdXd3EMmfC3nIDYQi6IpAiEA7Bhk5plUweYDN2ugaF1yZ8O+F9ibTLRb1iCrb5K8pOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5113918},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"8ce99a5f8e49d0b016f10cd24deedd2183787993","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.8_1785743308046_0.4858924448981261","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.9":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.9","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.9","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"d63cc9ed67381a67a4a9dcee146e9e2d345ceecc","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.9.tgz","fileCount":331,"integrity":"sha512-EIin4/CW7wsaRIyDcCvzPpJZW3N/7STSa70XQV1N1Aba19ZAQncMSbgVvpXk6RA1fkNkMgOuiGjrUQHoSlrEjA==","signatures":[{"sig":"MEYCIQCeJbxZKhFK+jQ7L7KGLqGAvpb+cUnDRuPCnt+fuYW/cgIhALfgF/JlBKYwDAokd4q7EbUqt8znXQ8TbJftK10Ko4cd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5116114},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"78b6caea93b4dae0f239465c6347f42c1d94dca3","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.9_1785764834080_0.0419879640778269","host":"s3://npm-registry-packages-npm-production"}},"1.11.0-beta.10":{"name":"@hyperdreamer/pi-webui","version":"1.11.0-beta.10","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0-beta.10","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"652ef173ffd6c42a1fdb6b78f110a393e3b88ffc","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0-beta.10.tgz","fileCount":343,"integrity":"sha512-8Rn4E1cZJFxlRfWUGpvmcO0uorO1/JWUDJ1V2cq5nlTD05PL6Pa0CaRK2w38K1w0fiSctMvjcq83AsmIbcq7Sg==","signatures":[{"sig":"MEUCIQDvX3y6/Hca1VMA68HIUJ8DT6N9v2D1ByNC6Bxddv3OlgIgUld4GWZpzL6slCA/GH2y28PIfn5Bl+MSohnMeE3DWEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5570367},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c814da61c9af34fe9ef63b4ddd5346f5bce0989c","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"deprecated":"Beta versions are obsolete. Please upgrade to the latest stable release.","repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","readmeFilename":"README.md","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0-beta.10_1785860594040_0.4643333058606598","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@hyperdreamer/pi-webui","version":"1.11.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"0c1a821847313024d62017acae8006bc8861f08d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.0.tgz","fileCount":349,"integrity":"sha512-Vb75ZdmjC8S41xTTm7uqRrDIqSPPZgHs8FSprCPGI1Qy4wjgA5ph73MDMnC8JHf2fNuaY6a4draBmtexsdUPVw==","signatures":[{"sig":"MEUCIGYslQnHgm3NPaszTvXRqUthRIZDvh0tl5AQh+RrKQH5AiEA5AoHGfxTltjQHxh4cs5K+5/kNU2r8SeQPWVp+P8AgSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5685720},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"316480ae030a2f4dc3a0b72dc58f58b83cf03eb8","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.0_1785901023429_0.9265267067612799","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@hyperdreamer/pi-webui","version":"1.11.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"428bfedc303484493cf4275120cb49c654819100","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.1.tgz","fileCount":349,"integrity":"sha512-qSbangRdTSJii6g18NRF7ejWIaI8vz6h8H3nxyrM/0JsLu1whlF4FarI8wH8Rr8lfk2Ilc5kC8r7LIiEpOKPJg==","signatures":[{"sig":"MEYCIQCWvdeFE45Qe1IA1z1fNyNiCdKtHAL1+3rbxONpqeLlGAIhAKKc440WMMEHvuJ7a05HasdHCk370G8GNdESpFCO4jvv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5686909},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"379f220eb5acc2093acf43f53d2bbacb730cfb40","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.1_1785915410491_0.8374132839515462","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@hyperdreamer/pi-webui","version":"1.11.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"c809d7851fe9ac57d0c8456f63a45ba6ba209547","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.2.tgz","fileCount":361,"integrity":"sha512-DHXqQS2cA62GDjFJGGXLoN1hQHqFYqLKvMITuth8AeSKefVrZwZ4oz3O+RuPX0tJg4hN/7/co8tlBOsBkoX5/A==","signatures":[{"sig":"MEUCICwraW2RWEb8/reU/oCy84psrjcmBByhXfvrYTYtBEjwAiEA/fwY680PJYE+CxWl1dVlm0wmk5aUqFtNzz/k7fWpk+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5748245},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"292f5f16d033f1139724d87b5ce7788a26035a83","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.2_1785969391598_0.030175340008562257","host":"s3://npm-registry-packages-npm-production"}},"1.11.3":{"name":"@hyperdreamer/pi-webui","version":"1.11.3","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.3","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"292f5e2cdbaa048c79ccb54b6393bca2011daddb","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.3.tgz","fileCount":378,"integrity":"sha512-Q0qaJe34nx2Y90VNhIS/40N2mkx3FE0sfkG+yo0moJzZMtOC0leuv9d0qWCWpGdousYgs4G4GXJZrVWOGW3ymA==","signatures":[{"sig":"MEUCIG2ICAmc0yJOirGbmop08zzmAUn5z5oqAX6tao2q4N2mAiEA8YybJW/QSPHvxohGbMi4aTqozF3LY/LQ1LcCgzGDgzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5829049},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"abafe31b183239044049f1172e80511682441024","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm test","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-agent-core":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.83.0 <0.84","@earendil-works/pi-agent-core":">=0.83.0 <0.84","@earendil-works/pi-coding-agent":">=0.83.0 <0.84"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.3_1786063903746_0.49336094220472293","host":"s3://npm-registry-packages-npm-production"}},"1.11.4":{"name":"@hyperdreamer/pi-webui","version":"1.11.4","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.4","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"1a8c84938eaaf4ce2275226c397b70a75fcb2c8d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.4.tgz","fileCount":382,"integrity":"sha512-4mRA2fguHRZrSIWWfTGy6jKyJwhoQFyhR1EKvJqatP8NnYEcZ8VzAsuCE4aKoTxgRto0JS6aw8b6t0fCDPgbsw==","signatures":[{"sig":"MEQCIDSpd1Qg6F079gjNPMkZnbuEKsdJqqO6/YSXX2+vmFv4AiB0b5zmpDqrx1fN/LcP2QerQvg7yGUHcnY4YHyuX/KLjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5857493},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"f98cd3e5211c3be26bd8ca26b22430041600dbb2","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.4_1786190000508_0.6110556652499011","host":"s3://npm-registry-packages-npm-production"}},"1.11.5":{"name":"@hyperdreamer/pi-webui","version":"1.11.5","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.5","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"bdd8a34fe6066547c48019fb08232c776e3a19b2","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.5.tgz","fileCount":382,"integrity":"sha512-3xBAb8iD7XOs7qHC4gHM45mTN1bzjO+kkI9XLZon41Wo/JMd0ndKqonpIOWvlxTd8gr/l5H9c7fLPtwS7Diu3Q==","signatures":[{"sig":"MEYCIQCiN6+XWNkDT/KF0g+mfYt6WMdah9iozDws+TzPGmyC2AIhAIqxyz1FbsU0ml6l2SEDqF98wazdZyW6FaZDK2fB9u1h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5862415},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"5ddf5e248e4fd58e39fbde5b5cbb26affe4bbd95","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.5_1786240656387_0.29995169283004697","host":"s3://npm-registry-packages-npm-production"}},"1.11.6":{"name":"@hyperdreamer/pi-webui","version":"1.11.6","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.11.6","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"83f100df67d2436e07b27b537fa1e419aeae4b33","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.11.6.tgz","fileCount":382,"integrity":"sha512-Vk0Hr6i6k9WC7EY7gvXAHb9OCz25EofNXwOGjw7fqJ8LyXKrkIXzSaO6DGYmmRjQQl/30c4ruslqZxxJRnKVIw==","signatures":[{"sig":"MEYCIQCuaVlov3UAM30tqNSdfwupakXoY4bKHtmok2PJtNkIVgIhAPEcPYZ5AqrIxJHS2GYXKRHUnPahikSmW9UdL2UDH9Qg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5862641},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"83bb1afdfd8ac3b46da98d760cb021fffa84fb70","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.11.6_1786264264351_0.9354085445585787","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@hyperdreamer/pi-webui","version":"1.12.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.12.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"8c04014e298b7b3ba5c5e75e286de35d17f7e04a","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.12.0.tgz","fileCount":382,"integrity":"sha512-Y8+KktYDTkNaY8iwHmSfWsJ4H7xao66c9CClsR3YpNhjgvTeL4PtflNdjLomXrroqLIZmYoInj1J6pCVmo5QoQ==","signatures":[{"sig":"MEYCIQDhRtdjzO+y+5hFo00IPRDODkbourYpQB5tPcsteV7XywIhAL9Sb5m2XFrstnH++QbyIi3w9bzZunme9c7xSKWwiOHO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5889286},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"b3b800e8c04213de79f48fe40eb22dba523717f2","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.12.0_1786330463815_0.31443798769355946","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@hyperdreamer/pi-webui","version":"1.12.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.12.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"61d01230192b9236a4a5bced11e1425c31d4024b","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.12.1.tgz","fileCount":382,"integrity":"sha512-S+J74VHN8kc92KglDlT3Dgf1Hy/SuGSevAzTVt4U5tbZ11SYe40RmxDZD8kIEBdKKBrvZkeAVhNGepdDuRCbGw==","signatures":[{"sig":"MEQCIGkLkPpeVLzUXg8Dn6clSt+nXM1M88k/FxRMg8DeWc/CAiA89KYRCCc26liElZzf7YIXkjxB1buFfX2LodSDv5YBUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5896881},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"202cf09068305481e6579e437059792740e1a1ec","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.12.1_1786359378393_0.4386660512796099","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"@hyperdreamer/pi-webui","version":"1.12.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.12.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"5ef193d1c433c7062c298e50a51b9324371863bd","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.12.2.tgz","fileCount":382,"integrity":"sha512-U0S1ui/SUCnPoe3MM2vVty5wBt1OrCHOFs9erwyvTuMcdmAtWAaZ2JXVVn64MSvV0Xmd6/rJZpjBNMBCC02Z2g==","signatures":[{"sig":"MEQCICbmPFm+wCd0l/BI1oEKadzS2dlEGfdFKcnPxW8x2YMXAiBqYhUoqRtARoAiNNferGsy6u4JB8XPaGRYrsMyaC384Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5897185},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"b962681f24e61ddc24232f79f60e7b657248af72","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.12.2_1786402247829_0.2523722548362821","host":"s3://npm-registry-packages-npm-production"}},"1.12.3":{"name":"@hyperdreamer/pi-webui","version":"1.12.3","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.12.3","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"56feb1fc15efbff8154d03cafd5a9a960390eebc","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.12.3.tgz","fileCount":382,"integrity":"sha512-98tivGjZo2gt3x/ooO1SsGc3DpMQqj1KBCutOwS2WzHltEg0FRmBeai9W2xHJmq+ISXmycB7iUsOtg758ydgvg==","signatures":[{"sig":"MEYCIQDjvy6tVISGur7nZ4EpnHz5xGnnR04gp8x5NkwebQRMrgIhAJgSVNFu+6iS2SgEHhIUBSDNoK+RNb1Ds1lC+PAKW9GS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.12.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5900234},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4cee37db720b08cf673a790eb787c83b9b04fab6","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.12.3_1786537854606_0.8024276497944645","host":"s3://npm-registry-packages-npm-production"}},"1.12.4":{"name":"@hyperdreamer/pi-webui","version":"1.12.4","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.12.4","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"907bb4c8f610037b5a58013ed5b58444389aec10","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.12.4.tgz","fileCount":382,"integrity":"sha512-gCDeIXSYqVZsINSoiaSw2psOpgbJvTaOt9z1NGf10HxDb2pknA7x2rBUvrPr4IhYb9A8Kti60v4h7DC29LpTxw==","signatures":[{"sig":"MEUCIQDJTofm7QzOMmBhakxJw8XZPkQVCIfcethYQwtxnIKyowIgJSmtF0UwqXGpib3dkO33eZRdOaKBJex8ZwpYu5qMfdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.12.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5904196},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4fc73875b0f1bcf2a32fde19e40497729b2b79b7","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.12.4_1786582114806_0.0970215406700301","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@hyperdreamer/pi-webui","version":"1.13.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.13.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"de9ef831a38a0575f31f1b4d47f2492fffbab314","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.13.0.tgz","fileCount":394,"integrity":"sha512-DSQVhjzTxLelxR/EdZlLw0EP7QqK7ONyOIByi+139i/PfH11aKqm6Xy34yy+W2redKcRD1v/bwjkN70LO0JC4w==","signatures":[{"sig":"MEYCIQCM6JtwLGWmK/7f1GDPLIToTsOsLn6wolmbM3t2fJ/6GwIhAPNwrFnFsw35kPYwYAAjS9sSUQRTwSH/wT0dVatJbNr8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5999665},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"a26fa0994ac249b76210342aed97caf17336addc","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.16.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.13.0_1786592491072_0.6758690617868959","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@hyperdreamer/pi-webui","version":"1.13.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.13.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"990d16220196f84b47ffd048b4086e9eaeab866d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.13.1.tgz","fileCount":394,"integrity":"sha512-LloK82Nw41p9qER8KLVhI4nHTM+eNEPcSjAz6g1sFnQaFyAiqC26k0AHqwjzEq3SsqOlxja50B17fES3KkeQTw==","signatures":[{"sig":"MEUCIQCJNjGVQJS5DV/NJYq/kNP7JoruhHr49fSQ+dwwYYRfywIgCGOd9hzNyTnmwIxre8Wi0aam5KNWBsNxbUaY7XE12x0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5999727},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ccb7395ed26780609b741c36d2002a38be803d24","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.13.1_1786617565184_0.5511304896869731","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@hyperdreamer/pi-webui","version":"1.14.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.14.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"901c6f2eaea4f6cbfdbfea536de41ff6960ea806","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.14.0.tgz","fileCount":414,"integrity":"sha512-CcFNv8de9sV3pU7AppyxQBgQFBMNWpWh5hGP4ag1BKrVN8ggK8/2As3n4uHCmIsFV5rdw3Fe/KeE2hWRDQUf3g==","signatures":[{"sig":"MEUCIQDEajg9HGuom1EKH2Jv932H/MHKI7LLltooilOMze+DogIgHenJyCDTHeNmmlCpVrKflars09gwbXPTOdfhYyGuaOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6235601},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"1d924d55caa96bb8ad627a91a5b21b3f54a5e354","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.14.0_1786755083124_0.7612649760925623","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@hyperdreamer/pi-webui","version":"1.14.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.14.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"7bd0ab3b6f8b95fe768b3259285070500cda9742","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.14.1.tgz","fileCount":414,"integrity":"sha512-Q/ac5NW3R39IT4Antl6f8O8sqzeJtRDtR3ArDLlrELyWb2GqvpunaMDFfN2QZVKyCqqwXhDjKbHR1PAPlqIR2w==","signatures":[{"sig":"MEQCIBZD8Tc7KIrn4pXaf/1tPclWeAKxJ/ZVVkWTGGn57KvJAiBUQEU2TWU8zvUru8Nv/U+bq28XH0vLvXIlbtJLXh1lGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6239230},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"07a1c6abcd2dd3f99ec4c1f8a971957c22349e5e","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.14.1_1786773676189_0.07238847496604262","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@hyperdreamer/pi-webui","version":"1.15.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.15.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"cde8af0c855beb65eb644f918ec0e291978a11da","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.15.0.tgz","fileCount":414,"integrity":"sha512-9vPL6T7ezNqwpk7xGdN3W+adVhdpKBf1zgYiAi5q2rqUw2B335xr+0dRhGrwJBZSDEFMvj0pYZuMS46MtN72Wg==","signatures":[{"sig":"MEQCIDq6OOJtEIxhf1DrerT/gegbaMO2vs6O0jiIlCj7uhXGAiAXAt8rN/KXAzrVyl7e1F64reN96eDaAe10R98HyBwTug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6292897},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"315448360a342e765278f658cfeaa298f9e1964a","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.15.0_1786840964860_0.31734811544253216","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@hyperdreamer/pi-webui","version":"1.15.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.15.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"bac7dda4ee77d7d7d3bdd23d72614885716e3616","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.15.1.tgz","fileCount":414,"integrity":"sha512-cvtPh1uKOFZTrcOKVydbZJCcSZhkSEz7D2C9UgaePxgKyUpKzAitzUmSoWc7MXMy9P+6gG/ZzZQkuWULkjabEQ==","signatures":[{"sig":"MEQCIG6luueofkb1en72C7i49xjpouk9iu5L8AAFUU26i5LhAiAL93puJGfqsLW0mPGaehQvl9aAhjQ9n6XSBxDhzkComg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6293778},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"d383fd673ea5a1920d51fdd76e64422c7c3ee1f3","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-agent-core":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.15.1_1787016112136_0.4797258749636346","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@hyperdreamer/pi-webui","version":"1.15.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.15.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"d54d8c0de4f544e3bb26791d814fc2e5825091b6","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.15.2.tgz","fileCount":414,"integrity":"sha512-ENZLmS+iRc8+8qHwS2xMO+IJTgytH9gVmBBc1efP41+MIC/IRcI3DFLiIkOyWV1YT7igemihJpjtyWtAicbVSw==","signatures":[{"sig":"MEUCIEIE9of7OI9X6lVvkh+rA75WfVaXO7DoQoX2ZykxaPjeAiEAq8dHHSGUC8ZKZRQGmJ1UGWvCQaBkIeU03JVBC30DZHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6293778},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"cb6497f04487f094bd2be06be605b1ba1a74cc34","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-agent-core":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.15.2_1787151427263_0.3155179285245524","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@hyperdreamer/pi-webui","version":"1.16.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.16.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"0518c1aec4f614fbcce5f683c8f55d97cff30838","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.16.0.tgz","fileCount":443,"integrity":"sha512-jafLabAwcVrOe389TvqH9M18vAHhU42kBasTrWAVkaVxhFzc+fJljw/nKqM9Yp3FNJ48G49R0wwnf106vH7SsA==","signatures":[{"sig":"MEUCIDgQQbSQsTAs9q6dz0+6VPH2sTDjzdsQEXHk2U3NEw0jAiEAvF73HNr9FmGGiaUsmcLORowXQIOnZ9e5JTWHpeLKyc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6583589},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e433bbfd068f797a97e301965261d7eef344c73a","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-agent-core":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.16.0_1787187762932_0.39011281724422364","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@hyperdreamer/pi-webui","version":"1.17.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.17.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"5c87fe5496ed49d6504a87157e8b62882a3930bf","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.17.0.tgz","fileCount":503,"integrity":"sha512-8sKCm0gxhYtZls5hl7qElyK9sa1CI97WBhen0HAJTXgZNppFI+sgQj4QG5iwDsYZXqd+ndgu2Zp7X+Fy3Tv3Gw==","signatures":[{"sig":"MEQCIFWOALpb5kPvE3CyE0U8GYQSkV3pspmTy1gdPtMklyprAiA5txe8/xQkRH301QsFd83uHMS7GZwiIGo5dbT6s2H6aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF2dlusrTLjA2XbpBWVp2goaSZ/2beY1V+Ik9YNcrEqeAiBRk8oJT3xRfanMzlgV3ozYAF0GjutblFWet5NNMWxawg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7957936},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ae053467a186dd47e861c79ab0db7530199f0c47","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","katex":"^0.18.4","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-agent-core":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.17.0_1787392054484_0.32164050870409255","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"@hyperdreamer/pi-webui","version":"1.18.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"f57535ae3d5a825fe2e006a390bd4d38752bddf1","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.1.tgz","fileCount":509,"integrity":"sha512-GbMd8GhJVV4zBBOVVDaor3rlTZtLupcY1s4iN/FUUKpX+YhlkIGmZDdlOOK2QhwQpXYk+bNhsV9xIirykwVpxw==","signatures":[{"sig":"MEYCIQC+BA1i+iyPwkBLj5nkrqvrnPF273EkkDt3GV454EQpZwIhAK/CQ7ZYzKmSJ6hqytWHJsfpoQpHbn8l72vHZADlhaO9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCqXnhvceAMMTYasYoHwWgtId+QYxT3ac/LQjt2YPFZLAIgFr6WIXgNklACIdSdDRGJP/cqLHOTQZKR6rQ0CiztJKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8017636},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c3cc4ed5baac5d8d059736e8cb713151664c6c56","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","katex":"^0.18.4","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-agent-core":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.1_1787464771128_0.4271011255318353","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"@hyperdreamer/pi-webui","version":"1.18.2","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.2","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"df0dbcd76de879c5cb48c7f33e086054a8c10ac1","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.2.tgz","fileCount":509,"integrity":"sha512-VcoVvNdQiCKe7V1yZZpl3HEP1ATMpBrlmyTrukzvbVLLHgOZuTImj9POmogQo1vWtnommc7YaSBF/vU/CCyzoA==","signatures":[{"sig":"MEUCIHnfIN7sAkgMlsdl1e2MuRKjp88uJPyJzPcLeijfR/lMAiEAlWCA/BeIb9vfdQvRsZoJMamPaKw7+VDQHm7VFauM894=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCmYxto/uE+Wo7Q+rok+rHnNBsRDLWmlI7yKfjx32tL9wIhAPfCaXfCmusWNt7syleoNDe7V/pz9fU0Qn5kE1jwXXdk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8017199},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9fcca053f4d6ba506cbfc4f260444b2be61bd526","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","katex":"^0.18.4","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.2","@earendil-works/pi-agent-core":"^0.84.2","@earendil-works/pi-coding-agent":"^0.84.2"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.2_1787471229602_0.05521726931105442","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"@hyperdreamer/pi-webui","version":"1.18.3","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.3","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"aee7c3e9a6289cb7d1642b1299f4e6687ec49473","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.3.tgz","fileCount":509,"integrity":"sha512-d3DrG6lE8hm9A0w7s3JmlX0wT1Y4Y5aHUXPJXR1Eo0DrzzSVPxZ9gfwlCsfkybRaaA1NTYwKZWDTHaKUp705tw==","signatures":[{"sig":"MEQCIA0FRvOXszleT+uMDwxkqAhb0vsooNkGn5G7ruMVL1RDAiAloS2QF95zEdcMSiYpm9oDopqJFVpML2ETkmTGQC/Wlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG3bH8UFdbVBCOf/PCaGZsEYJDSHIjcAQpJKZKooJ2sJAiEAkgUVHqtc81BiTEC78dX4zQDc0Nh05mkqd4lAA1KcV/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8017199},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"80593f368ba70261ebea07fea57cc52a46812a1d","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","katex":"^0.18.4","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.3","@earendil-works/pi-agent-core":"^0.84.3","@earendil-works/pi-coding-agent":"^0.84.3"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.3_1787640129530_0.06102927602931185","host":"s3://npm-registry-packages-npm-production"}},"1.18.4":{"name":"@hyperdreamer/pi-webui","version":"1.18.4","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.4","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"391a519f85eeb24793330cbb42a91b93643329b4","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.4.tgz","fileCount":474,"integrity":"sha512-srJFFAkPxpTVtrbI0bcLsTd9XdEBCajkM6RvpiOD8BUA/GbyNue2VH3sg7Mz4+PTxZhule3RiUVYyT6nXV/6ig==","signatures":[{"sig":"MEUCIGUSyBfGppLKzDIpFDG5rlmh5nPA6+TO88xjmeporEaKAiEA+QA8Bu7GTZKfxFYtKONVkAyDme7MZ6cGZLo0yYMtehA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFtIu+pp6xQW417DmohJatAHorZAiJ5cr+xm1KF7MOekAiEAuRXbuJnJR/QGtQe2XqyJUbcDGccu6vTdjofUCvf+Foo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7848543},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ff0afac92ae3e85aa71d61cfd4504f5e43590cb4","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.3","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.84.3","@earendil-works/pi-coding-agent":"^0.84.3"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.4_1787975968306_0.29065377236563816","host":"s3://npm-registry-packages-npm-production"}},"1.18.5":{"name":"@hyperdreamer/pi-webui","version":"1.18.5","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.5","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"0caf93e42a0932c0528dd45b6c567998874f9368","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.5.tgz","fileCount":474,"integrity":"sha512-iOuEH31IvJMWSde7AHdi8WtyRg21SV/TYnjpePeh4w+0YtTog+bmaIWskpsLYtAgMZ76QPeKHGdH9x9D0FhAaA==","signatures":[{"sig":"MEQCIF9h3HlQitDBaWpm6c10aYZoHLtFeUlMlDuefxuzT35DAiBPbtuNxCEZyVPWnYLM2BWNiHnwuvEpw6Nl1009KPbp9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC1MgVQ61c/ST8zJ+U2qsjkhtAhKGW8q7lVnJv8CmzuAAiAqAYbatrYYQuJSlNko0qeblKqM+ghysnFqZBsA0T4dNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7848543},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7174d81802cdf3d3fd52a5e127af24e58da3c873","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.17.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.84.4","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-ai":">=0.84.0 <0.85","@earendil-works/pi-agent-core":">=0.84.0 <0.85","@earendil-works/pi-coding-agent":">=0.84.0 <0.85"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.5_1788389858314_0.0008849368356678156","host":"s3://npm-registry-packages-npm-production"}},"1.18.6":{"name":"@hyperdreamer/pi-webui","version":"1.18.6","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.6","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"744cf37e98c71ef88aee0ffa294d12b74d899c5e","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.6.tgz","fileCount":474,"integrity":"sha512-fztTj5Y1YVO0DdxSpwqFPMa7B4NOmCVn2B0IraMgD7sNpVOsEsRtyrlgYFpAnRPPX/k/lystAZqh9VAQ6ubMNw==","signatures":[{"sig":"MEUCIQD9usDiP5sXJlaADO8li9v6xUyxg88Fl4b1YsyBENXZnwIgF1ixGJdTae/qck83Tzsnt1qcfCiRc3wD5F7MxONExUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC9MNTVQUJC/bzBoUC4QnElqIeJA5tlm/yN7/vvM+osjAIgIeOG3uEBzDyY+Tup4ylxbMh+OMRNMy/GM5VhVUyE31E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7848543},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"d7d30282eb7cb430f17c43ec015a29f2d77223d5","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.6_1788749270220_0.5823525058551131","host":"s3://npm-registry-packages-npm-production"}},"1.18.7":{"name":"@hyperdreamer/pi-webui","version":"1.18.7","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.7","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"c5665b2856602dcdf73c8a7dcbf086decf2865fb","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.7.tgz","fileCount":474,"integrity":"sha512-A2N5UshUxxt93SRQTSKOdN7I25uPw+XhO1lZd0nNvYS6AtLAC5eHJcc/a1AufaWFDjVKucOtlie+492qYcfg9Q==","signatures":[{"sig":"MEUCIAMof0L5bCC+zeYB7GTW+rmUgkQL1lRQyW02WTF86D/kAiEA9qfe6lp/+SYSLzxoZV6Gb8JpdcuizzxWbtwDT+tnUvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH0Dl8h7qAe7aLN86J2UFlpnoL3lxrv+9l7KWaA9C4yNAiEA7+/f8nYOtJj6BPE9k/O/RoShxtAW25NjtI1oehas2Yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7848505},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"69c80fad117dd1f881e803bd756d1e20a8e5dc24","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.7_1788965377918_0.19120045844176103","host":"s3://npm-registry-packages-npm-production"}},"1.18.8":{"name":"@hyperdreamer/pi-webui","version":"1.18.8","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.8","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"5c2eb65ef95da56bab25b1816aa54140429071ee","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.8.tgz","fileCount":474,"integrity":"sha512-G61mqe5yvnL7BQYCrj1O/uNk+/96Umxr/zDzaalPlOW0vLa3U0doF5showpUlTY09H700YY8HBZA6vOZyZTqZg==","signatures":[{"sig":"MEQCIHvMuFTB8/DiSVZvkM1E/hvmDXM4uqnyvurQQ9jsvkKuAiA5VTA3goxSoGlaAP6MNVTzYfeBEM4xBXaJwUS4QMG0OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1q813A0BuISHsseiG6xkmTnlSk0s3ruW6YTLcd5yZJAIhAPmvGMWOHrhUAZ4XTw5kxOvd5oEE4zpoX61bwuASZ38J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7849906},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"10e8b857f6585eadae801b8dd42313c611ef6a27","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.8_1789032447606_0.31725982727833424","host":"s3://npm-registry-packages-npm-production"}},"1.18.9":{"name":"@hyperdreamer/pi-webui","version":"1.18.9","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.18.9","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"8471e35edae5d068e4b103cff4d0b9a7a3b2ca4f","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.18.9.tgz","fileCount":474,"integrity":"sha512-4ck/DoBCZdyfiBB1a/9g55EdZaX2c3Gq+c+lySuCANxLjbWNY+R0mmrtTK13U+3045wenhW+e6Z3h+DDKuXdGQ==","signatures":[{"sig":"MEYCIQC4/5/GQhkhoEAfFdjtyq6rjCOclgw294x3L6/Ay83U0QIhAMoYhLQsm+jSRTBVseH5bGzd/ORFDdfpQWhIW+VYkDTD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGzBRVobPw1R6XxNalGknW4yMoDywELDPrhOER7f8qulAiEA0zaZH7IApha4OHfFiYCg1uMlYvryWgS2MGP9E72Fz4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.18.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7850012},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"560d578e39baa07784aa752b4472dd0606f214d0","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.18.9_1789111288725_0.7645329762507125","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@hyperdreamer/pi-webui","version":"1.19.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.19.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"71b533d8ca10f7dededf3e8a57ea72595ee1570d","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.19.0.tgz","fileCount":485,"integrity":"sha512-fbxaXWS0Q5rHtbKaA+lGD9Kj6HGIsI+2UrmGMqrAVfVcvxYMNusPaacQVTI40ilGg4jhFUH7VLcaZkMcZudMtQ==","signatures":[{"sig":"MEYCIQCbu9JSJhemL+k+jBmwO0DQOGC3ehDC+NsJs19EQlWqDQIhALF55T/TMRQZpk3X+MxvlSEiFfAR7nXIUPSo5xsfIwjG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0IbB9HQFo1OpBfb+fcNyke4rFLHdqzO6JVyZxVbHzOAIgcUVWl1bFlgPEuGpGgX1dx8mYt5yCTD4AgC4ilPWndD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7943347},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c7b7a559f0d07133a53eedd2ea7f2a8da1772cde","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.19.0_1789358088497_0.1164422174257278","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"@hyperdreamer/pi-webui","version":"1.19.1","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.19.1","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"1557fa562ffcac0804c770ab11cfa995505cec0a","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.19.1.tgz","fileCount":485,"integrity":"sha512-VcFyqfIGf9fWLU9GmvK64EbpnP0kQlwmYzaPgOtk0BvU6kXcNryPPot525KmsynMXl4+teUax13ngWALbs45PQ==","signatures":[{"sig":"MEYCIQDMqLAN4tz/jxkln87g4Vz/x8ErvzOaiESdBtx2mI3OeQIhAKuI1bw0C0+qXHCGpNWXIzS+qbkGM8BQLb0FAgiN7gsX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZqQ6vmY8f+JtswMSZzP+7zSgGez1hlDD8eYlyCFZdUQIgIPUyt05YP/+Qe/pNC2n6RQoNq+eTZ4EB39bbdRHxW/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7943643},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7a5ccfbc2d20efbba146a29b3e14cb8518a51969","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.85.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.85.0 <0.86","@earendil-works/pi-agent-core":">=0.85.0 <0.86","@earendil-works/pi-coding-agent":">=0.85.0 <0.86"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.19.1_1789446830734_0.6063703381303658","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@hyperdreamer/pi-webui","version":"1.20.0","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","_id":"@hyperdreamer/pi-webui@1.20.0","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"homepage":"https://pi-webui.dev/","bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"dist":{"shasum":"be1ae5d4cd5e6e54559e41e2ee83d1a3d9f34016","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.20.0.tgz","fileCount":485,"integrity":"sha512-IEkFXHW1IeVFxb4DZxM/qs0LyNUqefpwFrnE9c45AFZjJUjLhjroJY+SqsRnbli6svsHP6Hfl41XvBWIC0HyBg==","signatures":[{"sig":"MEUCIQCrOsBuqLV3ZcX5qWMgTvdQVygI8YezqIHLLITjixR/ngIgU1NcCaM8NaG4cmf9NWv4vLS0F2tCmdLc1AgKgY62SDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCia6gxCVczCcQTY7GnjQYO0nxNhwRHMQ8gyVCLENfDHwIhAOLt6s9Abig+yBOatm/u9e3p79oBb5fJM5T65HyjvhPz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7946341},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"13d4c52c7597160317fa7bdcc9504518f92006f0","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.87.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.87.0 <0.88","@earendil-works/pi-agent-core":">=0.87.0 <0.88","@earendil-works/pi-coding-agent":">=0.87.0 <0.88"},"_npmOperationalInternal":{"tmp":"tmp/pi-webui_1.20.0_1790318523026_0.9904740570585364","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"pi":{"image":"https://raw.githubusercontent.com/hyperdreamer/pi-webui/main/docs/assets/pi-webui-banner.png","extensions":["./extensions"]},"_id":"@hyperdreamer/pi-webui@1.21.0","bin":{"pi-webui":"dist/cli.js","pi-webui-server":"dist/server/index.js","pi-webui-sessiond":"dist/server/sessiond.js"},"bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"dist":{"shasum":"2f7d53bc2c9e7c227ac89be0a60a643c22ff9365","tarball":"https://registry.npmjs.org/@hyperdreamer/pi-webui/-/pi-webui-1.21.0.tgz","fileCount":487,"integrity":"sha512-99+QZAPTkK4Lc5sR/qVahfCqhzbtO3TPksv6LQ8WKF3yohDefCgmx5wVn3+zdslsxwvcenT4vk1xSRbqtyN+6A==","signatures":[{"sig":"MEQCIF8LuQpvkheA7A8Yc2om27HgR3n/EqqKHyg/sISkUK1+AiBdNTr37rDA2iN2ev7lYvUaXke4BONnFAeFugqN6biF4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBapTLPowfq2YtOPpS/JNgBiy+lIJzVWMxqYqPpb9IcwAiEAtUerQA1h0aVcCtxxvCJx3X7OmDejEt02xvJTvXCY8+Q="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperdreamer%2fpi-webui@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7967198},"name":"@hyperdreamer/pi-webui","type":"module","author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"engines":{"node":">=22.19.0"},"gitHead":"918efbf8d0962b32924235116ba80e1b2bfce896","license":"MIT","scripts":{"dev":"bash -c 'trap \"kill 0\" EXIT; npm run dev:sessiond & npm run dev:web & npm run dev:client & wait'","knip":"knip","lint":"eslint --no-error-on-unmatched-pattern \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-webui-plugins/**/*.ts\" \"optional-skills/**/*.mjs\" vite.config.ts vitest.config.ts","test":"vitest run --config vitest.config.ts --maxWorkers=4","build":"npm run clean && tsc -p tsconfig.build.json && npm run build:plugin-api && npm run build:plugins && vite build && chmod +x dist/cli.js dist/server/index.js dist/server/sessiond.js","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"tsx src/server/index.ts","verify":"npm run typecheck && npm run lint && npm run knip && npm run test:serial","dev:web":"bash -c 'set -e; npm run build:plugins; trap \"kill 0\" EXIT; npm run dev:plugins & tsx watch src/server/index.ts & wait'","prepack":"npm run build","prepare":"node scripts/install-git-hooks.mjs","pack:dry":"npm pack --dry-run","changeset":"changeset","test:fast":"vitest run --config vitest.config.ts --maxWorkers=4","typecheck":"tsc --noEmit","dev:client":"vite --host 0.0.0.0","dev:server":"npm run dev:web","dev:plugins":"node scripts/build-plugins.mjs --watch","test:serial":"vitest run --config vitest.config.ts --maxWorkers=1","verify:fast":"npm run typecheck && npm run lint && npm run knip && npm run test:fast","dev:sessiond":"tsx watch src/server/sessiond.ts","build:plugins":"tsc -p tsconfig.plugins.json && node scripts/build-plugins.mjs","verify:staged":"node scripts/verify-staged.mjs","prepublishOnly":"npm run verify","start:sessiond":"tsx src/server/sessiond.ts","release:version":"changeset version","build:plugin-api":"tsc -p tsconfig.plugin-api.json","changelog:status":"changeset status","typecheck:cached":"tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-webui/typecheck.tsbuildinfo","capture:screenshots":"node scripts/capture-screenshots.mjs","smoke:package-install":"node scripts/smoke-package-install.mjs"},"version":"1.21.0","_npmUser":{"name":"wenhepku","email":"wenhepku@gmail.com"},"homepage":"https://pi-webui.dev/","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"overrides":{"@xmldom/xmldom":"^0.9.12"},"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"_npmVersion":"11.19.0","description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","directories":{},"maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","lit":"^3.3.3","diff":"^9.0.0","marked":"^18.0.6","fastify":"^5.10.0","typebox":"1.3.6","node-pty":"^1.1.0","@xterm/xterm":"^6.0.0","mathjax-full":"^3.2.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.43.6","@xterm/addon-fit":"^0.11.0","@codemirror/state":"^6.7.1","@fastify/compress":"^9.0.0","@fastify/websocket":"^11.3.0","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.4","@codemirror/lang-css":"^6.3.1","@codemirror/language":"^6.12.4","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/legacy-modes":"^6.5.3","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.11.0","devDependencies":{"tsx":"^4.23.0","knip":"^6.25.0","vite":"^8.1.4","jsdom":"^27.4.0","eslint":"^10.6.0","vitest":"^4.1.10","globals":"^17.7.0","mathjax":"^3.2.2","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@changesets/cli":"^2.31.0","typescript-eslint":"^8.63.0","@earendil-works/pi-ai":"^0.87.1","vite-plugin-static-copy":"^4.1.1","@earendil-works/pi-agent-core":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.87.0 <0.88","@earendil-works/pi-agent-core":">=0.87.0 <0.88","@earendil-works/pi-coding-agent":">=0.87.0 <0.88"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-webui_1.21.0_1790527737354_0.7402726397600958"}}},"time":{"created":"2026-07-25T11:05:41.655Z","modified":"2026-09-27T16:48:57.855Z","1.3.3":"2026-07-24T08:11:47.896Z","1.6.1":"2026-07-25T11:05:42.007Z","1.7.0":"2026-07-25T14:34:50.373Z","1.8.0":"2026-07-26T02:18:42.209Z","1.8.1":"2026-07-26T03:50:32.505Z","1.9.0":"2026-07-26T18:56:20.723Z","1.9.1":"2026-07-27T08:19:19.413Z","1.202607.0":"2026-07-28T03:27:41.388Z","1.10.0":"2026-07-28T11:02:23.482Z","1.10.1":"2026-07-28T18:45:16.233Z","1.10.2":"2026-07-28T19:07:14.000Z","1.10.3":"2026-07-31T00:24:15.954Z","1.10.4":"2026-07-31T10:19:13.740Z","1.10.5":"2026-07-31T12:14:42.287Z","1.10.6":"2026-07-31T14:21:28.549Z","1.10.7":"2026-07-31T23:34:14.552Z","1.11.0-beta.1":"2026-08-01T04:25:31.170Z","1.11.0-beta.2":"2026-08-01T10:10:03.483Z","1.11.0-beta.3":"2026-08-01T14:42:29.550Z","1.11.0-beta.4":"2026-08-01T23:57:09.320Z","1.11.0-beta.5":"2026-08-02T10:29:58.855Z","1.11.0-beta.6":"2026-08-02T19:33:46.170Z","1.11.0-beta.7":"2026-08-03T05:39:35.790Z","1.11.0-beta.8":"2026-08-03T07:48:28.247Z","1.11.0-beta.9":"2026-08-03T13:47:14.264Z","1.11.0-beta.10":"2026-08-04T16:23:14.302Z","1.11.0":"2026-08-05T03:37:03.659Z","1.11.1":"2026-08-05T07:36:50.688Z","1.11.2":"2026-08-05T22:36:31.801Z","1.11.3":"2026-08-07T00:51:43.942Z","1.11.4":"2026-08-08T11:53:20.755Z","1.11.5":"2026-08-09T01:57:36.585Z","1.11.6":"2026-08-09T08:31:04.513Z","1.12.0":"2026-08-10T02:54:24.020Z","1.12.1":"2026-08-10T10:56:18.563Z","1.12.2":"2026-08-10T22:50:48.029Z","1.12.3":"2026-08-12T12:30:54.773Z","1.12.4":"2026-08-13T00:48:34.996Z","1.13.0":"2026-08-13T03:41:31.246Z","1.13.1":"2026-08-13T10:39:25.425Z","1.14.0":"2026-08-15T00:51:23.403Z","1.14.1":"2026-08-15T06:01:16.404Z","1.15.0":"2026-08-16T00:42:45.079Z","1.15.1":"2026-08-18T01:21:52.387Z","1.15.2":"2026-08-19T14:57:07.507Z","1.16.0":"2026-08-20T01:02:43.150Z","1.17.0":"2026-08-22T09:47:34.645Z","1.18.0":"2026-08-23T04:31:35.664Z","1.18.1":"2026-08-23T05:59:31.326Z","1.18.2":"2026-08-23T07:47:09.786Z","1.18.3":"2026-08-25T06:42:09.744Z","1.18.4":"2026-08-29T03:59:28.480Z","1.18.5":"2026-09-02T22:57:38.505Z","1.18.6":"2026-09-07T02:47:50.373Z","1.18.7":"2026-09-09T14:49:38.096Z","1.18.8":"2026-09-10T09:27:27.789Z","1.18.9":"2026-09-11T07:21:28.920Z","1.19.0":"2026-09-14T03:54:48.635Z","1.19.1":"2026-09-15T04:33:50.881Z","1.20.0":"2026-09-25T06:42:03.180Z","1.21.0":"2026-09-27T16:48:57.502Z"},"bugs":{"url":"https://github.com/hyperdreamer/pi-webui/issues"},"author":{"name":"Federico Jaramillo Martinez and HyperDreamer"},"license":"MIT","homepage":"https://pi-webui.dev/","keywords":["pi-package","pi","pi-webui","pi-webui-ui","pi-webui","pi-coding-agent","pi-coding-agent-web-ui","coding-agent","ai-coding-agent","agentic-development","developer-tools","web-ui","webui","browser-ui","remote-development","persistent-sessions"],"repository":{"url":"git+https://github.com/hyperdreamer/pi-webui.git","type":"git"},"description":"Web UI for persistent Pi Coding Agent sessions in real workspaces.","maintainers":[{"name":"wenhepku","email":"wenhepku@gmail.com"}],"readme":"# PI WEBUI\n\n[![CI](https://github.com/hyperdreamer/pi-webui/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/hyperdreamer/pi-webui/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/@hyperdreamer/pi-webui)](https://www.npmjs.com/package/@hyperdreamer/pi-webui)\n[![Node.js](https://img.shields.io/node/v/@hyperdreamer/pi-webui)](package.json)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n**PI WEBUI is a web UI for [Pi Coding Agent](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) that keeps agent sessions running in real workspaces on your machine or server.**\n\nRun agents where your code, tools, credentials, and build caches live. Supervise them from any browser.\n\n![PI WEBUI](docs/assets/pi-webui-banner.png)\n\n![PI WEBUI desktop collage showing workspace projects, live session activity, system information, and memory](docs/assets/pi-webui-desktop.png)\n\n## Why PI WEBUI?\n\nAgentic development works better when the work environment is persistent.\n\nPI WEBUI lets you:\n\n- keep Pi Coding Agent sessions alive after browser disconnects;\n- run agents inside real repositories and git worktrees;\n- supervise multiple sessions in parallel;\n- switch between laptop, phone, tablet, and desktop;\n- use a server, workstation, or remote dev box as your agent runtime;\n- navigate long conversations with the minimap and monitor live generation metrics;\n- configure per-project models and skills to match each codebase;\n- manage projects, workspaces, files, terminals, sessions, and remote machines from one web UI.\n\nYour browser is the control surface. The work stays where it can keep running.\n\n## Quick start\n\nRequirements:\n\n- Node.js 22.19.0 or newer\n- npm\n- Pi Coding Agent `>=0.87.0 <0.88`, configured for your user\n- git and the development tools your agents need\n\nInstall PI WEBUI from npm or clone from GitHub:\n\n```bash\n# npm (recommended)\nnpm install -g @hyperdreamer/pi-webui\npi-webui\n\n# or clone from GitHub\ngit clone https://github.com/hyperdreamer/pi-webui.git\ncd pi-webui\nnpm install\n./start.sh\n```\n\nThen open:\n\n```text\nhttp://localhost:8809\n```\n\n## Important: configure your model settings first\n\nBefore starting serious work, open **Settings → Model tiers** and **Settings → Utility models** for the machine where your sessions run. Treat both as core setup, not optional fine-tuning:\n\n- **Model tiers** control the model and thinking level used for session work. Configure the six-rung `economy` through `frontier` ladder so Tiered sessions can route to the models you intend to use.\n- **Utility models** are separate from session routing. They handle automatic titles, branch summaries, and context compaction, helping long-running work stay usable.\n\nSee the [configuration reference](docs/config.md) for complete details and examples.\n\n## Core model\n\nPI WEBUI organizes work like this:\n\n```text\nMachine     a local or remote PI WEBUI runtime endpoint\nProject     a folder on that machine\nWorkspace   a git worktree, or the project folder for non-git projects\nSession     a Pi Coding Agent chat running inside a workspace\n```\n\nA typical flow:\n\n1. On first run, PI WEBUI creates and opens `~/workspace`.\n2. Choose a workspace or git worktree, or add a different project.\n3. In an empty workspace, send a prompt; PI WEBUI creates its first session automatically.\n4. Let the agent work.\n5. Come back later from any browser.\n\n## Remote-first development\n\nPI WEBUI is designed for remote AI-driven development.\n\nInstead of tying agent work to your laptop session, run PI WEBUI on a machine that stays available: a server, desktop, cloud VM, home lab machine, or remote dev box.\n\nUse a private network, SSH tunnel, trusted reverse proxy, or federated PI WEBUI machine setup when accessing it remotely.\n\n## Machines and fleets\n\nPI WEBUI can register other PI WEBUI runtimes as remote machines. One browser-facing PI WEBUI instance can proxy projects, files, git state, sessions, terminals, activity, Pi package management, and selected-machine settings from trusted remote machines.\n\nWhen a remote machine is selected, Settings tabs label their target. Pi packages, PI WEBUI plugin enablement, session daemon toggles, external file access, and upload defaults target the selected machine. Gateway/server settings such as host, port, allowed hosts, registered machines/tokens, and keyboard shortcuts stay local to the gateway/browser.\n\n## Plugins\n\nPI WEBUI supports trusted browser-side PI WEBUI plugins that can add actions, workspace panels, and workspace metadata. Plugins can also carry Pi package dependencies, and workspaces can configure per-workspace Pi packages.\n\nPi packages are managed through Pi's package manager or **Settings → Pi packages**. In a federated setup, the Pi packages panel targets the selected machine and labels where installs, updates, or removals will run. Use **Settings → PI WEBUI plugins** to enable or disable discovered browser plugins on the selected machine.\n\nAfter installing, updating, or removing a Pi package, type `/reload` in each idle PI WEBUI session on that machine to refresh Pi runtime resources such as extensions, skills, prompt templates, themes, and context/system prompt files. Reload the browser page separately for newly discovered or changed PI WEBUI plugins.\n\n## Configuration\n\nGlobal config lives at:\n\n```text\n$PI_WEBUI_CONFIG\n~/.config/pi-webui/config.json\n```\n\nProject-local PI WEBUI config lives at:\n\n```text\n<project>/.pi-webui/config.json\n```\n\nCommon configuration includes host/port, path access, uploads, PI WEBUI plugin enablement, shortcuts, and session daemon options. In Settings, machine-affecting config targets the selected machine; gateway host/port/allowed-hosts, remote machine registration, tokens, and keyboard shortcuts stay local.\n\n## Extra skills\n\nPI WEBUI ships two opt-in agent skills for deterministic plan authoring and\nsubagent-driven execution. Nothing installs or activates them by default:\n\n```bash\npi-webui install-extra --dry-run   # show what would change\npi-webui install-extra             # install, after confirming\n```\n\nThey install as `writing-plans` and `subagent-driven-development`, **replacing**\nany existing skills with those names. The command explains the risk, asks for\nconfirmation, and backs up both skills and the skill lock file first. See\n[docs/optional-skills.md](https://github.com/hyperdreamer/pi-webui/blob/main/docs/optional-skills.md).\n\n## Development\n\n`start.sh` (a thin wrapper around `npm run dev`) starts the complete development stack. To run its processes separately:\n\n```bash\nnpm run dev:sessiond\nnpm run dev:web\nnpm run dev:client\n```\n\n`npm test` and `npm run test:fast` use four workers for local feedback. Run the routine local gate with:\n\n```bash\nnpm run verify:fast\n```\n\nBefore final merge or release, run the authoritative serial gate:\n\n```bash\nnpm run verify\n```\n\n## Security model\n\nPI WEBUI assumes trusted users, trusted repositories, and trusted server paths.\n\nIt is not a sandbox, permission system, or multi-tenant platform. Do not expose it directly to the public internet without a trusted network, firewall, VPN, SSH tunnel, or authenticated reverse proxy.\n\n## Attribution\n\nPI WEBUI is forked from [jmfederico/pi-web](https://github.com/jmfederico/pi-web), created by Federico Jaramillo Martinez, with additional code adapted from [agegr/pi-web](https://github.com/agegr/pi-web).\n\n## License\n\nMIT © 2026 Federico Jaramillo Martinez, agegr, and HyperDreamer. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}