ccjk 13.6.1 → 13.6.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.
@@ -1,6 +1,6 @@
1
1
  import a from './index5.mjs';
2
2
  import { i18n } from './index2.mjs';
3
- import { e as configureApi, f as getExistingApiConfig } from './config.mjs';
3
+ import { e as configureApi, d as getExistingApiConfig } from './config.mjs';
4
4
  import { g as getAllPresets } from '../shared/ccjk.DopKzo3z.mjs';
5
5
  import '../shared/ccjk.BAGoDD49.mjs';
6
6
  import 'node:fs';
@@ -0,0 +1,171 @@
1
+ import a from './index5.mjs';
2
+ import { i as inquirer } from './index6.mjs';
3
+ import { isCodeToolType, DEFAULT_CODE_TOOL_TYPE } from './constants.mjs';
4
+ import { i18n } from './index2.mjs';
5
+ import { readZcfConfig } from './ccjk-config.mjs';
6
+ import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
7
+ import { handleCustomApiMode } from './features.mjs';
8
+ import { configSwitchCommand } from './config-switch.mjs';
9
+ import '../shared/ccjk.BAGoDD49.mjs';
10
+ import 'node:readline';
11
+ import 'stream';
12
+ import 'node:tty';
13
+ import 'node:process';
14
+ import 'node:async_hooks';
15
+ import '../shared/ccjk.Cjgrln_h.mjs';
16
+ import 'node:util';
17
+ import 'tty';
18
+ import 'fs';
19
+ import 'child_process';
20
+ import 'node:path';
21
+ import 'node:os';
22
+ import 'node:crypto';
23
+ import 'buffer';
24
+ import 'string_decoder';
25
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
26
+ import 'node:fs';
27
+ import 'node:url';
28
+ import '../shared/ccjk.BBtCGd_g.mjs';
29
+ import './index3.mjs';
30
+ import './fs-operations.mjs';
31
+ import 'node:fs/promises';
32
+ import './json-config.mjs';
33
+ import '../shared/ccjk.RyizuzOI.mjs';
34
+ import './config.mjs';
35
+ import './claude-config.mjs';
36
+ import './platform.mjs';
37
+ import './main.mjs';
38
+ import 'module';
39
+ import 'node:child_process';
40
+ import 'node:stream';
41
+ import '../shared/ccjk.DScm_NnL.mjs';
42
+ import '../shared/ccjk.BP5hsTZQ.mjs';
43
+ import '../shared/ccjk.BFQ7yr5S.mjs';
44
+ import '../shared/ccjk.DZ2LLOa-.mjs';
45
+ import '../shared/ccjk.DeWpAShp.mjs';
46
+ import './codex.mjs';
47
+ import './index8.mjs';
48
+ import '../shared/ccjk.CxpGa6MC.mjs';
49
+ import './prompts.mjs';
50
+ import '../shared/ccjk.gDEDGD_t.mjs';
51
+ import '../shared/ccjk.DGllfVCZ.mjs';
52
+
53
+ function getCurrentCodeTool() {
54
+ const config = readZcfConfig();
55
+ if (config?.codeToolType && isCodeToolType(config.codeToolType)) {
56
+ return config.codeToolType;
57
+ }
58
+ return DEFAULT_CODE_TOOL_TYPE;
59
+ }
60
+ async function showApiConfigMenu(title, options) {
61
+ const lang = i18n.language;
62
+ const isZh = lang === "zh-CN";
63
+ console.log("");
64
+ console.log(a.bold.cyan(title || (isZh ? "\u{1F511} API \u914D\u7F6E\u7BA1\u7406" : "\u{1F511} API Configuration")));
65
+ console.log("");
66
+ const choices = [
67
+ { name: isZh ? "\u4F7F\u7528\u5B98\u65B9\u767B\u5F55" : "Use Official Login", value: "official" },
68
+ { name: isZh ? "\u81EA\u5B9A\u4E49 API \u914D\u7F6E" : "Custom API Configuration", value: "custom" },
69
+ { name: isZh ? "\u4F7F\u7528 CCR \u4EE3\u7406" : "Use CCR Proxy", value: "ccr" },
70
+ { name: isZh ? "\u8DF3\u8FC7\uFF08\u7A0D\u540E\u624B\u52A8\u914D\u7F6E\uFF09" : "Skip (Configure Later)", value: "skip" }
71
+ ];
72
+ const { choice } = await inquirer.prompt({
73
+ type: "list",
74
+ name: "choice",
75
+ message: isZh ? "\u8BF7\u9009\u62E9 API \u914D\u7F6E\u6A21\u5F0F:" : "Select API configuration mode:",
76
+ choices,
77
+ default: "custom",
78
+ pageSize: 8
79
+ });
80
+ const codeTool = getCurrentCodeTool();
81
+ switch (choice) {
82
+ case "official":
83
+ return await handleOfficialLogin(codeTool, isZh);
84
+ case "custom":
85
+ return await handleCustomConfig(isZh, options?.context);
86
+ case "ccr":
87
+ return await handleCcrProxy(codeTool, isZh);
88
+ case "switch":
89
+ return await handleConfigSwitch(codeTool);
90
+ case "view":
91
+ return await handleViewConfig(codeTool);
92
+ case "skip":
93
+ return { mode: "skip", success: true, cancelled: false };
94
+ default:
95
+ return { mode: "skip", success: true, cancelled: false };
96
+ }
97
+ }
98
+ async function handleOfficialLogin(codeTool, isZh) {
99
+ if (codeTool === "claude-code") {
100
+ const result = await ClaudeCodeConfigManager.switchToOfficial();
101
+ if (result.success) {
102
+ console.log("");
103
+ console.log(a.green(isZh ? "\u2705 \u5DF2\u5207\u6362\u5230\u5B98\u65B9\u767B\u5F55" : "\u2705 Switched to official login"));
104
+ console.log("");
105
+ return { mode: "official", success: true, cancelled: false };
106
+ } else {
107
+ console.log("");
108
+ console.log(a.red(isZh ? `\u274C \u5207\u6362\u5931\u8D25: ${result.error}` : `\u274C Failed to switch: ${result.error}`));
109
+ console.log("");
110
+ return { mode: "official", success: false, cancelled: false };
111
+ }
112
+ } else {
113
+ console.log("");
114
+ console.log(a.yellow(isZh ? "\u26A0\uFE0F \u5F53\u524D\u4EE3\u7801\u5DE5\u5177\u4E0D\u652F\u6301\u6B64\u529F\u80FD" : "\u26A0\uFE0F Current code tool does not support this feature"));
115
+ console.log("");
116
+ return { mode: "official", success: false, cancelled: false };
117
+ }
118
+ }
119
+ async function handleCustomConfig(_isZh, context) {
120
+ try {
121
+ const codeTool = getCurrentCodeTool();
122
+ if (codeTool === "claude-code" && context === "init") {
123
+ const { addProfileDirect } = await import('./claude-code-incremental-manager.mjs');
124
+ await addProfileDirect();
125
+ } else {
126
+ await handleCustomApiMode();
127
+ }
128
+ return { mode: "custom", success: true, cancelled: false };
129
+ } catch {
130
+ return { mode: "custom", success: false, cancelled: false };
131
+ }
132
+ }
133
+ async function handleCcrProxy(codeTool, isZh) {
134
+ if (codeTool === "claude-code") {
135
+ const result = await ClaudeCodeConfigManager.switchToCcr();
136
+ if (result.success) {
137
+ console.log("");
138
+ console.log(a.green(isZh ? "\u2705 \u5DF2\u5207\u6362\u5230 CCR \u4EE3\u7406" : "\u2705 Switched to CCR proxy"));
139
+ console.log("");
140
+ return { mode: "ccr", success: true, cancelled: false };
141
+ } else {
142
+ console.log("");
143
+ console.log(a.red(isZh ? `\u274C \u5207\u6362\u5931\u8D25: ${result.error}` : `\u274C Failed to switch: ${result.error}`));
144
+ console.log("");
145
+ return { mode: "ccr", success: false, cancelled: false };
146
+ }
147
+ } else {
148
+ console.log("");
149
+ console.log(a.yellow(isZh ? "\u26A0\uFE0F \u5F53\u524D\u4EE3\u7801\u5DE5\u5177\u4E0D\u652F\u6301\u6B64\u529F\u80FD" : "\u26A0\uFE0F Current code tool does not support this feature"));
150
+ console.log("");
151
+ return { mode: "ccr", success: false, cancelled: false };
152
+ }
153
+ }
154
+ async function handleConfigSwitch(codeTool) {
155
+ try {
156
+ await configSwitchCommand({ codeType: codeTool });
157
+ return { mode: "switch", success: true, cancelled: false };
158
+ } catch {
159
+ return { mode: "switch", success: false, cancelled: false };
160
+ }
161
+ }
162
+ async function handleViewConfig(codeTool) {
163
+ try {
164
+ await configSwitchCommand({ codeType: codeTool, list: true });
165
+ return { mode: "view", success: true, cancelled: false };
166
+ } catch {
167
+ return { mode: "view", success: false, cancelled: false };
168
+ }
169
+ }
170
+
171
+ export { showApiConfigMenu };
@@ -1,7 +1,7 @@
1
1
  import a from './index5.mjs';
