ccjk 5.2.0 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/chunks/api.mjs +6 -6
  2. package/dist/chunks/auto-updater.mjs +80 -133
  3. package/dist/chunks/ccm.mjs +7 -7
  4. package/dist/chunks/ccr.mjs +7 -4
  5. package/dist/chunks/ccu.mjs +6 -6
  6. package/dist/chunks/check-updates.mjs +3 -3
  7. package/dist/chunks/claude-code-incremental-manager.mjs +38 -38
  8. package/dist/chunks/cloud-v5.mjs +1651 -0
  9. package/dist/chunks/codex.mjs +70 -70
  10. package/dist/chunks/commands.mjs +25 -25
  11. package/dist/chunks/commit.mjs +16 -16
  12. package/dist/chunks/config-consolidator.mjs +9 -9
  13. package/dist/chunks/config-switch.mjs +39 -39
  14. package/dist/chunks/config.mjs +5 -5
  15. package/dist/chunks/config2.mjs +85 -85
  16. package/dist/chunks/context.mjs +2 -2
  17. package/dist/chunks/doctor.mjs +31 -31
  18. package/dist/chunks/features.mjs +84 -83
  19. package/dist/chunks/help.mjs +116 -116
  20. package/dist/chunks/index4.mjs +46 -46
  21. package/dist/chunks/init.mjs +214 -191
  22. package/dist/chunks/interview.mjs +102 -102
  23. package/dist/chunks/manager.mjs +238 -0
  24. package/dist/chunks/marketplace.mjs +59 -59
  25. package/dist/chunks/mcp.mjs +82 -82
  26. package/dist/chunks/menu.mjs +441 -379
  27. package/dist/chunks/notification.mjs +112 -112
  28. package/dist/chunks/onboarding.mjs +7 -7
  29. package/dist/chunks/package.mjs +1 -1
  30. package/dist/chunks/permission-manager.mjs +8 -8
  31. package/dist/chunks/plugin.mjs +100 -100
  32. package/dist/chunks/prompts.mjs +15 -15
  33. package/dist/chunks/providers.mjs +65 -65
  34. package/dist/chunks/session.mjs +83 -83
  35. package/dist/chunks/skills-sync.mjs +72 -72
  36. package/dist/chunks/skills.mjs +88 -88
  37. package/dist/chunks/team.mjs +6 -6
  38. package/dist/chunks/uninstall.mjs +35 -35
  39. package/dist/chunks/update.mjs +6 -6
  40. package/dist/chunks/upgrade-manager.mjs +4 -4
  41. package/dist/chunks/workflows2.mjs +13 -13
  42. package/dist/cli.mjs +21 -0
  43. package/dist/i18n/locales/en/menu.json +16 -1
  44. package/dist/i18n/locales/en/skills.json +29 -0
  45. package/dist/i18n/locales/zh-CN/menu.json +16 -1
  46. package/dist/i18n/locales/zh-CN/skills.json +29 -0
  47. package/dist/index.mjs +4 -4
  48. package/dist/shared/{ccjk.f40us0yY.mjs → ccjk.BiJujy5w.mjs} +4 -4
  49. package/dist/shared/{ccjk.CQzwtnZ1.mjs → ccjk.C_3BYaWc.mjs} +50 -50
  50. package/dist/shared/{ccjk.Zwx-YR_P.mjs → ccjk.DjD9Rzxq.mjs} +32 -32
  51. package/dist/shared/{ccjk.DtWIPt8E.mjs → ccjk.XgW1H2t3.mjs} +68 -68
  52. package/dist/shared/{ccjk.BlPCiSHj.mjs → ccjk.tI4PJA0c.mjs} +30 -30
  53. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import ansis from 'ansis';
1
+ import ansis__default from 'ansis';
2
2
  import inquirer from 'inquirer';
3
3
  import { existsSync, readFileSync, mkdirSync } from 'node:fs';
4
4
  import { homedir } from 'node:os';
