@noyrax/5d-database-plugin 0.1.14-beta.4 → 0.1.14-beta.6

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 (97) hide show
  1. package/out/api/adr-api.d.ts.map +1 -1
  2. package/out/api/adr-api.js +12 -7
  3. package/out/api/adr-api.js.map +1 -1
  4. package/out/api/bootstrap-api.d.ts +3 -0
  5. package/out/api/bootstrap-api.d.ts.map +1 -1
  6. package/out/api/bootstrap-api.js +11 -1
  7. package/out/api/bootstrap-api.js.map +1 -1
  8. package/out/api/context-builder.d.ts.map +1 -1
  9. package/out/api/context-builder.js +21 -5
  10. package/out/api/context-builder.js.map +1 -1
  11. package/out/api/evidence-grader.d.ts +83 -0
  12. package/out/api/evidence-grader.d.ts.map +1 -0
  13. package/out/api/evidence-grader.js +161 -0
  14. package/out/api/evidence-grader.js.map +1 -0
  15. package/out/api/index.d.ts +5 -0
  16. package/out/api/index.d.ts.map +1 -1
  17. package/out/api/index.js +11 -1
  18. package/out/api/index.js.map +1 -1
  19. package/out/api/learning-path-api.d.ts +3 -0
  20. package/out/api/learning-path-api.d.ts.map +1 -1
  21. package/out/api/learning-path-api.js +15 -2
  22. package/out/api/learning-path-api.js.map +1 -1
  23. package/out/api/self-explanation-api.d.ts +4 -0
  24. package/out/api/self-explanation-api.d.ts.map +1 -1
  25. package/out/api/self-explanation-api.js +60 -2
  26. package/out/api/self-explanation-api.js.map +1 -1
  27. package/out/api/semantic-search-api.d.ts +3 -0
  28. package/out/api/semantic-search-api.d.ts.map +1 -1
  29. package/out/api/semantic-search-api.js +39 -2
  30. package/out/api/semantic-search-api.js.map +1 -1
  31. package/out/api/source-access-contract-api.d.ts +60 -0
  32. package/out/api/source-access-contract-api.d.ts.map +1 -0
  33. package/out/api/source-access-contract-api.js +192 -0
  34. package/out/api/source-access-contract-api.js.map +1 -0
  35. package/out/api/source-snippet-api.d.ts +58 -0
  36. package/out/api/source-snippet-api.d.ts.map +1 -0
  37. package/out/api/source-snippet-api.js +185 -0
  38. package/out/api/source-snippet-api.js.map +1 -0
  39. package/out/api/vector-backend-status-api.d.ts +68 -0
  40. package/out/api/vector-backend-status-api.d.ts.map +1 -0
  41. package/out/api/vector-backend-status-api.js +241 -0
  42. package/out/api/vector-backend-status-api.js.map +1 -0
  43. package/out/cli/debug-plugin-id.d.ts +9 -0
  44. package/out/cli/debug-plugin-id.d.ts.map +1 -0
  45. package/out/cli/debug-plugin-id.js +188 -0
  46. package/out/cli/debug-plugin-id.js.map +1 -0
  47. package/out/cli/tool-cli.js +1 -1
  48. package/out/cli/tool-cli.js.map +1 -1
  49. package/out/ingestors/module-ingestor.d.ts.map +1 -1
  50. package/out/ingestors/module-ingestor.js +17 -0
  51. package/out/ingestors/module-ingestor.js.map +1 -1
  52. package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
  53. package/out/ingestors/symbol-ingestor.js +6 -0
  54. package/out/ingestors/symbol-ingestor.js.map +1 -1
  55. package/out/mcp/tools/gap-analysis.d.ts +13 -1
  56. package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
  57. package/out/mcp/tools/gap-analysis.js +153 -26
  58. package/out/mcp/tools/gap-analysis.js.map +1 -1
  59. package/out/mcp/tools/learning-path.d.ts.map +1 -1
  60. package/out/mcp/tools/learning-path.js +19 -5
  61. package/out/mcp/tools/learning-path.js.map +1 -1
  62. package/out/mcp/tools/semantic-discovery.d.ts.map +1 -1
  63. package/out/mcp/tools/semantic-discovery.js +44 -4
  64. package/out/mcp/tools/semantic-discovery.js.map +1 -1
  65. package/out/mcp/tools/source-access-contract.d.ts +26 -0
  66. package/out/mcp/tools/source-access-contract.d.ts.map +1 -0
  67. package/out/mcp/tools/source-access-contract.js +43 -0
  68. package/out/mcp/tools/source-access-contract.js.map +1 -0
  69. package/out/mcp/tools/source-snippet.d.ts +71 -0
  70. package/out/mcp/tools/source-snippet.d.ts.map +1 -0
  71. package/out/mcp/tools/source-snippet.js +82 -0
  72. package/out/mcp/tools/source-snippet.js.map +1 -0
  73. package/out/models/action-hint.d.ts +36 -0
  74. package/out/models/action-hint.d.ts.map +1 -0
  75. package/out/models/action-hint.js +38 -0
  76. package/out/models/action-hint.js.map +1 -0
  77. package/out/models/evidence.d.ts +68 -0
  78. package/out/models/evidence.d.ts.map +1 -0
  79. package/out/models/evidence.js +91 -0
  80. package/out/models/evidence.js.map +1 -0
  81. package/out/models/module.d.ts +2 -0
  82. package/out/models/module.d.ts.map +1 -1
  83. package/out/models/reason-codes.d.ts +50 -0
  84. package/out/models/reason-codes.d.ts.map +1 -0
  85. package/out/models/reason-codes.js +80 -0
  86. package/out/models/reason-codes.js.map +1 -0
  87. package/out/models/symbol.d.ts +6 -0
  88. package/out/models/symbol.d.ts.map +1 -1
  89. package/out/repositories/module-repository.d.ts.map +1 -1
  90. package/out/repositories/module-repository.js +9 -3
  91. package/out/repositories/module-repository.js.map +1 -1
  92. package/out/repositories/symbol-repository.d.ts.map +1 -1
  93. package/out/repositories/symbol-repository.js +21 -3
  94. package/out/repositories/symbol-repository.js.map +1 -1
  95. package/package.json +3 -3
  96. package/schemas/sqlite/007_add_source_code_spans.sql +19 -0
  97. package/schemas/sqlite/008_add_source_access_config.sql +33 -0
