agents-reverse-engineer 0.3.6 → 0.4.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 (156) hide show
  1. package/dist/ai/backends/claude.d.ts +92 -0
  2. package/dist/ai/backends/claude.d.ts.map +1 -0
  3. package/dist/ai/backends/claude.js +213 -0
  4. package/dist/ai/backends/claude.js.map +1 -0
  5. package/dist/ai/backends/gemini.d.ts +53 -0
  6. package/dist/ai/backends/gemini.d.ts.map +1 -0
  7. package/dist/ai/backends/gemini.js +66 -0
  8. package/dist/ai/backends/gemini.js.map +1 -0
  9. package/dist/ai/backends/opencode.d.ts +53 -0
  10. package/dist/ai/backends/opencode.d.ts.map +1 -0
  11. package/dist/ai/backends/opencode.js +66 -0
  12. package/dist/ai/backends/opencode.js.map +1 -0
  13. package/dist/ai/index.d.ts +39 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +54 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/ai/pricing.d.ts +84 -0
  18. package/dist/ai/pricing.d.ts.map +1 -0
  19. package/dist/ai/pricing.js +149 -0
  20. package/dist/ai/pricing.js.map +1 -0
  21. package/dist/ai/pricing.test.d.ts +2 -0
  22. package/dist/ai/pricing.test.d.ts.map +1 -0
  23. package/dist/ai/pricing.test.js +164 -0
  24. package/dist/ai/pricing.test.js.map +1 -0
  25. package/dist/ai/registry.d.ts +128 -0
  26. package/dist/ai/registry.d.ts.map +1 -0
  27. package/dist/ai/registry.js +192 -0
  28. package/dist/ai/registry.js.map +1 -0
  29. package/dist/ai/retry.d.ts +77 -0
  30. package/dist/ai/retry.d.ts.map +1 -0
  31. package/dist/ai/retry.js +100 -0
  32. package/dist/ai/retry.js.map +1 -0
  33. package/dist/ai/service.d.ts +124 -0
  34. package/dist/ai/service.d.ts.map +1 -0
  35. package/dist/ai/service.js +239 -0
  36. package/dist/ai/service.js.map +1 -0
  37. package/dist/ai/subprocess.d.ts +45 -0
  38. package/dist/ai/subprocess.d.ts.map +1 -0
  39. package/dist/ai/subprocess.js +90 -0
  40. package/dist/ai/subprocess.js.map +1 -0
  41. package/dist/ai/telemetry/cleanup.d.ts +30 -0
  42. package/dist/ai/telemetry/cleanup.d.ts.map +1 -0
  43. package/dist/ai/telemetry/cleanup.js +56 -0
  44. package/dist/ai/telemetry/cleanup.js.map +1 -0
  45. package/dist/ai/telemetry/logger.d.ts +76 -0
  46. package/dist/ai/telemetry/logger.d.ts.map +1 -0
  47. package/dist/ai/telemetry/logger.js +130 -0
  48. package/dist/ai/telemetry/logger.js.map +1 -0
  49. package/dist/ai/telemetry/run-log.d.ts +29 -0
  50. package/dist/ai/telemetry/run-log.d.ts.map +1 -0
  51. package/dist/ai/telemetry/run-log.js +43 -0
  52. package/dist/ai/telemetry/run-log.js.map +1 -0
  53. package/dist/ai/types.d.ts +235 -0
  54. package/dist/ai/types.d.ts.map +1 -0
  55. package/dist/ai/types.js +34 -0
  56. package/dist/ai/types.js.map +1 -0
  57. package/dist/cli/discover.d.ts.map +1 -1
  58. package/dist/cli/discover.js +0 -2
  59. package/dist/cli/discover.js.map +1 -1
  60. package/dist/cli/generate.d.ts +22 -14
  61. package/dist/cli/generate.d.ts.map +1 -1
  62. package/dist/cli/generate.js +91 -50
  63. package/dist/cli/generate.js.map +1 -1
  64. package/dist/cli/index.js +12 -3
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/update.d.ts +13 -4
  67. package/dist/cli/update.d.ts.map +1 -1
  68. package/dist/cli/update.js +93 -131
  69. package/dist/cli/update.js.map +1 -1
  70. package/dist/config/defaults.d.ts +2 -2
  71. package/dist/config/defaults.d.ts.map +1 -1
  72. package/dist/config/defaults.js +2 -0
  73. package/dist/config/defaults.js.map +1 -1
  74. package/dist/config/schema.d.ts +175 -1
  75. package/dist/config/schema.d.ts.map +1 -1
  76. package/dist/config/schema.js +36 -1
  77. package/dist/config/schema.js.map +1 -1
  78. package/dist/generation/executor.d.ts.map +1 -1
  79. package/dist/generation/executor.js +2 -5
  80. package/dist/generation/executor.js.map +1 -1
  81. package/dist/generation/prompts/builder.d.ts +10 -0
  82. package/dist/generation/prompts/builder.d.ts.map +1 -1
  83. package/dist/generation/prompts/builder.js +77 -1
  84. package/dist/generation/prompts/builder.js.map +1 -1
  85. package/dist/generation/prompts/index.d.ts +1 -1
  86. package/dist/generation/prompts/index.d.ts.map +1 -1
  87. package/dist/generation/prompts/index.js +1 -1
  88. package/dist/generation/prompts/index.js.map +1 -1
  89. package/dist/generation/prompts/templates.d.ts +5 -0
  90. package/dist/generation/prompts/templates.d.ts.map +1 -1
  91. package/dist/generation/prompts/templates.js +94 -7
  92. package/dist/generation/prompts/templates.js.map +1 -1
  93. package/dist/generation/prompts/types.d.ts +2 -2
  94. package/dist/generation/prompts/types.js +1 -1
  95. package/dist/generation/writers/agents-md.d.ts +3 -59
  96. package/dist/generation/writers/agents-md.d.ts.map +1 -1
  97. package/dist/generation/writers/agents-md.js +11 -249
  98. package/dist/generation/writers/agents-md.js.map +1 -1
  99. package/dist/generation/writers/index.d.ts +1 -1
  100. package/dist/generation/writers/index.d.ts.map +1 -1
  101. package/dist/generation/writers/index.js +1 -1
  102. package/dist/generation/writers/index.js.map +1 -1
  103. package/dist/orchestration/index.d.ts +27 -0
  104. package/dist/orchestration/index.d.ts.map +1 -0
  105. package/dist/orchestration/index.js +34 -0
  106. package/dist/orchestration/index.js.map +1 -0
  107. package/dist/orchestration/pool.d.ts +62 -0
  108. package/dist/orchestration/pool.d.ts.map +1 -0
  109. package/dist/orchestration/pool.js +75 -0
  110. package/dist/orchestration/pool.js.map +1 -0
  111. package/dist/orchestration/progress.d.ts +124 -0
  112. package/dist/orchestration/progress.d.ts.map +1 -0
  113. package/dist/orchestration/progress.js +214 -0
  114. package/dist/orchestration/progress.js.map +1 -0
  115. package/dist/orchestration/runner.d.ts +76 -0
  116. package/dist/orchestration/runner.d.ts.map +1 -0
  117. package/dist/orchestration/runner.js +494 -0
  118. package/dist/orchestration/runner.js.map +1 -0
  119. package/dist/orchestration/types.d.ts +123 -0
  120. package/dist/orchestration/types.d.ts.map +1 -0
  121. package/dist/orchestration/types.js +11 -0
  122. package/dist/orchestration/types.js.map +1 -0
  123. package/dist/quality/density/validator.d.ts +38 -0
  124. package/dist/quality/density/validator.d.ts.map +1 -0
  125. package/dist/quality/density/validator.js +61 -0
  126. package/dist/quality/density/validator.js.map +1 -0
  127. package/dist/quality/inconsistency/code-vs-code.d.ts +26 -0
  128. package/dist/quality/inconsistency/code-vs-code.d.ts.map +1 -0
  129. package/dist/quality/inconsistency/code-vs-code.js +51 -0
  130. package/dist/quality/inconsistency/code-vs-code.js.map +1 -0
  131. package/dist/quality/inconsistency/code-vs-doc.d.ts +35 -0
  132. package/dist/quality/inconsistency/code-vs-doc.d.ts.map +1 -0
  133. package/dist/quality/inconsistency/code-vs-doc.js +59 -0
  134. package/dist/quality/inconsistency/code-vs-doc.js.map +1 -0
  135. package/dist/quality/inconsistency/code-vs-doc.test.d.ts +2 -0
  136. package/dist/quality/inconsistency/code-vs-doc.test.d.ts.map +1 -0
  137. package/dist/quality/inconsistency/code-vs-doc.test.js +196 -0
  138. package/dist/quality/inconsistency/code-vs-doc.test.js.map +1 -0
  139. package/dist/quality/inconsistency/reporter.d.ts +49 -0
  140. package/dist/quality/inconsistency/reporter.d.ts.map +1 -0
  141. package/dist/quality/inconsistency/reporter.js +99 -0
  142. package/dist/quality/inconsistency/reporter.js.map +1 -0
  143. package/dist/quality/index.d.ts +15 -0
  144. package/dist/quality/index.d.ts.map +1 -0
  145. package/dist/quality/index.js +25 -0
  146. package/dist/quality/index.js.map +1 -0
  147. package/dist/quality/types.d.ts +63 -0
  148. package/dist/quality/types.d.ts.map +1 -0
  149. package/dist/quality/types.js +5 -0
  150. package/dist/quality/types.js.map +1 -0
  151. package/dist/update/orchestrator.d.ts.map +1 -1
  152. package/dist/update/orchestrator.js +2 -1
  153. package/dist/update/orchestrator.js.map +1 -1
  154. package/dist/update/orphan-cleaner.js +1 -1
  155. package/dist/update/orphan-cleaner.js.map +1 -1
  156. package/package.json +1 -1
