agents-reverse-engineer 0.1.1

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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -0
  3. package/dist/change-detection/detector.d.ts +24 -0
  4. package/dist/change-detection/detector.d.ts.map +1 -0
  5. package/dist/change-detection/detector.js +114 -0
  6. package/dist/change-detection/detector.js.map +1 -0
  7. package/dist/change-detection/index.d.ts +9 -0
  8. package/dist/change-detection/index.d.ts.map +1 -0
  9. package/dist/change-detection/index.js +8 -0
  10. package/dist/change-detection/index.js.map +1 -0
  11. package/dist/change-detection/types.d.ts +39 -0
  12. package/dist/change-detection/types.d.ts.map +1 -0
  13. package/dist/change-detection/types.js +5 -0
  14. package/dist/change-detection/types.js.map +1 -0
  15. package/dist/cli/discover.d.ts +52 -0
  16. package/dist/cli/discover.d.ts.map +1 -0
  17. package/dist/cli/discover.js +125 -0
  18. package/dist/cli/discover.js.map +1 -0
  19. package/dist/cli/generate.d.ts +41 -0
  20. package/dist/cli/generate.d.ts.map +1 -0
  21. package/dist/cli/generate.js +179 -0
  22. package/dist/cli/generate.js.map +1 -0
  23. package/dist/cli/index.d.ts +12 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +182 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/init.d.ts +38 -0
  28. package/dist/cli/init.d.ts.map +1 -0
  29. package/dist/cli/init.js +94 -0
  30. package/dist/cli/init.js.map +1 -0
  31. package/dist/cli/update.d.ts +28 -0
  32. package/dist/cli/update.d.ts.map +1 -0
  33. package/dist/cli/update.js +296 -0
  34. package/dist/cli/update.js.map +1 -0
  35. package/dist/config/defaults.d.ts +38 -0
  36. package/dist/config/defaults.d.ts.map +1 -0
  37. package/dist/config/defaults.js +89 -0
  38. package/dist/config/defaults.js.map +1 -0
  39. package/dist/config/loader.d.ts +66 -0
  40. package/dist/config/loader.d.ts.map +1 -0
  41. package/dist/config/loader.js +158 -0
  42. package/dist/config/loader.js.map +1 -0
  43. package/dist/config/schema.d.ts +235 -0
  44. package/dist/config/schema.d.ts.map +1 -0
  45. package/dist/config/schema.js +80 -0
  46. package/dist/config/schema.js.map +1 -0
  47. package/dist/discovery/filters/binary.d.ts +46 -0
  48. package/dist/discovery/filters/binary.d.ts.map +1 -0
  49. package/dist/discovery/filters/binary.js +157 -0
  50. package/dist/discovery/filters/binary.js.map +1 -0
  51. package/dist/discovery/filters/custom.d.ts +26 -0
  52. package/dist/discovery/filters/custom.d.ts.map +1 -0
  53. package/dist/discovery/filters/custom.js +50 -0
  54. package/dist/discovery/filters/custom.js.map +1 -0
  55. package/dist/discovery/filters/gitignore.d.ts +24 -0
  56. package/dist/discovery/filters/gitignore.d.ts.map +1 -0
  57. package/dist/discovery/filters/gitignore.js +53 -0
  58. package/dist/discovery/filters/gitignore.js.map +1 -0
  59. package/dist/discovery/filters/index.d.ts +85 -0
  60. package/dist/discovery/filters/index.d.ts.map +1 -0
  61. package/dist/discovery/filters/index.js +98 -0
  62. package/dist/discovery/filters/index.js.map +1 -0
  63. package/dist/discovery/filters/vendor.d.ts +30 -0
  64. package/dist/discovery/filters/vendor.d.ts.map +1 -0
  65. package/dist/discovery/filters/vendor.js +57 -0
  66. package/dist/discovery/filters/vendor.js.map +1 -0
  67. package/dist/discovery/types.d.ts +66 -0
  68. package/dist/discovery/types.d.ts.map +1 -0
  69. package/dist/discovery/types.js +8 -0
  70. package/dist/discovery/types.js.map +1 -0
  71. package/dist/discovery/walker.d.ts +24 -0
  72. package/dist/discovery/walker.d.ts.map +1 -0
  73. package/dist/discovery/walker.js +35 -0
  74. package/dist/discovery/walker.js.map +1 -0
  75. package/dist/generation/budget/chunker.d.ts +38 -0
  76. package/dist/generation/budget/chunker.d.ts.map +1 -0
  77. package/dist/generation/budget/chunker.js +73 -0
  78. package/dist/generation/budget/chunker.js.map +1 -0
  79. package/dist/generation/budget/counter.d.ts +26 -0
  80. package/dist/generation/budget/counter.d.ts.map +1 -0
  81. package/dist/generation/budget/counter.js +45 -0
  82. package/dist/generation/budget/counter.js.map +1 -0
  83. package/dist/generation/budget/index.d.ts +4 -0
  84. package/dist/generation/budget/index.d.ts.map +1 -0
  85. package/dist/generation/budget/index.js +4 -0
  86. package/dist/generation/budget/index.js.map +1 -0
  87. package/dist/generation/budget/tracker.d.ts +63 -0
  88. package/dist/generation/budget/tracker.d.ts.map +1 -0
  89. package/dist/generation/budget/tracker.js +96 -0
  90. package/dist/generation/budget/tracker.js.map +1 -0
  91. package/dist/generation/complexity.d.ts +43 -0
  92. package/dist/generation/complexity.d.ts.map +1 -0
  93. package/dist/generation/complexity.js +156 -0
  94. package/dist/generation/complexity.js.map +1 -0
  95. package/dist/generation/detection/detector.d.ts +23 -0
  96. package/dist/generation/detection/detector.d.ts.map +1 -0
  97. package/dist/generation/detection/detector.js +62 -0
  98. package/dist/generation/detection/detector.js.map +1 -0
  99. package/dist/generation/detection/patterns.d.ts +21 -0
  100. package/dist/generation/detection/patterns.d.ts.map +1 -0
  101. package/dist/generation/detection/patterns.js +115 -0
  102. package/dist/generation/detection/patterns.js.map +1 -0
  103. package/dist/generation/executor.d.ts +95 -0
  104. package/dist/generation/executor.d.ts.map +1 -0
  105. package/dist/generation/executor.js +352 -0
  106. package/dist/generation/executor.js.map +1 -0
  107. package/dist/generation/orchestrator.d.ts +126 -0
  108. package/dist/generation/orchestrator.d.ts.map +1 -0
  109. package/dist/generation/orchestrator.js +222 -0
  110. package/dist/generation/orchestrator.js.map +1 -0
  111. package/dist/generation/prompts/builder.d.ts +31 -0
  112. package/dist/generation/prompts/builder.d.ts.map +1 -0
  113. package/dist/generation/prompts/builder.js +136 -0
  114. package/dist/generation/prompts/builder.js.map +1 -0
  115. package/dist/generation/prompts/index.d.ts +5 -0
  116. package/dist/generation/prompts/index.d.ts.map +1 -0
  117. package/dist/generation/prompts/index.js +4 -0
  118. package/dist/generation/prompts/index.js.map +1 -0
  119. package/dist/generation/prompts/templates.d.ts +11 -0
  120. package/dist/generation/prompts/templates.d.ts.map +1 -0
  121. package/dist/generation/prompts/templates.js +247 -0
  122. package/dist/generation/prompts/templates.js.map +1 -0
  123. package/dist/generation/prompts/types.d.ts +71 -0
  124. package/dist/generation/prompts/types.d.ts.map +1 -0
  125. package/dist/generation/prompts/types.js +23 -0
  126. package/dist/generation/prompts/types.js.map +1 -0
  127. package/dist/generation/types.d.ts +72 -0
  128. package/dist/generation/types.d.ts.map +1 -0
  129. package/dist/generation/types.js +5 -0
  130. package/dist/generation/types.js.map +1 -0
  131. package/dist/generation/writers/agents-md.d.ts +63 -0
  132. package/dist/generation/writers/agents-md.d.ts.map +1 -0
  133. package/dist/generation/writers/agents-md.js +235 -0
  134. package/dist/generation/writers/agents-md.js.map +1 -0
  135. package/dist/generation/writers/claude-md.d.ts +13 -0
  136. package/dist/generation/writers/claude-md.d.ts.map +1 -0
  137. package/dist/generation/writers/claude-md.js +33 -0
  138. package/dist/generation/writers/claude-md.js.map +1 -0
  139. package/dist/generation/writers/index.d.ts +5 -0
  140. package/dist/generation/writers/index.d.ts.map +1 -0
  141. package/dist/generation/writers/index.js +5 -0
  142. package/dist/generation/writers/index.js.map +1 -0
  143. package/dist/generation/writers/sum.d.ts +37 -0
  144. package/dist/generation/writers/sum.d.ts.map +1 -0
  145. package/dist/generation/writers/sum.js +98 -0
  146. package/dist/generation/writers/sum.js.map +1 -0
  147. package/dist/generation/writers/supplementary.d.ts +53 -0
  148. package/dist/generation/writers/supplementary.d.ts.map +1 -0
  149. package/dist/generation/writers/supplementary.js +195 -0
  150. package/dist/generation/writers/supplementary.js.map +1 -0
  151. package/dist/integration/detect.d.ts +28 -0
  152. package/dist/integration/detect.d.ts.map +1 -0
  153. package/dist/integration/detect.js +64 -0
  154. package/dist/integration/detect.js.map +1 -0
  155. package/dist/integration/generate.d.ts +36 -0
  156. package/dist/integration/generate.d.ts.map +1 -0
  157. package/dist/integration/generate.js +107 -0
  158. package/dist/integration/generate.js.map +1 -0
  159. package/dist/integration/templates.d.ts +42 -0
  160. package/dist/integration/templates.d.ts.map +1 -0
  161. package/dist/integration/templates.js +203 -0
  162. package/dist/integration/templates.js.map +1 -0
  163. package/dist/integration/types.d.ts +44 -0
  164. package/dist/integration/types.d.ts.map +1 -0
  165. package/dist/integration/types.js +8 -0
  166. package/dist/integration/types.js.map +1 -0
  167. package/dist/output/logger.d.ts +86 -0
  168. package/dist/output/logger.d.ts.map +1 -0
  169. package/dist/output/logger.js +107 -0
  170. package/dist/output/logger.js.map +1 -0
  171. package/dist/state/database.d.ts +9 -0
  172. package/dist/state/database.d.ts.map +1 -0
  173. package/dist/state/database.js +66 -0
  174. package/dist/state/database.js.map +1 -0
  175. package/dist/state/index.d.ts +8 -0
  176. package/dist/state/index.d.ts.map +1 -0
  177. package/dist/state/index.js +7 -0
  178. package/dist/state/index.js.map +1 -0
  179. package/dist/state/migrations.d.ts +12 -0
  180. package/dist/state/migrations.d.ts.map +1 -0
  181. package/dist/state/migrations.js +39 -0
  182. package/dist/state/migrations.js.map +1 -0
  183. package/dist/state/types.d.ts +54 -0
  184. package/dist/state/types.d.ts.map +1 -0
  185. package/dist/state/types.js +2 -0
  186. package/dist/state/types.js.map +1 -0
  187. package/dist/types/index.d.ts +39 -0
  188. package/dist/types/index.d.ts.map +1 -0
  189. package/dist/types/index.js +5 -0
  190. package/dist/types/index.js.map +1 -0
  191. package/dist/update/index.d.ts +10 -0
  192. package/dist/update/index.d.ts.map +1 -0
  193. package/dist/update/index.js +9 -0
  194. package/dist/update/index.js.map +1 -0
  195. package/dist/update/orchestrator.d.ts +91 -0
  196. package/dist/update/orchestrator.d.ts.map +1 -0
  197. package/dist/update/orchestrator.js +204 -0
  198. package/dist/update/orchestrator.js.map +1 -0
  199. package/dist/update/orphan-cleaner.d.ts +30 -0
  200. package/dist/update/orphan-cleaner.d.ts.map +1 -0
  201. package/dist/update/orphan-cleaner.js +151 -0
  202. package/dist/update/orphan-cleaner.js.map +1 -0
  203. package/dist/update/types.d.ts +59 -0
  204. package/dist/update/types.d.ts.map +1 -0
  205. package/dist/update/types.js +2 -0
  206. package/dist/update/types.js.map +1 -0
  207. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cli/discover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * CLI generate command
