@memberjunction/db-auto-doc 5.11.0 → 5.12.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 (101) hide show
  1. package/README.md +171 -2
  2. package/bin/run.js +18 -5
  3. package/dist/commands/analyze.js +2 -2
  4. package/dist/commands/analyze.js.map +1 -1
  5. package/dist/commands/export.d.ts +3 -0
  6. package/dist/commands/export.d.ts.map +1 -1
  7. package/dist/commands/export.js +21 -2
  8. package/dist/commands/export.js.map +1 -1
  9. package/dist/commands/generate-queries.d.ts.map +1 -1
  10. package/dist/commands/generate-queries.js +1 -1
  11. package/dist/commands/generate-queries.js.map +1 -1
  12. package/dist/core/AnalysisEngine.d.ts +10 -2
  13. package/dist/core/AnalysisEngine.d.ts.map +1 -1
  14. package/dist/core/AnalysisEngine.js +117 -36
  15. package/dist/core/AnalysisEngine.js.map +1 -1
  16. package/dist/core/AnalysisOrchestrator.d.ts +22 -0
  17. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
  18. package/dist/core/AnalysisOrchestrator.js +259 -46
  19. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  20. package/dist/core/BackpropagationEngine.d.ts +7 -1
  21. package/dist/core/BackpropagationEngine.d.ts.map +1 -1
  22. package/dist/core/BackpropagationEngine.js +41 -4
  23. package/dist/core/BackpropagationEngine.js.map +1 -1
  24. package/dist/core/GuardrailsManager.d.ts.map +1 -1
  25. package/dist/core/GuardrailsManager.js +4 -0
  26. package/dist/core/GuardrailsManager.js.map +1 -1
  27. package/dist/discovery/DiscoveryEngine.d.ts +8 -1
  28. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -1
  29. package/dist/discovery/DiscoveryEngine.js +199 -30
  30. package/dist/discovery/DiscoveryEngine.js.map +1 -1
  31. package/dist/discovery/FKDetector.d.ts +53 -1
  32. package/dist/discovery/FKDetector.d.ts.map +1 -1
  33. package/dist/discovery/FKDetector.js +172 -17
  34. package/dist/discovery/FKDetector.js.map +1 -1
  35. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -1
  36. package/dist/discovery/LLMDiscoveryValidator.js +12 -4
  37. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
  38. package/dist/discovery/LLMSanityChecker.d.ts +5 -1
  39. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -1
  40. package/dist/discovery/LLMSanityChecker.js +12 -4
  41. package/dist/discovery/LLMSanityChecker.js.map +1 -1
  42. package/dist/discovery/PKDetector.d.ts +9 -1
  43. package/dist/discovery/PKDetector.d.ts.map +1 -1
  44. package/dist/discovery/PKDetector.js +90 -37
  45. package/dist/discovery/PKDetector.js.map +1 -1
  46. package/dist/drivers/BaseAutoDocDriver.d.ts +1 -1
  47. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -1
  48. package/dist/drivers/BaseAutoDocDriver.js +2 -0
  49. package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
  50. package/dist/drivers/MySQLDriver.d.ts +1 -1
  51. package/dist/drivers/MySQLDriver.d.ts.map +1 -1
  52. package/dist/drivers/MySQLDriver.js.map +1 -1
  53. package/dist/drivers/PostgreSQLDriver.d.ts +1 -1
  54. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -1
  55. package/dist/drivers/PostgreSQLDriver.js.map +1 -1
  56. package/dist/drivers/SQLServerDriver.d.ts +1 -1
  57. package/dist/drivers/SQLServerDriver.d.ts.map +1 -1
  58. package/dist/drivers/SQLServerDriver.js.map +1 -1
  59. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +99 -0
  60. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -0
  61. package/dist/generators/AdditionalSchemaInfoGenerator.js +275 -0
  62. package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -0
  63. package/dist/generators/MarkdownGenerator.d.ts.map +1 -1
  64. package/dist/generators/MarkdownGenerator.js +24 -5
  65. package/dist/generators/MarkdownGenerator.js.map +1 -1
  66. package/dist/generators/MermaidGenerator.d.ts.map +1 -1
  67. package/dist/generators/MermaidGenerator.js +5 -3
  68. package/dist/generators/MermaidGenerator.js.map +1 -1
  69. package/dist/generators/ReportGenerator.js +1 -1
  70. package/dist/generators/ReportGenerator.js.map +1 -1
  71. package/dist/generators/SampleQueryGenerator.d.ts +6 -1
  72. package/dist/generators/SampleQueryGenerator.d.ts.map +1 -1
  73. package/dist/generators/SampleQueryGenerator.js +26 -6
  74. package/dist/generators/SampleQueryGenerator.js.map +1 -1
  75. package/dist/prompts/PromptEngine.d.ts.map +1 -1
  76. package/dist/prompts/PromptEngine.js +15 -2
  77. package/dist/prompts/PromptEngine.js.map +1 -1
  78. package/dist/state/IterationTracker.d.ts +7 -2
  79. package/dist/state/IterationTracker.d.ts.map +1 -1
  80. package/dist/state/IterationTracker.js +13 -2
  81. package/dist/state/IterationTracker.js.map +1 -1
  82. package/dist/state/StateManager.d.ts +1 -1
  83. package/dist/state/StateManager.d.ts.map +1 -1
  84. package/dist/state/StateManager.js +29 -14
  85. package/dist/state/StateManager.js.map +1 -1
  86. package/dist/types/analysis.d.ts +11 -0
  87. package/dist/types/analysis.d.ts.map +1 -1
  88. package/dist/types/config.d.ts +50 -0
  89. package/dist/types/config.d.ts.map +1 -1
  90. package/dist/types/config.js.map +1 -1
  91. package/dist/types/discovery.d.ts +15 -0
  92. package/dist/types/discovery.d.ts.map +1 -1
  93. package/dist/types/state.d.ts +13 -1
  94. package/dist/types/state.d.ts.map +1 -1
  95. package/dist/utils/config-loader.d.ts +4 -0
  96. package/dist/utils/config-loader.d.ts.map +1 -1
  97. package/dist/utils/config-loader.js +22 -0
  98. package/dist/utils/config-loader.js.map +1 -1
  99. package/package.json +5 -5
  100. package/prompts/backpropagation.md +8 -0
  101. package/prompts/table-analysis.md +21 -0
