Skip to content

服务配置与请求路由 ​

本文说明公开版的配置、目录和 Gateway 链路。 Gateway 是本机的模型请求转发入口。 当前后端使用 Rust,界面使用 React。

用户选择 ​

新安装没有 API 连接。 选中服务预设只预填表单,不创建连接。 保存后,用户再为客户端选择服务和模型。 导入或登录也不自动替换当前选择。

添加配置使用一个窗口。 四个标签为 API 服务、订阅账号、我的配置和客户端管理。 不同服务保留各自未保存的草稿。 普通配置只编辑名称、URL 和 Key。 已有明确协议与模型设置继续保留。

显示名称支持中文、空格和其他 Unicode 字符。 最多 80 个字符,不能为空白或包含控制字符。 显示名称与稳定 ID 分开维护。 同名连接各自保存,改名不改变已有身份。

服务、模型与账号以用户最后一次选择为准。 目录离线或迟到结果不能撤销本地选择。 保存成功不等于真实请求已经成功。 错误信息应说明已保存内容和可继续的操作。

代码入口 ​

能力当前入口核心边界
服务预设和下载src/shared/officialProviders.ts、src/shared/clientDownloads.ts预填不保存,客户端下载不冒充自动配置
配置卡片与草稿src/renderer/features/settings/ProvidersPanel.tsx表单校验、分别保留输入和服务身份
配置持久化src-native/src/settings.rs、src-native/src/core.rs保存最新选择,保留外部修改
目录与协议src-native/src/catalog.rs、src-native/src/catalog_metadata.rs服务声明优先,未知不按名称猜测
官方模型请求src-native/src/official_chatgpt.rs、src-native/src/official_accounts.rs凭据、账号和模型地址分别处理
客户端接管src-native/src/client_wiring.rs、src-native/src/clients.rs备份负责字段,保持其他配置
HTTP 与 WebSocketsrc-native/src/core.rs、src-native/src/websocket.rs保留原请求与实际转发证据
跨服务续接src-native/src/continuation.rs、src-native/src/service_switching.rs保留上下文,不重发已有输出
Trace 存储与修复src-native/src/storage.rs、src/renderer/features/settings/TraceIndexRepairSection.tsx保留在途记录,手动检查和修复
窗口和安全退出src-native/src/main.rs、src-native/src/request_activity.rs外部冲突和活动请求分别处理

能力来源和费用规则见 模型能力维护。 续接边界见 上下文可移植性。

API 与套餐配置 ​

API 服务使用用户保存的地址、协议和密钥。 普通按量服务与 Coding Plan 使用独立预设。 套餐身份不会因修改地址而自动丢失。 Key 由用户填写,保存不会自动发送模型测试请求。

获取密钥时,打开对应服务的官方管理页。 套餐权限、额度和实际可用模型以服务商为准。 目录访问成功不能替代新任务的真实调用。

每个连接分别保留客户端模型和上下文设置。 未知模型可由用户明确输入。 需要协议转换时,通过本机 Gateway 处理。 模型名称或厂商名称不能替代明确协议证据。

订阅账号 ​

订阅账号用于官方授权,不是 API Key 表单。 当前提供 ChatGPT、Grok、Copilot、Claude 和 Cursor 入口。 各平台使用对应授权与请求适配。 具体账号是否可用,需要分别验证。

新增账号不替换用户已有服务或模型。 同类账号按用户设置的策略轮换。 保留当前会话的账号关联。 未知额度不伪装为零,也不推断套餐权限。

只有确定的鉴权、额度或型号拒绝才允许安全重试。 重试必须发生在客户端尚未收到输出之前。 流中断、工具已输出和不确定失败不得重放。

跨服务切换默认关闭。 用户需明确启用,并保存服务顺序和各服务的型号。 全部同服务账号确定耗尽后,才按既定策略跨服务。 该能力不提供文件或配置同步。

凭据由原生凭据模块保护。 不得写入网页、普通连接表单或客户端配置。 来源客户端登录按既有授权方式续期。 不同机器、账号和平台的真实验证结果分别记录。

已运行的客户端 ​

客户端可能缓存连接或模型。 修改磁盘配置不能证明旧进程已重新读取。 Gateway 只处理实际经过本机端口的请求。

已确认属于其他连接的旧模型选择,可以按规则转换。 当前目标目录中的有效型号和未知手填型号应保留。 Trace 同时记录原客户端模型与实际转发模型。

开启 Trace 后,先新建任务验证请求入口。 切换服务后,再续接同一个测试会话。 核对上下文、实际服务和 Trace 归属。 如果客户端仍缓存旧直连地址,提示用户重新打开客户端。 产品不为普通服务切换自动关闭客户端。

停止、恢复与更新 ​

停止 Trace 时,恢复本产品负责的客户端字段。 外部修改采用字段级合并,不整文件覆盖。 仍有本地依赖或配置冲突时,保留恢复证据并提示。 不能仅凭开关关闭声称已经恢复直连。

Trace 默认上限为 1 GB,并开启自动清理。 已有容量和清理选择继续保留。 手动删除与索引修复仅由用户发起。

macOS 公开版下载并校验 DMG。 最终替换由用户手动完成。 源码同步和本地回归不触发安装、更新发布或制品上传。

回归与实际验收 ​

回归入口核心检查
tools/native/provider-identity-test.mjs显示名称、稳定 ID 和同名连接
tools/native/provider-dialog-renderer-test.mjs真实配置卡片、草稿和保存
tools/native/catalog-contract-test.mjs显式服务字段与目录补全
tools/native/client-config-merge-test.mjs外部配置和负责字段的合并
tools/native/official-chatgpt-test.mjs官方模型地址、账号与隔离路由
tools/native/protocol-test.mjs转换、工具结果和流完成边界
tools/native/portability-test.mjs跨服务续接与不透明状态
tools/native/service-switching-test.mjs顺序、型号和安全切换
tools/native/gateway-clients-test.mjs实际 Pi 或 OpenCode 与本地合成上游
tools/native/native-test.mjs原生 WebView 与实际后端交互

完整工程门禁为 npm run check:quality。 公开边界使用 npm run check:public-boundary。 界面实测使用隔离原生候选与 npm run test:native:webview。 官网预览使用 npm run build:site 和 npm run test:site。

程序化回归、真实 CLI、真实上游和实际应用操作分别留证。 本地合成上游不能证明真实授权或服务商账单。 公开版不提供工具页、配置同步、对话诊断或 Excel 转换。 应用身份、数据路径、端口和公开渠道保持独立。

Released under the Apache License 2.0.