ccjk 12.0.0 → 12.0.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 (161) hide show
  1. package/dist/chunks/agent-teams.mjs +17 -18
  2. package/dist/chunks/agent.mjs +105 -102
  3. package/dist/chunks/agents.mjs +87 -77
  4. package/dist/chunks/api-cli.mjs +41 -27
  5. package/dist/chunks/api-providers.mjs +2 -4
  6. package/dist/chunks/api.mjs +22 -11
  7. package/dist/chunks/auto-bootstrap.mjs +3 -5
  8. package/dist/chunks/auto-init.mjs +3 -4
  9. package/dist/chunks/auto-updater.mjs +103 -91
  10. package/dist/chunks/banner.mjs +41 -42
  11. package/dist/chunks/boost.mjs +30 -31
  12. package/dist/chunks/ccjk-agents.mjs +6 -9
  13. package/dist/chunks/ccjk-all.mjs +703 -85
  14. package/dist/chunks/ccjk-config.mjs +6 -6
  15. package/dist/chunks/ccjk-hooks.mjs +20 -9
  16. package/dist/chunks/ccjk-mcp.mjs +64 -52
  17. package/dist/chunks/ccjk-setup.mjs +35 -25
  18. package/dist/chunks/ccjk-skills.mjs +51 -41
  19. package/dist/chunks/ccr.mjs +42 -32
  20. package/dist/chunks/ccu.mjs +16 -12
  21. package/dist/chunks/check-updates.mjs +30 -19
  22. package/dist/chunks/claude-code-config-manager.mjs +25 -10
  23. package/dist/chunks/claude-code-incremental-manager.mjs +65 -51
  24. package/dist/chunks/claude-config.mjs +2 -2
  25. package/dist/chunks/claude-wrapper.mjs +9 -6
  26. package/dist/chunks/cleanup-migration.mjs +1 -1
  27. package/dist/chunks/cli-hook.mjs +10 -3
  28. package/dist/chunks/cloud-sync.mjs +1 -1
  29. package/dist/chunks/codex-config-switch.mjs +58 -45
  30. package/dist/chunks/codex-provider-manager.mjs +29 -16
  31. package/dist/chunks/codex-uninstaller.mjs +5 -6
  32. package/dist/chunks/codex.mjs +89 -89
  33. package/dist/chunks/commands.mjs +28 -29
  34. package/dist/chunks/commands2.mjs +4 -3
  35. package/dist/chunks/commit.mjs +42 -23
  36. package/dist/chunks/completion.mjs +46 -47
  37. package/dist/chunks/config-consolidator.mjs +12 -13
  38. package/dist/chunks/config-switch.mjs +66 -53
  39. package/dist/chunks/config.mjs +10 -10
  40. package/dist/chunks/config2.mjs +53 -42
  41. package/dist/chunks/config3.mjs +107 -93
  42. package/dist/chunks/constants.mjs +2 -4
  43. package/dist/chunks/context-loader.mjs +5 -4
  44. package/dist/chunks/context.mjs +77 -76
  45. package/dist/chunks/convoy-manager.mjs +4 -4
  46. package/dist/chunks/dashboard.mjs +28 -29
  47. package/dist/chunks/doctor.mjs +68 -54
  48. package/dist/chunks/evolution.mjs +37 -38
  49. package/dist/chunks/features.mjs +103 -92
  50. package/dist/chunks/fs-operations.mjs +1 -1
  51. package/dist/chunks/health-alerts.mjs +1 -1
  52. package/dist/chunks/health-check.mjs +1 -1
  53. package/dist/chunks/help.mjs +117 -116
  54. package/dist/chunks/hook-installer.mjs +3 -2
  55. package/dist/chunks/index.mjs +20 -6
  56. package/dist/chunks/index10.mjs +1171 -0
  57. package/dist/chunks/index11.mjs +1008 -0
  58. package/dist/chunks/index12.mjs +193 -0
  59. package/dist/chunks/index13.mjs +218 -0
  60. package/dist/chunks/index14.mjs +663 -0
  61. package/dist/chunks/index2.mjs +19 -10
  62. package/dist/chunks/index3.mjs +19079 -164
  63. package/dist/chunks/index4.mjs +8 -1171
  64. package/dist/chunks/index5.mjs +7479 -884
  65. package/dist/chunks/index6.mjs +160 -184
  66. package/dist/chunks/index7.mjs +3573 -653
  67. package/dist/chunks/index8.mjs +19 -0
  68. package/dist/chunks/index9.mjs +616 -0
  69. package/dist/chunks/init.mjs +173 -173
  70. package/dist/chunks/installer.mjs +92 -82
  71. package/dist/chunks/installer2.mjs +3 -2
  72. package/dist/chunks/interview.mjs +118 -107
  73. package/dist/chunks/json-config.mjs +3 -2
  74. package/dist/chunks/linux.mjs +3863 -0
  75. package/dist/chunks/macos.mjs +69 -0
  76. package/dist/chunks/main.mjs +635 -0
  77. package/dist/chunks/marketplace.mjs +69 -66
  78. package/dist/chunks/mcp-cli.mjs +61 -48
  79. package/dist/chunks/mcp.mjs +140 -127
  80. package/dist/chunks/menu.mjs +85 -85
  81. package/dist/chunks/metrics-display.mjs +41 -40
  82. package/dist/chunks/migrator.mjs +4 -5
  83. package/dist/chunks/monitor.mjs +95 -95
  84. package/dist/chunks/notification.mjs +151 -141
  85. package/dist/chunks/onboarding.mjs +26 -15
  86. package/dist/chunks/package.mjs +1 -1
  87. package/dist/chunks/paradigm.mjs +24 -23
  88. package/dist/chunks/permission-manager.mjs +10 -11
  89. package/dist/chunks/permissions.mjs +72 -57
  90. package/dist/chunks/persistence-manager.mjs +97 -84
  91. package/dist/chunks/persistence.mjs +1 -1
  92. package/dist/chunks/platform.mjs +29 -29
  93. package/dist/chunks/plugin.mjs +104 -105
  94. package/dist/chunks/prompts.mjs +36 -25
  95. package/dist/chunks/providers.mjs +68 -69
  96. package/dist/chunks/quick-actions.mjs +71 -72
  97. package/dist/chunks/quick-provider.mjs +56 -40
  98. package/dist/chunks/quick-setup.mjs +71 -60
  99. package/dist/chunks/remote.mjs +21 -12
  100. package/dist/chunks/session.mjs +116 -103
  101. package/dist/chunks/sessions.mjs +29 -28
  102. package/dist/chunks/silent-updater.mjs +8 -10
  103. package/dist/chunks/simple-config.mjs +13 -10
  104. package/dist/chunks/skill.mjs +8560 -103
  105. package/dist/chunks/skills-sync.mjs +5212 -79
  106. package/dist/chunks/skills.mjs +105 -94
  107. package/dist/chunks/slash-commands.mjs +36 -37
  108. package/dist/chunks/smart-defaults.mjs +7 -3
  109. package/dist/chunks/smart-guide.mjs +1 -1
  110. package/dist/chunks/startup.mjs +2 -4
  111. package/dist/chunks/stats.mjs +41 -42
  112. package/dist/chunks/status.mjs +49 -50
  113. package/dist/chunks/team.mjs +24 -12
  114. package/dist/chunks/thinking.mjs +74 -63
  115. package/dist/chunks/trace.mjs +20 -19
  116. package/dist/chunks/uninstall.mjs +69 -56
  117. package/dist/chunks/update.mjs +39 -28
  118. package/dist/chunks/upgrade-manager.mjs +24 -18
  119. package/dist/chunks/version-checker.mjs +45 -41
  120. package/dist/chunks/vim.mjs +81 -69
  121. package/dist/chunks/windows.mjs +14 -0
  122. package/dist/chunks/workflows.mjs +15 -15
  123. package/dist/chunks/wsl.mjs +129 -0
  124. package/dist/chunks/zero-config.mjs +45 -34
  125. package/dist/cli.mjs +20 -20
  126. package/dist/index.mjs +41 -31
  127. package/dist/shared/ccjk.BAGoDD49.mjs +36 -0
  128. package/dist/shared/ccjk.BBtCGd_g.mjs +899 -0
  129. package/dist/shared/{ccjk.CGcy7cNM.mjs → ccjk.BDKUdmLk.mjs} +1 -1
  130. package/dist/shared/{ccjk.DtMBiwVG.mjs → ccjk.BFxsJM0k.mjs} +1 -1
  131. package/dist/shared/{ccjk.j4uut26D.mjs → ccjk.BIxuVL3_.mjs} +5 -5
  132. package/dist/shared/ccjk.BRZ9ww8S.mjs +142 -0
  133. package/dist/shared/{ccjk.CN0edl87.mjs → ccjk.BSYWk9ML.mjs} +1 -1
  134. package/dist/shared/{ccjk.Dk1HDseQ.mjs → ccjk.BnpWvs9V.mjs} +75 -75
  135. package/dist/shared/ccjk.BoApaI4j.mjs +28 -0
  136. package/dist/shared/{ccjk.DKojSRzw.mjs → ccjk.BrPUmTqm.mjs} +1 -1
  137. package/dist/shared/{ccjk.C10pepYx.mjs → ccjk.BxSmJ8B7.mjs} +1 -1
  138. package/dist/shared/ccjk.Bx_rmYfN.mjs +69 -0
  139. package/dist/shared/ccjk.COweQ1RR.mjs +5 -0
  140. package/dist/shared/{ccjk.BN90X6oc.mjs → ccjk.CePkJq2S.mjs} +17 -17
  141. package/dist/shared/{ccjk.Bvoex4TZ.mjs → ccjk.CfKKcvWy.mjs} +1 -1
  142. package/dist/shared/ccjk.Cjgrln_h.mjs +297 -0
  143. package/dist/shared/ccjk.CxpGa6MC.mjs +2724 -0
  144. package/dist/shared/{ccjk.DfwJOEok.mjs → ccjk.D5MFQT7w.mjs} +1 -1
  145. package/dist/shared/{ccjk.cChAaGgT.mjs → ccjk.DG_o24cZ.mjs} +6 -6
  146. package/dist/shared/{ccjk.bhFAMRyc.mjs → ccjk.DLLw-h4Y.mjs} +32 -32
  147. package/dist/shared/ccjk.DOwtZMk8.mjs +4019 -0
  148. package/dist/shared/{ccjk.BsXQugfY.mjs → ccjk.DTdjs-qK.mjs} +13 -13
  149. package/dist/shared/{ccjk.Bdhyg3X-.mjs → ccjk.DsYaCCx4.mjs} +1 -1
  150. package/dist/shared/ccjk.KfSWcGlE.mjs +38 -0
  151. package/dist/shared/ccjk.RyizuzOI.mjs +21 -0
  152. package/dist/shared/{ccjk.h7_W-wTs.mjs → ccjk.SPoXMvZD.mjs} +1 -1
  153. package/dist/shared/ccjk.T_cX87dY.mjs +15 -0
  154. package/dist/shared/{ccjk.CrB6OYHv.mjs → ccjk._dESH4Rk.mjs} +2 -2
  155. package/dist/shared/ccjk.bQ7Dh1g4.mjs +249 -0
  156. package/dist/shared/{ccjk.CBhIZiPz.mjs → ccjk.hoqrwWdN.mjs} +1 -1
  157. package/dist/shared/{ccjk.BNwRnWYx.mjs → ccjk.s7OCVzdd.mjs} +1230 -33
  158. package/dist/shared/{ccjk.BOIUTf5z.mjs → ccjk.waa2ikKJ.mjs} +8 -9
  159. package/package.json +31 -30
  160. package/dist/shared/ccjk.DHbrGcgg.mjs +0 -13
  161. package/dist/shared/ccjk.DntgA8fQ.mjs +0 -42
