ccjk 9.6.1 → 9.7.0

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 (50) hide show
  1. package/dist/chunks/boost.mjs +3 -2
  2. package/dist/chunks/ccjk-mcp.mjs +1 -1
  3. package/dist/chunks/ccr.mjs +23 -28
  4. package/dist/chunks/check-updates.mjs +1 -2
  5. package/dist/chunks/claude-code-config-manager.mjs +1 -1
  6. package/dist/chunks/claude-code-incremental-manager.mjs +1 -1
  7. package/dist/chunks/claude-config.mjs +1 -1
  8. package/dist/chunks/codex-config-switch.mjs +3 -4
  9. package/dist/chunks/codex-provider-manager.mjs +1 -2
  10. package/dist/chunks/codex.mjs +204 -3
  11. package/dist/chunks/config-switch.mjs +2 -3
  12. package/dist/chunks/config.mjs +1 -1
  13. package/dist/chunks/doctor.mjs +1 -1
  14. package/dist/chunks/features.mjs +22 -15
  15. package/dist/chunks/index3.mjs +32 -32
  16. package/dist/chunks/init.mjs +129 -87
  17. package/dist/chunks/installer2.mjs +1 -1
  18. package/dist/chunks/interview.mjs +1 -1
  19. package/dist/chunks/mcp.mjs +1058 -17
  20. package/dist/chunks/menu.mjs +137 -53
  21. package/dist/chunks/package.mjs +2 -210
  22. package/dist/chunks/platform.mjs +1 -1
  23. package/dist/chunks/quick-setup.mjs +12 -16
  24. package/dist/chunks/status.mjs +13 -8
  25. package/dist/chunks/thinking.mjs +1 -1
  26. package/dist/chunks/uninstall.mjs +3 -3
  27. package/dist/chunks/update.mjs +4 -7
  28. package/dist/chunks/version-checker.mjs +1 -1
  29. package/dist/cli.mjs +2 -78
  30. package/dist/index.d.mts +17 -1482
  31. package/dist/index.d.ts +17 -1482
  32. package/dist/index.mjs +12 -4191
  33. package/dist/shared/{ccjk.CItD1fpl.mjs → ccjk.DvIrK0wz.mjs} +1 -1
  34. package/dist/shared/ccjk.LsPZ2PYo.mjs +1048 -0
  35. package/package.json +1 -1
  36. package/dist/chunks/api-adapter.mjs +0 -180
  37. package/dist/chunks/cli.mjs +0 -2227
  38. package/dist/chunks/context-menu.mjs +0 -913
  39. package/dist/chunks/hooks-sync.mjs +0 -1627
  40. package/dist/chunks/mcp-market.mjs +0 -1077
  41. package/dist/chunks/mcp-server.mjs +0 -776
  42. package/dist/chunks/project-detector.mjs +0 -131
  43. package/dist/chunks/provider-registry.mjs +0 -92
  44. package/dist/chunks/setup-wizard.mjs +0 -362
  45. package/dist/chunks/tools.mjs +0 -143
  46. package/dist/chunks/workflows2.mjs +0 -232
  47. package/dist/shared/ccjk.C0pb50xH.mjs +0 -347
  48. package/dist/shared/ccjk.ChMkBmdL.mjs +0 -490
  49. package/dist/shared/ccjk.CtSfXUSh.mjs +0 -209
  50. package/dist/shared/ccjk.xfAjmbJp.mjs +0 -75