2
2
  import { i18n, resolveSupportedLanguage, format } from './index2.mjs';
3
3
  import { STATUS, COLORS as theme } from './banner.mjs';
4
- import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup } from '../shared/ccjk.elpZZFjp.mjs';
4
+ import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup } from '../shared/ccjk.B2f-cwUP.mjs';
5
5
  import { g as getAllPresets } from '../shared/ccjk.DopKzo3z.mjs';
6
6
  import '../shared/ccjk.BAGoDD49.mjs';
7
7
  import 'node:fs';
@@ -51,6 +51,7 @@ import '../shared/ccjk.CiKtBUW_.mjs';
51
51
  import './smart-defaults.mjs';
52
52
  import '../shared/ccjk.DJuyfrlL.mjs';
53
53
  import './features.mjs';
54
+ import '../shared/ccjk.BP5hsTZQ.mjs';
54
55
  import '../shared/ccjk.DbigonEQ.mjs';
55
56
  import 'node:stream/promises';
56
57
  import 'tar';
@@ -61,8 +62,8 @@ import './config2.mjs';
61
62
  import './auto-updater.mjs';
62
63
  import './version-checker.mjs';
63
64
  import '../shared/ccjk.DDq2hqA5.mjs';
64
- import '../shared/ccjk.CwsecBYP.mjs';
65
65
  import './installer.mjs';
