autodocs-engine 0.5.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 (240) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/analysis-builder.d.ts +13 -0
  4. package/dist/analysis-builder.js +268 -0
  5. package/dist/analysis-builder.js.map +1 -0
  6. package/dist/anti-pattern-detector.d.ts +9 -0
  7. package/dist/anti-pattern-detector.js +58 -0
  8. package/dist/anti-pattern-detector.js.map +1 -0
  9. package/dist/architecture-detector.d.ts +7 -0
  10. package/dist/architecture-detector.js +212 -0
  11. package/dist/architecture-detector.js.map +1 -0
  12. package/dist/ast-parser.d.ts +5 -0
  13. package/dist/ast-parser.js +635 -0
  14. package/dist/ast-parser.js.map +1 -0
  15. package/dist/benchmark/code-generator.d.ts +20 -0
  16. package/dist/benchmark/code-generator.js +206 -0
  17. package/dist/benchmark/code-generator.js.map +1 -0
  18. package/dist/benchmark/pr-miner.d.ts +61 -0
  19. package/dist/benchmark/pr-miner.js +304 -0
  20. package/dist/benchmark/pr-miner.js.map +1 -0
  21. package/dist/benchmark/pr-runner.d.ts +58 -0
  22. package/dist/benchmark/pr-runner.js +346 -0
  23. package/dist/benchmark/pr-runner.js.map +1 -0
  24. package/dist/benchmark/pr-scorer.d.ts +48 -0
  25. package/dist/benchmark/pr-scorer.js +222 -0
  26. package/dist/benchmark/pr-scorer.js.map +1 -0
  27. package/dist/benchmark/pr-task-gen.d.ts +16 -0
  28. package/dist/benchmark/pr-task-gen.js +129 -0
  29. package/dist/benchmark/pr-task-gen.js.map +1 -0
  30. package/dist/benchmark/report.d.ts +9 -0
  31. package/dist/benchmark/report.js +131 -0
  32. package/dist/benchmark/report.js.map +1 -0
  33. package/dist/benchmark/runner.d.ts +6 -0
  34. package/dist/benchmark/runner.js +183 -0
  35. package/dist/benchmark/runner.js.map +1 -0
  36. package/dist/benchmark/scorer.d.ts +6 -0
  37. package/dist/benchmark/scorer.js +549 -0
  38. package/dist/benchmark/scorer.js.map +1 -0
  39. package/dist/benchmark/shuffler.d.ts +5 -0
  40. package/dist/benchmark/shuffler.js +70 -0
  41. package/dist/benchmark/shuffler.js.map +1 -0
  42. package/dist/benchmark/statistics.d.ts +36 -0
  43. package/dist/benchmark/statistics.js +159 -0
  44. package/dist/benchmark/statistics.js.map +1 -0
  45. package/dist/benchmark/task-generator.d.ts +20 -0
  46. package/dist/benchmark/task-generator.js +388 -0
  47. package/dist/benchmark/task-generator.js.map +1 -0
  48. package/dist/benchmark/types.d.ts +111 -0
  49. package/dist/benchmark/types.js +3 -0
  50. package/dist/benchmark/types.js.map +1 -0
  51. package/dist/bin/autodocs-engine.d.ts +2 -0
  52. package/dist/bin/autodocs-engine.js +296 -0
  53. package/dist/bin/autodocs-engine.js.map +1 -0
  54. package/dist/bin/benchmark.d.ts +14 -0
  55. package/dist/bin/benchmark.js +172 -0
  56. package/dist/bin/benchmark.js.map +1 -0
  57. package/dist/bin/check.d.ts +13 -0
  58. package/dist/bin/check.js +79 -0
  59. package/dist/bin/check.js.map +1 -0
  60. package/dist/bin/init.d.ts +11 -0
  61. package/dist/bin/init.js +268 -0
  62. package/dist/bin/init.js.map +1 -0
  63. package/dist/bin/serve.d.ts +4 -0
  64. package/dist/bin/serve.js +29 -0
  65. package/dist/bin/serve.js.map +1 -0
  66. package/dist/budget-validator.d.ts +22 -0
  67. package/dist/budget-validator.js +119 -0
  68. package/dist/budget-validator.js.map +1 -0
  69. package/dist/command-extractor.d.ts +10 -0
  70. package/dist/command-extractor.js +276 -0
  71. package/dist/command-extractor.js.map +1 -0
  72. package/dist/config-analyzer.d.ts +5 -0
  73. package/dist/config-analyzer.js +364 -0
  74. package/dist/config-analyzer.js.map +1 -0
  75. package/dist/config.d.ts +33 -0
  76. package/dist/config.js +172 -0
  77. package/dist/config.js.map +1 -0
  78. package/dist/contribution-patterns.d.ts +6 -0
  79. package/dist/contribution-patterns.js +263 -0
  80. package/dist/contribution-patterns.js.map +1 -0
  81. package/dist/convention-extractor.d.ts +17 -0
  82. package/dist/convention-extractor.js +90 -0
  83. package/dist/convention-extractor.js.map +1 -0
  84. package/dist/cross-package.d.ts +5 -0
  85. package/dist/cross-package.js +71 -0
  86. package/dist/cross-package.js.map +1 -0
  87. package/dist/dependency-analyzer.d.ts +5 -0
  88. package/dist/dependency-analyzer.js +233 -0
  89. package/dist/dependency-analyzer.js.map +1 -0
  90. package/dist/detectors/build-tool.d.ts +2 -0
  91. package/dist/detectors/build-tool.js +67 -0
  92. package/dist/detectors/build-tool.js.map +1 -0
  93. package/dist/detectors/component-patterns.d.ts +2 -0
  94. package/dist/detectors/component-patterns.js +49 -0
  95. package/dist/detectors/component-patterns.js.map +1 -0
  96. package/dist/detectors/data-fetching.d.ts +2 -0
  97. package/dist/detectors/data-fetching.js +127 -0
  98. package/dist/detectors/data-fetching.js.map +1 -0
  99. package/dist/detectors/database.d.ts +2 -0
  100. package/dist/detectors/database.js +54 -0
  101. package/dist/detectors/database.js.map +1 -0
  102. package/dist/detectors/error-handling.d.ts +2 -0
  103. package/dist/detectors/error-handling.js +47 -0
  104. package/dist/detectors/error-handling.js.map +1 -0
  105. package/dist/detectors/export-patterns.d.ts +2 -0
  106. package/dist/detectors/export-patterns.js +64 -0
  107. package/dist/detectors/export-patterns.js.map +1 -0
  108. package/dist/detectors/file-naming.d.ts +2 -0
  109. package/dist/detectors/file-naming.js +74 -0
  110. package/dist/detectors/file-naming.js.map +1 -0
  111. package/dist/detectors/graphql-patterns.d.ts +2 -0
  112. package/dist/detectors/graphql-patterns.js +47 -0
  113. package/dist/detectors/graphql-patterns.js.map +1 -0
  114. package/dist/detectors/hook-patterns.d.ts +2 -0
  115. package/dist/detectors/hook-patterns.js +105 -0
  116. package/dist/detectors/hook-patterns.js.map +1 -0
  117. package/dist/detectors/import-patterns.d.ts +2 -0
  118. package/dist/detectors/import-patterns.js +88 -0
  119. package/dist/detectors/import-patterns.js.map +1 -0
  120. package/dist/detectors/telemetry-patterns.d.ts +2 -0
  121. package/dist/detectors/telemetry-patterns.js +42 -0
  122. package/dist/detectors/telemetry-patterns.js.map +1 -0
  123. package/dist/detectors/test-framework-ecosystem.d.ts +2 -0
  124. package/dist/detectors/test-framework-ecosystem.js +95 -0
  125. package/dist/detectors/test-framework-ecosystem.js.map +1 -0
  126. package/dist/detectors/test-patterns.d.ts +2 -0
  127. package/dist/detectors/test-patterns.js +60 -0
  128. package/dist/detectors/test-patterns.js.map +1 -0
  129. package/dist/detectors/web-framework.d.ts +2 -0
  130. package/dist/detectors/web-framework.js +51 -0
  131. package/dist/detectors/web-framework.js.map +1 -0
  132. package/dist/deterministic-formatter.d.ts +54 -0
  133. package/dist/deterministic-formatter.js +922 -0
  134. package/dist/deterministic-formatter.js.map +1 -0
  135. package/dist/diff-analyzer.d.ts +7 -0
  136. package/dist/diff-analyzer.js +126 -0
  137. package/dist/diff-analyzer.js.map +1 -0
  138. package/dist/example-extractor.d.ts +6 -0
  139. package/dist/example-extractor.js +115 -0
  140. package/dist/example-extractor.js.map +1 -0
  141. package/dist/existing-docs.d.ts +36 -0
  142. package/dist/existing-docs.js +257 -0
  143. package/dist/existing-docs.js.map +1 -0
  144. package/dist/file-discovery.d.ts +6 -0
  145. package/dist/file-discovery.js +154 -0
  146. package/dist/file-discovery.js.map +1 -0
  147. package/dist/git-history.d.ts +41 -0
  148. package/dist/git-history.js +401 -0
  149. package/dist/git-history.js.map +1 -0
  150. package/dist/impact-classifier.d.ts +22 -0
  151. package/dist/impact-classifier.js +87 -0
  152. package/dist/impact-classifier.js.map +1 -0
  153. package/dist/impact-radius.d.ts +23 -0
  154. package/dist/impact-radius.js +130 -0
  155. package/dist/impact-radius.js.map +1 -0
  156. package/dist/import-chain.d.ts +12 -0
  157. package/dist/import-chain.js +93 -0
  158. package/dist/import-chain.js.map +1 -0
  159. package/dist/index.d.ts +40 -0
  160. package/dist/index.js +72 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/inferability.d.ts +16 -0
  163. package/dist/inferability.js +142 -0
  164. package/dist/inferability.js.map +1 -0
  165. package/dist/llm/adapter.d.ts +33 -0
  166. package/dist/llm/adapter.js +202 -0
  167. package/dist/llm/adapter.js.map +1 -0
  168. package/dist/llm/client.d.ts +5 -0
  169. package/dist/llm/client.js +68 -0
  170. package/dist/llm/client.js.map +1 -0
  171. package/dist/llm/hierarchical.d.ts +23 -0
  172. package/dist/llm/hierarchical.js +126 -0
  173. package/dist/llm/hierarchical.js.map +1 -0
  174. package/dist/llm/serializer.d.ts +19 -0
  175. package/dist/llm/serializer.js +363 -0
  176. package/dist/llm/serializer.js.map +1 -0
  177. package/dist/llm/template-selector.d.ts +7 -0
  178. package/dist/llm/template-selector.js +21 -0
  179. package/dist/llm/template-selector.js.map +1 -0
  180. package/dist/llm-adapter.d.ts +2 -0
  181. package/dist/llm-adapter.js +5 -0
  182. package/dist/llm-adapter.js.map +1 -0
  183. package/dist/mcp/cache.d.ts +30 -0
  184. package/dist/mcp/cache.js +112 -0
  185. package/dist/mcp/cache.js.map +1 -0
  186. package/dist/mcp/errors.d.ts +21 -0
  187. package/dist/mcp/errors.js +27 -0
  188. package/dist/mcp/errors.js.map +1 -0
  189. package/dist/mcp/queries.d.ts +27 -0
  190. package/dist/mcp/queries.js +121 -0
  191. package/dist/mcp/queries.js.map +1 -0
  192. package/dist/mcp/server.d.ts +14 -0
  193. package/dist/mcp/server.js +131 -0
  194. package/dist/mcp/server.js.map +1 -0
  195. package/dist/mcp/tools.d.ts +39 -0
  196. package/dist/mcp/tools.js +249 -0
  197. package/dist/mcp/tools.js.map +1 -0
  198. package/dist/mermaid-generator.d.ts +6 -0
  199. package/dist/mermaid-generator.js +59 -0
  200. package/dist/mermaid-generator.js.map +1 -0
  201. package/dist/meta-tool-detector.d.ts +23 -0
  202. package/dist/meta-tool-detector.js +177 -0
  203. package/dist/meta-tool-detector.js.map +1 -0
  204. package/dist/output-validator.d.ts +6 -0
  205. package/dist/output-validator.js +471 -0
  206. package/dist/output-validator.js.map +1 -0
  207. package/dist/pattern-fingerprinter.d.ts +7 -0
  208. package/dist/pattern-fingerprinter.js +241 -0
  209. package/dist/pattern-fingerprinter.js.map +1 -0
  210. package/dist/pipeline.d.ts +5 -0
  211. package/dist/pipeline.js +374 -0
  212. package/dist/pipeline.js.map +1 -0
  213. package/dist/plugin-loader.d.ts +19 -0
  214. package/dist/plugin-loader.js +124 -0
  215. package/dist/plugin-loader.js.map +1 -0
  216. package/dist/role-inferrer.d.ts +5 -0
  217. package/dist/role-inferrer.js +159 -0
  218. package/dist/role-inferrer.js.map +1 -0
  219. package/dist/symbol-graph.d.ts +11 -0
  220. package/dist/symbol-graph.js +613 -0
  221. package/dist/symbol-graph.js.map +1 -0
  222. package/dist/templates/agents-md.d.ts +20 -0
  223. package/dist/templates/agents-md.js +346 -0
  224. package/dist/templates/agents-md.js.map +1 -0
  225. package/dist/templates/claude-md.d.ts +4 -0
  226. package/dist/templates/claude-md.js +23 -0
  227. package/dist/templates/claude-md.js.map +1 -0
  228. package/dist/templates/cursorrules.d.ts +4 -0
  229. package/dist/templates/cursorrules.js +18 -0
  230. package/dist/templates/cursorrules.js.map +1 -0
  231. package/dist/tier-classifier.d.ts +7 -0
  232. package/dist/tier-classifier.js +32 -0
  233. package/dist/tier-classifier.js.map +1 -0
  234. package/dist/types.d.ts +428 -0
  235. package/dist/types.js +42 -0
  236. package/dist/types.js.map +1 -0
  237. package/dist/workflow-rules.d.ts +18 -0
  238. package/dist/workflow-rules.js +131 -0
  239. package/dist/workflow-rules.js.map +1 -0
  240. package/package.json +62 -0
