ccjk 13.3.6 → 13.3.7

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 (150) hide show
  1. package/dist/chunks/agent-teams.mjs +7 -5
  2. package/dist/chunks/agent.mjs +2 -2
  3. package/dist/chunks/agents.mjs +16 -16
  4. package/dist/chunks/api-cli.mjs +6 -6
  5. package/dist/chunks/api-providers.mjs +1 -1
  6. package/dist/chunks/api.mjs +4 -4
  7. package/dist/chunks/auto-bootstrap.mjs +1 -1
  8. package/dist/chunks/auto-fix.mjs +49 -4
  9. package/dist/chunks/auto-fixer.mjs +7 -5
  10. package/dist/chunks/auto-init.mjs +9 -7208
  11. package/dist/chunks/auto-memory-bridge.mjs +9 -3
  12. package/dist/chunks/auto-updater.mjs +9 -9
  13. package/dist/chunks/auto-upgrade.mjs +5 -3
  14. package/dist/chunks/banner.mjs +4 -3
  15. package/dist/chunks/boost.mjs +118 -62
  16. package/dist/chunks/ccjk-agents.mjs +3 -3
  17. package/dist/chunks/ccjk-all.mjs +7 -7
  18. package/dist/chunks/ccjk-config.mjs +2 -2
  19. package/dist/chunks/ccjk-hooks.mjs +4 -4
  20. package/dist/chunks/ccjk-mcp.mjs +5 -5
  21. package/dist/chunks/ccjk-setup.mjs +5 -5
  22. package/dist/chunks/ccjk-skills.mjs +5 -5
  23. package/dist/chunks/ccr.mjs +18 -16
  24. package/dist/chunks/ccu.mjs +2 -2
  25. package/dist/chunks/check-updates.mjs +8 -8
  26. package/dist/chunks/claude-code-config-manager.mjs +12 -10
  27. package/dist/chunks/claude-code-incremental-manager.mjs +7 -7
  28. package/dist/chunks/claude-config.mjs +1 -1
  29. package/dist/chunks/claude-wrapper.mjs +1 -1
  30. package/dist/chunks/cli-hook.mjs +15 -15
  31. package/dist/chunks/codex-config-switch.mjs +7 -7
  32. package/dist/chunks/codex-provider-manager.mjs +7 -7
  33. package/dist/chunks/codex-uninstaller.mjs +2 -2
  34. package/dist/chunks/codex.mjs +5 -5
  35. package/dist/chunks/commands.mjs +2 -2
  36. package/dist/chunks/commands2.mjs +3 -3
  37. package/dist/chunks/commit.mjs +2 -2
  38. package/dist/chunks/completion.mjs +2 -2
  39. package/dist/chunks/config-consolidator.mjs +2 -2
  40. package/dist/chunks/config-switch.mjs +8 -8
  41. package/dist/chunks/config.mjs +6 -5
  42. package/dist/chunks/config2.mjs +5 -5
  43. package/dist/chunks/config3.mjs +4 -4
  44. package/dist/chunks/constants.mjs +1 -1
  45. package/dist/chunks/context-opt.mjs +92 -90
  46. package/dist/chunks/context.mjs +659 -0
  47. package/dist/chunks/dashboard.mjs +14 -9
  48. package/dist/chunks/doctor.mjs +4 -4
  49. package/dist/chunks/eval.mjs +502 -0
  50. package/dist/chunks/evolution.mjs +46 -39
  51. package/dist/chunks/health-alerts.mjs +9 -9
  52. package/dist/chunks/help.mjs +1 -1
  53. package/dist/chunks/hook-installer.mjs +6 -3
  54. package/dist/chunks/index.mjs +23 -0
  55. package/dist/chunks/index10.mjs +634 -571
  56. package/dist/chunks/index11.mjs +1061 -569
  57. package/dist/chunks/index12.mjs +914 -1076
  58. package/dist/chunks/index13.mjs +136 -951
  59. package/dist/chunks/index14.mjs +209 -185
  60. package/dist/chunks/index2.mjs +19 -24
  61. package/dist/chunks/index3.mjs +19085 -12
  62. package/dist/chunks/index4.mjs +16 -19092
  63. package/dist/chunks/index5.mjs +7602 -16
  64. package/dist/chunks/index6.mjs +159 -7590
  65. package/dist/chunks/index7.mjs +1602 -171
  66. package/dist/chunks/index8.mjs +19 -1602
  67. package/dist/chunks/index9.mjs +612 -15
  68. package/dist/chunks/init.mjs +26 -19
  69. package/dist/chunks/installer.mjs +5 -5
  70. package/dist/chunks/installer2.mjs +2 -2
  71. package/dist/chunks/intent-engine.mjs +1 -1
  72. package/dist/chunks/interview.mjs +4 -4
  73. package/dist/chunks/manager.mjs +1 -1
  74. package/dist/chunks/marketplace.mjs +2 -2
  75. package/dist/chunks/mcp-cli.mjs +12 -12
  76. package/dist/chunks/mcp.mjs +8 -8
  77. package/dist/chunks/memory.mjs +8 -8
  78. package/dist/chunks/menu-hierarchical.mjs +24 -22
  79. package/dist/chunks/menu.mjs +27 -22
  80. package/dist/chunks/metrics-display.mjs +2 -2
  81. package/dist/chunks/migrator.mjs +1 -1
  82. package/dist/chunks/monitor.mjs +2 -2
  83. package/dist/chunks/notification.mjs +6 -6
  84. package/dist/chunks/onboarding-wizard.mjs +6 -5
  85. package/dist/chunks/onboarding.mjs +4 -4
  86. package/dist/chunks/package.mjs +1 -1
  87. package/dist/chunks/paradigm.mjs +2 -2
  88. package/dist/chunks/permission-manager.mjs +2 -2
  89. package/dist/chunks/permissions.mjs +3 -3
  90. package/dist/chunks/persistence-manager.mjs +19 -12
  91. package/dist/chunks/persistence.mjs +5 -3
  92. package/dist/chunks/plugin.mjs +2 -2
  93. package/dist/chunks/prompts.mjs +5 -5
  94. package/dist/chunks/providers.mjs +2 -2
  95. package/dist/chunks/quick-actions.mjs +7 -6
  96. package/dist/chunks/quick-provider.mjs +5 -4
  97. package/dist/chunks/quick-setup.mjs +20 -15
  98. package/dist/chunks/remote.mjs +15 -16
  99. package/dist/chunks/{convoy-manager.mjs → session-manager.mjs} +1129 -1095
  100. package/dist/chunks/session.mjs +2 -2
  101. package/dist/chunks/sessions.mjs +3 -3
  102. package/dist/chunks/silent-updater.mjs +1 -1
  103. package/dist/chunks/simple-config.mjs +2 -2
  104. package/dist/chunks/skill2.mjs +3 -3
  105. package/dist/chunks/skills-sync.mjs +5 -5
  106. package/dist/chunks/skills.mjs +3 -3
  107. package/dist/chunks/slash-commands.mjs +9 -8
  108. package/dist/chunks/smart-defaults.mjs +9 -5
  109. package/dist/chunks/startup.mjs +1 -1
  110. package/dist/chunks/stats.mjs +2 -2
  111. package/dist/chunks/status.mjs +37 -22
  112. package/dist/chunks/team.mjs +3 -3
  113. package/dist/chunks/thinking.mjs +4 -4
  114. package/dist/chunks/trace.mjs +2 -2
  115. package/dist/chunks/uninstall.mjs +9 -9
  116. package/dist/chunks/update.mjs +14 -11
  117. package/dist/chunks/upgrade-manager.mjs +3 -3
  118. package/dist/chunks/upgrade.mjs +25 -9
  119. package/dist/chunks/version-checker.mjs +4 -4
  120. package/dist/chunks/vim.mjs +3 -3
  121. package/dist/chunks/workflows.mjs +1 -1
  122. package/dist/chunks/wsl.mjs +1 -1
  123. package/dist/chunks/zero-config.mjs +4 -4
  124. package/dist/cli.mjs +60 -26
  125. package/dist/index.d.mts +4392 -4392
  126. package/dist/index.d.ts +4392 -4392
  127. package/dist/index.mjs +4314 -4314
  128. package/dist/shared/{ccjk.DcKLglJQ.mjs → ccjk.BIxuVL3_.mjs} +2 -2
  129. package/dist/shared/{ccjk.DJdmgr2d.mjs → ccjk.BJMRY2Ra.mjs} +5 -3
  130. package/dist/shared/{ccjk.B1TwPltj.mjs → ccjk.BOu1yav7.mjs} +3 -2
  131. package/dist/shared/{ccjk.mJpVRDZ8.mjs → ccjk.BWFpnOr3.mjs} +1 -1
  132. package/dist/shared/{ccjk.BfIpomdz.mjs → ccjk.CHUEFqmw.mjs} +3 -2
  133. package/dist/shared/{ccjk.CqdbaXqU.mjs → ccjk.CLUL0pAV.mjs} +9 -5
  134. package/dist/shared/{ccjk.Cot9p9_n.mjs → ccjk.Cjj8SVrn.mjs} +1 -1
  135. package/dist/shared/{ccjk.CfrpIIKy.mjs → ccjk.Crd_nEfj.mjs} +38 -20
  136. package/dist/shared/{ccjk.DCw2WnZU.mjs → ccjk.CvChMYvB.mjs} +1 -1
  137. package/dist/shared/{ccjk.CXzjn01x.mjs → ccjk.D8ZLYSZZ.mjs} +1 -1
  138. package/dist/shared/{ccjk.BrPUmTqm.mjs → ccjk.DJuyfrlL.mjs} +164 -82
  139. package/dist/shared/{ccjk.DHXfsrwn.mjs → ccjk.DRfdq6yl.mjs} +4 -4
  140. package/dist/shared/{ccjk.DXRAZcix.mjs → ccjk.DScm_NnL.mjs} +8 -4
  141. package/dist/shared/{ccjk.XsJWJuQP.mjs → ccjk.DfZKjHvG.mjs} +6 -128
  142. package/dist/shared/{ccjk.BFxsJM0k.mjs → ccjk.DwSebGy0.mjs} +4 -3
  143. package/dist/shared/ccjk.DxWqH-EF.mjs +170 -0
  144. package/dist/shared/{ccjk.Cwa_FiTX.mjs → ccjk.I6IuYdc_.mjs} +2 -2
  145. package/dist/shared/{ccjk.DpstNaeR.mjs → ccjk.KpFl2RDA.mjs} +3 -3
  146. package/dist/shared/{ccjk.dYDLfmph.mjs → ccjk._dESH4Rk.mjs} +1 -1
  147. package/dist/shared/{ccjk.BxSmJ8B7.mjs → ccjk.wLJHO0Af.mjs} +2 -1
  148. package/package.json +2 -1
  149. package/dist/chunks/index15.mjs +0 -218
  150. package/dist/shared/{ccjk.c-ETfBZ_.mjs → ccjk.eIn-g1yI.mjs} +96 -96
