@noyrax/5d-database-plugin 0.1.8 → 0.1.11-beta.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/MCP_SERVER_SETUP.md +14 -0
- package/README.md +49 -3
- package/SETUP_NEW_PROJECT.md +245 -14
- package/out/api/adr-api.d.ts +15 -2
- package/out/api/adr-api.d.ts.map +1 -1
- package/out/api/adr-api.js +98 -4
- package/out/api/adr-api.js.map +1 -1
- package/out/api/index.d.ts +1 -0
- package/out/api/index.d.ts.map +1 -1
- package/out/api/index.js +3 -1
- package/out/api/index.js.map +1 -1
- package/out/api/ingestion-api.d.ts +42 -0
- package/out/api/ingestion-api.d.ts.map +1 -0
- package/out/api/ingestion-api.js +148 -0
- package/out/api/ingestion-api.js.map +1 -0
- package/out/api/module-api.d.ts +11 -1
- package/out/api/module-api.d.ts.map +1 -1
- package/out/api/module-api.js +54 -2
- package/out/api/module-api.js.map +1 -1
- package/out/cli/ingest-cli.js +43 -19
- package/out/cli/ingest-cli.js.map +1 -1
- package/out/cli/merge-workspaces-cli.d.ts +3 -0
- package/out/cli/merge-workspaces-cli.d.ts.map +1 -0
- package/out/cli/merge-workspaces-cli.js +199 -0
- package/out/cli/merge-workspaces-cli.js.map +1 -0
- package/out/cli/tool-cli.js +59 -4
- package/out/cli/tool-cli.js.map +1 -1
- package/out/core/chromadb-vector-database.d.ts.map +1 -1
- package/out/core/chromadb-vector-database.js +6 -2
- package/out/core/chromadb-vector-database.js.map +1 -1
- package/out/core/migration-manager.d.ts +42 -2
- package/out/core/migration-manager.d.ts.map +1 -1
- package/out/core/migration-manager.js +218 -11
- package/out/core/migration-manager.js.map +1 -1
- package/out/core/multi-db-manager.d.ts +10 -0
- package/out/core/multi-db-manager.d.ts.map +1 -1
- package/out/core/multi-db-manager.js +51 -0
- package/out/core/multi-db-manager.js.map +1 -1
- package/out/ingestors/adr-ingestor.d.ts +7 -0
- package/out/ingestors/adr-ingestor.d.ts.map +1 -1
- package/out/ingestors/adr-ingestor.js +41 -9
- package/out/ingestors/adr-ingestor.js.map +1 -1
- package/out/mcp/server.d.ts +3 -0
- package/out/mcp/server.d.ts.map +1 -1
- package/out/mcp/server.js +106 -2
- package/out/mcp/server.js.map +1 -1
- package/out/mcp/tools/adr-generator.d.ts +123 -0
- package/out/mcp/tools/adr-generator.d.ts.map +1 -0
- package/out/mcp/tools/adr-generator.js +1113 -0
- package/out/mcp/tools/adr-generator.js.map +1 -0
- package/out/mcp/tools/gap-analysis.d.ts +6 -2
- package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
- package/out/mcp/tools/gap-analysis.js +32 -5
- package/out/mcp/tools/gap-analysis.js.map +1 -1
- package/out/repositories/module-repository.d.ts +5 -0
- package/out/repositories/module-repository.d.ts.map +1 -1
- package/out/repositories/module-repository.js +24 -0
- package/out/repositories/module-repository.js.map +1 -1
- package/out/services/adr-context-builder.d.ts +70 -0
- package/out/services/adr-context-builder.d.ts.map +1 -0
- package/out/services/adr-context-builder.js +141 -0
- package/out/services/adr-context-builder.js.map +1 -0
- package/out/services/adr-pattern-analyzer.d.ts +75 -0
- package/out/services/adr-pattern-analyzer.d.ts.map +1 -0
- package/out/services/adr-pattern-analyzer.js +339 -0
- package/out/services/adr-pattern-analyzer.js.map +1 -0
- package/out/services/adr-reasoning-service.d.ts +63 -0
- package/out/services/adr-reasoning-service.d.ts.map +1 -0
- package/out/services/adr-reasoning-service.js +760 -0
- package/out/services/adr-reasoning-service.js.map +1 -0
- package/out/services/navigation-builder.d.ts.map +1 -1
- package/out/services/navigation-builder.js +70 -11
- package/out/services/navigation-builder.js.map +1 -1
- package/out/services/noyrax-integration-service.d.ts +51 -0
- package/out/services/noyrax-integration-service.d.ts.map +1 -0
- package/out/services/noyrax-integration-service.js +215 -0
- package/out/services/noyrax-integration-service.js.map +1 -0
- package/out/services/semantic-pattern-matcher.d.ts +61 -0
- package/out/services/semantic-pattern-matcher.d.ts.map +1 -0
- package/out/services/semantic-pattern-matcher.js +183 -0
- package/out/services/semantic-pattern-matcher.js.map +1 -0
- package/out/services/workflow-orchestrator.d.ts +63 -0
- package/out/services/workflow-orchestrator.d.ts.map +1 -0
- package/out/services/workflow-orchestrator.js +111 -0
- package/out/services/workflow-orchestrator.js.map +1 -0
- package/out/ui/commands.d.ts.map +1 -1
- package/out/ui/commands.js +112 -1
- package/out/ui/commands.js.map +1 -1
- package/out/ui/database-explorer.d.ts.map +1 -1
- package/out/ui/database-explorer.js +47 -1
- package/out/ui/database-explorer.js.map +1 -1
- package/package.json +22 -4
package/out/cli/tool-cli.js
CHANGED
|
@@ -46,6 +46,7 @@ const learning_path_1 = require("../mcp/tools/learning-path");
|
|
|
46
46
|
const cross_analysis_1 = require("../mcp/tools/cross-analysis");
|
|
47
47
|
const gap_analysis_1 = require("../mcp/tools/gap-analysis");
|
|
48
48
|
const architecture_mining_1 = require("../mcp/tools/architecture-mining");
|
|
49
|
+
const adr_generator_1 = require("../mcp/tools/adr-generator");
|
|
49
50
|
const docs_path_resolver_1 = require("../core/docs-path-resolver");
|
|
50
51
|
/**
|
|
51
52
|
* Loads .env file from workspace root or parent directories.
|
|
@@ -106,8 +107,9 @@ async function main() {
|
|
|
106
107
|
console.error(' system_explanation - Get system overview');
|
|
107
108
|
console.error(' learning_path <topic> - Generate learning path');
|
|
108
109
|
console.error(' cross_analysis <filePath> - Cross-dimension analysis');
|
|
109
|
-
console.error(' gap_analysis [--min-deps N] [--limit N] - Find documentation gaps');
|
|
110
|
+
console.error(' gap_analysis [--min-deps N] [--limit N] [--auto-generate] - Find documentation gaps (--auto-generate: automatically generate ADRs)');
|
|
110
111
|
console.error(' architecture_mining [filePath] - Mine architectural decisions from code');
|
|
112
|
+
console.error(' adr_generator [--min-deps N] [--limit N] [--dry-run] [--use-llm] [--llm-model MODEL] - Reconstruct ADRs from 5D dimensions (--use-llm: use LLM for "Why" reconstruction)');
|
|
111
113
|
process.exit(1);
|
|
112
114
|
}
|
|
113
115
|
// Check if first arg is a tool name (no path separators) or a workspace root
|
|
@@ -193,6 +195,7 @@ async function main() {
|
|
|
193
195
|
case 'gap_analysis': {
|
|
194
196
|
let minDeps = 5;
|
|
195
197
|
let limit = 50;
|
|
198
|
+
let autoGenerate = false;
|
|
196
199
|
// Parse optional arguments
|
|
197
200
|
for (let i = 0; i < toolArgs.length; i++) {
|
|
198
201
|
if (toolArgs[i] === '--min-deps' && toolArgs[i + 1]) {
|
|
@@ -211,12 +214,16 @@ async function main() {
|
|
|
211
214
|
}
|
|
212
215
|
i++;
|
|
213
216
|
}
|
|
217
|
+
else if (toolArgs[i] === '--auto-generate') {
|
|
218
|
+
autoGenerate = true;
|
|
219
|
+
}
|
|
214
220
|
}
|
|
215
|
-
const gapAnalysisTool = new gap_analysis_1.GapAnalysisTool(dbManager, idMapper);
|
|
221
|
+
const gapAnalysisTool = new gap_analysis_1.GapAnalysisTool(dbManager, idMapper, workspaceRoot);
|
|
216
222
|
const result = await gapAnalysisTool.execute({
|
|
217
223
|
minDependencies: minDeps,
|
|
218
224
|
pluginId,
|
|
219
|
-
limit
|
|
225
|
+
limit,
|
|
226
|
+
autoGenerateAdrs: autoGenerate
|
|
220
227
|
});
|
|
221
228
|
console.log(result);
|
|
222
229
|
break;
|
|
@@ -231,9 +238,57 @@ async function main() {
|
|
|
231
238
|
console.log(result);
|
|
232
239
|
break;
|
|
233
240
|
}
|
|
241
|
+
case 'adr_generator': {
|
|
242
|
+
let minDeps = 5;
|
|
243
|
+
let limit = 10;
|
|
244
|
+
let dryRun = false;
|
|
245
|
+
let useLLM = false;
|
|
246
|
+
let llmModel = undefined;
|
|
247
|
+
// Parse optional arguments
|
|
248
|
+
for (let i = 0; i < toolArgs.length; i++) {
|
|
249
|
+
if (toolArgs[i] === '--min-deps' && toolArgs[i + 1]) {
|
|
250
|
+
minDeps = parseInt(toolArgs[i + 1], 10);
|
|
251
|
+
if (isNaN(minDeps)) {
|
|
252
|
+
console.error('Error: --min-deps must be a number');
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
i++;
|
|
256
|
+
}
|
|
257
|
+
else if (toolArgs[i] === '--limit' && toolArgs[i + 1]) {
|
|
258
|
+
limit = parseInt(toolArgs[i + 1], 10);
|
|
259
|
+
if (isNaN(limit)) {
|
|
260
|
+
console.error('Error: --limit must be a number');
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
i++;
|
|
264
|
+
}
|
|
265
|
+
else if (toolArgs[i] === '--dry-run') {
|
|
266
|
+
dryRun = true;
|
|
267
|
+
}
|
|
268
|
+
else if (toolArgs[i] === '--use-llm') {
|
|
269
|
+
useLLM = true;
|
|
270
|
+
}
|
|
271
|
+
else if (toolArgs[i] === '--llm-model' && toolArgs[i + 1]) {
|
|
272
|
+
llmModel = toolArgs[i + 1];
|
|
273
|
+
useLLM = true; // Implicitly enable LLM if model is specified
|
|
274
|
+
i++;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
const adrGeneratorTool = new adr_generator_1.AdrGeneratorTool(dbManager, idMapper, workspaceRoot);
|
|
278
|
+
const result = await adrGeneratorTool.execute({
|
|
279
|
+
pluginId,
|
|
280
|
+
minDependencies: minDeps,
|
|
281
|
+
limit,
|
|
282
|
+
dryRun,
|
|
283
|
+
useLLM,
|
|
284
|
+
llmModel
|
|
285
|
+
});
|
|
286
|
+
console.log(result);
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
234
289
|
default:
|
|
235
290
|
console.error(`Unknown tool: ${toolName}`);
|
|
236
|
-
console.error('Use "bootstrap", "semantic_discovery", "system_explanation", "learning_path", "cross_analysis", "gap_analysis", or "
|
|
291
|
+
console.error('Use "bootstrap", "semantic_discovery", "system_explanation", "learning_path", "cross_analysis", "gap_analysis", "architecture_mining", or "adr_generator"');
|
|
237
292
|
process.exit(1);
|
|
238
293
|
}
|
|
239
294
|
}
|
package/out/cli/tool-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-cli.js","sourceRoot":"","sources":["../../src/cli/tool-cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAA6B;AAC7B,uCAAyB;AACzB,mCAAgC;AAChC,+DAA0D;AAC1D,iDAA6C;AAC7C,sDAA0D;AAC1D,wEAA2E;AAC3E,wEAA2E;AAC3E,8DAAiE;AACjE,gEAAgE;AAChE,4DAA4D;AAC5D,0EAA0E;AAC1E,mEAA8D;AAE9D;;GAEG;AACH,SAAS,WAAW,CAAC,aAAqB;IACtC,IAAI,WAAW,GAAG,aAAa,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM;QACV,CAAC;QACD,WAAW,GAAG,UAAU,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,aAAqB;IAChD,MAAM,QAAQ,GAAG,qCAAgB,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACpG,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,6CAA6C;IAC7C,IAAI,aAAqB,CAAC;IAC1B,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAkB,CAAC;IAEvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-cli.js","sourceRoot":"","sources":["../../src/cli/tool-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chromadb-vector-database.d.ts","sourceRoot":"","sources":["../../src/core/chromadb-vector-database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"chromadb-vector-database.d.ts","sourceRoot":"","sources":["../../src/core/chromadb-vector-database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;;;;GAMG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IACzD,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM;IAKvD;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+DjC;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCnG;;OAEG;IACG,MAAM,CACR,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,EACvC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACvC,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuE3E;;OAEG;IACG,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBpE;;OAEG;YACW,uBAAuB;IAgBrC;;OAEG;YACW,gBAAgB;CAejC"}
|
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.ChromaDbVectorDatabase = void 0;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
+
const default_embed_1 = require("@chroma-core/default-embed");
|
|
38
39
|
/**
|
|
39
40
|
* ChromaDB-based vector database implementation for Windows.
|
|
40
41
|
* Uses ChromaDB as an external vector database via HTTP API.
|
|
@@ -98,14 +99,17 @@ class ChromaDbVectorDatabase {
|
|
|
98
99
|
this.available = false;
|
|
99
100
|
return;
|
|
100
101
|
}
|
|
101
|
-
// Get or create collection
|
|
102
|
+
// Get or create collection with DefaultEmbeddingFunction
|
|
103
|
+
// Note: We still provide embeddings directly via upsertEmbedding, but ChromaDB requires
|
|
104
|
+
// an embedding function for collection initialization. The DefaultEmbeddingFunction is used
|
|
105
|
+
// for collection structure, but we override it by providing embeddings directly.
|
|
102
106
|
try {
|
|
103
107
|
this.collection = await this.chromaClient.getOrCreateCollection({
|
|
104
108
|
name: this.collectionName,
|
|
109
|
+
embeddingFunction: new default_embed_1.DefaultEmbeddingFunction(),
|
|
105
110
|
metadata: {
|
|
106
111
|
description: 'Embeddings for 5D Database Plugin V-Dimension'
|
|
107
112
|
}
|
|
108
|
-
// Note: We don't specify an embedding function since we provide embeddings directly
|
|
109
113
|
});
|
|
110
114
|
this.available = true;
|
|
111
115
|
console.log('[ChromaDbVectorDatabase] ChromaDB initialized successfully.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chromadb-vector-database.js","sourceRoot":"","sources":["../../src/core/chromadb-vector-database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"chromadb-vector-database.js","sourceRoot":"","sources":["../../src/core/chromadb-vector-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,19 @@ export declare class MigrationManager {
|
|
|
14
14
|
*/
|
|
15
15
|
constructor(dbManager: MultiDbManager, pluginRoot: string);
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Checks if the migrations table has the correct structure (composite PRIMARY KEY).
|
|
18
18
|
*
|
|
19
19
|
* @param db The SQLite database instance
|
|
20
|
-
* @returns Promise that resolves
|
|
20
|
+
* @returns Promise that resolves to true if structure is correct, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
private checkMigrationsTableStructure;
|
|
23
|
+
/**
|
|
24
|
+
* Ensures the migrations table exists in a database with the correct structure.
|
|
25
|
+
* If the table exists with the old structure (version only as PRIMARY KEY),
|
|
26
|
+
* it will be dropped and recreated with the new structure.
|
|
27
|
+
*
|
|
28
|
+
* @param db The SQLite database instance
|
|
29
|
+
* @returns Promise that resolves when the table is created/updated
|
|
21
30
|
*/
|
|
22
31
|
private ensureMigrationsTable;
|
|
23
32
|
/**
|
|
@@ -27,6 +36,22 @@ export declare class MigrationManager {
|
|
|
27
36
|
* @returns Promise that resolves to an array of migration records
|
|
28
37
|
*/
|
|
29
38
|
private getAppliedMigrations;
|
|
39
|
+
/**
|
|
40
|
+
* Checks if a migration version already exists in the database.
|
|
41
|
+
*
|
|
42
|
+
* @param db The SQLite database instance
|
|
43
|
+
* @param version The migration version number
|
|
44
|
+
* @returns Promise that resolves to true if the migration exists, false otherwise
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* Checks if a specific migration (version + name) already exists in the database.
|
|
48
|
+
*
|
|
49
|
+
* @param db The SQLite database instance
|
|
50
|
+
* @param version The migration version number
|
|
51
|
+
* @param name The migration name
|
|
52
|
+
* @returns Promise that resolves to true if the migration exists, false otherwise
|
|
53
|
+
*/
|
|
54
|
+
private checkMigrationExists;
|
|
30
55
|
/**
|
|
31
56
|
* Reads a migration file from disk.
|
|
32
57
|
*
|
|
@@ -58,6 +83,21 @@ export declare class MigrationManager {
|
|
|
58
83
|
* @returns The prefix (e.g., "001" for X, "002" for Y, etc.)
|
|
59
84
|
*/
|
|
60
85
|
private getDimensionPrefix;
|
|
86
|
+
/**
|
|
87
|
+
* Gets the required tables for a dimension.
|
|
88
|
+
*
|
|
89
|
+
* @param dimension The dimension
|
|
90
|
+
* @returns Array of required table names
|
|
91
|
+
*/
|
|
92
|
+
private getRequiredTables;
|
|
93
|
+
/**
|
|
94
|
+
* Checks if all required tables exist in the database.
|
|
95
|
+
*
|
|
96
|
+
* @param db The SQLite database instance
|
|
97
|
+
* @param dimension The dimension to check
|
|
98
|
+
* @returns Promise that resolves to true if all tables exist, false otherwise
|
|
99
|
+
*/
|
|
100
|
+
private checkTablesExist;
|
|
61
101
|
/**
|
|
62
102
|
* Runs all pending migrations for a dimension.
|
|
63
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-manager.d.ts","sourceRoot":"","sources":["../../src/core/migration-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAW/D;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;;OAKG;gBACS,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM;IAKzD;;;;;OAKG;YACW,qBAAqB;
|
|
1
|
+
{"version":3,"file":"migration-manager.d.ts","sourceRoot":"","sources":["../../src/core/migration-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAW/D;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;;OAKG;gBACS,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM;IAKzD;;;;;OAKG;YACW,6BAA6B;IAkD3C;;;;;;;OAOG;YACW,qBAAqB;IAoDnC;;;;;OAKG;YACW,oBAAoB;IAclC;;;;;;OAMG;IACH;;;;;;;OAOG;YACW,oBAAoB;IAclC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;OAQG;YACW,cAAc;IAiC5B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAgBrC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;OAMG;YACW,gBAAgB;IAuB9B;;;;;OAKG;IACU,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2EzD;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAM3C"}
|
|
@@ -52,18 +52,96 @@ class MigrationManager {
|
|
|
52
52
|
this.migrationsDirectory = path.join(pluginRoot, 'schemas', 'sqlite');
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* Checks if the migrations table has the correct structure (composite PRIMARY KEY).
|
|
56
56
|
*
|
|
57
57
|
* @param db The SQLite database instance
|
|
58
|
-
* @returns Promise that resolves
|
|
58
|
+
* @returns Promise that resolves to true if structure is correct, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
async checkMigrationsTableStructure(db) {
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
// Check if table exists
|
|
63
|
+
db.get("SELECT name FROM sqlite_master WHERE type='table' AND name='migrations'", (err, row) => {
|
|
64
|
+
if (err) {
|
|
65
|
+
reject(err);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (!row) {
|
|
69
|
+
// Table doesn't exist - structure is "correct" (will be created correctly)
|
|
70
|
+
resolve(true);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Table exists - check structure by trying to insert a test record
|
|
74
|
+
// If it fails with UNIQUE constraint on version only, structure is old
|
|
75
|
+
db.run('INSERT INTO migrations (version, name) VALUES (?, ?)', [-999999, '__structure_check__'], (insertErr) => {
|
|
76
|
+
if (insertErr) {
|
|
77
|
+
// Check if it's a UNIQUE constraint error on version only
|
|
78
|
+
if (insertErr.message.includes('UNIQUE constraint failed: migrations.version')) {
|
|
79
|
+
// Old structure (version only as PRIMARY KEY)
|
|
80
|
+
resolve(false);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Other error - assume structure is correct
|
|
84
|
+
resolve(true);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Insert succeeded - delete test record and check structure
|
|
89
|
+
db.run('DELETE FROM migrations WHERE version = ? AND name = ?', [-999999, '__structure_check__'], () => {
|
|
90
|
+
// If we got here, structure is correct (composite PRIMARY KEY)
|
|
91
|
+
resolve(true);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Ensures the migrations table exists in a database with the correct structure.
|
|
100
|
+
* If the table exists with the old structure (version only as PRIMARY KEY),
|
|
101
|
+
* it will be dropped and recreated with the new structure.
|
|
102
|
+
*
|
|
103
|
+
* @param db The SQLite database instance
|
|
104
|
+
* @returns Promise that resolves when the table is created/updated
|
|
59
105
|
*/
|
|
60
106
|
async ensureMigrationsTable(db) {
|
|
107
|
+
// Check if table structure is correct
|
|
108
|
+
const structureCorrect = await this.checkMigrationsTableStructure(db);
|
|
109
|
+
if (!structureCorrect) {
|
|
110
|
+
// Table exists with old structure - drop and recreate
|
|
111
|
+
console.warn('[MigrationManager] Migrations table has old structure. Recreating with new structure...');
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
db.run('DROP TABLE IF EXISTS migrations', (dropErr) => {
|
|
114
|
+
if (dropErr) {
|
|
115
|
+
reject(dropErr);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// Create table with new structure
|
|
119
|
+
db.run(`
|
|
120
|
+
CREATE TABLE migrations (
|
|
121
|
+
version INTEGER NOT NULL,
|
|
122
|
+
name TEXT NOT NULL,
|
|
123
|
+
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
124
|
+
PRIMARY KEY (version, name)
|
|
125
|
+
)
|
|
126
|
+
`, (createErr) => {
|
|
127
|
+
if (createErr) {
|
|
128
|
+
reject(createErr);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
resolve();
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Table doesn't exist or has correct structure - create if not exists
|
|
61
138
|
return new Promise((resolve, reject) => {
|
|
62
139
|
db.run(`
|
|
63
140
|
CREATE TABLE IF NOT EXISTS migrations (
|
|
64
|
-
version INTEGER
|
|
141
|
+
version INTEGER NOT NULL,
|
|
65
142
|
name TEXT NOT NULL,
|
|
66
|
-
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
143
|
+
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
144
|
+
PRIMARY KEY (version, name)
|
|
67
145
|
)
|
|
68
146
|
`, (err) => {
|
|
69
147
|
if (err) {
|
|
@@ -94,6 +172,34 @@ class MigrationManager {
|
|
|
94
172
|
});
|
|
95
173
|
});
|
|
96
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Checks if a migration version already exists in the database.
|
|
177
|
+
*
|
|
178
|
+
* @param db The SQLite database instance
|
|
179
|
+
* @param version The migration version number
|
|
180
|
+
* @returns Promise that resolves to true if the migration exists, false otherwise
|
|
181
|
+
*/
|
|
182
|
+
/**
|
|
183
|
+
* Checks if a specific migration (version + name) already exists in the database.
|
|
184
|
+
*
|
|
185
|
+
* @param db The SQLite database instance
|
|
186
|
+
* @param version The migration version number
|
|
187
|
+
* @param name The migration name
|
|
188
|
+
* @returns Promise that resolves to true if the migration exists, false otherwise
|
|
189
|
+
*/
|
|
190
|
+
async checkMigrationExists(db, version, name) {
|
|
191
|
+
await this.ensureMigrationsTable(db);
|
|
192
|
+
return new Promise((resolve, reject) => {
|
|
193
|
+
db.get('SELECT COUNT(*) as count FROM migrations WHERE version = ? AND name = ?', [version, name], (err, row) => {
|
|
194
|
+
if (err) {
|
|
195
|
+
reject(err);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
resolve(row && row.count > 0);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
}
|
|
97
203
|
/**
|
|
98
204
|
* Reads a migration file from disk.
|
|
99
205
|
*
|
|
@@ -117,15 +223,26 @@ class MigrationManager {
|
|
|
117
223
|
* @returns Promise that resolves when the migration is applied
|
|
118
224
|
*/
|
|
119
225
|
async applyMigration(db, version, name, sql) {
|
|
226
|
+
// Ensure migrations table has correct structure
|
|
227
|
+
await this.ensureMigrationsTable(db);
|
|
120
228
|
return new Promise((resolve, reject) => {
|
|
121
229
|
db.exec(sql, (err) => {
|
|
122
230
|
if (err) {
|
|
123
231
|
reject(new Error(`Failed to apply migration ${version}_${name}: ${err.message}`));
|
|
124
232
|
}
|
|
125
233
|
else {
|
|
126
|
-
|
|
234
|
+
// Use INSERT OR IGNORE to handle race conditions
|
|
235
|
+
// If migration already exists, it will be silently ignored
|
|
236
|
+
db.run('INSERT OR IGNORE INTO migrations (version, name) VALUES (?, ?)', [version, name], (insertErr) => {
|
|
127
237
|
if (insertErr) {
|
|
128
|
-
|
|
238
|
+
// If it's a UNIQUE constraint error, migration already exists - that's OK
|
|
239
|
+
if (insertErr.message.includes('UNIQUE constraint')) {
|
|
240
|
+
console.log(`[MigrationManager] Migration ${version}_${name} already exists, skipping insert`);
|
|
241
|
+
resolve();
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
reject(insertErr);
|
|
245
|
+
}
|
|
129
246
|
}
|
|
130
247
|
else {
|
|
131
248
|
resolve();
|
|
@@ -171,6 +288,47 @@ class MigrationManager {
|
|
|
171
288
|
};
|
|
172
289
|
return prefixes[dimension];
|
|
173
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Gets the required tables for a dimension.
|
|
293
|
+
*
|
|
294
|
+
* @param dimension The dimension
|
|
295
|
+
* @returns Array of required table names
|
|
296
|
+
*/
|
|
297
|
+
getRequiredTables(dimension) {
|
|
298
|
+
const tables = {
|
|
299
|
+
X: ['modules', 'module_symbols', 'module_id_mapping'],
|
|
300
|
+
Y: ['symbols', 'symbol_dependencies', 'symbol_id_mapping'],
|
|
301
|
+
Z: ['dependencies', 'dependency_graph_cache', 'dependency_symbol_evidence', 'dependency_id_mapping'],
|
|
302
|
+
W: ['adrs', 'adr_file_mappings', 'adr_id_mapping'],
|
|
303
|
+
T: ['change_reports', 'symbol_changes', 'dependency_changes', 'change_id_mapping'],
|
|
304
|
+
V: ['embeddings', 'importance_scores', 'navigation_metadata', 'entry_points']
|
|
305
|
+
};
|
|
306
|
+
return tables[dimension] || [];
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Checks if all required tables exist in the database.
|
|
310
|
+
*
|
|
311
|
+
* @param db The SQLite database instance
|
|
312
|
+
* @param dimension The dimension to check
|
|
313
|
+
* @returns Promise that resolves to true if all tables exist, false otherwise
|
|
314
|
+
*/
|
|
315
|
+
async checkTablesExist(db, dimension) {
|
|
316
|
+
const requiredTables = this.getRequiredTables(dimension);
|
|
317
|
+
if (requiredTables.length === 0) {
|
|
318
|
+
return true; // No required tables for this dimension
|
|
319
|
+
}
|
|
320
|
+
return new Promise((resolve, reject) => {
|
|
321
|
+
db.all("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'", (err, rows) => {
|
|
322
|
+
if (err) {
|
|
323
|
+
reject(err);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
const existingTables = new Set(rows.map(row => row.name));
|
|
327
|
+
const allExist = requiredTables.every(table => existingTables.has(table));
|
|
328
|
+
resolve(allExist);
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
}
|
|
174
332
|
/**
|
|
175
333
|
* Runs all pending migrations for a dimension.
|
|
176
334
|
*
|
|
@@ -181,6 +339,15 @@ class MigrationManager {
|
|
|
181
339
|
const db = await this.dbManager.getDatabase(dimension);
|
|
182
340
|
const appliedMigrations = await this.getAppliedMigrations(db);
|
|
183
341
|
const appliedVersions = new Set(appliedMigrations.map(m => m.version));
|
|
342
|
+
// Check if tables exist - if migration version is applied but tables are missing,
|
|
343
|
+
// we need to re-run the migration
|
|
344
|
+
const tablesExist = await this.checkTablesExist(db, dimension);
|
|
345
|
+
if (!tablesExist && appliedVersions.size > 0) {
|
|
346
|
+
console.warn(`[MigrationManager] Tables missing for dimension ${dimension} despite applied migrations. Re-running migrations...`);
|
|
347
|
+
// Clear applied migrations to force re-application
|
|
348
|
+
// Note: We don't delete the migrations table, just re-apply all migrations
|
|
349
|
+
// This is safe because migrations use CREATE TABLE IF NOT EXISTS
|
|
350
|
+
}
|
|
184
351
|
const migrationFiles = this.getMigrationFilesForDimension(dimension);
|
|
185
352
|
for (const migrationFile of migrationFiles) {
|
|
186
353
|
const versionMatch = migrationFile.match(/^(\d+)_/);
|
|
@@ -188,12 +355,52 @@ class MigrationManager {
|
|
|
188
355
|
continue;
|
|
189
356
|
}
|
|
190
357
|
const version = parseInt(versionMatch[1], 10);
|
|
191
|
-
if (appliedVersions.has(version)) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
358
|
const name = migrationFile.replace(/^\d+_/, '').replace(/\.sql$/, '');
|
|
195
359
|
const sql = this.readMigrationFile(migrationFile);
|
|
196
|
-
|
|
360
|
+
// Check if this specific migration (version + name) already exists in database
|
|
361
|
+
const migrationExists = await this.checkMigrationExists(db, version, name);
|
|
362
|
+
// If tables don't exist, re-apply migration even if version is marked as applied
|
|
363
|
+
if (appliedVersions.has(version) && tablesExist) {
|
|
364
|
+
// Check if this specific migration was applied
|
|
365
|
+
const specificMigrationApplied = appliedMigrations.some(m => m.version === version && m.name === name);
|
|
366
|
+
if (specificMigrationApplied) {
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
// If this specific migration is already applied but tables are missing, we still need to apply the migration
|
|
371
|
+
// But we should not insert duplicate migration records
|
|
372
|
+
if (migrationExists && !tablesExist) {
|
|
373
|
+
// Re-apply migration without inserting migration record (it already exists)
|
|
374
|
+
console.log(`[MigrationManager] Re-applying migration ${version}_${name} for dimension ${dimension} (tables missing)`);
|
|
375
|
+
await new Promise((resolve, reject) => {
|
|
376
|
+
db.exec(sql, (err) => {
|
|
377
|
+
if (err) {
|
|
378
|
+
reject(new Error(`Failed to re-apply migration ${version}_${name}: ${err.message}`));
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
resolve();
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
else if (migrationExists && tablesExist) {
|
|
387
|
+
// This specific migration exists and tables exist - skip
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
// Normal migration application (this specific migration doesn't exist in DB)
|
|
392
|
+
await this.applyMigration(db, version, name, sql);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// Verify tables exist after migration
|
|
396
|
+
const finalTablesExist = await this.checkTablesExist(db, dimension);
|
|
397
|
+
if (!finalTablesExist) {
|
|
398
|
+
const missingTables = this.getRequiredTables(dimension).filter(table => {
|
|
399
|
+
// We can't easily check which specific tables are missing without another query
|
|
400
|
+
// So we just log a warning
|
|
401
|
+
return true;
|
|
402
|
+
});
|
|
403
|
+
console.warn(`[MigrationManager] Warning: Some required tables may still be missing for dimension ${dimension} after migration`);
|
|
197
404
|
}
|
|
198
405
|
}
|
|
199
406
|
/**
|
|
@@ -202,7 +409,7 @@ class MigrationManager {
|
|
|
202
409
|
* @returns Promise that resolves when all migrations are applied
|
|
203
410
|
*/
|
|
204
411
|
async migrateAll() {
|
|
205
|
-
const dimensions = ['X', 'Y', 'Z', 'W', 'T'];
|
|
412
|
+
const dimensions = ['X', 'Y', 'Z', 'W', 'T', 'V'];
|
|
206
413
|
for (const dimension of dimensions) {
|
|
207
414
|
await this.migrate(dimension);
|
|
208
415
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-manager.js","sourceRoot":"","sources":["../../src/core/migration-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;AAC7B,uCAAyB;AAYzB;;;GAGG;AACH,MAAa,gBAAgB;IAIzB;;;;;OAKG;IACH,YAAY,SAAyB,EAAE,UAAkB;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,qBAAqB,CAAC,EAAoB;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,EAAE,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"migration-manager.js","sourceRoot":"","sources":["../../src/core/migration-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,12 @@ export declare class MultiDbManager {
|
|
|
32
32
|
* Ensures the database directory exists.
|
|
33
33
|
*/
|
|
34
34
|
private ensureDbDirectory;
|
|
35
|
+
/**
|
|
36
|
+
* Checks if existing databases have a different plugin ID (e.g., after workspace move).
|
|
37
|
+
* This is informational only and does not block operation.
|
|
38
|
+
* Note: This is a best-effort check and may not catch all cases.
|
|
39
|
+
*/
|
|
40
|
+
private checkPluginIdConsistency;
|
|
35
41
|
/**
|
|
36
42
|
* Gets the plugin ID for this workspace.
|
|
37
43
|
*/
|
|
@@ -40,6 +46,10 @@ export declare class MultiDbManager {
|
|
|
40
46
|
* Gets the database directory path.
|
|
41
47
|
*/
|
|
42
48
|
getDbDirectory(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the workspace root directory.
|
|
51
|
+
*/
|
|
52
|
+
getWorkspaceRoot(): string;
|
|
43
53
|
/**
|
|
44
54
|
* Opens a database connection for the specified dimension.
|
|
45
55
|
* If the database is already open, returns the existing connection.
|