@@ -0,0 +1,428 @@
1
+ export interface StructuredAnalysis {
2
+ meta: AnalysisMeta;
3
+ packages: PackageAnalysis[];
4
+ crossPackage?: CrossPackageAnalysis;
5
+ warnings: Warning[];
6
+ }
7
+ export interface AnalysisMeta {
8
+ engineVersion: string;
9
+ analyzedAt: string;
10
+ rootDir: string;
11
+ config: PublicConfig;
12
+ timingMs: number;
13
+ }
14
+ export type PublicConfig = Omit<ResolvedConfig, "llm"> & {
15
+ llm: Omit<ResolvedConfig["llm"], "apiKey">;
16
+ };
17
+ export interface ResolvedConfig {
18
+ packages: string[];
19
+ exclude: string[];
20
+ rootDir?: string;
21
+ output: {
22
+ format: OutputFormat;
23
+ dir: string;
24
+ };
25
+ llm: {
26
+ provider: "anthropic" | "openai" | "local";
27
+ model: string;
28
+ apiKey?: string;
29
+ baseUrl?: string;
30
+ maxOutputTokens: number;
31
+ };
32
+ conventions: {
33
+ disable: string[];
34
+ };
35
+ maxPublicAPIEntries: number;
36
+ verbose: boolean;
37
+ metaToolThreshold: number;
38
+ noMetaTool: boolean;
39
+ }
40
+ export type OutputFormat = "json" | "agents.md" | "claude.md" | "cursorrules";
41
+ export interface Warning {
42
+ level: "info" | "warn" | "error";
43
+ module: string;
44
+ message: string;
45
+ file?: string;
46
+ }
47
+ export interface PackageAnalysis {
48
+ name: string;
49
+ version: string;
50
+ description: string;
51
+ relativePath: string;
52
+ files: FileInventory;
53
+ publicAPI: PublicAPIEntry[];
54
+ conventions: Convention[];
55
+ commands: CommandSet;
56
+ architecture: PackageArchitecture;
57
+ dependencies: DependencySummary;
58
+ role: PackageRole;
59
+ antiPatterns: AntiPattern[];
60
+ contributionPatterns: ContributionPattern[];
61
+ configAnalysis?: ConfigAnalysis;
62
+ dependencyInsights?: DependencyInsights;
63
+ existingDocs?: ExistingDocs;
64
+ callGraph?: CallGraphEdge[];
65
+ importChain?: FileImportEdge[];
66
+ gitHistory?: GitHistoryAnalysis;
67
+ patternFingerprints?: PatternFingerprint[];
68
+ examples?: UsageExample[];
69
+ isMetaTool?: boolean;
70
+ metaToolInfo?: {
71
+ signal: "peer-dependencies" | "dep-placement" | "family-count";
72
+ supportedFamilies: string[];
73
+ coreFamilies: string[];
74
+ };
75
+ }
76
+ export interface ConfigAnalysis {
77
+ typescript?: {
78
+ strict: boolean;
79
+ target: string;
80
+ module: string;
81
+ moduleResolution: string;
82
+ paths?: Record<string, string[]>;
83
+ jsx?: string;
84
+ };
85
+ buildTool?: {
86
+ name: "turbo" | "nx" | "lerna" | "none";
87
+ taskNames: string[];
88
+ configFile: string;
89
+ };
90
+ linter?: {
91
+ name: "eslint" | "biome" | "none";
92
+ configFile: string;
93
+ };
94
+ formatter?: {
95
+ name: "prettier" | "biome" | "none";
96
+ configFile: string;
97
+ };
98
+ taskRunner?: {
99
+ name: "just" | "make" | "none";
100
+ targets: string[];
101
+ configFile: string;
102
+ };
103
+ envVars?: string[];
104
+ }
105
+ export interface DependencyInsights {
106
+ runtime: {
107
+ name: string;
108
+ version: string;
109
+ }[];
110
+ frameworks: {
111
+ name: string;
112
+ version: string;
113
+ guidance?: string;
114
+ }[];
115
+ testFramework?: {
116
+ name: string;
117
+ version: string;
118
+ };
119
+ bundler?: {
120
+ name: string;
121
+ version: string;
122
+ };
123
+ }
124
+ export interface ExistingDocs {
125
+ hasReadme: boolean;
126
+ hasAgentsMd: boolean;
127
+ hasClaudeMd: boolean;
128
+ hasCursorrules: boolean;
129
+ hasContributing: boolean;
130
+ agentsMdPath?: string;
131
+ claudeMdPath?: string;
132
+ }
133
+ export interface CallReference {
134
+ callerName: string;
135
+ calleeName: string;
136
+ calleeModule: string;
137
+ isInternal: boolean;
138
+ }
139
+ export interface CallGraphEdge {
140
+ from: string;
141
+ to: string;
142
+ fromFile: string;
143
+ toFile: string;
144
+ }
145
+ export interface FileImportEdge {
146
+ importer: string;
147
+ source: string;
148
+ symbolCount: number;
149
+ symbols: string[];
150
+ }
151
+ export interface CoChangeEdge {
152
+ file1: string;
153
+ file2: string;
154
+ coChangeCount: number;
155
+ file1Commits: number;
156
+ file2Commits: number;
157
+ jaccard: number;
158
+ lastCoChangeTimestamp: number;
159
+ }
160
+ export interface GitHistoryAnalysis {
161
+ coChangeEdges: CoChangeEdge[];
162
+ totalCommitsAnalyzed: number;
163
+ commitsFilteredBySize: number;
164
+ historySpanDays: number;
165
+ }
166
+ export interface PackageRole {
167
+ summary: string;
168
+ purpose: string;
169
+ whenToUse: string;
170
+ inferredFrom: string[];
171
+ }
172
+ export interface AntiPattern {
173
+ rule: string;
174
+ reason: string;
175
+ confidence: "high" | "medium";
176
+ derivedFrom: string;
177
+ impact?: RuleImpact;
178
+ }
179
+ export interface ContributionPattern {
180
+ type: string;
181
+ directory: string;
182
+ filePattern: string;
183
+ testPattern?: string;
184
+ exampleFile: string;
185
+ steps: string[];
186
+ commonImports?: {
187
+ specifier: string;
188
+ symbols: string[];
189
+ coverage: number;
190
+ }[];
191
+ exportSuffix?: string;
192
+ registrationFile?: string;
193
+ }
194
+ export interface FileInventory {
195
+ total: number;
196
+ byTier: {
197
+ tier1: {
198
+ count: number;
199
+ lines: number;
200
+ files: string[];
201
+ };
202
+ tier2: {
203
+ count: number;
204
+ lines: number;
205
+ files: string[];
206
+ };
207
+ tier3: {
208
+ count: number;
209
+ lines: number;
210
+ };
211
+ };
212
+ byExtension: Record<string, number>;
213
+ }
214
+ export interface PublicAPIEntry {
215
+ name: string;
216
+ kind: SymbolKind;
217
+ sourceFile: string;
218
+ signature?: string;
219
+ isTypeOnly: boolean;
220
+ description?: string;
221
+ importCount?: number;
222
+ }
223
+ export type SymbolKind = "function" | "hook" | "component" | "type" | "interface" | "class" | "enum" | "const" | "namespace" | "unknown";
224
+ export interface ConventionConfidence {
225
+ matched: number;
226
+ total: number;
227
+ percentage: number;
228
+ description: string;
229
+ }
230
+ export type RuleImpact = "high" | "medium" | "low";
231
+ export interface Convention {
232
+ category: ConventionCategory;
233
+ name: string;
234
+ description: string;
235
+ confidence: ConventionConfidence;
236
+ examples: string[];
237
+ impact?: RuleImpact;
238
+ source?: string;
239
+ }
240
+ export type ConventionCategory = "file-naming" | "hooks" | "testing" | "ecosystem";
241
+ export interface CommandSet {
242
+ packageManager: "npm" | "yarn" | "pnpm" | "bun" | "unknown";
243
+ build?: Command;
244
+ test?: Command;
245
+ lint?: Command;
246
+ start?: Command;
247
+ other: Command[];
248
+ }
249
+ export interface Command {
250
+ run: string;
251
+ source: string;
252
+ variants?: {
253
+ name: string;
254
+ run: string;
255
+ }[];
256
+ }
257
+ export interface WorkspaceCommand {
258
+ run: string;
259
+ scriptName: string;
260
+ packageName: string;
261
+ packagePath: string;
262
+ category: string;
263
+ }
264
+ export interface WorkflowRule {
265
+ trigger: string;
266
+ action: string;
267
+ source: string;
268
+ impact: "high";
269
+ }
270
+ export interface DirectoryInfo {
271
+ path: string;
272
+ purpose: string;
273
+ fileCount: number;
274
+ exports: string[];
275
+ pattern?: string;
276
+ }
277
+ export interface PackageArchitecture {
278
+ entryPoint: string;
279
+ directories: DirectoryInfo[];
280
+ packageType: "react-components" | "hooks" | "library" | "cli" | "server" | "web-application" | "api-server" | "mixed" | "unknown";
281
+ hasJSX: boolean;
282
+ }
283
+ export interface DependencySummary {
284
+ internal: string[];
285
+ external: {
286
+ name: string;
287
+ importCount: number;
288
+ }[];
289
+ totalUniqueDependencies: number;
290
+ }
291
+ export interface CrossPackageAnalysis {
292
+ dependencyGraph: PackageDependency[];
293
+ sharedConventions: Convention[];
294
+ divergentConventions: {
295
+ convention: string;
296
+ packages: {
297
+ name: string;
298
+ value: string;
299
+ }[];
300
+ }[];
301
+ rootCommands?: CommandSet;
302
+ sharedAntiPatterns: AntiPattern[];
303
+ workspaceCommands?: WorkspaceCommand[];
304
+ workflowRules?: WorkflowRule[];
305
+ mermaidDiagram?: string;
306
+ }
307
+ export interface PackageDependency {
308
+ from: string;
309
+ to: string;
310
+ isDevOnly: boolean;
311
+ }
312
+ export interface ParsedFile {
313
+ relativePath: string;
314
+ exports: ExportEntry[];
315
+ imports: ImportEntry[];
316
+ contentSignals: ContentSignals;
317
+ lineCount: number;
318
+ isTestFile: boolean;
319
+ isGeneratedFile: boolean;
320
+ hasJSX: boolean;
321
+ hasCJS: boolean;
322
+ hasSyntaxErrors: boolean;
323
+ callReferences: CallReference[];
324
+ }
325
+ export interface ExportEntry {
326
+ name: string;
327
+ localName?: string;
328
+ kind: SymbolKind;
329
+ isReExport: boolean;
330
+ isTypeOnly: boolean;
331
+ reExportSource?: string;
332
+ signature?: string;
333
+ jsDocComment?: string;
334
+ }
335
+ export interface ImportEntry {
336
+ moduleSpecifier: string;
337
+ importedNames: string[];
338
+ isTypeOnly: boolean;
339
+ isDynamic: boolean;
340
+ }
341
+ export interface ContentSignals {
342
+ tryCatchCount: number;
343
+ useMemoCount: number;
344
+ useCallbackCount: number;
345
+ useEffectCount: number;
346
+ useStateCount: number;
347
+ useQueryCount: number;
348
+ useMutationCount: number;
349
+ jestMockCount: number;
350
+ hasDisplayName: boolean;
351
+ hasErrorBoundary: boolean;
352
+ }
353
+ export interface SymbolGraph {
354
+ barrelFile?: string;
355
+ barrelExports: ResolvedExport[];
356
+ allExports: Map<string, ExportEntry[]>;
357
+ importGraph: Map<string, ImportEntry[]>;
358
+ barrelSourceFiles: Set<string>;
359
+ callGraph: CallGraphEdge[];
360
+ }
361
+ export interface ResolvedExport extends ExportEntry {
362
+ definedIn: string;
363
+ }
364
+ export type TierInfo = {
365
+ tier: 1 | 2 | 3;
366
+ reason: string;
367
+ };
368
+ export interface DetectorContext {
369
+ dependencies?: DependencyInsights;
370
+ config?: ConfigAnalysis;
371
+ rootDevDeps?: Record<string, string>;
372
+ }
373
+ export type ConventionDetector = (files: ParsedFile[], tiers: Map<string, TierInfo>, warnings: Warning[], context?: DetectorContext) => Convention[];
374
+ export declare class FileNotFoundError extends Error {
375
+ readonly filePath: string;
376
+ constructor(filePath: string, cause?: Error);
377
+ }
378
+ export declare class LLMError extends Error {
379
+ readonly statusCode?: number | undefined;
380
+ constructor(message: string, statusCode?: number | undefined);
381
+ }
382
+ export interface ValidationResult {
383
+ isValid: boolean;
384
+ issues: ValidationIssue[];
385
+ correctionPrompt?: string;
386
+ }
387
+ export interface ValidationIssue {
388
+ severity: "error" | "warning";
389
+ type: "hallucinated_technology" | "version_mismatch" | "unknown_symbol" | "budget_exceeded" | "command_mismatch" | "meaningless_title" | "unused_framework" | "under_minimum_length";
390
+ message: string;
391
+ line?: number;
392
+ suggestion?: string;
393
+ }
394
+ export interface PatternFingerprint {
395
+ exportName: string;
396
+ sourceFile: string;
397
+ parameterShape: string;
398
+ returnShape: string;
399
+ internalCalls: string[];
400
+ errorPattern: string;
401
+ asyncPattern: string;
402
+ complexity: "simple" | "moderate" | "complex";
403
+ summary: string;
404
+ }
405
+ export interface UsageExample {
406
+ exportName: string;
407
+ testFile: string;
408
+ snippet: string;
409
+ context: string;
410
+ }
411
+ export interface AnalysisDiff {
412
+ newExports: string[];
413
+ removedExports: string[];
414
+ changedConventions: string[];
415
+ newConventions: string[];
416
+ commandsChanged: boolean;
417
+ dependencyChanges: {
418
+ added: string[];
419
+ removed: string[];
420
+ majorVersionChanged: string[];
421
+ };
422
+ summary: string;
423
+ needsUpdate: boolean;
424
+ }
425
+ export declare const ENGINE_VERSION = "0.5.0";
426
+ export declare const DEFAULT_EXCLUDE_DIRS: readonly ["node_modules", "dist", "lib", "build", "out", "coverage", "__mocks__", ".git", "generated-touchdown", "fixtures", "__fixtures__", "e2e", "examples", "playground"];
427
+ export declare const SOURCE_EXTENSIONS: RegExp;
428
+ export declare const DTS_EXTENSION: RegExp;
package/dist/types.js ADDED
@@ -0,0 +1,42 @@
1
+ // src/types.ts — ALL shared types for the Codebase Intelligence Engine
2
+ // Incorporates errata E-6 through E-13, E-39
3
+ // ─── Errors ──────────────────────────────────────────────────────────────────
4
+ export class FileNotFoundError extends Error {
5
+ filePath;
6
+ constructor(filePath, cause) {
7
+ super(`File not found: ${filePath}`);
8
+ this.filePath = filePath;
9
+ this.name = "FileNotFoundError";
10
+ if (cause)
11
+ this.cause = cause;
12
+ }
13
+ }
14
+ export class LLMError extends Error {
15
+ statusCode;
16
+ constructor(message, statusCode) {
17
+ super(message);
18
+ this.statusCode = statusCode;
19
+ this.name = "LLMError";
20
+ }
21
+ }
22
+ // ─── Constants ───────────────────────────────────────────────────────────────
23
+ export const ENGINE_VERSION = "0.5.0";
24
+ export const DEFAULT_EXCLUDE_DIRS = [
25
+ "node_modules",
26
+ "dist",
27
+ "lib",
28
+ "build",
29
+ "out",
30
+ "coverage",
31
+ "__mocks__",
32
+ ".git",
33
+ "generated-touchdown",
34
+ "fixtures",
35
+ "__fixtures__",
36
+ "e2e",
37
+ "examples",
38
+ "playground",
39
+ ];
40
+ export const SOURCE_EXTENSIONS = /\.(ts|tsx|js|jsx)$/;
41
+ export const DTS_EXTENSION = /\.d\.(ts|tsx)$/;
42
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6CAA6C;AA8b7C,gFAAgF;AAEhF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAExB;IADlB,YACkB,QAAgB,EAChC,KAAa;QAEb,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAHrB,aAAQ,GAAR,QAAQ,CAAQ;QAIhC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AA0DD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,UAAU;IACV,WAAW;IACX,MAAM;IACN,qBAAqB;IACrB,UAAU;IACV,cAAc;IACd,KAAK;IACL,UAAU;IACV,YAAY;CACJ,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { WorkflowRule, WorkspaceCommand, CommandSet, ConfigAnalysis, DependencyInsights, Convention } from "./types.js";
2
+ interface WorkflowContext {
3
+ workspaceCommands: WorkspaceCommand[];
4
+ rootCommands?: CommandSet;
5
+ packageCommands: {
6
+ packageName: string;
7
+ commands: CommandSet;
8
+ }[];
9
+ configAnalysis?: ConfigAnalysis;
10
+ allDependencyInsights: DependencyInsights[];
11
+ allConventions: Convention[];
12
+ }
13
+ /**
14
+ * Generate technology-specific workflow rules by matching detected technologies
15
+ * to discovered commands.
16
+ */
17
+ export declare function generateWorkflowRules(ctx: WorkflowContext): WorkflowRule[];
18
+ export {};
@@ -0,0 +1,131 @@
1
+ // src/workflow-rules.ts — W3-2: Technology-Aware Workflow Rule Templates
2
+ // Composes specific workflow rules from detected technology + discovered commands.
3
+ /**
4
+ * Generate technology-specific workflow rules by matching detected technologies
5
+ * to discovered commands.
6
+ */
7
+ export function generateWorkflowRules(ctx) {
8
+ const rules = [];
9
+ // Collect all frameworks and dependencies across packages
10
+ const allFrameworks = new Set();
11
+ for (const di of ctx.allDependencyInsights) {
12
+ for (const fw of di.frameworks) {
13
+ allFrameworks.add(fw.name);
14
+ }
15
+ for (const rt of di.runtime) {
16
+ allFrameworks.add(rt.name);
17
+ }
18
+ }
19
+ // Index workspace commands by category and name
20
+ const cmdsByCategory = new Map();
21
+ for (const cmd of ctx.workspaceCommands) {
22
+ const list = cmdsByCategory.get(cmd.category) ?? [];
23
+ list.push(cmd);
24
+ cmdsByCategory.set(cmd.category, list);
25
+ }
26
+ const cmdByScript = new Map();
27
+ for (const cmd of ctx.workspaceCommands) {
28
+ cmdByScript.set(cmd.scriptName, cmd);
29
+ }
30
+ // --- Drizzle ORM ---
31
+ if (allFrameworks.has("drizzle-orm")) {
32
+ const dbGenerate = findCmd(ctx.workspaceCommands, /^db[:\-]generate/);
33
+ const dbMigrate = findCmd(ctx.workspaceCommands, /^db[:\-]migrate/);
34
+ if (dbGenerate && dbMigrate) {
35
+ rules.push({
36
+ trigger: "After modifying database schema files",
37
+ action: `Run \`${dbGenerate.run}\` to create a migration, then \`${dbMigrate.run}\` to apply it`,
38
+ source: `Drizzle ORM detected + ${dbGenerate.scriptName}/${dbMigrate.scriptName} in ${dbGenerate.packagePath}`,
39
+ impact: "high",
40
+ });
41
+ }
42
+ const dbPush = findCmd(ctx.workspaceCommands, /^db[:\-]push/);
43
+ if (dbPush) {
44
+ rules.push({
45
+ trigger: "For rapid prototyping (no migration file needed)",
46
+ action: `Run \`${dbPush.run}\` to push schema changes directly`,
47
+ source: `Drizzle ORM detected + ${dbPush.scriptName} in ${dbPush.packagePath}`,
48
+ impact: "high",
49
+ });
50
+ }
51
+ }
52
+ // --- Prisma ---
53
+ if (allFrameworks.has("prisma") || allFrameworks.has("@prisma/client")) {
54
+ const prismaGenerate = findCmd(ctx.workspaceCommands, /^(prisma[:\-])?generate/);
55
+ const prismaMigrate = findCmd(ctx.workspaceCommands, /^(prisma[:\-])?migrate/);
56
+ if (prismaGenerate && prismaMigrate) {
57
+ rules.push({
58
+ trigger: "After modifying schema.prisma",
59
+ action: `Run \`${prismaGenerate.run}\` then \`${prismaMigrate.run}\``,
60
+ source: `Prisma detected + ${prismaGenerate.scriptName}/${prismaMigrate.scriptName}`,
61
+ impact: "high",
62
+ });
63
+ }
64
+ }
65
+ // --- GraphQL codegen ---
66
+ if (allFrameworks.has("graphql") || allFrameworks.has("@graphql-codegen/cli")) {
67
+ const codegen = findCmd(ctx.workspaceCommands, /^(codegen|generate[:\-]?(interfaces|types)?)/);
68
+ if (codegen) {
69
+ rules.push({
70
+ trigger: "After modifying .graphql files",
71
+ action: `Run \`${codegen.run}\` to regenerate types`,
72
+ source: `GraphQL detected + ${codegen.scriptName}`,
73
+ impact: "high",
74
+ });
75
+ }
76
+ }
77
+ // --- Turbo monorepo ---
78
+ if (ctx.configAnalysis?.buildTool?.name === "turbo") {
79
+ const pm = ctx.rootCommands?.packageManager ?? "npm";
80
+ rules.push({
81
+ trigger: "For running build/test/lint tasks",
82
+ action: `Use \`turbo run <task>\`, not \`${pm} run <script>\` — Turbo caches and parallelizes`,
83
+ source: "Turbo detected in build tool config",
84
+ impact: "high",
85
+ });
86
+ }
87
+ // --- Biome (not ESLint/Prettier) ---
88
+ if (ctx.configAnalysis?.linter?.name === "biome" || ctx.configAnalysis?.formatter?.name === "biome") {
89
+ const lintCmd = findLintCommand(ctx);
90
+ const cmdHint = lintCmd ? ` (\`${lintCmd}\`)` : "";
91
+ rules.push({
92
+ trigger: "For linting and formatting",
93
+ action: `Use Biome${cmdHint}, NOT ESLint or Prettier — they are not configured`,
94
+ source: "Biome detected in config analysis",
95
+ impact: "high",
96
+ });
97
+ }
98
+ // --- Test framework ---
99
+ const testCmd = findTestCommand(ctx);
100
+ if (testCmd) {
101
+ rules.push({
102
+ trigger: "After modifying source files",
103
+ action: `Run \`${testCmd}\` to verify changes`,
104
+ source: "Test framework detected",
105
+ impact: "high",
106
+ });
107
+ }
108
+ return rules;
109
+ }
110
+ function findCmd(commands, pattern) {
111
+ return commands.find((c) => pattern.test(c.scriptName));
112
+ }
113
+ function findLintCommand(ctx) {
114
+ if (ctx.rootCommands?.lint)
115
+ return ctx.rootCommands.lint.run;
116
+ for (const pc of ctx.packageCommands) {
117
+ if (pc.commands.lint)
118
+ return pc.commands.lint.run;
119
+ }
120
+ return undefined;
121
+ }
122
+ function findTestCommand(ctx) {
123
+ if (ctx.rootCommands?.test)
124
+ return ctx.rootCommands.test.run;
125
+ for (const pc of ctx.packageCommands) {
126
+ if (pc.commands.test)
127
+ return pc.commands.test.run;
128
+ }
129
+ return undefined;
130
+ }
131
+ //# sourceMappingURL=workflow-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-rules.js","sourceRoot":"","sources":["../src/workflow-rules.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,mFAAmF;AAoBnF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAoB;IACxD,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,0DAA0D;IAC1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;QAC3C,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAC/B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,sBAAsB;IACtB,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACpE,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,uCAAuC;gBAChD,MAAM,EAAE,SAAS,UAAU,CAAC,GAAG,oCAAoC,SAAS,CAAC,GAAG,gBAAgB;gBAChG,MAAM,EAAE,0BAA0B,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,OAAO,UAAU,CAAC,WAAW,EAAE;gBAC9G,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,kDAAkD;gBAC3D,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,oCAAoC;gBAC/D,MAAM,EAAE,0BAA0B,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,WAAW,EAAE;gBAC9E,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;QAC/E,IAAI,cAAc,IAAI,aAAa,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,+BAA+B;gBACxC,MAAM,EAAE,SAAS,cAAc,CAAC,GAAG,aAAa,aAAa,CAAC,GAAG,IAAI;gBACrE,MAAM,EAAE,qBAAqB,cAAc,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU,EAAE;gBACpF,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,8CAA8C,CAAC,CAAC;QAC/F,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,SAAS,OAAO,CAAC,GAAG,wBAAwB;gBACpD,MAAM,EAAE,sBAAsB,OAAO,CAAC,UAAU,EAAE;gBAClD,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,cAAc,IAAI,KAAK,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,mCAAmC;YAC5C,MAAM,EAAE,mCAAmC,EAAE,iDAAiD;YAC9F,MAAM,EAAE,qCAAqC;YAC7C,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QACpG,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,4BAA4B;YACrC,MAAM,EAAE,YAAY,OAAO,oDAAoD;YAC/E,MAAM,EAAE,mCAAmC;YAC3C,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,SAAS,OAAO,sBAAsB;YAC9C,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,QAA4B,EAAE,OAAe;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,GAAoB;IAC3C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI;QAAE,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,GAAoB;IAC3C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI;QAAE,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "autodocs-engine",
3
+ "version": "0.5.0",
4
+ "description": "Codebase intelligence engine for generating AI context files",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "autodocs-engine": "dist/bin/autodocs-engine.js"
10
+ },
11
+ "files": [
12
+ "dist/",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "engines": {
17
+ "node": ">=18.18.0"
18
+ },
19
+ "license": "MIT",
20
+ "publishConfig": {
21
+ "access": "public",
22
+ "registry": "https://registry.npmjs.org/"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/msiric/autodocs-engine"
27
+ },
28
+ "keywords": [
29
+ "agents-md",
30
+ "claude-md",
31
+ "cursorrules",
32
+ "ai-context",
33
+ "codebase-intelligence",
34
+ "typescript",
35
+ "ast",
36
+ "conventions"
37
+ ],
38
+ "homepage": "https://github.com/msiric/autodocs-engine#readme",
39
+ "bugs": {
40
+ "url": "https://github.com/msiric/autodocs-engine/issues"
41
+ },
42
+ "scripts": {
43
+ "build": "tsc",
44
+ "dev": "tsc --watch",
45
+ "test": "vitest run",
46
+ "test:watch": "vitest",
47
+ "typecheck": "tsc --noEmit"
48
+ },
49
+ "dependencies": {
50
+ "@modelcontextprotocol/sdk": "^1.26.0",
51
+ "mri": "^1.2.0",
52
+ "picomatch": "^4.0.0",
53
+ "typescript": "^5.4.0",
54
+ "zod": "^4.3.6"
55
+ },
56
+ "devDependencies": {
57
+ "@types/node": "^22.0.0",
58
+ "@types/picomatch": "^3.0.0",
59
+ "tsx": "^4.21.0",
60
+ "vitest": "^2.0.0"
61
+ }
62
+ }