@vibeapi/api-helper 0.0.20 → 0.0.23

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.
Files changed (69) hide show
  1. package/LICENSE +25 -25
  2. package/README.md +35 -1
  3. package/dist/__tests__/api-validator.test.js +1 -1
  4. package/dist/__tests__/api-validator.test.js.map +1 -1
  5. package/dist/__tests__/claude-code-manager.test.js +1 -1
  6. package/dist/__tests__/claude-code-manager.test.js.map +1 -1
  7. package/dist/__tests__/model-registry.test.js +1 -1
  8. package/dist/__tests__/model-registry.test.js.map +1 -1
  9. package/dist/__tests__/tool-adapters.test.d.ts +1 -0
  10. package/dist/__tests__/tool-adapters.test.js +1 -0
  11. package/dist/__tests__/tool-adapters.test.js.map +1 -0
  12. package/dist/commands/auth.js +1 -1
  13. package/dist/commands/auth.js.map +1 -1
  14. package/dist/commands/config.js +1 -1
  15. package/dist/commands/config.js.map +1 -1
  16. package/dist/lib/api-validator.d.ts +13 -0
  17. package/dist/lib/api-validator.js +1 -1
  18. package/dist/lib/api-validator.js.map +1 -1
  19. package/dist/lib/brand.d.ts +13 -0
  20. package/dist/lib/brand.js +1 -0
  21. package/dist/lib/brand.js.map +1 -0
  22. package/dist/lib/claude-code-manager.js +1 -1
  23. package/dist/lib/claude-code-manager.js.map +1 -1
  24. package/dist/lib/config.d.ts +13 -1
  25. package/dist/lib/config.js +1 -1
  26. package/dist/lib/config.js.map +1 -1
  27. package/dist/lib/model-registry.d.ts +14 -0
  28. package/dist/lib/model-registry.js +1 -1
  29. package/dist/lib/model-registry.js.map +1 -1
  30. package/dist/lib/tool-manager.d.ts +10 -3
  31. package/dist/lib/tool-manager.js +1 -1
  32. package/dist/lib/tool-manager.js.map +1 -1
  33. package/dist/lib/tools/atomcode.d.ts +2 -0
  34. package/dist/lib/tools/atomcode.js +1 -0
  35. package/dist/lib/tools/atomcode.js.map +1 -0
  36. package/dist/lib/tools/backup.d.ts +12 -0
  37. package/dist/lib/tools/backup.js +1 -0
  38. package/dist/lib/tools/backup.js.map +1 -0
  39. package/dist/lib/tools/claude-code.d.ts +3 -0
  40. package/dist/lib/tools/claude-code.js +1 -0
  41. package/dist/lib/tools/claude-code.js.map +1 -0
  42. package/dist/lib/tools/codex.d.ts +2 -0
  43. package/dist/lib/tools/codex.js +1 -0
  44. package/dist/lib/tools/codex.js.map +1 -0
  45. package/dist/lib/tools/hermes.d.ts +2 -0
  46. package/dist/lib/tools/hermes.js +1 -0
  47. package/dist/lib/tools/hermes.js.map +1 -0
  48. package/dist/lib/tools/openclaw.d.ts +2 -0
  49. package/dist/lib/tools/openclaw.js +1 -0
  50. package/dist/lib/tools/openclaw.js.map +1 -0
  51. package/dist/lib/tools/opencode.d.ts +3 -0
  52. package/dist/lib/tools/opencode.js +1 -0
  53. package/dist/lib/tools/opencode.js.map +1 -0
  54. package/dist/lib/tools/registry.d.ts +4 -0
  55. package/dist/lib/tools/registry.js +1 -0
  56. package/dist/lib/tools/registry.js.map +1 -0
  57. package/dist/lib/tools/types.d.ts +69 -0
  58. package/dist/lib/tools/types.js +1 -0
  59. package/dist/lib/tools/types.js.map +1 -0
  60. package/dist/lib/wizard.d.ts +13 -0
  61. package/dist/lib/wizard.js +1 -1
  62. package/dist/lib/wizard.js.map +1 -1
  63. package/dist/locales/en_US.json +290 -278
  64. package/dist/locales/zh_CN.json +289 -277
  65. package/dist/models.json +17 -18
  66. package/dist/settings-template.json +2 -1
  67. package/models.json +17 -18
  68. package/package.json +2 -1
  69. package/settings-template.json +2 -1
package/LICENSE CHANGED
@@ -1,25 +1,25 @@
1
- # Proprietary Software License
2
-
3
- Copyright (c) 2024 VibeAPI. All rights reserved.
4
-
5
- This software and associated documentation files (the "Software") are proprietary and confidential.
6
-
7
- ## Restrictions
8
-
9
- 1. **No Redistribution**: You may not redistribute, sublicense, or transfer the Software to any third party.
10
- 2. **No Modification**: You may not modify, adapt, or create derivative works based on the Software.
11
- 3. **No Reverse Engineering**: You may not reverse engineer, decompile, or disassemble the Software.
12
- 4. **Usage Rights**: Usage rights are granted only through official channels (npm installation).
13
-
14
- ## Permitted Use
15
-
16
- - Installation via npm/npx for personal or commercial use
17
- - Usage as intended by the Software's functionality
18
-
19
- ## Disclaimer
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
-
23
- ## Contact
24
-
25
- For licensing inquiries: https://www.vibeapi.cn/
1
+ # Proprietary Software License
2
+
3
+ Copyright (c) 2024 VibeAPI. All rights reserved.
4
+
5
+ This software and associated documentation files (the "Software") are proprietary and confidential.
6
+
7
+ ## Restrictions
8
+
9
+ 1. **No Redistribution**: You may not redistribute, sublicense, or transfer the Software to any third party.
10
+ 2. **No Modification**: You may not modify, adapt, or create derivative works based on the Software.
11
+ 3. **No Reverse Engineering**: You may not reverse engineer, decompile, or disassemble the Software.
12
+ 4. **Usage Rights**: Usage rights are granted only through official channels (npm installation).
13
+
14
+ ## Permitted Use
15
+
16
+ - Installation via npm/npx for personal or commercial use
17
+ - Usage as intended by the Software's functionality
18
+
19
+ ## Disclaimer
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
+
23
+ ## Contact
24
+
25
+ For licensing inquiries: https://www.vibeapi.cn/
package/README.md CHANGED
@@ -15,7 +15,8 @@ CLI 名:`chelper`(也可用 `api-helper`)。
15
15
  - **加密密钥存储**:`~/.chelper/secrets.enc`(AES-256-GCM + scrypt,绑定 username:hostname,权限 `0o600`)
16
16
  - **预设(Preset)**:保存任意模型组合,一键切换
17
17
  - **配置备份**:手动 + 自动滚动备份,附带加密快照,支持还原
18
- - **多工具集成**:一键把当前 profile 的配置注入 Claude Code / OpenCode
18
+ - **多工具集成**:一键把当前 profile 的配置注入 Claude Code / OpenCode / Codex / OpenClaw / Hermes / AtomCode
19
+ - **灵活模型配置**:自定义模型槽位、向导自由输入、按工具独立映射模型(`tool-model`)
19
20
  - **CI 友好**:所有命令支持 `--json` / `--non-interactive` / `--yes` / `--dry-run` / `--no-color`
20
21
  - **可观测**:每日轮转日志、`bench` 端点延时基准、`update` npm 版本检查、`doctor` 健康巡检
