ccman 3.0.11 → 3.0.12

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 (2) hide show
  1. package/dist/index.js +188 -219
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2023,7 +2023,7 @@ var require_toml = __commonJS({
2023
2023
 
2024
2024
  // src/index.ts
2025
2025
  var import_commander = require("commander");
2026
- var import_chalk17 = __toESM(require("chalk"));
2026
+ var import_chalk18 = __toESM(require("chalk"));
2027
2027
 
2028
2028
  // src/utils/logo.ts
2029
2029
  var import_chalk = __toESM(require("chalk"));
@@ -2044,13 +2044,13 @@ function printLogo() {
2044
2044
  }
2045
2045
 
2046
2046
  // src/commands/codex/add.ts
2047
- var import_chalk3 = __toESM(require("chalk"));
2047
+ var import_chalk4 = __toESM(require("chalk"));
2048
2048
  var import_inquirer2 = __toESM(require("inquirer"));
2049
2049
 
2050
2050
  // ../core/package.json
2051
2051
  var package_default = {
2052
2052
  name: "@ccman/core",
2053
- version: "3.0.11",
2053
+ version: "3.0.12",
2054
2054
  type: "module",
2055
2055
  description: "Core business logic for ccman",
2056
2056
  main: "./dist/index.js",
@@ -2711,7 +2711,30 @@ var VERSION = package_default.version;
2711
2711
 
2712
2712
  // src/interactive.ts
2713
2713
  var import_inquirer = __toESM(require("inquirer"));
2714
+ var import_chalk3 = __toESM(require("chalk"));
2715
+
2716
+ // src/utils/format.ts
2714
2717
  var import_chalk2 = __toESM(require("chalk"));
2718
+ function formatProviderTable(providers, currentId) {
2719
+ const lines = [];
2720
+ lines.push("");
2721
+ providers.forEach((p, index) => {
2722
+ const isCurrent = p.id === currentId;
2723
+ const marker = isCurrent ? import_chalk2.default.green("\u25CF") : import_chalk2.default.gray("\u25CB");
2724
+ const name = isCurrent ? import_chalk2.default.green.bold(p.name) : import_chalk2.default.white(p.name);
2725
+ const tag = isCurrent ? import_chalk2.default.green(" [\u5F53\u524D]") : "";
2726
+ lines.push(` ${marker} ${name}${tag}`);
2727
+ const url = isCurrent ? import_chalk2.default.green(p.baseUrl) : import_chalk2.default.gray(p.baseUrl);
2728
+ lines.push(` ${url}`);
2729
+ if (index < providers.length - 1) {
2730
+ lines.push("");
2731
+ }
2732
+ });
2733
+ lines.push("");
2734
+ return lines.join("\n");
2735
+ }
2736
+
2737
+ // src/interactive.ts
2715
2738
  async function promptProviderForm(defaults) {
2716
2739
  const answers = await import_inquirer.default.prompt([
2717
2740
  {
@@ -2772,7 +2795,7 @@ async function startMainMenu() {
2772
2795
  }
2773
2796
  ]);
2774
2797
  if (choice === "exit") {
2775
- console.log(import_chalk2.default.gray("\n\u{1F44B} \u518D\u89C1!\n"));
2798
+ console.log(import_chalk3.default.gray("\n\u{1F44B} \u518D\u89C1!\n"));
2776
2799
  break;
2777
2800
  }
2778
2801
  if (choice === "claude") {
@@ -2840,7 +2863,7 @@ async function showToolMenu(tool) {
2840
2863
  break;
2841
2864
  }
2842
2865
  } catch (error) {
2843
- console.error(import_chalk2.default.red(`
2866
+ console.error(import_chalk3.default.red(`
2844
2867
  \u274C ${error.message}
2845
2868
  `));
2846
2869
  }
@@ -2854,13 +2877,13 @@ async function showToolMenu(tool) {
2854
2877
  }
2855
2878
  }
2856
2879
  async function showPresetsMenu() {
2857
- console.log(import_chalk2.default.yellow("\n\u26A0\uFE0F \u9884\u7F6E\u670D\u52A1\u5546\u7BA1\u7406\u529F\u80FD\u5373\u5C06\u63A8\u51FA\n"));
2880
+ console.log(import_chalk3.default.yellow("\n\u26A0\uFE0F \u9884\u7F6E\u670D\u52A1\u5546\u7BA1\u7406\u529F\u80FD\u5373\u5C06\u63A8\u51FA\n"));
2858
2881
  }
2859
2882
  async function handleAdd(tool) {
2860
2883
  const manager = tool === "codex" ? createCodexManager() : createClaudeManager();
2861
2884
  const toolName = tool === "claude" ? "Claude" : "Codex";
2862
2885
  const presets = manager.listPresets();
2863
- console.log(import_chalk2.default.bold(`
2886
+ console.log(import_chalk3.default.bold(`
2864
2887
  \u{1F4DD} \u6DFB\u52A0 ${toolName} \u670D\u52A1\u5546
2865
2888
  `));
2866
2889
  const { usePreset } = await import_inquirer.default.prompt([
@@ -2890,7 +2913,7 @@ async function handleAdd(tool) {
2890
2913
  }
2891
2914
  ]);
2892
2915
  const preset = presets.find((p) => p.name === presetName);
2893
- console.log(import_chalk2.default.blue(`
2916
+ console.log(import_chalk3.default.blue(`
2894
2917
  \u4F7F\u7528\u9884\u8BBE: ${preset.name} - ${preset.description}
2895
2918
  `));
2896
2919
  const input = await promptProviderForm({
@@ -2935,10 +2958,10 @@ async function handleAdd(tool) {
2935
2958
  }
2936
2959
  const provider = manager.add({ name, baseUrl, apiKey });
2937
2960
  console.log();
2938
- console.log(import_chalk2.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
2961
+ console.log(import_chalk3.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
2939
2962
  console.log();
2940
- console.log(` ${import_chalk2.default.bold(provider.name)} ${import_chalk2.default.blue(`[${toolName}]`)}`);
2941
- console.log(` ${import_chalk2.default.gray(provider.baseUrl)}`);
2963
+ console.log(` ${import_chalk3.default.bold(provider.name)} ${import_chalk3.default.blue(`[${toolName}]`)}`);
2964
+ console.log(` ${import_chalk3.default.gray(provider.baseUrl)}`);
2942
2965
  console.log();
2943
2966
  const { switchNow } = await import_inquirer.default.prompt([
2944
2967
  {
@@ -2950,9 +2973,9 @@ async function handleAdd(tool) {
2950
2973
  ]);
2951
2974
  if (switchNow) {
2952
2975
  manager.switch(provider.id);
2953
- console.log(import_chalk2.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546\n"));
2976
+ console.log(import_chalk3.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546\n"));
2954
2977
  } else {
2955
- console.log(import_chalk2.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk2.default.white(` ccman ${tool === "codex" ? "cx" : "cc"} use "${provider.name}"
2978
+ console.log(import_chalk3.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk3.default.white(` ccman ${tool === "codex" ? "cx" : "cc"} use "${provider.name}"
2956
2979
  `));
2957
2980
  }
2958
2981
  }
@@ -2961,7 +2984,7 @@ async function handleSwitch(tool) {
2961
2984
  const providers = manager.list();
2962
2985
  const current = manager.getCurrent();
2963
2986
  if (providers.length === 0) {
2964
- console.log(import_chalk2.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
2987
+ console.log(import_chalk3.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
2965
2988
  return;
2966
2989
  }
2967
2990
  const { providerId } = await import_inquirer.default.prompt([
@@ -2970,14 +2993,14 @@ async function handleSwitch(tool) {
2970
2993
  name: "providerId",
2971
2994
  message: "\u9009\u62E9\u8981\u5207\u6362\u7684\u670D\u52A1\u5546:",
2972
2995
  choices: providers.map((p) => ({
2973
- name: `${p.name}${current?.id === p.id ? import_chalk2.default.green(" (\u5F53\u524D)") : ""}`,
2996
+ name: `${p.name}${current?.id === p.id ? import_chalk3.default.green(" (\u5F53\u524D)") : ""}`,
2974
2997
  value: p.id
2975
2998
  }))
2976
2999
  }
2977
3000
  ]);
2978
3001
  manager.switch(providerId);
2979
3002
  const provider = providers.find((p) => p.id === providerId);
2980
- console.log(import_chalk2.default.green(`
3003
+ console.log(import_chalk3.default.green(`
2981
3004
  \u2705 \u5DF2\u5207\u6362\u5230: ${provider.name}
2982
3005
  `));
2983
3006
  }
@@ -2987,51 +3010,33 @@ async function handleList(tool) {
2987
3010
  const current = manager.getCurrent();
2988
3011
  const toolName = tool === "claude" ? "Claude" : "Codex";
2989
3012
  if (providers.length === 0) {
2990
- console.log(import_chalk2.default.yellow(`
3013
+ console.log(import_chalk3.default.yellow(`
2991
3014
  \u26A0\uFE0F \u6682\u65E0 ${toolName} \u670D\u52A1\u5546
2992
3015
  `));
2993
3016
  return;
2994
3017
  }
2995
- console.log(import_chalk2.default.bold(`
2996
- \u{1F4CB} ${toolName} \u670D\u52A1\u5546\u5217\u8868 (\u5171 ${providers.length} \u4E2A)
2997
- `));
2998
- providers.forEach((p) => {
2999
- const isCurrent = current?.id === p.id;
3000
- const marker = isCurrent ? import_chalk2.default.green("\u25CF") : import_chalk2.default.gray("\u25CB");
3001
- const nameStyle = isCurrent ? import_chalk2.default.green.bold : import_chalk2.default.white;
3002
- console.log(`${marker} ${nameStyle(p.name)}`);
3003
- console.log(` ${import_chalk2.default.gray(p.baseUrl)}`);
3004
- if (p.lastUsedAt) {
3005
- const date = new Date(p.lastUsedAt).toLocaleString("zh-CN");
3006
- console.log(` ${import_chalk2.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3007
- }
3008
- console.log();
3009
- });
3010
- if (current) {
3011
- console.log(import_chalk2.default.green(`\u2705 \u5F53\u524D\u4F7F\u7528: ${current.name}
3012
- `));
3013
- } else {
3014
- console.log(import_chalk2.default.yellow("\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55\u670D\u52A1\u5546\n"));
3015
- }
3018
+ console.log(import_chalk3.default.bold(`
3019
+ \u{1F4CB} ${toolName} \u670D\u52A1\u5546 (${providers.length} \u4E2A)`));
3020
+ console.log(formatProviderTable(providers, current?.id, toolName));
3016
3021
  }
3017
3022
  async function handleCurrent(tool) {
3018
3023
  const manager = tool === "codex" ? createCodexManager() : createClaudeManager();
3019
3024
  const current = manager.getCurrent();
3020
3025
  const toolName = tool === "claude" ? "Claude" : "Codex";
3021
3026
  if (!current) {
3022
- console.log(import_chalk2.default.yellow(`
3027
+ console.log(import_chalk3.default.yellow(`
3023
3028
  \u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55 ${toolName} \u670D\u52A1\u5546
3024
3029
  `));
3025
3030
  return;
3026
3031
  }
3027
- console.log(import_chalk2.default.bold(`
3032
+ console.log(import_chalk3.default.bold(`
3028
3033
  \u{1F441}\uFE0F \u5F53\u524D ${toolName} \u670D\u52A1\u5546
3029
3034
  `));
3030
- console.log(` ${import_chalk2.default.green.bold(current.name)}`);
3031
- console.log(` ${import_chalk2.default.gray(current.baseUrl)}`);
3035
+ console.log(` ${import_chalk3.default.green.bold(current.name)}`);
3036
+ console.log(` ${import_chalk3.default.gray(current.baseUrl)}`);
3032
3037
  if (current.lastUsedAt) {
3033
3038
  const date = new Date(current.lastUsedAt).toLocaleString("zh-CN");
3034
- console.log(` ${import_chalk2.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3039
+ console.log(` ${import_chalk3.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3035
3040
  }
3036
3041
  console.log();
3037
3042
  }
@@ -3039,7 +3044,7 @@ async function handleEdit(tool) {
3039
3044
  const manager = tool === "codex" ? createCodexManager() : createClaudeManager();
3040
3045
  const providers = manager.list();
3041
3046
  if (providers.length === 0) {
3042
- console.log(import_chalk2.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3047
+ console.log(import_chalk3.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3043
3048
  return;
3044
3049
  }
3045
3050
  const { providerId } = await import_inquirer.default.prompt([
@@ -3087,13 +3092,13 @@ async function handleEdit(tool) {
3087
3092
  baseUrl: answers.baseUrl,
3088
3093
  apiKey: answers.apiKey || void 0
3089
3094
  });
3090
- console.log(import_chalk2.default.green("\n\u2705 \u7F16\u8F91\u6210\u529F\n"));
3095
+ console.log(import_chalk3.default.green("\n\u2705 \u7F16\u8F91\u6210\u529F\n"));
3091
3096
  }
3092
3097
  async function handleClone(tool) {
3093
3098
  const manager = tool === "codex" ? createCodexManager() : createClaudeManager();
3094
3099
  const providers = manager.list();
3095
3100
  if (providers.length === 0) {
3096
- console.log(import_chalk2.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3101
+ console.log(import_chalk3.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3097
3102
  return;
3098
3103
  }
3099
3104
  const { providerId } = await import_inquirer.default.prompt([
@@ -3129,16 +3134,16 @@ async function handleClone(tool) {
3129
3134
  baseUrl: provider.baseUrl,
3130
3135
  apiKey: answers.apiKey
3131
3136
  });
3132
- console.log(import_chalk2.default.green("\n\u2705 \u514B\u9686\u6210\u529F\n"));
3133
- console.log(` ${import_chalk2.default.bold(newProvider.name)}`);
3134
- console.log(` ${import_chalk2.default.gray(newProvider.baseUrl)}`);
3137
+ console.log(import_chalk3.default.green("\n\u2705 \u514B\u9686\u6210\u529F\n"));
3138
+ console.log(` ${import_chalk3.default.bold(newProvider.name)}`);
3139
+ console.log(` ${import_chalk3.default.gray(newProvider.baseUrl)}`);
3135
3140
  console.log();
3136
3141
  }
3137
3142
  async function handleRemove(tool) {
3138
3143
  const manager = tool === "codex" ? createCodexManager() : createClaudeManager();
3139
3144
  const providers = manager.list();
3140
3145
  if (providers.length === 0) {
3141
- console.log(import_chalk2.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3146
+ console.log(import_chalk3.default.yellow("\n\u26A0\uFE0F \u6682\u65E0\u670D\u52A1\u5546\n"));
3142
3147
  return;
3143
3148
  }
3144
3149
  const { providerId } = await import_inquirer.default.prompt([
@@ -3163,11 +3168,11 @@ async function handleRemove(tool) {
3163
3168
  ]);
3164
3169
  if (confirm) {
3165
3170
  manager.remove(providerId);
3166
- console.log(import_chalk2.default.green(`
3171
+ console.log(import_chalk3.default.green(`
3167
3172
  \u2705 \u5DF2\u5220\u9664: ${provider.name}
3168
3173
  `));
3169
3174
  } else {
3170
- console.log(import_chalk2.default.gray("\n\u274C \u5DF2\u53D6\u6D88\n"));
3175
+ console.log(import_chalk3.default.gray("\n\u274C \u5DF2\u53D6\u6D88\n"));
3171
3176
  }
3172
3177
  }
3173
3178
 
@@ -3176,7 +3181,7 @@ function addCommand(program2) {
3176
3181
  program2.command("add").description("\u6DFB\u52A0\u65B0\u7684 Codex \u670D\u52A1\u5546(\u4EA4\u4E92\u5F0F)").action(async () => {
3177
3182
  try {
3178
3183
  const manager = createCodexManager();
3179
- console.log(import_chalk3.default.bold("\n\u{1F4DD} \u6DFB\u52A0 Codex \u670D\u52A1\u5546\n"));
3184
+ console.log(import_chalk4.default.bold("\n\u{1F4DD} \u6DFB\u52A0 Codex \u670D\u52A1\u5546\n"));
3180
3185
  const { usePreset } = await import_inquirer2.default.prompt([
3181
3186
  {
3182
3187
  type: "list",
@@ -3204,7 +3209,7 @@ function addCommand(program2) {
3204
3209
  }
3205
3210
  ]);
3206
3211
  const preset = CODEX_PRESETS.find((p) => p.name === presetName);
3207
- console.log(import_chalk3.default.blue(`
3212
+ console.log(import_chalk4.default.blue(`
3208
3213
  \u4F7F\u7528\u9884\u8BBE: ${preset.name} - ${preset.description}
3209
3214
  `));
3210
3215
  const input = await promptProviderForm({
@@ -3255,10 +3260,10 @@ function addCommand(program2) {
3255
3260
  }
3256
3261
  const provider = manager.add({ name, baseUrl, apiKey });
3257
3262
  console.log();
3258
- console.log(import_chalk3.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
3263
+ console.log(import_chalk4.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
3259
3264
  console.log();
3260
- console.log(` ${import_chalk3.default.bold(provider.name)} ${import_chalk3.default.blue("[Codex]")}`);
3261
- console.log(` ${import_chalk3.default.gray(provider.baseUrl)}`);
3265
+ console.log(` ${import_chalk4.default.bold(provider.name)} ${import_chalk4.default.blue("[Codex]")}`);
3266
+ console.log(` ${import_chalk4.default.gray(provider.baseUrl)}`);
3262
3267
  console.log();
3263
3268
  const { switchNow } = await import_inquirer2.default.prompt([
3264
3269
  {
@@ -3270,16 +3275,16 @@ function addCommand(program2) {
3270
3275
  ]);
3271
3276
  if (switchNow) {
3272
3277
  manager.switch(provider.id);
3273
- console.log(import_chalk3.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546"));
3278
+ console.log(import_chalk4.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546"));
3274
3279
  console.log();
3275
- console.log(import_chalk3.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3276
- console.log(import_chalk3.default.gray(` - ${getCodexConfigPath()}`));
3277
- console.log(import_chalk3.default.gray(` - ${getCodexAuthPath()}`));
3280
+ console.log(import_chalk4.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3281
+ console.log(import_chalk4.default.gray(` - ${getCodexConfigPath()}`));
3282
+ console.log(import_chalk4.default.gray(` - ${getCodexAuthPath()}`));
3278
3283
  } else {
3279
- console.log(import_chalk3.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk3.default.white(` ccman cx use "${provider.name}"`));
3284
+ console.log(import_chalk4.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk4.default.white(` ccman cx use "${provider.name}"`));
3280
3285
  }
3281
3286
  } catch (error) {
3282
- console.error(import_chalk3.default.red(`
3287
+ console.error(import_chalk4.default.red(`
3283
3288
  \u274C ${error.message}
3284
3289
  `));
3285
3290
  process.exit(1);
@@ -3288,7 +3293,7 @@ function addCommand(program2) {
3288
3293
  }
3289
3294
 
3290
3295
  // src/commands/codex/list.ts
3291
- var import_chalk4 = __toESM(require("chalk"));
3296
+ var import_chalk5 = __toESM(require("chalk"));
3292
3297
  function listCommand(program2) {
3293
3298
  program2.command("list").alias("ls").description("\u5217\u51FA\u6240\u6709 Codex \u670D\u52A1\u5546").action(async () => {
3294
3299
  try {
@@ -3296,33 +3301,15 @@ function listCommand(program2) {
3296
3301
  const providers = manager.list();
3297
3302
  const current = manager.getCurrent();
3298
3303
  if (providers.length === 0) {
3299
- console.log(import_chalk4.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3300
- console.log(import_chalk4.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk4.default.white(" ccman cx add\n"));
3304
+ console.log(import_chalk5.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3305
+ console.log(import_chalk5.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk5.default.white(" ccman cx add\n"));
3301
3306
  return;
3302
3307
  }
3303
- console.log(import_chalk4.default.bold(`
3304
- \u{1F4CB} Codex \u670D\u52A1\u5546\u5217\u8868 (\u5171 ${providers.length} \u4E2A)
3305
- `));
3306
- providers.forEach((p) => {
3307
- const isCurrent = current?.id === p.id;
3308
- const marker = isCurrent ? import_chalk4.default.green("\u25CF") : import_chalk4.default.gray("\u25CB");
3309
- const nameStyle = isCurrent ? import_chalk4.default.green.bold : import_chalk4.default.white;
3310
- console.log(`${marker} ${nameStyle(p.name)}`);
3311
- console.log(` ${import_chalk4.default.gray(p.baseUrl)}`);
3312
- if (p.lastUsedAt) {
3313
- const date = new Date(p.lastUsedAt).toLocaleString("zh-CN");
3314
- console.log(` ${import_chalk4.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3315
- }
3316
- console.log();
3317
- });
3318
- if (current) {
3319
- console.log(import_chalk4.default.green(`\u2705 \u5F53\u524D\u4F7F\u7528: ${current.name}
3320
- `));
3321
- } else {
3322
- console.log(import_chalk4.default.yellow("\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55\u670D\u52A1\u5546\n"));
3323
- }
3308
+ console.log(import_chalk5.default.bold(`
3309
+ \u{1F4CB} Codex \u670D\u52A1\u5546 (${providers.length} \u4E2A)`));
3310
+ console.log(formatProviderTable(providers, current?.id, "Codex"));
3324
3311
  } catch (error) {
3325
- console.error(import_chalk4.default.red(`
3312
+ console.error(import_chalk5.default.red(`
3326
3313
  \u274C ${error.message}
3327
3314
  `));
3328
3315
  process.exit(1);
@@ -3331,7 +3318,7 @@ function listCommand(program2) {
3331
3318
  }
3332
3319
 
3333
3320
  // src/commands/codex/use.ts
3334
- var import_chalk5 = __toESM(require("chalk"));
3321
+ var import_chalk6 = __toESM(require("chalk"));
3335
3322
  var import_inquirer3 = __toESM(require("inquirer"));
3336
3323
  function useCommand(program2) {
3337
3324
  program2.command("use [name]").description("\u5207\u6362 Codex \u670D\u52A1\u5546").action(async (name) => {
@@ -3339,8 +3326,8 @@ function useCommand(program2) {
3339
3326
  const manager = createCodexManager();
3340
3327
  const providers = manager.list();
3341
3328
  if (providers.length === 0) {
3342
- console.log(import_chalk5.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3343
- console.log(import_chalk5.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk5.default.white(" ccman cx add\n"));
3329
+ console.log(import_chalk6.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3330
+ console.log(import_chalk6.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk6.default.white(" ccman cx add\n"));
3344
3331
  return;
3345
3332
  }
3346
3333
  let targetId;
@@ -3367,23 +3354,23 @@ function useCommand(program2) {
3367
3354
  manager.switch(targetId);
3368
3355
  const provider = manager.get(targetId);
3369
3356
  console.log();
3370
- console.log(import_chalk5.default.green("\u2705 \u5207\u6362\u6210\u529F"));
3357
+ console.log(import_chalk6.default.green("\u2705 \u5207\u6362\u6210\u529F"));
3371
3358
  console.log();
3372
- console.log(` ${import_chalk5.default.bold(provider.name)} ${import_chalk5.default.blue("[Codex]")}`);
3373
- console.log(` ${import_chalk5.default.gray(`URL: ${provider.baseUrl}`)}`);
3359
+ console.log(` ${import_chalk6.default.bold(provider.name)} ${import_chalk6.default.blue("[Codex]")}`);
3360
+ console.log(` ${import_chalk6.default.gray(`URL: ${provider.baseUrl}`)}`);
3374
3361
  console.log();
3375
- console.log(import_chalk5.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3376
- console.log(import_chalk5.default.gray(` - ${getCodexConfigPath()}`));
3377
- console.log(import_chalk5.default.gray(` - ${getCodexAuthPath()}`));
3362
+ console.log(import_chalk6.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3363
+ console.log(import_chalk6.default.gray(` - ${getCodexConfigPath()}`));
3364
+ console.log(import_chalk6.default.gray(` - ${getCodexAuthPath()}`));
3378
3365
  console.log();
3379
3366
  } catch (error) {
3380
3367
  if (error instanceof ProviderNotFoundError) {
3381
- console.error(import_chalk5.default.red(`
3368
+ console.error(import_chalk6.default.red(`
3382
3369
  \u274C \u670D\u52A1\u5546\u4E0D\u5B58\u5728: ${error.message}
3383
3370
  `));
3384
- console.log(import_chalk5.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk5.default.white(" ccman cx list\n"));
3371
+ console.log(import_chalk6.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk6.default.white(" ccman cx list\n"));
3385
3372
  } else {
3386
- console.error(import_chalk5.default.red(`
3373
+ console.error(import_chalk6.default.red(`
3387
3374
  \u274C ${error.message}
3388
3375
  `));
3389
3376
  }
@@ -3393,28 +3380,28 @@ function useCommand(program2) {
3393
3380
  }
3394
3381
 
3395
3382
  // src/commands/codex/current.ts
3396
- var import_chalk6 = __toESM(require("chalk"));
3383
+ var import_chalk7 = __toESM(require("chalk"));
3397
3384
  function currentCommand(program2) {
3398
3385
  program2.command("current").description("\u663E\u793A\u5F53\u524D\u4F7F\u7528\u7684 Codex \u670D\u52A1\u5546").action(async () => {
3399
3386
  try {
3400
3387
  const manager = createCodexManager();
3401
3388
  const current = manager.getCurrent();
3402
3389
  if (!current) {
3403
- console.log(import_chalk6.default.yellow("\n\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55 Codex \u670D\u52A1\u5546\n"));
3404
- console.log(import_chalk6.default.blue("\u{1F4A1} \u9009\u62E9\u670D\u52A1\u5546:") + import_chalk6.default.white(" ccman cx use\n"));
3390
+ console.log(import_chalk7.default.yellow("\n\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55 Codex \u670D\u52A1\u5546\n"));
3391
+ console.log(import_chalk7.default.blue("\u{1F4A1} \u9009\u62E9\u670D\u52A1\u5546:") + import_chalk7.default.white(" ccman cx use\n"));
3405
3392
  return;
3406
3393
  }
3407
- console.log(import_chalk6.default.bold("\n\u{1F4CD} \u5F53\u524D Codex \u670D\u52A1\u5546\n"));
3408
- console.log(` ${import_chalk6.default.green.bold(current.name)}`);
3409
- console.log(` ${import_chalk6.default.gray(`ID: ${current.id}`)}`);
3410
- console.log(` ${import_chalk6.default.gray(`URL: ${current.baseUrl}`)}`);
3394
+ console.log(import_chalk7.default.bold("\n\u{1F4CD} \u5F53\u524D Codex \u670D\u52A1\u5546\n"));
3395
+ console.log(` ${import_chalk7.default.green.bold(current.name)}`);
3396
+ console.log(` ${import_chalk7.default.gray(`ID: ${current.id}`)}`);
3397
+ console.log(` ${import_chalk7.default.gray(`URL: ${current.baseUrl}`)}`);
3411
3398
  if (current.lastUsedAt) {
3412
3399
  const date = new Date(current.lastUsedAt).toLocaleString("zh-CN");
3413
- console.log(` ${import_chalk6.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3400
+ console.log(` ${import_chalk7.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3414
3401
  }
3415
3402
  console.log();
3416
3403
  } catch (error) {
3417
- console.error(import_chalk6.default.red(`
3404
+ console.error(import_chalk7.default.red(`
3418
3405
  \u274C ${error.message}
3419
3406
  `));
3420
3407
  process.exit(1);
@@ -3423,7 +3410,7 @@ function currentCommand(program2) {
3423
3410
  }
3424
3411
 
3425
3412
  // src/commands/codex/remove.ts
3426
- var import_chalk7 = __toESM(require("chalk"));
3413
+ var import_chalk8 = __toESM(require("chalk"));
3427
3414
  var import_inquirer4 = __toESM(require("inquirer"));
3428
3415
  function removeCommand(program2) {
3429
3416
  program2.command("remove [name]").alias("rm").description("\u5220\u9664 Codex \u670D\u52A1\u5546").action(async (name) => {
@@ -3431,7 +3418,7 @@ function removeCommand(program2) {
3431
3418
  const manager = createCodexManager();
3432
3419
  const providers = manager.list();
3433
3420
  if (providers.length === 0) {
3434
- console.log(import_chalk7.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3421
+ console.log(import_chalk8.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3435
3422
  return;
3436
3423
  }
3437
3424
  let targetId;
@@ -3468,21 +3455,21 @@ function removeCommand(program2) {
3468
3455
  }
3469
3456
  ]);
3470
3457
  if (!confirmed) {
3471
- console.log(import_chalk7.default.gray("\n\u5DF2\u53D6\u6D88\n"));
3458
+ console.log(import_chalk8.default.gray("\n\u5DF2\u53D6\u6D88\n"));
3472
3459
  return;
3473
3460
  }
3474
3461
  manager.remove(targetId);
3475
3462
  console.log();
3476
- console.log(import_chalk7.default.green(`\u2705 \u5DF2\u5220\u9664: ${targetName}`));
3463
+ console.log(import_chalk8.default.green(`\u2705 \u5DF2\u5220\u9664: ${targetName}`));
3477
3464
  console.log();
3478
3465
  } catch (error) {
3479
3466
  if (error instanceof ProviderNotFoundError) {
3480
- console.error(import_chalk7.default.red(`
3467
+ console.error(import_chalk8.default.red(`
3481
3468
  \u274C \u670D\u52A1\u5546\u4E0D\u5B58\u5728
3482
3469
  `));
3483
- console.log(import_chalk7.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk7.default.white(" ccman cx list\n"));
3470
+ console.log(import_chalk8.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk8.default.white(" ccman cx list\n"));
3484
3471
  } else {
3485
- console.error(import_chalk7.default.red(`
3472
+ console.error(import_chalk8.default.red(`
3486
3473
  \u274C ${error.message}
3487
3474
  `));
3488
3475
  }
@@ -3492,7 +3479,7 @@ function removeCommand(program2) {
3492
3479
  }
3493
3480
 
3494
3481
  // src/commands/codex/edit.ts
3495
- var import_chalk8 = __toESM(require("chalk"));
3482
+ var import_chalk9 = __toESM(require("chalk"));
3496
3483
  var import_inquirer5 = __toESM(require("inquirer"));
3497
3484
  function editCommand(program2) {
3498
3485
  program2.command("edit [name]").description("\u7F16\u8F91 Codex \u670D\u52A1\u5546").action(async (name) => {
@@ -3500,7 +3487,7 @@ function editCommand(program2) {
3500
3487
  const manager = createCodexManager();
3501
3488
  const providers = manager.list();
3502
3489
  if (providers.length === 0) {
3503
- console.log(import_chalk8.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3490
+ console.log(import_chalk9.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3504
3491
  return;
3505
3492
  }
3506
3493
  let targetId;
@@ -3525,8 +3512,8 @@ function editCommand(program2) {
3525
3512
  targetId = selectedId;
3526
3513
  }
3527
3514
  const provider = manager.get(targetId);
3528
- console.log(import_chalk8.default.bold("\n\u270F\uFE0F \u7F16\u8F91\u670D\u52A1\u5546\n"));
3529
- console.log(import_chalk8.default.gray("\u63D0\u793A: \u7559\u7A7A\u5219\u4FDD\u6301\u539F\u503C\n"));
3515
+ console.log(import_chalk9.default.bold("\n\u270F\uFE0F \u7F16\u8F91\u670D\u52A1\u5546\n"));
3516
+ console.log(import_chalk9.default.gray("\u63D0\u793A: \u7559\u7A7A\u5219\u4FDD\u6301\u539F\u503C\n"));
3530
3517
  const answers = await import_inquirer5.default.prompt([
3531
3518
  {
3532
3519
  type: "input",
@@ -3558,19 +3545,19 @@ function editCommand(program2) {
3558
3545
  if (answers.baseUrl && answers.baseUrl !== provider.baseUrl) updates.baseUrl = answers.baseUrl;
3559
3546
  if (answers.apiKey) updates.apiKey = answers.apiKey;
3560
3547
  if (Object.keys(updates).length === 0) {
3561
- console.log(import_chalk8.default.gray("\n\u672A\u505A\u4EFB\u4F55\u4FEE\u6539\n"));
3548
+ console.log(import_chalk9.default.gray("\n\u672A\u505A\u4EFB\u4F55\u4FEE\u6539\n"));
3562
3549
  return;
3563
3550
  }
3564
3551
  const updated = manager.edit(targetId, updates);
3565
3552
  console.log();
3566
- console.log(import_chalk8.default.green("\u2705 \u7F16\u8F91\u6210\u529F"));
3553
+ console.log(import_chalk9.default.green("\u2705 \u7F16\u8F91\u6210\u529F"));
3567
3554
  console.log();
3568
- console.log(` ${import_chalk8.default.bold(updated.name)} ${import_chalk8.default.blue("[Codex]")}`);
3569
- console.log(` ${import_chalk8.default.gray(`ID: ${updated.id}`)}`);
3570
- console.log(` ${import_chalk8.default.gray(`URL: ${updated.baseUrl}`)}`);
3555
+ console.log(` ${import_chalk9.default.bold(updated.name)} ${import_chalk9.default.blue("[Codex]")}`);
3556
+ console.log(` ${import_chalk9.default.gray(`ID: ${updated.id}`)}`);
3557
+ console.log(` ${import_chalk9.default.gray(`URL: ${updated.baseUrl}`)}`);
3571
3558
  console.log();
3572
3559
  } catch (error) {
3573
- console.error(import_chalk8.default.red(`
3560
+ console.error(import_chalk9.default.red(`
3574
3561
  \u274C ${error.message}
3575
3562
  `));
3576
3563
  process.exit(1);
@@ -3579,7 +3566,7 @@ function editCommand(program2) {
3579
3566
  }
3580
3567
 
3581
3568
  // src/commands/codex/clone.ts
3582
- var import_chalk9 = __toESM(require("chalk"));
3569
+ var import_chalk10 = __toESM(require("chalk"));
3583
3570
  var import_inquirer6 = __toESM(require("inquirer"));
3584
3571
  function cloneCommand(program2) {
3585
3572
  program2.command("clone [source-name] [new-name]").description("\u514B\u9686 Codex \u670D\u52A1\u5546").action(async (sourceName, newName) => {
@@ -3587,7 +3574,7 @@ function cloneCommand(program2) {
3587
3574
  const manager = createCodexManager();
3588
3575
  const providers = manager.list();
3589
3576
  if (providers.length === 0) {
3590
- console.log(import_chalk9.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3577
+ console.log(import_chalk10.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Codex \u670D\u52A1\u5546\n"));
3591
3578
  return;
3592
3579
  }
3593
3580
  let sourceId;
@@ -3616,7 +3603,7 @@ function cloneCommand(program2) {
3616
3603
  if (newName) {
3617
3604
  cloned = manager.clone(sourceId, newName);
3618
3605
  } else {
3619
- console.log(import_chalk9.default.blue(`
3606
+ console.log(import_chalk10.default.blue(`
3620
3607
  \u514B\u9686\u81EA: ${source.name}
3621
3608
  `));
3622
3609
  const input = await promptProviderForm({
@@ -3627,14 +3614,14 @@ function cloneCommand(program2) {
3627
3614
  cloned = manager.add(input);
3628
3615
  }
3629
3616
  console.log();
3630
- console.log(import_chalk9.default.green("\u2705 \u514B\u9686\u6210\u529F"));
3617
+ console.log(import_chalk10.default.green("\u2705 \u514B\u9686\u6210\u529F"));
3631
3618
  console.log();
3632
- console.log(` ${import_chalk9.default.bold(cloned.name)} ${import_chalk9.default.blue("[Codex]")}`);
3633
- console.log(` ${import_chalk9.default.gray(`ID: ${cloned.id}`)}`);
3634
- console.log(` ${import_chalk9.default.gray(`URL: ${cloned.baseUrl}`)}`);
3619
+ console.log(` ${import_chalk10.default.bold(cloned.name)} ${import_chalk10.default.blue("[Codex]")}`);
3620
+ console.log(` ${import_chalk10.default.gray(`ID: ${cloned.id}`)}`);
3621
+ console.log(` ${import_chalk10.default.gray(`URL: ${cloned.baseUrl}`)}`);
3635
3622
  console.log();
3636
3623
  } catch (error) {
3637
- console.error(import_chalk9.default.red(`
3624
+ console.error(import_chalk10.default.red(`
3638
3625
  \u274C ${error.message}
3639
3626
  `));
3640
3627
  process.exit(1);
@@ -3654,13 +3641,13 @@ function createCodexCommands(program2) {
3654
3641
  }
3655
3642
 
3656
3643
  // src/commands/claude/add.ts
3657
- var import_chalk10 = __toESM(require("chalk"));
3644
+ var import_chalk11 = __toESM(require("chalk"));
3658
3645
  var import_inquirer7 = __toESM(require("inquirer"));
3659
3646
  function addCommand2(program2) {
3660
3647
  program2.command("add").description("\u6DFB\u52A0\u65B0\u7684 Claude Code \u670D\u52A1\u5546(\u4EA4\u4E92\u5F0F)").action(async () => {
3661
3648
  try {
3662
3649
  const manager = createClaudeManager();
3663
- console.log(import_chalk10.default.bold("\n\u{1F4DD} \u6DFB\u52A0 Claude Code \u670D\u52A1\u5546\n"));
3650
+ console.log(import_chalk11.default.bold("\n\u{1F4DD} \u6DFB\u52A0 Claude Code \u670D\u52A1\u5546\n"));
3664
3651
  const { usePreset } = await import_inquirer7.default.prompt([
3665
3652
  {
3666
3653
  type: "list",
@@ -3688,7 +3675,7 @@ function addCommand2(program2) {
3688
3675
  }
3689
3676
  ]);
3690
3677
  const preset = CC_PRESETS.find((p) => p.name === presetName);
3691
- console.log(import_chalk10.default.blue(`
3678
+ console.log(import_chalk11.default.blue(`
3692
3679
  \u4F7F\u7528\u9884\u8BBE: ${preset.name} - ${preset.description}
3693
3680
  `));
3694
3681
  const input = await promptProviderForm({
@@ -3739,10 +3726,10 @@ function addCommand2(program2) {
3739
3726
  }
3740
3727
  const provider = manager.add({ name, baseUrl, apiKey });
3741
3728
  console.log();
3742
- console.log(import_chalk10.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
3729
+ console.log(import_chalk11.default.green("\u2705 \u6DFB\u52A0\u6210\u529F"));
3743
3730
  console.log();
3744
- console.log(` ${import_chalk10.default.bold(provider.name)} ${import_chalk10.default.blue("[Claude Code]")}`);
3745
- console.log(` ${import_chalk10.default.gray(provider.baseUrl)}`);
3731
+ console.log(` ${import_chalk11.default.bold(provider.name)} ${import_chalk11.default.blue("[Claude Code]")}`);
3732
+ console.log(` ${import_chalk11.default.gray(provider.baseUrl)}`);
3746
3733
  console.log();
3747
3734
  const { switchNow } = await import_inquirer7.default.prompt([
3748
3735
  {
@@ -3754,15 +3741,15 @@ function addCommand2(program2) {
3754
3741
  ]);
3755
3742
  if (switchNow) {
3756
3743
  manager.switch(provider.id);
3757
- console.log(import_chalk10.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546"));
3744
+ console.log(import_chalk11.default.green("\u2705 \u5DF2\u5207\u6362\u5230\u65B0\u670D\u52A1\u5546"));
3758
3745
  console.log();
3759
- console.log(import_chalk10.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3760
- console.log(import_chalk10.default.gray(` - ${getClaudeConfigPath()}`));
3746
+ console.log(import_chalk11.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3747
+ console.log(import_chalk11.default.gray(` - ${getClaudeConfigPath()}`));
3761
3748
  } else {
3762
- console.log(import_chalk10.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk10.default.white(` ccman cc use "${provider.name}"`));
3749
+ console.log(import_chalk11.default.blue("\u{1F4A1} \u7A0D\u540E\u5207\u6362:") + import_chalk11.default.white(` ccman cc use "${provider.name}"`));
3763
3750
  }
3764
3751
  } catch (error) {
3765
- console.error(import_chalk10.default.red(`
3752
+ console.error(import_chalk11.default.red(`
3766
3753
  \u274C ${error.message}
3767
3754
  `));
3768
3755
  process.exit(1);
@@ -3771,7 +3758,7 @@ function addCommand2(program2) {
3771
3758
  }
3772
3759
 
3773
3760
  // src/commands/claude/list.ts
3774
- var import_chalk11 = __toESM(require("chalk"));
3761
+ var import_chalk12 = __toESM(require("chalk"));
3775
3762
  function listCommand2(program2) {
3776
3763
  program2.command("list").alias("ls").description("\u5217\u51FA\u6240\u6709 Claude Code \u670D\u52A1\u5546").action(async () => {
3777
3764
  try {
@@ -3779,33 +3766,15 @@ function listCommand2(program2) {
3779
3766
  const providers = manager.list();
3780
3767
  const current = manager.getCurrent();
3781
3768
  if (providers.length === 0) {
3782
- console.log(import_chalk11.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3783
- console.log(import_chalk11.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk11.default.white(" ccman cc add\n"));
3769
+ console.log(import_chalk12.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3770
+ console.log(import_chalk12.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk12.default.white(" ccman cc add\n"));
3784
3771
  return;
3785
3772
  }
3786
- console.log(import_chalk11.default.bold(`
3787
- \u{1F4CB} Claude Code \u670D\u52A1\u5546\u5217\u8868 (\u5171 ${providers.length} \u4E2A)
3788
- `));
3789
- providers.forEach((p) => {
3790
- const isCurrent = current?.id === p.id;
3791
- const marker = isCurrent ? import_chalk11.default.green("\u25CF") : import_chalk11.default.gray("\u25CB");
3792
- const nameStyle = isCurrent ? import_chalk11.default.green.bold : import_chalk11.default.white;
3793
- console.log(`${marker} ${nameStyle(p.name)}`);
3794
- console.log(` ${import_chalk11.default.gray(p.baseUrl)}`);
3795
- if (p.lastUsedAt) {
3796
- const date = new Date(p.lastUsedAt).toLocaleString("zh-CN");
3797
- console.log(` ${import_chalk11.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3798
- }
3799
- console.log();
3800
- });
3801
- if (current) {
3802
- console.log(import_chalk11.default.green(`\u2705 \u5F53\u524D\u4F7F\u7528: ${current.name}
3803
- `));
3804
- } else {
3805
- console.log(import_chalk11.default.yellow("\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55\u670D\u52A1\u5546\n"));
3806
- }
3773
+ console.log(import_chalk12.default.bold(`
3774
+ \u{1F4CB} Claude Code \u670D\u52A1\u5546 (${providers.length} \u4E2A)`));
3775
+ console.log(formatProviderTable(providers, current?.id, "Claude Code"));
3807
3776
  } catch (error) {
3808
- console.error(import_chalk11.default.red(`
3777
+ console.error(import_chalk12.default.red(`
3809
3778
  \u274C ${error.message}
3810
3779
  `));
3811
3780
  process.exit(1);
@@ -3814,7 +3783,7 @@ function listCommand2(program2) {
3814
3783
  }
3815
3784
 
3816
3785
  // src/commands/claude/use.ts
3817
- var import_chalk12 = __toESM(require("chalk"));
3786
+ var import_chalk13 = __toESM(require("chalk"));
3818
3787
  var import_inquirer8 = __toESM(require("inquirer"));
3819
3788
  function useCommand2(program2) {
3820
3789
  program2.command("use [name]").description("\u5207\u6362 Claude Code \u670D\u52A1\u5546").action(async (name) => {
@@ -3822,8 +3791,8 @@ function useCommand2(program2) {
3822
3791
  const manager = createClaudeManager();
3823
3792
  const providers = manager.list();
3824
3793
  if (providers.length === 0) {
3825
- console.log(import_chalk12.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3826
- console.log(import_chalk12.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk12.default.white(" ccman cc add\n"));
3794
+ console.log(import_chalk13.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3795
+ console.log(import_chalk13.default.blue("\u{1F4A1} \u6DFB\u52A0\u670D\u52A1\u5546:") + import_chalk13.default.white(" ccman cc add\n"));
3827
3796
  return;
3828
3797
  }
3829
3798
  let targetId;
@@ -3850,22 +3819,22 @@ function useCommand2(program2) {
3850
3819
  manager.switch(targetId);
3851
3820
  const provider = manager.get(targetId);
3852
3821
  console.log();
3853
- console.log(import_chalk12.default.green("\u2705 \u5207\u6362\u6210\u529F"));
3822
+ console.log(import_chalk13.default.green("\u2705 \u5207\u6362\u6210\u529F"));
3854
3823
  console.log();
3855
- console.log(` ${import_chalk12.default.bold(provider.name)} ${import_chalk12.default.blue("[Claude Code]")}`);
3856
- console.log(` ${import_chalk12.default.gray(`URL: ${provider.baseUrl}`)}`);
3824
+ console.log(` ${import_chalk13.default.bold(provider.name)} ${import_chalk13.default.blue("[Claude Code]")}`);
3825
+ console.log(` ${import_chalk13.default.gray(`URL: ${provider.baseUrl}`)}`);
3857
3826
  console.log();
3858
- console.log(import_chalk12.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3859
- console.log(import_chalk12.default.gray(` - ${getClaudeConfigPath()}`));
3827
+ console.log(import_chalk13.default.gray("\u914D\u7F6E\u5DF2\u66F4\u65B0:"));
3828
+ console.log(import_chalk13.default.gray(` - ${getClaudeConfigPath()}`));
3860
3829
  console.log();
3861
3830
  } catch (error) {
3862
3831
  if (error instanceof ProviderNotFoundError) {
3863
- console.error(import_chalk12.default.red(`
3832
+ console.error(import_chalk13.default.red(`
3864
3833
  \u274C \u670D\u52A1\u5546\u4E0D\u5B58\u5728: ${error.message}
3865
3834
  `));
3866
- console.log(import_chalk12.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk12.default.white(" ccman cc list\n"));
3835
+ console.log(import_chalk13.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk13.default.white(" ccman cc list\n"));
3867
3836
  } else {
3868
- console.error(import_chalk12.default.red(`
3837
+ console.error(import_chalk13.default.red(`
3869
3838
  \u274C ${error.message}
3870
3839
  `));
3871
3840
  }
@@ -3875,28 +3844,28 @@ function useCommand2(program2) {
3875
3844
  }
3876
3845
 
3877
3846
  // src/commands/claude/current.ts
3878
- var import_chalk13 = __toESM(require("chalk"));
3847
+ var import_chalk14 = __toESM(require("chalk"));
3879
3848
  function currentCommand2(program2) {
3880
3849
  program2.command("current").description("\u663E\u793A\u5F53\u524D\u4F7F\u7528\u7684 Claude Code \u670D\u52A1\u5546").action(async () => {
3881
3850
  try {
3882
3851
  const manager = createClaudeManager();
3883
3852
  const current = manager.getCurrent();
3884
3853
  if (!current) {
3885
- console.log(import_chalk13.default.yellow("\n\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55 Claude Code \u670D\u52A1\u5546\n"));
3886
- console.log(import_chalk13.default.blue("\u{1F4A1} \u9009\u62E9\u670D\u52A1\u5546:") + import_chalk13.default.white(" ccman cc use\n"));
3854
+ console.log(import_chalk14.default.yellow("\n\u26A0\uFE0F \u672A\u9009\u62E9\u4EFB\u4F55 Claude Code \u670D\u52A1\u5546\n"));
3855
+ console.log(import_chalk14.default.blue("\u{1F4A1} \u9009\u62E9\u670D\u52A1\u5546:") + import_chalk14.default.white(" ccman cc use\n"));
3887
3856
  return;
3888
3857
  }
3889
- console.log(import_chalk13.default.bold("\n\u{1F4CD} \u5F53\u524D Claude Code \u670D\u52A1\u5546\n"));
3890
- console.log(` ${import_chalk13.default.green.bold(current.name)}`);
3891
- console.log(` ${import_chalk13.default.gray(`ID: ${current.id}`)}`);
3892
- console.log(` ${import_chalk13.default.gray(`URL: ${current.baseUrl}`)}`);
3858
+ console.log(import_chalk14.default.bold("\n\u{1F4CD} \u5F53\u524D Claude Code \u670D\u52A1\u5546\n"));
3859
+ console.log(` ${import_chalk14.default.green.bold(current.name)}`);
3860
+ console.log(` ${import_chalk14.default.gray(`ID: ${current.id}`)}`);
3861
+ console.log(` ${import_chalk14.default.gray(`URL: ${current.baseUrl}`)}`);
3893
3862
  if (current.lastUsedAt) {
3894
3863
  const date = new Date(current.lastUsedAt).toLocaleString("zh-CN");
3895
- console.log(` ${import_chalk13.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3864
+ console.log(` ${import_chalk14.default.gray(`\u6700\u540E\u4F7F\u7528: ${date}`)}`);
3896
3865
  }
3897
3866
  console.log();
3898
3867
  } catch (error) {
3899
- console.error(import_chalk13.default.red(`
3868
+ console.error(import_chalk14.default.red(`
3900
3869
  \u274C ${error.message}
3901
3870
  `));
3902
3871
  process.exit(1);
@@ -3905,7 +3874,7 @@ function currentCommand2(program2) {
3905
3874
  }
3906
3875
 
3907
3876
  // src/commands/claude/remove.ts
3908
- var import_chalk14 = __toESM(require("chalk"));
3877
+ var import_chalk15 = __toESM(require("chalk"));
3909
3878
  var import_inquirer9 = __toESM(require("inquirer"));
3910
3879
  function removeCommand2(program2) {
3911
3880
  program2.command("remove [name]").alias("rm").description("\u5220\u9664 Claude Code \u670D\u52A1\u5546").action(async (name) => {
@@ -3913,7 +3882,7 @@ function removeCommand2(program2) {
3913
3882
  const manager = createClaudeManager();
3914
3883
  const providers = manager.list();
3915
3884
  if (providers.length === 0) {
3916
- console.log(import_chalk14.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3885
+ console.log(import_chalk15.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3917
3886
  return;
3918
3887
  }
3919
3888
  let targetId;
@@ -3950,21 +3919,21 @@ function removeCommand2(program2) {
3950
3919
  }
3951
3920
  ]);
3952
3921
  if (!confirmed) {
3953
- console.log(import_chalk14.default.gray("\n\u5DF2\u53D6\u6D88\n"));
3922
+ console.log(import_chalk15.default.gray("\n\u5DF2\u53D6\u6D88\n"));
3954
3923
  return;
3955
3924
  }
3956
3925
  manager.remove(targetId);
3957
3926
  console.log();
3958
- console.log(import_chalk14.default.green(`\u2705 \u5DF2\u5220\u9664: ${targetName}`));
3927
+ console.log(import_chalk15.default.green(`\u2705 \u5DF2\u5220\u9664: ${targetName}`));
3959
3928
  console.log();
3960
3929
  } catch (error) {
3961
3930
  if (error instanceof ProviderNotFoundError) {
3962
- console.error(import_chalk14.default.red(`
3931
+ console.error(import_chalk15.default.red(`
3963
3932
  \u274C \u670D\u52A1\u5546\u4E0D\u5B58\u5728
3964
3933
  `));
3965
- console.log(import_chalk14.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk14.default.white(" ccman cc list\n"));
3934
+ console.log(import_chalk15.default.blue("\u{1F4A1} \u67E5\u770B\u6240\u6709\u670D\u52A1\u5546:") + import_chalk15.default.white(" ccman cc list\n"));
3966
3935
  } else {
3967
- console.error(import_chalk14.default.red(`
3936
+ console.error(import_chalk15.default.red(`
3968
3937
  \u274C ${error.message}
3969
3938
  `));
3970
3939
  }
@@ -3974,7 +3943,7 @@ function removeCommand2(program2) {
3974
3943
  }
3975
3944
 
3976
3945
  // src/commands/claude/edit.ts
3977
- var import_chalk15 = __toESM(require("chalk"));
3946
+ var import_chalk16 = __toESM(require("chalk"));
3978
3947
  var import_inquirer10 = __toESM(require("inquirer"));
3979
3948
  function editCommand2(program2) {
3980
3949
  program2.command("edit [name]").description("\u7F16\u8F91 Claude Code \u670D\u52A1\u5546").action(async (name) => {
@@ -3982,7 +3951,7 @@ function editCommand2(program2) {
3982
3951
  const manager = createClaudeManager();
3983
3952
  const providers = manager.list();
3984
3953
  if (providers.length === 0) {
3985
- console.log(import_chalk15.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3954
+ console.log(import_chalk16.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
3986
3955
  return;
3987
3956
  }
3988
3957
  let targetId;
@@ -4007,8 +3976,8 @@ function editCommand2(program2) {
4007
3976
  targetId = selectedId;
4008
3977
  }
4009
3978
  const provider = manager.get(targetId);
4010
- console.log(import_chalk15.default.bold("\n\u270F\uFE0F \u7F16\u8F91\u670D\u52A1\u5546\n"));
4011
- console.log(import_chalk15.default.gray("\u63D0\u793A: \u7559\u7A7A\u5219\u4FDD\u6301\u539F\u503C\n"));
3979
+ console.log(import_chalk16.default.bold("\n\u270F\uFE0F \u7F16\u8F91\u670D\u52A1\u5546\n"));
3980
+ console.log(import_chalk16.default.gray("\u63D0\u793A: \u7559\u7A7A\u5219\u4FDD\u6301\u539F\u503C\n"));
4012
3981
  const answers = await import_inquirer10.default.prompt([
4013
3982
  {
4014
3983
  type: "input",
@@ -4040,19 +4009,19 @@ function editCommand2(program2) {
4040
4009
  if (answers.baseUrl && answers.baseUrl !== provider.baseUrl) updates.baseUrl = answers.baseUrl;
4041
4010
  if (answers.apiKey) updates.apiKey = answers.apiKey;
4042
4011
  if (Object.keys(updates).length === 0) {
4043
- console.log(import_chalk15.default.gray("\n\u672A\u505A\u4EFB\u4F55\u4FEE\u6539\n"));
4012
+ console.log(import_chalk16.default.gray("\n\u672A\u505A\u4EFB\u4F55\u4FEE\u6539\n"));
4044
4013
  return;
4045
4014
  }
4046
4015
  const updated = manager.edit(targetId, updates);
4047
4016
  console.log();
4048
- console.log(import_chalk15.default.green("\u2705 \u7F16\u8F91\u6210\u529F"));
4017
+ console.log(import_chalk16.default.green("\u2705 \u7F16\u8F91\u6210\u529F"));
4049
4018
  console.log();
4050
- console.log(` ${import_chalk15.default.bold(updated.name)} ${import_chalk15.default.blue("[Claude Code]")}`);
4051
- console.log(` ${import_chalk15.default.gray(`ID: ${updated.id}`)}`);
4052
- console.log(` ${import_chalk15.default.gray(`URL: ${updated.baseUrl}`)}`);
4019
+ console.log(` ${import_chalk16.default.bold(updated.name)} ${import_chalk16.default.blue("[Claude Code]")}`);
4020
+ console.log(` ${import_chalk16.default.gray(`ID: ${updated.id}`)}`);
4021
+ console.log(` ${import_chalk16.default.gray(`URL: ${updated.baseUrl}`)}`);
4053
4022
  console.log();
4054
4023
  } catch (error) {
4055
- console.error(import_chalk15.default.red(`
4024
+ console.error(import_chalk16.default.red(`
4056
4025
  \u274C ${error.message}
4057
4026
  `));
4058
4027
  process.exit(1);
@@ -4061,7 +4030,7 @@ function editCommand2(program2) {
4061
4030
  }
4062
4031
 
4063
4032
  // src/commands/claude/clone.ts
4064
- var import_chalk16 = __toESM(require("chalk"));
4033
+ var import_chalk17 = __toESM(require("chalk"));
4065
4034
  var import_inquirer11 = __toESM(require("inquirer"));
4066
4035
  function cloneCommand2(program2) {
4067
4036
  program2.command("clone [source-name] [new-name]").description("\u514B\u9686 Claude Code \u670D\u52A1\u5546").action(async (sourceName, newName) => {
@@ -4069,7 +4038,7 @@ function cloneCommand2(program2) {
4069
4038
  const manager = createClaudeManager();
4070
4039
  const providers = manager.list();
4071
4040
  if (providers.length === 0) {
4072
- console.log(import_chalk16.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
4041
+ console.log(import_chalk17.default.yellow("\n\u26A0\uFE0F \u6682\u65E0 Claude Code \u670D\u52A1\u5546\n"));
4073
4042
  return;
4074
4043
  }
4075
4044
  let sourceId;
@@ -4098,7 +4067,7 @@ function cloneCommand2(program2) {
4098
4067
  if (newName) {
4099
4068
  cloned = manager.clone(sourceId, newName);
4100
4069
  } else {
4101
- console.log(import_chalk16.default.blue(`
4070
+ console.log(import_chalk17.default.blue(`
4102
4071
  \u514B\u9686\u81EA: ${source.name}
4103
4072
  `));
4104
4073
  const input = await promptProviderForm({
@@ -4109,14 +4078,14 @@ function cloneCommand2(program2) {
4109
4078
  cloned = manager.add(input);
4110
4079
  }
4111
4080
  console.log();
4112
- console.log(import_chalk16.default.green("\u2705 \u514B\u9686\u6210\u529F"));
4081
+ console.log(import_chalk17.default.green("\u2705 \u514B\u9686\u6210\u529F"));
4113
4082
  console.log();
4114
- console.log(` ${import_chalk16.default.bold(cloned.name)} ${import_chalk16.default.blue("[Claude Code]")}`);
4115
- console.log(` ${import_chalk16.default.gray(`ID: ${cloned.id}`)}`);
4116
- console.log(` ${import_chalk16.default.gray(`URL: ${cloned.baseUrl}`)}`);
4083
+ console.log(` ${import_chalk17.default.bold(cloned.name)} ${import_chalk17.default.blue("[Claude Code]")}`);
4084
+ console.log(` ${import_chalk17.default.gray(`ID: ${cloned.id}`)}`);
4085
+ console.log(` ${import_chalk17.default.gray(`URL: ${cloned.baseUrl}`)}`);
4117
4086
  console.log();
4118
4087
  } catch (error) {
4119
- console.error(import_chalk16.default.red(`
4088
+ console.error(import_chalk17.default.red(`
4120
4089
  \u274C ${error.message}
4121
4090
  `));
4122
4091
  process.exit(1);
@@ -4137,10 +4106,10 @@ function createClaudeCommands(program2) {
4137
4106
 
4138
4107
  // src/index.ts
4139
4108
  if (process.env.NODE_ENV === "development") {
4140
- console.log(import_chalk17.default.gray("\n[\u5F00\u53D1\u6A21\u5F0F] \u914D\u7F6E\u76EE\u5F55:"));
4141
- console.log(import_chalk17.default.gray(` ccman: ${getCcmanDir()}`));
4142
- console.log(import_chalk17.default.gray(` codex: ${getCodexDir()}`));
4143
- console.log(import_chalk17.default.gray(` claude: ${getClaudeDir()}`));
4109
+ console.log(import_chalk18.default.gray("\n[\u5F00\u53D1\u6A21\u5F0F] \u914D\u7F6E\u76EE\u5F55:"));
4110
+ console.log(import_chalk18.default.gray(` ccman: ${getCcmanDir()}`));
4111
+ console.log(import_chalk18.default.gray(` codex: ${getCodexDir()}`));
4112
+ console.log(import_chalk18.default.gray(` claude: ${getClaudeDir()}`));
4144
4113
  console.log();
4145
4114
  }
4146
4115
  var program = new import_commander.Command();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccman",
3
- "version": "3.0.11",
3
+ "version": "3.0.12",
4
4
  "description": "Manage Codex and Claude Code API service provider configurations",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {