@memberjunction/db-auto-doc 5.37.0 → 5.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +31 -0
  2. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
  3. package/dist/core/AnalysisOrchestrator.js +32 -2
  4. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  5. package/dist/discovery/BridgeViewSQLGenerator.d.ts +67 -0
  6. package/dist/discovery/BridgeViewSQLGenerator.d.ts.map +1 -0
  7. package/dist/discovery/BridgeViewSQLGenerator.js +99 -0
  8. package/dist/discovery/BridgeViewSQLGenerator.js.map +1 -0
  9. package/dist/discovery/ColumnClusterer.d.ts +63 -0
  10. package/dist/discovery/ColumnClusterer.d.ts.map +1 -0
  11. package/dist/discovery/ColumnClusterer.js +205 -0
  12. package/dist/discovery/ColumnClusterer.js.map +1 -0
  13. package/dist/discovery/ColumnNormalizer.d.ts +106 -0
  14. package/dist/discovery/ColumnNormalizer.d.ts.map +1 -0
  15. package/dist/discovery/ColumnNormalizer.js +376 -0
  16. package/dist/discovery/ColumnNormalizer.js.map +1 -0
  17. package/dist/discovery/Composer.d.ts +59 -0
  18. package/dist/discovery/Composer.d.ts.map +1 -0
  19. package/dist/discovery/Composer.js +95 -0
  20. package/dist/discovery/Composer.js.map +1 -0
  21. package/dist/discovery/EmbeddingProvider.d.ts +27 -0
  22. package/dist/discovery/EmbeddingProvider.d.ts.map +1 -0
  23. package/dist/discovery/EmbeddingProvider.js +87 -0
  24. package/dist/discovery/EmbeddingProvider.js.map +1 -0
  25. package/dist/discovery/FKGraphWalker.d.ts +108 -0
  26. package/dist/discovery/FKGraphWalker.d.ts.map +1 -0
  27. package/dist/discovery/FKGraphWalker.js +169 -0
  28. package/dist/discovery/FKGraphWalker.js.map +1 -0
  29. package/dist/discovery/OrganicKeyDetector.d.ts +51 -0
  30. package/dist/discovery/OrganicKeyDetector.d.ts.map +1 -0
  31. package/dist/discovery/OrganicKeyDetector.js +78 -0
  32. package/dist/discovery/OrganicKeyDetector.js.map +1 -0
  33. package/dist/discovery/OrganicKeyTranslator.d.ts +78 -0
  34. package/dist/discovery/OrganicKeyTranslator.d.ts.map +1 -0
  35. package/dist/discovery/OrganicKeyTranslator.js +166 -0
  36. package/dist/discovery/OrganicKeyTranslator.js.map +1 -0
  37. package/dist/discovery/SemanticPhase.d.ts +70 -0
  38. package/dist/discovery/SemanticPhase.d.ts.map +1 -0
  39. package/dist/discovery/SemanticPhase.js +423 -0
  40. package/dist/discovery/SemanticPhase.js.map +1 -0
  41. package/dist/discovery/StructuralPhase.d.ts +24 -0
  42. package/dist/discovery/StructuralPhase.d.ts.map +1 -0
  43. package/dist/discovery/StructuralPhase.js +23 -0
  44. package/dist/discovery/StructuralPhase.js.map +1 -0
  45. package/dist/discovery/TransitiveBridgeDetector.d.ts +65 -0
  46. package/dist/discovery/TransitiveBridgeDetector.d.ts.map +1 -0
  47. package/dist/discovery/TransitiveBridgeDetector.js +244 -0
  48. package/dist/discovery/TransitiveBridgeDetector.js.map +1 -0
  49. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +12 -0
  50. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -1
  51. package/dist/generators/AdditionalSchemaInfoGenerator.js +31 -0
  52. package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -1
  53. package/dist/types/config.d.ts +71 -0
  54. package/dist/types/config.d.ts.map +1 -1
  55. package/dist/types/config.js.map +1 -1
  56. package/dist/types/organic-keys.d.ts +141 -0
  57. package/dist/types/organic-keys.d.ts.map +1 -0
  58. package/dist/types/organic-keys.js +27 -0
  59. package/dist/types/organic-keys.js.map +1 -0
  60. package/dist/types/state.d.ts +7 -0
  61. package/dist/types/state.d.ts.map +1 -1
  62. package/dist/utils/json.d.ts +40 -0
  63. package/dist/utils/json.d.ts.map +1 -0
  64. package/dist/utils/json.js +141 -0
  65. package/dist/utils/json.js.map +1 -0
  66. package/package.json +5 -5
