sdl-mcp 0.11.7 → 0.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +3 -6
  2. package/config/sdlmcp.config.example.json +1 -0
  3. package/config/sdlmcp.config.json +1 -0
  4. package/config/sdlmcp.config.schema.json +8 -1
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/agent/context-engine.d.ts.map +1 -1
  7. package/dist/agent/context-engine.js +4 -1
  8. package/dist/agent/context-engine.js.map +1 -1
  9. package/dist/cli/commands/index.d.ts.map +1 -1
  10. package/dist/cli/commands/index.js +4 -6
  11. package/dist/cli/commands/index.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +22 -20
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  16. package/dist/cli/commands/tool-actions.js +27 -27
  17. package/dist/cli/commands/tool-actions.js.map +1 -1
  18. package/dist/code/hotpath.d.ts +2 -1
  19. package/dist/code/hotpath.d.ts.map +1 -1
  20. package/dist/code/hotpath.js +31 -5
  21. package/dist/code/hotpath.js.map +1 -1
  22. package/dist/code-mode/action-catalog.d.ts.map +1 -1
  23. package/dist/code-mode/action-catalog.js +18 -3
  24. package/dist/code-mode/action-catalog.js.map +1 -1
  25. package/dist/code-mode/index.d.ts.map +1 -1
  26. package/dist/code-mode/index.js +27 -10
  27. package/dist/code-mode/index.js.map +1 -1
  28. package/dist/code-mode/manual-generator.d.ts.map +1 -1
  29. package/dist/code-mode/manual-generator.js +12 -18
  30. package/dist/code-mode/manual-generator.js.map +1 -1
  31. package/dist/code-mode/transforms.d.ts.map +1 -1
  32. package/dist/code-mode/transforms.js +6 -1
  33. package/dist/code-mode/transforms.js.map +1 -1
  34. package/dist/code-mode/types.d.ts +21 -0
  35. package/dist/code-mode/types.d.ts.map +1 -1
  36. package/dist/code-mode/types.js +2 -2
  37. package/dist/code-mode/types.js.map +1 -1
  38. package/dist/code-mode/workflow-executor.d.ts.map +1 -1
  39. package/dist/code-mode/workflow-executor.js +179 -12
  40. package/dist/code-mode/workflow-executor.js.map +1 -1
  41. package/dist/code-mode/workflow-parser.d.ts +2 -2
  42. package/dist/code-mode/workflow-parser.d.ts.map +1 -1
  43. package/dist/code-mode/workflow-parser.js +2 -2
  44. package/dist/code-mode/workflow-parser.js.map +1 -1
  45. package/dist/code-mode/workflow-truncation.d.ts +1 -1
  46. package/dist/code-mode/workflow-truncation.d.ts.map +1 -1
  47. package/dist/code-mode/workflow-truncation.js +84 -18
  48. package/dist/code-mode/workflow-truncation.js.map +1 -1
  49. package/dist/config/admin-metadata.js +2 -2
  50. package/dist/config/admin-metadata.js.map +1 -1
  51. package/dist/config/loadConfig.js +4 -4
  52. package/dist/config/loadConfig.js.map +1 -1
  53. package/dist/config/types.d.ts +22 -4
  54. package/dist/config/types.d.ts.map +1 -1
  55. package/dist/config/types.js +11 -11
  56. package/dist/config/types.js.map +1 -1
  57. package/dist/db/ladybug-edges.d.ts +1 -0
  58. package/dist/db/ladybug-edges.d.ts.map +1 -1
  59. package/dist/db/ladybug-edges.js +77 -7
  60. package/dist/db/ladybug-edges.js.map +1 -1
  61. package/dist/db/ladybug-processes.d.ts +13 -0
  62. package/dist/db/ladybug-processes.d.ts.map +1 -1
  63. package/dist/db/ladybug-processes.js +34 -0
  64. package/dist/db/ladybug-processes.js.map +1 -1
  65. package/dist/db/ladybug-symbols.d.ts +1 -0
  66. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  67. package/dist/db/ladybug-symbols.js +150 -0
  68. package/dist/db/ladybug-symbols.js.map +1 -1
  69. package/dist/db/ladybug.js +2 -2
  70. package/dist/db/ladybug.js.map +1 -1
  71. package/dist/delta/blastRadius.d.ts +6 -1
  72. package/dist/delta/blastRadius.d.ts.map +1 -1
  73. package/dist/delta/blastRadius.js +137 -29
  74. package/dist/delta/blastRadius.js.map +1 -1
  75. package/dist/domain/types.d.ts +13 -0
  76. package/dist/domain/types.d.ts.map +1 -1
  77. package/dist/gateway/descriptions.js +1 -1
  78. package/dist/gateway/descriptions.js.map +1 -1
  79. package/dist/gateway/router.d.ts.map +1 -1
  80. package/dist/gateway/router.js +1 -6
  81. package/dist/gateway/router.js.map +1 -1
  82. package/dist/gateway/schemas.d.ts +20 -10
  83. package/dist/gateway/schemas.d.ts.map +1 -1
  84. package/dist/gateway/schemas.js +54 -19
  85. package/dist/gateway/schemas.js.map +1 -1
  86. package/dist/graph/minHeap.d.ts +13 -0
  87. package/dist/graph/minHeap.d.ts.map +1 -1
  88. package/dist/graph/minHeap.js +14 -2
  89. package/dist/graph/minHeap.js.map +1 -1
  90. package/dist/graph/slice/beam-search-engine.d.ts +1 -0
  91. package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
  92. package/dist/graph/slice/beam-search-engine.js +12 -3
  93. package/dist/graph/slice/beam-search-engine.js.map +1 -1
  94. package/dist/graph/slice/start-node-resolver.d.ts.map +1 -1
  95. package/dist/graph/slice/start-node-resolver.js +8 -7
  96. package/dist/graph/slice/start-node-resolver.js.map +1 -1
  97. package/dist/graph/slice.d.ts.map +1 -1
  98. package/dist/graph/slice.js +4 -0
  99. package/dist/graph/slice.js.map +1 -1
  100. package/dist/indexer/adapter/cpp.d.ts.map +1 -1
  101. package/dist/indexer/adapter/cpp.js +4 -4
  102. package/dist/indexer/adapter/cpp.js.map +1 -1
  103. package/dist/indexer/adapter/csharp.js +1 -1
  104. package/dist/indexer/adapter/csharp.js.map +1 -1
  105. package/dist/indexer/adapter/go.d.ts.map +1 -1
  106. package/dist/indexer/adapter/go.js +4 -14
  107. package/dist/indexer/adapter/go.js.map +1 -1
  108. package/dist/indexer/adapter/php.d.ts.map +1 -1
  109. package/dist/indexer/adapter/php.js +8 -4
  110. package/dist/indexer/adapter/php.js.map +1 -1
  111. package/dist/indexer/adapter/python.d.ts.map +1 -1
  112. package/dist/indexer/adapter/python.js +4 -0
  113. package/dist/indexer/adapter/python.js.map +1 -1
  114. package/dist/indexer/adapter/rust.d.ts.map +1 -1
  115. package/dist/indexer/adapter/rust.js +8 -0
  116. package/dist/indexer/adapter/rust.js.map +1 -1
  117. package/dist/indexer/adapter/shell.d.ts.map +1 -1
  118. package/dist/indexer/adapter/shell.js +4 -0
  119. package/dist/indexer/adapter/shell.js.map +1 -1
  120. package/dist/indexer/derived-refresh-queue.d.ts +2 -2
  121. package/dist/indexer/derived-refresh-queue.js +3 -3
  122. package/dist/indexer/indexer.d.ts +16 -1
  123. package/dist/indexer/indexer.d.ts.map +1 -1
  124. package/dist/indexer/indexer.js +368 -268
  125. package/dist/indexer/indexer.js.map +1 -1
  126. package/dist/indexer/provider-first/executor.d.ts +6 -1
  127. package/dist/indexer/provider-first/executor.d.ts.map +1 -1
  128. package/dist/indexer/provider-first/executor.js +65 -14
  129. package/dist/indexer/provider-first/executor.js.map +1 -1
  130. package/dist/indexer/provider-first/index.d.ts +1 -1
  131. package/dist/indexer/provider-first/index.d.ts.map +1 -1
  132. package/dist/indexer/provider-first/index.js +1 -1
  133. package/dist/indexer/provider-first/index.js.map +1 -1
  134. package/dist/indexer/provider-first/materializer.d.ts +5 -0
  135. package/dist/indexer/provider-first/materializer.d.ts.map +1 -1
  136. package/dist/indexer/provider-first/materializer.js +78 -45
  137. package/dist/indexer/provider-first/materializer.js.map +1 -1
  138. package/dist/indexer/provider-first/planner.d.ts.map +1 -1
  139. package/dist/indexer/provider-first/planner.js +16 -12
  140. package/dist/indexer/provider-first/planner.js.map +1 -1
  141. package/dist/indexer/provider-first/source-call-proof.d.ts.map +1 -1
  142. package/dist/indexer/provider-first/source-call-proof.js +30 -11
  143. package/dist/indexer/provider-first/source-call-proof.js.map +1 -1
  144. package/dist/indexer/treesitter/extractCalls.d.ts +1 -1
  145. package/dist/indexer/treesitter/extractCalls.d.ts.map +1 -1
  146. package/dist/indexer/treesitter/extractCalls.js +41 -12
  147. package/dist/indexer/treesitter/extractCalls.js.map +1 -1
  148. package/dist/indexer/watcher.d.ts +19 -1
  149. package/dist/indexer/watcher.d.ts.map +1 -1
  150. package/dist/indexer/watcher.js +337 -83
  151. package/dist/indexer/watcher.js.map +1 -1
  152. package/dist/indexer/watchman-binary.d.ts +22 -0
  153. package/dist/indexer/watchman-binary.d.ts.map +1 -0
  154. package/dist/indexer/watchman-binary.js +115 -0
  155. package/dist/indexer/watchman-binary.js.map +1 -0
  156. package/dist/indexer/watchman-provider.d.ts +154 -0
  157. package/dist/indexer/watchman-provider.d.ts.map +1 -0
  158. package/dist/indexer/watchman-provider.js +450 -0
  159. package/dist/indexer/watchman-provider.js.map +1 -0
  160. package/dist/main.js +20 -2
  161. package/dist/main.js.map +1 -1
  162. package/dist/mcp/savings-meter.d.ts.map +1 -1
  163. package/dist/mcp/savings-meter.js +17 -1
  164. package/dist/mcp/savings-meter.js.map +1 -1
  165. package/dist/mcp/server-instructions.js +3 -3
  166. package/dist/mcp/server-instructions.js.map +1 -1
  167. package/dist/mcp/telemetry.d.ts +13 -0
  168. package/dist/mcp/telemetry.d.ts.map +1 -1
  169. package/dist/mcp/telemetry.js +3 -0
  170. package/dist/mcp/telemetry.js.map +1 -1
  171. package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
  172. package/dist/mcp/tool-call-formatter.js +26 -1
  173. package/dist/mcp/tool-call-formatter.js.map +1 -1
  174. package/dist/mcp/tools/code.d.ts.map +1 -1
  175. package/dist/mcp/tools/code.js +10 -2
  176. package/dist/mcp/tools/code.js.map +1 -1
  177. package/dist/mcp/tools/context.d.ts.map +1 -1
  178. package/dist/mcp/tools/context.js +8 -0
  179. package/dist/mcp/tools/context.js.map +1 -1
  180. package/dist/mcp/tools/file-read.d.ts.map +1 -1
  181. package/dist/mcp/tools/file-read.js +23 -7
  182. package/dist/mcp/tools/file-read.js.map +1 -1
  183. package/dist/mcp/tools/repo.d.ts.map +1 -1
  184. package/dist/mcp/tools/repo.js +17 -6
  185. package/dist/mcp/tools/repo.js.map +1 -1
  186. package/dist/mcp/tools/response.d.ts.map +1 -1
  187. package/dist/mcp/tools/response.js +1 -0
  188. package/dist/mcp/tools/response.js.map +1 -1
  189. package/dist/mcp/tools/runtime-query.d.ts.map +1 -1
  190. package/dist/mcp/tools/runtime-query.js +8 -1
  191. package/dist/mcp/tools/runtime-query.js.map +1 -1
  192. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  193. package/dist/mcp/tools/runtime.js +162 -129
  194. package/dist/mcp/tools/runtime.js.map +1 -1
  195. package/dist/mcp/tools/symbol.d.ts.map +1 -1
  196. package/dist/mcp/tools/symbol.js +3 -0
  197. package/dist/mcp/tools/symbol.js.map +1 -1
  198. package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -1
  199. package/dist/mcp/tools/tool-descriptors.js +1 -8
  200. package/dist/mcp/tools/tool-descriptors.js.map +1 -1
  201. package/dist/mcp/tools.d.ts +91 -9
  202. package/dist/mcp/tools.d.ts.map +1 -1
  203. package/dist/mcp/tools.js +83 -25
  204. package/dist/mcp/tools.js.map +1 -1
  205. package/dist/observability/aggregator.d.ts +31 -0
  206. package/dist/observability/aggregator.d.ts.map +1 -1
  207. package/dist/observability/aggregator.js +130 -1
  208. package/dist/observability/aggregator.js.map +1 -1
  209. package/dist/observability/event-tap.d.ts +11 -0
  210. package/dist/observability/event-tap.d.ts.map +1 -1
  211. package/dist/observability/event-tap.js.map +1 -1
  212. package/dist/observability/index.d.ts +2 -2
  213. package/dist/observability/index.d.ts.map +1 -1
  214. package/dist/observability/index.js.map +1 -1
  215. package/dist/observability/service.d.ts +2 -1
  216. package/dist/observability/service.d.ts.map +1 -1
  217. package/dist/observability/service.js +16 -0
  218. package/dist/observability/service.js.map +1 -1
  219. package/dist/observability/types.d.ts +45 -0
  220. package/dist/observability/types.d.ts.map +1 -1
  221. package/dist/observability/types.js.map +1 -1
  222. package/dist/retrieval/orchestrator.d.ts.map +1 -1
  223. package/dist/retrieval/orchestrator.js +35 -7
  224. package/dist/retrieval/orchestrator.js.map +1 -1
  225. package/dist/runtime/artifacts.d.ts +32 -11
  226. package/dist/runtime/artifacts.d.ts.map +1 -1
  227. package/dist/runtime/artifacts.js +84 -11
  228. package/dist/runtime/artifacts.js.map +1 -1
  229. package/dist/runtime/response-artifacts.d.ts +1 -0
  230. package/dist/runtime/response-artifacts.d.ts.map +1 -1
  231. package/dist/runtime/response-artifacts.js +53 -0
  232. package/dist/runtime/response-artifacts.js.map +1 -1
  233. package/dist/runtime/types.d.ts +5 -0
  234. package/dist/runtime/types.d.ts.map +1 -1
  235. package/dist/scip/ingestion.d.ts +8 -38
  236. package/dist/scip/ingestion.d.ts.map +1 -1
  237. package/dist/scip/ingestion.js +61 -221
  238. package/dist/scip/ingestion.js.map +1 -1
  239. package/dist/scip/scip-io-runner.d.ts +4 -0
  240. package/dist/scip/scip-io-runner.d.ts.map +1 -1
  241. package/dist/scip/scip-io-runner.js +41 -11
  242. package/dist/scip/scip-io-runner.js.map +1 -1
  243. package/dist/semantic/enrichment.d.ts.map +1 -1
  244. package/dist/semantic/enrichment.js +15 -134
  245. package/dist/semantic/enrichment.js.map +1 -1
  246. package/dist/ui/config.js +2 -2
  247. package/dist/ui/config.js.map +1 -1
  248. package/dist/ui/observability.css +10 -0
  249. package/dist/ui/observability.html +30 -0
  250. package/dist/ui/observability.js +47 -0
  251. package/dist/ui/observability.js.map +1 -1
  252. package/dist/util/logger.d.ts.map +1 -1
  253. package/dist/util/logger.js +11 -3
  254. package/dist/util/logger.js.map +1 -1
  255. package/dist/util/runtime-identity.d.ts +8 -0
  256. package/dist/util/runtime-identity.d.ts.map +1 -1
  257. package/dist/util/runtime-identity.js +41 -0
  258. package/dist/util/runtime-identity.js.map +1 -1
  259. package/package.json +15 -6
  260. package/scripts/postinstall-watchman.mjs +136 -0
  261. package/scripts/postinstall.mjs +3 -2
  262. package/templates/GEMINI.md.template +6 -2
  263. package/templates/OPENCODE.md.template +7 -1
  264. package/templates/SDL.md +105 -28
  265. package/dist/mcp/tools/scip.d.ts +0 -10
  266. package/dist/mcp/tools/scip.d.ts.map +0 -1
  267. package/dist/mcp/tools/scip.js +0 -59
  268. package/dist/mcp/tools/scip.js.map +0 -1
  269. package/dist/scip/cleanup.d.ts +0 -35
  270. package/dist/scip/cleanup.d.ts.map +0 -1
  271. package/dist/scip/cleanup.js +0 -76
  272. package/dist/scip/cleanup.js.map +0 -1