@@ -1,35 +1,47 @@
1
- import ansis from 'ansis';
2
- import ora from 'ora';
3
- import { exec } from 'tinyexec';
4
- import { ensureI18nInitialized, i18n, format } from './index3.mjs';
1
+ import a from './index2.mjs';
2
+ import ora from './index7.mjs';
3
+ import { exec as q } from './main.mjs';
4
+ import { ensureI18nInitialized, i18n, format } from './index5.mjs';
5
5
  import { s as shouldUseSudoForGlobalInstall } from './platform.mjs';
6
- import { p as promptBoolean } from '../shared/ccjk.DHbrGcgg.mjs';
6
+ import { p as promptBoolean } from '../shared/ccjk.DOwtZMk8.mjs';
7
7
  import { checkClaudeCodeVersion, fixBrokenNpmSymlink, checkCcrVersion, handleDuplicateInstallations, checkCometixLineVersion } from './version-checker.mjs';
8
- import 'node:fs';
8
+ import '../shared/ccjk.BAGoDD49.mjs';
9
9
  import 'node:process';
10
- import 'node:url';
11
- import 'i18next';
12
- import 'i18next-fs-backend';
13
- import 'pathe';
14
- import 'node:os';
15
- import 'inquirer-toggle';
10
+ import 'node:util';
11
+ import '../shared/ccjk.Cjgrln_h.mjs';
12
+ import 'module';
16
13
  import 'node:child_process';
