@memberjunction/db-auto-doc 2.117.0 → 2.118.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 (251) hide show
  1. package/README.md +652 -165
  2. package/bin/run.js +7 -0
  3. package/dist/api/DBAutoDocAPI.d.ts +252 -0
  4. package/dist/api/DBAutoDocAPI.d.ts.map +1 -0
  5. package/dist/api/DBAutoDocAPI.js +530 -0
  6. package/dist/api/DBAutoDocAPI.js.map +1 -0
  7. package/dist/api/index.d.ts +7 -0
  8. package/dist/api/index.d.ts.map +1 -0
  9. package/dist/api/index.js +10 -0
  10. package/dist/api/index.js.map +1 -0
  11. package/dist/commands/analyze.d.ts +6 -4
  12. package/dist/commands/analyze.d.ts.map +1 -1
  13. package/dist/commands/analyze.js +58 -71
  14. package/dist/commands/analyze.js.map +1 -1
  15. package/dist/commands/export.d.ts +14 -4
  16. package/dist/commands/export.d.ts.map +1 -1
  17. package/dist/commands/export.js +156 -61
  18. package/dist/commands/export.js.map +1 -1
  19. package/dist/commands/init.d.ts +3 -4
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +155 -146
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/reset.d.ts +4 -1
  24. package/dist/commands/reset.d.ts.map +1 -1
  25. package/dist/commands/reset.js +33 -19
  26. package/dist/commands/reset.js.map +1 -1
  27. package/dist/commands/status.d.ts +10 -0
  28. package/dist/commands/status.d.ts.map +1 -0
  29. package/dist/commands/status.js +66 -0
  30. package/dist/commands/status.js.map +1 -0
  31. package/dist/core/AnalysisEngine.d.ts +108 -0
  32. package/dist/core/AnalysisEngine.d.ts.map +1 -0
  33. package/dist/core/AnalysisEngine.js +716 -0
  34. package/dist/core/AnalysisEngine.js.map +1 -0
  35. package/dist/core/AnalysisOrchestrator.d.ts +37 -0
  36. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -0
  37. package/dist/core/AnalysisOrchestrator.js +294 -0
  38. package/dist/core/AnalysisOrchestrator.js.map +1 -0
  39. package/dist/core/BackpropagationEngine.d.ts +32 -0
  40. package/dist/core/BackpropagationEngine.d.ts.map +1 -0
  41. package/dist/core/BackpropagationEngine.js +121 -0
  42. package/dist/core/BackpropagationEngine.js.map +1 -0
  43. package/dist/core/ConvergenceDetector.d.ts +27 -0
  44. package/dist/core/ConvergenceDetector.d.ts.map +1 -0
  45. package/dist/core/ConvergenceDetector.js +92 -0
  46. package/dist/core/ConvergenceDetector.js.map +1 -0
  47. package/dist/core/GuardrailsManager.d.ts +78 -0
  48. package/dist/core/GuardrailsManager.d.ts.map +1 -0
  49. package/dist/core/GuardrailsManager.js +367 -0
  50. package/dist/core/GuardrailsManager.js.map +1 -0
  51. package/dist/core/index.d.ts +7 -0
  52. package/dist/core/index.d.ts.map +1 -0
  53. package/dist/core/index.js +13 -0
  54. package/dist/core/index.js.map +1 -0
  55. package/dist/database/Database.d.ts +56 -0
  56. package/dist/database/Database.d.ts.map +1 -0
  57. package/dist/database/Database.js +172 -0
  58. package/dist/database/Database.js.map +1 -0
  59. package/dist/database/TopologicalSorter.d.ts +25 -0
  60. package/dist/database/TopologicalSorter.d.ts.map +1 -0
  61. package/dist/database/TopologicalSorter.js +150 -0
  62. package/dist/database/TopologicalSorter.js.map +1 -0
  63. package/dist/database/index.d.ts +6 -0
  64. package/dist/database/index.d.ts.map +1 -0
  65. package/dist/database/index.js +14 -0
  66. package/dist/database/index.js.map +1 -0
  67. package/dist/discovery/ColumnStatsCache.d.ts +91 -0
  68. package/dist/discovery/ColumnStatsCache.d.ts.map +1 -0
  69. package/dist/discovery/ColumnStatsCache.js +231 -0
  70. package/dist/discovery/ColumnStatsCache.js.map +1 -0
  71. package/dist/discovery/DiscoveryEngine.d.ts +100 -0
  72. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -0
  73. package/dist/discovery/DiscoveryEngine.js +726 -0
  74. package/dist/discovery/DiscoveryEngine.js.map +1 -0
  75. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts +57 -0
  76. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts.map +1 -0
  77. package/dist/discovery/DiscoveryTriggerAnalyzer.js +186 -0
  78. package/dist/discovery/DiscoveryTriggerAnalyzer.js.map +1 -0
  79. package/dist/discovery/FKDetector.d.ts +47 -0
  80. package/dist/discovery/FKDetector.d.ts.map +1 -0
  81. package/dist/discovery/FKDetector.js +317 -0
  82. package/dist/discovery/FKDetector.js.map +1 -0
  83. package/dist/discovery/LLMDiscoveryValidator.d.ts +64 -0
  84. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -0
  85. package/dist/discovery/LLMDiscoveryValidator.js +431 -0
  86. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -0
  87. package/dist/discovery/LLMSanityChecker.d.ts +38 -0
  88. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -0
  89. package/dist/discovery/LLMSanityChecker.js +156 -0
  90. package/dist/discovery/LLMSanityChecker.js.map +1 -0
  91. package/dist/discovery/PKDetector.d.ts +62 -0
  92. package/dist/discovery/PKDetector.d.ts.map +1 -0
  93. package/dist/discovery/PKDetector.js +436 -0
  94. package/dist/discovery/PKDetector.js.map +1 -0
  95. package/dist/discovery/index.d.ts +9 -0
  96. package/dist/discovery/index.d.ts.map +1 -0
  97. package/dist/discovery/index.js +25 -0
  98. package/dist/discovery/index.js.map +1 -0
  99. package/dist/drivers/BaseAutoDocDriver.d.ts +132 -0
  100. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -0
  101. package/dist/drivers/BaseAutoDocDriver.js +121 -0
  102. package/dist/drivers/BaseAutoDocDriver.js.map +1 -0
  103. package/dist/drivers/MySQLDriver.d.ts +61 -0
  104. package/dist/drivers/MySQLDriver.d.ts.map +1 -0
  105. package/dist/drivers/MySQLDriver.js +668 -0
  106. package/dist/drivers/MySQLDriver.js.map +1 -0
  107. package/dist/drivers/PostgreSQLDriver.d.ts +65 -0
  108. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -0
  109. package/dist/drivers/PostgreSQLDriver.js +704 -0
  110. package/dist/drivers/PostgreSQLDriver.js.map +1 -0
  111. package/dist/drivers/SQLServerDriver.d.ts +61 -0
  112. package/dist/drivers/SQLServerDriver.d.ts.map +1 -0
  113. package/dist/drivers/SQLServerDriver.js +667 -0
  114. package/dist/drivers/SQLServerDriver.js.map +1 -0
  115. package/dist/generators/CSVGenerator.d.ts +35 -0
  116. package/dist/generators/CSVGenerator.d.ts.map +1 -0
  117. package/dist/generators/CSVGenerator.js +154 -0
  118. package/dist/generators/CSVGenerator.js.map +1 -0
  119. package/dist/generators/HTMLGenerator.d.ts +29 -0
  120. package/dist/generators/HTMLGenerator.d.ts.map +1 -0
  121. package/dist/generators/HTMLGenerator.js +710 -0
  122. package/dist/generators/HTMLGenerator.js.map +1 -0
  123. package/dist/generators/MarkdownGenerator.d.ts +27 -0
  124. package/dist/generators/MarkdownGenerator.d.ts.map +1 -0
  125. package/dist/generators/MarkdownGenerator.js +361 -0
  126. package/dist/generators/MarkdownGenerator.js.map +1 -0
  127. package/dist/generators/MermaidGenerator.d.ts +35 -0
  128. package/dist/generators/MermaidGenerator.d.ts.map +1 -0
  129. package/dist/generators/MermaidGenerator.js +321 -0
  130. package/dist/generators/MermaidGenerator.js.map +1 -0
  131. package/dist/generators/ReportGenerator.d.ts +22 -0
  132. package/dist/generators/ReportGenerator.d.ts.map +1 -0
  133. package/dist/generators/ReportGenerator.js +176 -0
  134. package/dist/generators/ReportGenerator.js.map +1 -0
  135. package/dist/generators/SQLGenerator.d.ts +31 -0
  136. package/dist/generators/SQLGenerator.d.ts.map +1 -0
  137. package/dist/generators/SQLGenerator.js +168 -0
  138. package/dist/generators/SQLGenerator.js.map +1 -0
  139. package/dist/generators/index.d.ts +10 -0
  140. package/dist/generators/index.d.ts.map +1 -0
  141. package/dist/generators/index.js +19 -0
  142. package/dist/generators/index.js.map +1 -0
  143. package/dist/index.d.ts +11 -20
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +19 -20
  146. package/dist/index.js.map +1 -1
  147. package/dist/prompts/PromptEngine.d.ts +65 -0
  148. package/dist/prompts/PromptEngine.d.ts.map +1 -0
  149. package/dist/prompts/PromptEngine.js +282 -0
  150. package/dist/prompts/PromptEngine.js.map +1 -0
  151. package/dist/prompts/PromptFileLoader.d.ts +21 -0
  152. package/dist/prompts/PromptFileLoader.d.ts.map +1 -0
  153. package/dist/prompts/PromptFileLoader.js +74 -0
  154. package/dist/prompts/PromptFileLoader.js.map +1 -0
  155. package/dist/prompts/index.d.ts +6 -0
  156. package/dist/prompts/index.d.ts.map +1 -0
  157. package/dist/prompts/index.js +11 -0
  158. package/dist/prompts/index.js.map +1 -0
  159. package/dist/state/IterationTracker.d.ts +64 -0
  160. package/dist/state/IterationTracker.d.ts.map +1 -0
  161. package/dist/state/IterationTracker.js +136 -0
  162. package/dist/state/IterationTracker.js.map +1 -0
  163. package/dist/state/StateManager.d.ts +79 -0
  164. package/dist/state/StateManager.d.ts.map +1 -0
  165. package/dist/state/StateManager.js +348 -0
  166. package/dist/state/StateManager.js.map +1 -0
  167. package/dist/state/StateValidator.d.ts +24 -0
  168. package/dist/state/StateValidator.d.ts.map +1 -0
  169. package/dist/state/StateValidator.js +147 -0
  170. package/dist/state/StateValidator.js.map +1 -0
  171. package/dist/state/index.d.ts +7 -0
  172. package/dist/state/index.d.ts.map +1 -0
  173. package/dist/state/index.js +13 -0
  174. package/dist/state/index.js.map +1 -0
  175. package/dist/types/analysis.d.ts +76 -0
  176. package/dist/types/analysis.d.ts.map +1 -0
  177. package/dist/types/analysis.js +6 -0
  178. package/dist/types/analysis.js.map +1 -0
  179. package/dist/types/config.d.ts +132 -0
  180. package/dist/types/config.d.ts.map +1 -0
  181. package/dist/types/config.js +7 -0
  182. package/dist/types/config.js.map +1 -0
  183. package/dist/types/discovery.d.ts +277 -0
  184. package/dist/types/discovery.d.ts.map +1 -0
  185. package/dist/types/discovery.js +7 -0
  186. package/dist/types/discovery.js.map +1 -0
  187. package/dist/types/driver.d.ts +148 -0
  188. package/dist/types/driver.d.ts.map +1 -0
  189. package/dist/types/driver.js +7 -0
  190. package/dist/types/driver.js.map +1 -0
  191. package/dist/types/index.d.ts +8 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +24 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/prompts.d.ts +158 -0
  196. package/dist/types/prompts.d.ts.map +1 -0
  197. package/dist/types/prompts.js +6 -0
  198. package/dist/types/prompts.js.map +1 -0
  199. package/dist/types/state.d.ts +278 -0
  200. package/dist/types/state.d.ts.map +1 -0
  201. package/dist/types/state.js +7 -0
  202. package/dist/types/state.js.map +1 -0
  203. package/dist/utils/config-loader.d.ts +29 -0
  204. package/dist/utils/config-loader.d.ts.map +1 -0
  205. package/dist/utils/config-loader.js +163 -0
  206. package/dist/utils/config-loader.js.map +1 -0
  207. package/dist/utils/index.d.ts +5 -0
  208. package/dist/utils/index.d.ts.map +1 -0
  209. package/dist/utils/index.js +9 -0
  210. package/dist/utils/index.js.map +1 -0
  211. package/package.json +24 -3
  212. package/dist/ai/simple-ai-client.d.ts +0 -70
  213. package/dist/ai/simple-ai-client.d.ts.map +0 -1
  214. package/dist/ai/simple-ai-client.js +0 -181
  215. package/dist/ai/simple-ai-client.js.map +0 -1
  216. package/dist/analyzers/analyzer.d.ts +0 -23
  217. package/dist/analyzers/analyzer.d.ts.map +0 -1
  218. package/dist/analyzers/analyzer.js +0 -127
  219. package/dist/analyzers/analyzer.js.map +0 -1
  220. package/dist/cli-old/cli.d.ts +0 -3
  221. package/dist/cli-old/cli.d.ts.map +0 -1
  222. package/dist/cli-old/cli.js +0 -388
  223. package/dist/cli-old/cli.js.map +0 -1
  224. package/dist/commands/review.d.ts +0 -11
  225. package/dist/commands/review.d.ts.map +0 -1
  226. package/dist/commands/review.js +0 -82
  227. package/dist/commands/review.js.map +0 -1
  228. package/dist/database/connection.d.ts +0 -40
  229. package/dist/database/connection.d.ts.map +0 -1
  230. package/dist/database/connection.js +0 -136
  231. package/dist/database/connection.js.map +0 -1
  232. package/dist/database/introspection.d.ts +0 -59
  233. package/dist/database/introspection.d.ts.map +0 -1
  234. package/dist/database/introspection.js +0 -124
  235. package/dist/database/introspection.js.map +0 -1
  236. package/dist/generators/markdown-generator.d.ts +0 -8
  237. package/dist/generators/markdown-generator.d.ts.map +0 -1
  238. package/dist/generators/markdown-generator.js +0 -106
  239. package/dist/generators/markdown-generator.js.map +0 -1
  240. package/dist/generators/sql-generator.d.ts +0 -20
  241. package/dist/generators/sql-generator.d.ts.map +0 -1
  242. package/dist/generators/sql-generator.js +0 -83
  243. package/dist/generators/sql-generator.js.map +0 -1
  244. package/dist/state/state-manager.d.ts +0 -95
  245. package/dist/state/state-manager.d.ts.map +0 -1
  246. package/dist/state/state-manager.js +0 -236
  247. package/dist/state/state-manager.js.map +0 -1
  248. package/dist/types/state-file.d.ts +0 -124
  249. package/dist/types/state-file.d.ts.map +0 -1
  250. package/dist/types/state-file.js +0 -79
  251. package/dist/types/state-file.js.map +0 -1
