cckit 0.3.1 → 0.3.3

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 (52) hide show
  1. package/README.md +103 -1
  2. package/dist/commands.d.ts +11 -2
  3. package/dist/commands.d.ts.map +1 -1
  4. package/dist/commands.js +1 -1
  5. package/dist/commands.js.map +1 -1
  6. package/dist/config.d.ts +18 -2
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +1 -1
  9. package/dist/config.js.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/proxy/chat-to-response.d.ts +9 -0
  13. package/dist/proxy/chat-to-response.d.ts.map +1 -0
  14. package/dist/proxy/chat-to-response.js +1 -0
  15. package/dist/proxy/chat-to-response.js.map +1 -0
  16. package/dist/proxy/constants.d.ts +2 -0
  17. package/dist/proxy/constants.d.ts.map +1 -0
  18. package/dist/proxy/constants.js +1 -0
  19. package/dist/proxy/constants.js.map +1 -0
  20. package/dist/proxy/proxy-manager.d.ts +61 -0
  21. package/dist/proxy/proxy-manager.d.ts.map +1 -0
  22. package/dist/proxy/proxy-manager.js +1 -0
  23. package/dist/proxy/proxy-manager.js.map +1 -0
  24. package/dist/tools/base-adapter.d.ts +31 -0
  25. package/dist/tools/base-adapter.d.ts.map +1 -0
  26. package/dist/tools/base-adapter.js +1 -0
  27. package/dist/tools/base-adapter.js.map +1 -0
  28. package/dist/tools/claude-code-adapter.d.ts +15 -0
  29. package/dist/tools/claude-code-adapter.d.ts.map +1 -0
  30. package/dist/tools/claude-code-adapter.js +1 -0
  31. package/dist/tools/claude-code-adapter.js.map +1 -0
  32. package/dist/tools/codex-adapter.d.ts +43 -0
  33. package/dist/tools/codex-adapter.d.ts.map +1 -0
  34. package/dist/tools/codex-adapter.js +1 -0
  35. package/dist/tools/codex-adapter.js.map +1 -0
  36. package/dist/tools/index.d.ts +20 -0
  37. package/dist/tools/index.d.ts.map +1 -0
  38. package/dist/tools/index.js +1 -0
  39. package/dist/tools/index.js.map +1 -0
  40. package/dist/tools/opencode-adapter.d.ts +41 -0
  41. package/dist/tools/opencode-adapter.d.ts.map +1 -0
  42. package/dist/tools/opencode-adapter.js +1 -0
  43. package/dist/tools/opencode-adapter.js.map +1 -0
  44. package/dist/tools/types.d.ts +16 -0
  45. package/dist/tools/types.d.ts.map +1 -0
  46. package/dist/tools/types.js +1 -0
  47. package/dist/tools/types.js.map +1 -0
  48. package/dist/types.d.ts +39 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/utils/constants.d.ts +1 -1
  51. package/dist/utils/constants.js +1 -1
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -7,6 +7,7 @@ A CLI tool for managing and switching between different Claude model providers a
7
7
  ## Features
8
8
 
9
9
  - **Multiple Provider Support**: Configure and switch between 智谱 Coding Plan, MiniMax Coding Plan, Kimi Coding Plan, 快手 StreamLake Coding Plan, 火山引擎 Coding Plan, 阿里云 Coding Plan, 腾讯云 Coding Plan, 讯飞 Coding Plan, ZenMux.ai, official Claude, and custom providers
10
+ - **Multi-Tool Support**: Manage providers for Claude Code, OpenCode, and Codex CLI
10
11
  - **Easy Configuration**: Simple command-line interface for managing API keys and settings
11
12
  - **Claude Integration**: Automatically updates Claude Code configuration files
12
13
  - **Export/Import**: Backup and restore your provider configurations
@@ -222,6 +223,8 @@ cckit list
222
223
 
223
224
  # Show current active provider
224
225
  cckit current
226
+ cckit current --tool opencode # for specific tool
227
+ cckit current --tool codex
225
228
 
226
229
  # Configure a provider
227
230
  cckit configure <provider> --api-key <key> [--base-url <url>] [--model <model>] ...
@@ -231,6 +234,8 @@ cckit configure my-ollama --api-key "ollama-key" --base-url "http://localhost:11
231
234
 
232
235
  # Switch to a provider (direct mode with argument)
233
236
  cckit switch <provider>
237
+ cckit switch <provider> --tool opencode # for OpenCode
238
+ cckit switch <provider> --tool codex # for Codex
234
239
 
235
240
  # Switch to a provider (interactive mode without argument)
236
241
  cckit switch
@@ -461,7 +466,104 @@ Custom providers support:
461
466
 
462
467
  The custom provider uses `provider_name` as the `CC_PROVIDER` environment variable value, allowing you to distinguish between multiple custom providers.
463
468
 
464
- ### Advanced Commands
469
+ ## Multi-Tool Support
470
+
471
+ cckit 支持为多种 AI 编码工具管理 Provider 配置:
472
+
473
+ #### Supported Tools
474
+
475
+ | Tool | Config Path | Description |
476
+ |------|-------------|-------------|
477
+ | `claude-code` | `~/.claude/settings.json` | Claude Code CLI (默认) |
478
+ | `opencode` | `~/.opencode.json` | OpenCode CLI |
479
+ | `codex` | `~/.codex/config.toml` | OpenAI Codex CLI |
480
+
481
+ #### Switching Providers for Different Tools
482
+
483
+ ```bash
484
+ # 切换 Claude Code 的 provider (默认)
485
+ cckit switch zhipu
486
+ cckit switch zhipu --tool claude-code
487
+
488
+ # 切换 OpenCode 的 provider
489
+ cckit switch zhipu --tool opencode
490
+
491
+ # 切换 Codex 的 provider
492
+ cckit switch zhipu --tool codex
493
+
494
+ # 交互式选择工具
495
+ cckit switch
496
+ ```
497
+
498
+ #### Viewing Current Provider
499
+
500
+ ```bash
501
+ # 查看 Claude Code 当前 provider
502
+ cckit current
503
+ cckit current --tool claude-code
504
+
505
+ # 查看 OpenCode 当前 provider
506
+ cckit current --tool opencode
507
+
508
+ # 查看 Codex 当前 provider
509
+ cckit current --tool codex
510
+ ```
511
+
512
+ #### Tool-Specific Configuration
513
+
514
+ 每个工具维护独立的 provider 状态,可以为不同工具配置不同的 provider:
515
+
516
+ ```bash
517
+ # Claude Code 使用智谱
518
+ cckit switch zhipu --tool claude-code
519
+
520
+ # OpenCode 使用阿里云
521
+ cckit switch aliyun --tool opencode
522
+
523
+ # Codex 使用 MiniMax
524
+ cckit switch minimax --tool codex
525
+ ```
526
+
527
+ #### Codex Notes
528
+
529
+ Codex CLI 使用 OpenAI Responses API 格式,切换时注意事项:
530
+
531
+ 1. **模型支持**: 请确保所选模型支持 OpenAI Responses API
532
+
533
+ 2. **配置文件格式** (`~/.codex/config.toml`):
534
+ ```toml
535
+ model = "glm-5"
536
+ model_provider = "cckit-zhipu"
537
+
538
+ [model_providers.cckit-zhipu]
539
+ name = "智谱 Coding Plan"
540
+ base_url = "https://open.bigmodel.cn/api/paas/v4"
541
+ wire_api = "responses"
542
+ requires_openai_auth = false
543
+ experimental_bearer_token = "your-api-key"
544
+ ```
545
+
546
+ #### OpenCode Notes
547
+
548
+ OpenCode 配置存储在 `~/.opencode.json`:
549
+
550
+ ```json
551
+ {
552
+ "providers": {
553
+ "cckit-zhipu": {
554
+ "apiKey": "your-api-key",
555
+ "disabled": false,
556
+ "baseUrl": "https://open.bigmodel.cn/api/anthropic"
557
+ }
558
+ },
559
+ "agents": {
560
+ "coder": { "model": "glm-5" },
561
+ "task": { "model": "glm-5" }
562
+ }
563
+ }
564
+ ```
565
+
566
+ ## Advanced Commands
465
567
 