17
14
  import 'node:path';
18
- import 'node:util';
19
- import 'semver';
15
+ import 'node:stream';
16
+ import 'node:readline';
17
+ import 'node:fs';
18
+ import 'node:url';
19
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
20
+ import 'node:os';
21
+ import 'node:async_hooks';
22
+ import './index3.mjs';
23
+ import 'stream';
24
+ import 'node:tty';
25
+ import 'tty';
26
+ import 'fs';
27
+ import 'child_process';
28
+ import 'node:crypto';
29
+ import 'buffer';
30
+ import 'string_decoder';
31
+ import '../shared/ccjk.CxpGa6MC.mjs';
20
32
 
21
33
  async function execWithSudoIfNeeded(command, args) {
22
34
  const needsSudo = shouldUseSudoForGlobalInstall();
23
35
  if (needsSudo) {
24
- console.log(ansis.yellow(`
36
+ console.log(a.yellow(`
25
37
  ${i18n.t("updater:usingSudo")}`));
26
- const result = await exec("sudo", [command, ...args]);
38
+ const result = await q("sudo", [command, ...args]);
27
39
  if (result.exitCode !== 0) {
28
40
  throw new Error(result.stderr || `Command failed with exit code ${result.exitCode}`);
29
41
  }
30
42
  return { usedSudo: true };
31
43
  } else {
32
- const result = await exec(command, args);
44
+ const result = await q(command, args);
33
45
  if (result.exitCode !== 0) {
34
46
  throw new Error(result.stderr || `Command failed with exit code ${result.exitCode}`);
35
47
  }
@@ -43,30 +55,30 @@ async function updateCcr(force = false, skipPrompt = false) {
43
55
  const { installed, currentVersion, latestVersion, needsUpdate } = await checkCcrVersion();
44
56
  spinner.stop();
45
57
  if (!installed) {
46
- console.log(ansis.yellow(i18n.t("updater:ccrNotInstalled")));
58
+ console.log(a.yellow(i18n.t("updater:ccrNotInstalled")));
47
59
  return false;
48
60
  }
49
61
  if (!needsUpdate && !force) {
50
- console.log(ansis.green(format(i18n.t("updater:ccrUpToDate"), { version: currentVersion || "" })));
62
+ console.log(a.green(format(i18n.t("updater:ccrUpToDate"), { version: currentVersion || "" })));
51
63
  return true;
52
64
  }
53
65
  if (!latestVersion) {
54
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
66
+ console.log(a.yellow(i18n.t("updater:cannotCheckVersion")));
55
67
  return false;
56
68
  }
57
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
58
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
69
+ console.log(a.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
70
+ console.log(a.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
59
71
  if (!skipPrompt) {
60
72
  const confirm = await promptBoolean({
61
73
  message: format(i18n.t("updater:confirmUpdate"), { tool: "CCR" }),
62
74
  defaultValue: true
63
75
  });
64
76
  if (!confirm) {
65
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
77
+ console.log(a.gray(i18n.t("updater:updateSkipped")));
66
78
  return true;
67
79
  }
68
80
  } else {
69
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCR" })));
81
+ console.log(a.green(format(i18n.t("updater:autoUpdating"), { tool: "CCR" })));
70
82
  }
71
83
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCR" })).start();
72
84
  try {
@@ -75,12 +87,12 @@ async function updateCcr(force = false, skipPrompt = false) {
75
87
  return true;
76
88
  } catch (error) {
77
89
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "CCR" }));
78
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
90
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
79
91
  return false;
80
92
  }
81
93
  } catch (error) {
82
94
  spinner.fail(i18n.t("updater:checkFailed"));
83
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
95
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
84
96
  return false;
85
97
  }
86
98
  }
@@ -91,13 +103,13 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
91
103
  const { installed, currentVersion, latestVersion, needsUpdate, isHomebrew, installationSource, isBroken, hasWrongPackage, wrongPackageName } = await checkClaudeCodeVersion();
92
104
  spinner.stop();
93
105
  if (hasWrongPackage && wrongPackageName) {
94
- console.log(ansis.yellow(`
106
+ console.log(a.yellow(`
95
107
  \u26A0\uFE0F ${i18n.t("installation:wrongPackageDetected")}`));
96
- console.log(ansis.red(` ${i18n.t("installation:installedPackage")}: ${wrongPackageName}`));
97
- console.log(ansis.green(` ${i18n.t("installation:correctPackage")}: @anthropic-ai/claude-code`));
108
+ console.log(a.red(` ${i18n.t("installation:installedPackage")}: ${wrongPackageName}`));
109
+ console.log(a.green(` ${i18n.t("installation:correctPackage")}: @anthropic-ai/claude-code`));
98
110
  console.log();
99
111
  if (!skipPrompt) {
100
- const inquirer = (await import('inquirer')).default;
112
+ const inquirer = (await import('./index3.mjs').then(function (n) { return n.c; })).default;
101
113
  const { shouldFix } = await inquirer.prompt([
102
114
  {
103
115
  type: "confirm",
@@ -107,7 +119,7 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
107
119
  }
108
120
  ]);
109
121
  if (!shouldFix) {
110
- console.log(ansis.gray(i18n.t("installation:wrongPackageSkipped")));
122
+ console.log(a.gray(i18n.t("installation:wrongPackageSkipped")));
111
123
  return false;
112
124
  }
113
125
  }
@@ -116,49 +128,49 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
116
128
  await execWithSudoIfNeeded("npm", ["uninstall", "-g", wrongPackageName]);
117
129
  fixSpinner.text = i18n.t("installation:installingCorrectPackage");
118
130
  await execWithSudoIfNeeded("npm", ["install", "-g", "@anthropic-ai/claude-code", "--force"]);
119
- fixSpinner.succeed(ansis.green(`\u2713 ${i18n.t("installation:wrongPackageFixed")}`));
120
- console.log(ansis.green(`
131
+ fixSpinner.succeed(a.green(`\u2713 ${i18n.t("installation:wrongPackageFixed")}`));
132
+ console.log(a.green(`
121
133
  \u2713 ${i18n.t("installation:nowUsingCorrectPackage")}`));
122
134
  return true;
123
135
  } catch (error) {
124
- fixSpinner.fail(ansis.red(`\u2717 ${i18n.t("installation:wrongPackageFixFailed")}`));
125
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
126
- console.log(ansis.gray(`
136
+ fixSpinner.fail(a.red(`\u2717 ${i18n.t("installation:wrongPackageFixFailed")}`));
137
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
138
+ console.log(a.gray(`
127
139
  ${i18n.t("installation:manualFixHint")}:`));
128
- console.log(ansis.gray(` npm uninstall -g ${wrongPackageName}`));
129
- console.log(ansis.gray(` npm install -g @anthropic-ai/claude-code`));
140
+ console.log(a.gray(` npm uninstall -g ${wrongPackageName}`));
141
+ console.log(a.gray(` npm install -g @anthropic-ai/claude-code`));
130
142
  return false;
131
143
  }
132
144
  }
133
145
  if (!installed) {
134
- console.log(ansis.yellow(i18n.t("updater:claudeCodeNotInstalled")));
146
+ console.log(a.yellow(i18n.t("updater:claudeCodeNotInstalled")));
135
147
  return false;
136
148
  }
137
149
  if (!needsUpdate && !force) {
138
- console.log(ansis.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: currentVersion || "" })));
150
+ console.log(a.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: currentVersion || "" })));
139
151
  return true;