package/README.md CHANGED
@@ -273,7 +273,7 @@ When enabled, memories are **automatically surfaced** inside graph slices — wh
273
273
 
274
274
  ### SCIP Integration — Compiler-Grade Cross-References
275
275
 
276
- Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across the built-in TypeScript/JavaScript, Python, Go, Java, C#, C/C++, Rust, and Kotlin surface. PHP and Shell/Bash are explicit opt-in language packs for LSP provider-first work and are not enabled by default. SCIP (Source Code Intelligence Protocol) supplements this with **compiler-grade cross-references** from tools like scip-typescript, scip-go, and rust-analyzer. Generate a `.scip` index file, point SDL-MCP at it, and heuristic edges are upgraded to exact compiler-verified edges, external dependency symbols become first-class graph nodes, and new `implements` edges reveal interface/trait relationships that syntax analysis cannot discover.
276
+ Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across the built-in TypeScript/JavaScript, Python, Go, Java, C#, C/C++, Rust, and Kotlin surface. PHP and Shell/Bash are explicit opt-in language packs for LSP provider-first work and are not enabled by default. SCIP (Source Code Intelligence Protocol) supplies **compiler-grade cross-references** from tools like scip-typescript, scip-go, and rust-analyzer. When `scip.enabled` is true, SDL-MCP uses provider-first indexing to materialize those facts directly, with legacy parsing retained only for uncovered or provider-unusable files.
277
277
 
