@noyrax/5d-database-plugin 0.1.14-beta.6 → 0.1.14-beta.8
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/out/api/adr-api.d.ts +0 -6
- package/out/api/adr-api.d.ts.map +1 -1
- package/out/api/adr-api.js +2 -42
- package/out/api/adr-api.js.map +1 -1
- package/out/api/bootstrap-api.d.ts +1 -1
- package/out/api/bootstrap-api.d.ts.map +1 -1
- package/out/api/bootstrap-api.js +16 -3
- package/out/api/bootstrap-api.js.map +1 -1
- package/out/api/module-api.d.ts +0 -1
- package/out/api/module-api.d.ts.map +1 -1
- package/out/api/module-api.js +4 -38
- package/out/api/module-api.js.map +1 -1
- package/out/api/self-explanation-api.d.ts +7 -1
- package/out/api/self-explanation-api.d.ts.map +1 -1
- package/out/api/self-explanation-api.js +256 -48
- package/out/api/self-explanation-api.js.map +1 -1
- package/out/api/source-access-contract-api.d.ts.map +1 -1
- package/out/api/source-access-contract-api.js +42 -3
- package/out/api/source-access-contract-api.js.map +1 -1
- package/out/api/source-snippet-api.d.ts.map +1 -1
- package/out/api/source-snippet-api.js +3 -1
- package/out/api/source-snippet-api.js.map +1 -1
- package/out/cli/ingest-cli.js +44 -5
- package/out/cli/ingest-cli.js.map +1 -1
- package/out/core/migration-manager.d.ts.map +1 -1
- package/out/core/migration-manager.js +61 -32
- package/out/core/migration-manager.js.map +1 -1
- package/out/core/multi-db-manager.d.ts +26 -0
- package/out/core/multi-db-manager.d.ts.map +1 -1
- package/out/core/multi-db-manager.js +143 -2
- package/out/core/multi-db-manager.js.map +1 -1
- package/out/core/path-normalizer.d.ts +46 -0
- package/out/core/path-normalizer.d.ts.map +1 -0
- package/out/core/path-normalizer.js +152 -0
- package/out/core/path-normalizer.js.map +1 -0
- package/out/ingestors/adr-ingestor.d.ts.map +1 -1
- package/out/ingestors/adr-ingestor.js +7 -8
- package/out/ingestors/adr-ingestor.js.map +1 -1
- package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
- package/out/ingestors/symbol-ingestor.js +24 -8
- package/out/ingestors/symbol-ingestor.js.map +1 -1
- package/out/mcp/tools/gap-analysis.d.ts +3 -1
- package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
- package/out/mcp/tools/gap-analysis.js +26 -7
- package/out/mcp/tools/gap-analysis.js.map +1 -1
- package/out/mcp/tools/source-access-contract.d.ts.map +1 -1
- package/out/mcp/tools/source-access-contract.js +3 -1
- package/out/mcp/tools/source-access-contract.js.map +1 -1
- package/out/models/evidence.d.ts +1 -1
- package/out/models/evidence.d.ts.map +1 -1
- package/out/models/evidence.js.map +1 -1
- package/out/models/reason-codes.d.ts +2 -0
- package/out/models/reason-codes.d.ts.map +1 -1
- package/out/models/reason-codes.js +3 -0
- package/out/models/reason-codes.js.map +1 -1
- package/out/repositories/symbol-repository.js +1 -1
- package/out/repositories/symbol-repository.js.map +1 -1
- package/out/services/cross-dimension-linker.d.ts +0 -5
- package/out/services/cross-dimension-linker.d.ts.map +1 -1
- package/out/services/cross-dimension-linker.js +2 -35
- package/out/services/cross-dimension-linker.js.map +1 -1
- package/package.json +196 -195
- package/schemas/sqlite/001_add_source_code_spans_modules.sql +7 -0
- package/schemas/sqlite/001_z_add_source_code_spans_modules.sql +13 -0
- package/schemas/sqlite/{007_add_source_code_spans.sql → 002_add_source_code_spans_symbols.sql} +1 -5
- package/schemas/sqlite/002_z_add_source_code_spans_symbols.sql +21 -0
- package/schemas/sqlite/{008_add_source_access_config.sql → 006_add_source_access_config.sql} +1 -1
package/out/api/adr-api.d.ts
CHANGED
|
@@ -25,11 +25,5 @@ export declare class AdrApi {
|
|
|
25
25
|
* Supports various path formats (similar to ModuleApi.getModuleByPath).
|
|
26
26
|
*/
|
|
27
27
|
getAdrsByFilePath(filePath: string, pluginId: string): Promise<Adr[]>;
|
|
28
|
-
/**
|
|
29
|
-
* Normalizes a file path to generate possible variants for flexible matching.
|
|
30
|
-
* Returns an array of path variants in order of preference.
|
|
31
|
-
* (Same logic as ModuleApi.normalizeFilePath)
|
|
32
|
-
*/
|
|
33
|
-
private normalizeFilePath;
|
|
34
28
|
}
|
|
35
29
|
//# sourceMappingURL=adr-api.d.ts.map
|
package/out/api/adr-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-api.d.ts","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"adr-api.d.ts","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGpC;;GAEG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;;OAGG;IACU,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAwBrF;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;OAEG;IACU,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAMzD;;;OAGG;IACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAwBrF"}
|
package/out/api/adr-api.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AdrApi = void 0;
|
|
4
4
|
const adr_repository_1 = require("../repositories/adr-repository");
|
|
5
|
+
const path_normalizer_1 = require("../core/path-normalizer");
|
|
5
6
|
/**
|
|
6
7
|
* API for W-Dimension: ADRs
|
|
7
8
|
*/
|
|
@@ -91,7 +92,7 @@ class AdrApi {
|
|
|
91
92
|
return adrs;
|
|
92
93
|
}
|
|
93
94
|
// Generate normalized path variants
|
|
94
|
-
const pathVariants =
|
|
95
|
+
const pathVariants = path_normalizer_1.PathNormalizer.generateLookupVariants(filePath);
|
|
95
96
|
// Try each variant
|
|
96
97
|
for (const variant of pathVariants) {
|
|
97
98
|
adrs = await repository.findByFilePath(variant, pluginId);
|
|
@@ -101,47 +102,6 @@ class AdrApi {
|
|
|
101
102
|
}
|
|
102
103
|
return [];
|
|
103
104
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Normalizes a file path to generate possible variants for flexible matching.
|
|
106
|
-
* Returns an array of path variants in order of preference.
|
|
107
|
-
* (Same logic as ModuleApi.normalizeFilePath)
|
|
108
|
-
*/
|
|
109
|
-
normalizeFilePath(filePath) {
|
|
110
|
-
const variants = [];
|
|
111
|
-
// Normalize separators to forward slashes
|
|
112
|
-
let normalized = filePath.replace(/\\/g, '/');
|
|
113
|
-
variants.push(normalized);
|
|
114
|
-
// Remove leading slashes
|
|
115
|
-
const withoutLeadingSlash = normalized.replace(/^\/+/, '');
|
|
116
|
-
if (withoutLeadingSlash !== normalized) {
|
|
117
|
-
variants.push(withoutLeadingSlash);
|
|
118
|
-
}
|
|
119
|
-
const pluginPrefixes = ['5d-database-plugin/', 'documentation-system-plugin/', 'mcp-server/'];
|
|
120
|
-
// Remove common plugin prefixes (e.g., "5d-database-plugin/")
|
|
121
|
-
for (const prefix of pluginPrefixes) {
|
|
122
|
-
if (normalized.startsWith(prefix)) {
|
|
123
|
-
const withoutPrefix = normalized.substring(prefix.length);
|
|
124
|
-
variants.push(withoutPrefix);
|
|
125
|
-
}
|
|
126
|
-
// Also try without leading slash
|
|
127
|
-
if (withoutLeadingSlash.startsWith(prefix)) {
|
|
128
|
-
const withoutPrefix = withoutLeadingSlash.substring(prefix.length);
|
|
129
|
-
variants.push(withoutPrefix);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
// ADD variants WITH plugin prefixes (if path doesn't already have one)
|
|
133
|
-
// This handles cases where file mappings are stored with plugin prefix but queried without
|
|
134
|
-
const hasPluginPrefix = pluginPrefixes.some(prefix => normalized.startsWith(prefix) || withoutLeadingSlash.startsWith(prefix));
|
|
135
|
-
if (!hasPluginPrefix) {
|
|
136
|
-
// Add variants with each plugin prefix
|
|
137
|
-
for (const prefix of pluginPrefixes) {
|
|
138
|
-
variants.push(`${prefix}${withoutLeadingSlash}`);
|
|
139
|
-
variants.push(`${prefix}${normalized}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
// Remove duplicates and return
|
|
143
|
-
return Array.from(new Set(variants));
|
|
144
|
-
}
|
|
145
105
|
}
|
|
146
106
|
exports.AdrApi = AdrApi;
|
|
147
107
|
//# sourceMappingURL=adr-api.js.map
|
package/out/api/adr-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":";;;AAEA,mEAA+D;
|
|
1
|
+
{"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-api.d.ts","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap-api.d.ts","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAID;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,EAAE,cAAc;IAMrC;;;;;OAKG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA8FnE"}
|
package/out/api/bootstrap-api.js
CHANGED
|
@@ -22,6 +22,9 @@ class BootstrapApi {
|
|
|
22
22
|
async getBootstrapInfo(pluginId) {
|
|
23
23
|
// Get system explanation
|
|
24
24
|
const systemExplanation = await this.selfExplanationApi.explainSystem(pluginId);
|
|
25
|
+
// Prüfung: Sind Daten vorhanden? (entry_points ODER dimensions entity_count > 0)
|
|
26
|
+
const hasData = systemExplanation.entry_points.length > 0 ||
|
|
27
|
+
systemExplanation.dimensions.some(d => (d.entity_count || 0) > 0);
|
|
25
28
|
// Get entry points with reasons
|
|
26
29
|
const entryPoints = systemExplanation.entry_points.map(ep => ({
|
|
27
30
|
entity: {
|
|
@@ -31,6 +34,16 @@ class BootstrapApi {
|
|
|
31
34
|
},
|
|
32
35
|
reason: ep.reason || 'Entry point'
|
|
33
36
|
}));
|
|
37
|
+
// how_to_navigate beschreibt den Mechanismus (5D views + Tools), nicht die Identität
|
|
38
|
+
let howToNavigate;
|
|
39
|
+
if (hasData) {
|
|
40
|
+
// Mode B: Has Data - Mechanismus-Beschreibung
|
|
41
|
+
howToNavigate = `Use semantic_discovery tool with natural language queries. The system will find relevant entities and provide structured context from all 6 dimensions (X: Modules, Y: Symbols, Z: Dependencies, W: ADRs, T: Changes, V: Embeddings).`;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Mode A: No Data (First Run) - Initialisierungs-Anweisungen
|
|
45
|
+
howToNavigate = `To get started, use 'workflow_ensure_ready' to automatically generate documentation and populate the databases. Alternatively, use 'workflow_full_cycle' for a complete workflow (Scan → Generate → Validate → Ingest → Embeddings) or 'workflow_generate_and_ingest' for a simpler workflow (Generate → Ingest).`;
|
|
46
|
+
}
|
|
34
47
|
// Create evidence: INFERRED from system explanation (which is derived from DB queries)
|
|
35
48
|
const evidence = this.evidenceGrader.gradeAsInferred([
|
|
36
49
|
{
|
|
@@ -39,10 +52,10 @@ class BootstrapApi {
|
|
|
39
52
|
}
|
|
40
53
|
], 'Bootstrap information derived from system explanation, which aggregates data from multiple database queries');
|
|
41
54
|
return {
|
|
42
|
-
what_am_i: systemExplanation.what_am_i,
|
|
43
|
-
how_do_i_work: systemExplanation.how_do_i_work,
|
|
55
|
+
what_am_i: systemExplanation.what_am_i, // Die Codebase (Name/Desc)
|
|
56
|
+
how_do_i_work: systemExplanation.how_do_i_work, // System facts (was ist in der Codebase)
|
|
44
57
|
where_to_start: entryPoints,
|
|
45
|
-
how_to_navigate:
|
|
58
|
+
how_to_navigate: howToNavigate, // Mechanismus (5D-System als Tool), nicht Identität
|
|
46
59
|
example_queries: [
|
|
47
60
|
'How does ingestion work?',
|
|
48
61
|
'What are the main components?',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-api.js","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":";;;AACA,iEAA4D;AA8B5D,uDAAmD;AAEnD;;;GAGG;AACH,MAAa,YAAY;IAKrB,YAAY,SAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,yCAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACnC,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhF,gCAAgC;QAChC,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE;gBACJ,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,WAAW,EAAE,EAAE,CAAC,WAAW;aAC9B;YACD,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,aAAa;SACrC,CAAC,CAAC,CAAC;QAEJ,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAChD;YACI;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,oBAAoB;aAC7B;SACJ,EACD,6GAA6G,CAChH,CAAC;QAEF,OAAO;YACH,SAAS,EAAE,iBAAiB,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"bootstrap-api.js","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"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"}
|
package/out/api/module-api.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-api.d.ts","sourceRoot":"","sources":["../../src/api/module-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"module-api.d.ts","sourceRoot":"","sources":["../../src/api/module-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;OAEG;IACU,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMhF;;;;;;;OAOG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6BxF;;;;;;;;OAQG;IAEH;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/D;;OAEG;IACU,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAKjG"}
|
package/out/api/module-api.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModuleApi = void 0;
|
|
4
4
|
const module_repository_1 = require("../repositories/module-repository");
|
|
5
|
+
const path_normalizer_1 = require("../core/path-normalizer");
|
|
5
6
|
/**
|
|
6
7
|
* API for X-Dimension: Modules
|
|
7
8
|
*/
|
|
@@ -34,7 +35,7 @@ class ModuleApi {
|
|
|
34
35
|
return module;
|
|
35
36
|
}
|
|
36
37
|
// Generate normalized path variants
|
|
37
|
-
const pathVariants =
|
|
38
|
+
const pathVariants = path_normalizer_1.PathNormalizer.generateLookupVariants(filePath);
|
|
38
39
|
// Try each variant
|
|
39
40
|
for (const variant of pathVariants) {
|
|
40
41
|
module = await repository.getByFilePath(variant, pluginId);
|
|
@@ -43,7 +44,8 @@ class ModuleApi {
|
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
// Fallback: Try LIKE search with normalized path
|
|
46
|
-
const
|
|
47
|
+
const variants = path_normalizer_1.PathNormalizer.generateLookupVariants(filePath);
|
|
48
|
+
const normalized = variants[0]; // First variant (most normalized)
|
|
47
49
|
module = await repository.findByFilePathLike(normalized, pluginId);
|
|
48
50
|
return module;
|
|
49
51
|
}
|
|
@@ -56,42 +58,6 @@ class ModuleApi {
|
|
|
56
58
|
* - With/without plugin prefixes
|
|
57
59
|
* - Different separators (normalized to /)
|
|
58
60
|
*/
|
|
59
|
-
normalizeFilePath(filePath) {
|
|
60
|
-
const variants = [];
|
|
61
|
-
// Normalize separators to forward slashes
|
|
62
|
-
let normalized = filePath.replace(/\\/g, '/');
|
|
63
|
-
variants.push(normalized);
|
|
64
|
-
// Remove leading slashes
|
|
65
|
-
const withoutLeadingSlash = normalized.replace(/^\/+/, '');
|
|
66
|
-
if (withoutLeadingSlash !== normalized) {
|
|
67
|
-
variants.push(withoutLeadingSlash);
|
|
68
|
-
}
|
|
69
|
-
const pluginPrefixes = ['5d-database-plugin/', 'documentation-system-plugin/', 'mcp-server/'];
|
|
70
|
-
// Remove common plugin prefixes (e.g., "5d-database-plugin/")
|
|
71
|
-
for (const prefix of pluginPrefixes) {
|
|
72
|
-
if (normalized.startsWith(prefix)) {
|
|
73
|
-
const withoutPrefix = normalized.substring(prefix.length);
|
|
74
|
-
variants.push(withoutPrefix);
|
|
75
|
-
}
|
|
76
|
-
// Also try without leading slash
|
|
77
|
-
if (withoutLeadingSlash.startsWith(prefix)) {
|
|
78
|
-
const withoutPrefix = withoutLeadingSlash.substring(prefix.length);
|
|
79
|
-
variants.push(withoutPrefix);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// ADD variants WITH plugin prefixes (if path doesn't already have one)
|
|
83
|
-
// This handles cases where modules are stored with plugin prefix but queried without
|
|
84
|
-
const hasPluginPrefix = pluginPrefixes.some(prefix => normalized.startsWith(prefix) || withoutLeadingSlash.startsWith(prefix));
|
|
85
|
-
if (!hasPluginPrefix) {
|
|
86
|
-
// Add variants with each plugin prefix
|
|
87
|
-
for (const prefix of pluginPrefixes) {
|
|
88
|
-
variants.push(`${prefix}${withoutLeadingSlash}`);
|
|
89
|
-
variants.push(`${prefix}${normalized}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Remove duplicates and return
|
|
93
|
-
return Array.from(new Set(variants));
|
|
94
|
-
}
|
|
95
61
|
/**
|
|
96
62
|
* Gets all modules for a plugin.
|
|
97
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-api.js","sourceRoot":"","sources":["../../src/api/module-api.ts"],"names":[],"mappings":";;;AAEA,yEAAqE;
|
|
1
|
+
{"version":3,"file":"module-api.js","sourceRoot":"","sources":["../../src/api/module-api.ts"],"names":[],"mappings":";;;AAEA,yEAAqE;AAErE,6DAAyD;AAEzD;;GAEG;AACH,MAAa,SAAS;IAGlB,YAAY,SAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,QAAgB;QACnD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,QAAgB;QAC3D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAE5C,wBAAwB;QACxB,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,oCAAoC;QACpC,MAAM,YAAY,GAAG,gCAAc,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAErE,mBAAmB;QACnB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,gCAAc,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAClE,MAAM,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEnE,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IAEH;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,QAAgB;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,QAAgB;QACtE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACJ;AAhFD,8BAgFC"}
|
|
@@ -9,7 +9,7 @@ export interface SystemExplanation {
|
|
|
9
9
|
what_am_i: string;
|
|
10
10
|
how_do_i_work: string;
|
|
11
11
|
dimensions: Array<{
|
|
12
|
-
id: 'X' | 'Y' | 'Z' | 'W' | 'T';
|
|
12
|
+
id: 'X' | 'Y' | 'Z' | 'W' | 'T' | 'V';
|
|
13
13
|
name: string;
|
|
14
14
|
description: string;
|
|
15
15
|
entity_count?: number;
|
|
@@ -61,6 +61,7 @@ export declare class SelfExplanationApi {
|
|
|
61
61
|
getSystemOverview(pluginId: string): Promise<SystemOverview>;
|
|
62
62
|
/**
|
|
63
63
|
* Explains the system: what it is, how it works, entry points, and architecture ADRs.
|
|
64
|
+
* REQUIRED: Must NOT throw if DB files/tables are missing. If DB queries fail, treat as Mode A (No Data).
|
|
64
65
|
*/
|
|
65
66
|
explainSystem(pluginId: string): Promise<SystemExplanation>;
|
|
66
67
|
/**
|
|
@@ -71,5 +72,10 @@ export declare class SelfExplanationApi {
|
|
|
71
72
|
* Gets architecture ADRs (typically ADR-001, ADR-002, etc.).
|
|
72
73
|
*/
|
|
73
74
|
private getArchitectureAdrs;
|
|
75
|
+
/**
|
|
76
|
+
* Identifies the system by reading package.json, README.md, or inferring from data.
|
|
77
|
+
* Returns system name, description, source, evidence grade, and source path (for FACT sources).
|
|
78
|
+
*/
|
|
79
|
+
private identifySystem;
|
|
74
80
|
}
|
|
75
81
|
//# sourceMappingURL=self-explanation-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-explanation-api.d.ts","sourceRoot":"","sources":["../../src/api/self-explanation-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"self-explanation-api.d.ts","sourceRoot":"","sources":["../../src/api/self-explanation-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAM9C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,iBAAiB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,iBAAiB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,EAAE,cAAc;IAUrC;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAqDlE;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6KjE;;OAEG;YACW,cAAc;IAsB5B;;OAEG;YACW,mBAAmB;IAuBjC;;;OAGG;YACW,cAAc;CAsI/B"}
|