@linklabjs/core 0.1.0 → 0.1.1
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/dist/api/DomainNode.d.ts +154 -0
- package/dist/api/DomainNode.d.ts.map +1 -0
- package/dist/api/DomainNode.js +1157 -0
- package/dist/api/DomainNode.js.map +1 -0
- package/dist/api/Graph.d.ts +117 -0
- package/dist/api/Graph.d.ts.map +1 -0
- package/dist/api/Graph.js +212 -0
- package/dist/api/Graph.js.map +1 -0
- package/dist/api/PathBuilder.d.ts +76 -0
- package/dist/api/PathBuilder.d.ts.map +1 -0
- package/dist/api/PathBuilder.js +182 -0
- package/dist/api/PathBuilder.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +7 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/loadGraph.d.ts +57 -0
- package/dist/api/loadGraph.d.ts.map +1 -0
- package/dist/api/loadGraph.js +153 -0
- package/dist/api/loadGraph.js.map +1 -0
- package/dist/api/test-api.d.ts +9 -0
- package/dist/api/test-api.d.ts.map +1 -0
- package/dist/api/test-api.js +133 -0
- package/dist/api/test-api.js.map +1 -0
- package/dist/api/test-domain.d.ts +13 -0
- package/dist/api/test-domain.d.ts.map +1 -0
- package/dist/api/test-domain.js +105 -0
- package/dist/api/test-domain.js.map +1 -0
- package/dist/api/types.d.ts +69 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +22 -0
- package/dist/api/types.js.map +1 -0
- package/dist/config/synonyms.json +25 -0
- package/dist/core/EventBus.d.ts +56 -0
- package/dist/core/EventBus.d.ts.map +1 -0
- package/dist/core/EventBus.js +147 -0
- package/dist/core/EventBus.js.map +1 -0
- package/dist/core/GraphEvents.d.ts +118 -0
- package/dist/core/GraphEvents.d.ts.map +1 -0
- package/dist/core/GraphEvents.js +23 -0
- package/dist/core/GraphEvents.js.map +1 -0
- package/dist/core/PathFinder.d.ts +43 -0
- package/dist/core/PathFinder.d.ts.map +1 -0
- package/dist/core/PathFinder.js +264 -0
- package/dist/core/PathFinder.js.map +1 -0
- package/dist/formatters/BaseFormatter.d.ts +15 -0
- package/dist/formatters/BaseFormatter.d.ts.map +1 -0
- package/dist/formatters/BaseFormatter.js +9 -0
- package/dist/formatters/BaseFormatter.js.map +1 -0
- package/dist/graph/GraphAssembler.d.ts +14 -0
- package/dist/graph/GraphAssembler.d.ts.map +1 -0
- package/dist/graph/GraphAssembler.js +44 -0
- package/dist/graph/GraphAssembler.js.map +1 -0
- package/dist/graph/GraphCompiler.d.ts +37 -0
- package/dist/graph/GraphCompiler.d.ts.map +1 -0
- package/dist/graph/GraphCompiler.js +355 -0
- package/dist/graph/GraphCompiler.js.map +1 -0
- package/dist/graph/GraphExtractor.d.ts +21 -0
- package/dist/graph/GraphExtractor.d.ts.map +1 -0
- package/dist/graph/GraphExtractor.js +145 -0
- package/dist/graph/GraphExtractor.js.map +1 -0
- package/dist/graph/GraphOptimizer.d.ts +104 -0
- package/dist/graph/GraphOptimizer.d.ts.map +1 -0
- package/dist/graph/GraphOptimizer.js +306 -0
- package/dist/graph/GraphOptimizer.js.map +1 -0
- package/dist/graph/GraphTrainer.d.ts +52 -0
- package/dist/graph/GraphTrainer.d.ts.map +1 -0
- package/dist/graph/GraphTrainer.js +188 -0
- package/dist/graph/GraphTrainer.js.map +1 -0
- package/dist/http/LinkBuilder.d.ts +82 -0
- package/dist/http/LinkBuilder.d.ts.map +1 -0
- package/dist/http/LinkBuilder.js +190 -0
- package/dist/http/LinkBuilder.js.map +1 -0
- package/dist/http/TrailRequest.d.ts +39 -0
- package/dist/http/TrailRequest.d.ts.map +1 -0
- package/dist/http/TrailRequest.js +22 -0
- package/dist/http/TrailRequest.js.map +1 -0
- package/dist/http/example-netflix.d.ts +6 -0
- package/dist/http/example-netflix.d.ts.map +1 -0
- package/dist/http/example-netflix.js +52 -0
- package/dist/http/example-netflix.js.map +1 -0
- package/dist/http/index.d.ts +32 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +27 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/plugin.d.ts +110 -0
- package/dist/http/plugin.d.ts.map +1 -0
- package/dist/http/plugin.js +217 -0
- package/dist/http/plugin.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/TelemetryShim.d.ts +114 -0
- package/dist/instrumentation/TelemetryShim.d.ts.map +1 -0
- package/dist/instrumentation/TelemetryShim.js +107 -0
- package/dist/instrumentation/TelemetryShim.js.map +1 -0
- package/dist/navigation/NavigationEngine.d.ts +69 -0
- package/dist/navigation/NavigationEngine.d.ts.map +1 -0
- package/dist/navigation/NavigationEngine.js +361 -0
- package/dist/navigation/NavigationEngine.js.map +1 -0
- package/dist/navigation/Resolver.d.ts +35 -0
- package/dist/navigation/Resolver.d.ts.map +1 -0
- package/dist/navigation/Resolver.js +113 -0
- package/dist/navigation/Resolver.js.map +1 -0
- package/dist/navigation/Scheduler.d.ts +36 -0
- package/dist/navigation/Scheduler.d.ts.map +1 -0
- package/dist/navigation/Scheduler.js +107 -0
- package/dist/navigation/Scheduler.js.map +1 -0
- package/dist/navigation/Trail.d.ts +129 -0
- package/dist/navigation/Trail.d.ts.map +1 -0
- package/dist/navigation/Trail.js +202 -0
- package/dist/navigation/Trail.js.map +1 -0
- package/dist/navigation/TrailParser.d.ts +96 -0
- package/dist/navigation/TrailParser.d.ts.map +1 -0
- package/dist/navigation/TrailParser.js +180 -0
- package/dist/navigation/TrailParser.js.map +1 -0
- package/dist/navigation/index.d.ts +10 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +9 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/providers/MockProvider.d.ts +29 -0
- package/dist/providers/MockProvider.d.ts.map +1 -0
- package/dist/providers/MockProvider.js +55 -0
- package/dist/providers/MockProvider.js.map +1 -0
- package/dist/providers/PostgresProvider.d.ts +46 -0
- package/dist/providers/PostgresProvider.d.ts.map +1 -0
- package/dist/providers/PostgresProvider.js +152 -0
- package/dist/providers/PostgresProvider.js.map +1 -0
- package/dist/runtime/CompiledGraphEngine.d.ts +74 -0
- package/dist/runtime/CompiledGraphEngine.d.ts.map +1 -0
- package/dist/runtime/CompiledGraphEngine.js +211 -0
- package/dist/runtime/CompiledGraphEngine.js.map +1 -0
- package/dist/runtime/DataLoader.d.ts +90 -0
- package/dist/runtime/DataLoader.d.ts.map +1 -0
- package/dist/runtime/DataLoader.js +178 -0
- package/dist/runtime/DataLoader.js.map +1 -0
- package/dist/runtime/Engine.d.ts +36 -0
- package/dist/runtime/Engine.d.ts.map +1 -0
- package/dist/runtime/Engine.js +128 -0
- package/dist/runtime/Engine.js.map +1 -0
- package/dist/runtime/QueryEngine.d.ts +80 -0
- package/dist/runtime/QueryEngine.d.ts.map +1 -0
- package/dist/runtime/QueryEngine.js +188 -0
- package/dist/runtime/QueryEngine.js.map +1 -0
- package/dist/scenarios/test-metro-paris/config.json +6 -0
- package/dist/scenarios/test-metro-paris/graph.json +16325 -0
- package/dist/scenarios/test-metro-paris/queries.d.ts +22 -0
- package/dist/scenarios/test-metro-paris/queries.d.ts.map +1 -0
- package/dist/scenarios/test-metro-paris/queries.js +128 -0
- package/dist/scenarios/test-metro-paris/queries.js.map +1 -0
- package/dist/scenarios/test-metro-paris/stack.json +1 -0
- package/dist/scenarios/test-musicians/config.json +10 -0
- package/dist/scenarios/test-musicians/graph.json +20 -0
- package/dist/scenarios/test-musicians/stack.json +1 -0
- package/dist/scenarios/test-netflix/actions.d.ts +14 -0
- package/dist/scenarios/test-netflix/actions.d.ts.map +1 -0
- package/dist/scenarios/test-netflix/actions.js +86 -0
- package/dist/scenarios/test-netflix/actions.js.map +1 -0
- package/dist/scenarios/test-netflix/config.json +6 -0
- package/dist/scenarios/test-netflix/data/categories.json +1 -0
- package/dist/scenarios/test-netflix/data/companies.json +1 -0
- package/dist/scenarios/test-netflix/data/credits.json +19797 -0
- package/dist/scenarios/test-netflix/data/departments.json +18 -0
- package/dist/scenarios/test-netflix/data/jobs.json +142 -0
- package/dist/scenarios/test-netflix/data/movies.json +3497 -0
- package/dist/scenarios/test-netflix/data/people.json +1 -0
- package/dist/scenarios/test-netflix/data/synonyms.json +7 -0
- package/dist/scenarios/test-netflix/data/users.json +70 -0
- package/dist/scenarios/test-netflix/graph.json +1017 -0
- package/dist/scenarios/test-netflix/queries.d.ts +29 -0
- package/dist/scenarios/test-netflix/queries.d.ts.map +1 -0
- package/dist/scenarios/test-netflix/queries.js +134 -0
- package/dist/scenarios/test-netflix/queries.js.map +1 -0
- package/dist/scenarios/test-netflix/stack.json +14 -0
- package/dist/schema/GraphBuilder.d.ts +9 -0
- package/dist/schema/GraphBuilder.d.ts.map +1 -0
- package/dist/schema/GraphBuilder.js +90 -0
- package/dist/schema/GraphBuilder.js.map +1 -0
- package/dist/schema/JsonSchemaExtractor.d.ts +21 -0
- package/dist/schema/JsonSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/JsonSchemaExtractor.js +88 -0
- package/dist/schema/JsonSchemaExtractor.js.map +1 -0
- package/dist/schema/SchemaAnalyzer.d.ts +41 -0
- package/dist/schema/SchemaAnalyzer.d.ts.map +1 -0
- package/dist/schema/SchemaAnalyzer.js +144 -0
- package/dist/schema/SchemaAnalyzer.js.map +1 -0
- package/dist/schema/SchemaExtractor.d.ts +10 -0
- package/dist/schema/SchemaExtractor.d.ts.map +1 -0
- package/dist/schema/SchemaExtractor.js +90 -0
- package/dist/schema/SchemaExtractor.js.map +1 -0
- package/dist/schema/SynonymResolver.d.ts +55 -0
- package/dist/schema/SynonymResolver.d.ts.map +1 -0
- package/dist/schema/SynonymResolver.js +121 -0
- package/dist/schema/SynonymResolver.js.map +1 -0
- package/dist/scripts/dictionary.json +796 -0
- package/dist/scripts/graph.json +664 -0
- package/dist/scripts/regenerate.d.ts +23 -0
- package/dist/scripts/regenerate.d.ts.map +1 -0
- package/dist/scripts/regenerate.js +206 -0
- package/dist/scripts/regenerate.js.map +1 -0
- package/dist/types/index.d.ts +394 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* regenerate.ts — Script de régénération des graphes compilés
|
|
3
|
+
*
|
|
4
|
+
* Usage :
|
|
5
|
+
* npx tsx regenerate.ts netflix
|
|
6
|
+
* npx tsx regenerate.ts dvdrental --pg host=localhost user=postgres password=secret
|
|
7
|
+
* npx tsx regenerate.ts all
|
|
8
|
+
*
|
|
9
|
+
* Régénère compiled-graph.json pour chaque scénario.
|
|
10
|
+
* Bumpe automatiquement la version dans le fichier produit.
|
|
11
|
+
*
|
|
12
|
+
* Versioning :
|
|
13
|
+
* - Graphes générés (netflix, dvdrental) : version dans compiled-graph.json
|
|
14
|
+
* format : MAJOR.MINOR.PATCH ex: 2.0.0
|
|
15
|
+
* MAJOR = version du GraphCompiler (structure breaking)
|
|
16
|
+
* MINOR = changement de schéma (nouvelles tables/relations)
|
|
17
|
+
* PATCH = recompilation (nouveaux poids, métriques)
|
|
18
|
+
*
|
|
19
|
+
* - Graphes manuels (metro, musicians) : version dans raw-graph.json + compiled
|
|
20
|
+
* Patch manuel dans raw-graph.json, puis npx tsx regenerate.ts metro
|
|
21
|
+
*/
|
|
22
|
+
import * as fs from 'fs';
|
|
23
|
+
import * as path from 'path';
|
|
24
|
+
import { fileURLToPath } from 'url';
|
|
25
|
+
import { dirname } from 'path';
|
|
26
|
+
import { JsonSchemaExtractor } from '../schema/JsonSchemaExtractor.js';
|
|
27
|
+
import { SchemaAnalyzer } from '../schema/SchemaAnalyzer.js';
|
|
28
|
+
import { GraphBuilder } from '../schema/GraphBuilder.js';
|
|
29
|
+
import { GraphAssembler } from '../graph/GraphAssembler.js';
|
|
30
|
+
import { GraphCompiler } from '../graph/GraphCompiler.js';
|
|
31
|
+
import { PathFinder } from '../core/PathFinder.js';
|
|
32
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
33
|
+
const __dirname = dirname(__filename);
|
|
34
|
+
const ROOT = path.join(__dirname, '..', 'examples');
|
|
35
|
+
const CONFIG_DIR = path.join(__dirname, '..', '..', 'config');
|
|
36
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
37
|
+
function save(filepath, data) {
|
|
38
|
+
fs.writeFileSync(filepath, JSON.stringify(data, null, 2));
|
|
39
|
+
const kb = (fs.statSync(filepath).size / 1024).toFixed(1);
|
|
40
|
+
console.log(` 💾 ${path.basename(filepath).padEnd(25)} ${kb} KB`);
|
|
41
|
+
}
|
|
42
|
+
function bumpPatch(current) {
|
|
43
|
+
const parts = current.split('.').map(Number);
|
|
44
|
+
if (parts.length !== 3 || parts.some(isNaN))
|
|
45
|
+
return '2.0.0';
|
|
46
|
+
parts[2]++;
|
|
47
|
+
return parts.join('.');
|
|
48
|
+
}
|
|
49
|
+
function readCurrentVersion(compiledPath) {
|
|
50
|
+
try {
|
|
51
|
+
const c = JSON.parse(fs.readFileSync(compiledPath, 'utf-8'));
|
|
52
|
+
return c.version ?? '2.0.0';
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return '2.0.0';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// ── Entraînement local (sans provider externe) ────────────────────────────────
|
|
59
|
+
function trainLocal(graph, useCases) {
|
|
60
|
+
const metrics = new Map();
|
|
61
|
+
const finder = new PathFinder(graph);
|
|
62
|
+
for (const uc of useCases) {
|
|
63
|
+
const paths = finder.findAllPaths(uc.from, uc.to);
|
|
64
|
+
for (const p of paths) {
|
|
65
|
+
metrics.set(p.join('→'), {
|
|
66
|
+
path: p,
|
|
67
|
+
executions: 10,
|
|
68
|
+
successes: 10,
|
|
69
|
+
totalTime: 100,
|
|
70
|
+
avgTime: 10,
|
|
71
|
+
minTime: 8,
|
|
72
|
+
maxTime: 12,
|
|
73
|
+
used: true,
|
|
74
|
+
failed: false
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return metrics;
|
|
79
|
+
}
|
|
80
|
+
// ── Pipeline JSON (netflix, cinema, etc.) ─────────────────────────────────────
|
|
81
|
+
async function regenerateFromJSON(scenario) {
|
|
82
|
+
const dir = path.join(ROOT, scenario);
|
|
83
|
+
const dataDir = path.join(dir, 'data');
|
|
84
|
+
const compiledOut = path.join(dir, 'compiled-graph.json');
|
|
85
|
+
if (!fs.existsSync(dataDir)) {
|
|
86
|
+
console.error(` ❌ data/ not found: ${dataDir}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
console.log(`\n🔄 ${scenario} — pipeline JSON`);
|
|
90
|
+
console.log('─'.repeat(50));
|
|
91
|
+
// Step 1 : Extraction
|
|
92
|
+
const extractor = new JsonSchemaExtractor(dataDir);
|
|
93
|
+
const techSchema = await extractor.extract();
|
|
94
|
+
save(path.join(dir, 'schema.json'), techSchema);
|
|
95
|
+
// Step 2 : Analyse
|
|
96
|
+
const analyzer = new SchemaAnalyzer(CONFIG_DIR, dataDir);
|
|
97
|
+
const analyzedSchema = analyzer.analyze(techSchema);
|
|
98
|
+
save(path.join(dir, 'analyzed-schema.json'), analyzedSchema);
|
|
99
|
+
// Step 3 : Dictionnaire
|
|
100
|
+
const builder = new GraphBuilder();
|
|
101
|
+
const dictionary = builder.build(analyzedSchema, dataDir);
|
|
102
|
+
save(path.join(dir, 'dictionary.json'), dictionary);
|
|
103
|
+
// Step 4 : Graphe brut
|
|
104
|
+
const assembler = new GraphAssembler();
|
|
105
|
+
const rawGraph = assembler.assemble(dictionary);
|
|
106
|
+
save(path.join(dir, 'raw-graph.json'), rawGraph);
|
|
107
|
+
console.log(` 📊 ${rawGraph.nodes.length} nœuds · ${rawGraph.edges.length} arêtes`);
|
|
108
|
+
// Step 5 : Use cases (lire depuis use-cases.json si présent, sinon défaut)
|
|
109
|
+
const ucFile = path.join(dir, 'use-cases.json');
|
|
110
|
+
const useCases = fs.existsSync(ucFile)
|
|
111
|
+
? JSON.parse(fs.readFileSync(ucFile, 'utf-8'))
|
|
112
|
+
: buildDefaultUseCases(rawGraph);
|
|
113
|
+
const metrics = trainLocal(rawGraph, useCases);
|
|
114
|
+
save(path.join(dir, 'metrics.json'), Object.fromEntries(metrics));
|
|
115
|
+
// Step 6 : Compilation
|
|
116
|
+
const prevVersion = readCurrentVersion(compiledOut);
|
|
117
|
+
const newVersion = bumpPatch(prevVersion);
|
|
118
|
+
const compiler = new GraphCompiler({ weightThreshold: 1000, keepFallbacks: true });
|
|
119
|
+
const compiledGraph = compiler.compile(rawGraph, metrics);
|
|
120
|
+
compiledGraph.version = newVersion;
|
|
121
|
+
compiledGraph.scenario = scenario;
|
|
122
|
+
save(compiledOut, compiledGraph);
|
|
123
|
+
const stats = GraphCompiler.getStats(compiledGraph);
|
|
124
|
+
console.log(`\n ✅ ${stats.totalRoutes} routes (${stats.physical} physical · ${stats.semantic} semantic)`);
|
|
125
|
+
console.log(` 📌 version: ${prevVersion} → ${newVersion}`);
|
|
126
|
+
}
|
|
127
|
+
// ── Pipeline manuel (metro, musicians) ───────────────────────────────────────
|
|
128
|
+
// raw-graph.json édité à la main → on recompile seulement
|
|
129
|
+
async function recompileManual(scenario) {
|
|
130
|
+
const dir = path.join(ROOT, scenario);
|
|
131
|
+
const rawPath = path.join(dir, 'raw-graph.json');
|
|
132
|
+
const compiledOut = path.join(dir, 'compiled-graph.json');
|
|
133
|
+
if (!fs.existsSync(rawPath)) {
|
|
134
|
+
console.error(` ❌ raw-graph.json not found: ${rawPath}`);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
console.log(`\n🔄 ${scenario} — recompile manual graph`);
|
|
138
|
+
console.log('─'.repeat(50));
|
|
139
|
+
const rawGraph = JSON.parse(fs.readFileSync(rawPath, 'utf-8'));
|
|
140
|
+
const ucFile = path.join(dir, 'use-cases.json');
|
|
141
|
+
const useCases = fs.existsSync(ucFile)
|
|
142
|
+
? JSON.parse(fs.readFileSync(ucFile, 'utf-8'))
|
|
143
|
+
: buildDefaultUseCases(rawGraph);
|
|
144
|
+
const metrics = trainLocal(rawGraph, useCases);
|
|
145
|
+
const prevVersion = readCurrentVersion(compiledOut);
|
|
146
|
+
const newVersion = bumpPatch(prevVersion);
|
|
147
|
+
const compiler = new GraphCompiler({ weightThreshold: 1000, keepFallbacks: true });
|
|
148
|
+
const compiledGraph = compiler.compile(rawGraph, metrics);
|
|
149
|
+
compiledGraph.version = newVersion;
|
|
150
|
+
compiledGraph.scenario = scenario;
|
|
151
|
+
save(compiledOut, compiledGraph);
|
|
152
|
+
const stats = GraphCompiler.getStats(compiledGraph);
|
|
153
|
+
console.log(` ✅ ${stats.totalRoutes} routes (${stats.physical} physical · ${stats.semantic} semantic)`);
|
|
154
|
+
console.log(` 📌 version: ${prevVersion} → ${newVersion}`);
|
|
155
|
+
}
|
|
156
|
+
// ── Déterminer le type de scénario ────────────────────────────────────────────
|
|
157
|
+
function scenarioType(scenario) {
|
|
158
|
+
const dir = path.join(ROOT, scenario);
|
|
159
|
+
if (fs.existsSync(path.join(dir, 'data')))
|
|
160
|
+
return 'json';
|
|
161
|
+
if (fs.existsSync(path.join(dir, 'raw-graph.json')))
|
|
162
|
+
return 'manual';
|
|
163
|
+
return 'unknown';
|
|
164
|
+
}
|
|
165
|
+
function buildDefaultUseCases(graph) {
|
|
166
|
+
// Générer des use cases par défaut depuis les nœuds du graphe
|
|
167
|
+
const nodes = graph.nodes.map((n) => n.id);
|
|
168
|
+
const cases = [];
|
|
169
|
+
for (let i = 0; i < Math.min(nodes.length, 4); i++) {
|
|
170
|
+
for (let j = 0; j < Math.min(nodes.length, 4); j++) {
|
|
171
|
+
if (i !== j)
|
|
172
|
+
cases.push({ from: nodes[i], to: nodes[j], description: `${nodes[i]}→${nodes[j]}` });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return cases;
|
|
176
|
+
}
|
|
177
|
+
// ── Main ──────────────────────────────────────────────────────────────────────
|
|
178
|
+
async function main() {
|
|
179
|
+
const args = process.argv.slice(2);
|
|
180
|
+
const scenarios = args[0] === 'all'
|
|
181
|
+
? fs.readdirSync(ROOT).filter(d => fs.statSync(path.join(ROOT, d)).isDirectory())
|
|
182
|
+
: args.filter(a => !a.startsWith('--'));
|
|
183
|
+
if (!scenarios.length) {
|
|
184
|
+
console.log('Usage: npx tsx regenerate.ts <scenario|all> [--pg ...]');
|
|
185
|
+
console.log('Examples:');
|
|
186
|
+
console.log(' npx tsx regenerate.ts netflix');
|
|
187
|
+
console.log(' npx tsx regenerate.ts metro musicians');
|
|
188
|
+
console.log(' npx tsx regenerate.ts all');
|
|
189
|
+
process.exit(0);
|
|
190
|
+
}
|
|
191
|
+
for (const scenario of scenarios) {
|
|
192
|
+
const type = scenarioType(scenario);
|
|
193
|
+
if (type === 'json')
|
|
194
|
+
await regenerateFromJSON(scenario);
|
|
195
|
+
else if (type === 'manual')
|
|
196
|
+
await recompileManual(scenario);
|
|
197
|
+
else
|
|
198
|
+
console.warn(` ⚠️ ${scenario}: unknown scenario type (no data/ nor raw-graph.json)`);
|
|
199
|
+
}
|
|
200
|
+
console.log('\n✅ Done\n');
|
|
201
|
+
}
|
|
202
|
+
main().catch(err => {
|
|
203
|
+
console.error('❌', err);
|
|
204
|
+
process.exit(1);
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=regenerate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../src/scripts/regenerate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkLab Core Types
|
|
3
|
+
* * Base type definitions for the entire system
|
|
4
|
+
*/
|
|
5
|
+
export type NodeType = 'table' | 'view' | 'entity' | 'action';
|
|
6
|
+
export interface Column {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
nullable?: boolean;
|
|
10
|
+
primaryKey?: boolean;
|
|
11
|
+
foreignKey?: boolean;
|
|
12
|
+
defaultValue?: any;
|
|
13
|
+
description?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface GraphNode {
|
|
16
|
+
id: string;
|
|
17
|
+
type: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
exposed?: boolean;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
export interface GraphEdge {
|
|
23
|
+
from: string;
|
|
24
|
+
to: string;
|
|
25
|
+
weight: number;
|
|
26
|
+
name?: string;
|
|
27
|
+
via?: string;
|
|
28
|
+
fromCol?: string;
|
|
29
|
+
toCol?: string;
|
|
30
|
+
metadata?: {
|
|
31
|
+
condition?: string | Record<string, any>;
|
|
32
|
+
semanticType?: string;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface Graph {
|
|
37
|
+
nodes: GraphNode[];
|
|
38
|
+
edges: GraphEdge[];
|
|
39
|
+
}
|
|
40
|
+
export interface RouteStep {
|
|
41
|
+
fromCol: string;
|
|
42
|
+
toCol: string;
|
|
43
|
+
}
|
|
44
|
+
export interface RouteInfo {
|
|
45
|
+
from: string;
|
|
46
|
+
to: string;
|
|
47
|
+
primary: {
|
|
48
|
+
path: string[];
|
|
49
|
+
edges: RouteStep[];
|
|
50
|
+
weight: number;
|
|
51
|
+
joins: number;
|
|
52
|
+
avgTime: number;
|
|
53
|
+
};
|
|
54
|
+
fallbacks: Array<{
|
|
55
|
+
path: string[];
|
|
56
|
+
edges: RouteStep[];
|
|
57
|
+
weight: number;
|
|
58
|
+
joins: number;
|
|
59
|
+
avgTime: number;
|
|
60
|
+
}>;
|
|
61
|
+
alternativesDiscarded: number;
|
|
62
|
+
}
|
|
63
|
+
export interface GraphMetadata {
|
|
64
|
+
version?: string;
|
|
65
|
+
generatedAt?: string;
|
|
66
|
+
database?: DatabaseInfo;
|
|
67
|
+
[key: string]: any;
|
|
68
|
+
}
|
|
69
|
+
export interface DatabaseInfo {
|
|
70
|
+
name: string;
|
|
71
|
+
type: 'postgresql' | 'mysql' | 'sqlite' | 'mongodb';
|
|
72
|
+
version?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface ActionDefinition {
|
|
75
|
+
id: string;
|
|
76
|
+
description?: string;
|
|
77
|
+
requiredParams: Column[];
|
|
78
|
+
provides?: string[];
|
|
79
|
+
handler: (context: any) => Promise<any>;
|
|
80
|
+
}
|
|
81
|
+
export interface ActionRegistry {
|
|
82
|
+
register(action: ActionDefinition): void;
|
|
83
|
+
get(id: string): ActionDefinition | undefined;
|
|
84
|
+
getAll(): ActionDefinition[];
|
|
85
|
+
}
|
|
86
|
+
export interface ContextLayer {
|
|
87
|
+
nodeId: string;
|
|
88
|
+
timestamp: number;
|
|
89
|
+
data: Record<string, any>;
|
|
90
|
+
type: 'navigation' | 'action' | 'system';
|
|
91
|
+
}
|
|
92
|
+
export interface EngineConfig {
|
|
93
|
+
cache?: CacheConfig;
|
|
94
|
+
debug?: boolean;
|
|
95
|
+
onResolveContext?: (currentContext: any) => Awaitable<any>;
|
|
96
|
+
onValidatePath?: (node: GraphNode, context: any) => Awaitable<boolean>;
|
|
97
|
+
}
|
|
98
|
+
export type Path = string[];
|
|
99
|
+
export interface PathDetails {
|
|
100
|
+
path: Path;
|
|
101
|
+
length: number;
|
|
102
|
+
joins: number;
|
|
103
|
+
weight: number;
|
|
104
|
+
edges: GraphEdge[];
|
|
105
|
+
indirect?: boolean;
|
|
106
|
+
}
|
|
107
|
+
export interface PathMetrics {
|
|
108
|
+
path: Path;
|
|
109
|
+
weight: number;
|
|
110
|
+
joins: number;
|
|
111
|
+
avgTime?: number;
|
|
112
|
+
executions?: number;
|
|
113
|
+
minTime?: number;
|
|
114
|
+
maxTime?: number;
|
|
115
|
+
}
|
|
116
|
+
export type MetricsMap = Map<string, TrainingMetrics>;
|
|
117
|
+
export interface ProviderConfig {
|
|
118
|
+
host?: string;
|
|
119
|
+
port?: number;
|
|
120
|
+
database: string;
|
|
121
|
+
user?: string;
|
|
122
|
+
password?: string;
|
|
123
|
+
connectionString?: string;
|
|
124
|
+
mock?: boolean;
|
|
125
|
+
[key: string]: any;
|
|
126
|
+
}
|
|
127
|
+
export interface Provider {
|
|
128
|
+
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
129
|
+
close(): Promise<void>;
|
|
130
|
+
}
|
|
131
|
+
export interface CompiledGraph {
|
|
132
|
+
version: string;
|
|
133
|
+
compiledAt: string;
|
|
134
|
+
config: CompilerConfig;
|
|
135
|
+
nodes: GraphNode[];
|
|
136
|
+
routes: RouteInfo[];
|
|
137
|
+
stats: CompilationStats;
|
|
138
|
+
}
|
|
139
|
+
export interface CompilerConfig {
|
|
140
|
+
weightThreshold: number;
|
|
141
|
+
minUsage?: number;
|
|
142
|
+
keepFallbacks: boolean;
|
|
143
|
+
maxFallbacks: number;
|
|
144
|
+
expose?: ExposeConfig;
|
|
145
|
+
}
|
|
146
|
+
export interface CompilationStats {
|
|
147
|
+
totalPairs: number;
|
|
148
|
+
routesCompiled: number;
|
|
149
|
+
routesFiltered: number;
|
|
150
|
+
compressionRatio: string;
|
|
151
|
+
}
|
|
152
|
+
export interface UseCase {
|
|
153
|
+
description: string;
|
|
154
|
+
from: string;
|
|
155
|
+
to: string;
|
|
156
|
+
sampleData?: Record<string, any>;
|
|
157
|
+
expectedPath?: Path;
|
|
158
|
+
}
|
|
159
|
+
export interface TrainingMetrics {
|
|
160
|
+
path: Path;
|
|
161
|
+
executions: number;
|
|
162
|
+
successes?: number;
|
|
163
|
+
failures?: number;
|
|
164
|
+
totalTime: number;
|
|
165
|
+
avgTime: number;
|
|
166
|
+
minTime: number;
|
|
167
|
+
maxTime: number;
|
|
168
|
+
used: boolean;
|
|
169
|
+
failed?: boolean;
|
|
170
|
+
error?: string;
|
|
171
|
+
}
|
|
172
|
+
export interface CacheConfig {
|
|
173
|
+
maxSize?: number;
|
|
174
|
+
ttl?: number;
|
|
175
|
+
}
|
|
176
|
+
export type Awaitable<T> = T | Promise<T>;
|
|
177
|
+
export type ExposeConfig = 'all' | 'none' | {
|
|
178
|
+
include: string[];
|
|
179
|
+
} | {
|
|
180
|
+
exclude: string[];
|
|
181
|
+
};
|
|
182
|
+
export declare class LinkLabError extends Error {
|
|
183
|
+
code: string;
|
|
184
|
+
details?: any | undefined;
|
|
185
|
+
constructor(message: string, code: string, details?: any | undefined);
|
|
186
|
+
}
|
|
187
|
+
export declare class ProviderError extends LinkLabError {
|
|
188
|
+
constructor(message: string, details?: any);
|
|
189
|
+
}
|
|
190
|
+
export interface TechProperty {
|
|
191
|
+
name: string;
|
|
192
|
+
type: string;
|
|
193
|
+
isPK: boolean;
|
|
194
|
+
isFK: boolean;
|
|
195
|
+
references?: {
|
|
196
|
+
table: string;
|
|
197
|
+
column: string;
|
|
198
|
+
};
|
|
199
|
+
isIndexed: boolean;
|
|
200
|
+
}
|
|
201
|
+
export interface TechEntity {
|
|
202
|
+
name: string;
|
|
203
|
+
properties: TechProperty[];
|
|
204
|
+
rowCount: number;
|
|
205
|
+
}
|
|
206
|
+
export interface TechnicalSchema {
|
|
207
|
+
source: {
|
|
208
|
+
type: string;
|
|
209
|
+
name: string;
|
|
210
|
+
generatedAt: string;
|
|
211
|
+
};
|
|
212
|
+
entities: TechEntity[];
|
|
213
|
+
}
|
|
214
|
+
export interface AnalysisAdvice {
|
|
215
|
+
type: 'PERFORMANCE' | 'STRUCTURE' | 'VIRTUAL_RELATION';
|
|
216
|
+
level: 'INFO' | 'WARNING' | 'CRITICAL';
|
|
217
|
+
message: string;
|
|
218
|
+
target: string;
|
|
219
|
+
action?: string;
|
|
220
|
+
}
|
|
221
|
+
export interface ImplicitRelation {
|
|
222
|
+
fromTable: string;
|
|
223
|
+
column: string;
|
|
224
|
+
guessedTable: string;
|
|
225
|
+
}
|
|
226
|
+
export interface AnalyzedSchema extends TechnicalSchema {
|
|
227
|
+
advices: AnalysisAdvice[];
|
|
228
|
+
weights: Record<string, number>;
|
|
229
|
+
implicitRelations: ImplicitRelation[];
|
|
230
|
+
}
|
|
231
|
+
export interface Dictionary {
|
|
232
|
+
tables: Table[];
|
|
233
|
+
relations: Relation[];
|
|
234
|
+
}
|
|
235
|
+
export interface Table {
|
|
236
|
+
name: string;
|
|
237
|
+
columns: string[];
|
|
238
|
+
rowCount: number;
|
|
239
|
+
}
|
|
240
|
+
export interface Relation {
|
|
241
|
+
from: string;
|
|
242
|
+
to: string;
|
|
243
|
+
via: string;
|
|
244
|
+
type: 'physical' | 'physical_reverse' | 'semantic_view' | 'virtual';
|
|
245
|
+
weight: number;
|
|
246
|
+
label: string;
|
|
247
|
+
condition?: {
|
|
248
|
+
[column: string]: any;
|
|
249
|
+
};
|
|
250
|
+
metadataField?: string;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Schema definitions for physical data discovery
|
|
254
|
+
*/
|
|
255
|
+
export interface ColumnSchema {
|
|
256
|
+
name: string;
|
|
257
|
+
type: 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array';
|
|
258
|
+
isNullable?: boolean;
|
|
259
|
+
isPrimaryKey?: boolean;
|
|
260
|
+
isForeignKey?: boolean;
|
|
261
|
+
references?: {
|
|
262
|
+
table: string;
|
|
263
|
+
column: string;
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
export interface TableSchema {
|
|
267
|
+
name: string;
|
|
268
|
+
columns: ColumnSchema[];
|
|
269
|
+
rowCount?: number;
|
|
270
|
+
fileSize?: number;
|
|
271
|
+
filePath?: string;
|
|
272
|
+
}
|
|
273
|
+
export interface DatabaseSchema {
|
|
274
|
+
tables: TableSchema[];
|
|
275
|
+
relationships: SchemaRelationship[];
|
|
276
|
+
}
|
|
277
|
+
export interface SchemaRelationship {
|
|
278
|
+
fromTable: string;
|
|
279
|
+
fromColumn: string;
|
|
280
|
+
toTable: string;
|
|
281
|
+
toColumn: string;
|
|
282
|
+
type: 'one-to-one' | 'one-to-many' | 'many-to-many';
|
|
283
|
+
}
|
|
284
|
+
export type EngineMode = 'PATHFIND' | 'NAVIGATE' | 'SCHEDULE';
|
|
285
|
+
/**
|
|
286
|
+
* Frame : unité de navigation sur la stack.
|
|
287
|
+
* Représente un pointeur sémantique vers une entité,
|
|
288
|
+
* avec son état de résolution.
|
|
289
|
+
*/
|
|
290
|
+
export interface Frame {
|
|
291
|
+
entity: string;
|
|
292
|
+
id?: any;
|
|
293
|
+
state?: 'RESOLVED' | 'UNRESOLVED' | 'DEFERRED';
|
|
294
|
+
purpose?: string;
|
|
295
|
+
intent?: Record<string, any>;
|
|
296
|
+
data?: any;
|
|
297
|
+
resolvedBy?: {
|
|
298
|
+
relation: string;
|
|
299
|
+
via: string;
|
|
300
|
+
filters?: FrameFilter[];
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
export interface FrameFilter {
|
|
304
|
+
field: string;
|
|
305
|
+
operator: 'equals' | 'contains' | 'gt' | 'lt' | 'exists';
|
|
306
|
+
value: any;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* PathQuery : paramètres pour le mode PATHFIND
|
|
310
|
+
*/
|
|
311
|
+
export interface PathQuery {
|
|
312
|
+
from: string;
|
|
313
|
+
to: string;
|
|
314
|
+
maxPaths?: number;
|
|
315
|
+
minHops?: number;
|
|
316
|
+
maxHops?: number;
|
|
317
|
+
transferPenalty?: number;
|
|
318
|
+
via?: string[];
|
|
319
|
+
preferences?: {
|
|
320
|
+
minimizeTransfers?: boolean;
|
|
321
|
+
avoidEdges?: string[];
|
|
322
|
+
[key: string]: any;
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* ScheduleAction : action pour le mode SCHEDULE.
|
|
327
|
+
* Différenciée de ActionDefinition (infrastructure) pour éviter
|
|
328
|
+
* tout conflit avec le registre d'actions techniques de V3.
|
|
329
|
+
*/
|
|
330
|
+
export interface ScheduleAction {
|
|
331
|
+
name: string;
|
|
332
|
+
weight: number;
|
|
333
|
+
when?: (stack: Frame[]) => boolean;
|
|
334
|
+
execute: (stack: Frame[], graph: Graph) => Promise<Frame[]>;
|
|
335
|
+
cooldown?: number;
|
|
336
|
+
maxExecutions?: number;
|
|
337
|
+
terminal?: boolean;
|
|
338
|
+
onUse?: (stack: Frame[], result: NavigationResult) => void;
|
|
339
|
+
}
|
|
340
|
+
export interface ActionState {
|
|
341
|
+
cooldownUntil: number;
|
|
342
|
+
executionCount: number;
|
|
343
|
+
executed?: boolean;
|
|
344
|
+
lastResult?: NavigationResult;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Config du NavigationEngine
|
|
348
|
+
*/
|
|
349
|
+
export interface NavigationEngineConfig {
|
|
350
|
+
mode: EngineMode;
|
|
351
|
+
graph: Graph;
|
|
352
|
+
trail?: import('../navigation/Trail.js').Trail;
|
|
353
|
+
initialStack?: Frame[];
|
|
354
|
+
actions?: ScheduleAction[];
|
|
355
|
+
pathQuery?: PathQuery;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Résultat d'un step d'exécution
|
|
359
|
+
*/
|
|
360
|
+
export interface EngineStepResult {
|
|
361
|
+
time: number;
|
|
362
|
+
mode: EngineMode;
|
|
363
|
+
phase?: 'RESOLVE' | 'EXECUTE' | 'COMPLETE';
|
|
364
|
+
selectedAction?: string;
|
|
365
|
+
resolvedCount?: number;
|
|
366
|
+
unresolvedCount?: number;
|
|
367
|
+
path?: NavigationPath;
|
|
368
|
+
result?: NavigationResult;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Chemin trouvé par PATHFIND — riche en métadonnées
|
|
372
|
+
* pour les formatters (ligne, direction, correspondance)
|
|
373
|
+
*/
|
|
374
|
+
export interface NavigationPath {
|
|
375
|
+
nodes: string[];
|
|
376
|
+
edges: GraphEdge[];
|
|
377
|
+
totalWeight: number;
|
|
378
|
+
}
|
|
379
|
+
export interface NavigationResult {
|
|
380
|
+
type: 'SUCCESS' | 'FAIL' | 'DEFER';
|
|
381
|
+
reason?: string;
|
|
382
|
+
data?: any;
|
|
383
|
+
}
|
|
384
|
+
export interface CacheStats {
|
|
385
|
+
entries: number;
|
|
386
|
+
size: number;
|
|
387
|
+
sizeFormatted: string;
|
|
388
|
+
maxSize: number;
|
|
389
|
+
usage: string;
|
|
390
|
+
hits: number;
|
|
391
|
+
misses: number;
|
|
392
|
+
hitRate: string;
|
|
393
|
+
}
|
|
394
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkLab Core Types
|
|
3
|
+
* * Base type definitions for the entire system
|
|
4
|
+
*/
|
|
5
|
+
export class LinkLabError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
details;
|
|
8
|
+
constructor(message, code, details) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.details = details;
|
|
12
|
+
this.name = 'LinkLabError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class ProviderError extends LinkLabError {
|
|
16
|
+
constructor(message, details) {
|
|
17
|
+
super(message, 'PROVIDER_ERROR', details);
|
|
18
|
+
this.name = 'ProviderError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgPH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG5B;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC7C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF"}
|