package/README.md CHANGED
@@ -53,6 +53,7 @@ graph TD
53
53
 
54
54
  ### Advanced Features
55
55
  - **Relationship Discovery** -- Automatically detect missing primary and foreign keys using statistical analysis and LLM validation
56
+ - **Organic Key Detection** -- Optional pass that finds cross-table *shared-identity* relationships (e.g. the same email or phone stored in different formats across systems) by clustering columns in business-meaning space, and emits MemberJunction PR #2193 organic-key metadata with per-column normalization
56
57
  - **Sample Query Generation** -- Generate reference SQL queries for AI agents with alignment tracking
57
58
  - **Ground Truth System** -- Provide authoritative descriptions for schemas, tables, and columns that AI analysis must respect
58
59
  - **Incremental State Saves** -- State persisted to disk after every phase (introspection, sampling, discovery, per-table analysis)
@@ -416,6 +417,23 @@ Triggered automatically when:
416
417
  - Tables lack primary key constraints
417
418
  - Insufficient foreign key relationships detected (below threshold)
418
419
 
420
+ ### Organic Key Detection (Optional)
421
+
422
+ Foreign keys require **shared exact values**. Organic keys (MemberJunction [PR #2193](https://github.com/MemberJunction/MJ/pull/2193)) capture the weaker-but-broader condition of **shared identity**: two columns refer to the same real-world thing once each is canonicalized through its own transformation. That joins far more cross-system data than exact-match FKs -- e.g. the same phone number stored as `+1 (555) 123-4567`, `5551234567`, and `555.123.4567` across HubSpot, Zendesk, and QuickBooks.
423
+
424
+ This pass is **off by default** and runs after PK/FK detection. Enable it with `organicKeyDetection.enabled: true` (it reuses your existing `ai` provider for both the LLM and embeddings). The pipeline:
425
+
426
+ 1. **Prefilter** -- drop columns that can't carry identity (booleans, enums, measures, audit columns, free text, non-value-matchable types).
427
+ 2. **Normalize to business space** -- an LLM rewrites each column's description into a simplified, business-focused form and tags a *concept name* + a *normalization strategy*. Describing the same thing the same way pulls semantically-equal columns together in embedding space.
428
+ 3. **Embed & cluster** -- normalized descriptions are embedded (via MemberJunction's `BaseEmbeddings`) and grouped with agglomerative clustering using an auto-calibrated distance threshold.
429
+ 4. **Concept-name split** -- clusters that merged distinct concepts (e.g. `product_id` vs `product_category_id`) are split apart using the LLM concept tags.
430
+ 5. **Per-column normalization** -- each emitted organic key carries *its own* normalization function for its column, so differently-formatted columns each canonicalize to a shared form. One function per organic key, not one per cluster.
431
+ 6. **Transitive bridges** -- the FK graph is walked to find multi-hop paths between clustered tables; bridge-view SQL is generated and the transitive spoke fields are populated so PR #2193's runtime can surface multi-hop matches.
432
+
433
+ Results are written into `additionalSchemaInfo.json` (see [CodeGen Integration](#codegen-integration-additional-schema-info)) as `OrganicKeys` entries, which CodeGen upserts into `EntityOrganicKey` / `EntityOrganicKeyRelatedEntity` metadata. At runtime, `EntityInfo.BuildOrganicKeyViewParams` applies each side's own normalization expression when matching records.
434
+
435
+ > **Note:** Embeddings route through MemberJunction's `BaseEmbeddings` drivers (OpenAI, Mistral, Azure, Bedrock, Ollama, local), defaulting to `OpenAIEmbedding`. The detection pass therefore requires an embedding provider with a valid key configured.
436
+
419
437
  ### Sample Query Generation
420
438
 
421
439
  DBAutoDoc can generate reference SQL queries for AI agents, solving the **query alignment problem** where multi-query patterns (summary + detail) have inconsistent filtering logic:
@@ -816,6 +834,19 @@ This rich context enables AI to make accurate inferences.
816
834
  "enabled": true,
817
835
  "maxIterations": 5
818
836
  }
837
+ },
838
+ "organicKeyDetection": {
839
+ "enabled": false,
840
+ "clusteringSensitivity": "balanced",
841
+ "minClusterSize": 2,
842
+ "minDistinctTables": 2,
843
+ "sampleValueCount": 5,
844
+ "refinementConcurrency": 4,
845
+ "maxRefinementRetries": 2,
846
+ "embedding": {
847
+ "provider": "openai",
848
+ "model": "text-embedding-3-small"
849
+ }
819
850
  }
820
851
  },
821
852
  "output": {
@@ -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;AAIvE,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;IA+XnD;;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;AAmBH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMvE,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;IA4ZnD;;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"}
@@ -19,6 +19,7 @@ import { AdditionalSchemaInfoGenerator } from '../generators/AdditionalSchemaInf
19
19
  import { SampleQueryGenerator } from '../generators/SampleQueryGenerator.js';
20
20
  import { DiscoveryTriggerAnalyzer } from '../discovery/DiscoveryTriggerAnalyzer.js';
21
21
  import { DiscoveryEngine } from '../discovery/DiscoveryEngine.js';
22
+ import { OrganicKeyDetector } from '../discovery/OrganicKeyDetector.js';
22
23
  export class AnalysisOrchestrator {
23
24
  constructor(options) {
24
25
  this.config = options.config;
@@ -306,6 +307,35 @@ export class AnalysisOrchestrator {
306
307
  stateManager.updateSummary(state);
307
308
  await stateManager.save(state);
308
309
  }
310
+ // ── Organic Key Detection Phase (OPTIONAL) ─────────────────────────────
311
+ // Runs AFTER descriptions + PK/FK discovery, only when explicitly enabled.
312
+ // Clusters columns across tables/schemas by shared business identity (email,
313
+ // phone, customer id, …) using normalized descriptions → embeddings →
314
+ // clustering → per-concept split. Output is persisted into state.json AND
315
+ // fed to the additionalSchemaInfo generator so CodeGen writes the
316
+ // EntityOrganicKey / EntityOrganicKeyRelatedEntity metadata.
317
+ let organicKeyOutput;
318
+ if (this.config.analysis.organicKeyDetection?.enabled) {
319
+ this.onProgress('Running organic-key detection');
320
+ try {
321
+ const detector = new OrganicKeyDetector(this.config.analysis.organicKeyDetection, this.config.ai);
322
+ const okResult = await detector.detect(state, {
323
+ onProgress: (msg) => this.onProgress(msg),
324
+ });
325
+ state.organicKeyClusters = okResult.clusters;
326
+ state.phases.organicKeyDetection = okResult.phase;
327
+ organicKeyOutput = okResult.output;
328
+ this.onProgress('Organic-key detection complete', {
329
+ clustersFound: okResult.summary.clustersFound,
330
+ clustersEmitted: okResult.summary.clustersEmitted,
331
+ outputKeys: okResult.summary.outputKeys,
332
+ });
333
+ }
334
+ catch (err) {
335
+ // Non-fatal — organic-key detection is optional enrichment. Log and continue.
336
+ this.onProgress(`Organic-key detection failed (continuing): ${err.message}`);
337
+ }
338
+ }
309
339
  // Final state update
310
340
  stateManager.updateSummary(state);
311
341
  await stateManager.save(state);
@@ -319,9 +349,9 @@ export class AnalysisOrchestrator {
319
349
  const markdown = mdGen.generate(state);
320
350
  const mdPath = path.join(runFolder, 'summary.md');
321
351
  await fs.writeFile(mdPath, markdown, 'utf-8');
322
- // Generate additionalSchemaInfo.json for CodeGen soft FK/PK support
352
+ // Generate additionalSchemaInfo.json for CodeGen soft FK/PK + organic key support
323
353
  const schemaInfoGen = new AdditionalSchemaInfoGenerator();
324
- const schemaInfo = schemaInfoGen.generate(state, {});
354
+ const schemaInfo = schemaInfoGen.generate(state, { organicKeys: organicKeyOutput });
325
355
  const schemaInfoPath = path.join(runFolder, 'additionalSchemaInfo.json');
326
356
  await fs.writeFile(schemaInfoPath, schemaInfo, 'utf-8');
327
357
  // Close database
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisOrchestrator.js","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalysisOrchestrator.js","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * BridgeViewSQLGenerator — Pattern 3 SQL emission.
3
+ *
4
+ * Takes a BridgePath (from FKGraphWalker) and produces the CREATE VIEW SQL
5
+ * statement that PR #2193's CodeGen ingest (`processOrganicKeyConfig`) will
6
+ * EXECUTE when materializing the organic-key configuration.
7
+ *
8
+ * Output SQL shape — minimal valid bridge view per the PR #2193 docs example:
9
+ *
10
+ * CREATE OR ALTER VIEW [schema].[viewName] AS
11
+ * SELECT
12
+ * [hub].[hubKeyField] AS [hubKeyField],
13
+ * [spoke].[spokePK] AS [spokeOutputAlias]
14
+ * FROM [spokeSchema].[spokeTable] [spoke]
15
+ * INNER JOIN [interSchema].[interTable] [t1]
16
+ * ON [spoke].[fkCol] = [t1].[pkCol]
17
+ * INNER JOIN [hubSchema].[hubTable] [hub]
18
+ * ON [t1].[fkCol] = [hub].[pkCol]
19
+ *
20
+ * The aliases t1, t2, … are auto-assigned per intermediate hop. The HUB carries
21
+ * the organic-key field; the SPOKE is what the form panel will list as related
22
+ * records. PR #2193's transitive runtime substitutes the hub value (e.g. a
23
+ * specific email address) at query time:
24
+ *
25
+ * [ID] IN (SELECT [spokeOutputAlias] FROM <viewName> WHERE [hubKeyField] = ?)
26
+ *
27
+ * The SPOKE's primary key is what the bridge view projects in addition to the
28
+ * hub's key column — that's what `TransitiveOutputFieldName` references.
29
+ *
30
+ * The caller (TransitiveBridgeDetector) supplies the spoke PK because the
31
+ * walker doesn't know it.
32
+ */
33
+ import { BridgePath } from './FKGraphWalker.js';
34
+ /** Bundle returned for each bridge path. */
35
+ export interface GeneratedBridgeView {
36
+ /** View name suitable for the PR #2193 TransitiveView.Name field. */
37
+ viewName: string;
38
+ /** Default schema (caller may override). */
39
+ schemaName: string;
40
+ /** The bare SELECT body for the bridge view — exactly what TransitiveView.SQL should carry.
41
+ * PR #2193's CodeGen wraps this in `CREATE OR ALTER VIEW <schema>.<name> AS`, so the
42
+ * header must NOT be included here. */
43
+ sql: string;
44
+ /** The hub-key field projected by the view (matches TransitiveMatchFieldNames[0]). */
45
+ hubKeyField: string;
46
+ /** The output column projected for the spoke (matches TransitiveOutputFieldName). */
47
+ spokeOutputField: string;
48
+ /** The spoke PK column the form-panel join joins ON (matches RelatedEntityJoinFieldName). */
49
+ spokeJoinField: string;
50
+ }
51
+ export interface BridgeViewSQLGeneratorOptions {
52
+ /**
53
+ * Pattern for the view name. Tokens substituted:
54
+ * {hub} → hub table name
55
+ * {spoke} → spoke table name
56
+ * {key} → hub key field name
57
+ * Default `"vw{spoke}_{key}_bridge"`.
58
+ *
59
+ * The generator lowercases the result and replaces non-alphanumeric chars
60
+ * with underscores, since the view must be a valid SQL identifier.
61
+ */
62
+ viewNamePattern?: string;
63
+ /** Override the view's schema. Defaults to the SPOKE's schema (where it'll be most natural to find). */
64
+ viewSchema?: string;
65
+ }
66
+ export declare function generateBridgeView(path: BridgePath, spokePKColumn: string, opts?: BridgeViewSQLGeneratorOptions): GeneratedBridgeView;
67
+ //# sourceMappingURL=BridgeViewSQLGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeViewSQLGenerator.d.ts","sourceRoot":"","sources":["../../src/discovery/BridgeViewSQLGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAChC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB;;4CAEwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC1C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,6BAAkC,GACzC,mBAAmB,CAuDrB"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * BridgeViewSQLGenerator — Pattern 3 SQL emission.
3
+ *
4
+ * Takes a BridgePath (from FKGraphWalker) and produces the CREATE VIEW SQL
5
+ * statement that PR #2193's CodeGen ingest (`processOrganicKeyConfig`) will
6
+ * EXECUTE when materializing the organic-key configuration.
7
+ *
8
+ * Output SQL shape — minimal valid bridge view per the PR #2193 docs example:
9
+ *
10
+ * CREATE OR ALTER VIEW [schema].[viewName] AS
11
+ * SELECT
12
+ * [hub].[hubKeyField] AS [hubKeyField],
13
+ * [spoke].[spokePK] AS [spokeOutputAlias]
14
+ * FROM [spokeSchema].[spokeTable] [spoke]
15
+ * INNER JOIN [interSchema].[interTable] [t1]
16
+ * ON [spoke].[fkCol] = [t1].[pkCol]
17
+ * INNER JOIN [hubSchema].[hubTable] [hub]
18
+ * ON [t1].[fkCol] = [hub].[pkCol]
19
+ *
20
+ * The aliases t1, t2, … are auto-assigned per intermediate hop. The HUB carries
21
+ * the organic-key field; the SPOKE is what the form panel will list as related
22
+ * records. PR #2193's transitive runtime substitutes the hub value (e.g. a
23
+ * specific email address) at query time:
24
+ *
25
+ * [ID] IN (SELECT [spokeOutputAlias] FROM <viewName> WHERE [hubKeyField] = ?)
26
+ *
27
+ * The SPOKE's primary key is what the bridge view projects in addition to the
28
+ * hub's key column — that's what `TransitiveOutputFieldName` references.
29
+ *
30
+ * The caller (TransitiveBridgeDetector) supplies the spoke PK because the
31
+ * walker doesn't know it.
32
+ */
33
+ const DEFAULTS = {
34
+ viewNamePattern: 'vw{spoke}_{key}_bridge',
35
+ viewSchema: '',
36
+ };
37
+ export function generateBridgeView(path, spokePKColumn, opts = {}) {
38
+ const o = { ...DEFAULTS, ...opts };
39
+ const viewName = buildViewName(o.viewNamePattern, path);
40
+ const schemaName = o.viewSchema || path.spokeSchema;
41
+ const spokeOutputField = `${path.spokeTable}_${spokePKColumn}`;
42
+ // ─── Build alias map ────────────────────────────────────────────────────
43
+ // hop[0].fromTable = spoke (alias "spoke")
44
+ // hop[i].toTable for 0<i<len-1 = intermediate (alias t1, t2, ...)
45
+ // hop[last].toTable = hub (alias "hub")
46
+ const aliases = [];
47
+ aliases.push('spoke'); // index 0 = spoke
48
+ for (let i = 1; i < path.hops.length; i++) {
49
+ aliases.push(`t${i}`);
50
+ }
51
+ aliases.push('hub'); // final = hub
52
+ // ─── JOIN clauses ───────────────────────────────────────────────────────
53
+ const fromClause = `FROM ${qident(path.spokeSchema)}.${qident(path.spokeTable)} ${aliases[0]}`;
54
+ const joinClauses = [];
55
+ for (let i = 0; i < path.hops.length; i++) {
56
+ const hop = path.hops[i];
57
+ const fromAlias = aliases[i];
58
+ const toAlias = aliases[i + 1];
59
+ joinClauses.push(`INNER JOIN ${qident(hop.toSchema)}.${qident(hop.toTable)} ${toAlias} ON ${fromAlias}.${qident(hop.fromColumn)} = ${toAlias}.${qident(hop.toColumn)}`);
60
+ }
61
+ // ─── SELECT list ────────────────────────────────────────────────────────
62
+ const selectList = [
63
+ `hub.${qident(path.hubKeyField)} AS ${qident(path.hubKeyField)}`,
64
+ `spoke.${qident(spokePKColumn)} AS ${qident(spokeOutputField)}`,
65
+ ];
66
+ // ─── Final SQL — body only ──────────────────────────────────────────────
67
+ // PR #2193's CodeGen processOrganicKeyConfig() prepends `CREATE OR ALTER
68
+ // VIEW <schema>.<name> AS\n` to whatever's in TransitiveView.SQL. So we
69
+ // emit ONLY the SELECT body — never the CREATE VIEW header — otherwise
70
+ // SQL Server rejects the double-prefixed statement.
71
+ const sql = [
72
+ `SELECT`,
73
+ ' ' + selectList.join(',\n '),
74
+ fromClause,
75
+ ...joinClauses,
76
+ ].join('\n');
77
+ return {
78
+ viewName,
79
+ schemaName,
80
+ sql,
81
+ hubKeyField: path.hubKeyField,
82
+ spokeOutputField,
83
+ spokeJoinField: spokePKColumn,
84
+ };
85
+ }
86
+ // ─── Helpers ────────────────────────────────────────────────────────────────
87
+ function buildViewName(pattern, path) {
88
+ const raw = pattern
89
+ .replace(/\{hub\}/g, path.hubTable)
90
+ .replace(/\{spoke\}/g, path.spokeTable)
91
+ .replace(/\{key\}/g, path.hubKeyField);
92
+ // Sanitize: SQL identifier — alphanumeric + underscore only, max 128 chars.
93
+ const cleaned = raw.replace(/[^A-Za-z0-9_]/g, '_').slice(0, 128);
94
+ return cleaned;
95
+ }
96
+ function qident(name) {
97
+ return `[${name.replace(/]/g, ']]')}]`;
98
+ }
99
+ //# sourceMappingURL=BridgeViewSQLGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeViewSQLGenerator.js","sourceRoot":"","sources":["../../src/discovery/BridgeViewSQLGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ColumnClusterer — average-linkage agglomerative clustering on cosine distance.
3
+ *
4
+ * Input: N columns each with a unit-normalized embedding vector.
5
+ * Output: clusters of ≥2 members spanning ≥2 distinct tables, sorted biggest-first.
6
+ *
7
+ * Algorithm:
8
+ * 1. Compute the full N×N upper-triangular pairwise cosine-distance matrix.
9
+ * 2. Repeatedly find the closest two clusters; if their distance ≤ mergeThreshold,
10
+ * merge them and update the distance to every other cluster as the AVERAGE
11
+ * pairwise distance between their members. Stop when the closest pair exceeds
12
+ * the threshold.
13
+ * 3. Filter clusters by minClusterSize + minDistinctTables.
14
+ *
15
+ * Why average-linkage:
16
+ * Complete-linkage requires EVERY pair across two clusters to be close before
17
+ * merging — too tight in practice. Single-linkage chains unrelated points
18
+ * through bridges. Average-linkage merges when clusters are similar on average,
19
+ * which matches the actual "cluster = one concept" question.
20
+ */
21
+ import { OrganicKeyClusterMember } from '../types/organic-keys.js';
22
+ /** A column ready to cluster — identity + embedding + structural metadata. */
23
+ export interface ClustererInputColumn {
24
+ schema: string;
25
+ table: string;
26
+ column: string;
27
+ embedding: Float32Array;
28
+ participatesInFK: boolean;
29
+ fkTarget?: {
30
+ schema: string;
31
+ table: string;
32
+ column: string;
33
+ } | null;
34
+ isPrimaryKey?: boolean;
35
+ }
36
+ /** A raw cluster from the clusterer — naming/normalization filled in by the caller. */
37
+ export interface RawCluster {
38
+ memberIndexes: number[];
39
+ members: OrganicKeyClusterMember[];
40
+ /** Max pairwise distance among members (cluster "tightness" — lower is tighter). */
41
+ maxIntraDistance: number;
42
+ }
43
+ export interface ClustererOptions {
44
+ /**
45
+ * Explicit merge-distance threshold. When provided, used directly.
46
+ * When omitted, the clusterer auto-calibrates from the actual distance
47
+ * distribution (threshold = pN of pairwise distances, default p5).
48
+ */
49
+ mergeThreshold?: number;
50
+ /** Percentile (0–100) of the pairwise distance distribution for auto-calibration. Default 5. */
51
+ mergeThresholdPercentile?: number;
52
+ /** Minimum cluster size to report. */
53
+ minClusterSize: number;
54
+ /** Minimum distinct tables a cluster must span. */
55
+ minDistinctTables: number;
56
+ }
57
+ export declare class ColumnClusterer {
58
+ private readonly opts;
59
+ lastResolvedThreshold: number;
60
+ constructor(opts: ClustererOptions);
61
+ cluster(columns: ClustererInputColumn[]): RawCluster[];
62
+ }
63
+ //# sourceMappingURL=ColumnClusterer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnClusterer.d.ts","sourceRoot":"","sources":["../../src/discovery/ColumnClusterer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,YAAY,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,eAAe;IAGZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAF1B,qBAAqB,SAAK;gBAEJ,IAAI,EAAE,gBAAgB;IAE5C,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE;CAoFhE"}