@@ -1,21 +1,26 @@
1
1
  /**
2
2
  * CLI generate command
3
3
  *
4
- * Creates a documentation generation plan by:
4
+ * Creates and executes a documentation generation plan by:
5
5
  * 1. Discovering files to analyze
6
- * 2. Detecting file types
7
- * 3. Creating analysis tasks with prompts
8
- * 4. Tracking token budget
6
+ * 2. Detecting file types and creating analysis tasks
7
+ * 3. Resolving an AI CLI backend
8
+ * 4. Running concurrent AI analysis via CommandRunner
9
+ * 5. Producing .sum files, AGENTS.md, and root documents
9
10
  *
10
- * With --execute flag, outputs tasks as JSON for AI agent execution.
11
+ * With --dry-run, shows the plan without making any AI calls.
12
+ * With --execute or --stream (deprecated), outputs JSON for external tools.
11
13
  */
12
14
  import * as path from 'node:path';
15
+ import pc from 'picocolors';
13
16
  import { loadConfig } from '../config/loader.js';
14
17
  import { createLogger } from '../output/logger.js';
15
18
  import { walkDirectory } from '../discovery/walker.js';
16
19
  import { applyFilters, createGitignoreFilter, createVendorFilter, createBinaryFilter, createCustomFilter, } from '../discovery/filters/index.js';