3
+ *
4
+ * Creates a documentation generation plan by:
5
+ * 1. Discovering files to analyze
6
+ * 2. Detecting file types
7
+ * 3. Creating analysis tasks with prompts
8
+ * 4. Tracking token budget
9
+ *
10
+ * With --execute flag, outputs tasks as JSON for AI agent execution.
11
+ */
12
+ /**
13
+ * Options for the generate command.
14
+ */
15
+ export interface GenerateOptions {
16
+ /** Suppress output except errors */
17
+ quiet?: boolean;
18
+ /** Show detailed task breakdown */
19
+ verbose?: boolean;
20
+ /** Dry run - show plan without generating */
21
+ dryRun?: boolean;
22
+ /** Override token budget */
23
+ budget?: number;
24
+ /** Execute mode - output JSON for AI agent execution */
25
+ execute?: boolean;
26
+ /** Stream mode - output tasks one per line */
27
+ stream?: boolean;
28
+ }
29
+ /**
30
+ * Generate command - creates documentation generation plan.
31
+ *
32
+ * This command:
33
+ * 1. Discovers files to analyze
34
+ * 2. Detects file types
35
+ * 3. Creates analysis tasks (prompts)
36
+ * 4. Reports budget and plan
37
+ *
38
+ * The actual analysis is performed by the host LLM using the generated prompts.
39
+ */
40
+ export declare function generateCommand(targetPath: string, options: GenerateOptions): Promise<void>;
41
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAyED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * CLI generate command
3
+ *
4
+ * Creates a documentation generation plan by:
5
+ * 1. Discovering files to analyze
6
+ * 2. Detecting file types
7
+ * 3. Creating analysis tasks with prompts
8
+ * 4. Tracking token budget
9
+ *
10
+ * With --execute flag, outputs tasks as JSON for AI agent execution.
11
+ */
12
+ import * as path from 'node:path';
13
+ import { loadConfig } from '../config/loader.js';
14
+ import { createLogger } from '../output/logger.js';
15
+ import { walkDirectory } from '../discovery/walker.js';
16
+ import { applyFilters, createGitignoreFilter, createVendorFilter, createBinaryFilter, createCustomFilter, } from '../discovery/filters/index.js';
17
+ import { createOrchestrator } from '../generation/orchestrator.js';
18
+ import { buildExecutionPlan, formatExecutionPlanAsJson, streamTasks } from '../generation/executor.js';
19
+ /**
20
+ * Format file type distribution for display.
21
+ */
22
+ function formatTypeDistribution(plan) {
23
+ const typeCounts = new Map();
24
+ for (const file of plan.files) {
25
+ const count = typeCounts.get(file.fileType) ?? 0;
26
+ typeCounts.set(file.fileType, count + 1);
27
+ }
28
+ return Array.from(typeCounts.entries())
29
+ .sort((a, b) => b[1] - a[1])
30
+ .map(([type, count]) => ` ${type}: ${count}`)
31
+ .join('\n');
32
+ }
33
+ /**
34
+ * Format the generation plan for display.
35
+ */
36
+ function formatPlan(plan) {
37
+ const lines = [];
38
+ lines.push(`\n=== Generation Plan ===\n`);
39
+ // File summary
40
+ lines.push(`Files to analyze: ${plan.files.length}`);
41
+ lines.push(`Tasks to execute: ${plan.tasks.length}`);
42
+ lines.push('');
43
+ // File type distribution
44
+ lines.push('File types:');
45
+ lines.push(formatTypeDistribution(plan));
46
+ lines.push('');
47
+ // Budget
48
+ lines.push('Token budget:');
49
+ lines.push(` Total: ${plan.budget.total.toLocaleString()}`);
50
+ lines.push(` Estimated: ${plan.budget.estimated.toLocaleString()}`);
51
+ lines.push(` Remaining: ${plan.budget.remaining.toLocaleString()}`);
52
+ lines.push('');
53
+ // Complexity
54
+ lines.push('Complexity:');
55
+ lines.push(` Files: ${plan.complexity.fileCount}`);
56
+ lines.push(` Directory depth: ${plan.complexity.directoryDepth}`);
57
+ if (plan.complexity.architecturalPatterns.length > 0) {
58
+ lines.push(` Patterns: ${plan.complexity.architecturalPatterns.join(', ')}`);
59
+ }
60
+ lines.push('');
61
+ // Supplementary docs
62
+ lines.push('Supplementary docs:');
63
+ lines.push(` ARCHITECTURE.md: ${plan.generateArchitecture ? 'yes' : 'no'}`);
64
+ lines.push(` STACK.md: ${plan.generateStack ? 'yes' : 'no'}`);
65
+ lines.push('');
66
+ // Skipped files
67
+ if (plan.skippedFiles.length > 0) {
68
+ lines.push(`Skipped (budget): ${plan.skippedFiles.length} files`);
69
+ if (plan.skippedFiles.length <= 5) {
70
+ for (const file of plan.skippedFiles) {
71
+ lines.push(` - ${file}`);
72
+ }
73
+ }
74
+ lines.push('');
75
+ }
76
+ return lines.join('\n');
77
+ }
78
+ /**
79
+ * Generate command - creates documentation generation plan.
80
+ *
81
+ * This command:
82
+ * 1. Discovers files to analyze
83
+ * 2. Detects file types
84
+ * 3. Creates analysis tasks (prompts)
85
+ * 4. Reports budget and plan
86
+ *
87
+ * The actual analysis is performed by the host LLM using the generated prompts.
88
+ */
89
+ export async function generateCommand(targetPath, options) {
90
+ const absolutePath = path.resolve(targetPath);
91
+ // In execute/stream mode, suppress all non-JSON output
92
+ const isJsonMode = options.execute || options.stream;
93
+ const logger = createLogger({
94
+ colors: !isJsonMode,
95
+ verbose: options.verbose ?? false,
96
+ quiet: isJsonMode || (options.quiet ?? false),
97
+ showExcluded: false,
98
+ });
99
+ logger.info(`Generating documentation plan for: ${absolutePath}`);
100
+ // Load configuration
101
+ const config = await loadConfig(absolutePath);
102
+ // Override budget if specified
103
+ if (options.budget) {
104
+ config.generation.tokenBudget = options.budget;
105
+ }
106
+ // Discover files
107
+ logger.info('Discovering files...');
108
+ // Create filters in order (same as discover command)
109
+ const gitignoreFilter = await createGitignoreFilter(absolutePath);
110
+ const vendorFilter = createVendorFilter(config.exclude.vendorDirs);
111
+ const binaryFilter = createBinaryFilter({
112
+ maxFileSize: config.options.maxFileSize,
113
+ additionalExtensions: config.exclude.binaryExtensions,
114
+ });
115
+ const customFilter = createCustomFilter(config.exclude.patterns, absolutePath);
116
+ const filters = [gitignoreFilter, vendorFilter, binaryFilter, customFilter];
117
+ // Walk directory
118
+ const files = await walkDirectory({
119
+ cwd: absolutePath,
120
+ followSymlinks: config.options.followSymlinks,
121
+ });
122
+ // Apply filters
123
+ const filterResult = await applyFilters(files, filters);
124
+ // Create discovery result for orchestrator
125
+ const discoveryResult = {
126
+ files: filterResult.included,
127
+ excluded: filterResult.excluded.map(e => ({ path: e.path, reason: e.reason })),
128
+ };
129
+ logger.info(`Found ${discoveryResult.files.length} files to analyze`);
130
+ // Create generation plan
131
+ logger.info('Creating generation plan...');
132
+ const orchestrator = createOrchestrator(config, absolutePath, discoveryResult.files.length);
133
+ const plan = await orchestrator.createPlan(discoveryResult);
134
+ // Display plan (skip in JSON mode)
135
+ if (!options.quiet && !isJsonMode) {
136
+ console.log(formatPlan(plan));
137
+ }
138
+ if (options.dryRun) {
139
+ logger.info('Dry run complete. No files written.');
140
+ return;
141
+ }
142
+ // Execute mode - output JSON for AI agent execution
143
+ if (options.execute || options.stream) {
144
+ const executionPlan = buildExecutionPlan(plan, absolutePath);
145
+ if (options.stream) {
146
+ // Stream mode - one task per line for incremental processing
147
+ for (const line of streamTasks(executionPlan)) {
148
+ console.log(line);
149
+ }
150
+ }
151
+ else {
152
+ // Full JSON output
153
+ console.log(formatExecutionPlanAsJson(executionPlan));
154
+ }
155
+ return;
156
+ }
157
+ // Default: Output task instructions for the host LLM
158
+ console.log('\n=== Ready for Analysis ===\n');
159
+ console.log(`This plan contains ${plan.tasks.length} analysis tasks.`);
160
+ console.log('The host LLM will process each file and generate summaries.');
161
+ console.log('\nTo proceed, the host should:');
162
+ console.log('1. Read each file and its prompt');
163
+ console.log('2. Generate summaries following the prompt guidelines');
164
+ console.log('3. Write .sum files alongside source files');
165
+ console.log('4. Generate AGENTS.md for each directory');
166
+ console.log('5. Generate CLAUDE.md at the project root');
167
+ if (plan.generateArchitecture) {
168
+ console.log('6. Generate ARCHITECTURE.md (complexity threshold met)');
169
+ }
170
+ if (plan.generateStack) {
171
+ console.log('7. Generate STACK.md (package.json found)');
172
+ }
173
+ console.log('\nRun with --execute to get JSON output for AI agent execution.');
174
+ console.log('Run with --stream for streaming task output.');
175
+ // Summary
176
+ const budgetReport = orchestrator.getBudgetReport();
177
+ logger.info(`\nPlan ready. Estimated tokens: ${budgetReport.used.toLocaleString()}`);
178
+ }
179
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for agents-reverse
4
+ *
5
+ * Commands:
6
+ * init Create default configuration
7
+ * discover [path] Discover files to analyze
8
+ * generate [path] Generate documentation plan
9
+ * update [path] Update docs incrementally
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for agents-reverse
4
+ *
5
+ * Commands:
6
+ * init Create default configuration
7
+ * discover [path] Discover files to analyze
8
+ * generate [path] Generate documentation plan
9
+ * update [path] Update docs incrementally
10
+ */
11
+ import { initCommand } from './init.js';
12
+ import { discoverCommand } from './discover.js';
13
+ import { generateCommand } from './generate.js';
14
+ import { updateCommand } from './update.js';
15
+ const USAGE = `
16
+ agents-reverse-engineer - AI-friendly codebase documentation
17
+
18
+ Commands:
19
+ init Create default configuration
20
+ discover [path] Discover files to analyze (default: current directory)
21
+ generate [path] Generate documentation plan (default: current directory)
22
+ update [path] Update docs incrementally (default: current directory)
23
+
24
+ Options:
25
+ --quiet, -q Suppress output except errors
26
+ --verbose, -v Show detailed output
27
+ --show-excluded List each excluded file (discover only)
28
+ --plan Generate GENERATION-PLAN.md file (discover only)
29
+ --dry-run Show plan without writing files (generate, update)
30
+ --budget <n> Override token budget (generate, update)
31
+ --execute Output JSON execution plan for AI agents (generate)
32
+ --stream Output tasks as streaming JSON, one per line (generate)
33
+ --uncommitted Include uncommitted changes (update only)
34
+ --integration Generate AI assistant command files (init only)
35
+ --help, -h Show this help
36
+
37
+ Examples:
38
+ are init
39
+ are init --integration
40
+ are discover
41
+ are discover --plan
42
+ are generate --dry-run
43
+ are generate --execute
44
+ are generate ./my-project --budget 50000
45
+ are update
46
+ are update --uncommitted --verbose
47
+ `;
48
+ /**
49
+ * Parse command-line arguments.
50
+ *
51
+ * Extracts the command, positional arguments, and flags.
52
+ * Handles global flags (--help, -h) that may appear before the command.
53
+ */
54
+ function parseArgs(args) {
55
+ let command;
56
+ const positional = [];
57
+ const flags = new Set();
58
+ const values = new Map();
59
+ for (let i = 0; i < args.length; i++) {
60
+ const arg = args[i];
61
+ if (arg.startsWith('--')) {
62
+ const flagName = arg.slice(2);
63
+ // Check if next arg is a value (not starting with -)
64
+ if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
65
+ values.set(flagName, args[i + 1]);
66
+ i++; // Skip the value
67
+ }
68
+ else {
69
+ flags.add(flagName);
70
+ }
71
+ }
72
+ else if (arg.startsWith('-')) {
73
+ // Handle short flags (e.g., -q, -h, -v)
74
+ for (const char of arg.slice(1)) {
75
+ switch (char) {
76
+ case 'q':
77
+ flags.add('quiet');
78
+ break;
79
+ case 'h':
80
+ flags.add('help');
81
+ break;
82
+ case 'v':
83
+ flags.add('verbose');
84
+ break;
85
+ default:
86
+ // Unknown short flag - ignore
87
+ break;
88
+ }
89
+ }
90
+ }
91
+ else if (!command) {
92
+ // First non-flag argument is the command
93
+ command = arg;
94
+ }
95
+ else {
96
+ // Subsequent non-flag arguments are positional
97
+ positional.push(arg);
98
+ }
99
+ }
100
+ return { command, positional, flags, values };
101
+ }
102
+ /**
103
+ * Show usage information and exit.
104
+ */
105
+ function showHelp() {
106
+ console.log(USAGE);
107
+ process.exit(0);
108
+ }
109
+ /**
110
+ * Show error for unknown command and exit.
111
+ */
112
+ function showUnknownCommand(command) {
113
+ console.error(`Unknown command: ${command}`);
114
+ console.error(`Run 'are --help' for usage information.`);
115
+ process.exit(1);
116
+ }
117
+ /**
118
+ * Main CLI entry point.
119
+ */
120
+ async function main() {
121
+ const args = process.argv.slice(2);
122
+ const { command, positional, flags, values } = parseArgs(args);
123
+ // Handle help flag anywhere
124
+ if (flags.has('help') || args.length === 0) {
125
+ showHelp();
126
+ }
127
+ // Route to command handlers
128
+ switch (command) {
129
+ case 'init': {
130
+ const options = {
131
+ interactive: flags.has('interactive'),
132
+ integration: flags.has('integration'),
133
+ };
134
+ await initCommand(positional[0] || '.', options);
135
+ break;
136
+ }
137
+ case 'discover': {
138
+ const options = {
139
+ quiet: flags.has('quiet'),
140
+ showExcluded: flags.has('show-excluded'),
141
+ verbose: !flags.has('quiet'),
142
+ plan: flags.has('plan'),
143
+ };
144
+ await discoverCommand(positional[0] || '.', options);
145
+ break;
146
+ }
147
+ case 'generate': {
148
+ const options = {
149
+ quiet: flags.has('quiet'),
150
+ verbose: flags.has('verbose'),
151
+ dryRun: flags.has('dry-run'),
152
+ budget: values.has('budget') ? parseInt(values.get('budget'), 10) : undefined,
153
+ execute: flags.has('execute'),
154
+ stream: flags.has('stream'),
155
+ };
156
+ await generateCommand(positional[0] || '.', options);
157
+ break;
158
+ }
159
+ case 'update': {
160
+ const options = {
161
+ uncommitted: flags.has('uncommitted'),
162
+ quiet: flags.has('quiet'),
163
+ verbose: flags.has('verbose'),
164
+ dryRun: flags.has('dry-run'),
165
+ budget: values.has('budget') ? parseInt(values.get('budget'), 10) : undefined,
166
+ };
167
+ await updateCommand(positional[0] || '.', options);
168
+ break;
169
+ }
170
+ default:
171
+ if (command) {
172
+ showUnknownCommand(command);
173
+ }
174
+ showHelp();
175
+ }
176
+ }
177
+ // Run main and handle any uncaught errors
178
+ main().catch((err) => {
179
+ console.error(`Error: ${err.message}`);
180
+ process.exit(1);
181
+ });
182
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `are init` command - Create default configuration
3
+ *
4
+ * Creates the `.agents-reverse/config.yaml` file with documented defaults.
5
+ * Warns if configuration already exists.
6
+ */
7
+ /**
8
+ * Options for the init command.
9
+ */
10
+ export interface InitOptions {
11
+ /**
12
+ * Run in interactive mode (reserved for future --interactive flag).
13
+ * @default false
14
+ */
15
+ interactive?: boolean;
16
+ /**
17
+ * Generate integration files for detected AI assistant environments.
18
+ * @default false
19
+ */
20
+ integration?: boolean;
21
+ }
22
+ /**
23
+ * Execute the `are init` command.
24
+ *
25
+ * Creates a default configuration file at `.agents-reverse/config.yaml`.
26
+ * If the file already exists, logs a warning and returns without modification.
27
+ *
28
+ * @param root - Root directory where config will be created
29
+ * @param options - Command options
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * await initCommand('.', { interactive: false });
34
+ * // Creates .agents-reverse/config.yaml in current directory
35
+ * ```
36
+ */
37
+ export declare function initCommand(root: string, options: InitOptions): Promise<void>;
38
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEnF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * `are init` command - Create default configuration
3
+ *
4
+ * Creates the `.agents-reverse/config.yaml` file with documented defaults.
5
+ * Warns if configuration already exists.
6
+ */
7
+ import path from 'node:path';
8
+ import { configExists, writeDefaultConfig, CONFIG_DIR, CONFIG_FILE } from '../config/loader.js';
9
+ import { createLogger } from '../output/logger.js';
10
+ /**
11
+ * Execute the `are init` command.
12
+ *
13
+ * Creates a default configuration file at `.agents-reverse/config.yaml`.
14
+ * If the file already exists, logs a warning and returns without modification.
15
+ *
16
+ * @param root - Root directory where config will be created
17
+ * @param options - Command options
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * await initCommand('.', { interactive: false });
22
+ * // Creates .agents-reverse/config.yaml in current directory
23
+ * ```
24
+ */
25
+ export async function initCommand(root, options) {
26
+ const resolvedRoot = path.resolve(root);
27
+ const configPath = path.join(resolvedRoot, CONFIG_DIR, CONFIG_FILE);
28
+ const logger = createLogger({
29
+ verbose: true,
30
+ quiet: false,
31
+ colors: true,
32
+ showExcluded: false,
33
+ });
34
+ try {
35
+ // Check if config already exists
36
+ if (await configExists(resolvedRoot)) {
37
+ logger.warn(`Config already exists at ${configPath}`);
38
+ logger.info('Edit the file to customize exclusions and options.');
39
+ return;
40
+ }
41
+ // Create default config
42
+ await writeDefaultConfig(resolvedRoot);
43
+ logger.info(`Created configuration at ${configPath}`);
44
+ logger.info('');
45
+ logger.info('Edit the file to customize:');
46
+ logger.info(' - exclude.patterns: Add custom glob patterns to exclude');
47
+ logger.info(' - exclude.vendorDirs: Modify vendor directories list');
48
+ logger.info(' - options.maxFileSize: Adjust large file threshold');
49
+ // Handle integration file generation
50
+ if (options.integration) {
51
+ const { generateIntegrationFiles } = await import('../integration/generate.js');
52
+ const results = await generateIntegrationFiles(resolvedRoot);
53
+ if (results.length === 0) {
54
+ logger.info('');
55
+ logger.info('No AI assistant environments detected.');
56
+ logger.info('Integration files will be created when .claude/ or .opencode/ exists.');
57
+ }
58
+ else {
59
+ for (const result of results) {
60
+ logger.info('');
61
+ logger.info(`${result.environment} integration:`);
62
+ if (result.filesCreated.length > 0) {
63
+ logger.info(` Created: ${result.filesCreated.join(', ')}`);
64
+ }
65
+ if (result.filesSkipped.length > 0) {
66
+ logger.info(` Skipped (already exist): ${result.filesSkipped.join(', ')}`);
67
+ }
68
+ if (result.environment === 'claude') {
69
+ logger.info('');
70
+ logger.info('Note: Add SessionEnd hook to .claude/settings.json manually:');
71
+ logger.info(' "hooks": { "SessionEnd": [".claude/hooks/ar-session-end.js"] }');
72
+ }
73
+ }
74
+ }
75
+ }
76
+ else {
77
+ logger.info('');
78
+ logger.info('Run with --integration to set up AI assistant commands');
79
+ }
80
+ }
81
+ catch (err) {
82
+ const error = err;
83
+ // Permission error
84
+ if (error.code === 'EACCES' || error.code === 'EPERM') {
85
+ logger.error(`Permission denied: Cannot create ${configPath}`);
86
+ logger.info('Check that you have write permissions to this directory.');
87
+ process.exit(1);
88
+ }
89
+ // Other error
90
+ logger.error(`Failed to create configuration: ${error.message}`);
91
+ process.exit(1);
92
+ }
93
+ }
94
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Options for the update command.
3
+ */
4
+ export interface UpdateCommandOptions {
5
+ /** Include uncommitted changes (staged + working directory) */
6
+ uncommitted?: boolean;
7
+ /** Suppress output except errors */
8
+ quiet?: boolean;
9
+ /** Show detailed output */
10
+ verbose?: boolean;
11
+ /** Dry run - show plan without making changes */
12
+ dryRun?: boolean;
13
+ /** Override token budget */
14
+ budget?: number;
15
+ }
16
+ /**
17
+ * Update command - incrementally updates documentation based on git changes.
18
+ *
19
+ * This command:
20
+ * 1. Checks git repository status
21
+ * 2. Detects files changed since last run
22
+ * 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
26
+ */
27
+ export declare function updateCommand(targetPath: string, options: UpdateCommandOptions): Promise<void>;
28
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +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;AAkND;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0Hf"}