@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":"PKDetector.js","sourceRoot":"","sources":["../../src/discovery/PKDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PKDetector.js","sourceRoot":"","sources":["../../src/discovery/PKDetector.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@
44
44
  import { AIConfig, OrganicKeyDetectionConfig } from '../types/config.js';
45
45
  import { DatabaseDocumentation } from '../types/state.js';
46
46
  import { OrganicKeyCluster } from '../types/organic-keys.js';
47
+ import { NormalizerInputColumn } from './ColumnNormalizer.js';
47
48
  /** Result of the semantic (organic-key clustering) phase. */
48
49
  export interface SemanticPhaseResult {
49
50
  clusters: OrganicKeyCluster[];
@@ -62,6 +63,13 @@ export interface SemanticPhaseResult {
62
63
  clustersFound: number;
63
64
  /** Sub-clusters discarded during the split for falling below minClusterSize / minDistinctTables. */
64
65
  clustersDropped: number;
66
+ /**
67
+ * Tables never normalized because `tokenBudget` ran out. Non-zero means every count above
68
+ * is a floor, not a finding: the clusters that would have come from those tables were
69
+ * never looked for. Reporting a short run as a complete one is how a budget cap becomes a
70
+ * silent quality regression.
71
+ */
72
+ tablesSkippedForBudget: number;
65
73
  };
66
74
  }
67
75
  /** Receives human-readable progress messages as the semantic phase advances. */
@@ -69,4 +77,21 @@ export type ProgressCallback = (message: string) => void;
69
77
  export declare function RunSemanticPhase(state: DatabaseDocumentation, config: OrganicKeyDetectionConfig, aiConfig: AIConfig, progress?: ProgressCallback): Promise<SemanticPhaseResult>;
70
78
  /** @deprecated Use {@link RunSemanticPhase}. */
71
79
  export declare function runSemanticPhase(state: DatabaseDocumentation, config: OrganicKeyDetectionConfig, aiConfig: AIConfig, progress?: ProgressCallback): Promise<SemanticPhaseResult>;
80
+ declare function prefilter(state: DatabaseDocumentation, config: OrganicKeyDetectionConfig): NormalizerInputColumn[];
81
+ interface EmbeddingProviderHandle {
82
+ name: string;
83
+ embed: (texts: string[]) => Promise<Float32Array[]>;
84
+ }
85
+ /** Exported for test: the default this picks is the fix, so it needs to be assertable directly. */
86
+ export declare function ResolveEmbeddingProvider(config: OrganicKeyDetectionConfig, aiConfig: AIConfig): EmbeddingProviderHandle;
87
+ /**
88
+ * Re-export for tests / observability, matching the `TestHooks` convention in Composer.
89
+ * The selectivity gate is the cheapest and highest-volume filter in the pipeline and is
90
+ * worth pinning directly rather than through a run that needs an LLM and an embedder.
91
+ */
92
+ export declare const TestHooks: {
93
+ prefilter: typeof prefilter;
94
+ MIN_DISTINCT_FOR_KEY: number;
95
+ };
96
+ export {};
72
97
  //# sourceMappingURL=SemanticPhase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SemanticPhase.d.ts","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAEH,iBAAiB,EAGpB,MAAM,0BAA0B,CAAC;AAmDlC,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,OAAO,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,2BAA2B,EAAE,MAAM,CAAC;QACpC,iFAAiF;QACjF,mBAAmB,EAAE,MAAM,CAAC;QAC5B,8FAA8F;QAC9F,aAAa,EAAE,MAAM,CAAC;QACtB,oGAAoG;QACpG,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzD,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,gBAA2B,GACtC,OAAO,CAAC,mBAAmB,CAAC,CA2F9B;AAED,gDAAgD;AAChD,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,gBAA2B,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B"}