66
+ import '../shared/ccjk.BJENIVf7.mjs';
66
67
  import '../shared/ccjk.Bq8TqZG_.mjs';
67
68
  import './commands.mjs';
68
69
  import './check-updates.mjs';
@@ -4,7 +4,7 @@ import { ensureI18nInitialized, i18n } from './index2.mjs';
4
4
  import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
5
5
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
6
6
  import { p as promptBoolean } from '../shared/ccjk.DZ2LLOa-.mjs';
7
- import { v as validateApiKey } from '../shared/ccjk.CwsecBYP.mjs';
7
+ import { v as validateApiKey } from '../shared/ccjk.BP5hsTZQ.mjs';
8
8
  import '../shared/ccjk.BAGoDD49.mjs';
9
9
  import 'node:readline';
10
10
  import 'stream';
@@ -107,6 +107,10 @@ async function promptContinueAdding() {
107
107
  defaultValue: false
108
108
  });
109
109
  }
110
+ async function addProfileDirect() {
111
+ ensureI18nInitialized();
112
+ return handleAddProfile();
113
+ }
110
114
  async function handleAddProfile() {
111
115
  console.log(a.green(`
112
116
  ${i18n.t("multi-config:addingNewProfile")}`));
@@ -613,4 +617,4 @@ async function handleDeleteProfile(profiles) {
613
617
  }
614
618
  }
