ccjk 5.2.0 → 5.2.2

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 (53) hide show
  1. package/dist/chunks/api.mjs +6 -6
  2. package/dist/chunks/auto-updater.mjs +80 -133
  3. package/dist/chunks/ccm.mjs +7 -7
  4. package/dist/chunks/ccr.mjs +7 -4
  5. package/dist/chunks/ccu.mjs +6 -6
  6. package/dist/chunks/check-updates.mjs +3 -3
  7. package/dist/chunks/claude-code-incremental-manager.mjs +38 -38
  8. package/dist/chunks/cloud-v5.mjs +1651 -0
  9. package/dist/chunks/codex.mjs +70 -70
  10. package/dist/chunks/commands.mjs +25 -25
  11. package/dist/chunks/commit.mjs +16 -16
  12. package/dist/chunks/config-consolidator.mjs +9 -9
  13. package/dist/chunks/config-switch.mjs +39 -39
  14. package/dist/chunks/config.mjs +5 -5
  15. package/dist/chunks/config2.mjs +85 -85
  16. package/dist/chunks/context.mjs +2 -2
  17. package/dist/chunks/doctor.mjs +31 -31
  18. package/dist/chunks/features.mjs +84 -83
  19. package/dist/chunks/help.mjs +116 -116
  20. package/dist/chunks/index4.mjs +46 -46
  21. package/dist/chunks/init.mjs +214 -191
  22. package/dist/chunks/interview.mjs +102 -102
  23. package/dist/chunks/manager.mjs +238 -0
  24. package/dist/chunks/marketplace.mjs +59 -59
  25. package/dist/chunks/mcp.mjs +82 -82
  26. package/dist/chunks/menu.mjs +441 -379
  27. package/dist/chunks/notification.mjs +112 -112
  28. package/dist/chunks/onboarding.mjs +7 -7
  29. package/dist/chunks/package.mjs +1 -1
  30. package/dist/chunks/permission-manager.mjs +8 -8
  31. package/dist/chunks/plugin.mjs +100 -100
  32. package/dist/chunks/prompts.mjs +15 -15
  33. package/dist/chunks/providers.mjs +65 -65
  34. package/dist/chunks/session.mjs +83 -83
  35. package/dist/chunks/skills-sync.mjs +72 -72
  36. package/dist/chunks/skills.mjs +88 -88
  37. package/dist/chunks/team.mjs +6 -6
  38. package/dist/chunks/uninstall.mjs +35 -35
  39. package/dist/chunks/update.mjs +6 -6
  40. package/dist/chunks/upgrade-manager.mjs +4 -4
  41. package/dist/chunks/workflows2.mjs +13 -13
  42. package/dist/cli.mjs +21 -0
  43. package/dist/i18n/locales/en/menu.json +16 -1
  44. package/dist/i18n/locales/en/skills.json +29 -0
  45. package/dist/i18n/locales/zh-CN/menu.json +16 -1
  46. package/dist/i18n/locales/zh-CN/skills.json +29 -0
  47. package/dist/index.mjs +4 -4
  48. package/dist/shared/{ccjk.f40us0yY.mjs → ccjk.BiJujy5w.mjs} +4 -4
  49. package/dist/shared/{ccjk.CQzwtnZ1.mjs → ccjk.C_3BYaWc.mjs} +50 -50
  50. package/dist/shared/{ccjk.Zwx-YR_P.mjs → ccjk.DjD9Rzxq.mjs} +32 -32
  51. package/dist/shared/{ccjk.DtWIPt8E.mjs → ccjk.XgW1H2t3.mjs} +68 -68
  52. package/dist/shared/{ccjk.BlPCiSHj.mjs → ccjk.tI4PJA0c.mjs} +30 -30
  53. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
- import ansis from 'ansis';
1
+ import ansis__default from 'ansis';
2
2
  import { i18n, format } from './index2.mjs';
3
- import { S as STATUS, t as theme } from '../shared/ccjk.Zwx-YR_P.mjs';
4
- import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup, g as getAllPresets } from '../shared/ccjk.BlPCiSHj.mjs';
3
+ import { S as STATUS, t as theme } from '../shared/ccjk.DjD9Rzxq.mjs';
4
+ import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup, g as getAllPresets } from '../shared/ccjk.tI4PJA0c.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:process';
7
7
  import 'node:url';