1
+ {"version":3,"file":"SemanticPhase.d.ts","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAEH,iBAAiB,EAGpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGH,qBAAqB,EAExB,MAAM,uBAAuB,CAAC;AAiD/B,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,OAAO,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,2BAA2B,EAAE,MAAM,CAAC;QACpC,iFAAiF;QACjF,mBAAmB,EAAE,MAAM,CAAC;QAC5B,8FAA8F;QAC9F,aAAa,EAAE,MAAM,CAAC;QACtB,oGAAoG;QACpG,eAAe,EAAE,MAAM,CAAC;QACxB;;;;;WAKG;QACH,sBAAsB,EAAE,MAAM,CAAC;KAClC,CAAC;CACL;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzD,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,gBAA2B,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAuG9B;AAED,gDAAgD;AAChD,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,gBAA2B,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAyED,iBAAS,SAAS,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,EAAE,CAsD3G;AA+ID,UAAU,uBAAuB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACvD;AAED,mGAAmG;AACnG,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,QAAQ,GACnB,uBAAuB,CAoBzB;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;CAAsC,CAAC"}
@@ -45,16 +45,20 @@ import { DEFAULT_DETECTOR_CONFIG, } from '../types/organic-keys.js';
45
45
  import { TableNormalizer, } from './ColumnNormalizer.js';
46
46
  import { ColumnClusterer } from './ColumnClusterer.js';
47
47
  import { CreateEmbeddingProvider } from './EmbeddingProvider.js';
48
+ import { DefaultEmbeddingProviderFor } from './embedding-provider-default.js';
48
49
  const AUDIT_COLUMN_PATTERN = /^(modified|created|updated|inserted|changed)(date|at|time|by|on)?$|^rowguid$|^timestamp$|^row_?version$|^__mj_.*$/i;
49
50
  const NON_VALUEMATCHABLE_TYPES = /(binary|blob|image|varbinary|xml|geography|geometry|hierarchyid|sql_variant)/i;
50
51
  // ─── Prefilter cardinality cutoffs ───────────────────────────────────────────
51
52
  /**
52
- * A column with fewer than this many distinct values AND a uniqueness ratio below
53
- * {@link MIN_UNIQUENESS_RATIO} is treated as a low-cardinality categorical (boolean/enum),
54
- * not an identity-bearing column, and is dropped before clustering.
53
+ * Minimum distinct values for a column to be identity-bearing. Default 50.
54
+ *
55
+ * Raised from 10. At 10, a `payment_method_id` with 33 distinct values over 24,000
56
+ * rows is an identity-bearing key as far as the prefilter is concerned, and goes on
57
+ * to become an organic key whose related-record view value-joins a non-unique
58
+ * category column — an N×N join presented to the user as "related" rows. 50 is the
59
+ * floor an operator arrived at by post-filtering a real run's output.
55
60
  */
56
- const MIN_DISTINCT_FOR_KEY = 10;
57
- const MIN_UNIQUENESS_RATIO = 0.001;
61
+ const MIN_DISTINCT_FOR_KEY = 50;
58
62
  // ─── Embedding-input sample caps ─────────────────────────────────────────────
59
63
  /** At most this many sample values are appended to a column's embedding text. */
60
64
  const EMBED_SAMPLE_COUNT = 4;
@@ -84,15 +88,23 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
84
88
  if (candidates.length < (config.minClusterSize ?? DEFAULT_DETECTOR_CONFIG.MinClusterSize)) {
85
89
  return emptyResult(candidates.length);
86
90
  }
91
+ // Resolve the embedding provider BEFORE the paid normalization calls. A vendor with no
92
+ // embedding driver, or a driver package that is not registered, is a configuration error the
93
+ // pass cannot get past, so it has to fail here rather than after every table was normalized.
94
+ const embedProvider = ResolveEmbeddingProvider(config, aiConfig);
87
95
  // ─── 2. Normalize to business space (LLM per-table) ──────────────────────
88
96
  progress('semantic: normalizing column descriptions to business space');
89
97
  const tableInputs = groupColumnsByTable(state, candidates);
90
98
  const normResult = await new TableNormalizer(aiConfig).normalizeAll(tableInputs, {
91
99
  Concurrency: config.refinementConcurrency ?? DEFAULT_DETECTOR_CONFIG.RefinementConcurrency,
92
100
  MaxRetries: config.maxRefinementRetries ?? 2,
101
+ TokenBudget: config.tokenBudget,
93
102
  OnProgress: () => { },
94
103
  });
95
104
  progress(`semantic: ${normResult.Normalized.length} columns kept (${normResult.rejected} rejected by PR-#2193 axes)`);