140
152
  }
141
153
  if (!latestVersion) {
142
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
154
+ console.log(a.yellow(i18n.t("updater:cannotCheckVersion")));
143
155
  return false;
144
156
  }
145
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
146
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
157
+ console.log(a.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
158
+ console.log(a.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
147
159
  if (isBroken) {
148
- console.log(ansis.yellow(i18n.t("updater:installationBroken")));
160
+ console.log(a.yellow(i18n.t("updater:installationBroken")));
149
161
  const fixResult = await fixBrokenNpmSymlink();
150
162
  if (fixResult.fixed) {
151
- console.log(ansis.green(`\u2714 ${i18n.t("updater:symlinkFixed")}: ${fixResult.message}`));
163
+ console.log(a.green(`\u2714 ${i18n.t("updater:symlinkFixed")}: ${fixResult.message}`));
152
164
  const recheckResult = await checkClaudeCodeVersion();
153
165
  if (!recheckResult.isBroken) {
154
- console.log(ansis.green(i18n.t("updater:installationRepaired")));
166
+ console.log(a.green(i18n.t("updater:installationRepaired")));
155
167
  if (!recheckResult.needsUpdate && !force) {
156
- console.log(ansis.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: recheckResult.currentVersion || "" })));
168
+ console.log(a.green(format(i18n.t("updater:claudeCodeUpToDate"), { version: recheckResult.currentVersion || "" })));
157
169
  return true;
158
170
  }
159
171
  }
160
172
  } else {
161
- console.log(ansis.gray(`\u2139 ${fixResult.message}`));
173
+ console.log(a.gray(`\u2139 ${fixResult.message}`));
162
174
  }
