@memberjunction/db-auto-doc 5.11.0 → 5.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +171 -2
  2. package/bin/run.js +18 -5
  3. package/dist/commands/analyze.js +2 -2
  4. package/dist/commands/analyze.js.map +1 -1
  5. package/dist/commands/export.d.ts +3 -0
  6. package/dist/commands/export.d.ts.map +1 -1
  7. package/dist/commands/export.js +21 -2
  8. package/dist/commands/export.js.map +1 -1
  9. package/dist/commands/generate-queries.d.ts.map +1 -1
  10. package/dist/commands/generate-queries.js +1 -1
  11. package/dist/commands/generate-queries.js.map +1 -1
  12. package/dist/core/AnalysisEngine.d.ts +10 -2
  13. package/dist/core/AnalysisEngine.d.ts.map +1 -1
  14. package/dist/core/AnalysisEngine.js +117 -36
  15. package/dist/core/AnalysisEngine.js.map +1 -1
  16. package/dist/core/AnalysisOrchestrator.d.ts +22 -0
  17. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
  18. package/dist/core/AnalysisOrchestrator.js +259 -46
  19. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  20. package/dist/core/BackpropagationEngine.d.ts +7 -1
  21. package/dist/core/BackpropagationEngine.d.ts.map +1 -1
  22. package/dist/core/BackpropagationEngine.js +41 -4
  23. package/dist/core/BackpropagationEngine.js.map +1 -1
  24. package/dist/core/GuardrailsManager.d.ts.map +1 -1
  25. package/dist/core/GuardrailsManager.js +4 -0
  26. package/dist/core/GuardrailsManager.js.map +1 -1
  27. package/dist/discovery/DiscoveryEngine.d.ts +8 -1
  28. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -1
  29. package/dist/discovery/DiscoveryEngine.js +199 -30
  30. package/dist/discovery/DiscoveryEngine.js.map +1 -1
  31. package/dist/discovery/FKDetector.d.ts +53 -1
  32. package/dist/discovery/FKDetector.d.ts.map +1 -1
  33. package/dist/discovery/FKDetector.js +172 -17
  34. package/dist/discovery/FKDetector.js.map +1 -1
  35. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -1
  36. package/dist/discovery/LLMDiscoveryValidator.js +12 -4
  37. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
  38. package/dist/discovery/LLMSanityChecker.d.ts +5 -1
  39. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -1
  40. package/dist/discovery/LLMSanityChecker.js +12 -4
  41. package/dist/discovery/LLMSanityChecker.js.map +1 -1
  42. package/dist/discovery/PKDetector.d.ts +9 -1
  43. package/dist/discovery/PKDetector.d.ts.map +1 -1
  44. package/dist/discovery/PKDetector.js +90 -37
  45. package/dist/discovery/PKDetector.js.map +1 -1
  46. package/dist/drivers/BaseAutoDocDriver.d.ts +1 -1
  47. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -1
  48. package/dist/drivers/BaseAutoDocDriver.js +2 -0
  49. package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
  50. package/dist/drivers/MySQLDriver.d.ts +1 -1
  51. package/dist/drivers/MySQLDriver.d.ts.map +1 -1
  52. package/dist/drivers/MySQLDriver.js.map +1 -1
  53. package/dist/drivers/PostgreSQLDriver.d.ts +1 -1
  54. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -1
  55. package/dist/drivers/PostgreSQLDriver.js.map +1 -1
  56. package/dist/drivers/SQLServerDriver.d.ts +1 -1
  57. package/dist/drivers/SQLServerDriver.d.ts.map +1 -1
  58. package/dist/drivers/SQLServerDriver.js.map +1 -1
  59. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +99 -0
  60. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -0
  61. package/dist/generators/AdditionalSchemaInfoGenerator.js +275 -0
  62. package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -0
  63. package/dist/generators/MarkdownGenerator.d.ts.map +1 -1
  64. package/dist/generators/MarkdownGenerator.js +24 -5
  65. package/dist/generators/MarkdownGenerator.js.map +1 -1
  66. package/dist/generators/MermaidGenerator.d.ts.map +1 -1
  67. package/dist/generators/MermaidGenerator.js +5 -3
  68. package/dist/generators/MermaidGenerator.js.map +1 -1
  69. package/dist/generators/ReportGenerator.js +1 -1
  70. package/dist/generators/ReportGenerator.js.map +1 -1
  71. package/dist/generators/SampleQueryGenerator.d.ts +6 -1
  72. package/dist/generators/SampleQueryGenerator.d.ts.map +1 -1
  73. package/dist/generators/SampleQueryGenerator.js +26 -6
  74. package/dist/generators/SampleQueryGenerator.js.map +1 -1
  75. package/dist/prompts/PromptEngine.d.ts.map +1 -1
  76. package/dist/prompts/PromptEngine.js +15 -2
  77. package/dist/prompts/PromptEngine.js.map +1 -1
  78. package/dist/state/IterationTracker.d.ts +7 -2
  79. package/dist/state/IterationTracker.d.ts.map +1 -1
  80. package/dist/state/IterationTracker.js +13 -2
  81. package/dist/state/IterationTracker.js.map +1 -1
  82. package/dist/state/StateManager.d.ts +1 -1
  83. package/dist/state/StateManager.d.ts.map +1 -1
  84. package/dist/state/StateManager.js +29 -14
  85. package/dist/state/StateManager.js.map +1 -1
  86. package/dist/types/analysis.d.ts +11 -0
  87. package/dist/types/analysis.d.ts.map +1 -1
  88. package/dist/types/config.d.ts +50 -0
  89. package/dist/types/config.d.ts.map +1 -1
  90. package/dist/types/config.js.map +1 -1
  91. package/dist/types/discovery.d.ts +15 -0
  92. package/dist/types/discovery.d.ts.map +1 -1
  93. package/dist/types/state.d.ts +13 -1
  94. package/dist/types/state.d.ts.map +1 -1
  95. package/dist/utils/config-loader.d.ts +4 -0
  96. package/dist/utils/config-loader.d.ts.map +1 -1
  97. package/dist/utils/config-loader.js +22 -0
  98. package/dist/utils/config-loader.js.map +1 -1
  99. package/package.json +5 -5
  100. package/prompts/backpropagation.md +8 -0
  101. package/prompts/table-analysis.md +21 -0
