@memberjunction/db-auto-doc 5.37.0 → 5.38.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.
- package/README.md +31 -0
- package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
- package/dist/core/AnalysisOrchestrator.js +32 -2
- package/dist/core/AnalysisOrchestrator.js.map +1 -1
- package/dist/discovery/BridgeViewSQLGenerator.d.ts +67 -0
- package/dist/discovery/BridgeViewSQLGenerator.d.ts.map +1 -0
- package/dist/discovery/BridgeViewSQLGenerator.js +99 -0
- package/dist/discovery/BridgeViewSQLGenerator.js.map +1 -0
- package/dist/discovery/ColumnClusterer.d.ts +63 -0
- package/dist/discovery/ColumnClusterer.d.ts.map +1 -0
- package/dist/discovery/ColumnClusterer.js +205 -0
- package/dist/discovery/ColumnClusterer.js.map +1 -0
- package/dist/discovery/ColumnNormalizer.d.ts +106 -0
- package/dist/discovery/ColumnNormalizer.d.ts.map +1 -0
- package/dist/discovery/ColumnNormalizer.js +376 -0
- package/dist/discovery/ColumnNormalizer.js.map +1 -0
- package/dist/discovery/Composer.d.ts +59 -0
- package/dist/discovery/Composer.d.ts.map +1 -0
- package/dist/discovery/Composer.js +95 -0
- package/dist/discovery/Composer.js.map +1 -0
- package/dist/discovery/EmbeddingProvider.d.ts +27 -0
- package/dist/discovery/EmbeddingProvider.d.ts.map +1 -0
- package/dist/discovery/EmbeddingProvider.js +87 -0
- package/dist/discovery/EmbeddingProvider.js.map +1 -0
- package/dist/discovery/FKGraphWalker.d.ts +108 -0
- package/dist/discovery/FKGraphWalker.d.ts.map +1 -0
- package/dist/discovery/FKGraphWalker.js +169 -0
- package/dist/discovery/FKGraphWalker.js.map +1 -0
- package/dist/discovery/OrganicKeyDetector.d.ts +51 -0
- package/dist/discovery/OrganicKeyDetector.d.ts.map +1 -0
- package/dist/discovery/OrganicKeyDetector.js +78 -0
- package/dist/discovery/OrganicKeyDetector.js.map +1 -0
- package/dist/discovery/OrganicKeyTranslator.d.ts +78 -0
- package/dist/discovery/OrganicKeyTranslator.d.ts.map +1 -0
- package/dist/discovery/OrganicKeyTranslator.js +166 -0
- package/dist/discovery/OrganicKeyTranslator.js.map +1 -0
- package/dist/discovery/SemanticPhase.d.ts +70 -0
- package/dist/discovery/SemanticPhase.d.ts.map +1 -0
- package/dist/discovery/SemanticPhase.js +423 -0
- package/dist/discovery/SemanticPhase.js.map +1 -0
- package/dist/discovery/StructuralPhase.d.ts +24 -0
- package/dist/discovery/StructuralPhase.d.ts.map +1 -0
- package/dist/discovery/StructuralPhase.js +23 -0
- package/dist/discovery/StructuralPhase.js.map +1 -0
- package/dist/discovery/TransitiveBridgeDetector.d.ts +65 -0
- package/dist/discovery/TransitiveBridgeDetector.d.ts.map +1 -0
- package/dist/discovery/TransitiveBridgeDetector.js +244 -0
- package/dist/discovery/TransitiveBridgeDetector.js.map +1 -0
- package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +12 -0
- package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -1
- package/dist/generators/AdditionalSchemaInfoGenerator.js +31 -0
- package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -1
- package/dist/types/config.d.ts +71 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/organic-keys.d.ts +141 -0
- package/dist/types/organic-keys.d.ts.map +1 -0
- package/dist/types/organic-keys.js +27 -0
- package/dist/types/organic-keys.js.map +1 -0
- package/dist/types/state.d.ts +7 -0
- package/dist/types/state.d.ts.map +1 -1
- package/dist/utils/json.d.ts +40 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +141 -0
- package/dist/utils/json.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgVF,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Organic-Key Cluster Detection — types.
|
|
3
|
+
*
|
|
4
|
+
* A cluster is N≥2 columns across ≥2 tables sharing a single business-meaningful
|
|
5
|
+
* value space (email addresses, customer IDs, phone numbers, etc.). The runtime
|
|
6
|
+
* organic-key feature (see PR #2193) matches records across tables by literal
|
|
7
|
+
* value equality; clusters propose which columns should form such match groups.
|
|
8
|
+
*
|
|
9
|
+
* See plans/dbautodoc-organic-keys.md.
|
|
10
|
+
*/
|
|
11
|
+
/** Strategy used to normalize values before equality comparison (matches PR #2193). */
|
|
12
|
+
export type OrganicKeyNormalizationStrategy = 'LowerCaseTrim' | 'Trim' | 'ExactMatch' | 'Custom';
|
|
13
|
+
/** A single column (Pattern 1) or compound tuple (Pattern 2) participating in a cluster. */
|
|
14
|
+
export interface OrganicKeyClusterMember {
|
|
15
|
+
schema: string;
|
|
16
|
+
table: string;
|
|
17
|
+
/** Primary column for Pattern 1; first column of the tuple for Pattern 2. */
|
|
18
|
+
column: string;
|
|
19
|
+
/**
|
|
20
|
+
* Pattern 2 — additional columns of a compound key tuple, in positional order.
|
|
21
|
+
* Undefined or empty for single-column (Pattern 1) members. When set, the full
|
|
22
|
+
* compound match is `[column, ...additionalColumns]` which the translator emits
|
|
23
|
+
* as `MatchFieldNames` for PR #2193's runtime.
|
|
24
|
+
*/
|
|
25
|
+
additionalColumns?: string[];
|
|
26
|
+
/** Whether the column appears in any FK relationship (declared or DBAutoDoc-discovered). */
|
|
27
|
+
participatesInFK: boolean;
|
|
28
|
+
/** FK target column if `participatesInFK` is true. */
|
|
29
|
+
fkTarget?: {
|
|
30
|
+
schema: string;
|
|
31
|
+
table: string;
|
|
32
|
+
column: string;
|
|
33
|
+
} | null;
|
|
34
|
+
/** Whether the column is a PK (informational; affects tagging). */
|
|
35
|
+
isPrimaryKey?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Per-column normalization strategy — the function that should be applied to THIS
|
|
38
|
+
* column's values at match time. Persisted into THIS column's hub `EntityOrganicKey`
|
|
39
|
+
* row at emission. Different members of the same cluster can have different strategies
|
|
40
|
+
* (e.g. one column already canonical → ExactMatch, another needs LowerCaseTrim).
|
|
41
|
+
* Falls back to the cluster-level `normalization` when not set.
|
|
42
|
+
*/
|
|
43
|
+
normalizationStrategy?: OrganicKeyNormalizationStrategy;
|
|
44
|
+
/** Custom SQL expression for this column when normalizationStrategy='Custom'. */
|
|
45
|
+
customNormalizationExpression?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Helper: returns the complete column list for a member (single or compound). */
|
|
48
|
+
export declare function memberColumns(m: OrganicKeyClusterMember): string[];
|
|
49
|
+
/** Helper: true when the member represents a compound tuple (Pattern 2). */
|
|
50
|
+
export declare function isCompoundMember(m: OrganicKeyClusterMember): boolean;
|
|
51
|
+
/** A confirmed cluster after LLM refinement — one business concept, N member columns. */
|
|
52
|
+
export interface OrganicKeyCluster {
|
|
53
|
+
/** Stable identifier for this cluster within the analysis run. */
|
|
54
|
+
id: string;
|
|
55
|
+
/** Canonical snake_case concept name (e.g. "email_address", "customer_id"). */
|
|
56
|
+
concept: string;
|
|
57
|
+
/** Cluster-level normalization strategy. */
|
|
58
|
+
normalization: OrganicKeyNormalizationStrategy;
|
|
59
|
+
/** Optional custom normalization SQL expression when normalization='Custom'. */
|
|
60
|
+
customNormalizationExpression?: string;
|
|
61
|
+
/** Members surviving the LLM refinement pass. */
|
|
62
|
+
members: OrganicKeyClusterMember[];
|
|
63
|
+
/** Cluster-level confidence (0–1). */
|
|
64
|
+
confidence: number;
|
|
65
|
+
/** LLM reasoning for why this cluster is a coherent business concept. */
|
|
66
|
+
reasoning: string;
|
|
67
|
+
/** Maximum pairwise embedding distance among members at clustering time (legacy field; 0 with the LLM-only pipeline). */
|
|
68
|
+
maxIntraDistance: number;
|
|
69
|
+
/**
|
|
70
|
+
* Set when EVERY non-PK member is a declared FK pointing at the PK member's column.
|
|
71
|
+
* PR #2193 organic keys exist to provide value-based matching "in place of a FK";
|
|
72
|
+
* when the FK is already declared, the cluster adds no navigation value and may
|
|
73
|
+
* indicate a lookup-table-PK pattern (country/currency/state codes). The dashboard
|
|
74
|
+
* can use this to offer a "hide FK-redundant" filter without losing the data.
|
|
75
|
+
*/
|
|
76
|
+
isFKRedundant?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Algorithmic configuration the detector actually runs with at execution time.
|
|
80
|
+
*
|
|
81
|
+
* Layering note: these are DBAutoDoc-internal tuning knobs. DBAutoDoc is a
|
|
82
|
+
* standalone tool that does NOT depend on MemberJunction, so these settings
|
|
83
|
+
* must be exposed through DBAutoDoc's own config system (see DBAutoDocConfig
|
|
84
|
+
* in types/config.ts) — NOT through mj.config.cjs.
|
|
85
|
+
*
|
|
86
|
+
* Cross-MJ-tool project facts (e.g. the project-wide table-exclusion list that
|
|
87
|
+
* CodeGen, mj-sync, and DBAutoDoc all need to agree on) DO live in mj.config.cjs;
|
|
88
|
+
* algorithm tuning does not.
|
|
89
|
+
*
|
|
90
|
+
* DEFAULT_DETECTOR_CONFIG values are the fallbacks used when DBAutoDoc's config
|
|
91
|
+
* doesn't override them; they are not authoritative.
|
|
92
|
+
*/
|
|
93
|
+
export interface OrganicKeyDetectorConfig {
|
|
94
|
+
/** Cosine-distance threshold for the agglomerative merge step. Lower = tighter clusters. */
|
|
95
|
+
mergeThreshold: number;
|
|
96
|
+
/** Minimum cluster size to report. */
|
|
97
|
+
minClusterSize: number;
|
|
98
|
+
/** Minimum number of distinct tables a cluster must span. */
|
|
99
|
+
minDistinctTables: number;
|
|
100
|
+
/** Sample values per column to include in the embedding input (and refiner prompt). */
|
|
101
|
+
sampleValueCount: number;
|
|
102
|
+
/** Concurrency for per-cluster LLM refinement. */
|
|
103
|
+
refinementConcurrency: number;
|
|
104
|
+
}
|
|
105
|
+
/** Fallback values used when DBAutoDoc's config doesn't override them. Not authoritative. */
|
|
106
|
+
export declare const DEFAULT_DETECTOR_CONFIG: OrganicKeyDetectorConfig;
|
|
107
|
+
/** Per-run phase tracking persisted in state.json. */
|
|
108
|
+
export interface OrganicKeyDetectionPhase {
|
|
109
|
+
triggered: boolean;
|
|
110
|
+
startedAt: string;
|
|
111
|
+
completedAt?: string;
|
|
112
|
+
status: 'running' | 'completed' | 'failed' | 'skipped';
|
|
113
|
+
candidateClusterCount: number;
|
|
114
|
+
confirmedClusterCount: number;
|
|
115
|
+
rejectedClusterCount: number;
|
|
116
|
+
splitClusterCount: number;
|
|
117
|
+
tokensUsed: number;
|
|
118
|
+
inputTokens: number;
|
|
119
|
+
outputTokens: number;
|
|
120
|
+
estimatedCost: number;
|
|
121
|
+
embeddingModelUsed?: string;
|
|
122
|
+
refinementModelUsed?: string;
|
|
123
|
+
skipReason?: string;
|
|
124
|
+
errorMessage?: string;
|
|
125
|
+
}
|
|
126
|
+
/** Outcome of refining a single cluster. */
|
|
127
|
+
export interface ClusterRefinementOutcome {
|
|
128
|
+
outcome: 'keep' | 'split' | 'reject' | 'error';
|
|
129
|
+
/** For 'keep' — refined cluster with concept + normalization + outliers ejected. */
|
|
130
|
+
refinedCluster?: OrganicKeyCluster;
|
|
131
|
+
/** For 'split' — coherent sub-clusters the LLM partitioned the input into. */
|
|
132
|
+
subClusters?: OrganicKeyCluster[];
|
|
133
|
+
/** For 'reject' — LLM-provided reason. */
|
|
134
|
+
rejectReason?: string;
|
|
135
|
+
/** For 'error' — failure detail. */
|
|
136
|
+
errorMessage?: string;
|
|
137
|
+
tokensUsed: number;
|
|
138
|
+
inputTokens: number;
|
|
139
|
+
outputTokens: number;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=organic-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organic-keys.d.ts","sourceRoot":"","sources":["../../src/types/organic-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Organic-Key Cluster Detection — types.
|
|
3
|
+
*
|
|
4
|
+
* A cluster is N≥2 columns across ≥2 tables sharing a single business-meaningful
|
|
5
|
+
* value space (email addresses, customer IDs, phone numbers, etc.). The runtime
|
|
6
|
+
* organic-key feature (see PR #2193) matches records across tables by literal
|
|
7
|
+
* value equality; clusters propose which columns should form such match groups.
|
|
8
|
+
*
|
|
9
|
+
* See plans/dbautodoc-organic-keys.md.
|
|
10
|
+
*/
|
|
11
|
+
/** Helper: returns the complete column list for a member (single or compound). */
|
|
12
|
+
export function memberColumns(m) {
|
|
13
|
+
return [m.column, ...(m.additionalColumns ?? [])];
|
|
14
|
+
}
|
|
15
|
+
/** Helper: true when the member represents a compound tuple (Pattern 2). */
|
|
16
|
+
export function isCompoundMember(m) {
|
|
17
|
+
return (m.additionalColumns?.length ?? 0) > 0;
|
|
18
|
+
}
|
|
19
|
+
/** Fallback values used when DBAutoDoc's config doesn't override them. Not authoritative. */
|
|
20
|
+
export const DEFAULT_DETECTOR_CONFIG = {
|
|
21
|
+
mergeThreshold: 0.35,
|
|
22
|
+
minClusterSize: 2,
|
|
23
|
+
minDistinctTables: 2,
|
|
24
|
+
sampleValueCount: 5,
|
|
25
|
+
refinementConcurrency: 4,
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=organic-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organic-keys.js","sourceRoot":"","sources":["../../src/types/organic-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqCH,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,CAA0B;IACpD,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,CAA0B;IACvD,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AA2DD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC7D,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;CAC3B,CAAC"}
|
package/dist/types/state.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { RelationshipDiscoveryPhase, CachedColumnStats } from './discovery.js';
|
|
6
6
|
import { SampleQuery, SampleQueryGenerationSummary } from './sample-queries.js';
|
|
7
|
+
import { OrganicKeyCluster, OrganicKeyDetectionPhase } from './organic-keys.js';
|
|
7
8
|
export interface DatabaseDocumentation {
|
|
8
9
|
version: string;
|
|
9
10
|
summary: AnalysisSummary;
|
|
@@ -12,6 +13,11 @@ export interface DatabaseDocumentation {
|
|
|
12
13
|
phases: AnalysisPhases;
|
|
13
14
|
schemas: SchemaDefinition[];
|
|
14
15
|
sampleQueries?: SampleQueriesDeliverable;
|
|
16
|
+
/**
|
|
17
|
+
* Deliverable: organic-key clusters detected by the optional organic-key
|
|
18
|
+
* detection phase. Empty/absent when that phase didn't run.
|
|
19
|
+
*/
|
|
20
|
+
organicKeyClusters?: OrganicKeyCluster[];
|
|
15
21
|
resumedFromFile?: string;
|
|
16
22
|
}
|
|
17
23
|
/**
|
|
@@ -51,6 +57,7 @@ export interface AnalysisPhases {
|
|
|
51
57
|
keyDetection?: RelationshipDiscoveryPhase;
|
|
52
58
|
descriptionGeneration: AnalysisRun[];
|
|
53
59
|
queryGeneration?: QueryGenerationPhase;
|
|
60
|
+
organicKeyDetection?: OrganicKeyDetectionPhase;
|
|
54
61
|
}
|
|
55
62
|
/**
|
|
56
63
|
* Query generation phase metadata (process tracking)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IAGxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON utilities — DBAutoDoc-local, no external dependencies.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of @memberjunction/global's CleanAndParseJSON / CleanJSON /
|
|
5
|
+
* SafeJSONParse so DBAutoDoc runs standalone without depending on
|
|
6
|
+
* @memberjunction/global. Preserves the multi-stage fallback chain MJ uses
|
|
7
|
+
* to handle real-world LLM output:
|
|
8
|
+
* 1. Try direct JSON.parse
|
|
9
|
+
* 2. Try removing or adding a trailing `}` (common LLM truncation/over-close artifact)
|
|
10
|
+
* 3. Strip non-escaped newlines/tabs
|
|
11
|
+
* 4. Undo double-escaped sequences (\\n, \\", etc.)
|
|
12
|
+
* 5. Try JSON.parse again
|
|
13
|
+
* 6. Extract from ``` ... ``` markdown fences (recursive)
|
|
14
|
+
* 7. Fall back to balanced-{...}/[...] extraction from mixed prose
|
|
15
|
+
*
|
|
16
|
+
* Behavior must match MJ exactly so PromptEngine / LLMSanityChecker /
|
|
17
|
+
* LLMDiscoveryValidator (which currently rely on this fallback chain) keep
|
|
18
|
+
* working on the same LLM responses they handle today.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Strip optional markdown code fences, run the multi-stage cleanup pipeline,
|
|
22
|
+
* and parse the resulting JSON.
|
|
23
|
+
*
|
|
24
|
+
* @param inputString Raw string possibly wrapped in code fences, double-escaped,
|
|
25
|
+
* or mixed with explanatory prose.
|
|
26
|
+
* @param logErrors When true, parse errors are logged to console (default false).
|
|
27
|
+
* @returns Parsed value cast to `T`, or `null` on parse failure.
|
|
28
|
+
*/
|
|
29
|
+
export declare function cleanAndParseJSON<T = any>(inputString: string | null, logErrors?: boolean): T | null;
|
|
30
|
+
/**
|
|
31
|
+
* Extract a valid-JSON string from arbitrary input. Returns null if no usable
|
|
32
|
+
* JSON can be salvaged. Behavior matches @memberjunction/global's CleanJSON.
|
|
33
|
+
*/
|
|
34
|
+
export declare function cleanJSON(inputString: string | null): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* Safe wrapper around JSON.parse. Catches errors; optionally logs them.
|
|
37
|
+
* Matches @memberjunction/global's SafeJSONParse.
|
|
38
|
+
*/
|
|
39
|
+
export declare function safeJSONParse<T = any>(jsonString: string, logErrors?: boolean): T | null;
|
|
40
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;GAQG;AAEH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,UAAQ,GAAG,CAAC,GAAG,IAAI,CAKlG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAqFnE;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,CAAC,GAAG,IAAI,CAQtF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON utilities — DBAutoDoc-local, no external dependencies.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of @memberjunction/global's CleanAndParseJSON / CleanJSON /
|
|
5
|
+
* SafeJSONParse so DBAutoDoc runs standalone without depending on
|
|
6
|
+
* @memberjunction/global. Preserves the multi-stage fallback chain MJ uses
|
|
7
|
+
* to handle real-world LLM output:
|
|
8
|
+
* 1. Try direct JSON.parse
|
|
9
|
+
* 2. Try removing or adding a trailing `}` (common LLM truncation/over-close artifact)
|
|
10
|
+
* 3. Strip non-escaped newlines/tabs
|
|
11
|
+
* 4. Undo double-escaped sequences (\\n, \\", etc.)
|
|
12
|
+
* 5. Try JSON.parse again
|
|
13
|
+
* 6. Extract from ``` ... ``` markdown fences (recursive)
|
|
14
|
+
* 7. Fall back to balanced-{...}/[...] extraction from mixed prose
|
|
15
|
+
*
|
|
16
|
+
* Behavior must match MJ exactly so PromptEngine / LLMSanityChecker /
|
|
17
|
+
* LLMDiscoveryValidator (which currently rely on this fallback chain) keep
|
|
18
|
+
* working on the same LLM responses they handle today.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Strip optional markdown code fences, run the multi-stage cleanup pipeline,
|
|
22
|
+
* and parse the resulting JSON.
|
|
23
|
+
*
|
|
24
|
+
* @param inputString Raw string possibly wrapped in code fences, double-escaped,
|
|
25
|
+
* or mixed with explanatory prose.
|
|
26
|
+
* @param logErrors When true, parse errors are logged to console (default false).
|
|
27
|
+
* @returns Parsed value cast to `T`, or `null` on parse failure.
|
|
28
|
+
*/
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
export function cleanAndParseJSON(inputString, logErrors = false) {
|
|
31
|
+
if (!inputString)
|
|
32
|
+
return null;
|
|
33
|
+
const cleaned = cleanJSON(inputString);
|
|
34
|
+
if (!cleaned)
|
|
35
|
+
return null;
|
|
36
|
+
return safeJSONParse(cleaned, logErrors);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Extract a valid-JSON string from arbitrary input. Returns null if no usable
|
|
40
|
+
* JSON can be salvaged. Behavior matches @memberjunction/global's CleanJSON.
|
|
41
|
+
*/
|
|
42
|
+
export function cleanJSON(inputString) {
|
|
43
|
+
if (!inputString)
|
|
44
|
+
return null;
|
|
45
|
+
let processedString = inputString.trim();
|
|
46
|
+
let originalException = null;
|
|
47
|
+
// 1. Try parsing as-is. Preserves any embedded JSON or markdown inside string values.
|
|
48
|
+
try {
|
|
49
|
+
const parsed = JSON.parse(processedString);
|
|
50
|
+
return JSON.stringify(parsed, null, 2);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
originalException = e instanceof Error ? e : new Error(String(e));
|
|
54
|
+
// 2. Common LLM artifacts: extra trailing `}` or missing final `}`.
|
|
55
|
+
if (processedString.endsWith('}')) {
|
|
56
|
+
const withoutLast = processedString.slice(0, -1);
|
|
57
|
+
const withoutLastResult = safeJSONParse(withoutLast);
|
|
58
|
+
if (withoutLastResult)
|
|
59
|
+
return JSON.stringify(withoutLastResult, null, 2);
|
|
60
|
+
const withExtra = processedString + '}';
|
|
61
|
+
const withExtraResult = safeJSONParse(withExtra);
|
|
62
|
+
if (withExtraResult)
|
|
63
|
+
return JSON.stringify(withExtraResult, null, 2);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// 3. Strip formatting newlines/tabs — but preserve \n and \t inside string values.
|
|
67
|
+
processedString = processedString.replace(/(?<!\\)\n/g, '').replace(/(?<!\\)\t/g, '');
|
|
68
|
+
// 4. Undo double-escaped sequences (\\n → \n, \\" → ", etc.).
|
|
69
|
+
if (processedString.includes('\\\\') || processedString.includes('\\"')) {
|
|
70
|
+
try {
|
|
71
|
+
processedString = JSON.parse('"' + processedString + '"');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
processedString = processedString
|
|
75
|
+
.replace(/\\\\n/g, '\n')
|
|
76
|
+
.replace(/\\\\t/g, '\t')
|
|
77
|
+
.replace(/\\\\r/g, '\r')
|
|
78
|
+
.replace(/\\\\"/g, '"')
|
|
79
|
+
.replace(/\\\\\\/g, '\\');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// 5. Try again after unescaping.
|
|
83
|
+
try {
|
|
84
|
+
const parsed = JSON.parse(processedString);
|
|
85
|
+
return JSON.stringify(parsed, null, 2);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// fall through to extraction logic
|
|
89
|
+
}
|
|
90
|
+
// 6. Pull JSON from ``` ... ``` markdown fences (json/JSON tag optional, also handles \` escapes).
|
|
91
|
+
const markdownRegex = /(?:```|\\`\\`\\`)(?:json|JSON)?\s*([\s\S]*?)(?:```|\\`\\`\\`)/gi;
|
|
92
|
+
const matches = Array.from(processedString.matchAll(markdownRegex));
|
|
93
|
+
if (matches.length > 0) {
|
|
94
|
+
const extracted = matches.map((m) => m[1].trim()).join('\n');
|
|
95
|
+
return cleanJSON(extracted); // recurse — extracted content may need its own cleanup
|
|
96
|
+
}
|
|
97
|
+
// 7. Last resort: find first `[` or `{`, take everything to the last matching close-bracket.
|
|
98
|
+
const firstBracketIndex = processedString.indexOf('[');
|
|
99
|
+
const firstBraceIndex = processedString.indexOf('{');
|
|
100
|
+
let startIndex = -1;
|
|
101
|
+
let endIndex = -1;
|
|
102
|
+
if ((firstBracketIndex !== -1 && firstBracketIndex < firstBraceIndex) || firstBraceIndex === -1) {
|
|
103
|
+
startIndex = firstBracketIndex;
|
|
104
|
+
endIndex = processedString.lastIndexOf(']');
|
|
105
|
+
}
|
|
106
|
+
else if (firstBraceIndex !== -1) {
|
|
107
|
+
startIndex = firstBraceIndex;
|
|
108
|
+
endIndex = processedString.lastIndexOf('}');
|
|
109
|
+
}
|
|
110
|
+
if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {
|
|
111
|
+
console.warn('No JSON found in the input.');
|
|
112
|
+
return processedString;
|
|
113
|
+
}
|
|
114
|
+
const potentialJSON = processedString.substring(startIndex, endIndex + 1);
|
|
115
|
+
try {
|
|
116
|
+
const jsonObject = JSON.parse(potentialJSON);
|
|
117
|
+
return JSON.stringify(jsonObject, null, 2);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// All paths exhausted — throw with the original message preserved.
|
|
121
|
+
throw new Error(`Failed to find a path to CleanJSON\n\n${originalException?.message}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Safe wrapper around JSON.parse. Catches errors; optionally logs them.
|
|
126
|
+
* Matches @memberjunction/global's SafeJSONParse.
|
|
127
|
+
*/
|
|
128
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
|
+
export function safeJSONParse(jsonString, logErrors = false) {
|
|
130
|
+
if (!jsonString)
|
|
131
|
+
return null;
|
|
132
|
+
try {
|
|
133
|
+
return JSON.parse(jsonString);
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
if (logErrors)
|
|
137
|
+
console.error('Error parsing JSON string:', e);
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/db-auto-doc",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.38.0",
|
|
5
5
|
"description": "AI-powered database documentation generator for SQL Server, MySQL, and PostgreSQL. Analyzes your database structure, uses AI to generate comprehensive descriptions, and saves them as metadata. Works standalone - no MemberJunction runtime required.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -72,10 +72,10 @@
|
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@inquirer/prompts": "^8.2.0",
|
|
75
|
-
"@memberjunction/ai": "5.
|
|
76
|
-
"@memberjunction/server-bootstrap": "5.
|
|
77
|
-
"@memberjunction/core": "5.
|
|
78
|
-
"@memberjunction/global": "5.
|
|
75
|
+
"@memberjunction/ai": "5.38.0",
|
|
76
|
+
"@memberjunction/server-bootstrap": "5.38.0",
|
|
77
|
+
"@memberjunction/core": "5.38.0",
|
|
78
|
+
"@memberjunction/global": "5.38.0",
|
|
79
79
|
"@oclif/core": "^3.27.0",
|
|
80
80
|
"@oclif/plugin-help": "^6.2.37",
|
|
81
81
|
"chalk": "^5.6.2",
|