← 返回更新日志

Pi v0.80.8

2026-07-16 · GitHub 原文
### 新功能 - **统一的模型运行时与提供商认证** — `ModelRuntime` 集中管理模型配置、提供商自有的 `/login` 流程以及动态提供商目录。详见 [Providers](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/providers.md)。 - **实时模型目录刷新** — `/model` 会在后台刷新已配置的提供商,而 `pi update --models` 可强制立即刷新。详见 [Install and Manage](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/packages.md#install-and-manage)。 - **支持 xAI 设备码 OAuth 及 Grok 4.5 Responses** — 可通过设备码登录 xAI,并使用具备低、中、高三种思考强度的 Grok 4.5。详见 [xAI](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/providers.md#xai-grokx-subscription)。 ### 破坏性更新 - 将 SDK 的 `CreateAgentSessionOptions.authStorage` 和 `modelRegistry` 选项替换为异步的 `modelRuntime` 选项。`AuthStorage` 及其存储后端已不再导出;请使用 `ModelRuntime`(或自定义的 pi-ai `CredentialStore`),或使用 `readStoredCredential()` 进行 auth.json 的单次读取。 - 移除了冗余的 `ModelRuntime.getAll()`、`find()`、`getSnapshot()` 和 `getAuthOptions()` 投影方法。请直接使用 pi-ai `Models` 的 `getModels()`、`getModel()`、`getProviders()` 和 `checkAuth()` 方法。 - 将 SDK 通过 `ModelRegistry.getApiKeyAndHeaders()` 组装请求认证的方式替换为 `ModelRuntime.getAuth()`。传入提供商 ID 将返回该提供商作用域的认证信息;传入模型 ID 还会解析内置、`models.json` 及扩展模型的请求头。 - 将面向扩展的 `ModelRegistry.refresh()` 从同步 `void` 改为 `Promise<void>`,因为 `models.json` 的加载是异步的。扩展程序在进行同步的注册表读取前必须先 await 该操作。 - 将标准的动态目录刷新移至异步的 `ModelRuntime.refresh()`/pi-ai `Models.refresh()`。遗留的扩展 OAuth `modifyModels` 在凭证初始化后仍作为同步兼容性投影予以支持。 ### 新增 - 新增 `ModelRuntime` 作为标准的异步 SDK 及内部模型/认证外观类,同时保留面向扩展的同步 `ModelRegistry` API。`ModelRuntime.create()` 可通过其 `credentials` 选项接受任何 pi-ai `CredentialStore`。 - 新增直接从已注册的 pi-ai 提供商发现提供商自有的 `/login` 流程的功能,包含全局认证状态及信息链接。 - 新增基于文件的动态目录(位于 `models-store.json`)、各提供商的 pi.dev 目录覆盖层,以及 Radius 网关支持,包含从旧版凭证缓存目录的离线迁移。 - 新增扩展提供商 `refreshModels(context)` 支持,用于动态发现模型,并可选提供商控制的持久化。 - 新增 `pi update --models` 命令,可在不更新 pi 或扩展的情况下强制立即刷新模型目录。 - 新增继承的 xAI 设备码 OAuth 登录及 Grok 4.5 OpenAI Responses 支持,提供低、中、高三种思考强度([#6651](https://github.com/earendil-works/pi/pull/6651) by [@Jaaneek](https://github.com/Jaaneek))。 ### 变更 - 更改 `ModelRuntime` 的实现,使其通过动态 pi-ai 提供商方法组合内置提供商、不可变的 `models.json` 配置及扩展覆盖层。 - 更改 `ModelRuntime` 以负责最终的请求组装:`getAuth(model)` 包含已配置的模型请求头,流式方法仅解析一次认证,且 `before_provider_headers` 会在分派给提供商前作为仅针对 Models 的请求头转换运行。 - 更改 `/model` 命令的行为,使其立即渲染当前模型快照,在后台刷新已配置的提供商,并使用部分结果或超时错误更新打开的选择器。 ### 修复 - 修复已配置提供商目录刷新的解析逻辑:正确解析 pi.dev 基于模型 ID 键的响应,将检查频率限制为每四小时一次,发送带版本号的 pi User-Agent,将未实现的路由视为不可用的覆盖层,并在 `/model` 中显示简洁的刷新状态。 - 修复相邻的助手思考块,使其正确渲染为单个思考区块。 - 修复继承的 OpenAI Codex 会话 ID 超过 64 字符的问题,以符合 API 限制([#6630](https://github.com/earendil-works/pi/issues/6630))。 - 修复继承的终端输出,使其一致地规范化制表符([#6697](https://github.com/earendil-works/pi/pull/6697) by [@xz-dev](https://github.com/xz-dev))。 - 修复检查 npm 包后 Windows 终端标题显示异常的问题([#6629](https://github.com/earendil-works/pi/issues/6629))。 - 修复 Bun 独立二进制文件,使其打包 OAuth 适配器以支持交互式登录。