@noyrax/5d-database-plugin 0.1.14-beta.5 → 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 (121) 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 +14 -49
  4. package/out/api/adr-api.js.map +1 -1
  5. package/out/api/bootstrap-api.d.ts +4 -1
  6. package/out/api/bootstrap-api.d.ts.map +1 -1
  7. package/out/api/bootstrap-api.js +27 -4
  8. package/out/api/bootstrap-api.js.map +1 -1
  9. package/out/api/context-builder.d.ts.map +1 -1
  10. package/out/api/context-builder.js +21 -5
  11. package/out/api/context-builder.js.map +1 -1
  12. package/out/api/evidence-grader.d.ts +83 -0
  13. package/out/api/evidence-grader.d.ts.map +1 -0
  14. package/out/api/evidence-grader.js +161 -0
  15. package/out/api/evidence-grader.js.map +1 -0
  16. package/out/api/index.d.ts +5 -0
  17. package/out/api/index.d.ts.map +1 -1
  18. package/out/api/index.js +11 -1
  19. package/out/api/index.js.map +1 -1
  20. package/out/api/learning-path-api.d.ts +3 -0
  21. package/out/api/learning-path-api.d.ts.map +1 -1
  22. package/out/api/learning-path-api.js +15 -2
  23. package/out/api/learning-path-api.js.map +1 -1
  24. package/out/api/module-api.d.ts +0 -1
  25. package/out/api/module-api.d.ts.map +1 -1
  26. package/out/api/module-api.js +4 -38
  27. package/out/api/module-api.js.map +1 -1
  28. package/out/api/self-explanation-api.d.ts +11 -1
  29. package/out/api/self-explanation-api.d.ts.map +1 -1
  30. package/out/api/self-explanation-api.js +285 -19
  31. package/out/api/self-explanation-api.js.map +1 -1
  32. package/out/api/semantic-search-api.d.ts +3 -0
  33. package/out/api/semantic-search-api.d.ts.map +1 -1
  34. package/out/api/semantic-search-api.js +39 -2
  35. package/out/api/semantic-search-api.js.map +1 -1
  36. package/out/api/source-access-contract-api.d.ts +60 -0
  37. package/out/api/source-access-contract-api.d.ts.map +1 -0
  38. package/out/api/source-access-contract-api.js +231 -0
  39. package/out/api/source-access-contract-api.js.map +1 -0
  40. package/out/api/source-snippet-api.d.ts +58 -0
  41. package/out/api/source-snippet-api.d.ts.map +1 -0
  42. package/out/api/source-snippet-api.js +187 -0
  43. package/out/api/source-snippet-api.js.map +1 -0
  44. package/out/api/vector-backend-status-api.d.ts +68 -0
  45. package/out/api/vector-backend-status-api.d.ts.map +1 -0
  46. package/out/api/vector-backend-status-api.js +241 -0
  47. package/out/api/vector-backend-status-api.js.map +1 -0
  48. package/out/cli/ingest-cli.js +44 -5
  49. package/out/cli/ingest-cli.js.map +1 -1
  50. package/out/cli/tool-cli.js +1 -1
  51. package/out/cli/tool-cli.js.map +1 -1
  52. package/out/core/migration-manager.d.ts.map +1 -1
  53. package/out/core/migration-manager.js +61 -32
  54. package/out/core/migration-manager.js.map +1 -1
  55. package/out/core/multi-db-manager.d.ts +26 -0
  56. package/out/core/multi-db-manager.d.ts.map +1 -1
  57. package/out/core/multi-db-manager.js +143 -2
  58. package/out/core/multi-db-manager.js.map +1 -1
  59. package/out/core/path-normalizer.d.ts +46 -0
  60. package/out/core/path-normalizer.d.ts.map +1 -0
  61. package/out/core/path-normalizer.js +152 -0
  62. package/out/core/path-normalizer.js.map +1 -0
  63. package/out/ingestors/adr-ingestor.d.ts.map +1 -1
  64. package/out/ingestors/adr-ingestor.js +7 -8
  65. package/out/ingestors/adr-ingestor.js.map +1 -1
  66. package/out/ingestors/module-ingestor.d.ts.map +1 -1
  67. package/out/ingestors/module-ingestor.js +17 -0
  68. package/out/ingestors/module-ingestor.js.map +1 -1
  69. package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
  70. package/out/ingestors/symbol-ingestor.js +24 -2
  71. package/out/ingestors/symbol-ingestor.js.map +1 -1
  72. package/out/mcp/tools/gap-analysis.d.ts +16 -2
  73. package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
  74. package/out/mcp/tools/gap-analysis.js +177 -31
  75. package/out/mcp/tools/gap-analysis.js.map +1 -1
  76. package/out/mcp/tools/learning-path.d.ts.map +1 -1
  77. package/out/mcp/tools/learning-path.js +19 -5
  78. package/out/mcp/tools/learning-path.js.map +1 -1
  79. package/out/mcp/tools/semantic-discovery.d.ts.map +1 -1
  80. package/out/mcp/tools/semantic-discovery.js +44 -4
  81. package/out/mcp/tools/semantic-discovery.js.map +1 -1
  82. package/out/mcp/tools/source-access-contract.d.ts +26 -0
  83. package/out/mcp/tools/source-access-contract.d.ts.map +1 -0
  84. package/out/mcp/tools/source-access-contract.js +45 -0
  85. package/out/mcp/tools/source-access-contract.js.map +1 -0
  86. package/out/mcp/tools/source-snippet.d.ts +71 -0
  87. package/out/mcp/tools/source-snippet.d.ts.map +1 -0
  88. package/out/mcp/tools/source-snippet.js +82 -0
  89. package/out/mcp/tools/source-snippet.js.map +1 -0
  90. package/out/models/action-hint.d.ts +36 -0
  91. package/out/models/action-hint.d.ts.map +1 -0
  92. package/out/models/action-hint.js +38 -0
  93. package/out/models/action-hint.js.map +1 -0
  94. package/out/models/evidence.d.ts +68 -0
  95. package/out/models/evidence.d.ts.map +1 -0
  96. package/out/models/evidence.js +91 -0
  97. package/out/models/evidence.js.map +1 -0
  98. package/out/models/module.d.ts +2 -0
  99. package/out/models/module.d.ts.map +1 -1
  100. package/out/models/reason-codes.d.ts +52 -0
  101. package/out/models/reason-codes.d.ts.map +1 -0
  102. package/out/models/reason-codes.js +83 -0
  103. package/out/models/reason-codes.js.map +1 -0
  104. package/out/models/symbol.d.ts +6 -0
  105. package/out/models/symbol.d.ts.map +1 -1
  106. package/out/repositories/module-repository.d.ts.map +1 -1
  107. package/out/repositories/module-repository.js +9 -3
  108. package/out/repositories/module-repository.js.map +1 -1
  109. package/out/repositories/symbol-repository.d.ts.map +1 -1
  110. package/out/repositories/symbol-repository.js +22 -4
  111. package/out/repositories/symbol-repository.js.map +1 -1
  112. package/out/services/cross-dimension-linker.d.ts +0 -5
  113. package/out/services/cross-dimension-linker.d.ts.map +1 -1
  114. package/out/services/cross-dimension-linker.js +2 -35
  115. package/out/services/cross-dimension-linker.js.map +1 -1
  116. package/package.json +196 -196
  117. package/schemas/sqlite/001_add_source_code_spans_modules.sql +7 -0
  118. package/schemas/sqlite/001_z_add_source_code_spans_modules.sql +13 -0
  119. package/schemas/sqlite/002_add_source_code_spans_symbols.sql +15 -0
  120. package/schemas/sqlite/002_z_add_source_code_spans_symbols.sql +21 -0
  121. package/schemas/sqlite/006_add_source_access_config.sql +33 -0
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-ingestor.d.ts","sourceRoot":"","sources":["../../src/ingestors/symbol-ingestor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;IAC/C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAI9B,YAAY,IAAI,SAAS;IAInB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpF,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCxG;;OAEG;YACW,YAAY;IAoD1B;;OAEG;YACW,sBAAsB;IAiBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
1
+ {"version":3,"file":"symbol-ingestor.d.ts","sourceRoot":"","sources":["../../src/ingestors/symbol-ingestor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;IAC/C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAI9B,YAAY,IAAI,SAAS;IAInB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpF,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCxG;;OAEG;YACW,YAAY;IA8E1B;;OAEG;YACW,sBAAsB;IAiBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
@@ -93,7 +93,7 @@ class SymbolIngestor {
93
93
  continue;
94
94
  }
95
95
  const existing = await repository.getBySymbolId(symbolId, pluginId);
96
- const signatureHash = this.computeSignatureHash(symbolData);
96
+ const signatureHash = symbolData.signature_hash || this.computeSignatureHash(symbolData);
97
97
  if (existing && existing.signature_hash === signatureHash) {
98
98
  continue;
99
99
  }
@@ -123,8 +123,24 @@ class SymbolIngestor {
123
123
  if (!symbolData.name) {
124
124
  throw new Error(`Symbol missing required field 'name': ${JSON.stringify(symbolData)}`);
125
125
  }
126
- const signatureHash = this.computeSignatureHash(symbolData);
126
+ // Use signature_hash from symbolData if provided, otherwise compute it
127
+ const signatureHash = symbolData.signature_hash || this.computeSignatureHash(symbolData);
127
128
  const existing = await repository.getBySymbolId(symbolId, pluginId);
129
+ // Legacy Cleanup: If ingesting a ts:// symbol, delete the corresponding unknown:// duplicate
130
+ if (symbolId.startsWith('ts://')) {
131
+ const legacySymbolId = symbolId.replace('ts://', 'unknown://');
132
+ const legacySymbol = await repository.getBySymbolId(legacySymbolId, pluginId);
133
+ if (legacySymbol) {
134
+ // Check if it's a true duplicate (same path + name + signature hash)
135
+ const isDuplicate = legacySymbol.path === symbolData.path &&
136
+ legacySymbol.name === symbolData.name &&
137
+ legacySymbol.signature_hash === signatureHash;
138
+ if (isDuplicate) {
139
+ await repository.delete(legacySymbol.id, pluginId);
140
+ console.log(`[SymbolIngestor] Cleaned up legacy symbol: ${legacySymbolId} (replaced by ${symbolId})`);
141
+ }
142
+ }
143
+ }
128
144
  const now = new Date();
129
145
  const symbol = {
130
146
  id: existing?.id || (0, uuid_1.v4)(),
@@ -136,6 +152,12 @@ class SymbolIngestor {
136
152
  signature_json: JSON.stringify(symbolData.signature || {}),
137
153
  signature_hash: signatureHash,
138
154
  summary: symbolData.summary || null,
155
+ start_line: symbolData.startLine ?? symbolData.start_line ?? null,
156
+ end_line: symbolData.endLine ?? symbolData.end_line ?? null,
157
+ start_col: symbolData.startCol ?? symbolData.start_col ?? null,
158
+ end_col: symbolData.endCol ?? symbolData.end_col ?? null,
159
+ byte_offset_start: symbolData.byteOffsetStart ?? symbolData.byte_offset_start ?? null,
160
+ byte_offset_end: symbolData.byteOffsetEnd ?? symbolData.byte_offset_end ?? null,
139
161
  deleted_at: null,
140
162
  created_at: existing?.created_at || now,
141
163
  updated_at: now
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-ingestor.js","sourceRoot":"","sources":["../../src/ingestors/symbol-ingestor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol-ingestor.js","sourceRoot":"","sources":["../../src/ingestors/symbol-ingestor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ import { IdMapper } from '../../core/id-mapper';
6
6
  */
7
7
  export declare class GapAnalysisTool {
8
8
  private crossDimensionApi;
9
+ private dependencyApi;
10
+ private adrApi;
11
+ private moduleApi;
9
12
  private dbManager;
10
13
  private idMapper;
11
14
  private workspaceRoot;
@@ -14,7 +17,11 @@ export declare class GapAnalysisTool {
14
17
  * Executes the gap_analysis tool.
15
18
  *
16
19
  * @param args Arguments: minDependencies (default: 5), pluginId, limit (default: 50), autoGenerateAdrs (default: false)
17
- * @returns JSON string with gap analysis results
20
+ * @returns JSON string with gap analysis results including context information for ADR generation by KI-Agent
21
+ *
22
+ * Note: autoGenerateAdrs is false by default. When false, the tool provides context information
23
+ * (similar modules with ADRs, dependency details, cross-dimension context) to help the KI-Agent
24
+ * create ADRs according to the schema defined in .cursor/rules/022-adr-workflow.mdc
18
25
  */
19
26
  execute(args: {
20
27
  minDependencies?: number;
@@ -22,12 +29,19 @@ export declare class GapAnalysisTool {
22
29
  limit?: number;
23
30
  autoGenerateAdrs?: boolean;
24
31
  }): Promise<string>;
32
+ /**
33
+ * Builds context information for ADR generation by KI-Agent.
34
+ * Includes similar modules with ADRs, existing patterns, and cross-dimension context.
35
+ */
36
+ private buildAdrGenerationContext;
25
37
  /**
26
38
  * Calculates a gap score for prioritization.
27
39
  * Higher score = more urgent to document.
28
40
  *
29
- * Formula: (dependency_count * 2) - (adr_count * 10)
41
+ * Formula: (dependency_count * 2) - (adr_count * 10) - (hasApiDocs ? 50 : 0)
30
42
  * This prioritizes modules with many dependencies but few ADRs.
43
+ * Module mit API-Docs sind bereits dokumentiert, daher großer Penalty (-50).
44
+ * Da buildArchitecturalView nur Module aus X-Dimension zurückgibt, haben alle Module API-Docs.
31
45
  */
32
46
  private calculateGapScore;
33
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gap-analysis.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD;;;GAGG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAElB,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM;IAOjF;;;;;OAKG;IACU,OAAO,CAAC,IAAI,EAAE;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,OAAO,CAAC,MAAM,CAAC;IAsHnB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwC/B;;;OAGG;YACW,mBAAmB;CAkGpC"}
1
+ {"version":3,"file":"gap-analysis.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD;;;GAGG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAElB,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM;IAUjF;;;;;;;;;OASG;IACU,OAAO,CAAC,IAAI,EAAE;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,OAAO,CAAC,MAAM,CAAC;IAgJnB;;;OAGG;YACW,yBAAyB;IAiHvC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0C/B;;;OAGG;YACW,mBAAmB;CAuHpC"}
@@ -35,7 +35,11 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.GapAnalysisTool = void 0;
37
37
  const cross_dimension_api_1 = require("../../api/cross-dimension-api");
38
+ const dependency_api_1 = require("../../api/dependency-api");
39
+ const adr_api_1 = require("../../api/adr-api");
40
+ const module_api_1 = require("../../api/module-api");
38
41
  const adr_generator_1 = require("./adr-generator");
42
+ const path = __importStar(require("path"));
39
43
  /**
40
44
  * MCP Tool: gap_analysis
41
45
  * Finds documentation gaps by analyzing modules with many dependencies but few/no ADRs.
@@ -43,6 +47,9 @@ const adr_generator_1 = require("./adr-generator");
43
47
  class GapAnalysisTool {
44
48
  constructor(dbManager, idMapper, workspaceRoot) {
45
49
  this.crossDimensionApi = new cross_dimension_api_1.CrossDimensionApi(dbManager, idMapper);
50
+ this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
51
+ this.adrApi = new adr_api_1.AdrApi(dbManager);
52
+ this.moduleApi = new module_api_1.ModuleApi(dbManager);
46
53
  this.dbManager = dbManager;
47
54
  this.idMapper = idMapper;
48
55
  this.workspaceRoot = workspaceRoot || process.cwd();
@@ -51,7 +58,11 @@ class GapAnalysisTool {
51
58
  * Executes the gap_analysis tool.
52
59
  *
53
60
  * @param args Arguments: minDependencies (default: 5), pluginId, limit (default: 50), autoGenerateAdrs (default: false)
54
- * @returns JSON string with gap analysis results
61
+ * @returns JSON string with gap analysis results including context information for ADR generation by KI-Agent
62
+ *
63
+ * Note: autoGenerateAdrs is false by default. When false, the tool provides context information
64
+ * (similar modules with ADRs, dependency details, cross-dimension context) to help the KI-Agent
65
+ * create ADRs according to the schema defined in .cursor/rules/022-adr-workflow.mdc
55
66
  */
56
67
  async execute(args) {
57
68
  const minDeps = args.minDependencies || 5;
@@ -98,37 +109,57 @@ class GapAnalysisTool {
98
109
  return await this.fallbackDirectQuery(args.pluginId, minDeps, limit);
99
110
  }
100
111
  // Analyze gaps
101
- const gaps = architecturalView
112
+ const gaps = await Promise.all(architecturalView
102
113
  .filter(view => view.dependencies.length >= minDeps)
103
- .map(view => ({
104
- module: {
105
- file_path: view.module.file_path,
106
- content_hash: view.module.content_hash
107
- },
108
- dependency_count: view.dependencies.length,
109
- adr_count: view.adrs.length,
110
- adr_numbers: view.adrs.map(adr => adr.adr_number),
111
- gap_score: this.calculateGapScore(view.dependencies.length, view.adrs.length),
112
- has_adrs: view.adrs.length > 0
113
- }))
114
- .sort((a, b) => b.gap_score - a.gap_score) // Highest gap score first
115
- .slice(0, limit);
114
+ .map(async (view) => {
115
+ // WICHTIG: buildArchitecturalView gibt nur Module aus X-Dimension zurück
116
+ // X-Dimension = docs/modules/ = alle Module haben bereits API-Docs
117
+ const hasApiDocs = true; // buildArchitecturalView gibt nur Module aus X-Dimension zurück
118
+ const baseGap = {
119
+ module: {
120
+ file_path: view.module.file_path,
121
+ content_hash: view.module.content_hash
122
+ },
123
+ dependency_count: view.dependencies.length,
124
+ adr_count: view.adrs.length,
125
+ adr_numbers: view.adrs.map(adr => adr.adr_number),
126
+ has_api_docs: hasApiDocs, // Immer true für Module in buildArchitecturalView
127
+ gap_score: this.calculateGapScore(view.dependencies.length, view.adrs.length, hasApiDocs),
128
+ has_adrs: view.adrs.length > 0,
129
+ // Modul ist dokumentiert wenn es API-Docs ODER ADRs hat
130
+ // Da alle Module API-Docs haben, sind alle dokumentiert
131
+ // ADRs sind nur für architektonische Entscheidungen nötig
132
+ is_documented: hasApiDocs || view.adrs.length > 0
133
+ };
134
+ // Add context information for modules without ADRs (for KI-Agent ADR generation)
135
+ if (!baseGap.has_adrs) {
136
+ const context = await this.buildAdrGenerationContext(view.module, view.dependencies, args.pluginId);
137
+ return {
138
+ ...baseGap,
139
+ context_for_adr_generation: context
140
+ };
141
+ }
142
+ return baseGap;
143
+ }));
144
+ // Sort by gap score (highest first) and limit
145
+ gaps.sort((a, b) => b.gap_score - a.gap_score);
146
+ const limitedGaps = gaps.slice(0, limit);
116
147
  // Separate into categories
117
- const withoutAdrs = gaps.filter(g => !g.has_adrs);
118
- const withFewAdrs = gaps.filter(g => g.has_adrs && g.adr_count < 2);
119
- const wellDocumented = gaps.filter(g => g.has_adrs && g.adr_count >= 2);
148
+ const withoutAdrs = limitedGaps.filter(g => !g.has_adrs);
149
+ const withFewAdrs = limitedGaps.filter(g => g.has_adrs && g.adr_count < 2);
150
+ const wellDocumented = limitedGaps.filter(g => g.has_adrs && g.adr_count >= 2);
120
151
  // Calculate statistics
121
152
  const stats = {
122
153
  total_modules_analyzed: architecturalView.length,
123
- modules_with_many_deps: gaps.length,
154
+ modules_with_many_deps: limitedGaps.length,
124
155
  modules_without_adrs: withoutAdrs.length,
125
156
  modules_with_few_adrs: withFewAdrs.length,
126
157
  well_documented_modules: wellDocumented.length,
127
- avg_dependencies: gaps.length > 0
128
- ? Math.round(gaps.reduce((sum, g) => sum + g.dependency_count, 0) / gaps.length)
158
+ avg_dependencies: limitedGaps.length > 0
159
+ ? Math.round(limitedGaps.reduce((sum, g) => sum + g.dependency_count, 0) / limitedGaps.length)
129
160
  : 0,
130
- avg_adrs: gaps.length > 0 && gaps.filter(g => g.has_adrs).length > 0
131
- ? Math.round(gaps.filter(g => g.has_adrs).reduce((sum, g) => sum + g.adr_count, 0) / gaps.filter(g => g.has_adrs).length)
161
+ avg_adrs: limitedGaps.length > 0 && limitedGaps.filter(g => g.has_adrs).length > 0
162
+ ? Math.round(limitedGaps.filter(g => g.has_adrs).reduce((sum, g) => sum + g.adr_count, 0) / limitedGaps.filter(g => g.has_adrs).length)
132
163
  : 0
133
164
  };
134
165
  // Auto-generate ADRs if requested
@@ -165,15 +196,109 @@ class GapAnalysisTool {
165
196
  recommendations: this.generateRecommendations(withoutAdrs, withFewAdrs, generatedAdrs.length)
166
197
  }, null, 2);
167
198
  }
199
+ /**
200
+ * Builds context information for ADR generation by KI-Agent.
201
+ * Includes similar modules with ADRs, existing patterns, and cross-dimension context.
202
+ */
203
+ async buildAdrGenerationContext(module, dependencies, pluginId) {
204
+ const context = {
205
+ similar_modules_with_adrs: [],
206
+ existing_adr_patterns: [],
207
+ dependencies_details: [],
208
+ cross_dimension_context: {
209
+ symbols: [],
210
+ incoming_dependencies: 0,
211
+ outgoing_dependencies: dependencies.length
212
+ }
213
+ };
214
+ try {
215
+ // 1. Find similar modules with ADRs (same directory or similar path structure)
216
+ const moduleDir = path.dirname(module.file_path);
217
+ const allModules = await this.moduleApi.getAllModules(pluginId);
218
+ // Get all ADRs and their file mappings
219
+ const adrDb = await this.dbManager.getDatabase('W');
220
+ const { AdrRepository } = await Promise.resolve().then(() => __importStar(require('../../repositories/adr-repository')));
221
+ const adrRepo = new AdrRepository(adrDb);
222
+ const allAdrs = await adrRepo.getAll(pluginId);
223
+ // Build map of file_path -> ADR numbers using file mappings
224
+ const adrsByPath = new Map();
225
+ for (const adr of allAdrs) {
226
+ const fileMappings = await adrRepo.getAdrFileMappings(adr.id);
227
+ for (const mapping of fileMappings) {
228
+ if (!adrsByPath.has(mapping.file_path)) {
229
+ adrsByPath.set(mapping.file_path, []);
230
+ }
231
+ adrsByPath.get(mapping.file_path).push(adr.adr_number);
232
+ }
233
+ }
234
+ // Find modules in same directory or similar path structure with ADRs
235
+ for (const otherModule of allModules) {
236
+ if (otherModule.file_path === module.file_path)
237
+ continue;
238
+ const otherModuleDir = path.dirname(otherModule.file_path);
239
+ const hasAdrs = adrsByPath.has(otherModule.file_path);
240
+ // Similar if same directory or similar path depth
241
+ if (hasAdrs && (otherModuleDir === moduleDir ||
242
+ otherModuleDir.split(path.sep).length === moduleDir.split(path.sep).length)) {
243
+ context.similar_modules_with_adrs.push({
244
+ file_path: otherModule.file_path,
245
+ adr_numbers: adrsByPath.get(otherModule.file_path) || []
246
+ });
247
+ }
248
+ }
249
+ // Limit to top 5 similar modules
250
+ context.similar_modules_with_adrs = context.similar_modules_with_adrs.slice(0, 5);
251
+ // 2. Extract ADR patterns from similar modules
252
+ for (const similar of context.similar_modules_with_adrs) {
253
+ for (const adrNumber of similar.adr_numbers) {
254
+ const adr = await this.adrApi.getAdrByNumber(adrNumber, pluginId);
255
+ if (adr) {
256
+ // Extract pattern: first line of decision or context
257
+ const pattern = adr.content_markdown?.split('\n').find((line) => line.trim().startsWith('## Entscheidung') ||
258
+ line.trim().startsWith('## Kontext')) || 'ADR pattern';
259
+ context.existing_adr_patterns.push({
260
+ adr_number: adrNumber,
261
+ pattern: pattern.substring(0, 100) // Limit length
262
+ });
263
+ }
264
+ }
265
+ }
266
+ // Limit to top 10 patterns
267
+ context.existing_adr_patterns = context.existing_adr_patterns.slice(0, 10);
268
+ // 3. Get detailed dependencies information
269
+ context.dependencies_details = dependencies.map(dep => ({
270
+ to_module: dep.to_module || dep.toModule || '',
271
+ dependency_type: dep.dependency_type || dep.dependencyType || 'import'
272
+ }));
273
+ // 4. Get incoming dependencies count
274
+ const incomingDeps = await this.dependencyApi.getDependenciesByToModule(module.file_path, pluginId);
275
+ context.cross_dimension_context.incoming_dependencies = incomingDeps.length;
276
+ // 5. Get symbols for cross-dimension context
277
+ const symbols = await this.crossDimensionApi.getSymbolsForModule(module.file_path, pluginId);
278
+ context.cross_dimension_context.symbols = symbols.slice(0, 20).map((sym) => ({
279
+ name: sym.name || sym.symbol_name || '',
280
+ type: sym.type || sym.symbol_type || ''
281
+ }));
282
+ }
283
+ catch (error) {
284
+ console.warn(`[GapAnalysisTool] Failed to build ADR generation context for ${module.file_path}: ${error?.message || String(error)}`);
285
+ }
286
+ return context;
287
+ }
168
288
  /**
169
289
  * Calculates a gap score for prioritization.
170
290
  * Higher score = more urgent to document.
171
291
  *
172
- * Formula: (dependency_count * 2) - (adr_count * 10)
292
+ * Formula: (dependency_count * 2) - (adr_count * 10) - (hasApiDocs ? 50 : 0)
173
293
  * This prioritizes modules with many dependencies but few ADRs.
294
+ * Module mit API-Docs sind bereits dokumentiert, daher großer Penalty (-50).
295
+ * Da buildArchitecturalView nur Module aus X-Dimension zurückgibt, haben alle Module API-Docs.
174
296
  */
175
- calculateGapScore(dependencyCount, adrCount) {
176
- return (dependencyCount * 2) - (adrCount * 10);
297
+ calculateGapScore(dependencyCount, adrCount, hasApiDocs = false) {
298
+ const baseScore = (dependencyCount * 2) - (adrCount * 10);
299
+ // Module mit API-Docs sind dokumentiert, großer Penalty
300
+ // Da alle Module in buildArchitecturalView API-Docs haben, wird dieser Penalty immer angewendet
301
+ return hasApiDocs ? baseScore - 50 : baseScore;
177
302
  }
178
303
  /**
179
304
  * Generates recommendations based on gaps.
@@ -195,6 +320,9 @@ class GapAnalysisTool {
195
320
  if (generatedCount > 0) {
196
321
  recommendations.push(`\n✅ ${generatedCount} ADR(s) wurden automatisch generiert.`);
197
322
  }
323
+ else if (withoutAdrs.length > 0) {
324
+ recommendations.push(`\n💡 Nutze die Kontext-Informationen (context_for_adr_generation) für jedes Modul, um ADRs nach Schema zu erstellen (siehe .cursor/rules/022-adr-workflow.mdc).`);
325
+ }
198
326
  if (recommendations.length === 0) {
199
327
  recommendations.push('✅ Alle Module mit vielen Dependencies sind gut dokumentiert!');
200
328
  }
@@ -223,13 +351,17 @@ class GapAnalysisTool {
223
351
  const count = depCounts.get(dep.from_module) || 0;
224
352
  depCounts.set(dep.from_module, count + 1);
225
353
  }
226
- // Build gaps
354
+ // Build gaps with context information
227
355
  const gaps = [];
228
356
  for (const module of modules) {
229
357
  const depCount = depCounts.get(module.file_path) || 0;
230
358
  if (depCount >= minDeps) {
231
359
  const adrs = await adrRepo.findByFilePath(module.file_path, pluginId);
232
- gaps.push({
360
+ const dependencies = await depRepo.findByFromModule(module.file_path, pluginId);
361
+ // WICHTIG: Module aus X-Dimension haben bereits API-Docs
362
+ // X-Dimension = docs/modules/ = alle Module haben bereits API-Docs
363
+ const hasApiDocs = true; // Module aus X-Dimension haben immer API-Docs
364
+ const baseGap = {
233
365
  module: {
234
366
  file_path: module.file_path,
235
367
  content_hash: module.content_hash
@@ -237,9 +369,23 @@ class GapAnalysisTool {
237
369
  dependency_count: depCount,
238
370
  adr_count: adrs.length,
239
371
  adr_numbers: adrs.map(adr => adr.adr_number),
240
- gap_score: this.calculateGapScore(depCount, adrs.length),
241
- has_adrs: adrs.length > 0
242
- });
372
+ has_api_docs: hasApiDocs, // Immer true für Module aus X-Dimension
373
+ gap_score: this.calculateGapScore(depCount, adrs.length, hasApiDocs),
374
+ has_adrs: adrs.length > 0,
375
+ // Modul ist dokumentiert wenn es API-Docs ODER ADRs hat
376
+ is_documented: hasApiDocs || adrs.length > 0
377
+ };
378
+ // Add context information for modules without ADRs
379
+ if (!baseGap.has_adrs) {
380
+ const context = await this.buildAdrGenerationContext(module, dependencies, pluginId);
381
+ gaps.push({
382
+ ...baseGap,
383
+ context_for_adr_generation: context
384
+ });
385
+ }
386
+ else {
387
+ gaps.push(baseGap);
388
+ }
243
389
  }
244
390
  }
245
391
  // Sort by gap score
@@ -1 +1 @@
1
- {"version":3,"file":"gap-analysis.js","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gap-analysis.js","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"learning-path.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACzC,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAOjB"}
1
+ {"version":3,"file":"learning-path.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACzC,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
@@ -9,10 +9,24 @@ const embedding_generator_1 = require("../../embedding/embedding-generator");
9
9
  * Generates guided learning path for understanding a topic.
10
10
  */
11
11
  async function executeLearningPath(args, dbManager) {
12
- const embeddingGenerator = new embedding_generator_1.EmbeddingGenerator();
13
- const semanticSearchApi = new semantic_search_api_1.SemanticSearchApi(dbManager, embeddingGenerator);
14
- const learningPathApi = new learning_path_api_1.LearningPathApi(dbManager, semanticSearchApi);
15
- const path = await learningPathApi.generateLearningPath(args.topic, args.pluginId);
16
- return JSON.stringify(path, null, 2);
12
+ try {
13
+ const embeddingGenerator = new embedding_generator_1.EmbeddingGenerator();
14
+ const semanticSearchApi = new semantic_search_api_1.SemanticSearchApi(dbManager, embeddingGenerator);
15
+ const learningPathApi = new learning_path_api_1.LearningPathApi(dbManager, semanticSearchApi);
16
+ const path = await learningPathApi.generateLearningPath(args.topic, args.pluginId);
17
+ return JSON.stringify(path, null, 2);
18
+ }
19
+ catch (error) {
20
+ // Catch-all error handler - ensure we always return valid JSON
21
+ const errorMsg = error?.message || String(error);
22
+ const errorStack = error?.stack ? String(error.stack).substring(0, 500) : undefined;
23
+ return JSON.stringify({
24
+ topic: args.topic,
25
+ path: [],
26
+ estimated_time: '0 minutes',
27
+ error: `Learning path generation failed: ${errorMsg}`,
28
+ stack: errorStack
29
+ }, null, 2);
30
+ }
17
31
  }
18
32
  //# sourceMappingURL=learning-path.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"learning-path.js","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":";;AASA,kDAUC;AAlBD,uEAAkE;AAClE,mEAA8D;AAC9D,6EAAyE;AAEzE;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACrC,IAAyC,EACzC,SAAyB;IAEzB,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,IAAI,mCAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"learning-path.js","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":";;AASA,kDAuBC;AA/BD,uEAAkE;AAClE,mEAA8D;AAC9D,6EAAyE;AAEzE;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACrC,IAAyC,EACzC,SAAyB;IAEzB,IAAI,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,IAAI,mCAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;YACR,cAAc,EAAE,WAAW;YAC3B,KAAK,EAAE,oCAAoC,QAAQ,EAAE;YACrD,KAAK,EAAE,UAAU;SACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-discovery.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/semantic-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACzD,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,MAAM,CAAC,CA0EjB"}
1
+ {"version":3,"file":"semantic-discovery.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/semantic-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAOhD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACzD,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,MAAM,CAAC,CAkHjB"}
@@ -4,6 +4,8 @@ exports.executeSemanticDiscovery = executeSemanticDiscovery;
4
4
  const semantic_search_api_1 = require("../../api/semantic-search-api");
5
5
  const context_builder_1 = require("../../api/context-builder");
6
6
  const embedding_generator_1 = require("../../embedding/embedding-generator");
7
+ const vector_backend_status_api_1 = require("../../api/vector-backend-status-api");
8
+ const reason_codes_1 = require("../../models/reason-codes");
7
9
  /**
8
10
  * Executes semantic discovery tool.
9
11
  * Performs semantic search and returns structured context.
@@ -15,18 +17,33 @@ async function executeSemanticDiscovery(args, dbManager, idMapper) {
15
17
  const contextBuilder = new context_builder_1.ContextBuilder(dbManager, idMapper);
16
18
  // 1. Semantic Search
17
19
  let results;
20
+ let fallbackMode = false;
21
+ let reasonCode = undefined;
18
22
  try {
19
23
  results = await semanticSearchApi.search(args.query, args.pluginId, {
20
24
  limit: args.limit || 10
21
25
  });
22
26
  }
23
27
  catch (searchError) {
24
- // If semantic search fails, return empty results with error info
28
+ // If semantic search fails, check vector backend status to determine reason code
29
+ fallbackMode = true;
30
+ try {
31
+ const vectorBackendStatusApi = new vector_backend_status_api_1.VectorBackendStatusApi(dbManager);
32
+ const status = await vectorBackendStatusApi.getVectorBackendStatus();
33
+ reasonCode = status.reason_code;
34
+ }
35
+ catch (statusError) {
36
+ // If status check fails, use generic reason code
37
+ reasonCode = reason_codes_1.ReasonCode.VECTOR_BACKEND_UNREACHABLE;
38
+ }
39
+ // If vector backend is not available, return fallback response
25
40
  const errorMsg = searchError?.message || String(searchError);
26
41
  return JSON.stringify({
27
42
  query: args.query,
28
43
  results: [],
29
44
  context: {},
45
+ mode: 'fallback',
46
+ reason_code: reasonCode || reason_codes_1.ReasonCode.VECTOR_BACKEND_UNREACHABLE,
30
47
  error: `Semantic search failed: ${errorMsg}`,
31
48
  fallback: 'Semantic search unavailable, returning empty results'
32
49
  }, null, 2);
@@ -53,8 +70,22 @@ async function executeSemanticDiscovery(args, dbManager, idMapper) {
53
70
  warning: `Context building failed: ${errorMsg}`
54
71
  }, null, 2);
55
72
  }
56
- // 3. Return structured JSON (no AI generation!)
57
- return JSON.stringify({
73
+ // 3. Check if fallback mode was used (cosine similarity instead of vector database)
74
+ // Note: We can't directly detect this from results, but we can check vector backend status
75
+ // If vector backend is not available but we got results, we're in fallback mode
76
+ try {
77
+ const vectorBackendStatusApi = new vector_backend_status_api_1.VectorBackendStatusApi(dbManager);
78
+ const status = await vectorBackendStatusApi.getVectorBackendStatus();
79
+ if (status.fallback && results.length > 0) {
80
+ fallbackMode = true;
81
+ reasonCode = status.reason_code;
82
+ }
83
+ }
84
+ catch (statusError) {
85
+ // Ignore status check errors
86
+ }
87
+ // 4. Return structured JSON (no AI generation!)
88
+ const response = {
58
89
  query: args.query,
59
90
  results: results.map(r => ({
60
91
  dimension: r.dimension,
@@ -65,7 +96,16 @@ async function executeSemanticDiscovery(args, dbManager, idMapper) {
65
96
  importanceScore: r.importanceScore
66
97
  })),
67
98
  context
68
- }, null, 2);
99
+ };
100
+ // Add fallback signaling if in fallback mode
101
+ if (fallbackMode && reasonCode) {
102
+ response.mode = 'fallback';
103
+ response.reason_code = reasonCode;
104
+ }
105
+ else {
106
+ response.mode = 'normal';
107
+ }
108
+ return JSON.stringify(response, null, 2);
69
109
  }
70
110
  catch (error) {
71
111
  // Catch-all error handler - ensure we always return valid JSON
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-discovery.js","sourceRoot":"","sources":["../../../src/mcp/tools/semantic-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-discovery.js","sourceRoot":"","sources":["../../../src/mcp/tools/semantic-discovery.ts"],"names":[],"mappings":"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"}