purecontext-mcp 1.1.8 → 1.2.0
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/AGENT_INSTRUCTIONS.md +393 -0
- package/AGENT_INSTRUCTIONS_SHORT.md +53 -0
- package/AST-SEARCH.md +274 -0
- package/CHANGELOG.md +62 -0
- package/CODE-INTELLIGENCE.md +369 -0
- package/HEALTH-DASHBOARDS.md +241 -0
- package/README.md +7 -0
- package/REFACTORING-SAFELY.md +279 -0
- package/UNDERSTANDING-RELATIONSHIPS.md +240 -0
- package/USER-GUIDE.md +14 -0
- package/VISUALIZING-CODE.md +199 -0
- package/WORKFLOW-TECH-DEBT.md +286 -0
- package/dist/core/db/dep-store.d.ts +75 -0
- package/dist/core/db/dep-store.d.ts.map +1 -1
- package/dist/core/db/dep-store.js +277 -0
- package/dist/core/db/dep-store.js.map +1 -1
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.js +12 -0
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/index-manager.js +1 -1
- package/dist/core/index-manager.js.map +1 -1
- package/dist/core/types.d.ts +5 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/diagram-renderer.d.ts +83 -0
- package/dist/graph/diagram-renderer.d.ts.map +1 -0
- package/dist/graph/diagram-renderer.js +294 -0
- package/dist/graph/diagram-renderer.js.map +1 -0
- package/dist/graph/graph-traversal.d.ts +92 -0
- package/dist/graph/graph-traversal.d.ts.map +1 -1
- package/dist/graph/graph-traversal.js +440 -2
- package/dist/graph/graph-traversal.js.map +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +145 -0
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/tools/check-delete-safe.d.ts +50 -0
- package/dist/server/tools/check-delete-safe.d.ts.map +1 -0
- package/dist/server/tools/check-delete-safe.js +308 -0
- package/dist/server/tools/check-delete-safe.js.map +1 -0
- package/dist/server/tools/check-move-safe.d.ts +44 -0
- package/dist/server/tools/check-move-safe.d.ts.map +1 -0
- package/dist/server/tools/check-move-safe.js +266 -0
- package/dist/server/tools/check-move-safe.js.map +1 -0
- package/dist/server/tools/check-rename-safe.d.ts +48 -0
- package/dist/server/tools/check-rename-safe.d.ts.map +1 -0
- package/dist/server/tools/check-rename-safe.js +218 -0
- package/dist/server/tools/check-rename-safe.js.map +1 -0
- package/dist/server/tools/diff-health-radar.d.ts +44 -0
- package/dist/server/tools/diff-health-radar.d.ts.map +1 -0
- package/dist/server/tools/diff-health-radar.js +192 -0
- package/dist/server/tools/diff-health-radar.js.map +1 -0
- package/dist/server/tools/find-cycles.d.ts +31 -0
- package/dist/server/tools/find-cycles.d.ts.map +1 -0
- package/dist/server/tools/find-cycles.js +85 -0
- package/dist/server/tools/find-cycles.js.map +1 -0
- package/dist/server/tools/find-implementations.d.ts +47 -0
- package/dist/server/tools/find-implementations.d.ts.map +1 -0
- package/dist/server/tools/find-implementations.js +167 -0
- package/dist/server/tools/find-implementations.js.map +1 -0
- package/dist/server/tools/find-untested-symbols.d.ts +52 -0
- package/dist/server/tools/find-untested-symbols.d.ts.map +1 -0
- package/dist/server/tools/find-untested-symbols.js +308 -0
- package/dist/server/tools/find-untested-symbols.js.map +1 -0
- package/dist/server/tools/get-architecture-snapshot.d.ts +43 -0
- package/dist/server/tools/get-architecture-snapshot.d.ts.map +1 -0
- package/dist/server/tools/get-architecture-snapshot.js +292 -0
- package/dist/server/tools/get-architecture-snapshot.js.map +1 -0
- package/dist/server/tools/get-call-hierarchy.d.ts +43 -0
- package/dist/server/tools/get-call-hierarchy.d.ts.map +1 -0
- package/dist/server/tools/get-call-hierarchy.js +119 -0
- package/dist/server/tools/get-call-hierarchy.js.map +1 -0
- package/dist/server/tools/get-class-hierarchy.d.ts +36 -0
- package/dist/server/tools/get-class-hierarchy.d.ts.map +1 -0
- package/dist/server/tools/get-class-hierarchy.js +125 -0
- package/dist/server/tools/get-class-hierarchy.js.map +1 -0
- package/dist/server/tools/get-complexity-hotspots.d.ts +50 -0
- package/dist/server/tools/get-complexity-hotspots.d.ts.map +1 -0
- package/dist/server/tools/get-complexity-hotspots.js +282 -0
- package/dist/server/tools/get-complexity-hotspots.js.map +1 -0
- package/dist/server/tools/get-coupling-map.d.ts +39 -0
- package/dist/server/tools/get-coupling-map.d.ts.map +1 -0
- package/dist/server/tools/get-coupling-map.js +107 -0
- package/dist/server/tools/get-coupling-map.js.map +1 -0
- package/dist/server/tools/get-debt-report.d.ts +44 -0
- package/dist/server/tools/get-debt-report.d.ts.map +1 -0
- package/dist/server/tools/get-debt-report.js +606 -0
- package/dist/server/tools/get-debt-report.js.map +1 -0
- package/dist/server/tools/get-entry-points.d.ts +79 -0
- package/dist/server/tools/get-entry-points.d.ts.map +1 -0
- package/dist/server/tools/get-entry-points.js +362 -0
- package/dist/server/tools/get-entry-points.js.map +1 -0
- package/dist/server/tools/get-public-api.d.ts +53 -0
- package/dist/server/tools/get-public-api.d.ts.map +1 -0
- package/dist/server/tools/get-public-api.js +218 -0
- package/dist/server/tools/get-public-api.js.map +1 -0
- package/dist/server/tools/get-test-coverage-map.d.ts +66 -0
- package/dist/server/tools/get-test-coverage-map.d.ts.map +1 -0
- package/dist/server/tools/get-test-coverage-map.js +588 -0
- package/dist/server/tools/get-test-coverage-map.js.map +1 -0
- package/dist/server/tools/get-todos.d.ts +51 -0
- package/dist/server/tools/get-todos.d.ts.map +1 -0
- package/dist/server/tools/get-todos.js +180 -0
- package/dist/server/tools/get-todos.js.map +1 -0
- package/dist/server/tools/get-type-graph.d.ts +73 -0
- package/dist/server/tools/get-type-graph.d.ts.map +1 -0
- package/dist/server/tools/get-type-graph.js +437 -0
- package/dist/server/tools/get-type-graph.js.map +1 -0
- package/dist/server/tools/health-radar.d.ts +50 -0
- package/dist/server/tools/health-radar.d.ts.map +1 -0
- package/dist/server/tools/health-radar.js +426 -0
- package/dist/server/tools/health-radar.js.map +1 -0
- package/dist/server/tools/plan-refactoring.d.ts +74 -0
- package/dist/server/tools/plan-refactoring.d.ts.map +1 -0
- package/dist/server/tools/plan-refactoring.js +644 -0
- package/dist/server/tools/plan-refactoring.js.map +1 -0
- package/dist/server/tools/render-call-graph.d.ts +40 -0
- package/dist/server/tools/render-call-graph.d.ts.map +1 -0
- package/dist/server/tools/render-call-graph.js +215 -0
- package/dist/server/tools/render-call-graph.js.map +1 -0
- package/dist/server/tools/render-class-hierarchy.d.ts +42 -0
- package/dist/server/tools/render-class-hierarchy.d.ts.map +1 -0
- package/dist/server/tools/render-class-hierarchy.js +265 -0
- package/dist/server/tools/render-class-hierarchy.js.map +1 -0
- package/dist/server/tools/render-dep-matrix.d.ts +38 -0
- package/dist/server/tools/render-dep-matrix.d.ts.map +1 -0
- package/dist/server/tools/render-dep-matrix.js +186 -0
- package/dist/server/tools/render-dep-matrix.js.map +1 -0
- package/dist/server/tools/render-diagram.d.ts +47 -0
- package/dist/server/tools/render-diagram.d.ts.map +1 -0
- package/dist/server/tools/render-diagram.js +266 -0
- package/dist/server/tools/render-diagram.js.map +1 -0
- package/dist/server/tools/render-import-graph.d.ts +41 -0
- package/dist/server/tools/render-import-graph.d.ts.map +1 -0
- package/dist/server/tools/render-import-graph.js +158 -0
- package/dist/server/tools/render-import-graph.js.map +1 -0
- package/dist/server/tools/search-ast.d.ts +55 -0
- package/dist/server/tools/search-ast.d.ts.map +1 -0
- package/dist/server/tools/search-ast.js +279 -0
- package/dist/server/tools/search-ast.js.map +1 -0
- package/dist/server/tools/search-by-complexity.d.ts +92 -0
- package/dist/server/tools/search-by-complexity.d.ts.map +1 -0
- package/dist/server/tools/search-by-complexity.js +268 -0
- package/dist/server/tools/search-by-complexity.js.map +1 -0
- package/dist/server/tools/search-by-decorator.d.ts +48 -0
- package/dist/server/tools/search-by-decorator.d.ts.map +1 -0
- package/dist/server/tools/search-by-decorator.js +518 -0
- package/dist/server/tools/search-by-decorator.js.map +1 -0
- package/dist/server/tools/search-by-signature.d.ts +56 -0
- package/dist/server/tools/search-by-signature.d.ts.map +1 -0
- package/dist/server/tools/search-by-signature.js +200 -0
- package/dist/server/tools/search-by-signature.js.map +1 -0
- package/dist/ui/assets/BlastRadius-QdgESOL8.js +1 -0
- package/dist/ui/assets/{DependencyGraph-B60SMPbX.js → DependencyGraph-BSMhzwWV.js} +1 -1
- package/dist/ui/assets/{NotFound-Bsg8Wppk.js → NotFound-CipFP_s1.js} +1 -1
- package/dist/ui/assets/{RepoDetail-Cie0D4_s.js → RepoDetail-Dfp5z5Kq.js} +1 -1
- package/dist/ui/assets/{RepoList-CldNt89M.js → RepoList-BKtST3hB.js} +1 -1
- package/dist/ui/assets/{Search-CgvpHMOi.js → Search-DzhGDViy.js} +1 -1
- package/dist/ui/assets/{SymbolView-B9h0LZTz.js → SymbolView-ryVEwAHG.js} +1 -1
- package/dist/ui/assets/{index-DADf5y_L.css → index-Ny8gn9F0.css} +1 -1
- package/dist/ui/assets/{index-eK0wMkUR.js → index-nX2chMqi.js} +2 -2
- package/dist/ui/assets/{useSearch-KAl3Qyi2.js → useSearch-BnBCRKui.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/dev/jcodemunch-gap-analysis.md +198 -0
- package/package.json +9 -1
- package/user-manual.md +2466 -0
- package/dist/ui/assets/BlastRadius-RP7vJEyQ.js +0 -1
|
@@ -43,6 +43,35 @@ import * as generateDocsTool from './tools/generate-docs.js';
|
|
|
43
43
|
import * as exportIndexTool from './tools/export-index.js';
|
|
44
44
|
import * as importIndexTool from './tools/import-index.js';
|
|
45
45
|
import * as fetchPublicIndexTool from './tools/fetch-public-index.js';
|
|
46
|
+
import * as getCouplingMapTool from './tools/get-coupling-map.js';
|
|
47
|
+
import * as findImplementationsTool from './tools/find-implementations.js';
|
|
48
|
+
import * as findCyclesTool from './tools/find-cycles.js';
|
|
49
|
+
import * as getClassHierarchyTool from './tools/get-class-hierarchy.js';
|
|
50
|
+
import * as getCallHierarchyTool from './tools/get-call-hierarchy.js';
|
|
51
|
+
import * as renderDiagramTool from './tools/render-diagram.js';
|
|
52
|
+
import * as renderCallGraphTool from './tools/render-call-graph.js';
|
|
53
|
+
import * as renderImportGraphTool from './tools/render-import-graph.js';
|
|
54
|
+
import * as renderDepMatrixTool from './tools/render-dep-matrix.js';
|
|
55
|
+
import * as renderClassHierarchyTool from './tools/render-class-hierarchy.js';
|
|
56
|
+
import * as getArchitectureSnapshotTool from './tools/get-architecture-snapshot.js';
|
|
57
|
+
import * as checkRenameSafeTool from './tools/check-rename-safe.js';
|
|
58
|
+
import * as checkDeleteSafeTool from './tools/check-delete-safe.js';
|
|
59
|
+
import * as checkMoveSafeTool from './tools/check-move-safe.js';
|
|
60
|
+
import * as planRefactoringTool from './tools/plan-refactoring.js';
|
|
61
|
+
import * as getDebtReportTool from './tools/get-debt-report.js';
|
|
62
|
+
import * as healthRadarTool from './tools/health-radar.js';
|
|
63
|
+
import * as diffHealthRadarTool from './tools/diff-health-radar.js';
|
|
64
|
+
import * as searchBySignatureTool from './tools/search-by-signature.js';
|
|
65
|
+
import * as searchByComplexityTool from './tools/search-by-complexity.js';
|
|
66
|
+
import * as searchAstTool from './tools/search-ast.js';
|
|
67
|
+
import * as searchByDecoratorTool from './tools/search-by-decorator.js';
|
|
68
|
+
import * as getPublicApiTool from './tools/get-public-api.js';
|
|
69
|
+
import * as getTodosTool from './tools/get-todos.js';
|
|
70
|
+
import * as getEntryPointsTool from './tools/get-entry-points.js';
|
|
71
|
+
import * as getComplexityHotspotsTool from './tools/get-complexity-hotspots.js';
|
|
72
|
+
import * as findUntestedSymbolsTool from './tools/find-untested-symbols.js';
|
|
73
|
+
import * as getTestCoverageMapTool from './tools/get-test-coverage-map.js';
|
|
74
|
+
import * as getTypeGraphTool from './tools/get-type-graph.js';
|
|
46
75
|
// ── Resource handlers ──────────────────────────────────────────────────────────
|
|
47
76
|
import { readReposResource, readRepoOutlineResource, readFileOutlineResource, readSymbolSourceResource, } from './resources.js';
|
|
48
77
|
// ─── Tool error handling ──────────────────────────────────────────────────────
|
|
@@ -256,6 +285,122 @@ export function createMcpServer() {
|
|
|
256
285
|
description: fetchPublicIndexTool.description,
|
|
257
286
|
inputSchema: fetchPublicIndexTool.inputSchema,
|
|
258
287
|
}, typed((args) => fetchPublicIndexTool.handler(args)));
|
|
288
|
+
server.registerTool(getCouplingMapTool.name, {
|
|
289
|
+
description: getCouplingMapTool.description,
|
|
290
|
+
inputSchema: getCouplingMapTool.inputSchema,
|
|
291
|
+
}, typed((args) => getCouplingMapTool.handler(args)));
|
|
292
|
+
server.registerTool(findImplementationsTool.name, {
|
|
293
|
+
description: findImplementationsTool.description,
|
|
294
|
+
inputSchema: findImplementationsTool.inputSchema,
|
|
295
|
+
}, typed((args) => findImplementationsTool.handler(args)));
|
|
296
|
+
server.registerTool(findCyclesTool.name, {
|
|
297
|
+
description: findCyclesTool.description,
|
|
298
|
+
inputSchema: findCyclesTool.inputSchema,
|
|
299
|
+
}, typed((args) => findCyclesTool.handler(args)));
|
|
300
|
+
server.registerTool(getClassHierarchyTool.name, {
|
|
301
|
+
description: getClassHierarchyTool.description,
|
|
302
|
+
inputSchema: getClassHierarchyTool.inputSchema,
|
|
303
|
+
}, typed((args) => getClassHierarchyTool.handler(args)));
|
|
304
|
+
server.registerTool(getCallHierarchyTool.name, {
|
|
305
|
+
description: getCallHierarchyTool.description,
|
|
306
|
+
inputSchema: getCallHierarchyTool.inputSchema,
|
|
307
|
+
}, typed((args) => getCallHierarchyTool.handler(args)));
|
|
308
|
+
server.registerTool(renderDiagramTool.name, {
|
|
309
|
+
description: renderDiagramTool.description,
|
|
310
|
+
inputSchema: renderDiagramTool.inputSchema,
|
|
311
|
+
}, typed((args) => renderDiagramTool.handler(args)));
|
|
312
|
+
server.registerTool(renderCallGraphTool.name, {
|
|
313
|
+
description: renderCallGraphTool.description,
|
|
314
|
+
inputSchema: renderCallGraphTool.inputSchema,
|
|
315
|
+
}, typed((args) => renderCallGraphTool.handler(args)));
|
|
316
|
+
server.registerTool(renderImportGraphTool.name, {
|
|
317
|
+
description: renderImportGraphTool.description,
|
|
318
|
+
inputSchema: renderImportGraphTool.inputSchema,
|
|
319
|
+
}, typed((args) => renderImportGraphTool.handler(args)));
|
|
320
|
+
server.registerTool(renderDepMatrixTool.name, {
|
|
321
|
+
description: renderDepMatrixTool.description,
|
|
322
|
+
inputSchema: renderDepMatrixTool.inputSchema,
|
|
323
|
+
}, typed((args) => renderDepMatrixTool.handler(args)));
|
|
324
|
+
server.registerTool(renderClassHierarchyTool.name, {
|
|
325
|
+
description: renderClassHierarchyTool.description,
|
|
326
|
+
inputSchema: renderClassHierarchyTool.inputSchema,
|
|
327
|
+
}, typed((args) => renderClassHierarchyTool.handler(args)));
|
|
328
|
+
server.registerTool(getArchitectureSnapshotTool.name, {
|
|
329
|
+
description: getArchitectureSnapshotTool.description,
|
|
330
|
+
inputSchema: getArchitectureSnapshotTool.inputSchema,
|
|
331
|
+
}, typed((args) => getArchitectureSnapshotTool.handler(args)));
|
|
332
|
+
server.registerTool(checkRenameSafeTool.name, {
|
|
333
|
+
description: checkRenameSafeTool.description,
|
|
334
|
+
inputSchema: checkRenameSafeTool.inputSchema,
|
|
335
|
+
}, typed((args) => checkRenameSafeTool.handler(args)));
|
|
336
|
+
server.registerTool(checkDeleteSafeTool.name, {
|
|
337
|
+
description: checkDeleteSafeTool.description,
|
|
338
|
+
inputSchema: checkDeleteSafeTool.inputSchema,
|
|
339
|
+
}, typed((args) => checkDeleteSafeTool.handler(args)));
|
|
340
|
+
server.registerTool(checkMoveSafeTool.name, {
|
|
341
|
+
description: checkMoveSafeTool.description,
|
|
342
|
+
inputSchema: checkMoveSafeTool.inputSchema,
|
|
343
|
+
}, typed((args) => checkMoveSafeTool.handler(args)));
|
|
344
|
+
server.registerTool(planRefactoringTool.name, {
|
|
345
|
+
description: planRefactoringTool.description,
|
|
346
|
+
inputSchema: planRefactoringTool.inputSchema,
|
|
347
|
+
}, typed((args) => planRefactoringTool.handler(args)));
|
|
348
|
+
server.registerTool(getDebtReportTool.name, {
|
|
349
|
+
description: getDebtReportTool.description,
|
|
350
|
+
inputSchema: getDebtReportTool.inputSchema,
|
|
351
|
+
}, typed((args) => getDebtReportTool.handler(args)));
|
|
352
|
+
server.registerTool(healthRadarTool.name, {
|
|
353
|
+
description: healthRadarTool.description,
|
|
354
|
+
inputSchema: healthRadarTool.inputSchema,
|
|
355
|
+
}, typed((args) => healthRadarTool.handler(args)));
|
|
356
|
+
server.registerTool(diffHealthRadarTool.name, {
|
|
357
|
+
description: diffHealthRadarTool.description,
|
|
358
|
+
inputSchema: diffHealthRadarTool.inputSchema,
|
|
359
|
+
}, typed((args) => diffHealthRadarTool.handler(args)));
|
|
360
|
+
server.registerTool(searchBySignatureTool.name, {
|
|
361
|
+
description: searchBySignatureTool.description,
|
|
362
|
+
inputSchema: searchBySignatureTool.inputSchema,
|
|
363
|
+
}, typed((args) => searchBySignatureTool.handler(args)));
|
|
364
|
+
server.registerTool(searchByComplexityTool.name, {
|
|
365
|
+
description: searchByComplexityTool.description,
|
|
366
|
+
inputSchema: searchByComplexityTool.inputSchema,
|
|
367
|
+
}, typed((args) => searchByComplexityTool.handler(args)));
|
|
368
|
+
server.registerTool(searchAstTool.name, {
|
|
369
|
+
description: searchAstTool.description,
|
|
370
|
+
inputSchema: searchAstTool.inputSchema,
|
|
371
|
+
}, typed((args) => searchAstTool.handler(args)));
|
|
372
|
+
server.registerTool(searchByDecoratorTool.name, {
|
|
373
|
+
description: searchByDecoratorTool.description,
|
|
374
|
+
inputSchema: searchByDecoratorTool.inputSchema,
|
|
375
|
+
}, typed((args) => searchByDecoratorTool.handler(args)));
|
|
376
|
+
server.registerTool(getPublicApiTool.name, {
|
|
377
|
+
description: getPublicApiTool.description,
|
|
378
|
+
inputSchema: getPublicApiTool.inputSchema,
|
|
379
|
+
}, typed((args) => getPublicApiTool.handler(args)));
|
|
380
|
+
server.registerTool(getTodosTool.name, {
|
|
381
|
+
description: getTodosTool.description,
|
|
382
|
+
inputSchema: getTodosTool.inputSchema,
|
|
383
|
+
}, typed((args) => getTodosTool.handler(args)));
|
|
384
|
+
server.registerTool(getEntryPointsTool.name, {
|
|
385
|
+
description: getEntryPointsTool.description,
|
|
386
|
+
inputSchema: getEntryPointsTool.inputSchema,
|
|
387
|
+
}, typed((args) => getEntryPointsTool.handler(args)));
|
|
388
|
+
server.registerTool(getComplexityHotspotsTool.name, {
|
|
389
|
+
description: getComplexityHotspotsTool.description,
|
|
390
|
+
inputSchema: getComplexityHotspotsTool.inputSchema,
|
|
391
|
+
}, typed((args) => getComplexityHotspotsTool.handler(args)));
|
|
392
|
+
server.registerTool(findUntestedSymbolsTool.name, {
|
|
393
|
+
description: findUntestedSymbolsTool.description,
|
|
394
|
+
inputSchema: findUntestedSymbolsTool.inputSchema,
|
|
395
|
+
}, typed((args) => findUntestedSymbolsTool.handler(args)));
|
|
396
|
+
server.registerTool(getTestCoverageMapTool.name, {
|
|
397
|
+
description: getTestCoverageMapTool.description,
|
|
398
|
+
inputSchema: getTestCoverageMapTool.inputSchema,
|
|
399
|
+
}, typed((args) => getTestCoverageMapTool.handler(args)));
|
|
400
|
+
server.registerTool(getTypeGraphTool.name, {
|
|
401
|
+
description: getTypeGraphTool.description,
|
|
402
|
+
inputSchema: getTypeGraphTool.inputSchema,
|
|
403
|
+
}, typed((args) => getTypeGraphTool.handler(args)));
|
|
259
404
|
// ── MCP Resources ─────────────────────────────────────────────────────────
|
|
260
405
|
// Static resource: list all indexed repos
|
|
261
406
|
server.registerResource('purecontext-repos', 'purecontext://repos', { mimeType: 'application/json', description: 'List of all indexed repositories' }, (uri) => readReposResource(uri.toString()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* check-delete-safe.ts
|
|
3
|
+
*
|
|
4
|
+
* MCP tool: check_delete_safe
|
|
5
|
+
*
|
|
6
|
+
* Pre-flight check for deleting a symbol or file. Returns a binary verdict
|
|
7
|
+
* and all live references that would break — so an agent can decide whether
|
|
8
|
+
* deletion is safe without manually interpreting find_references output.
|
|
9
|
+
*
|
|
10
|
+
* Safety rules:
|
|
11
|
+
* safe: false — if any live (non-test) references exist in the repo
|
|
12
|
+
* safe: false — if symbol is exported AND includeExternalRisk: true
|
|
13
|
+
* (exported symbols may be consumed by external npm packages)
|
|
14
|
+
* safe: false — if symbol is detected as an entry point
|
|
15
|
+
* safe: true — zero live refs, not exported (or external risk ignored),
|
|
16
|
+
* and not an entry point
|
|
17
|
+
*
|
|
18
|
+
* Modes:
|
|
19
|
+
* symbolId — check a single named symbol
|
|
20
|
+
* filePath — check all symbols in a file (aggregate verdict)
|
|
21
|
+
*
|
|
22
|
+
* Risk kinds:
|
|
23
|
+
* 'live-reference' — production code that imports or calls the symbol
|
|
24
|
+
* 'exported-symbol' — symbol is exported (potential external consumers)
|
|
25
|
+
* 'entry-point' — symbol is a route handler, main function, or framework default
|
|
26
|
+
* 'test-subject' — test file references the symbol (informational, not a hard block)
|
|
27
|
+
*/
|
|
28
|
+
import { z } from 'zod';
|
|
29
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
30
|
+
export declare const name = "check_delete_safe";
|
|
31
|
+
export declare const description: string;
|
|
32
|
+
export declare const inputSchema: {
|
|
33
|
+
repoId: z.ZodString;
|
|
34
|
+
symbolId: z.ZodOptional<z.ZodString>;
|
|
35
|
+
filePath: z.ZodOptional<z.ZodString>;
|
|
36
|
+
includeExternalRisk: z.ZodOptional<z.ZodBoolean>;
|
|
37
|
+
};
|
|
38
|
+
export interface DeleteRisk {
|
|
39
|
+
kind: 'live-reference' | 'exported-symbol' | 'entry-point' | 'test-subject';
|
|
40
|
+
filePath: string;
|
|
41
|
+
line?: number;
|
|
42
|
+
detail: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function handler(args: {
|
|
45
|
+
repoId: string;
|
|
46
|
+
symbolId?: string;
|
|
47
|
+
filePath?: string;
|
|
48
|
+
includeExternalRisk?: boolean;
|
|
49
|
+
}): Promise<CallToolResult>;
|
|
50
|
+
//# sourceMappingURL=check-delete-safe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-delete-safe.d.ts","sourceRoot":"","sources":["../../../src/server/tools/check-delete-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,eAAO,MAAM,IAAI,sBAAsB,CAAC;AAExC,eAAO,MAAM,WAAW,QAM4C,CAAC;AAErE,eAAO,MAAM,WAAW;;;;;CA0BvB,CAAC;AAIF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqMD,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,cAAc,CAAC,CA0J1B"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* check-delete-safe.ts
|
|
3
|
+
*
|
|
4
|
+
* MCP tool: check_delete_safe
|
|
5
|
+
*
|
|
6
|
+
* Pre-flight check for deleting a symbol or file. Returns a binary verdict
|
|
7
|
+
* and all live references that would break — so an agent can decide whether
|
|
8
|
+
* deletion is safe without manually interpreting find_references output.
|
|
9
|
+
*
|
|
10
|
+
* Safety rules:
|
|
11
|
+
* safe: false — if any live (non-test) references exist in the repo
|
|
12
|
+
* safe: false — if symbol is exported AND includeExternalRisk: true
|
|
13
|
+
* (exported symbols may be consumed by external npm packages)
|
|
14
|
+
* safe: false — if symbol is detected as an entry point
|
|
15
|
+
* safe: true — zero live refs, not exported (or external risk ignored),
|
|
16
|
+
* and not an entry point
|
|
17
|
+
*
|
|
18
|
+
* Modes:
|
|
19
|
+
* symbolId — check a single named symbol
|
|
20
|
+
* filePath — check all symbols in a file (aggregate verdict)
|
|
21
|
+
*
|
|
22
|
+
* Risk kinds:
|
|
23
|
+
* 'live-reference' — production code that imports or calls the symbol
|
|
24
|
+
* 'exported-symbol' — symbol is exported (potential external consumers)
|
|
25
|
+
* 'entry-point' — symbol is a route handler, main function, or framework default
|
|
26
|
+
* 'test-subject' — test file references the symbol (informational, not a hard block)
|
|
27
|
+
*/
|
|
28
|
+
import { z } from 'zod';
|
|
29
|
+
import { openDatabase, getRepo } from '../../core/db/schema.js';
|
|
30
|
+
import { getSymbolById } from '../../core/db/symbol-store.js';
|
|
31
|
+
import { getAllFilesWithContent } from '../../core/db/file-store.js';
|
|
32
|
+
import { buildMeta } from './_meta.js';
|
|
33
|
+
export const name = 'check_delete_safe';
|
|
34
|
+
export const description = 'Pre-flight check for deleting a symbol or file. Returns a verdict and all live ' +
|
|
35
|
+
'references that would break if the symbol were removed. ' +
|
|
36
|
+
'safe: false when live references exist, the symbol is exported (external consumers), ' +
|
|
37
|
+
'or the symbol is an entry point (route handler, main export). ' +
|
|
38
|
+
'Supports two modes: symbolId (single symbol) or filePath (all symbols in a file). ' +
|
|
39
|
+
'Use search_symbols or get_file_outline to find a symbolId first.';
|
|
40
|
+
export const inputSchema = {
|
|
41
|
+
repoId: z
|
|
42
|
+
.string()
|
|
43
|
+
.describe('Repo ID from index_folder or resolve_repo'),
|
|
44
|
+
symbolId: z
|
|
45
|
+
.string()
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Symbol ID of the symbol to check. Mutually exclusive with filePath. ' +
|
|
48
|
+
'Use search_symbols to find the symbolId.'),
|
|
49
|
+
filePath: z
|
|
50
|
+
.string()
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('File path relative to the repo root — checks all symbols in the file and ' +
|
|
53
|
+
'produces an aggregate verdict. Mutually exclusive with symbolId.'),
|
|
54
|
+
includeExternalRisk: z
|
|
55
|
+
.boolean()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('Warn when a symbol is exported but has no internal references ' +
|
|
58
|
+
'(may be consumed by external npm packages). Default true. ' +
|
|
59
|
+
'Set false to suppress this warning.'),
|
|
60
|
+
};
|
|
61
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
62
|
+
function escapeRegex(str) {
|
|
63
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Return true when a file path looks like a test file.
|
|
67
|
+
* Matches: *.test.ts, *.spec.ts, /__tests__/, /test/, /tests/
|
|
68
|
+
*/
|
|
69
|
+
function isTestFile(filePath) {
|
|
70
|
+
const p = filePath.replace(/\\/g, '/');
|
|
71
|
+
return (/\.test\.[jt]sx?$/.test(p) ||
|
|
72
|
+
/\.spec\.[jt]sx?$/.test(p) ||
|
|
73
|
+
/\/__tests__\//.test(p) ||
|
|
74
|
+
/\/tests?\//.test(p));
|
|
75
|
+
}
|
|
76
|
+
/** Return true when the signature contains the `export` keyword. */
|
|
77
|
+
function isExportedSignature(signature) {
|
|
78
|
+
return /\bexport\b/.test(signature);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Heuristic entry-point detection.
|
|
82
|
+
* A symbol is considered an entry point when:
|
|
83
|
+
* - its name is one of the well-known entry names (main, default, handler, index)
|
|
84
|
+
* - its signature contains a route/controller decorator
|
|
85
|
+
* - it is a default export from an index file
|
|
86
|
+
*/
|
|
87
|
+
function isEntryPointSymbol(name, signature, filePath) {
|
|
88
|
+
if (['main', 'default', 'handler', 'index'].includes(name))
|
|
89
|
+
return true;
|
|
90
|
+
if (/@(Get|Post|Put|Delete|Patch|Route|Controller)\b/.test(signature))
|
|
91
|
+
return true;
|
|
92
|
+
const fp = filePath.replace(/\\/g, '/');
|
|
93
|
+
if (/\/index\.[jt]sx?$/.test(fp) && /\bdefault\b/.test(signature))
|
|
94
|
+
return true;
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Scan all cached file contents for references to `symbolName`.
|
|
99
|
+
* The definition file is excluded (deleting the symbol removes its definition too).
|
|
100
|
+
* References found in test files are tagged 'test-subject'; all others 'live-reference'.
|
|
101
|
+
*/
|
|
102
|
+
function findRisksForSymbol(symbolName, definitionFilePath, files) {
|
|
103
|
+
const pattern = new RegExp(`\\b${escapeRegex(symbolName)}\\b`);
|
|
104
|
+
const risks = [];
|
|
105
|
+
let liveReferenceCount = 0;
|
|
106
|
+
for (const { path, rawContent } of files) {
|
|
107
|
+
if (!rawContent)
|
|
108
|
+
continue;
|
|
109
|
+
if (path === definitionFilePath)
|
|
110
|
+
continue;
|
|
111
|
+
const text = rawContent.toString('utf8');
|
|
112
|
+
const lines = text.split('\n');
|
|
113
|
+
const test = isTestFile(path);
|
|
114
|
+
for (let i = 0; i < lines.length; i++) {
|
|
115
|
+
const line = lines[i];
|
|
116
|
+
if (!pattern.test(line))
|
|
117
|
+
continue;
|
|
118
|
+
const context = line.trim().length > 120 ? line.trim().slice(0, 120) : line.trim();
|
|
119
|
+
if (test) {
|
|
120
|
+
risks.push({
|
|
121
|
+
kind: 'test-subject',
|
|
122
|
+
filePath: path,
|
|
123
|
+
line: i + 1,
|
|
124
|
+
detail: `Test file references "${symbolName}": ${context}`,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
liveReferenceCount++;
|
|
129
|
+
risks.push({
|
|
130
|
+
kind: 'live-reference',
|
|
131
|
+
filePath: path,
|
|
132
|
+
line: i + 1,
|
|
133
|
+
detail: context,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return { risks, liveReferenceCount };
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Run the full safety check for one symbol and return aggregated risk data.
|
|
142
|
+
*/
|
|
143
|
+
function checkOneSymbol(symbolName, symbolFilePath, symbolSignature, includeExternalRisk, files) {
|
|
144
|
+
const { risks, liveReferenceCount } = findRisksForSymbol(symbolName, symbolFilePath, files);
|
|
145
|
+
const exported = isExportedSignature(symbolSignature);
|
|
146
|
+
const entryPoint = isEntryPointSymbol(symbolName, symbolSignature, symbolFilePath);
|
|
147
|
+
if (exported && includeExternalRisk) {
|
|
148
|
+
risks.push({
|
|
149
|
+
kind: 'exported-symbol',
|
|
150
|
+
filePath: symbolFilePath,
|
|
151
|
+
detail: `"${symbolName}" is exported and may be consumed by external packages. ` +
|
|
152
|
+
`No internal references were found.`,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (entryPoint) {
|
|
156
|
+
risks.push({
|
|
157
|
+
kind: 'entry-point',
|
|
158
|
+
filePath: symbolFilePath,
|
|
159
|
+
detail: `"${symbolName}" appears to be an entry point (route handler, main export, or framework default).`,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return { risks, liveReferenceCount, isExported: exported, isEntryPoint: entryPoint };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Build a human-readable verdict sentence from aggregated risk data.
|
|
166
|
+
*/
|
|
167
|
+
function buildVerdict(safe, liveReferenceCount, isExported, isEntryPoint, risks) {
|
|
168
|
+
if (safe) {
|
|
169
|
+
const testCount = risks.filter((r) => r.kind === 'test-subject').length;
|
|
170
|
+
const testNote = testCount > 0 ? ` (${testCount} test reference${testCount > 1 ? 's' : ''} will also break).` : '.';
|
|
171
|
+
return `Safe to delete: no live references found${testNote}`;
|
|
172
|
+
}
|
|
173
|
+
const parts = [];
|
|
174
|
+
if (liveReferenceCount > 0) {
|
|
175
|
+
const fileSet = new Set(risks.filter((r) => r.kind === 'live-reference').map((r) => r.filePath));
|
|
176
|
+
parts.push(`${liveReferenceCount} live reference${liveReferenceCount > 1 ? 's' : ''} in ${fileSet.size} file${fileSet.size > 1 ? 's' : ''}`);
|
|
177
|
+
}
|
|
178
|
+
if (isExported) {
|
|
179
|
+
parts.push('symbol is exported (external consumers possible)');
|
|
180
|
+
}
|
|
181
|
+
if (isEntryPoint) {
|
|
182
|
+
parts.push('symbol is an entry point');
|
|
183
|
+
}
|
|
184
|
+
return `Unsafe to delete: ${parts.join('; ')}.`;
|
|
185
|
+
}
|
|
186
|
+
// ─── Handler ──────────────────────────────────────────────────────────────────
|
|
187
|
+
export async function handler(args) {
|
|
188
|
+
const t0 = Date.now();
|
|
189
|
+
const { repoId, symbolId, filePath, includeExternalRisk = true } = args;
|
|
190
|
+
if (!symbolId && !filePath) {
|
|
191
|
+
return {
|
|
192
|
+
content: [
|
|
193
|
+
{
|
|
194
|
+
type: 'text',
|
|
195
|
+
text: JSON.stringify({
|
|
196
|
+
error: 'Provide either symbolId or filePath.',
|
|
197
|
+
}),
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
isError: true,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
const db = openDatabase(repoId);
|
|
204
|
+
try {
|
|
205
|
+
const repo = getRepo(db, repoId);
|
|
206
|
+
if (!repo) {
|
|
207
|
+
return {
|
|
208
|
+
content: [
|
|
209
|
+
{
|
|
210
|
+
type: 'text',
|
|
211
|
+
text: JSON.stringify({
|
|
212
|
+
error: `Repo "${repoId}" not found. Run index_folder first.`,
|
|
213
|
+
}),
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
isError: true,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
const files = getAllFilesWithContent(db, repoId);
|
|
220
|
+
// ── symbolId mode ──────────────────────────────────────────────────────────
|
|
221
|
+
if (symbolId) {
|
|
222
|
+
const symbol = getSymbolById(db, repoId, symbolId);
|
|
223
|
+
if (!symbol) {
|
|
224
|
+
return {
|
|
225
|
+
content: [
|
|
226
|
+
{
|
|
227
|
+
type: 'text',
|
|
228
|
+
text: JSON.stringify({
|
|
229
|
+
error: `Symbol "${symbolId}" not found in repo "${repoId}".`,
|
|
230
|
+
}),
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
isError: true,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
const { risks, liveReferenceCount, isExported, isEntryPoint } = checkOneSymbol(symbol.name, symbol.filePath, symbol.signature, includeExternalRisk, files);
|
|
237
|
+
const safe = liveReferenceCount === 0 &&
|
|
238
|
+
(!isExported || !includeExternalRisk) &&
|
|
239
|
+
!isEntryPoint;
|
|
240
|
+
const verdict = buildVerdict(safe, liveReferenceCount, isExported, isEntryPoint, risks);
|
|
241
|
+
const responseText = JSON.stringify(risks);
|
|
242
|
+
const output = {
|
|
243
|
+
safe,
|
|
244
|
+
verdict,
|
|
245
|
+
risks,
|
|
246
|
+
liveReferenceCount,
|
|
247
|
+
isExported,
|
|
248
|
+
isEntryPoint,
|
|
249
|
+
_tokenEstimate: Math.ceil(responseText.length / 4),
|
|
250
|
+
_meta: buildMeta({ timingMs: Date.now() - t0 }),
|
|
251
|
+
};
|
|
252
|
+
return { content: [{ type: 'text', text: JSON.stringify(output, null, 2) }] };
|
|
253
|
+
}
|
|
254
|
+
// ── filePath mode ──────────────────────────────────────────────────────────
|
|
255
|
+
const targetFilePath = filePath;
|
|
256
|
+
const symbolRows = db
|
|
257
|
+
.prepare('SELECT id, name, kind, file_path, signature FROM symbols WHERE repo_id = ? AND file_path = ?')
|
|
258
|
+
.all(repoId, targetFilePath);
|
|
259
|
+
if (symbolRows.length === 0) {
|
|
260
|
+
return {
|
|
261
|
+
content: [
|
|
262
|
+
{
|
|
263
|
+
type: 'text',
|
|
264
|
+
text: JSON.stringify({
|
|
265
|
+
error: `No symbols found for file "${targetFilePath}" in repo "${repoId}". ` +
|
|
266
|
+
'Check the file path is relative to the repo root and the file is indexed.',
|
|
267
|
+
}),
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
isError: true,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Aggregate results across all symbols in the file
|
|
274
|
+
const allRisks = [];
|
|
275
|
+
let totalLiveRefCount = 0;
|
|
276
|
+
let anyExported = false;
|
|
277
|
+
let anyEntryPoint = false;
|
|
278
|
+
for (const row of symbolRows) {
|
|
279
|
+
const { risks, liveReferenceCount, isExported, isEntryPoint } = checkOneSymbol(row.name, row.file_path, row.signature, includeExternalRisk, files);
|
|
280
|
+
allRisks.push(...risks);
|
|
281
|
+
totalLiveRefCount += liveReferenceCount;
|
|
282
|
+
if (isExported)
|
|
283
|
+
anyExported = true;
|
|
284
|
+
if (isEntryPoint)
|
|
285
|
+
anyEntryPoint = true;
|
|
286
|
+
}
|
|
287
|
+
const safe = totalLiveRefCount === 0 &&
|
|
288
|
+
(!anyExported || !includeExternalRisk) &&
|
|
289
|
+
!anyEntryPoint;
|
|
290
|
+
const verdict = buildVerdict(safe, totalLiveRefCount, anyExported, anyEntryPoint, allRisks);
|
|
291
|
+
const responseText = JSON.stringify(allRisks);
|
|
292
|
+
const output = {
|
|
293
|
+
safe,
|
|
294
|
+
verdict,
|
|
295
|
+
risks: allRisks,
|
|
296
|
+
liveReferenceCount: totalLiveRefCount,
|
|
297
|
+
isExported: anyExported,
|
|
298
|
+
isEntryPoint: anyEntryPoint,
|
|
299
|
+
_tokenEstimate: Math.ceil(responseText.length / 4),
|
|
300
|
+
_meta: buildMeta({ timingMs: Date.now() - t0 }),
|
|
301
|
+
};
|
|
302
|
+
return { content: [{ type: 'text', text: JSON.stringify(output, null, 2) }] };
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
db.close();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=check-delete-safe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-delete-safe.js","sourceRoot":"","sources":["../../../src/server/tools/check-delete-safe.ts"],"names":[],"mappings":"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"}
|