@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
@@ -15,15 +15,24 @@
15
15
  import { OrganicKeyCluster, OrganicKeyClusterMember } from '../types/organic-keys.js';
16
16
  import { DetectedOrganicKeysOutput } from './OrganicKeyTranslator.js';
17
17
  import { TransitiveBridgeFinding } from './TransitiveBridgeDetector.js';
18
+ import { JoinProbeResult, KeyVerifier } from './JoinProbe.js';
18
19
  /** Output of the compose step: the PR #2193 JSON, the FK-redundancy-annotated clusters, and emit counts. */
19
20
  export interface ComposerResult {
20
21
  output: DetectedOrganicKeysOutput;
22
+ /** Per-cluster record of what the value-overlap probe concluded, for reporting. */
23
+ Verification: ClusterVerification[];
21
24
  /** Clusters with isFKRedundant filled in — callers that persist the cluster list
22
25
  * (e.g. detector → state.json → dashboard) should use THIS, not the pre-compose
23
26
  * input, otherwise the flag is silently lost. */
24
27
  AnnotatedClusters: OrganicKeyCluster[];
25
28
  Emitted: number;
26
29
  FlaggedFKRedundant: number;
30
+ /** Clusters dropped because the probe refuted the shared value space. */
31
+ DroppedUnverified: number;
32
+ /** Individual members dropped for not sharing the anchor's value space. */
33
+ DroppedMembers: number;
34
+ /** Concepts not emitted because no member is its table's primary key (every pair would be a co-reference). */
35
+ SkippedUnanchored: number;
27
36
  Summary: {
28
37
  outputSchemas: number;
29
38
  outputTables: number;
@@ -31,6 +40,23 @@ export interface ComposerResult {
31
40
  outputSpokes: number;
32
41
  };
33
42
  }
43
+ /** What the probe concluded about one cluster. */
44
+ export interface ClusterVerification {
45
+ ClusterId: string;
46
+ Concept: string;
47
+ /** `schema.table.column` of the member every other member was probed against. */
48
+ Anchor: string;
49
+ MembersIn: number;
50
+ MembersKept: number;
51
+ /** One entry per probed member. */
52
+ Results: Array<{
53
+ member: string;
54
+ status: JoinProbeResult['Status'];
55
+ reason: string;
56
+ }>;
57
+ /** True when the cluster was not emitted at all. */
58
+ Dropped: boolean;
59
+ }
34
60
  /**
35
61
  * Compose detected clusters + transitive bridges into the PR #2193 emit JSON.
36
62
  *
@@ -38,9 +64,14 @@ export interface ComposerResult {
38
64
  * declared foreign key — kept but flagged, not dropped). Matching transitive bridges are
39
65
  * attached as spokes. Returns the JSON plus the annotated clusters and emit counts.
40
66
  */
41
- export declare function Compose(clusters: OrganicKeyCluster[], bridges: TransitiveBridgeFinding[]): ComposerResult;
67
+ export declare function Compose(clusters: OrganicKeyCluster[], bridges: TransitiveBridgeFinding[], verifier?: KeyVerifier | null, options?: ComposeOptions): Promise<ComposerResult>;
68
+ /** Emit-time options threaded through to the translator. */
69
+ export interface ComposeOptions {
70
+ /** See {@link import('./OrganicKeyTranslator.js').TranslateOptions}. Default false. */
71
+ AutoCreateRelatedViewOnForm?: boolean;
72
+ }
42
73
  /** @deprecated Use {@link Compose}. */
43
- export declare function compose(clusters: OrganicKeyCluster[], bridges: TransitiveBridgeFinding[]): ComposerResult;
74
+ export declare function compose(clusters: OrganicKeyCluster[], bridges: TransitiveBridgeFinding[], verifier?: KeyVerifier | null, options?: ComposeOptions): Promise<ComposerResult>;
44
75
  /**
45
76
  * A cluster is FK-redundant when ALL non-PK members are declared FKs pointing
46
77
  * at the same target column (typically the PK member of the cluster). PR #2193
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/discovery/Composer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EACH,yBAAyB,EAI5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,4GAA4G;AAC5G,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,yBAAyB,CAAC;IAClC;;sDAEkD;IAClD,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACtG;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACnB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,uBAAuB,EAAE,GACnC,cAAc,CA0ChB;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CACnB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,uBAAuB,EAAE,GACnC,cAAc,CAEhB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAiB1D;AAED,2CAA2C;AAC3C,eAAO,MAAM,SAAS;;CAAoB,CAAC;AAE3C,yCAAyC;AACzC,eAAO,MAAM,MAAM;;CAAY,CAAC;AAEhC,yCAAyC;AACzC,eAAO,MAAM,QAAQ;;CAAY,CAAC;AAClC,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/discovery/Composer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAkD,MAAM,0BAA0B,CAAC;AACtI,OAAO,EACH,yBAAyB,EAI5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9D,4GAA4G;AAC5G,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,yBAAyB,CAAC;IAClC,mFAAmF;IACnF,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC;;sDAEkD;IAClD,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,8GAA8G;IAC9G,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACtG;AAED,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CACzB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,uBAAuB,EAAE,EAClC,QAAQ,GAAE,WAAW,GAAG,IAAW,EACnC,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAsEzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC3B,uFAAuF;IACvF,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AA4GD,uCAAuC;AACvC,wBAAgB,OAAO,CACnB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,uBAAuB,EAAE,EAClC,QAAQ,GAAE,WAAW,GAAG,IAAW,EACnC,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAiB1D;AAED,2CAA2C;AAC3C,eAAO,MAAM,SAAS;;CAAoB,CAAC;AAE3C,yCAAyC;AACzC,eAAO,MAAM,MAAM;;CAAY,CAAC;AAEhC,yCAAyC;AACzC,eAAO,MAAM,QAAQ;;CAAY,CAAC;AAClC,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
@@ -12,6 +12,7 @@
12
12
  * The dashboard surfaces a "hide FK-redundant" filter so users get the lookup-
13
13
  * table-PK noise out of view without losing the underlying candidates.
14
14
  */
15
+ import { memberColumns } from '../types/organic-keys.js';
15
16
  import { TranslateClusters, CountOutputEntries, } from './OrganicKeyTranslator.js';
16
17
  /**
17
18
  * Compose detected clusters + transitive bridges into the PR #2193 emit JSON.
@@ -20,14 +21,32 @@ import { TranslateClusters, CountOutputEntries, } from './OrganicKeyTranslator.j
20
21
  * declared foreign key — kept but flagged, not dropped). Matching transitive bridges are
21
22
  * attached as spokes. Returns the JSON plus the annotated clusters and emit counts.
22
23
  */
23
- export function Compose(clusters, bridges) {
24
+ export async function Compose(clusters, bridges, verifier = null, options = {}) {
24
25
  let flaggedCount = 0;
25
- const annotated = clusters.map((c) => {
26
+ const preVerify = clusters.map((c) => {
26
27
  const redundant = isFKRedundant(c);
27
28
  if (redundant)
28
29
  flaggedCount += 1;
29
30
  return { ...c, isFKRedundant: redundant };
30
31
  });
32
+ // ── Value-overlap gate ───────────────────────────────────────────────────────
33
+ //
34
+ // A cluster asserts that its member columns share a value space: that two rows
35
+ // holding the same value refer to the same real-world entity. Nothing checked
36
+ // that. Membership was decided by LLM concept naming and embedding distance, so
37
+ // columns that merely SOUND alike were emitted as a key — and the emitted key
38
+ // becomes a related-record view that value-joins them, producing "related" rows
39
+ // that are not related.
40
+ //
41
+ // Each member is probed against ONE anchor rather than against every other
42
+ // member: N-1 probes per cluster instead of N², and it tests the cluster's actual
43
+ // claim, since sharing a value space is transitive through the anchor. Both sides
44
+ // are normalized as the emitted key will normalize them, so an email key matched
45
+ // with LowerCaseTrim is not refuted for differing in case. The anchor
46
+ // is a PK member when the cluster has one (a PK is the canonical, unique value
47
+ // space), otherwise the first member.
48
+ const { clusters: annotated, verification, droppedMembers } = await verifyClusters(preVerify, verifier);
49
+ const droppedUnverified = preVerify.length - annotated.length;
31
50
  const hubKeys = new Set();
32
51
  for (const c of annotated) {
33
52
  for (const m of c.members)
@@ -47,13 +66,21 @@ export function Compose(clusters, bridges) {
47
66
  relatedEntityJoinFieldName: b.View.SpokeJoinField,
48
67
  hubConcept: b.HubConcept,
49
68
  }));
50
- const output = TranslateClusters(annotated, spokes);
69
+ let skippedUnanchored = 0;
70
+ const output = TranslateClusters(annotated, spokes, {
71
+ AutoCreateRelatedViewOnForm: options.AutoCreateRelatedViewOnForm,
72
+ OnUnanchored: () => { skippedUnanchored++; },
73
+ });
51
74
  const counts = CountOutputEntries(output);
52
75
  return {
53
76
  output,
54
77
  AnnotatedClusters: annotated,
78
+ Verification: verification,
55
79
  Emitted: annotated.length,
56
80
  FlaggedFKRedundant: flaggedCount,
81
+ DroppedUnverified: droppedUnverified,
82
+ DroppedMembers: droppedMembers,
83
+ SkippedUnanchored: skippedUnanchored,
57
84
  Summary: {
58
85
  outputSchemas: counts.schemas,
59
86
  outputTables: counts.tables,
@@ -62,9 +89,103 @@ export function Compose(clusters, bridges) {
62
89
  },
63
90
  };
64
91
  }
92
+ /** `schema.table.col[,col]` for a cluster member. */
93
+ function memberLabel(m) {
94
+ return `${m.schema}.${m.table}.${memberColumns(m).join(',')}`;
95
+ }
96
+ /**
97
+ * Pick the member every other member is probed against.
98
+ *
99
+ * A PK member is preferred: its value space is canonical and unique, so containment
100
+ * into it is a meaningful measure. Failing that, the first member — arbitrary but
101
+ * stable, and the probe is symmetric enough that the choice does not change which
102
+ * clusters survive, only which member is reported as the reference.
103
+ */
104
+ function pickAnchorMember(members) {
105
+ return members.find((m) => m.isPrimaryKey) ?? members[0];
106
+ }
107
+ /**
108
+ * The strategy a member's values are compared with at match time: its own, else the
109
+ * cluster's. The same fallback the translator writes into the emitted key.
110
+ */
111
+ function matchNormalization(m, cluster) {
112
+ return m.normalizationStrategy ?? cluster.normalization;
113
+ }
114
+ /**
115
+ * Drop cluster members whose values do not overlap the anchor's, and drop any cluster
116
+ * left with fewer than two members or spanning fewer than two tables.
117
+ *
118
+ * `Unprobed` members are KEPT. Refusing to emit whenever a probe cannot run would turn
119
+ * a permissions or budget problem into silent total key loss; the member stays and the
120
+ * per-cluster record says it was never checked. Only a measured refutation removes
121
+ * anything.
122
+ */
123
+ async function verifyClusters(clusters, verifier) {
124
+ const out = [];
125
+ const verification = [];
126
+ let droppedMembers = 0;
127
+ for (const cluster of clusters) {
128
+ if (!verifier || cluster.members.length < 2) {
129
+ // Nothing to probe against, or no probe available: emit unchanged and say so.
130
+ verification.push({
131
+ ClusterId: cluster.id,
132
+ Concept: cluster.concept,
133
+ Anchor: cluster.members.length > 0 ? memberLabel(pickAnchorMember(cluster.members)) : '',
134
+ MembersIn: cluster.members.length,
135
+ MembersKept: cluster.members.length,
136
+ Results: [],
137
+ Dropped: false,
138
+ });
139
+ out.push(cluster);
140
+ continue;
141
+ }
142
+ const anchorMember = pickAnchorMember(cluster.members);
143
+ const kept = [];
144
+ const results = [];
145
+ for (const member of cluster.members) {
146
+ if (member === anchorMember) {
147
+ kept.push(member);
148
+ continue;
149
+ }
150
+ const probe = await verifier.Verify({
151
+ Child: { Schema: member.schema, Table: member.table, Column: member.column },
152
+ Parent: { Schema: anchorMember.schema, Table: anchorMember.table, Column: anchorMember.column },
153
+ Normalization: {
154
+ Child: matchNormalization(member, cluster),
155
+ Parent: matchNormalization(anchorMember, cluster),
156
+ },
157
+ });
158
+ results.push({ member: memberLabel(member), status: probe.Status, reason: probe.Reason });
159
+ if (probe.Status === 'Refuted') {
160
+ droppedMembers += 1;
161
+ continue;
162
+ }
163
+ kept.push(member);
164
+ }
165
+ const distinctTables = new Set(kept.map((m) => `${m.schema}.${m.table}`));
166
+ const dropped = kept.length < 2 || distinctTables.size < 2;
167
+ verification.push({
168
+ ClusterId: cluster.id,
169
+ Concept: cluster.concept,
170
+ Anchor: memberLabel(anchorMember),
171
+ MembersIn: cluster.members.length,
172
+ MembersKept: dropped ? 0 : kept.length,
173
+ Results: results,
174
+ Dropped: dropped,
175
+ });
176
+ if (dropped) {
177
+ // Everything but the anchor was refuted, or what survives no longer spans
178
+ // two tables — there is no cross-table organic key left to emit.
179
+ droppedMembers += kept.length;
180
+ continue;
181
+ }
182
+ out.push({ ...cluster, members: kept });
183
+ }
184
+ return { clusters: out, verification, droppedMembers };
185
+ }
65
186
  /** @deprecated Use {@link Compose}. */
66
- export function compose(clusters, bridges) {
67
- return Compose(clusters, bridges);
187
+ export function compose(clusters, bridges, verifier = null, options = {}) {
188
+ return Compose(clusters, bridges, verifier, options);
68
189
  }
69
190
  /**
70
191
  * A cluster is FK-redundant when ALL non-PK members are declared FKs pointing
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/discovery/Composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/discovery/Composer.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { ColumnStatsCache } from './ColumnStatsCache.js';
7
7
  import { SchemaDefinition, DatabaseDocumentation } from '../types/state.js';
8
8
  import { RelationshipDiscoveryPhase, DiscoveryTriggerAnalysis } from '../types/discovery.js';
9
9
  import { RelationshipDiscoveryConfig, AIConfig } from '../types/config.js';
10
+ import { SeedContextText } from '../utils/seed-context.js';
10
11
  export interface DiscoveryEngineOptions {
11
12
  Driver: BaseAutoDocDriver;
12
13
  Config: RelationshipDiscoveryConfig;
@@ -14,6 +15,8 @@ export interface DiscoveryEngineOptions {
14
15
  schemas: SchemaDefinition[];
15
16
  OnProgress?: (message: string, data?: any) => void;
16
17
  OnCheckpoint?: (phase: RelationshipDiscoveryPhase) => Promise<void>;
18
+ /** The operator's seed context, passed to the LLM validator. */
19
+ SeedContext?: SeedContextText;
17
20
  }
18
21
  export interface DiscoveryResult {
19
22
  Phase: RelationshipDiscoveryPhase;
@@ -1 +1 @@
1
- {"version":3,"file":"DiscoveryEngine.d.ts","sourceRoot":"","sources":["../../src/discovery/DiscoveryEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiscoveryEngine.d.ts","sourceRoot":"","sources":["../../src/discovery/DiscoveryEngine.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export class DiscoveryEngine {
23
23
  this.sanityChecker = new LLMSanityChecker(this.aiConfig, this.statsCache);
24
24
  // Create LLM validator if enabled (runs per-table validation)
25
25
  if (this.config.llmValidation?.enabled) {
26
- this.llmValidator = new LLMDiscoveryValidator(this.driver, this.config, this.aiConfig, this.statsCache, this.schemas);
26
+ this.llmValidator = new LLMDiscoveryValidator(this.driver, this.config, this.aiConfig, this.statsCache, this.schemas, options.SeedContext);
27
27
  }
28
28
  }
29
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DiscoveryEngine.js","sourceRoot":"","sources":["../../src/discovery/DiscoveryEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiscoveryEngine.js","sourceRoot":"","sources":["../../src/discovery/DiscoveryEngine.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * directly regardless of whether the underlying model returns normalized output.
11
11
  */
12
12
  /** Provider names that map to a registered `BaseEmbeddings` driver class. */
13
- export type EmbeddingProviderName = 'openai' | 'mistral' | 'azure' | 'bedrock' | 'ollama' | 'local';
13
+ export type EmbeddingProviderName = 'openai' | 'gemini' | 'mistral' | 'azure' | 'bedrock' | 'ollama' | 'local';
14
14
  export interface EmbeddingProviderConfig {
15
15
  provider: EmbeddingProviderName;
16
16
  apiKey: string;
@@ -18,6 +18,11 @@ export interface EmbeddingProviderConfig {
18
18
  Dimensions?: number;
19
19
  BatchSize?: number;
20
20
  Endpoint?: string;
21
+ /**
22
+ * Wall-clock ceiling on each embedding batch, in ms: `AIConfig.callTimeoutMs`, resolved the
23
+ * same way (absent = the 120s default, 0 = unbounded).
24
+ */
25
+ CallTimeoutMs?: number;
21
26
  }
22
27
  export interface EmbeddingProvider {
23
28
  readonly provider: EmbeddingProviderName;
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingProvider.d.ts","sourceRoot":"","sources":["../../src/discovery/EmbeddingProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,6EAA6E;AAC7E,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpG,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnD;AAyBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAO1F;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAE1F"}
1
+ {"version":3,"file":"EmbeddingProvider.d.ts","sourceRoot":"","sources":["../../src/discovery/EmbeddingProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,6EAA6E;AAC7E,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/G,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnD;AA8BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAO1F;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAE1F"}
@@ -11,9 +11,11 @@
11
11
  */
12
12
  import { BaseEmbeddings } from '@memberjunction/ai';
13
13
  import { MJGlobal } from '@memberjunction/global';
14
+ import { ResolveCallTimeoutMs, WithCallDeadline } from '../utils/call-deadline.js';
14
15
  /** Provider name → registered MJ embedding driver class (see `@RegisterClass(BaseEmbeddings, ...)`). */
15
16
  const PROVIDER_TO_DRIVER_CLASS = {
16
17
  openai: 'OpenAIEmbedding',
18
+ gemini: 'GeminiEmbedding',
17
19
  mistral: 'MistralEmbedding',
18
20
  azure: 'AzureEmbedding',
19
21
  bedrock: 'BedrockEmbedding',
@@ -25,6 +27,10 @@ const PROVIDER_TO_DRIVER_CLASS = {
25
27
  * `local` uses a small HuggingFace sentence-transformer (downloaded on first use) so
26
28
  * organic-key clustering can run with no API key. `azure`/`bedrock` are intentionally
27
29
  * absent — their models are deployment-specific and must be set explicitly.
30
+ *
31
+ * `gemini` is absent for a different reason: `GeminiEmbedding` already defaults its own model, and
32
+ * that default moves with the model generation. Naming it here would pin a second copy that has to
33
+ * be remembered on every bump.
28
34
  */
29
35
  const PROVIDER_DEFAULT_MODEL = {
30
36
  openai: 'text-embedding-3-small',
@@ -48,6 +54,7 @@ export function createEmbeddingProvider(config) {
48
54
  class MJEmbeddingProvider {
49
55
  constructor(config, driverClass) {
50
56
  this.provider = config.provider;
57
+ this.callTimeoutMs = ResolveCallTimeoutMs(config.CallTimeoutMs);
51
58
  this.model = config.model || PROVIDER_DEFAULT_MODEL[config.provider] || '';
52
59
  this.batchSize = config.BatchSize ?? 100;
53
60
  // BaseEmbeddings used directly: DBAutoDoc runs standalone against arbitrary databases without MemberJunction metadata.
@@ -69,7 +76,10 @@ class MJEmbeddingProvider {
69
76
  return out;
70
77
  }
71
78
  async embedBatch(texts) {
72
- const result = await this.embeddings.EmbedTexts({ texts, model: this.model });
79
+ // Bounded like the LLM calls: a stalled embedding request otherwise parks the organic-key
80
+ // pass after every normalization call has been paid for. With the bound disabled no token is
81
+ // passed, so the request is exactly what it was before.
82
+ const result = await WithCallDeadline(this.callTimeoutMs, `embedding batch of ${texts.length} via ${this.provider}`, (signal) => this.embeddings.EmbedTexts({ texts, model: this.model, ...(signal ? { CancellationToken: signal } : {}) }));
73
83
  const vectors = result?.vectors;
74
84
  if (!vectors || vectors.length !== texts.length) {
75
85
  throw new Error(`Embedding driver returned ${vectors?.length ?? 0} vectors for ${texts.length} inputs (provider: ${this.provider}).`);
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingProvider.js","sourceRoot":"","sources":["../../src/discovery/EmbeddingProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmbeddingProvider.js","sourceRoot":"","sources":["../../src/discovery/EmbeddingProvider.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,13 @@ export declare class EnumCandidateGate {
48
48
  * Returns an EnumCandidateContext if the column passes, or null if it doesn't.
49
49
  */
50
50
  EvaluateColumn(column: ColumnDefinition, tableRowCount: number): EnumCandidateContext | null;
51
+ /**
52
+ * Checks an LLM value-list verdict against the data. The verdict counts only for a column that
53
+ * passes every gate here, and its values are cut down to the ones observed in that column, so a
54
+ * value the model invented never reaches the output. Returns the values to keep, or null when
55
+ * the verdict should be dropped (not a candidate, or fewer than two observed values remain).
56
+ */
57
+ FilterVerdictValues(column: ColumnDefinition, tableRowCount: number, verdictValues: string[]): string[] | null;
51
58
  /** @deprecated Use {@link EvaluateColumn}. */
52
59
  evaluateColumn(column: ColumnDefinition, tableRowCount: number): EnumCandidateContext | null;
53
60
  /**
@@ -57,6 +64,11 @@ export declare class EnumCandidateGate {
57
64
  /**
58
65
  * Gate: declared column length must be ≤ maxColumnLength.
59
66
  * Unbounded text/varchar(max) is excluded.
67
+ *
68
+ * The drivers report the bare type name (`varchar`, `nvarchar`) with the length in
69
+ * `column.maxLength`, so the length comes from there when the type string carries none.
70
+ * Reading only the type string made every varchar/nvarchar column look unbounded, so no
71
+ * string column was ever a candidate.
60
72
  */
61
73
  private passesColumnLengthGate;
62
74
  /**
@@ -71,6 +83,11 @@ export declare class EnumCandidateGate {
71
83
  * Gate: exclude key-shaped data patterns (sequential, guid, composite).
72
84
  */
73
85
  private passesPatternGate;
86
+ /**
87
+ * Gate: the observed values must not all be years, GUIDs or dates. A year column grows every
88
+ * year, and GUIDs and dates are keys or timestamps, so none of them is a closed set.
89
+ */
90
+ private passesValueShapeGate;
74
91
  /**
75
92
  * Gate: distinct count must be ≥ 2 and ≤ maxDistinctValues.
76
93
  */
@@ -86,6 +103,8 @@ export declare class EnumCandidateGate {
86
103
  * e.g. "nvarchar(50)" → "nvarchar", "CHARACTER VARYING" → "character varying"
87
104
  */
88
105
  private parseBaseType;
106
+ /** The declared length: from the type string when it carries one, else from the driver's maxLength. */
107
+ private declaredLength;
89
108
  /**
90
109
  * Parse the declared length from a type string.
91
110
  * Returns null for unbounded types or types without length.
@@ -1 +1 @@
1
- {"version":3,"file":"EnumCandidateGate.d.ts","sourceRoot":"","sources":["../../src/discovery/EnumCandidateGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAI5C;;OAEG;IACI,aAAa,CAClB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,aAAa,EAAE,MAAM,GACpB,oBAAoB,EAAE;IAWzB,6CAA6C;IACtC,aAAa,CAClB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,aAAa,EAAE,MAAM,GACpB,oBAAoB,EAAE;IAIzB;;;OAGG;IACI,cAAc,CACnB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACpB,oBAAoB,GAAG,IAAI;IA2B9B,8CAA8C;IACvC,cAAc,CACnB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACpB,oBAAoB,GAAG,IAAI;IAM9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAexB"}
1
+ {"version":3,"file":"EnumCandidateGate.d.ts","sourceRoot":"","sources":["../../src/discovery/EnumCandidateGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAI5C;;OAEG;IACI,aAAa,CAClB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,aAAa,EAAE,MAAM,GACpB,oBAAoB,EAAE;IAWzB,6CAA6C;IACtC,aAAa,CAClB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,aAAa,EAAE,MAAM,GACpB,oBAAoB,EAAE;IAIzB;;;OAGG;IACI,cAAc,CACnB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACpB,oBAAoB,GAAG,IAAI;IA4B9B;;;;;OAKG;IACI,mBAAmB,CACxB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,EAAE,GAAG,IAAI;IAQlB,8CAA8C;IACvC,cAAc,CACnB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACpB,oBAAoB,GAAG,IAAI;IAM9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,uGAAuG;IACvG,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAexB"}