{"_id":"@2008muyu/pi-stats-insight","_rev":"4-5f5e2749861adf2793541780bb8b8785","name":"@2008muyu/pi-stats-insight","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@2008muyu/pi-stats-insight","version":"0.1.0","keywords":["pi-package","pi-extension","stats","observability","cost","cache"],"author":{"name":"2008muyu"},"license":"MIT","_id":"@2008muyu/pi-stats-insight@0.1.0","maintainers":[{"name":"2008","email":"506634967@qq.com"}],"homepage":"https://github.com/2008muyu/pi-stats-insight#readme","bugs":{"url":"https://github.com/2008muyu/pi-stats-insight/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"41ebdc22fb067bad2135582f91883b4fa78cf826","tarball":"https://registry.npmjs.org/@2008muyu/pi-stats-insight/-/pi-stats-insight-0.1.0.tgz","fileCount":6,"integrity":"sha512-mSsBX5/cYGHEABo9EP56KRjUI0+RiPHNQZLyKF3ziNmPdRMUK9LyrBhkFL0SQRhPqXXlLMVzorf2ITAVQkH7dw==","signatures":[{"sig":"MEUCIHi/iLhFWD9+NsG/oeH5WoyJmyS17MPC+YS3S27f6gIiAiEA32uawM6LR3YV3fldlq1NJlW3VVK+D/1dq3/5EExoo+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61897},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"2008","email":"506634967@qq.com"},"repository":{"url":"git+https://github.com/2008muyu/pi-stats-insight.git","type":"git"},"_npmVersion":"11.6.2","description":"Observability extension for pi: token/cost/cache/tool/context stats in footer + /stats command","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@earendil-works/pi-tui":"*","@rollup/rollup-win32-x64-msvc":"^4.61.1","@earendil-works/pi-coding-agent":"*"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@esbuild/win32-x64":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-stats-insight_0.1.0_1780587648052_0.2918324818016511","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@2008muyu/pi-stats-insight","version":"0.1.1","keywords":["pi-package","pi-extension","stats","observability","cost","cache"],"author":{"name":"2008muyu"},"license":"MIT","_id":"@2008muyu/pi-stats-insight@0.1.1","maintainers":[{"name":"2008","email":"506634967@qq.com"}],"homepage":"https://github.com/2008muyu/pi-stats-insight#readme","bugs":{"url":"https://github.com/2008muyu/pi-stats-insight/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"c22980375c72efaf9f1513b605425d6bf082c381","tarball":"https://registry.npmjs.org/@2008muyu/pi-stats-insight/-/pi-stats-insight-0.1.1.tgz","fileCount":6,"integrity":"sha512-3d8zyz4cCISDKP1tcLVG6Z7hHlsLM8zr9YlnzS4envPSIv0uJuYSalggYkBcFENvFEa4tgml703olgL5K3QWhQ==","signatures":[{"sig":"MEUCIQC3Zdc/7a5j0nAKcgESjDkIoyMbj/DZpezd12rKdgnjsAIgLmSbqZmzgBO31dC8Ap7rt+7i/bW9kAitqOmz7MCSxzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61898},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"358e36beea7fa866c657c5f0b809ae8c93cdf694","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"2008","email":"506634967@qq.com"},"repository":{"url":"git+https://github.com/2008muyu/pi-stats-insight.git","type":"git"},"_npmVersion":"11.6.2","description":"Observability extension for pi: token/cost/cache/tool/context stats in footer + /stats command","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@earendil-works/pi-tui":"*","@rollup/rollup-win32-x64-msvc":"^4.61.1","@earendil-works/pi-coding-agent":"*"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@esbuild/win32-x64":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-stats-insight_0.1.1_1780588050108_0.459894438096917","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@2008muyu/pi-stats-insight","version":"0.1.2","keywords":["pi-package","pi-extension","stats","observability","cost","cache"],"author":{"name":"2008muyu"},"license":"MIT","_id":"@2008muyu/pi-stats-insight@0.1.2","maintainers":[{"name":"2008","email":"506634967@qq.com"}],"homepage":"https://github.com/2008muyu/pi-stats-insight#readme","bugs":{"url":"https://github.com/2008muyu/pi-stats-insight/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"ce17245d8c034e8fb89ea3d14abb6acc037c0506","tarball":"https://registry.npmjs.org/@2008muyu/pi-stats-insight/-/pi-stats-insight-0.1.2.tgz","fileCount":6,"integrity":"sha512-lG0zy3HY0Zd6cKnN+KjXx9k6tE5Xo7IKzkywFHwNwvYlrofOWVwrcH5yG61WuG4EQZsV0QGHJyn3NBSl06f7Pg==","signatures":[{"sig":"MEQCIEt6on64KNB+hZjyQSv1FyR/lbRFl7k65A4zMfv2HFntAiAWknXxddfQNyatwflWv71+M5iLr1HYS3x/kAZ460Qxyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61907},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"40063a19f6291a3ce4bd759959220d789197e0ac","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"2008","email":"506634967@qq.com"},"repository":{"url":"git+https://github.com/2008muyu/pi-stats-insight.git","type":"git"},"_npmVersion":"11.6.2","description":"Observability extension for pi: token/cost/cache/tool/context stats in footer + /stats command","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@earendil-works/pi-tui":"*","@rollup/rollup-win32-x64-msvc":"^4.61.1","@earendil-works/pi-coding-agent":"*"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"optionalDependencies":{"@esbuild/win32-x64":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-stats-insight_0.1.2_1780629508815_0.5346515600648274","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@2008muyu/pi-stats-insight","version":"0.1.3","description":"Observability extension for pi: token/cost/cache/tool/context stats in footer + /stats command","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","prepublishOnly":"npm run build"},"keywords":["pi-package","pi-extension","stats","observability","cost","cache"],"author":{"name":"2008muyu"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/2008muyu/pi-stats-insight.git"},"pi":{"extensions":["./dist/index.js"]},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*"},"devDependencies":{"@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","@rollup/rollup-win32-x64-msvc":"^4.61.1","tsup":"^8.5.1","typescript":"^5.9.3"},"optionalDependencies":{"@esbuild/win32-x64":"^0.28.0"},"gitHead":"ffe28dba5d6525e9c88cf6b1c74264cdeed999bb","_id":"@2008muyu/pi-stats-insight@0.1.3","bugs":{"url":"https://github.com/2008muyu/pi-stats-insight/issues"},"homepage":"https://github.com/2008muyu/pi-stats-insight#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-u8qgDFdrSPUT2muTmCcHlm95dQmgam0jVTBgg3PRN8hx3ZSt44Qma6Ognj1MSUcZV/4fg5idcgcQPqIya+PfhQ==","shasum":"fdf160faa08b4e43f8afcd6e32a45f01104ae859","tarball":"https://registry.npmjs.org/@2008muyu/pi-stats-insight/-/pi-stats-insight-0.1.3.tgz","fileCount":6,"unpackedSize":63223,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBtfL5wLZkFdbHDlu8BaB/7YQHI0eenbaPPC4wvZJp08AiEAk0uF3qsH46GWK7oeGjMYAlXfy9s/PVfFtllOi7UKKos="}]},"_npmUser":{"name":"2008","email":"506634967@qq.com"},"directories":{},"maintainers":[{"name":"2008","email":"506634967@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-stats-insight_0.1.3_1780897228651_0.295597728266753"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-04T15:40:47.823Z","modified":"2026-06-08T05:40:28.946Z","0.1.0":"2026-06-04T15:40:48.252Z","0.1.1":"2026-06-04T15:47:30.304Z","0.1.2":"2026-06-05T03:18:28.950Z","0.1.3":"2026-06-08T05:40:28.801Z"},"bugs":{"url":"https://github.com/2008muyu/pi-stats-insight/issues"},"author":{"name":"2008muyu"},"license":"MIT","homepage":"https://github.com/2008muyu/pi-stats-insight#readme","keywords":["pi-package","pi-extension","stats","observability","cost","cache"],"repository":{"type":"git","url":"git+https://github.com/2008muyu/pi-stats-insight.git"},"description":"Observability extension for pi: token/cost/cache/tool/context stats in footer + /stats command","maintainers":[{"name":"2008","email":"506634967@qq.com"}],"readme":"# pi-stats-insight\n\nObservability extension for [pi](https://github.com/nicepkg/pi-coding-agent): cache hit rate, tool stats, and provider errors — data pi doesn't show in its built-in footer.\n\n## Footer\n\nAdds a compact status line via `ctx.ui.setStatus` (does NOT replace pi's native footer):\n\n```\n⚡ cache 80%  🔧 12 tools  ⏱ 0.8s avg  ❌ 2 err\n```\n\n| Indicator | Meaning | When shown |\n|-----------|---------|------------|\n| ⚡/🔋/⚠️ cache | Cache hit rate | ≥80% ⚡, ≥50% 🔋, <50% ⚠️. Hidden if provider doesn't support caching |\n| 🔧 tools | Tool call count this session | When >0 |\n| ⏱ avg | Average tool response time | When >0 |\n| ❌ err | Provider error count (HTTP 4xx/5xx) | When >0 |\n\n**No overlap with pi's built-in footer** — pi already shows token/context usage; we show what it doesn't.\n\n## /stats command\n\nInteractive drill-down via `ctx.ui.select`:\n\n- **Tokens & Cost** — input/output/cacheRead/cacheWrite breakdown + total cost\n- **Cache Performance** — hit rate per provider\n- **Tools** — per-tool call count, errors, avg duration, result size\n- **Context & Compaction** — context window usage + compaction history\n- **Latency & Errors** — HTTP error details\n\n`/stats reset` — clear session stats.\n\n## Cache hit rate formula\n\n```\nhitRate = cacheRead / (cacheRead + input + cacheWrite)\n```\n\nWorks across providers because pi normalizes cache metrics:\n\n| Provider | cacheRead source | cacheWrite | input |\n|----------|-----------------|------------|-------|\n| Anthropic | `cache_read_input_tokens` | `cache_creation_input_tokens` | `input_tokens` |\n| OpenAI | `cached_tokens` | 0 | `input_tokens - cached_tokens` |\n| Google | `cachedContentTokenCount` | 0 | `promptTokenCount - cached` |\n| Mistral | 0 (not exposed) | 0 | all tokens |\n| Custom/GLM | 0 | 0 | all tokens |\n\n## Persistence\n\nSession stats are saved to `~/.pi/agent/pi-stats-insight/<session-id>.jsonl` (append-only).\n\n## Install\n\n```bash\npi install npm:pi-stats-insight\n```\n\nOr add to `~/.pi/agent/settings.json` packages array:\n\n```json\n{ \"packages\": [\"npm:pi-stats-insight\"] }\n```\n\n## Config\n\nNo configuration needed. Zero-intrusion — hooks only, no pi file modifications.\n\n## License\n\nMIT","readmeFilename":"README.md"}