21
22
  - **i18n**:中英双语(`zh_CN` / `en_US`),随系统 locale 自动选择
@@ -99,9 +100,41 @@ chelper config backup restore <name> # 支持 --dry-run / --yes
99
100
  ```bash
100
101
  chelper config claude-code
101
102
  chelper config opencode
103
+ chelper config codex
104
+ chelper config openclaw
105
+ chelper config hermes
106
+ chelper config atomcode
102
107
  chelper config claude-code --non-interactive # CI 模式:直接注入当前配置
103
108
  ```
104
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
+
105
138
  ### 运维
106
139
 
107
140
  | 命令 | 说明 |
@@ -257,6 +290,7 @@ chelper config backup restore before-experiment-... --yes
257
290
 
258
291
  - [CHANGELOG](./CHANGELOG.md) — 版本变更记录
259
292
  - [PUBLISH.md](./PUBLISH.md) — 发布流程
293
+ - [docs/state-machines.md](./docs/state-machines.md) — SecretStore / API Key / Backup / Profile 状态机参考
260
294
  - 主页:<https://www.vibeapi.cn/>
261
295
  - 反馈:<https://www.vibeapi.cn/support>
262
296
 
@@ -1 +1 @@
1
- import{describe as e,it as o,expect as r,vi as t,afterEach as s}from"vitest";import{validateApiKey as a}from"../lib/api-validator.js";e("API Validator",()=>{const e=globalThis.fetch;s(()=>{globalThis.fetch=e,t.restoreAllMocks()}),o("should return valid for successful response",async()=>{globalThis.fetch=t.fn().mockResolvedValue({ok:!0,status:200,json:()=>Promise.resolve({object:"list",data:[]})});const e=await a("valid-key",{retries:0});r(e.valid).toBe(!0)}),o("should return invalid for 401 response",async()=>{globalThis.fetch=t.fn().mockResolvedValue({ok:!1,status:401,statusText:"Unauthorized"});const e=await a("invalid-key",{retries:0});r(e.valid).toBe(!1),r(e.error).toBe("invalid_api_key")}),o("should return network error for fetch failure",async()=>{globalThis.fetch=t.fn().mockRejectedValue(new Error("fetch failed"));const e=await a("any-key",{retries:0});r(e.valid).toBe(!1),r(e.error).toBe("network_error")}),o("should return network error for timeout",async()=>{const e=new Error("The operation was aborted");e.name="AbortError",globalThis.fetch=t.fn().mockRejectedValue(e);const o=await a("any-key",{retries:0});r(o.valid).toBe(!1),r(o.error).toBe("network_error"),r(o.message).toBe("Request timeout")}),o("should handle non-200 non-401 responses",async()=>{globalThis.fetch=t.fn().mockResolvedValue({ok:!1,status:500,statusText:"Internal Server Error"});const e=await a("any-key",{retries:0});r(e.valid).toBe(!1),r(e.error).toBe("unknown_error")}),o("should retry on network error and eventually succeed",async()=>{const e=t.fn().mockRejectedValueOnce(new Error("connect ETIMEDOUT")).mockRejectedValueOnce(new Error("connect ECONNRESET")).mockResolvedValueOnce({ok:!0,status:200,json:()=>Promise.resolve({object:"list"})}),o=await a("k",{retries:2,backoffMs:0,fetchFn:e,sleepFn:()=>Promise.resolve()});r(o.valid).toBe(!0),r(e).toHaveBeenCalledTimes(3)}),o("should NOT retry on invalid_api_key",async()=>{const e=t.fn().mockResolvedValue({ok:!1,status:401,statusText:"Unauthorized"}),o=await a("k",{retries:5,backoffMs:0,fetchFn:e,sleepFn:()=>Promise.resolve()});r(o.error).toBe("invalid_api_key"),r(e).toHaveBeenCalledTimes(1)})});
1
+ import{describe as e,it as o,expect as t,vi as r,afterEach as s}from"vitest";import{validateApiKey as a,fetchModels as n}from"../lib/api-validator.js";e("API Validator",()=>{const l=globalThis.fetch;s(()=>{globalThis.fetch=l,r.restoreAllMocks()}),o("should return valid for successful response",async()=>{globalThis.fetch=r.fn().mockResolvedValue({ok:!0,status:200,json:()=>Promise.resolve({object:"list",data:[]})});const e=await a("valid-key",{retries:0});t(e.valid).toBe(!0)}),o("should return invalid for 401 response",async()=>{globalThis.fetch=r.fn().mockResolvedValue({ok:!1,status:401,statusText:"Unauthorized"});const e=await a("invalid-key",{retries:0});t(e.valid).toBe(!1),t(e.error).toBe("invalid_api_key")}),o("should return network error for fetch failure",async()=>{globalThis.fetch=r.fn().mockRejectedValue(new Error("fetch failed"));const e=await a("any-key",{retries:0});t(e.valid).toBe(!1),t(e.error).toBe("network_error")}),o("should return network error for timeout",async()=>{const e=new Error("The operation was aborted");e.name="AbortError",globalThis.fetch=r.fn().mockRejectedValue(e);const o=await a("any-key",{retries:0});t(o.valid).toBe(!1),t(o.error).toBe("network_error"),t(o.message).toBe("Request timeout")}),o("should handle non-200 non-401 responses",async()=>{globalThis.fetch=r.fn().mockResolvedValue({ok:!1,status:500,statusText:"Internal Server Error"});const e=await a("any-key",{retries:0});t(e.valid).toBe(!1),t(e.error).toBe("unknown_error")}),o("should retry on network error and eventually succeed",async()=>{const e=r.fn().mockRejectedValueOnce(new Error("connect ETIMEDOUT")).mockRejectedValueOnce(new Error("connect ECONNRESET")).mockResolvedValueOnce({ok:!0,status:200,json:()=>Promise.resolve({object:"list"})}),o=await a("k",{retries:2,backoffMs:0,fetchFn:e,sleepFn:()=>Promise.resolve()});t(o.valid).toBe(!0),t(e).toHaveBeenCalledTimes(3)}),o("should NOT retry on invalid_api_key",async()=>{const e=r.fn().mockResolvedValue({ok:!1,status:401,statusText:"Unauthorized"}),o=await a("k",{retries:5,backoffMs:0,fetchFn:e,sleepFn:()=>Promise.resolve()});t(o.error).toBe("invalid_api_key"),t(e).toHaveBeenCalledTimes(1)}),e("fetchModels",()=>{o("returns the model ids from /v1/models",async()=>{const e=r.fn().mockResolvedValue({ok:!0,status:200,json:()=>Promise.resolve({object:"list",data:[{id:"gpt-5.5"},{id:"glm-5.2"},{id:""},{notId:1}]})}),o=await n("k",{fetchFn:e});t(o.ok).toBe(!0),t(o.models).toEqual(["gpt-5.5","glm-5.2"])}),o("returns ok=false on non-2xx",async()=>{const e=r.fn().mockResolvedValue({ok:!1,status:401}),o=await n("bad",{fetchFn:e});t(o.ok).toBe(!1),t(o.models).toEqual([])}),o("returns ok=false on network error",async()=>{const e=r.fn().mockRejectedValue(new Error("boom")),o=await n("k",{fetchFn:e});t(o.ok).toBe(!1)})})});
@@ -1 +1 @@
1
- {"version":3,"file":"api-validator.test.js","sourceRoot":"","sources":["../../src/__tests__/api-validator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-validator.test.js","sourceRoot":"","sources":["../../src/__tests__/api-validator.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{describe as e,it as t,expect as n,beforeEach as o,afterEach as s,vi as r}from"vitest";import{mkdirSync as i,rmSync as a,existsSync as O,readFileSync as g}from"fs";import{join as d}from"path";import{tmpdir as c}from"os";const C=d(c(),`chelper-cc-${Date.now()}-${Math.random().toString(36).slice(2)}`);r.mock("os",async()=>({...await r.importActual("os"),homedir:()=>C})),e("ClaudeCodeManager",()=>{let e;o(async()=>{i(C,{recursive:!0}),({claudeCodeManager:e}=await import("../lib/claude-code-manager.js"))}),s(()=>{try{a(C,{recursive:!0,force:!0})}catch{}}),t("returns empty settings when file is missing",()=>{const t=e.getSettings();n(t).toEqual({})}),t("persists and reads settings via atomic write",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk",FOO:"bar"}});const t=d(C,".claude","settings.json");n(O(t)).toBe(!0);const o=JSON.parse(g(t,"utf-8"));n(o.env.ANTHROPIC_AUTH_TOKEN).toBe("tk");const s=e.getSettings();n(s.env?.ANTHROPIC_AUTH_TOKEN).toBe("tk")}),t("returns empty MCP config when file is missing",()=>{n(e.getMCPConfig()).toEqual({})}),t("marks onboarding completed and stores api credentials",()=>{e.loadPrivateConfig("sk-test",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"});const t=e.getSettings();n(t.env?.ANTHROPIC_AUTH_TOKEN).toBe("sk-test"),n(t.env?.ANTHROPIC_DEFAULT_HAIKU_MODEL).toBe("h"),n(t.env?.ANTHROPIC_DEFAULT_SONNET_MODEL).toBe("s"),n(t.env?.ANTHROPIC_DEFAULT_OPUS_MODEL).toBe("o"),n(t.env?.ANTHROPIC_REASONING_MODEL).toBe("r");const o=e.getMCPConfig();n(o.hasCompletedOnboarding).toBe(!0)}),t("removes private env vars on unload but preserves user vars",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk",ANTHROPIC_BASE_URL:"https://x",CUSTOM_FLAG:"keep-me"}}),e.unloadPrivateConfig();const t=e.getSettings();n(t.env?.ANTHROPIC_AUTH_TOKEN).toBeUndefined(),n(t.env?.ANTHROPIC_BASE_URL).toBeUndefined(),n(t.env?.CUSTOM_FLAG).toBe("keep-me")}),t("drops env field entirely when no vars remain after unload",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk"}}),e.unloadPrivateConfig();const t=e.getSettings();n(t.env).toBeUndefined()}),t("detectCurrentConfig returns null when no token configured",()=>{const t=e.detectCurrentConfig();n(t.apiKey).toBeNull()}),t("detectCurrentConfig returns the configured token",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"sk-detect"}}),n(e.detectCurrentConfig().apiKey).toBe("sk-detect")}),t("experimental feature: set / get / remove are idempotent",()=>{e.setExperimentalFeature("FOO_FLAG","1"),n(e.getExperimentalFeature("FOO_FLAG")).toBe("1"),e.setExperimentalFeature("FOO_FLAG","1"),n(e.getExperimentalFeature("FOO_FLAG")).toBe("1"),e.removeExperimentalFeature("FOO_FLAG"),n(e.getExperimentalFeature("FOO_FLAG")).toBeUndefined(),n(()=>e.removeExperimentalFeature("FOO_FLAG")).not.toThrow()}),t("saveMCPConfig persists onto disk",()=>{e.saveMCPConfig({hasCompletedOnboarding:!0});const t=d(C,".claude.json");n(O(t)).toBe(!0);const o=JSON.parse(g(t,"utf-8"));n(o.hasCompletedOnboarding).toBe(!0)})});
1
+ import{describe as e,it as t,expect as n,beforeEach as o,afterEach as s,vi as i}from"vitest";import{mkdirSync as a,rmSync as r,existsSync as O,readFileSync as g}from"fs";import{join as l}from"path";import{tmpdir as d}from"os";const v=l(d(),`chelper-cc-${Date.now()}-${Math.random().toString(36).slice(2)}`);i.mock("os",async()=>({...await i.importActual("os"),homedir:()=>v})),e("ClaudeCodeManager",()=>{let e;o(async()=>{a(v,{recursive:!0}),({claudeCodeManager:e}=await import("../lib/claude-code-manager.js"))}),s(()=>{try{r(v,{recursive:!0,force:!0})}catch{}}),t("returns empty settings when file is missing",()=>{const t=e.getSettings();n(t).toEqual({})}),t("persists and reads settings via atomic write",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk",FOO:"bar"}});const t=l(v,".claude","settings.json");n(O(t)).toBe(!0);const o=JSON.parse(g(t,"utf-8"));n(o.env.ANTHROPIC_AUTH_TOKEN).toBe("tk");const s=e.getSettings();n(s.env?.ANTHROPIC_AUTH_TOKEN).toBe("tk")}),t("returns empty MCP config when file is missing",()=>{n(e.getMCPConfig()).toEqual({})}),t("marks onboarding completed and stores api credentials",()=>{e.loadPrivateConfig("sk-test",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"});const t=e.getSettings();n(t.env?.ANTHROPIC_AUTH_TOKEN).toBe("sk-test"),n(t.env?.ANTHROPIC_DEFAULT_HAIKU_MODEL).toBe("h"),n(t.env?.ANTHROPIC_DEFAULT_SONNET_MODEL).toBe("s"),n(t.env?.ANTHROPIC_DEFAULT_OPUS_MODEL).toBe("o"),n(t.env?.ANTHROPIC_MODEL).toBe("o");const o=e.getMCPConfig();n(o.hasCompletedOnboarding).toBe(!0)}),t("always writes the model env vars, even for default models",async()=>{const{DEFAULT_MODELS:t}=await import("../lib/config.js");e.loadPrivateConfig("sk-test",{...t});const o=e.getSettings();n(o.env?.ANTHROPIC_AUTH_TOKEN).toBe("sk-test"),n(o.env?.ANTHROPIC_BASE_URL).toBeDefined(),n(o.env?.ANTHROPIC_DEFAULT_HAIKU_MODEL).toBe(t.haiku),n(o.env?.ANTHROPIC_DEFAULT_SONNET_MODEL).toBe(t.sonnet),n(o.env?.ANTHROPIC_DEFAULT_OPUS_MODEL).toBe(t.opus),n(o.env?.ANTHROPIC_MODEL).toBe(t.opus),n(t.opus).toContain("[1m]")}),t("refreshes model env vars on reload (no stale values)",async()=>{const{DEFAULT_MODELS:t}=await import("../lib/config.js");e.loadPrivateConfig("sk-test",{...t,opus:"glm-5",sonnet:"glm-5",haiku:"glm-5"}),n(e.getSettings().env?.ANTHROPIC_MODEL).toBe("glm-5"),e.loadPrivateConfig("sk-test",{...t}),n(e.getSettings().env?.ANTHROPIC_MODEL).toBe(t.opus)}),t("applies the top-level model from settings-template.json",()=>{e.loadPrivateConfig("sk-test",{haiku:"h",sonnet:"s",opus:"o",reasoning:"r"}),n(e.getSettings().model).toBe("opus[1m]")}),t("removes private env vars on unload but preserves user vars",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk",ANTHROPIC_BASE_URL:"https://x",CUSTOM_FLAG:"keep-me"}}),e.unloadPrivateConfig();const t=e.getSettings();n(t.env?.ANTHROPIC_AUTH_TOKEN).toBeUndefined(),n(t.env?.ANTHROPIC_BASE_URL).toBeUndefined(),n(t.env?.CUSTOM_FLAG).toBe("keep-me")}),t("drops env field entirely when no vars remain after unload",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"tk"}}),e.unloadPrivateConfig();const t=e.getSettings();n(t.env).toBeUndefined()}),t("detectCurrentConfig returns null when no token configured",()=>{const t=e.detectCurrentConfig();n(t.apiKey).toBeNull()}),t("detectCurrentConfig returns the configured token",()=>{e.saveSettings({env:{ANTHROPIC_AUTH_TOKEN:"sk-detect"}}),n(e.detectCurrentConfig().apiKey).toBe("sk-detect")}),t("experimental feature: set / get / remove are idempotent",()=>{e.setExperimentalFeature("FOO_FLAG","1"),n(e.getExperimentalFeature("FOO_FLAG")).toBe("1"),e.setExperimentalFeature("FOO_FLAG","1"),n(e.getExperimentalFeature("FOO_FLAG")).toBe("1"),e.removeExperimentalFeature("FOO_FLAG"),n(e.getExperimentalFeature("FOO_FLAG")).toBeUndefined(),n(()=>e.removeExperimentalFeature("FOO_FLAG")).not.toThrow()}),t("saveMCPConfig persists onto disk",()=>{e.saveMCPConfig({hasCompletedOnboarding:!0});const t=l(v,".claude.json");n(O(t)).toBe(!0);const o=JSON.parse(g(t,"utf-8"));n(o.hasCompletedOnboarding).toBe(!0)})});
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/claude-code-manager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/claude-code-manager.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{describe as e,it as o,expect as t,afterEach as r}from"vitest";import{getDefaultModels as s,getPresets as n,resolvePreset as l,reloadRegistry as d}from"../lib/model-registry.js";e("ModelRegistry",()=>{r(()=>{d()}),o("should return default models",()=>{const e=s();t(e).toHaveProperty("haiku"),t(e).toHaveProperty("sonnet"),t(e).toHaveProperty("opus"),t(e).toHaveProperty("reasoning"),t(typeof e.haiku).toBe("string"),t(typeof e.sonnet).toBe("string")}),o("should return presets array",()=>{const e=n();t(Array.isArray(e)).toBe(!0),t(e.length).toBeGreaterThan(0)}),o("should have at least one recommended preset",()=>{const e=n().filter(e=>e.recommended);t(e.length).toBeGreaterThan(0)}),o("should resolve single-model preset correctly",()=>{const e=l({name:"Test",model:"test-model"});t(e.haiku).toBe("test-model"),t(e.sonnet).toBe("test-model"),t(e.opus).toBe("test-model"),t(e.reasoning).toBe("test-model")}),o("should resolve multi-model preset correctly",()=>{const e=l({name:"Test",models:{haiku:"h-model",sonnet:"s-model",opus:"o-model",reasoning:"r-model"}});t(e.haiku).toBe("h-model"),t(e.sonnet).toBe("s-model"),t(e.opus).toBe("o-model"),t(e.reasoning).toBe("r-model")}),o("should return copies, not references",()=>{const e=s(),o=s();t(e).not.toBe(o),t(e).toEqual(o)})});
1
+ import{describe as e,it as o,expect as t,afterEach as s}from"vitest";import{getDefaultModels as r,getPresets as n,resolvePreset as l,reloadRegistry as d,getToolDefaultModel as a,getDefaultToolModel as m}from"../lib/model-registry.js";e("ModelRegistry",()=>{s(()=>{d()}),o("should return default models",()=>{const e=r();t(e).toHaveProperty("haiku"),t(e).toHaveProperty("sonnet"),t(e).toHaveProperty("opus"),t(e).toHaveProperty("reasoning"),t(typeof e.haiku).toBe("string"),t(typeof e.sonnet).toBe("string")}),o("should return presets array",()=>{const e=n();t(Array.isArray(e)).toBe(!0),t(e.length).toBeGreaterThan(0)}),o("every preset resolves to the 4 canonical model slots",()=>{for(const e of n()){const o=l(e);t(o.haiku&&o.sonnet&&o.opus&&o.reasoning).toBeTruthy()}}),o("should resolve single-model preset correctly",()=>{const e=l({name:"Test",model:"test-model"});t(e.haiku).toBe("test-model"),t(e.sonnet).toBe("test-model"),t(e.opus).toBe("test-model"),t(e.reasoning).toBe("test-model")}),o("should resolve multi-model preset correctly",()=>{const e=l({name:"Test",models:{haiku:"h-model",sonnet:"s-model",opus:"o-model",reasoning:"r-model"}});t(e.haiku).toBe("h-model"),t(e.sonnet).toBe("s-model"),t(e.opus).toBe("o-model"),t(e.reasoning).toBe("r-model")}),o("resolves per-tool default models",()=>{t(a("claude-code")).toBe(""),t(a("codex")).toBe("gpt-5.5"),t(a("hermes")).toBe("gpt-5.5"),t(a("does-not-exist")).toBe(m())}),o("should return copies, not references",()=>{const e=r(),o=r();t(e).not.toBe(o),t(e).toEqual(o)})});
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.test.js","sourceRoot":"","sources":["../../src/__tests__/model-registry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-registry.test.js","sourceRoot":"","sources":["../../src/__tests__/model-registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +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")})});
@@ -0,0 +1 @@
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"chalk";import e from"inquirer";import t from"ora";import{configManager as r,DEFAULT_MODELS as i}from"../lib/config.js";import{i18n as a}from"../lib/i18n.js";import{validateApiKey as n}from"../lib/api-validator.js";import{toolManager as d}from"../lib/tool-manager.js";import{isJsonMode as c,isNonInteractive as l,shouldAutoConfirm as s,emitJson as u,isColorEnabled as m}from"../lib/runtime-options.js";const p=["claude","claude-code","opencode"];function f(o){return m()?o:o=>o}function k(o,e=o=>o){c()||console.log(f(e)(o))}async function v(e){if(c()){const o=await n(e);return o.valid?(r.setApiKey(e),void u({ok:!0,action:"auth"})):void u({ok:!1,action:"auth",error:o.error||"invalid_api_key"})}const i=t(a.t("wizard.validating_api_key")).start(),d=await n(e);d.valid?(r.setApiKey(e),i.succeed(f(o.green)(a.t("auth.saved")))):"invalid_api_key"===d.error?i.fail(f(o.red)(a.t("wizard.api_key_invalid"))):i.fail(f(o.red)(a.t("wizard.api_key_network_error")))}export async function authCommand(t){0!==t.length?"revoke"!==t[0]?"reload"!==t[0]?await v(t[0]):await async function(e){const t=e.toLowerCase();if(!p.includes(t))return c()?void u({ok:!1,action:"reload",error:"unsupported_tool",tool:e}):void k(a.t("auth.reload_tool_not_supported",{tool:e}),o.red);const n=r.getApiKey(),l=r.getModels()||i;if(!n)return c()?void u({ok:!1,action:"reload",error:"missing_api_key",tool:e}):void k(a.t("auth.reload_missing_config"),o.red);const s="opencode"===t?"OpenCode":"Claude Code",m="opencode"===t?"opencode":"claude-code";c()||k(a.t("auth.reloading",{tool:s}),o.blue);try{d.loadPrivateConfig(m,n,l),c()?u({ok:!0,action:"reload",tool:m}):k(a.t("auth.reloaded",{tool:s}),o.green)}catch(e){if(c())return void u({ok:!1,action:"reload",error:"reload_failed",message:e instanceof Error?e.message:String(e)});k(a.t("auth.reload_failed"),o.red),e instanceof Error&&k(e.message,o.red)}}(t[1]||""):await async function(){if(!s()){const{confirm:t}=await e.prompt([{type:"confirm",name:"confirm",message:a.t("auth.revoke_confirm"),default:!1}]);if(!t)return c()?void u({ok:!1,action:"revoke",cancelled:!0}):void k(a.t("auth.not_revoked"),o.yellow)}r.revokeApiKey(),c()?u({ok:!0,action:"revoke"}):k(a.t("auth.revoked"),o.green)}():await async function(){if(l())return c()?void u({ok:!1,action:"auth",error:"token_required"}):void k(a.t("runtime.non_interactive_required_token"),o.red);const{token:t}=await e.prompt([{type:"password",name:"token",message:a.t("auth.token_prompt"),validate:o=>!(!o||0===o.trim().length)||a.t("auth.token_required")}]);await v(t.trim())}()}
1
+ import o from"chalk";import e from"inquirer";import t from"ora";import{configManager as r}from"../lib/config.js";import{i18n as i}from"../lib/i18n.js";import{validateApiKey as a}from"../lib/api-validator.js";import{toolManager as n}from"../lib/tool-manager.js";import{isJsonMode as d,isNonInteractive as c,shouldAutoConfirm as l,emitJson as s,isColorEnabled as u}from"../lib/runtime-options.js";const m=["claude","claude-code","opencode"];function p(o){return u()?o:o=>o}function f(o,e=o=>o){d()||console.log(p(e)(o))}async function k(e){if(d()){const o=await a(e);return o.valid?(r.setApiKey(e),void s({ok:!0,action:"auth"})):void s({ok:!1,action:"auth",error:o.error||"invalid_api_key"})}const n=t(i.t("wizard.validating_api_key")).start(),c=await a(e);c.valid?(r.setApiKey(e),n.succeed(p(o.green)(i.t("auth.saved")))):"invalid_api_key"===c.error?n.fail(p(o.red)(i.t("wizard.api_key_invalid"))):n.fail(p(o.red)(i.t("wizard.api_key_network_error")))}export async function authCommand(t){0!==t.length?"revoke"!==t[0]?"reload"!==t[0]?await k(t[0]):await async function(e){const t=e.toLowerCase();if(!m.includes(t))return d()?void s({ok:!1,action:"reload",error:"unsupported_tool",tool:e}):void f(i.t("auth.reload_tool_not_supported",{tool:e}),o.red);const a=r.getApiKey();if(!a)return d()?void s({ok:!1,action:"reload",error:"missing_api_key",tool:e}):void f(i.t("auth.reload_missing_config"),o.red);const c="opencode"===t?"OpenCode":"Claude Code",l="opencode"===t?"opencode":"claude-code";d()||f(i.t("auth.reloading",{tool:c}),o.blue);try{n.loadPrivateConfig(l,a,r.getModelsForTool(l)),d()?s({ok:!0,action:"reload",tool:l}):f(i.t("auth.reloaded",{tool:c}),o.green)}catch(e){if(d())return void s({ok:!1,action:"reload",error:"reload_failed",message:e instanceof Error?e.message:String(e)});f(i.t("auth.reload_failed"),o.red),e instanceof Error&&f(e.message,o.red)}}(t[1]||""):await async function(){if(!l()){const{confirm:t}=await e.prompt([{type:"confirm",name:"confirm",message:i.t("auth.revoke_confirm"),default:!1}]);if(!t)return d()?void s({ok:!1,action:"revoke",cancelled:!0}):void f(i.t("auth.not_revoked"),o.yellow)}r.revokeApiKey(),d()?s({ok:!0,action:"revoke"}):f(i.t("auth.revoked"),o.green)}():await async function(){if(c())return d()?void s({ok:!1,action:"auth",error:"token_required"}):void f(i.t("runtime.non_interactive_required_token"),o.red);const{token:t}=await e.prompt([{type:"password",name:"token",message:i.t("auth.token_prompt"),validate:o=>!(!o||0===o.trim().length)||i.t("auth.token_required")}]);await k(t.trim())}()}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEtH,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAErE,SAAS,KAAK,CAAC,UAAoC;IAC/C,OAAO,cAAc,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,aAAuC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,IAAI,UAAU,EAAE,EAAE,CAAC;QACf,OAAO;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY;IACpC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,OAAO;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7E,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,OAAO;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO;IACX,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IACnF,MAAM,QAAQ,GAAG,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAE5E,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAChB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC;QACD,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACJ,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnI,OAAO;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YACzB,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY;IACvB,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBACtC,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,UAAU,EAAE,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO;YACX,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACxD,OAAO;QACX,CAAC;IACL,CAAC;IAED,aAAa,CAAC,YAAY,EAAE,CAAC;IAC7B,IAAI,UAAU,EAAE,EAAE,CAAC;QACf,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO;IACX,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,eAAe;IAC1B,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACrB,IAAI,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3E,OAAO;IACX,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpC;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;YACpC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;KACJ,CAAC,CAAC;IAEH,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAa;IACvC,IAAI,UAAU,EAAE,EAAE,CAAC;QACf,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC1B,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;YAC5F,OAAO;QACX,CAAC;QACD,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAErD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,gBAAgB,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;IACX,CAAC;IAED,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,eAAe,EAAE,CAAC;QACxB,OAAO;IACX,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO;IACX,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,OAAO;IACX,CAAC;IAED,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- import e from"inquirer";import o 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 a}from"../lib/config.js";import{confirmAction as s,applyOrDryRun as c}from"../lib/confirm.js";const f=/^[a-zA-Z0-9._-]+$/;function d(e,o){const t=(e||"").trim();if(!t||!f.test(t))throw new Error(l.t(`config.${o}_invalid_name`,{name:t||"<empty>"}));return t}function g(e,t){console.log("\n"+o.bold(e)),0!==t.length?t.forEach(e=>console.log(" "+e)):console.log(o.gray(" ("+l.t("config.empty_list")+")"))}async function m(a,s){if(i[a]){if(!n.isToolInstalled(a)){if(s.nonInteractive)return void console.log(o.yellow(l.t("wizard.tool_not_installed",{tool:i[a].displayName})));console.log(o.yellow(l.t("wizard.tool_not_installed",{tool:i[a].displayName})));const{shouldInstall:t}=await e.prompt([{type:"confirm",name:"shouldInstall",message:l.t("wizard.install_tool_confirm"),default:!0}]);if(!t)return void console.log(o.yellow(l.t("wizard.install_skipped")));try{await n.installTool(a)}catch(e){return console.error(o.red(l.t("install.install_failed_detail"))),void(e instanceof Error&&e.message&&console.error(o.gray(e.message)))}}if(s.nonInteractive){const e=r.getApiKey();return e?(n.loadPrivateConfig(a,e,r.getModels()),void console.log(o.green(l.t("config.tool_config_loaded",{tool:i[a].displayName})))):void console.log(o.red(l.t("wizard.api_key_required")))}await t.showToolMenu(a)}else console.log(o.red(l.t("config.unknown_tool",{tool:a})))}export async function configCommand(t){const{positional:n,options:f}=function(e){const o=[],t={};for(const n of e)"--non-interactive"===n||"-y"===n?t.nonInteractive=!0:o.push(n);return{positional:o,options:t}}(t),p=n[0],u=n.slice(1);if(p){switch(p){case"profile":return void await async function(e){const t=e[0],n=e[1];if(!t||"list"===t){const e=r.getActiveProfileName(),t=r.listProfiles().map(t=>{const n=t===e;return`${n?o.green("●"):o.gray("○")} ${t}${n?o.gray(" ("+l.t("config.profile_active_label")+")"):""}`});return void g(l.t("config.profile_list_title"),t)}if("create"===t){const e=d(n,"profile");return r.listProfiles().includes(e)?void console.log(o.yellow(l.t("config.profile_exists",{name:e}))):(r.createProfile(e),void console.log(o.green(l.t("config.profile_created",{name:e}))))}if("use"===t){const e=d(n,"profile");return r.setActiveProfile(e),void console.log(o.green(l.t("config.profile_activated",{name:e})))}if("delete"===t||"remove"===t){const e=d(n,"profile");return e===a&&1===r.listProfiles().length?void console.log(o.yellow(l.t("config.profile_cannot_delete_last"))):void await c({description:l.t("config.profile_delete_dry_run",{name:e}),json:{action:"profile_delete",name:e},apply:async()=>{await s({message:l.t("config.profile_delete_confirm",{name:e}),defaultValue:!1})?(r.deleteProfile(e),console.log(o.green(l.t("config.profile_deleted",{name:e})))):console.log(o.yellow(l.t("config.profile_delete_aborted")))}})}console.log(o.red(l.t("config.unknown_action",{action:t})))}(u);case"preset":return void function(e){const t=e[0],n=e[1];if(!t||"list"===t){const e=Object.entries(r.getCustomPresets()).map(([e,t])=>`${o.cyan(e)} ${o.gray(`H:${t.models.haiku} S:${t.models.sonnet} O:${t.models.opus}`)}`);return void g(l.t("config.preset_list_title"),e)}if("save"===t){const e=d(n,"preset");return r.saveCustomPreset(e,r.getModels()),void console.log(o.green(l.t("config.preset_saved",{name:e})))}if("use"===t||"apply"===t){const e=d(n,"preset"),t=r.getCustomPresets()[e];return t?(r.setModels(t.models),void console.log(o.green(l.t("config.preset_applied",{name:e})))):void console.log(o.red(l.t("config.preset_not_found",{name:e})))}if("delete"===t||"remove"===t){const e=d(n,"preset");return r.deleteCustomPreset(e),void console.log(o.green(l.t("config.preset_deleted",{name:e})))}console.log(o.red(l.t("config.unknown_action",{action:t})))}(u);case"backup":return void await function(e){return async function(e){const t=e[0],n=e[1];if(!t||"list"===t){const e=r.listBackups().map(e=>{const t=new Date(e.mtimeMs).toISOString();return`${o.cyan(e.name)} ${o.gray(t)}`});return void g(l.t("config.backup_list_title"),e)}if("create"===t||"snapshot"===t){const e=r.createBackup(n);return void console.log(o.green(l.t("config.backup_created",{path:e})))}if("restore"===t)return n?void await c({description:l.t("config.backup_restore_dry_run",{name:n}),json:{action:"backup_restore",name:n},apply:async()=>{await s({message:l.t("config.backup_restore_confirm",{name:n}),defaultValue:!1})?(r.restoreBackup(n),console.log(o.green(l.t("config.backup_restored",{name:n})))):console.log(o.yellow(l.t("config.backup_restore_aborted")))}}):void console.log(o.red(l.t("config.backup_restore_missing_name")));console.log(o.red(l.t("config.unknown_action",{action:t})))}(e)}(u)}"claude-code"!==p&&"claude-code"!==u[0]?i[p]?await m(p,f):(console.error(o.red(l.t("config.unknown_command",{command:p}))),console.log(o.gray(l.t("config.usage_hint"))),Object.values(i).forEach(e=>{console.log(o.gray(` - ${e.name}: ${e.displayName}`))})):await m("claude-code",f)}else await async function(t){if(t.nonInteractive)return void console.log(o.red(l.t("config.requires_argument")));const{selectedTool:n}=await e.prompt([{type:"list",name:"selectedTool",message:l.t("wizard.select_tool"),choices:Object.values(i).map(e=>({name:`${e.displayName} (${e.name})`,value:e.name}))}]);await m(n,t)}(f)}
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 +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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"}
@@ -15,6 +15,19 @@ interface ValidateOptions {
15
15
  /** Override sleep (mainly for tests). */
16
16
  sleepFn?: (ms: number) => Promise<void>;
17
17
  }
