@memberjunction/db-auto-doc 2.117.0 → 2.119.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 (263) hide show
  1. package/README.md +803 -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/generate-queries.d.ts +17 -0
  20. package/dist/commands/generate-queries.d.ts.map +1 -0
  21. package/dist/commands/generate-queries.js +182 -0
  22. package/dist/commands/generate-queries.js.map +1 -0
  23. package/dist/commands/init.d.ts +3 -4
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +206 -144
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/reset.d.ts +4 -1
  28. package/dist/commands/reset.d.ts.map +1 -1
  29. package/dist/commands/reset.js +33 -19
  30. package/dist/commands/reset.js.map +1 -1
  31. package/dist/commands/status.d.ts +10 -0
  32. package/dist/commands/status.d.ts.map +1 -0
  33. package/dist/commands/status.js +66 -0
  34. package/dist/commands/status.js.map +1 -0
  35. package/dist/core/AnalysisEngine.d.ts +108 -0
  36. package/dist/core/AnalysisEngine.d.ts.map +1 -0
  37. package/dist/core/AnalysisEngine.js +716 -0
  38. package/dist/core/AnalysisEngine.js.map +1 -0
  39. package/dist/core/AnalysisOrchestrator.d.ts +41 -0
  40. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -0
  41. package/dist/core/AnalysisOrchestrator.js +377 -0
  42. package/dist/core/AnalysisOrchestrator.js.map +1 -0
  43. package/dist/core/BackpropagationEngine.d.ts +32 -0
  44. package/dist/core/BackpropagationEngine.d.ts.map +1 -0
  45. package/dist/core/BackpropagationEngine.js +121 -0
  46. package/dist/core/BackpropagationEngine.js.map +1 -0
  47. package/dist/core/ConvergenceDetector.d.ts +27 -0
  48. package/dist/core/ConvergenceDetector.d.ts.map +1 -0
  49. package/dist/core/ConvergenceDetector.js +92 -0
  50. package/dist/core/ConvergenceDetector.js.map +1 -0
  51. package/dist/core/GuardrailsManager.d.ts +78 -0
  52. package/dist/core/GuardrailsManager.d.ts.map +1 -0
  53. package/dist/core/GuardrailsManager.js +367 -0
  54. package/dist/core/GuardrailsManager.js.map +1 -0
  55. package/dist/core/index.d.ts +7 -0
  56. package/dist/core/index.d.ts.map +1 -0
  57. package/dist/core/index.js +13 -0
  58. package/dist/core/index.js.map +1 -0
  59. package/dist/database/Database.d.ts +56 -0
  60. package/dist/database/Database.d.ts.map +1 -0
  61. package/dist/database/Database.js +172 -0
  62. package/dist/database/Database.js.map +1 -0
  63. package/dist/database/TopologicalSorter.d.ts +25 -0
  64. package/dist/database/TopologicalSorter.d.ts.map +1 -0
  65. package/dist/database/TopologicalSorter.js +150 -0
  66. package/dist/database/TopologicalSorter.js.map +1 -0
  67. package/dist/database/index.d.ts +6 -0
  68. package/dist/database/index.d.ts.map +1 -0
  69. package/dist/database/index.js +14 -0
  70. package/dist/database/index.js.map +1 -0
  71. package/dist/discovery/ColumnStatsCache.d.ts +91 -0
  72. package/dist/discovery/ColumnStatsCache.d.ts.map +1 -0
  73. package/dist/discovery/ColumnStatsCache.js +231 -0
  74. package/dist/discovery/ColumnStatsCache.js.map +1 -0
  75. package/dist/discovery/DiscoveryEngine.d.ts +100 -0
  76. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -0
  77. package/dist/discovery/DiscoveryEngine.js +726 -0
  78. package/dist/discovery/DiscoveryEngine.js.map +1 -0
  79. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts +57 -0
  80. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts.map +1 -0
  81. package/dist/discovery/DiscoveryTriggerAnalyzer.js +186 -0
  82. package/dist/discovery/DiscoveryTriggerAnalyzer.js.map +1 -0
  83. package/dist/discovery/FKDetector.d.ts +47 -0
  84. package/dist/discovery/FKDetector.d.ts.map +1 -0
  85. package/dist/discovery/FKDetector.js +317 -0
  86. package/dist/discovery/FKDetector.js.map +1 -0
  87. package/dist/discovery/LLMDiscoveryValidator.d.ts +64 -0
  88. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -0
  89. package/dist/discovery/LLMDiscoveryValidator.js +431 -0
  90. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -0
  91. package/dist/discovery/LLMSanityChecker.d.ts +38 -0
  92. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -0
  93. package/dist/discovery/LLMSanityChecker.js +156 -0
  94. package/dist/discovery/LLMSanityChecker.js.map +1 -0
  95. package/dist/discovery/PKDetector.d.ts +62 -0
  96. package/dist/discovery/PKDetector.d.ts.map +1 -0
  97. package/dist/discovery/PKDetector.js +436 -0
  98. package/dist/discovery/PKDetector.js.map +1 -0
  99. package/dist/discovery/index.d.ts +9 -0
  100. package/dist/discovery/index.d.ts.map +1 -0
  101. package/dist/discovery/index.js +25 -0
  102. package/dist/discovery/index.js.map +1 -0
  103. package/dist/drivers/BaseAutoDocDriver.d.ts +132 -0
  104. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -0
  105. package/dist/drivers/BaseAutoDocDriver.js +121 -0
  106. package/dist/drivers/BaseAutoDocDriver.js.map +1 -0
  107. package/dist/drivers/MySQLDriver.d.ts +61 -0
  108. package/dist/drivers/MySQLDriver.d.ts.map +1 -0
  109. package/dist/drivers/MySQLDriver.js +668 -0
  110. package/dist/drivers/MySQLDriver.js.map +1 -0
  111. package/dist/drivers/PostgreSQLDriver.d.ts +65 -0
  112. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -0
  113. package/dist/drivers/PostgreSQLDriver.js +704 -0
  114. package/dist/drivers/PostgreSQLDriver.js.map +1 -0
  115. package/dist/drivers/SQLServerDriver.d.ts +61 -0
  116. package/dist/drivers/SQLServerDriver.d.ts.map +1 -0
  117. package/dist/drivers/SQLServerDriver.js +667 -0
  118. package/dist/drivers/SQLServerDriver.js.map +1 -0
  119. package/dist/generators/CSVGenerator.d.ts +35 -0
  120. package/dist/generators/CSVGenerator.d.ts.map +1 -0
  121. package/dist/generators/CSVGenerator.js +154 -0
  122. package/dist/generators/CSVGenerator.js.map +1 -0
  123. package/dist/generators/HTMLGenerator.d.ts +29 -0
  124. package/dist/generators/HTMLGenerator.d.ts.map +1 -0
  125. package/dist/generators/HTMLGenerator.js +710 -0
  126. package/dist/generators/HTMLGenerator.js.map +1 -0
  127. package/dist/generators/MarkdownGenerator.d.ts +27 -0
  128. package/dist/generators/MarkdownGenerator.d.ts.map +1 -0
  129. package/dist/generators/MarkdownGenerator.js +361 -0
  130. package/dist/generators/MarkdownGenerator.js.map +1 -0
  131. package/dist/generators/MermaidGenerator.d.ts +35 -0
  132. package/dist/generators/MermaidGenerator.d.ts.map +1 -0
  133. package/dist/generators/MermaidGenerator.js +321 -0
  134. package/dist/generators/MermaidGenerator.js.map +1 -0
  135. package/dist/generators/ReportGenerator.d.ts +22 -0
  136. package/dist/generators/ReportGenerator.d.ts.map +1 -0
  137. package/dist/generators/ReportGenerator.js +176 -0
  138. package/dist/generators/ReportGenerator.js.map +1 -0
  139. package/dist/generators/SQLGenerator.d.ts +31 -0
  140. package/dist/generators/SQLGenerator.d.ts.map +1 -0
  141. package/dist/generators/SQLGenerator.js +168 -0
  142. package/dist/generators/SQLGenerator.js.map +1 -0
  143. package/dist/generators/SampleQueryGenerator.d.ts +64 -0
  144. package/dist/generators/SampleQueryGenerator.d.ts.map +1 -0
  145. package/dist/generators/SampleQueryGenerator.js +500 -0
  146. package/dist/generators/SampleQueryGenerator.js.map +1 -0
  147. package/dist/generators/index.d.ts +10 -0
  148. package/dist/generators/index.d.ts.map +1 -0
  149. package/dist/generators/index.js +19 -0
  150. package/dist/generators/index.js.map +1 -0
  151. package/dist/index.d.ts +11 -20
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +19 -20
  154. package/dist/index.js.map +1 -1
  155. package/dist/prompts/PromptEngine.d.ts +65 -0
  156. package/dist/prompts/PromptEngine.d.ts.map +1 -0
  157. package/dist/prompts/PromptEngine.js +305 -0
  158. package/dist/prompts/PromptEngine.js.map +1 -0
  159. package/dist/prompts/PromptFileLoader.d.ts +21 -0
  160. package/dist/prompts/PromptFileLoader.d.ts.map +1 -0
  161. package/dist/prompts/PromptFileLoader.js +74 -0
  162. package/dist/prompts/PromptFileLoader.js.map +1 -0
  163. package/dist/prompts/index.d.ts +6 -0
  164. package/dist/prompts/index.d.ts.map +1 -0
  165. package/dist/prompts/index.js +11 -0
  166. package/dist/prompts/index.js.map +1 -0
  167. package/dist/state/IterationTracker.d.ts +64 -0
  168. package/dist/state/IterationTracker.d.ts.map +1 -0
  169. package/dist/state/IterationTracker.js +136 -0
  170. package/dist/state/IterationTracker.js.map +1 -0
  171. package/dist/state/StateManager.d.ts +79 -0
  172. package/dist/state/StateManager.d.ts.map +1 -0
  173. package/dist/state/StateManager.js +348 -0
  174. package/dist/state/StateManager.js.map +1 -0
  175. package/dist/state/StateValidator.d.ts +24 -0
  176. package/dist/state/StateValidator.d.ts.map +1 -0
  177. package/dist/state/StateValidator.js +147 -0
  178. package/dist/state/StateValidator.js.map +1 -0
  179. package/dist/state/index.d.ts +7 -0
  180. package/dist/state/index.d.ts.map +1 -0
  181. package/dist/state/index.js +13 -0
  182. package/dist/state/index.js.map +1 -0
  183. package/dist/types/analysis.d.ts +76 -0
  184. package/dist/types/analysis.d.ts.map +1 -0
  185. package/dist/types/analysis.js +6 -0
  186. package/dist/types/analysis.js.map +1 -0
  187. package/dist/types/config.d.ts +143 -0
  188. package/dist/types/config.d.ts.map +1 -0
  189. package/dist/types/config.js +7 -0
  190. package/dist/types/config.js.map +1 -0
  191. package/dist/types/discovery.d.ts +277 -0
  192. package/dist/types/discovery.d.ts.map +1 -0
  193. package/dist/types/discovery.js +7 -0
  194. package/dist/types/discovery.js.map +1 -0
  195. package/dist/types/driver.d.ts +148 -0
  196. package/dist/types/driver.d.ts.map +1 -0
  197. package/dist/types/driver.js +7 -0
  198. package/dist/types/driver.js.map +1 -0
  199. package/dist/types/index.d.ts +8 -0
  200. package/dist/types/index.d.ts.map +1 -0
  201. package/dist/types/index.js +24 -0
  202. package/dist/types/index.js.map +1 -0
  203. package/dist/types/prompts.d.ts +158 -0
  204. package/dist/types/prompts.d.ts.map +1 -0
  205. package/dist/types/prompts.js +6 -0
  206. package/dist/types/prompts.js.map +1 -0
  207. package/dist/types/sample-queries.d.ts +172 -0
  208. package/dist/types/sample-queries.d.ts.map +1 -0
  209. package/dist/types/sample-queries.js +7 -0
  210. package/dist/types/sample-queries.js.map +1 -0
  211. package/dist/types/state.d.ts +291 -0
  212. package/dist/types/state.d.ts.map +1 -0
  213. package/dist/types/state.js +7 -0
  214. package/dist/types/state.js.map +1 -0
  215. package/dist/utils/config-loader.d.ts +29 -0
  216. package/dist/utils/config-loader.d.ts.map +1 -0
  217. package/dist/utils/config-loader.js +163 -0
  218. package/dist/utils/config-loader.js.map +1 -0
  219. package/dist/utils/index.d.ts +5 -0
  220. package/dist/utils/index.d.ts.map +1 -0
  221. package/dist/utils/index.js +9 -0
  222. package/dist/utils/index.js.map +1 -0
  223. package/package.json +28 -3
  224. package/dist/ai/simple-ai-client.d.ts +0 -70
  225. package/dist/ai/simple-ai-client.d.ts.map +0 -1
  226. package/dist/ai/simple-ai-client.js +0 -181
  227. package/dist/ai/simple-ai-client.js.map +0 -1
  228. package/dist/analyzers/analyzer.d.ts +0 -23
  229. package/dist/analyzers/analyzer.d.ts.map +0 -1
  230. package/dist/analyzers/analyzer.js +0 -127
  231. package/dist/analyzers/analyzer.js.map +0 -1
  232. package/dist/cli-old/cli.d.ts +0 -3
  233. package/dist/cli-old/cli.d.ts.map +0 -1
  234. package/dist/cli-old/cli.js +0 -388
  235. package/dist/cli-old/cli.js.map +0 -1
  236. package/dist/commands/review.d.ts +0 -11
  237. package/dist/commands/review.d.ts.map +0 -1
  238. package/dist/commands/review.js +0 -82
  239. package/dist/commands/review.js.map +0 -1
  240. package/dist/database/connection.d.ts +0 -40
  241. package/dist/database/connection.d.ts.map +0 -1
  242. package/dist/database/connection.js +0 -136
  243. package/dist/database/connection.js.map +0 -1
  244. package/dist/database/introspection.d.ts +0 -59
  245. package/dist/database/introspection.d.ts.map +0 -1
  246. package/dist/database/introspection.js +0 -124
  247. package/dist/database/introspection.js.map +0 -1
  248. package/dist/generators/markdown-generator.d.ts +0 -8
  249. package/dist/generators/markdown-generator.d.ts.map +0 -1
  250. package/dist/generators/markdown-generator.js +0 -106
  251. package/dist/generators/markdown-generator.js.map +0 -1
  252. package/dist/generators/sql-generator.d.ts +0 -20
  253. package/dist/generators/sql-generator.d.ts.map +0 -1
  254. package/dist/generators/sql-generator.js +0 -83
  255. package/dist/generators/sql-generator.js.map +0 -1
  256. package/dist/state/state-manager.d.ts +0 -95
  257. package/dist/state/state-manager.d.ts.map +0 -1
  258. package/dist/state/state-manager.js +0 -236
  259. package/dist/state/state-manager.js.map +0 -1
  260. package/dist/types/state-file.d.ts +0 -124
  261. package/dist/types/state-file.d.ts.map +0 -1
  262. package/dist/types/state-file.js +0 -79
  263. package/dist/types/state-file.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ /**
3
+ * Generates SQL scripts with sp_addextendedproperty statements
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SQLGenerator = void 0;
7
+ class SQLGenerator {
8
+ /**
9
+ * Generate SQL script
10
+ */
11
+ generate(state, options = {}) {
12
+ const lines = [];
13
+ // Header
14
+ lines.push('-- Database Documentation Script');
15
+ lines.push(`-- Generated: ${new Date().toISOString()}`);
16
+ lines.push(`-- Database: ${state.database.name}`);
17
+ lines.push(`-- Server: ${state.database.server}`);
18
+ lines.push('');
19
+ lines.push('-- This script adds MS_Description extended properties to database objects');
20
+ lines.push('');
21
+ // Generate statements for each schema
22
+ for (const schema of state.schemas) {
23
+ lines.push('');
24
+ lines.push(`-- Schema: ${schema.name}`);
25
+ lines.push('');
26
+ // Schema description
27
+ if (schema.description) {
28
+ lines.push(this.generateSchemaDescription(schema.name, schema.description));
29
+ lines.push('GO');
30
+ lines.push('');
31
+ }
32
+ // Table descriptions
33
+ for (const table of schema.tables) {
34
+ // Check filters
35
+ if (options.approvedOnly && !table.userApproved) {
36
+ continue;
37
+ }
38
+ if (options.confidenceThreshold && table.descriptionIterations.length > 0) {
39
+ const latest = table.descriptionIterations[table.descriptionIterations.length - 1];
40
+ if ((latest.confidence || 0) < options.confidenceThreshold) {
41
+ continue;
42
+ }
43
+ }
44
+ // Table description
45
+ if (table.description) {
46
+ lines.push(`-- Table: ${schema.name}.${table.name}`);
47
+ lines.push(this.generateTableDescription(schema.name, table.name, table.description));
48
+ lines.push('GO');
49
+ lines.push('');
50
+ }
51
+ // Column descriptions
52
+ for (const column of table.columns) {
53
+ if (column.description) {
54
+ lines.push(this.generateColumnDescription(schema.name, table.name, column.name, column.description));
55
+ lines.push('GO');
56
+ }
57
+ }
58
+ lines.push('');
59
+ }
60
+ }
61
+ return lines.join('\n');
62
+ }
63
+ /**
64
+ * Generate schema description statement
65
+ */
66
+ generateSchemaDescription(schemaName, description) {
67
+ const escapedDescription = this.escapeString(description);
68
+ return `
69
+ IF EXISTS (
70
+ SELECT 1 FROM sys.extended_properties
71
+ WHERE major_id = SCHEMA_ID('${schemaName}')
72
+ AND name = 'MS_Description'
73
+ AND minor_id = 0
74
+ )
75
+ BEGIN
76
+ EXEC sp_dropextendedproperty
77
+ @name = N'MS_Description',
78
+ @level0type = N'SCHEMA',
79
+ @level0name = N'${schemaName}';
80
+ END
81
+
82
+ EXEC sp_addextendedproperty
83
+ @name = N'MS_Description',
84
+ @value = N'${escapedDescription}',
85
+ @level0type = N'SCHEMA',
86
+ @level0name = N'${schemaName}';
87
+ `.trim();
88
+ }
89
+ /**
90
+ * Generate table description statement
91
+ */
92
+ generateTableDescription(schemaName, tableName, description) {
93
+ const escapedDescription = this.escapeString(description);
94
+ return `
95
+ IF EXISTS (
96
+ SELECT 1 FROM sys.extended_properties ep
97
+ INNER JOIN sys.tables t ON ep.major_id = t.object_id
98
+ INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
99
+ WHERE s.name = '${schemaName}'
100
+ AND t.name = '${tableName}'
101
+ AND ep.name = 'MS_Description'
102
+ AND ep.minor_id = 0
103
+ )
104
+ BEGIN
105
+ EXEC sp_dropextendedproperty
106
+ @name = N'MS_Description',
107
+ @level0type = N'SCHEMA',
108
+ @level0name = N'${schemaName}',
109
+ @level1type = N'TABLE',
110
+ @level1name = N'${tableName}';
111
+ END
112
+
113
+ EXEC sp_addextendedproperty
114
+ @name = N'MS_Description',
115
+ @value = N'${escapedDescription}',
116
+ @level0type = N'SCHEMA',
117
+ @level0name = N'${schemaName}',
118
+ @level1type = N'TABLE',
119
+ @level1name = N'${tableName}';
120
+ `.trim();
121
+ }
122
+ /**
123
+ * Generate column description statement
124
+ */
125
+ generateColumnDescription(schemaName, tableName, columnName, description) {
126
+ const escapedDescription = this.escapeString(description);
127
+ return `
128
+ IF EXISTS (
129
+ SELECT 1 FROM sys.extended_properties ep
130
+ INNER JOIN sys.tables t ON ep.major_id = t.object_id
131
+ INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
132
+ INNER JOIN sys.columns c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
133
+ WHERE s.name = '${schemaName}'
134
+ AND t.name = '${tableName}'
135
+ AND c.name = '${columnName}'
136
+ AND ep.name = 'MS_Description'
137
+ )
138
+ BEGIN
139
+ EXEC sp_dropextendedproperty
140
+ @name = N'MS_Description',
141
+ @level0type = N'SCHEMA',
142
+ @level0name = N'${schemaName}',
143
+ @level1type = N'TABLE',
144
+ @level1name = N'${tableName}',
145
+ @level2type = N'COLUMN',
146
+ @level2name = N'${columnName}';
147
+ END
148
+
149
+ EXEC sp_addextendedproperty
150
+ @name = N'MS_Description',
151
+ @value = N'${escapedDescription}',
152
+ @level0type = N'SCHEMA',
153
+ @level0name = N'${schemaName}',
154
+ @level1type = N'TABLE',
155
+ @level1name = N'${tableName}',
156
+ @level2type = N'COLUMN',
157
+ @level2name = N'${columnName}';
158
+ `.trim();
159
+ }
160
+ /**
161
+ * Escape string for SQL
162
+ */
163
+ escapeString(str) {
164
+ return str.replace(/'/g, "''");
165
+ }
166
+ }
167
+ exports.SQLGenerator = SQLGenerator;
168
+ //# sourceMappingURL=SQLGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLGenerator.js","sourceRoot":"","sources":["../../src/generators/SQLGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Sample Query Generator
3
+ * Generates reference SQL queries for AI agents using LLM-powered analysis
4
+ */
5
+ import { PromptEngine } from '../prompts/PromptEngine.js';
6
+ import { BaseAutoDocDriver } from '../drivers/BaseAutoDocDriver.js';
7
+ import { SampleQueryGenerationResult, SampleQueryGenerationConfig } from '../types/sample-queries.js';
8
+ import { SchemaDefinition } from '../types/state.js';
9
+ export declare class SampleQueryGenerator {
10
+ private config;
11
+ private promptEngine;
12
+ private driver;
13
+ private model;
14
+ private effortLevel?;
15
+ private maxTokens;
16
+ private outputFilePath?;
17
+ private summaryFilePath?;
18
+ private totalTokensUsed;
19
+ private totalCost;
20
+ private startTime;
21
+ constructor(config: SampleQueryGenerationConfig, promptEngine: PromptEngine, driver: BaseAutoDocDriver, model: string, effortLevel?: number | undefined, maxTokens?: number, // Default from typical AI config
22
+ outputFilePath?: string | undefined, // Optional path for incremental query writes
23
+ summaryFilePath?: string | undefined);
24
+ generateQueries(schemas: SchemaDefinition[]): Promise<SampleQueryGenerationResult>;
25
+ private generateQueriesForSchema;
26
+ private selectImportantTables;
27
+ private calculateTableImportance;
28
+ /**
29
+ * Generate queries using two-prompt approach:
30
+ * 1. Plan what queries to create (lightweight)
31
+ * 2. Generate SQL for each query individually (detailed)
32
+ */
33
+ private generateQueriesForTable;
34
+ /**
35
+ * PHASE 1: Plan what queries to create (lightweight, all at once)
36
+ */
37
+ private planQueries;
38
+ /**
39
+ * PHASE 2: Generate SQL for a single query (detailed)
40
+ */
41
+ private generateQuerySQL;
42
+ private buildQueryGenerationContext;
43
+ private getRelatedTables;
44
+ private convertToTableContext;
45
+ private convertToColumnContext;
46
+ private getDatabaseType;
47
+ private getSeedContextDescription;
48
+ private parseQueryGenerationResponse;
49
+ private processGeneratedQueries;
50
+ private validateQuery;
51
+ private prepareValidationQuery;
52
+ private getSampleParameterValue;
53
+ private aggregateQueryMetrics;
54
+ /**
55
+ * Write queries and summary to files incrementally after each table completes
56
+ * This allows users to cancel the run and still see completed queries and progress
57
+ */
58
+ private writeIncrementalOutput;
59
+ /**
60
+ * Calculate summary statistics from current set of queries
61
+ */
62
+ private calculateSummary;
63
+ }
64
+ //# sourceMappingURL=SampleQueryGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SampleQueryGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/SampleQueryGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAEL,2BAA2B,EAE3B,2BAA2B,EAU5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AA6CtE,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,eAAe,CAAC;IAZ1B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;gBAGpB,MAAM,EAAE,2BAA2B,EACnC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,oBAAQ,EACpB,SAAS,GAAE,MAAc,EAAG,iCAAiC;IAC7D,cAAc,CAAC,oBAAQ,EAAG,6CAA6C;IACvE,eAAe,CAAC,oBAAQ;IAGrB,eAAe,CAC1B,OAAO,EAAE,gBAAgB,EAAE,GAC1B,OAAO,CAAC,2BAA2B,CAAC;YAsDzB,wBAAwB;IAqCtC,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,wBAAwB;IAkBhC;;;;OAIG;YACW,uBAAuB;IAsDrC;;OAEG;YACW,WAAW;IAkDzB;;OAEG;YACW,gBAAgB;IA8C9B,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,4BAA4B;YAYtB,uBAAuB;YA+CvB,aAAa;IA4B3B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,qBAAqB;IAgB7B;;;OAGG;YACW,sBAAsB;IA2BpC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAmBzB"}