@@ -38,8 +38,8 @@ function listProviders(lang = "en") {
38
38
  const name = lang === "zh-CN" ? preset.nameZh : preset.name;
39
39
  const desc = lang === "zh-CN" ? preset.descriptionZh : preset.description;
40
40
  const keyIcon = preset.requiresApiKey ? "\u{1F511}" : "\u{1F193}";
41
- console.log(` ${keyIcon} ${ansis.green(preset.id.padEnd(15))} ${name}`);
42
- console.log(ansis.gray(` ${desc}`));
41
+ console.log(` ${keyIcon} ${ansis__default.green(preset.id.padEnd(15))} ${name}`);
42
+ console.log(ansis__default.gray(` ${desc}`));
43
43
  }
44
44
  console.log("");
45
45
  }
@@ -77,7 +77,7 @@ async function apiCommand(action = "wizard", args = [], options = {}) {
77
77
  setupApi(args[0], args[1], lang);
78
78
  } else {
79
79
  console.log(STATUS.error(i18n.t("api:setupUsage")));
80
- console.log(ansis.gray(` ${i18n.t("api:setupExample")}`));
80
+ console.log(ansis__default.gray(` ${i18n.t("api:setupExample")}`));
81
81
  }
82
82
  break;
83
83
  case "status":
@@ -1,4 +1,4 @@
1
- import ansis from 'ansis';
1
+ import ansis__default from 'ansis';
2
2
  import ora from 'ora';
3
3
  import { exec } from 'tinyexec';
4
4
  import { ensureI18nInitialized, i18n, format } from './index2.mjs';
@@ -87,59 +87,11 @@ function findResidualNpmTempDirs(packageName) {
87
87
  }
88
88
  return residuals;
89
89
  }
90
- function safeRemoveDirectory(dirPath) {
91
- try {
92
- const dirName = dirPath.split("/").pop() || dirPath.split("\\").pop() || "";
93
- if (!isNpmTempDir(dirName)) {
94
- return false;
95
- }
96
- nodeFs.rmSync(dirPath, { recursive: true, force: true });
97
- return true;
98
- } catch {
99
- return false;
100
- }
101
- }
102
- function cleanupNpmTempDirs(packageName) {
103
- const residuals = findResidualNpmTempDirs(packageName);
104
- let cleaned = 0;
105
- let failed = 0;
106
- const paths = [];
107
- for (const dir of residuals) {
108
- if (safeRemoveDirectory(dir)) {
109
- cleaned++;
110
- paths.push(dir);
111
- } else {
112
- failed++;
113
- }
114
- }
115
- return { cleaned, failed, paths };
116
- }
117
- function getNpmCleanupStatus(packageName) {
118
- const residuals = findResidualNpmTempDirs(packageName);
119
- if (residuals.length === 0) {
120
- return {
121
- needsCleanup: false,
122
- residualCount: 0,
123
- canAutoClean: true,
124
- requiresSudo: false,
125
- recommendation: "No cleanup needed"
126
- };
127
- }
128
- const platform = getPlatform();
129
- const requiresSudo = (platform === "macos" || platform === "linux") && residuals.some((r) => r.startsWith("/usr/") || r.startsWith("/opt/"));
130
- return {
131
- needsCleanup: true,
132
- residualCount: residuals.length,
133
- canAutoClean: !requiresSudo,
134
- requiresSudo,
135
- recommendation: requiresSudo ? "Residual directories found. Manual cleanup with sudo required." : "Residual directories found. Can be automatically cleaned."
136
- };
137
- }
138
90
 
