@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.
- package/out/api/adr-api.d.ts.map +1 -1
- package/out/api/adr-api.js +12 -7
- package/out/api/adr-api.js.map +1 -1
- package/out/api/bootstrap-api.d.ts +3 -0
- package/out/api/bootstrap-api.d.ts.map +1 -1
- package/out/api/bootstrap-api.js +11 -1
- package/out/api/bootstrap-api.js.map +1 -1
- package/out/api/context-builder.d.ts.map +1 -1
- package/out/api/context-builder.js +21 -5
- package/out/api/context-builder.js.map +1 -1
- package/out/api/evidence-grader.d.ts +83 -0
- package/out/api/evidence-grader.d.ts.map +1 -0
- package/out/api/evidence-grader.js +161 -0
- package/out/api/evidence-grader.js.map +1 -0
- package/out/api/index.d.ts +5 -0
- package/out/api/index.d.ts.map +1 -1
- package/out/api/index.js +11 -1
- package/out/api/index.js.map +1 -1
- package/out/api/learning-path-api.d.ts +3 -0
- package/out/api/learning-path-api.d.ts.map +1 -1
- package/out/api/learning-path-api.js +15 -2
- package/out/api/learning-path-api.js.map +1 -1
- package/out/api/self-explanation-api.d.ts +4 -0
- package/out/api/self-explanation-api.d.ts.map +1 -1
- package/out/api/self-explanation-api.js +60 -2
- package/out/api/self-explanation-api.js.map +1 -1
- package/out/api/semantic-search-api.d.ts +3 -0
- package/out/api/semantic-search-api.d.ts.map +1 -1
- package/out/api/semantic-search-api.js +39 -2
- package/out/api/semantic-search-api.js.map +1 -1
- package/out/api/source-access-contract-api.d.ts +60 -0
- package/out/api/source-access-contract-api.d.ts.map +1 -0
- package/out/api/source-access-contract-api.js +192 -0
- package/out/api/source-access-contract-api.js.map +1 -0
- package/out/api/source-snippet-api.d.ts +58 -0
- package/out/api/source-snippet-api.d.ts.map +1 -0
- package/out/api/source-snippet-api.js +185 -0
- package/out/api/source-snippet-api.js.map +1 -0
- package/out/api/vector-backend-status-api.d.ts +68 -0
- package/out/api/vector-backend-status-api.d.ts.map +1 -0
- package/out/api/vector-backend-status-api.js +241 -0
- package/out/api/vector-backend-status-api.js.map +1 -0
- package/out/cli/debug-plugin-id.d.ts +9 -0
- package/out/cli/debug-plugin-id.d.ts.map +1 -0
- package/out/cli/debug-plugin-id.js +188 -0
- package/out/cli/debug-plugin-id.js.map +1 -0
- package/out/cli/tool-cli.js +1 -1
- package/out/cli/tool-cli.js.map +1 -1
- package/out/ingestors/module-ingestor.d.ts.map +1 -1
- package/out/ingestors/module-ingestor.js +17 -0
- package/out/ingestors/module-ingestor.js.map +1 -1
- package/out/ingestors/symbol-ingestor.d.ts.map +1 -1
- package/out/ingestors/symbol-ingestor.js +6 -0
- package/out/ingestors/symbol-ingestor.js.map +1 -1
- package/out/mcp/tools/gap-analysis.d.ts +13 -1
- package/out/mcp/tools/gap-analysis.d.ts.map +1 -1
- package/out/mcp/tools/gap-analysis.js +153 -26
- package/out/mcp/tools/gap-analysis.js.map +1 -1
- package/out/mcp/tools/learning-path.d.ts.map +1 -1
- package/out/mcp/tools/learning-path.js +19 -5
- package/out/mcp/tools/learning-path.js.map +1 -1
- package/out/mcp/tools/semantic-discovery.d.ts.map +1 -1
- package/out/mcp/tools/semantic-discovery.js +44 -4
- package/out/mcp/tools/semantic-discovery.js.map +1 -1
- package/out/mcp/tools/source-access-contract.d.ts +26 -0
- package/out/mcp/tools/source-access-contract.d.ts.map +1 -0
- package/out/mcp/tools/source-access-contract.js +43 -0
- package/out/mcp/tools/source-access-contract.js.map +1 -0
- package/out/mcp/tools/source-snippet.d.ts +71 -0
- package/out/mcp/tools/source-snippet.d.ts.map +1 -0
- package/out/mcp/tools/source-snippet.js +82 -0
- package/out/mcp/tools/source-snippet.js.map +1 -0
- package/out/models/action-hint.d.ts +36 -0
- package/out/models/action-hint.d.ts.map +1 -0
- package/out/models/action-hint.js +38 -0
- package/out/models/action-hint.js.map +1 -0
- package/out/models/evidence.d.ts +68 -0
- package/out/models/evidence.d.ts.map +1 -0
- package/out/models/evidence.js +91 -0
- package/out/models/evidence.js.map +1 -0
- package/out/models/module.d.ts +2 -0
- package/out/models/module.d.ts.map +1 -1
- package/out/models/reason-codes.d.ts +50 -0
- package/out/models/reason-codes.d.ts.map +1 -0
- package/out/models/reason-codes.js +80 -0
- package/out/models/reason-codes.js.map +1 -0
- package/out/models/symbol.d.ts +6 -0
- package/out/models/symbol.d.ts.map +1 -1
- package/out/repositories/module-repository.d.ts.map +1 -1
- package/out/repositories/module-repository.js +9 -3
- package/out/repositories/module-repository.js.map +1 -1
- package/out/repositories/symbol-repository.d.ts.map +1 -1
- package/out/repositories/symbol-repository.js +21 -3
- package/out/repositories/symbol-repository.js.map +1 -1
- package/package.json +3 -3
- package/schemas/sqlite/007_add_source_code_spans.sql +19 -0
- 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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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 =
|
|
118
|
-
const withFewAdrs =
|
|
119
|
-
const wellDocumented =
|
|
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:
|
|
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:
|
|
128
|
-
? Math.round(
|
|
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:
|
|
131
|
-
? Math.round(
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uEAAkE;AAElE,mDAAmD;AAGnD;;;GAGG;AACH,MAAa,eAAe;IAMxB,YAAY,SAAyB,EAAE,QAAkB,EAAE,aAAsB;QAC7E,IAAI,CAAC,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,IAKpB;QACG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAE/B,yDAAyD;QACzD,IAAI,iBAAiB,CAAC;QACtB,IAAI,CAAC;YACD,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,yDAAyD,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1G,sCAAsC;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,OAAO,EAAE;oBACL,0BAA0B,EAAE,OAAO;oBACnC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACvC,UAAU,EAAE;wBACR,sBAAsB,EAAE,CAAC;wBACzB,sBAAsB,EAAE,CAAC;wBACzB,oBAAoB,EAAE,CAAC;wBACvB,qBAAqB,EAAE,CAAC;wBACxB,uBAAuB,EAAE,CAAC;wBAC1B,gBAAgB,EAAE,CAAC;wBACnB,QAAQ,EAAE,CAAC;qBACd;oBACD,mBAAmB,EAAE,CAAC;oBACtB,KAAK,EAAE,uCAAuC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;iBAClF;gBACD,IAAI,EAAE;oBACF,YAAY,EAAE,EAAE;oBAChB,aAAa,EAAE,EAAE;oBACjB,eAAe,EAAE,EAAE;iBACtB;gBACD,cAAc,EAAE,EAAE;gBAClB,eAAe,EAAE;oBACb,iCAAiC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;oBAClE,iEAAiE;oBACjE,4EAA4E;iBAC/E;aACJ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,wEAAwE;QACxE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;QAED,eAAe;QACf,MAAM,IAAI,GAAG,iBAAiB;aACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC;aACnD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACV,MAAM,EAAE;gBACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aACzC;YACD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC3B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;YACjD,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7E,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;SACjC,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,0BAA0B;aACpE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAErB,2BAA2B;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAExE,uBAAuB;QACvB,MAAM,KAAK,GAAG;YACV,sBAAsB,EAAE,iBAAiB,CAAC,MAAM;YAChD,sBAAsB,EAAE,IAAI,CAAC,MAAM;YACnC,oBAAoB,EAAE,WAAW,CAAC,MAAM;YACxC,qBAAqB,EAAE,WAAW,CAAC,MAAM;YACzC,uBAAuB,EAAE,cAAc,CAAC,MAAM;YAC9C,gBAAgB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBAChF,CAAC,CAAC,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;gBAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;gBACzH,CAAC,CAAC,CAAC;SACV,CAAC;QAEF,kCAAkC;QAClC,IAAI,aAAa,GAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,gCAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7F,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;oBAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,eAAe,EAAE,OAAO;oBACxB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;oBAC1C,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC1C,aAAa,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE;gBACL,0BAA0B,EAAE,OAAO;gBACnC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACvC,UAAU,EAAE,KAAK;gBACjB,mBAAmB,EAAE,aAAa,CAAC,MAAM;aAC5C;YACD,IAAI,EAAE;gBACF,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,WAAW;gBAC1B,eAAe,EAAE,cAAc;aAClC;YACD,cAAc,EAAE,aAAa;YAC7B,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;SAChG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,eAAuB,EAAE,QAAgB;QAC/D,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC3B,WAAkG,EAClG,WAAqH,EACrH,iBAAyB,CAAC;QAE1B,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,eAAe,CAAC,IAAI,CAChB,MAAM,WAAW,CAAC,MAAM,oEAAoE,CAC/F,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC3C,eAAe,CAAC,IAAI,CAChB,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,gBAAgB,6BAA6B,GAAG,CAAC,SAAS,GAAG,CACjH,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,eAAe,CAAC,IAAI,CAChB,OAAO,WAAW,CAAC,MAAM,sEAAsE,CAClG,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC3C,eAAe,CAAC,IAAI,CAChB,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,gBAAgB,kBAAkB,GAAG,CAAC,SAAS,UAAU,CAC7G,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,OAAO,cAAc,uCAAuC,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,eAAe,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC7B,QAAgB,EAChB,OAAe,EACf,KAAa;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEpD,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sCAAsC,GAAC,CAAC;QAClF,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,0CAA0C,GAAC,CAAC;QAC1F,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,mCAAmC,GAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAEzC,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElD,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,aAAa;QACb,MAAM,IAAI,GAOL,EAAE,CAAC;QAER,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACtE,IAAI,CAAC,IAAI,CAAC;oBACN,MAAM,EAAE;wBACJ,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;qBACpC;oBACD,gBAAgB,EAAE,QAAQ;oBAC1B,SAAS,EAAE,IAAI,CAAC,MAAM;oBACtB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC5C,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;oBACxD,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;iBAC5B,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEzC,2BAA2B;QAC3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAE/E,uBAAuB;QACvB,MAAM,KAAK,GAAG;YACV,sBAAsB,EAAE,OAAO,CAAC,MAAM;YACtC,sBAAsB,EAAE,WAAW,CAAC,MAAM;YAC1C,oBAAoB,EAAE,WAAW,CAAC,MAAM;YACxC,qBAAqB,EAAE,WAAW,CAAC,MAAM;YACzC,uBAAuB,EAAE,cAAc,CAAC,MAAM;YAC9C,gBAAgB,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC9F,CAAC,CAAC,CAAC;YACP,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC9E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;gBACvI,CAAC,CAAC,CAAC;SACV,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE;gBACL,0BAA0B,EAAE,OAAO;gBACnC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACvC,UAAU,EAAE,KAAK;gBACjB,mBAAmB,EAAE,CAAC;gBACtB,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,+EAA+E;aACxF;YACD,IAAI,EAAE;gBACF,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,WAAW;gBAC1B,eAAe,EAAE,cAAc;aAClC;YACD,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;SAC7E,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;CACJ;AA1SD,0CA0SC"}
|
|
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,
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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,
|
|
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;
|
|
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,
|
|
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.
|
|
57
|
-
|
|
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
|
-
}
|
|
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":";;
|
|
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"}
|