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,247 @@
1
+ const BASE_SYSTEM_PROMPT = `You are analyzing source code to generate documentation for AI coding assistants.
2
+
3
+ Guidelines:
4
+ - Be concise but comprehensive (300-500 words)
5
+ - Focus on what the code DOES and HOW to use it
6
+ - Include key function signatures as code snippets
7
+ - Note dependencies and their purposes
8
+ - Mention only critical TODOs (security, breaking issues)
9
+ - Reference tightly coupled files (used together)`;
10
+ const COMPONENT_TEMPLATE = {
11
+ fileType: 'component',
12
+ systemPrompt: BASE_SYSTEM_PROMPT,
13
+ userPrompt: `Analyze this {{FRAMEWORK}} component and generate a summary.
14
+
15
+ File: {{FILE_PATH}}
16
+
17
+ \`\`\`{{LANG}}
18
+ {{CONTENT}}
19
+ \`\`\`
20
+
21
+ Include in your summary:
22
+ 1. **Purpose**: What this component renders and when it's used
23
+ 2. **Props**: List props with types and descriptions
24
+ 3. **State**: Key state variables and their roles
25
+ 4. **Hooks**: Custom hooks used and why
26
+ 5. **Events**: Key event handlers and their behavior
27
+ 6. **Dependencies**: Imported modules and their usage
28
+ 7. **Related Files**: Tightly coupled components/utilities`,
29
+ focusAreas: ['props', 'state', 'rendering logic', 'event handlers'],
30
+ };
31
+ const SERVICE_TEMPLATE = {
32
+ fileType: 'service',
33
+ systemPrompt: BASE_SYSTEM_PROMPT,
34
+ userPrompt: `Analyze this service module and generate a summary.
35
+
36
+ File: {{FILE_PATH}}
37
+
38
+ \`\`\`{{LANG}}
39
+ {{CONTENT}}
40
+ \`\`\`
41
+
42
+ Include in your summary:
43
+ 1. **Purpose**: What business logic this service handles
44
+ 2. **Public Interface**: Exported functions/methods with signatures
45
+ 3. **Dependencies**: External services, APIs, databases used
46
+ 4. **Error Handling**: How errors are managed
47
+ 5. **Side Effects**: External mutations, API calls, file operations
48
+ 6. **Patterns**: Notable patterns (singleton, factory, etc.)`,
49
+ focusAreas: ['public methods', 'dependencies', 'error handling', 'side effects'],
50
+ };
51
+ const UTIL_TEMPLATE = {
52
+ fileType: 'util',
53
+ systemPrompt: BASE_SYSTEM_PROMPT,
54
+ userPrompt: `Analyze this utility module and generate a summary.
55
+
56
+ File: {{FILE_PATH}}
57
+
58
+ \`\`\`{{LANG}}
59
+ {{CONTENT}}
60
+ \`\`\`
61
+
62
+ Include in your summary:
63
+ 1. **Purpose**: What problems these utilities solve
64
+ 2. **Functions**: List each exported function with signature and brief description
65
+ 3. **Pure vs Impure**: Note which functions have side effects
66
+ 4. **Common Usage**: Typical use cases
67
+ 5. **Edge Cases**: Notable edge case handling`,
68
+ focusAreas: ['function signatures', 'input/output types', 'edge cases'],
69
+ };
70
+ const TYPE_TEMPLATE = {
71
+ fileType: 'type',
72
+ systemPrompt: BASE_SYSTEM_PROMPT,
73
+ userPrompt: `Analyze this type definitions file and generate a summary.
74
+
75
+ File: {{FILE_PATH}}
76
+
77
+ \`\`\`{{LANG}}
78
+ {{CONTENT}}
79
+ \`\`\`
80
+
81
+ Include in your summary:
82
+ 1. **Purpose**: What domain these types represent
83
+ 2. **Main Types**: List key interfaces/types with descriptions
84
+ 3. **Relationships**: How types relate to each other
85
+ 4. **Usage**: Where these types are typically used
86
+ 5. **Constraints**: Notable validation or narrowing`,
87
+ focusAreas: ['interface definitions', 'type relationships', 'generics'],
88
+ };
89
+ const TEST_TEMPLATE = {
90
+ fileType: 'test',
91
+ systemPrompt: BASE_SYSTEM_PROMPT,
92
+ userPrompt: `Analyze this test file and generate a summary.
93
+
94
+ File: {{FILE_PATH}}
95
+
96
+ \`\`\`{{LANG}}
97
+ {{CONTENT}}
98
+ \`\`\`
99
+
100
+ Include in your summary:
101
+ 1. **Subject**: What module/function is being tested
102
+ 2. **Test Cases**: Group and describe test scenarios
103
+ 3. **Coverage**: What behaviors are tested
104
+ 4. **Fixtures**: Test data and mocks used
105
+ 5. **Patterns**: Testing patterns (AAA, mocking strategy)`,
106
+ focusAreas: ['test descriptions', 'assertions', 'mocks'],
107
+ };
108
+ const CONFIG_TEMPLATE = {
109
+ fileType: 'config',
110
+ systemPrompt: BASE_SYSTEM_PROMPT,
111
+ userPrompt: `Analyze this configuration file and generate a summary.
112
+
113
+ File: {{FILE_PATH}}
114
+
115
+ \`\`\`{{LANG}}
116
+ {{CONTENT}}
117
+ \`\`\`
118
+
119
+ Include in your summary:
120
+ 1. **Purpose**: What this configures
121
+ 2. **Key Settings**: Important configuration values
122
+ 3. **Defaults**: Notable default values
123
+ 4. **Environment**: Environment-specific settings
124
+ 5. **Dependencies**: What tools/libraries this configures`,
125
+ focusAreas: ['settings', 'defaults', 'environment variables'],
126
+ };
127
+ const API_TEMPLATE = {
128
+ fileType: 'api',
129
+ systemPrompt: BASE_SYSTEM_PROMPT,
130
+ userPrompt: `Analyze this API route/handler and generate a summary.
131
+
132
+ File: {{FILE_PATH}}
133
+
134
+ \`\`\`{{LANG}}
135
+ {{CONTENT}}
136
+ \`\`\`
137
+
138
+ Include in your summary:
139
+ 1. **Endpoint**: HTTP method and path
140
+ 2. **Request**: Expected request body/params/query
141
+ 3. **Response**: Response format and status codes
142
+ 4. **Auth**: Authentication/authorization requirements
143
+ 5. **Validation**: Input validation rules
144
+ 6. **Errors**: Error responses and codes`,
145
+ focusAreas: ['HTTP methods', 'request/response shapes', 'validation', 'auth'],
146
+ };
147
+ const MODEL_TEMPLATE = {
148
+ fileType: 'model',
149
+ systemPrompt: BASE_SYSTEM_PROMPT,
150
+ userPrompt: `Analyze this data model/entity and generate a summary.
151
+
152
+ File: {{FILE_PATH}}
153
+
154
+ \`\`\`{{LANG}}
155
+ {{CONTENT}}
156
+ \`\`\`
157
+
158
+ Include in your summary:
159
+ 1. **Entity**: What this model represents
160
+ 2. **Fields**: List fields with types and constraints
161
+ 3. **Relations**: Relationships to other models
162
+ 4. **Indexes**: Database indexes defined
163
+ 5. **Methods**: Model methods and their purposes`,
164
+ focusAreas: ['fields', 'relations', 'constraints', 'indexes'],
165
+ };
166
+ const HOOK_TEMPLATE = {
167
+ fileType: 'hook',
168
+ systemPrompt: BASE_SYSTEM_PROMPT,
169
+ userPrompt: `Analyze this React hook and generate a summary.
170
+
171
+ File: {{FILE_PATH}}
172
+
173
+ \`\`\`{{LANG}}
174
+ {{CONTENT}}
175
+ \`\`\`
176
+
177
+ Include in your summary:
178
+ 1. **Purpose**: What state/behavior this hook provides
179
+ 2. **Parameters**: Input parameters with types
180
+ 3. **Return Value**: What the hook returns
181
+ 4. **State**: Internal state managed
182
+ 5. **Effects**: Side effects and cleanup
183
+ 6. **Dependencies**: Hooks and utilities used`,
184
+ focusAreas: ['parameters', 'return value', 'effects', 'cleanup'],
185
+ };
186
+ const SCHEMA_TEMPLATE = {
187
+ fileType: 'schema',
188
+ systemPrompt: BASE_SYSTEM_PROMPT,
189
+ userPrompt: `Analyze this validation schema and generate a summary.
190
+
191
+ File: {{FILE_PATH}}
192
+
193
+ \`\`\`{{LANG}}
194
+ {{CONTENT}}
195
+ \`\`\`
196
+
197
+ Include in your summary:
198
+ 1. **Purpose**: What data this schema validates
199
+ 2. **Shape**: Top-level structure of the schema
200
+ 3. **Fields**: Key fields with validation rules
201
+ 4. **Transforms**: Data transformations applied
202
+ 5. **Defaults**: Default values
203
+ 6. **Errors**: Custom error messages`,
204
+ focusAreas: ['validation rules', 'transforms', 'defaults', 'errors'],
205
+ };
206
+ const GENERIC_TEMPLATE = {
207
+ fileType: 'generic',
208
+ systemPrompt: BASE_SYSTEM_PROMPT,
209
+ userPrompt: `Analyze this source file and generate a summary.
210
+
211
+ File: {{FILE_PATH}}
212
+
213
+ \`\`\`{{LANG}}
214
+ {{CONTENT}}
215
+ \`\`\`
216
+
217
+ Include in your summary:
218
+ 1. **Purpose**: What this file does
219
+ 2. **Exports**: Public interface (functions, classes, constants)
220
+ 3. **Dependencies**: Imported modules and their usage
221
+ 4. **Patterns**: Notable implementation patterns
222
+ 5. **Related**: Tightly coupled files`,
223
+ focusAreas: ['exports', 'dependencies', 'patterns'],
224
+ };
225
+ /**
226
+ * Map of file types to their prompt templates.
227
+ */
228
+ export const TEMPLATES = {
229
+ component: COMPONENT_TEMPLATE,
230
+ service: SERVICE_TEMPLATE,
231
+ util: UTIL_TEMPLATE,
232
+ type: TYPE_TEMPLATE,
233
+ test: TEST_TEMPLATE,
234
+ config: CONFIG_TEMPLATE,
235
+ api: API_TEMPLATE,
236
+ model: MODEL_TEMPLATE,
237
+ hook: HOOK_TEMPLATE,
238
+ schema: SCHEMA_TEMPLATE,
239
+ generic: GENERIC_TEMPLATE,
240
+ };
241
+ /**
242
+ * Get the prompt template for a file type.
243
+ */
244
+ export function getTemplate(fileType) {
245
+ return TEMPLATES[fileType];
246
+ }
247
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/generation/prompts/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import type { FileType } from '../types.js';
2
+ /**
3
+ * Template for generating file summaries.
4
+ * Each file type has a dedicated template with specific instructions.
5
+ */
6
+ export interface PromptTemplate {
7
+ /** File type this template applies to */
8
+ fileType: FileType;
9
+ /** System instructions for the LLM */
10
+ systemPrompt: string;
11
+ /** User prompt template with placeholders */
12
+ userPrompt: string;
13
+ /** Sections to emphasize in analysis */
14
+ focusAreas: string[];
15
+ }
16
+ /**
17
+ * Context provided when building a prompt.
18
+ */
19
+ export interface PromptContext {
20
+ /** Absolute path to the file */
21
+ filePath: string;
22
+ /** File content to analyze */
23
+ content: string;
24
+ /** Detected file type */
25
+ fileType: FileType;
26
+ /** Related files for additional context */
27
+ contextFiles?: Array<{
28
+ path: string;
29
+ content: string;
30
+ }>;
31
+ }
32
+ /**
33
+ * Guidelines for summary generation (from CONTEXT.md).
34
+ */
35
+ export declare const SUMMARY_GUIDELINES: {
36
+ /** Target word count range */
37
+ readonly targetLength: {
38
+ readonly min: 300;
39
+ readonly max: 500;
40
+ };
41
+ /** What to include */
42
+ readonly include: readonly ["Purpose and responsibility", "Public interface (exports, key functions)", "Key patterns and notable algorithms", "Dependencies with usage context", "Key function signatures as code snippets", "Tightly coupled sibling files"];
43
+ /** What to exclude */
44
+ readonly exclude: readonly ["Internal implementation details", "Generic TODOs/FIXMEs (keep only security/breaking)", "Broad architectural relationships (handled by AGENTS.md)"];
45
+ };
46
+ /**
47
+ * Context for chunk summarization (large files).
48
+ */
49
+ export interface ChunkContext extends PromptContext {
50
+ /** Chunk index (0-based) */
51
+ chunkIndex: number;
52
+ /** Total number of chunks */
53
+ totalChunks: number;
54
+ /** Line range in original file */
55
+ lineRange: {
56
+ start: number;
57
+ end: number;
58
+ };
59
+ }
60
+ /**
61
+ * Context for synthesizing chunk summaries.
62
+ */
63
+ export interface SynthesisContext {
64
+ /** Original file path */
65
+ filePath: string;
66
+ /** Detected file type */
67
+ fileType: FileType;
68
+ /** Summaries from each chunk */
69
+ chunkSummaries: string[];
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/generation/prompts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;IACnB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,8BAA8B;;;;;IAE9B,sBAAsB;;IAStB,sBAAsB;;CAMd,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,gCAAgC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Guidelines for summary generation (from CONTEXT.md).
3
+ */
4
+ export const SUMMARY_GUIDELINES = {
5
+ /** Target word count range */
6
+ targetLength: { min: 300, max: 500 },
7
+ /** What to include */
8
+ include: [
9
+ 'Purpose and responsibility',
10
+ 'Public interface (exports, key functions)',
11
+ 'Key patterns and notable algorithms',
12
+ 'Dependencies with usage context',
13
+ 'Key function signatures as code snippets',
14
+ 'Tightly coupled sibling files',
15
+ ],
16
+ /** What to exclude */
17
+ exclude: [
18
+ 'Internal implementation details',
19
+ 'Generic TODOs/FIXMEs (keep only security/breaking)',
20
+ 'Broad architectural relationships (handled by AGENTS.md)',
21
+ ],
22
+ };
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/generation/prompts/types.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,8BAA8B;IAC9B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACpC,sBAAsB;IACtB,OAAO,EAAE;QACP,4BAA4B;QAC5B,2CAA2C;QAC3C,qCAAqC;QACrC,iCAAiC;QACjC,0CAA0C;QAC1C,+BAA+B;KAChC;IACD,sBAAsB;IACtB,OAAO,EAAE;QACP,iCAAiC;QACjC,oDAAoD;QACpD,0DAA0D;KAC3D;CACO,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Types for the documentation generation pipeline
3
+ */
4
+ /**
5
+ * FileType enum - 11 categories for template selection
6
+ * Used to select appropriate prompts for different file types
7
+ */
8
+ export type FileType = 'component' | 'service' | 'util' | 'type' | 'test' | 'config' | 'api' | 'model' | 'hook' | 'schema' | 'generic';
9
+ /**
10
+ * Request to analyze a file
11
+ */
12
+ export interface AnalysisRequest {
13
+ /** Path to the file being analyzed */
14
+ filePath: string;
15
+ /** Content of the file */
16
+ content: string;
17
+ /** Detected file type for prompt selection */
18
+ fileType: FileType;
19
+ /** Token count for the file content */
20
+ tokens: number;
21
+ /** Related files for context */
22
+ contextFiles?: string[];
23
+ }
24
+ /**
25
+ * Result of file analysis (populated by LLM via host)
26
+ */
27
+ export interface AnalysisResult {
28
+ /** Generated summary text */
29
+ summary: string;
30
+ /** Extracted metadata */
31
+ metadata: SummaryMetadata;
32
+ }
33
+ /**
34
+ * Metadata extracted during analysis
35
+ */
36
+ export interface SummaryMetadata {
37
+ /** Primary purpose of the file */
38
+ purpose: string;
39
+ /** Public exports/interface */
40
+ publicInterface: string[];
41
+ /** External dependencies */
42
+ dependencies: string[];
43
+ /** Design patterns used */
44
+ patterns: string[];
45
+ /** Only security/breaking issues */
46
+ criticalTodos?: string[];
47
+ /** Tightly coupled siblings */
48
+ relatedFiles?: string[];
49
+ }
50
+ /**
51
+ * Options for summary generation
52
+ */
53
+ export interface SummaryOptions {
54
+ /** Target length for generated summaries */
55
+ targetLength: 'short' | 'standard' | 'detailed';
56
+ /** Whether to include code snippets in output */
57
+ includeCodeSnippets: boolean;
58
+ }
59
+ /**
60
+ * Configuration for the generation process
61
+ */
62
+ export interface GenerationConfig {
63
+ /** Maximum token budget for generation */
64
+ tokenBudget: number;
65
+ /** Directory for supplementary docs */
66
+ outputDir?: string;
67
+ /** Whether to generate architecture doc */
68
+ generateArchitecture: boolean;
69
+ /** Whether to generate stack doc */
70
+ generateStack: boolean;
71
+ }
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,KAAK,GACL,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,QAAQ,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,4BAA4B;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAChD,iDAAiD;IACjD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;CACxB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for the documentation generation pipeline
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Reference to a file in a directory.
3
+ */
4
+ export interface FileRef {
5
+ /** File name */
6
+ name: string;
7
+ /** Brief description from .sum file */
8
+ description: string;
9
+ /** Whether this is a critical/frequently modified file */
10
+ critical?: boolean;
11
+ }
12
+ /**
13
+ * Group of files by purpose.
14
+ */
15
+ export interface FileGroup {
16
+ /** Purpose/category of this group */
17
+ purpose: string;
18
+ /** Files in this group */
19
+ files: FileRef[];
20
+ }
21
+ /**
22
+ * Summary of a subdirectory.
23
+ */
24
+ export interface SubdirSummary {
25
+ /** Directory name */
26
+ name: string;
27
+ /** Brief summary (from child AGENTS.md or inferred) */
28
+ summary: string;
29
+ }
30
+ /**
31
+ * Complete directory documentation structure.
32
+ */
33
+ export interface DirectoryDoc {
34
+ /** Directory path (relative to project root) */
35
+ path: string;
36
+ /** Directory description */
37
+ description: string;
38
+ /** Files grouped by purpose */
39
+ files: FileGroup[];
40
+ /** Subdirectories with summaries */
41
+ subdirectories: SubdirSummary[];
42
+ /** Related directories (from imports, config) */
43
+ relatedDirectories: string[];
44
+ /** Patterns/conventions in this directory */
45
+ patterns: string[];
46
+ }
47
+ /**
48
+ * Build AGENTS.md content from directory documentation.
49
+ */
50
+ export declare function buildAgentsMd(doc: DirectoryDoc): string;
51
+ /**
52
+ * Build directory documentation from .sum files.
53
+ */
54
+ export declare function buildDirectoryDoc(dirPath: string, projectRoot: string): Promise<DirectoryDoc>;
55
+ /**
56
+ * Write AGENTS.md for a directory.
57
+ *
58
+ * @param dirPath - Directory to write AGENTS.md for
59
+ * @param projectRoot - Project root for relative paths
60
+ * @returns Path to written AGENTS.md
61
+ */
62
+ export declare function writeAgentsMd(dirPath: string, projectRoot: string): Promise<string>;
63
+ //# sourceMappingURL=agents-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../../src/generation/writers/agents-md.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,oCAAoC;IACpC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAqDvD;AA+GD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAyEvB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CASjB"}