@minniexcode/codex-switch 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.AI.md +141 -110
- package/README.CN.md +215 -179
- package/README.md +224 -183
- package/dist/app/add-provider.js +16 -23
- package/dist/app/bridge.js +2 -1
- package/dist/app/edit-provider.js +30 -65
- package/dist/app/get-current-profile.js +15 -3
- package/dist/app/get-status.js +11 -8
- package/dist/app/list-config-profiles.js +3 -1
- package/dist/app/list-providers.js +10 -4
- package/dist/app/remove-provider.js +52 -19
- package/dist/app/run-doctor.js +26 -29
- package/dist/app/setup-codex.js +3 -3
- package/dist/app/show-config.js +3 -1
- package/dist/app/switch-provider.js +38 -6
- package/dist/cli/output.js +29 -19
- package/dist/commands/handlers.js +3 -2
- package/dist/commands/help.js +3 -3
- package/dist/commands/registry.js +29 -29
- package/dist/domain/config.js +293 -209
- package/dist/domain/providers.js +8 -0
- package/dist/domain/runtime-state.js +15 -15
- package/dist/domain/setup.js +3 -1
- package/dist/interaction/interactive.js +2 -2
- package/dist/runtime/codex-version.js +7 -0
- package/dist/runtime/copilot-adapter.js +326 -70
- package/dist/runtime/copilot-bridge-worker.js +27 -2
- package/dist/runtime/copilot-bridge.js +192 -10
- package/dist/runtime/copilot-cli.js +7 -0
- package/dist/runtime/copilot-installer.js +59 -1
- package/dist/runtime/copilot-sdk-loader.js +4 -1
- package/dist/storage/config-repo.js +6 -14
- package/docs/Design/codex-switch-v0.1.0-design.md +32 -152
- package/docs/Design/codex-switch-v0.1.1-design.md +22 -0
- package/docs/Design/codex-switch-v0.1.2-design.md +65 -0
- package/docs/PRD/codex-switch-prd-v0.1.0.md +65 -217
- package/docs/PRD/codex-switch-prd-v0.1.1.md +26 -0
- package/docs/PRD/codex-switch-prd-v0.1.2.md +41 -0
- package/docs/Reference/codex-config-reference.md +41 -0
- package/docs/Reference/codex-config-reference.zh-CN.md +41 -0
- package/docs/Tests/testing.md +1 -1
- package/docs/cli-usage.md +290 -223
- package/docs/codex-switch-command-design.md +2 -2
- package/docs/codex-switch-product-overview.md +18 -13
- package/docs/codex-switch-product-research.md +2 -2
- package/docs/codex-switch-technical-architecture.md +84 -1115
- package/package.json +2 -2
- package/docs/Design/codex-switch-copilot-integration-design.md +0 -517
- package/docs/Design/codex-switch-v0.0.10-design.md +0 -669
- package/docs/Design/codex-switch-v0.0.11-design.md +0 -824
- package/docs/Design/codex-switch-v0.0.12-design.md +0 -343
- package/docs/Design/codex-switch-v0.0.4-design.md +0 -874
- package/docs/Design/codex-switch-v0.0.5-design.md +0 -932
- package/docs/Design/codex-switch-v0.0.6-design.md +0 -708
- package/docs/Design/codex-switch-v0.0.7-design.md +0 -862
- package/docs/Design/codex-switch-v0.0.8-design.md +0 -132
- package/docs/Design/codex-switch-v0.0.9-design.md +0 -182
- package/docs/Design/codex-switch-v0.0.9-to-v0.0.12-roadmap.md +0 -413
- package/docs/PRD/codex-switch-prd-v0.0.10.md +0 -406
- package/docs/PRD/codex-switch-prd-v0.0.11.md +0 -577
- package/docs/PRD/codex-switch-prd-v0.0.12.md +0 -279
- package/docs/PRD/codex-switch-prd-v0.0.5-to-v0.1.0.md +0 -446
- package/docs/PRD/codex-switch-prd-v0.0.8.md +0 -62
- package/docs/PRD/codex-switch-prd-v0.0.9.md +0 -166
- package/docs/PRD/codex-switch-prd.md +0 -650
- package/docs/Tests/test-report-0.0.5.md +0 -163
- package/docs/Tests/test-report-0.0.7.md +0 -118
- package/docs/Tests/testing-bridge-v0.0.9.md +0 -367
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
# codex-switch `0.0.12` PRD
|
|
2
|
-
|
|
3
|
-
## 文档信息
|
|
4
|
-
|
|
5
|
-
- 状态:Active PRD
|
|
6
|
-
- 产品名:`codex-switch`
|
|
7
|
-
- CLI 命令名:`codexs`
|
|
8
|
-
- 当前基线版本:`0.0.11`
|
|
9
|
-
- 目标版本:`0.0.12`
|
|
10
|
-
- 文档定位:定义 `0.0.11 -> 0.0.12` 的直接需求范围
|
|
11
|
-
- 版本角色:beta / internal-test build
|
|
12
|
-
- 关联 roadmap:[`../Design/codex-switch-v0.0.9-to-v0.0.12-roadmap.md`](../Design/codex-switch-v0.0.9-to-v0.0.12-roadmap.md)
|
|
13
|
-
- 关联上一版 PRD:[`./codex-switch-prd-v0.0.11.md`](./codex-switch-prd-v0.0.11.md)
|
|
14
|
-
- 关联正式发布门槛:[`./codex-switch-prd-v0.1.0.md`](./codex-switch-prd-v0.1.0.md)
|
|
15
|
-
|
|
16
|
-
## 一句话定义
|
|
17
|
-
|
|
18
|
-
`0.0.12` 不是继续扩命令面的版本,而是把已经具备可用性的 `0.0.11` 收束为一个适合内测验证的 beta 版本:主工作流清晰、文档一致、帮助文案一致、诊断与恢复路径可解释,然后再决定是否进入 `0.1.0`。
|
|
19
|
-
|
|
20
|
-
## 版本定位
|
|
21
|
-
|
|
22
|
-
`0.0.12` 的核心任务不是“再做一个亮眼新功能”,而是回答下面这个现实问题:
|
|
23
|
-
|
|
24
|
-
- 现在这套 CLI,是否已经足够稳定,值得被当成一个正式发布产品去讲?
|
|
25
|
-
|
|
26
|
-
从当前仓库状态看,答案已经接近“是”,但还差最后一层发布一致性收口:
|
|
27
|
-
|
|
28
|
-
- 代码中的双路径模型已经成型
|
|
29
|
-
- Copilot 本地启动路径已经可用
|
|
30
|
-
- direct provider / bridge / doctor / rollback 主能力已经齐
|
|
31
|
-
- 但产品叙述、README、PRD、帮助文案、版本文件和主入口推荐路径还没有完全统一
|
|
32
|
-
|
|
33
|
-
因此,`0.0.12` 要做的是:
|
|
34
|
-
|
|
35
|
-
1. 固定正式主工作流
|
|
36
|
-
2. 弱化非主路径能力的产品权重
|
|
37
|
-
3. 清理文档与版本线漂移
|
|
38
|
-
4. 准备 `0.1.0` 的 release gate
|
|
39
|
-
|
|
40
|
-
## 本版目标
|
|
41
|
-
|
|
42
|
-
- 把 `init -> add -> switch -> status/doctor` 固定为 direct provider 的主工作流
|
|
43
|
-
- 把 `init -> login copilot -> add --copilot -> switch` 固定为 Copilot provider 的主工作流
|
|
44
|
-
- 把 `migrate` 从“Quick Start 主入口”降级为“高级 adopt 工具”
|
|
45
|
-
- 让 README、CLI help、CLI usage、产品文档、PRD、changelog 对同一套主路径使用一致表述
|
|
46
|
-
- 清理仍然残留的旧路径叙述、旧版本语义和历史命名漂移
|
|
47
|
-
- 为 `0.1.0` 建立真实有效的发布门槛文档,而不是继续复用旧内容
|
|
48
|
-
|
|
49
|
-
## In Scope
|
|
50
|
-
|
|
51
|
-
- 发布级文案硬化
|
|
52
|
-
- 帮助页、README、CLI usage 的主路径重排
|
|
53
|
-
- `init`、`login copilot`、`status`、`doctor` 的结果语义和人类可读解释强化
|
|
54
|
-
- `migrate` 的产品定位调整
|
|
55
|
-
- 版本文件、PRD、roadmap、changelog 的一致性收口
|
|
56
|
-
- 结构层清理中那些不会改变外部命令契约的尾巴
|
|
57
|
-
- 针对 release-ready 场景补齐测试与验证 checklist
|
|
58
|
-
|
|
59
|
-
## Out of Scope
|
|
60
|
-
|
|
61
|
-
- 新增新的顶级命令族
|
|
62
|
-
- 新增新的 upstream
|
|
63
|
-
- 为 `migrate` 做完整非交互产品化
|
|
64
|
-
- 引入 GUI / TUI / daemon
|
|
65
|
-
- 自动迁移旧 tool home 或旧 registry 布局
|
|
66
|
-
- 做 plugin system、marketplace、multi-upstream 平台化抽象
|
|
67
|
-
- 处理“未来也许会有”的兼容故事
|
|
68
|
-
|
|
69
|
-
## 核心产品判断
|
|
70
|
-
|
|
71
|
-
### 1. 当前已经足够“功能可用”
|
|
72
|
-
|
|
73
|
-
`0.0.11` 之后,`codex-switch` 已经不是一个只差几个命令的工具,而是一套完整的本地 provider 管理 CLI:
|
|
74
|
-
|
|
75
|
-
- tool home 与 target Codex runtime 已拆分
|
|
76
|
-
- direct provider 流程已经完整
|
|
77
|
-
- Copilot onboarding / bridge / switch 路径已经闭环
|
|
78
|
-
- backup / rollback / doctor / status 已形成基本安全带
|
|
79
|
-
|
|
80
|
-
这意味着 `0.0.12` 不需要再靠堆功能证明价值。
|
|
81
|
-
|
|
82
|
-
### 2. 当前还不够“发布可讲”
|
|
83
|
-
|
|
84
|
-
真正还没收口的是以下问题:
|
|
85
|
-
|
|
86
|
-
- 有些文档仍残留旧 `~/.codex/providers.json` 叙述
|
|
87
|
-
- `migrate` 在文档中的权重仍然偏高,容易让用户误以为它是默认主入口
|
|
88
|
-
- 历史 `v0.1.0` PRD 文件仍是旧 `0.0.6` 内容,正式发布线不可信
|
|
89
|
-
- 部分帮助与结果语义还没有完全体现 tool-home-first 模型
|
|
90
|
-
|
|
91
|
-
所以本版的产品任务是“发布叙事硬化”,不是“功能继续扩张”。
|
|
92
|
-
|
|
93
|
-
## 主工作流定义
|
|
94
|
-
|
|
95
|
-
### Direct Provider 主工作流
|
|
96
|
-
|
|
97
|
-
`0.0.12` 固定 direct provider 的主路径为:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
codexs init
|
|
101
|
-
codexs add <provider> --profile <name> --api-key <key>
|
|
102
|
-
codexs switch <provider>
|
|
103
|
-
codexs status
|
|
104
|
-
codexs doctor
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
这条路径应被视为:
|
|
108
|
-
|
|
109
|
-
- README 主推荐路径
|
|
110
|
-
- help 示例主推荐路径
|
|
111
|
-
- 最接近 `0.1.0` 正式发布入口的路径
|
|
112
|
-
|
|
113
|
-
### Copilot Provider 主工作流
|
|
114
|
-
|
|
115
|
-
`0.0.12` 固定 Copilot provider 的主路径为:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
codexs init
|
|
119
|
-
codexs login copilot
|
|
120
|
-
codexs add <provider> --copilot --profile <name>
|
|
121
|
-
codexs switch <provider>
|
|
122
|
-
codexs status
|
|
123
|
-
codexs doctor
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
说明:
|
|
127
|
-
|
|
128
|
-
- `login copilot` 仍是 upstream onboarding / auth readiness 命令
|
|
129
|
-
- `add --copilot` 仍不是安装和登录编排命令
|
|
130
|
-
- `bridge start` / `bridge stop` / `bridge status` 保留,但属于运行时运维能力,不是所有 Copilot 使用者的第一步
|
|
131
|
-
|
|
132
|
-
### `migrate` 的产品定位
|
|
133
|
-
|
|
134
|
-
`0.0.12` 对 `migrate` 的定位正式收口为:
|
|
135
|
-
|
|
136
|
-
- 高级 adopt / migration helper
|
|
137
|
-
- 面向已有 Codex runtime 状态的人工辅助命令
|
|
138
|
-
- 不是 fresh install 的 Quick Start 主入口
|
|
139
|
-
- 不是自动化脚本主入口
|
|
140
|
-
|
|
141
|
-
本版不删除 `migrate`,也不弱化其真实价值;但要停止把它放在产品首页最核心的位置。
|
|
142
|
-
|
|
143
|
-
## 文档与命令契约要求
|
|
144
|
-
|
|
145
|
-
### README / Help / CLI Usage 一致性
|
|
146
|
-
|
|
147
|
-
以下材料必须使用同一套主路径叙述:
|
|
148
|
-
|
|
149
|
-
- `README.md`
|
|
150
|
-
- `README.CN.md`
|
|
151
|
-
- `README.AI.md`
|
|
152
|
-
- `docs/cli-usage.md`
|
|
153
|
-
- CLI 顶层 help
|
|
154
|
-
- 相关 command help
|
|
155
|
-
|
|
156
|
-
一致性要求:
|
|
157
|
-
|
|
158
|
-
- direct provider 主路径优先展示 `init -> add -> switch`
|
|
159
|
-
- Copilot 路径优先展示 `init -> login copilot -> add --copilot -> switch`
|
|
160
|
-
- `migrate` 仍出现,但要带有高级 adopt / interactive helper 语义
|
|
161
|
-
- `setup` 只保留 deprecation 说明
|
|
162
|
-
|
|
163
|
-
### 双路径模型叙述冻结
|
|
164
|
-
|
|
165
|
-
本版对外叙述必须完全统一:
|
|
166
|
-
|
|
167
|
-
- tool home:
|
|
168
|
-
- `codex-switch.json`
|
|
169
|
-
- `providers.json`
|
|
170
|
-
- `backups/`
|
|
171
|
-
- `runtime/`
|
|
172
|
-
- `runtimes/`
|
|
173
|
-
- target Codex runtime:
|
|
174
|
-
- `config.toml`
|
|
175
|
-
- `auth.json`
|
|
176
|
-
|
|
177
|
-
不再允许继续保留以下旧叙述:
|
|
178
|
-
|
|
179
|
-
- `providers.json` 位于 `~/.codex`
|
|
180
|
-
- `backups/` 位于 `~/.codex`
|
|
181
|
-
- `codex-switch` 以 `codexDir` 作为自己的管理根
|
|
182
|
-
|
|
183
|
-
### 结果语义硬化
|
|
184
|
-
|
|
185
|
-
本版重点收口以下命令的人类输出和帮助语义:
|
|
186
|
-
|
|
187
|
-
- `list`
|
|
188
|
-
- 应能标记当前选中的 managed provider,但仅限当前 active provider 可唯一解析时
|
|
189
|
-
- 应显式区分 `direct provider` 与 `Copilot provider`
|
|
190
|
-
- 当当前 active profile 映射到多个 provider 时,不得伪造单一 current provider,而应按 ambiguous 状态解释
|
|
191
|
-
- `init`
|
|
192
|
-
- 必须明确它初始化的是 tool home,而不是 target `codexDir`
|
|
193
|
-
- 成功信息应围绕 tool home、tool config、registry 和下一步建议
|
|
194
|
-
- `login copilot`
|
|
195
|
-
- 必须明确区分 SDK、official login、shared auth 三层语义
|
|
196
|
-
- `status`
|
|
197
|
-
- 应明显展示当前 target `codexDir`
|
|
198
|
-
- 应明显展示 tool home 的角色
|
|
199
|
-
- 应让 direct provider / Copilot provider 的路径差异足够可读
|
|
200
|
-
- `doctor`
|
|
201
|
-
- issue 输出应继续聚焦“下一步怎么做”
|
|
202
|
-
|
|
203
|
-
## 结构与实现收口要求
|
|
204
|
-
|
|
205
|
-
`0.0.12` 可以继续做不会改变外部契约的内部清理,但前提是:
|
|
206
|
-
|
|
207
|
-
- 不改变命令名
|
|
208
|
-
- 不改变 JSON envelope 顶层 shape
|
|
209
|
-
- 不重做错误空间
|
|
210
|
-
- 不引入新的兼容层
|
|
211
|
-
|
|
212
|
-
可接受的内部收口包括:
|
|
213
|
-
|
|
214
|
-
- 删除或收拢已经无必要的历史 compatibility facade
|
|
215
|
-
- 继续削减 oversized handler 的职责泄漏
|
|
216
|
-
- 补齐稳定导出类型和关键 use case 的 JSDoc
|
|
217
|
-
- 清理目录边界与命名漂移
|
|
218
|
-
|
|
219
|
-
## 测试重点
|
|
220
|
-
|
|
221
|
-
### 1. 主工作流验证
|
|
222
|
-
|
|
223
|
-
- fresh tool home 下 direct provider 主路径可走通
|
|
224
|
-
- fresh tool home 下 Copilot 主路径可走通
|
|
225
|
-
- `switch -> status -> doctor -> rollback` 保持行为稳定
|
|
226
|
-
|
|
227
|
-
### 2. 文案与帮助验证
|
|
228
|
-
|
|
229
|
-
- 顶层 help 主示例改为 direct / Copilot 主路径
|
|
230
|
-
- `migrate` 不再被误导性地当作默认入口
|
|
231
|
-
- `setup` 继续只返回 deprecation 合同
|
|
232
|
-
- `list` 与共享 provider 选择器能展示 provider 类型和 current 标记语义
|
|
233
|
-
|
|
234
|
-
### 3. 诊断与恢复验证
|
|
235
|
-
|
|
236
|
-
- 缺 `providers.json`
|
|
237
|
-
- 缺 `config.toml`
|
|
238
|
-
- 损坏 `auth.json`
|
|
239
|
-
- 损坏 bridge runtime state
|
|
240
|
-
- Copilot SDK 缺失
|
|
241
|
-
- Copilot auth 缺失
|
|
242
|
-
|
|
243
|
-
这些场景都需要:
|
|
244
|
-
|
|
245
|
-
- 返回稳定错误码或 issue code
|
|
246
|
-
- 给出清楚的下一步建议
|
|
247
|
-
|
|
248
|
-
### 4. 发布检查
|
|
249
|
-
|
|
250
|
-
至少覆盖:
|
|
251
|
-
|
|
252
|
-
- `npm run build`
|
|
253
|
-
- `npm test`
|
|
254
|
-
- `npx tsc --noEmit`
|
|
255
|
-
- `npm pack --dry-run`
|
|
256
|
-
- built CLI `--help`
|
|
257
|
-
- built CLI `--version`
|
|
258
|
-
- read commands in `--json`
|
|
259
|
-
- write commands in sandbox
|
|
260
|
-
- direct provider 主路径
|
|
261
|
-
- Copilot 主路径
|
|
262
|
-
|
|
263
|
-
## 验收标准
|
|
264
|
-
|
|
265
|
-
达到以下条件时,`0.0.12` 可以认为完成:
|
|
266
|
-
|
|
267
|
-
- 用户第一次看 README 和 help 时,能一眼看出主路径是什么
|
|
268
|
-
- `migrate` 不再与主 onboarding 路径混淆
|
|
269
|
-
- 所有对外文档都使用双路径模型,不再残留旧 `~/.codex/providers.json` 叙述
|
|
270
|
-
- `list` 与 provider 选择器可以看出谁是当前 provider,以及它属于 direct 还是 Copilot 路径
|
|
271
|
-
- 当前 provider 无法唯一解析时,文档与命令契约都不会伪造单一 current provider
|
|
272
|
-
- `0.1.0` 的 PRD 文件不再是历史错误内容
|
|
273
|
-
- `init` / `status` / `doctor` 的输出足以支撑小范围 beta 使用
|
|
274
|
-
- 代码结构不再继续保留明显的历史双目录语义尾巴
|
|
275
|
-
- 发布 checklist 可以真实执行,而不是文档占位
|
|
276
|
-
|
|
277
|
-
## 结论
|
|
278
|
-
|
|
279
|
-
`0.0.12` 的完成标准,不是“又多了一个功能”,而是 `codex-switch` 终于开始以一个正式产品的方式讲清楚自己:主路径是什么、管理哪些状态、哪些命令是核心、哪些命令只是高级辅助、以及距离 `0.1.0` 还差哪一道门槛。
|