@@ -1,163 +1,172 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
2
+ /**
3
+ * Init command - Initialize new project
4
+ */
25
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
7
  };
28
8
  Object.defineProperty(exports, "__esModule", { value: true });
29
9
  const core_1 = require("@oclif/core");
30
- const prompts_1 = require("@inquirer/prompts");
31
- const ora_1 = __importDefault(require("ora"));
32
- const fs = __importStar(require("fs/promises"));
33
- const path = __importStar(require("path"));
34
- const connection_1 = require("../database/connection");
35
- const state_manager_1 = require("../state/state-manager");
10
+ const inquirer_1 = __importDefault(require("inquirer"));
36
11
  const chalk_1 = __importDefault(require("chalk"));
12
+ const config_loader_js_1 = require("../utils/config-loader.js");
13
+ const Database_js_1 = require("../database/Database.js");
37
14
  class Init extends core_1.Command {
38
15
  async run() {
39
- const { flags } = await this.parse(Init);
40
- this.log(chalk_1.default.blue.bold('\n🚀 SQL Server Database Documentation Generator\n'));
41
- try {
42
- let server;
43
- let database;
44
- let user;
45
- let pwd;
46
- if (flags.interactive && !flags.connection) {
47
- server = await (0, prompts_1.input)({
48
- message: 'Database server:',
49
- default: 'localhost',
50
- });
51
- database = await (0, prompts_1.input)({
52
- message: 'Database name:',
53
- validate: (val) => (val ? true : 'Database name required'),
54
- });
55
- user = await (0, prompts_1.input)({
56
- message: 'Username:',
57
- default: 'sa',
58
- });
59
- pwd = await (0, prompts_1.password)({
60
- message: 'Password:',
61
- mask: '*',
62
- });
63
- }
64
- else if (flags.connection) {
65
- // Parse connection string (simplified)
66
- server = process.env.DB_SERVER || 'localhost';
67
- database = process.env.DB_DATABASE || '';
68
- user = process.env.DB_USER || 'sa';
69
- pwd = process.env.DB_PASSWORD || '';
70
- }
71
- else {
72
- server = process.env.DB_SERVER || 'localhost';
73
- database = process.env.DB_DATABASE || '';
74
- user = process.env.DB_USER || 'sa';
75
- pwd = process.env.DB_PASSWORD || '';
76
- }
77
- // Test connection
78
- const spinner = (0, ora_1.default)('Testing database connection...').start();
79
- const connection = new connection_1.DatabaseConnection({
80
- server,
81
- database,
82
- user,
83
- password: pwd,
84
- encrypt: true,
85
- trustServerCertificate: true,
86
- });
87
- const connected = await connection.test();
88
- if (!connected) {
89
- spinner.fail('Connection failed');
90
- this.exit(1);
16
+ this.log(chalk_1.default.blue('DBAutoDoc Initialization\n'));
17
+ // Database configuration
18
+ const dbAnswers = await inquirer_1.default.prompt([
19
+ {
20
+ type: 'input',
21
+ name: 'server',
22
+ message: 'SQL Server host:',
23
+ default: 'localhost'
24
+ },
25
+ {
26
+ type: 'input',
27
+ name: 'database',
28
+ message: 'Database name:',
29
+ validate: (input) => input.length > 0 || 'Database name is required'
30
+ },
31
+ {
32
+ type: 'input',
33
+ name: 'user',
34
+ message: 'Username:',
35
+ default: 'sa'
36
+ },
37
+ {
38
+ type: 'password',
39
+ name: 'password',
40
+ message: 'Password:',
41
+ mask: '*'
42
+ },
43
+ {
44
+ type: 'confirm',
45
+ name: 'encrypt',
46
+ message: 'Use encryption?',
47
+ default: true
48
+ },
49
+ {
50
+ type: 'confirm',
51
+ name: 'trustServerCertificate',
52
+ message: 'Trust server certificate?',
53
+ default: false
91
54
  }
92
- spinner.succeed('Connection successful');
93
- // Create .env file
94
- const envPath = path.join(process.cwd(), '.env');
95
- const envContent = `
96
- # Database Connection
97
- DB_SERVER=${server}
98
- DB_DATABASE=${database}
99
- DB_USER=${user}
100
- DB_PASSWORD=${pwd}
101
- DB_ENCRYPT=true
102
- DB_TRUST_SERVER_CERTIFICATE=true
103
-
104
- # AI Configuration
105
- AI_PROVIDER=openai
106
- AI_MODEL=gpt-4
107
- AI_API_KEY=your-api-key-here
108
- `.trim();
109
- await fs.writeFile(envPath, envContent);
110
- this.log(chalk_1.default.green('✓ Created .env file'));
111
- // Create state file
112
- const stateManager = new state_manager_1.StateManager();
113
- await stateManager.reset(server, database);
114
- this.log(chalk_1.default.green('✓ Created db-doc-state.json'));
115
- // Ask seed questions
116
- if (flags.interactive) {
117
- const addSeed = await (0, prompts_1.confirm)({
118
- message: 'Would you like to provide seed context?',
119
- default: true,
120
- });
121
- if (addSeed) {
122
- const purpose = await (0, prompts_1.input)({
123
- message: 'Overall database purpose:',
124
- });
125
- const domains = await (0, prompts_1.input)({
126
- message: 'Business domains (comma-separated):',
127
- });
128
- const state = stateManager.getState();
129
- state.seedContext = {
130
- overallPurpose: purpose,
131
- businessDomains: domains.split(',').map((d) => d.trim()),
132
- };
133
- await stateManager.save();
134
- this.log(chalk_1.default.green('✓ Saved seed context'));
55
+ ]);
56
+ // Test connection
57
+ this.log(chalk_1.default.yellow('\nTesting database connection...'));
58
+ const dbConfig = {
59
+ provider: 'sqlserver',
60
+ host: dbAnswers.server,
61
+ database: dbAnswers.database,
62
+ user: dbAnswers.user,
63
+ password: dbAnswers.password,
64
+ encrypt: dbAnswers.encrypt,
65
+ trustServerCertificate: dbAnswers.trustServerCertificate
66
+ };
67
+ const db = new Database_js_1.DatabaseConnection(dbConfig);
68
+ const testResult = await db.test();
69
+ await db.close();
70
+ if (!testResult.success) {
71
+ this.error(`Connection failed: ${testResult.message}`);
72
+ return;
73
+ }
74
+ this.log(chalk_1.default.green('✓ Database connection successful!\n'));
75
+ // AI configuration
76
+ const aiAnswers = await inquirer_1.default.prompt([
77
+ {
78
+ type: 'list',
79
+ name: 'provider',
80
+ message: 'AI Provider:',
81
+ choices: ['openai', 'anthropic', 'groq']
82
+ },
83
+ {
84
+ type: 'input',
85
+ name: 'model',
86
+ message: 'Model name:',
87
+ default: (answers) => {
88
+ if (answers.provider === 'openai')
89
+ return 'gpt-4-turbo-preview';
90
+ if (answers.provider === 'anthropic')
91
+ return 'claude-3-opus-20240229';
92
+ if (answers.provider === 'groq')
93
+ return 'mixtral-8x7b-32768';
94
+ return '';
135
95
  }
96
+ },
97
+ {
98
+ type: 'password',
99
+ name: 'apiKey',
100
+ message: 'API Key:',
101
+ mask: '*',
102
+ validate: (input) => input.length > 0 || 'API key is required'
136
103
  }
137
- this.log(chalk_1.default.green.bold('\n✅ Initialization complete!\n'));
138
- this.log('Next steps:');
139
- this.log(' 1. Edit .env and add your AI API key');
140
- this.log(' 2. Run: db-auto-doc analyze');
141
- await connection.close();
142
- }
143
- catch (error) {
144
- this.error(error.message);
104
+ ]);
105
+ // Optional seed context
106
+ const contextAnswers = await inquirer_1.default.prompt([
107
+ {
108
+ type: 'confirm',
109
+ name: 'addContext',
110
+ message: 'Add seed context for better analysis?',
111
+ default: true
112
+ },
113
+ {
114
+ type: 'input',
115
+ name: 'overallPurpose',
116
+ message: 'Database overall purpose (e.g., "E-commerce platform"):',
117
+ when: (answers) => answers.addContext
118
+ },
119
+ {
120
+ type: 'input',
121
+ name: 'businessDomains',
122
+ message: 'Business domains (comma-separated, e.g., "Sales, Inventory, Billing"):',
123
+ when: (answers) => answers.addContext
124
+ },
125
+ {
126
+ type: 'input',
127
+ name: 'industryContext',
128
+ message: 'Industry context (e.g., "Healthcare", "Finance"):',
129
+ when: (answers) => answers.addContext
130
+ }
131
+ ]);
132
+ // Create configuration
133
+ const config = config_loader_js_1.ConfigLoader.createDefault();
134
+ // Update with user inputs
135
+ config.database = {
136
+ server: dbAnswers.server,
137
+ port: 1433,
138
+ database: dbAnswers.database,
139
+ user: dbAnswers.user,
140
+ password: dbAnswers.password,
141
+ encrypt: dbAnswers.encrypt,
142
+ trustServerCertificate: dbAnswers.trustServerCertificate,
143
+ connectionTimeout: 30000
144
+ };
145
+ config.ai = {
146
+ provider: aiAnswers.provider,
147
+ model: aiAnswers.model,
148
+ apiKey: aiAnswers.apiKey,
149
+ temperature: 0.1,
150
+ maxTokens: 4000
151
+ };
152
+ if (contextAnswers.addContext) {
153
+ config['seedContext'] = {
154
+ overallPurpose: contextAnswers.overallPurpose || undefined,
155
+ businessDomains: contextAnswers.businessDomains
156
+ ? contextAnswers.businessDomains.split(',').map((d) => d.trim())
157
+ : undefined,
158
+ industryContext: contextAnswers.industryContext || undefined
159
+ };
145
160
  }
161
+ // Save configuration
162
+ await config_loader_js_1.ConfigLoader.save(config, './config.json');
163
+ this.log(chalk_1.default.green('\n✓ Configuration saved to config.json'));
164
+ this.log(chalk_1.default.blue('\nNext steps:'));
165
+ this.log(' 1. Run: db-auto-doc analyze');
166
+ this.log(' 2. Run: db-auto-doc export --sql --markdown');
146
167
  }
147
168
  }
148
- Init.description = 'Initialize database documentation project';
149
- Init.examples = [
150
- '<%= config.bin %> <%= command.id %>',
151
- '<%= config.bin %> <%= command.id %> --interactive',
152
- ];
153
- Init.flags = {
154
- interactive: core_1.Flags.boolean({
155
- description: 'Interactive setup',
156
- default: true,
157
- }),
158
- connection: core_1.Flags.string({
159
- description: 'Connection string (skip prompts)',
160
- }),
161
- };
169
+ Init.description = 'Initialize a new DBAutoDoc project';
170
+ Init.examples = ['$ db-auto-doc init'];
162
171
  exports.default = Init;
163
172
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,sCAAsC;AACtC,wDAAgC;AAChC,kDAA0B;AAC1B,gEAAyD;AACzD,yDAA6D;AAE7D,MAAqB,IAAK,SAAQ,cAAO;IAKvC,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAEnD,yBAAyB;QACzB,MAAM,SAAS,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,WAAW;aACrB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,2BAA2B;aAC7E;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,GAAG;aACV;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,WAAoB;YAC9B,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;SACzD,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,gCAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAEjB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,sBAAsB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE7D,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,CAAC,OAAY,EAAE,EAAE;oBACxB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;wBAAE,OAAO,qBAAqB,CAAC;oBAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,OAAO,wBAAwB,CAAC;oBACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM;wBAAE,OAAO,oBAAoB,CAAC;oBAC7D,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB;aACvE;SACF,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,cAAc,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC3C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,uCAAuC;gBAChD,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,yDAAyD;gBAClE,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;aAC3C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,wEAAwE;gBACjF,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;aAC3C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;aAC3C;SACF,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,MAAM,GAAG,+BAAY,CAAC,aAAa,EAAE,CAAC;QAE5C,0BAA0B;QAC1B,MAAM,CAAC,QAAQ,GAAG;YAChB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;YACxD,iBAAiB,EAAE,KAAK;SACzB,CAAC;QAEF,MAAM,CAAC,EAAE,GAAG;YACV,QAAQ,EAAE,SAAS,CAAC,QAAe;YACnC,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAC7B,MAA6C,CAAC,aAAa,CAAC,GAAG;gBAC9D,cAAc,EAAE,cAAc,CAAC,cAAc,IAAI,SAAS;gBAC1D,eAAe,EAAE,cAAc,CAAC,eAAe;oBAC7C,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACxE,CAAC,CAAC,SAAS;gBACb,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,SAAS;aAC7D,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,+BAAY,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEjD,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC5D,CAAC;;AArKM,gBAAW,GAAG,oCAAoC,CAAC;AAEnD,aAAQ,GAAG,CAAC,oBAAoB,CAAC,CAAC;kBAHtB,IAAI"}
@@ -1,9 +1,12 @@
1
+ /**
2
+ * Reset command - Clear state and start fresh
3
+ */
1
4
  import { Command } from '@oclif/core';
2
5
  export default class Reset extends Command {
3
6
  static description: string;
4
7
  static examples: string[];
5
8
  static flags: {
6
- all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
10
  };
8
11
  run(): Promise<void>;
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,QAAQ,WAEb;IAEF,MAAM,CAAC,KAAK;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,WAAW,SAA0C;IAE5D,MAAM,CAAC,QAAQ,WAA2B;IAE1C,MAAM,CAAC,KAAK;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkC3B"}
@@ -1,37 +1,51 @@
1
1
  "use strict";
2
+ /**
3
+ * Reset command - Clear state and start fresh
4
+ */
2
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
7
  };
5
8
  Object.defineProperty(exports, "__esModule", { value: true });
6
9
  const core_1 = require("@oclif/core");
7
- const prompts_1 = require("@inquirer/prompts");
10
+ const inquirer_1 = __importDefault(require("inquirer"));
8
11
  const chalk_1 = __importDefault(require("chalk"));
9
- const state_manager_1 = require("../state/state-manager");
12
+ const config_loader_js_1 = require("../utils/config-loader.js");
13
+ const StateManager_js_1 = require("../state/StateManager.js");
10
14
  class Reset extends core_1.Command {
11
15
  async run() {
12
16
  const { flags } = await this.parse(Reset);
13
- if (flags.all) {
14
- const confirmed = await (0, prompts_1.confirm)({
15
- message: chalk_1.default.yellow('Reset entire state file? This cannot be undone.'),
16
- default: false,
17
- });
18
- if (confirmed) {
19
- const stateManager = new state_manager_1.StateManager();
20
- await stateManager.reset(process.env.DB_SERVER || 'localhost', process.env.DB_DATABASE || 'master');
21
- this.log(chalk_1.default.green('✅ State file reset'));
17
+ try {
18
+ const config = await config_loader_js_1.ConfigLoader.load('./config.json');
19
+ const stateManager = new StateManager_js_1.StateManager(config.output.stateFile);
20
+ // Confirm deletion unless --force
21
+ if (!flags.force) {
22
+ const answer = await inquirer_1.default.prompt([
23
+ {
24
+ type: 'confirm',
25
+ name: 'confirm',
26
+ message: chalk_1.default.yellow('This will delete all analysis state. Continue?'),
27
+ default: false
28
+ }
29
+ ]);
30
+ if (!answer.confirm) {
31
+ this.log('Reset cancelled');
32
+ return;
33
+ }
22
34
  }
35
+ // Delete state file
36
+ await stateManager.delete();
37
+ this.log(chalk_1.default.green('✓ State reset complete!'));
38
+ this.log('Run: db-auto-doc analyze');
39
+ }
40
+ catch (error) {
41
+ this.error(error.message);
23
42
  }
24
43
  }
25
44
  }
26
- Reset.description = 'Reset state file';
27
- Reset.examples = [
28
- '<%= config.bin %> <%= command.id %> --all',
29
- ];
45
+ Reset.description = 'Reset state and start fresh analysis';
46
+ Reset.examples = ['$ db-auto-doc reset'];
30
47
  Reset.flags = {
31
- all: core_1.Flags.boolean({
32
- description: 'Reset entire state file',
33
- default: false,
34
- }),
48
+ force: core_1.Flags.boolean({ char: 'f', description: 'Skip confirmation prompt' })
35
49
  };
36
50
  exports.default = Reset;
37
51
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":";;;;;AAAA,sCAA6C;AAC7C,+CAA4C;AAC5C,kDAA0B;AAC1B,0DAAsD;AAEtD,MAAqB,KAAM,SAAQ,cAAO;IAcxC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAO,EAAC;gBAC9B,OAAO,EAAE,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC;gBACxE,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;gBACxC,MAAM,YAAY,CAAC,KAAK,CACtB,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,WAAW,EACpC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,CACpC,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;;AA/BM,iBAAW,GAAG,kBAAkB,CAAC;AAEjC,cAAQ,GAAG;IAChB,2CAA2C;CAC5C,CAAC;AAEK,WAAK,GAAG;IACb,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC;QACjB,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBAZiB,KAAK"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,sCAA6C;AAC7C,wDAAgC;AAChC,kDAA0B;AAC1B,gEAAyD;AACzD,8DAAwD;AAExD,MAAqB,KAAM,SAAQ,cAAO;IASxC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,+BAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,8BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE/D,kCAAkC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBACnC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC;wBACvE,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;YACH,CAAC;YAED,oBAAoB;YACpB,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;YAE5B,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAEvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;;AAzCM,iBAAW,GAAG,sCAAsC,CAAC;AAErD,cAAQ,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEnC,WAAK,GAAG;IACb,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;CAC7E,CAAC;kBAPiB,KAAK"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Status command - Show current analysis status
3
+ */
4
+ import { Command } from '@oclif/core';
5
+ export default class Status extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ run(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKtC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAAkC;IAEpD,MAAM,CAAC,QAAQ,WAA4B;IAErC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD3B"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /**
3
+ * Status command - Show current analysis status
4
+ */
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 chalk_1 = __importDefault(require("chalk"));
11
+ const config_loader_js_1 = require("../utils/config-loader.js");
12
+ const StateManager_js_1 = require("../state/StateManager.js");
13
+ class Status extends core_1.Command {
14
+ async run() {
15
+ try {
16
+ const config = await config_loader_js_1.ConfigLoader.load('./config.json');
17
+ const stateManager = new StateManager_js_1.StateManager(config.output.stateFile);
18
+ const state = await stateManager.load();
19
+ if (!state) {
20
+ this.log(chalk_1.default.yellow('No analysis has been run yet.'));
21
+ this.log('Run: db-auto-doc analyze');
22
+ return;
23
+ }
24
+ this.log(chalk_1.default.blue(`\nDatabase Documentation Status\n`));
25
+ this.log(`Database: ${state.database.name}`);
26
+ this.log(`Server: ${state.database.server}`);
27
+ this.log(`Last Modified: ${state.summary.lastModified}\n`);
28
+ // Schemas
29
+ this.log(`Schemas: ${state.schemas.length}`);
30
+ const tableCount = state.schemas.reduce((sum, s) => sum + s.tables.length, 0);
31
+ this.log(`Tables: ${tableCount}\n`);
32
+ // Latest run
33
+ if (state.phases.descriptionGeneration.length > 0) {
34
+ const lastRun = state.phases.descriptionGeneration[state.phases.descriptionGeneration.length - 1];
35
+ this.log(chalk_1.default.blue('Latest Analysis Run:'));
36
+ this.log(` Status: ${lastRun.status}`);
37
+ this.log(` Iterations: ${lastRun.iterationsPerformed}`);
38
+ this.log(` Tokens Used: ${lastRun.totalTokensUsed.toLocaleString()}`);
39
+ this.log(` Estimated Cost: $${lastRun.estimatedCost.toFixed(2)}`);
40
+ if (lastRun.converged) {
41
+ this.log(chalk_1.default.green(` Converged: ${lastRun.convergenceReason}`));
42
+ }
43
+ else {
44
+ this.log(chalk_1.default.yellow(' Not yet converged'));
45
+ }
46
+ }
47
+ // Low confidence tables
48
+ const lowConfidence = stateManager.getLowConfidenceTables(state, 0.7);
49
+ if (lowConfidence.length > 0) {
50
+ this.log(chalk_1.default.yellow(`\nLow Confidence Tables (< 0.7): ${lowConfidence.length}`));
51
+ }
52
+ // Unprocessed tables
53
+ const unprocessed = stateManager.getUnprocessedTables(state);
54
+ if (unprocessed.length > 0) {
55
+ this.log(chalk_1.default.yellow(`Unprocessed Tables: ${unprocessed.length}`));
56
+ }
57
+ }
58
+ catch (error) {
59
+ this.error(error.message);
60
+ }
61
+ }
62
+ }
63
+ Status.description = 'Show current analysis status';
64
+ Status.examples = ['$ db-auto-doc status'];
65
+ exports.default = Status;
66
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}