17
20
  import { createOrchestrator } from '../generation/orchestrator.js';
18
21
  import { buildExecutionPlan, formatExecutionPlanAsJson, streamTasks } from '../generation/executor.js';
22
+ import { AIService, AIServiceError, createBackendRegistry, resolveBackend, getInstallInstructions, } from '../ai/index.js';
23
+ import { CommandRunner } from '../orchestration/index.js';
19
24
  /**
20
25
  * Format file type distribution for display.
21
26
  */
@@ -89,19 +94,19 @@ function formatPlan(plan) {
89
94
  return lines.join('\n');
90
95
  }
91
96
  /**
92
- * Generate command - creates documentation generation plan.
97
+ * Generate command - discovers files, plans analysis, and executes AI-driven
98
+ * documentation generation.
93
99
  *
94
- * This command:
95
- * 1. Discovers files to analyze
96
- * 2. Detects file types
97
- * 3. Creates analysis tasks (prompts)
98
- * 4. Reports budget and plan
100
+ * Default behavior: resolves an AI CLI backend, builds an execution plan,
101
+ * and runs concurrent AI analysis via the CommandRunner. Produces .sum files,
102
+ * AGENTS.md per directory, and root documents (CLAUDE.md, ARCHITECTURE.md, etc.).
99
103
  *
100
- * The actual analysis is performed by the host LLM using the generated prompts.
104
+ * @param targetPath - Directory to generate documentation for
105
+ * @param options - Command options (concurrency, failFast, debug, etc.)
101
106
  */
