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.
Files changed (167) hide show
  1. package/AGENT_INSTRUCTIONS.md +393 -0
  2. package/AGENT_INSTRUCTIONS_SHORT.md +53 -0
  3. package/AST-SEARCH.md +274 -0
  4. package/CHANGELOG.md +62 -0
  5. package/CODE-INTELLIGENCE.md +369 -0
  6. package/HEALTH-DASHBOARDS.md +241 -0
  7. package/README.md +7 -0
  8. package/REFACTORING-SAFELY.md +279 -0
  9. package/UNDERSTANDING-RELATIONSHIPS.md +240 -0
  10. package/USER-GUIDE.md +14 -0
  11. package/VISUALIZING-CODE.md +199 -0
  12. package/WORKFLOW-TECH-DEBT.md +286 -0
  13. package/dist/core/db/dep-store.d.ts +75 -0
  14. package/dist/core/db/dep-store.d.ts.map +1 -1
  15. package/dist/core/db/dep-store.js +277 -0
  16. package/dist/core/db/dep-store.js.map +1 -1
  17. package/dist/core/db/schema.d.ts.map +1 -1
  18. package/dist/core/db/schema.js +12 -0
  19. package/dist/core/db/schema.js.map +1 -1
  20. package/dist/core/index-manager.js +1 -1
  21. package/dist/core/index-manager.js.map +1 -1
  22. package/dist/core/types.d.ts +5 -0
  23. package/dist/core/types.d.ts.map +1 -1
  24. package/dist/graph/diagram-renderer.d.ts +83 -0
  25. package/dist/graph/diagram-renderer.d.ts.map +1 -0
  26. package/dist/graph/diagram-renderer.js +294 -0
  27. package/dist/graph/diagram-renderer.js.map +1 -0
  28. package/dist/graph/graph-traversal.d.ts +92 -0
  29. package/dist/graph/graph-traversal.d.ts.map +1 -1
  30. package/dist/graph/graph-traversal.js +440 -2
  31. package/dist/graph/graph-traversal.js.map +1 -1
  32. package/dist/server/mcp-server.d.ts.map +1 -1
  33. package/dist/server/mcp-server.js +145 -0
  34. package/dist/server/mcp-server.js.map +1 -1
  35. package/dist/server/tools/check-delete-safe.d.ts +50 -0
  36. package/dist/server/tools/check-delete-safe.d.ts.map +1 -0
  37. package/dist/server/tools/check-delete-safe.js +308 -0
  38. package/dist/server/tools/check-delete-safe.js.map +1 -0
  39. package/dist/server/tools/check-move-safe.d.ts +44 -0
  40. package/dist/server/tools/check-move-safe.d.ts.map +1 -0
  41. package/dist/server/tools/check-move-safe.js +266 -0
  42. package/dist/server/tools/check-move-safe.js.map +1 -0
  43. package/dist/server/tools/check-rename-safe.d.ts +48 -0
  44. package/dist/server/tools/check-rename-safe.d.ts.map +1 -0
  45. package/dist/server/tools/check-rename-safe.js +218 -0
  46. package/dist/server/tools/check-rename-safe.js.map +1 -0
  47. package/dist/server/tools/diff-health-radar.d.ts +44 -0
  48. package/dist/server/tools/diff-health-radar.d.ts.map +1 -0
  49. package/dist/server/tools/diff-health-radar.js +192 -0
  50. package/dist/server/tools/diff-health-radar.js.map +1 -0
  51. package/dist/server/tools/find-cycles.d.ts +31 -0
  52. package/dist/server/tools/find-cycles.d.ts.map +1 -0
  53. package/dist/server/tools/find-cycles.js +85 -0
  54. package/dist/server/tools/find-cycles.js.map +1 -0
  55. package/dist/server/tools/find-implementations.d.ts +47 -0
  56. package/dist/server/tools/find-implementations.d.ts.map +1 -0
  57. package/dist/server/tools/find-implementations.js +167 -0
  58. package/dist/server/tools/find-implementations.js.map +1 -0
  59. package/dist/server/tools/find-untested-symbols.d.ts +52 -0
  60. package/dist/server/tools/find-untested-symbols.d.ts.map +1 -0
  61. package/dist/server/tools/find-untested-symbols.js +308 -0
  62. package/dist/server/tools/find-untested-symbols.js.map +1 -0
  63. package/dist/server/tools/get-architecture-snapshot.d.ts +43 -0
  64. package/dist/server/tools/get-architecture-snapshot.d.ts.map +1 -0
  65. package/dist/server/tools/get-architecture-snapshot.js +292 -0
  66. package/dist/server/tools/get-architecture-snapshot.js.map +1 -0
  67. package/dist/server/tools/get-call-hierarchy.d.ts +43 -0
  68. package/dist/server/tools/get-call-hierarchy.d.ts.map +1 -0
  69. package/dist/server/tools/get-call-hierarchy.js +119 -0
  70. package/dist/server/tools/get-call-hierarchy.js.map +1 -0
  71. package/dist/server/tools/get-class-hierarchy.d.ts +36 -0
  72. package/dist/server/tools/get-class-hierarchy.d.ts.map +1 -0
  73. package/dist/server/tools/get-class-hierarchy.js +125 -0
  74. package/dist/server/tools/get-class-hierarchy.js.map +1 -0
  75. package/dist/server/tools/get-complexity-hotspots.d.ts +50 -0
  76. package/dist/server/tools/get-complexity-hotspots.d.ts.map +1 -0
  77. package/dist/server/tools/get-complexity-hotspots.js +282 -0
  78. package/dist/server/tools/get-complexity-hotspots.js.map +1 -0
  79. package/dist/server/tools/get-coupling-map.d.ts +39 -0
  80. package/dist/server/tools/get-coupling-map.d.ts.map +1 -0
  81. package/dist/server/tools/get-coupling-map.js +107 -0
  82. package/dist/server/tools/get-coupling-map.js.map +1 -0
  83. package/dist/server/tools/get-debt-report.d.ts +44 -0
  84. package/dist/server/tools/get-debt-report.d.ts.map +1 -0
  85. package/dist/server/tools/get-debt-report.js +606 -0
  86. package/dist/server/tools/get-debt-report.js.map +1 -0
  87. package/dist/server/tools/get-entry-points.d.ts +79 -0
  88. package/dist/server/tools/get-entry-points.d.ts.map +1 -0
  89. package/dist/server/tools/get-entry-points.js +362 -0
  90. package/dist/server/tools/get-entry-points.js.map +1 -0
  91. package/dist/server/tools/get-public-api.d.ts +53 -0
  92. package/dist/server/tools/get-public-api.d.ts.map +1 -0
  93. package/dist/server/tools/get-public-api.js +218 -0
  94. package/dist/server/tools/get-public-api.js.map +1 -0
  95. package/dist/server/tools/get-test-coverage-map.d.ts +66 -0
  96. package/dist/server/tools/get-test-coverage-map.d.ts.map +1 -0
  97. package/dist/server/tools/get-test-coverage-map.js +588 -0
  98. package/dist/server/tools/get-test-coverage-map.js.map +1 -0
  99. package/dist/server/tools/get-todos.d.ts +51 -0
  100. package/dist/server/tools/get-todos.d.ts.map +1 -0
  101. package/dist/server/tools/get-todos.js +180 -0
  102. package/dist/server/tools/get-todos.js.map +1 -0
  103. package/dist/server/tools/get-type-graph.d.ts +73 -0
  104. package/dist/server/tools/get-type-graph.d.ts.map +1 -0
  105. package/dist/server/tools/get-type-graph.js +437 -0
  106. package/dist/server/tools/get-type-graph.js.map +1 -0
  107. package/dist/server/tools/health-radar.d.ts +50 -0
  108. package/dist/server/tools/health-radar.d.ts.map +1 -0
  109. package/dist/server/tools/health-radar.js +426 -0
  110. package/dist/server/tools/health-radar.js.map +1 -0
  111. package/dist/server/tools/plan-refactoring.d.ts +74 -0
  112. package/dist/server/tools/plan-refactoring.d.ts.map +1 -0
  113. package/dist/server/tools/plan-refactoring.js +644 -0
  114. package/dist/server/tools/plan-refactoring.js.map +1 -0
  115. package/dist/server/tools/render-call-graph.d.ts +40 -0
  116. package/dist/server/tools/render-call-graph.d.ts.map +1 -0
  117. package/dist/server/tools/render-call-graph.js +215 -0
  118. package/dist/server/tools/render-call-graph.js.map +1 -0
  119. package/dist/server/tools/render-class-hierarchy.d.ts +42 -0
  120. package/dist/server/tools/render-class-hierarchy.d.ts.map +1 -0
  121. package/dist/server/tools/render-class-hierarchy.js +265 -0
  122. package/dist/server/tools/render-class-hierarchy.js.map +1 -0
  123. package/dist/server/tools/render-dep-matrix.d.ts +38 -0
  124. package/dist/server/tools/render-dep-matrix.d.ts.map +1 -0
  125. package/dist/server/tools/render-dep-matrix.js +186 -0
  126. package/dist/server/tools/render-dep-matrix.js.map +1 -0
  127. package/dist/server/tools/render-diagram.d.ts +47 -0
  128. package/dist/server/tools/render-diagram.d.ts.map +1 -0
  129. package/dist/server/tools/render-diagram.js +266 -0
  130. package/dist/server/tools/render-diagram.js.map +1 -0
  131. package/dist/server/tools/render-import-graph.d.ts +41 -0
  132. package/dist/server/tools/render-import-graph.d.ts.map +1 -0
  133. package/dist/server/tools/render-import-graph.js +158 -0
  134. package/dist/server/tools/render-import-graph.js.map +1 -0
  135. package/dist/server/tools/search-ast.d.ts +55 -0
  136. package/dist/server/tools/search-ast.d.ts.map +1 -0
  137. package/dist/server/tools/search-ast.js +279 -0
  138. package/dist/server/tools/search-ast.js.map +1 -0
  139. package/dist/server/tools/search-by-complexity.d.ts +92 -0
  140. package/dist/server/tools/search-by-complexity.d.ts.map +1 -0
  141. package/dist/server/tools/search-by-complexity.js +268 -0
  142. package/dist/server/tools/search-by-complexity.js.map +1 -0
  143. package/dist/server/tools/search-by-decorator.d.ts +48 -0
  144. package/dist/server/tools/search-by-decorator.d.ts.map +1 -0
  145. package/dist/server/tools/search-by-decorator.js +518 -0
  146. package/dist/server/tools/search-by-decorator.js.map +1 -0
  147. package/dist/server/tools/search-by-signature.d.ts +56 -0
  148. package/dist/server/tools/search-by-signature.d.ts.map +1 -0
  149. package/dist/server/tools/search-by-signature.js +200 -0
  150. package/dist/server/tools/search-by-signature.js.map +1 -0
  151. package/dist/ui/assets/BlastRadius-QdgESOL8.js +1 -0
  152. package/dist/ui/assets/{DependencyGraph-B60SMPbX.js → DependencyGraph-BSMhzwWV.js} +1 -1
  153. package/dist/ui/assets/{NotFound-Bsg8Wppk.js → NotFound-CipFP_s1.js} +1 -1
  154. package/dist/ui/assets/{RepoDetail-Cie0D4_s.js → RepoDetail-Dfp5z5Kq.js} +1 -1
  155. package/dist/ui/assets/{RepoList-CldNt89M.js → RepoList-BKtST3hB.js} +1 -1
  156. package/dist/ui/assets/{Search-CgvpHMOi.js → Search-DzhGDViy.js} +1 -1
  157. package/dist/ui/assets/{SymbolView-B9h0LZTz.js → SymbolView-ryVEwAHG.js} +1 -1
  158. package/dist/ui/assets/{index-DADf5y_L.css → index-Ny8gn9F0.css} +1 -1
  159. package/dist/ui/assets/{index-eK0wMkUR.js → index-nX2chMqi.js} +2 -2
  160. package/dist/ui/assets/{useSearch-KAl3Qyi2.js → useSearch-BnBCRKui.js} +1 -1
  161. package/dist/ui/index.html +2 -2
  162. package/dist/version.d.ts +1 -1
  163. package/dist/version.js +1 -1
  164. package/docs/dev/jcodemunch-gap-analysis.md +198 -0
  165. package/package.json +9 -1
  166. package/user-manual.md +2466 -0
  167. 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,MAAM,CAAC,MAAM,IAAI,GAAG,mBAAmB,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GACtB,iFAAiF;IACjF,0DAA0D;IAC1D,uFAAuF;IACvF,gEAAgE;IAChE,oFAAoF;IACpF,kEAAkE,CAAC;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,2CAA2C,CAAC;IACxD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE;QACtE,0CAA0C,CAC3C;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2EAA2E;QAC3E,kEAAkE,CACnE;IACH,mBAAmB,EAAE,CAAC;SACnB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,gEAAgE;QAChE,4DAA4D;QAC5D,qCAAqC,CACtC;CACJ,CAAC;AAmCF,iFAAiF;AAEjF,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CACL,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACvB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CACrB,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,SAAiB,EAAE,QAAgB;IAC3E,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,iDAAiD,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,UAAkB,EAClB,kBAA0B,EAC1B,KAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,IAAI,IAAI,KAAK,kBAAkB;YAAE,SAAS;QAE1C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAElC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEnF,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,MAAM,EAAE,yBAAyB,UAAU,MAAM,OAAO,EAAE;iBAC3D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,kBAAkB,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,UAAkB,EAClB,cAAsB,EACtB,eAAuB,EACvB,mBAA4B,EAC5B,KAAkB;IAOlB,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAEnF,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,cAAc;YACxB,MAAM,EACJ,IAAI,UAAU,0DAA0D;gBACxE,oCAAoC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,IAAI,UAAU,oFAAoF;SAC3G,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,IAAa,EACb,kBAA0B,EAC1B,UAAmB,EACnB,YAAqB,EACrB,KAAmB;IAEnB,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,MAAM,CAAC;QACxE,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,kBAAkB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC;QACpH,OAAO,2CAA2C,QAAQ,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CACxE,CAAC;QACF,KAAK,CAAC,IAAI,CACR,GAAG,kBAAkB,kBAAkB,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjI,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAK7B;IACC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAExE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,sCAAsC;qBAC9C,CAAC;iBACH;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,SAAS,MAAM,sCAAsC;yBAC7D,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEjD,8EAA8E;QAE9E,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,WAAW,QAAQ,wBAAwB,MAAM,IAAI;6BAC7D,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,cAAc,CAC5E,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,EAChB,mBAAmB,EACnB,KAAK,CACN,CAAC;YAEF,MAAM,IAAI,GACR,kBAAkB,KAAK,CAAC;gBACxB,CAAC,CAAC,UAAU,IAAI,CAAC,mBAAmB,CAAC;gBACrC,CAAC,YAAY,CAAC;YAEhB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAExF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,MAAM,GAA0B;gBACpC,IAAI;gBACJ,OAAO;gBACP,KAAK;gBACL,kBAAkB;gBAClB,UAAU;gBACV,YAAY;gBACZ,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClD,KAAK,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;aAChD,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,CAAC;QAED,8EAA8E;QAE9E,MAAM,cAAc,GAAG,QAAS,CAAC;QAEjC,MAAM,UAAU,GAAG,EAAE;aAClB,OAAO,CACN,8FAA8F,CAC/F;aACA,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,8BAA8B,cAAc,cAAc,MAAM,KAAK;gCAC1E,2EAA2E;yBAC9E,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,mDAAmD;QACnD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,cAAc,CAC5E,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,SAAS,EACb,mBAAmB,EACnB,KAAK,CACN,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACxB,iBAAiB,IAAI,kBAAkB,CAAC;YACxC,IAAI,UAAU;gBAAE,WAAW,GAAG,IAAI,CAAC;YACnC,IAAI,YAAY;gBAAE,aAAa,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GACR,iBAAiB,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,IAAI,CAAC,mBAAmB,CAAC;YACtC,CAAC,aAAa,CAAC;QAEjB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAE5F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,MAAM,GAA0B;YACpC,IAAI;YACJ,OAAO;YACP,KAAK,EAAE,QAAQ;YACf,kBAAkB,EAAE,iBAAiB;YACrC,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,KAAK,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;SAChD,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}