@@ -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,49 @@ 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
+ const baseGap = {
116
+ module: {
117
+ file_path: view.module.file_path,
118
+ content_hash: view.module.content_hash
119
+ },
120
+ dependency_count: view.dependencies.length,
121
+ adr_count: view.adrs.length,
122
+ adr_numbers: view.adrs.map(adr => adr.adr_number),
123
+ gap_score: this.calculateGapScore(view.dependencies.length, view.adrs.length),
124
+ has_adrs: view.adrs.length > 0
125
+ };
126
+ // Add context information for modules without ADRs (for KI-Agent ADR generation)
127
+ if (!baseGap.has_adrs) {
128
+ const context = await this.buildAdrGenerationContext(view.module, view.dependencies, args.pluginId);
129
+ return {
130
+ ...baseGap,
131
+ context_for_adr_generation: context
132
+ };
133
+ }
134
+ return baseGap;
135
+ }));
136
+ // Sort by gap score (highest first) and limit
137
+ gaps.sort((a, b) => b.gap_score - a.gap_score);
138
+ const limitedGaps = gaps.slice(0, limit);
116
139
  // 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);
140
+ const withoutAdrs = limitedGaps.filter(g => !g.has_adrs);
141
+ const withFewAdrs = limitedGaps.filter(g => g.has_adrs && g.adr_count < 2);
142
+ const wellDocumented = limitedGaps.filter(g => g.has_adrs && g.adr_count >= 2);
120
143
  // Calculate statistics
121
144
  const stats = {
122
145
  total_modules_analyzed: architecturalView.length,
123
- modules_with_many_deps: gaps.length,
146
+ modules_with_many_deps: limitedGaps.length,
124
147
  modules_without_adrs: withoutAdrs.length,
125
148
  modules_with_few_adrs: withFewAdrs.length,
126
149
  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)
150
+ avg_dependencies: limitedGaps.length > 0
151
+ ? Math.round(limitedGaps.reduce((sum, g) => sum + g.dependency_count, 0) / limitedGaps.length)
129
152
  : 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)
153
+ avg_adrs: limitedGaps.length > 0 && limitedGaps.filter(g => g.has_adrs).length > 0
154
+ ? Math.round(limitedGaps.filter(g => g.has_adrs).reduce((sum, g) => sum + g.adr_count, 0) / limitedGaps.filter(g => g.has_adrs).length)
132
155
  : 0
133
156
  };
134
157
  // Auto-generate ADRs if requested
