{"_id":"@alexleekt/pi-ask-user-glimpse","_rev":"12-f6b75a067908d9fdd813b9465a6ea780","name":"@alexleekt/pi-ask-user-glimpse","dist-tags":{"latest":"0.8.0"},"versions":{"0.2.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.2.1","keywords":["pi-package","pi-extension","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.2.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-ask-user-glimpse/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"af10f049ca694ae694995d4c53c11186f3b1aa88","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.2.1.tgz","fileCount":12,"integrity":"sha512-0gUAlLiKt6RKuPupHDS0Q+vGd9EXwFXmEaNXc3spsO1u1CAvZ0nzl6hY5LA437IsXRLQGvXa64xrZ2lD/Dzvgw==","signatures":[{"sig":"MEQCIA+SWf7A9oTBYd4+y1rcpuIhDE5JCi8FpJcRaQLPKUUYAiBDNBKVQM1uJPt76GSQ3uiqe2NFObGrxbmb7++MOViegA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277263},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"430747c13024a66c649f170cdee73d5f05725b27","scripts":{"build":"npm run build:css && npm run build:webview","check":"npm pack --dry-run","prepack":"npm run build","validate":"npx tsx scripts/validate.ts","build:css":"cd webview && npx tailwindcss -i ./src/index.css -o ./src/index.generated.css --content './index.html,./src/**/*.{js,ts,jsx,tsx}'","dev:webview":"cd webview && npx vite --config ./vite.config.ts","validate:gui":"npx tsx scripts/validate.ts --gui","build:webview":"cd webview && npx vite build --config ./vite.config.ts"},"_npmUser":{"name":"alexleekt","email":"stratrix@gmail.com"},"repository":{"url":"git+https://github.com/alexleekt/pi-ask-user-glimpse.git","type":"git"},"_npmVersion":"11.13.0","description":"Pi extension that replaces ask_user with rich native WebView dialogs via glimpseui and shadcn/ui","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glimpseui":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.1","marked":"^15.0.12","postcss":"^8.4.47","react-dom":"^18.3.1","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","vite-plugin-singlefile":"^2.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.2.1_1778923576028_0.6456320462041396","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.3.0","keywords":["pi-package","pi-extension","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.3.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a6b8603dd2e442f05abed8119bfba1fcaed6d13c","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.3.0.tgz","fileCount":12,"integrity":"sha512-B8whySDXXr+c0LHndglVtvcATm+nW8LUnHaIO8QTFtUSVyggH9YU5dIreWjpv2l416pu3pG+DNuFINwdnW/3YA==","signatures":[{"sig":"MEUCIQD1Uk77Jr+pSO3xsxoiT1fiB8gR0Kdnj2gpMbOVAq5QugIgDTf0mtgSyHDIVNgHW9+bTlhIavER/4qwdPJ+t76gZQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":289206},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9ebfc1891848e37ef4478689d2d550c03f1c224f","scripts":{"build":"npm run build:css && npm run build:webview","check":"npm pack --dry-run","prepack":"npm run build","validate":"npx tsx scripts/validate.ts","build:css":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'","typecheck":"tsc --noEmit","dev:webview":"npx vite --config ./webview/vite.config.ts","validate:gui":"npx tsx scripts/validate.ts --gui","build:webview":"npx vite build --config ./webview/vite.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Pi extension that replaces ask_user with rich native WebView dialogs via glimpseui and shadcn/ui","directories":{},"_nodeVersion":"24.15.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.1","marked":"^15.0.12","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","vite-plugin-singlefile":"^2.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.3.0_1779298541564_0.772287853500716","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.3.1","keywords":["pi-package","pi-extension","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.3.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"84c96bb1ec6c44efb67b6102d1a8b20c29fafcd2","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.3.1.tgz","fileCount":12,"integrity":"sha512-73WL9tu+6zTGcYfuj6Y6IrBOu3jM9lMsf+xTBuUg+6Kglh0Rcn6hTFlngdCMujl0KaZ5Gk+hcCtGzxxUIoqXcw==","signatures":[{"sig":"MEQCIDNUAWgy1EpBjKJB9ahm5jzE5udHDF9prBC+6+se22gpAiAuQeTDxRgWvwQdLphcMPN5GmJXP1xID50k7ZF9TCsYCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3471324},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"c74c571245da8649b9d21b450e497b9b5e47ee19","scripts":{"build":"npm run build:css && npm run build:webview","check":"npm pack --dry-run","prepack":"npm run build","validate":"npx tsx scripts/validate.ts","build:css":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'","typecheck":"tsc --noEmit","dev:webview":"npx vite --config ./webview/vite.config.ts","validate:gui":"npx tsx scripts/validate.ts --gui","build:webview":"npx vite build --config ./webview/vite.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Pi extension that replaces ask_user with rich native WebView dialogs via glimpseui and shadcn/ui","directories":{},"_nodeVersion":"24.15.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.1","marked":"^15.0.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","vite-plugin-singlefile":"^2.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.3.1_1779312863294_0.39795164304538777","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.3.2","keywords":["pi-package","pi-extension","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.3.2","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"70b3ab794ba27ed8953fdd3e65f4c766eb30510a","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.3.2.tgz","fileCount":12,"integrity":"sha512-DmbbtHrGuuDPOHkWVs34m28M/OUZt+J6GURPOfwTQIa5ltfAaSDsw+sKfsCyyK3bxr8/nTLwAZRQoN18XjHUJQ==","signatures":[{"sig":"MEUCIA1PwRNFXaBpOc7BlMwfp0JqW5KrTE1RczM3WHTxvxo5AiEAz6WTIL/UncpkuPNTEL3875DnY4gKkBecLR4et+Zrmuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3473984},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f0b05c2658841c0318575b5bb18a6d722a13df03","scripts":{"build":"npm run build:css && npm run build:webview","check":"npm pack --dry-run","prepack":"npm run build","validate":"npx tsx scripts/validate.ts","build:css":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'","typecheck":"tsc --noEmit","dev:webview":"npx vite --config ./webview/vite.config.ts","validate:gui":"npx tsx scripts/validate.ts --gui","build:webview":"npx vite build --config ./webview/vite.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Pi extension that replaces ask_user with rich native WebView dialogs via glimpseui and shadcn/ui","directories":{},"_nodeVersion":"24.15.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.1","marked":"^15.0.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","vite-plugin-singlefile":"^2.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.3.2_1779315225759_0.8169582485404774","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.4.1","keywords":["pi-package","pi-extension","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.4.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"52b8da297bd62a199fe5add551f0640dfa235a86","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.4.1.tgz","fileCount":14,"integrity":"sha512-BIKr9zSi/j6H5k7b4Gu4IJK+xBQDJGIVcp2Ht0+EfflndFusYdvKZShXdMPjSPDA1d7VZg+ye8lTTnZFHfVvlA==","signatures":[{"sig":"MEUCIHjN1bbSdPAmInmj/2KqSO+9DHP83BQIqwg3YvcXN6iFAiEA7EQFkvMDwdjxJ9CCTAkaYyEircJEt0IBvCC88aXguT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3505049},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"40d30cf07a7f691c6e1bf94e61c6c47d678edd1a","scripts":{"build":"npm run build:css && npm run build:webview","check":"npm pack --dry-run","prepack":"npm run build","validate":"npx tsx scripts/validate.ts","build:css":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'","typecheck":"tsc --noEmit","dev:webview":"npx vite --config ./webview/vite.config.ts","validate:gui":"npx tsx scripts/validate.ts --gui","build:webview":"npx vite build --config ./webview/vite.config.ts","test:with-context":"npx tsx scripts/test-with-context.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Pi extension that replaces ask_user with rich native WebView dialogs via glimpseui and shadcn/ui","directories":{},"_nodeVersion":"24.15.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.1","marked":"^15.0.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","vite-plugin-singlefile":"^2.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.4.1_1779342150014_0.9711803849199407","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.5.0","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.5.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"76c7152faa9511c8ad97b07c6d88b79325d34167","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.5.0.tgz","fileCount":13,"integrity":"sha512-GvxVmiXU0ckH5C41K7322nrFxeZf010g+LF0yL+hcLQDGGr6jGD8JHlcAS9bym6iWDQ3/X3cO9yvLy8SQKi6Kw==","signatures":[{"sig":"MEYCIQDBRZXLhrnFFx2fej4+2NqeZE2BmLhIpoHs9gnuQTd5lgIhALJPKg7S+3cRcmHiBsEdnRuROGvyvdZfj0ULYkZYB8UF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3544273},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"a415a27e8207f38b4b67cc0d1cc753639b8c3700","scripts":{"test":"vitest run","build":"wireit","check":"npm pack --dry-run","prepack":"npm run build","test:e2e":"playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.5.0_1779691949698_0.2578600444369996","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.5.1","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.5.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fe6480f91f16fbb8de61802901a10d2b2cf7d775","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.5.1.tgz","fileCount":13,"integrity":"sha512-9w4LWSTP4sA1gqjaYZvbb3jVLVAzRUOImAZaZd/7DnZ4xkfSL0BWbEC31YmxoYOwp0larg0SBZCr0MF8vchVGQ==","signatures":[{"sig":"MEUCIHdxyDnRCWaVpDziVeJ5J/fWINOuaxbwUqmpBqrQlUGEAiEA8h/e2obg51g9+0DxFbHKNGpslAu082v5go3YoAEr3dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3543863},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"31d2e634af12a9494dcca66aebfde68803dd74ca","scripts":{"test":"vitest run","build":"wireit","check":"npm pack --dry-run","prepack":"npm run build","test:e2e":"playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.13.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"glimpseui":"^0.8.1","@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.5.1_1779859168909_0.6600748887343812","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.6.0","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.6.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"8ed2510eeb5d35022f90b280432e75ed804cc519","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.6.0.tgz","fileCount":22,"integrity":"sha512-dhZBQK9tBl3fwm7e33RcEOcr351A6HafxzE079X4xl3D+WRsb9UU28ncTUUSGk6Cj8gs7RFFsIcZ3IHLpGcBsQ==","signatures":[{"sig":"MEYCIQCAsC/0niSRvY3SQj4ZkORD2wA66X1hJfOF1TjRbGk33AIhAKR0UaahxVEx4atG7Ems1OUkp50aQngZpToBCDvvM9L3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3653279},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview","build:docs"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:docs":{"files":["./docs/src/**/*.ts","./docs/*.html","./docs/vite.config.ts","./docs/tsconfig.json"],"output":["./docs/dist/"],"command":"npx vite build --config ./docs/vite.config.ts"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"2638cce642301ee875f6350faa989f950d3e9edb","scripts":{"test":"vitest run","build":"wireit","check":"npm run typecheck && npm test && npm run build && npm run validate && npm run test:e2e && npm run check:pack","prepack":"npm run build","preview":"npm run build:css && npx vite --config ./webview/vite.config.ts --open dev.html","dev:docs":"npx vite --config ./docs/vite.config.ts","test:e2e":"npm run build && playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","build:docs":"wireit","check:pack":"npm pack --dry-run","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git","directory":"packages/pi-ask-user-glimpse"},"_npmVersion":"11.13.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"dompurify":"^3.4.7","glimpseui":"^0.8.1","@catppuccin/palette":"^1.8.0","@alexleekt/pi-shared":"^0.1.0","@earendil-works/pi-tui":"^0.79.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/dompurify":"^3.0.5","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.6.0_1781412098417_0.8557122463226456","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.6.1","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.6.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"88551363ef543987cdf4051858dec6e92f81bd5e","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.6.1.tgz","fileCount":21,"integrity":"sha512-6GJZmUEnYHpmsYpDvuY4K4K50iYB3NAb3duSv2nVBHOSCJTSp9KWLD9pf0Fcdi9BjjDhFP9fJIt84bUfdx7SmQ==","signatures":[{"sig":"MEUCIDPNR5lXk5qR4AwOiqRlN1u90AecvXIxfXPuy7rWHfDUAiEAw33phcqoQ5XYLaGNSwgkks98MFWwFv/ElQ3sZHdN1eg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3664246},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview","build:docs"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:docs":{"files":["./docs/src/**/*.ts","./docs/*.html","./docs/vite.config.ts","./docs/tsconfig.json"],"output":["./docs/dist/"],"command":"npx vite build --config ./docs/vite.config.ts"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"12476e41e6ee5203b7d8b3b69f1a093aaf048625","scripts":{"test":"vitest run","build":"wireit","check":"npm run typecheck && npm test && npm run build && npm run validate && npm run test:e2e && npm run check:pack","prepack":"npm run build","preview":"npm run build:css && npx vite --config ./webview/vite.config.ts --open dev.html","dev:docs":"npx vite --config ./docs/vite.config.ts","test:e2e":"npm run build && playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","build:docs":"wireit","check:pack":"npm pack --dry-run","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git","directory":"packages/pi-ask-user-glimpse"},"_npmVersion":"11.13.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"dompurify":"^3.4.7","glimpseui":"^0.8.1","@catppuccin/palette":"^1.8.0","@alexleekt/pi-shared":"^0.1.0","@earendil-works/pi-tui":"^0.79.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/dompurify":"^3.0.5","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.6.1_1781412105846_0.33171075633601244","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.7.0","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.7.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"b602ba03e7906baa0fa7fbe497ca5861586ae1b3","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.7.0.tgz","fileCount":21,"integrity":"sha512-QUVQVvvMIKpIcSK/zizzhyUI1ITg3ixCX55NUHvXw5h1SG9x07pOpumolgHg107I019noI3+9BCSrmxfDapYAQ==","signatures":[{"sig":"MEQCIEM0CTiJTpeONW5AuNpEu8AgO8K2Gi+HP7+OJV5fbdySAiBoIO1MKOLwf83Bisjwdxa5MmO/WirVeftmEUIf453slw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3662829},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview","build:docs"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:docs":{"files":["./docs/src/**/*.ts","./docs/*.html","./docs/vite.config.ts","./docs/tsconfig.json"],"output":["./docs/dist/"],"command":"npx vite build --config ./docs/vite.config.ts"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"988bac8e125b60391dcb3b6958f3cdbb5f7ebbc7","scripts":{"test":"vitest run","build":"wireit","check":"npm run typecheck && npm test && npm run build && npm run validate && npm run test:e2e && npm run check:pack","prepack":"npm run build","preview":"npm run build:css && npx vite --config ./webview/vite.config.ts --open dev.html","dev:docs":"npx vite --config ./docs/vite.config.ts","test:e2e":"npm run build && playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","build:docs":"wireit","check:pack":"npm pack --dry-run","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git","directory":"packages/pi-ask-user-glimpse"},"_npmVersion":"11.13.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"dompurify":"^3.4.7","glimpseui":"^0.8.1","@catppuccin/palette":"^1.8.0","@alexleekt/pi-shared":"^0.1.0","@earendil-works/pi-tui":"^0.79.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/dompurify":"^3.0.5","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.7.0_1781415110944_0.8479277544864792","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.7.1","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","_id":"@alexleekt/pi-ask-user-glimpse@0.7.1","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"62e39b716a837e9591140ffaede30da2645bd2a0","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.7.1.tgz","fileCount":23,"integrity":"sha512-+XduKT97EQY0SLgY7XR+sBJj+g5X+/noh9bfWhXCO00xjbOY0nFWAHdav8+GEH0vGWjZHVKbcqN7NOJWI2tHVQ==","signatures":[{"sig":"MEUCIAn+e9ETJKSuO/KClGUPMgP7GyYpVYFTYYBk/qmZMZt8AiEAmD8eoB+pzTdgGyW8ipwA7SuCGaWtSU9kOxaprE29cM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3672101},"type":"module","wireit":{"build":{"dependencies":["build:css","build:webview","build:docs"]},"build:css":{"files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"],"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'"},"build:docs":{"files":["./docs/src/**/*.ts","./docs/*.html","./docs/vite.config.ts","./docs/tsconfig.json"],"output":["./docs/dist/"],"command":"npx vite build --config ./docs/vite.config.ts"},"build:webview":{"files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"command":"npx vite build --config ./webview/vite.config.ts","dependencies":["build:css"]}},"engines":{"node":">=18.0.0"},"gitHead":"129454e2d93468bfad0738b33f5acf5eaec83179","scripts":{"test":"vitest run","build":"wireit","check":"npm run typecheck && npm test && npm run build && npm run validate && npm run test:e2e && npm run check:pack","prepack":"npm run build","preview":"npm run build:css && npx vite --config ./webview/vite.config.ts --open dev.html","dev:docs":"npx vite --config ./docs/vite.config.ts","test:e2e":"npm run build && playwright test","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","build:css":"wireit","typecheck":"tsc --noEmit","build:docs":"wireit","check:pack":"npm pack --dry-run","test:watch":"vitest","dev:webview":"npx vite --config ./webview/vite.config.ts","postinstall":"node scripts/postinstall-glimpse.mjs","test:e2e:ui":"playwright test --ui","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","build:webview":"wireit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git","directory":"packages/pi-ask-user-glimpse"},"_npmVersion":"11.17.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"dompurify":"^3.4.7","glimpseui":"^0.8.1","patch-package":"^8.0.1","@catppuccin/palette":"^1.8.0","@alexleekt/pi-shared":"^0.1.0","@earendil-works/pi-tui":"^0.80.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","jsdom":"^29.1.1","react":"^18.3.1","marked":"^15.0.12","vitest":"^4.1.7","wireit":"^0.14.12","mermaid":"^11.15.0","postcss":"^8.4.47","react-dom":"^18.3.1","playwright":"^1.60.0","typescript":"^5.6.0","tailwindcss":"^3.4.14","@types/react":"^18.3.0","autoprefixer":"^10.4.20","@playwright/test":"^1.60.0","@types/dompurify":"^3.0.5","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^4.1.7","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.3.2","vite-plugin-singlefile":"^2.0.0","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-user-glimpse_0.7.1_1787637819213_0.7909704270277782","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@alexleekt/pi-ask-user-glimpse","version":"0.8.0","description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","type":"module","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git","directory":"packages/pi-ask-user-glimpse"},"bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","publishConfig":{"access":"public"},"pi":{"extensions":["./index.ts"]},"scripts":{"build":"wireit","build:css":"wireit","build:webview":"wireit","typecheck":"tsc --noEmit","check":"npm run typecheck && npm test && npm run build && npm run validate && npm run test:e2e && npm run check:pack","prepack":"npm run build","postinstall":"node scripts/postinstall-glimpse.mjs","dev:docs":"npx vite --config ./docs/vite.config.ts","build:docs":"wireit","dev:webview":"npx vite --config ./webview/vite.config.ts","preview":"npm run build:css && npx vite --config ./webview/vite.config.ts --open dev.html","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:e2e":"npm run build && playwright test","test:e2e:ui":"playwright test --ui","validate":"test -f dist/index.html && grep -q 'ASK_USER_PAYLOAD' dist/index.html && echo \"✓ dist/index.html ready\" || echo \"✗ Run npm run build first\"","validate:gui":"echo \"validate:gui requires manual testing with pi extension load\"","check:pack":"npm pack --dry-run"},"wireit":{"build":{"dependencies":["build:css","build:webview","build:docs"]},"build:docs":{"command":"npx vite build --config ./docs/vite.config.ts","files":["./docs/src/**/*.ts","./docs/*.html","./docs/vite.config.ts","./docs/tsconfig.json"],"output":["./docs/dist/"]},"build:css":{"command":"npx tailwindcss -c ./webview/tailwind.config.js -i ./webview/src/index.css -o ./webview/src/index.generated.css --content './webview/index.html,./webview/src/**/*.{js,ts,jsx,tsx}'","files":["./webview/src/**/*.css","./webview/src/**/*.{ts,tsx,js,jsx}","./webview/tailwind.config.js","./webview/postcss.config.js","./webview/index.html"],"output":["./webview/src/index.generated.css"]},"build:webview":{"command":"npx vite build --config ./webview/vite.config.ts","files":["./webview/src/**/*.{ts,tsx}","./webview/index.html","./webview/vite.config.ts","./webview/tsconfig.json","./webview/postcss.config.js","./webview/src/index.generated.css"],"output":["./dist/index.html"],"dependencies":["build:css"]}},"dependencies":{"@alexleekt/pi-shared":"^0.1.0","@catppuccin/palette":"^1.8.0","@earendil-works/pi-tui":"^0.80.6","dompurify":"^3.4.7","glimpseui":"^0.8.1","patch-package":"^8.0.1"},"devDependencies":{"@playwright/test":"^1.60.0","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/dompurify":"^3.0.5","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@vitest/coverage-v8":"^4.1.7","autoprefixer":"^10.4.20","jsdom":"^29.1.1","marked":"^15.0.12","mermaid":"^11.15.0","playwright":"^1.60.0","postcss":"^8.4.47","react":"^18.3.1","react-dom":"^18.3.1","tailwindcss":"^3.4.14","typescript":"^5.6.0","vite":"^5.4.0","vite-plugin-singlefile":"^2.0.0","vitest":"^4.1.7","wireit":"^0.14.12"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"engines":{"node":">=18.0.0"},"gitHead":"e1728e0d8868a9b9e7270ccd8cb1863516036217","_id":"@alexleekt/pi-ask-user-glimpse@0.8.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-r5YCx0v0auwXQ2b3iXR0NTkxQpiojkLfT5hblYYSMf48Jw3eo3LIpkMEVWuhB98jmQRocrRZ1Pn04C6ubUUy3g==","shasum":"e577ca18edab6102a68aebc0ce3ce80f17aba4dd","tarball":"https://registry.npmjs.org/@alexleekt/pi-ask-user-glimpse/-/pi-ask-user-glimpse-0.8.0.tgz","fileCount":24,"unpackedSize":3678431,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-ask-user-glimpse@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJPpGwlg26TR+LW1ahLxbH7BT5mEhPSiahNoVqUQaVKwIgPsieke4P+cdpFQ3xmNUY8gr5Gdy4BeI5THs+G88eqKM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6278c9b-cfe0-47a0-810d-8208f1f9157e"}},"directories":{},"maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-ask-user-glimpse_0.8.0_1787898011428_0.8400003042662296"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-16T09:26:15.879Z","modified":"2026-08-28T06:20:11.949Z","0.2.1":"2026-05-16T09:26:16.244Z","0.3.0":"2026-05-20T17:35:41.753Z","0.3.1":"2026-05-20T21:34:23.494Z","0.3.2":"2026-05-20T22:13:45.953Z","0.4.1":"2026-05-21T05:42:30.188Z","0.5.0":"2026-05-25T06:52:29.875Z","0.5.1":"2026-05-27T05:19:29.064Z","0.6.0":"2026-06-14T04:41:38.610Z","0.6.1":"2026-06-14T04:41:46.009Z","0.7.0":"2026-06-14T05:31:51.119Z","0.7.1":"2026-08-25T06:03:39.395Z","0.8.0":"2026-08-28T06:20:11.660Z"},"bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"author":{"name":"Alex Lee","email":"alex@alexleekt.com"},"license":"MIT","homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-ask-user-glimpse#readme","keywords":["pi-package","pi-extension","pi","glimpseui","ask_user","interactive"],"repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git","directory":"packages/pi-ask-user-glimpse"},"description":"Ask better questions. Get better answers. Rich native WebView dialogs for the Pi agent.","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"readme":"# @alexleekt/pi-ask-user-glimpse\n\n[![npm](https://img.shields.io/npm/v/@alexleekt/pi-ask-user-glimpse)](https://www.npmjs.com/package/@alexleekt/pi-ask-user-glimpse)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n> Ask better questions. Get better answers.\n\nRich native WebView dialogs powered by [glimpseui](https://npmjs.com/package/glimpseui) and styled with shadcn/ui design tokens.\n\n> **Stop reading terminal walls of text.** This extension turns every `ask_user` call into a beautiful, searchable, keyboard-navigable dialog — complete with markdown context panels, inline descriptions, and dark mode. Your agent asks better questions. You answer faster.\n\n### Use Case: Scoping a New Project\n\nInstead of the agent dumping a wall of questions into the terminal, it opens a native dialog:\n\n```\n┌──────────────────────────────────────────────┐\n│  Which database should we use?                 │\n│  ─────────────────────────────────────────   │\n│  Context: We need something reliable for       │\n│  production.                                  │\n│                                              │\n│  ○ PostgreSQL  · Relational, proven            │\n│  ○ SQLite     · Zero-config, embedded          │\n│  ○ Custom...                                 │\n│                                              │\n│                     [Cancel]  [Submit]        │\n└──────────────────────────────────────────────┘\n```\n\nThe agent gets a clean selection back. You get a decision made in seconds, not minutes of scrolling.\n\n## Features\n\n- **Single-select** — searchable option list with inline descriptions, numbered option badges (① ② ③), inline markdown rendering, and search highlight\n- **Multi-select** — checkbox-style selection with quick-select all/none links, numbered badges, and inline markdown\n- **Freeform** — textarea input with live character counter and platform-aware keyboard hints. Empty submissions are allowed (useful when the agent asks an open question but you have nothing to add)\n- **Questionnaire** — cards in a vertical list for structured questions, with required-field badges, per-question character counters, numbered option badges, and inline markdown in option text\n- **Theme toggle** — dark / light / system mode switcher in the dialog header\n- **Animation levels** — none / minimal / all, controlling transition intensity across the UI\n- **Keyboard shortcuts** — every dialog type shows a keyboard hint bar in the footer with relevant shortcuts (Esc, ↑↓, 1–9, Enter, ⌘/Ctrl+Enter, etc.)\n- **Content zoom** — press ⌘/Ctrl+Plus/Minus/Zero to zoom content in/out/reset; zoom controls are also available in the palette dropdown\n- **Prominent question header** — full non-truncated question text in the header bar, with palette icon for theme, zoom, and color settings\n- **Native WebView** — renders in a real window (macOS WKWebView / Linux GTK4 / Windows WebView2)\n- **Graceful degradation** — returns clear error when no UI is available, prompting the agent to ask in free-form text\n\n## Install\n\n```bash\npi install npm:@alexleekt/pi-ask-user-glimpse\n```\n\nRequires a Pi coding agent harness with extension support (e.g. `@earendil-works/pi-coding-agent`).\n\n## Usage\n\nOnce installed, the extension automatically replaces the built-in `ask_user` tool. The LLM calls it the same way as before — you don't need to do anything different.\n\n### Single Select\n\nAsk the user to pick exactly one option:\n\n```json\n{\n  \"question\": \"Which database should we use?\",\n  \"context\": \"We need something reliable for a production workload.\",\n  \"options\": [\n    { \"title\": \"PostgreSQL\", \"description\": \"Relational, proven, great ecosystem\" },\n    { \"title\": \"SQLite\", \"description\": \"Zero-config, embedded, serverless\" }\n  ],\n  \"allowMultiple\": false,\n  \"allowFreeform\": true,\n  \"allowComment\": true\n}\n```\n\nThe dialog shows the full question in the header bar, and a two-panel layout when `context` is provided. The left panel renders context as markdown (with Mermaid diagram support) while the right panel shows the searchable option list. The panels are resizable via a drag handle on the boundary — double-click the handle to collapse the context panel. Option descriptions appear inline below each title, and matching text is highlighted when searching. The \"Custom\" button lets the user submit a freeform answer. Use ⌘+Enter (macOS) or Ctrl+Enter to submit.\n\n### Multi Select\n\nAsk the user to pick multiple options:\n\n```json\n{\n  \"question\": \"Which features should we implement first?\",\n  \"context\": \"MVP is due in 2 weeks. Pick the most impactful items.\",\n  \"options\": [\n    { \"title\": \"OAuth login\", \"description\": \"Google + GitHub sign-in\" },\n    { \"title\": \"Real-time sync\", \"description\": \"WebSocket live updates\" },\n    { \"title\": \"Email notifications\", \"description\": \"Digest + instant alerts\" }\n  ],\n  \"allowMultiple\": true,\n  \"allowFreeform\": true,\n  \"allowComment\": true\n}\n```\n\nEach option has a checkbox. \"Select all\" and \"Select none\" links appear above the list (when not searching). A \"Clear all\" link resets selections. Submit is disabled until at least one item is selected. Use ⌘+Enter (macOS) or Ctrl+Enter to submit.\n\n### HTML Context (Visualizations)\n\nWhen text and Mermaid diagrams aren't enough, render rich HTML in the context panel:\n\n```json\n{\n  \"question\": \"Which layout performs better?\",\n  \"context\": \"<div style='display:flex;gap:1rem;justify-content:center'>...</div>\",\n  \"contextFormat\": \"html\",\n  \"options\": [\n    { \"title\": \"Layout A\", \"description\": \"Dense grid with sidebar\" },\n    { \"title\": \"Layout B\", \"description\": \"Spacious single column\" }\n  ]\n}\n```\n\nThe `context` HTML renders inside a **sandboxed iframe** (`sandbox=\"allow-scripts\"`) in the left panel. It inherits the wrapper's CSS variables (`--background`, `--foreground`, `--primary`, etc.) for automatic light/dark theme consistency. The iframe auto-updates its theme class when the user toggles settings. This is ideal for throwaway bar charts, tables, decision trees, or any visualization that helps the user decide.\n\n### Readable Question Context\n\nUse the context panel to reduce decision friction, not to decorate the dialog. Prefer **markdown by default** because it is easy to skim, sanitize, and maintain. Add structure when it helps the user parse the trade-off quickly:\n\n- Use headings, bullets, and tables for most decision summaries.\n- Use Mermaid code blocks for flows, state machines, and dependency diagrams.\n- Use `contextFormat: \"html\"` when visual comparison, metrics, color-coded grouping, pros/cons, timelines, or charts make the choice easier to understand.\n- Keep the question itself short; put background detail in `context`.\n\nHTML context inherits the active theme and the user's dialog zoom setting, so custom snippets should use CSS variables such as `hsl(var(--background))`, `hsl(var(--foreground))`, and `hsl(var(--primary))` instead of fixed light/dark colors.\n\n**Security:** The iframe is isolated from the wrapper app. It cannot access `localStorage`, cookies, or the parent DOM. Only inline scripts are permitted (for animations/interactivity). The agent should not include `<script src=\"...\">` tags that load external resources — inline JS and CSS only.\n\n**Glimpse behavior:** The HTML context panel runs inside Glimpse's native WebView host (WKWebView on macOS, WebView2 on Windows). The iframe receives an opaque (\"null\") origin because Glimpse loads the page via `loadHTMLString` without a base URL. This means `window.location.origin` is `null`, and `localStorage` access throws a `SecurityError`. Theme changes are propagated via `postMessage` instead of DOM sharing.\n\n### Freeform\n\nAsk an open-ended question with no predefined options:\n\n```json\n{\n  \"question\": \"Describe the ideal user onboarding flow.\",\n  \"context\": \"We're redesigning first-time experience. Be specific about steps, copy, and timing.\",\n  \"allowFreeform\": true\n}\n```\n\nShows a full-height textarea with a live character counter and platform-aware keyboard hints (⌘+Enter on macOS, Ctrl+Enter elsewhere). Submit is always enabled — you can send an empty answer if you have nothing to add.\n\n### Questionnaire\n\nAsk multiple structured questions in one dialog:\n\n```json\n{\n  \"question\": \"Project scoping questionnaire\",\n  \"context\": \"Answer each question to help us scope accurately.\",\n  \"questions\": [\n    {\n      \"title\": \"Database\",\n      \"description\": \"Which database should we use?\",\n      \"options\": [\n        { \"title\": \"PostgreSQL\", \"description\": \"Relational, proven\" },\n        { \"title\": \"SQLite\", \"description\": \"Zero-config\" }\n      ],\n      \"allowMultiple\": false\n    },\n    {\n      \"title\": \"Cache layer\",\n      \"description\": \"Select caching strategies\",\n      \"options\": [\n        { \"title\": \"Redis\", \"description\": \"In-memory key-value\" },\n        { \"title\": \"Memcached\", \"description\": \"Simple caching\" }\n      ],\n      \"allowMultiple\": true\n    },\n    {\n      \"title\": \"Notes\",\n      \"description\": \"Any additional thoughts?\"\n    }\n  ],\n  \"allowComment\": true\n}\n```\n\nEach question is shown as a card with a progress bar at the top. Questions with `options` render as single-select (radio) or multi-select (checkbox) depending on `allowMultiple`. Questions without `options` render as a textarea with a character counter. The dialog auto-scrolls to the first unanswered question on open. When `allowSkip: false`, unanswered questions show a red \"Required\" badge. The comment button shows \"Edit comment\" when text exists. Submit is disabled until all questions have a non-empty answer, unless `allowSkip: true` is set. Use ⌘+Enter (macOS) or Ctrl+Enter to submit.\n\n### Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `question` | `string` | *(required)* | The question to ask |\n| `context` | `string` | — | Additional context shown in a left-side panel |\n| `contextFormat` | `\"markdown\" &#124; \"html\"` | `\"markdown\"` | Format of the `context` field. `markdown` renders formatted text with Mermaid diagram support. `html` renders in a sandboxed iframe — useful for throwaway charts, tables, or interactive visualizations. The iframe inherits the wrapper's CSS variables for theme consistency. |\n| `options` | `Array<string &#124; {title, description?, recommended?}>` | — | Options for flat single/multi-select mode. Set `recommended: true` to show a \"Recommended\" badge. |\n| `questions` | `Array<{title, description?, options?, allowMultiple?}>` | — | Questions for questionnaire mode. When present, `options` is ignored. Each question can have its own `options` (same shape as top-level `options`) and `allowMultiple`. Questions without `options` render as freeform textareas. |\n| `allowMultiple` | `boolean` | `false` | Allow selecting multiple options |\n| `allowFreeform` | `boolean` | `true` | Show a freeform \"Custom\" option |\n| `allowComment` | `boolean` | `false` | Collect an optional comment after selection |\n| `allowSkip` | `boolean` | `false` | Allow submitting a questionnaire without answering all questions (questionnaire mode only) |\n| `followCursor` | `boolean` | `false` | Make the 1200×900 dialog follow the terminal cursor |\n| `displayMode` | `\"overlay\" &#124; \"inline\"` | — | Legacy option; ignored (always centered dialog) |\n\n## Development\n\n```bash\ngit clone https://github.com/alexleekt/pi-extensions.git\ncd pi-extensions/packages/pi-ask-user-glimpse\nnpm install\n```\n\n### Build the webview bundle\n\n```bash\nnpm run build        # builds CSS + Vite webview → dist/index.html\n```\n\n### Dev server for webview\n\n```bash\nnpm run dev:webview  # Vite dev server on http://localhost:5173\n```\n\n### Validate\n\n```bash\nnpm run validate     # checks dist/index.html exists and contains ASK_USER_PAYLOAD\nnpm run validate:gui # reminder for manual Pi WebView validation\nnpm run check        # full release gate: typecheck, unit tests, build, validate, e2e, pack dry-run\nnpm run check:pack   # dry-run npm pack only\n```\n\n## Slash Command: `/ask`\n\nUse `/ask` when the assistant asked for input in plain text and you want to answer in a dialog:\n\n```\n/ask\n```\n\n### How it works\n\n1. Finds the last assistant message in the session\n2. Asks the Ask Last cleanup adapter to turn that request into a clean `ask_user` payload\n3. Opens the best matching dialog: freeform, single-select, multi-select, or questionnaire\n4. Falls back to a simple freeform dialog when cleanup is unavailable or invalid\n5. Sends your answer back into the conversation as a user message\n\nThe extension does **not** change the agent's asking policy. It only renders dialogs. If you want the agent to ask less often, configure that in your agent instructions or skills.\n\n### Optional cleanup command\n\nBy default, `/ask` uses the deterministic fallback. To experiment with LLM cleanup, set `PI_ASK_USER_CLEANUP_COMMAND` to a command that reads a JSON request from stdin and writes an `ask_user` payload as JSON to stdout. Invalid output is ignored and `/ask` falls back safely.\n\n## Developer Command: `/ask-debug`\n\n`/ask-debug` is hidden by default. Enable it for local QA with:\n\n```bash\nPI_ASK_USER_DEBUG=1 pi\n```\n\nThen open a debug prompt that lets you manually test each dialog type:\n\n```\n/ask-debug\n/ask-debug kitchen-sink\n```\n\nThe command supports argument completions. Type `/ask-debug kit<Tab>` to complete `kitchen-sink`. Try `/ask-debug readable-context` for a markdown + Mermaid decision prompt or `/ask-debug html-decision` for a focused HTML visualization prompt.\n\n## Editor Autocomplete\n\nThe extension layers completions on top of Pi's built-in slash / path provider via `ctx.ui.addAutocompleteProvider()` (requires `pi-coding-agent ≥ 0.79.1`).\n\n### `#<header>` — recall a recent ask_user call\n\nType `#` at a token boundary to open a fuzzy-completed dropdown of headers from the most recent `ask_user` calls. Each entry is the question's `title` (questionnaire sub-questions get one entry each), the value inserted is the full question text.\n\nExamples:\n- `#dat<Tab>` → `Which database should we use?` (from a recent single-select)\n- `#arch<Tab>` → `Preferred architecture style?` (from a recent questionnaire)\n- `#<Tab>` → newest-first list of all recent question headers\n\nThe store is **session-scoped**: cleared on `session_start`, capped at 20 entries, and reseeded from every `ask_user` tool call. There is no disk persistence.\n\n### `/ask-debug <scenario>` — debug scenario completion\n\nSee [Slash Command: `/ask-debug`](#slash-command-ask-debug) above.\n\n## Window Behavior\n\n- **Title bar** — reads \"Pi · {sessionName} · {question}\" (session name is included when set)\n- **Centered dialog** — normal stacking, not floating\n- **Size** — 1200×900 by default\n- **Context panel** — 50/50 split by default; drag the handle to resize, double-click to collapse\n- **Scrollbars** — hidden by default, appear on hover (macOS-style overlay)\n- **Cursor follow** — off by default; enable with `followCursor: true`\n- **Dark mode** — togglable via the palette dropdown: dark, light, or system (follows OS preference)\n- **Theme persistence** — theme and animation choices survive across dialogs and session restarts\n\n## Architecture\n\n```\nindex.ts              → Pi extension entrypoint (tool + command registration)\nconstants/            → STOPWORDS and other text helpers\ntool/ask-last.ts      → builds /ask Ask Last payloads with cleanup adapter + fallback\ntool/ask-user.ts      → constructs payload, injects into HTML, calls glimpseui.prompt()\ntool/response-formatter.ts → normalizes WebView response for Pi\n(no terminal fallback — fast-escape with error when UI unavailable)\nwebview/              → Vite + React + Tailwind app\n  src/components/     → SelectDialog (single + multi), Freeform, Questionnaire, QuestionCard, OptionCard, ContextPanel, ErrorBoundary, HeaderBar, DialogFooter, CancelConfirmModal, GlobalKeyboardHint, SettingsButton, ThemeSelector, RichText, MarkdownPreview\n  src/util/           → settings.tsx (theme/animation context), glimpse.ts (host bridge), platform.ts (modKey), html.ts (escapeHtml + highlightMatch), markdown.ts (renderMarkdown + DOMPurify), pi-charts.ts (window.pi micro library)\n  dist/index.html     → single-file bundle (inlined JS + CSS)\n```\n\n## Troubleshooting\n\n### \"Could not find webview bundle\"\n\nRun `npm run build` to generate `dist/index.html`. The extension cannot work without the webview bundle.\n\n### WebView does not open\n\nIf the Glimpse native host is unavailable, the extension returns an error to the agent, which will ask the question in free-form text instead. On Linux, Glimpse falls back to Chromium when its native host is missing. That fallback requires Chromium, Chrome, Brave, or Edge. It does not use Firefox.\n\nBuild the native host in the same dependency tree that Pi loads:\n\n```bash\n# From the directory containing the loaded glimpseui package\nnpm run build:linux       # Linux\nnpm run build:macos       # macOS\n```\n\nLinux requires Rust plus GTK4, WebKitGTK, and gtk4-layer-shell development packages. If you are unsure which copy Pi loads, run this from the same environment:\n\n```bash\nnode -e \"import('glimpseui').then(m => console.log(m.getNativeHostInfo()))\"\n```\n\nThe result should report `platform: 'linux'` or `platform: 'darwin'`, not `linux-chromium`.\n\nOn Linux, the package install applies the Niri window patch and rebuilds the native host when npm lifecycle scripts are enabled. Niri is detected through `NIRI_SOCKET`. If your package manager skipped lifecycle scripts, run `npm run postinstall` from the installed package directory. You can force the behavior with `GLIMPSE_LINUX_WINDOW_MODE=normal` or `GLIMPSE_LINUX_WINDOW_MODE=layer-shell`.\n\n### Dialog shows \"Missing or invalid ask_user payload\"\n\nThis means the HTML payload injection failed. Ensure `dist/index.html` contains the `/*ASK_USER_PAYLOAD*/` placeholder. Run `npm run build` to regenerate.\n\n## Documentation\n\n| Document | What it covers |\n|----------|---------------|\n| [CHANGELOG.md](./CHANGELOG.md) | What's shipped in each release |\n| [ROADMAP.md](./ROADMAP.md) | Current status, known issues, and upcoming work |\n| [CONTEXT.md](./CONTEXT.md) | Glossary of terms used across the codebase |\n| [AGENT.md](./AGENT.md) | Behavioral rules for AI agents working on this codebase |\n| [CONTRIBUTING.md](./CONTRIBUTING.md) | Developer setup, build instructions, and testing |\n\n### Interactive HTML Documentation\n\nRich HTML versions of the documentation are available in the `docs/` directory:\n\n| Document | Features |\n|----------|----------|\n| [docs/index.html](docs/index.html) | Landing page with dialog previews, feature tags, and quick links |\n| [docs/readme.html](docs/readme.html) | Full README rendered with rich styling, table of contents, and code highlighting |\n| [docs/changelog.html](docs/changelog.html) | Interactive timeline with category filters, expand/collapse, and change counts |\n| [docs/roadmap.html](docs/roadmap.html) | Interactive filters, progress bars, milestone timeline, and severity indicators |\n| [docs/glossary.html](docs/glossary.html) | Searchable terms with category filters, copy-to-clipboard, and cross-links |\n\nThese HTML files load dynamically from their markdown source files (e.g., `docs/roadmap.html` fetches `ROADMAP.md` at runtime). Edit the markdown files to update both the GitHub view and the interactive HTML view.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}