@@ -15,6 +15,7 @@ import { PromptEngine } from '../prompts/PromptEngine.js';
15
15
  import { AnalysisEngine } from './AnalysisEngine.js';
16
16
  import { SQLGenerator } from '../generators/SQLGenerator.js';
17
17
  import { MarkdownGenerator } from '../generators/MarkdownGenerator.js';
18
+ import { AdditionalSchemaInfoGenerator } from '../generators/AdditionalSchemaInfoGenerator.js';
18
19
  import { SampleQueryGenerator } from '../generators/SampleQueryGenerator.js';
19
20
  import { DiscoveryTriggerAnalyzer } from '../discovery/DiscoveryTriggerAnalyzer.js';
20
21
  import { DiscoveryEngine } from '../discovery/DiscoveryEngine.js';
@@ -23,6 +24,8 @@ export class AnalysisOrchestrator {
23
24
  this.config = options.config;
24
25
  this.resumeFromState = options.resumeFromState;
25
26
  this.onProgress = options.onProgress || (() => { });
27
+ this.reanalyzeBelowConfidence = options.reanalyzeBelowConfidence;
28
+ this.maxIterationsOverride = options.maxIterations;
26
29
  }
27
30
  /**
28
31
  * Execute the full analysis workflow
@@ -47,6 +50,19 @@ export class AnalysisOrchestrator {
47
50
  else {
48
51
  state = await stateManager.load() || stateManager.createInitialState(this.config.database.database, this.config.database.server);
49
52
  }
53
+ // Apply seedContext from config to state
54
+ if (this.config.seedContext) {
55
+ state.seedContext = this.config.seedContext;
56
+ }
57
+ // Apply ground truth descriptions to state (these are authoritative)
58
+ this.applyGroundTruth(state, stateManager);
59
+ // If resuming with reanalyzeBelowConfidence, mark low-confidence tables for re-analysis
60
+ if (this.resumeFromState && this.reanalyzeBelowConfidence != null) {
61
+ this.markLowConfidenceForReanalysis(state, this.reanalyzeBelowConfidence);
62
+ }
63
+ // Save initial state immediately so there's always a file on disk
64
+ stateManager.updateSummary(state);
65
+ await stateManager.save(state);
50
66
  // Connect to database
51
67
  this.onProgress('Connecting to database');
52
68
  const driverConfig = {
@@ -82,6 +98,12 @@ export class AnalysisOrchestrator {
82
98
  schemas: schemas.length,
83
99
  tables: schemas.reduce((sum, s) => sum + s.tables.length, 0)
84
100
  });
101
+ // Load existing descriptions from database metadata (MS_Description, etc.)
102
+ this.onProgress('Loading existing database descriptions');
103
+ await this.loadExistingDescriptions(state, db.getDriver(), stateManager);
104
+ // Save state after introspection + existing descriptions
105
+ stateManager.updateSummary(state);
106
+ await stateManager.save(state);
85
107
  // Analyze data
86
108
  this.onProgress('Analyzing table data');
87
109
  const sampler = new DataSampler(driver, this.config.analysis);
@@ -104,54 +126,82 @@ export class AnalysisOrchestrator {
104
126
  tablesAnalyzed: schemas.reduce((sum, s) => sum + s.tables.length, 0) - samplingErrors,
105
127
  errors: samplingErrors
106
128
  });
107
- // Relationship Discovery Phase (if enabled)
108
- if (this.config.analysis.relationshipDiscovery?.enabled) {
109
- this.onProgress('Checking if relationship discovery should run');
110
- const triggerAnalysis = DiscoveryTriggerAnalyzer.analyzeSchemas(state.schemas);
111
- if (triggerAnalysis.shouldRun) {
129
+ // Save state after sampling
130
+ stateManager.updateSummary(state);
131
+ await stateManager.save(state);
132
+ }
133
+ // Relationship Discovery Phase (if enabled)
134
+ // Runs on both fresh and resumed runs; resumes from partial progress if interrupted
135
+ const discoveryComplete = state.phases?.keyDetection?.completedAt != null;
136
+ if (this.config.analysis.relationshipDiscovery?.enabled && !discoveryComplete) {
137
+ this.onProgress('Checking if relationship discovery should run');
138
+ const driver = db.getDriver();
139
+ const triggerAnalysis = DiscoveryTriggerAnalyzer.analyzeSchemas(state.schemas);
140
+ if (triggerAnalysis.shouldRun) {
141
+ const isResume = state.phases?.keyDetection?.progress != null;
142
+ if (isResume) {
143
+ this.onProgress('Resuming incomplete relationship discovery', {
144
+ pkTablesAlreadyDone: state.phases.keyDetection.progress.pkTablesAnalyzed?.length || 0,
145
+ fkTablesAlreadyDone: state.phases.keyDetection.progress.fkTablesAnalyzed?.length || 0,
146
+ existingPKs: state.phases.keyDetection.discovered.primaryKeys.length,
147
+ existingFKs: state.phases.keyDetection.discovered.foreignKeys.length
148
+ });
149
+ }
150
+ else {
112
151
  this.onProgress('Relationship discovery triggered', {
113
152
  reason: triggerAnalysis.reason,
114
153
  tablesWithoutPK: triggerAnalysis.details.tablesWithoutPK,
115
154
  actualFKs: triggerAnalysis.details.totalFKs,
116
155
  expectedMinFKs: triggerAnalysis.details.expectedMinFKs
117
156
  });
118
- const discoveryEngine = new DiscoveryEngine({
119
- driver,
120
- config: this.config.analysis.relationshipDiscovery,
121
- aiConfig: this.config.ai,
122
- schemas: state.schemas,
123
- onProgress: this.onProgress
124
- });
125
- // Calculate token budget for discovery
126
- const totalTokenBudget = this.config.analysis.guardrails?.maxTokensPerRun;
127
- const discoveryRatio = this.config.analysis.relationshipDiscovery.tokenBudget?.ratioOfTotal || 0.25;
128
- const discoveryTokenBudget = totalTokenBudget
129
- ? Math.floor(totalTokenBudget * discoveryRatio)
130
- : this.config.analysis.relationshipDiscovery.tokenBudget?.maxTokens || 50000;
131
- const discoveryResult = await discoveryEngine.discover(discoveryTokenBudget, triggerAnalysis);
132
- // Save to new phases structure
133
- state.phases.keyDetection = discoveryResult.phase;
134
- // Apply discovered relationships to schema
135
- discoveryEngine.applyDiscoveriesToState(state, discoveryResult.phase);
136
- // Merge column statistics into schema columns
137
- discoveryResult.statsCache.mergeIntoSchemas(state.schemas);
138
- this.onProgress('Relationship discovery complete', {
139
- primaryKeysDiscovered: discoveryResult.phase.discovered.primaryKeys.length,
140
- foreignKeysDiscovered: discoveryResult.phase.discovered.foreignKeys.length,
141
- tokensUsed: discoveryResult.phase.tokenBudget.used,
142
- guardrailsReached: discoveryResult.guardrailsReached,
143
- totalSchemas: state.schemas.length
144
- });
145
- // Save state with discovery results and stats cache
146
- await stateManager.save(state);
147
- }
148
- else {
149
- this.onProgress('Relationship discovery skipped', {
150
- reason: triggerAnalysis.reason
151
- });
152
157
  }
158
+ const discoveryEngine = new DiscoveryEngine({
159
+ driver,
160
+ config: this.config.analysis.relationshipDiscovery,
161
+ aiConfig: this.config.ai,
162
+ schemas: state.schemas,
163
+ onProgress: this.onProgress,
164
+ onCheckpoint: async (phase) => {
165
+ state.phases.keyDetection = phase;
166
+ discoveryEngine.applyDiscoveriesToState(state, phase);
167
+ stateManager.updateSummary(state);
168
+ await stateManager.save(state);
169
+ }
170
+ });
171
+ // Calculate token budget for discovery
172
+ const totalTokenBudget = this.config.analysis.guardrails?.maxTokensPerRun;
173
+ const discoveryRatio = this.config.analysis.relationshipDiscovery.tokenBudget?.ratioOfTotal || 0.25;
174
+ const discoveryTokenBudget = totalTokenBudget
175
+ ? Math.floor(totalTokenBudget * discoveryRatio)
176
+ : this.config.analysis.relationshipDiscovery.tokenBudget?.maxTokens || 50000;
177
+ // Pass existing phase for resume, or let discover() create a new one
178
+ const discoveryResult = await discoveryEngine.discover(discoveryTokenBudget, triggerAnalysis, isResume ? state.phases.keyDetection : undefined);
179
+ // Save to new phases structure
180
+ state.phases.keyDetection = discoveryResult.phase;
181
+ // Apply discovered relationships to schema
182
+ discoveryEngine.applyDiscoveriesToState(state, discoveryResult.phase);
183
+ // Merge column statistics into schema columns
184
+ discoveryResult.statsCache.mergeIntoSchemas(state.schemas);
185
+ this.onProgress('Relationship discovery complete', {
186
+ primaryKeysDiscovered: discoveryResult.phase.discovered.primaryKeys.length,
187
+ foreignKeysDiscovered: discoveryResult.phase.discovered.foreignKeys.length,
188
+ tokensUsed: discoveryResult.phase.tokenBudget.used,
189
+ guardrailsReached: discoveryResult.guardrailsReached,
190
+ totalSchemas: state.schemas.length
191
+ });
192
+ // Save state with discovery results and stats cache
193
+ stateManager.updateSummary(state);
194
+ await stateManager.save(state);
195
+ }
196
+ else {
197
+ this.onProgress('Relationship discovery skipped', {
198
+ reason: triggerAnalysis.reason
199
+ });
153
200
  }
154
201
  }
202
+ else if (discoveryComplete) {
203
+ this.onProgress('Relationship discovery: using completed results from prior run');
204
+ }
155
205
  // Topological sort
156
206
  this.onProgress('Computing dependency graph');
157
207
  const sorter = new TopologicalSorter();
@@ -162,7 +212,7 @@ export class AnalysisOrchestrator {
162
212
  const promptEngine = new PromptEngine(this.config.ai, promptsDir);
163
213
  await promptEngine.initialize();
164
214
  const iterationTracker = new IterationTracker();
165
- const analysisEngine = new AnalysisEngine(this.config, promptEngine, stateManager, iterationTracker);
215
+ const analysisEngine = new AnalysisEngine(this.config, promptEngine, stateManager, iterationTracker, this.onProgress);
166
216
  // Create analysis run
167
217
  const run = stateManager.createAnalysisRun(state, this.config.ai.model, this.config.ai.provider, this.config.ai.temperature || 0.1, undefined, undefined);
168
218
  // Mark as resumed if applicable
@@ -173,26 +223,35 @@ export class AnalysisOrchestrator {
173
223
  // Start analysis
174
224
  analysisEngine.startAnalysis(run);
175
225
  // Main iteration loop
226
+ const maxIterations = this.maxIterationsOverride ?? this.config.analysis.convergence.maxIterations;
176
227
  let converged = false;
177
- while (!converged && run.iterationsPerformed < this.config.analysis.convergence.maxIterations) {
228
+ let guardrailExceeded = false;
229
+ while (!converged && !guardrailExceeded && run.iterationsPerformed < maxIterations) {
178
230
  iterationTracker.incrementIteration(state, run);
179
231
  this.onProgress('Starting iteration', { iteration: run.iterationsPerformed });
180
232
  // Process each level
181
233
  for (let levelNum = 0; levelNum < levels.length; levelNum++) {
182
234
  this.onProgress('Processing level', { level: levelNum, tables: levels[levelNum].length });
183
- const triggers = await analysisEngine.processLevel(state, run, levelNum, levels[levelNum]);
235
+ const levelResult = await analysisEngine.processLevel(state, run, levelNum, levels[levelNum]);
236
+ if (levelResult.guardrailExceeded) {
237
+ guardrailExceeded = true;
238
+ this.onProgress('Guardrail exceeded — stopping iteration loop');
239
+ break;
240
+ }
184
241
  // Dependency-level sanity check
185
242
  if (this.config.analysis.sanityChecks.dependencyLevel && levels[levelNum].length > 0) {
186
243
  await analysisEngine.performDependencyLevelSanityCheck(state, run, levelNum, levels[levelNum]);
187
244
  }
188
245
  // Backpropagation
189
- if (triggers.length > 0 && this.config.analysis.backpropagation.enabled) {
190
- await analysisEngine.executeBackpropagation(state, run, triggers);
246
+ if (levelResult.triggers.length > 0 && this.config.analysis.backpropagation.enabled) {
247
+ await analysisEngine.executeBackpropagation(state, run, levelResult.triggers);
191
248
  }
192
249
  // Save state after each level
193
250
  stateManager.updateSummary(state);
194
251
  await stateManager.save(state);
195
252
  }
253
+ if (guardrailExceeded)
254
+ break;
196
255
  // Check convergence
197
256
  converged = analysisEngine.checkConvergence(state, run);
198
257
  if (converged) {
@@ -212,7 +271,10 @@ export class AnalysisOrchestrator {
212
271
  }
213
272
  // Complete run
214
273
  if (!converged) {
215
- iterationTracker.completeRun(run, false, 'Max iterations reached');
274
+ const reason = guardrailExceeded
275
+ ? 'Guardrail limit exceeded (duration/tokens/cost)'
276
+ : 'Max iterations reached';
277
+ iterationTracker.completeRun(run, false, reason);
216
278
  }
217
279
  // Sample Query Generation (if enabled)
218
280
  if (this.config.analysis.sampleQueryGeneration?.enabled) {
@@ -234,6 +296,11 @@ export class AnalysisOrchestrator {
234
296
  const markdown = mdGen.generate(state);
235
297
  const mdPath = path.join(runFolder, 'summary.md');
236
298
  await fs.writeFile(mdPath, markdown, 'utf-8');
299
+ // Generate additionalSchemaInfo.json for CodeGen soft FK/PK support
300
+ const schemaInfoGen = new AdditionalSchemaInfoGenerator();
301
+ const schemaInfo = schemaInfoGen.generate(state, {});
302
+ const schemaInfoPath = path.join(runFolder, 'additionalSchemaInfo.json');
303
+ await fs.writeFile(schemaInfoPath, schemaInfo, 'utf-8');
237
304
  // Close database
238
305
  await db.close();
239
306
  this.onProgress('Analysis complete', {
@@ -287,6 +354,150 @@ export class AnalysisOrchestrator {
287
354
  await fs.mkdir(runFolder, { recursive: true });
288
355
  return runFolder;
289
356
  }
357
+ /**
358
+ * Load existing descriptions from database metadata (e.g., MS_Description in SQL Server)
359
+ * and use them as initial descriptions for tables and columns.
360
+ */
361
+ async loadExistingDescriptions(state, driver, stateManager) {
362
+ let loaded = 0;
363
+ for (const schema of state.schemas) {
364
+ for (const table of schema.tables) {
365
+ try {
366
+ const descriptions = await driver.getExistingDescriptions(schema.name, table.name);
367
+ for (const desc of descriptions) {
368
+ if (!desc.description || desc.description.trim().length === 0)
369
+ continue;
370
+ if (desc.target === 'table') {
371
+ // Only apply if no description exists yet
372
+ if (!table.description) {
373
+ stateManager.updateTableDescription(table, desc.description, 'Loaded from existing database metadata', 0.5, // Medium confidence since we don't know the quality
374
+ 'existing_db', 'existing_db_description');
375
+ loaded++;
376
+ }
377
+ }
378
+ else if (desc.target === 'column' && desc.targetName) {
379
+ const column = table.columns.find(c => c.name === desc.targetName);
380
+ if (column && !column.description) {
381
+ stateManager.updateColumnDescription(column, desc.description, 'Loaded from existing database metadata', 'existing_db');
382
+ loaded++;
383
+ }
384
+ }
385
+ }
386
+ }
387
+ catch (error) {
388
+ // Non-fatal — continue with other tables
389
+ console.warn(`Warning: Could not load existing descriptions for ${schema.name}.${table.name}: ${error.message}`);
390
+ }
391
+ }
392
+ }
393
+ if (loaded > 0) {
394
+ this.onProgress('Loaded existing descriptions', { descriptionsLoaded: loaded });
395
+ }
396
+ }
397
+ /**
398
+ * Apply ground truth descriptions from config to state.
399
+ * Ground truth entries are stored as description iterations with isGroundTruth=true
400
+ * and the table/column is marked as userApproved so the analysis engine skips it.
401
+ */
402
+ applyGroundTruth(state, stateManager) {
403
+ const gt = this.config.groundTruth;
404
+ if (!gt)
405
+ return;
406
+ let applied = 0;
407
+ // Apply schema-level ground truth
408
+ if (gt.schemas) {
409
+ for (const [schemaName, schemaGT] of Object.entries(gt.schemas)) {
410
+ const schema = state.schemas.find(s => s.name === schemaName);
411
+ if (schema && schemaGT.description) {
412
+ schema.description = schemaGT.description;
413
+ schema.descriptionIterations.push({
414
+ description: schemaGT.description,
415
+ reasoning: 'User-provided ground truth',
416
+ generatedAt: new Date().toISOString(),
417
+ modelUsed: 'ground_truth',
418
+ confidence: 1.0,
419
+ triggeredBy: 'ground_truth',
420
+ isGroundTruth: true
421
+ });
422
+ applied++;
423
+ }
424
+ }
425
+ }
426
+ // Apply table-level and column-level ground truth
427
+ if (gt.tables) {
428
+ for (const [tableKey, tableGT] of Object.entries(gt.tables)) {
429
+ const [schemaName, tableName] = tableKey.split('.');
430
+ const table = stateManager.findTable(state, schemaName, tableName);
431
+ if (!table)
432
+ continue;
433
+ if (tableGT.description) {
434
+ table.description = tableGT.description;
435
+ table.userDescription = tableGT.description;
436
+ table.userApproved = true;
437
+ table.descriptionIterations.push({
438
+ description: tableGT.description,
439
+ reasoning: tableGT.notes || 'User-provided ground truth',
440
+ generatedAt: new Date().toISOString(),
441
+ modelUsed: 'ground_truth',
442
+ confidence: 1.0,
443
+ triggeredBy: 'ground_truth',
444
+ isGroundTruth: true
445
+ });
446
+ applied++;
447
+ }
448
+ // Apply column-level ground truth
449
+ if (tableGT.columns) {
450
+ for (const [colName, colGT] of Object.entries(tableGT.columns)) {
451
+ const column = table.columns.find(c => c.name === colName);
452
+ if (column && colGT.description) {
453
+ column.description = colGT.description;
454
+ column.userDescription = colGT.description;
455
+ column.userApproved = true;
456
+ column.descriptionIterations.push({
457
+ description: colGT.description,
458
+ reasoning: colGT.notes || 'User-provided ground truth',
459
+ generatedAt: new Date().toISOString(),
460
+ modelUsed: 'ground_truth',
461
+ confidence: 1.0,
462
+ triggeredBy: 'ground_truth',
463
+ isGroundTruth: true
464
+ });
465
+ applied++;
466
+ }
467
+ }
468
+ }
469
+ }
470
+ }
471
+ if (applied > 0) {
472
+ this.onProgress('Ground truth applied', { descriptionsApplied: applied });
473
+ }
474
+ }
475
+ /**
476
+ * Mark low-confidence tables for re-analysis by clearing their userApproved flag.
477
+ * Used when resuming with --reanalyze-below-confidence.
478
+ */
479
+ markLowConfidenceForReanalysis(state, threshold) {
480
+ let marked = 0;
481
+ for (const schema of state.schemas) {
482
+ for (const table of schema.tables) {
483
+ // Don't touch ground truth tables
484
+ const hasGroundTruth = table.descriptionIterations.some(i => i.isGroundTruth);
485
+ if (hasGroundTruth)
486
+ continue;
487
+ if (table.descriptionIterations.length > 0) {
488
+ const latest = table.descriptionIterations[table.descriptionIterations.length - 1];
489
+ const confidence = latest.confidence ?? 0;
490
+ if (confidence < threshold) {
491
+ table.userApproved = false;
492
+ marked++;
493
+ }
494
+ }
495
+ }
496
+ }
497
+ if (marked > 0) {
498
+ this.onProgress('Marked tables for re-analysis', { tablesMarked: marked, belowConfidence: threshold });
499
+ }
500
+ }
290
501
  /**
291
502
  * Generate sample queries for AI agents (like Skip)
292
503
  */
