@vibeapi/api-helper 0.0.23 → 0.0.25

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.md CHANGED
@@ -1,300 +1,67 @@
1
1
  # @vibeapi/api-helper
2
2
 
3
- > 跨工具的 AI 编程助手配置管家:一条命令在 Claude Code / OpenCode 之间统一管理 API Key、模型预设和多 Profile 配置。
3
+ > 一条命令,在 Claude Code / OpenCode / Codex / OpenClaw / Hermes / AtomCode 之间统一配置 API Key 与模型。
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@vibeapi/api-helper.svg)](https://www.npmjs.com/package/@vibeapi/api-helper)
6
6
  [![Node](https://img.shields.io/node/v/@vibeapi/api-helper.svg)](https://nodejs.org)
7
7
 
8
- CLI 名:`chelper`(也可用 `api-helper`)。
8
+ CLI 名:`chelper`(也可用 `api-helper`)。需要 **Node.js >= 20**。
9
9
 
10
- ---
11
-
12
- ## 特性
13
-
14
- - **多 Profile**:work / personal / staging 各自独立的 api_key / base_url / 模型组合
15
- - **加密密钥存储**:`~/.chelper/secrets.enc`(AES-256-GCM + scrypt,绑定 username:hostname,权限 `0o600`)
16
- - **预设(Preset)**:保存任意模型组合,一键切换
17
- - **配置备份**:手动 + 自动滚动备份,附带加密快照,支持还原
18
- - **多工具集成**:一键把当前 profile 的配置注入 Claude Code / OpenCode / Codex / OpenClaw / Hermes / AtomCode
19
- - **灵活模型配置**:自定义模型槽位、向导自由输入、按工具独立映射模型(`tool-model`)
20
- - **CI 友好**:所有命令支持 `--json` / `--non-interactive` / `--yes` / `--dry-run` / `--no-color`
21
- - **可观测**:每日轮转日志、`bench` 端点延时基准、`update` npm 版本检查、`doctor` 健康巡检
22
- - **i18n**:中英双语(`zh_CN` / `en_US`),随系统 locale 自动选择
23
-
24
- ---
25
-
26
- ## 安装
10
+ ## 安装 / 运行
27
11
 
28
12
  ```bash
29
- npm install -g @vibeapi/api-helper
30
- #
31
- pnpm add -g @vibeapi/api-helper
13
+ npx @vibeapi/api-helper # 免安装直接跑
14
+ npm install -g @vibeapi/api-helper # 或全局安装后用 chelper
32
15
  ```
33
16
 
34
- 需要 **Node.js >= 20**。
35
-
36
- 验证:
17
+ **npmjs.com 连不上时走 CNB 镜像**(同步发布):
37
18
 
38
19
  ```bash
39
- chelper --version
20
+ npm config set registry https://registry.npmmirror.com
21
+ npm config set @vibeapi:registry https://npm.cnb.cool/vibeapi/npm/-/packages/
22
+ npm install -g @vibeapi/api-helper
40
23
  ```
41
24
 
42
- ---
43
-
44
25
  ## 快速开始
45
26
 
46
27
  ```bash
47
- # 交互式初始化(语言、API Key、模型预设、目标工具)
48
- chelper init
49
-
50
- # 或非交互直接写入
51
- chelper auth sk-xxx --non-interactive
52
- chelper config claude-code --non-interactive
53
- ```
54
-
55
- 查看当前状态:
56
-
57
- ```bash
58
- chelper status
59
- chelper status --json # 机器可读
60
- ```
61
-
62
- ---
63
-
64
- ## 命令一览
65
-
66
- ### 认证 / 状态
67
-
68
- | 命令 | 说明 |
69
- |---|---|
70
- | `chelper init` | 首次设置向导(语言、API Key、模型、工具) |
71
- | `chelper auth <token>` | 设置 API Key 并落到加密存储 |
72
- | `chelper auth revoke` | 撤销当前 profile 的 key(会同步清理 yaml 与 secrets.enc) |
73
- | `chelper auth reload <claude\|claude-code\|opencode>` | 把当前 profile 配置重灌进目标工具 |
74
- | `chelper status` | 显示当前 profile / models / tools / 指纹 |
75
- | `chelper doctor` | 健康巡检(API Key 有效性、工具安装、配置加载) |
76
-
77
- ### Profile / Preset / Backup
78
-
79
- ```bash
80
- # Profile
81
- chelper config profile list
82
- chelper config profile create work
83
- chelper config profile use work
84
- chelper config profile delete work # 支持 --dry-run / --yes
85
-
86
- # Preset(保存当前模型组合,跨 profile 复用)
87
- chelper config preset list
88
- chelper config preset save fast
89
- chelper config preset use fast
90
- chelper config preset delete fast
91
-
92
- # Backup(含加密 secrets 快照)
93
- chelper config backup create initial
94
- chelper config backup list
95
- chelper config backup restore <name> # 支持 --dry-run / --yes
28
+ chelper init # 向导:语言 → API Key → 选工具 → 配置该工具的模型
29
+ chelper status # 查看当前配置
96
30
  ```
97
31
 
98
- ### 工具集成
32
+ 非交互(CI):
99
33
 
100
34
  ```bash
101
- chelper config claude-code
102
- chelper config opencode
103
- chelper config codex
104
- chelper config openclaw
105
- chelper config hermes
106
- chelper config atomcode
107
- chelper config claude-code --non-interactive # CI 模式:直接注入当前配置
108
- ```
109
-
110
- 支持的工具与写入位置:
111
-
112
- | 工具 | 配置文件 |
113
- |---|---|
114
- | Claude Code | `~/.claude/settings.json` |
115
- | OpenCode | `~/.config/opencode/opencode.json` |
116
- | Codex | `~/.codex/config.toml` + `~/.codex/auth.json` |
117
- | OpenClaw | `~/.openclaw/openclaw.json` |
118
- | Hermes | `~/.hermes/config.yaml` + `~/.hermes/.env` |
119
- | AtomCode | `~/.atomcode/config.toml` |
120
-
121
- > **非 Claude 工具默认用 `gpt-5.5`**:Codex / OpenCode / OpenClaw / Hermes / AtomCode 在你没自定义模型时默认写入 `gpt-5.5`(由 `models.json` 的 `defaultToolModel` 控制,可改);用了预设 / 自定义 / `chelper config tool-model` 则以你的配置为准。
122
-
123
- > **Claude Code 默认只写 token + URL**:模型槽位与内置默认相同时不写 `ANTHROPIC_*_MODEL`,由 Claude Code 用自带默认模型名(网关路由);只有当你配置了非默认模型(预设/自定义/按工具映射)时才写入对应变量,切回默认会自动清除。
124
-
125
- > **改前自动备份**:在覆盖任何工具配置文件前,先就地快照成 `<原文件>.bak-<时间戳>`(如 `~/.codex/config.toml.bak-2026-06-30T06-15-00-000Z`),每个文件最多保留最近 **10** 份,旧的自动清理。首次写入(原文件不存在)不会产生备份。写入本身仍是**幂等合并**——只改我们的 provider 字段,保留其它配置。
126
-
127
- ### 按工具映射模型(Per-tool model)
128
-
129
- 在基础模型之上,为单个工具单独指定模型,加载该工具时自动生效:
130
-
131
- ```bash
132
- chelper config tool-model set codex gpt-5.4 # 设置 codex 的主模型
133
- chelper config tool-model set claude-code opus glm-5 # 指定某个槽位
134
- chelper config tool-model list # 查看所有覆盖
135
- chelper config tool-model clear codex # 清除某工具的覆盖
136
- ```
137
-
138
- ### 运维
139
-
140
- | 命令 | 说明 |
141
- |---|---|
142
- | `chelper logs path` | 打印日志目录 |
143
- | `chelper logs list` | 列出所有日志文件 |
144
- | `chelper logs tail [file]` | 输出最近内容(默认最新一天,UTF-8 安全截断) |
145
- | `chelper bench [--samples N]` | API 端点延时基准(命中 `/v1/models`) |
146
- | `chelper update` | 检查 npm 上是否有新版(语义化比对,支持预发布版本) |
147
-
148
- ### 开发者
149
-
150
- ```bash
151
- chelper completion bash # 输出补全脚本(zsh / fish 同理)
152
- chelper enter # 交互式主菜单
153
- ```
154
-
155
- ---
156
-
157
- ## 全局旗标
158
-
159
- | 旗标 | 作用 |
160
- |---|---|
161
- | `--base <url>` 或 `--base=<url>` | 临时覆盖 API base URL(不持久化) |
162
- | `--non-interactive` | 关闭交互提示(CI 模式) |
163
- | `--json` | 命令输出机器可读 JSON |
164
- | `--yes` / `-y` | 自动确认带默认动作的提示 |
165
- | `--dry-run` | 仅预演变更,不写入;输出 `dry_run` 事件 |
166
- | `--no-color` | 禁用彩色输出(也尊重 `NO_COLOR` / `FORCE_COLOR=0`) |
167
-
168
- `--dry-run` 已接入:`config profile delete`、`config backup restore`。
169
-
170
- ---
171
-
172
- ## 配置位置
173
-
174
- - **配置文件**:`~/.chelper/config.yaml`
175
- - **加密密钥**:`~/.chelper/secrets.enc`(AES-256-GCM)
176
- - **备份**:`~/.chelper/backups/*.yaml` + `*.secrets.enc` 伴随文件
177
- - **日志**:`~/.chelper/<YYYY-MM-DD>.log`(按天滚动,14 天清理)
178
-
179
- 可通过环境变量重定向:
180
-
181
- - `CHELPER_CONFIG_DIR`:完全自定义配置目录
182
- - `CHELPER_TEST_HOME`:将 `~/.chelper` 视作 `<TEST_HOME>/.chelper`(多用于测试)
183
- - `NO_COLOR` / `FORCE_COLOR=0`:关闭彩色输出
184
-
185
- ---
186
-
187
- ## 配置文件结构
188
-
189
- ```yaml
190
- lang: zh_CN
191
- active_profile: default
192
- profiles:
193
- default:
194
- base_url: https://www.vibeapi.cn
195
- models:
196
- haiku: claude-haiku-4-5-20251001
197
- sonnet: claude-sonnet-4-6
198
- opus: claude-opus-4-6
199
- reasoning: claude-opus-4-6
200
- work:
201
- base_url: https://api.example.com
202
- models: { ... }
203
- presets:
204
- fast:
205
- models: { ... }
206
- updated_at: 2026-04-27T03:00:00.000Z
207
- ```
208
-
209
- **API Key 不会以明文落入 yaml**,只通过 `secrets.enc` 加密存储;首次读取到含内联 `api_key` 的旧 yaml 时会自动迁出。
210
-
211
- ---
212
-
213
- ## 自动化 / CI
214
-
215
- 所有命令支持 `--json --non-interactive`,输出便于解析:
216
-
217
- ```bash
218
- chelper status --json
219
- # {
220
- # "api_key_set": true,
221
- # "api_key_fingerprint": "a3b1...e4",
222
- # "base_url": "https://www.vibeapi.cn",
223
- # "language": "zh_CN",
224
- # "models": { ... },
225
- # "tools": [ ... ],
226
- # "active_profile": "default",
227
- # "profiles": ["default"],
228
- # "custom_presets": []
229
- # }
230
-
231
- chelper update --json
232
- # { "current": "0.0.20", "latest": "0.0.21", "up_to_date": false, "error": null }
233
-
234
- chelper bench --json --samples 5
235
- # { "ok": true, "samples": 5, "median_ms": 142, "average_ms": 156, ... }
236
- ```
237
-
238
- `--dry-run` 与 `--json` 联合使用:
239
-
240
- ```bash
241
- chelper config profile delete work --dry-run --json
242
- # { "dry_run": true, "description": "Would delete profile work",
243
- # "payload": { "action": "profile_delete", "name": "work" } }
244
- ```
245
-
246
- ---
247
-
248
- ## 安全与密钥管理
249
-
250
- - API Key 只通过 `secrets.enc`(AES-256-GCM)持久化,绑定 username:hostname seed
251
- - 主机或用户身份变化(如换机)会触发 `SecretStoreDecryptError`,envelope 不会被悄默丢弃
252
- - 写路径加锁:检测到不可解密的 envelope 时,`setApiKey` 拒绝覆盖;恢复需通过 `chelper auth revoke`(自动 `deleteAll`)或手动 `rm ~/.chelper/secrets.enc`
253
- - 备份还原拒绝路径遍历名(`..`、`/`、`\`)
254
- - `status` 仅显示 12 字符 sha256 指纹,不显示 key 任何部分
255
-
256
- ---
257
-
258
- ## 常见问题
259
-
260
- **Q:换了机器后 `chelper status` 报 `SecretStore decrypt failed - identity drift suspected`?**
261
- A:旧 envelope 用旧机器的 `username:hostname` 派生密钥,新机器解不出。原 envelope 会被保留以防误删;想从干净状态重新开始:
262
-
263
- ```bash
264
- chelper auth revoke # 自动清理失败的 envelope
265
- chelper auth <token>
35
+ chelper auth sk-xxx --non-interactive
36
+ chelper config claude-code --non-interactive
266
37
  ```
267
38
 
268
- 或手动 `rm ~/.chelper/secrets.enc` 后再 `chelper auth`。
39
+ ## 能做什么
269
40
 
270
- **Q:CI 里跑 `chelper config claude-code` 卡在交互?**
271
- A:加 `--non-interactive`:
41
+ - **多工具一键配置**:把当前 API Key / 模型注入 Claude Code、OpenCode、Codex、OpenClaw、Hermes、AtomCode。
42
+ - **按工具选模型**:使用默认 / 实时从 API 拉取 / 内置预设 / 手动输入;每个工具可用不同模型。
43
+ - Claude Code 默认用 Claude 组合(opus 为 1M 变体 `claude-opus-4-8[1m]`);其余工具默认 `gpt-5.5`。
44
+ - **改前自动备份 + 一键还原**:覆盖配置前先快照(每文件留 10 份),`chelper config <tool> restore` 随时回退;还原本身也可再撤销。
45
+ - **多 Profile + 加密密钥**:work/personal 各自独立;API Key 经 AES-256-GCM 存 `~/.chelper/secrets.enc`,绝不明文落盘。
46
+ - **CI 友好**:所有命令支持 `--json` / `--non-interactive` / `--yes` / `--dry-run` / `--no-color`。
272
47
 
273
- ```bash
274
- chelper auth $TOKEN --non-interactive
275
- chelper config claude-code --non-interactive
276
- ```
277
-
278
- **Q:怎么备份再换 profile 试错?**
279
- A:
48
+ ## 常用命令
280
49
 
281
50
  ```bash
282
- chelper config backup create before-experiment
283
- # 折腾...
284
- chelper config backup restore before-experiment-... --yes
51
+ chelper config <tool> # 配置某工具(选模型 → 加载 / 卸载 / 还原)
52
+ chelper config <tool> restore # 还原该工具到上次更改前
53
+ chelper config tool-model set codex gpt-5.5 # 单独给某工具指定模型
54
+ chelper config profile use work # 切换 profile
55
+ chelper doctor # 健康巡检
285
56
  ```
286
57
 
287
- ---
58
+ > 完整命令、旗标、配置文件结构、自动化与安全细节见 **[docs/reference.md](./docs/reference.md)**。
288
59
 
289
60
  ## 链接
290
61
 
291
- - [CHANGELOG](./CHANGELOG.md) — 版本变更记录
292
- - [PUBLISH.md](./PUBLISH.md) — 发布流程
293
- - [docs/state-machines.md](./docs/state-machines.md) SecretStore / API Key / Backup / Profile 状态机参考
294
- - 主页:<https://www.vibeapi.cn/>
295
- - 反馈:<https://www.vibeapi.cn/support>
296
-
297
- ---
62
+ - [完整参考 docs/reference.md](./docs/reference.md)
63
+ - [CHANGELOG](./CHANGELOG.md) · [发布流程 PUBLISH.md](./PUBLISH.md)
64
+ - 主页 <https://www.vibeapi.cn/> · 反馈 <https://www.vibeapi.cn/support>
298
65
 
299
66
  ## License
300
67
 
@@ -1 +1 @@
1
- import{describe as e,it as o,expect as t,beforeEach as s,afterEach as r,vi as a}from"vitest";import{mkdirSync as d,rmSync as i,readFileSync as l,writeFileSync as n,readdirSync as c}from"fs";import{join as p}from"path";import{tmpdir as m}from"os";import*as g from"js-yaml";import*as f from"@iarna/toml";const u={haiku:"h-model",sonnet:"s-model",opus:"o-model",reasoning:"r-model"},v=(e={})=>({apiKey:"sk-test-123",baseUrl:"https://gateway.example.com",models:u,...e});e("tool adapters",()=>{let c,u,E;s(async()=>{c=p(m(),`chelper-tools-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(c,{recursive:!0}),u=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=c,a.resetModules(),E=await import("../lib/tools/registry.js")}),r(()=>{void 0!==u?process.env.CHELPER_TEST_HOME=u:delete process.env.CHELPER_TEST_HOME;try{i(c,{recursive:!0,force:!0})}catch{}}),o("registry exposes the six expected tools",()=>{t(Object.keys(E.TOOL_ADAPTERS).sort()).toEqual(["atomcode","claude-code","codex","hermes","opencode","openclaw"].sort())}),e("codex",()=>{const e=()=>f.parse(l(p(c,".codex","config.toml"),"utf-8"));o("writes a branded provider, primary model and OPENAI_API_KEY auth",()=>{E.getAdapter("codex").loadPrivateConfig(v());const o=e();t(o.model).toBe("o-model"),t(o.model_provider).toBe("custom"),t(o.model_reasoning_effort).toBe("xhigh"),t(o.model_providers.custom.base_url).toBe("https://gateway.example.com/v1"),t(o.model_providers.custom.name).toBe("custom"),t(o.model_providers.custom.wire_api).toBe("responses"),t(o.model_providers.custom.requires_openai_auth).toBe(!0),t(o.features).toEqual({goals:!0,js_repl:!1}),t(JSON.parse(l(p(c,".codex","auth.json"),"utf-8")).OPENAI_API_KEY).toBe("sk-test-123"),t(E.getAdapter("codex").detectCurrentConfig()).toEqual({apiKey:"sk-test-123"})}),o("preserves foreign providers on load and unload",()=>{const o=E.getAdapter("codex");d(p(c,".codex"),{recursive:!0});const s=f.stringify({model_providers:{other:{base_url:"https://other"}}});n(p(c,".codex","config.toml"),s,"utf-8"),o.loadPrivateConfig(v()),t(e().model_providers.other.base_url).toBe("https://other"),o.unloadPrivateConfig();const r=e();t(r.model_providers.custom).toBeUndefined(),t(r.model_providers.other.base_url).toBe("https://other"),t(r.model_provider).toBeUndefined()})}),e("atomcode",()=>{const e=()=>f.parse(l(p(c,".atomcode","config.toml"),"utf-8"));o("writes an openai provider with key and model",()=>{const o=E.getAdapter("atomcode");o.loadPrivateConfig(v());const s=e();t(s.default_provider).toBe("VibeAPI"),t(s.providers.VibeAPI.type).toBe("openai"),t(s.providers.VibeAPI.api_key).toBe("sk-test-123"),t(s.providers.VibeAPI.model).toBe("o-model"),t(s.providers.VibeAPI.base_url).toBe("https://gateway.example.com/v1"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e().providers?.VibeAPI).toBeUndefined()})}),e("openclaw",()=>{const e=()=>JSON.parse(l(p(c,".openclaw","openclaw.json"),"utf-8"));o("writes provider and agents.defaults.model.primary",()=>{const o=E.getAdapter("openclaw");o.loadPrivateConfig(v());const s=e();t(s.models.providers.vibeapi.apiKey).toBe("sk-test-123"),t(s.models.providers.vibeapi.baseUrl).toBe("https://gateway.example.com/v1"),t(s.models.providers.vibeapi.models[0].id).toBe("o-model"),t(s.agents.defaults.model.primary).toBe("vibeapi/o-model"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig();const r=e();t(r.models.providers.vibeapi).toBeUndefined(),t(r.agents.defaults.model.primary).toBeUndefined()})}),e("hermes",()=>{const e=()=>l(p(c,".hermes",".env"),"utf-8");o("writes config.yaml model block and .env api key",()=>{const o=E.getAdapter("hermes");o.loadPrivateConfig(v());const s=g.load(l(p(c,".hermes","config.yaml"),"utf-8"));t(s.model.provider).toBe("custom"),t(s.model.base_url).toBe("https://gateway.example.com/v1"),t(s.model.default).toBe("o-model"),t(e()).toContain("VIBEAPI_API_KEY=sk-test-123"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e()).not.toContain("sk-test-123")})}),o("withV1 does not double-append a version suffix",()=>{E.getAdapter("codex").loadPrivateConfig(v({baseUrl:"https://gw.example.com/v1"}));const e=f.parse(l(p(c,".codex","config.toml"),"utf-8"));t(e.model_providers.custom.base_url).toBe("https://gw.example.com/v1")})}),e("config backups before write",()=>{let e,g,u,E;const _=(e,o)=>c(e).filter(e=>e.startsWith(`${o}.bak-`));s(async()=>{e=p(m(),`chelper-bak-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),g=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),u=await import("../lib/tools/registry.js"),E=await import("../lib/tools/backup.js")}),r(()=>{void 0!==g?process.env.CHELPER_TEST_HOME=g:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("does not back up on the first write (no original file)",()=>{u.getAdapter("codex").loadPrivateConfig(v()),t(_(p(e,".codex"),"config.toml")).toHaveLength(0)}),o("snapshots the original before overwriting on a second load",()=>{const o=u.getAdapter("codex");o.loadPrivateConfig(v({baseUrl:"https://first.example.com"})),o.loadPrivateConfig(v({baseUrl:"https://second.example.com"}));const s=p(e,".codex"),r=_(s,"config.toml");t(r).toHaveLength(1);const a=f.parse(l(p(s,r[0]),"utf-8"));t(a.model_providers.custom.base_url).toBe("https://first.example.com/v1")}),o("keeps at most 10 backups per file",()=>{const o=p(e,"sample.json");n(o,"v0","utf-8");for(let e=1;e<=15;e++)E.backupBeforeWrite(o),n(o,`v${e}`,"utf-8");t(_(e,"sample.json").length).toBe(E.MAX_TOOL_BACKUPS)})}),e("non-Claude tools default to gpt-5.5",()=>{let e,n,c,u;const v=()=>({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...u}});s(async()=>{e=p(m(),`chelper-def-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),n=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),c=await import("../lib/tools/registry.js"),({DEFAULT_MODELS:u}=await import("../lib/config.js"))}),r(()=>{void 0!==n?process.env.CHELPER_TEST_HOME=n:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("codex uses gpt-5.5 when models are default",()=>{c.getAdapter("codex").loadPrivateConfig(v());const o=f.parse(l(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("gpt-5.5")}),o("atomcode uses gpt-5.5 when models are default",()=>{c.getAdapter("atomcode").loadPrivateConfig(v());const o=f.parse(l(p(e,".atomcode","config.toml"),"utf-8"));t(o.providers.VibeAPI.model).toBe("gpt-5.5")}),o("openclaw uses gpt-5.5 when models are default",()=>{c.getAdapter("openclaw").loadPrivateConfig(v());const o=JSON.parse(l(p(e,".openclaw","openclaw.json"),"utf-8"));t(o.models.providers.vibeapi.models[0].id).toBe("gpt-5.5"),t(o.agents.defaults.model.primary).toBe("vibeapi/gpt-5.5")}),o("hermes uses gpt-5.5 when models are default",()=>{c.getAdapter("hermes").loadPrivateConfig(v());const o=g.load(l(p(e,".hermes","config.yaml"),"utf-8"));t(o.model.default).toBe("gpt-5.5")}),o("honors a custom model over the gpt-5.5 default",()=>{c.getAdapter("codex").loadPrivateConfig({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...u,opus:"my-custom-model"}});const o=f.parse(l(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("my-custom-model")})}),e("flexible model configuration",()=>{let e,l,n;s(async()=>{e=p(m(),`chelper-models-${Date.now()}-${Math.random().toString(36).slice(2)}`),d(e,{recursive:!0}),l=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),n=await import("../lib/config.js")}),r(()=>{void 0!==l?process.env.CHELPER_TEST_HOME=l:delete process.env.CHELPER_TEST_HOME;try{i(e,{recursive:!0,force:!0})}catch{}}),o("preserves custom (non-canonical) model slots",()=>{n.configManager.setModels({...u,vision:"vision-model"});const e=n.configManager.getModels();t(e.opus).toBe("o-model"),t(e.vision).toBe("vision-model")}),o("merges per-tool overrides over base models",()=>{n.configManager.setModels(u),n.configManager.setToolModel("codex",{opus:"codex-only-model"}),t(n.configManager.getModelsForTool("codex").opus).toBe("codex-only-model"),t(n.configManager.getModelsForTool("hermes").opus).toBe("o-model"),t(n.configManager.getModels().opus).toBe("o-model")}),o("clears a per-tool override when set to null",()=>{n.configManager.setModels(u),n.configManager.setToolModel("codex",{opus:"x"}),n.configManager.setToolModel("codex",null),t(n.configManager.getModelsForTool("codex").opus).toBe("o-model")})});
1
+ import{describe as e,it as o,expect as t,beforeEach as s,afterEach as r,vi as a}from"vitest";import{mkdirSync as i,rmSync as n,readFileSync as d,writeFileSync as l,readdirSync as c}from"fs";import{join as p}from"path";import{tmpdir as m}from"os";import*as f from"js-yaml";import*as u from"@iarna/toml";const g={haiku:"h-model",sonnet:"s-model",opus:"o-model",reasoning:"r-model"},v=(e={})=>({apiKey:"sk-test-123",baseUrl:"https://gateway.example.com",models:g,...e});e("tool adapters",()=>{let c,g,h;s(async()=>{c=p(m(),`chelper-tools-${Date.now()}-${Math.random().toString(36).slice(2)}`),i(c,{recursive:!0}),g=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=c,a.resetModules(),h=await import("../lib/tools/registry.js")}),r(()=>{void 0!==g?process.env.CHELPER_TEST_HOME=g:delete process.env.CHELPER_TEST_HOME;try{n(c,{recursive:!0,force:!0})}catch{}}),o("registry exposes the six expected tools",()=>{t(Object.keys(h.TOOL_ADAPTERS).sort()).toEqual(["atomcode","claude-code","codex","hermes","opencode","openclaw"].sort())}),e("codex",()=>{const e=()=>u.parse(d(p(c,".codex","config.toml"),"utf-8"));o("writes a branded provider, primary model and OPENAI_API_KEY auth",()=>{h.getAdapter("codex").loadPrivateConfig(v());const o=e();t(o.model).toBe("o-model"),t(o.model_provider).toBe("custom"),t(o.model_reasoning_effort).toBe("xhigh"),t(o.model_providers.custom.base_url).toBe("https://gateway.example.com/v1"),t(o.model_providers.custom.name).toBe("custom"),t(o.model_providers.custom.wire_api).toBe("responses"),t(o.model_providers.custom.requires_openai_auth).toBe(!0),t(o.features).toEqual({goals:!0,js_repl:!1}),t(JSON.parse(d(p(c,".codex","auth.json"),"utf-8")).OPENAI_API_KEY).toBe("sk-test-123"),t(h.getAdapter("codex").detectCurrentConfig()).toEqual({apiKey:"sk-test-123"})}),o("preserves foreign providers on load and unload",()=>{const o=h.getAdapter("codex");i(p(c,".codex"),{recursive:!0});const s=u.stringify({model_providers:{other:{base_url:"https://other"}}});l(p(c,".codex","config.toml"),s,"utf-8"),o.loadPrivateConfig(v()),t(e().model_providers.other.base_url).toBe("https://other"),o.unloadPrivateConfig();const r=e();t(r.model_providers.custom).toBeUndefined(),t(r.model_providers.other.base_url).toBe("https://other"),t(r.model_provider).toBeUndefined()})}),e("atomcode",()=>{const e=()=>u.parse(d(p(c,".atomcode","config.toml"),"utf-8"));o("writes an openai provider with key and model",()=>{const o=h.getAdapter("atomcode");o.loadPrivateConfig(v());const s=e();t(s.default_provider).toBe("VibeAPI"),t(s.providers.VibeAPI.type).toBe("openai"),t(s.providers.VibeAPI.api_key).toBe("sk-test-123"),t(s.providers.VibeAPI.model).toBe("o-model"),t(s.providers.VibeAPI.base_url).toBe("https://gateway.example.com/v1"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e().providers?.VibeAPI).toBeUndefined()})}),e("openclaw",()=>{const e=()=>JSON.parse(d(p(c,".openclaw","openclaw.json"),"utf-8"));o("writes provider and agents.defaults.model.primary",()=>{const o=h.getAdapter("openclaw");o.loadPrivateConfig(v());const s=e();t(s.models.providers.vibeapi.apiKey).toBe("sk-test-123"),t(s.models.providers.vibeapi.baseUrl).toBe("https://gateway.example.com/v1"),t(s.models.providers.vibeapi.models[0].id).toBe("o-model"),t(s.agents.defaults.model.primary).toBe("vibeapi/o-model"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig();const r=e();t(r.models.providers.vibeapi).toBeUndefined(),t(r.agents.defaults.model.primary).toBeUndefined()})}),e("hermes",()=>{const e=()=>d(p(c,".hermes",".env"),"utf-8");o("writes config.yaml model block and .env api key",()=>{const o=h.getAdapter("hermes");o.loadPrivateConfig(v());const s=f.load(d(p(c,".hermes","config.yaml"),"utf-8"));t(s.model.provider).toBe("custom"),t(s.model.base_url).toBe("https://gateway.example.com/v1"),t(s.model.default).toBe("o-model"),t(e()).toContain("VIBEAPI_API_KEY=sk-test-123"),t(o.detectCurrentConfig()).toEqual({apiKey:"sk-test-123"}),o.unloadPrivateConfig(),t(e()).not.toContain("sk-test-123")})}),o("withV1 does not double-append a version suffix",()=>{h.getAdapter("codex").loadPrivateConfig(v({baseUrl:"https://gw.example.com/v1"}));const e=u.parse(d(p(c,".codex","config.toml"),"utf-8"));t(e.model_providers.custom.base_url).toBe("https://gw.example.com/v1")})}),e("config backups before write",()=>{let e,f,g,h;const E=(e,o)=>c(e).filter(e=>e.startsWith(`${o}.bak-`));s(async()=>{e=p(m(),`chelper-bak-${Date.now()}-${Math.random().toString(36).slice(2)}`),i(e,{recursive:!0}),f=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),g=await import("../lib/tools/registry.js"),h=await import("../lib/tools/backup.js")}),r(()=>{void 0!==f?process.env.CHELPER_TEST_HOME=f:delete process.env.CHELPER_TEST_HOME;try{n(e,{recursive:!0,force:!0})}catch{}}),o("does not back up on the first write (no original file)",()=>{g.getAdapter("codex").loadPrivateConfig(v()),t(E(p(e,".codex"),"config.toml")).toHaveLength(0)}),o("snapshots the original before overwriting on a second load",()=>{const o=g.getAdapter("codex");o.loadPrivateConfig(v({baseUrl:"https://first.example.com"})),o.loadPrivateConfig(v({baseUrl:"https://second.example.com"}));const s=p(e,".codex"),r=E(s,"config.toml");t(r).toHaveLength(1);const a=u.parse(d(p(s,r[0]),"utf-8"));t(a.model_providers.custom.base_url).toBe("https://first.example.com/v1")}),o("keeps at most 10 backups per file",()=>{const o=p(e,"sample.json");l(o,"v0","utf-8");for(let e=1;e<=15;e++)h.backupBeforeWrite(o),l(o,`v${e}`,"utf-8");t(E(e,"sample.json").length).toBe(h.MAX_TOOL_BACKUPS)}),o("restoreBackup brings back the latest snapshot and snapshots current first (undoable)",()=>{const o=p(e,"cfg.json");l(o,"v1","utf-8"),h.backupBeforeWrite(o),l(o,"v2","utf-8"),h.backupBeforeWrite(o),l(o,"v3","utf-8");const s=h.restoreBackup(o);t(s.restored).toBe(!0),t(d(o,"utf-8")).toBe("v2"),t(s.snapshot).toBeTruthy();const r=h.restoreBackup(o);t(r.restored).toBe(!0),t(d(o,"utf-8")).toBe("v3")}),o("atomicWriteFile creates the dir, writes, and leaves no temp file",()=>{const o=p(e,"nested","deep","out.json");h.atomicWriteFile(o,'{"ok":true}'),t(d(o,"utf-8")).toBe('{"ok":true}');const s=c(p(e,"nested","deep")).filter(e=>e.includes(".tmp-"));t(s).toEqual([])}),o("restoreBackup reports no_backup when there are none",()=>{const o=p(e,"fresh.json");l(o,"only","utf-8");const s=h.restoreBackup(o);t(s.restored).toBe(!1),t(s.reason).toBe("no_backup")}),o("ToolManager.restorePrivateConfig restores a tool config in place",async()=>{const o=g.getAdapter("codex"),{toolManager:s}=await import("../lib/tool-manager.js");o.loadPrivateConfig(v({baseUrl:"https://first.example.com"})),o.loadPrivateConfig(v({baseUrl:"https://second.example.com"}));const r=p(e,".codex","config.toml");t(d(r,"utf-8")).toContain("https://second.example.com/v1");const a=s.restorePrivateConfig("codex");t(a.some(e=>e.result.restored)).toBe(!0),t(d(r,"utf-8")).toContain("https://first.example.com/v1")})}),e("non-Claude tools default to gpt-5.5",()=>{let e,l,c,g;const v=()=>({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...g}});s(async()=>{e=p(m(),`chelper-def-${Date.now()}-${Math.random().toString(36).slice(2)}`),i(e,{recursive:!0}),l=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),c=await import("../lib/tools/registry.js"),({DEFAULT_MODELS:g}=await import("../lib/config.js"))}),r(()=>{void 0!==l?process.env.CHELPER_TEST_HOME=l:delete process.env.CHELPER_TEST_HOME;try{n(e,{recursive:!0,force:!0})}catch{}}),o("codex uses gpt-5.5 when models are default",()=>{c.getAdapter("codex").loadPrivateConfig(v());const o=u.parse(d(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("gpt-5.5")}),o("atomcode uses gpt-5.5 when models are default",()=>{c.getAdapter("atomcode").loadPrivateConfig(v());const o=u.parse(d(p(e,".atomcode","config.toml"),"utf-8"));t(o.providers.VibeAPI.model).toBe("gpt-5.5")}),o("openclaw uses gpt-5.5 when models are default",()=>{c.getAdapter("openclaw").loadPrivateConfig(v());const o=JSON.parse(d(p(e,".openclaw","openclaw.json"),"utf-8"));t(o.models.providers.vibeapi.models[0].id).toBe("gpt-5.5"),t(o.agents.defaults.model.primary).toBe("vibeapi/gpt-5.5")}),o("hermes uses gpt-5.5 when models are default",()=>{c.getAdapter("hermes").loadPrivateConfig(v());const o=f.load(d(p(e,".hermes","config.yaml"),"utf-8"));t(o.model.default).toBe("gpt-5.5")}),o("honors a custom model over the gpt-5.5 default",()=>{c.getAdapter("codex").loadPrivateConfig({apiKey:"sk-x",baseUrl:"https://gw.example.com",models:{...g,opus:"my-custom-model"}});const o=u.parse(d(p(e,".codex","config.toml"),"utf-8"));t(o.model).toBe("my-custom-model")})}),e("flexible model configuration",()=>{let e,d,l;s(async()=>{e=p(m(),`chelper-models-${Date.now()}-${Math.random().toString(36).slice(2)}`),i(e,{recursive:!0}),d=process.env.CHELPER_TEST_HOME,process.env.CHELPER_TEST_HOME=e,a.resetModules(),l=await import("../lib/config.js")}),r(()=>{void 0!==d?process.env.CHELPER_TEST_HOME=d:delete process.env.CHELPER_TEST_HOME;try{n(e,{recursive:!0,force:!0})}catch{}}),o("preserves custom (non-canonical) model slots",()=>{l.configManager.setModels({...g,vision:"vision-model"});const e=l.configManager.getModels();t(e.opus).toBe("o-model"),t(e.vision).toBe("vision-model")}),o("merges per-tool overrides over base models",()=>{l.configManager.setModels(g),l.configManager.setToolModel("codex",{opus:"codex-only-model"}),t(l.configManager.getModelsForTool("codex").opus).toBe("codex-only-model"),t(l.configManager.getModelsForTool("hermes").opus).toBe("o-model"),t(l.configManager.getModels().opus).toBe("o-model")}),o("clears a per-tool override when set to null",()=>{l.configManager.setModels(g),l.configManager.setToolModel("codex",{opus:"x"}),l.configManager.setToolModel("codex",null),t(l.configManager.getModelsForTool("codex").opus).toBe("o-model")})});
@@ -1 +1 @@
1
- {"version":3,"file":"tool-adapters.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-adapters.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-adapters.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-adapters.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import o from"inquirer";import e from"chalk";import{wizard as t}from"../lib/wizard.js";import{toolManager as n,SUPPORTED_TOOLS as i}from"../lib/tool-manager.js";import{i18n as l}from"../lib/i18n.js";import{configManager as r,DEFAULT_PROFILE_NAME as s}from"../lib/config.js";import{confirmAction as c,applyOrDryRun as a}from"../lib/confirm.js";const d=/^[a-zA-Z0-9._-]+$/;function g(o,e){const t=(o||"").trim();if(!t||!d.test(t))throw new Error(l.t(`config.${e}_invalid_name`,{name:t||"<empty>"}));return t}function f(o,t){console.log("\n"+e.bold(o)),0!==t.length?t.forEach(o=>console.log(" "+o)):console.log(e.gray(" ("+l.t("config.empty_list")+")"))}async function m(s,c){if(i[s]){if(!n.isToolInstalled(s)){if(c.nonInteractive)return void console.log(e.yellow(l.t("wizard.tool_not_installed",{tool:i[s].displayName})));console.log(e.yellow(l.t("wizard.tool_not_installed",{tool:i[s].displayName})));const{shouldInstall:t}=await o.prompt([{type:"confirm",name:"shouldInstall",message:l.t("wizard.install_tool_confirm"),default:!0}]);if(!t)return void console.log(e.yellow(l.t("wizard.install_skipped")));try{await n.installTool(s)}catch(o){return console.error(e.red(l.t("install.install_failed_detail"))),void(o instanceof Error&&o.message&&console.error(e.gray(o.message)))}}if(c.nonInteractive){const o=r.getApiKey();return o?(n.loadPrivateConfig(s,o,r.getModelsForTool(s)),void console.log(e.green(l.t("config.tool_config_loaded",{tool:i[s].displayName})))):void console.log(e.red(l.t("wizard.api_key_required")))}await t.showToolMenu(s)}else console.log(e.red(l.t("config.unknown_tool",{tool:s})))}export async function configCommand(t){const{positional:n,options:u}=function(o){const e=[],t={};for(const n of o)"--non-interactive"===n||"-y"===n?t.nonInteractive=!0:e.push(n);return{positional:e,options:t}}(t),p=n[0],_=n.slice(1);if(p){switch(p){case"profile":return void await async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.getActiveProfileName(),t=r.listProfiles().map(t=>{const n=t===o;return`${n?e.green("●"):e.gray("○")} ${t}${n?e.gray(" ("+l.t("config.profile_active_label")+")"):""}`});return void f(l.t("config.profile_list_title"),t)}if("create"===t){const o=g(n,"profile");return r.listProfiles().includes(o)?void console.log(e.yellow(l.t("config.profile_exists",{name:o}))):(r.createProfile(o),void console.log(e.green(l.t("config.profile_created",{name:o}))))}if("use"===t){const o=g(n,"profile");return r.setActiveProfile(o),void console.log(e.green(l.t("config.profile_activated",{name:o})))}if("delete"===t||"remove"===t){const o=g(n,"profile");return o===s&&1===r.listProfiles().length?void console.log(e.yellow(l.t("config.profile_cannot_delete_last"))):void await a({description:l.t("config.profile_delete_dry_run",{name:o}),json:{action:"profile_delete",name:o},apply:async()=>{await c({message:l.t("config.profile_delete_confirm",{name:o}),defaultValue:!1})?(r.deleteProfile(o),console.log(e.green(l.t("config.profile_deleted",{name:o})))):console.log(e.yellow(l.t("config.profile_delete_aborted")))}})}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"preset":return void function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=Object.entries(r.getCustomPresets()).map(([o,t])=>`${e.cyan(o)} ${e.gray(`H:${t.models.haiku} S:${t.models.sonnet} O:${t.models.opus}`)}`);return void f(l.t("config.preset_list_title"),o)}if("save"===t){const o=g(n,"preset");return r.saveCustomPreset(o,r.getModels()),void console.log(e.green(l.t("config.preset_saved",{name:o})))}if("use"===t||"apply"===t){const o=g(n,"preset"),t=r.getCustomPresets()[o];return t?(r.setModels(t.models),void console.log(e.green(l.t("config.preset_applied",{name:o})))):void console.log(e.red(l.t("config.preset_not_found",{name:o})))}if("delete"===t||"remove"===t){const o=g(n,"preset");return r.deleteCustomPreset(o),void console.log(e.green(l.t("config.preset_deleted",{name:o})))}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"tool-model":return void function(o){const t=o[0];if(!t||"list"===t){const o=r.getProfile().tool_models||{},t=Object.entries(o).map(([o,t])=>{const n=Object.entries(t).map(([o,e])=>`${o}=${e}`).join(" ");return`${e.cyan(o)} ${e.gray(n)}`});return void f(l.t("config.tool_model_list_title"),t)}if("set"===t){const t=(o[1]||"").trim(),n=o.length>=4?(o[2]||"").trim():"opus",s=(o.length>=4?o[3]:o[2]||"").trim();return i[t]?s&&d.test(n)?(r.setToolModel(t,{[n]:s}),void console.log(e.green(l.t("config.tool_model_set",{tool:t,slot:n,model:s})))):void console.log(e.red(l.t("config.tool_model_usage"))):void console.log(e.red(l.t("config.unknown_tool",{tool:t})))}if("clear"===t||"remove"===t){const t=(o[1]||"").trim();return i[t]?(r.setToolModel(t,null),void console.log(e.green(l.t("config.tool_model_cleared",{tool:t})))):void console.log(e.red(l.t("config.unknown_tool",{tool:t})))}console.log(e.red(l.t("config.unknown_action",{action:t})))}(_);case"backup":return void await function(o){return async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.listBackups().map(o=>{const t=new Date(o.mtimeMs).toISOString();return`${e.cyan(o.name)} ${e.gray(t)}`});return void f(l.t("config.backup_list_title"),o)}if("create"===t||"snapshot"===t){const o=r.createBackup(n);return void console.log(e.green(l.t("config.backup_created",{path:o})))}if("restore"===t)return n?void await a({description:l.t("config.backup_restore_dry_run",{name:n}),json:{action:"backup_restore",name:n},apply:async()=>{await c({message:l.t("config.backup_restore_confirm",{name:n}),defaultValue:!1})?(r.restoreBackup(n),console.log(e.green(l.t("config.backup_restored",{name:n})))):console.log(e.yellow(l.t("config.backup_restore_aborted")))}}):void console.log(e.red(l.t("config.backup_restore_missing_name")));console.log(e.red(l.t("config.unknown_action",{action:t})))}(o)}(_)}"claude-code"!==p&&"claude-code"!==_[0]?i[p]?await m(p,u):(console.error(e.red(l.t("config.unknown_command",{command:p}))),console.log(e.gray(l.t("config.usage_hint"))),Object.values(i).forEach(o=>{console.log(e.gray(` - ${o.name}: ${o.displayName}`))})):await m("claude-code",u)}else await async function(t){if(t.nonInteractive)return void console.log(e.red(l.t("config.requires_argument")));const{selectedTool:n}=await o.prompt([{type:"list",name:"selectedTool",message:l.t("wizard.select_tool"),choices:Object.values(i).map(o=>({name:`${o.displayName} (${o.name})`,value:o.name}))}]);await m(n,t)}(u)}
1
+ import o from"inquirer";import e from"chalk";import{wizard as t}from"../lib/wizard.js";import{toolManager as n,SUPPORTED_TOOLS as l}from"../lib/tool-manager.js";import{i18n as i}from"../lib/i18n.js";import{configManager as r,DEFAULT_PROFILE_NAME as s}from"../lib/config.js";import{confirmAction as a,applyOrDryRun as c}from"../lib/confirm.js";const f=/^[a-zA-Z0-9._-]+$/;function d(o,e){const t=(o||"").trim();if(!t||!f.test(t))throw new Error(i.t(`config.${e}_invalid_name`,{name:t||"<empty>"}));return t}function g(o,t){console.log("\n"+e.bold(o)),0!==t.length?t.forEach(o=>console.log(" "+o)):console.log(e.gray(" ("+i.t("config.empty_list")+")"))}function u(o,t){if("backups"===t){const t=n.listToolBackups(o).flatMap(o=>{const t=o.file.replace(/^.*[/\\]/,"");return o.backups.length?o.backups.map(o=>`${e.cyan(t)} ${e.gray(o.name.split(".bak-")[1]||o.name)}`):[`${e.cyan(t)} ${e.gray("("+i.t("config.empty_list")+")")}`]});return void g(i.t("config.tool_backups_title",{tool:l[o].displayName}),t)}const r=n.restorePrivateConfig(o).filter(o=>o.result.restored);0!==r.length?(console.log(e.green(i.t("config.config_restored",{tool:l[o].displayName}))),r.forEach(o=>console.log(e.gray(` ${o.file} ← ${o.result.from}`)))):console.log(e.yellow(i.t("config.restore_no_backup",{tool:l[o].displayName})))}async function m(s,c,f){if(!l[s])return void console.log(e.red(i.t("config.unknown_tool",{tool:s})));const d=(c[0]||"").toLowerCase();if("backups"!==d&&"list-backups"!==d){if("restore"===d){if(!await a({message:i.t("config.confirm_restore",{tool:l[s].displayName}),defaultValue:!1}))return;return void u(s,"restore")}if(!n.isToolInstalled(s)){if(f.nonInteractive)return void console.log(e.yellow(i.t("wizard.tool_not_installed",{tool:l[s].displayName})));console.log(e.yellow(i.t("wizard.tool_not_installed",{tool:l[s].displayName})));const{shouldInstall:t}=await o.prompt([{type:"confirm",name:"shouldInstall",message:i.t("wizard.install_tool_confirm"),default:!0}]);if(!t)return void console.log(e.yellow(i.t("wizard.install_skipped")));try{await n.installTool(s)}catch(o){return console.error(e.red(i.t("install.install_failed_detail"))),void(o instanceof Error&&o.message&&console.error(e.gray(o.message)))}}if(f.nonInteractive){const o=r.getApiKey();return o?(n.loadPrivateConfig(s,o,r.getModelsForTool(s)),void console.log(e.green(i.t("config.tool_config_loaded",{tool:l[s].displayName})))):void console.log(e.red(i.t("wizard.api_key_required")))}await t.showToolMenu(s)}else u(s,"backups")}export async function configCommand(t){const{positional:n,options:u}=function(o){const e=[],t={};for(const n of o)"--non-interactive"===n||"-y"===n?t.nonInteractive=!0:e.push(n);return{positional:e,options:t}}(t),p=n[0],_=n.slice(1);if(p){switch(p){case"profile":return void await async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.getActiveProfileName(),t=r.listProfiles().map(t=>{const n=t===o;return`${n?e.green("●"):e.gray("○")} ${t}${n?e.gray(" ("+i.t("config.profile_active_label")+")"):""}`});return void g(i.t("config.profile_list_title"),t)}if("create"===t){const o=d(n,"profile");return r.listProfiles().includes(o)?void console.log(e.yellow(i.t("config.profile_exists",{name:o}))):(r.createProfile(o),void console.log(e.green(i.t("config.profile_created",{name:o}))))}if("use"===t){const o=d(n,"profile");return r.setActiveProfile(o),void console.log(e.green(i.t("config.profile_activated",{name:o})))}if("delete"===t||"remove"===t){const o=d(n,"profile");return o===s&&1===r.listProfiles().length?void console.log(e.yellow(i.t("config.profile_cannot_delete_last"))):void await c({description:i.t("config.profile_delete_dry_run",{name:o}),json:{action:"profile_delete",name:o},apply:async()=>{await a({message:i.t("config.profile_delete_confirm",{name:o}),defaultValue:!1})?(r.deleteProfile(o),console.log(e.green(i.t("config.profile_deleted",{name:o})))):console.log(e.yellow(i.t("config.profile_delete_aborted")))}})}console.log(e.red(i.t("config.unknown_action",{action:t})))}(_);case"preset":return void function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=Object.entries(r.getCustomPresets()).map(([o,t])=>`${e.cyan(o)} ${e.gray(`H:${t.models.haiku} S:${t.models.sonnet} O:${t.models.opus}`)}`);return void g(i.t("config.preset_list_title"),o)}if("save"===t){const o=d(n,"preset");return r.saveCustomPreset(o,r.getModels()),void console.log(e.green(i.t("config.preset_saved",{name:o})))}if("use"===t||"apply"===t){const o=d(n,"preset"),t=r.getCustomPresets()[o];return t?(r.setModels(t.models),void console.log(e.green(i.t("config.preset_applied",{name:o})))):void console.log(e.red(i.t("config.preset_not_found",{name:o})))}if("delete"===t||"remove"===t){const o=d(n,"preset");return r.deleteCustomPreset(o),void console.log(e.green(i.t("config.preset_deleted",{name:o})))}console.log(e.red(i.t("config.unknown_action",{action:t})))}(_);case"tool-model":return void function(o){const t=o[0];if(!t||"list"===t){const o=r.getProfile().tool_models||{},t=Object.entries(o).map(([o,t])=>{const n=Object.entries(t).map(([o,e])=>`${o}=${e}`).join(" ");return`${e.cyan(o)} ${e.gray(n)}`});return void g(i.t("config.tool_model_list_title"),t)}if("set"===t){const t=(o[1]||"").trim(),n=o.length>=4?(o[2]||"").trim():"opus",s=(o.length>=4?o[3]:o[2]||"").trim();return l[t]?s&&f.test(n)?(r.setToolModel(t,{[n]:s}),void console.log(e.green(i.t("config.tool_model_set",{tool:t,slot:n,model:s})))):void console.log(e.red(i.t("config.tool_model_usage"))):void console.log(e.red(i.t("config.unknown_tool",{tool:t})))}if("clear"===t||"remove"===t){const t=(o[1]||"").trim();return l[t]?(r.setToolModel(t,null),void console.log(e.green(i.t("config.tool_model_cleared",{tool:t})))):void console.log(e.red(i.t("config.unknown_tool",{tool:t})))}console.log(e.red(i.t("config.unknown_action",{action:t})))}(_);case"backup":return void await function(o){return async function(o){const t=o[0],n=o[1];if(!t||"list"===t){const o=r.listBackups().map(o=>{const t=new Date(o.mtimeMs).toISOString();return`${e.cyan(o.name)} ${e.gray(t)}`});return void g(i.t("config.backup_list_title"),o)}if("create"===t||"snapshot"===t){const o=r.createBackup(n);return void console.log(e.green(i.t("config.backup_created",{path:o})))}if("restore"===t)return n?void await c({description:i.t("config.backup_restore_dry_run",{name:n}),json:{action:"backup_restore",name:n},apply:async()=>{await a({message:i.t("config.backup_restore_confirm",{name:n}),defaultValue:!1})?(r.restoreBackup(n),console.log(e.green(i.t("config.backup_restored",{name:n})))):console.log(e.yellow(i.t("config.backup_restore_aborted")))}}):void console.log(e.red(i.t("config.backup_restore_missing_name")));console.log(e.red(i.t("config.unknown_action",{action:t})))}(o)}(_)}"claude-code"!==p&&"claude-code"!==_[0]?l[p]?await m(p,_,u):(console.error(e.red(i.t("config.unknown_command",{command:p}))),console.log(e.gray(i.t("config.usage_hint"))),Object.values(l).forEach(o=>{console.log(e.gray(` - ${o.name}: ${o.displayName}`))})):await m("claude-code",_,u)}else await async function(t){if(t.nonInteractive)return void console.log(e.red(i.t("config.requires_argument")));const{selectedTool:n}=await o.prompt([{type:"list",name:"selectedTool",message:i.t("wizard.select_tool"),choices:Object.values(l).map(o=>({name:`${o.displayName} (${o.name})`,value:o.name}))}]);await m(n,[],t)}(u)}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,6 @@ export declare class OpenCodeManager {
25
25
  private configPath;
26
26
  private constructor();
27
27
  static getInstance(): OpenCodeManager;
28
- /**
29
- * 确保配置目录存在
30
- */
31
- private ensureConfigDir;
32
28
  /**
33
29
  * 读取配置
34
30
  */
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as n,readFileSync as i,writeFileSync as t}from"fs";import{join as o,dirname as r}from"path";import{homedir as a}from"os";import{logger as s}from"../utils/logger.js";import{configManager as p,DEFAULT_MODELS as c}from"./config.js";export class OpenCodeManager{static instance;configPath;constructor(){this.configPath=o(a(),".config","opencode","opencode.json")}static getInstance(){return OpenCodeManager.instance||(OpenCodeManager.instance=new OpenCodeManager),OpenCodeManager.instance}ensureConfigDir(){const i=r(this.configPath);e(i)||n(i,{recursive:!0})}getConfig(){try{if(e(this.configPath)){const e=i(this.configPath,"utf-8");return JSON.parse(e)}}catch(e){s.warn("Failed to read OpenCode config:",e),s.logError("OpenCodeManager.getConfig",e)}return{}}saveConfig(e){try{this.ensureConfigDir(),t(this.configPath,JSON.stringify(e,null,4),"utf-8")}catch(e){throw new Error(`Failed to save OpenCode config: ${e}`)}}loadPrivateConfig(e,n){const i=this.getConfig(),{provider:t,...o}=i,r={};if(t)for(const[e,n]of Object.entries(t))"private-newapi"!==e&&(r[e]=n);r["private-newapi"]={options:{apiKey:e,baseURL:p.getBaseUrl()}};const a={$schema:"https://opencode.ai/config.json",...o,provider:r,model:`private-newapi/${n.opus||c.opus}`,small_model:`private-newapi/${n.haiku||c.haiku}`};this.saveConfig(a)}unloadPrivateConfig(){const e=this.getConfig();e.provider&&(delete e.provider["private-newapi"],0===Object.keys(e.provider).length&&delete e.provider),e.model?.includes("private-newapi")&&delete e.model,e.small_model?.includes("private-newapi")&&delete e.small_model,this.saveConfig(e)}detectCurrentConfig(){try{const e=this.getConfig();if(!e.provider)return{apiKey:null};let n=null;return e.provider["private-newapi"]&&(n=e.provider["private-newapi"].options?.apiKey||null),{apiKey:n}}catch{return{apiKey:null}}}}export const openCodeManager=OpenCodeManager.getInstance();
1
+ import{existsSync as e,readFileSync as o}from"fs";import{join as n}from"path";import{homedir as t}from"os";import{logger as i}from"../utils/logger.js";import{configManager as r,DEFAULT_MODELS as a}from"./config.js";import{atomicWriteFile as p}from"./tools/backup.js";export class OpenCodeManager{static instance;configPath;constructor(){this.configPath=n(t(),".config","opencode","opencode.json")}static getInstance(){return OpenCodeManager.instance||(OpenCodeManager.instance=new OpenCodeManager),OpenCodeManager.instance}getConfig(){try{if(e(this.configPath)){const e=o(this.configPath,"utf-8");return JSON.parse(e)}}catch(e){i.warn("Failed to read OpenCode config:",e),i.logError("OpenCodeManager.getConfig",e)}return{}}saveConfig(e){try{p(this.configPath,JSON.stringify(e,null,4))}catch(e){throw new Error(`Failed to save OpenCode config: ${e}`)}}loadPrivateConfig(e,o){const n=this.getConfig(),{provider:t,...i}=n,p={};if(t)for(const[e,o]of Object.entries(t))"private-newapi"!==e&&(p[e]=o);p["private-newapi"]={options:{apiKey:e,baseURL:r.getBaseUrl()}};const s={$schema:"https://opencode.ai/config.json",...i,provider:p,model:`private-newapi/${o.opus||a.opus}`,small_model:`private-newapi/${o.haiku||a.haiku}`};this.saveConfig(s)}unloadPrivateConfig(){const e=this.getConfig();e.provider&&(delete e.provider["private-newapi"],0===Object.keys(e.provider).length&&delete e.provider),e.model?.includes("private-newapi")&&delete e.model,e.small_model?.includes("private-newapi")&&delete e.small_model,this.saveConfig(e)}detectCurrentConfig(){try{const e=this.getConfig();if(!e.provider)return{apiKey:null};let o=null;return e.provider["private-newapi"]&&(o=e.provider["private-newapi"].options?.apiKey||null),{apiKey:o}}catch{return{apiKey:null}}}}export const openCodeManager=OpenCodeManager.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-manager.js","sourceRoot":"","sources":["../../src/lib/opencode-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-manager.js","sourceRoot":"","sources":["../../src/lib/opencode-manager.ts"],"names":[],"mappings":"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"}