@memberjunction/db-auto-doc 6.2.0-edge.5 → 6.2.0-edge.7
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.
- package/README.md +10 -0
- package/dist/api/DBAutoDocAPI.d.ts +2 -0
- package/dist/api/DBAutoDocAPI.d.ts.map +1 -1
- package/dist/api/DBAutoDocAPI.js +2 -1
- package/dist/api/DBAutoDocAPI.js.map +1 -1
- package/dist/core/AnalysisEngine.d.ts +24 -0
- package/dist/core/AnalysisEngine.d.ts.map +1 -1
- package/dist/core/AnalysisEngine.js +104 -11
- package/dist/core/AnalysisEngine.js.map +1 -1
- package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
- package/dist/core/AnalysisOrchestrator.js +17 -5
- package/dist/core/AnalysisOrchestrator.js.map +1 -1
- package/dist/discovery/ColumnNormalizer.d.ts +31 -0
- package/dist/discovery/ColumnNormalizer.d.ts.map +1 -1
- package/dist/discovery/ColumnNormalizer.js +68 -2
- package/dist/discovery/ColumnNormalizer.js.map +1 -1
- package/dist/discovery/Composer.d.ts +33 -2
- package/dist/discovery/Composer.d.ts.map +1 -1
- package/dist/discovery/Composer.js +126 -5
- package/dist/discovery/Composer.js.map +1 -1
- package/dist/discovery/DiscoveryEngine.d.ts +3 -0
- package/dist/discovery/DiscoveryEngine.d.ts.map +1 -1
- package/dist/discovery/DiscoveryEngine.js +1 -1
- package/dist/discovery/DiscoveryEngine.js.map +1 -1
- package/dist/discovery/EmbeddingProvider.d.ts +6 -1
- package/dist/discovery/EmbeddingProvider.d.ts.map +1 -1
- package/dist/discovery/EmbeddingProvider.js +11 -1
- package/dist/discovery/EmbeddingProvider.js.map +1 -1
- package/dist/discovery/IndexKeyEvidence.d.ts +36 -0
- package/dist/discovery/IndexKeyEvidence.d.ts.map +1 -0
- package/dist/discovery/IndexKeyEvidence.js +42 -0
- package/dist/discovery/IndexKeyEvidence.js.map +1 -0
- package/dist/discovery/JoinProbe.d.ts +148 -0
- package/dist/discovery/JoinProbe.d.ts.map +1 -0
- package/dist/discovery/JoinProbe.js +233 -0
- package/dist/discovery/JoinProbe.js.map +1 -0
- package/dist/discovery/LLMDiscoveryValidator.d.ts +8 -1
- package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -1
- package/dist/discovery/LLMDiscoveryValidator.js +24 -3
- package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
- package/dist/discovery/LLMSanityChecker.d.ts.map +1 -1
- package/dist/discovery/LLMSanityChecker.js +10 -1
- package/dist/discovery/LLMSanityChecker.js.map +1 -1
- package/dist/discovery/OrganicKeyDetector.d.ts +29 -1
- package/dist/discovery/OrganicKeyDetector.d.ts.map +1 -1
- package/dist/discovery/OrganicKeyDetector.js +26 -3
- package/dist/discovery/OrganicKeyDetector.js.map +1 -1
- package/dist/discovery/OrganicKeyTranslator.d.ts +24 -5
- package/dist/discovery/OrganicKeyTranslator.d.ts.map +1 -1
- package/dist/discovery/OrganicKeyTranslator.js +32 -14
- package/dist/discovery/OrganicKeyTranslator.js.map +1 -1
- package/dist/discovery/PKDetector.d.ts +9 -0
- package/dist/discovery/PKDetector.d.ts.map +1 -1
- package/dist/discovery/PKDetector.js +86 -8
- package/dist/discovery/PKDetector.js.map +1 -1
- package/dist/discovery/SemanticPhase.d.ts +25 -0
- package/dist/discovery/SemanticPhase.d.ts.map +1 -1
- package/dist/discovery/SemanticPhase.js +55 -11
- package/dist/discovery/SemanticPhase.js.map +1 -1
- package/dist/discovery/embedding-provider-default.d.ts +25 -0
- package/dist/discovery/embedding-provider-default.d.ts.map +1 -0
- package/dist/discovery/embedding-provider-default.js +47 -0
- package/dist/discovery/embedding-provider-default.js.map +1 -0
- package/dist/drivers/BaseAutoDocDriver.d.ts +63 -0
- package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -1
- package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
- package/dist/drivers/MySQLDriver.d.ts +21 -1
- package/dist/drivers/MySQLDriver.d.ts.map +1 -1
- package/dist/drivers/MySQLDriver.js +64 -0
- package/dist/drivers/MySQLDriver.js.map +1 -1
- package/dist/drivers/PostgreSQLDriver.d.ts +34 -1
- package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -1
- package/dist/drivers/PostgreSQLDriver.js +91 -0
- package/dist/drivers/PostgreSQLDriver.js.map +1 -1
- package/dist/drivers/SQLServerDriver.d.ts +28 -1
- package/dist/drivers/SQLServerDriver.d.ts.map +1 -1
- package/dist/drivers/SQLServerDriver.js +106 -0
- package/dist/drivers/SQLServerDriver.js.map +1 -1
- package/dist/drivers/probeErrors.d.ts +30 -0
- package/dist/drivers/probeErrors.d.ts.map +1 -0
- package/dist/drivers/probeErrors.js +94 -0
- package/dist/drivers/probeErrors.js.map +1 -0
- package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +0 -18
- package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -1
- package/dist/generators/AdditionalSchemaInfoGenerator.js +45 -4
- package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -1
- package/dist/prompts/PromptEngine.d.ts.map +1 -1
- package/dist/prompts/PromptEngine.js +10 -1
- package/dist/prompts/PromptEngine.js.map +1 -1
- package/dist/types/config.d.ts +82 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/discovery.d.ts +39 -0
- package/dist/types/discovery.d.ts.map +1 -1
- package/dist/types/state.d.ts +2 -0
- package/dist/types/state.d.ts.map +1 -1
- package/dist/utils/call-deadline.d.ts +43 -0
- package/dist/utils/call-deadline.d.ts.map +1 -0
- package/dist/utils/call-deadline.js +81 -0
- package/dist/utils/call-deadline.js.map +1 -0
- package/dist/utils/index-hints.d.ts +8 -1
- package/dist/utils/index-hints.d.ts.map +1 -1
- package/dist/utils/index-hints.js +15 -0
- package/dist/utils/index-hints.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/seed-context.d.ts +23 -0
- package/dist/utils/seed-context.d.ts.map +1 -0
- package/dist/utils/seed-context.js +38 -0
- package/dist/utils/seed-context.js.map +1 -0
- package/package.json +5 -5
- package/prompts/fk-pruning-holistic.md +7 -0
- package/prompts/fk-pruning-table.md +7 -0
- package/prompts/pk-pruning-holistic.md +7 -0
- package/prompts/pk-pruning-table.md +7 -0
|
@@ -45,16 +45,20 @@ import { DEFAULT_DETECTOR_CONFIG, } from '../types/organic-keys.js';
|
|
|
45
45
|
import { TableNormalizer, } from './ColumnNormalizer.js';
|
|
46
46
|
import { ColumnClusterer } from './ColumnClusterer.js';
|
|
47
47
|
import { CreateEmbeddingProvider } from './EmbeddingProvider.js';
|
|
48
|
+
import { DefaultEmbeddingProviderFor } from './embedding-provider-default.js';
|
|
48
49
|
const AUDIT_COLUMN_PATTERN = /^(modified|created|updated|inserted|changed)(date|at|time|by|on)?$|^rowguid$|^timestamp$|^row_?version$|^__mj_.*$/i;
|
|
49
50
|
const NON_VALUEMATCHABLE_TYPES = /(binary|blob|image|varbinary|xml|geography|geometry|hierarchyid|sql_variant)/i;
|
|
50
51
|
// ─── Prefilter cardinality cutoffs ───────────────────────────────────────────
|
|
51
52
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Minimum distinct values for a column to be identity-bearing. Default 50.
|
|
54
|
+
*
|
|
55
|
+
* Raised from 10. At 10, a `payment_method_id` with 33 distinct values over 24,000
|
|
56
|
+
* rows is an identity-bearing key as far as the prefilter is concerned, and goes on
|
|
57
|
+
* to become an organic key whose related-record view value-joins a non-unique
|
|
58
|
+
* category column — an N×N join presented to the user as "related" rows. 50 is the
|
|
59
|
+
* floor an operator arrived at by post-filtering a real run's output.
|
|
55
60
|
*/
|
|
56
|
-
const MIN_DISTINCT_FOR_KEY =
|
|
57
|
-
const MIN_UNIQUENESS_RATIO = 0.001;
|
|
61
|
+
const MIN_DISTINCT_FOR_KEY = 50;
|
|
58
62
|
// ─── Embedding-input sample caps ─────────────────────────────────────────────
|
|
59
63
|
/** At most this many sample values are appended to a column's embedding text. */
|
|
60
64
|
const EMBED_SAMPLE_COUNT = 4;
|
|
@@ -84,15 +88,23 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
|
|
|
84
88
|
if (candidates.length < (config.minClusterSize ?? DEFAULT_DETECTOR_CONFIG.MinClusterSize)) {
|
|
85
89
|
return emptyResult(candidates.length);
|
|
86
90
|
}
|
|
91
|
+
// Resolve the embedding provider BEFORE the paid normalization calls. A vendor with no
|
|
92
|
+
// embedding driver, or a driver package that is not registered, is a configuration error the
|
|
93
|
+
// pass cannot get past, so it has to fail here rather than after every table was normalized.
|
|
94
|
+
const embedProvider = ResolveEmbeddingProvider(config, aiConfig);
|
|
87
95
|
// ─── 2. Normalize to business space (LLM per-table) ──────────────────────
|
|
88
96
|
progress('semantic: normalizing column descriptions to business space');
|
|
89
97
|
const tableInputs = groupColumnsByTable(state, candidates);
|
|
90
98
|
const normResult = await new TableNormalizer(aiConfig).normalizeAll(tableInputs, {
|
|
91
99
|
Concurrency: config.refinementConcurrency ?? DEFAULT_DETECTOR_CONFIG.RefinementConcurrency,
|
|
92
100
|
MaxRetries: config.maxRefinementRetries ?? 2,
|
|
101
|
+
TokenBudget: config.tokenBudget,
|
|
93
102
|
OnProgress: () => { },
|
|
94
103
|
});
|
|
95
104
|
progress(`semantic: ${normResult.Normalized.length} columns kept (${normResult.rejected} rejected by PR-#2193 axes)`);
|
|
105
|
+
if (normResult.BudgetExhausted) {
|
|
106
|
+
progress(`semantic: PARTIAL — token budget reached, ${normResult.TablesSkippedForBudget} table(s) not normalized`);
|
|
107
|
+
}
|
|
96
108
|
if (normResult.Normalized.length < (config.minClusterSize ?? DEFAULT_DETECTOR_CONFIG.MinClusterSize)) {
|
|
97
109
|
return {
|
|
98
110
|
clusters: [],
|
|
@@ -104,11 +116,11 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
|
|
|
104
116
|
clustersBeforeSplit: 0,
|
|
105
117
|
clustersFound: 0,
|
|
106
118
|
clustersDropped: 0,
|
|
119
|
+
tablesSkippedForBudget: normResult.TablesSkippedForBudget,
|
|
107
120
|
},
|
|
108
121
|
};
|
|
109
122
|
}
|
|
110
123
|
// ─── 3. Embed the normalized descriptions ────────────────────────────────
|
|
111
|
-
const embedProvider = resolveEmbeddingProvider(config, aiConfig);
|
|
112
124
|
progress(`semantic: embedding ${normResult.Normalized.length} descriptions via ${embedProvider.name}`);
|
|
113
125
|
const texts = normResult.Normalized.map((n) => buildEmbeddingText(n));
|
|
114
126
|
const embeddings = await embedProvider.embed(texts);
|
|
@@ -154,6 +166,7 @@ export async function RunSemanticPhase(state, config, aiConfig, progress = () =>
|
|
|
154
166
|
clustersBeforeSplit: rawClusters.length,
|
|
155
167
|
clustersFound: clusters.length,
|
|
156
168
|
clustersDropped: dropped,
|
|
169
|
+
tablesSkippedForBudget: normResult.TablesSkippedForBudget,
|
|
157
170
|
},
|
|
158
171
|
};
|
|
159
172
|
}
|
|
@@ -237,9 +250,28 @@ function prefilter(state, config) {
|
|
|
237
250
|
continue;
|
|
238
251
|
if (col.statistics) {
|
|
239
252
|
const distinct = col.statistics.distinctCount ?? 0;
|
|
240
|
-
|
|
241
|
-
//
|
|
242
|
-
|
|
253
|
+
// Drop low-cardinality / categorical columns.
|
|
254
|
+
//
|
|
255
|
+
// This was `distinct < MIN && ratio < MIN` — a conjunction, so a
|
|
256
|
+
// column had to fail BOTH tests to be dropped. Clearing either one
|
|
257
|
+
// was enough to be treated as identity-bearing, which is why the
|
|
258
|
+
// gate never removed anything it was written to remove:
|
|
259
|
+
//
|
|
260
|
+
// - a boolean on a 100-row table has distinct=2 (fails) but
|
|
261
|
+
// ratio=0.02 (passes), so the AND is false and it is KEPT;
|
|
262
|
+
// - a `payment_method_id` with 33 distinct over 24,000 rows has
|
|
263
|
+
// ratio=0.0014 (fails at the old floor) but distinct=33
|
|
264
|
+
// (passes at the old floor of 10), so it is KEPT.
|
|
265
|
+
//
|
|
266
|
+
// Both are categorical, and both have too few distinct values to identify
|
|
267
|
+
// anything, so the distinct floor alone drops them.
|
|
268
|
+
//
|
|
269
|
+
// The uniqueness ratio is not a gate. It is distinct over ALL rows, so it
|
|
270
|
+
// reads low for exactly the columns organic keys need as spokes: an
|
|
271
|
+
// attendance table with 40,000 members over 2.5M rows has a ratio of 0.016
|
|
272
|
+
// on its member_email column, which repeats because each member has many
|
|
273
|
+
// rows, not because it is a category.
|
|
274
|
+
if (distinct < MIN_DISTINCT_FOR_KEY)
|
|
243
275
|
continue;
|
|
244
276
|
}
|
|
245
277
|
out.push({
|
|
@@ -393,9 +425,13 @@ function extractSampleValues(col, max) {
|
|
|
393
425
|
function sensitivityToPercentile(s) {
|
|
394
426
|
return SENSITIVITY_PERCENTILE[s] ?? SENSITIVITY_PERCENTILE.balanced;
|
|
395
427
|
}
|
|
396
|
-
|
|
428
|
+
/** Exported for test: the default this picks is the fix, so it needs to be assertable directly. */
|
|
429
|
+
export function ResolveEmbeddingProvider(config, aiConfig) {
|
|
397
430
|
const cfg = config.embedding ?? {};
|
|
398
|
-
|
|
431
|
+
// No configured provider means "use the vendor whose key we already have". Hardcoding openai
|
|
432
|
+
// here sent a Gemini key to OpenAIEmbedding under the SHIPPED DEFAULTS — see
|
|
433
|
+
// DefaultEmbeddingProviderFor.
|
|
434
|
+
const provider = (cfg.provider ?? DefaultEmbeddingProviderFor(aiConfig.provider));
|
|
399
435
|
const apiKey = aiConfig.apiKey;
|
|
400
436
|
const impl = CreateEmbeddingProvider({
|
|
401
437
|
provider,
|
|
@@ -404,12 +440,19 @@ function resolveEmbeddingProvider(config, aiConfig) {
|
|
|
404
440
|
Dimensions: cfg.dimensions,
|
|
405
441
|
BatchSize: cfg.batchSize,
|
|
406
442
|
Endpoint: cfg.endpoint,
|
|
443
|
+
CallTimeoutMs: aiConfig.callTimeoutMs,
|
|
407
444
|
});
|
|
408
445
|
return {
|
|
409
446
|
name: `${provider}:${cfg.model ?? 'default'}`,
|
|
410
447
|
embed: (texts) => impl.Embed(texts),
|
|
411
448
|
};
|
|
412
449
|
}
|
|
450
|
+
/**
|
|
451
|
+
* Re-export for tests / observability, matching the `TestHooks` convention in Composer.
|
|
452
|
+
* The selectivity gate is the cheapest and highest-volume filter in the pipeline and is
|
|
453
|
+
* worth pinning directly rather than through a run that needs an LLM and an embedder.
|
|
454
|
+
*/
|
|
455
|
+
export const TestHooks = { prefilter, MIN_DISTINCT_FOR_KEY };
|
|
413
456
|
function emptyResult(columnsInScope) {
|
|
414
457
|
return {
|
|
415
458
|
clusters: [],
|
|
@@ -421,6 +464,7 @@ function emptyResult(columnsInScope) {
|
|
|
421
464
|
clustersBeforeSplit: 0,
|
|
422
465
|
clustersFound: 0,
|
|
423
466
|
clustersDropped: 0,
|
|
467
|
+
tablesSkippedForBudget: 0,
|
|
424
468
|
},
|
|
425
469
|
};
|
|
426
470
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticPhase.js","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SemanticPhase.js","sourceRoot":"","sources":["../../src/discovery/SemanticPhase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which embedding provider to use when the organic-key config does not name one.
|
|
3
|
+
*
|
|
4
|
+
* THE BUG THIS REPLACES. The default was the literal `'openai'`, while the default LLM provider is
|
|
5
|
+
* `gemini` and `SemanticPhase` passes the LLM's API key straight to the embedding driver. So the
|
|
6
|
+
* SHIPPED DEFAULT CONFIGURATION handed a Gemini key to `OpenAIEmbedding` — which fails with an
|
|
7
|
+
* authentication error from a provider the operator never configured, on a pass they did not know
|
|
8
|
+
* used embeddings at all.
|
|
9
|
+
*
|
|
10
|
+
* Defaulting to the embedding driver of the SAME vendor as the key is the only choice that can be
|
|
11
|
+
* right without asking: it is the one provider the operator has definitely authenticated with.
|
|
12
|
+
*
|
|
13
|
+
* Providers with no MJ embedding driver get a named error rather than a silent substitution. That
|
|
14
|
+
* is not a new failure — sending an Anthropic key to `OpenAIEmbedding` failed too, just opaquely,
|
|
15
|
+
* a layer further down and blamed on the wrong service.
|
|
16
|
+
*/
|
|
17
|
+
import type { EmbeddingProviderName } from './EmbeddingProvider.js';
|
|
18
|
+
/**
|
|
19
|
+
* Resolves the embedding provider implied by the configured LLM provider.
|
|
20
|
+
*
|
|
21
|
+
* @throws when the LLM vendor ships no embedding driver — the operator must set
|
|
22
|
+
* `organicKeyDetection.embedding.provider` (and, for a different vendor, that vendor's key).
|
|
23
|
+
*/
|
|
24
|
+
export declare function DefaultEmbeddingProviderFor(llmProvider: string): EmbeddingProviderName;
|
|
25
|
+
//# sourceMappingURL=embedding-provider-default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-provider-default.d.ts","sourceRoot":"","sources":["../../src/discovery/embedding-provider-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAiBpE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAWtF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which embedding provider to use when the organic-key config does not name one.
|
|
3
|
+
*
|
|
4
|
+
* THE BUG THIS REPLACES. The default was the literal `'openai'`, while the default LLM provider is
|
|
5
|
+
* `gemini` and `SemanticPhase` passes the LLM's API key straight to the embedding driver. So the
|
|
6
|
+
* SHIPPED DEFAULT CONFIGURATION handed a Gemini key to `OpenAIEmbedding` — which fails with an
|
|
7
|
+
* authentication error from a provider the operator never configured, on a pass they did not know
|
|
8
|
+
* used embeddings at all.
|
|
9
|
+
*
|
|
10
|
+
* Defaulting to the embedding driver of the SAME vendor as the key is the only choice that can be
|
|
11
|
+
* right without asking: it is the one provider the operator has definitely authenticated with.
|
|
12
|
+
*
|
|
13
|
+
* Providers with no MJ embedding driver get a named error rather than a silent substitution. That
|
|
14
|
+
* is not a new failure — sending an Anthropic key to `OpenAIEmbedding` failed too, just opaquely,
|
|
15
|
+
* a layer further down and blamed on the wrong service.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* LLM provider → the embedding provider whose driver takes the same credential.
|
|
19
|
+
*
|
|
20
|
+
* Only vendors that ship BOTH an LLM and a `BaseEmbeddings` driver appear here. `local` is
|
|
21
|
+
* deliberately absent: it needs no key, so it is a deliberate choice an operator makes explicitly,
|
|
22
|
+
* never something inferred from which LLM they happen to use.
|
|
23
|
+
*/
|
|
24
|
+
const LLM_PROVIDER_TO_EMBEDDING = {
|
|
25
|
+
gemini: 'gemini',
|
|
26
|
+
openai: 'openai',
|
|
27
|
+
mistral: 'mistral',
|
|
28
|
+
azure: 'azure',
|
|
29
|
+
bedrock: 'bedrock',
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Resolves the embedding provider implied by the configured LLM provider.
|
|
33
|
+
*
|
|
34
|
+
* @throws when the LLM vendor ships no embedding driver — the operator must set
|
|
35
|
+
* `organicKeyDetection.embedding.provider` (and, for a different vendor, that vendor's key).
|
|
36
|
+
*/
|
|
37
|
+
export function DefaultEmbeddingProviderFor(llmProvider) {
|
|
38
|
+
const mapped = LLM_PROVIDER_TO_EMBEDDING[String(llmProvider ?? '').trim().toLowerCase()];
|
|
39
|
+
if (mapped) {
|
|
40
|
+
return mapped;
|
|
41
|
+
}
|
|
42
|
+
const supported = Object.keys(LLM_PROVIDER_TO_EMBEDDING).join(', ');
|
|
43
|
+
throw new Error(`Organic-key detection needs an embedding provider, and '${llmProvider}' has no embedding driver. ` +
|
|
44
|
+
`Set organicKeyDetection.embedding.provider explicitly — 'local' needs no API key, and ` +
|
|
45
|
+
`${supported} reuse the key of the matching LLM vendor.`);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=embedding-provider-default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-provider-default.js","sourceRoot":"","sources":["../../src/discovery/embedding-provider-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAmD;IAC9E,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC3D,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACzF,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,IAAI,KAAK,CACX,2DAA2D,WAAW,6BAA6B;QAC/F,wFAAwF;QACxF,GAAG,SAAS,4CAA4C,CAC/D,CAAC;AACN,CAAC"}
|
|
@@ -3,6 +3,40 @@
|
|
|
3
3
|
* Defines abstract interface for all database providers
|
|
4
4
|
*/
|
|
5
5
|
import { AutoDocSchema, AutoDocTable, AutoDocColumn, AutoDocConnectionConfig, AutoDocQueryResult, AutoDocConnectionTestResult, AutoDocSchemaFilter, AutoDocTableFilter, AutoDocColumnStatistics, AutoDocExistingDescription, AutoDocIndex } from '../types/driver.js';
|
|
6
|
+
/**
|
|
7
|
+
* Outcome of a join-containment probe.
|
|
8
|
+
*
|
|
9
|
+
* A discriminated union on purpose: the success arm carries two counts and the
|
|
10
|
+
* failure arm carries a reason, so there is no representable value that lets a
|
|
11
|
+
* caller mistake "could not evaluate this join" for "this join matches nothing".
|
|
12
|
+
* Neither arm can carry a data value.
|
|
13
|
+
*/
|
|
14
|
+
export type DriverProbeOutcome = {
|
|
15
|
+
Ok: true;
|
|
16
|
+
/** Distinct non-null child values sampled (at most the requested sampleSize). */
|
|
17
|
+
SampledValues: number;
|
|
18
|
+
/** How many of those exist in the parent column. */
|
|
19
|
+
MatchedValues: number;
|
|
20
|
+
} | {
|
|
21
|
+
Ok: false;
|
|
22
|
+
/** Human-readable cause, safe to persist — never contains a data value. */
|
|
23
|
+
Reason: string;
|
|
24
|
+
/** Provider error code where one is available (e.g. PostgreSQL SQLSTATE). */
|
|
25
|
+
Code?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* How a probe compares values: the same comparison the emitted key will use at match time.
|
|
29
|
+
*
|
|
30
|
+
* A subset of the organic-key normalization strategies. `Custom` is deliberately absent: its
|
|
31
|
+
* expression is model-written SQL, so a probe does not execute it, and a candidate that needs
|
|
32
|
+
* it is reported as Unprobed before it reaches a driver.
|
|
33
|
+
*/
|
|
34
|
+
export type ProbeNormalization = 'ExactMatch' | 'Trim' | 'LowerCaseTrim';
|
|
35
|
+
/** The normalization applied to each side of a probe. Both default to `ExactMatch`. */
|
|
36
|
+
export interface ProbeNormalizationPair {
|
|
37
|
+
Child: ProbeNormalization;
|
|
38
|
+
Parent: ProbeNormalization;
|
|
39
|
+
}
|
|
6
40
|
/**
|
|
7
41
|
* Abstract base class for database drivers
|
|
8
42
|
* All provider-specific implementations must extend this class
|
|
@@ -86,11 +120,40 @@ export declare abstract class BaseAutoDocDriver {
|
|
|
86
120
|
/**
|
|
87
121
|
* Test value overlap between two columns (for FK detection)
|
|
88
122
|
* Returns percentage of source values that exist in target (0-1)
|
|
123
|
+
*
|
|
124
|
+
* NOTE: this returns a bare number and reports every failure as 0, which the
|
|
125
|
+
* caller's containment gate reads as a refutation. Prefer
|
|
126
|
+
* {@link ProbeJoinContainment}, whose result distinguishes "measured zero" from
|
|
127
|
+
* "could not measure".
|
|
89
128
|
*/
|
|
90
129
|
abstract testValueOverlap(// case-violation-ok-legacy-back-compat: abstract member — there is nothing for a stub to delegate to
|
|
91
130
|
sourceTable: string, // format: "schema.table"
|
|
92
131
|
sourceColumn: string, targetTable: string, // format: "schema.table"
|
|
93
132
|
targetColumn: string, sampleSize: number): Promise<number>;
|
|
133
|
+
/**
|
|
134
|
+
* Probe whether a candidate key's child values exist in the parent column.
|
|
135
|
+
*
|
|
136
|
+
* Returns COUNTS ONLY — the number of distinct non-null child values sampled and
|
|
137
|
+
* how many of those exist in the parent. Implementations must never return, log,
|
|
138
|
+
* or otherwise surface a data value: the entire contract is two integers.
|
|
139
|
+
*
|
|
140
|
+
* Unlike {@link testValueOverlap}, a failure is reported as `{ ok: false, reason }`
|
|
141
|
+
* rather than as zero overlap, so a caller can tell a join that matches nothing
|
|
142
|
+
* from a join it was unable to evaluate. Implementations must not throw.
|
|
143
|
+
*
|
|
144
|
+
* `normalization` is applied to each side before comparing, so a key whose runtime
|
|
145
|
+
* match lower-cases or trims its values is measured the same way. Omitted means
|
|
146
|
+
* `ExactMatch` on both sides.
|
|
147
|
+
*/
|
|
148
|
+
abstract ProbeJoinContainment(child: {
|
|
149
|
+
Schema: string;
|
|
150
|
+
Table: string;
|
|
151
|
+
Column: string;
|
|
152
|
+
}, parent: {
|
|
153
|
+
Schema: string;
|
|
154
|
+
Table: string;
|
|
155
|
+
Column: string;
|
|
156
|
+
}, sampleSize: number, timeoutMs: number, normalization?: ProbeNormalizationPair): Promise<DriverProbeOutcome>;
|
|
94
157
|
/**
|
|
95
158
|
* Check if a combination of columns is unique (for composite PK detection)
|
|
96
159
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAutoDocDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/BaseAutoDocDriver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BaseAutoDocDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/BaseAutoDocDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAutoDocDriver.js","sourceRoot":"","sources":["../../src/drivers/BaseAutoDocDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"BaseAutoDocDriver.js","sourceRoot":"","sources":["../../src/drivers/BaseAutoDocDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MySQL implementation of the BaseAutoDocDriver
|
|
3
3
|
* Uses mysql2 driver for database connectivity
|
|
4
4
|
*/
|
|
5
|
-
import { BaseAutoDocDriver } from './BaseAutoDocDriver.js';
|
|
5
|
+
import { BaseAutoDocDriver, DriverProbeOutcome, ProbeNormalizationPair } from './BaseAutoDocDriver.js';
|
|
6
6
|
import { AutoDocSchema, AutoDocTable, AutoDocColumn, AutoDocConnectionConfig, AutoDocQueryResult, AutoDocConnectionTestResult, AutoDocSchemaFilter, AutoDocTableFilter, AutoDocColumnStatistics, AutoDocExistingDescription, AutoDocIndex } from '../types/driver.js';
|
|
7
7
|
/**
|
|
8
8
|
* MySQL driver implementation
|
|
@@ -53,6 +53,26 @@ export declare class MySQLDriver extends BaseAutoDocDriver {
|
|
|
53
53
|
* Test value overlap between source and target columns
|
|
54
54
|
*/
|
|
55
55
|
testValueOverlap(sourceTable: string, sourceColumn: string, targetTable: string, targetColumn: string, sampleSize: number): Promise<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Probe whether a candidate key's child values exist in the parent column.
|
|
58
|
+
*
|
|
59
|
+
* Returns two integers and nothing else. Both sides are cast to `CHAR` so the
|
|
60
|
+
* comparison is consistent with the other two drivers rather than subject to
|
|
61
|
+
* MySQL's own coercion rules, and `MAX_EXECUTION_TIME` bounds the probe
|
|
62
|
+
* server-side. Each side is normalized as the key will be at match time (see
|
|
63
|
+
* {@link probeValueExpression}).
|
|
64
|
+
*/
|
|
65
|
+
ProbeJoinContainment(child: {
|
|
66
|
+
Schema: string;
|
|
67
|
+
Table: string;
|
|
68
|
+
Column: string;
|
|
69
|
+
}, parent: {
|
|
70
|
+
Schema: string;
|
|
71
|
+
Table: string;
|
|
72
|
+
Column: string;
|
|
73
|
+
}, sampleSize: number, timeoutMs: number, normalization?: ProbeNormalizationPair): Promise<DriverProbeOutcome>;
|
|
74
|
+
/** A probe side's value as `CHAR`, with the key's match-time normalization applied. */
|
|
75
|
+
private probeValueExpression;
|
|
56
76
|
/**
|
|
57
77
|
* Check if combination of columns is unique
|
|
58
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/MySQLDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"MySQLDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/MySQLDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
14
14
|
import mysql from 'mysql2/promise';
|
|
15
15
|
import { RegisterClass } from '@memberjunction/global';
|
|
16
16
|
import { BaseAutoDocDriver } from './BaseAutoDocDriver.js';
|
|
17
|
+
import { DescribeProbeFailure, ExtractSqlState } from './probeErrors.js';
|
|
17
18
|
import { MYSQL_INDEX_QUERY, MapMySQLIndexRows } from './IndexCatalog.js';
|
|
18
19
|
/**
|
|
19
20
|
* MySQL driver implementation
|
|
@@ -621,6 +622,69 @@ let MySQLDriver = class MySQLDriver extends BaseAutoDocDriver {
|
|
|
621
622
|
return 0;
|
|
622
623
|
}
|
|
623
624
|
}
|
|
625
|
+
/**
|
|
626
|
+
* Probe whether a candidate key's child values exist in the parent column.
|
|
627
|
+
*
|
|
628
|
+
* Returns two integers and nothing else. Both sides are cast to `CHAR` so the
|
|
629
|
+
* comparison is consistent with the other two drivers rather than subject to
|
|
630
|
+
* MySQL's own coercion rules, and `MAX_EXECUTION_TIME` bounds the probe
|
|
631
|
+
* server-side. Each side is normalized as the key will be at match time (see
|
|
632
|
+
* {@link probeValueExpression}).
|
|
633
|
+
*/
|
|
634
|
+
async ProbeJoinContainment(child, parent, sampleSize, timeoutMs, normalization = { Child: 'ExactMatch', Parent: 'ExactMatch' }) {
|
|
635
|
+
try {
|
|
636
|
+
if (!this.pool) {
|
|
637
|
+
await this.connect();
|
|
638
|
+
}
|
|
639
|
+
if (!this.pool) {
|
|
640
|
+
return { Ok: false, Reason: 'no MySQL connection pool available' };
|
|
641
|
+
}
|
|
642
|
+
const childCol = this.escapeIdentifier(child.Column);
|
|
643
|
+
const parentCol = this.escapeIdentifier(parent.Column);
|
|
644
|
+
const query = `
|
|
645
|
+
SELECT /*+ MAX_EXECUTION_TIME(${Math.max(1, Math.floor(timeoutMs))}) */
|
|
646
|
+
COUNT(*) AS sampled_values,
|
|
647
|
+
COUNT(p.v) AS matched_values
|
|
648
|
+
FROM (
|
|
649
|
+
SELECT DISTINCT ${this.probeValueExpression(childCol, normalization.Child)} AS v
|
|
650
|
+
FROM ${this.escapeIdentifier(child.Schema)}.${this.escapeIdentifier(child.Table)}
|
|
651
|
+
WHERE ${childCol} IS NOT NULL
|
|
652
|
+
LIMIT ${Math.max(1, Math.floor(sampleSize))}
|
|
653
|
+
) c
|
|
654
|
+
LEFT JOIN (
|
|
655
|
+
SELECT DISTINCT ${this.probeValueExpression(parentCol, normalization.Parent)} AS v
|
|
656
|
+
FROM ${this.escapeIdentifier(parent.Schema)}.${this.escapeIdentifier(parent.Table)}
|
|
657
|
+
WHERE ${parentCol} IS NOT NULL
|
|
658
|
+
) p ON c.v = p.v
|
|
659
|
+
`;
|
|
660
|
+
const [rows] = await this.pool.query(query);
|
|
661
|
+
const list = Array.isArray(rows) ? rows : [];
|
|
662
|
+
const row = list.length > 0 ? list[0] : undefined;
|
|
663
|
+
if (!row) {
|
|
664
|
+
return { Ok: false, Reason: 'probe returned no rows' };
|
|
665
|
+
}
|
|
666
|
+
return {
|
|
667
|
+
Ok: true,
|
|
668
|
+
SampledValues: Number(row.sampled_values),
|
|
669
|
+
MatchedValues: Number(row.matched_values)
|
|
670
|
+
};
|
|
671
|
+
}
|
|
672
|
+
catch (error) {
|
|
673
|
+
return { Ok: false, Reason: DescribeProbeFailure(error), Code: ExtractSqlState(error) };
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
/** A probe side's value as `CHAR`, with the key's match-time normalization applied. */
|
|
677
|
+
probeValueExpression(column, normalization) {
|
|
678
|
+
const asText = `CAST(${column} AS CHAR)`;
|
|
679
|
+
switch (normalization) {
|
|
680
|
+
case 'LowerCaseTrim':
|
|
681
|
+
return `LOWER(TRIM(${asText}))`;
|
|
682
|
+
case 'Trim':
|
|
683
|
+
return `TRIM(${asText})`;
|
|
684
|
+
case 'ExactMatch':
|
|
685
|
+
return asText;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
624
688
|
/**
|
|
625
689
|
* Check if combination of columns is unique
|
|
626
690
|
*/
|