278
278
  ![SCIP integration compiler cross-reference ingestion flow](./docs/readme-assets/readme-scip-integration.webp)
279
279
 
@@ -282,7 +282,7 @@ Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across the built-
282
282
  - Upgrades heuristic call resolution to **compiler-verified exact edges** (confidence 0.95)
283
283
  - External dependencies (npm packages, Go modules, crate deps) become searchable graph nodes
284
284
  - Interface/trait implementations tracked via `implements` edges
285
- - Auto-ingest on `sdl.index.refresh` keeps SCIP data current with zero manual steps
285
+ - Provider-first indexing keeps SCIP/LSP facts owned by the provider path; legacy indexing does not ingest `.scip` overlays
286
286
  - Complementary: tree-sitter provides structure, SCIP provides semantic precision
287
287
 
288
288
  [SCIP Integration Deep Dive →](./docs/feature-deep-dives/scip-integration.md)
@@ -422,9 +422,6 @@ The generated source of truth is [`docs/generated/tool-inventory.md`](./docs/gen
422
422
  <tr><td><code>sdl.workflow</code></td><td>Multi-step operations with budget tracking, ETag caching, and transforms</td></tr>
423
423
  <tr><td><code>sdl.manual</code></td><td>Self-documentation — query usage guide, action schemas, output format reference</td></tr>
424
424
 
425
- <tr><td><strong>SCIP</strong></td>
426
- <td><code>sdl.scip.ingest</code></td><td>Ingest a pre-built SCIP index for compiler-grade cross-references (with dry-run support)</td></tr>
427
-
428
425
  <tr><td rowspan="2"><strong>File</strong></td>
429
426
  <td><code>sdl.file.read</code></td><td>Read non-indexed files (configs, docs, templates) with line-range, search, or JSON-path modes</td></tr>
430
427
  <tr><td><code>sdl.file.write</code></td><td>Policy-aware write helper for non-indexed files and templates</td></tr>
@@ -556,7 +553,7 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
556
553
  | [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
557
554
  | [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
558
555
  | [Development Memories](./docs/feature-deep-dives/development-memories.md) | Graph-backed cross-session memory, file sync, staleness detection, auto-surfacing |
559
- | [SCIP Integration](./docs/feature-deep-dives/scip-integration.md) | Compiler-grade cross-references, external deps, implements edges, auto-ingest |
556
+ | [SCIP Integration](./docs/feature-deep-dives/scip-integration.md) | Provider-first compiler-grade cross-references, external deps, implements edges |
560
557
  | [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
561
558
 
562
559
  <br/>
@@ -94,6 +94,7 @@
94
94
  "diagnosticsTimeoutMs": 5000
95
95
  }
96
96
  },
97
+ "watchProvider": "auto",
97
98
  "concurrency": 8,
98
99
  "enableFileWatching": true,
99
100
  "maxWatchedFiles": 25000,
@@ -121,6 +121,7 @@
121
121
  "indexing": {
122
122
  "concurrency": 4,
123
123
  "enableFileWatching": true,
124
+ "watchProvider": "auto",
124
125
  "maxWatchedFiles": 25000
125
126
  },
126
127
  "slice": {
@@ -405,6 +405,12 @@
405
405
  }
406
406
  }
407
407
  },