163
175
  }
164
176
  if (!skipPrompt) {
@@ -167,17 +179,17 @@ ${i18n.t("installation:manualFixHint")}:`));
167
179
  defaultValue: true
168
180
  });
169
181
  if (!confirm) {
170
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
182
+ console.log(a.gray(i18n.t("updater:updateSkipped")));
171
183
  return true;
172
184
  }
173
185
  } else {
174
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "Claude Code" })));
186
+ console.log(a.green(format(i18n.t("updater:autoUpdating"), { tool: "Claude Code" })));
175
187
  }
176
188
  const toolName = isHomebrew ? "Claude Code (Homebrew)" : "Claude Code";
177
189
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: toolName })).start();
178
190
  try {
179
191
  if (isHomebrew) {
180
- const result = await exec("brew", ["upgrade", "--cask", "claude-code"]);
192
+ const result = await q("brew", ["upgrade", "--cask", "claude-code"]);
181
193
  if (result.exitCode !== 0) {
182
194
  throw new Error(result.stderr || `Command failed with exit code ${result.exitCode}`);
183
195
  }
@@ -214,18 +226,18 @@ ${i18n.t("installation:manualFixHint")}:`));
214
226
  updateSpinner.succeed(format(i18n.t("updater:updateSuccess"), { tool: "Claude Code" }));
215
227
  } else {
216
228
  updateSpinner.warn(format(i18n.t("updater:updateSuccess"), { tool: "Claude Code" }));
217
- console.log(ansis.yellow(" \u26A0 claude command not found in PATH after update"));
218
- console.log(ansis.gray(" Try: npm install -g @anthropic-ai/claude-code"));
229
+ console.log(a.yellow(" \u26A0 claude command not found in PATH after update"));
230
+ console.log(a.gray(" Try: npm install -g @anthropic-ai/claude-code"));
219
231
  }
220
232
  return claudeWorks;
221
233
  } catch (error) {
222
234
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "Claude Code" }));
223
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
235
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
224
236
  return false;
225
237
  }
226
238
  } catch (error) {
227
239
  spinner.fail(i18n.t("updater:checkFailed"));
228
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
240
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
229
241
  return false;
230
242
  }
231
243
  }
@@ -236,30 +248,30 @@ async function updateCometixLine(force = false, skipPrompt = false) {
236
248
  const { installed, currentVersion, latestVersion, needsUpdate } = await checkCometixLineVersion();
237
249
  spinner.stop();
238
250
  if (!installed) {
239
- console.log(ansis.yellow(i18n.t("updater:cometixLineNotInstalled")));
251
+ console.log(a.yellow(i18n.t("updater:cometixLineNotInstalled")));
240
252
  return false;
241
253
  }
242
254
  if (!needsUpdate && !force) {
243
- console.log(ansis.green(format(i18n.t("updater:cometixLineUpToDate"), { version: currentVersion || "" })));
255
+ console.log(a.green(format(i18n.t("updater:cometixLineUpToDate"), { version: currentVersion || "" })));
244
256
  return true;
245
257
  }
246
258
  if (!latestVersion) {
247
- console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
259
+ console.log(a.yellow(i18n.t("updater:cannotCheckVersion")));
248
260
  return false;
249
261
  }
250
- console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
251
- console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
262
+ console.log(a.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
263
+ console.log(a.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
252
264
  if (!skipPrompt) {
253
265
  const confirm = await promptBoolean({
254
266
  message: format(i18n.t("updater:confirmUpdate"), { tool: "CCometixLine" }),
255
267
  defaultValue: true
256
268
  });
257
269
  if (!confirm) {
258
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
270
+ console.log(a.gray(i18n.t("updater:updateSkipped")));
259
271
  return true;
260
272
  }
261
273
  } else {
262
- console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCometixLine" })));
274
+ console.log(a.green(format(i18n.t("updater:autoUpdating"), { tool: "CCometixLine" })));
263
275
  }
264
276
  const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCometixLine" })).start();
265
277
  try {
@@ -268,18 +280,18 @@ async function updateCometixLine(force = false, skipPrompt = false) {
268
280
  return true;
269
281
  } catch (error) {
270
282
  updateSpinner.fail(format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" }));
271
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
283
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
272
284
  return false;
273
285
  }
274
286
  } catch (error) {
275
287
  spinner.fail(i18n.t("updater:checkFailed"));
276
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
288
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
277
289
  return false;
278
290
  }
279
291
  }
280
292
  async function checkAndUpdateTools(skipPrompt = false) {
281
293
  ensureI18nInitialized();
282
- console.log(ansis.bold.cyan(`
294
+ console.log(a.bold.cyan(`
283
295
  \u{1F50D} ${i18n.t("updater:checkingTools")}
284
296
  `));
285
297
  try {
@@ -289,26 +301,26 @@ async function checkAndUpdateTools(skipPrompt = false) {
289
301
  }
290
302
  } catch (error) {
291
303
  const errorMessage = error instanceof Error ? error.message : String(error);
292
- console.warn(ansis.yellow(`\u26A0 Duplicate installation check failed: ${errorMessage}`));
304
+ console.warn(a.yellow(`\u26A0 Duplicate installation check failed: ${errorMessage}`));
293
305
  }
294
306
  const results = [];
295
- console.log(ansis.bold("\u{1F4E6} CCJK"));
307
+ console.log(a.bold("\u{1F4E6} CCJK"));
296
308
  try {
297
309
  await checkCcjkVersionAndPrompt(skipPrompt);
298
310
  results.push({ tool: "CCJK", success: true });
299
311
  } catch (error) {
300
312
  const errorMessage = error instanceof Error ? error.message : String(error);
301
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCJK" })}: ${errorMessage}`));
313
+ console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCJK" })}: ${errorMessage}`));
302
314
  results.push({ tool: "CCJK", success: false, error: errorMessage });
303
315
  }
304
316
  console.log();
305
- console.log(ansis.bold("\u{1F500} CCR"));
317
+ console.log(a.bold("\u{1F500} CCR"));
306
318
  try {
307
319
  const success = await updateCcr(false, skipPrompt);
308
320
  results.push({ tool: "CCR", success });
309
321
  } catch (error) {
310
322
  const errorMessage = error instanceof Error ? error.message : String(error);
311
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCR" })}: ${errorMessage}`));
323
+ console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCR" })}: ${errorMessage}`));
312
324
  results.push({ tool: "CCR", success: false, error: errorMessage });
313
325
  }
314
326
  console.log();
@@ -317,7 +329,7 @@ async function checkAndUpdateTools(skipPrompt = false) {
317
329
  results.push({ tool: "Claude Code", success });
318
330
  } catch (error) {
319
331
  const errorMessage = error instanceof Error ? error.message : String(error);
320
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "Claude Code" })}: ${errorMessage}`));
332
+ console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "Claude Code" })}: ${errorMessage}`));
321
333
  results.push({ tool: "Claude Code", success: false, error: errorMessage });
