@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,500 @@
1
+ "use strict";
2
+ /**
3
+ * Sample Query Generator
4
+ * Generates reference SQL queries for AI agents using LLM-powered analysis
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.SampleQueryGenerator = void 0;
31
+ const uuid_1 = require("uuid");
32
+ const core_1 = require("@memberjunction/core");
33
+ const fs = __importStar(require("fs/promises"));
34
+ class SampleQueryGenerator {
35
+ constructor(config, promptEngine, driver, model, effortLevel, maxTokens = 16000, // Default from typical AI config
36
+ outputFilePath, // Optional path for incremental query writes
37
+ summaryFilePath // Optional path for incremental summary writes
38
+ ) {
39
+ this.config = config;
40
+ this.promptEngine = promptEngine;
41
+ this.driver = driver;
42
+ this.model = model;
43
+ this.effortLevel = effortLevel;
44
+ this.maxTokens = maxTokens;
45
+ this.outputFilePath = outputFilePath;
46
+ this.summaryFilePath = summaryFilePath;
47
+ this.totalTokensUsed = 0;
48
+ this.totalCost = 0;
49
+ this.startTime = 0;
50
+ }
51
+ async generateQueries(schemas) {
52
+ this.startTime = Date.now();
53
+ this.totalTokensUsed = 0;
54
+ this.totalCost = 0;
55
+ const allQueries = [];
56
+ const summary = {
57
+ totalQueriesGenerated: 0,
58
+ queriesValidated: 0,
59
+ queriesFailed: 0,
60
+ totalExecutionTime: 0,
61
+ tokensUsed: 0,
62
+ estimatedCost: 0,
63
+ averageConfidence: 0,
64
+ queriesByType: {},
65
+ queriesByPattern: {},
66
+ queriesByComplexity: {}
67
+ };
68
+ try {
69
+ for (const schema of schemas) {
70
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Generating queries for schema: ${schema.name}`);
71
+ const schemaQueries = await this.generateQueriesForSchema(schema, allQueries);
72
+ allQueries.push(...schemaQueries);
73
+ }
74
+ summary.totalQueriesGenerated = allQueries.length;
75
+ summary.queriesValidated = allQueries.filter(q => q.validated).length;
76
+ summary.queriesFailed = allQueries.filter(q => !q.validated).length;
77
+ summary.totalExecutionTime = Date.now() - this.startTime;
78
+ summary.tokensUsed = this.totalTokensUsed;
79
+ summary.estimatedCost = this.totalCost;
80
+ summary.averageConfidence =
81
+ allQueries.reduce((sum, q) => sum + q.confidence, 0) / allQueries.length;
82
+ this.aggregateQueryMetrics(allQueries, summary);
83
+ return {
84
+ success: true,
85
+ queries: allQueries,
86
+ summary
87
+ };
88
+ }
89
+ catch (error) {
90
+ (0, core_1.LogError)(`[SampleQueryGenerator] Failed to generate queries: ${error.message}`);
91
+ return {
92
+ success: false,
93
+ queries: allQueries,
94
+ summary,
95
+ errorMessage: error.message
96
+ };
97
+ }
98
+ }
99
+ async generateQueriesForSchema(schema, existingQueries) {
100
+ const queries = [];
101
+ const importantTables = this.selectImportantTables(schema);
102
+ for (const focusTable of importantTables) {
103
+ // Check token budget (0 = unlimited)
104
+ if (this.config.tokenBudget > 0 && this.totalTokensUsed >= this.config.tokenBudget) {
105
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Token budget reached, stopping query generation`);
106
+ break;
107
+ }
108
+ try {
109
+ const tableQueries = await this.generateQueriesForTable(schema, focusTable, existingQueries.concat(queries));
110
+ queries.push(...tableQueries);
111
+ // Write incrementally after each table if output path is provided
112
+ if ((this.outputFilePath || this.summaryFilePath) && tableQueries.length > 0) {
113
+ await this.writeIncrementalOutput(existingQueries.concat(queries));
114
+ }
115
+ }
116
+ catch (error) {
117
+ (0, core_1.LogError)(`[SampleQueryGenerator] Failed to generate queries for ${focusTable.name}: ${error.message}`);
118
+ }
119
+ }
120
+ return queries;
121
+ }
122
+ selectImportantTables(schema) {
123
+ const tablesWithData = schema.tables
124
+ .filter(t => t.rowCount > 0)
125
+ .sort((a, b) => {
126
+ const scoreA = this.calculateTableImportance(a);
127
+ const scoreB = this.calculateTableImportance(b);
128
+ return scoreB - scoreA;
129
+ });
130
+ // Determine how many tables to select
131
+ const maxTables = this.config.maxTables ?? 10; // Default to 10 if not specified
132
+ // If maxTables is 0, return all tables with data
133
+ if (maxTables === 0) {
134
+ return tablesWithData;
135
+ }
136
+ // Otherwise, return the top N tables
137
+ return tablesWithData.slice(0, Math.min(maxTables, tablesWithData.length));
138
+ }
139
+ calculateTableImportance(table) {
140
+ let score = 0;
141
+ score += Math.log10(table.rowCount + 1) * 10;
142
+ score += table.dependsOn.length * 5;
143
+ score += table.dependents.length * 5;
144
+ if (table.description)
145
+ score += 20;
146
+ const hasDateColumn = table.columns.some(c => c.dataType.toLowerCase().includes('date') ||
147
+ c.dataType.toLowerCase().includes('time'));
148
+ if (hasDateColumn)
149
+ score += 15;
150
+ return score;
151
+ }
152
+ /**
153
+ * Generate queries using two-prompt approach:
154
+ * 1. Plan what queries to create (lightweight)
155
+ * 2. Generate SQL for each query individually (detailed)
156
+ */
157
+ async generateQueriesForTable(schema, focusTable, existingQueries) {
158
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] === Generating queries for ${focusTable.name} ===`);
159
+ // PHASE 1: Plan queries (what to create)
160
+ const queryPlans = await this.planQueries(schema, focusTable, existingQueries);
161
+ if (queryPlans.length === 0) {
162
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] No query plans generated for ${focusTable.name}`);
163
+ return [];
164
+ }
165
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Generated ${queryPlans.length} query plans for ${focusTable.name}`);
166
+ // PHASE 2: Generate SQL for each query
167
+ const queries = [];
168
+ for (let i = 0; i < queryPlans.length; i++) {
169
+ const plan = queryPlans[i];
170
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Generating SQL for query ${i + 1}/${queryPlans.length}: ${plan.name}`);
171
+ try {
172
+ const querySQL = await this.generateQuerySQL(schema, focusTable, plan, queryPlans);
173
+ // Combine plan + SQL into complete SampleQuery
174
+ const completeQuery = {
175
+ ...plan,
176
+ ...querySQL,
177
+ schema: schema.name,
178
+ sampleResultRows: [],
179
+ validated: false,
180
+ generatedAt: new Date().toISOString(),
181
+ modelUsed: this.model
182
+ };
183
+ // Validate the query if enabled
184
+ if (this.config.maxExecutionTime > 0) {
185
+ await this.validateQuery(completeQuery);
186
+ }
187
+ queries.push(completeQuery);
188
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] ✓ Query ${i + 1} complete: ${plan.name}`);
189
+ }
190
+ catch (error) {
191
+ (0, core_1.LogError)(`[SampleQueryGenerator] Failed to generate SQL for query: ${plan.name}`, null, error.message);
192
+ // Continue with other queries even if one fails
193
+ }
194
+ }
195
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] === Completed ${queries.length}/${queryPlans.length} queries for ${focusTable.name} ===`);
196
+ return queries;
197
+ }
198
+ /**
199
+ * PHASE 1: Plan what queries to create (lightweight, all at once)
200
+ */
201
+ async planQueries(schema, focusTable, existingQueries) {
202
+ const relatedTables = this.getRelatedTables(schema, focusTable);
203
+ const allTablesContext = [
204
+ this.convertToTableContext(focusTable),
205
+ ...relatedTables.map(t => this.convertToTableContext(t))
206
+ ];
207
+ const promptContext = {
208
+ schemaName: schema.name,
209
+ databaseType: this.getDatabaseType(),
210
+ tables: allTablesContext,
211
+ focusTable: focusTable.name,
212
+ queriesPerTable: this.config.queriesPerTable,
213
+ seedContext: this.getSeedContextDescription(schema),
214
+ existingQueries: existingQueries.map(q => ({
215
+ name: q.name,
216
+ queryType: q.queryType,
217
+ queryPattern: q.queryPattern
218
+ }))
219
+ };
220
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Phase 1: Planning queries for ${focusTable.name}`);
221
+ // Use configured maxTokens for planning phase
222
+ // Planning is lightweight, so we can use a smaller portion if needed
223
+ const planningMaxTokens = Math.min(this.maxTokens, 8000);
224
+ const result = await this.promptEngine.executePrompt('query-planning', promptContext, {
225
+ responseFormat: 'JSON',
226
+ maxTokens: planningMaxTokens
227
+ });
228
+ this.totalTokensUsed += result.tokensUsed;
229
+ this.totalCost += result.cost || 0;
230
+ if (!result.success || !result.result) {
231
+ throw new Error(`Query planning failed: ${result.errorMessage || 'Unknown error'}`);
232
+ }
233
+ return result.result.queries || [];
234
+ }
235
+ /**
236
+ * PHASE 2: Generate SQL for a single query (detailed)
237
+ */
238
+ async generateQuerySQL(schema, focusTable, queryPlan, allPlans) {
239
+ const relatedTables = this.getRelatedTables(schema, focusTable);
240
+ const focusTableContext = this.convertToTableContext(focusTable);
241
+ const relatedTablesContext = relatedTables.map(t => this.convertToTableContext(t));
242
+ // Find related query plans for alignment context
243
+ const relatedQueryPlans = allPlans.filter(p => queryPlan.relatedQueryIds.includes(p.id) || p.relatedQueryIds.includes(queryPlan.id));
244
+ const promptContext = {
245
+ schemaName: schema.name,
246
+ databaseType: this.getDatabaseType(),
247
+ focusTable: focusTable.name,
248
+ tableInfo: focusTableContext,
249
+ relatedTables: relatedTablesContext,
250
+ queryPlan,
251
+ relatedQueryPlans
252
+ };
253
+ // Use configured maxTokens for SQL generation phase
254
+ // This is the detailed phase where we need full output capacity
255
+ const result = await this.promptEngine.executePrompt('single-query-generation', promptContext, {
256
+ responseFormat: 'JSON',
257
+ maxTokens: this.maxTokens
258
+ });
259
+ this.totalTokensUsed += result.tokensUsed;
260
+ this.totalCost += result.cost || 0;
261
+ if (!result.success || !result.result) {
262
+ throw new Error(`SQL generation failed: ${result.errorMessage || 'Unknown error'}`);
263
+ }
264
+ return result.result;
265
+ }
266
+ buildQueryGenerationContext(schema, focusTable) {
267
+ const relatedTables = this.getRelatedTables(schema, focusTable);
268
+ return {
269
+ schema: schema.name,
270
+ tables: [focusTable, ...relatedTables].map(t => this.convertToTableContext(t)),
271
+ existingQueries: []
272
+ };
273
+ }
274
+ getRelatedTables(schema, focusTable) {
275
+ const relatedTableNames = new Set();
276
+ focusTable.dependsOn.forEach(fk => {
277
+ if (fk.schema === schema.name) {
278
+ relatedTableNames.add(fk.table);
279
+ }
280
+ });
281
+ focusTable.dependents.forEach(fk => {
282
+ if (fk.schema === schema.name) {
283
+ relatedTableNames.add(fk.table);
284
+ }
285
+ });
286
+ return schema.tables.filter(t => relatedTableNames.has(t.name));
287
+ }
288
+ convertToTableContext(table) {
289
+ return {
290
+ name: table.name,
291
+ description: table.description,
292
+ rowCount: table.rowCount,
293
+ columns: table.columns.map(c => this.convertToColumnContext(c)),
294
+ primaryKeys: table.columns.filter(c => c.isPrimaryKey).map(c => c.name),
295
+ foreignKeys: table.columns
296
+ .filter(c => c.isForeignKey && c.foreignKeyReferences)
297
+ .map(c => ({
298
+ column: c.name,
299
+ referencesSchema: c.foreignKeyReferences.schema,
300
+ referencesTable: c.foreignKeyReferences.table,
301
+ referencesColumn: c.foreignKeyReferences.column
302
+ })),
303
+ dependents: table.dependents.map(d => d.table)
304
+ };
305
+ }
306
+ convertToColumnContext(column) {
307
+ return {
308
+ name: column.name,
309
+ dataType: column.dataType,
310
+ description: column.description,
311
+ isPrimaryKey: column.isPrimaryKey,
312
+ isForeignKey: column.isForeignKey,
313
+ isNullable: column.isNullable,
314
+ possibleValues: column.possibleValues,
315
+ statistics: column.statistics
316
+ };
317
+ }
318
+ getDatabaseType() {
319
+ return 'SQL Server';
320
+ }
321
+ getSeedContextDescription(schema) {
322
+ if (schema.inferredPurpose) {
323
+ return schema.inferredPurpose;
324
+ }
325
+ if (schema.description) {
326
+ return schema.description;
327
+ }
328
+ return undefined;
329
+ }
330
+ parseQueryGenerationResponse(text) {
331
+ const jsonMatch = text.match(/```json\s*([\s\S]*?)\s*```/);
332
+ const jsonText = jsonMatch ? jsonMatch[1] : text;
333
+ try {
334
+ return JSON.parse(jsonText);
335
+ }
336
+ catch (error) {
337
+ (0, core_1.LogError)(`[SampleQueryGenerator] Failed to parse query generation response: ${error.message}`);
338
+ return { queries: [] };
339
+ }
340
+ }
341
+ async processGeneratedQueries(response, schemaName, focusTable, modelUsed, tokensUsed) {
342
+ const queries = [];
343
+ for (const rawQuery of response.queries) {
344
+ const query = {
345
+ id: rawQuery.id || (0, uuid_1.v4)(),
346
+ name: rawQuery.name,
347
+ description: rawQuery.description,
348
+ businessPurpose: rawQuery.businessPurpose,
349
+ schema: schemaName,
350
+ primaryEntities: rawQuery.primaryEntities,
351
+ relatedEntities: rawQuery.relatedEntities,
352
+ queryType: rawQuery.queryType,
353
+ queryPattern: rawQuery.queryPattern,
354
+ complexity: rawQuery.complexity,
355
+ sqlQuery: rawQuery.sqlQuery,
356
+ parameters: rawQuery.parameters,
357
+ sampleResultColumns: rawQuery.sampleResultColumns,
358
+ sampleResultRows: [],
359
+ filteringRules: rawQuery.filteringRules || [],
360
+ aggregationRules: rawQuery.aggregationRules || [],
361
+ joinRules: rawQuery.joinRules || [],
362
+ relatedQueries: rawQuery.relatedQueries,
363
+ alignmentNotes: rawQuery.alignmentNotes,
364
+ validated: false,
365
+ generatedAt: new Date().toISOString(),
366
+ confidence: rawQuery.confidence,
367
+ modelUsed: modelUsed,
368
+ reasoning: rawQuery.reasoning
369
+ };
370
+ if (this.config.maxExecutionTime > 0) {
371
+ await this.validateQuery(query);
372
+ }
373
+ queries.push(query);
374
+ }
375
+ return queries;
376
+ }
377
+ async validateQuery(query) {
378
+ try {
379
+ const validationQuery = this.prepareValidationQuery(query.sqlQuery);
380
+ const startTime = Date.now();
381
+ const result = await this.driver.executeQuery(validationQuery);
382
+ const executionTime = Date.now() - startTime;
383
+ if (result.success && result.data) {
384
+ query.validated = true;
385
+ query.executionTime = executionTime;
386
+ query.sampleResultRows = result.data.slice(0, 5);
387
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Query validated: ${query.name} (${executionTime}ms, ${result.data.length} rows)`);
388
+ }
389
+ else {
390
+ query.validated = false;
391
+ query.validationError = result.errorMessage || 'Query returned no results';
392
+ (0, core_1.LogError)(`[SampleQueryGenerator] Query validation failed: ${query.name} - ${query.validationError}`);
393
+ }
394
+ }
395
+ catch (error) {
396
+ query.validated = false;
397
+ query.validationError = error.message;
398
+ (0, core_1.LogError)(`[SampleQueryGenerator] Query execution error: ${query.name} - ${query.validationError}`);
399
+ }
400
+ }
401
+ prepareValidationQuery(sqlQuery) {
402
+ let validationQuery = sqlQuery;
403
+ const parameterPattern = /@(\w+)/g;
404
+ const matches = [...sqlQuery.matchAll(parameterPattern)];
405
+ for (const match of matches) {
406
+ const paramName = match[1];
407
+ const sampleValue = this.getSampleParameterValue(paramName);
408
+ validationQuery = validationQuery.replace(match[0], sampleValue);
409
+ }
410
+ if (!validationQuery.toLowerCase().includes('top ') &&
411
+ !validationQuery.toLowerCase().includes('limit ')) {
412
+ const selectMatch = validationQuery.match(/SELECT\s+/i);
413
+ if (selectMatch) {
414
+ const insertPosition = selectMatch.index + selectMatch[0].length;
415
+ validationQuery =
416
+ validationQuery.slice(0, insertPosition) +
417
+ 'TOP 10 ' +
418
+ validationQuery.slice(insertPosition);
419
+ }
420
+ }
421
+ return validationQuery;
422
+ }
423
+ getSampleParameterValue(paramName) {
424
+ const nameLower = paramName.toLowerCase();
425
+ if (nameLower.includes('date') || nameLower.includes('start') || nameLower.includes('end')) {
426
+ if (nameLower.includes('start')) {
427
+ return "'2024-01-01'";
428
+ }
429
+ else if (nameLower.includes('end')) {
430
+ return "'2024-12-31'";
431
+ }
432
+ return "'2024-06-01'";
433
+ }
434
+ if (nameLower.includes('status')) {
435
+ return "'Active'";
436
+ }
437
+ if (nameLower.includes('id')) {
438
+ return "1";
439
+ }
440
+ if (nameLower.includes('name')) {
441
+ return "'Sample'";
442
+ }
443
+ return "'TestValue'";
444
+ }
445
+ aggregateQueryMetrics(queries, summary) {
446
+ for (const query of queries) {
447
+ summary.queriesByType[query.queryType] =
448
+ (summary.queriesByType[query.queryType] || 0) + 1;
449
+ summary.queriesByPattern[query.queryPattern] =
450
+ (summary.queriesByPattern[query.queryPattern] || 0) + 1;
451
+ summary.queriesByComplexity[query.complexity] =
452
+ (summary.queriesByComplexity[query.complexity] || 0) + 1;
453
+ }
454
+ }
455
+ /**
456
+ * Write queries and summary to files incrementally after each table completes
457
+ * This allows users to cancel the run and still see completed queries and progress
458
+ */
459
+ async writeIncrementalOutput(queries) {
460
+ try {
461
+ // Write queries if path is provided
462
+ if (this.outputFilePath) {
463
+ await fs.writeFile(this.outputFilePath, JSON.stringify(queries, null, 2), 'utf-8');
464
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Wrote ${queries.length} queries to ${this.outputFilePath}`);
465
+ }
466
+ // Calculate and write summary if path is provided
467
+ if (this.summaryFilePath) {
468
+ const summary = this.calculateSummary(queries);
469
+ await fs.writeFile(this.summaryFilePath, JSON.stringify(summary, null, 2), 'utf-8');
470
+ (0, core_1.LogStatus)(`[SampleQueryGenerator] Updated summary: ${summary.totalQueriesGenerated} queries, ${summary.queriesValidated} validated`);
471
+ }
472
+ }
473
+ catch (error) {
474
+ (0, core_1.LogError)(`[SampleQueryGenerator] Failed to write incremental output: ${error.message}`);
475
+ }
476
+ }
477
+ /**
478
+ * Calculate summary statistics from current set of queries
479
+ */
480
+ calculateSummary(queries) {
481
+ const summary = {
482
+ totalQueriesGenerated: queries.length,
483
+ queriesValidated: queries.filter(q => q.validated).length,
484
+ queriesFailed: queries.filter(q => !q.validated).length,
485
+ totalExecutionTime: Date.now() - this.startTime,
486
+ tokensUsed: this.totalTokensUsed,
487
+ estimatedCost: this.totalCost,
488
+ averageConfidence: queries.length > 0
489
+ ? queries.reduce((sum, q) => sum + q.confidence, 0) / queries.length
490
+ : 0,
491
+ queriesByType: {},
492
+ queriesByPattern: {},
493
+ queriesByComplexity: {}
494
+ };
495
+ this.aggregateQueryMetrics(queries, summary);
496
+ return summary;
497
+ }
498
+ }
499
+ exports.SampleQueryGenerator = SampleQueryGenerator;
500
+ //# sourceMappingURL=SampleQueryGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SampleQueryGenerator.js","sourceRoot":"","sources":["../../src/generators/SampleQueryGenerator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+BAAoC;AACpC,+CAA2D;AAG3D,gDAAkC;AA6DlC,MAAa,oBAAoB;IAK/B,YACU,MAAmC,EACnC,YAA0B,EAC1B,MAAyB,EACzB,KAAa,EACb,WAAoB,EACpB,YAAoB,KAAK,EAAG,iCAAiC;IAC7D,cAAuB,EAAG,6CAA6C;IACvE,eAAwB,CAAE,+CAA+C;;QAPzE,WAAM,GAAN,MAAM,CAA6B;QACnC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAmB;QACzB,UAAK,GAAL,KAAK,CAAQ;QACb,gBAAW,GAAX,WAAW,CAAS;QACpB,cAAS,GAAT,SAAS,CAAgB;QACzB,mBAAc,GAAd,cAAc,CAAS;QACvB,oBAAe,GAAf,eAAe,CAAS;QAZ1B,oBAAe,GAAW,CAAC,CAAC;QAC5B,cAAS,GAAW,CAAC,CAAC;QACtB,cAAS,GAAW,CAAC,CAAC;IAW3B,CAAC;IAEG,KAAK,CAAC,eAAe,CAC1B,OAA2B;QAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,MAAM,UAAU,GAAkB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAiC;YAC5C,qBAAqB,EAAE,CAAC;YACxB,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,CAAC;YACrB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,EAA+B;YAC9C,gBAAgB,EAAE,EAAkC;YACpD,mBAAmB,EAAE,EAAqC;SAC3D,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAA,gBAAS,EAAC,yDAAyD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAElF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC9E,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC;YAClD,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YACtE,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YACpE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACzD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;YAC1C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,OAAO,CAAC,iBAAiB;gBACvB,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAE3E,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEhD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,UAAU;gBACnB,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,eAAQ,EAAC,sDAAuD,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,UAAU;gBACnB,OAAO;gBACP,YAAY,EAAG,KAAe,CAAC,OAAO;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,MAAwB,EACxB,eAA8B;QAE9B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE3D,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;YACzC,qCAAqC;YACrC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACnF,IAAA,gBAAS,EAAC,wEAAwE,CAAC,CAAC;gBACpF,MAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACrD,MAAM,EACN,UAAU,EACV,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAChC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAE9B,kEAAkE;gBAClE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7E,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,eAAQ,EACN,yDAAyD,UAAU,CAAC,IAAI,KAAM,KAAe,CAAC,OAAO,EAAE,CACxG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,MAAwB;QACpD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QAEL,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAE,iCAAiC;QAEjF,iDAAiD;QACjD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,qCAAqC;QACrC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,wBAAwB,CAAC,KAAsB;QACrD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAErC,IAAI,KAAK,CAAC,WAAW;YAAE,KAAK,IAAI,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC1C,CAAC;QACF,IAAI,aAAa;YAAE,KAAK,IAAI,EAAE,CAAC;QAE/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CACnC,MAAwB,EACxB,UAA2B,EAC3B,eAA8B;QAE9B,IAAA,gBAAS,EAAC,qDAAqD,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC;QAEtF,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAE/E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAA,gBAAS,EAAC,uDAAuD,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAA,gBAAS,EAAC,oCAAoC,UAAU,CAAC,MAAM,oBAAoB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAEtG,uCAAuC;QACvC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAA,gBAAS,EAAC,mDAAmD,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAEzG,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAEnF,+CAA+C;gBAC/C,MAAM,aAAa,GAAgB;oBACjC,GAAG,IAAI;oBACP,GAAG,QAAQ;oBACX,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,gBAAgB,EAAE,EAAE;oBACpB,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,SAAS,EAAE,IAAI,CAAC,KAAK;iBACtB,CAAC;gBAEF,gCAAgC;gBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5B,IAAA,gBAAS,EAAC,kCAAkC,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,eAAQ,EAAC,4DAA4D,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;gBAClH,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,IAAA,gBAAS,EAAC,wCAAwC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,gBAAgB,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC;QAC5H,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,MAAwB,EACxB,UAA2B,EAC3B,eAA8B;QAE9B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG;YACvB,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC;YACtC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SACzD,CAAC;QAEF,MAAM,aAAa,GAAG;YACpB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YAC5C,WAAW,EAAE,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YACnD,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,YAAY,EAAE,CAAC,CAAC,YAAY;aAC7B,CAAC,CAAC;SACJ,CAAC;QAEF,IAAA,gBAAS,EAAC,wDAAwD,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAErF,8CAA8C;QAC9C,qEAAqE;QACrE,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAClD,gBAAgB,EAChB,aAAa,EACb;YACE,cAAc,EAAE,MAAM;YACtB,SAAS,EAAE,iBAAiB;SAC7B,CACF,CAAC;QAEF,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,MAAwB,EACxB,UAA2B,EAC3B,SAAoB,EACpB,QAAqB;QAErB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC5C,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CACrF,CAAC;QAEF,MAAM,aAAa,GAAG;YACpB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,SAAS,EAAE,iBAAiB;YAC5B,aAAa,EAAE,oBAAoB;YACnC,SAAS;YACT,iBAAiB;SAClB,CAAC;QAEF,oDAAoD;QACpD,gEAAgE;QAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAClD,yBAAyB,EACzB,aAAa,EACb;YACE,cAAc,EAAE,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CACF,CAAC;QAEF,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAEO,2BAA2B,CACjC,MAAwB,EACxB,UAA2B;QAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEhE,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9E,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAwB,EAAE,UAA2B;QAC5E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE5C,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAChC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACjC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAEO,qBAAqB,CAAC,KAAsB;QAClD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/D,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvE,WAAW,EAAE,KAAK,CAAC,OAAO;iBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,oBAAoB,CAAC;iBACrD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,MAAM,EAAE,CAAC,CAAC,IAAI;gBACd,gBAAgB,EAAE,CAAC,CAAC,oBAAqB,CAAC,MAAM;gBAChD,eAAe,EAAE,CAAC,CAAC,oBAAqB,CAAC,KAAK;gBAC9C,gBAAgB,EAAE,CAAC,CAAC,oBAAqB,CAAC,MAAM;aACjD,CAAC,CAAC;YACL,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,MAe9B;QACC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,yBAAyB,CAAC,MAAwB;QACxD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,eAAe,CAAC;QAChC,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,4BAA4B,CAAC,IAAY;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,eAAQ,EAAC,qEAAsE,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1G,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,QAAuC,EACvC,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,UAAkB;QAElB,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAgB;gBACzB,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,IAAA,SAAM,GAAE;gBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,MAAM,EAAE,UAAU;gBAClB,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,gBAAgB,EAAE,EAAE;gBACpB,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;gBAC7C,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;gBACjD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE;gBACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAkB;QAC5C,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;gBACpC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEjD,IAAA,gBAAS,EACP,2CAA2C,KAAK,CAAC,IAAI,KAAK,aAAa,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CACzG,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBACxB,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,IAAI,2BAA2B,CAAC;gBAC3E,IAAA,eAAQ,EAAC,mDAAmD,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,eAAe,GAAI,KAAe,CAAC,OAAO,CAAC;YACjD,IAAA,eAAQ,EAAC,iDAAiD,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,IAAI,eAAe,GAAG,QAAQ,CAAC;QAE/B,MAAM,gBAAgB,GAAG,SAAS,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAC5D,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/C,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,cAAc,GAAG,WAAW,CAAC,KAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClE,eAAe;oBACb,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;wBACxC,SAAS;wBACT,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3F,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,cAAc,CAAC;YACxB,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,cAAc,CAAC;YACxB,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,qBAAqB,CAC3B,OAAsB,EACtB,OAAqC;QAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEpD,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC1C,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAE1D,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC3C,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB,CAAC,OAAsB;QACzD,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAChC,OAAO,CACR,CAAC;gBACF,IAAA,gBAAS,EAAC,gCAAgC,OAAO,CAAC,MAAM,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAChG,CAAC;YAED,kDAAkD;YAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAChC,OAAO,CACR,CAAC;gBACF,IAAA,gBAAS,EAAC,2CAA2C,OAAO,CAAC,qBAAqB,aAAa,OAAO,CAAC,gBAAgB,YAAY,CAAC,CAAC;YACvI,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,eAAQ,EAAC,8DAA+D,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAsB;QAC7C,MAAM,OAAO,GAAiC;YAC5C,qBAAqB,EAAE,OAAO,CAAC,MAAM;YACrC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YACzD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YACvD,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;YAC/C,UAAU,EAAE,IAAI,CAAC,eAAe;YAChC,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,iBAAiB,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;gBACpE,CAAC,CAAC,CAAC;YACL,aAAa,EAAE,EAA+B;YAC9C,gBAAgB,EAAE,EAAkC;YACpD,mBAAmB,EAAE,EAAqC;SAC3D,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAnmBD,oDAmmBC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Exports for generators module
3
+ */
4
+ export { SQLGenerator, SQLGeneratorOptions } from './SQLGenerator.js';
5
+ export { MarkdownGenerator } from './MarkdownGenerator.js';
6
+ export { ReportGenerator } from './ReportGenerator.js';
7
+ export { HTMLGenerator, HTMLGeneratorOptions } from './HTMLGenerator.js';
8
+ export { CSVGenerator, CSVGeneratorOptions, CSVExport } from './CSVGenerator.js';
9
+ export { MermaidGenerator, MermaidGeneratorOptions } from './MermaidGenerator.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Exports for generators module
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MermaidGenerator = exports.CSVGenerator = exports.HTMLGenerator = exports.ReportGenerator = exports.MarkdownGenerator = exports.SQLGenerator = void 0;
7
+ var SQLGenerator_js_1 = require("./SQLGenerator.js");
8
+ Object.defineProperty(exports, "SQLGenerator", { enumerable: true, get: function () { return SQLGenerator_js_1.SQLGenerator; } });
9
+ var MarkdownGenerator_js_1 = require("./MarkdownGenerator.js");
10
+ Object.defineProperty(exports, "MarkdownGenerator", { enumerable: true, get: function () { return MarkdownGenerator_js_1.MarkdownGenerator; } });
11
+ var ReportGenerator_js_1 = require("./ReportGenerator.js");
12
+ Object.defineProperty(exports, "ReportGenerator", { enumerable: true, get: function () { return ReportGenerator_js_1.ReportGenerator; } });
13
+ var HTMLGenerator_js_1 = require("./HTMLGenerator.js");
14
+ Object.defineProperty(exports, "HTMLGenerator", { enumerable: true, get: function () { return HTMLGenerator_js_1.HTMLGenerator; } });
15
+ var CSVGenerator_js_1 = require("./CSVGenerator.js");
16
+ Object.defineProperty(exports, "CSVGenerator", { enumerable: true, get: function () { return CSVGenerator_js_1.CSVGenerator; } });
17
+ var MermaidGenerator_js_1 = require("./MermaidGenerator.js");
18
+ Object.defineProperty(exports, "MermaidGenerator", { enumerable: true, get: function () { return MermaidGenerator_js_1.MermaidGenerator; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qDAAsE;AAA7D,+GAAA,YAAY,OAAA;AACrB,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA;AAC1B,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,uDAAyE;AAAhE,iHAAA,aAAa,OAAA;AACtB,qDAAiF;AAAxE,+GAAA,YAAY,OAAA;AACrB,6DAAkF;AAAzE,uHAAA,gBAAgB,OAAA"}
package/dist/index.d.ts CHANGED
@@ -1,23 +1,14 @@
1
1
  /**
2
- * @memberjunction/db-auto-doc - SQL Server Database Auto-Documentation
3
- *
4
- * AI-powered documentation generator for SQL Server databases.
5
- * Works standalone - no MemberJunction runtime required.
6
- *
7
- * Use via CLI:
8
- * db-auto-doc init
9
- * db-auto-doc analyze --interactive
10
- * db-auto-doc review
11
- * db-auto-doc export --format=sql
12
- *
13
- * Or programmatically:
2
+ * DBAutoDoc - AI-powered SQL Server database documentation generator
3
+ * Main exports for programmatic use
14
4
  */
15
- export * from './types/state-file';
16
- export * from './database/connection';
17
- export * from './database/introspection';
18
- export * from './state/state-manager';
19
- export * from './ai/simple-ai-client';
20
- export * from './analyzers/analyzer';
21
- export * from './generators/sql-generator';
22
- export * from './generators/markdown-generator';
5
+ export * from './api/index.js';
6
+ export * from './types/index.js';
7
+ export * from './database/index.js';
8
+ export * from './prompts/index.js';
9
+ export * from './state/index.js';
10
+ export * from './core/index.js';
11
+ export * from './core/AnalysisOrchestrator.js';
12
+ export * from './generators/index.js';
13
+ export * from './utils/index.js';
23
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC"}