{"_id":"@cnife/pi-inference-speed","_rev":"2-69604bf82fa5e4914e8dfcf9a6419cf1","name":"@cnife/pi-inference-speed","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@cnife/pi-inference-speed","version":"0.1.0","keywords":["pi-package"],"author":{"name":"CNife","email":"CNife@vip.qq.com"},"license":"MIT","_id":"@cnife/pi-inference-speed@0.1.0","maintainers":[{"name":"cnife","email":"CNife@vip.qq.com"}],"homepage":"https://github.com/CNife/pi-extensions#readme","bugs":{"url":"https://github.com/CNife/pi-extensions/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"4dc085556106d33585ef482bb91ecb31727fd018","tarball":"https://registry.npmjs.org/@cnife/pi-inference-speed/-/pi-inference-speed-0.1.0.tgz","fileCount":3,"integrity":"sha512-OHzO0GuOcf+LoBoTriw3i2MQ8SgVgFEVGXcaz45sDrDab36nwuw1rI7+N4vob2c2Xo77NK/8fzibnsk0ako9yw==","signatures":[{"sig":"MEYCIQD9p18GYOvxxPP5unmIjsTwaCaJnIZLo6n/aXzmdKkHrAIhAMtXKf9UVvAyjFc7CKGKHXgs59PETUKxjupwMTvLD812","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6083},"gitHead":"bc5e38430f72763424254e54a784110d464e2170","private":false,"_npmUser":{"name":"cnife","email":"CNife@vip.qq.com"},"repository":{"url":"git+https://github.com/CNife/pi-extensions.git","type":"git"},"_npmVersion":"11.16.0","description":"Show LLM inference speed (TPS) and TTFT in pi footer","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-inference-speed_0.1.0_1782664336532_0.6143136858823994","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cnife/pi-inference-speed","version":"0.1.1","private":false,"keywords":["pi-package"],"description":"Show LLM inference speed (TPS) and TTFT in pi footer","homepage":"https://github.com/CNife/pi-extensions#readme","bugs":{"url":"https://github.com/CNife/pi-extensions/issues"},"license":"MIT","author":{"name":"CNife","email":"CNife@vip.qq.com"},"repository":{"type":"git","url":"git+https://github.com/CNife/pi-extensions.git"},"publishConfig":{"access":"public","provenance":true},"pi":{"extensions":["./extensions"]},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"gitHead":"ce9dc083a20e2687046fab23667c90b855824b3f","_id":"@cnife/pi-inference-speed@0.1.1","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-qpJiM53wfx5dVwg62ejVhs09rXvorLTKUg3a0rr3JQYBu+Gitlxcqs87arkcQ2y6xIQW/rY5x3pobi1o1CKSjg==","shasum":"ad2d94255a7471a6d185f8d4a244b1b6721baabf","tarball":"https://registry.npmjs.org/@cnife/pi-inference-speed/-/pi-inference-speed-0.1.1.tgz","fileCount":3,"unpackedSize":6100,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cnife%2fpi-inference-speed@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCIzUljcXWm4keCt4oSv8i28im71BERR2qpq/gAlhTVswIhAISpKCt+8M0sb9aDjwGN52TzT3VitP43QRXwEoTI8k8E"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb9be348-7948-4dac-a6ab-c99efb97d391"}},"directories":{},"maintainers":[{"name":"cnife","email":"CNife@vip.qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-inference-speed_0.1.1_1782718252352_0.8772697419798052"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T16:32:16.397Z","modified":"2026-06-29T07:30:52.827Z","0.1.0":"2026-06-28T16:32:16.681Z","0.1.1":"2026-06-29T07:30:52.480Z"},"bugs":{"url":"https://github.com/CNife/pi-extensions/issues"},"author":{"name":"CNife","email":"CNife@vip.qq.com"},"license":"MIT","homepage":"https://github.com/CNife/pi-extensions#readme","keywords":["pi-package"],"repository":{"type":"git","url":"git+https://github.com/CNife/pi-extensions.git"},"description":"Show LLM inference speed (TPS) and TTFT in pi footer","maintainers":[{"name":"cnife","email":"CNife@vip.qq.com"}],"readme":"# @cnife/pi-inference-speed\n\n在 pi 的 footer 状态行中显示当前 assistant message 的**推理速度（TPS）**和**首 token 延迟（TTFT）**。\n\n## 功能\n\n- **TPS**：单条 assistant message 的推理速度，`output tokens / 生成耗时`，单位 tokens/s\n- **TTFT**：首 token 延迟，请求发出到首个 token（含 thinking/toolcall）到达的耗时，单位秒\n\n### Footer 格式\n\n```text\n12.3T/s FT1.2s\n```\n\n- 无数据时显示 `--.-T/s FT -.-s`（dim 色）\n- 每条 assistant message 结束后刷新，保持到下一条\n\n### 计算口径\n\n| 指标 | 起点 | 终点 | 公式 |\n|------|------|------|------|\n| TPS | `before_provider_request`（请求发出） | `message_end`（message 结束） | `usage.output / elapsed` |\n| TTFT | `before_provider_request`（请求发出） | 首个 `_delta`（任意 token 增量） | `(firstDeltaAt - requestAt) / 1000` |\n\n- TPS 公式参考 [`tps.ts`](https://github.com/earendil-works/pi/blob/main/.pi/extensions/tps.ts) 的 `output/elapsedSeconds`，统计范围按单条 message\n- TTFT 用流式事件精确计时，首 token 含 `text_delta`/`thinking_delta`/`toolcall_delta` 任意增量\n\n### 事件处理\n\n- **切换模型 / Compaction / 树导航 / 新会话**：重置为占位显示\n- 每次 assistant message 结束时刷新 TPS/TTFT\n- `stopReason` 为 `aborted`/`error` 时重置为占位\n\n## 安装\n\n```bash\npi install npm:@cnife/pi-inference-speed\n```\n\n## 使用\n\n安装后自动生效，无需额外命令。\n\n## 故障排查\n\n| 现象 | 原因 | 解决 |\n|------|------|------|\n| Footer 显示 `--.-T/s FT -.-s` | 当前会话还没有有效的 assistant message | 发送一条消息后会自动更新 |\n| TPS 数值异常大 | 极短 message（output 少、耗时极短） | 属正常现象，长 message 会稳定 |\n","readmeFilename":"README.md"}