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,24 +1,38 @@
1
1
  import { existsSync, mkdirSync, statSync, writeFileSync, readFileSync, copyFileSync, readdirSync } from 'node:fs';
2
2
  import process__default from 'node:process';
3
- import ansis from 'ansis';
4
- import inquirer from 'inquirer';
5
- import { resolve, join, dirname } from 'pathe';
3
+ import a from './index2.mjs';
4
+ import { i as inquirer } from './index3.mjs';
6
5
  import { getApiProviderPresets } from './api-providers.mjs';
7
6
  import { SETTINGS_FILE, CLAUDE_DIR } from './constants.mjs';
8
- import { i18n } from './index3.mjs';
9
- import { g as getPermissionManager } from '../shared/ccjk.h7_W-wTs.mjs';
7
+ import { i18n } from './index5.mjs';
8
+ import { g as getPermissionManager } from '../shared/ccjk.SPoXMvZD.mjs';
10
9
  import { h as commandExists } from './platform.mjs';
11
10
  import { P as ProviderHealthMonitor } from '../shared/ccjk.J8YiPsOw.mjs';
12
11
  import { platform, userInfo, homedir } from 'node:os';
13
- import ora from 'ora';
14
- import { exec } from 'tinyexec';
12
+ import ora from './index7.mjs';
13
+ import { exec as q } from './main.mjs';
15
14
  import { STATUS } from './banner.mjs';
16
15
  import { writeFileAtomic } from './fs-operations.mjs';