@@ -7,10 +7,18 @@ import { BaseAutoDocDriver } from '../drivers/BaseAutoDocDriver.js';
7
7
  import { SchemaDefinition, TableDefinition } from '../types/state.js';
8
8
  import { FKCandidate, PKCandidate } from '../types/discovery.js';
9
9
  import { RelationshipDiscoveryConfig } from '../types/config.js';
10
+ import { ColumnStatsCache } from './ColumnStatsCache.js';
10
11
  export declare class FKDetector {
11
12
  private driver;
12
13
  private config;
13
- constructor(driver: BaseAutoDocDriver, config: RelationshipDiscoveryConfig);
14
+ private statsCache?;
15
+ constructor(driver: BaseAutoDocDriver, config: RelationshipDiscoveryConfig, statsCache?: ColumnStatsCache);
16
+ /**
17
+ * Returns the list of FK-eligible column names for a table.
18
+ * A column is FK-eligible if it has a key-compatible data type and values look like keys.
19
+ * This list constrains what the LLM is allowed to recommend as FKs.
20
+ */
21
+ getFKEligibleColumns(schemaName: string, tableName: string): string[];
14
22
  /**
15
23
  * Detect foreign key candidates for a table
16
24
  */
@@ -39,9 +47,53 @@ export declare class FKDetector {
39
47
  * Check if data types are compatible for FK relationship
40
48
  */
41
49
  private isDataTypeCompatible;
50
+ /**
51
+ * Tier 1: Check if a data type can never be a key column.
52
+ * Dates, booleans, floats, and money types are never used as keys.
53
+ */
54
+ private isNonKeyDataType;
55
+ /**
56
+ * Check if a data type is a string/character type that needs value sampling.
57
+ */
58
+ private isStringDataType;
59
+ /**
60
+ * Tier 2: Sample a few values from a string column and check if they look like
61
+ * key values (UUIDs, numeric strings, short codes) vs data values (emails, URLs,
62
+ * long text, names with spaces).
63
+ */
64
+ private columnValuesLookLikeKeys;
65
+ /**
66
+ * Check if a single string value looks like non-key data.
67
+ * Returns true for emails, URLs, long text, sentences, etc.
68
+ */
69
+ private valueLooksLikeNonKey;
70
+ /**
71
+ * Steep containment curve — true FKs should have near-perfect containment.
72
+ * Returns 0-1 multiplier applied to the containment weight.
73
+ *
74
+ * < 90% → 0% (not a FK)
75
+ * 90-95% → 10% (possible, dirty data)
76
+ * 95-98% → 30% (likely, some orphans)
77
+ * 98-99.5% → 50% (strong, few orphans)
78
+ * 99.5-99.99% → 80% (very strong)
79
+ * 100% → 100% (perfect containment)
80
+ */
81
+ private calculateContainmentMultiplier;
42
82
  /**
43
83
  * Calculate FK confidence score (0-100)
84
+ *
85
+ * Value containment is the strongest signal — if source values exist in the target,
86
+ * that's strong evidence of a FK relationship regardless of naming conventions.
87
+ * When target is not a detected PK, the PK bonus weight is redistributed to
88
+ * value overlap so databases without declared PKs aren't penalized.
89
+ * Columns containing "ID" in the name get a 10% bonus as this is the most
90
+ * common naming convention for foreign key columns across databases.
44
91
  */
45
92
  private calculateFKConfidence;
93
+ /**
94
+ * Mark a column as not eligible to be a FK source in the stats cache.
95
+ * This prevents the LLM from recommending it as a FK.
96
+ */
97
+ private markFKIneligible;
46
98
  }
47
99
  //# sourceMappingURL=FKDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FKDetector.d.ts","sourceRoot":"","sources":["../../src/discovery/FKDetector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAc,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,qBAAa,UAAU;IAEnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBADN,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B;IAG7C;;OAEG;IACU,kBAAkB,CAC7B,OAAO,EAAE,gBAAgB,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,WAAW,EAAE,EAC5B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC;IAgEzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgG5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,kBAAkB;IA6GhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAoC9B"}
1
+ {"version":3,"file":"FKDetector.d.ts","sourceRoot":"","sources":["../../src/discovery/FKDetector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAc,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,UAAU;IAEnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;gBAFX,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,EACnC,UAAU,CAAC,EAAE,gBAAgB;IAGvC;;;;OAIG;IACI,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAS5E;;OAEG;IACU,kBAAkB,CAC7B,OAAO,EAAE,gBAAgB,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,WAAW,EAAE,EAC5B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC;IAqFzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgG5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,kBAAkB;IA6GhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;OAIG;YACW,wBAAwB;IA4BtC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,8BAA8B;IAStC;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -4,19 +4,42 @@
4
4
  * naming patterns, value overlap, and cardinality analysis
5
5
  */
6
6
  export class FKDetector {
7
- constructor(driver, config) {
7
+ constructor(driver, config, statsCache) {
8
8
  this.driver = driver;
9
9
  this.config = config;
10
+ this.statsCache = statsCache;
11
+ }
12
+ /**
13
+ * Returns the list of FK-eligible column names for a table.
14
+ * A column is FK-eligible if it has a key-compatible data type and values look like keys.
15
+ * This list constrains what the LLM is allowed to recommend as FKs.
16
+ */
17
+ getFKEligibleColumns(schemaName, tableName) {
18
+ if (!this.statsCache)
19
+ return [];
20
+ const tableStats = this.statsCache.getTableStats(schemaName, tableName);
21
+ if (!tableStats)
22
+ return [];
23
+ return Array.from(tableStats.columns.values())
24
+ .filter(col => col.fkEligible)
25
+ .map(col => col.columnName);
10
26
  }
11
27
  /**
12
28
  * Detect foreign key candidates for a table
13
29
  */
14
30
  async detectFKCandidates(schemas, sourceSchema, sourceTable, discoveredPKs, iteration) {
15
31
  const candidates = [];
32
+ const tableStartTime = Date.now();
16
33
  console.log(`[FKDetector] Analyzing table ${sourceSchema}.${sourceTable.name} with ${sourceTable.columns.length} columns`);
17
34
  console.log(`[FKDetector] Available PKs: ${discoveredPKs.length}`);
18
35
  // For each column in source table
19
36
  for (const sourceColumn of sourceTable.columns) {
37
+ // Tier 1: Skip non-key data types (dates, booleans, floats — never FK columns)
38
+ if (this.isNonKeyDataType(sourceColumn.dataType)) {
39
+ console.log(`[FKDetector] Skip ${sourceColumn.name} - non-key data type (${sourceColumn.dataType})`);
40
+ this.markFKIneligible(sourceSchema, sourceTable.name, sourceColumn.name);
41
+ continue;
42
+ }
20
43
  // Skip if column is a discovered PK
21
44
  const isPK = discoveredPKs.some(pk => pk.schemaName === sourceSchema &&
22
45
  pk.tableName === sourceTable.name &&
@@ -25,6 +48,15 @@ export class FKDetector {
25
48
  console.log(`[FKDetector] Skip ${sourceColumn.name} - is a PK`);
26
49
  continue;
27
50
  }
51
+ // Tier 2: For string columns, sample values and check if they look like keys
52
+ if (this.isStringDataType(sourceColumn.dataType)) {
53
+ const looksLikeKey = await this.columnValuesLookLikeKeys(sourceSchema, sourceTable.name, sourceColumn.name);
54
+ if (!looksLikeKey) {
55
+ console.log(`[FKDetector] Skip ${sourceColumn.name} - values don't look like keys`);
56
+ this.markFKIneligible(sourceSchema, sourceTable.name, sourceColumn.name);
57
+ continue;
58
+ }
59
+ }
28
60
  // Find potential target tables/columns
29
61
  const potentialTargets = this.findPotentialTargets(schemas, sourceSchema, sourceTable.name, sourceColumn, discoveredPKs);
30
62
  console.log(`[FKDetector] Column ${sourceColumn.name}: Found ${potentialTargets.length} potential targets`);
@@ -43,7 +75,8 @@ export class FKDetector {
43
75
  }
44
76
  }
45
77
  }
46
- console.log(`[FKDetector] Table ${sourceSchema}.${sourceTable.name}: Found ${candidates.length} FK candidates`);
78
+ const elapsed = ((Date.now() - tableStartTime) / 1000).toFixed(1);
79
+ console.log(`[FKDetector] Table ${sourceSchema}.${sourceTable.name}: Found ${candidates.length} FK candidates (${elapsed}s)`);
47
80
  // Sort by confidence descending
48
81
  return candidates.sort((a, b) => b.confidence - a.confidence);
49
82
  }
@@ -230,7 +263,7 @@ export class FKDetector {
230
263
  evidence.warnings.push('Cardinality suggests one:many instead of many:one');
231
264
  }
232
265
  // Calculate confidence
233
- const confidence = this.calculateFKConfidence(evidence, targetIsPK);
266
+ const confidence = this.calculateFKConfidence(evidence, targetIsPK, sourceColumn.name);
234
267
  // Don't return if confidence too low
235
268
  if (confidence < 40) {
236
269
  return null;
@@ -278,36 +311,158 @@ export class FKDetector {
278
311
  }
279
312
  return false;
280
313
  }
314
+ /**
315
+ * Tier 1: Check if a data type can never be a key column.
316
+ * Dates, booleans, floats, and money types are never used as keys.
317
+ */
318
+ isNonKeyDataType(dataType) {
319
+ const normalized = dataType.toLowerCase().replace(/\([^)]*\)/g, '').trim();
320
+ const nonKeyTypes = [
321
+ 'date', 'datetime', 'datetime2', 'datetimeoffset', 'smalldatetime', 'time', 'timestamp',
322
+ 'bit', 'boolean', 'bool',
323
+ 'float', 'real', 'double', 'decimal', 'numeric', 'money', 'smallmoney',
324
+ 'image', 'binary', 'varbinary', 'xml', 'geography', 'geometry', 'hierarchyid',
325
+ ];
326
+ return nonKeyTypes.some(t => normalized === t || normalized.startsWith(t));
327
+ }
328
+ /**
329
+ * Check if a data type is a string/character type that needs value sampling.
330
+ */
331
+ isStringDataType(dataType) {
332
+ const normalized = dataType.toLowerCase();
333
+ return ['varchar', 'char', 'nvarchar', 'nchar', 'text', 'ntext'].some(t => normalized.includes(t));
334
+ }
335
+ /**
336
+ * Tier 2: Sample a few values from a string column and check if they look like
337
+ * key values (UUIDs, numeric strings, short codes) vs data values (emails, URLs,
338
+ * long text, names with spaces).
339
+ */
340
+ async columnValuesLookLikeKeys(schemaName, tableName, columnName) {
341
+ try {
342
+ const samples = await this.driver.getSampleValues(schemaName, tableName, columnName, 10);
343
+ if (!samples || samples.length === 0)
344
+ return false;
345
+ // Filter out nulls and empty strings
346
+ const values = samples.filter(v => v != null && String(v).trim().length > 0).map(v => String(v));
347
+ if (values.length === 0)
348
+ return false;
349
+ let nonKeyCount = 0;
350
+ for (const val of values) {
351
+ if (this.valueLooksLikeNonKey(val)) {
352
+ nonKeyCount++;
353
+ }
354
+ }
355
+ // If majority of sampled values look like non-keys, skip this column
356
+ return nonKeyCount < values.length * 0.5;
357
+ }
358
+ catch {
359
+ // If sampling fails, don't filter — let it proceed to analysis
360
+ return true;
361
+ }
362
+ }
363
+ /**
364
+ * Check if a single string value looks like non-key data.
365
+ * Returns true for emails, URLs, long text, sentences, etc.
366
+ */
367
+ valueLooksLikeNonKey(value) {
368
+ // Emails
369
+ if (/@/.test(value) && /\.\w{2,}$/.test(value))
370
+ return true;
371
+ // URLs
372
+ if (/^https?:\/\//i.test(value) || /^www\./i.test(value))
373
+ return true;
374
+ // Long text (keys are rarely > 100 chars)
375
+ if (value.length > 100)
376
+ return true;
377
+ // Sentences — multiple words with spaces (3+ words suggests descriptive text)
378
+ const wordCount = value.trim().split(/\s+/).length;
379
+ if (wordCount >= 3)
380
+ return true;
381
+ return false;
382
+ }
383
+ /**
384
+ * Steep containment curve — true FKs should have near-perfect containment.
385
+ * Returns 0-1 multiplier applied to the containment weight.
386
+ *
387
+ * < 90% → 0% (not a FK)
388
+ * 90-95% → 10% (possible, dirty data)
389
+ * 95-98% → 30% (likely, some orphans)
390
+ * 98-99.5% → 50% (strong, few orphans)
391
+ * 99.5-99.99% → 80% (very strong)
392
+ * 100% → 100% (perfect containment)
393
+ */
394
+ calculateContainmentMultiplier(containment) {
395
+ if (containment >= 1.0)
396
+ return 1.0;
397
+ if (containment >= 0.995)
398
+ return 0.8;
399
+ if (containment >= 0.98)
400
+ return 0.5;
401
+ if (containment >= 0.95)
402
+ return 0.3;
403
+ if (containment >= 0.90)
404
+ return 0.1;
405
+ return 0;
406
+ }
281
407
  /**
282
408
  * Calculate FK confidence score (0-100)
409
+ *
410
+ * Value containment is the strongest signal — if source values exist in the target,
411
+ * that's strong evidence of a FK relationship regardless of naming conventions.
412
+ * When target is not a detected PK, the PK bonus weight is redistributed to
413
+ * value overlap so databases without declared PKs aren't penalized.
414
+ * Columns containing "ID" in the name get a 10% bonus as this is the most
415
+ * common naming convention for foreign key columns across databases.
283
416
  */
284
- calculateFKConfidence(evidence, targetIsPK) {
417
+ calculateFKConfidence(evidence, targetIsPK, sourceColumnName) {
285
418
  let score = 0;
286
- // Value overlap is critical (40% weight)
287
- score += evidence.valueOverlap * 40;
288
- // Naming match (20% weight)
289
- score += evidence.namingMatch * 20;
290
- // Cardinality check (15% weight)
419
+ // Value containment source values must be contained within target values.
420
+ // Uses a steep curve: anything below 90% gets zero credit since true FKs
421
+ // should have near-perfect containment. Orphans can happen but divergence
422
+ // beyond 10% strongly suggests it's not a FK relationship.
423
+ const containmentWeight = targetIsPK ? 55 : 70;
424
+ const containmentMultiplier = this.calculateContainmentMultiplier(evidence.valueOverlap);
425
+ score += containmentMultiplier * containmentWeight;
426
+ // ID-in-name bonus (10%) — columns containing "ID" are very likely FK columns
427
+ // Matches: CustomerID, AccHeaderID, CreatedByID, PRODUCTID, etc.
428
+ if (/id/i.test(sourceColumnName)) {
429
+ score += 10;
430
+ }
431
+ // Naming match (10% weight) — helpful but not critical,
432
+ // many real-world DBs have non-standard naming
433
+ score += evidence.namingMatch * 10;
434
+ // Cardinality check (10% weight)
291
435
  // We want many:one ratio (ratio > 1 is good)
292
436
  const cardinalityScore = Math.min(evidence.cardinalityRatio, 2) / 2; // Cap at 2:1
293
- score += cardinalityScore * 15;
294
- // Target is PK bonus (15% weight)
437
+ score += cardinalityScore * 10;
438
+ // Target is PK bonus (15% weight) — only when target is actually a detected PK
295
439
  if (targetIsPK) {
296
440
  score += 15;
297
441
  }
298
- // Null handling (10% weight)
442
+ // Null handling (5% weight)
299
443
  // Some nulls are OK (optional FK), but too many is suspicious
300
- const nullScore = evidence.nullPercentage < 0.3 ? 10 :
301
- evidence.nullPercentage < 0.7 ? 5 : 0;
444
+ const nullScore = evidence.nullPercentage < 0.3 ? 5 :
445
+ evidence.nullPercentage < 0.7 ? 2.5 : 0;
302
446
  score += nullScore;
303
447
  // Penalties
304
- if (evidence.orphanCount > evidence.sampleSize * 0.2) {
305
- score *= 0.7; // 30% penalty for many orphans
306
- }
448
+ // Note: orphan penalty removed the steep containment curve already
449
+ // handles this (orphans reduce containment ratio directly)
307
450
  if (!evidence.dataTypeMatch) {
308
451
  score *= 0.5; // 50% penalty for type mismatch
309
452
  }
310
453
  return Math.round(Math.min(score, 100));
311
454
  }
455
+ /**
456
+ * Mark a column as not eligible to be a FK source in the stats cache.
457
+ * This prevents the LLM from recommending it as a FK.
458
+ */
459
+ markFKIneligible(schemaName, tableName, columnName) {
460
+ if (!this.statsCache)
461
+ return;
462
+ const stats = this.statsCache.getColumnStats(schemaName, tableName, columnName);
463
+ if (stats) {
464
+ stats.fkEligible = false;
465
+ }
466
+ }
312
467
  }
313
468
  //# sourceMappingURL=FKDetector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FKDetector.js","sourceRoot":"","sources":["../../src/discovery/FKDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FKDetector.js","sourceRoot":"","sources":["../../src/discovery/FKDetector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LLMDiscoveryValidator.d.ts","sourceRoot":"","sources":["../../src/discovery/LLMDiscoveryValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,WAAW,EAGX,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE3E,qBAAa,qBAAqB;IAI9B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAPjB,OAAO,CAAC,GAAG,CAAU;gBAGX,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,EACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,gBAAgB,EAAE;IAkBrC;;OAEG;IACU,0BAA0B,CACrC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqFzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsC9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAyF9B"}
1
+ {"version":3,"file":"LLMDiscoveryValidator.d.ts","sourceRoot":"","sources":["../../src/discovery/LLMDiscoveryValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,WAAW,EAGX,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE3E,qBAAa,qBAAqB;IAI9B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAPjB,OAAO,CAAC,GAAG,CAAU;gBAGX,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,EACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,gBAAgB,EAAE;IAkBrC;;OAEG;IACU,0BAA0B,CACrC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IAsF/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqFzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsC9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CA2F9B"}
@@ -51,7 +51,9 @@ export class LLMDiscoveryValidator {
51
51
  reasoning: `LLM call failed: ${chatResult.errorMessage}`,
52
52
  confidenceAdjustment: 0,
53
53
  recommendations: [],
54
- tokensUsed: 0
54
+ tokensUsed: 0,
55
+ inputTokens: 0,
56
+ outputTokens: 0
55
57
  };
56
58
  }
57
59
  // Parse LLM response
@@ -64,7 +66,9 @@ export class LLMDiscoveryValidator {
64
66
  reasoning: result.reasoning,
65
67
  confidenceAdjustment: 0, // Overall adjustment
66
68
  recommendations: result.recommendations || [],
67
- tokensUsed: usage?.totalTokens || 0
69
+ tokensUsed: usage?.totalTokens || 0,
70
+ inputTokens: usage?.promptTokens || 0,
71
+ outputTokens: usage?.completionTokens || 0
68
72
  };
69
73
  }
70
74
  catch (parseError) {
@@ -73,7 +77,9 @@ export class LLMDiscoveryValidator {
73
77
  reasoning: `Failed to parse LLM response: ${parseError.message}\n\nRaw content:\n${content}`,
74
78
  confidenceAdjustment: 0,
75
79
  recommendations: [],
76
- tokensUsed: usage?.totalTokens || 0
80
+ tokensUsed: usage?.totalTokens || 0,
81
+ inputTokens: usage?.promptTokens || 0,
82
+ outputTokens: usage?.completionTokens || 0
77
83
  };
78
84
  }
79
85
  }
@@ -404,12 +410,14 @@ ${context.fkCandidates.length > 0
404
410
  ## Your Task:
405
411
  Analyze the statistical findings and provide validation:
406
412
 
407
- 1. **Validate Primary Keys**: Are the PK candidates correct? Should any be removed or added?
413
+ 1. **Validate Primary Keys**: Are the PK candidates correct? Should any be removed?
408
414
  2. **Validate Foreign Keys**: Are the FK candidates correct? Look for:
409
415
  - Columns marked as PKs that should actually be FKs
410
416
  - Missing FK relationships based on column names and data patterns
411
417
  3. **Cross-table Context**: Use the related tables information to identify relationships
412
418
 
419
+ **HARD CONSTRAINT**: You may ONLY confirm or reject candidates already in the lists above. You CANNOT recommend new PK columns — PK eligibility requires zero nulls, zero blanks, and 100% unique values, which has already been computed deterministically. Any column not listed as a candidate has been mathematically disqualified. For FK recommendations, only columns with key-compatible data types (not dates, booleans, or floats) are eligible.
420
+
413
421
  **Output Format:**
414
422
  {
415
423
  "validated": true/false,
@@ -1 +1 @@
1
- {"version":3,"file":"LLMDiscoveryValidator.js","sourceRoot":"","sources":["../../src/discovery/LLMDiscoveryValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LLMDiscoveryValidator.js","sourceRoot":"","sources":["../../src/discovery/LLMDiscoveryValidator.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { PKCandidate, FKCandidate } from '../types/discovery.js';
7
7
  import { AIConfig } from '../types/config.js';
8
+ import { ColumnStatsCache } from './ColumnStatsCache.js';
8
9
  export interface SanityCheckResult {
9
10
  invalidPKs: Array<{
10
11
  schema: string;
@@ -20,11 +21,14 @@ export interface SanityCheckResult {
20
21
  }>;
21
22
  suggestions: string[];
22
23
  tokensUsed: number;
24
+ inputTokens: number;
25
+ outputTokens: number;
23
26
  }
24
27
  export declare class LLMSanityChecker {
25
28
  private aiConfig;
29
+ private statsCache?;
26
30
  private llm;
27
- constructor(aiConfig: AIConfig);
31
+ constructor(aiConfig: AIConfig, statsCache?: ColumnStatsCache);
28
32
  /**
29
33
  * Review all detected PKs and FKs for obvious errors
30
34
  * This is a one-time macro review after statistical detection
@@ -1 +1 @@
1
- {"version":3,"file":"LLMSanityChecker.d.ts","sourceRoot":"","sources":["../../src/discovery/LLMSanityChecker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,GAAG,CAAU;gBAED,QAAQ,EAAE,QAAQ;IAKtC;;;OAGG;IACU,gBAAgB,CAC3B,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAoE7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAgF/B"}
1
+ {"version":3,"file":"LLMSanityChecker.d.ts","sourceRoot":"","sources":["../../src/discovery/LLMSanityChecker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,UAAU,CAAC;IAF3D,OAAO,CAAC,GAAG,CAAU;gBAED,QAAQ,EAAE,QAAQ,EAAU,UAAU,CAAC,EAAE,gBAAgB;IAK7E;;;OAGG;IACU,gBAAgB,CAC3B,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA0E7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAiF/B"}
@@ -5,8 +5,9 @@
5
5
  */
6
6
  import { createLLMInstance } from '../utils/llm-factory.js';
7
7
  export class LLMSanityChecker {
8
- constructor(aiConfig) {
8
+ constructor(aiConfig, statsCache) {
9
9
  this.aiConfig = aiConfig;
10
+ this.statsCache = statsCache;
10
11
  // Create LLM instance using shared factory (DRY principle)
11
12
  this.llm = createLLMInstance(aiConfig.provider, aiConfig.apiKey);
12
13
  }
@@ -43,7 +44,9 @@ export class LLMSanityChecker {
43
44
  invalidPKs: [],
44
45
  invalidFKs: [],
45
46
  suggestions: [],
46
- tokensUsed: 0
47
+ tokensUsed: 0,
48
+ inputTokens: 0,
49
+ outputTokens: 0
47
50
  };
48
51
  }
49
52
  // Parse LLM response
@@ -56,7 +59,9 @@ export class LLMSanityChecker {
56
59
  invalidPKs: result.invalidPKs,
57
60
  invalidFKs: result.invalidFKs,
58
61
  suggestions: result.suggestions || [],
59
- tokensUsed: usage?.totalTokens || 0
62
+ tokensUsed: usage?.totalTokens || 0,
63
+ inputTokens: usage?.promptTokens || 0,
64
+ outputTokens: usage?.completionTokens || 0
60
65
  };
61
66
  }
62
67
  catch (parseError) {
@@ -66,7 +71,9 @@ export class LLMSanityChecker {
66
71
  invalidPKs: [],
67
72
  invalidFKs: [],
68
73
  suggestions: [],
69
- tokensUsed: usage?.totalTokens || 0
74
+ tokensUsed: usage?.totalTokens || 0,
75
+ inputTokens: usage?.promptTokens || 0,
76
+ outputTokens: usage?.completionTokens || 0
70
77
  };
71
78
  }
72
79
  }
@@ -101,6 +108,7 @@ CRITICAL RULES:
101
108
  4. Boolean/flag fields are NEVER primary keys
102
109
  5. Each table should have exactly 1 PK (or a composite PK with 2-3 columns max)
103
110
  6. Foreign keys should reference another table, not point to themselves
111
+ 7. **HARD CONSTRAINT**: You may ONLY validate candidates from the list below. You CANNOT suggest new PK or FK columns that are not already candidates — eligibility has been determined by statistical analysis (zero nulls, zero blanks, 100% unique values for PKs; key-compatible data types for FKs). If a column is not in the candidate list, it mathematically cannot be a PK or FK.
104
112
 
105
113
  DETECTED PRIMARY KEY CANDIDATES:
106
114
 
@@ -1 +1 @@
1
- {"version":3,"file":"LLMSanityChecker.js","sourceRoot":"","sources":["../../src/discovery/LLMSanityChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LLMSanityChecker.js","sourceRoot":"","sources":["../../src/discovery/LLMSanityChecker.ts"],"names":[],"mappings":"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"}