@@ -120,11 +120,11 @@ async function findAutoMemoryFiles(claudeProjectsDir) {
120
120
  entries,
121
121
  rawContent: content
122
122
  });
123
- } catch (err) {
123
+ } catch {
124
124
  continue;
125
125
  }
126
126
  }
127
- } catch (err) {
127
+ } catch {
128
128
  return [];
129
129
  }
130
130
  return documents;
@@ -153,7 +153,7 @@ async function syncBrainToAutoMemory(session, config) {
153
153
  return;
154
154
  }
155
155
  const baseDir = config.claudeProjectsDir || join(homedir(), ".claude", "projects");
156
- const projectDirName = "-" + projectPath.replace(/\//g, "-");
156
+ const projectDirName = `-${projectPath.replace(/\//g, "-")}`;
157
157
  const memoryDir = join(baseDir, projectDirName, "memory");
158
158
  const memoryPath = join(memoryDir, "MEMORY.md");
159
159
  const content = brainContextToAutoMemory(session.context);
@@ -210,6 +210,12 @@ class AutoMemoryBridge {
210
210
  await syncBrainToAutoMemory(session, this.config);
211
211
  }
212
212
  }
213
+ async syncToClaude(session) {
214
+ if (!session) {
215
+ return;
216
+ }
217
+ await syncBrainToAutoMemory(session, this.config);
218
+ }
213
219
  }
