ccjk 14.0.0 → 14.1.0

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 (35) hide show
  1. package/dist/chunks/agents.mjs +1 -1
  2. package/dist/chunks/ccr.mjs +13 -14
  3. package/dist/chunks/check-updates.mjs +1 -3
  4. package/dist/chunks/claude-code-incremental-manager.mjs +1 -1
  5. package/dist/chunks/code-type-resolver.mjs +878 -0
  6. package/dist/chunks/config.mjs +42 -2
  7. package/dist/chunks/config2.mjs +2 -2
  8. package/dist/chunks/doctor.mjs +1 -1
  9. package/dist/chunks/index10.mjs +55 -11
  10. package/dist/chunks/init.mjs +42 -14
  11. package/dist/chunks/installer.mjs +2 -2
  12. package/dist/chunks/mcp.mjs +1 -1
  13. package/dist/chunks/package.mjs +1 -1
  14. package/dist/chunks/quick-setup.mjs +1 -3
  15. package/dist/chunks/research.mjs +733 -6
  16. package/dist/chunks/sessions.mjs +1 -1
  17. package/dist/chunks/skills-sync.mjs +5 -5126
  18. package/dist/chunks/slash-commands.mjs +1 -1
  19. package/dist/chunks/status.mjs +63 -16
  20. package/dist/chunks/uninstall.mjs +1 -3
  21. package/dist/cli.mjs +101 -20
  22. package/dist/i18n/locales/en/configuration.json +6 -2
  23. package/dist/i18n/locales/zh-CN/configuration.json +6 -2
  24. package/dist/index.d.mts +64 -17
  25. package/dist/index.d.ts +64 -17
  26. package/dist/index.mjs +11 -720
  27. package/dist/shared/ccjk.BO45TPXJ.mjs +807 -0
  28. package/dist/shared/{ccjk.BOO14f66.mjs → ccjk.CNhnT6uQ.mjs} +42 -6
  29. package/dist/shared/{ccjk.vO3d1ABk.mjs → ccjk.UhjQ1seV.mjs} +1 -1
  30. package/dist/shared/ccjk.y-a_1vK4.mjs +5127 -0
  31. package/package.json +1 -1
  32. package/dist/chunks/intent-engine.mjs +0 -142
  33. package/dist/chunks/smart-defaults.mjs +0 -425
  34. package/dist/shared/ccjk.DJuyfrlL.mjs +0 -348
  35. package/dist/shared/ccjk.yYQMbHH3.mjs +0 -115
