@memberjunction/db-auto-doc 3.3.0 → 4.0.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 (162) hide show
  1. package/bin/run.js +4 -7
  2. package/dist/ai/simple-ai-client.d.ts +70 -0
  3. package/dist/ai/simple-ai-client.d.ts.map +1 -0
  4. package/dist/ai/simple-ai-client.js +181 -0
  5. package/dist/ai/simple-ai-client.js.map +1 -0
  6. package/dist/analyzers/analyzer.d.ts +23 -0
  7. package/dist/analyzers/analyzer.d.ts.map +1 -0
  8. package/dist/analyzers/analyzer.js +127 -0
  9. package/dist/analyzers/analyzer.js.map +1 -0
  10. package/dist/api/DBAutoDocAPI.js +14 -41
  11. package/dist/api/DBAutoDocAPI.js.map +1 -1
  12. package/dist/api/index.js +1 -5
  13. package/dist/api/index.js.map +1 -1
  14. package/dist/cli-old/cli.d.ts +3 -0
  15. package/dist/cli-old/cli.d.ts.map +1 -0
  16. package/dist/cli-old/cli.js +388 -0
  17. package/dist/cli-old/cli.js.map +1 -0
  18. package/dist/commands/analyze.d.ts +1 -1
  19. package/dist/commands/analyze.js +30 -36
  20. package/dist/commands/analyze.js.map +1 -1
  21. package/dist/commands/export-sample-queries.d.ts +1 -1
  22. package/dist/commands/export-sample-queries.js +65 -94
  23. package/dist/commands/export-sample-queries.js.map +1 -1
  24. package/dist/commands/export.d.ts +2 -2
  25. package/dist/commands/export.js +49 -78
  26. package/dist/commands/export.js.map +1 -1
  27. package/dist/commands/generate-queries.d.ts +2 -2
  28. package/dist/commands/generate-queries.js +44 -73
  29. package/dist/commands/generate-queries.js.map +1 -1
  30. package/dist/commands/init.js +21 -27
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/reset.js +16 -22
  33. package/dist/commands/reset.js.map +1 -1
  34. package/dist/commands/review.d.ts +11 -0
  35. package/dist/commands/review.d.ts.map +1 -0
  36. package/dist/commands/review.js +82 -0
  37. package/dist/commands/review.js.map +1 -0
  38. package/dist/commands/status.js +16 -22
  39. package/dist/commands/status.js.map +1 -1
  40. package/dist/core/AnalysisEngine.js +7 -11
  41. package/dist/core/AnalysisEngine.js.map +1 -1
  42. package/dist/core/AnalysisOrchestrator.js +27 -54
  43. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  44. package/dist/core/BackpropagationEngine.js +1 -5
  45. package/dist/core/BackpropagationEngine.js.map +1 -1
  46. package/dist/core/ConvergenceDetector.js +1 -5
  47. package/dist/core/ConvergenceDetector.js.map +1 -1
  48. package/dist/core/GuardrailsManager.js +1 -5
  49. package/dist/core/GuardrailsManager.js.map +1 -1
  50. package/dist/core/index.js +3 -9
  51. package/dist/core/index.js.map +1 -1
  52. package/dist/database/Database.js +10 -17
  53. package/dist/database/Database.js.map +1 -1
  54. package/dist/database/TopologicalSorter.js +1 -5
  55. package/dist/database/TopologicalSorter.js.map +1 -1
  56. package/dist/database/connection.d.ts +40 -0
  57. package/dist/database/connection.d.ts.map +1 -0
  58. package/dist/database/connection.js +136 -0
  59. package/dist/database/connection.js.map +1 -0
  60. package/dist/database/index.js +2 -10
  61. package/dist/database/index.js.map +1 -1
  62. package/dist/database/introspection.d.ts +59 -0
  63. package/dist/database/introspection.d.ts.map +1 -0
  64. package/dist/database/introspection.js +124 -0
  65. package/dist/database/introspection.js.map +1 -0
  66. package/dist/discovery/ColumnStatsCache.js +1 -5
  67. package/dist/discovery/ColumnStatsCache.js.map +1 -1
  68. package/dist/discovery/DiscoveryEngine.js +11 -15
  69. package/dist/discovery/DiscoveryEngine.js.map +1 -1
  70. package/dist/discovery/DiscoveryTriggerAnalyzer.js +1 -5
  71. package/dist/discovery/DiscoveryTriggerAnalyzer.js.map +1 -1
  72. package/dist/discovery/FKDetector.js +1 -5
  73. package/dist/discovery/FKDetector.js.map +1 -1
  74. package/dist/discovery/LLMDiscoveryValidator.js +4 -8
  75. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
  76. package/dist/discovery/LLMSanityChecker.js +3 -7
  77. package/dist/discovery/LLMSanityChecker.js.map +1 -1
  78. package/dist/discovery/PKDetector.js +1 -5
  79. package/dist/discovery/PKDetector.js.map +1 -1
  80. package/dist/discovery/index.js +4 -20
  81. package/dist/discovery/index.js.map +1 -1
  82. package/dist/drivers/BaseAutoDocDriver.js +1 -5
  83. package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
  84. package/dist/drivers/MySQLDriver.js +8 -14
  85. package/dist/drivers/MySQLDriver.js.map +1 -1
  86. package/dist/drivers/PostgreSQLDriver.js +8 -11
  87. package/dist/drivers/PostgreSQLDriver.js.map +1 -1
  88. package/dist/drivers/SQLServerDriver.js +7 -33
  89. package/dist/drivers/SQLServerDriver.js.map +1 -1
  90. package/dist/generators/CSVGenerator.js +1 -5
  91. package/dist/generators/CSVGenerator.js.map +1 -1
  92. package/dist/generators/HTMLGenerator.js +1 -5
  93. package/dist/generators/HTMLGenerator.js.map +1 -1
  94. package/dist/generators/MarkdownGenerator.js +1 -5
  95. package/dist/generators/MarkdownGenerator.js.map +1 -1
  96. package/dist/generators/MermaidGenerator.js +1 -5
  97. package/dist/generators/MermaidGenerator.js.map +1 -1
  98. package/dist/generators/ReportGenerator.js +1 -5
  99. package/dist/generators/ReportGenerator.js.map +1 -1
  100. package/dist/generators/SQLGenerator.js +1 -5
  101. package/dist/generators/SQLGenerator.js.map +1 -1
  102. package/dist/generators/SampleQueryGenerator.d.ts +1 -1
  103. package/dist/generators/SampleQueryGenerator.d.ts.map +1 -1
  104. package/dist/generators/SampleQueryGenerator.js +36 -40
  105. package/dist/generators/SampleQueryGenerator.js.map +1 -1
  106. package/dist/generators/index.js +6 -15
  107. package/dist/generators/index.js.map +1 -1
  108. package/dist/generators/markdown-generator.d.ts +8 -0
  109. package/dist/generators/markdown-generator.d.ts.map +1 -0
  110. package/dist/generators/markdown-generator.js +106 -0
  111. package/dist/generators/markdown-generator.js.map +1 -0
  112. package/dist/generators/sql-generator.d.ts +20 -0
  113. package/dist/generators/sql-generator.d.ts.map +1 -0
  114. package/dist/generators/sql-generator.js +83 -0
  115. package/dist/generators/sql-generator.js.map +1 -0
  116. package/dist/index.js +9 -25
  117. package/dist/index.js.map +1 -1
  118. package/dist/prompts/PromptEngine.js +6 -33
  119. package/dist/prompts/PromptEngine.js.map +1 -1
  120. package/dist/prompts/PromptFileLoader.js +4 -31
  121. package/dist/prompts/PromptFileLoader.js.map +1 -1
  122. package/dist/prompts/index.js +2 -7
  123. package/dist/prompts/index.js.map +1 -1
  124. package/dist/state/IterationTracker.js +1 -5
  125. package/dist/state/IterationTracker.js.map +1 -1
  126. package/dist/state/StateManager.js +3 -30
  127. package/dist/state/StateManager.js.map +1 -1
  128. package/dist/state/StateValidator.js +1 -5
  129. package/dist/state/StateValidator.js.map +1 -1
  130. package/dist/state/index.js +3 -9
  131. package/dist/state/index.js.map +1 -1
  132. package/dist/state/state-manager.d.ts +95 -0
  133. package/dist/state/state-manager.d.ts.map +1 -0
  134. package/dist/state/state-manager.js +236 -0
  135. package/dist/state/state-manager.js.map +1 -0
  136. package/dist/types/analysis.js +1 -2
  137. package/dist/types/analysis.js.map +1 -1
  138. package/dist/types/config.js +1 -2
  139. package/dist/types/config.js.map +1 -1
  140. package/dist/types/discovery.js +1 -2
  141. package/dist/types/discovery.js.map +1 -1
  142. package/dist/types/driver.js +1 -2
  143. package/dist/types/driver.js.map +1 -1
  144. package/dist/types/index.js +4 -20
  145. package/dist/types/index.js.map +1 -1
  146. package/dist/types/prompts.js +1 -2
  147. package/dist/types/prompts.js.map +1 -1
  148. package/dist/types/sample-queries.js +1 -2
  149. package/dist/types/sample-queries.js.map +1 -1
  150. package/dist/types/state-file.d.ts +124 -0
  151. package/dist/types/state-file.d.ts.map +1 -0
  152. package/dist/types/state-file.js +79 -0
  153. package/dist/types/state-file.js.map +1 -0
  154. package/dist/types/state.js +1 -2
  155. package/dist/types/state.js.map +1 -1
  156. package/dist/utils/config-loader.js +3 -30
  157. package/dist/utils/config-loader.js.map +1 -1
  158. package/dist/utils/index.js +1 -5
  159. package/dist/utils/index.js.map +1 -1
  160. package/dist/utils/llm-factory.js +6 -12
  161. package/dist/utils/llm-factory.js.map +1 -1
  162. package/package.json +24 -23
