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,37 +1,50 @@
1
- import ansis from 'ansis';
2
- import { i18n } from './index3.mjs';
1
+ import a from './index2.mjs';
2
+ import { i18n } from './index5.mjs';
3
3
  import 'node:child_process';
4
4
  import 'node:process';
5
5
  import { M as MCP_SERVICE_TIERS, i as isCoreService, g as getServicesByTier, c as checkMcpPerformance, f as formatPerformanceWarning, a as calculateResourceUsage, b as getOptimizationSuggestions, d as getMcpTierConfig } from './mcp-performance.mjs';
6
6
  import { r as readMcpConfig, b as backupMcpConfig, w as writeMcpConfig } from './claude-config.mjs';
7
- import inquirer from 'inquirer';
7
+ import { i as inquirer } from './index3.mjs';
8
8
  import { M as MCP_SERVICE_CONFIGS } from './codex.mjs';
9
- import { d as displayInstalledMcpServices, b as isMcpServiceInstalled, i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.BOIUTf5z.mjs';
9
+ import { d as displayInstalledMcpServices, b as isMcpServiceInstalled, i as installMcpService, u as uninstallMcpService } from '../shared/ccjk.waa2ikKJ.mjs';
10
10
  import { existsSync, unlinkSync, statSync, mkdirSync, readFileSync } from 'node:fs';
11
11
  import { homedir } from 'node:os';
12
- import { join } from 'pathe';
13
12
  import { writeFileAtomic } from './fs-operations.mjs';
13
+ import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
14
+ import '../shared/ccjk.BAGoDD49.mjs';
14
15
  import 'node:url';
15
- import 'i18next';
16
- import 'i18next-fs-backend';
17
16
  import './constants.mjs';
18
17
  import './json-config.mjs';
19
- import 'dayjs';
18
+ import '../shared/ccjk.RyizuzOI.mjs';
20
19
  import 'node:crypto';
21
20
  import 'node:fs/promises';
22
21
  import './platform.mjs';
23
- import 'tinyexec';
24
- import 'ora';
25
- import 'semver';
26
- import 'smol-toml';
22
+ import './main.mjs';
23
+ import 'module';
24
+ import 'node:path';
25
+ import 'node:stream';
26
+ import 'node:readline';
27
+ import 'stream';
28
+ import 'node:tty';
29
+ import 'node:async_hooks';
30
+ import '../shared/ccjk.Cjgrln_h.mjs';
31
+ import 'node:util';
32
+ import 'tty';
33
+ import 'fs';
34
+ import 'child_process';
35
+ import 'buffer';
36
+ import 'string_decoder';
37
+ import './index7.mjs';
38
+ import '../shared/ccjk.CxpGa6MC.mjs';
39
+ import '../shared/ccjk.BBtCGd_g.mjs';
27
40
  import './ccjk-config.mjs';
41
+ import './index6.mjs';
28
42
  import './config.mjs';
29
43
  import '../shared/ccjk.BiCrMV5O.mjs';
30
44
  import '../shared/ccjk.BFQ7yr5S.mjs';
31
45
  import './prompts.mjs';
32
46
  import './package.mjs';
33
- import '../shared/ccjk.DHbrGcgg.mjs';
34
- import 'inquirer-toggle';
47
+ import '../shared/ccjk.DOwtZMk8.mjs';
35
48
 
36
49
  function getReleasableServices(configuredServices, tier) {
37
50
  return configuredServices.filter((serviceId) => {
@@ -96,13 +109,13 @@ async function mcpRelease(options = {}) {
96
109
  const lang = options.lang || i18n.language || "en";
97
110
  const isZh = lang === "zh-CN";
98
111
  console.log("");
99
- console.log(ansis.bold.cyan(isZh ? "\u{1F9F9} MCP \u670D\u52A1\u91CA\u653E" : "\u{1F9F9} MCP Service Release"));
100
- console.log(ansis.dim("\u2500".repeat(50)));
112
+ console.log(a.bold.cyan(isZh ? "\u{1F9F9} MCP \u670D\u52A1\u91CA\u653E" : "\u{1F9F9} MCP Service Release"));
113
+ console.log(a.dim("\u2500".repeat(50)));
101
114
  console.log("");
102
115
  const config = readMcpConfig();
103
116
  const configuredServices = config?.mcpServers ? Object.keys(config.mcpServers) : [];
104
117
  if (configuredServices.length === 0) {
105
- console.log(ansis.yellow(isZh ? "\u6CA1\u6709\u914D\u7F6E\u4EFB\u4F55 MCP \u670D\u52A1" : "No MCP services configured"));
118
+ console.log(a.yellow(isZh ? "\u6CA1\u6709\u914D\u7F6E\u4EFB\u4F55 MCP \u670D\u52A1" : "No MCP services configured"));
106
119
  return;
107
120
  }
108
121
  let servicesToRelease;
@@ -114,37 +127,37 @@ async function mcpRelease(options = {}) {
114
127
  servicesToRelease = getReleasableServices(configuredServices, "all");
115
128
  }
116
129
  if (servicesToRelease.length === 0) {
117
- console.log(ansis.green(isZh ? "\u2714 \u6CA1\u6709\u53EF\u91CA\u653E\u7684\u670D\u52A1" : "\u2714 No services to release"));
130
+ console.log(a.green(isZh ? "\u2714 \u6CA1\u6709\u53EF\u91CA\u653E\u7684\u670D\u52A1" : "\u2714 No services to release"));
118
131
  return;
119
132
  }
120
133
  console.log(isZh ? "\u5C06\u91CA\u653E\u4EE5\u4E0B\u670D\u52A1:" : "Services to release:");
121
134
  for (const serviceId of servicesToRelease) {
122
135
  const tier = MCP_SERVICE_TIERS[serviceId] || "ondemand";
123
- console.log(` ${ansis.yellow("\u2022")} ${serviceId} ${ansis.dim(`[${tier}]`)}`);
136
+ console.log(` ${a.yellow("\u2022")} ${serviceId} ${a.dim(`[${tier}]`)}`);
124
137
  }
125
138
  console.log("");
126
139
  if (options.dryRun) {
127
- console.log(ansis.green(isZh ? "(\u6A21\u62DF\u8FD0\u884C - \u4E0D\u4F1A\u5B9E\u9645\u4FEE\u6539\u914D\u7F6E)" : "(Dry run - no changes will be made)"));
140
+ console.log(a.green(isZh ? "(\u6A21\u62DF\u8FD0\u884C - \u4E0D\u4F1A\u5B9E\u9645\u4FEE\u6539\u914D\u7F6E)" : "(Dry run - no changes will be made)"));
128
141
  return;
129
142
  }
130
143
  const result = await releaseServices(servicesToRelease, options);
131
144
  if (result.success) {
132
- console.log(ansis.green(`\u2714 ${isZh ? "\u5DF2\u91CA\u653E" : "Released"} ${result.releasedServices.length} ${isZh ? "\u4E2A\u670D\u52A1" : "services"}`));
145
+ console.log(a.green(`\u2714 ${isZh ? "\u5DF2\u91CA\u653E" : "Released"} ${result.releasedServices.length} ${isZh ? "\u4E2A\u670D\u52A1" : "services"}`));
133
146
  if (result.skippedServices.length > 0) {
134
- console.log(ansis.yellow(`${isZh ? "\u8DF3\u8FC7" : "Skipped"}: ${result.skippedServices.join(", ")}`));
147
+ console.log(a.yellow(`${isZh ? "\u8DF3\u8FC7" : "Skipped"}: ${result.skippedServices.join(", ")}`));
135
148
  }
136
149
  const remaining = configuredServices.filter((s) => !result.releasedServices.includes(s));
137
150
  console.log("");
138
- console.log(ansis.dim(`${isZh ? "\u5269\u4F59\u670D\u52A1" : "Remaining services"}: ${remaining.length}`));
151
+ console.log(a.dim(`${isZh ? "\u5269\u4F59\u670D\u52A1" : "Remaining services"}: ${remaining.length}`));
139
152
  if (remaining.length > 0) {
140
- console.log(ansis.dim(` ${remaining.join(", ")}`));
153
+ console.log(a.dim(` ${remaining.join(", ")}`));
141
154
  }
142
155
  console.log("");
143
- console.log(ansis.yellow(isZh ? "\u26A0\uFE0F \u8BF7\u91CD\u542F Claude Code \u4EE5\u4F7F\u66F4\u6539\u751F\u6548" : "\u26A0\uFE0F Please restart Claude Code for changes to take effect"));
156
+ console.log(a.yellow(isZh ? "\u26A0\uFE0F \u8BF7\u91CD\u542F Claude Code \u4EE5\u4F7F\u66F4\u6539\u751F\u6548" : "\u26A0\uFE0F Please restart Claude Code for changes to take effect"));
144
157
  } else {
145
- console.log(ansis.red(`\u2716 ${isZh ? "\u91CA\u653E\u5931\u8D25" : "Release failed"}`));
158
+ console.log(a.red(`\u2716 ${isZh ? "\u91CA\u653E\u5931\u8D25" : "Release failed"}`));
146
159
  for (const error of result.errors) {
147
- console.log(ansis.red(` ${error}`));
160
+ console.log(a.red(` ${error}`));
148
161
  }
149
162
  }
150
163
  }
@@ -187,39 +200,39 @@ async function mcpDoctor(options = {}) {
187
200
  const lang = options.lang || i18n.language || "en";
188
201
  const isZh = lang === "zh-CN";
189
202
  console.log("");
190
- console.log(ansis.bold.cyan(isZh ? "\u{1F50D} MCP \u5065\u5EB7\u68C0\u67E5" : "\u{1F50D} MCP Health Check"));
191
- console.log(ansis.dim("\u2550".repeat(60)));
203
+ console.log(a.bold.cyan(isZh ? "\u{1F50D} MCP \u5065\u5EB7\u68C0\u67E5" : "\u{1F50D} MCP Health Check"));
204
+ console.log(a.dim("\u2550".repeat(60)));
192
205
  console.log("");
193
206
  const config = readMcpConfig();
194
207
  const configuredServices = config?.mcpServers ? Object.keys(config.mcpServers) : [];
195
- console.log(ansis.bold(isZh ? "\u{1F4CA} \u670D\u52A1\u7EDF\u8BA1" : "\u{1F4CA} Service Statistics"));
196
- console.log(ansis.dim("\u2500".repeat(40)));
208
+ console.log(a.bold(isZh ? "\u{1F4CA} \u670D\u52A1\u7EDF\u8BA1" : "\u{1F4CA} Service Statistics"));
209
+ console.log(a.dim("\u2500".repeat(40)));
197
210
  const coreServices = getServicesByTier("core");
198
211
  const ondemandServices = getServicesByTier("ondemand");
199
212
  const scenarioServices = getServicesByTier("scenario");
200
213
  const configuredCore = configuredServices.filter((s) => coreServices.includes(s));
201
214
  const configuredOndemand = configuredServices.filter((s) => ondemandServices.includes(s));
202
215
  const configuredScenario = configuredServices.filter((s) => scenarioServices.includes(s));
203
- console.log(` ${isZh ? "\u603B\u8BA1" : "Total"}: ${ansis.bold(configuredServices.length.toString())} ${isZh ? "\u4E2A\u670D\u52A1" : "services"}`);
204
- console.log(` ${ansis.green("Core")}: ${configuredCore.length}/${coreServices.length}`);
205
- console.log(` ${ansis.yellow("OnDemand")}: ${configuredOndemand.length}/${ondemandServices.length}`);
206
- console.log(` ${ansis.green("Scenario")}: ${configuredScenario.length}/${scenarioServices.length}`);
216
+ console.log(` ${isZh ? "\u603B\u8BA1" : "Total"}: ${a.bold(configuredServices.length.toString())} ${isZh ? "\u4E2A\u670D\u52A1" : "services"}`);
217
+ console.log(` ${a.green("Core")}: ${configuredCore.length}/${coreServices.length}`);
218
+ console.log(` ${a.yellow("OnDemand")}: ${configuredOndemand.length}/${ondemandServices.length}`);
219
+ console.log(` ${a.green("Scenario")}: ${configuredScenario.length}/${scenarioServices.length}`);
207
220
  console.log("");
208
221
  const perfWarning = checkMcpPerformance(configuredServices.length);
209
222
  if (perfWarning) {
210
- console.log(ansis.bold(isZh ? "\u26A0\uFE0F \u6027\u80FD\u8B66\u544A" : "\u26A0\uFE0F Performance Warning"));
211
- console.log(ansis.dim("\u2500".repeat(40)));
223
+ console.log(a.bold(isZh ? "\u26A0\uFE0F \u6027\u80FD\u8B66\u544A" : "\u26A0\uFE0F Performance Warning"));
224
+ console.log(a.dim("\u2500".repeat(40)));
212
225
  console.log(formatPerformanceWarning(perfWarning, lang));
213
226
  console.log("");
214
227
  }
215
228
  const resourceUsage = calculateResourceUsage(configuredServices.length);
216
- console.log(ansis.bold(isZh ? "\u{1F4BB} \u8D44\u6E90\u4F7F\u7528\u4F30\u7B97" : "\u{1F4BB} Resource Usage Estimate"));
217
- console.log(ansis.dim("\u2500".repeat(40)));
229
+ console.log(a.bold(isZh ? "\u{1F4BB} \u8D44\u6E90\u4F7F\u7528\u4F30\u7B97" : "\u{1F4BB} Resource Usage Estimate"));
230
+ console.log(a.dim("\u2500".repeat(40)));
218
231
  const ratingColors = {
219
- low: ansis.green,
220
- medium: ansis.yellow,
221
- high: ansis.red,
222
- critical: ansis.bgRed.white
232
+ low: a.green,
233
+ medium: a.yellow,
234
+ high: a.red,
235
+ critical: a.bgRed.white
223
236
  };
224
237
  const ratingLabels = {
225
238
  low: isZh ? "\u4F4E" : "Low",
@@ -232,35 +245,35 @@ async function mcpDoctor(options = {}) {
232
245
  console.log(` ${isZh ? "\u8BC4\u7EA7" : "Rating"}: ${ratingColors[resourceUsage.rating](ratingLabels[resourceUsage.rating])}`);
233
246
  console.log("");
234
247
  if (options.verbose || options.service) {
235
- console.log(ansis.bold(isZh ? "\u{1F527} \u670D\u52A1\u8BE6\u60C5" : "\u{1F527} Service Details"));
236
- console.log(ansis.dim("\u2500".repeat(40)));
248
+ console.log(a.bold(isZh ? "\u{1F527} \u670D\u52A1\u8BE6\u60C5" : "\u{1F527} Service Details"));
249
+ console.log(a.dim("\u2500".repeat(40)));
237
250
  const servicesToCheck = options.service ? [options.service] : configuredServices;
238
251
  for (const serviceId of servicesToCheck) {
239
252
  const health = checkServiceHealth(serviceId, configuredServices);
240
253
  const statusIcon = {
241
- healthy: ansis.green("\u2714"),
242
- warning: ansis.yellow("\u26A0"),
243
- error: ansis.red("\u2716"),
244
- unknown: ansis.gray("?")
254
+ healthy: a.green("\u2714"),
255
+ warning: a.yellow("\u26A0"),
256
+ error: a.red("\u2716"),
257
+ unknown: a.gray("?")
245
258
  };
246
259
  const tierColor = {
247
- core: ansis.green,
248
- ondemand: ansis.yellow,
249
- scenario: ansis.green
260
+ core: a.green,
261
+ ondemand: a.yellow,
262
+ scenario: a.green
250
263
  };
251
- console.log(` ${statusIcon[health.status]} ${ansis.bold(serviceId)}`);
252
- console.log(` ${isZh ? "\u5C42\u7EA7" : "Tier"}: ${(tierColor[health.tier] || ansis.gray)(health.tier)}`);
264
+ console.log(` ${statusIcon[health.status]} ${a.bold(serviceId)}`);
265
+ console.log(` ${isZh ? "\u5C42\u7EA7" : "Tier"}: ${(tierColor[health.tier] || a.gray)(health.tier)}`);
253
266
  if (health.idleTimeout) {
254
267
  console.log(` ${isZh ? "\u7A7A\u95F2\u8D85\u65F6" : "Idle Timeout"}: ${health.idleTimeout}s`);
255
268
  }
256
269
  if (health.issues.length > 0) {
257
270
  for (const issue of health.issues) {
258
- console.log(` ${ansis.yellow("!")} ${issue}`);
271
+ console.log(` ${a.yellow("!")} ${issue}`);
259
272
  }
260
273
  }
261
274
  if (health.suggestions.length > 0) {
262
275
  for (const suggestion of health.suggestions) {
263
- console.log(` ${ansis.dim("\u2192")} ${suggestion}`);
276
+ console.log(` ${a.dim("\u2192")} ${suggestion}`);
264
277
  }
265
278
  }
266
279
  console.log("");
@@ -268,21 +281,21 @@ async function mcpDoctor(options = {}) {
268
281
  }
269
282
  const suggestions = getOptimizationSuggestions(configuredServices);
270
283
  if (suggestions.length > 0) {
271
- console.log(ansis.bold(isZh ? "\u{1F4A1} \u4F18\u5316\u5EFA\u8BAE" : "\u{1F4A1} Optimization Suggestions"));
272
- console.log(ansis.dim("\u2500".repeat(40)));
284
+ console.log(a.bold(isZh ? "\u{1F4A1} \u4F18\u5316\u5EFA\u8BAE" : "\u{1F4A1} Optimization Suggestions"));
285
+ console.log(a.dim("\u2500".repeat(40)));
273
286
  for (const suggestion of suggestions) {
274
287
  console.log(` \u2022 ${suggestion}`);
275
288
  }
276
289
  console.log("");
277
290
  }
278
- console.log(ansis.bold(isZh ? "\u{1F680} \u5FEB\u901F\u64CD\u4F5C" : "\u{1F680} Quick Actions"));
279
- console.log(ansis.dim("\u2500".repeat(40)));
280
- console.log(` ${ansis.green("ccjk mcp profile use minimal")} - ${isZh ? "\u5207\u6362\u5230\u6781\u7B80\u6A21\u5F0F" : "Switch to minimal mode"}`);
281
- console.log(` ${ansis.green("ccjk mcp profile list")} - ${isZh ? "\u67E5\u770B\u6240\u6709\u9884\u8BBE" : "View all profiles"}`);
282
- console.log(` ${ansis.green("ccjk mcp release")} - ${isZh ? "\u91CA\u653E\u7A7A\u95F2\u670D\u52A1" : "Release idle services"}`);
291
+ console.log(a.bold(isZh ? "\u{1F680} \u5FEB\u901F\u64CD\u4F5C" : "\u{1F680} Quick Actions"));
292
+ console.log(a.dim("\u2500".repeat(40)));
293
+ console.log(` ${a.green("ccjk mcp profile use minimal")} - ${isZh ? "\u5207\u6362\u5230\u6781\u7B80\u6A21\u5F0F" : "Switch to minimal mode"}`);
294
+ console.log(` ${a.green("ccjk mcp profile list")} - ${isZh ? "\u67E5\u770B\u6240\u6709\u9884\u8BBE" : "View all profiles"}`);
295
+ console.log(` ${a.green("ccjk mcp release")} - ${isZh ? "\u91CA\u653E\u7A7A\u95F2\u670D\u52A1" : "Release idle services"}`);
283
296
  console.log("");
284
- console.log(ansis.dim("\u2550".repeat(60)));
285
- const summaryStatus = perfWarning?.level === "critical" ? ansis.red(isZh ? "\u9700\u8981\u4F18\u5316" : "Needs Optimization") : perfWarning?.level === "warning" ? ansis.yellow(isZh ? "\u5EFA\u8BAE\u4F18\u5316" : "Optimization Recommended") : ansis.green(isZh ? "\u72B6\u6001\u826F\u597D" : "Healthy");
297
+ console.log(a.dim("\u2550".repeat(60)));
298
+ const summaryStatus = perfWarning?.level === "critical" ? a.red(isZh ? "\u9700\u8981\u4F18\u5316" : "Needs Optimization") : perfWarning?.level === "warning" ? a.yellow(isZh ? "\u5EFA\u8BAE\u4F18\u5316" : "Optimization Recommended") : a.green(isZh ? "\u72B6\u6001\u826F\u597D" : "Healthy");
286
299
  console.log(`${isZh ? "\u603B\u4F53\u72B6\u6001" : "Overall Status"}: ${summaryStatus}`);
287
300
  console.log("");
288
301
  }
@@ -844,46 +857,46 @@ async function mcpSearch(keyword, options = {}) {
844
857
  };
845
858
  const result = await client.search(searchOptions);
846
859
  if (result.packages.length === 0) {
847
- console.log(ansis.yellow(`
860
+ console.log(a.yellow(`
848
861
  ${i18n.t("mcp:market.noResults", { keyword })}`));
849
862
  return;
850
863
  }
851
- console.log(ansis.green.bold(`
864
+ console.log(a.green.bold(`
852
865
  ${i18n.t("mcp:market.searchResults", { count: result.total, keyword })}
853
866
  `));
854
867
  result.packages.forEach((pkg, idx) => {
855
868
  const lang = i18n.language;
856
- const verifiedBadge = pkg.verified ? ansis.green("\u2713") : ansis.dim("\u25CB");
857
- console.log(`${ansis.green(`${idx + 1}.`)} ${ansis.bold(pkg.name)} ${verifiedBadge} ${ansis.dim(`[${pkg.category}]`)}`);
869
+ const verifiedBadge = pkg.verified ? a.green("\u2713") : a.dim("\u25CB");
870
+ console.log(`${a.green(`${idx + 1}.`)} ${a.bold(pkg.name)} ${verifiedBadge} ${a.dim(`[${pkg.category}]`)}`);
858
871
  console.log(` ${pkg.description[lang] || pkg.description.en}`);
859
- console.log(` ${ansis.dim(`\u{1F4E5} ${pkg.downloads.toLocaleString()} | \u2B50 ${pkg.rating.toFixed(1)}/5.0`)}`);
860
- console.log(` ${ansis.dim(pkg.id)}
872
+ console.log(` ${a.dim(`\u{1F4E5} ${pkg.downloads.toLocaleString()} | \u2B50 ${pkg.rating.toFixed(1)}/5.0`)}`);
873
+ console.log(` ${a.dim(pkg.id)}
861
874
  `);
862
875
  });
863
876
  if (result.hasMore) {
864
- console.log(ansis.dim(`
877
+ console.log(a.dim(`
865
878
  ${i18n.t("mcp:market.moreResults", { total: result.total, shown: result.packages.length })}`));
866
879
  }
867
880
  } catch {
868
- console.log(ansis.yellow(`
881
+ console.log(a.yellow(`
869
882
  ${i18n.t("mcp:market.apiUnavailable")}`));
870
- console.log(ansis.dim(i18n.t("mcp:market.usingLocalData")));
883
+ console.log(a.dim(i18n.t("mcp:market.usingLocalData")));
871
884
  const localServers = getLocalFallbackServices();
872
885
  const results = localServers.filter(
873
886
  (s) => s.name.toLowerCase().includes(keyword.toLowerCase()) || s.description.toLowerCase().includes(keyword.toLowerCase()) || s.category.toLowerCase().includes(keyword.toLowerCase())
874
887
  );
875
888
  if (results.length === 0) {
876
- console.log(ansis.yellow(`
889
+ console.log(a.yellow(`
877
890
  ${i18n.t("mcp:market.noResults", { keyword })}`));
878
891
  return;
879
892
  }
880
- console.log(ansis.green.bold(`
893
+ console.log(a.green.bold(`
881
894
  ${i18n.t("mcp:market.searchResults", { count: results.length, keyword })}
882
895
  `));
883
896
  results.forEach((server, idx) => {
884
- console.log(`${ansis.green(`${idx + 1}.`)} ${ansis.bold(server.name)} ${ansis.dim(`[${server.category}]`)}`);
897
+ console.log(`${a.green(`${idx + 1}.`)} ${a.bold(server.name)} ${a.dim(`[${server.category}]`)}`);
885
898
  console.log(` ${server.description}`);
886
- console.log(` ${ansis.dim(server.package)}
899
+ console.log(` ${a.dim(server.package)}
887
900
  `);
888
901
  });
889
902
  }
@@ -903,21 +916,21 @@ async function mcpInstall(serverName, options = {}) {
903
916
  }
904
917
  }
905
918
  if (!server) {
906
- console.log(ansis.red(`
919
+ console.log(a.red(`
907
920
  ${i18n.t("mcp:market.serverNotFound", { name: serverName })}`));
908
921
  return;
909
922
  }
910
923
  if (server.serviceId) {
911
924
  const isInstalled = await isMcpServiceInstalled(server.serviceId, options.tool);
912
925
  if (isInstalled) {
913
- console.log(ansis.yellow(`
926
+ console.log(a.yellow(`
914
927
  ${i18n.t("mcp:installer.alreadyInstalled", { name: server.name })}`));
915
928
  return;
916
929
  }
917
- console.log(ansis.green(`
930
+ console.log(a.green(`
918
931
  ${i18n.t("mcp:market.installing", { name: server.name })}`));
919
932
  if (server.requiresApiKey) {
920
- console.log(ansis.dim(i18n.t("mcp:installer.requiresApiKey")));
933
+ console.log(a.dim(i18n.t("mcp:installer.requiresApiKey")));
921
934
  }
922
935
  console.log("");
923
936
  const { confirm } = await inquirer.prompt([{
@@ -927,25 +940,25 @@ ${i18n.t("mcp:market.installing", { name: server.name })}`));
927
940
  default: true
928
941
  }]);
929
942
  if (!confirm) {
930
- console.log(ansis.yellow(i18n.t("mcp:market.cancelled")));
943
+ console.log(a.yellow(i18n.t("mcp:market.cancelled")));
931
944
  return;
932
945
  }
933
946
  const result = await installMcpService(server.serviceId, options.tool);
934
947
  if (result.success) {
935
- console.log(ansis.green(`
948
+ console.log(a.green(`
936
949
  ${i18n.t("mcp:market.installSuccess", { name: server.name })}`));
937
- console.log(ansis.dim(i18n.t("mcp:installer.restartRequired")));
950
+ console.log(a.dim(i18n.t("mcp:installer.restartRequired")));
938
951
  } else {
939
- console.log(ansis.red(`
952
+ console.log(a.red(`
940
953
  ${i18n.t("mcp:installer.installFailed", { name: server.name })}`));
941
954
  if (result.error) {
942
- console.log(ansis.dim(result.error));
955
+ console.log(a.dim(result.error));
943
956
  }
944
957
  }
945
958
  } else {
946
- console.log(ansis.green(`
959
+ console.log(a.green(`
947
960
  ${i18n.t("mcp:market.installing", { name: server.name })}`));
948
- console.log(ansis.dim(`Package: ${server.package}
961
+ console.log(a.dim(`Package: ${server.package}
949
962
  `));
950
963
  const { confirm } = await inquirer.prompt([{
951
964
  type: "confirm",
@@ -954,12 +967,12 @@ ${i18n.t("mcp:market.installing", { name: server.name })}`));
954
967
  default: true
955
968
  }]);
956
969
  if (!confirm) {
957
- console.log(ansis.yellow(i18n.t("mcp:market.cancelled")));
970
+ console.log(a.yellow(i18n.t("mcp:market.cancelled")));
958
971
  return;
959
972
  }
960
- console.log(ansis.green(`
973
+ console.log(a.green(`
961
974
  ${i18n.t("mcp:market.installSuccess", { name: server.name })}`));
962
- console.log(ansis.dim(i18n.t("mcp:market.manualConfig")));
975
+ console.log(a.dim(i18n.t("mcp:market.manualConfig")));
963
976
  }
964
977
  }
965
978
  async function mcpUninstall(serverName, options = {}) {
@@ -968,7 +981,7 @@ async function mcpUninstall(serverName, options = {}) {
968
981
  const serviceId = server?.serviceId || serverName;
969
982
  const isInstalled = await isMcpServiceInstalled(serviceId, options.tool);
970
983
  if (!isInstalled) {
971
- console.log(ansis.yellow(`
984
+ console.log(a.yellow(`
972
985
  ${i18n.t("mcp:installer.serviceNotInstalled", { id: serverName })}`));
973
986
  return;
974
987
  }
@@ -980,19 +993,19 @@ ${i18n.t("mcp:installer.serviceNotInstalled", { id: serverName })}`));
980
993
  default: false
981
994
  }]);
982
995
  if (!confirm) {
983
- console.log(ansis.yellow(i18n.t("mcp:market.cancelled")));
996
+ console.log(a.yellow(i18n.t("mcp:market.cancelled")));
984
997
  return;
985
998
  }
986
999
  const result = await uninstallMcpService(serviceId, options.tool);
987
1000
  if (result.success) {
988
- console.log(ansis.green(`
1001
+ console.log(a.green(`
989
1002
  ${i18n.t("mcp:installer.uninstallSuccess", { name: displayName })}`));
990
- console.log(ansis.dim(i18n.t("mcp:installer.restartRequired")));
1003
+ console.log(a.dim(i18n.t("mcp:installer.restartRequired")));
991
1004
  } else {
992
- console.log(ansis.red(`
1005
+ console.log(a.red(`
993
1006
  ${i18n.t("mcp:installer.uninstallFailed", { name: displayName })}`));
994
1007
  if (result.error) {
995
- console.log(ansis.dim(result.error));
1008
+ console.log(a.dim(result.error));
996
1009
  }
997
1010
  }
998
1011
  }
@@ -1071,24 +1084,24 @@ async function listProfiles(options = {}) {
1071
1084
  const lang = options.lang || i18n.language || "en";
1072
1085
  const isZh = lang === "zh-CN";
1073
1086
  console.log("");
1074
- console.log(ansis.bold.cyan(isZh ? "\u{1F4CB} \u53EF\u7528\u7684 MCP \u914D\u7F6E\u9884\u8BBE" : "\u{1F4CB} Available MCP Profiles"));
1075
- console.log(ansis.dim("\u2500".repeat(50)));
1087
+ console.log(a.bold.cyan(isZh ? "\u{1F4CB} \u53EF\u7528\u7684 MCP \u914D\u7F6E\u9884\u8BBE" : "\u{1F4CB} Available MCP Profiles"));
1088
+ console.log(a.dim("\u2500".repeat(50)));
1076
1089
  console.log("");
1077
1090
  for (const profile of MCP_PROFILES) {
1078
1091
  const name = getProfileName(profile, lang);
1079
1092
  const desc = getProfileDescription(profile, lang);
1080
1093
  const serviceCount = profile.services.length === 0 ? isZh ? "\u5168\u90E8" : "All" : profile.services.length.toString();
1081
- const defaultBadge = profile.isDefault ? ansis.green(isZh ? " [\u9ED8\u8BA4]" : " [default]") : "";
1082
- console.log(`${ansis.bold.green(profile.id)}${defaultBadge}`);
1083
- console.log(` ${ansis.white(name)} - ${ansis.dim(desc)}`);
1084
- console.log(` ${ansis.dim(isZh ? "\u670D\u52A1\u6570\u91CF" : "Services")}: ${serviceCount}`);
1094
+ const defaultBadge = profile.isDefault ? a.green(isZh ? " [\u9ED8\u8BA4]" : " [default]") : "";
1095
+ console.log(`${a.bold.green(profile.id)}${defaultBadge}`);
1096
+ console.log(` ${a.white(name)} - ${a.dim(desc)}`);
1097
+ console.log(` ${a.dim(isZh ? "\u670D\u52A1\u6570\u91CF" : "Services")}: ${serviceCount}`);
1085
1098
  if (profile.services.length > 0 && profile.services.length <= 6) {
1086
- console.log(` ${ansis.dim(profile.services.join(", "))}`);
1099
+ console.log(` ${a.dim(profile.services.join(", "))}`);
1087
1100
  }
1088
1101
  console.log("");
1089
1102
  }
1090
- console.log(ansis.dim("\u2500".repeat(50)));
1091
- console.log(ansis.dim(isZh ? "\u4F7F\u7528 `ccjk mcp profile use <id>` \u5207\u6362\u914D\u7F6E" : "Use `ccjk mcp profile use <id>` to switch profile"));
1103
+ console.log(a.dim("\u2500".repeat(50)));
1104
+ console.log(a.dim(isZh ? "\u4F7F\u7528 `ccjk mcp profile use <id>` \u5207\u6362\u914D\u7F6E" : "Use `ccjk mcp profile use <id>` to switch profile"));
1092
1105
  console.log("");
1093
1106
  }
1094
1107
  async function useProfile(profileId, options = {}) {
@@ -1096,13 +1109,13 @@ async function useProfile(profileId, options = {}) {
1096
1109
  const isZh = lang === "zh-CN";
1097
1110
  const profile = getProfileById(profileId);
1098
1111
  if (!profile) {
1099
- console.log(ansis.red(isZh ? `\u274C \u672A\u627E\u5230\u914D\u7F6E\u9884\u8BBE: ${profileId}` : `\u274C Profile not found: ${profileId}`));
1100
- console.log(ansis.dim(isZh ? `\u53EF\u7528\u9884\u8BBE: ${getProfileIds().join(", ")}` : `Available profiles: ${getProfileIds().join(", ")}`));
1112
+ console.log(a.red(isZh ? `\u274C \u672A\u627E\u5230\u914D\u7F6E\u9884\u8BBE: ${profileId}` : `\u274C Profile not found: ${profileId}`));
1113
+ console.log(a.dim(isZh ? `\u53EF\u7528\u9884\u8BBE: ${getProfileIds().join(", ")}` : `Available profiles: ${getProfileIds().join(", ")}`));
1101
1114
  return;
1102
1115
  }
1103
1116
  const backupPath = backupMcpConfig();
1104
1117
  if (backupPath) {
1105
- console.log(ansis.gray(`\u2714 ${isZh ? "\u5DF2\u5907\u4EFD\u5F53\u524D\u914D\u7F6E" : "Backed up current config"}: ${backupPath}`));
1118
+ console.log(a.gray(`\u2714 ${isZh ? "\u5DF2\u5907\u4EFD\u5F53\u524D\u914D\u7F6E" : "Backed up current config"}: ${backupPath}`));
1106
1119
  }
1107
1120
  let servicesToEnable;
1108
1121
  if (profile.services.length === 0) {
@@ -1124,15 +1137,15 @@ async function useProfile(profileId, options = {}) {
1124
1137
  };
1125
1138
  writeMcpConfig(newConfig);
1126
1139
  const profileName = getProfileName(profile, lang);
1127
- console.log(ansis.green(`\u2714 ${isZh ? "\u5DF2\u5207\u6362\u5230\u914D\u7F6E\u9884\u8BBE" : "Switched to profile"}: ${profileName}`));
1128
- console.log(ansis.dim(` ${isZh ? "\u5DF2\u542F\u7528\u670D\u52A1" : "Enabled services"}: ${servicesToEnable.length}`));
1140
+ console.log(a.green(`\u2714 ${isZh ? "\u5DF2\u5207\u6362\u5230\u914D\u7F6E\u9884\u8BBE" : "Switched to profile"}: ${profileName}`));
1141
+ console.log(a.dim(` ${isZh ? "\u5DF2\u542F\u7528\u670D\u52A1" : "Enabled services"}: ${servicesToEnable.length}`));
1129
1142
  const warning = checkMcpPerformance(servicesToEnable.length);
1130
1143
  if (warning) {
1131
1144
  console.log("");
1132
1145
  console.log(formatPerformanceWarning(warning, lang));
1133
1146
  }
1134
1147
  console.log("");
1135
- console.log(ansis.yellow(isZh ? "\u26A0\uFE0F \u8BF7\u91CD\u542F Claude Code \u4EE5\u4F7F\u66F4\u6539\u751F\u6548" : "\u26A0\uFE0F Please restart Claude Code for changes to take effect"));
1148
+ console.log(a.yellow(isZh ? "\u26A0\uFE0F \u8BF7\u91CD\u542F Claude Code \u4EE5\u4F7F\u66F4\u6539\u751F\u6548" : "\u26A0\uFE0F Please restart Claude Code for changes to take effect"));
1136
1149
  }
1137
1150
 
1138
1151
  async function mcpStatus(options = {}) {
@@ -1142,8 +1155,8 @@ async function mcpStatus(options = {}) {
1142
1155
  const lang = options.lang || i18n.language || "en";
1143
1156
  const isZh = lang === "zh-CN";
1144
1157
  console.log("");
1145
- console.log(ansis.bold.cyan(isZh ? "\u26A1 MCP \u5FEB\u901F\u72B6\u6001" : "\u26A1 MCP Quick Status"));
1146
- console.log(ansis.dim("\u2500".repeat(40)));
1158
+ console.log(a.bold.cyan(isZh ? "\u26A1 MCP \u5FEB\u901F\u72B6\u6001" : "\u26A1 MCP Quick Status"));
1159
+ console.log(a.dim("\u2500".repeat(40)));
1147
1160
  const config = await readMcpConfig();
1148
1161
  const services = Object.keys(config?.mcpServers || {});
1149
1162
  let coreCount = 0;
@@ -1158,27 +1171,27 @@ async function mcpStatus(options = {}) {
1158
1171
  else scenarioCount++;
1159
1172
  }
1160
1173
  console.log("");
1161
- console.log(`${ansis.green("\u25CF")} ${isZh ? "\u6838\u5FC3\u670D\u52A1" : "Core"}: ${coreCount}`);
1162
- console.log(`${ansis.yellow("\u25CF")} ${isZh ? "\u6309\u9700\u670D\u52A1" : "On-demand"}: ${ondemandCount}`);
1163
- console.log(`${ansis.green("\u25CF")} ${isZh ? "\u573A\u666F\u670D\u52A1" : "Scenario"}: ${scenarioCount}`);
1164
- console.log(`${ansis.dim("\u2500")} ${isZh ? "\u603B\u8BA1" : "Total"}: ${services.length}`);
1174
+ console.log(`${a.green("\u25CF")} ${isZh ? "\u6838\u5FC3\u670D\u52A1" : "Core"}: ${coreCount}`);
1175
+ console.log(`${a.yellow("\u25CF")} ${isZh ? "\u6309\u9700\u670D\u52A1" : "On-demand"}: ${ondemandCount}`);
1176
+ console.log(`${a.green("\u25CF")} ${isZh ? "\u573A\u666F\u670D\u52A1" : "Scenario"}: ${scenarioCount}`);
1177
+ console.log(`${a.dim("\u2500")} ${isZh ? "\u603B\u8BA1" : "Total"}: ${services.length}`);
1165
1178
  const perfResult = checkMcpPerformance(services.length);
1166
1179
  if (perfResult) {
1167
1180
  console.log("");
1168
1181
  console.log(formatPerformanceWarning(perfResult, lang));
1169
1182
  } else {
1170
1183
  console.log("");
1171
- console.log(ansis.green(isZh ? "\u2713 \u6027\u80FD\u72B6\u6001\u826F\u597D" : "\u2713 Performance OK"));
1184
+ console.log(a.green(isZh ? "\u2713 \u6027\u80FD\u72B6\u6001\u826F\u597D" : "\u2713 Performance OK"));
1172
1185
  }
1173
1186
  console.log("");
1174
- console.log(ansis.dim(isZh ? "\u63D0\u793A: \u4F7F\u7528 ccjk mcp doctor \u67E5\u770B\u8BE6\u7EC6\u8BCA\u65AD" : "Tip: Use ccjk mcp doctor for detailed diagnostics"));
1187
+ console.log(a.dim(isZh ? "\u63D0\u793A: \u4F7F\u7528 ccjk mcp doctor \u67E5\u770B\u8BE6\u7EC6\u8BCA\u65AD" : "Tip: Use ccjk mcp doctor for detailed diagnostics"));
1175
1188
  }
1176
1189
  function mcpHelp(options = {}) {
1177
1190
  const lang = options.lang || i18n.language || "en";
1178
1191
  const isZh = lang === "zh-CN";
1179
1192
  console.log("");
1180
- console.log(ansis.bold.cyan(isZh ? "\u{1F527} MCP \u7BA1\u7406\u547D\u4EE4" : "\u{1F527} MCP Management Commands"));
1181
- console.log(ansis.dim("\u2500".repeat(50)));
1193
+ console.log(a.bold.cyan(isZh ? "\u{1F527} MCP \u7BA1\u7406\u547D\u4EE4" : "\u{1F527} MCP Management Commands"));
1194
+ console.log(a.dim("\u2500".repeat(50)));
1182
1195
  console.log("");
1183
1196
  const commands = [
1184
1197
  {
@@ -1207,12 +1220,12 @@ function mcpHelp(options = {}) {
1207
1220
  }
1208
1221
  ];
1209
1222
  for (const { cmd, desc } of commands) {
1210
- console.log(` ${ansis.green(cmd)}`);
1211
- console.log(` ${ansis.dim(desc)}`);
1223
+ console.log(` ${a.green(cmd)}`);
1224
+ console.log(` ${a.dim(desc)}`);
1212
1225
  console.log("");
1213
1226
  }
1214
- console.log(ansis.dim("\u2500".repeat(50)));
1215
- console.log(ansis.dim(isZh ? "\u{1F4A1} \u63A8\u8350: \u4F7F\u7528 minimal \u9884\u8BBE\u53EF\u663E\u8457\u63D0\u5347\u6027\u80FD" : "\u{1F4A1} Tip: Use minimal profile for best performance"));
1227
+ console.log(a.dim("\u2500".repeat(50)));
1228
+ console.log(a.dim(isZh ? "\u{1F4A1} \u63A8\u8350: \u4F7F\u7528 minimal \u9884\u8BBE\u53EF\u663E\u8457\u63D0\u5347\u6027\u80FD" : "\u{1F4A1} Tip: Use minimal profile for best performance"));
1216
1229
  }
1217
1230
 
1218
1231
  export { listProfiles, mcpDoctor, mcpHelp, mcpInstall, mcpList, mcpRelease, mcpSearch, mcpStatus, mcpUninstall, useProfile };