@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.
Files changed (67) hide show
  1. package/out/api/adr-api.d.ts +0 -6
  2. package/out/api/adr-api.d.ts.map +1 -1
  3. package/out/api/adr-api.js +2 -42
  4. package/out/api/adr-api.js.map +1 -1
  5. package/out/api/bootstrap-api.d.ts +1 -1
  6. package/out/api/bootstrap-api.d.ts.map +1 -1
  7. package/out/api/bootstrap-api.js +16 -3
  8. package/out/api/bootstrap-api.js.map +1 -1
  9. package/out/api/module-api.d.ts +0 -1
  10. package/out/api/module-api.d.ts.map +1 -1
  11. package/out/api/module-api.js +4 -38
  12. package/out/api/module-api.js.map +1 -1
  13. package/out/api/self-explanation-api.d.ts +7 -1
  14. package/out/api/self-explanation-api.d.ts.map +1 -1
  15. package/out/api/self-explanation-api.js +256 -48
  16. package/out/api/self-explanation-api.js.map +1 -1
  17. package/out/api/source-access-contract-api.d.ts.map +1 -1
  18. package/out/api/source-access-contract-api.js +42 -3
  19. package/out/api/source-access-contract-api.js.map +1 -1
  20. package/out/api/source-snippet-api.d.ts.map +1 -1
  21. package/out/api/source-snippet-api.js +3 -1
  22. package/out/api/source-snippet-api.js.map +1 -1
  23. package/out/cli/ingest-cli.js +44 -5
  24. package/out/cli/ingest-cli.js.map +1 -1
  25. package/out/core/migration-manager.d.ts.map +1 -1
  26. package/out/core/migration-manager.js +61 -32
  27. package/out/core/migration-manager.js.map +1 -1
  28. package/out/core/multi-db-manager.d.ts +26 -0
  29. package/out/core/multi-db-manager.d.ts.map +1 -1
  30. package/out/core/multi-db-manager.js +143 -2
  31. package/out/core/multi-db-manager.js.map +1 -1
  32. package/out/core/path-normalizer.d.ts +46 -0
  33. package/out/core/path-normalizer.d.ts.map +1 -0
  34. package/out/core/path-normalizer.js +152 -0
  35. package/out/core/path-normalizer.js.map +1 -0
  36. package/out/ingestors/adr-ingestor.d.ts.map +1 -1
  37. package/out/ingestors/adr-ingestor.js +7 -8
  38. package/out/ingestors/adr-ingestor.js.map +1 -1
  39. package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
  40. package/out/ingestors/symbol-ingestor.js +24 -8
  41. package/out/ingestors/symbol-ingestor.js.map +1 -1
  42. package/out/mcp/tools/gap-analysis.d.ts +3 -1
  43. package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
  44. package/out/mcp/tools/gap-analysis.js +26 -7
  45. package/out/mcp/tools/gap-analysis.js.map +1 -1
  46. package/out/mcp/tools/source-access-contract.d.ts.map +1 -1
  47. package/out/mcp/tools/source-access-contract.js +3 -1
  48. package/out/mcp/tools/source-access-contract.js.map +1 -1
  49. package/out/models/evidence.d.ts +1 -1
  50. package/out/models/evidence.d.ts.map +1 -1
  51. package/out/models/evidence.js.map +1 -1
  52. package/out/models/reason-codes.d.ts +2 -0
  53. package/out/models/reason-codes.d.ts.map +1 -1
  54. package/out/models/reason-codes.js +3 -0
  55. package/out/models/reason-codes.js.map +1 -1
  56. package/out/repositories/symbol-repository.js +1 -1
  57. package/out/repositories/symbol-repository.js.map +1 -1
  58. package/out/services/cross-dimension-linker.d.ts +0 -5
  59. package/out/services/cross-dimension-linker.d.ts.map +1 -1
  60. package/out/services/cross-dimension-linker.js +2 -35
  61. package/out/services/cross-dimension-linker.js.map +1 -1
  62. package/package.json +196 -195
  63. package/schemas/sqlite/001_add_source_code_spans_modules.sql +7 -0
  64. package/schemas/sqlite/001_z_add_source_code_spans_modules.sql +13 -0
  65. package/schemas/sqlite/{007_add_source_code_spans.sql → 002_add_source_code_spans_symbols.sql} +1 -5
  66. package/schemas/sqlite/002_z_add_source_code_spans_symbols.sql +21 -0
  67. package/schemas/sqlite/{008_add_source_access_config.sql → 006_add_source_access_config.sql} +1 -1
@@ -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
@@ -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;AAEpC;;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;IAwBlF;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CA6C5B"}
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"}
@@ -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 = this.normalizeFilePath(filePath);
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
@@ -1 +1 @@
1
- {"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adr-api.js","sourceRoot":"","sources":["../../src/api/adr-api.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export interface BootstrapInfo {
15
15
  how_to_navigate: string;
16
16
  example_queries: string[];
17
17
  dimensions_overview: Array<{
18
- id: 'X' | 'Y' | 'Z' | 'W' | 'T';
18
+ id: 'X' | 'Y' | 'Z' | 'W' | 'T' | 'V';
19
19
  name: string;
20
20
  description: string;
21
21
  }>;
@@ -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;QAChC,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;CAgFnE"}
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"}
@@ -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: 'Use semantic_discovery tool with natural language queries. The system will find relevant entities and provide structured context from all 5 dimensions.',
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;YACtC,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAC9C,cAAc,EAAE,WAAW;YAC3B,eAAe,EAAE,yJAAyJ;YAC1K,eAAe,EAAE;gBACb,0BAA0B;gBAC1B,+BAA+B;gBAC/B,+BAA+B;gBAC/B,2BAA2B;gBAC3B,2BAA2B;gBAC3B,oCAAoC;gBACpC,4BAA4B;gBAC5B,iCAAiC;aACpC;YACD,mBAAmB,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1D,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,eAAe,EAAE;gBACb;oBACI,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,6DAA6D;oBAC1E,OAAO,EAAE;wBACL,KAAK,EAAE,0BAA0B;wBACjC,QAAQ;qBACX;iBACJ;gBACD;oBACI,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,0DAA0D;oBACvE,OAAO,EAAE;wBACL,QAAQ;qBACX;iBACJ;gBACD;oBACI,IAAI,EAAE,eAAe;oBACrB,WAAW,EAAE,yDAAyD;oBACtE,OAAO,EAAE;wBACL,KAAK,EAAE,WAAW;wBAClB,QAAQ;qBACX;iBACJ;gBACD;oBACI,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,6FAA6F;oBAC1G,OAAO,EAAE;wBACL,QAAQ;qBACX;iBACJ;aACJ;YACD,QAAQ;SACX,CAAC;IACN,CAAC;CACJ;AAjGD,oCAiGC"}
1
+ {"version":3,"file":"bootstrap-api.js","sourceRoot":"","sources":["../../src/api/bootstrap-api.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,6 @@ export declare class ModuleApi {
28
28
  * - With/without plugin prefixes
29
29
  * - Different separators (normalized to /)
30
30
  */
31
- private normalizeFilePath;
32
31
  /**
33
32
  * Gets all modules for a plugin.
34
33
  */
@@ -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;AAE1C;;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;IA4BxF;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;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"}
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"}
@@ -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 = this.normalizeFilePath(filePath);
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 normalized = this.normalizeFilePath(filePath)[0]; // First variant (most normalized)
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":"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"}
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;AAO1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;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,CAAC;QAChC,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;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkGjE;;OAEG;YACW,cAAc;IAsB5B;;OAEG;YACW,mBAAmB;CAsBpC"}
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"}