@memberjunction/db-auto-doc 6.2.0-edge.4 → 6.2.0-edge.6

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 (183) hide show
  1. package/README.md +105 -0
  2. package/dist/api/DBAutoDocAPI.d.ts +2 -0
  3. package/dist/api/DBAutoDocAPI.d.ts.map +1 -1
  4. package/dist/api/DBAutoDocAPI.js +2 -1
  5. package/dist/api/DBAutoDocAPI.js.map +1 -1
  6. package/dist/commands/analyze.d.ts +1 -0
  7. package/dist/commands/analyze.d.ts.map +1 -1
  8. package/dist/commands/analyze.js +6 -0
  9. package/dist/commands/analyze.js.map +1 -1
  10. package/dist/commands/export.d.ts +28 -19
  11. package/dist/commands/export.d.ts.map +1 -1
  12. package/dist/commands/export.js +91 -12
  13. package/dist/commands/export.js.map +1 -1
  14. package/dist/core/AnalysisEngine.d.ts +39 -6
  15. package/dist/core/AnalysisEngine.d.ts.map +1 -1
  16. package/dist/core/AnalysisEngine.js +144 -50
  17. package/dist/core/AnalysisEngine.js.map +1 -1
  18. package/dist/core/AnalysisOrchestrator.d.ts +20 -1
  19. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
  20. package/dist/core/AnalysisOrchestrator.js +144 -28
  21. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  22. package/dist/core/PKProposalGate.d.ts +22 -0
  23. package/dist/core/PKProposalGate.d.ts.map +1 -0
  24. package/dist/core/PKProposalGate.js +52 -0
  25. package/dist/core/PKProposalGate.js.map +1 -0
  26. package/dist/database/Database.d.ts +8 -0
  27. package/dist/database/Database.d.ts.map +1 -1
  28. package/dist/database/Database.js +23 -1
  29. package/dist/database/Database.js.map +1 -1
  30. package/dist/discovery/ColumnNormalizer.d.ts +31 -0
  31. package/dist/discovery/ColumnNormalizer.d.ts.map +1 -1
  32. package/dist/discovery/ColumnNormalizer.js +68 -2
  33. package/dist/discovery/ColumnNormalizer.js.map +1 -1
  34. package/dist/discovery/Composer.d.ts +33 -2
  35. package/dist/discovery/Composer.d.ts.map +1 -1
  36. package/dist/discovery/Composer.js +126 -5
  37. package/dist/discovery/Composer.js.map +1 -1
  38. package/dist/discovery/DiscoveryEngine.d.ts +3 -0
  39. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -1
  40. package/dist/discovery/DiscoveryEngine.js +1 -1
  41. package/dist/discovery/DiscoveryEngine.js.map +1 -1
  42. package/dist/discovery/EmbeddingProvider.d.ts +6 -1
  43. package/dist/discovery/EmbeddingProvider.d.ts.map +1 -1
  44. package/dist/discovery/EmbeddingProvider.js +11 -1
  45. package/dist/discovery/EmbeddingProvider.js.map +1 -1
  46. package/dist/discovery/EnumCandidateGate.d.ts +19 -0
  47. package/dist/discovery/EnumCandidateGate.d.ts.map +1 -1
  48. package/dist/discovery/EnumCandidateGate.js +47 -5
  49. package/dist/discovery/EnumCandidateGate.js.map +1 -1
  50. package/dist/discovery/FKGraphWalker.d.ts +35 -0
  51. package/dist/discovery/FKGraphWalker.d.ts.map +1 -1
  52. package/dist/discovery/FKGraphWalker.js +113 -12
  53. package/dist/discovery/FKGraphWalker.js.map +1 -1
  54. package/dist/discovery/IndexKeyEvidence.d.ts +36 -0
  55. package/dist/discovery/IndexKeyEvidence.d.ts.map +1 -0
  56. package/dist/discovery/IndexKeyEvidence.js +42 -0
  57. package/dist/discovery/IndexKeyEvidence.js.map +1 -0
  58. package/dist/discovery/JoinProbe.d.ts +148 -0
  59. package/dist/discovery/JoinProbe.d.ts.map +1 -0
  60. package/dist/discovery/JoinProbe.js +233 -0
  61. package/dist/discovery/JoinProbe.js.map +1 -0
  62. package/dist/discovery/LLMDiscoveryValidator.d.ts +10 -1
  63. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -1
  64. package/dist/discovery/LLMDiscoveryValidator.js +44 -12
  65. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
  66. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -1
  67. package/dist/discovery/LLMSanityChecker.js +10 -1
  68. package/dist/discovery/LLMSanityChecker.js.map +1 -1
  69. package/dist/discovery/OrganicKeyDetector.d.ts +29 -1
  70. package/dist/discovery/OrganicKeyDetector.d.ts.map +1 -1
  71. package/dist/discovery/OrganicKeyDetector.js +34 -5
  72. package/dist/discovery/OrganicKeyDetector.js.map +1 -1
  73. package/dist/discovery/OrganicKeyTranslator.d.ts +24 -5
  74. package/dist/discovery/OrganicKeyTranslator.d.ts.map +1 -1
  75. package/dist/discovery/OrganicKeyTranslator.js +32 -14
  76. package/dist/discovery/OrganicKeyTranslator.js.map +1 -1
  77. package/dist/discovery/PKDetector.d.ts +9 -0
  78. package/dist/discovery/PKDetector.d.ts.map +1 -1
  79. package/dist/discovery/PKDetector.js +86 -8
  80. package/dist/discovery/PKDetector.js.map +1 -1
  81. package/dist/discovery/SemanticPhase.d.ts +25 -0
  82. package/dist/discovery/SemanticPhase.d.ts.map +1 -1
  83. package/dist/discovery/SemanticPhase.js +55 -11
  84. package/dist/discovery/SemanticPhase.js.map +1 -1
  85. package/dist/discovery/StructuralPhase.d.ts +27 -5
  86. package/dist/discovery/StructuralPhase.d.ts.map +1 -1
  87. package/dist/discovery/StructuralPhase.js +42 -9
  88. package/dist/discovery/StructuralPhase.js.map +1 -1
  89. package/dist/discovery/TransitiveBridgeDetector.d.ts +5 -1
  90. package/dist/discovery/TransitiveBridgeDetector.d.ts.map +1 -1
  91. package/dist/discovery/TransitiveBridgeDetector.js +25 -3
  92. package/dist/discovery/TransitiveBridgeDetector.js.map +1 -1
  93. package/dist/discovery/embedding-provider-default.d.ts +25 -0
  94. package/dist/discovery/embedding-provider-default.d.ts.map +1 -0
  95. package/dist/discovery/embedding-provider-default.js +47 -0
  96. package/dist/discovery/embedding-provider-default.js.map +1 -0
  97. package/dist/drivers/BaseAutoDocDriver.d.ts +63 -0
  98. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -1
  99. package/dist/drivers/BaseAutoDocDriver.js +3 -5
  100. package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
  101. package/dist/drivers/MySQLDriver.d.ts +21 -1
  102. package/dist/drivers/MySQLDriver.d.ts.map +1 -1
  103. package/dist/drivers/MySQLDriver.js +64 -0
  104. package/dist/drivers/MySQLDriver.js.map +1 -1
  105. package/dist/drivers/PostgreSQLDriver.d.ts +43 -2
  106. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -1
  107. package/dist/drivers/PostgreSQLDriver.js +132 -19
  108. package/dist/drivers/PostgreSQLDriver.js.map +1 -1
  109. package/dist/drivers/SQLServerDriver.d.ts +28 -1
  110. package/dist/drivers/SQLServerDriver.d.ts.map +1 -1
  111. package/dist/drivers/SQLServerDriver.js +108 -1
  112. package/dist/drivers/SQLServerDriver.js.map +1 -1
  113. package/dist/drivers/probeErrors.d.ts +30 -0
  114. package/dist/drivers/probeErrors.d.ts.map +1 -0
  115. package/dist/drivers/probeErrors.js +94 -0
  116. package/dist/drivers/probeErrors.js.map +1 -0
  117. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +34 -18
  118. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -1
  119. package/dist/generators/AdditionalSchemaInfoGenerator.js +130 -8
  120. package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -1
  121. package/dist/generators/ErdClusterGenerator.d.ts +44 -0
  122. package/dist/generators/ErdClusterGenerator.d.ts.map +1 -0
  123. package/dist/generators/ErdClusterGenerator.js +216 -0
  124. package/dist/generators/ErdClusterGenerator.js.map +1 -0
  125. package/dist/generators/ErdClusterer.d.ts +130 -0
  126. package/dist/generators/ErdClusterer.d.ts.map +1 -0
  127. package/dist/generators/ErdClusterer.js +308 -0
  128. package/dist/generators/ErdClusterer.js.map +1 -0
  129. package/dist/generators/HTMLGenerator.d.ts +6 -0
  130. package/dist/generators/HTMLGenerator.d.ts.map +1 -1
  131. package/dist/generators/HTMLGenerator.js +41 -6
  132. package/dist/generators/HTMLGenerator.js.map +1 -1
  133. package/dist/generators/MermaidGenerator.d.ts +3 -0
  134. package/dist/generators/MermaidGenerator.d.ts.map +1 -1
  135. package/dist/generators/MermaidGenerator.js +4 -0
  136. package/dist/generators/MermaidGenerator.js.map +1 -1
  137. package/dist/generators/index.d.ts +2 -0
  138. package/dist/generators/index.d.ts.map +1 -1
  139. package/dist/generators/index.js +2 -0
  140. package/dist/generators/index.js.map +1 -1
  141. package/dist/prompts/PromptEngine.d.ts.map +1 -1
  142. package/dist/prompts/PromptEngine.js +10 -1
  143. package/dist/prompts/PromptEngine.js.map +1 -1
  144. package/dist/types/analysis.d.ts +2 -0
  145. package/dist/types/analysis.d.ts.map +1 -1
  146. package/dist/types/config.d.ts +128 -4
  147. package/dist/types/config.d.ts.map +1 -1
  148. package/dist/types/config.js +7 -1
  149. package/dist/types/config.js.map +1 -1
  150. package/dist/types/discovery.d.ts +41 -0
  151. package/dist/types/discovery.d.ts.map +1 -1
  152. package/dist/types/state.d.ts +29 -0
  153. package/dist/types/state.d.ts.map +1 -1
  154. package/dist/utils/call-deadline.d.ts +43 -0
  155. package/dist/utils/call-deadline.d.ts.map +1 -0
  156. package/dist/utils/call-deadline.js +81 -0
  157. package/dist/utils/call-deadline.js.map +1 -0
  158. package/dist/utils/config-loader.d.ts +5 -0
  159. package/dist/utils/config-loader.d.ts.map +1 -1
  160. package/dist/utils/config-loader.js +37 -0
  161. package/dist/utils/config-loader.js.map +1 -1
  162. package/dist/utils/index-hints.d.ts +43 -0
  163. package/dist/utils/index-hints.d.ts.map +1 -0
  164. package/dist/utils/index-hints.js +80 -0
  165. package/dist/utils/index-hints.js.map +1 -0
  166. package/dist/utils/index.d.ts +2 -0
  167. package/dist/utils/index.d.ts.map +1 -1
  168. package/dist/utils/index.js +2 -0
  169. package/dist/utils/index.js.map +1 -1
  170. package/dist/utils/llm-factory.d.ts +1 -0
  171. package/dist/utils/llm-factory.d.ts.map +1 -1
  172. package/dist/utils/llm-factory.js +6 -1
  173. package/dist/utils/llm-factory.js.map +1 -1
  174. package/dist/utils/seed-context.d.ts +23 -0
  175. package/dist/utils/seed-context.d.ts.map +1 -0
  176. package/dist/utils/seed-context.js +38 -0
  177. package/dist/utils/seed-context.js.map +1 -0
  178. package/package.json +5 -5
  179. package/prompts/fk-pruning-holistic.md +7 -0
  180. package/prompts/fk-pruning-table.md +20 -1
  181. package/prompts/pk-pruning-holistic.md +7 -0
  182. package/prompts/pk-pruning-table.md +17 -0
  183. package/prompts/table-analysis.md +11 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisEngine.js","sourceRoot":"","sources":["../../src/core/AnalysisEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalysisEngine.js","sourceRoot":"","sources":["../../src/core/AnalysisEngine.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Main orchestrator for database analysis