@@ -487,12 +487,12 @@ function displayCurrentStatus(lang = "en") {
487
487
  const { mode, provider } = detectCurrentMode();
488
488
  const config = getCurrentConfig();
489
489
  console.log("");
490
- console.log(ansis.green("\u2550".repeat(50)));
491
- console.log(ansis.bold.cyan(lang === "zh-CN" ? " \u5F53\u524D API \u914D\u7F6E" : " Current API Configuration"));
492
- console.log(ansis.green("\u2550".repeat(50)));
490
+ console.log(ansis__default.green("\u2550".repeat(50)));
491
+ console.log(ansis__default.bold.cyan(lang === "zh-CN" ? " \u5F53\u524D API \u914D\u7F6E" : " Current API Configuration"));
492
+ console.log(ansis__default.green("\u2550".repeat(50)));
493
493
  console.log("");
494
494
  if (mode === "none") {
495
- console.log(ansis.yellow(lang === "zh-CN" ? " \u26A0 \u672A\u914D\u7F6E API" : " \u26A0 No API configured"));
495
+ console.log(ansis__default.yellow(lang === "zh-CN" ? " \u26A0 \u672A\u914D\u7F6E API" : " \u26A0 No API configured"));
496
496
  console.log("");
497
497
  return;
498
498
  }
@@ -501,26 +501,26 @@ function displayCurrentStatus(lang = "en") {
501
501
  simple: lang === "zh-CN" ? "\u7B80\u5355\u6A21\u5F0F (API \u4E2D\u8F6C)" : "Simple Mode (API Proxy)",
502
502
  ccr: lang === "zh-CN" ? "CCR \u9AD8\u7EA7\u8DEF\u7531" : "CCR Advanced Router"
503
503
  };
504
- console.log(` ${ansis.bold(lang === "zh-CN" ? "\u6A21\u5F0F:" : "Mode:")} ${ansis.green(modeLabels[mode])}`);
504
+ console.log(` ${ansis__default.bold(lang === "zh-CN" ? "\u6A21\u5F0F:" : "Mode:")} ${ansis__default.green(modeLabels[mode])}`);
505
505
  if (provider) {
506
506
  const preset = getPresetById(provider);
507
507
  const providerName = preset ? lang === "zh-CN" ? preset.nameZh : preset.name : provider;
508
- console.log(` ${ansis.bold(lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:")} ${ansis.green(providerName)}`);
508
+ console.log(` ${ansis__default.bold(lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:")} ${ansis__default.green(providerName)}`);
509
509
  }
510
510
  if (config?.ANTHROPIC_BASE_URL) {
511
- console.log(` ${ansis.bold("Base URL:")} ${ansis.gray(config.ANTHROPIC_BASE_URL)}`);
511
+ console.log(` ${ansis__default.bold("Base URL:")} ${ansis__default.gray(config.ANTHROPIC_BASE_URL)}`);
512
512
  }
513
513
  if (config?.ANTHROPIC_API_KEY) {
514
514
  const masked = `${config.ANTHROPIC_API_KEY.substring(0, 10)}...`;
515
- console.log(` ${ansis.bold("API Key:")} ${ansis.gray(masked)}`);
515
+ console.log(` ${ansis__default.bold("API Key:")} ${ansis__default.gray(masked)}`);
516
516
  }
517
517
  console.log("");
518
518
  }