102
107
  export async function generateCommand(targetPath, options) {
103
108
  const absolutePath = path.resolve(targetPath);
104
- // In execute/stream mode, suppress all non-JSON output
109
+ // In deprecated JSON modes, suppress all non-JSON output
105
110
  const isJsonMode = options.execute || options.stream;
106
111
  const logger = createLogger({
107
112
  colors: !isJsonMode,
@@ -148,12 +153,31 @@ export async function generateCommand(targetPath, options) {
148
153
  if (!options.quiet && !isJsonMode) {
149
154
  console.log(formatPlan(plan));
150
155
  }
156
+ // ---------------------------------------------------------------------------
157
+ // Dry-run: show execution plan summary without making AI calls
158
+ // ---------------------------------------------------------------------------
151
159
  if (options.dryRun) {
152
- logger.info('Dry run complete. No files written.');
160
+ const executionPlan = buildExecutionPlan(plan, absolutePath);
161
+ const dirCount = Object.keys(executionPlan.directoryFileMap).length;
162
+ console.log(pc.bold('\n--- Dry Run Summary ---\n'));
163
+ console.log(` Files to analyze: ${pc.cyan(String(executionPlan.fileTasks.length))}`);
164
+ console.log(` Directories: ${pc.cyan(String(dirCount))}`);
165
+ console.log(` Root documents: ${pc.cyan(String(executionPlan.rootTasks.length))}`);
166
+ console.log(` Estimated AI calls: ${pc.cyan(String(executionPlan.tasks.length))}`);
167
+ console.log('');
168
+ console.log(pc.dim('Files:'));
169
+ for (const task of executionPlan.fileTasks) {
170
+ console.log(pc.dim(` ${task.path}`));
171
+ }
172
+ console.log('');
173
+ console.log(pc.dim('No AI calls made (dry run).'));
153
174
  return;
154
175
  }
155
- // Execute mode - output JSON for AI agent execution
176
+ // ---------------------------------------------------------------------------
177
+ // Deprecated JSON modes (--execute, --stream) -- backward compatibility
178
+ // ---------------------------------------------------------------------------
156
179
  if (options.execute || options.stream) {
180
+ console.error(pc.yellow('Note: --execute and --stream are deprecated. The default behavior now executes analysis directly.'));
157
181
  const executionPlan = buildExecutionPlan(plan, absolutePath);
158
182
  if (options.stream) {
159
183
  // Stream mode - one task per line for incremental processing
@@ -167,43 +191,60 @@ export async function generateCommand(targetPath, options) {
167
191
  }
168
192
  return;
169
193
  }
170
- // Default: Output task instructions for the host LLM
171
- console.log('\n=== Ready for Analysis ===\n');
172
- console.log(`This plan contains ${plan.tasks.length} analysis tasks.`);
173
- console.log('The host LLM will process each file and generate summaries.');
174
- console.log('\nTo proceed, the host should:');
175
- console.log('1. Read each file and its prompt');
176
- console.log('2. Generate summaries following the prompt guidelines');
177
- console.log('3. Write .sum files alongside source files');
178
- console.log('4. Generate AGENTS.md for each directory');
179
- console.log('5. Generate CLAUDE.md at the project root');
180
- if (plan.generateArchitecture) {
181
- console.log('6. Generate ARCHITECTURE.md (complexity threshold met)');
194
+ // ---------------------------------------------------------------------------
195
+ // Direct execution (new default): resolve backend and run AI analysis
196
+ // ---------------------------------------------------------------------------
197
+ // Resolve AI CLI backend
198
+ const registry = createBackendRegistry();
199
+ let backend;
200
+ try {
201
+ backend = await resolveBackend(registry, config.ai.backend);
182
202
  }
183
- // Show package root supplementary docs
184
- if (plan.packageRoots.length > 0) {
185
- console.log(`\nFor each package root (${plan.packageRoots.length} found):`);
186
- const enabledDocs = [];
187
- if (plan.generateStack)
188
- enabledDocs.push('STACK.md (node only)');
189
- if (plan.generateStructure)
190
- enabledDocs.push('STRUCTURE.md');
191
- if (plan.generateConventions)
192
- enabledDocs.push('CONVENTIONS.md');
193
- if (plan.generateTesting)
194
- enabledDocs.push('TESTING.md');
195
- if (plan.generateIntegrations)
196
- enabledDocs.push('INTEGRATIONS.md');
197
- if (plan.generateConcerns)
198
- enabledDocs.push('CONCERNS.md');
199
- for (const doc of enabledDocs) {
200
- console.log(` - Generate ${doc}`);
203
+ catch (error) {
204
+ if (error instanceof AIServiceError && error.code === 'CLI_NOT_FOUND') {
205
+ console.error(pc.red('Error: No AI CLI found.\n'));
206
+ console.error(getInstallInstructions(registry));
207
+ process.exit(2);
201
208
  }
209
+ throw error;
210
+ }
211
+ // Debug: log backend info
212
+ if (options.debug) {
213
+ console.log(pc.dim(`[debug] Backend: ${backend.name}`));
214
+ console.log(pc.dim(`[debug] CLI command: ${backend.cliCommand}`));
215
+ console.log(pc.dim(`[debug] Model: ${config.ai.model}`));
216
+ }
217
+ // Create AI service
218
+ const aiService = new AIService(backend, {
219
+ timeoutMs: config.ai.timeoutMs,
220
+ maxRetries: config.ai.maxRetries,
221
+ telemetry: { keepRuns: config.ai.telemetry.keepRuns },
222
+ });
223
+ // Build execution plan
224
+ const executionPlan = buildExecutionPlan(plan, absolutePath);
225
+ // Determine concurrency
226
+ const concurrency = options.concurrency ?? config.ai.concurrency;
227
+ // Create command runner
228
+ const runner = new CommandRunner(aiService, {
229
+ concurrency,
230
+ failFast: options.failFast,
231
+ quiet: options.quiet,
232
+ debug: options.debug,
233
+ });
234
+ // Execute the three-phase pipeline
235
+ const summary = await runner.executeGenerate(executionPlan);
236
+ // Write telemetry run log
237
+ await aiService.finalize(absolutePath);
238
+ // Determine exit code from RunSummary
239
+ // 0: all files succeeded
240
+ // 1: some files failed (partial failure)
241
+ // 2: no files succeeded (total failure)
242
+ if (summary.filesProcessed === 0 && summary.filesFailed > 0) {
243
+ process.exit(2);
244
+ }
245
+ else if (summary.filesFailed > 0) {
246
+ process.exit(1);
202
247
  }
203
- console.log('\nRun with --execute to get JSON output for AI agent execution.');
204
- console.log('Run with --stream for streaming task output.');
205
- // Summary
206
- const budgetReport = orchestrator.getBudgetReport();
207
- logger.info(`\nPlan ready. Estimated tokens: ${budgetReport.used.toLocaleString()}`);
248
+ // Exit code 0 -- all files succeeded (or no files to process)
208
249
  }
209
250
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -55,8 +55,11 @@ General Options:
55
55
  --plan Generate GENERATION-PLAN.md file (discover only)
56
56
  --dry-run Show plan without writing files (generate, update)
57
57
  --budget <n> Override token budget (generate, update)
58
- --execute Output JSON execution plan for AI agents (generate)
59
- --stream Output tasks as streaming JSON, one per line (generate)
58
+ --concurrency <n> Number of concurrent AI calls (default: 5)
59
+ --fail-fast Stop on first file analysis failure
60
+ --debug Show AI prompts and backend details
61
+ --execute [deprecated] Output JSON execution plan (generate)
62
+ --stream [deprecated] Output tasks as streaming JSON (generate)
60
63
  --uncommitted Include uncommitted changes (update only)
61
64
  --help, -h Show this help
62
65
  --version, -V Show version number
@@ -70,7 +73,7 @@ Examples:
70
73
  are discover
71
74
  are discover --plan
72
75
  are generate --dry-run
73
- are generate --execute
76
+ are generate --concurrency 3
74
77
  are generate ./my-project --budget 50000
75
78
  are update
76
79
  are update --uncommitted --verbose
@@ -252,6 +255,9 @@ async function main() {
252
255
  verbose: flags.has('verbose'),
253
256
  dryRun: flags.has('dry-run'),
254
257
  budget: values.has('budget') ? parseInt(values.get('budget'), 10) : undefined,
258
+ concurrency: values.has('concurrency') ? parseInt(values.get('concurrency'), 10) : undefined,
259
+ failFast: flags.has('fail-fast'),
260
+ debug: flags.has('debug'),
255
261
  execute: flags.has('execute'),
256
262
  stream: flags.has('stream'),
257
263
  };
@@ -265,6 +271,9 @@ async function main() {
265
271
  verbose: flags.has('verbose'),
266
272
  dryRun: flags.has('dry-run'),
267
273
  budget: values.has('budget') ? parseInt(values.get('budget'), 10) : undefined,
274
+ concurrency: values.has('concurrency') ? parseInt(values.get('concurrency'), 10) : undefined,
275
+ failFast: flags.has('fail-fast'),
276
+ debug: flags.has('debug'),
268
277
  };
269
278
  await updateCommand(positional[0] || '.', options);
270
279
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -12,17 +12,26 @@ export interface UpdateCommandOptions {
12
12
  dryRun?: boolean;
13
13
  /** Override token budget */
14
14
  budget?: number;
15
+ /** Number of concurrent AI calls */
16
+ concurrency?: number;
17
+ /** Stop on first file analysis failure */
18
+ failFast?: boolean;
19
+ /** Show AI prompts and backend details */
20
+ debug?: boolean;
15
21
  }
16
22
  /**
17
23
  * Update command - incrementally updates documentation based on git changes.
18
24
  *
19
25
  * This command:
20
26
  * 1. Checks git repository status
21
- * 2. Detects files changed since last run
27
+ * 2. Detects files changed since last run (via content-hash comparison)
22
28
  * 3. Cleans up orphaned .sum files
23
- * 4. Analyzes changed files and generates .sum files
24
- * 5. Regenerates AGENTS.md for affected directories
25
- * 6. Records update state for next run
29
+ * 4. Resolves an AI CLI backend and creates the AI service
30
+ * 5. Analyzes changed files concurrently via CommandRunner
31
+ * 6. Regenerates AGENTS.md for affected directories
32
+ * 7. Writes telemetry run log and prints run summary
33
+ *
34
+ * Exit codes: 0 = all success, 1 = partial failure, 2 = total failure / no CLI
26
35
  */
27
36
  export declare function updateCommand(targetPath: string, options: UpdateCommandOptions): Promise<void>;
28
37
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsND;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmHf"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuKf"}
@@ -2,21 +2,19 @@
2
2
  * CLI update command
3
3
  *
4
4
  * Updates documentation incrementally based on git changes since last run.
5
- * Integrates with generation module to analyze changed files and update .sum files.
6
- * Regenerates AGENTS.md for affected directories.
5
+ * Uses the AI service for real file analysis (not placeholders) and processes
6
+ * changed files concurrently via the CommandRunner orchestration engine.
7
+ * Regenerates AGENTS.md for affected directories after analysis.
7
8
  */
8
9
  import * as path from 'node:path';
9
- import { readFile } from 'node:fs/promises';
10
10
  import pc from 'picocolors';
11
11
  import { loadConfig } from '../config/loader.js';
12
12
  import { createLogger } from '../output/logger.js';
13
13
  import { createUpdateOrchestrator, } from '../update/index.js';
14
- import { detectFileType } from '../generation/detection/detector.js';
15
- import { countTokens } from '../generation/budget/index.js';
16
- import { buildPrompt } from '../generation/prompts/index.js';
17
- import { writeSumFile } from '../generation/writers/sum.js';
18
14
  import { writeAgentsMd } from '../generation/writers/agents-md.js';
19
- import { computeContentHash } from '../change-detection/index.js';
15
+ import { buildDirectoryPrompt } from '../generation/prompts/index.js';
16
+ import { AIService, AIServiceError, createBackendRegistry, resolveBackend, getInstallInstructions, } from '../ai/index.js';
17
+ import { CommandRunner, ProgressReporter } from '../orchestration/index.js';
20
18
  /**
21
19
  * Format cleanup results for display.
22
20
  */
@@ -104,101 +102,19 @@ function formatPlan(plan, verbose) {
104
102
  lines.push('');
105
103
  return lines.join('\n');
106
104
  }
107
- /**
108
- * Analyze a single changed file and generate its .sum file.
109
- *
110
- * Uses the generation module's prompt builder and sum writer.
111
- * Note: This generates a placeholder summary since the actual LLM analysis
112
- * requires host integration. The prompt is generated for potential future use.
113
- */
114
- async function analyzeFile(projectRoot, change, verbose) {
115
- const filePath = path.join(projectRoot, change.path);
116
- try {
117
- // Read file content
118
- const content = await readFile(filePath, 'utf-8');
119
- const tokens = countTokens(content);
120
- // Compute content hash for change detection
121
- const contentHash = await computeContentHash(filePath);
122
- // Detect file type and build prompt
123
- const fileType = detectFileType(filePath, content);
124
- const prompt = buildPrompt({
125
- filePath: change.path,
126
- content,
127
- fileType,
128
- });
129
- // Generate summary content
130
- // In a full implementation, this would call an LLM with the prompt.
131
- // For now, we create a structured summary placeholder that captures
132
- // the file's purpose and key elements.
133
- const sumContent = {
134
- summary: `## Purpose\n\nFile at \`${change.path}\`.\n\n## Analysis Pending\n\nThis summary was generated during incremental update. Full analysis requires LLM integration.`,
135
- metadata: {
136
- purpose: `File at ${change.path}`,
137
- publicInterface: [],
138
- dependencies: [],
139
- patterns: [],
140
- },
141
- fileType,
142
- generatedAt: new Date().toISOString(),
143
- contentHash,
144
- };
145
- // Write .sum file
146
- await writeSumFile(filePath, sumContent);
147
- if (verbose) {
148
- console.log(` ${pc.green('\u2713')} ${change.path} (${tokens} tokens)`);
149
- }
150
- return {
151
- path: change.path,
152
- success: true,
153
- tokensUsed: tokens,
154
- contentHash,
155
- };
156
- }
157
- catch (error) {
158
- const errorMsg = error instanceof Error ? error.message : String(error);
159
- if (verbose) {
160
- console.log(` ${pc.red('\u2717')} ${change.path}: ${errorMsg}`);
161
- }
162
- return {
163
- path: change.path,
164
- success: false,
165
- tokensUsed: 0,
166
- error: errorMsg,
167
- };
168
- }
169
- }
170
- /**
171
- * Regenerate AGENTS.md for affected directories.
172
- *
173
- * Reads existing .sum files in each directory and creates/updates AGENTS.md.
174
- */
175
- async function regenerateAgentsMd(projectRoot, directories, verbose) {
176
- for (const dir of directories) {
177
- const dirPath = dir === '.' ? projectRoot : path.join(projectRoot, dir);
178
- try {
179
- await writeAgentsMd(dirPath, projectRoot);
180
- if (verbose) {
181
- console.log(` ${pc.green('\u2713')} AGENTS.md: ${dir || '.'}`);
182
- }
183
- }
184
- catch (error) {
185
- const errorMsg = error instanceof Error ? error.message : String(error);
186
- if (verbose) {
187
- console.log(` ${pc.yellow('!')} AGENTS.md: ${dir || '.'}: ${errorMsg}`);
188
- }
189
- }
190
- }
191
- }
192
105
  /**
193
106
  * Update command - incrementally updates documentation based on git changes.
194
107
  *
195
108
  * This command:
196
109
  * 1. Checks git repository status
197
- * 2. Detects files changed since last run
110
+ * 2. Detects files changed since last run (via content-hash comparison)
198
111
  * 3. Cleans up orphaned .sum files
199
- * 4. Analyzes changed files and generates .sum files
200
- * 5. Regenerates AGENTS.md for affected directories
201
- * 6. Records update state for next run
112
+ * 4. Resolves an AI CLI backend and creates the AI service
113
+ * 5. Analyzes changed files concurrently via CommandRunner
114
+ * 6. Regenerates AGENTS.md for affected directories
115
+ * 7. Writes telemetry run log and prints run summary
116
+ *
117
+ * Exit codes: 0 = all success, 1 = partial failure, 2 = total failure / no CLI
202
118
  */
203
119
  export async function updateCommand(targetPath, options) {
204
120
  const absolutePath = path.resolve(targetPath);
@@ -246,46 +162,92 @@ export async function updateCommand(targetPath, options) {
246
162
  logger.info('Dry run complete. No files written.');
247
163
  return;
248
164
  }
249
- // === Execute the update workflow ===
250
- let totalTokens = 0;
251
- let filesAnalyzed = 0;
252
- let filesFailed = 0;
253
- // Step 1: Analyze changed files and generate .sum files
254
- if (plan.filesToAnalyze.length > 0) {
255
- console.log('');
256
- console.log(pc.bold('=== Analyzing Changed Files ==='));
257
- for (const change of plan.filesToAnalyze) {
258
- const result = await analyzeFile(absolutePath, change, verbose);
259
- if (result.success && result.contentHash) {
260
- filesAnalyzed++;
261
- totalTokens += result.tokensUsed;
262
- // Update state for this file
263
- await orchestrator.recordFileAnalyzed(change.path, result.contentHash, plan.currentCommit);
264
- }
265
- else if (!result.success) {
266
- filesFailed++;
267
- }
165
+ // -------------------------------------------------------------------------
166
+ // Backend resolution (same pattern as generate command)
167
+ // -------------------------------------------------------------------------
168
+ const registry = createBackendRegistry();
169
+ let backend;
170
+ try {
171
+ backend = await resolveBackend(registry, config.ai.backend);
172
+ }
173
+ catch (error) {
174
+ if (error instanceof AIServiceError && error.code === 'CLI_NOT_FOUND') {
175
+ console.error(pc.red('Error: No AI CLI found.\n'));
176
+ console.error(getInstallInstructions(registry));
177
+ process.exit(2);
268
178
  }
179
+ throw error;
180
+ }
181
+ // Debug: log backend info
182
+ if (options.debug) {
183
+ console.log(pc.dim(`[debug] Backend: ${backend.name}`));
184
+ console.log(pc.dim(`[debug] CLI command: ${backend.cliCommand}`));
185
+ console.log(pc.dim(`[debug] Model: ${config.ai.model}`));
269
186
  }
270
- // Step 2: Regenerate AGENTS.md for affected directories
187
+ // -------------------------------------------------------------------------
188
+ // AI service setup
189
+ // -------------------------------------------------------------------------
190
+ const aiService = new AIService(backend, {
191
+ timeoutMs: config.ai.timeoutMs,
192
+ maxRetries: config.ai.maxRetries,
193
+ telemetry: { keepRuns: config.ai.telemetry.keepRuns },
194
+ });
195
+ // Determine concurrency
196
+ const concurrency = options.concurrency ?? config.ai.concurrency;
197
+ // Create command runner
198
+ const runner = new CommandRunner(aiService, {
199
+ concurrency,
200
+ failFast: options.failFast,
201
+ quiet: options.quiet,
202
+ debug: options.debug,
203
+ });
204
+ // -------------------------------------------------------------------------
205
+ // Phase 1: File analysis via CommandRunner (concurrent AI calls)
206
+ // -------------------------------------------------------------------------
207
+ const summary = await runner.executeUpdate(plan.filesToAnalyze, absolutePath, config);
208
+ // -------------------------------------------------------------------------
209
+ // Phase 2: AGENTS.md regeneration for affected directories
210
+ // -------------------------------------------------------------------------
271
211
  if (plan.affectedDirs.length > 0) {
272
- console.log('');
273
- console.log(pc.bold('=== Regenerating AGENTS.md ==='));
274
- await regenerateAgentsMd(absolutePath, plan.affectedDirs, verbose);
212
+ const dirReporter = new ProgressReporter(plan.affectedDirs.length, quiet);
213
+ for (const dir of plan.affectedDirs) {
214
+ const dirPath = dir === '.' ? absolutePath : path.join(absolutePath, dir);
215
+ try {
216
+ const prompt = await buildDirectoryPrompt(dirPath, absolutePath);
217
+ const response = await aiService.call({
218
+ prompt: prompt.user,
219
+ systemPrompt: prompt.system,
220
+ });
221
+ await writeAgentsMd(dirPath, absolutePath, response.text);
222
+ dirReporter.onDirectoryDone(dir || '.');
223
+ }
224
+ catch (error) {
225
+ const errorMsg = error instanceof Error ? error.message : String(error);
226
+ if (!quiet) {
227
+ console.log(`${pc.dim('[dir]')} ${pc.yellow('WARN')} ${dir || '.'}: ${errorMsg}`);
228
+ }
229
+ }
230
+ }
275
231
  }
276
- // Step 3: Record completed run
232
+ // -------------------------------------------------------------------------
233
+ // Telemetry finalization
234
+ // -------------------------------------------------------------------------
235
+ await aiService.finalize(absolutePath);
236
+ // -------------------------------------------------------------------------
237
+ // Record run state (no-op in frontmatter mode, kept for API compatibility)
238
+ // -------------------------------------------------------------------------
277
239
  const filesSkipped = plan.filesToSkip.length;
278
- await orchestrator.recordRun(plan.currentCommit, filesAnalyzed, filesSkipped);
279
- // Summary
280
- console.log('');
281
- console.log(pc.bold('=== Update Complete ==='));
282
- console.log(` Files analyzed: ${pc.green(String(filesAnalyzed))}`);
283
- if (filesFailed > 0) {
284
- console.log(` Files failed: ${pc.red(String(filesFailed))}`);
240
+ await orchestrator.recordRun(plan.currentCommit, summary.filesProcessed, filesSkipped);
241
+ // -------------------------------------------------------------------------
242
+ // Exit code: 0 = all success, 1 = partial failure, 2 = total failure
243
+ // -------------------------------------------------------------------------
244
+ if (summary.filesProcessed === 0 && summary.filesFailed > 0) {
245
+ process.exit(2);
246
+ }
247
+ else if (summary.filesFailed > 0) {
248
+ process.exit(1);
285
249
  }
286
- console.log(` Files skipped: ${pc.dim(String(filesSkipped))}`);
287
- console.log(` Directories updated: ${pc.cyan(String(plan.affectedDirs.length))}`);
288
- console.log(` Token budget used: ${pc.yellow(totalTokens.toLocaleString())} / ${config.generation.tokenBudget.toLocaleString()}`);
250
+ // Exit code 0 -- all files succeeded (or no files to process)
289
251
  }
290
252
  finally {
291
253
  orchestrator.close();