@@ -0,0 +1,388 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ const commander_1 = require("commander");
31
+ const inquirer_1 = __importDefault(require("inquirer"));
32
+ const chalk_1 = __importDefault(require("chalk"));
33
+ const ora_1 = __importDefault(require("ora"));
34
+ const fs = __importStar(require("fs/promises"));
35
+ const path = __importStar(require("path"));
36
+ const dotenv = __importStar(require("dotenv"));
37
+ const connection_1 = require("../database/connection.js");
38
+ const state_manager_1 = require("../state/state-manager.js");
39
+ const simple_ai_client_1 = require("../ai/simple-ai-client.js");
40
+ const analyzer_1 = require("../analyzers/analyzer.js");
41
+ const sql_generator_1 = require("../generators/sql-generator.js");
42
+ const markdown_generator_1 = require("../generators/markdown-generator.js");
43
+ dotenv.config();
44
+ const program = new commander_1.Command();
45
+ program
46
+ .name('sqlserver-doc')
47
+ .description('AI-powered SQL Server database documentation generator')
48
+ .version('1.0.0');
49
+ /**
50
+ * INIT command - initialize new project
51
+ */
52
+ program
53
+ .command('init')
54
+ .description('Initialize new documentation project')
55
+ .option('--interactive', 'Interactive setup', true)
56
+ .action(async (options) => {
57
+ console.log(chalk_1.default.blue.bold('\n🚀 SQL Server Documentation Generator\n'));
58
+ try {
59
+ let server;
60
+ let database;
61
+ let user;
62
+ let password;
63
+ if (options.interactive) {
64
+ const answers = await inquirer_1.default.prompt([
65
+ {
66
+ type: 'input',
67
+ name: 'server',
68
+ message: 'Database server:',
69
+ default: 'localhost',
70
+ },
71
+ {
72
+ type: 'input',
73
+ name: 'database',
74
+ message: 'Database name:',
75
+ validate: (input) => (input ? true : 'Database name required'),
76
+ },
77
+ {
78
+ type: 'input',
79
+ name: 'user',
80
+ message: 'Username:',
81
+ default: 'sa',
82
+ },
83
+ {
84
+ type: 'password',
85
+ name: 'password',
86
+ message: 'Password:',
87
+ mask: '*',
88
+ },
89
+ ]);
90
+ server = answers.server;
91
+ database = answers.database;
92
+ user = answers.user;
93
+ password = answers.password;
94
+ }
95
+ else {
96
+ server = process.env.DB_SERVER || 'localhost';
97
+ database = process.env.DB_DATABASE || '';
98
+ user = process.env.DB_USER || 'sa';
99
+ password = process.env.DB_PASSWORD || '';
100
+ }
101
+ // Test connection
102
+ const spinner = (0, ora_1.default)('Testing database connection...').start();
103
+ const connection = new connection_1.DatabaseConnection({
104
+ server,
105
+ database,
106
+ user,
107
+ password,
108
+ encrypt: true,
109
+ trustServerCertificate: true,
110
+ });
111
+ const connected = await connection.test();
112
+ if (!connected) {
113
+ spinner.fail('Connection failed');
114
+ process.exit(1);
115
+ }
116
+ spinner.succeed('Connection successful');
117
+ // Create .env file
118
+ const envPath = path.join(process.cwd(), '.env');
119
+ const envContent = `
120
+ # Database Connection
121
+ DB_SERVER=${server}
122
+ DB_DATABASE=${database}
123
+ DB_USER=${user}
124
+ DB_PASSWORD=${password}
125
+ DB_ENCRYPT=true
126
+ DB_TRUST_SERVER_CERTIFICATE=true
127
+
128
+ # AI Configuration
129
+ AI_PROVIDER=openai
130
+ AI_MODEL=gpt-4
131
+ AI_API_KEY=your-api-key-here
132
+ `.trim();
133
+ await fs.writeFile(envPath, envContent);
134
+ console.log(chalk_1.default.green('✓ Created .env file'));
135
+ // Create state file
136
+ const stateManager = new state_manager_1.StateManager();
137
+ await stateManager.reset(server, database);
138
+ console.log(chalk_1.default.green('✓ Created db-doc-state.json'));
139
+ // Ask seed questions
140
+ if (options.interactive) {
141
+ const seedAnswers = await inquirer_1.default.prompt([
142
+ {
143
+ type: 'confirm',
144
+ name: 'addSeed',
145
+ message: 'Would you like to provide seed context?',
146
+ default: true,
147
+ },
148
+ ]);
149
+ if (seedAnswers.addSeed) {
150
+ const contextAnswers = await inquirer_1.default.prompt([
151
+ {
152
+ type: 'input',
153
+ name: 'purpose',
154
+ message: 'Overall database purpose:',
155
+ },
156
+ {
157
+ type: 'input',
158
+ name: 'domains',
159
+ message: 'Business domains (comma-separated):',
160
+ },
161
+ ]);
162
+ const state = stateManager.getState();
163
+ state.seedContext = {
164
+ overallPurpose: contextAnswers.purpose,
165
+ businessDomains: contextAnswers.domains.split(',').map((d) => d.trim()),
166
+ };
167
+ await stateManager.save();
168
+ console.log(chalk_1.default.green('✓ Saved seed context'));
169
+ }
170
+ }
171
+ console.log(chalk_1.default.green.bold('\n✅ Initialization complete!\n'));
172
+ console.log('Next steps:');
173
+ console.log(' 1. Edit .env and add your AI API key');
174
+ console.log(' 2. Run: sqlserver-doc analyze --interactive');
175
+ await connection.close();
176
+ }
177
+ catch (error) {
178
+ console.error(chalk_1.default.red('Error:'), error);
179
+ process.exit(1);
180
+ }
181
+ });
182
+ /**
183
+ * ANALYZE command - analyze database
184
+ */
185
+ program
186
+ .command('analyze')
187
+ .description('Analyze database and generate documentation')
188
+ .option('--interactive', 'Interactive mode')
189
+ .option('--incremental', 'Only process new tables')
190
+ .option('--schemas <schemas>', 'Comma-separated schema list')
191
+ .option('--batch', 'Non-interactive batch mode')
192
+ .action(async (options) => {
193
+ console.log(chalk_1.default.blue.bold('\n📊 Analyzing Database\n'));
194
+ try {
195
+ // Load environment
196
+ dotenv.config();
197
+ // Check API key
198
+ if (!process.env.AI_API_KEY || process.env.AI_API_KEY === 'your-api-key-here') {
199
+ console.error(chalk_1.default.red('Error: AI_API_KEY not set in .env file'));
200
+ process.exit(1);
201
+ }
202
+ const connection = connection_1.DatabaseConnection.fromEnv();
203
+ const stateManager = new state_manager_1.StateManager();
204
+ // Load or create state
205
+ const connected = await connection.test();
206
+ if (!connected) {
207
+ console.error(chalk_1.default.red('Error: Cannot connect to database'));
208
+ process.exit(1);
209
+ }
210
+ const state = await stateManager.load(process.env.DB_SERVER || 'localhost', process.env.DB_DATABASE || 'master');
211
+ const aiClient = new simple_ai_client_1.SimpleAIClient();
212
+ const analyzer = new analyzer_1.DatabaseAnalyzer(connection, stateManager, aiClient);
213
+ const schemas = options.schemas ? options.schemas.split(',') : undefined;
214
+ await analyzer.analyze({
215
+ schemas,
216
+ incremental: options.incremental,
217
+ interactive: options.interactive,
218
+ });
219
+ await connection.close();
220
+ console.log(chalk_1.default.green('\n✅ Analysis complete!'));
221
+ console.log('\nNext steps:');
222
+ console.log(' - Review: sqlserver-doc review');
223
+ console.log(' - Export: sqlserver-doc export --format=sql');
224
+ }
225
+ catch (error) {
226
+ console.error(chalk_1.default.red('Error:'), error);
227
+ process.exit(1);
228
+ }
229
+ });
230
+ /**
231
+ * REVIEW command - review generated documentation
232
+ */
233
+ program
234
+ .command('review')
235
+ .description('Review and approve AI-generated documentation')
236
+ .option('--schema <schema>', 'Review specific schema')
237
+ .option('--unapproved-only', 'Only show unapproved items')
238
+ .action(async (options) => {
239
+ console.log(chalk_1.default.blue.bold('\n📝 Review Documentation\n'));
240
+ try {
241
+ const stateManager = new state_manager_1.StateManager();
242
+ const state = await stateManager.load();
243
+ const unapproved = stateManager.getUnapprovedTables(options.schema);
244
+ if (unapproved.length === 0) {
245
+ console.log(chalk_1.default.green('✅ All tables approved!'));
246
+ return;
247
+ }
248
+ console.log(`Found ${unapproved.length} unapproved tables\n`);
249
+ for (const { schema, table } of unapproved) {
250
+ const schemaState = state.schemas[schema];
251
+ const tableState = schemaState.tables[table];
252
+ console.log(chalk_1.default.cyan.bold(`\n${schema}.${table}`));
253
+ console.log('─'.repeat(50));
254
+ if (tableState.aiGenerated) {
255
+ console.log(chalk_1.default.white('Description:'));
256
+ console.log(tableState.aiGenerated.description);
257
+ console.log('');
258
+ console.log(chalk_1.default.gray(`Confidence: ${(tableState.aiGenerated.confidence * 100).toFixed(0)}%`));
259
+ }
260
+ const answer = await inquirer_1.default.prompt([
261
+ {
262
+ type: 'list',
263
+ name: 'action',
264
+ message: 'Action:',
265
+ choices: [
266
+ { name: 'Approve', value: 'approve' },
267
+ { name: 'Add notes', value: 'notes' },
268
+ { name: 'Skip', value: 'skip' },
269
+ { name: 'Exit review', value: 'exit' },
270
+ ],
271
+ },
272
+ ]);
273
+ if (answer.action === 'exit') {
274
+ break;
275
+ }
276
+ if (answer.action === 'approve') {
277
+ stateManager.approveTable(schema, table);
278
+ console.log(chalk_1.default.green('✓ Approved'));
279
+ }
280
+ if (answer.action === 'notes') {
281
+ const notesAnswer = await inquirer_1.default.prompt([
282
+ {
283
+ type: 'input',
284
+ name: 'notes',
285
+ message: 'Enter notes:',
286
+ },
287
+ ]);
288
+ stateManager.addTableNotes(schema, table, notesAnswer.notes);
289
+ console.log(chalk_1.default.green('✓ Notes added'));
290
+ }
291
+ }
292
+ await stateManager.save();
293
+ console.log(chalk_1.default.green('\n✅ Review complete!'));
294
+ }
295
+ catch (error) {
296
+ console.error(chalk_1.default.red('Error:'), error);
297
+ process.exit(1);
298
+ }
299
+ });
300
+ /**
301
+ * EXPORT command - generate output files
302
+ */
303
+ program
304
+ .command('export')
305
+ .description('Generate output files')
306
+ .option('--format <format>', 'sql|markdown|all', 'all')
307
+ .option('--output <path>', 'Output directory', './docs')
308
+ .option('--approved-only', 'Only export approved items')
309
+ .option('--execute', 'Execute SQL script')
310
+ .action(async (options) => {
311
+ console.log(chalk_1.default.blue.bold('\n📤 Exporting Documentation\n'));
312
+ try {
313
+ const stateManager = new state_manager_1.StateManager();
314
+ const state = await stateManager.load();
315
+ const outputDir = options.output;
316
+ await fs.mkdir(outputDir, { recursive: true });
317
+ if (options.format === 'sql' || options.format === 'all') {
318
+ const sqlGen = new sql_generator_1.SQLGenerator();
319
+ const sql = sqlGen.generate(state, {
320
+ approvedOnly: options.approvedOnly,
321
+ });
322
+ const sqlPath = path.join(outputDir, 'extended-properties.sql');
323
+ await fs.writeFile(sqlPath, sql);
324
+ console.log(chalk_1.default.green(`✓ Generated SQL: ${sqlPath}`));
325
+ if (options.execute) {
326
+ const answer = await inquirer_1.default.prompt([
327
+ {
328
+ type: 'confirm',
329
+ name: 'confirm',
330
+ message: chalk_1.default.yellow('Execute SQL script? This will modify your database.'),
331
+ default: false,
332
+ },
333
+ ]);
334
+ if (answer.confirm) {
335
+ const connection = connection_1.DatabaseConnection.fromEnv();
336
+ const spinner = (0, ora_1.default)('Executing SQL...').start();
337
+ try {
338
+ await connection.query(sql);
339
+ spinner.succeed('SQL executed successfully');
340
+ }
341
+ catch (error) {
342
+ spinner.fail('SQL execution failed');
343
+ throw error;
344
+ }
345
+ await connection.close();
346
+ }
347
+ }
348
+ }
349
+ if (options.format === 'markdown' || options.format === 'all') {
350
+ const mdGen = new markdown_generator_1.MarkdownGenerator();
351
+ const markdown = mdGen.generate(state);
352
+ const mdPath = path.join(outputDir, 'database-documentation.md');
353
+ await fs.writeFile(mdPath, markdown);
354
+ console.log(chalk_1.default.green(`✓ Generated Markdown: ${mdPath}`));
355
+ }
356
+ console.log(chalk_1.default.green('\n✅ Export complete!'));
357
+ }
358
+ catch (error) {
359
+ console.error(chalk_1.default.red('Error:'), error);
360
+ process.exit(1);
361
+ }
362
+ });
363
+ /**
364
+ * RESET command
365
+ */
366
+ program
367
+ .command('reset')
368
+ .description('Reset state file')
369
+ .option('--all', 'Reset entire state file')
370
+ .action(async (options) => {
371
+ if (options.all) {
372
+ const answer = await inquirer_1.default.prompt([
373
+ {
374
+ type: 'confirm',
375
+ name: 'confirm',
376
+ message: chalk_1.default.yellow('Reset entire state file? This cannot be undone.'),
377
+ default: false,
378
+ },
379
+ ]);
380
+ if (answer.confirm) {
381
+ const stateManager = new state_manager_1.StateManager();
382
+ await stateManager.reset(process.env.DB_SERVER || 'localhost', process.env.DB_DATABASE || 'master');
383
+ console.log(chalk_1.default.green('✅ State file reset'));
384
+ }
385
+ }
386
+ });
387
+ program.parse();
388
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli-old/cli.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export default class Analyze extends Command {
6
6
  static description: string;
7
7
  static examples: string[];
8
8
  static flags: {
9
- resume: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ resume: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
10
  config: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
11
  };
12
12
  static args: {};
@@ -1,27 +1,41 @@
1
- "use strict";
2
1
  /**
3
2
  * Analyze command - Thin CLI wrapper around AnalysisOrchestrator
4
3
  */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const core_1 = require("@oclif/core");
10
- const ora_1 = __importDefault(require("ora"));
11
- const chalk_1 = __importDefault(require("chalk"));
12
- const config_loader_js_1 = require("../utils/config-loader.js");
13
- const AnalysisOrchestrator_js_1 = require("../core/AnalysisOrchestrator.js");
14
- class Analyze extends core_1.Command {
4
+ import { Command, Flags } from '@oclif/core';
5
+ import ora from 'ora';
6
+ import chalk from 'chalk';
7
+ import { ConfigLoader } from '../utils/config-loader.js';
8
+ import { AnalysisOrchestrator } from '../core/AnalysisOrchestrator.js';
9
+ export default class Analyze extends Command {
10
+ static { this.description = 'Analyze database and generate documentation'; }
11
+ static { this.examples = [
12
+ '$ db-auto-doc analyze',
13
+ '$ db-auto-doc analyze --resume ./output/run-6/state.json',
14
+ '$ db-auto-doc analyze --config ./my-config.json'
15
+ ]; }
16
+ static { this.flags = {
17
+ resume: Flags.string({
18
+ char: 'r',
19
+ description: 'Resume from an existing state file',
20
+ required: false
21
+ }),
22
+ config: Flags.string({
23
+ char: 'c',
24
+ description: 'Path to config file',
25
+ default: './config.json'
26
+ })
27
+ }; }
28
+ static { this.args = {}; }
15
29
  async run() {
16
30
  const { flags } = await this.parse(Analyze);
17
- const spinner = (0, ora_1.default)();
31
+ const spinner = ora();
18
32
  try {
19
33
  // Load configuration
20
34
  spinner.start('Loading configuration');
21
- const config = await config_loader_js_1.ConfigLoader.load(flags.config);
35
+ const config = await ConfigLoader.load(flags.config);
22
36
  spinner.succeed('Configuration loaded');
23
37
  // Create orchestrator
24
- const orchestrator = new AnalysisOrchestrator_js_1.AnalysisOrchestrator({
38
+ const orchestrator = new AnalysisOrchestrator({
25
39
  config,
26
40
  resumeFromState: flags.resume,
27
41
  onProgress: (message, data) => {
@@ -38,7 +52,7 @@ class Analyze extends core_1.Command {
38
52
  const result = await orchestrator.execute();
39
53
  if (result.success) {
40
54
  spinner.succeed('Analysis complete!');
41
- this.log(chalk_1.default.green('\n✓ Analysis complete!'));
55
+ this.log(chalk.green('\n✓ Analysis complete!'));
42
56
  this.log(` Iterations: ${result.run.iterationsPerformed}`);
43
57
  this.log(` Tokens used: ${result.run.totalTokensUsed?.toLocaleString() || 0}`);
44
58
  this.log(` Estimated cost: $${result.run.estimatedCost?.toFixed(2) || '0.00'}`);
@@ -48,7 +62,7 @@ class Analyze extends core_1.Command {
48
62
  this.log(` - extended-props.sql`);
49
63
  this.log(` - summary.md`);
50
64
  if (flags.resume) {
51
- this.log(chalk_1.default.blue(`\n Resumed from: ${flags.resume}`));
65
+ this.log(chalk.blue(`\n Resumed from: ${flags.resume}`));
52
66
  }
53
67
  }
54
68
  else {
@@ -62,24 +76,4 @@ class Analyze extends core_1.Command {
62
76
  }
63
77
  }
64
78
  }
65
- Analyze.description = 'Analyze database and generate documentation';
66
- Analyze.examples = [
67
- '$ db-auto-doc analyze',
68
- '$ db-auto-doc analyze --resume ./output/run-6/state.json',
69
- '$ db-auto-doc analyze --config ./my-config.json'
70
- ];
71
- Analyze.flags = {
72
- resume: core_1.Flags.string({
73
- char: 'r',
74
- description: 'Resume from an existing state file',
75
- required: false
76
- }),
77
- config: core_1.Flags.string({
78
- char: 'c',
79
- description: 'Path to config file',
80
- default: './config.json'
81
- })
82
- };
83
- Analyze.args = {};
84
- exports.default = Analyze;
85
79
  //# sourceMappingURL=analyze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;aACnC,gBAAW,GAAG,6CAA6C,CAAC;aAE5D,aAAQ,GAAG;QAChB,uBAAuB;QACvB,0DAA0D;QAC1D,iDAAiD;KAClD,CAAC;aAEK,UAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,eAAe;SACzB,CAAC;KACH,CAAC;aAEK,SAAI,GAAG,EAAE,CAAC;IAEjB,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,qBAAqB;YACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAExC,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC;gBAC5C,MAAM;gBACN,eAAe,EAAE,KAAK,CAAC,MAAM;gBAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;oBAC5B,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;oBACzB,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,mBAAmB;YACnB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAE7B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;YAChD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC"}
@@ -10,7 +10,7 @@ export default class ExportSampleQueries extends Command {
10
10
  output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
11
  'separate-sql-files': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
12
  'sql-dir': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
- category: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ category: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
14
  status: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
15
  'min-confidence': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
16
  'validated-only': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;