18
+ export interface FetchModelsResult {
19
+ ok: boolean;
20
+ models: string[];
21
+ error?: string;
22
+ }
23
+ /**
24
+ * 拉取当前 base_url 下 `/v1/models` 的可用模型 ID 列表(用用户的 key 鉴权)。
25
+ * 返回 OpenAI 风格 `data[].id`,失败时 ok=false(调用方可回退到手动输入)。
26
+ */
27
+ export declare function fetchModels(apiKey: string, options?: {
28
+ timeoutMs?: number;
29
+ fetchFn?: typeof fetch;
30
+ }): Promise<FetchModelsResult>;
18
31
  /**
19
32
  * 验证 API Key 的有效性和网络连通性,遇到网络错误时按指数退避重试
20
33
  */
@@ -1 +1 @@
1
- import{logger as r}from"../utils/logger.js";import{configManager as e}from"./config.js";const t=r=>new Promise(e=>setTimeout(e,r));async function o(r,t,o){const a=`${e.getBaseUrl()}/v1/models`,i=new AbortController,n=setTimeout(()=>i.abort(),t);try{const e=await o(a,{method:"GET",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},signal:i.signal});if(401===e.status)return{valid:!1,error:"invalid_api_key",message:"API Key is invalid or expired"};if(e.ok){try{const r=await e.json();if(r&&"list"===r.object)return{valid:!0}}catch{return{valid:!0}}return{valid:!0}}return{valid:!1,error:"unknown_error",message:`HTTP ${e.status}: ${e.statusText}`}}catch(r){return r instanceof Error&&"AbortError"===r.name?{valid:!1,error:"network_error",message:"Request timeout"}:{valid:!1,error:"network_error",message:r instanceof Error?r.message:"Network connection failed"}}finally{clearTimeout(n)}}export async function validateApiKey(e,a={}){const{timeoutMs:i=3e4,retries:n=2,backoffMs:s=500,fetchFn:l=fetch,sleepFn:c=t}=a;let d={valid:!1,error:"network_error",message:"Network connection failed"};for(let t=0;t<=n;t++){const a=await o(e,i,l);if(a.valid||"invalid_api_key"===a.error)return a.valid||r.logError("validateApiKey",new Error(a.message||"invalid_api_key")),a;d=a,t<n&&await c(s*Math.pow(2,t))}return r.logError("validateApiKey",new Error(d.message||"network_error")),d}
1
+ import{logger as r}from"../utils/logger.js";import{configManager as e}from"./config.js";const t=r=>new Promise(e=>setTimeout(e,r));async function o(r,t,o){const a=`${e.getBaseUrl()}/v1/models`,i=new AbortController,n=setTimeout(()=>i.abort(),t);try{const e=await o(a,{method:"GET",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},signal:i.signal});if(401===e.status)return{valid:!1,error:"invalid_api_key",message:"API Key is invalid or expired"};if(e.ok){try{const r=await e.json();if(r&&"list"===r.object)return{valid:!0}}catch{return{valid:!0}}return{valid:!0}}return{valid:!1,error:"unknown_error",message:`HTTP ${e.status}: ${e.statusText}`}}catch(r){return r instanceof Error&&"AbortError"===r.name?{valid:!1,error:"network_error",message:"Request timeout"}:{valid:!1,error:"network_error",message:r instanceof Error?r.message:"Network connection failed"}}finally{clearTimeout(n)}}export async function fetchModels(t,o={}){const{timeoutMs:a=3e4,fetchFn:i=fetch}=o,n=`${e.getBaseUrl()}/v1/models`,s=new AbortController,l=setTimeout(()=>s.abort(),a);try{const r=await i(n,{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},signal:s.signal});if(!r.ok)return{ok:!1,models:[],error:`HTTP ${r.status}`};const e=await r.json();return{ok:!0,models:(Array.isArray(e?.data)?e.data:[]).map(r=>"string"==typeof r?r:r?.id).filter(r=>"string"==typeof r&&r.trim().length>0).map(r=>r.trim())}}catch(e){return r.logError("fetchModels",e),{ok:!1,models:[],error:e instanceof Error?e.message:"network error"}}finally{clearTimeout(l)}}export async function validateApiKey(e,a={}){const{timeoutMs:i=3e4,retries:n=2,backoffMs:s=500,fetchFn:l=fetch,sleepFn:c=t}=a;let d={valid:!1,error:"network_error",message:"Network connection failed"};for(let t=0;t<=n;t++){const a=await o(e,i,l);if(a.valid||"invalid_api_key"===a.error)return a.valid||r.logError("validateApiKey",new Error(a.message||"invalid_api_key")),a;d=a,t<n&&await c(s*Math.pow(2,t))}return r.logError("validateApiKey",new Error(d.message||"network_error")),d}
@@ -1 +1 @@
1
- {"version":3,"file":"api-validator.js","sourceRoot":"","sources":["../../src/lib/api-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-validator.js","sourceRoot":"","sources":["../../src/lib/api-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Brand identity used when this CLI writes provider entries into third-party
3
+ * tool config files (Codex, OpenClaw, Hermes, AtomCode, ...).
4
+ *
5
+ * Keeping these in one place makes a rebrand (or a white-label fork) a single-file
6
+ * change instead of a grep-and-replace across every tool adapter.
7
+ */
8
+ /** Human-facing provider name, e.g. shown as `name = "VibeAPI"` in Codex. */
9
+ export declare const BRAND_NAME = "VibeAPI";
10
+ /** Machine provider key used as the object/table key inside tool configs. */
11
+ export declare const PROVIDER_KEY = "vibeapi";
12
+ /** Env-var key some tools read the API key from. */
13
+ export declare const API_KEY_ENV = "VIBEAPI_API_KEY";
@@ -0,0 +1 @@
1
+ export const BRAND_NAME="VibeAPI";export const PROVIDER_KEY="vibeapi";export const API_KEY_ENV="VIBEAPI_API_KEY";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/lib/brand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,oDAAoD;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as t,readFileSync as n,writeFileSync as s,renameSync as r,unlinkSync as i}from"fs";import{join as a,dirname as o}from"path";import{homedir as g}from"os";import{logger as C}from"../utils/logger.js";import{configManager as c,DEFAULT_MODELS as l}from"./config.js";import{loadSettingsTemplate as h}from"./settings-template.js";export class ClaudeCodeManager{static instance;settingsPath;mcpConfigPath;constructor(){this.settingsPath=a(g(),".claude","settings.json"),this.mcpConfigPath=a(g(),".claude.json")}static getInstance(){return ClaudeCodeManager.instance||(ClaudeCodeManager.instance=new ClaudeCodeManager),ClaudeCodeManager.instance}ensureConfigDir(n){const s=o(n);e(s)||t(s,{recursive:!0})}atomicWrite(t,n){const a=`${t}.tmp`;try{s(a,n,"utf-8"),r(a,t)}catch(t){if(e(a))try{i(a)}catch{}throw t}}getSettings(){try{if(e(this.settingsPath)){const e=n(this.settingsPath,"utf-8");return JSON.parse(e)}}catch(e){C.warn("Failed to read Claude Code settings:",e),C.logError("ClaudeCodeManager.getSettings",e)}return{}}saveSettings(e){try{this.ensureConfigDir(this.settingsPath),this.atomicWrite(this.settingsPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code settings: ${e}`)}}getMCPConfig(){try{if(e(this.mcpConfigPath)){const e=n(this.mcpConfigPath,"utf-8");return JSON.parse(e)}}catch(e){C.warn("Failed to read Claude Code MCP config:",e),C.logError("ClaudeCodeManager.getMCPConfig",e)}return{}}saveMCPConfig(e){try{this.ensureConfigDir(this.mcpConfigPath),this.atomicWrite(this.mcpConfigPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code MCP config: ${e}`)}}loadPrivateConfig(e,t){this.ensureOnboardingCompleted(),this.cleanupShellEnvVars();const n=h(),s=n.env||{},{env:r,...i}=n,a=this.getSettings(),o=a.env||{},{ANTHROPIC_API_KEY:g,...C}=o,u={...a,...i,env:{...C,...s,ANTHROPIC_AUTH_TOKEN:e,ANTHROPIC_BASE_URL:c.getBaseUrl(),ANTHROPIC_DEFAULT_HAIKU_MODEL:t.haiku||l.haiku,ANTHROPIC_DEFAULT_SONNET_MODEL:t.sonnet||l.sonnet,ANTHROPIC_DEFAULT_OPUS_MODEL:t.opus||l.opus,ANTHROPIC_MODEL:t.opus||l.opus,ANTHROPIC_REASONING_MODEL:t.reasoning||l.reasoning}};this.saveSettings(u)}ensureOnboardingCompleted(){try{const e=this.getMCPConfig();e.hasCompletedOnboarding||this.saveMCPConfig({...e,hasCompletedOnboarding:!0})}catch(e){C.warn("Failed to ensure onboarding completed:",e),C.logError("ClaudeCodeManager.ensureOnboardingCompleted",e)}}cleanupShellEnvVars(){if("win32"!==process.platform&&(process.env.ANTHROPIC_API_KEY||process.env.ANTHROPIC_BASE_URL))try{const t=this.getShellRcFilePath();if(!t||!e(t))return;let r=n(t,"utf-8");const i=r,a=[/^\s*export\s+ANTHROPIC_BASE_URL=.*$/gm,/^\s*export\s+ANTHROPIC_API_KEY=.*$/gm,/^\s*#\s*Claude Code environment variables\s*$/gm];for(const e of a)r=r.replace(e,"");r!==i&&(s(t,r,"utf-8"),C.info(`Cleaned up ANTHROPIC_* environment variables from ${t}`))}catch(e){C.warn("Failed to cleanup shell environment variables:",e),C.logError("ClaudeCodeManager.cleanupShellEnvVars",e)}}getShellRcFilePath(){const e=g();if("win32"===process.platform)return null;switch((process.env.SHELL||"").split("/").pop()||""){case"bash":return a(e,".bashrc");case"zsh":return a(e,".zshrc");case"fish":return a(e,".config","fish","config.fish");default:return a(e,".profile")}}unloadPrivateConfig(){const e=this.getSettings();if(!e.env)return;const{ANTHROPIC_AUTH_TOKEN:t,ANTHROPIC_BASE_URL:n,ANTHROPIC_DEFAULT_HAIKU_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:i,ANTHROPIC_MODEL:a,ANTHROPIC_REASONING_MODEL:o,API_TIMEOUT_MS:g,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:C,...c}=e.env,l={...e,env:c};l.env&&0===Object.keys(l.env).length&&delete l.env,this.saveSettings(l)}detectCurrentConfig(){try{const e=this.getSettings();return e.env&&e.env.ANTHROPIC_AUTH_TOKEN?{apiKey:e.env.ANTHROPIC_AUTH_TOKEN}:{apiKey:null}}catch{return{apiKey:null}}}getExperimentalFeature(e){const t=this.getSettings();return t.env?.[e]}setExperimentalFeature(e,t){const n=this.getSettings(),s=n.env||{},r={...n,env:{...s,[e]:t}};this.saveSettings(r)}removeExperimentalFeature(e){const t=this.getSettings();if(!t.env)return;const{[e]:n,...s}=t.env,r={...t,env:s};this.saveSettings(r)}}export const claudeCodeManager=ClaudeCodeManager.getInstance();
1
+ import{existsSync as e,mkdirSync as t,readFileSync as n,writeFileSync as s,renameSync as r,unlinkSync as i}from"fs";import{join as a,dirname as o}from"path";import{homedir as g}from"os";import{logger as C}from"../utils/logger.js";import{configManager as c,DEFAULT_MODELS as l}from"./config.js";import{loadSettingsTemplate as h}from"./settings-template.js";export class ClaudeCodeManager{static instance;settingsPath;mcpConfigPath;constructor(){this.settingsPath=a(g(),".claude","settings.json"),this.mcpConfigPath=a(g(),".claude.json")}static getInstance(){return ClaudeCodeManager.instance||(ClaudeCodeManager.instance=new ClaudeCodeManager),ClaudeCodeManager.instance}ensureConfigDir(n){const s=o(n);e(s)||t(s,{recursive:!0})}atomicWrite(t,n){const a=`${t}.tmp`;try{s(a,n,"utf-8"),r(a,t)}catch(t){if(e(a))try{i(a)}catch{}throw t}}getSettings(){try{if(e(this.settingsPath)){const e=n(this.settingsPath,"utf-8");return JSON.parse(e)}}catch(e){C.warn("Failed to read Claude Code settings:",e),C.logError("ClaudeCodeManager.getSettings",e)}return{}}saveSettings(e){try{this.ensureConfigDir(this.settingsPath),this.atomicWrite(this.settingsPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code settings: ${e}`)}}getMCPConfig(){try{if(e(this.mcpConfigPath)){const e=n(this.mcpConfigPath,"utf-8");return JSON.parse(e)}}catch(e){C.warn("Failed to read Claude Code MCP config:",e),C.logError("ClaudeCodeManager.getMCPConfig",e)}return{}}saveMCPConfig(e){try{this.ensureConfigDir(this.mcpConfigPath),this.atomicWrite(this.mcpConfigPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code MCP config: ${e}`)}}loadPrivateConfig(e,t){this.ensureOnboardingCompleted(),this.cleanupShellEnvVars();const n=h(),s=n.env||{},{env:r,...i}=n,a=this.getSettings(),o=a.env||{},{ANTHROPIC_API_KEY:g,ANTHROPIC_DEFAULT_HAIKU_MODEL:C,ANTHROPIC_DEFAULT_SONNET_MODEL:u,ANTHROPIC_DEFAULT_OPUS_MODEL:O,ANTHROPIC_MODEL:_,ANTHROPIC_REASONING_MODEL:d,...E}=o,A={...a,...i,env:{...E,...s,ANTHROPIC_AUTH_TOKEN:e,ANTHROPIC_BASE_URL:c.getBaseUrl(),ANTHROPIC_DEFAULT_HAIKU_MODEL:t.haiku||l.haiku,ANTHROPIC_DEFAULT_SONNET_MODEL:t.sonnet||l.sonnet,ANTHROPIC_DEFAULT_OPUS_MODEL:t.opus||l.opus,ANTHROPIC_MODEL:t.opus||l.opus}};this.saveSettings(A)}ensureOnboardingCompleted(){try{const e=this.getMCPConfig();e.hasCompletedOnboarding||this.saveMCPConfig({...e,hasCompletedOnboarding:!0})}catch(e){C.warn("Failed to ensure onboarding completed:",e),C.logError("ClaudeCodeManager.ensureOnboardingCompleted",e)}}cleanupShellEnvVars(){if("win32"!==process.platform&&(process.env.ANTHROPIC_API_KEY||process.env.ANTHROPIC_BASE_URL))try{const t=this.getShellRcFilePath();if(!t||!e(t))return;let r=n(t,"utf-8");const i=r,a=[/^\s*export\s+ANTHROPIC_BASE_URL=.*$/gm,/^\s*export\s+ANTHROPIC_API_KEY=.*$/gm,/^\s*#\s*Claude Code environment variables\s*$/gm];for(const e of a)r=r.replace(e,"");r!==i&&(s(t,r,"utf-8"),C.info(`Cleaned up ANTHROPIC_* environment variables from ${t}`))}catch(e){C.warn("Failed to cleanup shell environment variables:",e),C.logError("ClaudeCodeManager.cleanupShellEnvVars",e)}}getShellRcFilePath(){const e=g();if("win32"===process.platform)return null;switch((process.env.SHELL||"").split("/").pop()||""){case"bash":return a(e,".bashrc");case"zsh":return a(e,".zshrc");case"fish":return a(e,".config","fish","config.fish");default:return a(e,".profile")}}unloadPrivateConfig(){const e=this.getSettings();if(!e.env)return;const{ANTHROPIC_AUTH_TOKEN:t,ANTHROPIC_BASE_URL:n,ANTHROPIC_DEFAULT_HAIKU_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:i,ANTHROPIC_MODEL:a,ANTHROPIC_REASONING_MODEL:o,API_TIMEOUT_MS:g,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:C,...c}=e.env,l={...e,env:c};l.env&&0===Object.keys(l.env).length&&delete l.env,this.saveSettings(l)}detectCurrentConfig(){try{const e=this.getSettings();return e.env&&e.env.ANTHROPIC_AUTH_TOKEN?{apiKey:e.env.ANTHROPIC_AUTH_TOKEN}:{apiKey:null}}catch{return{apiKey:null}}}getExperimentalFeature(e){const t=this.getSettings();return t.env?.[e]}setExperimentalFeature(e,t){const n=this.getSettings(),s=n.env||{},r={...n,env:{...s,[e]:t}};this.saveSettings(r)}removeExperimentalFeature(e){const t=this.getSettings();if(!t.env)return;const{[e]:n,...s}=t.env,r={...t,env:s};this.saveSettings(r)}}export const claudeCodeManager=ClaudeCodeManager.getInstance();