322
334
  }
323
335
  console.log();
@@ -326,17 +338,17 @@ async function checkAndUpdateTools(skipPrompt = false) {
326
338
  results.push({ tool: "CCometixLine", success });
327
339
  } catch (error) {
328
340
  const errorMessage = error instanceof Error ? error.message : String(error);
329
- console.error(ansis.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" })}: ${errorMessage}`));
341
+ console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" })}: ${errorMessage}`));
330
342
  results.push({ tool: "CCometixLine", success: false, error: errorMessage });
331
343
  }
332
344
  if (skipPrompt) {
333
- console.log(ansis.bold.cyan(`
345
+ console.log(a.bold.cyan(`
334
346
  \u{1F4CB} ${i18n.t("updater:updateSummary")}`));
335
347
  for (const result of results) {
336
348
  if (result.success) {
337
- console.log(ansis.green(`\u2714 ${result.tool}: ${i18n.t("updater:success")}`));
349
+ console.log(a.green(`\u2714 ${result.tool}: ${i18n.t("updater:success")}`));
338
350
  } else {
339
- console.log(ansis.red(`\u274C ${result.tool}: ${i18n.t("updater:failed")} ${result.error ? `(${result.error})` : ""}`));
351
+ console.log(a.red(`\u274C ${result.tool}: ${i18n.t("updater:failed")} ${result.error ? `(${result.error})` : ""}`));
340
352
  }
341
353
  }
342
354
  }
@@ -345,21 +357,21 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
345
357
  try {
346
358
  const { readFileSync } = await import('node:fs');
347
359
  const { fileURLToPath } = await import('node:url');
348
- const { dirname, join } = await import('pathe');
360
+ const { dirname, join } = await import('./index8.mjs');
349
361
  const __dirname = dirname(fileURLToPath(import.meta.url));
350
362
  const pkgPath = join(__dirname, "..", "..", "package.json");
351
363
  const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
352
364
  const currentVersion = pkg.version;
353
- console.log(ansis.cyan(`${i18n.t("updater:currentVersion")} v${currentVersion}`));
354
- const { stdout } = await exec("npm", ["view", "ccjk", "version"]);
365
+ console.log(a.cyan(`${i18n.t("updater:currentVersion")} v${currentVersion}`));
366
+ const { stdout } = await q("npm", ["view", "ccjk", "version"]);
355
367
  const latestVersion = stdout.trim();
356
- console.log(ansis.cyan(`${i18n.t("updater:latestVersion")} v${latestVersion}`));
368
+ console.log(a.cyan(`${i18n.t("updater:latestVersion")} v${latestVersion}`));
357
369
  if (currentVersion === latestVersion) {
358
- console.log(ansis.green(`\u2713 ${i18n.t("updater:alreadyLatest")}`));
370
+ console.log(a.green(`\u2713 ${i18n.t("updater:alreadyLatest")}`));
359
371
  return;
360
372
  }
361
373
  if (!skipPrompt) {
362
- const inquirer = (await import('inquirer')).default;
374
+ const inquirer = (await import('./index3.mjs').then(function (n) { return n.c; })).default;
363
375
  const { shouldUpdate } = await inquirer.prompt([
364
376
  {
365
377
  type: "confirm",
@@ -369,29 +381,29 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
369
381
  }
370
382
  ]);
371
383
  if (!shouldUpdate) {
372
- console.log(ansis.gray(i18n.t("updater:updateSkipped")));
384
+ console.log(a.gray(i18n.t("updater:updateSkipped")));
373
385
  return;
374
386
  }
375
387
  }
376
- console.log(ansis.dim("Clearing npx cache..."));
388
+ console.log(a.dim("Clearing npx cache..."));
377
389
  try {
378
- await exec("npm", ["cache", "clean", "--force"]);
390
+ await q("npm", ["cache", "clean", "--force"]);
379
391
  } catch {
380
392
  }
381
- const ora2 = (await import('ora')).default;
393
+ const ora2 = (await import('./index7.mjs')).default;
382
394
  const updateSpinner = ora2("Updating CCJK...").start();
383
395
  try {
384
396
  await execWithSudoIfNeeded("npm", ["install", "-g", "ccjk@latest", "--force"]);
385
- updateSpinner.succeed(ansis.green(`\u2713 CCJK updated to v${latestVersion}`));
386
- console.log(ansis.yellow("\n\u26A0 Please restart ccjk to use the new version"));
397
+ updateSpinner.succeed(a.green(`\u2713 CCJK updated to v${latestVersion}`));
398
+ console.log(a.yellow("\n\u26A0 Please restart ccjk to use the new version"));
387
399
  process.exit(0);
388
400
  } catch (error) {
389
- updateSpinner.fail(ansis.red("\u2717 CCJK update failed"));
390
- console.error(ansis.red(error instanceof Error ? error.message : String(error)));
391
- console.log(ansis.gray("\nTry manually: npm install -g ccjk@latest"));
401
+ updateSpinner.fail(a.red("\u2717 CCJK update failed"));
402
+ console.error(a.red(error instanceof Error ? error.message : String(error)));
403
+ console.log(a.gray("\nTry manually: npm install -g ccjk@latest"));
392
404
  }
393
405
  } catch (error) {
394
- console.error(ansis.red(`${i18n.t("updater:checkFailed")} ${error instanceof Error ? error.message : String(error)}`));
406
+ console.error(a.red(`${i18n.t("updater:checkFailed")} ${error instanceof Error ? error.message : String(error)}`));
395
407
  }
396
408
  }
397
409
 
@@ -1,62 +1,61 @@
1
- import ansis from 'ansis';
1
+ import a from './index2.mjs';
2
2
  import { homepage, version } from './package.mjs';
3
- import { ensureI18nInitialized, i18n } from './index3.mjs';
3
+ import { ensureI18nInitialized, i18n } from './index5.mjs';
4
+ import '../shared/ccjk.BAGoDD49.mjs';
4
5
  import 'node:fs';
5
6
  import 'node:process';
6
7
  import 'node:url';
7
- import 'i18next';
8
- import 'i18next-fs-backend';
9
- import 'pathe';
8
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
10
9
 
11
10
  const theme = {
12
11
  // === Core Colors ===
13
12
  /** Terminal green - main text color */
14
- primary: ansis.green,
13
+ primary: a.green,
15
14
  /** Bright white - emphasis and highlights */
16
- secondary: ansis.white,
15
+ secondary: a.white,
17
16
  /** Dim green - subtle accents */
18
- accent: ansis.green,
17
+ accent: a.green,
19
18
  // === Semantic Colors ===
20
19
  /** Success - bright green checkmark */
21
- success: ansis.bold.green,
20
+ success: a.bold.green,
22
21
  /** Warning - amber/yellow for caution */
23
- warning: ansis.yellow,
22
+ warning: a.yellow,
24
23
  /** Error - red for failures */
25
- error: ansis.red,
24
+ error: a.red,
26
25
  /** Info - cyan for informational messages */
27
- info: ansis.cyan,
26
+ info: a.cyan,
28
27
  // === Text Styles ===
29
28
  /** Muted text - gray for less important info */
30
- muted: ansis.gray,
29
+ muted: a.gray,
31
30
  /** Bold text */
32
- bold: ansis.bold,
31
+ bold: a.bold,
33
32
  /** Dim text - for background info */
34
- dim: ansis.dim,
33
+ dim: a.dim,
35
34
  // === MUD-specific Styles ===
36
35
  /** Command prompt style - bright green */
37
- prompt: ansis.bold.green,
36
+ prompt: a.bold.green,
38
37
  /** System message - white */
39
- system: ansis.white,
38
+ system: a.white,
40
39
  /** NPC/hint text - dim green */
41
- hint: ansis.green,
40
+ hint: a.green,
42
41
  /** Quest/task highlight - bright */
43
- quest: ansis.bold.green,
42
+ quest: a.bold.green,
44
43
  /** Item/feature name - white bold */
45
- item: ansis.bold.white
44
+ item: a.bold.white
46
45
  };
47
46
  const status = {
48
47
  /** ✓ Success indicator */
49
- ok: (text) => `${ansis.green("\u2713")} ${text}`,
48
+ ok: (text) => `${a.green("\u2713")} ${text}`,
50
49
  /** ✗ Error indicator */
51
- fail: (text) => `${ansis.red("\u2717")} ${text}`,
50
+ fail: (text) => `${a.red("\u2717")} ${text}`,
52
51
  /** ⚠ Warning indicator */
53
- warn: (text) => `${ansis.yellow("\u26A0")} ${text}`,
52
+ warn: (text) => `${a.yellow("\u26A0")} ${text}`,
54
53
  /** ℹ Info indicator */
55
- info: (text) => `${ansis.cyan("\u2139")} ${text}`,
54
+ info: (text) => `${a.cyan("\u2139")} ${text}`,
56
55
  /** ○ Pending indicator */
57
- wait: (text) => `${ansis.gray("\u25CB")} ${text}`,
56
+ wait: (text) => `${a.gray("\u25CB")} ${text}`,
58
57
  /** ◐ In-progress indicator */
59
- work: (text) => `${ansis.green("\u25D0")} ${text}`};
58
+ work: (text) => `${a.green("\u25D0")} ${text}`};
60
59
  const box = {
61
60
  single: { tl: "\u250C", tr: "\u2510", bl: "\u2514", br: "\u2518", h: "\u2500", v: "\u2502" },
62
61
  double: { tl: "\u2554", tr: "\u2557", bl: "\u255A", br: "\u255D", h: "\u2550", v: "\u2551" },
@@ -112,15 +111,15 @@ function displayBanner(subtitle) {
112
111
  const subtitleText = subtitle || defaultSubtitle;
113
112
  const paddedSubtitle = padToDisplayWidth(subtitleText, 28);
114
113
  console.log(
115
- ansis.green.bold(`
114
+ a.green.bold(`
116
115
  \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557
117
116
  \u2551 \u2551
118
117
  \u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557 \u2551
119
118
  \u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2551
120
- \u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255D ${ansis.white.bold("JinKu")} \u2551
121
- \u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ${ansis.gray(`v${version}`)}${" ".repeat(Math.max(0, 17 - version.length))}\u2551
119
+ \u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255D ${a.white.bold("JinKu")} \u2551
120
+ \u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ${a.gray(`v${version}`)}${" ".repeat(Math.max(0, 17 - version.length))}\u2551
122
121
  \u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2557 \u2551
123
- \u2551 \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D ${ansis.gray(paddedSubtitle)} \u2551
122
+ \u2551 \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D ${a.gray(paddedSubtitle)} \u2551
124
123
  \u2551 \u2551
125
124
  \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D
126
125
  `)
@@ -128,16 +127,16 @@ function displayBanner(subtitle) {
128
127
  }
129
128
  function displayBannerWithInfo(subtitle) {
130
129
  displayBanner(subtitle);
131
- console.log(ansis.gray(` ${ansis.green("ccjk")} - Advanced AI Development Assistant`));
132
- console.log(ansis.gray(` ${ansis.green(homepage)}
130
+ console.log(a.gray(` ${a.green("ccjk")} - Advanced AI Development Assistant`));
131
+ console.log(a.gray(` ${a.green(homepage)}
133
132
  `));
134
133
  }
135
134
  function displayCommandDiscovery() {
136
135
  ensureI18nInitialized();
137
136
  const isZhCN = i18n.language === "zh-CN";
138
- console.log(ansis.green.bold(`
137
+ console.log(a.green.bold(`
139
138
  ${i18n.t("cli:commandDiscovery.title")}`));
140
- console.log(ansis.gray("\u2500".repeat(60)));
139
+ console.log(a.gray("\u2500".repeat(60)));
141
140
  const ccjkCommands = [
142
141
  { cmd: "/status", desc: i18n.t("cli:commandDiscovery.status"), descEn: "Brain Dashboard" },
143
142
  { cmd: "/health", desc: i18n.t("cli:commandDiscovery.health"), descEn: "Health Check" },
@@ -150,14 +149,14 @@ ${i18n.t("cli:commandDiscovery.title")}`));
150
149
  for (const { cmd, desc, descEn } of ccjkCommands) {
151
150
  const cmdPadded = cmd.padEnd(12);
152
151
  if (isZhCN) {
153
- console.log(` ${ansis.cyan(cmdPadded)} - ${ansis.white(desc)} ${ansis.gray(`(${descEn})`)}`);
152
+ console.log(` ${a.cyan(cmdPadded)} - ${a.white(desc)} ${a.gray(`(${descEn})`)}`);
154
153
  } else {
155
- console.log(` ${ansis.cyan(cmdPadded)} - ${ansis.white(desc)}`);
154
+ console.log(` ${a.cyan(cmdPadded)} - ${a.white(desc)}`);
156
155
  }
157
156
  }
158
- console.log(ansis.green.bold(`
157
+ console.log(a.green.bold(`
159
158
  ${i18n.t("cli:commandDiscovery.claudeCodeTitle")}`));
160
- console.log(ansis.gray("\u2500".repeat(60)));
159
+ console.log(a.gray("\u2500".repeat(60)));
161
160
  const claudeCommands = [
162
161
  { cmd: "/help", desc: i18n.t("cli:commandDiscovery.help"), descEn: "Show all commands" },
163
162
  { cmd: "/clear", desc: i18n.t("cli:commandDiscovery.clear"), descEn: "Clear conversation" },
@@ -166,13 +165,13 @@ ${i18n.t("cli:commandDiscovery.claudeCodeTitle")}`));
166
165
  for (const { cmd, desc, descEn } of claudeCommands) {
167
166
  const cmdPadded = cmd.padEnd(12);
168
167
  if (isZhCN) {
169
- console.log(` ${ansis.cyan(cmdPadded)} - ${ansis.white(desc)} ${ansis.gray(`(${descEn})`)}`);
168
+ console.log(` ${a.cyan(cmdPadded)} - ${a.white(desc)} ${a.gray(`(${descEn})`)}`);
170
169
  } else {
171
- console.log(` ${ansis.cyan(cmdPadded)} - ${ansis.white(desc)}`);
170
+ console.log(` ${a.cyan(cmdPadded)} - ${a.white(desc)}`);
172
171
  }
173
172
  }
174
- console.log(ansis.gray("\n" + "\u2500".repeat(60)));
175
- console.log(ansis.gray(` ${i18n.t("cli:commandDiscovery.footer")}
173
+ console.log(a.gray("\n" + "\u2500".repeat(60)));
174
+ console.log(a.gray(` ${i18n.t("cli:commandDiscovery.footer")}
176
175
  `));
177
176
  }
178
177
  const STATUS = {