214
220
 
215
221
  export { AutoMemoryBridge, autoMemoryToBrainContext, brainContextToAutoMemory, findAutoMemoryFiles, parseAutoMemory, syncAutoMemoryToBrain, syncBrainToAutoMemory };
@@ -1,9 +1,9 @@
1
- import a from './index3.mjs';
2
- import ora from './index8.mjs';
1
+ import a from './index2.mjs';
2
+ import ora from './index7.mjs';
3
3
  import { exec as q } from './main.mjs';
4
- import { ensureI18nInitialized, i18n, format } from './index6.mjs';
4
+ import { ensureI18nInitialized, i18n, format } from './index5.mjs';
5
5
  import { s as shouldUseSudoForGlobalInstall } from './platform.mjs';
6
- import { p as promptBoolean } from '../shared/ccjk.mJpVRDZ8.mjs';
6
+ import { p as promptBoolean } from '../shared/ccjk.BWFpnOr3.mjs';
7
7
  import { checkClaudeCodeVersion, fixBrokenNpmSymlink, checkCcrVersion, handleDuplicateInstallations, checkCometixLineVersion } from './version-checker.mjs';
8
8
  import '../shared/ccjk.BAGoDD49.mjs';
9
9
  import 'node:process';
@@ -19,7 +19,7 @@ import 'node:url';
19
19
  import '../shared/ccjk.bQ7Dh1g4.mjs';
20
20
  import 'node:os';
21
21
  import 'node:async_hooks';
22
- import './index4.mjs';
22
+ import './index3.mjs';
23
23
  import 'stream';
24
24
  import 'node:tty';
25
25
  import 'node:util';
@@ -110,7 +110,7 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
110
110
  console.log(a.green(` ${i18n.t("installation:correctPackage")}: @anthropic-ai/claude-code`));
111
111
  console.log();