16
+ import { c as resolve, j as join, d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
17
+ import '../shared/ccjk.BAGoDD49.mjs';
18
+ import 'node:readline';
19
+ import 'stream';
20
+ import 'node:tty';
21
+ import 'node:async_hooks';
22
+ import '../shared/ccjk.Cjgrln_h.mjs';
23
+ import 'node:util';
24
+ import 'tty';
25
+ import 'fs';
26
+ import 'child_process';
27
+ import 'node:path';
28
+ import 'node:crypto';
29
+ import 'buffer';
30
+ import 'string_decoder';
17
31
  import 'node:url';
18
- import 'i18next';
19
- import 'i18next-fs-backend';
32
+ import 'module';
33
+ import 'node:child_process';
34
+ import 'node:stream';
20
35
  import './package.mjs';
21
- import 'node:crypto';
22
36
  import 'node:fs/promises';
23
37
 
24
38
  const t = i18n.t.bind(i18n);
@@ -118,7 +132,7 @@ async function checkWritePermission(cwd) {
118
132
  fix: async () => {
119
133
  try {
120
134
  if (platform() !== "win32") {
121
- await exec("chmod", ["-R", "u+w", cwd], { throwOnError: true });
135
+ await q("chmod", ["-R", "u+w", cwd], { throwOnError: true });
122
136
  return true;
123
137
  }
124
138
  return false;
@@ -164,7 +178,7 @@ async function checkDirectoryOwnership(cwd) {
164
178
  fixDescription: t("workspace:fixes.changeOwner"),
165
179
  fix: async () => {
166
180
  try {
167
- await exec("sudo", ["chown", "-R", `${currentUid}:${process__default.getgid?.() ?? currentUid}`, cwd], { throwOnError: true });
181
+ await q("sudo", ["chown", "-R", `${currentUid}:${process__default.getgid?.() ?? currentUid}`, cwd], { throwOnError: true });
168
182
  return true;
169
183
  } catch {
170
184
  return false;
@@ -293,7 +307,7 @@ async function checkDiskSpace(cwd) {
293
307
  };
294
308
  }
295
309
  try {
296
- const result = await exec("df", ["-h", cwd], { throwOnError: false });
310
+ const result = await q("df", ["-h", cwd], { throwOnError: false });
297
311
  const lines = result.stdout.trim().split("\n");
298
312
  if (lines.length >= 2) {
299
313
  const parts = lines[1].split(/\s+/);
@@ -437,10 +451,10 @@ async function runWorkspaceCheck(targetDir) {
437
451
  };
438
452
  }
439
453
  function displayWorkspaceReport(report) {
440
- console.log(ansis.green(`
454
+ console.log(a.green(`
441
455
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ${t("workspace:title")} \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
442
456
  `));
443
- console.log(ansis.white.bold(`${t("workspace:currentDir")}: ${ansis.yellow(report.cwd)}
457
+ console.log(a.white.bold(`${t("workspace:currentDir")}: ${a.yellow(report.cwd)}
444
458
  `));
445
459
  for (const check of report.checks) {
446
460
  let icon;
@@ -448,42 +462,42 @@ function displayWorkspaceReport(report) {
448
462
  switch (check.status) {
449
463
  case "pass":
450
464
  icon = "\u2705";
451
- color = ansis.green;
465
+ color = a.green;
452
466
  break;
453
467
  case "warn":
454
468
  icon = "\u26A0\uFE0F";
455
- color = ansis.yellow;
469
+ color = a.yellow;
456
470
  break;
457
471
  case "fail":
458
472
  icon = "\u274C";
459
- color = ansis.red;
473
+ color = a.red;
460
474
  break;
461
475
  case "info":
462
476
  default:
463
477
  icon = "\u2139\uFE0F";
464
- color = ansis.gray;
478
+ color = a.gray;
465
479
  break;
466
480
  }
467
- console.log(`${icon} ${ansis.bold(check.name.padEnd(20))} ${color(check.message)}`);
481
+ console.log(`${icon} ${a.bold(check.name.padEnd(20))} ${color(check.message)}`);
468
482
  if (check.details) {
469
- console.log(ansis.gray(` ${check.details}`));
483
+ console.log(a.gray(` ${check.details}`));
470
484
  }
471
485
  if (check.fixDescription && (check.status === "fail" || check.status === "warn")) {
472
- console.log(ansis.dim(` \u{1F4A1} ${check.fixDescription}`));
486
+ console.log(a.dim(` \u{1F4A1} ${check.fixDescription}`));
473
487
  }
474
488
  }
475
489
  console.log("");
476
- console.log(ansis.dim("\u2500".repeat(50)));
490
+ console.log(a.dim("\u2500".repeat(50)));
477
491
  if (report.isValid) {
478
492
  console.log(STATUS.success(t("workspace:summary.valid")));
479
493
  } else {
480
494
  console.log(STATUS.error(t("workspace:summary.invalid")));
481
495
  }
482
496
  if (report.recommendations.length > 0) {
483
- console.log(ansis.yellow(`
497
+ console.log(a.yellow(`
484
498
  ${t("workspace:recommendations.title")}:`));
485
499
  for (const rec of report.recommendations) {
486
- console.log(ansis.yellow(` \u2022 ${rec}`));
500
+ console.log(a.yellow(` \u2022 ${rec}`));
487
501
  }
488
502
  }
489
503
  console.log("");
@@ -503,7 +517,7 @@ async function runWorkspaceWizard(targetDir) {
503
517
  return;
504
518
  }
505
519
  console.log("");
506
- console.log(ansis.green(t("workspace:wizard.autoFixing", { count: fixableChecks.length })));
520
+ console.log(a.green(t("workspace:wizard.autoFixing", { count: fixableChecks.length })));
507
521
  for (const check of fixableChecks) {
508
522
  const spinner = ora(`${t("workspace:wizard.fixing")} ${check.name}...`).start();
509
523
  try {
@@ -518,7 +532,7 @@ async function runWorkspaceWizard(targetDir) {
518
532
  }
519
533
  }
520
534
  console.log("");
521
- console.log(ansis.green(t("workspace:wizard.verifying")));
535
+ console.log(a.green(t("workspace:wizard.verifying")));
522
536
  const newReport = await runWorkspaceCheck(targetDir);
523
537
  if (newReport.isValid) {
524
538
  console.log(STATUS.success(t("workspace:wizard.allFixed")));
@@ -767,7 +781,7 @@ async function checkPermissionRules() {
767
781
  if (unreachableRules.length > 0) {
768
782
  details.push(isZh ? `${unreachableRules.length} unreachable rule(s)` : `${unreachableRules.length} unreachable rule(s)`);
769
783
  for (const rule of unreachableRules.slice(0, 3)) {
770
- details.push(` - ${ansis.dim(rule.pattern)}`);
784
+ details.push(` - ${a.dim(rule.pattern)}`);
771
785
  }
772
786
  if (unreachableRules.length > 3) {
773
787
  details.push(` ... ${isZh ? "and" : "and"} ${unreachableRules.length - 3} ${isZh ? "more" : "more"}`);
@@ -776,7 +790,7 @@ async function checkPermissionRules() {
776
790
  if (shadowedRules.length > 0) {
777
791
  details.push(isZh ? `${shadowedRules.length} shadowed rule(s)` : `${shadowedRules.length} shadowed rule(s)`);
778
792
  for (const diag of shadowedRules.slice(0, 2)) {
779
- details.push(` - ${ansis.dim(diag.rule.pattern)} ${ansis.dim(isZh ? "shadowed by" : "shadowed by")} ${diag.shadowedBy[0].pattern}`);
793
+ details.push(` - ${a.dim(diag.rule.pattern)} ${a.dim(isZh ? "shadowed by" : "shadowed by")} ${diag.shadowedBy[0].pattern}`);
780
794
  }
781
795
  }
782
796
  if (conflictedRules.length > 0) {
@@ -801,36 +815,36 @@ async function fixSettingsFile() {
801
815
  const isZh = i18n.language === "zh-CN";
802
816
  const { copyConfigFiles } = await import('./config.mjs').then(function (n) { return n.j; });
803
817
  console.log("");
804
- console.log(ansis.bold.cyan("\u{1F527} Fixing settings.json"));
805
- console.log(ansis.dim("\u2500".repeat(50)));
818
+ console.log(a.bold.cyan("\u{1F527} Fixing settings.json"));
819
+ console.log(a.dim("\u2500".repeat(50)));
806
820
  console.log("");
807
821
  const backupPath = join(CLAUDE_DIR, "backup", `settings.backup.${Date.now()}.json`);
808
822
  try {
809
823
  if (existsSync(SETTINGS_FILE)) {
810
824
  mkdirSync(join(CLAUDE_DIR, "backup"), { recursive: true });
811
825
  copyFileSync(SETTINGS_FILE, backupPath);
812
- console.log(ansis.green(`\u2714 ${isZh ? "\u5DF2\u5907\u4EFD\u65E7\u8BBE\u7F6E" : "Backed up settings"}: ${backupPath}`));
826
+ console.log(a.green(`\u2714 ${isZh ? "\u5DF2\u5907\u4EFD\u65E7\u8BBE\u7F6E" : "Backed up settings"}: ${backupPath}`));
813
827
  }
814
828
  } catch (_error) {
815
- console.log(ansis.yellow(`\u26A0\uFE0F ${isZh ? "\u5907\u4EFD\u5931\u8D25\uFF0C\u7EE7\u7EED..." : "Backup failed, continuing..."}`));
829
+ console.log(a.yellow(`\u26A0\uFE0F ${isZh ? "\u5907\u4EFD\u5931\u8D25\uFF0C\u7EE7\u7EED..." : "Backup failed, continuing..."}`));
816
830
  }
817
831
  console.log("");
818
- console.log(ansis.dim(isZh ? "\u6B63\u5728\u5408\u5E76\u6A21\u677F\u8BBE\u7F6E..." : "Merging template settings..."));
832
+ console.log(a.dim(isZh ? "\u6B63\u5728\u5408\u5E76\u6A21\u677F\u8BBE\u7F6E..." : "Merging template settings..."));
819
833
  copyConfigFiles(false);
820
834
  const checkResult = await checkSettings();
821
835
  console.log("");
822
836
  if (checkResult.status === "ok") {
823
- console.log(ansis.green(`\u2705 ${isZh ? "\u8BBE\u7F6E\u5DF2\u4FEE\u590D\uFF01" : "Settings fixed successfully!"}`));
837
+ console.log(a.green(`\u2705 ${isZh ? "\u8BBE\u7F6E\u5DF2\u4FEE\u590D\uFF01" : "Settings fixed successfully!"}`));
824
838
  } else {
825
- console.log(ansis.yellow(`\u26A0\uFE0F ${isZh ? "\u4ECD\u6709\u4E00\u4E9B\u95EE\u9898" : "Some issues remain"}:`));
839
+ console.log(a.yellow(`\u26A0\uFE0F ${isZh ? "\u4ECD\u6709\u4E00\u4E9B\u95EE\u9898" : "Some issues remain"}:`));
826
840
  if (checkResult.details) {
827
841
  for (const detail of checkResult.details) {
828
- console.log(ansis.dim(` \u2022 ${detail}`));
842
+ console.log(a.dim(` \u2022 ${detail}`));
829
843
  }
830
844
  }
831
845
  }
832
846
  console.log("");
833
- console.log(ansis.dim(isZh ? "\u63D0\u793A: \u8BF7\u91CD\u542F Claude Code \u4EE5\u5E94\u7528\u66F4\u6539" : "Tip: Restart Claude Code to apply changes"));
847
+ console.log(a.dim(isZh ? "\u63D0\u793A: \u8BF7\u91CD\u542F Claude Code \u4EE5\u5E94\u7528\u66F4\u6539" : "Tip: Restart Claude Code to apply changes"));
834
848
  console.log("");
835
849
  }
836
850
  async function doctor(options = {}) {
@@ -878,21 +892,21 @@ async function doctor(options = {}) {
878
892
  return;
879
893
  }
880
894
  console.log("");
881
- console.log(ansis.bold.cyan("\u{1F50D} CCJK Health Check"));
882
- console.log(ansis.dim("\u2500".repeat(50)));
895
+ console.log(a.bold.cyan("\u{1F50D} CCJK Health Check"));
896
+ console.log(a.dim("\u2500".repeat(50)));
883
897
  console.log("");
884
898
  let hasErrors = false;
885
899
  let hasWarnings = false;
886
900
  for (const result of results) {
887
- const statusIcon = result.status === "ok" ? ansis.green("\u2705") : result.status === "warning" ? ansis.yellow("\u26A0\uFE0F") : ansis.red("\u274C");
888
- const statusColor = result.status === "ok" ? ansis.green : result.status === "warning" ? ansis.yellow : ansis.red;
889
- console.log(`${statusIcon} ${ansis.bold(result.name)}: ${statusColor(result.message)}`);
901
+ const statusIcon = result.status === "ok" ? a.green("\u2705") : result.status === "warning" ? a.yellow("\u26A0\uFE0F") : a.red("\u274C");
902
+ const statusColor = result.status === "ok" ? a.green : result.status === "warning" ? a.yellow : a.red;
903
+ console.log(`${statusIcon} ${a.bold(result.name)}: ${statusColor(result.message)}`);
890
904
  if (result.fix) {
891
- console.log(ansis.dim(` \u{1F4A1} Fix: ${result.fix}`));
905
+ console.log(a.dim(` \u{1F4A1} Fix: ${result.fix}`));
892
906
  }
893
907
  if (result.details && result.details.length > 0) {
894
908
  for (const detail of result.details) {
895
- console.log(ansis.dim(` ${detail}`));
909
+ console.log(a.dim(` ${detail}`));
896
910
  }
897
911
  }
898
912
  if (result.status === "error")
@@ -901,13 +915,13 @@ async function doctor(options = {}) {
901
915
  hasWarnings = true;
902
916
  }
903
917
  console.log("");
904
- console.log(ansis.dim("\u2500".repeat(50)));
918
+ console.log(a.dim("\u2500".repeat(50)));
905
919
  if (hasErrors) {
906
- console.log(ansis.red("\u274C Issues found - please follow the suggestions above"));
920
+ console.log(a.red("\u274C Issues found - please follow the suggestions above"));
907
921
  } else if (hasWarnings) {
908
- console.log(ansis.yellow("\u26A0\uFE0F Configuration is functional, but some features may be limited"));
922
+ console.log(a.yellow("\u26A0\uFE0F Configuration is functional, but some features may be limited"));
909
923
  } else {
910
- console.log(ansis.green("\u2705 All checks passed - CCJK is properly configured!"));
924
+ console.log(a.green("\u2705 All checks passed - CCJK is properly configured!"));
911
925
  }
912
926
  console.log("");
913
927
  if (!options.checkProviders) {
@@ -919,13 +933,13 @@ async function doctor(options = {}) {
919
933
  });
920
934
  if (checkProvidersNow) {
921
935
  console.log("");
922
- console.log(ansis.dim(isZh ? "\u6B63\u5728\u68C0\u67E5\u4F9B\u5E94\u5546..." : "Checking providers..."));
936
+ console.log(a.dim(isZh ? "\u6B63\u5728\u68C0\u67E5\u4F9B\u5E94\u5546..." : "Checking providers..."));
923
937
  const providerResult = await checkProviders(options.codeType);
924
- const statusIcon = providerResult.status === "ok" ? ansis.green("\u2705") : providerResult.status === "warning" ? ansis.yellow("\u26A0\uFE0F") : ansis.red("\u274C");
925
- const statusColor = providerResult.status === "ok" ? ansis.green : providerResult.status === "warning" ? ansis.yellow : ansis.red;
926
- console.log(`${statusIcon} ${ansis.bold(providerResult.name)}: ${statusColor(providerResult.message)}`);
938
+ const statusIcon = providerResult.status === "ok" ? a.green("\u2705") : providerResult.status === "warning" ? a.yellow("\u26A0\uFE0F") : a.red("\u274C");
939
+ const statusColor = providerResult.status === "ok" ? a.green : providerResult.status === "warning" ? a.yellow : a.red;
940
+ console.log(`${statusIcon} ${a.bold(providerResult.name)}: ${statusColor(providerResult.message)}`);
927
941
  if (providerResult.fix) {
928
- console.log(ansis.dim(` \u{1F4A1} Fix: ${providerResult.fix}`));
942
+ console.log(a.dim(` \u{1F4A1} Fix: ${providerResult.fix}`));
929
943
  }
930
944
  console.log("");
931
945
  }
@@ -1,11 +1,10 @@
1
- import ansis from 'ansis';
2
- import { i18n } from './index3.mjs';
1
+ import a from './index2.mjs';
2
+ import { i18n } from './index5.mjs';
3
+ import '../shared/ccjk.BAGoDD49.mjs';
3
4
  import 'node:fs';
4
5
  import 'node:process';
5
6
  import 'node:url';
6
- import 'i18next';
7
- import 'i18next-fs-backend';
8
- import 'pathe';
7
+ import '../shared/ccjk.bQ7Dh1g4.mjs';
9
8
 
10
9
  class A2AClient {
11
10
  baseUrl;
@@ -189,13 +188,13 @@ async function handleEvolutionCommand(action, args, options) {
189
188
  }
190
189
  } catch (error) {
191
190
  const failedMsg = i18n.t("evolution:failed", "Failed");
192
- console.error(ansis.red("\u274C " + failedMsg + ":"), error.message);
191
+ console.error(a.red("\u274C " + failedMsg + ":"), error.message);
193
192
  process.exit(1);
194
193
  }
195
194
  }
196
195
  async function showTopCapabilities(client, options) {
197
196
  const connectingMsg = i18n.t("evolution:connecting", "Connecting to Evolution Layer...");
198
- console.log(ansis.blue("\u{1F517} " + connectingMsg));
197
+ console.log(a.blue("\u{1F517} " + connectingMsg));
199
198
  await client.hello({
200
199
  id: "claude-code-cli",
201
200
  name: "claude-code",
@@ -203,7 +202,7 @@ async function showTopCapabilities(client, options) {
203
202
  capabilities: ["fetch", "report"]
204
203
  });
205
204
  const fetchingMsg = i18n.t("evolution:fetching", "Fetching top capabilities...");
206
- console.log(ansis.blue("\u{1F4CA} " + fetchingMsg));
205
+ console.log(a.blue("\u{1F4CA} " + fetchingMsg));
207
206
  const genes = await client.fetch(
208
207
  {
209
208
  signature: "*",
@@ -213,23 +212,23 @@ async function showTopCapabilities(client, options) {
213
212
  Number.parseInt(options.limit || "30")
214
213
  );
215
214
  const foundMsg = i18n.t("evolution:found", "Found {{count}} capabilities", { count: genes.length });
216
- console.log(ansis.green("\n\u2705 " + foundMsg + "\n"));
215
+ console.log(a.green("\n\u2705 " + foundMsg + "\n"));
217
216
  if (genes.length === 0) {
218
217
  const noResultsMsg = i18n.t("evolution:noResults", "No capabilities found");
219
- console.log(ansis.yellow(noResultsMsg));
218
+ console.log(a.yellow(noResultsMsg));
220
219
  return;
221
220
  }
222
221
  genes.forEach((gene, index) => {
223
- console.log(ansis.bold(`${index + 1}. ${gene.id.substring(0, 8)}`));
224
- const problemLabel = ansis.cyan(i18n.t("evolution:problem", "Problem"));
222
+ console.log(a.bold(`${index + 1}. ${gene.id.substring(0, 8)}`));
223
+ const problemLabel = a.cyan(i18n.t("evolution:problem", "Problem"));
225
224
  console.log(" " + problemLabel + ": " + gene.problem.signature);
226
- const solutionLabel = ansis.yellow(i18n.t("evolution:solution", "Solution"));
225
+ const solutionLabel = a.yellow(i18n.t("evolution:solution", "Solution"));
227
226
  console.log(" " + solutionLabel + ": " + gene.solution.strategy);
228
- console.log(" " + ansis.green("GDI") + ": " + gene.quality.gdi.toFixed(1));
229
- const usedLabel = ansis.gray(i18n.t("evolution:used", "Used"));
227
+ console.log(" " + a.green("GDI") + ": " + gene.quality.gdi.toFixed(1));
228
+ const usedLabel = a.gray(i18n.t("evolution:used", "Used"));
230
229
  const timesLabel = i18n.t("evolution:times", "times");
231
230
  console.log(" " + usedLabel + ": " + gene.quality.usageCount + " " + timesLabel);
232
- const successLabel = ansis.gray(i18n.t("evolution:success", "Success"));
231
+ const successLabel = a.gray(i18n.t("evolution:success", "Success"));
233
232
  const successRate = (gene.quality.successRate * 100).toFixed(1);
234
233
  console.log(" " + successLabel + ": " + successRate + "%");
235
234
  console.log();
@@ -237,7 +236,7 @@ async function showTopCapabilities(client, options) {
237
236
  }
238
237
  async function searchSolutions(client, query, options) {
239
238
  const searchingMsg = i18n.t("evolution:searching", "Searching for: {{query}}", { query });
240
- console.log(ansis.blue("\u{1F50D} " + searchingMsg));
239
+ console.log(a.blue("\u{1F50D} " + searchingMsg));
241
240
  await client.hello({
242
241
  id: "claude-code-cli",
243
242
  name: "claude-code",
@@ -254,18 +253,18 @@ async function searchSolutions(client, query, options) {
254
253
  );
255
254
  if (genes.length === 0) {
256
255
  const noSolutionsMsg = i18n.t("evolution:noSolutions", "No solutions found");
257
- console.log(ansis.yellow("\n" + noSolutionsMsg));
256
+ console.log(a.yellow("\n" + noSolutionsMsg));
258
257
  return;
259
258
  }
260
259
  const foundMsg = i18n.t("evolution:foundSolutions", "Found {{count}} solutions", { count: genes.length });
261
- console.log(ansis.green("\n\u2705 " + foundMsg + "\n"));
260
+ console.log(a.green("\n\u2705 " + foundMsg + "\n"));
262
261
  genes.forEach((gene, index) => {
263
- console.log(ansis.bold(`${index + 1}. ${gene.problem.signature}`));
262
+ console.log(a.bold(`${index + 1}. ${gene.problem.signature}`));
264
263
  console.log(" " + gene.solution.strategy);
265
264
  const usedLabel = i18n.t("evolution:used", "Used");
266
265
  console.log(" GDI: " + gene.quality.gdi.toFixed(1) + " | " + usedLabel + ": " + gene.quality.usageCount + "x");
267
266
  if (gene.problem.context.length > 0) {
268
- const contextLabel = ansis.gray(i18n.t("evolution:context", "Context"));
267
+ const contextLabel = a.gray(i18n.t("evolution:context", "Context"));
269
268
  console.log(" " + contextLabel + ": " + gene.problem.context.join(", "));
270
269
  }
271
270
  console.log();
@@ -282,14 +281,14 @@ async function showGeneDetails(client, geneId) {
282
281
  const gene = genes.find((g) => g.id.startsWith(geneId));
283
282
  if (!gene) {
284
283
  const notFoundMsg = i18n.t("evolution:geneNotFound", "Gene not found");
285
- console.log(ansis.red(notFoundMsg));
284
+ console.log(a.red(notFoundMsg));
286
285
  return;
287
286
  }
288
287
  displayGene(gene);
289
288
  }
290
289
  async function showStats(client) {
291
290
  const fetchingMsg = i18n.t("evolution:fetchingStats", "Fetching statistics...");
292
- console.log(ansis.blue("\u{1F4CA} " + fetchingMsg));
291
+ console.log(a.blue("\u{1F4CA} " + fetchingMsg));
293
292
  await client.hello({
294
293
  id: "claude-code-cli",
295
294
  name: "claude-code",
@@ -305,32 +304,32 @@ async function showStats(client) {
305
304
  acc[g.type] = (acc[g.type] || 0) + 1;
306
305
  return acc;
307
306
  }, {});
308
- console.log(ansis.bold("\n\u{1F4C8} Evolution Layer Statistics\n"));
309
- const totalLabel = ansis.cyan(i18n.t("evolution:totalGenes", "Total Genes"));
307
+ console.log(a.bold("\n\u{1F4C8} Evolution Layer Statistics\n"));
308
+ const totalLabel = a.cyan(i18n.t("evolution:totalGenes", "Total Genes"));
310
309
  console.log(totalLabel + ": " + totalGenes);
311
- const avgGdiLabel = ansis.cyan(i18n.t("evolution:avgGDI", "Average GDI"));
310
+ const avgGdiLabel = a.cyan(i18n.t("evolution:avgGDI", "Average GDI"));
312
311
  console.log(avgGdiLabel + ": " + avgGDI.toFixed(1));
313
- const totalUsageLabel = ansis.cyan(i18n.t("evolution:totalUsage", "Total Usage"));
312
+ const totalUsageLabel = a.cyan(i18n.t("evolution:totalUsage", "Total Usage"));
314
313
  console.log(totalUsageLabel + ": " + totalUsage);
315
- const avgSuccessLabel = ansis.cyan(i18n.t("evolution:avgSuccess", "Average Success Rate"));
314
+ const avgSuccessLabel = a.cyan(i18n.t("evolution:avgSuccess", "Average Success Rate"));
316
315
  console.log(avgSuccessLabel + ": " + (avgSuccessRate * 100).toFixed(1) + "%");
317
316
  console.log();
318
317
  const byTypeLabel = i18n.t("evolution:byType", "By Type");
319
- console.log(ansis.bold(byTypeLabel + ":"));
318
+ console.log(a.bold(byTypeLabel + ":"));
320
319
  Object.entries(typeCount).forEach(([type, count]) => {
321
320
  console.log(" " + type + ": " + count);
322
321
  });
323
322
  }
324
323
  function displayGene(gene) {
325
324
  const detailsLabel = i18n.t("evolution:geneDetails", "Gene Details");
326
- console.log(ansis.bold("\n\u{1F4E6} " + detailsLabel + "\n"));
327
- console.log(ansis.cyan("ID") + ": " + gene.id);
325
+ console.log(a.bold("\n\u{1F4E6} " + detailsLabel + "\n"));
326
+ console.log(a.cyan("ID") + ": " + gene.id);
328
327
  const typeLabel = i18n.t("evolution:type", "Type");
329
- console.log(ansis.cyan(typeLabel) + ": " + gene.type);
330
- console.log(ansis.cyan("SHA256") + ": " + gene.sha256);
328
+ console.log(a.cyan(typeLabel) + ": " + gene.type);
329
+ console.log(a.cyan("SHA256") + ": " + gene.sha256);
331
330
  console.log();
332
331
  const problemLabel = i18n.t("evolution:problem", "Problem");
333
- console.log(ansis.bold(problemLabel + ":"));
332
+ console.log(a.bold(problemLabel + ":"));
334
333
  const sigLabel = i18n.t("evolution:signature", "Signature");
335
334
  console.log(" " + sigLabel + ": " + gene.problem.signature);
336
335
  if (gene.problem.context.length > 0) {
@@ -339,14 +338,14 @@ function displayGene(gene) {
339
338
  }
340
339
  console.log();
341
340
  const solutionLabel = i18n.t("evolution:solution", "Solution");
342
- console.log(ansis.bold(solutionLabel + ":"));
341
+ console.log(a.bold(solutionLabel + ":"));
343
342
  const strategyLabel = i18n.t("evolution:strategy", "Strategy");
344
343
  console.log(" " + strategyLabel + ": " + gene.solution.strategy);
345
344
  if (gene.solution.code) {
346
345
  const codeLabel = i18n.t("evolution:code", "Code");
347
346
  console.log(" " + codeLabel + ":");
348
347
  const codeLines = gene.solution.code.split("\n").map((line) => " " + line).join("\n");
349
- console.log(ansis.gray(codeLines));
348
+ console.log(a.gray(codeLines));
350
349
  }
351
350
  if (gene.solution.steps.length > 0) {
352
351
  const stepsLabel = i18n.t("evolution:steps", "Steps");
@@ -357,7 +356,7 @@ function displayGene(gene) {
357
356
  }
358
357
  console.log();
359
358
  const qualityLabel = i18n.t("evolution:quality", "Quality");
360
- console.log(ansis.bold(qualityLabel + ":"));
359
+ console.log(a.bold(qualityLabel + ":"));
361
360
  console.log(" GDI: " + gene.quality.gdi.toFixed(1));
362
361
  const successRateLabel = i18n.t("evolution:successRate", "Success Rate");
363
362
  console.log(" " + successRateLabel + ": " + (gene.quality.successRate * 100).toFixed(1) + "%");
@@ -368,7 +367,7 @@ function displayGene(gene) {
368
367
  if (gene.metadata) {
369
368
  console.log();
370
369
  const metadataLabel = i18n.t("evolution:metadata", "Metadata");
371
- console.log(ansis.bold(metadataLabel + ":"));
370
+ console.log(a.bold(metadataLabel + ":"));
372
371
  const authorLabel = i18n.t("evolution:author", "Author");
373
372
  console.log(" " + authorLabel + ": " + (gene.metadata.author || "-"));
374
373
  const createdLabel = i18n.t("evolution:createdAt", "Created At");