@@ -298,7 +509,7 @@ export class AnalysisOrchestrator {
298
509
  const model = this.config.ai.model;
299
510
  const effortLevel = this.config.ai.effortLevel || 75;
300
511
  const maxTokens = this.config.ai.maxTokens || 16000;
301
- const generator = new SampleQueryGenerator(config, promptEngine, driver, model, stateManager, effortLevel, maxTokens);
512
+ const generator = new SampleQueryGenerator(config, promptEngine, driver, model, stateManager, effortLevel, maxTokens, this.config.ai.pricing);
302
513
  try {
303
514
  const result = await generator.generateQueries(state.schemas);
304
515
  if (result.success) {
@@ -327,6 +538,8 @@ export class AnalysisOrchestrator {
327
538
  status: 'failed',
328
539
  queriesGenerated: 0,
329
540
  tokensUsed: 0,
541
+ inputTokens: 0,
542
+ outputTokens: 0,
330
543
  estimatedCost: 0,
331
544
  errorMessage: error.message
332
545
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisOrchestrator.js","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalysisOrchestrator.js","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { DatabaseDocumentation, TableDefinition, AnalysisRun } from '../types/state.js';
5
5
  import { BackpropagationTrigger } from '../types/analysis.js';
6
+ import { DBAutoDocConfig } from '../types/config.js';
6
7
  import { PromptEngine } from '../prompts/PromptEngine.js';
7
8
  import { StateManager } from '../state/StateManager.js';
8
9
  import { IterationTracker } from '../state/IterationTracker.js';
@@ -11,7 +12,8 @@ export declare class BackpropagationEngine {
11
12
  private stateManager;
12
13
  private iterationTracker;
13
14
  private maxDepth;
14
- constructor(promptEngine: PromptEngine, stateManager: StateManager, iterationTracker: IterationTracker, maxDepth: number);
15
+ private config?;
16
+ constructor(promptEngine: PromptEngine, stateManager: StateManager, iterationTracker: IterationTracker, maxDepth: number, config?: DBAutoDocConfig);
15
17
  /**
16
18
  * Execute backpropagation for a set of triggers
17
19
  */
@@ -24,6 +26,10 @@ export declare class BackpropagationEngine {
24
26
  * Uses LLM-provided insights instead of NLP pattern matching
25
27
  */
26
28
  detectParentInsights(table: TableDefinition, analysisResult: any, schema?: string, tableName?: string): BackpropagationTrigger[];
29
+ /**
30
+ * Build ground truth context for a table
31
+ */
32
+ private buildGroundTruthForTable;
27
33
  /**
28
34
  * Group triggers by target table
29
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BackpropagationEngine.d.ts","sourceRoot":"","sources":["../../src/core/BackpropagationEngine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;gBAHR,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM;IAG1B;;OAEG;IACU,OAAO,CAClB,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,sBAAsB,EAAE,GACjC,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAiGzD;;;OAGG;IACI,oBAAoB,CACzB,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,GAAG,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,sBAAsB,EAAE;IAqB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAc7B"}
1
+ {"version":3,"file":"BackpropagationEngine.d.ts","sourceRoot":"","sources":["../../src/core/BackpropagationEngine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAA2B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,qBAAa,qBAAqB;IAI9B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IANlB,OAAO,CAAC,MAAM,CAAC,CAAkB;gBAGvB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,eAAe;IAK1B;;OAEG;IACU,OAAO,CAClB,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,sBAAsB,EAAE,GACjC,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAqHzD;;;OAGG;IACI,oBAAoB,CACzB,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,GAAG,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,sBAAsB,EAAE;IAqB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAc7B"}
@@ -2,11 +2,12 @@
2
2
  * Handles backpropagation of insights from child tables to parent tables
3
3
  */
4
4
  export class BackpropagationEngine {
5
- constructor(promptEngine, stateManager, iterationTracker, maxDepth) {
5
+ constructor(promptEngine, stateManager, iterationTracker, maxDepth, config) {
6
6
  this.promptEngine = promptEngine;
7
7
  this.stateManager = stateManager;
8
8
  this.iterationTracker = iterationTracker;
9
9
  this.maxDepth = maxDepth;
10
+ this.config = config;
10
11
  }
11
12
  /**
12
13
  * Execute backpropagation for a set of triggers
@@ -17,12 +18,27 @@ export class BackpropagationEngine {
17
18
  // Group triggers by target table
18
19
  const triggersByTable = this.groupTriggersByTable(triggers);
19
20
  for (const [tableKey, tableTriggers] of triggersByTable) {
20
- const [schemaName, tableName] = tableKey.split('.');
21
+ // Handle "SCHEMA.TABLE" or "SCHEMA.SCHEMA.TABLE" (LLM double-prefix)
22
+ const parts = tableKey.split('.');
23
+ const schemaName = parts[0];
24
+ const tableName = parts[parts.length - 1];
21
25
  const table = this.stateManager.findTable(state, schemaName, tableName);
22
26
  if (!table) {
23
27
  this.iterationTracker.addWarning(run, `Backpropagation target table not found: ${tableKey}`);
24
28
  continue;
25
29
  }
30
+ // Skip user-approved tables — they should not be revised
31
+ if (table.userApproved) {
32
+ this.iterationTracker.addLogEntry(run, {
33
+ level: table.dependencyLevel || 0,
34
+ schema: schemaName,
35
+ table: tableName,
36
+ action: 'backpropagate',
37
+ result: 'unchanged',
38
+ message: 'Skipped: user-approved description'
39
+ });
40
+ continue;
41
+ }
26
42
  // Skip if no current description
27
43
  if (!table.description) {
28
44
  continue;
@@ -31,6 +47,8 @@ export class BackpropagationEngine {
31
47
  const latestIteration = table.descriptionIterations[table.descriptionIterations.length - 1];
32
48
  // Combine insights from all triggers for this table
33
49
  const insights = tableTriggers.map(t => t.insight).join('\n\n');
50
+ // Build ground truth context if available
51
+ const groundTruth = this.buildGroundTruthForTable(schemaName, tableName);
34
52
  // Execute backpropagation prompt
35
53
  const result = await this.promptEngine.executePrompt('backpropagation', {
36
54
  schemaName,
@@ -38,7 +56,8 @@ export class BackpropagationEngine {
38
56
  currentDescription: table.description,
39
57
  currentReasoning: latestIteration?.reasoning || '',
40
58
  currentConfidence: latestIteration?.confidence || 0,
41
- insights
59
+ insights,
60
+ groundTruth
42
61
  }, {
43
62
  responseFormat: 'JSON'
44
63
  });
@@ -47,7 +66,7 @@ export class BackpropagationEngine {
47
66
  continue;
48
67
  }
49
68
  totalTokensUsed += result.tokensUsed;
50
- this.iterationTracker.addTokenUsage(run, result.tokensUsed, result.cost);
69
+ this.iterationTracker.addTokenUsage(run, result.tokensUsed, result.cost, result.inputTokens, result.outputTokens, this.config?.ai?.pricing);
51
70
  // Check if revision is needed
52
71
  if (result.result.needsRevision) {
53
72
  // Update table description
@@ -100,6 +119,24 @@ export class BackpropagationEngine {
100
119
  }
101
120
  return triggers;
102
121
  }
122
+ /**
123
+ * Build ground truth context for a table
124
+ */
125
+ buildGroundTruthForTable(schemaName, tableName) {
126
+ const gt = this.config?.groundTruth;
127
+ if (!gt)
128
+ return undefined;
129
+ const tableKey = `${schemaName}.${tableName}`;
130
+ const tableGT = gt.tables?.[tableKey];
131
+ if (!tableGT)
132
+ return undefined;
133
+ const context = {};
134
+ if (tableGT.description)
135
+ context.tableDescription = tableGT.description;
136
+ if (tableGT.notes)
137
+ context.tableNotes = tableGT.notes;
138
+ return context;
139
+ }
103
140
  /**
104
141
  * Group triggers by target table
105
142
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BackpropagationEngine.js","sourceRoot":"","sources":["../../src/core/BackpropagationEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackpropagationEngine.js","sourceRoot":"","sources":["../../src/core/BackpropagationEngine.ts"],"names":[],"mappings":"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"}