112
112
  if (!skipPrompt) {
113
- const inquirer = (await import('./index4.mjs').then(function (n) { return n.c; })).default;
113
+ const inquirer = (await import('./index3.mjs').then(function (n) { return n.c; })).default;
114
114
  const { shouldFix } = await inquirer.prompt([
115
115
  {
116
116
  type: "confirm",
@@ -358,7 +358,7 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
358
358
  try {
359
359
  const { readFileSync } = await import('node:fs');
360
360
  const { fileURLToPath } = await import('node:url');
361
- const { dirname, join } = await import('./index9.mjs');
361
+ const { dirname, join } = await import('./index8.mjs');
362
362
  const __dirname = dirname(fileURLToPath(import.meta.url));
363
363
  const pkgPath = join(__dirname, "..", "..", "package.json");
364
364
  const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
@@ -372,7 +372,7 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
372
372
  return;
373
373
  }
374
374
  if (!skipPrompt) {
375
- const inquirer = (await import('./index4.mjs').then(function (n) { return n.c; })).default;
375
+ const inquirer = (await import('./index3.mjs').then(function (n) { return n.c; })).default;
376
376
  const { shouldUpdate } = await inquirer.prompt([
377
377
  {
378
378
  type: "confirm",
@@ -391,7 +391,7 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
391
391
  await q("npm", ["cache", "clean", "--force"]);
392
392
  } catch {
393
393
  }
394
- const ora2 = (await import('./index8.mjs')).default;
394
+ const ora2 = (await import('./index7.mjs')).default;
395
395
  const updateSpinner = ora2("Updating CCJK...").start();
396
396
  try {
397
397
  await execWithSudoIfNeeded("npm", ["install", "-g", "ccjk@latest", "--force"]);
@@ -1,7 +1,7 @@
1
1
  import { execSync } from 'node:child_process';
2
2
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
- import { join } from 'node:path';
4
3
  import { homedir } from 'node:os';
4
+ import { join } from 'node:path';
5
5
 
6
6
  function getCurrentVersion() {
7
7
  try {
@@ -94,7 +94,8 @@ function shouldShowPrompt(versionInfo, state) {
94
94
  }
95
95
  function showUpgradePrompt(versionInfo) {
96
96
  const { current, latest, updateType } = versionInfo;
97
- console.log("\n" + "=".repeat(60));
97
+ console.log(`
98
+ ${"=".repeat(60)}`);
98
99
  console.log("\u{1F680} New version available!");
99
100
  console.log(` Current: v${current}`);
100
101
  console.log(` Latest: v${latest} (${updateType} update)`);
@@ -102,7 +103,8 @@ function showUpgradePrompt(versionInfo) {
102
103
  console.log(" npm install -g @cometx/ccjk@latest");
103
104
  console.log(" # or");
104
105
  console.log(" pnpm add -g @cometx/ccjk@latest");
105
- console.log("=".repeat(60) + "\n");
106
+ console.log(`${"=".repeat(60)}
107
+ `);
106
108
  }
107
109
  async function autoCheckUpdates(silent = false) {
108
110
  try {
@@ -1,5 +1,5 @@
1
- import a from './index3.mjs';
2
- import { ensureI18nInitialized, i18n } from './index6.mjs';
1
+ import a from './index2.mjs';
2
+ import { ensureI18nInitialized, i18n } from './index5.mjs';
3
3
  import { a as getRuntimeHomepage, g as getRuntimeVersion } from '../shared/ccjk.gDEDGD_t.mjs';
4
4
  import '../shared/ccjk.BAGoDD49.mjs';
5
5
  import 'node:fs';
@@ -172,7 +172,8 @@ ${i18n.t("cli:commandDiscovery.claudeCodeTitle")}`));
172
172
  console.log(` ${a.cyan(cmdPadded)} - ${a.white(desc)}`);
173
173
  }
174
174
  }
175
- console.log(a.gray("\n" + "\u2500".repeat(60)));
175
+ console.log(a.gray(`
176
+ ${"\u2500".repeat(60)}`));
176
177
  console.log(a.gray(` ${i18n.t("cli:commandDiscovery.footer")}
177
178
  `));
178
179
  }
@@ -1,20 +1,20 @@
1
- import a from './index3.mjs';
1
+ import a from './index2.mjs';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import process__default from 'node:process';
4
4
  import { SETTINGS_FILE } from './constants.mjs';
5
5
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
6
- import { r as runHealthCheck } from '../shared/ccjk.CfrpIIKy.mjs';
6
+ import { r as runHealthCheck } from '../shared/ccjk.Crd_nEfj.mjs';
7
7
  import '../shared/ccjk.BAGoDD49.mjs';
8
8
  import 'node:os';
9
- import './index6.mjs';
9
+ import './index5.mjs';
10
10
  import 'node:url';
11
+ import 'node:path';
11
12
  import 'fs';
12
13
  import 'constants';
13
14
  import 'stream';
14
15
  import 'util';
15
16
  import 'assert';
16
17
  import 'path';
17
- import 'node:path';
18
18
 
19
19
  function analyzeProject(root) {
20
20
  const cwd = process__default.cwd();
@@ -52,67 +52,108 @@ function analyzeProject(root) {
52
52
  return profile;
53
53
  }
54
54
  function detectLanguage(cwd, pkg) {
55
- if (existsSync(join(cwd, "tsconfig.json")) || pkg?.devDependencies?.typescript) return "typescript";
56
- if (existsSync(join(cwd, "pyproject.toml")) || existsSync(join(cwd, "setup.py"))) return "python";
57
- if (existsSync(join(cwd, "go.mod"))) return "go";
58
- if (existsSync(join(cwd, "Cargo.toml"))) return "rust";
59
- if (existsSync(join(cwd, "Gemfile"))) return "ruby";
60
- if (existsSync(join(cwd, "pom.xml")) || existsSync(join(cwd, "build.gradle"))) return "java";
61
- if (existsSync(join(cwd, "Package.swift"))) return "swift";
62
- if (pkg) return "javascript";
55
+ if (existsSync(join(cwd, "tsconfig.json")) || pkg?.devDependencies?.typescript)
56
+ return "typescript";
57
+ if (existsSync(join(cwd, "pyproject.toml")) || existsSync(join(cwd, "setup.py")))
58
+ return "python";
59
+ if (existsSync(join(cwd, "go.mod")))
60
+ return "go";
61
+ if (existsSync(join(cwd, "Cargo.toml")))
62
+ return "rust";
63
+ if (existsSync(join(cwd, "Gemfile")))
64
+ return "ruby";
65
+ if (existsSync(join(cwd, "pom.xml")) || existsSync(join(cwd, "build.gradle")))
66
+ return "java";
67
+ if (existsSync(join(cwd, "Package.swift")))
68
+ return "swift";
69
+ if (pkg)
70
+ return "javascript";
63
71
  return "unknown";
64
72
  }
65
73
  function detectPackageManager(cwd) {
66
- if (existsSync(join(cwd, "pnpm-lock.yaml")) || existsSync(join(cwd, "pnpm-workspace.yaml"))) return "pnpm";
67
- if (existsSync(join(cwd, "yarn.lock"))) return "yarn";
68
- if (existsSync(join(cwd, "bun.lockb")) || existsSync(join(cwd, "bun.lock"))) return "bun";
69
- if (existsSync(join(cwd, "package-lock.json"))) return "npm";
74
+ if (existsSync(join(cwd, "pnpm-lock.yaml")) || existsSync(join(cwd, "pnpm-workspace.yaml")))
75
+ return "pnpm";
76
+ if (existsSync(join(cwd, "yarn.lock")))
77
+ return "yarn";
78
+ if (existsSync(join(cwd, "bun.lockb")) || existsSync(join(cwd, "bun.lock")))
79
+ return "bun";
80
+ if (existsSync(join(cwd, "package-lock.json")))
81
+ return "npm";
70
82
  return "unknown";
71
83
  }
72
84
  function detectFrameworks(_cwd, pkg) {
73
85
  const frameworks = [];
74
86
  const allDeps = { ...pkg?.dependencies, ...pkg?.devDependencies };
75
- if (allDeps?.react || allDeps?.["react-dom"]) frameworks.push("react");
76
- if (allDeps?.vue) frameworks.push("vue");
77
- if (allDeps?.svelte) frameworks.push("svelte");
78
- if (allDeps?.angular || allDeps?.["@angular/core"]) frameworks.push("angular");
79
- if (allDeps?.next) frameworks.push("nextjs");
80
- if (allDeps?.nuxt) frameworks.push("nuxt");
81
- if (allDeps?.astro) frameworks.push("astro");
82
- if (allDeps?.express) frameworks.push("express");
83
- if (allDeps?.fastify) frameworks.push("fastify");
84
- if (allDeps?.koa) frameworks.push("koa");
85
- if (allDeps?.hono) frameworks.push("hono");
86
- if (allDeps?.["@nestjs/core"]) frameworks.push("nestjs");
87
- if (allDeps?.electron) frameworks.push("electron");
88
- if (allDeps?.["@tauri-apps/api"]) frameworks.push("tauri");
89
- if (allDeps?.["react-native"]) frameworks.push("react-native");
90
- if (allDeps?.cac || allDeps?.commander || allDeps?.yargs) frameworks.push("cli");
87
+ if (allDeps?.react || allDeps?.["react-dom"])
88
+ frameworks.push("react");
89
+ if (allDeps?.vue)
90
+ frameworks.push("vue");
91
+ if (allDeps?.svelte)
92
+ frameworks.push("svelte");
93
+ if (allDeps?.angular || allDeps?.["@angular/core"])
94
+ frameworks.push("angular");
95
+ if (allDeps?.next)
96
+ frameworks.push("nextjs");
97
+ if (allDeps?.nuxt)
98
+ frameworks.push("nuxt");
99
+ if (allDeps?.astro)
100
+ frameworks.push("astro");
101
+ if (allDeps?.express)
102
+ frameworks.push("express");
103
+ if (allDeps?.fastify)
104
+ frameworks.push("fastify");
105
+ if (allDeps?.koa)
106
+ frameworks.push("koa");
107
+ if (allDeps?.hono)
108
+ frameworks.push("hono");
109
+ if (allDeps?.["@nestjs/core"])
110
+ frameworks.push("nestjs");
111
+ if (allDeps?.electron)
112
+ frameworks.push("electron");
113
+ if (allDeps?.["@tauri-apps/api"])
114
+ frameworks.push("tauri");
115
+ if (allDeps?.["react-native"])
116
+ frameworks.push("react-native");
117
+ if (allDeps?.cac || allDeps?.commander || allDeps?.yargs)
118
+ frameworks.push("cli");
91
119
  return frameworks;
92
120
  }
93
121
  function detectTestFramework(cwd, pkg) {
94
122
  const allDeps = { ...pkg?.dependencies, ...pkg?.devDependencies };
95
- if (allDeps?.vitest || existsSync(join(cwd, "vitest.config.ts"))) return "vitest";
96
- if (allDeps?.jest || existsSync(join(cwd, "jest.config.js"))) return "jest";
97
- if (allDeps?.mocha) return "mocha";
98
- if (allDeps?.playwright || allDeps?.["@playwright/test"]) return "playwright";
99
- if (allDeps?.cypress) return "cypress";
100
- if (existsSync(join(cwd, "pytest.ini")) || existsSync(join(cwd, "conftest.py"))) return "pytest";
123
+ if (allDeps?.vitest || existsSync(join(cwd, "vitest.config.ts")))
124
+ return "vitest";
125
+ if (allDeps?.jest || existsSync(join(cwd, "jest.config.js")))
126
+ return "jest";
127
+ if (allDeps?.mocha)
128
+ return "mocha";
129
+ if (allDeps?.playwright || allDeps?.["@playwright/test"])
130
+ return "playwright";
131
+ if (allDeps?.cypress)
132
+ return "cypress";
133
+ if (existsSync(join(cwd, "pytest.ini")) || existsSync(join(cwd, "conftest.py")))
134
+ return "pytest";
101
135
  return void 0;
102
136
  }
103
137
  function detectBuildTool(cwd, pkg) {
104
138
  const allDeps = { ...pkg?.dependencies, ...pkg?.devDependencies };
105
- if (allDeps?.vite || existsSync(join(cwd, "vite.config.ts"))) return "vite";
106
- if (allDeps?.webpack) return "webpack";
107
- if (allDeps?.esbuild) return "esbuild";
108
- if (allDeps?.unbuild) return "unbuild";
109
- if (allDeps?.rollup) return "rollup";
110
- if (allDeps?.turbo || existsSync(join(cwd, "turbo.json"))) return "turbo";
139
+ if (allDeps?.vite || existsSync(join(cwd, "vite.config.ts")))
140
+ return "vite";
141
+ if (allDeps?.webpack)
142
+ return "webpack";
143
+ if (allDeps?.esbuild)
144
+ return "esbuild";
145
+ if (allDeps?.unbuild)
146
+ return "unbuild";
147
+ if (allDeps?.rollup)
148
+ return "rollup";
149
+ if (allDeps?.turbo || existsSync(join(cwd, "turbo.json")))
150
+ return "turbo";
111
151
  return void 0;
112
152
  }
113
153
  function checkMcpConfigured() {
114
154
  try {
115
- if (!existsSync(SETTINGS_FILE)) return false;
155
+ if (!existsSync(SETTINGS_FILE))
156
+ return false;
116
157
  const settings = JSON.parse(readFileSync(SETTINGS_FILE, "utf-8"));
117
158
  return Object.keys(settings.mcpServers || {}).length > 0;
118
159
  } catch {
@@ -123,16 +164,26 @@ function generateTags(profile) {
123
164
  const tags = [];
124
165
  tags.push(profile.language);
125
166
  tags.push(...profile.frameworks);
126
- if (profile.testFramework) tags.push(profile.testFramework);
127
- if (profile.buildTool) tags.push(profile.buildTool);
128
- if (profile.packageManager !== "unknown") tags.push(profile.packageManager);
129
- if (profile.hasCI) tags.push("ci");
130
- if (profile.hasDocker) tags.push("docker");
131
- if (profile.isMonorepo) tags.push("monorepo");
132
- if (profile.frameworks.some((f) => ["react", "vue", "svelte", "angular"].includes(f))) tags.push("frontend");
133
- if (profile.frameworks.some((f) => ["express", "fastify", "koa", "nestjs", "hono"].includes(f))) tags.push("backend");
134
- if (profile.frameworks.some((f) => ["nextjs", "nuxt", "astro"].includes(f))) tags.push("fullstack");
135
- if (profile.frameworks.includes("cli")) tags.push("cli-tool");
167
+ if (profile.testFramework)
168
+ tags.push(profile.testFramework);
169
+ if (profile.buildTool)
170
+ tags.push(profile.buildTool);
171
+ if (profile.packageManager !== "unknown")
172
+ tags.push(profile.packageManager);
173
+ if (profile.hasCI)
174
+ tags.push("ci");
175
+ if (profile.hasDocker)
176
+ tags.push("docker");
177
+ if (profile.isMonorepo)
178
+ tags.push("monorepo");
179
+ if (profile.frameworks.some((f) => ["react", "vue", "svelte", "angular"].includes(f)))
180
+ tags.push("frontend");
181
+ if (profile.frameworks.some((f) => ["express", "fastify", "koa", "nestjs", "hono"].includes(f)))
182
+ tags.push("backend");
183
+ if (profile.frameworks.some((f) => ["nextjs", "nuxt", "astro"].includes(f)))
184
+ tags.push("fullstack");
185
+ if (profile.frameworks.includes("cli"))
186
+ tags.push("cli-tool");
136
187
  return [...new Set(tags)];
137
188
  }
138
189
 
@@ -216,9 +267,11 @@ function matchSkills(profile) {
216
267
  const results = [];
217
268
  const seen = /* @__PURE__ */ new Set();
218
269
  for (const rule of SKILL_RULES) {
219
- if (seen.has(rule.skill.id)) continue;
270
+ if (seen.has(rule.skill.id))
271
+ continue;
220
272
  const matchingTags = rule.tags.filter((t) => profile.tags.includes(t));
221
- if (matchingTags.length === 0) continue;
273
+ if (matchingTags.length === 0)
274
+ continue;
222
275
  const matchScore = Math.min(100, Math.round(matchingTags.length / rule.tags.length * 100) + 20);
223
276
  results.push({ ...rule.skill, matchScore });
224
277
  seen.add(rule.skill.id);
@@ -230,9 +283,11 @@ function matchMcpServices(profile) {
230
283
  const results = [];
231
284
  const seen = /* @__PURE__ */ new Set();
232
285
  for (const rule of MCP_RULES) {
233
- if (seen.has(rule.mcp.id)) continue;
286
+ if (seen.has(rule.mcp.id))
287
+ continue;
234
288
  const matchingTags = rule.tags.filter((t) => profile.tags.includes(t));
235
- if (matchingTags.length === 0) continue;
289
+ if (matchingTags.length === 0)
290
+ continue;
236
291
  const matchScore = Math.min(100, Math.round(matchingTags.length / rule.tags.length * 100) + 20);
237
292
  results.push({ ...rule.mcp, matchScore });
238
293
  seen.add(rule.mcp.id);
@@ -244,7 +299,8 @@ function getRecommendations(profile) {
244
299
  const skills = matchSkills(profile);
245
300
  const mcpServices = matchMcpServices(profile);
246
301
  const parts = [];
247
- if (profile.language !== "unknown") parts.push(profile.language);
302
+ if (profile.language !== "unknown")
303
+ parts.push(profile.language);
248
304
  parts.push(...profile.frameworks.slice(0, 3));
249
305
  const stackDesc = parts.join(" + ") || "your project";
250
306
  return {
@@ -312,7 +368,7 @@ async function runCcjkCommand(args) {
312
368
  }
313
369
  async function boost(options = {}) {
314
370
  console.log(a.cyan.bold("\n\u{1F680} CCJK Boost - One-Click Optimization\n"));
315
- const ora = (await import('./index8.mjs')).default;
371
+ const ora = (await import('./index7.mjs')).default;
316
372
  let spinner = ora("Analyzing your setup...").start();
317
373
  const [report, profile] = await Promise.all([
318
374
  runHealthCheck(),
@@ -352,7 +408,7 @@ async function boost(options = {}) {
352
408
  }
353
409
  let selectedActions = actions;
354
410
  if (!options.yes) {
355
- const { default: inquirer } = await import('./index4.mjs').then(function (n) { return n.c; });
411
+ const { default: inquirer } = await import('./index3.mjs').then(function (n) { return n.c; });
356
412
  const { selected } = await inquirer.prompt([{
357
413
  type: "checkbox",
358
414
  name: "selected",
@@ -1,13 +1,13 @@
1
1
  import process__default, { cwd } from 'node:process';
2
- import { c as consola, P as ProjectAnalyzer, g as getTemplatesClient } from '../shared/ccjk.DHXfsrwn.mjs';
3
- import { i18n } from './index6.mjs';
2
+ import { c as consola, P as ProjectAnalyzer, g as getTemplatesClient } from '../shared/ccjk.DRfdq6yl.mjs';
3
+ import { i18n } from './index5.mjs';
4
4
  import { existsSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
5
5
  import { CLAUDE_AGENTS_DIR } from './constants.mjs';
6
6
  import { j as join, d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
7
7
  import { w as writeAgentFile } from '../shared/ccjk.CfKKcvWy.mjs';
8
8
  import { fileURLToPath } from 'node:url';
9
9
  import { a as extractDisplayName, e as extractString } from '../shared/ccjk.C2jHOZVP.mjs';
10
- import './index9.mjs';
10
+ import './index8.mjs';
11
11
  import 'tinyglobby';
12
12
  import '../shared/ccjk.BBtCGd_g.mjs';
13
13
  import 'node:os';
@@ -1,7 +1,7 @@
1
- import a from './index3.mjs';
2
- import { c as consola, a as analyzeProject } from '../shared/ccjk.DHXfsrwn.mjs';
3
- import { c as createCompleteCloudClient } from '../shared/ccjk.CqdbaXqU.mjs';
4
- import { i18n, ensureI18nInitialized } from './index6.mjs';
1
+ import a from './index2.mjs';
2
+ import { c as consola, a as analyzeProject } from '../shared/ccjk.DRfdq6yl.mjs';
3
+ import { c as createCompleteCloudClient } from '../shared/ccjk.CLUL0pAV.mjs';
4
+ import { i18n, ensureI18nInitialized } from './index5.mjs';
5
5
  import { createHash } from 'node:crypto';
6
6
  import { promises, readFileSync } from 'node:fs';
7
7
  import { join } from 'node:path';
@@ -12,7 +12,7 @@ import { ccjkMcp } from './ccjk-mcp.mjs';
12
12
  import { ccjkSkills } from './ccjk-skills.mjs';
13
13
  import { e as extractString } from '../shared/ccjk.C2jHOZVP.mjs';
14
14
  import '../shared/ccjk.BAGoDD49.mjs';
15
- import './index9.mjs';
15
+ import './index8.mjs';
16
16
  import '../shared/ccjk.bQ7Dh1g4.mjs';
17
17
  import 'tinyglobby';
18
18
  import '../shared/ccjk.BBtCGd_g.mjs';
@@ -23,7 +23,7 @@ import 'node:os';
23
23
  import '../shared/ccjk.D6ycHbak.mjs';
24
24
  import '../shared/ccjk.CfKKcvWy.mjs';
25
25
  import 'node:perf_hooks';
26
- import './index4.mjs';
26
+ import './index3.mjs';
27
27
  import 'node:readline';
28
28
  import 'stream';
29
29
  import 'node:tty';
@@ -449,7 +449,7 @@ class CloudSetupOrchestrator {
449
449
  return false;
450
450
  }
451
451
  try {
452
- const inquirerModule = await import('./index4.mjs').then(function (n) { return n.c; });
452
+ const inquirerModule = await import('./index3.mjs').then(function (n) { return n.c; });
453
453
  const inquirer = inquirerModule.default || inquirerModule;
454
454
  const { confirm } = await inquirer.prompt([
455
455
  {
@@ -1,12 +1,12 @@
1
1
  import { existsSync, mkdirSync, renameSync, copyFileSync, rmSync } from 'node:fs';
2
2
  import { p as parse } from '../shared/ccjk.BBtCGd_g.mjs';
3
- import { stringify } from './index7.mjs';
3
+ import { stringify } from './index6.mjs';
4
4
  import { DEFAULT_CODE_TOOL_TYPE, ZCF_CONFIG_FILE, LEGACY_ZCF_CONFIG_FILES, ZCF_CONFIG_DIR, isCodeToolType, SUPPORTED_LANGS } from './constants.mjs';
5
5
  import { exists, readFile, ensureDir, writeFileAtomic } from './fs-operations.mjs';
6
6
  import { readJsonConfig } from './json-config.mjs';
7
7
  import { d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
8
8
  import 'node:os';
9
- import './index6.mjs';
9
+ import './index5.mjs';
10
10
  import 'node:process';
11
11
  import 'node:url';
12
12
  import 'node:crypto';
@@ -1,13 +1,13 @@
1
1
  import { performance } from 'node:perf_hooks';
2
- import { c as consola, P as ProjectAnalyzer, g as getTemplatesClient } from '../shared/ccjk.DHXfsrwn.mjs';
3
- import { i as inquirer } from './index4.mjs';
2
+ import { c as consola, P as ProjectAnalyzer, g as getTemplatesClient } from '../shared/ccjk.DRfdq6yl.mjs';
3
+ import { i as inquirer } from './index3.mjs';
4
4
  import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
5
5
  import process__default from 'node:process';
6
6
  import { exec } from 'node:child_process';
7
7
  import { promisify } from 'node:util';
8
8
  import { j as join, d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
9
- import { i18n } from './index6.mjs';
10
- import './index9.mjs';
9
+ import { i18n } from './index5.mjs';
10
+ import './index8.mjs';
11
11
  import 'tinyglobby';
12
12
  import '../shared/ccjk.BBtCGd_g.mjs';
13
13
  import 'node:readline';
@@ -1,15 +1,15 @@
1
1
  import { join } from 'node:path';
2
2
  import { cwd } from 'node:process';
3
- import a from './index3.mjs';
4
- import { c as consola, a as analyzeProject, g as getTemplatesClient } from '../shared/ccjk.DHXfsrwn.mjs';
5
- import { i as inquirer } from './index4.mjs';
3
+ import a from './index2.mjs';
4
+ import { c as consola, a as analyzeProject, g as getTemplatesClient } from '../shared/ccjk.DRfdq6yl.mjs';
5
+ import { i as inquirer } from './index3.mjs';
6
6
  import { CLAUDE_DIR } from './constants.mjs';
7
- import { ensureI18nInitialized, i18n } from './index6.mjs';
7
+ import { ensureI18nInitialized, i18n } from './index5.mjs';
8
8
  import { c as backupMcpConfig, r as readMcpConfig, m as mergeMcpServers, w as writeMcpConfig } from './claude-config.mjs';
9
9
  import { e as commandExists } from './platform.mjs';
10
10
  import '../shared/ccjk.BAGoDD49.mjs';
11
11
  import 'node:fs';
12
- import './index9.mjs';
12
+ import './index8.mjs';
13
13
  import '../shared/ccjk.bQ7Dh1g4.mjs';
14
14
  import 'tinyglobby';
15
15
  import '../shared/ccjk.BBtCGd_g.mjs';
@@ -1,6 +1,6 @@
1
- import a from './index3.mjs';
2
- import { c as consola, P as ProjectAnalyzer } from '../shared/ccjk.DHXfsrwn.mjs';
3
- import { i18n } from './index6.mjs';
1
+ import a from './index2.mjs';
2
+ import { c as consola, P as ProjectAnalyzer } from '../shared/ccjk.DRfdq6yl.mjs';
3
+ import { i18n } from './index5.mjs';
4
4
  import { promises } from 'node:fs';
5
5
  import { performance } from 'node:perf_hooks';
6
6
  import { ccjkAgents } from './ccjk-agents.mjs';
@@ -10,7 +10,7 @@ import { ccjkSkills } from './ccjk-skills.mjs';
10
10
  import { d as dayjs } from '../shared/ccjk.RyizuzOI.mjs';
11
11
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
12
12
  import '../shared/ccjk.BAGoDD49.mjs';
13
- import './index9.mjs';
13
+ import './index8.mjs';
14
14
  import 'tinyglobby';
15
15
  import '../shared/ccjk.BBtCGd_g.mjs';
16
16
  import 'node:process';
@@ -19,7 +19,7 @@ import './constants.mjs';
19
19
  import 'node:os';
20
20
  import '../shared/ccjk.CfKKcvWy.mjs';
21
21
  import '../shared/ccjk.C2jHOZVP.mjs';
22
- import './index4.mjs';
22
+ import './index3.mjs';
23
23
  import 'node:readline';
24
24
  import 'stream';
25
25
  import 'node:tty';
@@ -2,13 +2,13 @@ import { promises } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join, dirname } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
- import a from './index3.mjs';
6
- import { c as consola, a as analyzeProject, g as getTemplatesClient } from '../shared/ccjk.DHXfsrwn.mjs';
7
- import { i as inquirer } from './index4.mjs';
8
- import { i18n } from './index6.mjs';
5
+ import a from './index2.mjs';
6
+ import { c as consola, a as analyzeProject, g as getTemplatesClient } from '../shared/ccjk.DRfdq6yl.mjs';
7
+ import { i as inquirer } from './index3.mjs';
8
+ import { i18n } from './index5.mjs';
9
9
  import { g as getSkillParser } from '../shared/ccjk.DsYaCCx4.mjs';
10
10
  import '../shared/ccjk.BAGoDD49.mjs';
11
- import './index9.mjs';
11
+ import './index8.mjs';
12
12
  import '../shared/ccjk.bQ7Dh1g4.mjs';
13
13
  import 'tinyglobby';
14
14
  import '../shared/ccjk.BBtCGd_g.mjs';