408
+ "watchProvider": {
409
+ "type": "string",
410
+ "description": "File watcher event source. auto tries Watchman, then Chokidar, then fs.watch. Explicit providers fail visibly when unavailable.",
411
+ "enum": ["auto", "watchman", "chokidar", "fsWatch"],
412
+ "default": "auto"
413
+ },
408
414
  "concurrency": {
409
415
  "type": "integer",
410
416
  "description": "Number of concurrent indexing workers",
@@ -519,6 +525,7 @@
519
525
  "diagnosticsTimeoutMs": 5000
520
526
  }
521
527
  },
528
+ "watchProvider": "auto",
522
529
  "concurrency": 8,
523
530
  "enableFileWatching": true,
524
531
  "maxWatchedFiles": 25000,
@@ -1837,7 +1844,7 @@
1837
1844
  },
1838
1845
  "cleanupAfterIngest": {
1839
1846
  "type": "boolean",
1840
- "description": "Delete <repoRoot>/index.scip after the post-refresh ingest consumes it. The file is regenerated every refresh, so keeping it just clutters the working tree. Only the default output location is cleaned up — passing --output via args opts you out of cleanup automatically.",
1847
+ "description": "Deprecated compatibility field for legacy post-refresh SCIP ingest cleanup. Provider-first does not delete generated indexes after collection.",
1841
1848
  "default": true
1842
1849
  },
1843
1850
  "cacheGeneratedIndexes": {