@@ -165,6 +188,95 @@ class GapAnalysisTool {
165
188
  recommendations: this.generateRecommendations(withoutAdrs, withFewAdrs, generatedAdrs.length)
166
189
  }, null, 2);
167
190
  }
191
+ /**
192
+ * Builds context information for ADR generation by KI-Agent.
193
+ * Includes similar modules with ADRs, existing patterns, and cross-dimension context.
194
+ */
195
+ async buildAdrGenerationContext(module, dependencies, pluginId) {
196
+ const context = {
197
+ similar_modules_with_adrs: [],
198
+ existing_adr_patterns: [],
199
+ dependencies_details: [],
200
+ cross_dimension_context: {
201
+ symbols: [],
202
+ incoming_dependencies: 0,
203
+ outgoing_dependencies: dependencies.length
204
+ }
205
+ };
206
+ try {
207
+ // 1. Find similar modules with ADRs (same directory or similar path structure)
208
+ const moduleDir = path.dirname(module.file_path);
209
+ const allModules = await this.moduleApi.getAllModules(pluginId);
210
+ // Get all ADRs and their file mappings
211
+ const adrDb = await this.dbManager.getDatabase('W');
212
+ const { AdrRepository } = await Promise.resolve().then(() => __importStar(require('../../repositories/adr-repository')));
213
+ const adrRepo = new AdrRepository(adrDb);
214
+ const allAdrs = await adrRepo.getAll(pluginId);
215
+ // Build map of file_path -> ADR numbers using file mappings
216
+ const adrsByPath = new Map();
217
+ for (const adr of allAdrs) {
218
+ const fileMappings = await adrRepo.getAdrFileMappings(adr.id);
219
+ for (const mapping of fileMappings) {
220
+ if (!adrsByPath.has(mapping.file_path)) {
221
+ adrsByPath.set(mapping.file_path, []);
222
+ }
223
+ adrsByPath.get(mapping.file_path).push(adr.adr_number);
224
+ }
225
+ }
226
+ // Find modules in same directory or similar path structure with ADRs
227
+ for (const otherModule of allModules) {
228
+ if (otherModule.file_path === module.file_path)
229
+ continue;
230
+ const otherModuleDir = path.dirname(otherModule.file_path);
231
+ const hasAdrs = adrsByPath.has(otherModule.file_path);
232
+ // Similar if same directory or similar path depth
233
+ if (hasAdrs && (otherModuleDir === moduleDir ||
234
+ otherModuleDir.split(path.sep).length === moduleDir.split(path.sep).length)) {
235
+ context.similar_modules_with_adrs.push({
236
+ file_path: otherModule.file_path,
237
+ adr_numbers: adrsByPath.get(otherModule.file_path) || []
238
+ });
239
+ }
240
+ }
241
+ // Limit to top 5 similar modules
242
+ context.similar_modules_with_adrs = context.similar_modules_with_adrs.slice(0, 5);
243
+ // 2. Extract ADR patterns from similar modules
244
+ for (const similar of context.similar_modules_with_adrs) {
245
+ for (const adrNumber of similar.adr_numbers) {
246
+ const adr = await this.adrApi.getAdrByNumber(adrNumber, pluginId);
247
+ if (adr) {
248
+ // Extract pattern: first line of decision or context
249
+ const pattern = adr.content_markdown?.split('\n').find((line) => line.trim().startsWith('## Entscheidung') ||
250
+ line.trim().startsWith('## Kontext')) || 'ADR pattern';
251
+ context.existing_adr_patterns.push({
252
+ adr_number: adrNumber,
253
+ pattern: pattern.substring(0, 100) // Limit length
254
+ });
255
+ }
256
+ }
257
+ }
258
+ // Limit to top 10 patterns
259
+ context.existing_adr_patterns = context.existing_adr_patterns.slice(0, 10);
260
+ // 3. Get detailed dependencies information
261
+ context.dependencies_details = dependencies.map(dep => ({
262
+ to_module: dep.to_module || dep.toModule || '',
263
+ dependency_type: dep.dependency_type || dep.dependencyType || 'import'
264
+ }));
265
+ // 4. Get incoming dependencies count
266
+ const incomingDeps = await this.dependencyApi.getDependenciesByToModule(module.file_path, pluginId);
267
+ context.cross_dimension_context.incoming_dependencies = incomingDeps.length;
268
+ // 5. Get symbols for cross-dimension context
269
+ const symbols = await this.crossDimensionApi.getSymbolsForModule(module.file_path, pluginId);
270
+ context.cross_dimension_context.symbols = symbols.slice(0, 20).map((sym) => ({
271
+ name: sym.name || sym.symbol_name || '',
272
+ type: sym.type || sym.symbol_type || ''
273
+ }));
274
+ }
275
+ catch (error) {
276
+ console.warn(`[GapAnalysisTool] Failed to build ADR generation context for ${module.file_path}: ${error?.message || String(error)}`);
277
+ }
278
+ return context;
279
+ }
168
280
  /**
169
281
  * Calculates a gap score for prioritization.
170
282
  * Higher score = more urgent to document.
@@ -195,6 +307,9 @@ class GapAnalysisTool {
195
307
  if (generatedCount > 0) {
196
308
  recommendations.push(`\n✅ ${generatedCount} ADR(s) wurden automatisch generiert.`);
197
309
  }
310
+ else if (withoutAdrs.length > 0) {
311
+ 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).`);
312
+ }
198
313
  if (recommendations.length === 0) {
199
314
  recommendations.push('✅ Alle Module mit vielen Dependencies sind gut dokumentiert!');
200
315
  }
@@ -223,13 +338,14 @@ class GapAnalysisTool {
223
338
  const count = depCounts.get(dep.from_module) || 0;
224
339
  depCounts.set(dep.from_module, count + 1);
225
340
  }
226
- // Build gaps
341
+ // Build gaps with context information
227
342
  const gaps = [];
228
343
  for (const module of modules) {
229
344
  const depCount = depCounts.get(module.file_path) || 0;
230
345
  if (depCount >= minDeps) {
231
346
  const adrs = await adrRepo.findByFilePath(module.file_path, pluginId);
232
- gaps.push({
347
+ const dependencies = await depRepo.findByFromModule(module.file_path, pluginId);
348
+ const baseGap = {
233
349
  module: {
234
350
  file_path: module.file_path,
235
351
  content_hash: module.content_hash
@@ -239,7 +355,18 @@ class GapAnalysisTool {
239
355
  adr_numbers: adrs.map(adr => adr.adr_number),
240
356
  gap_score: this.calculateGapScore(depCount, adrs.length),
241
357
  has_adrs: adrs.length > 0
242
- });
358
+ };
359
+ // Add context information for modules without ADRs
360
+ if (!baseGap.has_adrs) {
361
+ const context = await this.buildAdrGenerationContext(module, dependencies, pluginId);
362
+ gaps.push({
363
+ ...baseGap,
364
+ context_for_adr_generation: context
365
+ });
366
+ }
367
+ else {
368
+ gaps.push(baseGap);
369
+ }
243
370
  }
244
371
  }
245
372
  // 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":";;AAUA,4DA8EC;AAtFD,uEAAkE;AAClE,+DAA2D;AAC3D,6EAAyE;AAEzE;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAC1C,IAAyD,EACzD,SAAyB,EACzB,QAAkB;IAElB,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,cAAc,GAAG,IAAI,gCAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE/D,qBAAqB;QACrB,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACD,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAChE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;aAC1B,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,WAAgB,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,QAAQ,GAAG,WAAW,EAAE,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,2BAA2B,QAAQ,EAAE;gBAC5C,QAAQ,EAAE,sDAAsD;aACnE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACD,OAAO,GAAG,MAAM,cAAc,CAAC,YAAY,CACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC7B,IAAI,CAAC,QAAQ,CAChB,CAAC;QACN,CAAC;QAAC,OAAO,YAAiB,EAAE,CAAC;YACzB,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,YAAY,EAAE,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,eAAe,EAAE,CAAC,CAAC,eAAe;iBACrC,CAAC,CAAC;gBACH,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,4BAA4B,QAAQ,EAAE;aAClD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,gDAAgD;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,eAAe,EAAE,CAAC,CAAC,eAAe;aACrC,CAAC,CAAC;YACH,OAAO;SACV,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,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,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,8BAA8B,QAAQ,EAAE;YAC/C,KAAK,EAAE,UAAU;SACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"semantic-discovery.js","sourceRoot":"","sources":["../../../src/mcp/tools/semantic-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager.js';
2
+ /**
3
+ * MCP Tool: source_access_contract
4
+ * Get source access contract (deterministic status of code availability)
5
+ */
6
+ export declare const sourceAccessContractTool: {
7
+ name: string;
8
+ description: string;
9
+ inputSchema: {
10
+ type: string;
11
+ properties: {
12
+ workspaceRoot: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ };
17
+ required: never[];
18
+ };
19
+ };
20
+ /**
21
+ * Executes source_access_contract tool.
22
+ */
23
+ export declare function executeSourceAccessContract(args: {
24
+ workspaceRoot?: string;
25
+ }, dbManager: MultiDbManager): Promise<string>;
26
+ //# sourceMappingURL=source-access-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-access-contract.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/source-access-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAcpC,CAAC;AAEF;;GAEG;AACH,wBAAsB,2BAA2B,CAC7C,IAAI,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sourceAccessContractTool = void 0;
4
+ exports.executeSourceAccessContract = executeSourceAccessContract;
5
+ const source_access_contract_api_js_1 = require("../../api/source-access-contract-api.js");
6
+ /**
7
+ * MCP Tool: source_access_contract
8
+ * Get source access contract (deterministic status of code availability)
9
+ */
10
+ exports.sourceAccessContractTool = {
11
+ name: 'source_access_contract',
12
+ description: 'Get source access contract (deterministic status of code availability). ' +
13
+ 'Returns whether source code is available, constraints, and reason codes.',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ workspaceRoot: {
18
+ type: 'string',
19
+ description: 'Workspace root path (optional, defaults to current working directory)'
20
+ }
21
+ },
22
+ required: []
23
+ }
24
+ };
25
+ /**
26
+ * Executes source_access_contract tool.
27
+ */
28
+ async function executeSourceAccessContract(args, dbManager) {
29
+ try {
30
+ const api = new source_access_contract_api_js_1.SourceAccessContractApi(dbManager);
31
+ const contract = await api.getContract(args.workspaceRoot);
32
+ return JSON.stringify(contract, null, 2);
33
+ }
34
+ catch (error) {
35
+ const errorMsg = error?.message || String(error);
36
+ return JSON.stringify({
37
+ error: `Failed to get source access contract: ${errorMsg}`,
38
+ status: 'UNAVAILABLE',
39
+ reason_codes: ['NOT_MOUNTED']
40
+ }, null, 2);
41
+ }
42
+ }
43
+ //# sourceMappingURL=source-access-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-access-contract.js","sourceRoot":"","sources":["../../../src/mcp/tools/source-access-contract.ts"],"names":[],"mappings":";;;AA0BA,kEAiBC;AA3CD,2FAAkF;AAGlF;;;GAGG;AACU,QAAA,wBAAwB,GAAG;IACpC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,0EAA0E;QAC1E,0EAA0E;IACvF,WAAW,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,aAAa,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uEAAuE;aACvF;SACJ;QACD,QAAQ,EAAE,EAAE;KACf;CACJ,CAAC;AAEF;;GAEG;AACI,KAAK,UAAU,2BAA2B,CAC7C,IAAgC,EAChC,SAAyB;IAEzB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,uDAAuB,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,KAAK,EAAE,yCAAyC,QAAQ,EAAE;YAC1D,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,CAAC,aAAa,CAAC;SAChC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;AACL,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager.js';
2
+ /**
3
+ * MCP Tool: source_snippet
4
+ * Fetch source code snippet by reference (gated, refs-first)
5
+ */
6
+ export declare const sourceSnippetTool: {
7
+ name: string;
8
+ description: string;
9
+ inputSchema: {
10
+ type: string;
11
+ properties: {
12
+ symbol_id: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ file_path: {
17
+ type: string;
18
+ description: string;
19
+ };
20
+ start_line: {
21
+ type: string;
22
+ description: string;
23
+ };
24
+ end_line: {
25
+ type: string;
26
+ description: string;
27
+ };
28
+ content_hash: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ include_context: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ context_lines: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ verify_hash: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ pluginId: {
45
+ type: string;
46
+ description: string;
47
+ };
48
+ workspaceRoot: {
49
+ type: string;
50
+ description: string;
51
+ };
52
+ };
53
+ required: string[];
54
+ };
55
+ };
56
+ /**
57
+ * Executes source_snippet tool.
58
+ */
59
+ export declare function executeSourceSnippet(args: {
60
+ symbol_id?: string;
61
+ file_path?: string;
62
+ start_line?: number;
63
+ end_line?: number;
64
+ content_hash?: string;
65
+ include_context?: boolean;
66
+ context_lines?: number;
67
+ verify_hash?: boolean;
68
+ pluginId: string;
69
+ workspaceRoot?: string;
70
+ }, dbManager: MultiDbManager): Promise<string>;
71
+ //# sourceMappingURL=source-snippet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-snippet.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/source-snippet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD7B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,IAAI,EAAE;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}