615
619
 
616
- export { configureIncrementalManagement, getAuthTypeLabel };
620
+ export { addProfileDirect, configureIncrementalManagement, getAuthTypeLabel };
@@ -438,4 +438,4 @@ const config = {
438
438
  updateDefaultModel: updateDefaultModel
439
439
  };
440
440
 
441
- export { getExistingCustomModelConfig as a, backupExistingConfig as b, updateDefaultModel as c, copyConfigFiles as d, configureApi as e, getExistingApiConfig as f, getExistingModelConfig as g, applyAiLanguageDirective as h, ensureClaudeDir as i, config as j, overwriteModelSettings as o, promptApiConfigurationAction as p, switchToOfficialLogin as s, updateCustomModel as u };
441
+ export { getExistingCustomModelConfig as a, backupExistingConfig as b, updateDefaultModel as c, getExistingApiConfig as d, configureApi as e, copyConfigFiles as f, getExistingModelConfig as g, applyAiLanguageDirective as h, ensureClaudeDir as i, config as j, overwriteModelSettings as o, promptApiConfigurationAction as p, switchToOfficialLogin as s, updateCustomModel as u };
@@ -6,7 +6,8 @@ import { i as inquirer } from './index6.mjs';
6
6
  import { SUPPORTED_LANGS, LANG_LABELS } from './constants.mjs';
7
7
  import { ensureI18nInitialized, i18n, changeLanguage } from './index2.mjs';
8
8
  import { updateZcfConfig, readZcfConfig } from './ccjk-config.mjs';