@@ -122,7 +122,7 @@ function getSlashCommands() {
122
122
  descriptionZh: "\u521B\u5EFA\u914D\u7F6E\u5907\u4EFD",
123
123
  category: "system",
124
124
  handler: async () => {
125
- const { backupExistingConfig } = await import('./config.mjs').then(function (n) { return n.B; });
125
+ const { backupExistingConfig } = await import('./config.mjs').then(function (n) { return n.D; });
126
126
  const backupPath = backupExistingConfig();
127
127
  if (backupPath) {
128
128
  console.log(a.green(`\u2705 Backup created: ${backupPath}`));
@@ -2,31 +2,49 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import process__default from 'node:process';
4
4
  import a from './index5.mjs';
5
- import { s as scanProject } from '../shared/ccjk.DJuyfrlL.mjs';
5
+ import { g as getRuntimeCapabilityDescriptor } from '../shared/ccjk.BO45TPXJ.mjs';
6
+ import { s as scanProject, r as resolveCodeType } from './code-type-resolver.mjs';
6
7
  import { MetricsDisplay } from './metrics-display.mjs';
7
8
  import { getContextPersistence } from './persistence.mjs';
8
9
  import { r as runHealthCheck } from '../shared/ccjk.xkKNsC02.mjs';
9
10
  import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
10
11
  import '../shared/ccjk.BAGoDD49.mjs';
11
12
  import 'node:child_process';
12
- import 'better-sqlite3';
13
+ import 'node:path';
14
+ import 'node:util';
15
+ import './index6.mjs';
16
+ import 'node:readline';
17
+ import 'stream';
18
+ import 'node:tty';
19
+ import 'node:async_hooks';
20
+ import '../shared/ccjk.Cjgrln_h.mjs';
21
+ import 'tty';
22
+ import 'fs';
23
+ import 'child_process';
24
+ import 'node:crypto';
25
+ import 'buffer';
26
+ import 'string_decoder';
13
27
  import './constants.mjs';
14
28
  import './index2.mjs';
15
29
  import 'node:url';
30
+ import './json-config.mjs';
31
+ import '../shared/ccjk.RyizuzOI.mjs';
32
+ import './fs-operations.mjs';
33
+ import 'node:fs/promises';
34
+ import './platform.mjs';
35
+ import './main.mjs';
36
+ import 'module';
37
+ import 'node:stream';
38
+ import './ccjk-config.mjs';
39
+ import '../shared/ccjk.BBtCGd_g.mjs';
40
+ import './index3.mjs';
41
+ import 'better-sqlite3';
16
42
  import './memory-check.mjs';
17
- import 'node:path';
18
- import 'fs';
19
43
  import 'constants';
20
- import 'stream';
21
44
  import 'util';
22
45
  import 'assert';
23
46
  import 'path';
24
47
  import './memory-paths.mjs';
25
- import '../shared/ccjk.BBtCGd_g.mjs';
26
- import './index3.mjs';
27
- import './fs-operations.mjs';
28
- import 'node:crypto';
29
- import 'node:fs/promises';
30
48
 
31
49
  const GRADE_COLORS = {
32
50
  S: (s) => a.magenta.bold(s),
@@ -83,7 +101,7 @@ function loadInstalledSettings() {
83
101
  }
84
102
  async function loadSmartDefaults() {
85
103
  try {
86
- const { detectSmartDefaults } = await import('./smart-defaults.mjs').then(function (n) { return n.s; });
104
+ const { detectSmartDefaults } = await import('./code-type-resolver.mjs').then(function (n) { return n.b; });
87
105
  return await detectSmartDefaults();
88
106
  } catch {
89
107
  return null;
@@ -121,7 +139,7 @@ function renderProjectSection(ctx) {
121
139
  }
122
140
  return lines;
123
141
  }
124
- function renderRuntimeSection(ctx) {
142
+ function renderRuntimeSection(ctx, capability) {
125
143
  const lines = [];
126
144
  lines.push(heading("Runtime"));
127
145
  const rt = ctx.runtime;
@@ -143,6 +161,31 @@ function renderRuntimeSection(ctx) {
143
161
  lines.push(` ${label("Environment:".padEnd(14))} ${a.gray("standard")}`);
144
162
  }
145
163
  lines.push(` ${label("Browser:".padEnd(14))} ${rt.hasBrowser ? a.green("available") : a.gray("unavailable")}`);
164
+ if (capability) {
165
+ const nativeFeatures = [
166
+ capability.native.agentLoop && "agent-loop",
167
+ capability.native.planTask && "plan/task",
168
+ capability.native.subagents && "subagents",
169
+ capability.native.slashCommands && "slash-commands",
170
+ capability.native.mcp && "mcp",
171
+ capability.native.permissions && "permissions",
172
+ capability.native.memory && "memory",
173
+ capability.native.ideIntegration && "ide",
174
+ capability.native.worktree && "worktree",
175
+ capability.native.statusline && "statusline"
176
+ ].filter(Boolean);
177
+ const managedByCcjk = [
178
+ capability.managedByCcjk.providerProfiles && "profiles",
179
+ capability.managedByCcjk.modelRouting && "models",
180
+ capability.managedByCcjk.configSync && "config-sync",
181
+ capability.managedByCcjk.permissionRepair && "permission-repair",
182
+ capability.managedByCcjk.mcpBundles && "mcp-bundles",
183
+ capability.managedByCcjk.doctor && "doctor"
184
+ ].filter(Boolean);
185
+ lines.push(` ${label("Ownership:".padEnd(14))} ${val(capability.ownership)}`);
186
+ lines.push(` ${label("Native:".padEnd(14))} ${nativeFeatures.length > 0 ? val(nativeFeatures.join(", ")) : a.gray("none")}`);
187
+ lines.push(` ${label("CCJK:".padEnd(14))} ${managedByCcjk.length > 0 ? val(managedByCcjk.join(", ")) : a.gray("none")}`);
188
+ }
146
189
  return lines;
147
190
  }
148
191
  function renderMcpSection(recommended, installed) {
@@ -325,24 +368,28 @@ function suggestNextAction(health, _ctx) {
325
368
  }
326
369
  async function statusCommand(options = {}) {
327
370
  try {
328
- const [ctx, defaults, installed, health] = await Promise.all([
371
+ const [ctx, defaults, installed, health, codeTool] = await Promise.all([
329
372
  scanProject(),
330
373
  loadSmartDefaults(),
331
374
  Promise.resolve(loadInstalledSettings()),
332
- runHealthCheck()
375
+ runHealthCheck(),
376
+ resolveCodeType()
333
377
  ]);
378
+ const capability = getRuntimeCapabilityDescriptor(codeTool);
334
379
  if (options.json) {
335
380
  console.log(JSON.stringify({
336
381
  project: ctx,
337
382
  smartDefaults: defaults,
338
383
  installed,
339
- health
384
+ health,
385
+ codeTool,
386
+ capability
340
387
  }, null, 2));
341
388
  return;
342
389
  }
343
390
  const sections = [];
344
391
  sections.push(renderProjectSection(ctx));
345
- sections.push(renderRuntimeSection(ctx));
392
+ sections.push(renderRuntimeSection(ctx, capability));
346
393
  if (defaults) {
347
394
  sections.push(renderMcpSection(defaults.mcpServices, installed.mcpServers));
348
395
  sections.push(renderHooksSection(defaults.recommendedHooks, installed.hooks));
@@ -3,7 +3,7 @@ import { i as inquirer } from './index6.mjs';
3
3
  import { ZCF_CONFIG_FILE, DEFAULT_CODE_TOOL_TYPE, isCodeToolType } from './constants.mjs';
4
4
  import { i18n, ensureI18nInitialized, resolveSupportedLanguage } from './index2.mjs';
5
5
  import { readZcfConfig } from './ccjk-config.mjs';
6
- import { r as resolveCodeType } from '../shared/ccjk.yYQMbHH3.mjs';
6
+ import { r as resolveCodeType } from './code-type-resolver.mjs';
7
7
  import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
8
8
  import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
9
9
  import { p as promptBoolean } from '../shared/ccjk.DZ2LLOa-.mjs';
@@ -34,10 +34,8 @@ import './index3.mjs';
34
34
  import './fs-operations.mjs';
35
35
  import 'node:fs/promises';
36
36
  import '../shared/ccjk.RyizuzOI.mjs';
37
- import './smart-defaults.mjs';
38
37
  import 'node:child_process';
39
38
  import './platform.mjs';
40
- import '../shared/ccjk.DJuyfrlL.mjs';
41
39
  import '../shared/ccjk.DeWpAShp.mjs';
42
40
  import 'module';
43
41
  import 'node:stream';
package/dist/cli.mjs CHANGED
@@ -1,6 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
  import process__default from 'node:process';
3
3
 
4
+ function parseOptionalNumber(value, flag) {
5
+ if (value === void 0) {
6
+ return void 0;
7
+ }
8
+ const parsed = Number(value);
9
+ if (!Number.isFinite(parsed)) {
10
+ throw new Error(`${flag} must be a valid number`);
11
+ }
12
+ return parsed;
13
+ }
14
+ function parseOptionalPositiveNumber(value, flag) {
15
+ const parsed = parseOptionalNumber(value, flag);
16
+ if (parsed === void 0) {
17
+ return void 0;
18
+ }
19
+ if (parsed <= 0) {
20
+ throw new Error(`${flag} must be greater than 0`);
21
+ }
22
+ return parsed;
23
+ }
24
+ function parseOptionalPositiveInteger(value, flag) {
25
+ const parsed = parseOptionalPositiveNumber(value, flag);
26
+ if (parsed === void 0) {
27
+ return void 0;
28
+ }
29
+ if (!Number.isInteger(parsed)) {
30
+ throw new Error(`${flag} must be an integer`);
31
+ }
32
+ return parsed;
33
+ }
4
34
  const COMMANDS = [
5
35
  // ==================== Core Commands ====================
6
36
  {
@@ -471,9 +501,14 @@ const COMMANDS = [
471
501
  { flags: "--metric <name>", description: "Metric name to parse from output" },
472
502
  { flags: "--objective <mode>", description: "Metric objective (auto|maximize|minimize)" },
473
503
  { flags: "--baseline <sessionId>", description: "Baseline session id to compare against" },
504
+ { flags: "--program <path>", description: "Research program file path" },
505
+ { flags: "--db-path <path>", description: "Research database path" },
474
506
  { flags: "--budget-ms <ms>", description: "Execution budget in milliseconds" },
475
507
  { flags: "--cwd <path>", description: "Working directory for the command" },
476
- { flags: "--limit <n>", description: "Number of sessions to list" }
508
+ { flags: "--limit <n>", description: "Number of sessions to list" },
509
+ { flags: "--max-rounds <n>", description: "Maximum loop rounds" },
510
+ { flags: "--max-no-improve-rounds <n>", description: "Maximum no-improve rounds before stop" },
511
+ { flags: "--target-metric <value>", description: "Stop the loop when target metric is reached" }
477
512
  ],
478
513
  loader: async () => {
479
514
  return async (options, action, args) => {
@@ -486,9 +521,14 @@ const COMMANDS = [
486
521
  metric: options.metric,
487
522
  objective: options.objective,
488
523
  baseline: options.baseline,
489
- budgetMs: options.budgetMs ? Number(options.budgetMs) : void 0,
524
+ program: options.program,
525
+ dbPath: options.dbPath,
526
+ budgetMs: parseOptionalPositiveNumber(options.budgetMs, "--budget-ms"),
490
527
  cwd: options.cwd,
491
- limit: options.limit ? Number(options.limit) : void 0
528
+ limit: parseOptionalPositiveInteger(options.limit, "--limit"),
529
+ maxRounds: parseOptionalPositiveInteger(options.maxRounds, "--max-rounds"),
530
+ maxNoImproveRounds: parseOptionalPositiveInteger(options.maxNoImproveRounds, "--max-no-improve-rounds"),
531
+ targetMetric: parseOptionalNumber(options.targetMetric, "--target-metric")
492
532
  });
493
533
  };
494
534
  }
@@ -1964,6 +2004,57 @@ ${ansis.yellow("By Status:")}`);
1964
2004
  }
1965
2005
  ];
1966
2006
 
2007
+ const SPECIAL_STARTUP_COMMANDS = [
2008
+ "cloud",
2009
+ "c",
2010
+ "system",
2011
+ "sys",
2012
+ "plugin",
2013
+ "completion",
2014
+ "skills-sync",
2015
+ "agents-sync",
2016
+ "marketplace",
2017
+ "quick",
2018
+ "deep",
2019
+ "setup",
2020
+ "sync",
2021
+ "versions",
2022
+ "permissions",
2023
+ "config-scan",
2024
+ "workspace"
2025
+ ];
2026
+ const EXPLICIT_STARTUP_COMMANDS = /* @__PURE__ */ new Set([
2027
+ ...COMMANDS.flatMap((command) => {
2028
+ const primaryName = command.name.split(/[ <[]/, 1)[0]?.toLowerCase();
2029
+ const aliases = command.aliases?.map((alias) => alias.toLowerCase()) || [];
2030
+ return primaryName ? [primaryName, ...aliases] : aliases;
2031
+ }),
2032
+ ...SPECIAL_STARTUP_COMMANDS
2033
+ ]);
2034
+ function shouldBootstrapCloudServicesForArgs(args) {
2035
+ if (args.length === 0) {
2036
+ return false;
2037
+ }
2038
+ const optionArgsWithValue = /* @__PURE__ */ new Set(["-l", "--lang", "-g", "--all-lang", "-T", "--code-type"]);
2039
+ for (let index = 0; index < args.length; index += 1) {
2040
+ const arg = args[index];
2041
+ if (!arg) {
2042
+ continue;
2043
+ }
2044
+ if (optionArgsWithValue.has(arg)) {
2045
+ index += 1;
2046
+ continue;
2047
+ }
2048
+ if (arg.startsWith("--lang=") || arg.startsWith("--all-lang=") || arg.startsWith("--code-type=")) {
2049
+ continue;
2050
+ }
2051
+ if (arg.startsWith("-") || arg.startsWith("/")) {
2052
+ continue;
2053
+ }
2054
+ return EXPLICIT_STARTUP_COMMANDS.has(arg.toLowerCase());
2055
+ }
2056
+ return false;
2057
+ }
1967
2058
  async function registerSpecialCommands(cli) {
1968
2059
  cli.command("cloud [resource] [action]", "Cloud sync (skills/agents/plugins)").alias("c").option("--dry-run, -d", "Preview changes").option("--force, -f", "Force sync").action(async (resource, action, options) => {
1969
2060
  const resourceStr = resource || "menu";
@@ -2286,8 +2377,7 @@ async function tryQuickProviderLaunch() {
2286
2377
  }
2287
2378
  function bootstrapCloudServices() {
2288
2379
  const args = process.argv.slice(2);
2289
- const isInteractiveMenu = args.length === 0 || args.length === 1 && ["-l", "--lang"].includes(args[0]);
2290
- if (isInteractiveMenu) {
2380
+ if (!shouldBootstrapCloudServicesForArgs(args)) {
2291
2381
  return;
2292
2382
  }
2293
2383
  setImmediate(async () => {
@@ -2432,21 +2522,12 @@ async function runLazyCli() {
2432
2522
  return;
2433
2523
  }
2434
2524
  const args = process__default.argv.slice(2);
2435
- if (args.length > 0) {
2436
- if (args[0].startsWith("/")) {
2437
- spinner?.stop();
2438
- const { executeSlashCommand } = await import('./chunks/slash-commands.mjs');
2439
- const slashHandled = await executeSlashCommand(args.join(" "));
2440
- if (slashHandled) {
2441
- return;
2442
- }
2443
- } else {
2444
- const { handleIntentRecognition } = await import('./chunks/intent-engine.mjs');
2445
- const intentHandled = await handleIntentRecognition();
2446
- if (intentHandled) {
2447
- spinner?.stop();
2448
- return;
2449
- }
2525
+ if (args.length > 0 && args[0].startsWith("/")) {
2526
+ spinner?.stop();
2527
+ const { executeSlashCommand } = await import('./chunks/slash-commands.mjs');
2528
+ const slashHandled = await executeSlashCommand(args.join(" "));
2529
+ if (slashHandled) {
2530
+ return;
2450
2531
  }
2451
2532
  }
2452
2533
  const cac = (await import('./chunks/index7.mjs')).default;
@@ -87,13 +87,17 @@
87
87
  "windowsMcpConfigFixed": "Windows MCP configuration fixed",
88
88
  "setupCompleteTitle": "✅ CCJK Configuration Complete!",
89
89
  "nextSteps": "🎯 Next Steps:",
90
- "guidanceStep1": "1. Open Claude Code and use slash commands:",
90
+ "guidanceStep1": "1. Open {{runtime}} and use slash commands:",
91
91
  "guidanceStep1Detail": "/ccjk:feat - Feature Dev /ccjk:git-commit - Smart Commit",
92
- "guidanceStep1Detail2": "/ccjk:init-project - Init Project /ccjk - View All",
92
+ "guidanceStep1Detail2": "/ccjk:init-project - Init Project /commands - View installed",
93
+ "guidanceStep1MyclaudeDetail": "/ccjk:feat - Feature Dev /ccjk:init-project - Init Project",
94
+ "guidanceStep1MyclaudeDetail2": "/commit - Smart Commit /workflow - Plan Feature",
93
95
  "guidanceStep2": "2. Example:",
94
96
  "guidanceStep2Example": "/ccjk:feat implement user login feature",
95
97
  "guidanceStep3": "3. View all features:",
96
98
  "guidanceStep3Command": "npx ccjk features",
99
+ "guidanceStep3Myclaude": "3. View installed commands:",
100
+ "guidanceStep3MyclaudeCommand": "/commands",
97
101
  "guidanceStep4": "4. Having issues? Run:",
98
102
  "guidanceStep4Command": "npx ccjk doctor",
99
103
  "migration": {
@@ -85,13 +85,17 @@
85
85
  "windowsMcpConfigFixed": "Windows MCP 配置已修复",
86
86
  "setupCompleteTitle": "✅ CCJK 配置完成!",
87
87
  "nextSteps": "🎯 下一步:",
88
- "guidanceStep1": "1. 打开 Claude Code,使用斜杠命令:",
88
+ "guidanceStep1": "1. 打开 {{runtime}},使用斜杠命令:",
89
89
  "guidanceStep1Detail": "/ccjk:feat - 功能开发 /ccjk:git-commit - 智能提交",
90
- "guidanceStep1Detail2": "/ccjk:init-project - 初始化项目 /ccjk - 查看全部",
90
+ "guidanceStep1Detail2": "/ccjk:init-project - 初始化项目 /commands - 查看已安装",
91
+ "guidanceStep1MyclaudeDetail": "/ccjk:feat - 功能开发 /ccjk:init-project - 初始化项目",
92
+ "guidanceStep1MyclaudeDetail2": "/commit - 智能提交 /workflow - 规划功能",
91
93
  "guidanceStep2": "2. 示例:",
92
94
  "guidanceStep2Example": "/ccjk:feat 实现用户登录功能",
93
95
  "guidanceStep3": "3. 查看所有功能:",
94
96
  "guidanceStep3Command": "npx ccjk features",
97
+ "guidanceStep3Myclaude": "3. 查看已安装命令:",
98
+ "guidanceStep3MyclaudeCommand": "/commands",
95
99
  "guidanceStep4": "4. 遇到问题?运行:",
96
100
  "guidanceStep4Command": "npx ccjk doctor",
97
101
  "migration": {
package/dist/index.d.mts CHANGED
@@ -2691,9 +2691,27 @@ declare class FallbackCloudClient {
2691
2691
  */
2692
2692
  declare function createCompleteCloudClient(config?: Partial<CloudClientConfig>): FallbackCloudClient;
2693
2693
 
2694
+ declare const CODE_TOOL_TYPES: readonly ["claude-code", "myclaude", "codex", "aider", "continue", "cline", "cursor"];
2695
+ type CodeToolType = (typeof CODE_TOOL_TYPES)[number];
2696
+ declare const SUPPORTED_LANGS: readonly ["zh-CN", "en"];
2697
+ type SupportedLang = (typeof SUPPORTED_LANGS)[number];
2698
+ declare const AI_OUTPUT_LANGUAGES: {
2699
+ readonly 'zh-CN': {
2700
+ readonly directive: "Always respond in Chinese-simplified";
2701
+ };
2702
+ readonly en: {
2703
+ readonly directive: "Always respond in English";
2704
+ };
2705
+ readonly custom: {
2706
+ readonly directive: "";
2707
+ };
2708
+ };
2709
+ type AiOutputLanguage = keyof typeof AI_OUTPUT_LANGUAGES;
2710
+
2694
2711
  /**
2695
2712
  * Core types for the code tool abstraction layer
2696
2713
  */
2714
+
2697
2715
  /**
2698
2716
  * Configuration for a code tool
2699
2717
  */
@@ -2758,6 +2776,42 @@ interface ToolCapabilities {
2758
2776
  /** Custom capabilities */
2759
2777
  custom?: Record<string, boolean>;
2760
2778
  }
2779
+ /**
2780
+ * Runtime-native capability set exposed by the host tool
2781
+ */
2782
+ interface RuntimeNativeCapabilities {
2783
+ agentLoop: boolean;
2784
+ planTask: boolean;
2785
+ subagents: boolean;
2786
+ slashCommands: boolean;
2787
+ mcp: boolean;
2788
+ permissions: boolean;
2789
+ memory: boolean;
2790
+ ideIntegration: boolean;
2791
+ worktree: boolean;
2792
+ statusline: boolean;
2793
+ }
2794
+ /**
2795
+ * Capability set that CCJK should continue to manage for a runtime
2796
+ */
2797
+ interface RuntimeManagedCapabilities {
2798
+ providerProfiles: boolean;
2799
+ modelRouting: boolean;
2800
+ configSync: boolean;
2801
+ permissionRepair: boolean;
2802
+ mcpBundles: boolean;
2803
+ doctor: boolean;
2804
+ }
2805
+ /**
2806
+ * Runtime capability descriptor used by status/menu/doctor surfaces
2807
+ */
2808
+ interface RuntimeCapabilityDescriptor {
2809
+ runtime: CodeToolType;
2810
+ ownership: 'host-native' | 'hybrid' | 'ccjk-managed';
2811
+ configBackend: 'claude-family' | 'tool-specific';
2812
+ native: RuntimeNativeCapabilities;
2813
+ managedByCcjk: RuntimeManagedCapabilities;
2814
+ }
2761
2815
  /**
2762
2816
  * Tool metadata
2763
2817
  */
@@ -2776,6 +2830,8 @@ interface ToolMetadata {
2776
2830
  documentation?: string;
2777
2831
  /** Tool capabilities */
2778
2832
  capabilities: ToolCapabilities;
2833
+ /** Runtime capability descriptor */
2834
+ runtime?: RuntimeCapabilityDescriptor;
2779
2835
  }
2780
2836
 
2781
2837
  /**
@@ -3276,6 +3332,12 @@ declare class ToolFactory {
3276
3332
  */
3277
3333
  declare function createTool(name: string, config?: Partial<ToolConfig>): ICodeTool;
3278
3334
 
3335
+ /**
3336
+ * Main entry point for code-tools module
3337
+ */
3338
+
3339
+ declare function getRuntimeCapabilityDescriptor(name: CodeToolType | string): RuntimeCapabilityDescriptor | undefined;
3340
+
3279
3341
  /**
3280
3342
  * Array Utilities
3281
3343
  * Array manipulation and transformation functions
@@ -3810,21 +3872,6 @@ declare namespace index$4 {
3810
3872
  export type { index$4_CommandOptions as CommandOptions, index$4_CommandResult as CommandResult };
3811
3873
  }
3812
3874
 
3813
- declare const SUPPORTED_LANGS: readonly ["zh-CN", "en"];
3814
- type SupportedLang = (typeof SUPPORTED_LANGS)[number];
3815
- declare const AI_OUTPUT_LANGUAGES: {
3816
- readonly 'zh-CN': {
3817
- readonly directive: "Always respond in Chinese-simplified";
3818
- };
3819
- readonly en: {
3820
- readonly directive: "Always respond in English";
3821
- };
3822
- readonly custom: {
3823
- readonly directive: "";
3824
- };
3825
- };
3826
- type AiOutputLanguage = keyof typeof AI_OUTPUT_LANGUAGES;
3827
-
3828
3875
  /**
3829
3876
  * Claude Code settings.json configuration types
3830
3877
  * Supports Claude Code CLI 2.0-2.1 configuration schema
@@ -5578,5 +5625,5 @@ declare function assertDefined<T>(value: T | null | undefined, message?: string)
5578
5625
  */
5579
5626
  declare function assert(condition: boolean, message?: string): asserts condition;
5580
5627
 
5581
- export { AiderTool, BaseCodeTool, BaseError, CachedCloudClient, ClaudeCodeTool, ClineTool, CloudCache, CloudClient, CloudClientError, CloudError, CloudErrorCode, CloudErrorFactory, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, FallbackCloudClient, InternalError, Logger, Mutex, NotFoundError, ProjectAnalyzer, RatingsApiError, RatingsApiErrorCode, RetryableCloudClient, Semaphore, TelemetryReporter, TemplatesClient, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, analyzeDependencies, analyzeProject, index$6 as array, assert, assertDefined, index$5 as async, batchAnalyze, batchProcessFiles, camelCase, canInstallMore, capitalize, chunk, index$4 as command, commandExists$1 as commandExists, config, convertBatchTemplateResponse, convertConfig, convertParameterDefault, convertProjectAnalysisResponse, convertRecommendation, convertTemplate, convertTemplateParameter, copyFile, countLines, createCloudClient, createCompleteCloudClient, createConfigManager, createLogger, createRating, createTemplatesClient, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, detectProject, detectProjectType, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, extractDisplayName, extractString, flatten, flatten$1 as flattenArray, formatError, formatErrorForLogging, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCloudMcpRecommendations, getCloudRecommendations, getCloudSkillRecommendations, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getDisabledSkills, getEnabledSkills, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getQuotaUsagePercentage, getRecommendations, getRegistry, getRetryDelay, getSkillRatings, getTelemetry, getTempDir, getTemplatesClient, getUserQuota, getUserSkills, handleCloudError, has, i18nHelpers, initializeTelemetry, installSkill, intersection, isArray, isAuthError, isBoolean, isDefined, isDirectory, isDuplicateRatingError, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isRateLimitError, isRecommendationConfig, isRetryableError, isRetryableErrorCode, isSkillInstalled, isSkillNotFoundError, isString, isTelemetryEventData, isTemplateParameterValue, isURL, isUnauthorizedError, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, logger$2 as loggerUtils, moveFile, normalizeRecommendation, normalizeRecommendations, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, platform, processLargeFile, processLineByLine, ratingsApi, readFile, readJSON, retry, retryUtils, scanCapabilities, sequence, set, shuffle, skillsMarketplaceApi, sleep, slugify, snakeCase, sortByLastUsed, sortByUsage, stopTelemetry, streamJSON, streamWriteJSON, index as string, telemetryUtils, template, throttle, timeout, trackEvent, truncate, tryCatch, tryCatchAsync, unflatten, uninstallSkill, union, unique, updateSkill, userSkillsApi, validateBatchTemplateRequest, validateProjectAnalysisRequest, validateUsageReport, validation, validators, waitFor, withRetry, wrapError, writeFile, writeJSON };
5582
- export type { AgentConfig, AnalysisCompletedData, AnalysisMetadata, AuthRequestOptions, BatchTelemetryData, BatchTemplateRequest, BatchTemplateResponse$1 as BatchTemplateResponse, BuildSystem, CacheEntry, Capability, CapabilityScanResult, CapabilityStatus, CapabilityType, ChunkProcessorOptions, CloudErrorMetadata, CreateRatingData, CreateRatingResponse, DependencyAnalysis, DependencyConflict, DependencyNode, DependencyType, DetectorConfig, ErrorOccurredData, ExecutionResult, FileInfo, FrameworkDetectionResult, GetSkillRatingsParams, GetSkillRatingsResponse, HealthCheckResponse, HookConfig, IChatTool, ICodeGenTool, ICodeTool, IFileEditTool, InstallStatus, InstallationCommands, InstallationPlan, LanguageDetection, McpServerConfig$1 as McpServerConfig, MetricType, MultilingualString, PackageManager, ProjectAnalysis, ProjectAnalysisRequest, ProjectAnalysisResponse, RatingSortOption, RawBatchTemplateResponse, RawProjectAnalysisResponse, RawRecommendation, RawTemplate, Recommendation, RecommendationAcceptedData, RecommendationConfig, RecommendationShownData, SkillConfig, StreamProcessorOptions, TelemetryEventData, TemplateDownloadData, TemplateParameter, TemplateParameterValue, TemplateResponse, TemplateType$1 as TemplateType, ToolCapabilities, ToolConfig, ToolMetadata, UsageReport, UsageReportResponse, WelcomeOptions, WorkflowConfig };
5628
+ export { AiderTool, BaseCodeTool, BaseError, CachedCloudClient, ClaudeCodeTool, ClineTool, CloudCache, CloudClient, CloudClientError, CloudError, CloudErrorCode, CloudErrorFactory, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, FallbackCloudClient, InternalError, Logger, Mutex, NotFoundError, ProjectAnalyzer, RatingsApiError, RatingsApiErrorCode, RetryableCloudClient, Semaphore, TelemetryReporter, TemplatesClient, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, analyzeDependencies, analyzeProject, index$6 as array, assert, assertDefined, index$5 as async, batchAnalyze, batchProcessFiles, camelCase, canInstallMore, capitalize, chunk, index$4 as command, commandExists$1 as commandExists, config, convertBatchTemplateResponse, convertConfig, convertParameterDefault, convertProjectAnalysisResponse, convertRecommendation, convertTemplate, convertTemplateParameter, copyFile, countLines, createCloudClient, createCompleteCloudClient, createConfigManager, createLogger, createRating, createTemplatesClient, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, detectProject, detectProjectType, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, extractDisplayName, extractString, flatten, flatten$1 as flattenArray, formatError, formatErrorForLogging, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCloudMcpRecommendations, getCloudRecommendations, getCloudSkillRecommendations, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getDisabledSkills, getEnabledSkills, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getQuotaUsagePercentage, getRecommendations, getRegistry, getRetryDelay, getRuntimeCapabilityDescriptor, getSkillRatings, getTelemetry, getTempDir, getTemplatesClient, getUserQuota, getUserSkills, handleCloudError, has, i18nHelpers, initializeTelemetry, installSkill, intersection, isArray, isAuthError, isBoolean, isDefined, isDirectory, isDuplicateRatingError, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isRateLimitError, isRecommendationConfig, isRetryableError, isRetryableErrorCode, isSkillInstalled, isSkillNotFoundError, isString, isTelemetryEventData, isTemplateParameterValue, isURL, isUnauthorizedError, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, logger$2 as loggerUtils, moveFile, normalizeRecommendation, normalizeRecommendations, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, platform, processLargeFile, processLineByLine, ratingsApi, readFile, readJSON, retry, retryUtils, scanCapabilities, sequence, set, shuffle, skillsMarketplaceApi, sleep, slugify, snakeCase, sortByLastUsed, sortByUsage, stopTelemetry, streamJSON, streamWriteJSON, index as string, telemetryUtils, template, throttle, timeout, trackEvent, truncate, tryCatch, tryCatchAsync, unflatten, uninstallSkill, union, unique, updateSkill, userSkillsApi, validateBatchTemplateRequest, validateProjectAnalysisRequest, validateUsageReport, validation, validators, waitFor, withRetry, wrapError, writeFile, writeJSON };
5629
+ export type { AgentConfig, AnalysisCompletedData, AnalysisMetadata, AuthRequestOptions, BatchTelemetryData, BatchTemplateRequest, BatchTemplateResponse$1 as BatchTemplateResponse, BuildSystem, CacheEntry, Capability, CapabilityScanResult, CapabilityStatus, CapabilityType, ChunkProcessorOptions, CloudErrorMetadata, CreateRatingData, CreateRatingResponse, DependencyAnalysis, DependencyConflict, DependencyNode, DependencyType, DetectorConfig, ErrorOccurredData, ExecutionResult, FileInfo, FrameworkDetectionResult, GetSkillRatingsParams, GetSkillRatingsResponse, HealthCheckResponse, HookConfig, IChatTool, ICodeGenTool, ICodeTool, IFileEditTool, InstallStatus, InstallationCommands, InstallationPlan, LanguageDetection, McpServerConfig$1 as McpServerConfig, MetricType, MultilingualString, PackageManager, ProjectAnalysis, ProjectAnalysisRequest, ProjectAnalysisResponse, RatingSortOption, RawBatchTemplateResponse, RawProjectAnalysisResponse, RawRecommendation, RawTemplate, Recommendation, RecommendationAcceptedData, RecommendationConfig, RecommendationShownData, RuntimeCapabilityDescriptor, RuntimeManagedCapabilities, RuntimeNativeCapabilities, SkillConfig, StreamProcessorOptions, TelemetryEventData, TemplateDownloadData, TemplateParameter, TemplateParameterValue, TemplateResponse, TemplateType$1 as TemplateType, ToolCapabilities, ToolConfig, ToolMetadata, UsageReport, UsageReportResponse, WelcomeOptions, WorkflowConfig };
package/dist/index.d.ts CHANGED
@@ -2691,9 +2691,27 @@ declare class FallbackCloudClient {
2691
2691
  */
2692
2692
  declare function createCompleteCloudClient(config?: Partial<CloudClientConfig>): FallbackCloudClient;
2693
2693
 
2694
+ declare const CODE_TOOL_TYPES: readonly ["claude-code", "myclaude", "codex", "aider", "continue", "cline", "cursor"];
2695
+ type CodeToolType = (typeof CODE_TOOL_TYPES)[number];
2696
+ declare const SUPPORTED_LANGS: readonly ["zh-CN", "en"];
2697
+ type SupportedLang = (typeof SUPPORTED_LANGS)[number];
2698
+ declare const AI_OUTPUT_LANGUAGES: {
2699
+ readonly 'zh-CN': {
2700
+ readonly directive: "Always respond in Chinese-simplified";
2701
+ };
2702
+ readonly en: {
2703
+ readonly directive: "Always respond in English";
2704
+ };
2705
+ readonly custom: {
2706
+ readonly directive: "";
2707
+ };
2708
+ };
2709
+ type AiOutputLanguage = keyof typeof AI_OUTPUT_LANGUAGES;
2710
+
2694
2711
  /**
2695
2712
  * Core types for the code tool abstraction layer
2696
2713
  */
2714
+
2697
2715
  /**
2698
2716
  * Configuration for a code tool
2699
2717
  */
@@ -2758,6 +2776,42 @@ interface ToolCapabilities {
2758
2776
  /** Custom capabilities */
2759
2777
  custom?: Record<string, boolean>;
2760
2778
  }
2779
+ /**
2780
+ * Runtime-native capability set exposed by the host tool
2781
+ */
2782
+ interface RuntimeNativeCapabilities {
2783
+ agentLoop: boolean;
2784
+ planTask: boolean;
2785
+ subagents: boolean;
2786
+ slashCommands: boolean;
2787
+ mcp: boolean;
2788
+ permissions: boolean;
2789
+ memory: boolean;
2790
+ ideIntegration: boolean;
2791
+ worktree: boolean;
2792
+ statusline: boolean;
2793
+ }
2794
+ /**
2795
+ * Capability set that CCJK should continue to manage for a runtime
2796
+ */
2797
+ interface RuntimeManagedCapabilities {
2798
+ providerProfiles: boolean;
2799
+ modelRouting: boolean;
2800
+ configSync: boolean;
2801
+ permissionRepair: boolean;
2802
+ mcpBundles: boolean;
2803
+ doctor: boolean;
2804
+ }
2805
+ /**
2806
+ * Runtime capability descriptor used by status/menu/doctor surfaces
2807
+ */
2808
+ interface RuntimeCapabilityDescriptor {
2809
+ runtime: CodeToolType;
2810
+ ownership: 'host-native' | 'hybrid' | 'ccjk-managed';
2811
+ configBackend: 'claude-family' | 'tool-specific';
2812
+ native: RuntimeNativeCapabilities;
2813
+ managedByCcjk: RuntimeManagedCapabilities;
2814
+ }
2761
2815
  /**
2762
2816
  * Tool metadata
2763
2817
  */
@@ -2776,6 +2830,8 @@ interface ToolMetadata {
2776
2830
  documentation?: string;
2777
2831
  /** Tool capabilities */
2778
2832
  capabilities: ToolCapabilities;
2833
+ /** Runtime capability descriptor */
2834
+ runtime?: RuntimeCapabilityDescriptor;
2779
2835
  }
2780
2836
 
2781
2837
  /**
@@ -3276,6 +3332,12 @@ declare class ToolFactory {
3276
3332
  */
3277
3333
  declare function createTool(name: string, config?: Partial<ToolConfig>): ICodeTool;
3278
3334
 
3335
+ /**
3336
+ * Main entry point for code-tools module
3337
+ */
3338
+
3339
+ declare function getRuntimeCapabilityDescriptor(name: CodeToolType | string): RuntimeCapabilityDescriptor | undefined;
3340
+
3279
3341
  /**
3280
3342
  * Array Utilities
3281
3343
  * Array manipulation and transformation functions
@@ -3810,21 +3872,6 @@ declare namespace index$4 {
3810
3872
  export type { index$4_CommandOptions as CommandOptions, index$4_CommandResult as CommandResult };
3811
3873
  }
3812
3874
 
3813
- declare const SUPPORTED_LANGS: readonly ["zh-CN", "en"];
3814
- type SupportedLang = (typeof SUPPORTED_LANGS)[number];
3815
- declare const AI_OUTPUT_LANGUAGES: {
3816
- readonly 'zh-CN': {
3817
- readonly directive: "Always respond in Chinese-simplified";
3818
- };
3819
- readonly en: {
3820
- readonly directive: "Always respond in English";
3821
- };
3822
- readonly custom: {
3823
- readonly directive: "";
3824
- };
3825
- };
3826
- type AiOutputLanguage = keyof typeof AI_OUTPUT_LANGUAGES;
3827
-
3828
3875
  /**
3829
3876
  * Claude Code settings.json configuration types
3830
3877
  * Supports Claude Code CLI 2.0-2.1 configuration schema
@@ -5578,5 +5625,5 @@ declare function assertDefined<T>(value: T | null | undefined, message?: string)
5578
5625
  */
5579
5626
  declare function assert(condition: boolean, message?: string): asserts condition;
5580
5627
 
5581
- export { AiderTool, BaseCodeTool, BaseError, CachedCloudClient, ClaudeCodeTool, ClineTool, CloudCache, CloudClient, CloudClientError, CloudError, CloudErrorCode, CloudErrorFactory, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, FallbackCloudClient, InternalError, Logger, Mutex, NotFoundError, ProjectAnalyzer, RatingsApiError, RatingsApiErrorCode, RetryableCloudClient, Semaphore, TelemetryReporter, TemplatesClient, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, analyzeDependencies, analyzeProject, index$6 as array, assert, assertDefined, index$5 as async, batchAnalyze, batchProcessFiles, camelCase, canInstallMore, capitalize, chunk, index$4 as command, commandExists$1 as commandExists, config, convertBatchTemplateResponse, convertConfig, convertParameterDefault, convertProjectAnalysisResponse, convertRecommendation, convertTemplate, convertTemplateParameter, copyFile, countLines, createCloudClient, createCompleteCloudClient, createConfigManager, createLogger, createRating, createTemplatesClient, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, detectProject, detectProjectType, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, extractDisplayName, extractString, flatten, flatten$1 as flattenArray, formatError, formatErrorForLogging, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCloudMcpRecommendations, getCloudRecommendations, getCloudSkillRecommendations, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getDisabledSkills, getEnabledSkills, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getQuotaUsagePercentage, getRecommendations, getRegistry, getRetryDelay, getSkillRatings, getTelemetry, getTempDir, getTemplatesClient, getUserQuota, getUserSkills, handleCloudError, has, i18nHelpers, initializeTelemetry, installSkill, intersection, isArray, isAuthError, isBoolean, isDefined, isDirectory, isDuplicateRatingError, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isRateLimitError, isRecommendationConfig, isRetryableError, isRetryableErrorCode, isSkillInstalled, isSkillNotFoundError, isString, isTelemetryEventData, isTemplateParameterValue, isURL, isUnauthorizedError, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, logger$2 as loggerUtils, moveFile, normalizeRecommendation, normalizeRecommendations, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, platform, processLargeFile, processLineByLine, ratingsApi, readFile, readJSON, retry, retryUtils, scanCapabilities, sequence, set, shuffle, skillsMarketplaceApi, sleep, slugify, snakeCase, sortByLastUsed, sortByUsage, stopTelemetry, streamJSON, streamWriteJSON, index as string, telemetryUtils, template, throttle, timeout, trackEvent, truncate, tryCatch, tryCatchAsync, unflatten, uninstallSkill, union, unique, updateSkill, userSkillsApi, validateBatchTemplateRequest, validateProjectAnalysisRequest, validateUsageReport, validation, validators, waitFor, withRetry, wrapError, writeFile, writeJSON };
5582
- export type { AgentConfig, AnalysisCompletedData, AnalysisMetadata, AuthRequestOptions, BatchTelemetryData, BatchTemplateRequest, BatchTemplateResponse$1 as BatchTemplateResponse, BuildSystem, CacheEntry, Capability, CapabilityScanResult, CapabilityStatus, CapabilityType, ChunkProcessorOptions, CloudErrorMetadata, CreateRatingData, CreateRatingResponse, DependencyAnalysis, DependencyConflict, DependencyNode, DependencyType, DetectorConfig, ErrorOccurredData, ExecutionResult, FileInfo, FrameworkDetectionResult, GetSkillRatingsParams, GetSkillRatingsResponse, HealthCheckResponse, HookConfig, IChatTool, ICodeGenTool, ICodeTool, IFileEditTool, InstallStatus, InstallationCommands, InstallationPlan, LanguageDetection, McpServerConfig$1 as McpServerConfig, MetricType, MultilingualString, PackageManager, ProjectAnalysis, ProjectAnalysisRequest, ProjectAnalysisResponse, RatingSortOption, RawBatchTemplateResponse, RawProjectAnalysisResponse, RawRecommendation, RawTemplate, Recommendation, RecommendationAcceptedData, RecommendationConfig, RecommendationShownData, SkillConfig, StreamProcessorOptions, TelemetryEventData, TemplateDownloadData, TemplateParameter, TemplateParameterValue, TemplateResponse, TemplateType$1 as TemplateType, ToolCapabilities, ToolConfig, ToolMetadata, UsageReport, UsageReportResponse, WelcomeOptions, WorkflowConfig };
5628
+ export { AiderTool, BaseCodeTool, BaseError, CachedCloudClient, ClaudeCodeTool, ClineTool, CloudCache, CloudClient, CloudClientError, CloudError, CloudErrorCode, CloudErrorFactory, CodexTool, ConfigManager, ConfigValidator, ConfigurationError, ContinueTool, CursorTool, FallbackCloudClient, InternalError, Logger, Mutex, NotFoundError, ProjectAnalyzer, RatingsApiError, RatingsApiErrorCode, RetryableCloudClient, Semaphore, TelemetryReporter, TemplatesClient, TimeoutError, ToolFactory, ToolRegistry, UnauthorizedError, ValidationError, analyzeDependencies, analyzeProject, index$6 as array, assert, assertDefined, index$5 as async, batchAnalyze, batchProcessFiles, camelCase, canInstallMore, capitalize, chunk, index$4 as command, commandExists$1 as commandExists, config, convertBatchTemplateResponse, convertConfig, convertParameterDefault, convertProjectAnalysisResponse, convertRecommendation, convertTemplate, convertTemplateParameter, copyFile, countLines, createCloudClient, createCompleteCloudClient, createConfigManager, createLogger, createRating, createTemplatesClient, createTool, createValidator, debounce, deepClone, deepMerge, deleteDir, deleteFile, detectProject, detectProjectType, difference, ensureDir, index$3 as error, executeCommand, executeCommandStream, exists, extractDisplayName, extractString, flatten, flatten$1 as flattenArray, formatError, formatErrorForLogging, index$2 as fs, generateCompactWelcome, generateRecommendations, generateWelcome, get, getArchitecture, getCacheDir, getCapabilitiesByType, getCapability, getCloudMcpRecommendations, getCloudRecommendations, getCloudSkillRecommendations, getCommandPath, getCommandVersion, getConfigDir, getDataDir, getDisabledSkills, getEnabledSkills, getErrorMessage, getFileInfo, getFileSize, getHomeDir, getPlatform, getPlatformInfo, getQuotaUsagePercentage, getRecommendations, getRegistry, getRetryDelay, getRuntimeCapabilityDescriptor, getSkillRatings, getTelemetry, getTempDir, getTemplatesClient, getUserQuota, getUserSkills, handleCloudError, has, i18nHelpers, initializeTelemetry, installSkill, intersection, isArray, isAuthError, isBoolean, isDefined, isDirectory, isDuplicateRatingError, isEmail, isFile, isLargeFile, isLinux, isMacOS, isNumber, isObject, isRateLimitError, isRecommendationConfig, isRetryableError, isRetryableErrorCode, isSkillInstalled, isSkillNotFoundError, isString, isTelemetryEventData, isTemplateParameterValue, isURL, isUnauthorizedError, isUnix, isWindows, kebabCase, listDirs, listFiles, logger, logger$2 as loggerUtils, moveFile, normalizeRecommendation, normalizeRecommendations, index$1 as object, omit, parallelLimit, partition, pascalCase, pick, platform, processLargeFile, processLineByLine, ratingsApi, readFile, readJSON, retry, retryUtils, scanCapabilities, sequence, set, shuffle, skillsMarketplaceApi, sleep, slugify, snakeCase, sortByLastUsed, sortByUsage, stopTelemetry, streamJSON, streamWriteJSON, index as string, telemetryUtils, template, throttle, timeout, trackEvent, truncate, tryCatch, tryCatchAsync, unflatten, uninstallSkill, union, unique, updateSkill, userSkillsApi, validateBatchTemplateRequest, validateProjectAnalysisRequest, validateUsageReport, validation, validators, waitFor, withRetry, wrapError, writeFile, writeJSON };
5629
+ export type { AgentConfig, AnalysisCompletedData, AnalysisMetadata, AuthRequestOptions, BatchTelemetryData, BatchTemplateRequest, BatchTemplateResponse$1 as BatchTemplateResponse, BuildSystem, CacheEntry, Capability, CapabilityScanResult, CapabilityStatus, CapabilityType, ChunkProcessorOptions, CloudErrorMetadata, CreateRatingData, CreateRatingResponse, DependencyAnalysis, DependencyConflict, DependencyNode, DependencyType, DetectorConfig, ErrorOccurredData, ExecutionResult, FileInfo, FrameworkDetectionResult, GetSkillRatingsParams, GetSkillRatingsResponse, HealthCheckResponse, HookConfig, IChatTool, ICodeGenTool, ICodeTool, IFileEditTool, InstallStatus, InstallationCommands, InstallationPlan, LanguageDetection, McpServerConfig$1 as McpServerConfig, MetricType, MultilingualString, PackageManager, ProjectAnalysis, ProjectAnalysisRequest, ProjectAnalysisResponse, RatingSortOption, RawBatchTemplateResponse, RawProjectAnalysisResponse, RawRecommendation, RawTemplate, Recommendation, RecommendationAcceptedData, RecommendationConfig, RecommendationShownData, RuntimeCapabilityDescriptor, RuntimeManagedCapabilities, RuntimeNativeCapabilities, SkillConfig, StreamProcessorOptions, TelemetryEventData, TemplateDownloadData, TemplateParameter, TemplateParameterValue, TemplateResponse, TemplateType$1 as TemplateType, ToolCapabilities, ToolConfig, ToolMetadata, UsageReport, UsageReportResponse, WelcomeOptions, WorkflowConfig };