105
+ if (normResult.BudgetExhausted) {
106
+ progress(`semantic: PARTIAL — token budget reached, ${normResult.TablesSkippedForBudget} table(s) not normalized`);
107
+ }
96
108
  if (normResult.Normalized.length < (config.minClusterSize ?? DEFAULT_DETECTOR_CONFIG.MinClusterSize)) {
97
109
  return {
98
110
  clusters: [],
@@ -104,11 +116,11 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
104
116
  clustersBeforeSplit: 0,
105
117
  clustersFound: 0,
106
118
  clustersDropped: 0,
119
+ tablesSkippedForBudget: normResult.TablesSkippedForBudget,
107
120
  },
108
121
  };
109
122
  }
110
123
  // ─── 3. Embed the normalized descriptions ────────────────────────────────
111
- const embedProvider = resolveEmbeddingProvider(config, aiConfig);
112
124
  progress(`semantic: embedding ${normResult.Normalized.length} descriptions via ${embedProvider.name}`);
113
125
  const texts = normResult.Normalized.map((n) => buildEmbeddingText(n));
114
126
  const embeddings = await embedProvider.embed(texts);
@@ -154,6 +166,7 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
154
166
  clustersBeforeSplit: rawClusters.length,
155
167
  clustersFound: clusters.length,
156
168
  clustersDropped: dropped,
169
+ tablesSkippedForBudget: normResult.TablesSkippedForBudget,
157
170
  },
158
171
  };
159
172
  }