@@ -35,7 +35,7 @@ async function runCcjkCommand(args) {
35
35
  const sub = args[0];
36
36
  try {
37
37
  if (sub === "init") {
38
- const { init } = await import('./init.mjs');
38
+ const { init } = await import('./init.mjs').then(function (n) { return n.c; });
39
39
  await init({ skipBanner: true, skipPrompt: true });
40
40
  return { success: true, message: "Initialization complete" };
41
41
  }
@@ -99,7 +99,8 @@ async function boost(options = {}) {
99
99
  for (const a of actions) {
100
100
  const priority = a.rec.priority === "high" ? ansis.red("[HIGH]") : ansis.yellow("[MED]");
101
101
  console.log(` ${priority} ${a.label}`);
102
- if (a.rec.command) console.log(` ${ansis.gray(a.rec.command)}`);
102
+ if (a.rec.command)
103
+ console.log(` ${ansis.gray(a.rec.command)}`);
103
104
  }
104
105
  if (options.dryRun) {
105
106
  console.log(ansis.gray("\n--dry-run: No changes applied.\n"));
@@ -7,7 +7,7 @@ import { a as analyzeProject, g as getTemplatesClient } from '../shared/ccjk.BNw
7
7
  import { CLAUDE_DIR } from './constants.mjs';
8
8
  import { ensureI18nInitialized, i18n } from './index.mjs';
9
9
  import { b as backupMcpConfig, r as readMcpConfig, m as mergeMcpServers, w as writeMcpConfig } from './claude-config.mjs';
10
- import { k as commandExists } from './platform.mjs';
10
+ import { c as commandExists } from './platform.mjs';
11
11
  import 'node:fs';
12
12
  import 'pathe';
13
13
  import 'tinyglobby';
@@ -1,7 +1,6 @@
1
1
  import { d as displayBannerWithInfo } from '../shared/ccjk.Br91zBIG.mjs';
2
- import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.CItD1fpl.mjs';
3
- import { s as showCcrMenu } from './tools.mjs';
4
- import { showMainMenu } from './menu.mjs';
2
+ import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.DvIrK0wz.mjs';
3
+ import { s as showCcrMenu, a as showMainMenu } from './menu.mjs';
5
4
  import 'ansis';
6
5
  import './package.mjs';
7
6
  import './index.mjs';
@@ -12,37 +11,40 @@ import 'i18next';
12
11
  import 'i18next-fs-backend';
13
12
  import 'pathe';
14
13
  import 'inquirer';
15
- import 'node:os';
16
- import './commands2.mjs';
17
- import 'node:child_process';
18
- import 'node:util';
19
- import './config3.mjs';
20
- import 'dayjs';
21
14
  import './constants.mjs';
22
- import './claude-config.mjs';
23
- import './json-config.mjs';
15
+ import 'node:os';
16
+ import './ccjk-config.mjs';
17
+ import 'smol-toml';
24
18
  import './fs-operations.mjs';
25
19
  import 'node:crypto';
26
20
  import 'node:fs/promises';
21
+ import './json-config.mjs';
22
+ import 'dayjs';
23
+ import '../shared/ccjk.q1koQxEE.mjs';
24
+ import 'node:child_process';
27
25
  import './platform.mjs';
28
26
  import 'tinyexec';
27
+ import './features.mjs';
28
+ import './codex.mjs';
29
+ import 'ora';
30
+ import 'semver';
29
31
  import './config.mjs';
32
+ import './claude-config.mjs';
33
+ import '../shared/ccjk.BFQ7yr5S.mjs';
34
+ import './prompts.mjs';
30
35
  import '../shared/ccjk.DHbrGcgg.mjs';
31
36
  import 'inquirer-toggle';
32
- import '../shared/ccjk.xfAjmbJp.mjs';
37
+ import './config3.mjs';
38
+ import 'node:util';
39
+ import './init.mjs';
40
+ import '../shared/ccjk.LsPZ2PYo.mjs';
33
41
  import './auto-updater.mjs';
34
- import 'ora';
35
42
  import './version-checker.mjs';
36
43
  import 'node:path';
37
- import 'semver';
38
- import './ccjk-config.mjs';
39
- import 'smol-toml';
40
- import '../shared/ccjk.q1koQxEE.mjs';
41
- import './features.mjs';
42
- import '../shared/ccjk.CtSfXUSh.mjs';
43
- import '../shared/ccjk.ChMkBmdL.mjs';
44
- import '../shared/ccjk.BFQ7yr5S.mjs';
44
+ import './installer2.mjs';
45
+ import '../shared/ccjk.DE91nClQ.mjs';
45
46
  import './simple-config.mjs';
47
+ import './commands2.mjs';
46
48
  import './ccjk-agents.mjs';
47
49
  import 'consola';
48
50
  import '../shared/ccjk.BNwRnWYx.mjs';
@@ -53,17 +55,10 @@ import '../shared/ccjk.AqnXPAzw.mjs';
53
55
  import './ccjk-skills.mjs';
54
56
  import '../shared/ccjk.Bdhyg3X-.mjs';
55
57
  import './check-updates.mjs';
56
- import './codex.mjs';
57
- import './prompts.mjs';
58
58
  import './doctor.mjs';
59
59
  import './api-providers.mjs';
60
60
  import '../shared/ccjk.h7_W-wTs.mjs';
61
61
  import '../shared/ccjk.J8YiPsOw.mjs';
62
- import './init.mjs';
63
- import './workflows2.mjs';
64
- import '../shared/ccjk.C0pb50xH.mjs';
65
- import './installer2.mjs';
66
- import '../shared/ccjk.DE91nClQ.mjs';
67
62
  import './uninstall.mjs';
68
63
  import '../shared/ccjk.DntgA8fQ.mjs';
69
64
  import 'trash';
@@ -3,7 +3,7 @@ import ansis from 'ansis';
3
3
  import { ensureI18nInitialized, i18n } from './index.mjs';
4
4
  import { r as resolveCodeType } from '../shared/ccjk.q1koQxEE.mjs';
5
5
  import { checkAndUpdateTools } from './auto-updater.mjs';
6
- import { e as runCodexUpdate } from './codex.mjs';
6
+ import { d as runCodexUpdate } from './codex.mjs';
7
7
  import 'node:fs';
8
8
  import 'node:url';
9
9
  import 'i18next';
@@ -34,7 +34,6 @@ import './claude-config.mjs';
34
34
  import '../shared/ccjk.BFQ7yr5S.mjs';
35
35
  import './prompts.mjs';
36
36
  import './package.mjs';
37
- import '../shared/ccjk.CtSfXUSh.mjs';
38
37
 
39
38
  class ToolUpdateScheduler {
40
39
  /**
@@ -2,7 +2,7 @@ import dayjs from 'dayjs';
2
2
  import { join } from 'pathe';
3
3
  import { ZCF_CONFIG_FILE, ZCF_CONFIG_DIR, SETTINGS_FILE } from './constants.mjs';
4
4
  import { readDefaultTomlConfig, createDefaultTomlConfig, writeTomlConfig } from './ccjk-config.mjs';
5
- import { a as clearModelEnv } from './config.mjs';
5
+ import { j as clearModelEnv } from './config.mjs';
6
6
  import { ensureDir, exists, copyFile } from './fs-operations.mjs';
7
7
  import { readJsonConfig } from './json-config.mjs';
8
8
  import 'node:os';
@@ -4,7 +4,7 @@ import { ensureI18nInitialized, i18n } from './index.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.DHbrGcgg.mjs';
7
- import { v as validateApiKey } from '../shared/ccjk.ChMkBmdL.mjs';
7
+ import { v as validateApiKey } from '../shared/ccjk.LsPZ2PYo.mjs';
8
8
  import 'node:fs';
9
9
  import 'node:process';
10
10
  import 'node:url';
@@ -3,7 +3,7 @@ import { join } from 'pathe';
3
3
  import { CLAUDE_VSC_CONFIG_FILE, CLAUDE_DIR, ClAUDE_CONFIG_FILE } from './constants.mjs';
4
4
  import { ensureI18nInitialized, i18n } from './index.mjs';
5
5
  import { readJsonConfig, writeJsonConfig, backupJsonConfig } from './json-config.mjs';
6
- import { i as isWindows, a as getMcpCommand } from './platform.mjs';
6
+ import { i as isWindows, d as getMcpCommand } from './platform.mjs';
7
7
 
8
8
  function mergeArraysUnique(arr1, arr2) {
9
9
  const combined = [...arr1 || [], ...arr2 || []];
@@ -5,7 +5,7 @@ import { ensureI18nInitialized, i18n } from './index.mjs';
5
5
  import { readJsonConfig } from './json-config.mjs';
6
6
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
7
7
  import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
8
- import { f as detectConfigManagementMode } from './codex.mjs';
8
+ import { k as detectConfigManagementMode } from './codex.mjs';
9
9
  import { deleteProviders, addProviderToExisting, editExistingProvider } from './codex-provider-manager.mjs';
10
10
  import 'node:os';
11
11
  import 'pathe';
@@ -29,7 +29,6 @@ import './claude-config.mjs';
29
29
  import './platform.mjs';
30
30
  import './prompts.mjs';
31
31
  import './package.mjs';
32
- import '../shared/ccjk.CtSfXUSh.mjs';
33
32
  import 'node:child_process';
34
33
 
35
34
  async function configureIncrementalManagement() {
@@ -179,7 +178,7 @@ async function handleAddProvider() {
179
178
  defaultValue: true
180
179
  });
181
180
  if (setAsDefault) {
182
- const { switchToProvider } = await import('./codex.mjs').then(function (n) { return n.i; });
181
+ const { switchToProvider } = await import('./codex.mjs').then(function (n) { return n.m; });
183
182
  const switched = await switchToProvider(provider.id);
184
183
  if (switched) {
185
184
  console.log(ansis.green(i18n.t("multi-config:profileSetAsDefault", { name: provider.name })));
@@ -374,7 +373,7 @@ ${i18n.t("codex:copyingProvider", { name: provider.name })}`));
374
373
  defaultValue: false
375
374
  });
376
375
  if (setAsDefault) {
377
- const { switchToProvider } = await import('./codex.mjs').then(function (n) { return n.i; });
376
+ const { switchToProvider } = await import('./codex.mjs').then(function (n) { return n.m; });
378
377
  const switched = await switchToProvider(copiedProvider.id);
379
378
  if (switched) {
380
379
  console.log(ansis.green(i18n.t("multi-config:profileSetAsDefault", { name: copiedProvider.name })));
@@ -1,5 +1,5 @@
1
1
  import { ensureI18nInitialized, i18n } from './index.mjs';
2
- import { r as readCodexConfig, g as backupCodexComplete, w as writeCodexConfig, h as writeAuthFile } from './codex.mjs';
2
+ import { r as readCodexConfig, i as backupCodexComplete, w as writeCodexConfig, j as writeAuthFile } from './codex.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:process';
5
5
  import 'node:url';
@@ -28,7 +28,6 @@ import './prompts.mjs';
28
28
  import './package.mjs';
29
29
  import '../shared/ccjk.DHbrGcgg.mjs';
30
30
  import 'inquirer-toggle';
31
- import '../shared/ccjk.CtSfXUSh.mjs';
32
31
  import 'node:child_process';
33
32
 
34
33
  async function addProviderToExisting(provider, apiKey, allowOverwrite = false) {
@@ -14,11 +14,212 @@ import { updateZcfConfig, readZcfConfig, readDefaultTomlConfig, updateTomlConfig
14
14
  import { d as applyAiLanguageDirective } from './config.mjs';
15
15
  import { exists, readFile, ensureDir, writeFileAtomic, writeFile, copyFile, copyDir } from './fs-operations.mjs';
16
16
  import { readJsonConfig, writeJsonConfig } from './json-config.mjs';
17
- import { i as isWindows, a as getMcpCommand, g as getSystemRoot, w as wrapCommandWithSudo, n as normalizeTomlPath } from './platform.mjs';
17
+ import { i as isWindows, d as getMcpCommand, g as getSystemRoot, w as wrapCommandWithSudo, n as normalizeTomlPath } from './platform.mjs';
18
18
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
19
19
  import { resolveAiOutputLanguage } from './prompts.mjs';
20
20
  import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
21
- import { M as MCP_SERVICE_CONFIGS, s as selectMcpServices, a as getMcpServices } from '../shared/ccjk.CtSfXUSh.mjs';
21
+ import 'node:child_process';
22
+ import { homedir } from 'node:os';
23
+
24
+ const PLAYWRIGHT_PROFILES_DIR = join(homedir(), ".ccjk", "playwright");
25
+ function createPlaywrightMcpConfig(options = {}) {
26
+ const {
27
+ profile = "default",
28
+ headless = false,
29
+ browser = "chromium",
30
+ userDataDir
31
+ } = options;
32
+ const resolvedUserDataDir = userDataDir || join(PLAYWRIGHT_PROFILES_DIR, profile);
33
+ const args = ["-y", "@playwright/mcp@latest"];
34
+ args.push("--browser", browser);
35
+ args.push("--user-data-dir", resolvedUserDataDir);
36
+ if (headless) {
37
+ args.push("--headless");
38
+ }
39
+ return {
40
+ type: "stdio",
41
+ command: "npx",
42
+ args,
43
+ env: {}
44
+ };
45
+ }
46
+ const MCP_SERVICE_CONFIGS = [
47
+ // Documentation and Search Services - Universal (no GUI required)
48
+ {
49
+ id: "context7",
50
+ requiresApiKey: false,
51
+ config: {
52
+ type: "stdio",
53
+ command: "npx",
54
+ args: ["-y", "@upstash/context7-mcp@latest"],
55
+ env: {}
56
+ }
57
+ // Works on all platforms - no special requirements
58
+ },
59
+ {
60
+ id: "open-websearch",
61
+ requiresApiKey: false,
62
+ config: {
63
+ type: "stdio",
64
+ command: "npx",
65
+ args: ["-y", "open-websearch@latest"],
66
+ env: {
67
+ MODE: "stdio",
68
+ DEFAULT_SEARCH_ENGINE: "duckduckgo",
69
+ ALLOWED_SEARCH_ENGINES: "duckduckgo,bing,brave"
70
+ }
71
+ }
72
+ // Works on all platforms - no special requirements
73
+ },
74
+ {
75
+ id: "mcp-deepwiki",
76
+ requiresApiKey: false,
77
+ config: {
78
+ type: "stdio",
79
+ command: "npx",
80
+ args: ["-y", "mcp-deepwiki@latest"],
81
+ env: {}
82
+ }
83
+ // Works on all platforms - no special requirements
84
+ },
85
+ // Development Workflow Services
86
+ {
87
+ id: "spec-workflow",
88
+ requiresApiKey: false,
89
+ config: {
90
+ type: "stdio",
91
+ command: "npx",
92
+ args: ["-y", "@pimzino/spec-workflow-mcp@latest"],
93
+ env: {}
94
+ }
95
+ // Works on all platforms - no special requirements
96
+ },
97
+ {
98
+ id: "serena",
99
+ requiresApiKey: false,
100
+ config: {
101
+ type: "stdio",
102
+ command: "uvx",
103
+ args: ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server", "--context", "ide-assistant", "--enable-web-dashboard", "false"],
104
+ env: {}
105
+ },
106
+ platformRequirements: {
107
+ requiredCommands: ["uvx"]
108
+ // Requires uv/uvx to be installed
109
+ }
110
+ },
111
+ // Browser and Automation Services - Require GUI environment
112
+ {
113
+ id: "Playwright",
114
+ requiresApiKey: false,
115
+ config: createPlaywrightMcpConfig(),
116
+ // Uses default profile with chromium browser
117
+ platformRequirements: {
118
+ platforms: ["macos", "windows"],
119
+ // GUI required - exclude headless Linux/WSL/Termux
120
+ requiresGui: true
121
+ }
122
+ },
123
+ // Anthropic Official MCP Services - Universal
124
+ // Note: Removed low-value services: filesystem (buggy), puppeteer (duplicate of Playwright),
125
+ // memory (Claude has built-in memory), fetch (Claude has WebFetch), sequential-thinking (limited value)
126
+ {
127
+ id: "sqlite",
128
+ requiresApiKey: false,
129
+ config: {
130
+ type: "stdio",
131
+ command: "npx",
132
+ args: ["-y", "@anthropic-ai/mcp-server-sqlite@latest"],
133
+ env: {}
134
+ }
135
+ // Works on all platforms - no special requirements
136
+ }
137
+ ];
138
+ async function getMcpServices() {
139
+ ensureI18nInitialized();
140
+ const mcpServiceList = [
141
+ // Documentation and Search Services
142
+ {
143
+ id: "context7",
144
+ name: i18n.t("mcp:services.context7.name"),
145
+ description: i18n.t("mcp:services.context7.description")
146
+ },
147
+ {
148
+ id: "open-websearch",
149
+ name: i18n.t("mcp:services.open-websearch.name"),
150
+ description: i18n.t("mcp:services.open-websearch.description")
151
+ },
152
+ {
153
+ id: "mcp-deepwiki",
154
+ name: i18n.t("mcp:services.mcp-deepwiki.name"),
155
+ description: i18n.t("mcp:services.mcp-deepwiki.description")
156
+ },
157
+ // Development Workflow Services
158
+ {
159
+ id: "spec-workflow",
160
+ name: i18n.t("mcp:services.spec-workflow.name"),
161
+ description: i18n.t("mcp:services.spec-workflow.description")
162
+ },
163
+ {
164
+ id: "serena",
165
+ name: i18n.t("mcp:services.serena.name"),
166
+ description: i18n.t("mcp:services.serena.description")
167
+ },
168
+ // Browser and Automation Services
169
+ {
170
+ id: "Playwright",
171
+ name: i18n.t("mcp:services.playwright.name"),
172
+ description: i18n.t("mcp:services.playwright.description")
173
+ },
174
+ // Anthropic Official MCP Services
175
+ // Note: Removed low-value services: filesystem (buggy), puppeteer (duplicate),
176
+ // memory (Claude built-in), fetch (Claude WebFetch), sequential-thinking (limited value)
177
+ {
178
+ id: "sqlite",
179
+ name: i18n.t("mcp:services.sqlite.name"),
180
+ description: i18n.t("mcp:services.sqlite.description")
181
+ }
182
+ ];
183
+ return MCP_SERVICE_CONFIGS.map((config) => {
184
+ const serviceInfo = mcpServiceList.find((s) => s.id === config.id);
185
+ const service = {
186
+ id: config.id,
187
+ name: serviceInfo?.name || config.id,
188
+ description: serviceInfo?.description || "",
189
+ requiresApiKey: config.requiresApiKey,
190
+ config: config.config
191
+ };
192
+ if (config.apiKeyEnvVar) {
193
+ service.apiKeyEnvVar = config.apiKeyEnvVar;
194
+ }
195
+ return service;
196
+ });
197
+ }
198
+ async function getMcpService(id) {
199
+ const services = await getMcpServices();
200
+ return services.find((service) => service.id === id);
201
+ }
202
+
203
+ async function selectMcpServices() {
204
+ ensureI18nInitialized();
205
+ const mcpServices = await getMcpServices();
206
+ const choices = mcpServices.map((service) => ({
207
+ name: `${service.name} - ${ansis.gray(service.description)}`,
208
+ value: service.id,
209
+ selected: false
210
+ }));
211
+ const { services } = await inquirer.prompt({
212
+ type: "checkbox",
213
+ name: "services",
214
+ message: `${i18n.t("mcp:selectMcpServices")}${i18n.t("common:multiSelectHint")}`,
215
+ choices
216
+ });
217
+ if (services === void 0) {
218
+ console.log(ansis.yellow(i18n.t("common:cancelled")));
219
+ return void 0;
220
+ }
221
+ return services;
222
+ }
22
223
 
23
224
  function detectConfigManagementMode() {
24
225
  try {
@@ -1746,4 +1947,4 @@ const codex = {
1746
1947
  writeCodexConfig: writeCodexConfig
1747
1948
  };
1748
1949
 
1749
- export { switchToOfficialLogin as a, switchToProvider as b, applyCodexPlatformCommand as c, runCodexFullInit as d, runCodexUpdate as e, detectConfigManagementMode as f, backupCodexComplete as g, writeAuthFile as h, codex as i, listCodexProviders as l, readCodexConfig as r, switchCodexProvider as s, writeCodexConfig as w };
1950
+ export { MCP_SERVICE_CONFIGS as M, applyCodexPlatformCommand as a, runCodexFullInit as b, getMcpServices as c, runCodexUpdate as d, switchCodexProvider as e, switchToOfficialLogin as f, getMcpService as g, switchToProvider as h, backupCodexComplete as i, writeAuthFile as j, detectConfigManagementMode as k, listCodexProviders as l, codex as m, readCodexConfig as r, selectMcpServices as s, writeCodexConfig as w };
@@ -5,8 +5,8 @@ import { resolveCodeToolType, isCodeToolType, DEFAULT_CODE_TOOL_TYPE } from './c
5
5
  import { ensureI18nInitialized, i18n } from './index.mjs';
6
6
  import { readZcfConfig } from './ccjk-config.mjs';
7
7
  import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
8
- import { s as switchCodexProvider, l as listCodexProviders, r as readCodexConfig, a as switchToOfficialLogin, b as switchToProvider } from './codex.mjs';
9
- import { h as handleGeneralError } from '../shared/ccjk.CItD1fpl.mjs';
8
+ import { e as switchCodexProvider, l as listCodexProviders, r as readCodexConfig, f as switchToOfficialLogin, h as switchToProvider } from './codex.mjs';
9
+ import { a as handleGeneralError } from '../shared/ccjk.DvIrK0wz.mjs';
10
10
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
11
11
  import 'node:os';
12
12
  import 'pathe';
@@ -30,7 +30,6 @@ import './prompts.mjs';
30
30
  import './package.mjs';
31
31
  import '../shared/ccjk.DHbrGcgg.mjs';
32
32
  import 'inquirer-toggle';
33
- import '../shared/ccjk.CtSfXUSh.mjs';
34
33
  import 'node:child_process';
35
34
 
36
35
  async function configSwitchCommand(options) {
@@ -452,4 +452,4 @@ const config = {
452
452
  updateDefaultModel: updateDefaultModel
453
453
  };
454
454
 
455
- export { clearModelEnv as a, backupExistingConfig as b, config as c, applyAiLanguageDirective as d, ensureClaudeDir as e, copyConfigFiles as f, getExistingApiConfig as g, configureApi as h, getExistingModelConfig as i, updateDefaultModel as j, mergeAndCleanPermissions as m, promptApiConfigurationAction as p, switchToOfficialLogin as s, updateCustomModel as u };
455
+ export { copyConfigFiles as a, backupExistingConfig as b, config as c, applyAiLanguageDirective as d, ensureClaudeDir as e, configureApi as f, getExistingApiConfig as g, getExistingModelConfig as h, updateDefaultModel as i, clearModelEnv as j, mergeAndCleanPermissions as m, promptApiConfigurationAction as p, switchToOfficialLogin as s, updateCustomModel as u };
@@ -7,7 +7,7 @@ import { getApiProviderPresets } from './api-providers.mjs';
7
7
  import { SETTINGS_FILE, CLAUDE_DIR } from './constants.mjs';
8
8
  import { i18n } from './index.mjs';
9
9
  import { g as getPermissionManager } from '../shared/ccjk.h7_W-wTs.mjs';
10
- import { k as commandExists } from './platform.mjs';
10
+ import { c as commandExists } from './platform.mjs';
11
11
  import { P as ProviderHealthMonitor } from '../shared/ccjk.J8YiPsOw.mjs';
12
12
  import { platform, userInfo, homedir } from 'node:os';
13
13
  import ora from 'ora';
@@ -1,40 +1,47 @@
1
1
  import ansis from 'ansis';
2
2
  import inquirer from 'inquirer';
3
- import { s as selectMcpServices, a as getMcpServices } from '../shared/ccjk.CtSfXUSh.mjs';
3
+ import { s as selectMcpServices, c as getMcpServices } from './codex.mjs';
4
4
  import { SUPPORTED_LANGS, LANG_LABELS } from './constants.mjs';
5
5
  import { ensureI18nInitialized, i18n, changeLanguage } from './index.mjs';
6
6
  import { updateZcfConfig, readZcfConfig } from './ccjk-config.mjs';
7
7
  import { setupCcrConfiguration } from './config3.mjs';
8
- import { i as isCcrInstalled, a as installCcr } from '../shared/ccjk.xfAjmbJp.mjs';
8
+ import { a as isCcrInstalled, b as installCcr } from './init.mjs';
9
9
  import { r as readMcpConfig, f as fixWindowsMcpConfig, w as writeMcpConfig, b as backupMcpConfig, a as buildMcpServerConfig, m as mergeMcpServers } from './claude-config.mjs';
10
- import { d as applyAiLanguageDirective, i as getExistingModelConfig, u as updateCustomModel, j as updateDefaultModel, g as getExistingApiConfig, p as promptApiConfigurationAction, h as configureApi, s as switchToOfficialLogin } from './config.mjs';
11
- import { a as configureOutputStyle, m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.ChMkBmdL.mjs';
10
+ import { d as applyAiLanguageDirective, h as getExistingModelConfig, u as updateCustomModel, i as updateDefaultModel, g as getExistingApiConfig, p as promptApiConfigurationAction, f as configureApi, s as switchToOfficialLogin } from './config.mjs';
11
+ import { b as configureOutputStyle, m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.LsPZ2PYo.mjs';
12
12
  import { i as isWindows } from './platform.mjs';
13
13
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
14
14
  import { openSettingsJson, importRecommendedPermissions, importRecommendedEnv } from './simple-config.mjs';
15
15
  import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
16
- import 'node:child_process';
17
- import 'node:os';
18
16
  import 'node:process';
19
- import 'pathe';
20
- import 'node:fs';
21
17
  import 'node:url';
22
- import 'i18next';
23
- import 'i18next-fs-backend';
18
+ import 'dayjs';
19
+ import 'ora';
20
+ import 'pathe';
21
+ import 'semver';
24
22
  import 'smol-toml';
23
+ import 'tinyexec';
25
24
  import './fs-operations.mjs';
26
25
  import 'node:crypto';
26
+ import 'node:fs';
27
27
  import 'node:fs/promises';
28
28
  import './json-config.mjs';
29
- import 'dayjs';
29
+ import './prompts.mjs';
30
+ import './package.mjs';
31
+ import 'node:child_process';
32
+ import 'node:os';
33
+ import 'i18next';
34
+ import 'i18next-fs-backend';
30
35
  import 'node:util';
31
- import 'tinyexec';
32
- import 'inquirer-toggle';
36
+ import '../shared/ccjk.Br91zBIG.mjs';
33
37
  import './auto-updater.mjs';
34
- import 'ora';
35
38
  import './version-checker.mjs';
36
39
  import 'node:path';
37
- import 'semver';
40
+ import '../shared/ccjk.q1koQxEE.mjs';
41
+ import '../shared/ccjk.DvIrK0wz.mjs';
42
+ import './installer2.mjs';
43
+ import '../shared/ccjk.DE91nClQ.mjs';
44
+ import 'inquirer-toggle';
38
45
 
39
46
  async function handleCancellation() {
40
47
  ensureI18nInitialized();