3
3
  * Can be used programmatically or via CLI
4
4
  */
5
+ import { StateManager } from '../state/StateManager.js';
5
6
  import { DBAutoDocConfig } from '../types/config.js';
6
7
  import { DatabaseDocumentation, AnalysisRun } from '../types/state.js';
7
8
  export interface AnalysisOptions {
@@ -12,6 +13,8 @@ export interface AnalysisOptions {
12
13
  reanalyzeBelowConfidence?: number;
13
14
  /** Override max iterations from config for this run */
14
15
  maxIterations?: number;
16
+ /** Skip table data sampling pass */
17
+ skipSampling?: boolean;
15
18
  }
16
19
  export interface OrchestratorResult {
17
20
  success: boolean;
@@ -26,6 +29,7 @@ export declare class AnalysisOrchestrator {
26
29
  private onProgress;
27
30
  private reanalyzeBelowConfidence?;
28
31
  private maxIterationsOverride?;
32
+ private skipSampling?;
29
33
  constructor(options: AnalysisOptions);
30
34
  /**
31
35
  * Execute the full analysis workflow
@@ -38,10 +42,25 @@ export declare class AnalysisOrchestrator {
38
42
  * are loaded, so runs without plugins write exactly the state files they did before.
39
43
  */
40
44
  private runPluginHook;
45
+ /**
46
+ * Stores each table's existing indexes in the state so the LLM passes can use them as key
47
+ * evidence. Runs on resumed runs too, for tables whose indexes were never read.
48
+ */
49
+ private loadExistingIndexes;
41
50
  /**
42
51
  * Load existing state and prepare for resumption
43
52
  */
44
- private loadAndMergeState;
53
+ protected loadAndMergeState(resumePath: string, stateManager: StateManager): Promise<DatabaseDocumentation>;
54
+ /**
55
+ * Sample table data (row counts, distinct counts, sample values) into the state.
56
+ *
57
+ * A fresh run samples every table. A resume samples only the tables whose columns carry no
58
+ * statistics, so an interrupted pass continues from its last checkpoint — unless the state records
59
+ * that its run skipped sampling, in which case the resume honours that choice.
60
+ */
61
+ private sampleTableData;
62
+ /** A table counts as sampled once any of its columns carries statistics. */
63
+ private tableHasStatistics;
45
64
  /**
46
65
  * Create run-numbered folder for this analysis run
47
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQvE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,qFAAqF;IACrF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,wBAAwB,CAAC,CAAS;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAS;gBAE3B,OAAO,EAAE,eAAe;IAQpC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmbnD,uCAAuC;IAC1B,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAInD;;;OAGG;YACW,aAAa;IAuB3B;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;YACW,eAAe;IAqB7B;;;OAGG;YACW,wBAAwB;IAqDtC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA8ExB;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAwBtC;;OAEG;YACW,qBAAqB;CAwDpC"}
1
+ {"version":3,"file":"AnalysisOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAsC,MAAM,mBAAmB,CAAC;AAY3G,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,qFAAqF;IACrF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,wBAAwB,CAAC,CAAS;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,YAAY,CAAC,CAAU;gBAEnB,OAAO,EAAE,eAAe;IASpC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAsbnD,uCAAuC;IAC1B,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAInD;;;OAGG;YACW,aAAa;IAuB3B;;;OAGG;YACW,mBAAmB;IAyBjC;;OAEG;cACa,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;;;;;OAMG;YACW,eAAe;IAqF7B,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;YACW,eAAe;IAqB7B;;;OAGG;YACW,wBAAwB;IAqDtC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA8ExB;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAwBtC;;OAEG;YACW,qBAAqB;CAwDpC"}
@@ -8,6 +8,7 @@ import { fileURLToPath } from 'node:url';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = path.dirname(__filename);
10
10
  import { DatabaseConnection, Introspector, DataSampler } from '../database/Database.js';
11
+ import { PrepareIndexesForRun } from '../utils/index-hints.js';
11
12
  import { TopologicalSorter } from '../database/TopologicalSorter.js';
12
13
  import { StateManager } from '../state/StateManager.js';
13
14
  import { IterationTracker } from '../state/IterationTracker.js';
@@ -20,7 +21,10 @@ import { SampleQueryGenerator } from '../generators/SampleQueryGenerator.js';
20
21
  import { DiscoveryTriggerAnalyzer } from '../discovery/DiscoveryTriggerAnalyzer.js';
21
22
  import { DiscoveryEngine } from '../discovery/DiscoveryEngine.js';
22
23
  import { OrganicKeyDetector } from '../discovery/OrganicKeyDetector.js';
24
+ import { KeyVerifier } from '../discovery/JoinProbe.js';
23
25
  import { PluginManager } from '../plugins/PluginManager.js';
26
+ /** Tables sampled between state saves; an interrupted run resumes from the last multiple. */
27
+ const SAMPLING_CHECKPOINT_INTERVAL = 25;
24
28
  export class AnalysisOrchestrator {
25
29
  constructor(options) {
26
30
  this.config = options.config;
@@ -28,6 +32,7 @@ export class AnalysisOrchestrator {
28
32
  this.onProgress = options.onProgress || (() => { });
29
33
  this.reanalyzeBelowConfidence = options.reanalyzeBelowConfidence;
30
34
  this.maxIterationsOverride = options.maxIterations;
35
+ this.skipSampling = options.skipSampling;
31
36
  }
32
37
  /**
33
38
  * Execute the full analysis workflow
@@ -113,33 +118,10 @@ export class AnalysisOrchestrator {
113
118
  // Save state after introspection + existing descriptions
114
119
  stateManager.updateSummary(state);
115
120
  await stateManager.save(state);
116
- // Analyze data
117
- this.onProgress('Analyzing table data');
118
- const sampler = new DataSampler(driver, this.config.analysis);
119
- let samplingErrors = 0;
120
- for (const schema of schemas) {
121
- for (const table of schema.tables) {
122
- try {
123
- await sampler.analyzeTable(schema.name, table.name, table.columns);
124
- }
125
- catch (error) {
126
- samplingErrors++;
127
- const errorMsg = `Warning: Failed to analyze data for ${schema.name}.${table.name}: ${error.message}`;
128
- console.error(errorMsg);
129
- this.onProgress(errorMsg, { schema: schema.name, table: table.name, error: error.message });
130
- // Continue with next table - partial data better than no data
131
- }
132
- }
133
- }
134
- this.onProgress('Data analysis complete', {
135
- tablesAnalyzed: schemas.reduce((sum, s) => sum + s.tables.length, 0) - samplingErrors,
136
- errors: samplingErrors
137
- });
138
- // Save state after sampling
139
- stateManager.updateSummary(state);
140
- await stateManager.save(state);
141
121
  }
122
+ await this.loadExistingIndexes(state, db.getDriver(), stateManager);
142
123
  await runHook('AfterIntrospection');
124
+ await this.sampleTableData(state, db.getDriver(), stateManager);
143
125
  // Relationship Discovery Phase (if enabled)
144
126
  // Runs on both fresh and resumed runs; resumes from partial progress if interrupted
145
127
  const discoveryComplete = state.phases?.keyDetection?.completedAt != null;
@@ -170,6 +152,7 @@ export class AnalysisOrchestrator {
170
152
  Config: this.config.analysis.relationshipDiscovery,
171
153
  AiConfig: this.config.ai,
172
154
  schemas: state.schemas,
155
+ SeedContext: state.seedContext ?? this.config.seedContext,
173
156
  OnProgress: this.onProgress,
174
157
  OnCheckpoint: async (phase) => {
175
158
  state.phases.keyDetection = phase;
@@ -223,7 +206,14 @@ export class AnalysisOrchestrator {
223
206
  const promptEngine = new PromptEngine(this.config.ai, promptsDir);
224
207
  await promptEngine.initialize();
225
208
  const iterationTracker = new IterationTracker();
226
- const analysisEngine = new AnalysisEngine(this.config, promptEngine, stateManager, iterationTracker, this.onProgress);
209
+ const analysisEngine = new AnalysisEngine(this.config, promptEngine, stateManager, iterationTracker, this.onProgress, db.getDriver());
210
+ // ONE verifier for the whole run, shared by the LLM-FK path and the organic-key
211
+ // path. Deliberately shared rather than one each: the probe cap is the cost bound,
212
+ // and two verifiers would mean two full allowances against a live customer
213
+ // database. A single instance also means a candidate probed by one path is not
214
+ // re-probed by the other.
215
+ const keyVerifier = new KeyVerifier(db ? db.getDriver() : null, this.config.analysis.keyVerification ?? {});
216
+ analysisEngine.SetKeyVerifier(keyVerifier);
227
217
  // Create analysis run
228
218
  const run = stateManager.createAnalysisRun(state, this.config.ai.model, this.config.ai.provider, this.config.ai.temperature || 0.1, undefined, undefined);
229
219
  // Mark as resumed if applicable
@@ -327,10 +317,18 @@ export class AnalysisOrchestrator {
327
317
  // fed to the additionalSchemaInfo generator so CodeGen writes the
328
318
  // EntityOrganicKey / EntityOrganicKeyRelatedEntity metadata.
329
319
  let organicKeyOutput;
330
- if (this.config.analysis.organicKeyDetection?.enabled) {
320
+ const hasStatistics = state.schemas.some(schema => schema.tables.some(table => this.tableHasStatistics(table)));
321
+ if (this.config.analysis.organicKeyDetection?.enabled && !hasStatistics) {
322
+ // The semantic prefilter's cardinality gate only applies to columns that carry statistics;
323
+ // without any, every column would become a candidate and the normalizer fan-out is unbounded.
324
+ const warning = 'Organic-key detection skipped: it needs column statistics and no table has been sampled';
325
+ console.warn(warning);
326
+ this.onProgress(warning);
327
+ }
328
+ else if (this.config.analysis.organicKeyDetection?.enabled) {
331
329
  this.onProgress('Running organic-key detection');
332
330
  try {
333
- const detector = new OrganicKeyDetector(this.config.analysis.organicKeyDetection, this.config.ai, this.config.database.provider);
331
+ const detector = new OrganicKeyDetector(this.config.analysis.organicKeyDetection, this.config.ai, this.config.database.provider, keyVerifier, { AutoCreateRelatedViewOnForm: this.config.analysis.organicKeyDetection.autoCreateRelatedViewOnForm });
334
332
  const okResult = await detector.detect(state, {
335
333
  OnProgress: (msg) => this.onProgress(msg),
336
334
  });
@@ -341,6 +339,11 @@ export class AnalysisOrchestrator {
341
339
  clustersFound: okResult.Summary.clustersFound,
342
340
  clustersEmitted: okResult.Summary.clustersEmitted,
343
341
  outputKeys: okResult.Summary.outputKeys,
342
+ clustersDroppedUnverified: okResult.Summary.clustersDroppedUnverified,
343
+ membersDroppedUnverified: okResult.Summary.membersDroppedUnverified,
344
+ conceptsSkippedUnanchored: okResult.Summary.conceptsSkippedUnanchored,
345
+ probesUsed: okResult.Summary.probesUsed,
346
+ probesAllowed: okResult.Summary.probesAllowed,
344
347
  });
345
348
  }
346
349
  catch (err) {
@@ -418,6 +421,30 @@ export class AnalysisOrchestrator {
418
421
  stateManager.updateSummary(state);
419
422
  await stateManager.save(state);
420
423
  }
424
+ /**
425
+ * Stores each table's existing indexes in the state so the LLM passes can use them as key
426
+ * evidence. Runs on resumed runs too, for tables whose indexes were never read.
427
+ */
428
+ async loadExistingIndexes(state, driver, stateManager) {
429
+ const schemas = PrepareIndexesForRun(state.schemas, this.config.analysis.useExistingIndexes);
430
+ if (schemas.length === 0) {
431
+ return;
432
+ }
433
+ this.onProgress('Reading existing indexes');
434
+ const failed = await new Introspector(driver).LoadIndexes(schemas);
435
+ for (const f of failed) {
436
+ this.onProgress(`Warning: could not read indexes for schema ${f.SchemaName}: ${f.Error}`, f);
437
+ }
438
+ // Totals cover every table in the state, so a resumed run also counts tables loaded earlier.
439
+ const allTables = state.schemas.flatMap((s) => s.tables);
440
+ this.onProgress('Existing indexes loaded', {
441
+ tables: allTables.filter((t) => t.indexes !== undefined).length,
442
+ indexes: allTables.reduce((sum, t) => sum + (t.indexes?.length ?? 0), 0),
443
+ newlyLoadedTables: schemas.flatMap((s) => s.tables).filter((t) => t.indexes !== undefined).length
444
+ });
445
+ stateManager.updateSummary(state);
446
+ await stateManager.save(state);
447
+ }
421
448
  /**
422
449
  * Load existing state and prepare for resumption
423
450
  */
@@ -428,6 +455,95 @@ export class AnalysisOrchestrator {
428
455
  existingState.resumedFromFile = resumePath;
429
456
  return existingState;
430
457
  }
458
+ /**
459
+ * Sample table data (row counts, distinct counts, sample values) into the state.
460
+ *
461
+ * A fresh run samples every table. A resume samples only the tables whose columns carry no
462
+ * statistics, so an interrupted pass continues from its last checkpoint — unless the state records
463
+ * that its run skipped sampling, in which case the resume honours that choice.
464
+ */
465
+ async sampleTableData(state, driver, stateManager) {
466
+ const totalTables = state.schemas.reduce((sum, s) => sum + s.tables.length, 0);
467
+ const previous = state.phases.dataSampling;
468
+ const skipRequested = this.skipSampling === true || this.config.analysis.skipSampling === true;
469
+ const skipInherited = this.resumeFromState != null && previous?.status === 'skipped';
470
+ if (skipRequested || skipInherited) {
471
+ this.onProgress(skipInherited && !skipRequested
472
+ ? 'Table data sampling skipped (the resumed run skipped it; pass no --resume, or run analyze without --skip-sampling on a fresh run, to sample)'
473
+ : 'Table data sampling skipped');
474
+ state.phases.dataSampling = {
475
+ status: 'skipped',
476
+ startedAt: previous?.startedAt ?? new Date().toISOString(),
477
+ sampledTables: previous?.sampledTables ?? 0,
478
+ totalTables,
479
+ };
480
+ return;
481
+ }
482
+ const pending = state.schemas
483
+ .flatMap(schema => schema.tables.map(table => ({ schema, table })))
484
+ .filter(({ table }) => !this.resumeFromState || !this.tableHasStatistics(table));
485
+ if (pending.length === 0) {
486
+ this.onProgress('Table data already sampled', { tables: totalTables });
487
+ state.phases.dataSampling = {
488
+ status: 'completed',
489
+ startedAt: previous?.startedAt ?? new Date().toISOString(),
490
+ completedAt: new Date().toISOString(),
491
+ sampledTables: totalTables,
492
+ totalTables,
493
+ };
494
+ return;
495
+ }
496
+ if (this.resumeFromState && pending.length < totalTables) {
497
+ this.onProgress(`Resuming table data sampling: ${pending.length} of ${totalTables} tables have no statistics yet`, {
498
+ pending: pending.length, total: totalTables
499
+ });
500
+ }
501
+ const phase = {
502
+ status: 'partial',
503
+ startedAt: previous?.startedAt ?? new Date().toISOString(),
504
+ sampledTables: totalTables - pending.length,
505
+ totalTables,
506
+ };
507
+ state.phases.dataSampling = phase;
508
+ this.onProgress('Analyzing table data');
509
+ const sampler = new DataSampler(driver, this.config.analysis);
510
+ let samplingErrors = 0;
511
+ let tableIndex = 0;
512
+ for (const { schema, table } of pending) {
513
+ tableIndex++;
514
+ this.onProgress(`Sampling table data [${tableIndex}/${pending.length}]: ${schema.name}.${table.name}`);
515
+ try {
516
+ await sampler.analyzeTable(schema.name, table.name, table.columns);
517
+ phase.sampledTables++;
518
+ }
519
+ catch (error) {
520
+ samplingErrors++;
521
+ const errorMsg = `Warning: Failed to analyze data for ${schema.name}.${table.name}: ${error.message}`;
522
+ console.error(errorMsg);
523
+ this.onProgress(errorMsg, { schema: schema.name, table: table.name, error: error.message });
524
+ // Continue with next table - partial data better than no data
525
+ }
526
+ // Checkpoint so an interrupted run resumes from here instead of from the start
527
+ if (tableIndex % SAMPLING_CHECKPOINT_INTERVAL === 0) {
528
+ stateManager.updateSummary(state);
529
+ await stateManager.save(state);
530
+ }
531
+ }
532
+ this.onProgress('Data analysis complete', {
533
+ tablesAnalyzed: pending.length - samplingErrors,
534
+ errors: samplingErrors
535
+ });
536
+ // A table whose sampling failed carries no statistics, so a later --resume picks it up again;
537
+ // the phase stays 'partial' so the state file says so instead of claiming a full pass.
538
+ phase.status = samplingErrors === 0 ? 'completed' : 'partial';
539
+ phase.completedAt = new Date().toISOString();
540
+ stateManager.updateSummary(state);
541
+ await stateManager.save(state);
542
+ }
543
+ /** A table counts as sampled once any of its columns carries statistics. */
544
+ tableHasStatistics(table) {
545
+ return table.columns.some(column => column.statistics !== undefined);
546
+ }
431
547
  /**
432
548
  * Create run-numbered folder for this analysis run
433
549
  */