@@ -237,9 +250,28 @@ function prefilter(state, config) {
237
250
  continue;
238
251
  if (col.statistics) {
239
252
  const distinct = col.statistics.distinctCount ?? 0;
240
- const ratio = col.statistics.uniquenessRatio ?? 0;
241
- // Drop ultra-low-cardinality / near-boolean columns.
242
- if (distinct < MIN_DISTINCT_FOR_KEY && ratio < MIN_UNIQUENESS_RATIO)
253
+ // Drop low-cardinality / categorical columns.
254
+ //
255
+ // This was `distinct < MIN && ratio < MIN` — a conjunction, so a
256
+ // column had to fail BOTH tests to be dropped. Clearing either one
257
+ // was enough to be treated as identity-bearing, which is why the
258
+ // gate never removed anything it was written to remove:
259
+ //
260
+ // - a boolean on a 100-row table has distinct=2 (fails) but
261
+ // ratio=0.02 (passes), so the AND is false and it is KEPT;
262
+ // - a `payment_method_id` with 33 distinct over 24,000 rows has
263
+ // ratio=0.0014 (fails at the old floor) but distinct=33
264
+ // (passes at the old floor of 10), so it is KEPT.
265
+ //
266
+ // Both are categorical, and both have too few distinct values to identify
267
+ // anything, so the distinct floor alone drops them.
268
+ //
269
+ // The uniqueness ratio is not a gate. It is distinct over ALL rows, so it
270
+ // reads low for exactly the columns organic keys need as spokes: an
271
+ // attendance table with 40,000 members over 2.5M rows has a ratio of 0.016
272
+ // on its member_email column, which repeats because each member has many
273
+ // rows, not because it is a category.
274
+ if (distinct < MIN_DISTINCT_FOR_KEY)
243
275
  continue;
244
276
  }
245
277
  out.push({
@@ -393,9 +425,13 @@ function extractSampleValues(col, max) {
393
425
  function sensitivityToPercentile(s) {
394
426
  return SENSITIVITY_PERCENTILE[s] ?? SENSITIVITY_PERCENTILE.balanced;
395
427
  }
396
- function resolveEmbeddingProvider(config, aiConfig) {
428
+ /** Exported for test: the default this picks is the fix, so it needs to be assertable directly. */
429
+ export function ResolveEmbeddingProvider(config, aiConfig) {
397
430
  const cfg = config.embedding ?? {};
398
- const provider = (cfg.provider ?? 'openai');
431
+ // No configured provider means "use the vendor whose key we already have". Hardcoding openai
432
+ // here sent a Gemini key to OpenAIEmbedding under the SHIPPED DEFAULTS — see
433
+ // DefaultEmbeddingProviderFor.
434
+ const provider = (cfg.provider ?? DefaultEmbeddingProviderFor(aiConfig.provider));
399
435
  const apiKey = aiConfig.apiKey;
400
436
  const impl = CreateEmbeddingProvider({
401
437
  provider,
@@ -404,12 +440,19 @@ function resolveEmbeddingProvider(config, aiConfig) {
404
440
  Dimensions: cfg.dimensions,
405
441
  BatchSize: cfg.batchSize,
406
442
  Endpoint: cfg.endpoint,
443
+ CallTimeoutMs: aiConfig.callTimeoutMs,
407
444
  });
408
445
  return {
409
446
  name: `${provider}:${cfg.model ?? 'default'}`,
410
447
  embed: (texts) => impl.Embed(texts),
411
448
  };
412
449
  }
450
+ /**
451
+ * Re-export for tests / observability, matching the `TestHooks` convention in Composer.
452
+ * The selectivity gate is the cheapest and highest-volume filter in the pipeline and is
453
+ * worth pinning directly rather than through a run that needs an LLM and an embedder.
454
+ */
455
+ export const TestHooks = { prefilter, MIN_DISTINCT_FOR_KEY };
413
456
  function emptyResult(columnsInScope) {
414
457
  return {
415
458
  clusters: [],
@@ -421,6 +464,7 @@ function emptyResult(columnsInScope) {
421
464
  clustersBeforeSplit: 0,
422
465
  clustersFound: 0,
423
466
  clustersDropped: 0,
467
+ tablesSkippedForBudget: 0,
424
468
  },
425
469
  };
426
470
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SemanticPhase.js","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SemanticPhase.js","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"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"}
@@ -19,12 +19,34 @@ export interface StructuralPhaseResult {
19
19
  Bridges: TransitiveBridgeFinding[];
20
20
  Summary: {
21
21
  transitiveBridgesFound: number;
22
+ /** False when the phase declined to walk at all, with `skipReason` saying why. */
23
+ walked: boolean;
24
+ /** Set when `walked` is false. */
25
+ skipReason?: 'disabled' | 'no-clusters' | 'no-edges';
26
+ /** Set when a walk bound stopped the search before it was exhausted. */
27
+ truncationReasons?: string[];
22
28
  };
23
29
  }
24
- /**
25
- * @param provider - Platform of the analyzed database; bridge-view SQL is written in its dialect.
26
- */
27
- export declare function RunStructuralPhase(state: DatabaseDocumentation, clusters: OrganicKeyCluster[], provider?: BridgeViewProvider): StructuralPhaseResult;
30
+ export interface StructuralPhaseOptions {
31
+ /**
32
+ * Skip the phase outright. The organic keys themselves come from the SEMANTIC phase;
33
+ * this phase only adds transitive bridge spokes, so a run can decline it and still
34
+ * produce keys. That is the difference between a large schema emitting a reduced result
35
+ * and a large schema emitting nothing.
36
+ */
37
+ Skip?: boolean;
38
+ /** Bounds handed to the graph walk. Omitted entries take the walker's own ceilings. */
39
+ MaxFrontier?: number;
40
+ MaxPathsPerPair?: number;
41
+ MaxTotalPaths?: number;
42
+ /**
43
+ * Platform of the analyzed database; the bridge-view SQL this phase emits is written in
44
+ * its dialect. Carried in the options rather than as a third positional parameter so the
45
+ * bounds above and the dialect stay one argument.
46
+ */
47
+ Provider?: BridgeViewProvider;
48
+ }
49
+ export declare function RunStructuralPhase(state: DatabaseDocumentation, clusters: OrganicKeyCluster[], opts?: StructuralPhaseOptions): StructuralPhaseResult;
28
50
  /** @deprecated Use {@link RunStructuralPhase}. */
29
- export declare function runStructuralPhase(state: DatabaseDocumentation, clusters: OrganicKeyCluster[], provider?: BridgeViewProvider): StructuralPhaseResult;
51
+ export declare function runStructuralPhase(state: DatabaseDocumentation, clusters: OrganicKeyCluster[], opts?: StructuralPhaseOptions): StructuralPhaseResult;
30
52
  //# sourceMappingURL=StructuralPhase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StructuralPhase.d.ts","sourceRoot":"","sources":["../../src/discovery/StructuralPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAGH,uBAAuB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,OAAO,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,QAAQ,CAAC,EAAE,kBAAkB,GAC9B,qBAAqB,CAOvB;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,QAAQ,CAAC,EAAE,kBAAkB,GAC9B,qBAAqB,CAEvB"}
1
+ {"version":3,"file":"StructuralPhase.d.ts","sourceRoot":"","sources":["../../src/discovery/StructuralPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAGH,uBAAuB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,OAAO,EAAE;QACL,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kFAAkF;QAClF,MAAM,EAAE,OAAO,CAAC;QAChB,kCAAkC;QAClC,UAAU,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;QACrD,wEAAwE;QACxE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC;CACL;AAED,MAAM,WAAW,sBAAsB;IACnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAOD,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,IAAI,GAAE,sBAA2B,GAClC,qBAAqB,CAuCvB;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,IAAI,GAAE,sBAA2B,GAClC,qBAAqB,CAEvB"}
@@ -12,19 +12,52 @@
12
12
  * No scoring, no thresholds — just deterministic graph traversal.
13
13
  */
14
14
  import { DetectTransitiveBridges, CollectFKEdgesFromState, } from './TransitiveBridgeDetector.js';
15
- /**
16
- * @param provider - Platform of the analyzed database; bridge-view SQL is written in its dialect.
17
- */
18
- export function RunStructuralPhase(state, clusters, provider) {
15
+ const EMPTY = (skipReason) => ({
16
+ Bridges: [],
17
+ Summary: { transitiveBridgesFound: 0, walked: false, skipReason },
18
+ });
19
+ export function RunStructuralPhase(state, clusters, opts = {}) {
20
+ if (opts.Skip) {
21
+ return EMPTY('disabled');
22
+ }
19
23
  if (clusters.length === 0) {
20
- return { Bridges: [], Summary: { transitiveBridgesFound: 0 } };
24
+ return EMPTY('no-clusters');
21
25
  }
26
+ // GATE ON THE EDGE SET, NOT ON DECLARED FOREIGN KEYS. A state with no declared FKs can
27
+ // still build a dense graph, because `CollectFKEdgesFromState` also pulls the SOFT FKs
28
+ // that the key-detection phase inferred — which on an imported schema is most of them.
29
+ // So "does this database declare foreign keys?" is the wrong question; "does this state
30
+ // yield any join edge at all?" is the one that decides whether there is a walk to do.
22
31
  const edges = CollectFKEdgesFromState(state);
23
- const bridges = DetectTransitiveBridges(clusters, edges, state, { provider });
24
- return { Bridges: bridges, Summary: { transitiveBridgesFound: bridges.length } };
32
+ if (edges.length === 0) {
33
+ return EMPTY('no-edges');
34
+ }
35
+ // Only pass bounds the caller actually set: a spread of `{MaxFrontier: undefined}` would
36
+ // overwrite the walker's ceiling with undefined and un-bound the walk.
37
+ const walkBounds = {};
38
+ if (opts.MaxFrontier !== undefined)
39
+ walkBounds.MaxFrontier = opts.MaxFrontier;
40
+ if (opts.MaxPathsPerPair !== undefined)
41
+ walkBounds.MaxPathsPerPair = opts.MaxPathsPerPair;
42
+ if (opts.MaxTotalPaths !== undefined)
43
+ walkBounds.MaxTotalPaths = opts.MaxTotalPaths;
44
+ let truncationReasons;
45
+ const bridges = DetectTransitiveBridges(clusters, edges, state, {
46
+ WalkBounds: walkBounds,
47
+ OnTruncated: (reasons) => { truncationReasons = reasons; },
48
+ ...(opts.Provider ? { provider: opts.Provider } : {}),
49
+ });
50
+ return {
51
+ Bridges: bridges,
52
+ Summary: {
53
+ transitiveBridgesFound: bridges.length,
54
+ walked: true,
55
+ ...(truncationReasons ? { truncationReasons } : {}),
56
+ },
57
+ };
25
58
  }
26
59
  /** @deprecated Use {@link RunStructuralPhase}. */
27
- export function runStructuralPhase(state, clusters, provider) {
28
- return RunStructuralPhase(state, clusters, provider);
60
+ export function runStructuralPhase(state, clusters, opts = {}) {
61
+ return RunStructuralPhase(state, clusters, opts);
29
62
  }
30
63
  //# sourceMappingURL=StructuralPhase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StructuralPhase.js","sourceRoot":"","sources":["../../src/discovery/StructuralPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EACH,uBAAuB,EACvB,uBAAuB,GAE1B,MAAM,+BAA+B,CAAC;AAQvC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAC9B,KAA4B,EAC5B,QAA6B,EAC7B,QAA6B;IAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,sBAAsB,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACrF,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,kBAAkB,CAC9B,KAA4B,EAC5B,QAA6B,EAC7B,QAA6B;IAE7B,OAAO,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"StructuralPhase.js","sourceRoot":"","sources":["../../src/discovery/StructuralPhase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EACH,uBAAuB,EACvB,uBAAuB,GAE1B,MAAM,+BAA+B,CAAC;AAoCvC,MAAM,KAAK,GAAG,CAAC,UAAmD,EAAyB,EAAE,CAAC,CAAC;IAC3F,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;CACpE,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAC9B,KAA4B,EAC5B,QAA6B,EAC7B,OAA+B,EAAE;IAEjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,uFAAuF;IACvF,uFAAuF;IACvF,uFAAuF;IACvF,wFAAwF;IACxF,sFAAsF;IACtF,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,yFAAyF;IACzF,uEAAuE;IACvE,MAAM,UAAU,GAA+E,EAAE,CAAC;IAClG,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9E,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;QAAE,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC1F,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAEpF,IAAI,iBAAuC,CAAC;IAC5C,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5D,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,OAAO;QACH,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE;YACL,sBAAsB,EAAE,OAAO,CAAC,MAAM;YACtC,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD;KACJ,CAAC;AACN,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,kBAAkB,CAC9B,KAA4B,EAC5B,QAA6B,EAC7B,OAA+B,EAAE;IAEjC,OAAO,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC"}
@@ -20,7 +20,7 @@
20
20
  * - Spoke PK is resolved from state.json. Tables without a single-column PK
21
21
  * are skipped (composite-PK bridge join is future work).
22
22
  */
23
- import { FKEdge } from './FKGraphWalker.js';
23
+ import { FKEdge, FKGraphWalkerOptions } from './FKGraphWalker.js';
24
24
  import { GeneratedBridgeView, BridgeViewProvider } from './BridgeViewSQLGenerator.js';
25
25
  import { OrganicKeyCluster } from '../types/organic-keys.js';
26
26
  import { DatabaseDocumentation } from '../types/state.js';
@@ -47,6 +47,10 @@ export interface TransitiveBridgeDetectorOptions {
47
47
  KeepShortestOnly?: boolean;
48
48
  /** Platform the generated bridge-view SQL is written for. Default `'sqlserver'`. */
49
49
  provider?: BridgeViewProvider;
50
+ /** Walk bounds. See {@link FKGraphWalkerOptions}; omitted entries take the walker's ceilings. */
51
+ WalkBounds?: Pick<FKGraphWalkerOptions, 'MaxFrontier' | 'MaxPathsPerPair' | 'MaxTotalPaths'>;
52
+ /** Called once when a walk bound truncated the search, so the caller can report it. */
53
+ OnTruncated?: (reasons: string[]) => void;
50
54
  }
51
55
  /**
52
56
  * Detect transitive bridges for every hub × spoke pair whose graph distance
@@ -1 +1 @@
1
- {"version":3,"file":"TransitiveBridgeDetector.d.ts","sourceRoot":"","sources":["../../src/discovery/TransitiveBridgeDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAsB,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAE/E,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,6GAA6G;IAC7G,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAUD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACnC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,qBAAqB,EAC5B,IAAI,GAAE,+BAAoC,GAC3C,uBAAuB,EAAE,CAqG3B;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CACnC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,qBAAqB,EAC5B,IAAI,GAAE,+BAAoC,GAC3C,uBAAuB,EAAE,CAE3B;AAeD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAqF9E;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAE9E"}
1
+ {"version":3,"file":"TransitiveBridgeDetector.d.ts","sourceRoot":"","sources":["../../src/discovery/TransitiveBridgeDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAmB,MAAM,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAsB,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAU/E,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,6GAA6G;IAC7G,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,iGAAiG;IACjG,UAAU,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,iBAAiB,GAAG,eAAe,CAAC,CAAC;IAC7F,uFAAuF;IACvF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C;AAUD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACnC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,qBAAqB,EAC5B,IAAI,GAAE,+BAAoC,GAC3C,uBAAuB,EAAE,CA8G3B;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CACnC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,qBAAqB,EAC5B,IAAI,GAAE,+BAAoC,GAC3C,uBAAuB,EAAE,CAE3B;AAeD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAqF9E;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAE9E"}
@@ -20,7 +20,7 @@
20
20
  * - Spoke PK is resolved from state.json. Tables without a single-column PK
21
21
  * are skipped (composite-PK bridge join is future work).
22
22
  */
23
- import { FindBridgePaths } from './FKGraphWalker.js';
23
+ import { WalkBridgePaths } from './FKGraphWalker.js';
24
24
  import { GenerateBridgeView } from './BridgeViewSQLGenerator.js';
25
25
  import { MemberColumns } from '../types/organic-keys.js';
26
26
  const DEFAULTS = {
@@ -43,6 +43,12 @@ export function DetectTransitiveBridges(organicKeyClusters, edges, state, opts =
43
43
  // `?? DEFAULTS.provider`: runStructuralPhase passes `{ provider }` with an optional provider,
44
44
  // and a spread of an explicit `undefined` would overwrite the default.
45
45
  const o = { ...DEFAULTS, ...opts, provider: opts.provider ?? DEFAULTS.provider };
46
+ // ─── 1. Build the hub set from existing organic-key clusters ────────────
47
+ // Each hub is a (schema, table) carrying one or more organic-key match field(s).
48
+ // We emit one hub entry per (schema, table, primary match field) because
49
+ // PR #2193's MatchFieldNames is a tuple; we use the FIRST field of the
50
+ // tuple as the projected bridge column (the rest are positional siblings
51
+ // emitted via TransitiveMatchFieldNames).
46
52
  const hubsByKey = new Map();
47
53
  for (const cluster of organicKeyClusters) {
48
54
  for (const member of cluster.members) {
@@ -74,11 +80,27 @@ export function DetectTransitiveBridges(organicKeyClusters, edges, state, opts =
74
80
  for (const h of hubsByKey.values()) {
75
81
  hubsForWalker.push({ schema: h.schema, table: h.table, keyField: h.keyFields[0] });
76
82
  }
77
- const allPaths = FindBridgePaths(edges, hubsForWalker, allTables, {
83
+ const walk = WalkBridgePaths(edges, hubsForWalker, allTables, {
78
84
  MaxHops: o.MaxHops,
79
85
  MinSoftFKConfidence: o.MinSoftFKConfidence,
80
86
  PruneCycles: true,
87
+ ...(opts.WalkBounds ?? {}),
81
88
  });
89
+ if (walk.Truncated) {
90
+ opts.OnTruncated?.(walk.TruncationReasons);
91
+ }
92
+ const allPaths = walk.Paths;
93
+ // Hub lookup by (schema, table, primary match field). Built ONCE: the loop below used to
94
+ // call `Array.from(hubsByKey.values()).find(...)` per path, which allocates a fresh array
95
+ // of every hub for every path found — the second-largest allocation in this phase after
96
+ // the BFS frontier itself.
97
+ const hubsByLookupKey = new Map();
98
+ for (const h of hubsByKey.values()) {
99
+ const lookupKey = `${h.schema}.${h.table}.${h.keyFields[0]}`;
100
+ if (!hubsByLookupKey.has(lookupKey)) {
101
+ hubsByLookupKey.set(lookupKey, h);
102
+ }
103
+ }
82
104
  // ─── 4. For each path, materialize the bridge view ─────────────────────
83
105
  const findings = [];
84
106
  for (const path of allPaths) {
@@ -89,7 +111,7 @@ export function DetectTransitiveBridges(organicKeyClusters, edges, state, opts =
89
111
  if (!spokePK)
90
112
  continue; // skip composite-PK spokes for now
91
113
  // Resolve the originating hub entry to recover the full keyFields tuple + concept.
92
- const hubMatch = Array.from(hubsByKey.values()).find((h) => h.schema === path.HubSchema && h.table === path.HubTable && h.keyFields[0] === path.HubKeyField);
114
+ const hubMatch = hubsByLookupKey.get(`${path.HubSchema}.${path.HubTable}.${path.HubKeyField}`);
93
115
  if (!hubMatch)
94
116
  continue;
95
117
  const view = GenerateBridgeView(path, spokePK, { provider: o.provider });