519
519
  async function runConfigWizard(lang = "en") {
520
520
  console.log("");
521
- console.log(ansis.green("\u2550".repeat(50)));
522
- console.log(ansis.bold.cyan(lang === "zh-CN" ? " API \u914D\u7F6E\u5411\u5BFC" : " API Configuration Wizard"));
523
- console.log(ansis.green("\u2550".repeat(50)));
521
+ console.log(ansis__default.green("\u2550".repeat(50)));
522
+ console.log(ansis__default.bold.cyan(lang === "zh-CN" ? " API \u914D\u7F6E\u5411\u5BFC" : " API Configuration Wizard"));
523
+ console.log(ansis__default.green("\u2550".repeat(50)));
524
524
  console.log("");
525
525
  const modeChoices = [
526
526
  {
@@ -607,9 +607,9 @@ async function runQuickSetup(lang) {
607
607
  return { success: false, mode: "simple", error: "Provider not found" };
608
608
  }
609
609
  console.log("");
610
- console.log(ansis.green(`\u{1F4CB} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
610
+ console.log(ansis__default.green(`\u{1F4CB} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
611
611
  if (preset.instructions) {
612
- console.log(ansis.gray(` ${lang === "zh-CN" ? preset.instructions.zh : preset.instructions.en}`));
612
+ console.log(ansis__default.gray(` ${lang === "zh-CN" ? preset.instructions.zh : preset.instructions.en}`));
613
613
  }
614
614
  console.log("");
615
615
  let apiKey = "";
@@ -630,17 +630,17 @@ async function runQuickSetup(lang) {
630
630
  const result = configureWithPreset(preset, apiKey);
631
631
  if (result.success) {
632
632
  console.log("");
633
- console.log(ansis.green(`\u2714 ${lang === "zh-CN" ? "API \u914D\u7F6E\u6210\u529F!" : "API configured successfully!"}`));
634
- console.log(ansis.gray(` ${lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:"} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
635
- console.log(ansis.gray(` ${lang === "zh-CN" ? "\u9ED8\u8BA4\u6A21\u578B:" : "Default model:"} ${preset.defaultModel}`));
633
+ console.log(ansis__default.green(`\u2714 ${lang === "zh-CN" ? "API \u914D\u7F6E\u6210\u529F!" : "API configured successfully!"}`));
634
+ console.log(ansis__default.gray(` ${lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:"} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
635
+ console.log(ansis__default.gray(` ${lang === "zh-CN" ? "\u9ED8\u8BA4\u6A21\u578B:" : "Default model:"} ${preset.defaultModel}`));
636
636
  console.log("");
637
637
  }
638
638
  return result;
639
639
  }
640
640
  async function runOfficialSetup(lang) {
641
641
  console.log("");
642
- console.log(ansis.green(lang === "zh-CN" ? "\u{1F4CB} \u5B98\u65B9 Anthropic API" : "\u{1F4CB} Official Anthropic API"));
643
- console.log(ansis.gray(lang === "zh-CN" ? " \u4ECE https://console.anthropic.com/settings/keys \u83B7\u53D6 API \u5BC6\u94A5" : " Get your API key from https://console.anthropic.com/settings/keys"));
642
+ console.log(ansis__default.green(lang === "zh-CN" ? "\u{1F4CB} \u5B98\u65B9 Anthropic API" : "\u{1F4CB} Official Anthropic API"));
643
+ console.log(ansis__default.gray(lang === "zh-CN" ? " \u4ECE https://console.anthropic.com/settings/keys \u83B7\u53D6 API \u5BC6\u94A5" : " Get your API key from https://console.anthropic.com/settings/keys"));
644
644
  console.log("");
645
645
  const { apiKey } = await inquirer.prompt({
646
646
  type: "password",
@@ -659,14 +659,14 @@ async function runOfficialSetup(lang) {
659
659
  const result = configureOfficialMode(apiKey);
660
660
  if (result.success) {
661
661
  console.log("");
662
- console.log(ansis.green(`\u2714 ${lang === "zh-CN" ? "\u5B98\u65B9 API \u914D\u7F6E\u6210\u529F!" : "Official API configured successfully!"}`));
662
+ console.log(ansis__default.green(`\u2714 ${lang === "zh-CN" ? "\u5B98\u65B9 API \u914D\u7F6E\u6210\u529F!" : "Official API configured successfully!"}`));
663
663
  console.log("");
664
664
  }
665
665
  return result;
666
666
  }
667
667
  async function runCustomSetup(lang) {
668
668
  console.log("");
669
- console.log(ansis.green(lang === "zh-CN" ? "\u{1F4CB} \u81EA\u5B9A\u4E49 API \u914D\u7F6E" : "\u{1F4CB} Custom API Configuration"));
669
+ console.log(ansis__default.green(lang === "zh-CN" ? "\u{1F4CB} \u81EA\u5B9A\u4E49 API \u914D\u7F6E" : "\u{1F4CB} Custom API Configuration"));
670
670
  console.log("");
671
671
  const { baseUrl } = await inquirer.prompt({
672
672
  type: "input",
@@ -700,15 +700,15 @@ async function runCustomSetup(lang) {
700
700
  });
701
701
  if (result.success) {
702
702
  console.log("");
703
- console.log(ansis.green(`\u2714 ${lang === "zh-CN" ? "\u81EA\u5B9A\u4E49 API \u914D\u7F6E\u6210\u529F!" : "Custom API configured successfully!"}`));
703
+ console.log(ansis__default.green(`\u2714 ${lang === "zh-CN" ? "\u81EA\u5B9A\u4E49 API \u914D\u7F6E\u6210\u529F!" : "Custom API configured successfully!"}`));
704
704
  console.log("");
705
705
  }
706
706
  return result;
707
707
  }
708
708
  async function runCcrSetup(lang) {
709
709
  console.log("");
710
- console.log(ansis.green(lang === "zh-CN" ? "\u{1F4CB} CCR \u9AD8\u7EA7\u8DEF\u7531\u914D\u7F6E" : "\u{1F4CB} CCR Advanced Router Configuration"));
711
- console.log(ansis.gray(lang === "zh-CN" ? " CCR \u63D0\u4F9B\u5B8C\u6574\u7684\u6A21\u578B\u8DEF\u7531\u3001\u8F6C\u6362\u548C\u591A\u63D0\u4F9B\u5546\u652F\u6301" : " CCR provides full model routing, transformation, and multi-provider support"));
710
+ console.log(ansis__default.green(lang === "zh-CN" ? "\u{1F4CB} CCR \u9AD8\u7EA7\u8DEF\u7531\u914D\u7F6E" : "\u{1F4CB} CCR Advanced Router Configuration"));
711
+ console.log(ansis__default.gray(lang === "zh-CN" ? " CCR \u63D0\u4F9B\u5B8C\u6574\u7684\u6A21\u578B\u8DEF\u7531\u3001\u8F6C\u6362\u548C\u591A\u63D0\u4F9B\u5546\u652F\u6301" : " CCR provides full model routing, transformation, and multi-provider support"));
712
712
  console.log("");
713
713
  try {
714
714
  const { setupCcrConfiguration } = await import('../chunks/init.mjs').then(function (n) { return n.F; });
@@ -730,10 +730,10 @@ async function runCcrSetup(lang) {
730
730
  async function testApiConnection(lang = "en") {
731
731
  const config = getCurrentConfig();
732
732
  if (!config || !config.ANTHROPIC_API_KEY && !config.ANTHROPIC_AUTH_TOKEN) {
733
- console.log(ansis.yellow(lang === "zh-CN" ? "\u26A0 \u672A\u914D\u7F6E API" : "\u26A0 No API configured"));
733
+ console.log(ansis__default.yellow(lang === "zh-CN" ? "\u26A0 \u672A\u914D\u7F6E API" : "\u26A0 No API configured"));
734
734
  return false;
735
735
  }
736
- console.log(ansis.green(lang === "zh-CN" ? "\u{1F50D} \u6D4B\u8BD5 API \u8FDE\u63A5..." : "\u{1F50D} Testing API connection..."));
736
+ console.log(ansis__default.green(lang === "zh-CN" ? "\u{1F50D} \u6D4B\u8BD5 API \u8FDE\u63A5..." : "\u{1F50D} Testing API connection..."));
737
737
  try {
738
738
  const baseUrl = config.ANTHROPIC_BASE_URL || "https://api.anthropic.com";
739
739
  const testUrl = baseUrl.includes("v1") ? baseUrl : `${baseUrl}/v1/models`;
@@ -745,15 +745,15 @@ async function testApiConnection(lang = "en") {
745
745
  }
746
746
  });
747
747
  if (response.ok || response.status === 401) {
748
- console.log(ansis.green(lang === "zh-CN" ? "\u2714 API \u8FDE\u63A5\u6210\u529F" : "\u2714 API connection successful"));
748
+ console.log(ansis__default.green(lang === "zh-CN" ? "\u2714 API \u8FDE\u63A5\u6210\u529F" : "\u2714 API connection successful"));
749
749
  return true;
750
750
  } else {
751
- console.log(ansis.yellow(`\u26A0 API returned status: ${response.status}`));
751
+ console.log(ansis__default.yellow(`\u26A0 API returned status: ${response.status}`));
752
752
  return false;
753
753
  }
754
754
  } catch (error) {
755
- console.log(ansis.red(lang === "zh-CN" ? "\u2716 API \u8FDE\u63A5\u5931\u8D25" : "\u2716 API connection failed"));
756
- console.log(ansis.gray(` ${error instanceof Error ? error.message : String(error)}`));
755
+ console.log(ansis__default.red(lang === "zh-CN" ? "\u2716 API \u8FDE\u63A5\u5931\u8D25" : "\u2716 API connection failed"));
756
+ console.log(ansis__default.gray(` ${error instanceof Error ? error.message : String(error)}`));
757
757
  return false;
758
758
  }
759
759
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ccjk",
3
3
  "type": "module",
4
- "version": "5.2.0",
4
+ "version": "5.2.2",
5
5
  "packageManager": "pnpm@10.17.1",
6
6
  "description": "Claude Code JinKu - Advanced AI-powered development assistant with skills, agents, and LLM-driven audit",
7
7
  "author": {
@@ -168,11 +168,11 @@
168
168
  "@types/express": "^4.17.21",
169
169
  "@types/fs-extra": "^11.0.4",
170
170
  "@types/inquirer": "^9.0.9",
171
- "@types/node": "^22.10.6",
171
+ "@types/node": "^22.18.6",
172
172
  "@types/node-telegram-bot-api": "^0.64.7",
173
173
  "@types/nodemailer": "^6.4.14",
174
174
  "@types/react": "^19.2.8",
175
- "@vitest/coverage-v8": "^3.1.1",
175
+ "@vitest/coverage-v8": "^3.2.4",
176
176
  "@vitest/ui": "^3.2.4",
177
177
  "eslint": "^9.36.0",
178
178
  "eslint-plugin-format": "^1.0.2",