139
91
  async function execWithSudoIfNeeded(command, args) {
140
92
  const needsSudo = shouldUseSudoForGlobalInstall();
141
93
  if (needsSudo) {
142
- console.log(ansis.yellow(`
94
+ console.log(ansis__default.yellow(`
143
95
  ${i18n.t("updater:usingSudo")}`));
144
96
  const result = await exec("sudo", [command, ...args]);
145
97
  if (result.exitCode !== 0) {
@@ -161,30 +113,30 @@ async function updateCcr(force = false, skipPrompt = false) {
161
113
  const { installed, currentVersion, latestVersion, needsUpdate } = await checkCcrVersion();
162
114
  spinner.stop();
163
115
  if (!installed) {
164
- console.log(ansis.yellow(i18n.t("updater:ccrNotInstalled")));
116
+ console.log(ansis__default.yellow(i18n.t("updater:ccrNotInstalled")));
165
117
  return false;
166
118
  }
167
119
  if (!needsUpdate && !force) {
168
- console.log(ansis.green(format(i18n.t("updater:ccrUpToDate"), { version: currentVersion || "" })));
120
+ console.log(ansis__default.green(format(i18n.t("updater:ccrUpToDate"), { version: currentVersion || "" })));
169
121
  return true;
170
122
  }
171
123
  if (!latestVersion) {
172
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
124
+ console.log(ansis__default.yellow(i18n.t("updater:cannotCheckVersion")));
173
125
  return false;
174
126
  }
175
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
176
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
127
+ console.log(ansis__default.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
128
+ console.log(ansis__default.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
177
129
  if (!skipPrompt) {
178
130
  const confirm = await promptBoolean({
179
131
  message: format(i18n.t("updater:confirmUpdate"), { tool: "CCR" }),
180
132
  defaultValue: true
181
133
  });
182
134
  if (!confirm) {
183
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
135
+ console.log(ansis__default.gray(i18n.t("updater:updateSkipped")));
184
136
  return true;
185
137
  }
186
138
  } else {
187
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCR" })));
139
+ console.log(ansis__default.green(format(i18n.t("updater:autoUpdating"), { tool: "CCR" })));
188
140
  }
189
141
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCR" })).start();
190
142
  try {
@@ -193,12 +145,12 @@ async function updateCcr(force = false, skipPrompt = false) {
193
145
  return true;
194
146
  } catch (error) {
195
147
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "CCR" }));
196
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
148
+ console.error(ansis__default.red(error instanceof Error ? error.message : String(error)));
197
149
  return false;
198
150
  }
199
151
  } catch (error) {
200
152
  spinner.fail(i18n.t("updater:checkFailed"));
201
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
153
+ console.error(ansis__default.red(error instanceof Error ? error.message : String(error)));
202
154
  return false;
203
155
  }
204
156
  }
@@ -209,34 +161,61 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
209
161
  const { installed, currentVersion, latestVersion, needsUpdate, isHomebrew, installationSource, isBroken } = await checkClaudeCodeVersion();
210
162
  spinner.stop();
211
163
  if (!installed) {
212
- console.log(ansis.yellow(i18n.t("updater:claudeCodeNotInstalled")));
164
+ console.log(ansis__default.yellow(i18n.t("updater:claudeCodeNotInstalled")));
213
165
  return false;
214
166
  }
215
167
  if (!needsUpdate && !force) {
216
- console.log(ansis.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: currentVersion || "" })));
168
+ console.log(ansis__default.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: currentVersion || "" })));
217
169
  return true;
218
170
  }
219
171
  if (!latestVersion) {
220
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
172
+ console.log(ansis__default.yellow(i18n.t("updater:cannotCheckVersion")));
221
173
  return false;
222
174
  }
223
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
224
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
175
+ console.log(ansis__default.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
176
+ console.log(ansis__default.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
177
+ if (!isHomebrew) {
178
+ const residuals = findResidualNpmTempDirs("@anthropic-ai/claude-code");
179
+ if (residuals.length > 0) {
180
+ const plural = residuals.length > 1 ? "ies" : "y";
181
+ console.log(ansis__default.yellow(`
182
+ \u26A0 ${format(i18n.t("updater:residualDirsFound"), { count: String(residuals.length), plural })}`));
183
+ console.log(ansis__default.gray(` ${i18n.t("updater:cleaningWithSudo")}`));
184
+ try {
185
+ const { wrapCommandWithSudo } = await import('./platform.mjs');
186
+ let cleanedCount = 0;
187
+ for (const dir of residuals) {
188
+ const { command, args } = wrapCommandWithSudo("rm", ["-rf", dir]);
189
+ try {
190
+ await exec(command, args);
191
+ cleanedCount++;
192
+ } catch {
193
+ }
194
+ }
195
+ if (cleanedCount > 0) {
196
+ const cleanedPlural = cleanedCount > 1 ? "ies" : "y";
197
+ console.log(ansis__default.green(` \u2714 ${format(i18n.t("updater:cleanedDirs"), { count: String(cleanedCount), plural: cleanedPlural })}`));
198
+ }
199
+ } catch {
200
+ console.log(ansis__default.yellow(` \u2139 ${i18n.t("updater:cleanupFailed")}`));
201
+ }
202
+ }
203
+ }
225
204
  if (isBroken) {
226
- console.log(ansis.yellow(i18n.t("updater:installationBroken")));
205
+ console.log(ansis__default.yellow(i18n.t("updater:installationBroken")));
227
206
  const fixResult = await fixBrokenNpmSymlink();
228
207
  if (fixResult.fixed) {
229
- console.log(ansis.green(`\u2714 ${i18n.t("updater:symlinkFixed")}: ${fixResult.message}`));
208
+ console.log(ansis__default.green(`\u2714 ${i18n.t("updater:symlinkFixed")}: ${fixResult.message}`));
230
209
  const recheckResult = await checkClaudeCodeVersion();
231
210
  if (!recheckResult.isBroken) {
232
- console.log(ansis.green(i18n.t("updater:installationRepaired")));
211
+ console.log(ansis__default.green(i18n.t("updater:installationRepaired")));
233
212
  if (!recheckResult.needsUpdate && !force) {
234
- console.log(ansis.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: recheckResult.currentVersion || "" })));
213
+ console.log(ansis__default.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: recheckResult.currentVersion || "" })));
235
214
  return true;
236
215
  }
237
216
  }
238
217
  } else {
239
- console.log(ansis.gray(`\u2139 ${fixResult.message}`));
218
+ console.log(ansis__default.gray(`\u2139 ${fixResult.message}`));
240
219
  }
241
220
  }
242
221
  if (!skipPrompt) {
@@ -245,43 +224,11 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
245
224
  defaultValue: true
246
225
  });
247
226
  if (!confirm) {
248
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
227
+ console.log(ansis__default.gray(i18n.t("updater:updateSkipped")));
249
228
  return true;
250
229
  }
251
230
  } else {
252
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "Claude Code" })));
253
- }
254
- if (!isHomebrew && (installationSource === "npm" || installationSource === "other")) {
255
- const residuals = findResidualNpmTempDirs("@anthropic-ai/claude-code");
256
- if (residuals.length > 0) {
257
- const plural = residuals.length > 1 ? "ies" : "y";
258
- console.log(ansis.yellow(`
259
- \u26A0 ${format(i18n.t("updater:residualDirsFound"), { count: String(residuals.length), plural })}`));
260
- const cleanupStatus = getNpmCleanupStatus("@anthropic-ai/claude-code");
261
- if (cleanupStatus.requiresSudo) {
262
- console.log(ansis.gray(` ${i18n.t("updater:cleaningWithSudo")}`));
263
- try {
264
- const { wrapCommandWithSudo } = await import('./platform.mjs');
265
- for (const dir of residuals) {
266
- const { command, args } = wrapCommandWithSudo("rm", ["-rf", dir]);
267
- try {
268
- await exec(command, args);
269
- } catch {
270
- }
271
- }
272
- const cleanedPlural = residuals.length > 1 ? "ies" : "y";
273
- console.log(ansis.green(` \u2714 ${format(i18n.t("updater:cleanedDirs"), { count: String(residuals.length), plural: cleanedPlural })}`));
274
- } catch {
275
- console.log(ansis.yellow(` \u2139 ${i18n.t("updater:cleanupFailed")}`));
276
- }
277
- } else {
278
- const result = cleanupNpmTempDirs("@anthropic-ai/claude-code");
279
- if (result.cleaned > 0) {
280
- const cleanedPlural = result.cleaned > 1 ? "ies" : "y";
281
- console.log(ansis.green(` \u2714 ${format(i18n.t("updater:cleanedDirs"), { count: String(result.cleaned), plural: cleanedPlural })}`));
282
- }
283
- }
284
- }
231
+ console.log(ansis__default.green(format(i18n.t("updater:autoUpdating"), { tool: "Claude Code" })));
285
232
  }
286
233
  const toolName = isHomebrew ? "Claude Code (Homebrew)" : "Claude Code";
287
234
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: toolName })).start();
@@ -324,9 +271,9 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
324
271
  const errorMessage = error instanceof Error ? error.message : String(error);
325
272
  if (errorMessage.includes("ENOTEMPTY") || errorMessage.includes("directory not empty")) {
326
273
  updateSpinner.warn(format(i18n.t("updater:updateFailed"), { tool: "Claude Code" }));
327
- console.log(ansis.yellow(`
274
+ console.log(ansis__default.yellow(`
328
275
  \u26A0 ${i18n.t("updater:updateFailedWithResiduals")}`));
329
- console.log(ansis.gray(` ${i18n.t("updater:attemptingCleanupRetry")}`));
276
+ console.log(ansis__default.gray(` ${i18n.t("updater:attemptingCleanupRetry")}`));
330
277
  try {
331
278
  const { wrapCommandWithSudo } = await import('./platform.mjs');
332
279
  const residuals = findResidualNpmTempDirs("@anthropic-ai/claude-code");
@@ -337,7 +284,7 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
337
284
  } catch {
338
285
  }
339
286
  }
340
- console.log(ansis.gray(` ${i18n.t("updater:retryingUpdate")}`));
287
+ console.log(ansis__default.gray(` ${i18n.t("updater:retryingUpdate")}`));
341
288
  const retrySpinner = ora(format(i18n.t("updater:updating"), { tool: "Claude Code" })).start();
342
289
  try {
343
290
  if (isHomebrew) {
@@ -355,33 +302,33 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
355
302
  await execWithSudoIfNeeded("claude", ["update"]);
356
303
  }
357
304
  retrySpinner.succeed(format(i18n.t("updater:updateSuccess"), { tool: "Claude Code" }));
358
- console.log(ansis.green(`
305
+ console.log(ansis__default.green(`
359
306
  \u2714 ${i18n.t("updater:updateSucceededAfterCleanup")}`));
360
307
  return true;
361
308
  } catch (retryError) {
362
309
  retrySpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "Claude Code" }));
363
310
  const retryErrorMessage = retryError instanceof Error ? retryError.message : String(retryError);
364
- console.error(ansis.red(retryErrorMessage));
365
- console.log(ansis.yellow(`
311
+ console.error(ansis__default.red(retryErrorMessage));
312
+ console.log(ansis__default.yellow(`
366
313
  \u26A0 ${i18n.t("updater:autoRecoveryFailed")}`));
367
- console.log(ansis.gray(` ${i18n.t("updater:manualCleanupHint")}`));
368
- console.log(ansis.white(` ${i18n.t("updater:manualCleanupCommand")}`));
369
- console.log(ansis.white(` ${i18n.t("updater:manualCleanupCommand2")}`));
370
- console.log(ansis.gray(`
314
+ console.log(ansis__default.gray(` ${i18n.t("updater:manualCleanupHint")}`));
315
+ console.log(ansis__default.white(` ${i18n.t("updater:manualCleanupCommand")}`));
316
+ console.log(ansis__default.white(` ${i18n.t("updater:manualCleanupCommand2")}`));
317
+ console.log(ansis__default.gray(`
371
318
  ${i18n.t("updater:thenTryAgain")}`));
372
319
  return false;
373
320
  }
374
321
  } catch {
375
- console.log(ansis.yellow("\n\u26A0 Automatic cleanup failed"));
322
+ console.log(ansis__default.yellow("\n\u26A0 Automatic cleanup failed"));
376
323
  }
377
324
  }
378
325
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "Claude Code" }));
379
- console.error(ansis.red(errorMessage));
326
+ console.error(ansis__default.red(errorMessage));
380
327
  return false;
381
328
  }
382
329
  } catch (error) {
383
330
  spinner.fail(i18n.t("updater:checkFailed"));
384
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
331
+ console.error(ansis__default.red(error instanceof Error ? error.message : String(error)));
385
332
  return false;
386
333
  }
387
334
  }
@@ -392,30 +339,30 @@ async function updateCometixLine(force = false, skipPrompt = false) {
392
339
  const { installed, currentVersion, latestVersion, needsUpdate } = await checkCometixLineVersion();
393
340
  spinner.stop();
394
341
  if (!installed) {
395
- console.log(ansis.yellow(i18n.t("updater:cometixLineNotInstalled")));
342
+ console.log(ansis__default.yellow(i18n.t("updater:cometixLineNotInstalled")));
396
343
  return false;
397
344
  }
398
345
  if (!needsUpdate && !force) {
399
- console.log(ansis.green(format(i18n.t("updater:cometixLineUpToDate"), { version: currentVersion || "" })));
346
+ console.log(ansis__default.green(format(i18n.t("updater:cometixLineUpToDate"), { version: currentVersion || "" })));
400
347
  return true;
401
348
  }
402
349
  if (!latestVersion) {
403
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
350
+ console.log(ansis__default.yellow(i18n.t("updater:cannotCheckVersion")));
404
351
  return false;
405
352
  }
406
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
407
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
353
+ console.log(ansis__default.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
354
+ console.log(ansis__default.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
408
355
  if (!skipPrompt) {
409
356
  const confirm = await promptBoolean({
410
357
  message: format(i18n.t("updater:confirmUpdate"), { tool: "CCometixLine" }),
411
358
  defaultValue: true
412
359
  });
413
360
  if (!confirm) {
414
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
361
+ console.log(ansis__default.gray(i18n.t("updater:updateSkipped")));
415
362
  return true;
416
363
  }
417
364
  } else {
418
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCometixLine" })));
365
+ console.log(ansis__default.green(format(i18n.t("updater:autoUpdating"), { tool: "CCometixLine" })));
419
366
  }
420
367
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCometixLine" })).start();
421
368
  try {
@@ -424,18 +371,18 @@ async function updateCometixLine(force = false, skipPrompt = false) {
424
371
  return true;
425
372
  } catch (error) {
426
373
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" }));
427
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
374
+ console.error(ansis__default.red(error instanceof Error ? error.message : String(error)));
428
375
  return false;
429
376
  }
430
377
  } catch (error) {
431
378
  spinner.fail(i18n.t("updater:checkFailed"));
432
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
379
+ console.error(ansis__default.red(error instanceof Error ? error.message : String(error)));
433
380
  return false;
434
381
  }
435
382
  }
436
383
  async function checkAndUpdateTools(skipPrompt = false) {
437
384
  ensureI18nInitialized();
438
- console.log(ansis.bold.cyan(`
385
+ console.log(ansis__default.bold.cyan(`
439
386
  \u{1F50D} ${i18n.t("updater:checkingTools")}
440
387
  `));
441
388
  try {
@@ -445,7 +392,7 @@ async function checkAndUpdateTools(skipPrompt = false) {
445
392
  }
446
393
  } catch (error) {
447
394
  const errorMessage = error instanceof Error ? error.message : String(error);
448
- console.warn(ansis.yellow(`\u26A0 Duplicate installation check failed: ${errorMessage}`));
395
+ console.warn(ansis__default.yellow(`\u26A0 Duplicate installation check failed: ${errorMessage}`));
449
396
  }
450
397
  const results = [];
451
398
  try {
@@ -453,7 +400,7 @@ async function checkAndUpdateTools(skipPrompt = false) {
453
400
  results.push({ tool: "CCR", success });
454
401
  } catch (error) {
455
402
  const errorMessage = error instanceof Error ? error.message : String(error);
456
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCR" })}: ${errorMessage}`));
403
+ console.error(ansis__default.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCR" })}: ${errorMessage}`));
457
404
  results.push({ tool: "CCR", success: false, error: errorMessage });
458
405
  }
459
406
  console.log();
@@ -462,7 +409,7 @@ async function checkAndUpdateTools(skipPrompt = false) {
462
409
  results.push({ tool: "Claude Code", success });
463
410
  } catch (error) {
464
411
  const errorMessage = error instanceof Error ? error.message : String(error);
465
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "Claude Code" })}: ${errorMessage}`));
412
+ console.error(ansis__default.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "Claude Code" })}: ${errorMessage}`));
466
413
  results.push({ tool: "Claude Code", success: false, error: errorMessage });
467
414
  }
468
415
  console.log();
@@ -471,17 +418,17 @@ async function checkAndUpdateTools(skipPrompt = false) {
471
418
  results.push({ tool: "CCometixLine", success });
472
419
  } catch (error) {
473
420
  const errorMessage = error instanceof Error ? error.message : String(error);
474
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" })}: ${errorMessage}`));
421
+ console.error(ansis__default.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" })}: ${errorMessage}`));
475
422
  results.push({ tool: "CCometixLine", success: false, error: errorMessage });
476
423
  }
477
424
  if (skipPrompt) {
478
- console.log(ansis.bold.cyan(`
425
+ console.log(ansis__default.bold.cyan(`
479
426
  \u{1F4CB} ${i18n.t("updater:updateSummary")}`));
480
427
  for (const result of results) {
481
428
  if (result.success) {
482
- console.log(ansis.green(`\u2714 ${result.tool}: ${i18n.t("updater:success")}`));
429
+ console.log(ansis__default.green(`\u2714 ${result.tool}: ${i18n.t("updater:success")}`));
483
430
  } else {
484
- console.log(ansis.red(`\u274C ${result.tool}: ${i18n.t("updater:failed")} ${result.error ? `(${result.error})` : ""}`));
431
+ console.log(ansis__default.red(`\u274C ${result.tool}: ${i18n.t("updater:failed")} ${result.error ? `(${result.error})` : ""}`));
485
432
  }
486
433
  }
487
434
  }
@@ -1,7 +1,7 @@
1
1
  import process__default from 'node:process';
2
- import ansis from 'ansis';
2
+ import ansis__default from 'ansis';
3
3
  import { i18n } from './index2.mjs';
4
- import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.f40us0yY.mjs';
4
+ import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.BiJujy5w.mjs';
5
5
  import { k as isCCMSupported, m as getCCMSupportMessage, f as isCCMInstalled, e as executeCCMCommand, l as launchCCM, j as setupCCMHooks } from '../shared/ccjk.CnZNdDGU.mjs';
6
6
  import 'node:fs';
7
7
  import 'node:url';
@@ -18,14 +18,14 @@ async function ccm(options = {}) {
18
18
  await i18n.changeLanguage(options.lang);
19
19
  }
20
20
  if (!isCCMSupported()) {
21
- console.log(ansis.yellow(getCCMSupportMessage()));
21
+ console.log(ansis__default.yellow(getCCMSupportMessage()));
22
22
  process__default.exit(1);
23
23
  }
24
24
  const isInstalled = await isCCMInstalled();
25
25
  if (options.action) {
26
26
  if (!isInstalled && options.action !== "setup") {
27
- console.error(ansis.red(i18n.t("ccm.macOSOnly")));
28
- console.log(ansis.yellow(i18n.t("ccm.installPrompt")));
27
+ console.error(ansis__default.red(i18n.t("ccm.macOSOnly")));
28
+ console.log(ansis__default.yellow(i18n.t("ccm.installPrompt")));
29
29
  process__default.exit(1);
30
30
  }
31
31
  await executeCCMCommand(options.action);
@@ -34,8 +34,8 @@ async function ccm(options = {}) {
34
34
  if (isInstalled) {
35
35
  await launchCCM();
36
36
  } else {
37
- console.log(ansis.yellow(i18n.t("ccm.installPrompt")));
38
- console.log(ansis.gray(i18n.t("ccm.settingUpHooks")));
37
+ console.log(ansis__default.yellow(i18n.t("ccm.installPrompt")));
38
+ console.log(ansis__default.gray(i18n.t("ccm.settingUpHooks")));
39
39
  await setupCCMHooks();
40
40
  await launchCCM();
41
41
  }
@@ -1,5 +1,5 @@
1
- import { a as displayBannerWithInfo } from '../shared/ccjk.Zwx-YR_P.mjs';
2
- import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.f40us0yY.mjs';
1
+ import { a as displayBannerWithInfo } from '../shared/ccjk.DjD9Rzxq.mjs';
2
+ import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.BiJujy5w.mjs';
3
3
  import { s as showCcrMenu, a as showMainMenu } from './menu.mjs';
4
4
  import 'ansis';
5
5
  import './package.mjs';
@@ -34,11 +34,12 @@ import '../shared/ccjk.CUdzQluX.mjs';
34
34
  import './features.mjs';
35
35
  import './init.mjs';
36
36
  import './workflows.mjs';
37
+ import './manager.mjs';
37
38
  import 'node:util';
38
39
  import './auto-updater.mjs';
39
40
  import './version-checker.mjs';
40
41
  import 'node:path';
41
- import '../shared/ccjk.DtWIPt8E.mjs';
42
+ import '../shared/ccjk.XgW1H2t3.mjs';
42
43
  import '../shared/ccjk.BjUZt6kx.mjs';
43
44
  import '../shared/ccjk.CGMs4Om4.mjs';
44
45
  import 'node:stream';
@@ -48,12 +49,14 @@ import './smart-guide.mjs';
48
49
  import './ccu.mjs';
49
50
  import './commands.mjs';
50
51
  import './check-updates.mjs';
52
+ import './cloud-v5.mjs';
53
+ import '@clack/prompts';
51
54
  import './config-switch.mjs';
52
55
  import './claude-code-config-manager.mjs';
53
56
  import './doctor.mjs';
54
57
  import './api-providers.mjs';
55
58
  import '../shared/ccjk.J8YiPsOw.mjs';
56
- import '../shared/ccjk.CQzwtnZ1.mjs';
59
+ import '../shared/ccjk.C_3BYaWc.mjs';
57
60
  import './notification.mjs';
58
61
  import 'node:buffer';
59
62
  import '@iarna/toml';
@@ -1,5 +1,5 @@
1
1
  import process__default from 'node:process';
2
- import ansis from 'ansis';
2
+ import ansis__default from 'ansis';
3
3
  import { x } from 'tinyexec';
4
4
  import { i18n } from './index2.mjs';
5
5
  import 'node:fs';
@@ -12,8 +12,8 @@ async function executeCcusage(args = []) {
12
12
  try {
13
13
  const command = "npx";
14
14
  const commandArgs = ["ccusage@latest", ...args || []];
15
- console.log(ansis.green(i18n.t("tools:runningCcusage")));
16
- console.log(ansis.gray(`$ npx ccusage@latest ${(args || []).join(" ")}`));
15
+ console.log(ansis__default.green(i18n.t("tools:runningCcusage")));
16
+ console.log(ansis__default.gray(`$ npx ccusage@latest ${(args || []).join(" ")}`));
17
17
  console.log("");
18
18
  await x(command, commandArgs, {
19
19
  nodeOptions: {
@@ -21,10 +21,10 @@ async function executeCcusage(args = []) {
21
21
  }
22
22
  });
23
23
  } catch (error) {
24
- console.error(ansis.red(i18n.t("tools:ccusageFailed")));
25
- console.error(ansis.yellow(i18n.t("tools:checkNetworkConnection")));
24
+ console.error(ansis__default.red(i18n.t("tools:ccusageFailed")));
25
+ console.error(ansis__default.yellow(i18n.t("tools:checkNetworkConnection")));
26
26
  if (process__default.env.DEBUG) {
27
- console.error(ansis.gray(i18n.t("tools:errorDetails")), error);
27
+ console.error(ansis__default.gray(i18n.t("tools:errorDetails")), error);
28
28
  }
29
29
  if (process__default.env.NODE_ENV !== "test") {
30
30
  process__default.exit(1);
@@ -1,5 +1,5 @@
1
1
  import process__default from 'node:process';
2
- import ansis from 'ansis';
2
+ import ansis__default from 'ansis';
3
3
  import { ensureI18nInitialized, i18n } from './index2.mjs';
4
4
  import { r as resolveCodeType } from '../shared/ccjk.CUdzQluX.mjs';
5
5
  import { checkAndUpdateTools } from './auto-updater.mjs';
@@ -76,7 +76,7 @@ async function checkUpdates(options = {}) {
76
76
  codeType = await resolveCodeType(options.codeType);
77
77
  } catch (err) {
78
78
  const errorMessage = err instanceof Error ? err.message : String(err);
79
- console.error(ansis.red(`${errorMessage}
79
+ console.error(ansis__default.red(`${errorMessage}
80
80
  Defaulting to "claude-code".`));
81
81
  codeType = "claude-code";
82
82
  }
@@ -84,7 +84,7 @@ Defaulting to "claude-code".`));
84
84
  await scheduler.updateByCodeType(codeType, skipPrompt);
85
85
  } catch (error) {
86
86
  const errorMessage = error instanceof Error ? error.message : String(error);
87
- console.error(ansis.red(`${i18n.t("updater:errorCheckingUpdates")} ${errorMessage}`));
87
+ console.error(ansis__default.red(`${i18n.t("updater:errorCheckingUpdates")} ${errorMessage}`));
88
88
  process__default.exit(1);
89
89
  }
90
90
  }