466
568
  ```bash
467
569
  # Export configuration to file
@@ -1,4 +1,5 @@
1
1
  import { ConfigManager } from './config.js';
2
+ import { ToolType } from './types.js';
2
3
  export declare class Commands {
3
4
  private configManager;
4
5
  constructor(configManager: ConfigManager);
@@ -7,8 +8,16 @@ export declare class Commands {
7
8
  */
8
9
  interactive(): Promise<void>;
9
10
  list(): void;
10
- switch(providerId?: string): Promise<void>;
11
- current(): void;
11
+ switch(providerId?: string, tool?: ToolType): Promise<void>;
12
+ /**
13
+ * Interactive tool selection
14
+ */
15
+ private selectToolInteractive;
16
+ /**
17
+ * List supported CLI tools
18
+ */
19
+ tools(): void;
20
+ current(tool?: ToolType): void;
12
21
  configure(providerId: string, apiKey?: string, baseUrl?: string, models?: string[]): void;
13
22
  show(providerId: string): void;
14
23
  test(providerId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAsD,MAAM,aAAa,CAAC;AAahG,qBAAa,QAAQ;IACP,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiSlC,IAAI,IAAI,IAAI;IAsCN,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDhD,OAAO,IAAI,IAAI;IAkCf,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,IAAI;IAuEP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAuDxB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA6B1B,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAClD,OAAO,CAAC,IAAI,CAAC;IAsGhB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2CxD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa1B,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,sBAAsB;YAoChB,YAAY;IAO1B,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAsD,MAAM,aAAa,CAAC;AAGhG,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWrD,qBAAa,QAAQ;IACP,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiSlC,IAAI,IAAI,IAAI;IAsCN,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2EjE;;OAEG;YACW,qBAAqB;IAwBnC;;OAEG;IACH,KAAK,IAAI,IAAI;IA2Bb,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI;IAyC9B,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,IAAI;IAuEP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAuDxB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA6B1B,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAClD,OAAO,CAAC,IAAI,CAAC;IAsGhB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2CxD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa1B,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,sBAAsB;YAoChB,YAAY;IAO1B,OAAO,CAAC,iBAAiB;CAY1B"}
package/dist/commands.js CHANGED
@@ -1 +1 @@
1
- import e from"chalk";import o from"fs";import{select as l,input as n,confirm as s}from"@inquirer/prompts";import{createProvider as i}from"./config.js";import{testProvider as t,PROVIDER_CONFIGS as r}from"./providers.js";import{i18n as a}from"./i18n.js";export class Commands{constructor(e){this.configManager=e}async interactive(){console.log(),console.log(e.blue.bold(" ___ ___ / ___ ( ) __ ___ ")),console.log(e.blue.bold(" // ) ) // ) ) //\\ \\ / / / / ")),console.log(e.blue.bold(" // // // \\ \\ / / / / ")),console.log(e.blue.bold(" ((____ ((____ // \\ \\ / / / / ")),console.log(e.cyan.bold(" 交互式配置向导")),console.log(),console.log(),console.log(e.cyan.bold("▸ Step 1: 选择要配置的 AI 提供商")),console.log();const o=[...Object.entries(r).filter(([e])=>"custom"!==e).map(([e,o])=>({value:e,name:o.display_name,defaultModel:o.default_model})).map(e=>({value:{type:"preset",id:e.value,name:e.name,defaultModel:e.defaultModel},name:e.name})),{value:{type:"custom"},name:e.green("自定义 Provider (Local LLM / OpenAI Compatible)")}],d=await l({message:"请选择提供商",choices:o,pageSize:12});let c,g,m;"custom"===d.type?(c="custom",g=await n({message:"请输入自定义 Provider 名称 (例如: ollama, my-api)",default:"ollama"}),m="llama3"):(c=d.id,g=d.name,m=d.defaultModel),console.log(),console.log(e.cyan.bold(`▸ Step 2: 配置 ${g}`)),console.log();const _=await n({message:"请输入 API Key",validate:e=>!(!e||""===e.trim())||"API Key 不能为空"});let u;"custom"===c&&(u=await n({message:"请输入 Base URL",default:"http://localhost:11434/v1"})),console.log(),console.log(e.cyan.bold("▸ Step 3: 设置模型")),console.log();const p=(await n({message:"请输入模型名称 (多个模型用逗号分隔,如: claude-3-opus, claude-3-sonnet)",default:m})).split(",").map(e=>e.trim()).filter(e=>e.length>0),f=p[0]||m;console.log(),console.log(e.cyan.bold("▸ Step 4: 配置模型类型 (可选)")),console.log(e.dim(" 提示: 可为 Sonnet/Haiku/Opus 模型类型配置不同的模型,不配置则使用默认模型")),console.log();let v,y,h;if(await s({message:"是否为不同模型类型 (Sonnet/Haiku/Opus) 配置不同的默认模型?",default:!1})){const o=async o=>{const n=[{value:"__skip__",name:e.dim("跳过 (使用默认模型)")},...p.map(e=>({value:e,name:e}))],s=await l({message:`选择 ${o} 模型`,choices:n});return"__skip__"===s?void 0:s};v=await o("Sonnet"),y=await o("Haiku"),h=await o("Opus"),console.log(),console.log(e.dim(" 模型类型配置:")),v||y||h?(v&&console.log(e.dim(` Sonnet: ${v}`)),y&&console.log(e.dim(` Haiku: ${y}`)),h&&console.log(e.dim(` Opus: ${h}`))):console.log(e.dim(" 所有类型使用默认模型"))}console.log(),console.log(e.cyan.bold("▸ Step 5: 保存配置")),console.log();const $=this.configManager.listProviders(),b=$.filter(e=>e.provider_type===c);let w;if(b.length>0&&"custom"!==c){const o=[...b.map((e,o)=>({value:{action:"update",index:o},name:`${e.name} (模型: ${e.current_model||e.models[0]||"none"})`})),{value:{action:"create"},name:e.green(`创建新的 ${g} 配置`)}],n=await l({message:`发现 ${b.length} 个已存在的配置,请选择`,choices:o});if("update"===n.action){const e=b[n.index];e.api_key=_,u&&(e.base_url=u);for(const o of p)e.models.includes(o)||e.models.push(o);e.current_model=f,v&&(e.default_sonnet_model=v),y&&(e.default_haiku_model=y),h&&(e.default_opus_model=h),e.updated_at=(new Date).toISOString(),w=e}}else if("custom"===c){const e=$.find(e=>"custom"===e.provider_type&&e.name===g);if(e){if(await s({message:`发现已存在的 "${g}" 配置,是否更新?`,default:!0})){e.api_key=_,u&&(e.base_url=u);for(const o of p)e.models.includes(o)||e.models.push(o);e.current_model=f,v&&(e.default_sonnet_model=v),y&&(e.default_haiku_model=y),h&&(e.default_opus_model=h),e.updated_at=(new Date).toISOString(),w=e}}}w||(w=i(c,g,_,u,p),w.current_model=f,v&&(w.default_sonnet_model=v),y&&(w.default_haiku_model=y),h&&(w.default_opus_model=h)),this.configManager.saveProvider(w),console.log(e.green(`✓ 配置已保存 (id: ${w.id})`)),console.log(` ${a.general.provider_label()}: ${g}`),console.log(` ${a.general.model_label()}: ${p.join(", ")}`),console.log(),console.log(e.cyan.bold("▸ Step 6: 测试连接")),console.log();if(await s({message:"是否测试连接?",default:!0})){console.log(e.yellow(`正在测试 ${g} 连接...`));const o=await t(w);o.success?(console.log(e.green("✓ 连接成功!")),o.response_time_ms&&console.log(e.dim(` 响应时间: ${o.response_time_ms}ms`))):console.log(e.red(`✗ 连接失败: ${o.message}`))}console.log(),console.log(e.cyan.bold("▸ Step 7: 切换 Provider")),console.log();await s({message:"是否立即切换到该 Provider?",default:!0})&&(this.configManager.switchProvider(w.id),console.log(e.green.bold(`✓ 已切换到 ${g}`)),console.log(e.dim(a.cli.restart_note()))),console.log(),console.log(e.green.bold(" ___ ___ / ___ ( ) __ ___ ")),console.log(e.green.bold(" // ) ) // ) ) //\\ \\ / / / / ")),console.log(e.green.bold(" // // // \\ \\ / / / / ")),console.log(e.green.bold(" ((____ ((____ // \\ \\ / / / / ")),console.log(e.cyan.bold(" 配置完成! ✓")),console.log()}list(){console.log(e.blue.bold(a.cli.list_title())),console.log();const o=this.configManager.listProviders(),l=this.configManager.getCurrentProvider();for(const n of o){const o=l?.id===n.id?e.green.bold(a.status.active()):e.dim(a.status.inactive()),s=this.getProviderDisplayName(n.provider_type,n.name,!0);if(console.log(` ${o} ${e.bold(s)}`),console.log(` ${a.general.id_label()}: ${e.dim(n.id)}`),n.models.length>0){const o=n.current_model||n.models[0]||"none";console.log(` ${a.general.model_label()}: ${n.models.length} ${1===n.models.length?"model":"models"} (${e.dim(o)})`)}if(n.api_key){const o=n.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(o)}`)}console.log()}}async switch(o){const n=this.configManager.listProviders();if(!o){if(0===n.length)return void console.log(e.yellow("没有配置任何 Provider,请先使用 `cckit configure` 或 `cckit interactive` 进行配置"));const s=this.configManager.getCurrentProvider(),i=n.map(o=>{const l=s?.id===o.id,n=this.getProviderDisplayName(o.provider_type,o.name,!1),i=o.current_model||o.models[0]||"none",t=l?"✓ ":" ",r=l?e.green(" (当前)"):"";return{value:o.id,name:`${t}${n} - ${e.dim(i)}${r}`}});console.log();const t=await l({message:"选择要切换的 Provider",choices:i,pageSize:10});o=t}const s=n.find(e=>e.id===o||e.name===o||e.provider_type===o);if(!s)throw new Error(a.errors.provider_not_found(o));console.log(e.yellow(a.general.switching())),this.configManager.switchProvider(s.id);const i=this.getProviderDisplayName(s.provider_type,s.name,!1);console.log(e.green.bold(a.cli.switch_success(i))),console.log(e.dim(a.cli.restart_note()))}current(){const o=this.configManager.getCurrentProvider();if(!o)return void console.log(e.yellow(a.cli.no_active_provider()));console.log(e.blue.bold(a.cli.current_title())),console.log();const l=this.getProviderDisplayName(o.provider_type,o.name,!0);if(console.log(` ${e.bold(l)}`),console.log(` ${a.general.id_label()}: ${e.dim(o.id)}`),console.log(` ${a.general.type_label()}: ${e.dim(o.provider_type)}`),o.current_model&&console.log(` ${a.general.model_label()}: ${e.dim(o.current_model)}`),o.base_url&&console.log(` ${a.general.base_url_label()}: ${e.dim(o.base_url)}`),o.api_key){const l=o.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(l)}`)}}configure(o,l,n,s){let t=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(t){if(l&&(t.api_key=l),n&&(t.base_url=n),s&&s.length>0)for(const e of s)t.models.includes(e)||t.models.push(e);t.updated_at=(new Date).toISOString()}else{const e={zhipu:["zhipu",a.providers.get_display_name("zhipu")],"智谱":["zhipu",a.providers.get_display_name("zhipu")],minimax:["minimax",a.providers.get_display_name("minimax")],kimi:["kimi",a.providers.get_display_name("kimi")],claude:["claude",a.providers.get_display_name("claude")],zenmux:["zenmux",a.providers.get_display_name("zenmux")],streamlake:["streamlake",a.providers.get_display_name("streamlake")],kuaishou:["streamlake",a.providers.get_display_name("streamlake")],"快手":["streamlake",a.providers.get_display_name("streamlake")],volcengine:["volcengine",a.providers.get_display_name("volcengine")],aliyun:["aliyun",a.providers.get_display_name("aliyun")],"阿里云":["aliyun",a.providers.get_display_name("aliyun")],tencent:["tencent",a.providers.get_display_name("tencent")],"腾讯":["tencent",a.providers.get_display_name("tencent")],"腾讯云":["tencent",a.providers.get_display_name("tencent")]};if(o.startsWith("custom:")){const e=o.substring(7);t=i("custom",e,l,n,s)}else if(e[o]){const[r,d]=e[o]||[null,null];if(!r)throw new Error(a.errors.unknown_provider(o));t=i(r,d,l,n,s)}else t=i("custom",o,l,n,s)}this.configManager.saveProvider(t);const r=this.getProviderDisplayName(t.provider_type,t.name,!1);if(console.log(e.green.bold(a.cli.configure_success(r))),t.api_key){const o=t.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(o)}`)}t.base_url&&console.log(` ${a.general.base_url_label()}: ${t.base_url}`),t.models.length>0&&console.log(` ${a.general.model_label()}: ${t.models.join(", ")}`)}show(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));const n=this.getProviderDisplayName(l.provider_type,l.name,!1);if(console.log(e.blue.bold(a.cli.show_config_title(n))),console.log(),console.log(` ${a.general.id_label()}: ${l.id}`),console.log(` ${a.general.name_label()}: ${l.name}`),console.log(` ${a.general.type_label()}: ${l.provider_type}`),console.log(` ${a.general.created_label()}: ${new Date(l.created_at).toLocaleString()}`),console.log(` ${a.general.updated_label()}: ${new Date(l.updated_at).toLocaleString()}`),l.api_key){const e=l.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e}`)}else console.log(` ${a.general.api_key_label()}: ${e.red(a.status.not_configured())}`);l.base_url&&console.log(` ${a.general.base_url_label()}: ${l.base_url}`),l.models.length>0&&(console.log(` ${a.general.model_label()}: ${l.models.join(", ")}`),l.current_model&&console.log(` ${e.dim(`Active: ${l.current_model}`)}`),l.default_sonnet_model&&console.log(` ${e.dim(`Sonnet: ${l.default_sonnet_model}`)}`),l.default_haiku_model&&console.log(` ${e.dim(`Haiku: ${l.default_haiku_model}`)}`),l.default_opus_model&&console.log(` ${e.dim(`Opus: ${l.default_opus_model}`)}`))}async test(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));if(console.log(e.yellow(a.cli.test_connection(l.name))),!l.api_key)throw new Error(a.errors.provider_not_configured());const n=await t(l);n.success?(console.log(e.green(`✓ ${n.message}`)),n.model_info&&(console.log(` Model: ${n.model_info.model_name}`),console.log(` Provider: ${n.model_info.provider_name}`),console.log(` Response time: ${n.response_time_ms}ms`))):console.log(e.red(`✗ ${n.message}`))}models(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));if(console.log(e.blue.bold(`${a.general.model_label()} (${l.models.length} models)`)),console.log(),0===l.models.length)return void console.log(` ${e.dim("No models configured")}`);const n=l.current_model||l.models[0];for(const o of l.models){const l=o===n,s=l?"✓":" ",i=l?e.green.bold(o):o;console.log(` ${s} ${i}`)}console.log()}async setModel(o,l,n){const s=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!s)throw new Error(a.errors.provider_not_found(o));if(!s.models.includes(l))throw new Error(`Model '${l}' not found in provider. Available models: ${s.models.join(", ")||"none"}`);const i=this.configManager.getCurrentProvider(),t=i&&i.id===s.id;if(!n||"default"===n?s.current_model=l:"sonnet"===n?s.default_sonnet_model=l:"haiku"===n?s.default_haiku_model=l:"opus"===n&&(s.default_opus_model=l),s.updated_at=(new Date).toISOString(),!t&&i){const o=this.getProviderDisplayName(i.provider_type,i.name,!1),t=this.getProviderDisplayName(s.provider_type,s.name,!1);console.log(),console.log(e.yellow(`⚠ Warning: ${o} is currently active.`)),console.log(e.dim(`You are setting a model for ${t}, which will not affect your current Claude Code configuration.`)),console.log();if(await this.askForSwitch(t)){this.configManager.saveProvider(s),this.configManager.switchProvider(s.id);const o=this.getModelTypeLabel(n);console.log(),console.log(`${e.green("✓ Successfully switched to")} ${e.bold(t)} ${e.dim("with")} ${o} ${e.bold(l)}`),console.log(e.dim(a.cli.restart_note()))}else{this.configManager.saveProvider(s);const o=this.getModelTypeLabel(n);console.log(),console.log(`${e.green("✓")} ${o} ${e.dim("set for")} ${e.bold(t)} ${e.dim("to")} ${e.bold(l)} ${e.dim("(provider not switched)")}`)}}else{this.configManager.saveProvider(s),i&&i.id===s.id&&this.configManager.updateCurrentProviderSettings();const o=this.getProviderDisplayName(s.provider_type,s.name,!1),t=this.getModelTypeLabel(n);console.log(`${e.green("✓")} ${e.bold(o)} ${t} ${e.dim("set to")} ${e.bold(l)}`)}}removeModel(o,l){const n=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!n)throw new Error(a.errors.provider_not_found(o));if(!n.models.includes(l))throw new Error(`Model '${l}' not found in provider`);const s=n.models.indexOf(l);n.models.splice(s,1),n.current_model===l&&(n.current_model=n.models.length>0?n.models[0]:void 0),n.updated_at=(new Date).toISOString(),this.configManager.saveProvider(n);const i=this.configManager.getCurrentProvider();i&&i.id===n.id&&this.configManager.updateCurrentProviderSettings();const t=this.getProviderDisplayName(n.provider_type,n.name,!1);console.log(e.green(`Model '${l}' removed from ${t}`)),0===n.models.length?console.log(e.yellow("Warning: No models remaining in this provider")):(console.log(e.dim(`Remaining models: ${n.models.join(", ")}`)),n.current_model&&console.log(e.dim(`Current active model: ${n.current_model}`)))}export(l){const n={...this.configManager.exportConfig(),exported_at:(new Date).toISOString()},s=JSON.stringify(n,null,2);l?(o.writeFileSync(l,s),console.log(e.green.bold(a.cli.export_success(l)))):(console.log(e.blue.bold(a.general.configuration_label())),console.log(s))}import(l){if(!o.existsSync(l))throw new Error(`File '${l}' not found`);const n=o.readFileSync(l,"utf-8"),s=JSON.parse(n);this.configManager.importConfig(s),console.log(e.green.bold(a.cli.import_success(l)))}reset(){console.log(e.yellow(a.general.resetting())),this.configManager.resetToClaudeDefault(),console.log(e.green(a.cli.reset_success())),console.log(e.dim(a.cli.restart_note()))}getProviderDisplayName(o,l,n=!0){if("custom"===o){const o=l||"Custom Provider";return n?e.green(o):o}const s=a.providers.get_display_name(o);if(!n)return s;return({zhipu:o=>e.yellow(o),minimax:o=>e.cyan(o),kimi:o=>e.magenta(o),claude:o=>e.white(o),zenmux:o=>e.blue(o),streamlake:o=>e.hex("#FF6B00")(o),volcengine:o=>e.hex("#FF4500")(o),aliyun:o=>e.hex("#FF6A00")(o),custom:o=>e.green(o)}[o]||(e=>e))(s)}async askForSwitch(e){return s({message:`Do you want to switch to ${e} now?`,default:!1})}getModelTypeLabel(e){switch(e){case"sonnet":return"Sonnet model";case"haiku":return"Haiku model";case"opus":return"Opus model";default:return"Default model"}}}
1
+ import e from"chalk";import o from"fs";import{select as l,input as n,confirm as s}from"@inquirer/prompts";import{createProvider as i}from"./config.js";import{testProvider as t,PROVIDER_CONFIGS as r}from"./providers.js";import{i18n as a}from"./i18n.js";import{getAllToolAdapters as d,getToolAdapter as c}from"./tools/index.js";export class Commands{constructor(e){this.configManager=e}async interactive(){console.log(),console.log(e.blue.bold(" ___ ___ / ___ ( ) __ ___ ")),console.log(e.blue.bold(" // ) ) // ) ) //\\ \\ / / / / ")),console.log(e.blue.bold(" // // // \\ \\ / / / / ")),console.log(e.blue.bold(" ((____ ((____ // \\ \\ / / / / ")),console.log(e.cyan.bold(" 交互式配置向导")),console.log(),console.log(),console.log(e.cyan.bold("▸ Step 1: 选择要配置的 AI 提供商")),console.log();const o=[...Object.entries(r).filter(([e])=>"custom"!==e).map(([e,o])=>({value:e,name:o.display_name,defaultModel:o.default_model})).map(e=>({value:{type:"preset",id:e.value,name:e.name,defaultModel:e.defaultModel},name:e.name})),{value:{type:"custom"},name:e.green("自定义 Provider (Local LLM / OpenAI Compatible)")}],d=await l({message:"请选择提供商",choices:o,pageSize:12});let c,g,m;"custom"===d.type?(c="custom",g=await n({message:"请输入自定义 Provider 名称 (例如: ollama, my-api)",default:"ollama"}),m="llama3"):(c=d.id,g=d.name,m=d.defaultModel),console.log(),console.log(e.cyan.bold(`▸ Step 2: 配置 ${g}`)),console.log();const _=await n({message:"请输入 API Key",validate:e=>!(!e||""===e.trim())||"API Key 不能为空"});let u;"custom"===c&&(u=await n({message:"请输入 Base URL",default:"http://localhost:11434/v1"})),console.log(),console.log(e.cyan.bold("▸ Step 3: 设置模型")),console.log();const p=(await n({message:"请输入模型名称 (多个模型用逗号分隔,如: claude-3-opus, claude-3-sonnet)",default:m})).split(",").map(e=>e.trim()).filter(e=>e.length>0),f=p[0]||m;console.log(),console.log(e.cyan.bold("▸ Step 4: 配置模型类型 (可选)")),console.log(e.dim(" 提示: 可为 Sonnet/Haiku/Opus 模型类型配置不同的模型,不配置则使用默认模型")),console.log();let v,y,$;if(await s({message:"是否为不同模型类型 (Sonnet/Haiku/Opus) 配置不同的默认模型?",default:!1})){const o=async o=>{const n=[{value:"__skip__",name:e.dim("跳过 (使用默认模型)")},...p.map(e=>({value:e,name:e}))],s=await l({message:`选择 ${o} 模型`,choices:n});return"__skip__"===s?void 0:s};v=await o("Sonnet"),y=await o("Haiku"),$=await o("Opus"),console.log(),console.log(e.dim(" 模型类型配置:")),v||y||$?(v&&console.log(e.dim(` Sonnet: ${v}`)),y&&console.log(e.dim(` Haiku: ${y}`)),$&&console.log(e.dim(` Opus: ${$}`))):console.log(e.dim(" 所有类型使用默认模型"))}console.log(),console.log(e.cyan.bold("▸ Step 5: 保存配置")),console.log();const h=this.configManager.listProviders(),b=h.filter(e=>e.provider_type===c);let w;if(b.length>0&&"custom"!==c){const o=[...b.map((e,o)=>({value:{action:"update",index:o},name:`${e.name} (模型: ${e.current_model||e.models[0]||"none"})`})),{value:{action:"create"},name:e.green(`创建新的 ${g} 配置`)}],n=await l({message:`发现 ${b.length} 个已存在的配置,请选择`,choices:o});if("update"===n.action){const e=b[n.index];e.api_key=_,u&&(e.base_url=u);for(const o of p)e.models.includes(o)||e.models.push(o);e.current_model=f,v&&(e.default_sonnet_model=v),y&&(e.default_haiku_model=y),$&&(e.default_opus_model=$),e.updated_at=(new Date).toISOString(),w=e}}else if("custom"===c){const e=h.find(e=>"custom"===e.provider_type&&e.name===g);if(e){if(await s({message:`发现已存在的 "${g}" 配置,是否更新?`,default:!0})){e.api_key=_,u&&(e.base_url=u);for(const o of p)e.models.includes(o)||e.models.push(o);e.current_model=f,v&&(e.default_sonnet_model=v),y&&(e.default_haiku_model=y),$&&(e.default_opus_model=$),e.updated_at=(new Date).toISOString(),w=e}}}w||(w=i(c,g,_,u,p),w.current_model=f,v&&(w.default_sonnet_model=v),y&&(w.default_haiku_model=y),$&&(w.default_opus_model=$)),this.configManager.saveProvider(w),console.log(e.green(`✓ 配置已保存 (id: ${w.id})`)),console.log(` ${a.general.provider_label()}: ${g}`),console.log(` ${a.general.model_label()}: ${p.join(", ")}`),console.log(),console.log(e.cyan.bold("▸ Step 6: 测试连接")),console.log();if(await s({message:"是否测试连接?",default:!0})){console.log(e.yellow(`正在测试 ${g} 连接...`));const o=await t(w);o.success?(console.log(e.green("✓ 连接成功!")),o.response_time_ms&&console.log(e.dim(` 响应时间: ${o.response_time_ms}ms`))):console.log(e.red(`✗ 连接失败: ${o.message}`))}console.log(),console.log(e.cyan.bold("▸ Step 7: 切换 Provider")),console.log();await s({message:"是否立即切换到该 Provider?",default:!0})&&(this.configManager.switchProvider(w.id),console.log(e.green.bold(`✓ 已切换到 ${g}`)),console.log(e.dim(a.cli.restart_note()))),console.log(),console.log(e.green.bold(" ___ ___ / ___ ( ) __ ___ ")),console.log(e.green.bold(" // ) ) // ) ) //\\ \\ / / / / ")),console.log(e.green.bold(" // // // \\ \\ / / / / ")),console.log(e.green.bold(" ((____ ((____ // \\ \\ / / / / ")),console.log(e.cyan.bold(" 配置完成! ✓")),console.log()}list(){console.log(e.blue.bold(a.cli.list_title())),console.log();const o=this.configManager.listProviders(),l=this.configManager.getCurrentProvider();for(const n of o){const o=l?.id===n.id?e.green.bold(a.status.active()):e.dim(a.status.inactive()),s=this.getProviderDisplayName(n.provider_type,n.name,!0);if(console.log(` ${o} ${e.bold(s)}`),console.log(` ${a.general.id_label()}: ${e.dim(n.id)}`),n.models.length>0){const o=n.current_model||n.models[0]||"none";console.log(` ${a.general.model_label()}: ${n.models.length} ${1===n.models.length?"model":"models"} (${e.dim(o)})`)}if(n.api_key){const o=n.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(o)}`)}console.log()}}async switch(o,n){const s=this.configManager.listProviders();if(!o){if(0===s.length)return void console.log(e.yellow("没有配置任何 Provider,请先使用 `cckit configure` 或 `cckit interactive` 进行配置"));n||(n=await this.selectToolInteractive());const i=this.configManager.getCurrentProviderForTool(n),t=s.map(o=>{const l=i?.id===o.id,n=this.getProviderDisplayName(o.provider_type,o.name,!1),s=o.current_model||o.models[0]||"none",t=l?"✓ ":" ",r=l?e.green(" (当前)"):"";return{value:o.id,name:`${t}${n} - ${e.dim(s)}${r}`}});console.log();const r=await l({message:"选择要切换的 Provider",choices:t,pageSize:10});o=r}n||(n="claude-code");const i=s.find(e=>e.id===o||e.name===o||e.provider_type===o);if(!i)throw new Error(a.errors.provider_not_found(o));const t=c(n).toolConfig.display_name,r=this.getProviderDisplayName(i.provider_type,i.name,!1);console.log(e.yellow(`正在为 ${t} 切换到 ${r}...`)),await this.configManager.switchProviderForTool(i.id,n),console.log(e.green.bold(`成功切换 ${t} 到 ${r}`)),console.log(e.dim(a.cli.restart_note())),"codex"===n&&(console.log(),console.log(e.cyan("💡 Codex 提示:")),console.log(e.dim(" • 请确保所选模型支持 OpenAI Responses API")))}async selectToolInteractive(){const o=d().map(o=>{const l=o.isInstalled(),n=this.configManager.getCurrentProviderForTool(o.toolType),s=l?n?e.green(` (${n.name})`):e.dim(" (未配置)"):e.dim(" (未安装)");return{value:o.toolType,name:`${o.toolConfig.display_name}${s}`}});return console.log(),l({message:"选择目标工具",choices:o,pageSize:10})}tools(){console.log(e.blue.bold("支持的 CLI 工具")),console.log();const o=d();for(const l of o){const o=l.isInstalled(),n=this.configManager.getCurrentProviderForTool(l.toolType),s=o?e.green("[已安装]"):e.dim("[未安装]");console.log(` ${s} ${e.bold(l.toolConfig.display_name)}`),console.log(` ID: ${e.dim(l.toolType)}`),console.log(` 配置文件: ${e.dim(l.getConfigPath())}`),n?console.log(` 当前 Provider: ${e.cyan(n.name)}`):console.log(` 当前 Provider: ${e.dim("未配置")}`),console.log()}}current(o){const l=o||"claude-code",n=this.configManager.getCurrentProviderForTool(l);if(!n)return void(o?console.log(e.yellow(`${o} 没有配置活跃的 Provider`)):console.log(e.yellow(a.cli.no_active_provider())));const s=c(l);console.log(e.blue.bold(`${s.toolConfig.display_name} - 当前 Provider`)),console.log();const i=this.getProviderDisplayName(n.provider_type,n.name,!0);if(console.log(` ${e.bold(i)}`),console.log(` ${a.general.id_label()}: ${e.dim(n.id)}`),console.log(` ${a.general.type_label()}: ${e.dim(n.provider_type)}`),n.current_model&&console.log(` ${a.general.model_label()}: ${e.dim(n.current_model)}`),n.base_url&&console.log(` ${a.general.base_url_label()}: ${e.dim(n.base_url)}`),n.api_key){const o=n.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(o)}`)}}configure(o,l,n,s){let t=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(t){if(l&&(t.api_key=l),n&&(t.base_url=n),s&&s.length>0)for(const e of s)t.models.includes(e)||t.models.push(e);t.updated_at=(new Date).toISOString()}else{const e={zhipu:["zhipu",a.providers.get_display_name("zhipu")],"智谱":["zhipu",a.providers.get_display_name("zhipu")],minimax:["minimax",a.providers.get_display_name("minimax")],kimi:["kimi",a.providers.get_display_name("kimi")],claude:["claude",a.providers.get_display_name("claude")],zenmux:["zenmux",a.providers.get_display_name("zenmux")],streamlake:["streamlake",a.providers.get_display_name("streamlake")],kuaishou:["streamlake",a.providers.get_display_name("streamlake")],"快手":["streamlake",a.providers.get_display_name("streamlake")],volcengine:["volcengine",a.providers.get_display_name("volcengine")],aliyun:["aliyun",a.providers.get_display_name("aliyun")],"阿里云":["aliyun",a.providers.get_display_name("aliyun")],tencent:["tencent",a.providers.get_display_name("tencent")],"腾讯":["tencent",a.providers.get_display_name("tencent")],"腾讯云":["tencent",a.providers.get_display_name("tencent")]};if(o.startsWith("custom:")){const e=o.substring(7);t=i("custom",e,l,n,s)}else if(e[o]){const[r,d]=e[o]||[null,null];if(!r)throw new Error(a.errors.unknown_provider(o));t=i(r,d,l,n,s)}else t=i("custom",o,l,n,s)}this.configManager.saveProvider(t);const r=this.getProviderDisplayName(t.provider_type,t.name,!1);if(console.log(e.green.bold(a.cli.configure_success(r))),t.api_key){const o=t.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e.dim(o)}`)}t.base_url&&console.log(` ${a.general.base_url_label()}: ${t.base_url}`),t.models.length>0&&console.log(` ${a.general.model_label()}: ${t.models.join(", ")}`)}show(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));const n=this.getProviderDisplayName(l.provider_type,l.name,!1);if(console.log(e.blue.bold(a.cli.show_config_title(n))),console.log(),console.log(` ${a.general.id_label()}: ${l.id}`),console.log(` ${a.general.name_label()}: ${l.name}`),console.log(` ${a.general.type_label()}: ${l.provider_type}`),console.log(` ${a.general.created_label()}: ${new Date(l.created_at).toLocaleString()}`),console.log(` ${a.general.updated_label()}: ${new Date(l.updated_at).toLocaleString()}`),l.api_key){const e=l.api_key.substring(0,8)+"***";console.log(` ${a.general.api_key_label()}: ${e}`)}else console.log(` ${a.general.api_key_label()}: ${e.red(a.status.not_configured())}`);l.base_url&&console.log(` ${a.general.base_url_label()}: ${l.base_url}`),l.models.length>0&&(console.log(` ${a.general.model_label()}: ${l.models.join(", ")}`),l.current_model&&console.log(` ${e.dim(`Active: ${l.current_model}`)}`),l.default_sonnet_model&&console.log(` ${e.dim(`Sonnet: ${l.default_sonnet_model}`)}`),l.default_haiku_model&&console.log(` ${e.dim(`Haiku: ${l.default_haiku_model}`)}`),l.default_opus_model&&console.log(` ${e.dim(`Opus: ${l.default_opus_model}`)}`))}async test(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));if(console.log(e.yellow(a.cli.test_connection(l.name))),!l.api_key)throw new Error(a.errors.provider_not_configured());const n=await t(l);n.success?(console.log(e.green(`✓ ${n.message}`)),n.model_info&&(console.log(` Model: ${n.model_info.model_name}`),console.log(` Provider: ${n.model_info.provider_name}`),console.log(` Response time: ${n.response_time_ms}ms`))):console.log(e.red(`✗ ${n.message}`))}models(o){const l=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!l)throw new Error(a.errors.provider_not_found(o));if(console.log(e.blue.bold(`${a.general.model_label()} (${l.models.length} models)`)),console.log(),0===l.models.length)return void console.log(` ${e.dim("No models configured")}`);const n=l.current_model||l.models[0];for(const o of l.models){const l=o===n,s=l?"✓":" ",i=l?e.green.bold(o):o;console.log(` ${s} ${i}`)}console.log()}async setModel(o,l,n){const s=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!s)throw new Error(a.errors.provider_not_found(o));if(!s.models.includes(l))throw new Error(`Model '${l}' not found in provider. Available models: ${s.models.join(", ")||"none"}`);const i=this.configManager.getCurrentProvider(),t=i&&i.id===s.id;if(!n||"default"===n?s.current_model=l:"sonnet"===n?s.default_sonnet_model=l:"haiku"===n?s.default_haiku_model=l:"opus"===n&&(s.default_opus_model=l),s.updated_at=(new Date).toISOString(),!t&&i){const o=this.getProviderDisplayName(i.provider_type,i.name,!1),t=this.getProviderDisplayName(s.provider_type,s.name,!1);console.log(),console.log(e.yellow(`⚠ Warning: ${o} is currently active.`)),console.log(e.dim(`You are setting a model for ${t}, which will not affect your current Claude Code configuration.`)),console.log();if(await this.askForSwitch(t)){this.configManager.saveProvider(s),this.configManager.switchProvider(s.id);const o=this.getModelTypeLabel(n);console.log(),console.log(`${e.green("✓ Successfully switched to")} ${e.bold(t)} ${e.dim("with")} ${o} ${e.bold(l)}`),console.log(e.dim(a.cli.restart_note()))}else{this.configManager.saveProvider(s);const o=this.getModelTypeLabel(n);console.log(),console.log(`${e.green("✓")} ${o} ${e.dim("set for")} ${e.bold(t)} ${e.dim("to")} ${e.bold(l)} ${e.dim("(provider not switched)")}`)}}else{this.configManager.saveProvider(s),i&&i.id===s.id&&this.configManager.updateCurrentProviderSettings();const o=this.getProviderDisplayName(s.provider_type,s.name,!1),t=this.getModelTypeLabel(n);console.log(`${e.green("✓")} ${e.bold(o)} ${t} ${e.dim("set to")} ${e.bold(l)}`)}}removeModel(o,l){const n=this.configManager.listProviders().find(e=>e.id===o||e.name===o||e.provider_type===o);if(!n)throw new Error(a.errors.provider_not_found(o));if(!n.models.includes(l))throw new Error(`Model '${l}' not found in provider`);const s=n.models.indexOf(l);n.models.splice(s,1),n.current_model===l&&(n.current_model=n.models.length>0?n.models[0]:void 0),n.updated_at=(new Date).toISOString(),this.configManager.saveProvider(n);const i=this.configManager.getCurrentProvider();i&&i.id===n.id&&this.configManager.updateCurrentProviderSettings();const t=this.getProviderDisplayName(n.provider_type,n.name,!1);console.log(e.green(`Model '${l}' removed from ${t}`)),0===n.models.length?console.log(e.yellow("Warning: No models remaining in this provider")):(console.log(e.dim(`Remaining models: ${n.models.join(", ")}`)),n.current_model&&console.log(e.dim(`Current active model: ${n.current_model}`)))}export(l){const n={...this.configManager.exportConfig(),exported_at:(new Date).toISOString()},s=JSON.stringify(n,null,2);l?(o.writeFileSync(l,s),console.log(e.green.bold(a.cli.export_success(l)))):(console.log(e.blue.bold(a.general.configuration_label())),console.log(s))}import(l){if(!o.existsSync(l))throw new Error(`File '${l}' not found`);const n=o.readFileSync(l,"utf-8"),s=JSON.parse(n);this.configManager.importConfig(s),console.log(e.green.bold(a.cli.import_success(l)))}reset(){console.log(e.yellow(a.general.resetting())),this.configManager.resetToClaudeDefault(),console.log(e.green(a.cli.reset_success())),console.log(e.dim(a.cli.restart_note()))}getProviderDisplayName(o,l,n=!0){if("custom"===o){const o=l||"Custom Provider";return n?e.green(o):o}const s=a.providers.get_display_name(o);if(!n)return s;return({zhipu:o=>e.yellow(o),minimax:o=>e.cyan(o),kimi:o=>e.magenta(o),claude:o=>e.white(o),zenmux:o=>e.blue(o),streamlake:o=>e.hex("#FF6B00")(o),volcengine:o=>e.hex("#FF4500")(o),aliyun:o=>e.hex("#FF6A00")(o),custom:o=>e.green(o)}[o]||(e=>e))(s)}async askForSwitch(e){return s({message:`Do you want to switch to ${e} now?`,default:!1})}getModelTypeLabel(e){switch(e){case"sonnet":return"Sonnet model";case"haiku":return"Haiku model";case"opus":return"Opus model";default:return"Default model"}}}
@@ -1 +1 @@
1
- {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/commands.js","names":["chalk","fs","select","input","confirm","createProvider","testProvider","PROVIDER_CONFIGS","i18n","Commands","constructor","configManager","this","interactive","console","log","blue","bold","cyan","providerTypeChoices","Object","entries","filter","key","map","config","value","name","display_name","defaultModel","default_model","p","type","id","green","providerChoice","message","choices","pageSize","providerType","providerName","default","apiKey","validate","trim","baseUrl","models","split","m","length","model","dim","defaultSonnetModel","defaultHaikuModel","defaultOpusModel","selectModelFromList","async","modelType","modelChoices","selectedModel","undefined","providers","listProviders","sameTypeProviders","provider_type","provider","updateChoices","i","action","index","current_model","updateChoice","existingProvider","api_key","base_url","includes","push","default_sonnet_model","default_haiku_model","default_opus_model","updated_at","Date","toISOString","existingCustomProvider","find","saveProvider","general","provider_label","model_label","join","yellow","result","success","response_time_ms","red","switchProvider","cli","restart_note","list","list_title","currentProvider","getCurrentProvider","status","active","inactive","getProviderDisplayName","id_label","activeModel","maskedKey","substring","api_key_label","providerId","providerChoices","isCurrent","prefix","suffix","selectedProviderId","Error","errors","provider_not_found","switching","switch_success","current","no_active_provider","current_title","type_label","base_url_label","configure","providerTypeMap","zhipu","get_display_name","minimax","kimi","claude","zenmux","streamlake","kuaishou","volcengine","aliyun","tencent","startsWith","customName","unknown_provider","configure_success","show","show_config_title","name_label","created_label","created_at","toLocaleString","updated_label","not_configured","test","test_connection","provider_not_configured","model_info","model_name","provider_name","isActive","marker","display","setModel","modelName","isCurrentProvider","currentProviderName","targetProviderName","askForSwitch","modelTypeLabel","getModelTypeLabel","updateCurrentProviderSettings","removeModel","modelIndex","indexOf","splice","output","exportData","exportConfig","exported_at","jsonStr","JSON","stringify","writeFileSync","export_success","configuration_label","import","file","existsSync","content","readFileSync","importData","parse","importConfig","import_success","reset","resetting","resetToClaudeDefault","reset_success","withColor","displayName","s","magenta","white","hex","custom"],"sources":["../src/commands.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/commands.js","names":["chalk","fs","select","input","confirm","createProvider","testProvider","PROVIDER_CONFIGS","i18n","getAllToolAdapters","getToolAdapter","Commands","constructor","configManager","this","interactive","console","log","blue","bold","cyan","providerTypeChoices","Object","entries","filter","key","map","config","value","name","display_name","defaultModel","default_model","p","type","id","green","providerChoice","message","choices","pageSize","providerType","providerName","default","apiKey","validate","trim","baseUrl","models","split","m","length","model","dim","defaultSonnetModel","defaultHaikuModel","defaultOpusModel","selectModelFromList","async","modelType","modelChoices","selectedModel","undefined","providers","listProviders","sameTypeProviders","provider_type","provider","updateChoices","i","action","index","current_model","updateChoice","existingProvider","api_key","base_url","includes","push","default_sonnet_model","default_haiku_model","default_opus_model","updated_at","Date","toISOString","existingCustomProvider","find","saveProvider","general","provider_label","model_label","join","yellow","result","success","response_time_ms","red","switchProvider","cli","restart_note","list","list_title","currentProvider","getCurrentProvider","status","active","inactive","getProviderDisplayName","id_label","activeModel","maskedKey","substring","api_key_label","providerId","tool","selectToolInteractive","getCurrentProviderForTool","providerChoices","isCurrent","prefix","suffix","selectedProviderId","Error","errors","provider_not_found","toolName","toolConfig","switchProviderForTool","toolChoices","adapter","isInstalled","toolType","tools","adapters","getConfigPath","current","targetTool","no_active_provider","type_label","base_url_label","configure","providerTypeMap","zhipu","get_display_name","minimax","kimi","claude","zenmux","streamlake","kuaishou","volcengine","aliyun","tencent","startsWith","customName","unknown_provider","configure_success","show","show_config_title","name_label","created_label","created_at","toLocaleString","updated_label","not_configured","test","test_connection","provider_not_configured","model_info","model_name","provider_name","isActive","marker","display","setModel","modelName","isCurrentProvider","currentProviderName","targetProviderName","askForSwitch","modelTypeLabel","getModelTypeLabel","updateCurrentProviderSettings","removeModel","modelIndex","indexOf","splice","output","exportData","exportConfig","exported_at","jsonStr","JSON","stringify","writeFileSync","export_success","configuration_label","import","file","existsSync","content","readFileSync","importData","parse","importConfig","import_success","reset","resetting","resetToClaudeDefault","reset_success","withColor","displayName","s","magenta","white","hex","custom"],"sources":["../src/commands.ts"],"mappings":"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","ignoreList":[]}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ModelProvider, CCKitConfig } from './types.js';
1
+ import { ModelProvider, CCKitConfig, ToolType, ToolProviderState } from './types.js';
2
2
  export declare class ConfigManager {
3
3
  private configDir;
4
4
  private configFile;
@@ -10,8 +10,24 @@ export declare class ConfigManager {
10
10
  listProviders(): ModelProvider[];
11
11
  saveProvider(provider: ModelProvider): void;
12
12
  getCurrentProvider(): ModelProvider | undefined;
13
- switchProvider(providerId: string): void;
13
+ /**
14
+ * Get the current provider for a specific tool
15
+ */
16
+ getCurrentProviderForTool(tool: ToolType): ModelProvider | undefined;
17
+ /**
18
+ * Get all tool states
19
+ */
20
+ getToolStates(): ToolProviderState[];
21
+ /**
22
+ * Switch provider for a specific tool
23
+ */
24
+ switchProviderForTool(providerId: string, tool: ToolType): Promise<void>;
25
+ switchProvider(providerId: string): Promise<void>;
14
26
  updateCurrentProviderSettings(): void;
27
+ /**
28
+ * Update settings for a specific tool
29
+ */
30
+ updateProviderSettingsForTool(tool: ToolType): Promise<void>;
15
31
  private applyProviderToClaudeSettings;
16
32
  resetToClaudeDefault(): void;
17
33
  exportConfig(): CCKitConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AA4BxE,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAS;;IASnC,UAAU,IAAI,IAAI;IAgBlB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,UAAU;IAKlB,aAAa,IAAI,aAAa,EAAE;IAKhC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAa3C,kBAAkB,IAAI,aAAa,GAAG,SAAS;IAQ/C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAaxC,6BAA6B,IAAI,IAAI;IAOrC,OAAO,CAAC,6BAA6B;IA6IrC,oBAAoB,IAAI,IAAI;IAmB5B,YAAY,IAAI,WAAW;IAI3B,YAAY,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI;CAUhD;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,aAAa,CAcf"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAkB,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA6BrG,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAS;;IASnC,UAAU,IAAI,IAAI;IAgBlB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,UAAU;IAKlB,aAAa,IAAI,aAAa,EAAE;IAKhC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAa3C,kBAAkB,IAAI,aAAa,GAAG,SAAS;IAI/C;;OAEG;IACH,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAiBpE;;OAEG;IACH,aAAa,IAAI,iBAAiB,EAAE;IAKpC;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCxE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,6BAA6B,IAAI,IAAI;IAOrC;;OAEG;IACG,6BAA6B,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE,OAAO,CAAC,6BAA6B;IA6IrC,oBAAoB,IAAI,IAAI;IAmB5B,YAAY,IAAI,WAAW;IAI3B,YAAY,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI;CAUhD;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,aAAa,CAcf"}
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- import e from"fs";import i from"path";import{homedir as t}from"os";import{v4 as n}from"uuid";import{APP_VERSION as r}from"./utils/constants.js";const o={zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",volcengine:"https://ark.cn-beijing.volces.com/api/coding",aliyun:"https://coding.dashscope.aliyuncs.com/apps/anthropic",tencent:"https://api.lkeap.cloud.tencent.com/coding/anthropic",xfyun:"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic"},a={zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",volcengine:"ark-code-latest",aliyun:"claude-sonnet-4-20250514",tencent:"GLM-5",xfyun:"GLM-5"};export class ConfigManager{constructor(){const e=t();this.configDir=i.join(e,".cckit"),this.configFile=i.join(this.configDir,"config.json"),this.claudeSettingsFile=i.join(e,".claude","settings.json")}initialize(){if(e.existsSync(this.configDir)||e.mkdirSync(this.configDir,{recursive:!0}),!e.existsSync(this.configFile)){const e={providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()};this.saveConfig(e)}}loadConfig(){if(!e.existsSync(this.configFile))return{providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()};try{const i=e.readFileSync(this.configFile,"utf-8");return JSON.parse(i)}catch(e){return{providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}}}saveConfig(i){i.updated_at=(new Date).toISOString(),e.writeFileSync(this.configFile,JSON.stringify(i,null,2))}listProviders(){return this.loadConfig().providers}saveProvider(e){const i=this.loadConfig(),t=i.providers.findIndex(i=>i.id===e.id);t>=0?i.providers[t]=e:i.providers.push(e),this.saveConfig(i)}getCurrentProvider(){const e=this.loadConfig();if(e.current_provider_id)return e.providers.find(i=>i.id===e.current_provider_id)}switchProvider(e){const i=this.loadConfig(),t=i.providers.find(i=>i.id===e);if(!t)throw new Error(`Provider with id '${e}' not found`);i.current_provider_id=e,this.saveConfig(i),this.applyProviderToClaudeSettings(t)}updateCurrentProviderSettings(){const e=this.getCurrentProvider();e&&this.applyProviderToClaudeSettings(e)}applyProviderToClaudeSettings(t){let n={env:{}};if(e.existsSync(this.claudeSettingsFile))try{const i=e.readFileSync(this.claudeSettingsFile,"utf-8");n=JSON.parse(i)}catch(e){n={env:{}}}const r=t.current_model||t.models[0]||a[t.provider_type]||"claude-3-5-sonnet-20241022",_=t.base_url||o[t.provider_type]||"",s=t.default_opus_model||r,c=t.default_sonnet_model||r,d=t.default_haiku_model||r;switch(t.provider_type){case"claude":n.env={ANTHROPIC_API_KEY:t.api_key};break;case"zhipu":case"minimax":n.env={ANTHROPIC_AUTH_TOKEN:t.api_key,ANTHROPIC_BASE_URL:_,ANTHROPIC_MODEL:r};break;case"kimi":n.env={ANTHROPIC_API_KEY:t.api_key,ANTHROPIC_BASE_URL:_,ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d};break;case"zenmux":n.env={ANTHROPIC_API_KEY:t.api_key,ANTHROPIC_BASE_URL:_||"https://zenmux.ai/api/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.provider_type};break;case"streamlake":n.env={ANTHROPIC_API_KEY:t.api_key,ANTHROPIC_BASE_URL:_||"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.provider_type};break;case"volcengine":n.env={ANTHROPIC_AUTH_TOKEN:t.api_key,ANTHROPIC_BASE_URL:_||"https://ark.cn-beijing.volces.com/api/coding",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,ANTHROPIC_API_KEY:"",CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1",CC_PROVIDER:t.provider_type};break;case"aliyun":n.env={ANTHROPIC_AUTH_TOKEN:t.api_key,ANTHROPIC_BASE_URL:_||"https://coding.dashscope.aliyuncs.com/apps/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.provider_type};break;case"tencent":n.env={ANTHROPIC_AUTH_TOKEN:t.api_key,ANTHROPIC_BASE_URL:_||"https://api.lkeap.cloud.tencent.com/coding/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.provider_type};break;case"xfyun":n.env={ANTHROPIC_AUTH_TOKEN:t.api_key,ANTHROPIC_BASE_URL:_||"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.provider_type};break;case"custom":n.env={ANTHROPIC_API_KEY:t.api_key,ANTHROPIC_BASE_URL:_||"",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:t.name};break;default:n.env={ANTHROPIC_API_KEY:t.api_key,ANTHROPIC_BASE_URL:_,ANTHROPIC_MODEL:r,CC_PROVIDER:t.provider_type}}const p=i.dirname(this.claudeSettingsFile);e.existsSync(p)||e.mkdirSync(p,{recursive:!0}),e.writeFileSync(this.claudeSettingsFile,JSON.stringify(n,null,2))}resetToClaudeDefault(){const t=this.loadConfig();t.current_provider_id=void 0,this.saveConfig(t);const n=i.dirname(this.claudeSettingsFile);e.existsSync(n)||e.mkdirSync(n,{recursive:!0}),e.writeFileSync(this.claudeSettingsFile,JSON.stringify({env:{ANTHROPIC_API_KEY:""}},null,2))}exportConfig(){return this.loadConfig()}importConfig(e){if(this.saveConfig(e),e.current_provider_id){const i=e.providers.find(i=>i.id===e.current_provider_id);i&&this.applyProviderToClaudeSettings(i)}}}export function getDefaultBaseUrl(e){return o[e]}export function getDefaultModel(e){return a[e]}export function createProvider(e,i,t,r,o){const a=getDefaultModel(e),_=o&&o.length>0?o:a?[a]:[];return{id:n(),name:i,provider_type:e,api_key:t||"",base_url:r||getDefaultBaseUrl(e),models:_,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}}
1
+ import e from"fs";import t from"path";import{homedir as i}from"os";import{v4 as o}from"uuid";import{APP_VERSION as r}from"./utils/constants.js";import{getToolAdapter as n}from"./tools/index.js";const a={zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",volcengine:"https://ark.cn-beijing.volces.com/api/coding",aliyun:"https://coding.dashscope.aliyuncs.com/apps/anthropic",tencent:"https://api.lkeap.cloud.tencent.com/coding/anthropic",xfyun:"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic"},s={zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",volcengine:"ark-code-latest",aliyun:"claude-sonnet-4-20250514",tencent:"GLM-5",xfyun:"GLM-5"};export class ConfigManager{constructor(){const e=i();this.configDir=t.join(e,".cckit"),this.configFile=t.join(this.configDir,"config.json"),this.claudeSettingsFile=t.join(e,".claude","settings.json")}initialize(){if(e.existsSync(this.configDir)||e.mkdirSync(this.configDir,{recursive:!0}),!e.existsSync(this.configFile)){const e={providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()};this.saveConfig(e)}}loadConfig(){if(!e.existsSync(this.configFile))return{providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()};try{const t=e.readFileSync(this.configFile,"utf-8");return JSON.parse(t)}catch(e){return{providers:[],version:r,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}}}saveConfig(t){t.updated_at=(new Date).toISOString(),e.writeFileSync(this.configFile,JSON.stringify(t,null,2))}listProviders(){return this.loadConfig().providers}saveProvider(e){const t=this.loadConfig(),i=t.providers.findIndex(t=>t.id===e.id);i>=0?t.providers[i]=e:t.providers.push(e),this.saveConfig(t)}getCurrentProvider(){return this.getCurrentProviderForTool("claude-code")}getCurrentProviderForTool(e){const t=this.loadConfig(),i=t.tool_states?.find(t=>t.tool_type===e);return i?t.providers.find(e=>e.id===i.current_provider_id):"claude-code"===e&&t.current_provider_id?t.providers.find(e=>e.id===t.current_provider_id):void 0}getToolStates(){return this.loadConfig().tool_states||[]}async switchProviderForTool(e,t){const i=this.loadConfig(),o=i.providers.find(t=>t.id===e);if(!o)throw new Error(`Provider with id '${e}' not found`);i.tool_states=i.tool_states||[];const r=i.tool_states.findIndex(e=>e.tool_type===t),a={tool_type:t,current_provider_id:e,last_switched_at:(new Date).toISOString()};r>=0?i.tool_states[r]=a:i.tool_states.push(a),"claude-code"===t&&(i.current_provider_id=e),this.saveConfig(i);const s=n(t);await s.applyProvider(o)}async switchProvider(e){await this.switchProviderForTool(e,"claude-code")}updateCurrentProviderSettings(){const e=this.getCurrentProvider();e&&this.applyProviderToClaudeSettings(e)}async updateProviderSettingsForTool(e){const t=this.getCurrentProviderForTool(e);if(t){const i=n(e);await i.applyProvider(t)}}applyProviderToClaudeSettings(i){let o={env:{}};if(e.existsSync(this.claudeSettingsFile))try{const t=e.readFileSync(this.claudeSettingsFile,"utf-8");o=JSON.parse(t)}catch(e){o={env:{}}}const r=i.current_model||i.models[0]||s[i.provider_type]||"claude-3-5-sonnet-20241022",n=i.base_url||a[i.provider_type]||"",_=i.default_opus_model||r,c=i.default_sonnet_model||r,d=i.default_haiku_model||r;switch(i.provider_type){case"claude":o.env={ANTHROPIC_API_KEY:i.api_key};break;case"zhipu":case"minimax":o.env={ANTHROPIC_AUTH_TOKEN:i.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:r};break;case"kimi":o.env={ANTHROPIC_API_KEY:i.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d};break;case"zenmux":o.env={ANTHROPIC_API_KEY:i.api_key,ANTHROPIC_BASE_URL:n||"https://zenmux.ai/api/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.provider_type};break;case"streamlake":o.env={ANTHROPIC_API_KEY:i.api_key,ANTHROPIC_BASE_URL:n||"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.provider_type};break;case"volcengine":o.env={ANTHROPIC_AUTH_TOKEN:i.api_key,ANTHROPIC_BASE_URL:n||"https://ark.cn-beijing.volces.com/api/coding",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,ANTHROPIC_API_KEY:"",CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1",CC_PROVIDER:i.provider_type};break;case"aliyun":o.env={ANTHROPIC_AUTH_TOKEN:i.api_key,ANTHROPIC_BASE_URL:n||"https://coding.dashscope.aliyuncs.com/apps/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.provider_type};break;case"tencent":o.env={ANTHROPIC_AUTH_TOKEN:i.api_key,ANTHROPIC_BASE_URL:n||"https://api.lkeap.cloud.tencent.com/coding/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.provider_type};break;case"xfyun":o.env={ANTHROPIC_AUTH_TOKEN:i.api_key,ANTHROPIC_BASE_URL:n||"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.provider_type};break;case"custom":o.env={ANTHROPIC_API_KEY:i.api_key,ANTHROPIC_BASE_URL:n||"",ANTHROPIC_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:_,ANTHROPIC_DEFAULT_SONNET_MODEL:c,ANTHROPIC_DEFAULT_HAIKU_MODEL:d,CC_PROVIDER:i.name};break;default:o.env={ANTHROPIC_API_KEY:i.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:r,CC_PROVIDER:i.provider_type}}const p=t.dirname(this.claudeSettingsFile);e.existsSync(p)||e.mkdirSync(p,{recursive:!0}),e.writeFileSync(this.claudeSettingsFile,JSON.stringify(o,null,2))}resetToClaudeDefault(){const i=this.loadConfig();i.current_provider_id=void 0,this.saveConfig(i);const o=t.dirname(this.claudeSettingsFile);e.existsSync(o)||e.mkdirSync(o,{recursive:!0}),e.writeFileSync(this.claudeSettingsFile,JSON.stringify({env:{ANTHROPIC_API_KEY:""}},null,2))}exportConfig(){return this.loadConfig()}importConfig(e){if(this.saveConfig(e),e.current_provider_id){const t=e.providers.find(t=>t.id===e.current_provider_id);t&&this.applyProviderToClaudeSettings(t)}}}export function getDefaultBaseUrl(e){return a[e]}export function getDefaultModel(e){return s[e]}export function createProvider(e,t,i,r,n){const a=getDefaultModel(e),s=n&&n.length>0?n:a?[a]:[];return{id:o(),name:t,provider_type:e,api_key:i||"",base_url:r||getDefaultBaseUrl(e),models:s,created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}}
@@ -1 +1 @@
1
- {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/config.js","names":["fs","path","homedir","uuidv4","APP_VERSION","DEFAULT_BASE_URLS","zhipu","minimax","kimi","zenmux","streamlake","volcengine","aliyun","tencent","xfyun","DEFAULT_MODELS","claude","ConfigManager","constructor","homeDir","this","configDir","join","configFile","claudeSettingsFile","initialize","existsSync","mkdirSync","recursive","defaultConfig","providers","version","created_at","Date","toISOString","updated_at","saveConfig","loadConfig","content","readFileSync","JSON","parse","error","config","writeFileSync","stringify","listProviders","saveProvider","provider","index","findIndex","p","id","push","getCurrentProvider","current_provider_id","find","switchProvider","providerId","Error","applyProviderToClaudeSettings","updateCurrentProviderSettings","currentProvider","claudeSettings","env","activeModel","current_model","models","provider_type","baseUrl","base_url","opusModel","default_opus_model","sonnetModel","default_sonnet_model","haikuModel","default_haiku_model","ANTHROPIC_API_KEY","api_key","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","CC_PROVIDER","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC","name","claudeDir","dirname","resetToClaudeDefault","undefined","exportConfig","importConfig","importedConfig","getDefaultBaseUrl","providerType","getDefaultModel","createProvider","providerName","apiKey","defaultModel","modelList","length"],"sources":["../src/config.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/config.js","names":["fs","path","homedir","uuidv4","APP_VERSION","getToolAdapter","DEFAULT_BASE_URLS","zhipu","minimax","kimi","zenmux","streamlake","volcengine","aliyun","tencent","xfyun","DEFAULT_MODELS","claude","ConfigManager","constructor","homeDir","this","configDir","join","configFile","claudeSettingsFile","initialize","existsSync","mkdirSync","recursive","defaultConfig","providers","version","created_at","Date","toISOString","updated_at","saveConfig","loadConfig","content","readFileSync","JSON","parse","error","config","writeFileSync","stringify","listProviders","saveProvider","provider","index","findIndex","p","id","push","getCurrentProvider","getCurrentProviderForTool","tool","toolState","tool_states","find","s","tool_type","current_provider_id","getToolStates","switchProviderForTool","providerId","Error","existingIndex","newState","last_switched_at","adapter","applyProvider","switchProvider","updateCurrentProviderSettings","currentProvider","applyProviderToClaudeSettings","updateProviderSettingsForTool","claudeSettings","env","activeModel","current_model","models","provider_type","baseUrl","base_url","opusModel","default_opus_model","sonnetModel","default_sonnet_model","haikuModel","default_haiku_model","ANTHROPIC_API_KEY","api_key","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","CC_PROVIDER","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC","name","claudeDir","dirname","resetToClaudeDefault","undefined","exportConfig","importConfig","importedConfig","getDefaultBaseUrl","providerType","getDefaultModel","createProvider","providerName","apiKey","defaultModel","modelList","length"],"sources":["../src/config.ts"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import e from"yargs";import{hideBin as o}from"yargs/helpers";import r from"chalk";import{execSync as i}from"child_process";import{createInterface as t}from"readline";import{ConfigManager as s}from"./config.js";import{Commands as d}from"./commands.js";import{initI18n as n,getCurrentLocale as a}from"./i18n.js";import{i18n as c}from"./i18n.js";import{APP_VERSION as l,TIMEOUTS as p,NPM_REGISTRIES as m}from"./utils/constants.js";import{getErrorMessage as u}from"./utils/errors.js";import{logger as v}from"./utils/logger.js";function f(e){const o=u(e);console.error(r.red(`Error: ${o}`)),v.debug("Error details:",e),process.exit(1)}function g(e){return async()=>{try{await e()}catch(e){f(e)}}}function y(e){return()=>{try{e()}catch(e){f(e)}}}(async function(){n(a()),function(){try{const e=i("claude --version",{stdio:"pipe",timeout:p.CLI_CHECK}).toString().trim();v.success(`Claude Code is installed: ${c.claude_code.installed_with_version(e)}`)}catch(e){const o=e;if("ENOENT"===o.code||o.killed){console.log(r.yellow(c.claude_code.not_installed())),console.log(c.claude_code.install_prompt());const e=t({input:process.stdin,output:process.stdout});e.question("",o=>{if(e.close(),"y"===o.toLowerCase()||"yes"===o.toLowerCase()){console.log(r.yellow(c.claude_code.installing()));try{i(`npm install -g @anthropic-ai/claude-code --registry=${m.NPMMIRROR}`,{stdio:"inherit"}),console.log(`${r.green(c.claude_code.install_success())} ${r.dim(c.claude_code.restart_terminal_note())}`)}catch(e){console.log(r.red(c.claude_code.install_failed())),console.log(c.claude_code.npm_requirements()),process.exit(1)}}else console.log(r.yellow(c.claude_code.skip_install_warning()))})}}}();const u=new s;u.initialize();const h=new d(u);e(o(process.argv)).command("list","List all available model providers",{},()=>y(()=>h.list())()).command("switch [provider]","Switch to a specific model provider (interactive if no provider specified)",e=>e.positional("provider",{describe:"The model provider to switch to (optional, will prompt if not provided)",type:"string"}),e=>g(async()=>await h.switch(e.provider))()).command("current","Show current active provider",{},()=>y(()=>h.current())()).command("configure <provider>","Configure a provider",e=>e.positional("provider",{describe:"The provider to configure",type:"string"}).option("api-key",{describe:"API key for the provider",type:"string"}).option("base-url",{describe:"Base URL for the provider",type:"string"}).option("model",{describe:"Model name (can be used multiple times)",type:"array"}),e=>y(()=>{const o=e.model?Array.isArray(e.model)?e.model:[e.model]:void 0;h.configure(e.provider,e["api-key"],e["base-url"],o)})()).command("show <provider>","Show provider configuration",e=>e.positional("provider",{describe:"The provider to show",type:"string"}),e=>y(()=>h.show(e.provider))()).command("test <provider>","Test provider connection",e=>e.positional("provider",{describe:"The provider to test",type:"string"}),e=>g(async()=>await h.test(e.provider))()).command("models <provider>","List models for a provider",e=>e.positional("provider",{describe:"The provider to show models for",type:"string"}),e=>y(()=>h.models(e.provider))()).command("set-model <provider> <model>","Set active model for a provider",e=>e.positional("provider",{describe:"The provider name or id",type:"string"}).positional("model",{describe:"The model name to set as active",type:"string"}).option("type",{describe:"Model type to set (default, sonnet, haiku, opus)",type:"string",choices:["default","sonnet","haiku","opus"],default:"default"}),e=>g(async()=>await h.setModel(e.provider,e.model,e.type))()).command("remove-model <provider> <model>","Remove a model from a provider",e=>e.positional("provider",{describe:"The provider name or id",type:"string"}).positional("model",{describe:"The model name to remove",type:"string"}),e=>y(()=>h.removeModel(e.provider,e.model))()).command("export","Export configuration",e=>e.option("output",{describe:"Output file path (optional, defaults to stdout)",type:"string"}),e=>y(()=>h.export(e.output))()).command("import <file>","Import configuration",e=>e.positional("file",{describe:"Input file path",type:"string"}),e=>y(()=>h.import(e.file))()).command("reset","Reset to default Claude configuration",{},()=>y(()=>h.reset())()).command("interactive","Interactive configuration wizard",{},()=>g(async()=>await h.interactive())()).help().alias("help","h").version(l).alias("version","v").demandCommand().strict().parseAsync().catch(e=>f(e))})().catch(e=>{console.error(r.red(`Fatal error: ${u(e)}`)),process.exit(1)});
2
+ import o from"yargs";import{hideBin as e}from"yargs/helpers";import r from"chalk";import{execSync as i}from"child_process";import{createInterface as t}from"readline";import{ConfigManager as s}from"./config.js";import{Commands as n}from"./commands.js";import{initI18n as d,getCurrentLocale as a}from"./i18n.js";import{i18n as l}from"./i18n.js";import{APP_VERSION as c,TIMEOUTS as p,NPM_REGISTRIES as m}from"./utils/constants.js";import{getErrorMessage as u}from"./utils/errors.js";import{logger as v}from"./utils/logger.js";import{getSupportedTools as f}from"./tools/index.js";function g(o){const e=u(o);console.error(r.red(`Error: ${e}`)),v.debug("Error details:",o),process.exit(1)}function y(o){return async()=>{try{await o()}catch(o){g(o)}}}function h(o){return()=>{try{o()}catch(o){g(o)}}}(async function(){d(a()),function(){try{const o=i("claude --version",{stdio:"pipe",timeout:p.CLI_CHECK}).toString().trim();v.success(`Claude Code is installed: ${l.claude_code.installed_with_version(o)}`)}catch(o){const e=o;if("ENOENT"===e.code||e.killed){console.log(r.yellow(l.claude_code.not_installed())),console.log(l.claude_code.install_prompt());const o=t({input:process.stdin,output:process.stdout});o.question("",e=>{if(o.close(),"y"===e.toLowerCase()||"yes"===e.toLowerCase()){console.log(r.yellow(l.claude_code.installing()));try{i(`npm install -g @anthropic-ai/claude-code --registry=${m.NPMMIRROR}`,{stdio:"inherit"}),console.log(`${r.green(l.claude_code.install_success())} ${r.dim(l.claude_code.restart_terminal_note())}`)}catch(o){console.log(r.red(l.claude_code.install_failed())),console.log(l.claude_code.npm_requirements()),process.exit(1)}}else console.log(r.yellow(l.claude_code.skip_install_warning()))})}}}();const u=new s;u.initialize();const w=new n(u);o(e(process.argv)).command("list","List all available model providers",{},()=>h(()=>w.list())()).command("switch [provider]","Switch to a specific model provider (interactive if no provider specified)",o=>o.positional("provider",{describe:"The model provider to switch to (optional, will prompt if not provided)",type:"string"}).option("tool",{describe:"Target CLI tool",type:"string",choices:f()}),o=>y(async()=>await w.switch(o.provider,o.tool))()).command("current","Show current active provider",o=>o.option("tool",{describe:"Target CLI tool",type:"string",choices:f()}),o=>h(()=>w.current(o.tool))()).command("configure <provider>","Configure a provider",o=>o.positional("provider",{describe:"The provider to configure",type:"string"}).option("api-key",{describe:"API key for the provider",type:"string"}).option("base-url",{describe:"Base URL for the provider",type:"string"}).option("model",{describe:"Model name (can be used multiple times)",type:"array"}),o=>h(()=>{const e=o.model?Array.isArray(o.model)?o.model:[o.model]:void 0;w.configure(o.provider,o["api-key"],o["base-url"],e)})()).command("show <provider>","Show provider configuration",o=>o.positional("provider",{describe:"The provider to show",type:"string"}),o=>h(()=>w.show(o.provider))()).command("test <provider>","Test provider connection",o=>o.positional("provider",{describe:"The provider to test",type:"string"}),o=>y(async()=>await w.test(o.provider))()).command("models <provider>","List models for a provider",o=>o.positional("provider",{describe:"The provider to show models for",type:"string"}),o=>h(()=>w.models(o.provider))()).command("set-model <provider> <model>","Set active model for a provider",o=>o.positional("provider",{describe:"The provider name or id",type:"string"}).positional("model",{describe:"The model name to set as active",type:"string"}).option("type",{describe:"Model type to set (default, sonnet, haiku, opus)",type:"string",choices:["default","sonnet","haiku","opus"],default:"default"}),o=>y(async()=>await w.setModel(o.provider,o.model,o.type))()).command("remove-model <provider> <model>","Remove a model from a provider",o=>o.positional("provider",{describe:"The provider name or id",type:"string"}).positional("model",{describe:"The model name to remove",type:"string"}),o=>h(()=>w.removeModel(o.provider,o.model))()).command("export","Export configuration",o=>o.option("output",{describe:"Output file path (optional, defaults to stdout)",type:"string"}),o=>h(()=>w.export(o.output))()).command("import <file>","Import configuration",o=>o.positional("file",{describe:"Input file path",type:"string"}),o=>h(()=>w.import(o.file))()).command("reset","Reset to default Claude configuration",{},()=>h(()=>w.reset())()).command("interactive","Interactive configuration wizard",{},()=>y(async()=>await w.interactive())()).command("tools","List supported CLI tools",{},()=>h(()=>w.tools())()).help().alias("help","h").version(c).alias("version","v").demandCommand().strict().parseAsync().catch(o=>g(o))})().catch(o=>{console.error(r.red(`Fatal error: ${u(o)}`)),process.exit(1)});
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/index.js","names":["yargs","hideBin","chalk","execSync","createInterface","ConfigManager","Commands","initI18n","getCurrentLocale","i18n","APP_VERSION","TIMEOUTS","NPM_REGISTRIES","getErrorMessage","logger","handleCommandError","error","message","console","red","debug","process","exit","handleAsyncCommand","fn","async","handleSyncCommand","version","stdio","timeout","CLI_CHECK","toString","trim","success","claude_code","installed_with_version","err","code","killed","log","yellow","not_installed","install_prompt","readline","input","stdin","output","stdout","question","answer","close","toLowerCase","installing","NPMMIRROR","green","install_success","dim","restart_terminal_note","installError","install_failed","npm_requirements","skip_install_warning","checkClaudeCodeInstallation","configManager","initialize","commands","argv","command","list","positional","describe","type","switch","provider","current","option","models","model","Array","isArray","undefined","configure","show","test","choices","default","setModel","removeModel","export","import","file","reset","interactive","help","alias","demandCommand","strict","parseAsync","catch","main"],"sources":["../src/index.ts"],"mappings":";OAEOA,MAAW,0BACTC,MAAe,uBACjBC,MAAW,2BACTC,MAAgB,0CAChBC,MAAuB,mCACvBC,MAAqB,iCACrBC,MAAgB,mCAChBC,sBAAUC,MAAwB,2BAClCC,MAAY,kCACZC,cAAaC,oBAAUC,MAAsB,iDAC7CC,MAAuB,qCACvBC,MAAc,oBAyDvB,SAASC,EAAmBC,GAC1B,MAAMC,EAAUJ,EAAgBG,GAChCE,QAAQF,MAAMd,EAAMiB,IAAI,UAAUF,MAClCH,EAAOM,MAAM,iBAAkBJ,GAC/BK,QAAQC,KAAK,EACf,CAKA,SAASC,EAAmBC,GAC1B,OAAOC,UACL,UACQD,GACR,CAAE,MAAOR,GACPD,EAAmBC,EACrB,EAEJ,CAKA,SAASU,EAAkBF,GACzB,MAAO,KACL,IACEA,GACF,CAAE,MAAOR,GACPD,EAAmBC,EACrB,EAEJ,EAKAS,iBACElB,EAASC,KAzFX,WACE,IACE,MAAMmB,EAAUxB,EAAS,mBAAoB,CAC3CyB,MAAO,OACPC,QAASlB,EAASmB,YACjBC,WAAWC,OAEdlB,EAAOmB,QAAQ,6BAA6BxB,EAAKyB,YAAYC,uBAAuBR,KACtF,CAAE,MAAOX,GACP,MAAMoB,EAAMpB,EACZ,GAAiB,WAAboB,EAAIC,MAAqBD,EAAIE,OAAQ,CACvCpB,QAAQqB,IAAIrC,EAAMsC,OAAO/B,EAAKyB,YAAYO,kBAC1CvB,QAAQqB,IAAI9B,EAAKyB,YAAYQ,kBAE7B,MAAMC,EAAWvC,EAAgB,CAC/BwC,MAAOvB,QAAQwB,MACfC,OAAQzB,QAAQ0B,SAGlBJ,EAASK,SAAS,GAAKC,IAGrB,GAFAN,EAASO,QAEoB,MAAzBD,EAAOE,eAAkD,QAAzBF,EAAOE,cAAyB,CAClEjC,QAAQqB,IAAIrC,EAAMsC,OAAO/B,EAAKyB,YAAYkB,eAE1C,IACEjD,EACE,uDAAuDS,EAAeyC,YACtE,CAAEzB,MAAO,YAGXV,QAAQqB,IACN,GAAGrC,EAAMoD,MAAM7C,EAAKyB,YAAYqB,sBAAsBrD,EAAMsD,IAC1D/C,EAAKyB,YAAYuB,2BAGvB,CAAE,MAAOC,GACPxC,QAAQqB,IAAIrC,EAAMiB,IAAIV,EAAKyB,YAAYyB,mBACvCzC,QAAQqB,IAAI9B,EAAKyB,YAAY0B,oBAC7BvC,QAAQC,KAAK,EACf,CACF,MACEJ,QAAQqB,IAAIrC,EAAMsC,OAAO/B,EAAKyB,YAAY2B,0BAGhD,CACF,CACF,CA4CEC,GAEA,MAAMC,EAAgB,IAAI1D,EAC1B0D,EAAcC,aAEd,MAAMC,EAAW,IAAI3D,EAASyD,GAE9B/D,EAAMC,EAAQoB,QAAQ6C,OACnBC,QACC,OACA,qCACA,GACA,IAAMzC,EAAkB,IAAMuC,EAASG,OAAjC1C,IAEPyC,QACC,oBACA,6EACCnE,GAAUA,EAAMqE,WAAW,WAAY,CACtCC,SAAU,0EACVC,KAAM,WAEPL,GAAS3C,EAAmBE,eAAkBwC,EAASO,OAAON,EAAKO,UAA1DlD,IAEX4C,QACC,UACA,+BACA,GACA,IAAMzC,EAAkB,IAAMuC,EAASS,UAAjChD,IAEPyC,QACC,uBACA,uBACCnE,GACCA,EACGqE,WAAW,WAAY,CAAEC,SAAU,4BAA6BC,KAAM,WACtEI,OAAO,UAAW,CAAEL,SAAU,2BAA4BC,KAAM,WAChEI,OAAO,WAAY,CAAEL,SAAU,4BAA6BC,KAAM,WAClEI,OAAO,QAAS,CACfL,SAAU,0CACVC,KAAM,UAEXL,GACCxC,EAAkB,KAChB,MAAMkD,EAASV,EAAKW,MAChBC,MAAMC,QAAQb,EAAKW,OACjBX,EAAKW,MACL,CAACX,EAAKW,YACRG,EACJf,EAASgB,UACPf,EAAKO,SACLP,EAAK,WACLA,EAAK,YACLU,IAVJlD,IAcHyC,QACC,kBACA,8BACCnE,GAAUA,EAAMqE,WAAW,WAAY,CAAEC,SAAU,uBAAwBC,KAAM,WACjFL,GAASxC,EAAkB,IAAMuC,EAASiB,KAAKhB,EAAKO,UAA3C/C,IAEXyC,QACC,kBACA,2BACCnE,GAAUA,EAAMqE,WAAW,WAAY,CAAEC,SAAU,uBAAwBC,KAAM,WACjFL,GACC3C,EAAmBE,eAAkBwC,EAASkB,KAAKjB,EAAKO,UAAxDlD,IAEH4C,QACC,oBACA,6BACCnE,GAAUA,EAAMqE,WAAW,WAAY,CACtCC,SAAU,kCACVC,KAAM,WAEPL,GAASxC,EAAkB,IAAMuC,EAASW,OAAOV,EAAKO,UAA7C/C,IAEXyC,QACC,+BACA,kCACCnE,GACCA,EACGqE,WAAW,WAAY,CAAEC,SAAU,0BAA2BC,KAAM,WACpEF,WAAW,QAAS,CAAEC,SAAU,kCAAmCC,KAAM,WACzEI,OAAO,OAAQ,CACdL,SAAU,mDACVC,KAAM,SACNa,QAAS,CAAC,UAAW,SAAU,QAAS,QACxCC,QAAS,YAEdnB,GACC3C,EAAmBE,eACXwC,EAASqB,SACbpB,EAAKO,SACLP,EAAKW,MACLX,EAAKK,MAJThD,IAQH4C,QACC,kCACA,iCACCnE,GACCA,EACGqE,WAAW,WAAY,CAAEC,SAAU,0BAA2BC,KAAM,WACpEF,WAAW,QAAS,CAAEC,SAAU,2BAA4BC,KAAM,WACtEL,GACCxC,EAAkB,IAChBuC,EAASsB,YAAYrB,EAAKO,SAAoBP,EAAKW,OADrDnD,IAIHyC,QACC,SACA,uBACCnE,GACCA,EAAM2E,OAAO,SAAU,CACrBL,SAAU,kDACVC,KAAM,WAETL,GAASxC,EAAkB,IAAMuC,EAASuB,OAAOtB,EAAKpB,QAA7CpB,IAEXyC,QACC,gBACA,uBACCnE,GAAUA,EAAMqE,WAAW,OAAQ,CAAEC,SAAU,kBAAmBC,KAAM,WACxEL,GAASxC,EAAkB,IAAMuC,EAASwB,OAAOvB,EAAKwB,MAA7ChE,IAEXyC,QACC,QACA,wCACA,GACA,IAAMzC,EAAkB,IAAMuC,EAAS0B,QAAjCjE,IAEPyC,QACC,cACA,mCACA,GACA,IAAM5C,EAAmBE,eAAkBwC,EAAS2B,cAA9CrE,IAEPsE,OACAC,MAAM,OAAQ,KACdnE,QAAQjB,GACRoF,MAAM,UAAW,KACjBC,gBACAC,SACAC,aACAC,MAAO9D,GAAiBrB,EAAmBqB,GAChD,EAEA+D,GAAOD,MAAOlF,IACZE,QAAQF,MAAMd,EAAMiB,IAAI,gBAAgBN,EAAgBG,OACxDK,QAAQC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/index.js","names":["yargs","hideBin","chalk","execSync","createInterface","ConfigManager","Commands","initI18n","getCurrentLocale","i18n","APP_VERSION","TIMEOUTS","NPM_REGISTRIES","getErrorMessage","logger","getSupportedTools","handleCommandError","error","message","console","red","debug","process","exit","handleAsyncCommand","fn","async","handleSyncCommand","version","stdio","timeout","CLI_CHECK","toString","trim","success","claude_code","installed_with_version","err","code","killed","log","yellow","not_installed","install_prompt","readline","input","stdin","output","stdout","question","answer","close","toLowerCase","installing","NPMMIRROR","green","install_success","dim","restart_terminal_note","installError","install_failed","npm_requirements","skip_install_warning","checkClaudeCodeInstallation","configManager","initialize","commands","argv","command","list","positional","describe","type","option","choices","switch","provider","tool","current","models","model","Array","isArray","undefined","configure","show","test","default","setModel","removeModel","export","import","file","reset","interactive","tools","help","alias","demandCommand","strict","parseAsync","catch","main"],"sources":["../src/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Chat-to-Response Proxy for Codex CLI
3
+ *
4
+ * Converts OpenAI Response API requests to Chat Completions API format
5
+ * This allows Codex CLI to work with domestic LLM providers (Aliyun, Zhipu, etc.)
6
+ */
7
+ export declare function startProxy(port?: number): void;
8
+ export declare function stopProxy(): void;
9
+ //# sourceMappingURL=chat-to-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-to-response.d.ts","sourceRoot":"","sources":["../../src/proxy/chat-to-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAijBH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAmB,GAAG,IAAI,CAe1D;AAED,wBAAgB,SAAS,IAAI,IAAI,CAIhC"}
@@ -0,0 +1 @@
1
+ import e from"http";import t from"https";import{URL as o}from"url";import{randomUUID as n}from"crypto";import{DEFAULT_PROXY_PORT as r}from"./constants.js";const s=process.env.UPSTREAM_URL||"https://coding.dashscope.aliyuncs.com/v1",a=process.env.UPSTREAM_API_KEY||"",i=parseInt(process.env.PROXY_PORT||String(r),10),p=[{id:"qwen-max",name:"Qwen Max",context_window:128e3},{id:"qwen-plus",name:"Qwen Plus",context_window:128e3},{id:"qwen-turbo",name:"Qwen Turbo",context_window:128e3},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",context_window:128e3},{id:"glm-4-plus",name:"GLM 4 Plus",context_window:128e3},{id:"glm-5",name:"GLM 5",context_window:128e3},{id:"deepseek-chat",name:"DeepSeek Chat",context_window:64e3}];function c(){const e=process.env.MODELS;return e?e.split(",").map(e=>{const t=e.trim().split(":");return{id:t[0],name:t[1]||t[0],context_window:128e3}}):p}const d=e.createServer(async(r,i)=>{const p=r.url||"/";if(i.setHeader("Access-Control-Allow-Origin","*"),i.setHeader("Access-Control-Allow-Methods","GET, POST, OPTIONS"),i.setHeader("Access-Control-Allow-Headers","Content-Type, Authorization"),"OPTIONS"===r.method)return i.writeHead(204),void i.end();if("/health"===p)return i.writeHead(200,{"Content-Type":"application/json"}),void i.end(JSON.stringify({status:"ok",proxy_type:"chat-to-response"}));if("/shutdown"===p&&"GET"===r.method)return i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({status:"stopping"})),void setTimeout(()=>d.close(),100);if(("/v1/models"===p||"/models"===p)&&"GET"===r.method){const e=c();return i.writeHead(200,{"Content-Type":"application/json"}),void i.end(JSON.stringify({object:"list",data:e.map(e=>({id:e.id,object:"model",created:17e8,owned_by:"proxy",name:e.name,context_window:e.context_window}))}))}const l=p.match(/^\/v1\/models\/([^\/]+)$/);if(l&&"GET"===r.method){const e=l[1],t=c().find(t=>t.id===e);return void(t?(i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({id:t.id,object:"model",created:17e8,owned_by:"proxy",name:t.name,context_window:t.context_window,supports_vision:!1,supports_functions:!0,supports_streaming:!0}))):(i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({id:e,object:"model",created:17e8,owned_by:"proxy",name:e,context_window:128e3,supports_vision:!1,supports_functions:!0,supports_streaming:!0}))))}if(("/v1/responses"===p||"/responses"===p)&&"POST"===r.method){let p="";return r.on("data",e=>p+=e),void r.on("end",async()=>{try{const r=JSON.parse(p),c=function(e){const t=e.model||"qwen-max",o=e.input||"";let n=[];if("string"==typeof o)n=[{role:"user",content:o}];else if(Array.isArray(o))for(const e of o)"object"==typeof e&&null!==e&&"role"in e?n.push(e):n.push({role:"user",content:String(e)});const r={model:t,messages:n,stream:e.stream||!1,temperature:e.temperature??.7,max_tokens:e.max_output_tokens??4096};if(e.tools&&(r.tools=function(e){const t=[];for(const o of e)"web_search"===o.type?t.push({type:"function",function:{name:"web_search",description:"Search the web for information",parameters:{type:"object",properties:{query:{type:"string"}},required:["query"]}}}):"function"===o.type&&t.push({type:"function",function:{name:o.name||"unnamed_function",description:o.description||"",parameters:o.parameters||{type:"object",properties:{}}}});return t}(e.tools)),e.text?.format&&(r.response_format={type:"json_schema",json_schema:e.text.format}),e.reasoning?.effort){const t={low:.3,medium:.7,high:.9};r.temperature=t[e.reasoning.effort]??.7}return r}(r);if(console.log(`[Proxy] Request: model=${r.model} -> ${c.model}`),r.stream)return void await async function(r,i,p,c){const d=new o(`${s}/chat/completions`),l="https:"===d.protocol,u=l?t:e,m=`resp_${n()}`;i.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),i.write(`data: ${JSON.stringify({type:"response.created",response:{id:m}})}\n\n`);const y=JSON.stringify(c),f={hostname:d.hostname,port:d.port||(l?443:80),path:d.pathname+d.search,method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(y),Authorization:`Bearer ${a}`}},w=u.request(f,e=>{e.on("data",e=>{const t=e.toString().split("\n");for(const e of t){if(!e.startsWith("data: "))continue;const t=e.slice(6);if("[DONE]"===t)return i.write(`data: ${JSON.stringify({type:"response.completed",response:{id:m}})}\n\n`),i.write("data: [DONE]\n\n"),void i.end();try{const e=JSON.parse(t),o=e.choices?.[0]?.delta||{};o.content&&i.write(`data: ${JSON.stringify({type:"response.output_text.delta",delta:o.content})}\n\n`)}catch{}}}),e.on("end",()=>{i.write(`data: ${JSON.stringify({type:"response.completed",response:{id:m}})}\n\n`),i.write("data: [DONE]\n\n"),i.end()})});w.on("error",e=>{console.error("[Proxy] Upstream error:",e.message),i.write(`data: ${JSON.stringify({type:"error",error:e.message})}\n\n`),i.end()}),w.write(y),w.end()}(0,i,0,c);const d=await function(n,r,s){return new Promise((a,i)=>{const p=new o(n),c="https:"===p.protocol,d=c?t:e,l=JSON.stringify(r),u={hostname:p.hostname,port:p.port||(c?443:80),path:p.pathname+p.search,method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(l),...s}},m=d.request(u,e=>{let t="";e.on("data",e=>t+=e),e.on("end",()=>{a({status:e.statusCode||500,data:t,headers:e.headers})})});m.on("error",i),m.setTimeout(12e4,()=>{m.destroy(),i(new Error("Request timeout"))}),m.write(l),m.end()})}(`${s}/chat/completions`,c,{Authorization:`Bearer ${a}`});if(200!==d.status)return i.writeHead(d.status,{"Content-Type":"application/json"}),void i.end(d.data);const l=function(e,t){const o=(e.choices?.[0]||{}).message||{},r=[];o.reasoning_content&&r.push({type:"reasoning",content:o.reasoning_content});const s=o.content||"";s&&r.push({type:"message",role:"assistant",content:[{type:"output_text",text:s}]});const a=o.tool_calls||[];for(const e of a)r.push({type:"function_call",call_id:e.id||`call_${n().slice(0,8)}`,name:e.function.name,arguments:e.function.arguments});return{id:`resp_${e.id||n()}`,object:"response",created_at:e.created||Math.floor(Date.now()/1e3),model:t.model||"unknown",output:r,usage:{input_tokens:e.usage?.prompt_tokens||0,output_tokens:e.usage?.completion_tokens||0,total_tokens:e.usage?.total_tokens||0},incomplete_details:null,error:null}}(JSON.parse(d.data),r);i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify(l))}catch(e){const t=e instanceof Error?e.message:String(e);console.error("[Proxy] Error:",t),i.writeHead(500,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:t}))}})}i.writeHead(404,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:"Not found"}))});export function startProxy(e=i){d.on("error",t=>{"EADDRINUSE"===t.code&&(console.error(`[Proxy] Error: Port ${e} is already in use`),process.exit(1)),console.error("[Proxy] Server error:",t.message),process.exit(1)}),d.listen(e,()=>{console.log(`[Proxy] Chat-to-Response Proxy started on port ${e}`),console.log(`[Proxy] Upstream: ${s}`),console.log(`[Proxy] Ready to accept requests at http://localhost:${e}/v1/responses`)})}export function stopProxy(){d.close(()=>{console.log("[Proxy] Server stopped")})}process.argv[1]?.includes("chat-to-response")&&startProxy();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/proxy/chat-to-response.js","names":["http","https","URL","randomUUID","DEFAULT_PROXY_PORT","UPSTREAM_URL","process","env","UPSTREAM_API_KEY","PROXY_PORT","parseInt","String","DEFAULT_MODELS","id","name","context_window","getAvailableModels","modelsEnv","MODELS","split","map","m","parts","trim","server","createServer","async","req","res","url","setHeader","method","writeHead","end","JSON","stringify","status","proxy_type","setTimeout","close","models","object","data","created","owned_by","modelMatch","match","modelId","model","find","supports_vision","supports_functions","supports_streaming","bodyStr","on","chunk","body","parse","chatBody","inputData","input","messages","role","content","Array","isArray","msg","push","stream","temperature","max_tokens","max_output_tokens","tools","chatTools","tool","type","function","description","parameters","properties","query","required","text","format","response_format","json_schema","reasoning","effort","effortTempMap","low","medium","high","console","log","parsedUrl","isHttps","protocol","httpModule","responseId","Connection","write","response","requestBody","options","hostname","port","path","pathname","search","headers","Buffer","byteLength","Authorization","upstreamReq","request","upstreamRes","lines","toString","line","startsWith","slice","delta","choices","error","message","result","Promise","resolve","reject","statusCode","destroy","Error","responseData","chatData","originalBody","outputItems","reasoning_content","toolCalls","tool_calls","toolCall","call_id","arguments","created_at","Math","floor","Date","now","output","usage","input_tokens","prompt_tokens","output_tokens","completion_tokens","total_tokens","incomplete_details","startProxy","err","code","exit","listen","stopProxy","argv","includes"],"sources":["../../src/proxy/chat-to-response.ts"],"mappings":"OAOOA,MAAU,cACVC,MAAW,sBACTC,MAAW,2BACXC,MAAkB,sCAClBC,MAA0B,iBA2FnC,MAAMC,EAAeC,QAAQC,IAAIF,cAAgB,2CAC3CG,EAAmBF,QAAQC,IAAIC,kBAAoB,GACnDC,EAAaC,SAASJ,QAAQC,IAAIE,YAAcE,OAAOP,GAAqB,IAI5EQ,EAAiB,CACrB,CAAEC,GAAI,WAAYC,KAAM,WAAYC,eAAgB,OACpD,CAAEF,GAAI,YAAaC,KAAM,YAAaC,eAAgB,OACtD,CAAEF,GAAI,aAAcC,KAAM,aAAcC,eAAgB,OACxD,CAAEF,GAAI,eAAgBC,KAAM,gBAAiBC,eAAgB,OAC7D,CAAEF,GAAI,aAAcC,KAAM,aAAcC,eAAgB,OACxD,CAAEF,GAAI,QAASC,KAAM,QAASC,eAAgB,OAC9C,CAAEF,GAAI,gBAAiBC,KAAM,gBAAiBC,eAAgB,OAGhE,SAASC,IACP,MAAMC,EAAYX,QAAQC,IAAIW,OAC9B,OAAKD,EAIEA,EAAUE,MAAM,KAAKC,IAAKC,IAC/B,MACMC,EADUD,EAAEE,OACIJ,MAAM,KAC5B,MAAO,CACLN,GAAIS,EAAM,GACVR,KAAMQ,EAAM,IAAMA,EAAM,GACxBP,eAAgB,SATXH,CAYX,CAkSA,MAAMY,EAASxB,EAAKyB,aAAaC,MAAOC,EAAKC,KAC3C,MAAMC,EAAMF,EAAIE,KAAO,IAOvB,GAJAD,EAAIE,UAAU,8BAA+B,KAC7CF,EAAIE,UAAU,+BAAgC,sBAC9CF,EAAIE,UAAU,+BAAgC,+BAE3B,YAAfH,EAAII,OAGN,OAFAH,EAAII,UAAU,UACdJ,EAAIK,MAKN,GAAY,YAARJ,EAGF,OAFAD,EAAII,UAAU,IAAK,CAAE,eAAgB,0BACrCJ,EAAIK,IAAIC,KAAKC,UAAU,CAAEC,OAAQ,KAAMC,WAAY,sBAKrD,GAAY,cAARR,GAAsC,QAAfF,EAAII,OAI7B,OAHAH,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IAAIC,KAAKC,UAAU,CAAEC,OAAQ,mBACjCE,WAAW,IAAMd,EAAOe,QAAS,KAKnC,IAAa,eAARV,GAAgC,YAARA,IAAqC,QAAfF,EAAII,OAAkB,CACvE,MAAMS,EAASxB,IAef,OAdAY,EAAII,UAAU,IAAK,CAAE,eAAgB,0BACrCJ,EAAIK,IACFC,KAAKC,UAAU,CACbM,OAAQ,OACRC,KAAMF,EAAOpB,IAAKC,KAChBR,GAAIQ,EAAER,GACN4B,OAAQ,QACRE,QAAS,KACTC,SAAU,QACV9B,KAAMO,EAAEP,KACRC,eAAgBM,EAAEN,oBAK1B,CAGA,MAAM8B,EAAahB,EAAIiB,MAAM,4BAC7B,GAAID,GAA6B,QAAflB,EAAII,OAAkB,CACtC,MAAMgB,EAAUF,EAAW,GAErBG,EADShC,IACMiC,KAAM5B,GAAMA,EAAER,KAAOkC,GAoC1C,YAlCIC,GACFpB,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IACFC,KAAKC,UAAU,CACbtB,GAAImC,EAAMnC,GACV4B,OAAQ,QACRE,QAAS,KACTC,SAAU,QACV9B,KAAMkC,EAAMlC,KACZC,eAAgBiC,EAAMjC,eAEtBmC,mBACAC,sBACAC,2BAMJxB,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IACFC,KAAKC,UAAU,CACbtB,GAAIkC,EACJN,OAAQ,QACRE,QAAS,KACTC,SAAU,QACV9B,KAAMiC,EACNhC,eAAgB,MAChBmC,mBACAC,sBACAC,0BAKR,CAGA,IAAa,kBAARvB,GAAmC,eAARA,IAAwC,SAAfF,EAAII,OAAmB,CAC9E,IAAIsB,EAAU,GAsCd,OArCA1B,EAAI2B,GAAG,OAASC,GAAWF,GAAWE,QACtC5B,EAAI2B,GAAG,MAAO5B,UACZ,IACE,MAAM8B,EAA2BtB,KAAKuB,MAAMJ,GACtCK,EAlYd,SAAsCF,GAGpC,MAAMR,EAAQQ,EAAKR,OAAS,WAGtBW,EAAYH,EAAKI,OAAS,GAChC,IAAIC,EAA8B,GAElC,GAAyB,iBAAdF,EACTE,EAAW,CAAC,CAAEC,KAAM,OAAQC,QAASJ,SAChC,GAAIK,MAAMC,QAAQN,GACvB,IAAK,MAAMO,KAAOP,EACG,iBAARO,GAA4B,OAARA,GAAgB,SAAUA,EACvDL,EAASM,KAAKD,GAEdL,EAASM,KAAK,CAAEL,KAAM,OAAQC,QAASpD,OAAOuD,KAMpD,MAAMR,EAAkC,CACtCV,QACAa,WACAO,OAAQZ,EAAKY,WACbC,YAAab,EAAKa,aAAe,GACjCC,WAAYd,EAAKe,mBAAqB,MAiBxC,GAbIf,EAAKgB,QACPd,EAASc,MAwBb,SAAkCA,GAChC,MAAMC,EAAwB,GAE9B,IAAK,MAAMC,KAAQF,EACC,eAAdE,EAAKC,KAEPF,EAAUN,KAAK,CACbQ,KAAM,WACNC,SAAU,CACR9D,KAAM,aACN+D,YAAa,iCACbC,WAAY,CACVH,KAAM,SACNI,WAAY,CAAEC,MAAO,CAAEL,KAAM,WAC7BM,SAAU,CAAC,aAIM,aAAdP,EAAKC,MACdF,EAAUN,KAAK,CACbQ,KAAM,WACNC,SAAU,CACR9D,KAAM4D,EAAK5D,MAAQ,mBACnB+D,YAAaH,EAAKG,aAAe,GACjCC,WAAYJ,EAAKI,YAAc,CAAEH,KAAM,SAAUI,WAAY,OAMrE,OAAON,CACT,CA/BA,CAxB8CjB,EAAKgB,QAI7ChB,EAAK0B,MAAMC,SACbzB,EAAS0B,gBAAkB,CACzBT,KAAM,cACNU,YAAa7B,EAAK0B,KAAKC,SAKvB3B,EAAK8B,WAAWC,OAAQ,CAC1B,MAAMC,EAAwC,CAC5CC,IAAK,GACLC,OAAQ,GACRC,KAAM,IAERjC,EAASW,YAAcmB,EAAchC,EAAK8B,UAAUC,SAAW,EACjE,CAEA,OAAO7B,CACT,CAtDA,CAkYsDF,GAK9C,GAHAoC,QAAQC,IAAI,0BAA0BrC,EAAKR,YAAYU,EAASV,SAG5DQ,EAAKY,OAEP,kBAvMV1C,eACEC,EACAC,EACA4B,EACAE,GAEA,MAAMoC,EAAY,IAAI5F,EAAI,GAAGG,sBACvB0F,EAAiC,WAAvBD,EAAUE,SACpBC,EAAaF,EAAU9F,EAAQD,EAE/BkG,EAAa,QAAQ/F,MAG3ByB,EAAII,UAAU,IAAK,CACjB,eAAgB,oBAChB,gBAAiB,WACjBmE,WAAY,eAGdvE,EAAIwE,MACF,SAASlE,KAAKC,UAAU,CACtBwC,KAAM,mBACN0B,SAAU,CAAExF,GAAIqF,YAIpB,MAAMI,EAAcpE,KAAKC,UAAUuB,GAE7B6C,EAA+B,CACnCC,SAAUV,EAAUU,SACpBC,KAAMX,EAAUW,OAASV,EAAU,IAAM,IACzCW,KAAMZ,EAAUa,SAAWb,EAAUc,OACrC7E,OAAQ,OACR8E,QAAS,CACP,eAAgB,mBAChB,iBAAkBC,OAAOC,WAAWT,GACpCU,cAAe,UAAUxG,MAIvByG,EAAchB,EAAWiB,QAAQX,EAAUY,IAC/CA,EAAY7D,GAAG,OAASC,IACtB,MAAM6D,EAAQ7D,EAAM8D,WAAWlG,MAAM,MAErC,IAAK,MAAMmG,KAAQF,EAAO,CACxB,IAAKE,EAAKC,WAAW,UAAW,SAEhC,MAAM7E,EAAO4E,EAAKE,MAAM,GACxB,GAAa,WAAT9E,EAIF,OAHAd,EAAIwE,MAAM,SAASlE,KAAKC,UAAU,CAAEwC,KAAM,qBAAsB0B,SAAU,CAAExF,GAAIqF,YAChFtE,EAAIwE,MAAM,yBACVxE,EAAIK,MAIN,IACE,MAAMsB,EAAQrB,KAAKuB,MAAMf,GACnB+E,EAAQlE,EAAMmE,UAAU,IAAID,OAAS,GAEvCA,EAAM1D,SACRnC,EAAIwE,MACF,SAASlE,KAAKC,UAAU,CACtBwC,KAAM,6BACN8C,MAAOA,EAAM1D,gBAIrB,CAAE,MAEF,CACF,IAGFoD,EAAY7D,GAAG,MAAO,KACpB1B,EAAIwE,MAAM,SAASlE,KAAKC,UAAU,CAAEwC,KAAM,qBAAsB0B,SAAU,CAAExF,GAAIqF,YAChFtE,EAAIwE,MAAM,oBACVxE,EAAIK,UAIRgF,EAAY3D,GAAG,QAAUqE,IACvB/B,QAAQ+B,MAAM,0BAA2BA,EAAMC,SAC/ChG,EAAIwE,MAAM,SAASlE,KAAKC,UAAU,CAAEwC,KAAM,QAASgD,MAAOA,EAAMC,iBAChEhG,EAAIK,QAGNgF,EAAYb,MAAME,GAClBW,EAAYhF,KACd,CAxFAP,CAsMoCC,EAAKC,EAAK4B,EAAME,GAK5C,MAAMmE,QA5Pd,SACEhG,EACA2B,EACAqD,GAEA,OAAO,IAAIiB,QAAQ,CAACC,EAASC,KAC3B,MAAMlC,EAAY,IAAI5F,EAAI2B,GACpBkE,EAAiC,WAAvBD,EAAUE,SACpBC,EAAaF,EAAU9F,EAAQD,EAE/BsG,EAAcpE,KAAKC,UAAUqB,GAE7B+C,EAA+B,CACnCC,SAAUV,EAAUU,SACpBC,KAAMX,EAAUW,OAASV,EAAU,IAAM,IACzCW,KAAMZ,EAAUa,SAAWb,EAAUc,OACrC7E,OAAQ,OACR8E,QAAS,CACP,eAAgB,mBAChB,iBAAkBC,OAAOC,WAAWT,MACjCO,IAIDlF,EAAMsE,EAAWiB,QAAQX,EAAU3E,IACvC,IAAIc,EAAO,GACXd,EAAI0B,GAAG,OAASC,GAAWb,GAAQa,GACnC3B,EAAI0B,GAAG,MAAO,KACZyE,EAAQ,CACN3F,OAAQR,EAAIqG,YAAc,IAC1BvF,OACAmE,QAASjF,EAAIiF,cAKnBlF,EAAI2B,GAAG,QAAS0E,GAChBrG,EAAIW,WAAW,KAAQ,KACrBX,EAAIuG,UACJF,EAAO,IAAIG,MAAM,sBAGnBxG,EAAIyE,MAAME,GACV3E,EAAIM,OAER,CA7CA,CA4PiD,GAAG5B,qBAAiCqD,EAAU,CACrFsD,cAAe,UAAUxG,MAG3B,GAAsB,MAAlBqH,EAAOzF,OAGT,OAFAR,EAAII,UAAU6F,EAAOzF,OAAQ,CAAE,eAAgB,0BAC/CR,EAAIK,IAAI4F,EAAOnF,MAIjB,MACM0F,EA/Td,SACEC,EACAC,GAEA,MACMV,GADSS,EAASX,UAAU,IAAM,IACjBE,SAAW,GAE5BW,EAAoC,GAGtCX,EAAQY,mBACVD,EAAYpE,KAAK,CACfQ,KAAM,YACNZ,QAAS6D,EAAQY,oBAKrB,MAAMzE,EAAU6D,EAAQ7D,SAAW,GAC/BA,GACFwE,EAAYpE,KAAK,CACfQ,KAAM,UACNb,KAAM,YACNC,QAAS,CAAC,CAAEY,KAAM,cAAeO,KAAMnB,MAK3C,MAAM0E,EAAYb,EAAQc,YAAc,GACxC,IAAK,MAAMC,KAAYF,EACrBF,EAAYpE,KAAK,CACfQ,KAAM,gBACNiE,QAASD,EAAS9H,IAAM,QAAQV,IAAaqH,MAAM,EAAG,KACtD1G,KAAM6H,EAAS/D,SAAS9D,KACxB+H,UAAWF,EAAS/D,SAASiE,YAIjC,MAAO,CACLhI,GAAI,QAAQwH,EAASxH,IAAMV,MAC3BsC,OAAQ,WACRqG,WAAYT,EAAS1F,SAAWoG,KAAKC,MAAMC,KAAKC,MAAQ,KACxDlG,MAAOsF,EAAatF,OAAS,UAC7BmG,OAAQZ,EACRa,MAAO,CACLC,aAAchB,EAASe,OAAOE,eAAiB,EAC/CC,cAAelB,EAASe,OAAOI,mBAAqB,EACpDC,aAAcpB,EAASe,OAAOK,cAAgB,GAEhDC,mBAAoB,KACpB/B,MAAO,KAEX,CApDA,CA8TiDzF,KAAKuB,MAAMoE,EAAOnF,MACEc,GAE7D5B,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IAAIC,KAAKC,UAAUiG,GACzB,CAAE,MAAOT,GACP,MAAMC,EAAUD,aAAiBQ,MAAQR,EAAMC,QAAUjH,OAAOgH,GAChE/B,QAAQ+B,MAAM,iBAAkBC,GAChChG,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IAAIC,KAAKC,UAAU,CAAEwF,MAAOC,IAClC,GAGJ,CAGAhG,EAAII,UAAU,IAAK,CAAE,eAAgB,qBACrCJ,EAAIK,IAAIC,KAAKC,UAAU,CAAEwF,MAAO,wBAK5B,SAAUgC,WAAWlD,EAAehG,GACxCe,EAAO8B,GAAG,QAAUsG,IACD,eAAbA,EAAIC,OACNjE,QAAQ+B,MAAM,uBAAuBlB,uBACrCnG,QAAQwJ,KAAK,IAEflE,QAAQ+B,MAAM,wBAAyBiC,EAAIhC,SAC3CtH,QAAQwJ,KAAK,KAGftI,EAAOuI,OAAOtD,EAAM,KAClBb,QAAQC,IAAI,kDAAkDY,KAC9Db,QAAQC,IAAI,qBAAqBxF,KACjCuF,QAAQC,IAAI,wDAAwDY,mBAExE,QAEM,SAAUuD,YACdxI,EAAOe,MAAM,KACXqD,QAAQC,IAAI,2BAEhB,CAGIvF,QAAQ2J,KAAK,IAAIC,SAAS,qBAC5BP","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_PROXY_PORT = 8080;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/proxy/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ export const DEFAULT_PROXY_PORT=8080;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/proxy/constants.js","names":["DEFAULT_PROXY_PORT"],"sources":["../../src/proxy/constants.ts"],"mappings":"OAAO,MAAMA,mBAAqB","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ export interface ProxyConfig {
2
+ port: number;
3
+ upstreamUrl: string;
4
+ upstreamApiKey: string;
5
+ providerType: string;
6
+ }
7
+ export declare class ProxyManager {
8
+ private configPath;
9
+ constructor();
10
+ /**
11
+ * Check if the proxy is running by hitting the health endpoint
12
+ */
13
+ isRunning(): Promise<boolean>;
14
+ /**
15
+ * Check if a port is in use (by another process)
16
+ * Returns true if port is already in use, false if port is free
17
+ */
18
+ private checkPortInUse;
19
+ /**
20
+ * Check the proxy health endpoint
21
+ */
22
+ private checkHealth;
23
+ /**
24
+ * Start the chat-to-response proxy server
25
+ */
26
+ start(config: ProxyConfig): Promise<void>;
27
+ /**
28
+ * Stop the proxy server
29
+ */
30
+ stop(): Promise<void>;
31
+ /**
32
+ * Try graceful stop via HTTP request
33
+ */
34
+ private tryGracefulStop;
35
+ /**
36
+ * Kill process using port
37
+ */
38
+ private killByPort;
39
+ /**
40
+ * Get the proxy URL
41
+ */
42
+ getProxyUrl(port?: number): string;
43
+ /**
44
+ * Save proxy configuration
45
+ */
46
+ private saveConfig;
47
+ /**
48
+ * Load proxy configuration
49
+ */
50
+ loadConfig(): ProxyConfig | null;
51
+ /**
52
+ * Clear proxy configuration
53
+ */
54
+ private clearConfig;
55
+ /**
56
+ * Get default upstream URLs for different providers
57
+ */
58
+ static getUpstreamUrl(providerType: string): string;
59
+ }
60
+ export declare function getProxyManager(): ProxyManager;
61
+ //# sourceMappingURL=proxy-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-manager.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy-manager.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;;IAM3B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBnC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqF/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,WAAW,CAAC,IAAI,GAAE,MAA2B,GAAG,MAAM;IAItD;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAYhC;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAapD;AAKD,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
@@ -0,0 +1 @@
1
+ import{spawn as t}from"child_process";import o from"path";import{fileURLToPath as r}from"url";import e from"fs";import{homedir as n}from"os";import s from"http";import{DEFAULT_PROXY_PORT as i}from"./constants.js";const a=o.dirname(r(import.meta.url));export class ProxyManager{constructor(){this.configPath=o.join(n(),".cckit","proxy-config.json")}async isRunning(){const t=this.loadConfig();if(!t)return!1;try{return!!await this.checkPortInUse(t.port)&&await this.checkHealth(t.port)}catch{return!1}}checkPortInUse(t){return new Promise(o=>{const r=s.createServer(),e=setTimeout(()=>{r.close(),o(!1)},1e3);r.once("error",t=>{clearTimeout(e),"EADDRINUSE"===t.code?o(!0):o(!1)}),r.once("listening",()=>{clearTimeout(e),r.close(),o(!1)}),r.listen(t)})}checkHealth(t){return new Promise(o=>{const r=s.get(`http://localhost:${t}/health`,t=>{let r="";t.on("data",t=>r+=t),t.on("end",()=>{try{const t=JSON.parse(r);o("chat-to-response"===t.proxy_type)}catch{o(!1)}})});r.on("error",()=>o(!1)),r.setTimeout(5e3,()=>{r.destroy(),o(!1)})})}async start(r){if(await this.isRunning())throw new Error("Proxy is already running on port "+r.port);if(!r.upstreamApiKey)throw new Error("UPSTREAM_API_KEY is required to start the proxy");this.saveConfig(r);const n=o.join(a,"chat-to-response.js");if(!e.existsSync(n))throw new Error(`Proxy script not found at ${n}. Please run 'pnpm build' first.`);const s=t("node",[n],{env:{...process.env,PROXY_PORT:String(r.port),UPSTREAM_URL:r.upstreamUrl,UPSTREAM_API_KEY:r.upstreamApiKey},stdio:["ignore","pipe","pipe"],detached:!0});s.stdout?.on("data",t=>{console.log(`[Proxy] ${t.toString().trim()}`)}),s.stderr?.on("data",t=>{console.error(`[Proxy Error] ${t.toString().trim()}`)}),s.on("error",t=>{console.error(`[Proxy] Failed to start: ${t.message}`)}),s.on("exit",t=>{0!==t&&null!==t&&console.log(`[Proxy] Process exited with code ${t}`)}),s.unref();for(let t=0;t<15;t++)if(await new Promise(t=>setTimeout(t,500)),await this.checkPortInUse(r.port)&&await this.checkHealth(r.port))return void console.log(`Proxy started on port ${r.port}`);if(!await this.checkPortInUse(r.port))throw new Error("Failed to start proxy server - health check failed");console.log(`Proxy process started on port ${r.port} (health check may have issues)`)}async stop(){const t=this.loadConfig();if(t)try{await this.tryGracefulStop(t.port)?console.log("Proxy stopped"):(await this.killByPort(t.port),console.log("Proxy stopped (force killed)"))}catch(t){console.error("Error stopping proxy:",t)}finally{this.clearConfig()}else console.log("No proxy configuration found")}tryGracefulStop(t){return new Promise(o=>{const r=s.request({hostname:"localhost",port:t,path:"/shutdown",method:"GET",timeout:1e3},()=>o(!0));r.on("error",()=>o(!1)),r.on("timeout",()=>{r.destroy(),o(!1)}),r.end()})}killByPort(o){return new Promise((r,e)=>{try{const e=t("lsof",["-ti",`tcp:${o}`],{shell:!0});let n="";e.stdout.on("data",t=>n+=t.toString()),e.on("close",()=>{n=n.trim(),n?t("kill",["-9",n]).on("close",()=>r()):r()})}catch{r()}})}getProxyUrl(t=i){return`http://localhost:${t}`}saveConfig(t){const r=o.dirname(this.configPath);e.existsSync(r)||e.mkdirSync(r,{recursive:!0}),e.writeFileSync(this.configPath,JSON.stringify(t,null,2))}loadConfig(){if(!e.existsSync(this.configPath))return null;try{const t=e.readFileSync(this.configPath,"utf-8");return JSON.parse(t)}catch{return null}}clearConfig(){e.existsSync(this.configPath)&&e.unlinkSync(this.configPath)}static getUpstreamUrl(t){return{zhipu:"https://open.bigmodel.cn/api/paas/v4",minimax:"https://api.minimaxi.com/v1",kimi:"https://api.moonshot.cn/v1",aliyun:"https://coding.dashscope.aliyuncs.com/v1",tencent:"https://api.lkeap.cloud.tencent.com/v1",xfyun:"https://maas.cn-huabei-1.xf-yun.com/v1",volcengine:"https://ark.cn-beijing.volces.com/api/v3",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1"}[t]||""}}let c=null;export function getProxyManager(){return c||(c=new ProxyManager),c}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/proxy/proxy-manager.js","names":["spawn","path","fileURLToPath","fs","homedir","http","DEFAULT_PROXY_PORT","__dirname","dirname","url","ProxyManager","constructor","this","configPath","join","isRunning","config","loadConfig","checkPortInUse","port","checkHealth","Promise","resolve","server","createServer","timeout","setTimeout","close","once","err","clearTimeout","code","listen","req","get","res","data","on","chunk","json","JSON","parse","proxy_type","destroy","start","Error","upstreamApiKey","saveConfig","scriptPath","existsSync","child","env","process","PROXY_PORT","String","UPSTREAM_URL","upstreamUrl","UPSTREAM_API_KEY","stdio","detached","stdout","console","log","toString","trim","stderr","error","message","unref","i","stop","tryGracefulStop","killByPort","clearConfig","request","hostname","method","end","reject","lsof","shell","pid","getProxyUrl","dir","mkdirSync","recursive","writeFileSync","stringify","content","readFileSync","unlinkSync","getUpstreamUrl","providerType","zhipu","minimax","kimi","aliyun","tencent","xfyun","volcengine","streamlake","proxyManager","getProxyManager"],"sources":["../../src/proxy/proxy-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import { ToolConfig, ToolType, ModelProvider } from '../types.js';
2
+ import { ToolAdapter } from './types.js';
3
+ /**
4
+ * Abstract base implementation for tool adapters
5
+ * Provides common file handling operations
6
+ */
7
+ export declare abstract class BaseToolAdapter implements ToolAdapter {
8
+ abstract readonly toolType: ToolType;
9
+ abstract readonly toolConfig: ToolConfig;
10
+ /**
11
+ * Get the full path to the tool's config file
12
+ */
13
+ getConfigPath(): string;
14
+ /**
15
+ * Load the tool's configuration file
16
+ */
17
+ loadConfig(): Promise<Record<string, unknown>>;
18
+ /**
19
+ * Save configuration to the tool's config file
20
+ */
21
+ saveConfig(config: Record<string, unknown>): Promise<void>;
22
+ /**
23
+ * Check if the tool is installed (config file or directory exists)
24
+ */
25
+ isInstalled(): boolean;
26
+ abstract parseConfig(content: string): Record<string, unknown>;
27
+ abstract serializeConfig(config: Record<string, unknown>): string;
28
+ abstract applyProvider(provider: ModelProvider): Promise<void>;
29
+ abstract removeProvider(): Promise<void>;
30
+ }
31
+ //# sourceMappingURL=base-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/base-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,WAAW;IAC1D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEzC;;OAEG;IACH,aAAa,IAAI,MAAM;IAsBvB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkBpD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE;;OAEG;IACH,WAAW,IAAI,OAAO;IAQtB,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IACjE,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CACzC"}
@@ -0,0 +1 @@
1
+ import t from"fs";import i from"path";import{homedir as s}from"os";export class BaseToolAdapter{getConfigPath(){const t=this.toolConfig.config_path;if(t.startsWith("~"))return i.join(s(),t.slice(1));if(t.startsWith("$HOME"))return i.join(s(),t.slice(5));if(t.startsWith("$XDG_CONFIG_HOME")){const e=process.env.XDG_CONFIG_HOME||i.join(s(),".config");return i.join(e,t.slice(16))}return i.isAbsolute(t)?t:i.join(s(),t)}async loadConfig(){const i=this.getConfigPath();if(!t.existsSync(i))return{};try{const s=t.readFileSync(i,"utf-8");return this.parseConfig(s)}catch(t){return t instanceof SyntaxError?console.error(`Failed to parse config file ${i}: ${t.message}`):console.error(`Failed to read config file ${i}: ${t}`),{}}}async saveConfig(s){const e=this.getConfigPath(),n=i.dirname(e);t.existsSync(n)||t.mkdirSync(n,{recursive:!0});const o=this.serializeConfig(s);t.writeFileSync(e,o,"utf-8")}isInstalled(){const s=this.getConfigPath(),e=i.dirname(s);return t.existsSync(s)||t.existsSync(e)}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/base-adapter.js","names":["fs","path","homedir","BaseToolAdapter","getConfigPath","base","this","toolConfig","config_path","startsWith","join","slice","xdgConfig","process","env","XDG_CONFIG_HOME","isAbsolute","loadConfig","configPath","existsSync","content","readFileSync","parseConfig","error","SyntaxError","console","message","saveConfig","config","dir","dirname","mkdirSync","recursive","serializeConfig","writeFileSync","isInstalled","configDir"],"sources":["../../src/tools/base-adapter.ts"],"mappings":"OAAOA,MAAQ,YACRC,MAAU,yBACRC,MAAe,YAQlB,MAAgBC,gBAOpB,aAAAC,GACE,MAAMC,EAAOC,KAAKC,WAAWC,YAE7B,GAAIH,EAAKI,WAAW,KAClB,OAAOR,EAAKS,KAAKR,IAAWG,EAAKM,MAAM,IAEzC,GAAIN,EAAKI,WAAW,SAClB,OAAOR,EAAKS,KAAKR,IAAWG,EAAKM,MAAM,IAGzC,GAAIN,EAAKI,WAAW,oBAAqB,CACvC,MAAMG,EAAYC,QAAQC,IAAIC,iBAAmBd,EAAKS,KAAKR,IAAW,WACtE,OAAOD,EAAKS,KAAKE,EAAWP,EAAKM,MAAM,IACzC,CAEA,OAAIV,EAAKe,WAAWX,GACXA,EAGFJ,EAAKS,KAAKR,IAAWG,EAC9B,CAKA,gBAAMY,GACJ,MAAMC,EAAaZ,KAAKF,gBACxB,IAAKJ,EAAGmB,WAAWD,GACjB,MAAO,GAET,IACE,MAAME,EAAUpB,EAAGqB,aAAaH,EAAY,SAC5C,OAAOZ,KAAKgB,YAAYF,EAC1B,CAAE,MAAOG,GAMP,OALIA,aAAiBC,YACnBC,QAAQF,MAAM,+BAA+BL,MAAeK,EAAMG,WAElED,QAAQF,MAAM,8BAA8BL,MAAeK,KAEtD,EACT,CACF,CAKA,gBAAMI,CAAWC,GACf,MAAMV,EAAaZ,KAAKF,gBAClByB,EAAM5B,EAAK6B,QAAQZ,GACpBlB,EAAGmB,WAAWU,IACjB7B,EAAG+B,UAAUF,EAAK,CAAEG,WAAW,IAEjC,MAAMZ,EAAUd,KAAK2B,gBAAgBL,GACrC5B,EAAGkC,cAAchB,EAAYE,EAAS,QACxC,CAKA,WAAAe,GACE,MAAMjB,EAAaZ,KAAKF,gBAClBgC,EAAYnC,EAAK6B,QAAQZ,GAE/B,OAAOlB,EAAGmB,WAAWD,IAAelB,EAAGmB,WAAWiB,EACpD","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { BaseToolAdapter } from './base-adapter.js';
2
+ import { ModelProvider, ToolConfig, ToolType } from '../types.js';
3
+ /**
4
+ * Claude Code CLI tool adapter
5
+ * Manages ~/.claude/settings.json configuration
6
+ */
7
+ export declare class ClaudeCodeAdapter extends BaseToolAdapter {
8
+ readonly toolType: ToolType;
9
+ readonly toolConfig: ToolConfig;
10
+ parseConfig(content: string): Record<string, unknown>;
11
+ serializeConfig(config: Record<string, unknown>): string;
12
+ applyProvider(provider: ModelProvider): Promise<void>;
13
+ removeProvider(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=claude-code-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/claude-code-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AA6BlF;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAiB;IAC5C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAK7B;IAEF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAIlD,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmIrD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CActC"}
@@ -0,0 +1 @@
1
+ import{BaseToolAdapter as e}from"./base-adapter.js";const _={zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",volcengine:"https://ark.cn-beijing.volces.com/api/coding",aliyun:"https://coding.dashscope.aliyuncs.com/apps/anthropic",tencent:"https://api.lkeap.cloud.tencent.com/coding/anthropic",xfyun:"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic"},a={zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",volcengine:"ark-code-latest",aliyun:"claude-sonnet-4-20250514",tencent:"GLM-5",xfyun:"GLM-5"};export class ClaudeCodeAdapter extends e{constructor(){super(...arguments),this.toolType="claude-code",this.toolConfig={id:"claude-code",display_name:"Claude Code",config_path:"~/.claude/settings.json",description:"Official Anthropic Claude Code CLI"}}parseConfig(e){try{return JSON.parse(e)}catch{return{env:{}}}}serializeConfig(e){return JSON.stringify(e,null,2)}async applyProvider(e){const O=await this.loadConfig();O.env=O.env||{};const i=e.current_model||e.models[0]||a[e.provider_type]||"claude-3-5-sonnet-20241022",n=e.base_url||_[e.provider_type]||"",A=e.default_opus_model||i,t=e.default_sonnet_model||i,E=e.default_haiku_model||i;switch(e.provider_type){case"claude":O.env={ANTHROPIC_API_KEY:e.api_key};break;case"zhipu":case"minimax":O.env={ANTHROPIC_AUTH_TOKEN:e.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:i};break;case"kimi":O.env={ANTHROPIC_API_KEY:e.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E};break;case"zenmux":O.env={ANTHROPIC_API_KEY:e.api_key,ANTHROPIC_BASE_URL:n||"https://zenmux.ai/api/anthropic",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.provider_type};break;case"streamlake":O.env={ANTHROPIC_API_KEY:e.api_key,ANTHROPIC_BASE_URL:n||"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.provider_type};break;case"volcengine":O.env={ANTHROPIC_AUTH_TOKEN:e.api_key,ANTHROPIC_BASE_URL:n||"https://ark.cn-beijing.volces.com/api/coding",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,ANTHROPIC_API_KEY:"",CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1",CC_PROVIDER:e.provider_type};break;case"aliyun":O.env={ANTHROPIC_AUTH_TOKEN:e.api_key,ANTHROPIC_BASE_URL:n||"https://coding.dashscope.aliyuncs.com/apps/anthropic",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.provider_type};break;case"tencent":O.env={ANTHROPIC_AUTH_TOKEN:e.api_key,ANTHROPIC_BASE_URL:n||"https://api.lkeap.cloud.tencent.com/coding/anthropic",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.provider_type};break;case"xfyun":O.env={ANTHROPIC_AUTH_TOKEN:e.api_key,ANTHROPIC_BASE_URL:n||"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.provider_type};break;case"custom":O.env={ANTHROPIC_API_KEY:e.api_key,ANTHROPIC_BASE_URL:n||"",ANTHROPIC_MODEL:i,ANTHROPIC_DEFAULT_OPUS_MODEL:A,ANTHROPIC_DEFAULT_SONNET_MODEL:t,ANTHROPIC_DEFAULT_HAIKU_MODEL:E,CC_PROVIDER:e.name};break;default:O.env={ANTHROPIC_API_KEY:e.api_key,ANTHROPIC_BASE_URL:n,ANTHROPIC_MODEL:i,CC_PROVIDER:e.provider_type}}await this.saveConfig(O)}async removeProvider(){const e=await this.loadConfig();e.env=e.env||{},e.env.ANTHROPIC_API_KEY="",e.env.ANTHROPIC_AUTH_TOKEN="",e.env.ANTHROPIC_BASE_URL="",e.env.ANTHROPIC_MODEL="",e.env.ANTHROPIC_DEFAULT_OPUS_MODEL="",e.env.ANTHROPIC_DEFAULT_SONNET_MODEL="",e.env.ANTHROPIC_DEFAULT_HAIKU_MODEL="",delete e.env.CC_PROVIDER,delete e.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC,await this.saveConfig(e)}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/claude-code-adapter.js","names":["BaseToolAdapter","DEFAULT_BASE_URLS","zhipu","minimax","kimi","zenmux","streamlake","volcengine","aliyun","tencent","xfyun","DEFAULT_MODELS","claude","ClaudeCodeAdapter","constructor","this","toolType","toolConfig","id","display_name","config_path","description","parseConfig","content","JSON","parse","env","serializeConfig","config","stringify","applyProvider","provider","loadConfig","activeModel","current_model","models","provider_type","baseUrl","base_url","opusModel","default_opus_model","sonnetModel","default_sonnet_model","haikuModel","default_haiku_model","ANTHROPIC_API_KEY","api_key","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","CC_PROVIDER","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC","name","saveConfig","removeProvider"],"sources":["../../src/tools/claude-code-adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ import { BaseToolAdapter } from './base-adapter.js';
2
+ import { ModelProvider, ToolConfig, ToolType } from '../types.js';
3
+ /**
4
+ * Codex CLI tool adapter
5
+ * Manages ~/.codex/config.toml configuration
6
+ *
7
+ * Codex config format (TOML):
8
+ * model = "gpt-4o"
9
+ * model_provider = "my-provider"
10
+ *
11
+ * [model_providers.my-provider]
12
+ * name = "My Provider"
13
+ * base_url = "https://api.example.com/v1"
14
+ * env_key = "MY_API_KEY"
15
+ */
16
+ export declare class CodexAdapter extends BaseToolAdapter {
17
+ readonly toolType: ToolType;
18
+ readonly toolConfig: ToolConfig;
19
+ /**
20
+ * Parse TOML content into a JavaScript object
21
+ * Simple TOML parser supporting basic structures
22
+ */
23
+ parseConfig(content: string): Record<string, unknown>;
24
+ /**
25
+ * Serialize a JavaScript object to TOML format
26
+ */
27
+ serializeConfig(config: Record<string, unknown>): string;
28
+ private serializeValue;
29
+ private serializeSection;
30
+ /**
31
+ * Map cckit provider type to Codex provider ID
32
+ */
33
+ private getCodexProviderId;
34
+ applyProvider(provider: ModelProvider): Promise<void>;
35
+ removeProvider(): Promise<void>;
36
+ /**
37
+ * Check if Codex CLI is installed
38
+ */
39
+ isInstalled(): boolean;
40
+ private getDefaultBaseUrl;
41
+ private getDefaultModel;
42
+ }
43
+ //# sourceMappingURL=codex-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/codex-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AAE/E;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAW;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAK7B;IAEF;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoErD;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IA4BxD,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAKpB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCrD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrC;;OAEG;IACH,WAAW,IAAI,OAAO;IAKtB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,eAAe;CAexB"}
@@ -0,0 +1 @@
1
+ import e from"fs";import{BaseToolAdapter as t}from"./base-adapter.js";export class CodexAdapter extends t{constructor(){super(...arguments),this.toolType="codex",this.toolConfig={id:"codex",display_name:"Codex CLI",config_path:"~/.codex/config.toml",description:"OpenAI Codex CLI - AI coding agent"}}parseConfig(e){const t={};let o=t,r="";const i=e.split("\n");for(let e of i){const i=e.indexOf("#");if(-1!==i&&(e=e.substring(0,i)),e=e.trim(),!e)continue;const s=e.match(/^\[([^\]]+)\]$/);if(s){const e=s[1].split(".");o=t,r=e[0];for(const t of e)o[t]||(o[t]={}),o=o[t];continue}const n=e.match(/^([^=]+)=(.*)$/);if(n){const e=n[1].trim();let t=n[2].trim();"string"==typeof t&&(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t=t.slice(1,-1):"true"===t?t=!0:"false"===t?t=!1:/^-?\d+$/.test(t)?t=parseInt(t,10):/^-?\d+\.\d+$/.test(t)&&(t=parseFloat(t))),o[e]=t}}return t}serializeConfig(e){const t=[],o=[],r=[];for(const[t,i]of Object.entries(e))"object"!=typeof i||null===i||Array.isArray(i)?o.push(t):r.push(t);for(const r of o)t.push(this.serializeValue(r,e[r]));for(const o of r){const r=e[o];this.serializeSection(t,o,r)}return t.join("\n")}serializeValue(e,t){if("string"==typeof t){return`${e} = "${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"`}if("boolean"==typeof t)return`${e} = ${t}`;if("number"==typeof t)return`${e} = ${t}`;if(Array.isArray(t)){return`${e} = [${t.map(e=>{if("string"==typeof e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"`}return String(e)}).join(", ")}]`}return`${e} = "${String(t)}"`}serializeSection(e,t,o,r=""){const i=r?`${r}.${t}`:t,s=[],n=[];for(const[e,t]of Object.entries(o))"object"!=typeof t||null===t||Array.isArray(t)?n.push(this.serializeValue(e,t)):s.push(e);const a=s.length>0;if(n.length>0||!a){e.push(""),e.push(`[${i}]`);for(const t of n)e.push(t)}for(const t of s)this.serializeSection(e,t,o[t],i)}getCodexProviderId(e){return`cckit-${e.provider_type.toLowerCase()}`}async applyProvider(e){const t=await this.loadConfig(),o=this.getCodexProviderId(e),r=e.base_url||this.getDefaultBaseUrl(e.provider_type),i=e.current_model||this.getDefaultModel(e.provider_type);t.model_providers=t.model_providers||{};for(const e of Object.keys(t.model_providers))e.startsWith("cckit-")&&delete t.model_providers[e];t.model_providers[o]={name:e.name,base_url:r,wire_api:"responses",requires_openai_auth:!1,experimental_bearer_token:e.api_key},t.model=i,t.model_provider=o,await this.saveConfig(t)}async removeProvider(){const e=await this.loadConfig();if(e.model_providers)for(const t of Object.keys(e.model_providers))t.startsWith("cckit-")&&delete e.model_providers[t];delete e.model,delete e.model_provider,await this.saveConfig(e)}isInstalled(){const t=this.getConfigPath();return e.existsSync(t)}getDefaultBaseUrl(e){return{zhipu:"https://open.bigmodel.cn/api/paas/v4",minimax:"https://api.minimaxi.com/v1",kimi:"https://api.moonshot.cn/v1",zenmux:"https://zenmux.ai/api/v1",claude:"https://api.anthropic.com/v1",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1",volcengine:"https://ark.cn-beijing.volces.com/api/v3",aliyun:"https://dashscope.aliyuncs.com/api/v1",tencent:"https://api.lkeap.cloud.tencent.com",xfyun:"https://maas.cn-huabei-1.xf-yun.com"}[e]||""}getDefaultModel(e){return{zhipu:"glm-4-plus",minimax:"minimax-text01",kimi:"moonshot-v1-128k",zenmux:"gpt-4o",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",volcengine:"doubao-pro-32k",aliyun:"qwen-max",tencent:"hunyuan",xfyun:"spark-3.5"}[e]||"gpt-4o"}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/codex-adapter.js","names":["fs","BaseToolAdapter","CodexAdapter","constructor","this","toolType","toolConfig","id","display_name","config_path","description","parseConfig","content","result","currentSection","currentSectionName","lines","split","line","commentIndex","indexOf","substring","trim","sectionMatch","match","sectionPath","part","keyValueMatch","key","value","startsWith","endsWith","slice","test","parseInt","parseFloat","serializeConfig","config","topLevelKeys","sections","Object","entries","Array","isArray","push","serializeValue","sectionKey","sectionValue","serializeSection","join","replace","map","v","String","prefix","fullKey","subSections","values","hasChildren","length","valueLine","subKey","getCodexProviderId","provider","provider_type","toLowerCase","applyProvider","loadConfig","codexProviderId","baseUrl","base_url","getDefaultBaseUrl","activeModel","current_model","getDefaultModel","model_providers","keys","name","wire_api","requires_openai_auth","experimental_bearer_token","api_key","model","model_provider","saveConfig","removeProvider","isInstalled","configFile","getConfigPath","existsSync","providerType","zhipu","minimax","kimi","zenmux","claude","streamlake","volcengine","aliyun","tencent","xfyun"],"sources":["../../src/tools/codex-adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { ToolAdapter } from './types.js';
2
+ import { ToolType } from '../types.js';
3
+ /**
4
+ * Get a tool adapter instance by tool type
5
+ */
6
+ export declare function getToolAdapter(tool: ToolType): ToolAdapter;
7
+ /**
8
+ * Get all available tool adapters
9
+ */
10
+ export declare function getAllToolAdapters(): ToolAdapter[];
11
+ /**
12
+ * Get list of supported tool types
13
+ */
14
+ export declare function getSupportedTools(): ToolType[];
15
+ /**
16
+ * Check if a tool type is supported
17
+ */
18
+ export declare function isToolSupported(tool: string): tool is ToolType;
19
+ export { ToolAdapter } from './types.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAS1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAIlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,QAAQ,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAE9D;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ import{ClaudeCodeAdapter as e}from"./claude-code-adapter.js";import{OpenCodeAdapter as o}from"./opencode-adapter.js";import{CodexAdapter as t}from"./codex-adapter.js";const r={"claude-code":()=>new e,opencode:()=>new o,codex:()=>new t},n=new Map;export function getToolAdapter(e){if(!n.has(e)){const o=r[e];if(!o)throw new Error(`Unknown tool: ${e}`);n.set(e,o())}return n.get(e)}export function getAllToolAdapters(){return Object.keys(r).map(e=>getToolAdapter(e))}export function getSupportedTools(){return Object.keys(r)}export function isToolSupported(e){return e in r}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/index.js","names":["ClaudeCodeAdapter","OpenCodeAdapter","CodexAdapter","TOOL_ADAPTER_FACTORIES","opencode","codex","adapterCache","Map","getToolAdapter","tool","has","factory","Error","set","get","getAllToolAdapters","Object","keys","map","getSupportedTools","isToolSupported"],"sources":["../../src/tools/index.ts"],"mappings":"4BAESA,MAAyB,qDACzBC,MAAuB,+CACvBC,MAAoB,qBAG7B,MAAMC,EAA8D,CAClE,cAAe,IAAM,IAAIH,EACzBI,SAAY,IAAM,IAAIH,EACtBI,MAAS,IAAM,IAAIH,GAIfI,EAAe,IAAIC,WAKnB,SAAUC,eAAeC,GAC7B,IAAKH,EAAaI,IAAID,GAAO,CAC3B,MAAME,EAAUR,EAAuBM,GACvC,IAAKE,EACH,MAAM,IAAIC,MAAM,iBAAiBH,KAEnCH,EAAaO,IAAIJ,EAAME,IACzB,CACA,OAAOL,EAAaQ,IAAIL,EAC1B,QAKM,SAAUM,qBACd,OAAOC,OAAOC,KAAKd,GAAwBe,IAAKT,GAC9CD,eAAeC,GAEnB,QAKM,SAAUU,oBACd,OAAOH,OAAOC,KAAKd,EACrB,QAKM,SAAUiB,gBAAgBX,GAC9B,OAAOA,KAAQN,CACjB","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import { BaseToolAdapter } from './base-adapter.js';
2
+ import { ModelProvider, ToolConfig, ToolType } from '../types.js';
3
+ /**
4
+ * OpenCode CLI tool adapter
5
+ * Manages ~/.opencode.json configuration
6
+ *
7
+ * OpenCode config format:
8
+ * {
9
+ * "providers": {
10
+ * "anthropic": { "apiKey": "...", "disabled": false },
11
+ * "openai": { "apiKey": "...", "disabled": false }
12
+ * },
13
+ * "agents": {
14
+ * "coder": { "model": "claude-3-sonnet" },
15
+ * "task": { "model": "claude-3-sonnet" }
16
+ * }
17
+ * }
18
+ */
19
+ export declare class OpenCodeAdapter extends BaseToolAdapter {
20
+ readonly toolType: ToolType;
21
+ readonly toolConfig: ToolConfig;
22
+ /**
23
+ * Get the config path, checking XDG location first
24
+ */
25
+ getConfigPath(): string;
26
+ parseConfig(content: string): Record<string, unknown>;
27
+ serializeConfig(config: Record<string, unknown>): string;
28
+ /**
29
+ * Map cckit provider type to OpenCode provider name
30
+ */
31
+ private getOpenCodeProviderName;
32
+ applyProvider(provider: ModelProvider): Promise<void>;
33
+ removeProvider(): Promise<void>;
34
+ /**
35
+ * Check if OpenCode is installed
36
+ */
37
+ isInstalled(): boolean;
38
+ private getDefaultBaseUrl;
39
+ private getDefaultModel;
40
+ }
41
+ //# sourceMappingURL=opencode-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/opencode-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAElF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAc;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAK7B;IAEF;;OAEG;IACH,aAAa,IAAI,MAAM;IAWvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAIxD;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmBzB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCrD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAerC;;OAEG;IACH,WAAW,IAAI,OAAO;IAStB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,eAAe;CAexB"}
@@ -0,0 +1 @@
1
+ import e from"fs";import t from"path";import{homedir as i}from"os";import{BaseToolAdapter as o}from"./base-adapter.js";export class OpenCodeAdapter extends o{constructor(){super(...arguments),this.toolType="opencode",this.toolConfig={id:"opencode",display_name:"OpenCode",config_path:"~/.opencode.json",description:"OpenCode CLI - AI coding assistant"}}getConfigPath(){const o=process.env.XDG_CONFIG_HOME||t.join(i(),".config"),n=t.join(o,"opencode",".opencode.json");return e.existsSync(n)?n:t.join(i(),".opencode.json")}parseConfig(e){try{return JSON.parse(e)}catch{return{}}}serializeConfig(e){return JSON.stringify(e,null,2)}getOpenCodeProviderName(e){return{claude:"anthropic",zhipu:"cckit-zhipu",minimax:"cckit-minimax",kimi:"cckit-kimi",zenmux:"cckit-zenmux",streamlake:"cckit-streamlake",volcengine:"cckit-volcengine",aliyun:"cckit-aliyun",tencent:"cckit-tencent",xfyun:"cckit-xfyun",custom:`cckit-${e.name.toLowerCase().replace(/\s+/g,"-")}`}[e.provider_type]||`cckit-${e.provider_type}`}async applyProvider(e){const t=await this.loadConfig();t.providers=t.providers||{};const i=this.getOpenCodeProviderName(e),o=e.base_url||this.getDefaultBaseUrl(e.provider_type),n=e.current_model||e.models[0]||this.getDefaultModel(e.provider_type);t.providers[i]={apiKey:e.api_key,disabled:!1,...o&&{baseUrl:o}};for(const[e,o]of Object.entries(t.providers))e.startsWith("cckit-")&&e!==i&&(t.providers[e]={...o,disabled:!0});t.agents=t.agents||{},t.agents.coder=t.agents.coder||{},t.agents.coder.model=n,t.agents.task=t.agents.task||{},t.agents.task.model=n,await this.saveConfig(t)}async removeProvider(){const e=await this.loadConfig();if(e.providers)for(const t of Object.keys(e.providers))t.startsWith("cckit-")&&delete e.providers[t];await this.saveConfig(e)}isInstalled(){const o=t.join(i(),".opencode.json"),n=process.env.XDG_CONFIG_HOME||t.join(i(),".config"),a=t.join(n,"opencode",".opencode.json");return e.existsSync(o)||e.existsSync(a)}getDefaultBaseUrl(e){return{zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",volcengine:"https://ark.cn-beijing.volces.com/api/coding",aliyun:"https://coding.dashscope.aliyuncs.com/apps/anthropic",tencent:"https://api.lkeap.cloud.tencent.com/coding/anthropic",xfyun:"https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic"}[e]}getDefaultModel(e){return{zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",volcengine:"ark-code-latest",aliyun:"claude-sonnet-4-20250514",tencent:"GLM-5",xfyun:"GLM-5"}[e]||"claude-3-5-sonnet-20241022"}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/opencode-adapter.js","names":["fs","path","homedir","BaseToolAdapter","OpenCodeAdapter","constructor","this","toolType","toolConfig","id","display_name","config_path","description","getConfigPath","xdgConfig","process","env","XDG_CONFIG_HOME","join","xdgPath","existsSync","parseConfig","content","JSON","parse","serializeConfig","config","stringify","getOpenCodeProviderName","provider","claude","zhipu","minimax","kimi","zenmux","streamlake","volcengine","aliyun","tencent","xfyun","custom","name","toLowerCase","replace","provider_type","applyProvider","loadConfig","providers","openCodeProviderName","baseUrl","base_url","getDefaultBaseUrl","activeModel","current_model","models","getDefaultModel","apiKey","api_key","disabled","prov","Object","entries","startsWith","agents","coder","model","task","saveConfig","removeProvider","keys","isInstalled","homeConfig","xdgConfigPath","providerType"],"sources":["../../src/tools/opencode-adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { ModelProvider, ToolType, ToolConfig } from '../types.js';
2
+ /**
3
+ * Tool adapter interface for CLI tool configuration management
4
+ * Each supported tool implements this interface
5
+ */
6
+ export interface ToolAdapter {
7
+ readonly toolType: ToolType;
8
+ readonly toolConfig: ToolConfig;
9
+ getConfigPath(): string;
10
+ loadConfig(): Promise<Record<string, unknown>>;
11
+ saveConfig(config: Record<string, unknown>): Promise<void>;
12
+ applyProvider(provider: ModelProvider): Promise<void>;
13
+ removeProvider(): Promise<void>;
14
+ isInstalled(): boolean;
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAGhC,aAAa,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3D,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhC,WAAW,IAAI,OAAO,CAAC;CACxB"}
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"/Users/qiutian00lw/Code/cckit_cli/cckit-node/dist/tools/types.js","names":[],"sources":[],"mappings":"","ignoreList":[]}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type ProviderType = 'zhipu' | 'minimax' | 'kimi' | 'claude' | 'zenmux' | 'streamlake' | 'volcengine' | 'aliyun' | 'tencent' | 'xfyun' | 'custom';
2
+ export type ToolType = 'claude-code' | 'opencode' | 'codex';
2
3
  export interface ModelProvider {
3
4
  id: string;
4
5
  name: string;
@@ -16,6 +17,7 @@ export interface ModelProvider {
16
17
  export interface CCKitConfig {
17
18
  providers: ModelProvider[];
18
19
  current_provider_id?: string;
20
+ tool_states?: ToolProviderState[];
19
21
  version: string;
20
22
  created_at: string;
21
23
  updated_at: string;
@@ -48,4 +50,41 @@ export interface ClaudeSettings {
48
50
  };
49
51
  [key: string]: any;
50
52
  }
53
+ export interface ToolProviderState {
54
+ tool_type: ToolType;
55
+ current_provider_id: string;
56
+ last_switched_at?: string;
57
+ }
58
+ export interface ToolConfig {
59
+ id: ToolType;
60
+ display_name: string;
61
+ config_path: string;
62
+ description: string;
63
+ }
64
+ export interface OpenCodeConfig {
65
+ providers?: Record<string, {
66
+ apiKey?: string;
67
+ disabled?: boolean;
68
+ }>;
69
+ agents?: Record<string, {
70
+ model?: string;
71
+ maxTokens?: number;
72
+ }>;
73
+ [key: string]: any;
74
+ }
75
+ export interface CodexConfig {
76
+ model?: string;
77
+ model_provider?: string;
78
+ model_providers?: Record<string, {
79
+ name: string;
80
+ base_url?: string;
81
+ env_key?: string;
82
+ wire_api?: 'responses' | 'chat';
83
+ requires_openai_auth?: boolean;
84
+ env_http_headers?: Record<string, string>;
85
+ http_headers?: Record<string, string>;
86
+ experimental_bearer_token?: string;
87
+ }>;
88
+ [key: string]: any;
89
+ }
51
90
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExJ,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Current version of the application
6
6
  * Injected by scripts/inject-version.js during build
7
7
  */
8
- export declare const APP_VERSION = "0.3.1";
8
+ export declare const APP_VERSION = "0.3.3";
9
9
  /**
10
10
  * Default base URLs for providers
11
11
  */
@@ -1 +1 @@
1
- export const APP_VERSION="0.3.1";export const DEFAULT_BASE_URLS=Object.freeze({zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",custom:""});export const DEFAULT_MODELS=Object.freeze({zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",custom:""});export var ProviderType;!function(e){e.ZHIPU="zhipu",e.MINIMAX="minimax",e.KIMI="kimi",e.CLAUDE="claude",e.ZENMUX="zenmux",e.STREAMLAKE="streamlake",e.CUSTOM="custom"}(ProviderType||(ProviderType={}));export const PATHS=Object.freeze({CONFIG_DIR:".cckit",CONFIG_FILE:"config.json",CLAUDE_DIR:".claude",CLAUDE_SETTINGS:"settings.json"});export const TIMEOUTS=Object.freeze({CLI_CHECK:5e3,API_REQUEST:1e4,USER_INPUT:6e4});export const NPM_REGISTRIES=Object.freeze({DEFAULT:"https://registry.npmjs.org",NPMMIRROR:"https://registry.npmmirror.com"});
1
+ export const APP_VERSION="0.3.3";export const DEFAULT_BASE_URLS=Object.freeze({zhipu:"https://open.bigmodel.cn/api/anthropic",minimax:"https://api.minimaxi.com/anthropic",kimi:"https://api.kimi.com/coding/",zenmux:"https://zenmux.ai/api/anthropic",streamlake:"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy",custom:""});export const DEFAULT_MODELS=Object.freeze({zhipu:"GLM-4.7",minimax:"MiniMax-M2",kimi:"kimi-for-coding",zenmux:"claude-3-5-sonnet-20241022",claude:"claude-3-5-sonnet-20241022",streamlake:"kat-coder-pro-v1",custom:""});export var ProviderType;!function(e){e.ZHIPU="zhipu",e.MINIMAX="minimax",e.KIMI="kimi",e.CLAUDE="claude",e.ZENMUX="zenmux",e.STREAMLAKE="streamlake",e.CUSTOM="custom"}(ProviderType||(ProviderType={}));export const PATHS=Object.freeze({CONFIG_DIR:".cckit",CONFIG_FILE:"config.json",CLAUDE_DIR:".claude",CLAUDE_SETTINGS:"settings.json"});export const TIMEOUTS=Object.freeze({CLI_CHECK:5e3,API_REQUEST:1e4,USER_INPUT:6e4});export const NPM_REGISTRIES=Object.freeze({DEFAULT:"https://registry.npmjs.org",NPMMIRROR:"https://registry.npmmirror.com"});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cckit",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Code Kit for Claude Model Switching - Support 智谱LLM, MiniMax, Kimi, Kuaishou StreamLake, ZenMux.ai",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",