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.
- package/dist/chunks/agent-teams.mjs +17 -18
- package/dist/chunks/agent.mjs +105 -102
- package/dist/chunks/agents.mjs +87 -77
- package/dist/chunks/api-cli.mjs +41 -27
- package/dist/chunks/api-providers.mjs +2 -4
- package/dist/chunks/api.mjs +22 -11
- package/dist/chunks/auto-bootstrap.mjs +3 -5
- package/dist/chunks/auto-init.mjs +3 -4
- package/dist/chunks/auto-updater.mjs +103 -91
- package/dist/chunks/banner.mjs +41 -42
- package/dist/chunks/boost.mjs +30 -31
- package/dist/chunks/ccjk-agents.mjs +6 -9
- package/dist/chunks/ccjk-all.mjs +703 -85
- package/dist/chunks/ccjk-config.mjs +6 -6
- package/dist/chunks/ccjk-hooks.mjs +20 -9
- package/dist/chunks/ccjk-mcp.mjs +64 -52
- package/dist/chunks/ccjk-setup.mjs +35 -25
- package/dist/chunks/ccjk-skills.mjs +51 -41
- package/dist/chunks/ccr.mjs +42 -32
- package/dist/chunks/ccu.mjs +16 -12
- package/dist/chunks/check-updates.mjs +30 -19
- package/dist/chunks/claude-code-config-manager.mjs +25 -10
- package/dist/chunks/claude-code-incremental-manager.mjs +65 -51
- package/dist/chunks/claude-config.mjs +2 -2
- package/dist/chunks/claude-wrapper.mjs +9 -6
- package/dist/chunks/cleanup-migration.mjs +1 -1
- package/dist/chunks/cli-hook.mjs +10 -3
- package/dist/chunks/cloud-sync.mjs +1 -1
- package/dist/chunks/codex-config-switch.mjs +58 -45
- package/dist/chunks/codex-provider-manager.mjs +29 -16
- package/dist/chunks/codex-uninstaller.mjs +5 -6
- package/dist/chunks/codex.mjs +89 -89
- package/dist/chunks/commands.mjs +28 -29
- package/dist/chunks/commands2.mjs +4 -3
- package/dist/chunks/commit.mjs +42 -23
- package/dist/chunks/completion.mjs +46 -47
- package/dist/chunks/config-consolidator.mjs +12 -13
- package/dist/chunks/config-switch.mjs +66 -53
- package/dist/chunks/config.mjs +10 -10
- package/dist/chunks/config2.mjs +53 -42
- package/dist/chunks/config3.mjs +107 -93
- package/dist/chunks/constants.mjs +2 -4
- package/dist/chunks/context-loader.mjs +5 -4
- package/dist/chunks/context.mjs +77 -76
- package/dist/chunks/convoy-manager.mjs +4 -4
- package/dist/chunks/dashboard.mjs +28 -29
- package/dist/chunks/doctor.mjs +68 -54
- package/dist/chunks/evolution.mjs +37 -38
- package/dist/chunks/features.mjs +103 -92
- package/dist/chunks/fs-operations.mjs +1 -1
- package/dist/chunks/health-alerts.mjs +1 -1
- package/dist/chunks/health-check.mjs +1 -1
- package/dist/chunks/help.mjs +117 -116
- package/dist/chunks/hook-installer.mjs +3 -2
- package/dist/chunks/index.mjs +20 -6
- package/dist/chunks/index10.mjs +1171 -0
- package/dist/chunks/index11.mjs +1008 -0
- package/dist/chunks/index12.mjs +193 -0
- package/dist/chunks/index13.mjs +218 -0
- package/dist/chunks/index14.mjs +663 -0
- package/dist/chunks/index2.mjs +19 -10
- package/dist/chunks/index3.mjs +19079 -164
- package/dist/chunks/index4.mjs +8 -1171
- package/dist/chunks/index5.mjs +7479 -884
- package/dist/chunks/index6.mjs +160 -184
- package/dist/chunks/index7.mjs +3573 -653
- package/dist/chunks/index8.mjs +19 -0
- package/dist/chunks/index9.mjs +616 -0
- package/dist/chunks/init.mjs +173 -173
- package/dist/chunks/installer.mjs +92 -82
- package/dist/chunks/installer2.mjs +3 -2
- package/dist/chunks/interview.mjs +118 -107
- package/dist/chunks/json-config.mjs +3 -2
- package/dist/chunks/linux.mjs +3863 -0
- package/dist/chunks/macos.mjs +69 -0
- package/dist/chunks/main.mjs +635 -0
- package/dist/chunks/marketplace.mjs +69 -66
- package/dist/chunks/mcp-cli.mjs +61 -48
- package/dist/chunks/mcp.mjs +140 -127
- package/dist/chunks/menu.mjs +85 -85
- package/dist/chunks/metrics-display.mjs +41 -40
- package/dist/chunks/migrator.mjs +4 -5
- package/dist/chunks/monitor.mjs +95 -95
- package/dist/chunks/notification.mjs +151 -141
- package/dist/chunks/onboarding.mjs +26 -15
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/paradigm.mjs +24 -23
- package/dist/chunks/permission-manager.mjs +10 -11
- package/dist/chunks/permissions.mjs +72 -57
- package/dist/chunks/persistence-manager.mjs +97 -84
- package/dist/chunks/persistence.mjs +1 -1
- package/dist/chunks/platform.mjs +29 -29
- package/dist/chunks/plugin.mjs +104 -105
- package/dist/chunks/prompts.mjs +36 -25
- package/dist/chunks/providers.mjs +68 -69
- package/dist/chunks/quick-actions.mjs +71 -72
- package/dist/chunks/quick-provider.mjs +56 -40
- package/dist/chunks/quick-setup.mjs +71 -60
- package/dist/chunks/remote.mjs +21 -12
- package/dist/chunks/session.mjs +116 -103
- package/dist/chunks/sessions.mjs +29 -28
- package/dist/chunks/silent-updater.mjs +8 -10
- package/dist/chunks/simple-config.mjs +13 -10
- package/dist/chunks/skill.mjs +8560 -103
- package/dist/chunks/skills-sync.mjs +5212 -79
- package/dist/chunks/skills.mjs +105 -94
- package/dist/chunks/slash-commands.mjs +36 -37
- package/dist/chunks/smart-defaults.mjs +7 -3
- package/dist/chunks/smart-guide.mjs +1 -1
- package/dist/chunks/startup.mjs +2 -4
- package/dist/chunks/stats.mjs +41 -42
- package/dist/chunks/status.mjs +49 -50
- package/dist/chunks/team.mjs +24 -12
- package/dist/chunks/thinking.mjs +74 -63
- package/dist/chunks/trace.mjs +20 -19
- package/dist/chunks/uninstall.mjs +69 -56
- package/dist/chunks/update.mjs +39 -28
- package/dist/chunks/upgrade-manager.mjs +24 -18
- package/dist/chunks/version-checker.mjs +45 -41
- package/dist/chunks/vim.mjs +81 -69
- package/dist/chunks/windows.mjs +14 -0
- package/dist/chunks/workflows.mjs +15 -15
- package/dist/chunks/wsl.mjs +129 -0
- package/dist/chunks/zero-config.mjs +45 -34
- package/dist/cli.mjs +20 -20
- package/dist/index.mjs +41 -31
- package/dist/shared/ccjk.BAGoDD49.mjs +36 -0
- package/dist/shared/ccjk.BBtCGd_g.mjs +899 -0
- package/dist/shared/{ccjk.CGcy7cNM.mjs → ccjk.BDKUdmLk.mjs} +1 -1
- package/dist/shared/{ccjk.DtMBiwVG.mjs → ccjk.BFxsJM0k.mjs} +1 -1
- package/dist/shared/{ccjk.j4uut26D.mjs → ccjk.BIxuVL3_.mjs} +5 -5
- package/dist/shared/ccjk.BRZ9ww8S.mjs +142 -0
- package/dist/shared/{ccjk.CN0edl87.mjs → ccjk.BSYWk9ML.mjs} +1 -1
- package/dist/shared/{ccjk.Dk1HDseQ.mjs → ccjk.BnpWvs9V.mjs} +75 -75
- package/dist/shared/ccjk.BoApaI4j.mjs +28 -0
- package/dist/shared/{ccjk.DKojSRzw.mjs → ccjk.BrPUmTqm.mjs} +1 -1
- package/dist/shared/{ccjk.C10pepYx.mjs → ccjk.BxSmJ8B7.mjs} +1 -1
- package/dist/shared/ccjk.Bx_rmYfN.mjs +69 -0
- package/dist/shared/ccjk.COweQ1RR.mjs +5 -0
- package/dist/shared/{ccjk.BN90X6oc.mjs → ccjk.CePkJq2S.mjs} +17 -17
- package/dist/shared/{ccjk.Bvoex4TZ.mjs → ccjk.CfKKcvWy.mjs} +1 -1
- package/dist/shared/ccjk.Cjgrln_h.mjs +297 -0
- package/dist/shared/ccjk.CxpGa6MC.mjs +2724 -0
- package/dist/shared/{ccjk.DfwJOEok.mjs → ccjk.D5MFQT7w.mjs} +1 -1
- package/dist/shared/{ccjk.cChAaGgT.mjs → ccjk.DG_o24cZ.mjs} +6 -6
- package/dist/shared/{ccjk.bhFAMRyc.mjs → ccjk.DLLw-h4Y.mjs} +32 -32
- package/dist/shared/ccjk.DOwtZMk8.mjs +4019 -0
- package/dist/shared/{ccjk.BsXQugfY.mjs → ccjk.DTdjs-qK.mjs} +13 -13
- package/dist/shared/{ccjk.Bdhyg3X-.mjs → ccjk.DsYaCCx4.mjs} +1 -1
- package/dist/shared/ccjk.KfSWcGlE.mjs +38 -0
- package/dist/shared/ccjk.RyizuzOI.mjs +21 -0
- package/dist/shared/{ccjk.h7_W-wTs.mjs → ccjk.SPoXMvZD.mjs} +1 -1
- package/dist/shared/ccjk.T_cX87dY.mjs +15 -0
- package/dist/shared/{ccjk.CrB6OYHv.mjs → ccjk._dESH4Rk.mjs} +2 -2
- package/dist/shared/ccjk.bQ7Dh1g4.mjs +249 -0
- package/dist/shared/{ccjk.CBhIZiPz.mjs → ccjk.hoqrwWdN.mjs} +1 -1
- package/dist/shared/{ccjk.BNwRnWYx.mjs → ccjk.s7OCVzdd.mjs} +1230 -33
- package/dist/shared/{ccjk.BOIUTf5z.mjs → ccjk.waa2ikKJ.mjs} +8 -9
- package/package.json +31 -30
- package/dist/shared/ccjk.DHbrGcgg.mjs +0 -13
- package/dist/shared/ccjk.DntgA8fQ.mjs +0 -42
package/dist/chunks/doctor.mjs
CHANGED
|
@@ -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
|
|
4
|
-
import inquirer from '
|
|
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 './
|
|
9
|
-
import { g as getPermissionManager } from '../shared/ccjk.
|
|
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 '
|
|
14
|
-
import { exec } from '
|
|
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 '
|
|
19
|
-
import '
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
465
|
+
color = a.green;
|
|
452
466
|
break;
|
|
453
467
|
case "warn":
|
|
454
468
|
icon = "\u26A0\uFE0F";
|
|
455
|
-
color =
|
|
469
|
+
color = a.yellow;
|
|
456
470
|
break;
|
|
457
471
|
case "fail":
|
|
458
472
|
icon = "\u274C";
|
|
459
|
-
color =
|
|
473
|
+
color = a.red;
|
|
460
474
|
break;
|
|
461
475
|
case "info":
|
|
462
476
|
default:
|
|
463
477
|
icon = "\u2139\uFE0F";
|
|
464
|
-
color =
|
|
478
|
+
color = a.gray;
|
|
465
479
|
break;
|
|
466
480
|
}
|
|
467
|
-
console.log(`${icon} ${
|
|
481
|
+
console.log(`${icon} ${a.bold(check.name.padEnd(20))} ${color(check.message)}`);
|
|
468
482
|
if (check.details) {
|
|
469
|
-
console.log(
|
|
483
|
+
console.log(a.gray(` ${check.details}`));
|
|
470
484
|
}
|
|
471
485
|
if (check.fixDescription && (check.status === "fail" || check.status === "warn")) {
|
|
472
|
-
console.log(
|
|
486
|
+
console.log(a.dim(` \u{1F4A1} ${check.fixDescription}`));
|
|
473
487
|
}
|
|
474
488
|
}
|
|
475
489
|
console.log("");
|
|
476
|
-
console.log(
|
|
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(
|
|
497
|
+
console.log(a.yellow(`
|
|
484
498
|
${t("workspace:recommendations.title")}:`));
|
|
485
499
|
for (const rec of report.recommendations) {
|
|
486
|
-
console.log(
|
|
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(
|
|
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(
|
|
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(` - ${
|
|
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(` - ${
|
|
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(
|
|
805
|
-
console.log(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
837
|
+
console.log(a.green(`\u2705 ${isZh ? "\u8BBE\u7F6E\u5DF2\u4FEE\u590D\uFF01" : "Settings fixed successfully!"}`));
|
|
824
838
|
} else {
|
|
825
|
-
console.log(
|
|
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(
|
|
842
|
+
console.log(a.dim(` \u2022 ${detail}`));
|
|
829
843
|
}
|
|
830
844
|
}
|
|
831
845
|
}
|
|
832
846
|
console.log("");
|
|
833
|
-
console.log(
|
|
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(
|
|
882
|
-
console.log(
|
|
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" ?
|
|
888
|
-
const statusColor = result.status === "ok" ?
|
|
889
|
-
console.log(`${statusIcon} ${
|
|
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(
|
|
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(
|
|
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(
|
|
918
|
+
console.log(a.dim("\u2500".repeat(50)));
|
|
905
919
|
if (hasErrors) {
|
|
906
|
-
console.log(
|
|
920
|
+
console.log(a.red("\u274C Issues found - please follow the suggestions above"));
|
|
907
921
|
} else if (hasWarnings) {
|
|
908
|
-
console.log(
|
|
922
|
+
console.log(a.yellow("\u26A0\uFE0F Configuration is functional, but some features may be limited"));
|
|
909
923
|
} else {
|
|
910
|
-
console.log(
|
|
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(
|
|
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" ?
|
|
925
|
-
const statusColor = providerResult.status === "ok" ?
|
|
926
|
-
console.log(`${statusIcon} ${
|
|
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(
|
|
942
|
+
console.log(a.dim(` \u{1F4A1} Fix: ${providerResult.fix}`));
|
|
929
943
|
}
|
|
930
944
|
console.log("");
|
|
931
945
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { i18n } from './
|
|
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 '
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
218
|
+
console.log(a.yellow(noResultsMsg));
|
|
220
219
|
return;
|
|
221
220
|
}
|
|
222
221
|
genes.forEach((gene, index) => {
|
|
223
|
-
console.log(
|
|
224
|
-
const problemLabel =
|
|
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 =
|
|
225
|
+
const solutionLabel = a.yellow(i18n.t("evolution:solution", "Solution"));
|
|
227
226
|
console.log(" " + solutionLabel + ": " + gene.solution.strategy);
|
|
228
|
-
console.log(" " +
|
|
229
|
-
const usedLabel =
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
260
|
+
console.log(a.green("\n\u2705 " + foundMsg + "\n"));
|
|
262
261
|
genes.forEach((gene, index) => {
|
|
263
|
-
console.log(
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
309
|
-
const totalLabel =
|
|
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 =
|
|
310
|
+
const avgGdiLabel = a.cyan(i18n.t("evolution:avgGDI", "Average GDI"));
|
|
312
311
|
console.log(avgGdiLabel + ": " + avgGDI.toFixed(1));
|
|
313
|
-
const totalUsageLabel =
|
|
312
|
+
const totalUsageLabel = a.cyan(i18n.t("evolution:totalUsage", "Total Usage"));
|
|
314
313
|
console.log(totalUsageLabel + ": " + totalUsage);
|
|
315
|
-
const avgSuccessLabel =
|
|
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(
|
|
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(
|
|
327
|
-
console.log(
|
|
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(
|
|
330
|
-
console.log(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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");
|