9
- import { g as getExistingModelConfig, a as getExistingCustomModelConfig, u as updateCustomModel, c as updateDefaultModel } from './config.mjs';
9
+ import { g as getExistingModelConfig, a as getExistingCustomModelConfig, u as updateCustomModel, c as updateDefaultModel, d as getExistingApiConfig, p as promptApiConfigurationAction, e as configureApi } from './config.mjs';
10
+ import { m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.BP5hsTZQ.mjs';
10
11
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
11
12
  import { p as promptBoolean } from '../shared/ccjk.DZ2LLOa-.mjs';
12
13
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
@@ -100,6 +101,96 @@ async function handleCancellation() {
100
101
  ensureI18nInitialized();
101
102
  console.log(a.yellow(i18n.t("common:cancelled")));
102
103
  }
104
+ async function handleCustomApiMode() {
105
+ ensureI18nInitialized();
106
+ const zcfConfig = readZcfConfig();
107
+ const codeToolType = zcfConfig?.codeToolType || "claude-code";
108
+ if (codeToolType === "claude-code") {
109
+ const { configureIncrementalManagement } = await import('./claude-code-incremental-manager.mjs');
110
+ await configureIncrementalManagement();
111
+ return;
112
+ }
113
+ const existingConfig = getExistingApiConfig();
114
+ if (existingConfig) {
115
+ const configAction = await promptApiConfigurationAction();
116
+ if (configAction === "keep-existing") {
117
+ console.log(a.green(`\u2714 ${i18n.t("api:keepExistingConfig")}`));
118
+ return;
119
+ } else if (configAction === "modify-partial") {
120
+ await modifyApiConfigPartially(existingConfig);
121
+ return;
122
+ }
123
+ }
124
+ const { apiChoice } = await inquirer.prompt({
125
+ type: "list",
126
+ name: "apiChoice",
127
+ message: i18n.t("api:configureApi"),
128
+ choices: addNumbersToChoices([
129
+ {
130
+ name: `${i18n.t("api:useAuthToken")} - ${a.gray(i18n.t("api:authTokenDesc"))}`,
131
+ value: "auth_token",
132
+ short: i18n.t("api:useAuthToken")
133
+ },
134
+ {
135
+ name: `${i18n.t("api:useApiKey")} - ${a.gray(i18n.t("api:apiKeyDesc"))}`,
136
+ value: "api_key",
137
+ short: i18n.t("api:useApiKey")
138
+ },
139
+ { name: i18n.t("api:skipApi"), value: "skip" }
140
+ ])
141
+ });
142
+ if (!apiChoice || apiChoice === "skip") {
143
+ await handleCancellation();
144
+ return;
145
+ }
146
+ const { url } = await inquirer.prompt({
147
+ type: "input",
148
+ name: "url",
149
+ message: `${i18n.t("api:enterApiUrl")}${i18n.t("common:emptyToSkip")}`,
150
+ validate: (value) => {
151
+ if (!value) {
152
+ return true;
153
+ }
154
+ try {
155
+ void new URL(value);
156
+ return true;
157
+ } catch {
158
+ return i18n.t("api:invalidUrl");
159
+ }
160
+ }
161
+ });
162
+ if (url === void 0 || !url) {
163
+ await handleCancellation();
164
+ return;
165
+ }
166
+ const keyMessage = apiChoice === "auth_token" ? `${i18n.t("api:enterAuthToken")}${i18n.t("common:emptyToSkip")}` : `${i18n.t("api:enterApiKey")}${i18n.t("common:emptyToSkip")}`;
167
+ const { key } = await inquirer.prompt({
168
+ type: "input",
169
+ name: "key",
170
+ message: keyMessage,
171
+ validate: (value) => {
172
+ if (!value) {
173
+ return true;
174
+ }
175
+ const validation = validateApiKey(value);
176
+ if (!validation.isValid) {
177
+ return validation.error || i18n.t("api:invalidKeyFormat");
178
+ }
179
+ return true;
180
+ }
181
+ });
182
+ if (key === void 0 || !key) {
183
+ await handleCancellation();
184
+ return;
185
+ }
186
+ const apiConfig = { url, key, authType: apiChoice };
187
+ const configuredApi = configureApi(apiConfig);
188
+ if (configuredApi) {
189
+ console.log(a.green(`\u2714 ${i18n.t("api:apiConfigSuccess")}`));
190
+ console.log(a.gray(` URL: ${configuredApi.url}`));
191
+ console.log(a.gray(` Key: ${formatApiKeyDisplay(configuredApi.key)}`));
192
+ }
193
+ }
103
194
  async function configureDefaultModelFeature() {
104
195
  ensureI18nInitialized();
105
196
  const existingModel = getExistingModelConfig();
@@ -485,4 +576,4 @@ ${ansis2.bold(i18n.t("memory:memoryContent"))}`);
485
576
  }
486
577
  }
487
578
 
488
- export { CODEX_MODEL_CHOICES, DEFAULT_MODEL_CHOICES, changeScriptLanguageFeature, configureCodexAiMemoryFeature, configureCodexDefaultModelFeature, configureDefaultModelFeature, configureMemoryFeature, formatCodexModelLabel, promptCustomModels };
579
+ export { CODEX_MODEL_CHOICES, DEFAULT_MODEL_CHOICES, changeScriptLanguageFeature, configureCodexAiMemoryFeature, configureCodexDefaultModelFeature, configureDefaultModelFeature, configureMemoryFeature, formatCodexModelLabel, handleCustomApiMode, promptCustomModels };
@@ -3158,24 +3158,35 @@ async function runOnboardingWizard(options = {}) {
3158
3158
  const NON_CODEX_TOOLS = ["claude-code", "aider", "continue", "cline", "cursor"];
3159
3159
  const quickActionsItems = [
3160
3160
  {
3161
- id: "api-config",
3162
- label: "menu:configCenter.api",
3163
- description: "menu:configCenter.apiDesc",
3161
+ id: "init",
3162
+ label: "menu:oneClick.setup",
3163
+ description: "menu:oneClick.setupDesc",
3164
3164
  category: "quick",
3165
3165
  level: "basic",
3166
3166
  action: "command",
3167
- icon: "\u{1F511}",
3167
+ icon: "\u26A1",
3168
3168
  shortcut: "1"
3169
3169
  },
3170
3170
  {
3171
- id: "init",
3172
- label: "menu:oneClick.setup",
3173
- description: "menu:oneClick.setupDesc",
3171
+ id: "diagnostics",
3172
+ label: "menu:oneClick.fix",
3173
+ description: "menu:oneClick.fixDesc",
3174
3174
  category: "quick",
3175
3175
  level: "basic",
3176
3176
  action: "command",
3177
- icon: "\u26A1",
3178
- shortcut: "2"
3177
+ icon: "\u{1F527}",
3178
+ shortcut: "2",
3179
+ supportedTools: NON_CODEX_TOOLS
3180
+ },
3181
+ {
3182
+ id: "api-config",
3183
+ label: "menu:configCenter.api",
3184
+ description: "menu:configCenter.apiDesc",
3185
+ category: "quick",
3186
+ level: "basic",
3187
+ action: "command",
3188
+ icon: "\u{1F511}",
3189
+ shortcut: "3"
3179
3190
  },
3180
3191
  {
3181
3192
  id: "workflow-import",
@@ -3185,7 +3196,7 @@ const quickActionsItems = [
3185
3196
  level: "basic",
3186
3197
  action: "command",
3187
3198
  icon: "\u{1F4E6}",
3188
- shortcut: "3",
3199
+ shortcut: "4",
3189
3200
  supportedTools: ["codex"]
3190
3201
  },
3191
3202
  {
@@ -3196,20 +3207,9 @@ const quickActionsItems = [
3196
3207
  level: "basic",
3197
3208
  action: "command",
3198
3209
  icon: "\u{1F9E9}",
3199
- shortcut: "4",
3210
+ shortcut: "5",
3200
3211
  supportedTools: ["codex"]
3201
3212
  },
3202
- {
3203
- id: "diagnostics",
3204
- label: "menu:oneClick.fix",
3205
- description: "menu:oneClick.fixDesc",
3206
- category: "quick",
3207
- level: "basic",
3208
- action: "command",
3209
- icon: "\u{1F527}",
3210
- shortcut: "3",
3211
- supportedTools: NON_CODEX_TOOLS
3212
- },
3213
3213
  {
3214
3214
  id: "update",
3215
3215
  label: "menu:oneClick.update",
@@ -4107,7 +4107,8 @@ function attachHandlers(items, codeTool) {
4107
4107
  await configureCodexApi();
4108
4108
  return;
4109
4109
  }
4110
- await (await import('./api.mjs')).apiCommand("wizard", [], {});
4110
+ const { showApiConfigMenu } = await import('./api-config-selector.mjs');
4111
+ await showApiConfigMenu(void 0, { context: "menu" });
4111
4112
  }
4112
4113
  };
4113
4114
  case "mcp-config":
@@ -1,4 +1,4 @@
1
- export { c as configureOfficialMode, a as configureSimpleMode, b as configureWithPreset, e as detectCurrentMode, d as displayCurrentStatus, g as getCurrentConfig, q as quickSetup, r as runConfigWizard, t as testApiConnection, v as validateApiKey } from '../shared/ccjk.elpZZFjp.mjs';
1
+ export { c as configureOfficialMode, a as configureSimpleMode, b as configureWithPreset, e as detectCurrentMode, d as displayCurrentStatus, g as getCurrentConfig, q as quickSetup, r as runConfigWizard, t as testApiConnection, v as validateApiKey } from '../shared/ccjk.B2f-cwUP.mjs';
2
2
  export { P as PROVIDER_PRESETS, g as getAllPresets, a as getChinesePresets, b as getPresetById, c as getRecommendedPresets } from '../shared/ccjk.DopKzo3z.mjs';
3
3
  import './index5.mjs';
4
4
  import '../shared/ccjk.BAGoDD49.mjs';
@@ -16,9 +16,9 @@ import { a as addCompletedOnboarding, s as setPrimaryApiKey, c as backupMcpConfi
16
16
  import { r as resolveCodeType } from '../shared/ccjk.CiKtBUW_.mjs';
17
17
  import { exists } from './fs-operations.mjs';
18
18
  import { readJsonConfig, writeJsonConfig } from './json-config.mjs';
19
- import { p as promptApiConfigurationAction, i as ensureClaudeDir, f as getExistingApiConfig, s as switchToOfficialLogin, b as backupExistingConfig, d as copyConfigFiles, h as applyAiLanguageDirective, e as configureApi } from './config.mjs';
19
+ import { p as promptApiConfigurationAction, i as ensureClaudeDir, d as getExistingApiConfig, s as switchToOfficialLogin, b as backupExistingConfig, f as copyConfigFiles, h as applyAiLanguageDirective, e as configureApi } from './config.mjs';
20
20
  import { n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration } from '../shared/ccjk.DDq2hqA5.mjs';
21
- import { W as WORKFLOW_CONFIG_BASE, m as modifyApiConfigPartially, c as configureApiCompletely, s as selectAndInstallWorkflows, a as configureOutputStyle, f as formatApiKeyDisplay } from '../shared/ccjk.CwsecBYP.mjs';
21
+ import { m as modifyApiConfigPartially, c as configureApiCompletely, a as configureOutputStyle, f as formatApiKeyDisplay } from '../shared/ccjk.BP5hsTZQ.mjs';
22
22
  import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
23
23
  import { getInstallationStatus, installClaudeCode } from './installer.mjs';
24
24
  import { p as parseOrchestrationLevel, w as writeOrchestrationPolicy } from './smart-defaults.mjs';
@@ -27,6 +27,7 @@ import { resolveAiOutputLanguage } from './prompts.mjs';
27
27
  import { g as getRuntimeVersion } from '../shared/ccjk.gDEDGD_t.mjs';
28
28
  import { p as promptBoolean } from '../shared/ccjk.DZ2LLOa-.mjs';
29
29
  import { checkClaudeCodeVersionAndPrompt } from './version-checker.mjs';
30
+ import { W as WORKFLOW_CONFIG_BASE, s as selectAndInstallWorkflows } from '../shared/ccjk.BJENIVf7.mjs';
30
31
  import { c as checkSuperpowersInstalled, i as installSuperpowers } from '../shared/ccjk.Bq8TqZG_.mjs';
31
32
 
32
33
  const execAsync$1 = promisify(exec);
@@ -1,3 +1,3 @@
1
- const version = "13.6.1";
1
+ const version = "13.6.3";
2
2
 
3
3
  export { version };
@@ -53,9 +53,10 @@ import './auto-updater.mjs';
53
53
  import './version-checker.mjs';
54
54
  import '../shared/ccjk.CiKtBUW_.mjs';
55
55
  import '../shared/ccjk.DDq2hqA5.mjs';
56
- import '../shared/ccjk.CwsecBYP.mjs';
56
+ import '../shared/ccjk.BP5hsTZQ.mjs';
57
57
  import '../shared/ccjk.DGllfVCZ.mjs';
58
58
  import './installer.mjs';
59
+ import '../shared/ccjk.BJENIVf7.mjs';
59
60
  import '../shared/ccjk.Bq8TqZG_.mjs';
60
61
 
61
62
  const ccjkVersion = getRuntimeVersion();
@@ -7,14 +7,15 @@ import { i18n } from './index2.mjs';
7
7
  import { displayBanner } from './banner.mjs';
8
8
  import { readZcfConfig, updateZcfConfig } from './ccjk-config.mjs';
9
9
  import { r as readMcpConfig } from './claude-config.mjs';
10
- import { d as copyConfigFiles } from './config.mjs';
10
+ import { f as copyConfigFiles } from './config.mjs';
11
11
  import { n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration } from '../shared/ccjk.DDq2hqA5.mjs';
12
- import { u as updatePromptOnly, s as selectAndInstallWorkflows } from '../shared/ccjk.CwsecBYP.mjs';
12
+ import { u as updatePromptOnly } from '../shared/ccjk.BP5hsTZQ.mjs';
13
13
  import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
14
14
  import { a as installMcpServices } from '../shared/ccjk.C4m4ypdk.mjs';
15
15
  import { resolveAiOutputLanguage } from './prompts.mjs';
16
16
  import { g as getRuntimeVersion } from '../shared/ccjk.gDEDGD_t.mjs';
17
17
  import { checkClaudeCodeVersionAndPrompt } from './version-checker.mjs';
18
+ import { s as selectAndInstallWorkflows } from '../shared/ccjk.BJENIVf7.mjs';
18
19
  import '../shared/ccjk.BAGoDD49.mjs';
19
20
  import 'node:readline';
20
21
  import 'stream';
@@ -230,20 +230,20 @@ async function runConfigWizard(lang) {
230
230
  console.log("");
231
231
  const modeChoices = [
232
232
  {
233
- name: lang === "zh-CN" ? "1. \u5FEB\u901F\u914D\u7F6E (\u63A8\u8350) - \u9009\u62E9\u9884\u8BBE\u63D0\u4F9B\u5546" : "1. Quick Setup (Recommended) - Choose preset provider",
234
- value: "quick"
233
+ name: lang === "zh-CN" ? "1. \u81EA\u5B9A\u4E49\u914D\u7F6E - \u624B\u52A8\u8F93\u5165 API \u5730\u5740\u548C\u5BC6\u94A5" : "1. Custom Configuration - Manual API URL and key",
234
+ value: "custom"
235
235
  },
236
236
  {
237
237
  name: lang === "zh-CN" ? "2. \u5B98\u65B9 Anthropic API - \u76F4\u63A5\u8FDE\u63A5 Anthropic" : "2. Official Anthropic API - Direct connection",
238
238
  value: "official"
239
239
  },
240
240
  {
241
- name: lang === "zh-CN" ? "3. \u81EA\u5B9A\u4E49\u914D\u7F6E - \u624B\u52A8\u8F93\u5165 API \u5730\u5740\u548C\u5BC6\u94A5" : "3. Custom Configuration - Manual API URL and key",
242
- value: "custom"
241
+ name: lang === "zh-CN" ? "3. CCR \u9AD8\u7EA7\u8DEF\u7531 - \u5B8C\u6574 Claude Code Router \u914D\u7F6E" : "3. CCR Advanced Router - Full Claude Code Router setup",
242
+ value: "ccr"
243
243
  },
244
244
  {
245
- name: lang === "zh-CN" ? "4. CCR \u9AD8\u7EA7\u8DEF\u7531 - \u5B8C\u6574 Claude Code Router \u914D\u7F6E" : "4. CCR Advanced Router - Full Claude Code Router setup",
246
- value: "ccr"
245
+ name: lang === "zh-CN" ? "4. \u5FEB\u901F\u914D\u7F6E (\u63A8\u8350) - \u9009\u62E9\u9884\u8BBE\u63D0\u4F9B\u5546" : "4. Quick Setup (Recommended) - Choose preset provider",
246
+ value: "quick"
247
247
  }
248
248
  ];
249
249
  const { mode } = await inquirer.prompt({