docgen-ai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +101 -0
  2. package/dist/ai/reasoner.d.ts +47 -0
  3. package/dist/ai/reasoner.d.ts.map +1 -0
  4. package/dist/ai/reasoner.js +235 -0
  5. package/dist/ai/reasoner.js.map +1 -0
  6. package/dist/cli/commands.d.ts +20 -0
  7. package/dist/cli/commands.d.ts.map +1 -0
  8. package/dist/cli/commands.js +344 -0
  9. package/dist/cli/commands.js.map +1 -0
  10. package/dist/config/loader.d.ts +11 -0
  11. package/dist/config/loader.d.ts.map +1 -0
  12. package/dist/config/loader.js +141 -0
  13. package/dist/config/loader.js.map +1 -0
  14. package/dist/core/analyzers/project.d.ts +8 -0
  15. package/dist/core/analyzers/project.d.ts.map +1 -0
  16. package/dist/core/analyzers/project.js +303 -0
  17. package/dist/core/analyzers/project.js.map +1 -0
  18. package/dist/core/cache/file-cache.d.ts +26 -0
  19. package/dist/core/cache/file-cache.d.ts.map +1 -0
  20. package/dist/core/cache/file-cache.js +110 -0
  21. package/dist/core/cache/file-cache.js.map +1 -0
  22. package/dist/core/generators/api.d.ts +11 -0
  23. package/dist/core/generators/api.d.ts.map +1 -0
  24. package/dist/core/generators/api.js +105 -0
  25. package/dist/core/generators/api.js.map +1 -0
  26. package/dist/core/generators/architecture.d.ts +17 -0
  27. package/dist/core/generators/architecture.d.ts.map +1 -0
  28. package/dist/core/generators/architecture.js +180 -0
  29. package/dist/core/generators/architecture.js.map +1 -0
  30. package/dist/core/generators/functions.d.ts +11 -0
  31. package/dist/core/generators/functions.d.ts.map +1 -0
  32. package/dist/core/generators/functions.js +151 -0
  33. package/dist/core/generators/functions.js.map +1 -0
  34. package/dist/core/generators/integrations.d.ts +8 -0
  35. package/dist/core/generators/integrations.d.ts.map +1 -0
  36. package/dist/core/generators/integrations.js +53 -0
  37. package/dist/core/generators/integrations.js.map +1 -0
  38. package/dist/core/generators/modules.d.ts +11 -0
  39. package/dist/core/generators/modules.d.ts.map +1 -0
  40. package/dist/core/generators/modules.js +148 -0
  41. package/dist/core/generators/modules.js.map +1 -0
  42. package/dist/core/generators/readme.d.ts +25 -0
  43. package/dist/core/generators/readme.d.ts.map +1 -0
  44. package/dist/core/generators/readme.js +193 -0
  45. package/dist/core/generators/readme.js.map +1 -0
  46. package/dist/core/generators/registry.d.ts +26 -0
  47. package/dist/core/generators/registry.d.ts.map +1 -0
  48. package/dist/core/generators/registry.js +90 -0
  49. package/dist/core/generators/registry.js.map +1 -0
  50. package/dist/core/generators/setup.d.ts +8 -0
  51. package/dist/core/generators/setup.d.ts.map +1 -0
  52. package/dist/core/generators/setup.js +73 -0
  53. package/dist/core/generators/setup.js.map +1 -0
  54. package/dist/core/parsers/javascript.d.ts +12 -0
  55. package/dist/core/parsers/javascript.d.ts.map +1 -0
  56. package/dist/core/parsers/javascript.js +389 -0
  57. package/dist/core/parsers/javascript.js.map +1 -0
  58. package/dist/core/parsers/python-regex.d.ts +11 -0
  59. package/dist/core/parsers/python-regex.d.ts.map +1 -0
  60. package/dist/core/parsers/python-regex.js +337 -0
  61. package/dist/core/parsers/python-regex.js.map +1 -0
  62. package/dist/core/parsers/python.d.ts +37 -0
  63. package/dist/core/parsers/python.d.ts.map +1 -0
  64. package/dist/core/parsers/python.js +584 -0
  65. package/dist/core/parsers/python.js.map +1 -0
  66. package/dist/core/parsers/registry.d.ts +15 -0
  67. package/dist/core/parsers/registry.d.ts.map +1 -0
  68. package/dist/core/parsers/registry.js +56 -0
  69. package/dist/core/parsers/registry.js.map +1 -0
  70. package/dist/core/pipeline.d.ts +18 -0
  71. package/dist/core/pipeline.d.ts.map +1 -0
  72. package/dist/core/pipeline.js +96 -0
  73. package/dist/core/pipeline.js.map +1 -0
  74. package/dist/index.d.ts +21 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +49 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/types/definitions.d.ts +220 -0
  79. package/dist/types/definitions.d.ts.map +1 -0
  80. package/dist/types/definitions.js +10 -0
  81. package/dist/types/definitions.js.map +1 -0
  82. package/dist/utils/helpers.d.ts +22 -0
  83. package/dist/utils/helpers.d.ts.map +1 -0
  84. package/dist/utils/helpers.js +176 -0
  85. package/dist/utils/helpers.js.map +1 -0
  86. package/dist/utils/logger.d.ts +28 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +109 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/package.json +88 -0
