# 查询行为

`/provider-usage:print` 查询一次，用纯文本报告结果，TUI 和 RPC 模式可用，不打开面板。`/provider-usage:overlay` 在 TUI 显示浮层；`overlay close` 只关闭浮层，不发起查询。

两个命令的参数相同：不带参数时查询当前模型的 Provider；指定一个 Provider ID 时只查询它；`all` 查询所有已配置且内置支持的 Provider。`codex` 等价于 `openai-codex`。

补全读取 Pi 的运行时认证配置，不会为了生成补全项发起用量请求。已配置不等于一定可以查询：认证过期、接口不支持或非官方地址都会在执行时显示原因。

每个 Provider 的认证解析、计费账号发现和用量请求共用 15 秒超时；`all` 最多并发两个查询。结果按内置 Provider 顺序显示，包含成功报告和独立失败原因。不读取旧缓存，不自动重试，不定时查询。

模型切换、会话启动/切换、退出和后续查询会取消正在执行的查询；已取消的查询不会发布迟到结果。认证在请求前后重新校验，发现变化时提示重新执行命令，不发布先前账号的报告。

`overlay` 显示右侧临时、非抢焦点浮层。命令不等待主任务结束，浮层打开期间主任务可以继续 streaming，主编辑器保留焦点。用量结果只保存在浮层内存中，不调用 `appendEntry` 或 `sendMessage`，不新增会话条目、不改变会话分支、不进入模型上下文。`print` 通过通知返回文本，不打开终端浮层。命令不会主动触发模型回复。Pi 的 `--print`、JSON 等非交互模式不支持 `overlay`。

## 浮层操作

浮层显示查询进度和完成查询的快照时间，不启动自动刷新或动画定时器。

- `Ctrl+Alt+R`：手动刷新当前范围，重新解析认证；范围为 `all` 时重新检查已配置的 Provider。若上一轮尚未完成，会取消它，以最新查询为准。
- `Ctrl+Alt+Q`：关闭浮层，取消未完成的请求，并移除临时输入监听。
- `Ctrl+Alt+↑/↓`：滚动长结果；调整终端尺寸后重新换行和限制显示高度。

快捷键只在浮层打开且可见时生效，普通字母、Esc、Enter 继续交给当前焦点，不注册全局常驻快捷键。即使其他确认框获得焦点，用量浮层的专用组合键仍可使用；关闭用量浮层不会关闭该确认框。刷新时之前的快照可以保留展示，但会标明正在刷新；成功或失败的最新结果会替换旧结果，不作为查询缓存使用。

切换 Pi 的常规/全屏终端模式前需要先关闭浮层，这是 Pi 对活动浮层的限制。

重复执行 `overlay` 不叠加窗口：同一个浮层切换到新范围并立即重新查询；范围相同时相当于就地刷新。模型、会话切换或退出也会关闭浮层；已取消请求的迟到结果不能重新打开它。关闭后移除临时展示和键盘监听，向未完成的用量请求发送取消信号；不会留下用量刷新定时器。

## 计费账号

Fireworks 需要一个计费账号才能查询：

- 只有一个可见账号：自动查询这个账号。
- 多个可见账号：显示需要指定账号，当前版本不提供选择操作。
- 没有可见账号：显示账号发现失败。

不读取旧 `pi-usage.json` 的账号选择，不创建或修改这个文件，也不擅自选择第一个账号。`all` 遇到这种情况会继续显示其他 Provider 的结果。