@@ -0,0 +1,344 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * ============================================================================
5
+ * DOCGEN CLI
6
+ * ============================================================================
7
+ *
8
+ * Command-line interface for the documentation platform.
9
+ *
10
+ * COMMANDS:
11
+ * docgen init Create config file in current project
12
+ * docgen analyze Analyze project and print report
13
+ * docgen generate Full pipeline: analyze + generate docs
14
+ * docgen watch Watch for changes and regenerate
15
+ * docgen serve Start local documentation server
16
+ *
17
+ * DESIGN: We use Commander.js for CLI parsing. Each command maps
18
+ * to a handler function that calls the core pipeline.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ const commander_1 = require("commander");
55
+ const path = __importStar(require("path"));
56
+ const fs = __importStar(require("fs"));
57
+ const loader_1 = require("../config/loader");
58
+ const pipeline_1 = require("../core/pipeline");
59
+ const logger_1 = require("../utils/logger");
60
+ const program = new commander_1.Command();
61
+ program
62
+ .name('docgen')
63
+ .description('🔍 Autonomous Codebase Documentation Platform')
64
+ .version('1.0.0');
65
+ // ─── INIT COMMAND ────────────────────────────────────────────────────────────
66
+ program
67
+ .command('init')
68
+ .description('Initialize docgen in current project')
69
+ .option('-d, --dir <path>', 'Project directory', '.')
70
+ .action(async (options) => {
71
+ const projectRoot = path.resolve(options.dir);
72
+ console.log('\n🔧 Initializing docgen...\n');
73
+ // Create config file
74
+ const configPath = (0, loader_1.generateConfigFile)(projectRoot);
75
+ console.log(`✓ Created config file: ${configPath}`);
76
+ // Create docs directory
77
+ const docsDir = path.join(projectRoot, 'docs');
78
+ fs.mkdirSync(docsDir, { recursive: true });
79
+ console.log(`✓ Created docs directory: ${docsDir}`);
80
+ // Create .gitignore entry for cache
81
+ const gitignorePath = path.join(projectRoot, '.gitignore');
82
+ if (fs.existsSync(gitignorePath)) {
83
+ const content = fs.readFileSync(gitignorePath, 'utf-8');
84
+ if (!content.includes('.docgen-cache')) {
85
+ fs.appendFileSync(gitignorePath, '\n# Docgen cache\n.docgen-cache/\n');
86
+ console.log('✓ Added .docgen-cache to .gitignore');
87
+ }
88
+ }
89
+ console.log('\n✅ docgen initialized! Run `docgen generate` to create documentation.\n');
90
+ console.log('Tip: Set ANTHROPIC_API_KEY for AI-powered summaries.\n');
91
+ });
92
+ // ─── ANALYZE COMMAND ─────────────────────────────────────────────────────────
93
+ program
94
+ .command('analyze [dir]')
95
+ .description('Analyze a codebase and print report')
96
+ .option('-v, --verbose', 'Verbose output', false)
97
+ .action(async (dir, options) => {
98
+ const projectRoot = path.resolve(dir || '.');
99
+ if (options.verbose)
100
+ logger_1.logger.setLevel('debug');
101
+ console.log(`\n🔍 Analyzing ${projectRoot}...\n`);
102
+ const config = (0, loader_1.loadConfig)(projectRoot, {
103
+ ai: { enabled: false, provider: '', model: '', maxTokens: 0, temperature: 0 },
104
+ });
105
+ const analysis = await (0, pipeline_1.runAnalysisOnly)(config);
106
+ // Print report
107
+ console.log('\n══════════════════════════════════════════');
108
+ console.log(' ANALYSIS REPORT');
109
+ console.log('══════════════════════════════════════════\n');
110
+ console.log(`Project: ${analysis.name} ${analysis.version || ''}`);
111
+ console.log(`Files: ${analysis.files.length}`);
112
+ console.log(`Modules: ${analysis.modules.length}`);
113
+ console.log(`Endpoints: ${analysis.apiEndpoints.length}`);
114
+ console.log(`Duration: ${analysis.analysisDuration}ms\n`);
115
+ // Languages
116
+ console.log('Languages:');
117
+ for (const lang of analysis.languages) {
118
+ const bar = '█'.repeat(Math.round(lang.percentage / 5));
119
+ console.log(` ${lang.language.padEnd(12)} ${bar} ${lang.percentage}% (${lang.fileCount} files)`);
120
+ }
121
+ console.log('');
122
+ // Frameworks
123
+ if (analysis.frameworks.length > 0) {
124
+ console.log('Frameworks:');
125
+ for (const fw of analysis.frameworks) {
126
+ console.log(` ✓ ${fw.framework} (${(fw.confidence * 100).toFixed(0)}% confidence)`);
127
+ }
128
+ console.log('');
129
+ }
130
+ // Modules
131
+ console.log('Modules:');
132
+ for (const mod of analysis.modules.slice(0, 15)) {
133
+ const role = mod.role ? ` [${mod.role}]` : '';
134
+ console.log(` ${mod.name.padEnd(25)} ${mod.files.length} files${role}`);
135
+ }
136
+ if (analysis.modules.length > 15) {
137
+ console.log(` ... and ${analysis.modules.length - 15} more`);
138
+ }
139
+ console.log('');
140
+ // API Endpoints
141
+ if (analysis.apiEndpoints.length > 0) {
142
+ console.log('API Endpoints:');
143
+ for (const ep of analysis.apiEndpoints.slice(0, 10)) {
144
+ const auth = ep.requiresAuth ? ' 🔒' : '';
145
+ console.log(` ${ep.method.padEnd(7)} ${ep.path}${auth}`);
146
+ }
147
+ if (analysis.apiEndpoints.length > 10) {
148
+ console.log(` ... and ${analysis.apiEndpoints.length - 10} more`);
149
+ }
150
+ console.log('');
151
+ }
152
+ // Errors
153
+ if (analysis.errors.length > 0) {
154
+ console.log(`⚠️ ${analysis.errors.length} parse errors (use --verbose to see details)`);
155
+ }
156
+ console.log('══════════════════════════════════════════\n');
157
+ });
158
+ // ─── GENERATE COMMAND ────────────────────────────────────────────────────────
159
+ program
160
+ .command('generate [dir]')
161
+ .description('Generate documentation for a project')
162
+ .option('-o, --output <dir>', 'Output directory', 'docs')
163
+ .option('--no-ai', 'Disable AI summaries')
164
+ .option('--only <generators>', 'Comma-separated list of generators to run')
165
+ .option('-v, --verbose', 'Verbose output', false)
166
+ .action(async (dir, options) => {
167
+ const projectRoot = path.resolve(dir || '.');
168
+ if (options.verbose)
169
+ logger_1.logger.setLevel('debug');
170
+ const overrides = {
171
+ outputDir: options.output,
172
+ };
173
+ if (options.ai === false) {
174
+ overrides.ai = { enabled: false, provider: '', model: '', maxTokens: 0, temperature: 0 };
175
+ }
176
+ if (options.only) {
177
+ overrides.generators = options.only.split(',').map((g) => g.trim());
178
+ }
179
+ const config = (0, loader_1.loadConfig)(projectRoot, overrides);
180
+ const result = await (0, pipeline_1.runPipeline)(config);
181
+ if (result.errors.length > 0) {
182
+ console.log(`\n⚠️ ${result.errors.length} errors occurred during generation.`);
183
+ }
184
+ });
185
+ // ─── WATCH COMMAND ───────────────────────────────────────────────────────────
186
+ program
187
+ .command('watch [dir]')
188
+ .description('Watch for changes and regenerate documentation')
189
+ .option('-o, --output <dir>', 'Output directory', 'docs')
190
+ .option('--no-ai', 'Disable AI summaries')
191
+ .action(async (dir, options) => {
192
+ const projectRoot = path.resolve(dir || '.');
193
+ console.log(`\n👀 Watching ${projectRoot} for changes...\n`);
194
+ console.log('Press Ctrl+C to stop.\n');
195
+ const overrides = { outputDir: options.output };
196
+ if (options.ai === false) {
197
+ overrides.ai = { enabled: false, provider: '', model: '', maxTokens: 0, temperature: 0 };
198
+ }
199
+ const config = (0, loader_1.loadConfig)(projectRoot, overrides);
200
+ // Initial generation
201
+ await (0, pipeline_1.runPipeline)(config);
202
+ // Watch for changes using polling (chokidar would be better but
203
+ // this avoids the dependency for the minimal viable version)
204
+ let debounceTimer = null;
205
+ const watchDirs = ['src', 'lib', 'app', 'routes', 'api'].map(d => path.join(projectRoot, d)).filter(d => fs.existsSync(d));
206
+ if (watchDirs.length === 0) {
207
+ watchDirs.push(projectRoot);
208
+ }
209
+ // Simple polling watcher
210
+ const seen = new Map();
211
+ const check = () => {
212
+ let changed = false;
213
+ for (const watchDir of watchDirs) {
214
+ try {
215
+ walkDir(watchDir, (filePath) => {
216
+ const stat = fs.statSync(filePath);
217
+ const prev = seen.get(filePath);
218
+ if (prev !== stat.mtimeMs) {
219
+ seen.set(filePath, stat.mtimeMs);
220
+ if (prev !== undefined)
221
+ changed = true;
222
+ }
223
+ });
224
+ }
225
+ catch { }
226
+ }
227
+ if (changed) {
228
+ if (debounceTimer)
229
+ clearTimeout(debounceTimer);
230
+ debounceTimer = setTimeout(async () => {
231
+ console.log('\n🔄 Changes detected, regenerating...\n');
232
+ try {
233
+ await (0, pipeline_1.runPipeline)(config);
234
+ }
235
+ catch (err) {
236
+ console.error(`Error: ${err.message}`);
237
+ }
238
+ }, 1000);
239
+ }
240
+ };
241
+ // Initial scan
242
+ check();
243
+ // Poll every 2 seconds
244
+ setInterval(check, 2000);
245
+ });
246
+ // ─── SERVE COMMAND ───────────────────────────────────────────────────────────
247
+ program
248
+ .command('serve [dir]')
249
+ .description('Start local documentation server')
250
+ .option('-p, --port <port>', 'Port number', '3333')
251
+ .action(async (dir, options) => {
252
+ const projectRoot = path.resolve(dir || '.');
253
+ const docsDir = path.join(projectRoot, 'docs');
254
+ if (!fs.existsSync(docsDir)) {
255
+ console.log('No docs directory found. Run `docgen generate` first.');
256
+ process.exit(1);
257
+ }
258
+ const port = parseInt(options.port, 10);
259
+ console.log(`\n🌐 Starting documentation server...`);
260
+ console.log(` http://localhost:${port}\n`);
261
+ // Dynamically import express to avoid failure when not installed
262
+ try {
263
+ const express = require('express');
264
+ const { marked } = require('marked');
265
+ const app = express();
266
+ // Serve markdown files as HTML
267
+ app.get('*', (req, res) => {
268
+ let reqPath = req.path === '/' ? '/index.md' : req.path;
269
+ if (!reqPath.endsWith('.md'))
270
+ reqPath += '.md';
271
+ const filePath = path.join(docsDir, reqPath);
272
+ if (!fs.existsSync(filePath)) {
273
+ // Try README
274
+ const readmePath = path.join(projectRoot, 'README.md');
275
+ if (req.path === '/' && fs.existsSync(readmePath)) {
276
+ const md = fs.readFileSync(readmePath, 'utf-8');
277
+ return res.send(wrapHTML(marked(md), 'Home'));
278
+ }
279
+ return res.status(404).send(wrapHTML('<h1>404 — Not Found</h1>', '404'));
280
+ }
281
+ const md = fs.readFileSync(filePath, 'utf-8');
282
+ res.send(wrapHTML(marked(md), path.basename(filePath, '.md')));
283
+ });
284
+ app.listen(port);
285
+ }
286
+ catch {
287
+ console.log('Express not installed. Install it with: npm install express marked');
288
+ }
289
+ });
290
+ // ─── Parse and Execute ───────────────────────────────────────────────────────
291
+ program.parse(process.argv);
292
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
293
+ function walkDir(dir, callback) {
294
+ const excludes = new Set(['node_modules', '.git', 'dist', 'build', '.docgen-cache']);
295
+ try {
296
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
297
+ if (excludes.has(entry.name) || entry.name.startsWith('.'))
298
+ continue;
299
+ const full = path.join(dir, entry.name);
300
+ if (entry.isDirectory())
301
+ walkDir(full, callback);
302
+ else if (entry.isFile())
303
+ callback(full);
304
+ }
305
+ }
306
+ catch { }
307
+ }
308
+ function wrapHTML(body, title) {
309
+ return `<!DOCTYPE html>
310
+ <html lang="en">
311
+ <head>
312
+ <meta charset="UTF-8">
313
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
314
+ <title>${title} — Docgen</title>
315
+ <style>
316
+ :root { --bg: #0d1117; --fg: #c9d1d9; --accent: #58a6ff; --border: #30363d; --code-bg: #161b22; }
317
+ * { box-sizing: border-box; margin: 0; padding: 0; }
318
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--fg); line-height: 1.6; max-width: 900px; margin: 0 auto; padding: 2rem; }
319
+ h1, h2, h3 { color: #f0f6fc; margin: 1.5em 0 0.5em; }
320
+ h1 { border-bottom: 1px solid var(--border); padding-bottom: 0.3em; }
321
+ a { color: var(--accent); text-decoration: none; }
322
+ a:hover { text-decoration: underline; }
323
+ code { background: var(--code-bg); padding: 0.2em 0.4em; border-radius: 4px; font-size: 0.9em; }
324
+ pre { background: var(--code-bg); padding: 1em; border-radius: 8px; overflow-x: auto; margin: 1em 0; }
325
+ pre code { background: none; padding: 0; }
326
+ table { border-collapse: collapse; width: 100%; margin: 1em 0; }
327
+ th, td { border: 1px solid var(--border); padding: 0.5em 1em; text-align: left; }
328
+ th { background: var(--code-bg); }
329
+ blockquote { border-left: 3px solid var(--accent); padding-left: 1em; margin: 1em 0; color: #8b949e; }
330
+ hr { border: none; border-top: 1px solid var(--border); margin: 2em 0; }
331
+ .header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); padding-bottom: 1em; margin-bottom: 2em; }
332
+ .header a { margin-left: 1em; }
333
+ </style>
334
+ </head>
335
+ <body>
336
+ <div class="header">
337
+ <strong>📖 Docgen</strong>
338
+ <nav><a href="/">Home</a><a href="/architecture">Architecture</a><a href="/modules/">Modules</a><a href="/api/endpoints">API</a><a href="/setup">Setup</a></nav>
339
+ </div>
340
+ ${body}
341
+ </body>
342
+ </html>`;
343
+ }
344
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ============================================================================
3
+ * CONFIGURATION SYSTEM
4
+ * ============================================================================
5
+ * Resolution order: defaults → config file → env vars → CLI overrides
6
+ */
7
+ import { DocgenConfig } from '../types/definitions';
8
+ export declare const DEFAULT_CONFIG: DocgenConfig;
9
+ export declare function loadConfig(projectRoot: string, overrides?: Partial<DocgenConfig>): DocgenConfig;
10
+ export declare function generateConfigFile(projectRoot: string): string;
11
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAEnE,eAAO,MAAM,cAAc,EAAE,YA+B5B,CAAC;AAEF,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CA2C/F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAW9D"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /**
3
+ * ============================================================================
4
+ * CONFIGURATION SYSTEM
5
+ * ============================================================================
6
+ * Resolution order: defaults → config file → env vars → CLI overrides
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.DEFAULT_CONFIG = void 0;
43
+ exports.loadConfig = loadConfig;
44
+ exports.generateConfigFile = generateConfigFile;
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ exports.DEFAULT_CONFIG = {
48
+ projectRoot: process.cwd(),
49
+ outputDir: 'docs',
50
+ include: [
51
+ 'src/**/*.{ts,tsx,js,jsx}',
52
+ 'lib/**/*.{ts,tsx,js,jsx}',
53
+ 'app/**/*.{ts,tsx,js,jsx}',
54
+ '**/*.py',
55
+ ],
56
+ exclude: [
57
+ 'node_modules/**', 'dist/**', 'build/**', '.git/**',
58
+ '__pycache__/**', '*.min.js', '*.bundle.js', 'coverage/**',
59
+ '.next/**', '.venv/**', 'venv/**',
60
+ ],
61
+ generators: ['all'],
62
+ ai: {
63
+ enabled: true,
64
+ provider: 'anthropic',
65
+ model: 'claude-sonnet-4-20250514',
66
+ maxTokens: 2048,
67
+ temperature: 0.3,
68
+ },
69
+ cache: {
70
+ enabled: true,
71
+ directory: '.docgen-cache',
72
+ ttl: 86400,
73
+ },
74
+ logLevel: 'info',
75
+ insertInlineDoc: false,
76
+ overwriteExistingDocs: false,
77
+ concurrency: 4,
78
+ };
79
+ function loadConfig(projectRoot, overrides) {
80
+ const config = { ...exports.DEFAULT_CONFIG, projectRoot };
81
+ // Try config file
82
+ const configPaths = [
83
+ path.join(projectRoot, 'docgen.config.json'),
84
+ path.join(projectRoot, '.docgenrc.json'),
85
+ path.join(projectRoot, '.docgenrc'),
86
+ ];
87
+ for (const cp of configPaths) {
88
+ if (fs.existsSync(cp)) {
89
+ try {
90
+ const fileConfig = JSON.parse(fs.readFileSync(cp, 'utf-8'));
91
+ Object.assign(config, fileConfig);
92
+ if (fileConfig.ai)
93
+ config.ai = { ...config.ai, ...fileConfig.ai };
94
+ if (fileConfig.cache)
95
+ config.cache = { ...config.cache, ...fileConfig.cache };
96
+ break;
97
+ }
98
+ catch { }
99
+ }
100
+ }
101
+ // Env var overrides
102
+ if (process.env.DOCGEN_AI_KEY)
103
+ config.ai.apiKey = process.env.DOCGEN_AI_KEY;
104
+ if (process.env.ANTHROPIC_API_KEY && !config.ai.apiKey)
105
+ config.ai.apiKey = process.env.ANTHROPIC_API_KEY;
106
+ if (process.env.DOCGEN_AI_PROVIDER)
107
+ config.ai.provider = process.env.DOCGEN_AI_PROVIDER;
108
+ if (process.env.DOCGEN_AI_MODEL)
109
+ config.ai.model = process.env.DOCGEN_AI_MODEL;
110
+ if (process.env.DOCGEN_OUTPUT_DIR)
111
+ config.outputDir = process.env.DOCGEN_OUTPUT_DIR;
112
+ if (process.env.DOCGEN_LOG_LEVEL)
113
+ config.logLevel = process.env.DOCGEN_LOG_LEVEL;
114
+ // Programmatic overrides (CLI flags)
115
+ if (overrides) {
116
+ if (overrides.ai)
117
+ config.ai = { ...config.ai, ...overrides.ai };
118
+ if (overrides.cache)
119
+ config.cache = { ...config.cache, ...overrides.cache };
120
+ const { ai: _a, cache: _c, ...rest } = overrides;
121
+ Object.assign(config, rest);
122
+ }
123
+ // Resolve 'all' generator
124
+ if (config.generators.includes('all')) {
125
+ config.generators = ['readme', 'architecture', 'modules', 'api', 'functions', 'integrations', 'setup'];
126
+ }
127
+ return config;
128
+ }
129
+ function generateConfigFile(projectRoot) {
130
+ const configPath = path.join(projectRoot, 'docgen.config.json');
131
+ const starterConfig = {
132
+ outputDir: 'docs',
133
+ generators: ['all'],
134
+ ai: { enabled: true, provider: 'anthropic', model: 'claude-sonnet-4-20250514' },
135
+ cache: { enabled: true },
136
+ insertInlineDoc: false,
137
+ };
138
+ fs.writeFileSync(configPath, JSON.stringify(starterConfig, null, 2));
139
+ return configPath;
140
+ }
141
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,gCA2CC;AAED,gDAWC;AA7FD,uCAAyB;AACzB,2CAA6B;AAGhB,QAAA,cAAc,GAAiB;IAC1C,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;IAC1B,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE;QACP,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,SAAS;KACV;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;QACnD,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa;QAC1D,UAAU,EAAE,UAAU,EAAE,SAAS;KAClC;IACD,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,EAAE,EAAE;QACF,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,GAAG;KACjB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,eAAe;QAC1B,GAAG,EAAE,KAAK;KACX;IACD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE,KAAK;IACtB,qBAAqB,EAAE,KAAK;IAC5B,WAAW,EAAE,CAAC;CACf,CAAC;AAEF,SAAgB,UAAU,CAAC,WAAmB,EAAE,SAAiC;IAC/E,MAAM,MAAM,GAAiB,EAAE,GAAG,sBAAc,EAAE,WAAW,EAAE,CAAC;IAEhE,kBAAkB;IAClB,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;KACpC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAClC,IAAI,UAAU,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC;gBAClE,IAAI,UAAU,CAAC,KAAK;oBAAE,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC9E,MAAM;YACR,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzG,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxF,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC/E,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACpF,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAA4C,CAAC;IAE7G,qCAAqC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;QAChE,IAAI,SAAS,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5E,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACzG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE;QAC/E,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxB,eAAe,EAAE,KAAK;KACvB,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ============================================================================
3
+ * PROJECT ANALYZER — Orchestrates parsing, module detection, dep graph
4
+ * ============================================================================
5
+ */
6
+ import { ProjectAnalysis, DocgenConfig } from '../../types/definitions';
7
+ export declare function analyzeProject(config: DocgenConfig): Promise<ProjectAnalysis>;
8
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/core/analyzers/project.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EAC6C,YAAY,EACzE,MAAM,yBAAyB,CAAC;AAQjC,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CA0EnF"}