sdl-mcp 0.11.7 → 0.11.9

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 (310) hide show
  1. package/README.md +15 -7
  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/argParsing.d.ts.map +1 -1
  10. package/dist/cli/argParsing.js +15 -0
  11. package/dist/cli/argParsing.js.map +1 -1
  12. package/dist/cli/commands/index.d.ts.map +1 -1
  13. package/dist/cli/commands/index.js +4 -6
  14. package/dist/cli/commands/index.js.map +1 -1
  15. package/dist/cli/commands/init.d.ts +16 -1
  16. package/dist/cli/commands/init.d.ts.map +1 -1
  17. package/dist/cli/commands/init.js +467 -57
  18. package/dist/cli/commands/init.js.map +1 -1
  19. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  20. package/dist/cli/commands/tool-actions.js +27 -27
  21. package/dist/cli/commands/tool-actions.js.map +1 -1
  22. package/dist/cli/index.js +4 -1
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/cli/setup-wizard/config-diff.d.ts +8 -0
  25. package/dist/cli/setup-wizard/config-diff.d.ts.map +1 -0
  26. package/dist/cli/setup-wizard/config-diff.js +63 -0
  27. package/dist/cli/setup-wizard/config-diff.js.map +1 -0
  28. package/dist/cli/setup-wizard/lsp.d.ts +11 -0
  29. package/dist/cli/setup-wizard/lsp.d.ts.map +1 -0
  30. package/dist/cli/setup-wizard/lsp.js +76 -0
  31. package/dist/cli/setup-wizard/lsp.js.map +1 -0
  32. package/dist/cli/setup-wizard/recommendations.d.ts +22 -0
  33. package/dist/cli/setup-wizard/recommendations.d.ts.map +1 -0
  34. package/dist/cli/setup-wizard/recommendations.js +64 -0
  35. package/dist/cli/setup-wizard/recommendations.js.map +1 -0
  36. package/dist/cli/setup-wizard/run.d.ts +16 -0
  37. package/dist/cli/setup-wizard/run.d.ts.map +1 -0
  38. package/dist/cli/setup-wizard/run.js +136 -0
  39. package/dist/cli/setup-wizard/run.js.map +1 -0
  40. package/dist/cli/setup-wizard/terminal.d.ts +36 -0
  41. package/dist/cli/setup-wizard/terminal.d.ts.map +1 -0
  42. package/dist/cli/setup-wizard/terminal.js +158 -0
  43. package/dist/cli/setup-wizard/terminal.js.map +1 -0
  44. package/dist/cli/setup-wizard/types.d.ts +259 -0
  45. package/dist/cli/setup-wizard/types.d.ts.map +1 -0
  46. package/dist/cli/setup-wizard/types.js +96 -0
  47. package/dist/cli/setup-wizard/types.js.map +1 -0
  48. package/dist/cli/types.d.ts +2 -0
  49. package/dist/cli/types.d.ts.map +1 -1
  50. package/dist/code/hotpath.d.ts +2 -1
  51. package/dist/code/hotpath.d.ts.map +1 -1
  52. package/dist/code/hotpath.js +31 -5
  53. package/dist/code/hotpath.js.map +1 -1
  54. package/dist/code-mode/action-catalog.d.ts.map +1 -1
  55. package/dist/code-mode/action-catalog.js +18 -3
  56. package/dist/code-mode/action-catalog.js.map +1 -1
  57. package/dist/code-mode/index.d.ts.map +1 -1
  58. package/dist/code-mode/index.js +27 -10
  59. package/dist/code-mode/index.js.map +1 -1
  60. package/dist/code-mode/manual-generator.d.ts.map +1 -1
  61. package/dist/code-mode/manual-generator.js +12 -18
  62. package/dist/code-mode/manual-generator.js.map +1 -1
  63. package/dist/code-mode/transforms.d.ts.map +1 -1
  64. package/dist/code-mode/transforms.js +6 -1
  65. package/dist/code-mode/transforms.js.map +1 -1
  66. package/dist/code-mode/types.d.ts +21 -0
  67. package/dist/code-mode/types.d.ts.map +1 -1
  68. package/dist/code-mode/types.js +2 -2
  69. package/dist/code-mode/types.js.map +1 -1
  70. package/dist/code-mode/workflow-executor.d.ts.map +1 -1
  71. package/dist/code-mode/workflow-executor.js +179 -12
  72. package/dist/code-mode/workflow-executor.js.map +1 -1
  73. package/dist/code-mode/workflow-parser.d.ts +2 -2
  74. package/dist/code-mode/workflow-parser.d.ts.map +1 -1
  75. package/dist/code-mode/workflow-parser.js +2 -2
  76. package/dist/code-mode/workflow-parser.js.map +1 -1
  77. package/dist/code-mode/workflow-truncation.d.ts +1 -1
  78. package/dist/code-mode/workflow-truncation.d.ts.map +1 -1
  79. package/dist/code-mode/workflow-truncation.js +84 -18
  80. package/dist/code-mode/workflow-truncation.js.map +1 -1
  81. package/dist/config/admin-metadata.js +2 -2
  82. package/dist/config/admin-metadata.js.map +1 -1
  83. package/dist/config/loadConfig.js +4 -4
  84. package/dist/config/loadConfig.js.map +1 -1
  85. package/dist/config/types.d.ts +22 -4
  86. package/dist/config/types.d.ts.map +1 -1
  87. package/dist/config/types.js +11 -11
  88. package/dist/config/types.js.map +1 -1
  89. package/dist/db/ladybug-edges.d.ts +1 -0
  90. package/dist/db/ladybug-edges.d.ts.map +1 -1
  91. package/dist/db/ladybug-edges.js +77 -7
  92. package/dist/db/ladybug-edges.js.map +1 -1
  93. package/dist/db/ladybug-processes.d.ts +13 -0
  94. package/dist/db/ladybug-processes.d.ts.map +1 -1
  95. package/dist/db/ladybug-processes.js +34 -0
  96. package/dist/db/ladybug-processes.js.map +1 -1
  97. package/dist/db/ladybug-symbols.d.ts +1 -0
  98. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  99. package/dist/db/ladybug-symbols.js +150 -0
  100. package/dist/db/ladybug-symbols.js.map +1 -1
  101. package/dist/db/ladybug.js +2 -2
  102. package/dist/db/ladybug.js.map +1 -1
  103. package/dist/delta/blastRadius.d.ts +6 -1
  104. package/dist/delta/blastRadius.d.ts.map +1 -1
  105. package/dist/delta/blastRadius.js +137 -29
  106. package/dist/delta/blastRadius.js.map +1 -1
  107. package/dist/domain/types.d.ts +13 -0
  108. package/dist/domain/types.d.ts.map +1 -1
  109. package/dist/gateway/descriptions.js +1 -1
  110. package/dist/gateway/descriptions.js.map +1 -1
  111. package/dist/gateway/router.d.ts.map +1 -1
  112. package/dist/gateway/router.js +1 -6
  113. package/dist/gateway/router.js.map +1 -1
  114. package/dist/gateway/schemas.d.ts +20 -10
  115. package/dist/gateway/schemas.d.ts.map +1 -1
  116. package/dist/gateway/schemas.js +54 -19
  117. package/dist/gateway/schemas.js.map +1 -1
  118. package/dist/graph/minHeap.d.ts +13 -0
  119. package/dist/graph/minHeap.d.ts.map +1 -1
  120. package/dist/graph/minHeap.js +14 -2
  121. package/dist/graph/minHeap.js.map +1 -1
  122. package/dist/graph/slice/beam-search-engine.d.ts +1 -0
  123. package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
  124. package/dist/graph/slice/beam-search-engine.js +12 -3
  125. package/dist/graph/slice/beam-search-engine.js.map +1 -1
  126. package/dist/graph/slice/start-node-resolver.d.ts.map +1 -1
  127. package/dist/graph/slice/start-node-resolver.js +8 -7
  128. package/dist/graph/slice/start-node-resolver.js.map +1 -1
  129. package/dist/graph/slice.d.ts.map +1 -1
  130. package/dist/graph/slice.js +4 -0
  131. package/dist/graph/slice.js.map +1 -1
  132. package/dist/indexer/adapter/cpp.d.ts.map +1 -1
  133. package/dist/indexer/adapter/cpp.js +4 -4
  134. package/dist/indexer/adapter/cpp.js.map +1 -1
  135. package/dist/indexer/adapter/csharp.js +1 -1
  136. package/dist/indexer/adapter/csharp.js.map +1 -1
  137. package/dist/indexer/adapter/go.d.ts.map +1 -1
  138. package/dist/indexer/adapter/go.js +4 -14
  139. package/dist/indexer/adapter/go.js.map +1 -1
  140. package/dist/indexer/adapter/php.d.ts.map +1 -1
  141. package/dist/indexer/adapter/php.js +8 -4
  142. package/dist/indexer/adapter/php.js.map +1 -1
  143. package/dist/indexer/adapter/python.d.ts.map +1 -1
  144. package/dist/indexer/adapter/python.js +4 -0
  145. package/dist/indexer/adapter/python.js.map +1 -1
  146. package/dist/indexer/adapter/rust.d.ts.map +1 -1
  147. package/dist/indexer/adapter/rust.js +8 -0
  148. package/dist/indexer/adapter/rust.js.map +1 -1
  149. package/dist/indexer/adapter/shell.d.ts.map +1 -1
  150. package/dist/indexer/adapter/shell.js +4 -0
  151. package/dist/indexer/adapter/shell.js.map +1 -1
  152. package/dist/indexer/derived-refresh-queue.d.ts +2 -2
  153. package/dist/indexer/derived-refresh-queue.js +3 -3
  154. package/dist/indexer/indexer.d.ts +16 -1
  155. package/dist/indexer/indexer.d.ts.map +1 -1
  156. package/dist/indexer/indexer.js +363 -269
  157. package/dist/indexer/indexer.js.map +1 -1
  158. package/dist/indexer/provider-first/executor.d.ts +7 -1
  159. package/dist/indexer/provider-first/executor.d.ts.map +1 -1
  160. package/dist/indexer/provider-first/executor.js +77 -16
  161. package/dist/indexer/provider-first/executor.js.map +1 -1
  162. package/dist/indexer/provider-first/index.d.ts +1 -1
  163. package/dist/indexer/provider-first/index.d.ts.map +1 -1
  164. package/dist/indexer/provider-first/index.js +1 -1
  165. package/dist/indexer/provider-first/index.js.map +1 -1
  166. package/dist/indexer/provider-first/materializer.d.ts +5 -0
  167. package/dist/indexer/provider-first/materializer.d.ts.map +1 -1
  168. package/dist/indexer/provider-first/materializer.js +78 -45
  169. package/dist/indexer/provider-first/materializer.js.map +1 -1
  170. package/dist/indexer/provider-first/planner.d.ts.map +1 -1
  171. package/dist/indexer/provider-first/planner.js +16 -12
  172. package/dist/indexer/provider-first/planner.js.map +1 -1
  173. package/dist/indexer/provider-first/shadow-finalization.js +96 -2
  174. package/dist/indexer/provider-first/shadow-finalization.js.map +1 -1
  175. package/dist/indexer/provider-first/source-call-proof.d.ts.map +1 -1
  176. package/dist/indexer/provider-first/source-call-proof.js +30 -11
  177. package/dist/indexer/provider-first/source-call-proof.js.map +1 -1
  178. package/dist/indexer/scanner.d.ts +2 -1
  179. package/dist/indexer/scanner.d.ts.map +1 -1
  180. package/dist/indexer/scanner.js +14 -8
  181. package/dist/indexer/scanner.js.map +1 -1
  182. package/dist/indexer/treesitter/extractCalls.d.ts +1 -1
  183. package/dist/indexer/treesitter/extractCalls.d.ts.map +1 -1
  184. package/dist/indexer/treesitter/extractCalls.js +41 -12
  185. package/dist/indexer/treesitter/extractCalls.js.map +1 -1
  186. package/dist/indexer/watcher.d.ts +19 -1
  187. package/dist/indexer/watcher.d.ts.map +1 -1
  188. package/dist/indexer/watcher.js +337 -83
  189. package/dist/indexer/watcher.js.map +1 -1
  190. package/dist/indexer/watchman-binary.d.ts +22 -0
  191. package/dist/indexer/watchman-binary.d.ts.map +1 -0
  192. package/dist/indexer/watchman-binary.js +115 -0
  193. package/dist/indexer/watchman-binary.js.map +1 -0
  194. package/dist/indexer/watchman-provider.d.ts +159 -0
  195. package/dist/indexer/watchman-provider.d.ts.map +1 -0
  196. package/dist/indexer/watchman-provider.js +466 -0
  197. package/dist/indexer/watchman-provider.js.map +1 -0
  198. package/dist/main.js +20 -2
  199. package/dist/main.js.map +1 -1
  200. package/dist/mcp/savings-meter.d.ts.map +1 -1
  201. package/dist/mcp/savings-meter.js +17 -1
  202. package/dist/mcp/savings-meter.js.map +1 -1
  203. package/dist/mcp/server-instructions.js +3 -3
  204. package/dist/mcp/server-instructions.js.map +1 -1
  205. package/dist/mcp/telemetry.d.ts +13 -0
  206. package/dist/mcp/telemetry.d.ts.map +1 -1
  207. package/dist/mcp/telemetry.js +3 -0
  208. package/dist/mcp/telemetry.js.map +1 -1
  209. package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
  210. package/dist/mcp/tool-call-formatter.js +26 -1
  211. package/dist/mcp/tool-call-formatter.js.map +1 -1
  212. package/dist/mcp/tools/code.d.ts.map +1 -1
  213. package/dist/mcp/tools/code.js +10 -2
  214. package/dist/mcp/tools/code.js.map +1 -1
  215. package/dist/mcp/tools/context.d.ts.map +1 -1
  216. package/dist/mcp/tools/context.js +8 -0
  217. package/dist/mcp/tools/context.js.map +1 -1
  218. package/dist/mcp/tools/file-read.d.ts.map +1 -1
  219. package/dist/mcp/tools/file-read.js +23 -7
  220. package/dist/mcp/tools/file-read.js.map +1 -1
  221. package/dist/mcp/tools/repo.d.ts.map +1 -1
  222. package/dist/mcp/tools/repo.js +17 -6
  223. package/dist/mcp/tools/repo.js.map +1 -1
  224. package/dist/mcp/tools/response.d.ts.map +1 -1
  225. package/dist/mcp/tools/response.js +1 -0
  226. package/dist/mcp/tools/response.js.map +1 -1
  227. package/dist/mcp/tools/runtime-query.d.ts.map +1 -1
  228. package/dist/mcp/tools/runtime-query.js +8 -1
  229. package/dist/mcp/tools/runtime-query.js.map +1 -1
  230. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  231. package/dist/mcp/tools/runtime.js +162 -129
  232. package/dist/mcp/tools/runtime.js.map +1 -1
  233. package/dist/mcp/tools/symbol.d.ts.map +1 -1
  234. package/dist/mcp/tools/symbol.js +3 -0
  235. package/dist/mcp/tools/symbol.js.map +1 -1
  236. package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -1
  237. package/dist/mcp/tools/tool-descriptors.js +1 -8
  238. package/dist/mcp/tools/tool-descriptors.js.map +1 -1
  239. package/dist/mcp/tools.d.ts +91 -9
  240. package/dist/mcp/tools.d.ts.map +1 -1
  241. package/dist/mcp/tools.js +83 -25
  242. package/dist/mcp/tools.js.map +1 -1
  243. package/dist/observability/aggregator.d.ts +31 -0
  244. package/dist/observability/aggregator.d.ts.map +1 -1
  245. package/dist/observability/aggregator.js +130 -1
  246. package/dist/observability/aggregator.js.map +1 -1
  247. package/dist/observability/event-tap.d.ts +11 -0
  248. package/dist/observability/event-tap.d.ts.map +1 -1
  249. package/dist/observability/event-tap.js.map +1 -1
  250. package/dist/observability/index.d.ts +2 -2
  251. package/dist/observability/index.d.ts.map +1 -1
  252. package/dist/observability/index.js.map +1 -1
  253. package/dist/observability/service.d.ts +2 -1
  254. package/dist/observability/service.d.ts.map +1 -1
  255. package/dist/observability/service.js +16 -0
  256. package/dist/observability/service.js.map +1 -1
  257. package/dist/observability/types.d.ts +45 -0
  258. package/dist/observability/types.d.ts.map +1 -1
  259. package/dist/observability/types.js.map +1 -1
  260. package/dist/retrieval/orchestrator.d.ts.map +1 -1
  261. package/dist/retrieval/orchestrator.js +35 -7
  262. package/dist/retrieval/orchestrator.js.map +1 -1
  263. package/dist/runtime/artifacts.d.ts +32 -11
  264. package/dist/runtime/artifacts.d.ts.map +1 -1
  265. package/dist/runtime/artifacts.js +84 -11
  266. package/dist/runtime/artifacts.js.map +1 -1
  267. package/dist/runtime/response-artifacts.d.ts +1 -0
  268. package/dist/runtime/response-artifacts.d.ts.map +1 -1
  269. package/dist/runtime/response-artifacts.js +53 -0
  270. package/dist/runtime/response-artifacts.js.map +1 -1
  271. package/dist/runtime/types.d.ts +5 -0
  272. package/dist/runtime/types.d.ts.map +1 -1
  273. package/dist/scip/ingestion.d.ts +8 -38
  274. package/dist/scip/ingestion.d.ts.map +1 -1
  275. package/dist/scip/ingestion.js +61 -221
  276. package/dist/scip/ingestion.js.map +1 -1
  277. package/dist/scip/scip-io-runner.d.ts +4 -0
  278. package/dist/scip/scip-io-runner.d.ts.map +1 -1
  279. package/dist/scip/scip-io-runner.js +41 -11
  280. package/dist/scip/scip-io-runner.js.map +1 -1
  281. package/dist/semantic/enrichment.d.ts.map +1 -1
  282. package/dist/semantic/enrichment.js +15 -134
  283. package/dist/semantic/enrichment.js.map +1 -1
  284. package/dist/ui/config.js +2 -2
  285. package/dist/ui/config.js.map +1 -1
  286. package/dist/ui/observability.css +10 -0
  287. package/dist/ui/observability.html +30 -0
  288. package/dist/ui/observability.js +47 -0
  289. package/dist/ui/observability.js.map +1 -1
  290. package/dist/util/logger.d.ts.map +1 -1
  291. package/dist/util/logger.js +11 -3
  292. package/dist/util/logger.js.map +1 -1
  293. package/dist/util/runtime-identity.d.ts +8 -0
  294. package/dist/util/runtime-identity.d.ts.map +1 -1
  295. package/dist/util/runtime-identity.js +41 -0
  296. package/dist/util/runtime-identity.js.map +1 -1
  297. package/package.json +16 -6
  298. package/scripts/postinstall-watchman.mjs +136 -0
  299. package/scripts/postinstall.mjs +177 -14
  300. package/templates/GEMINI.md.template +6 -2
  301. package/templates/OPENCODE.md.template +7 -1
  302. package/templates/SDL.md +106 -29
  303. package/dist/mcp/tools/scip.d.ts +0 -10
  304. package/dist/mcp/tools/scip.d.ts.map +0 -1
  305. package/dist/mcp/tools/scip.js +0 -59
  306. package/dist/mcp/tools/scip.js.map +0 -1
  307. package/dist/scip/cleanup.d.ts +0 -35
  308. package/dist/scip/cleanup.d.ts.map +0 -1
  309. package/dist/scip/cleanup.js +0 -76
  310. package/dist/scip/cleanup.js.map +0 -1
package/README.md CHANGED
@@ -67,14 +67,25 @@ SDL-MCP fixes this. It indexes your codebase into a searchable **symbol graph**
67
67
  ```bash
68
68
  # Install (requires Node.js 24+)
69
69
  npm install -g sdl-mcp
70
+ # Plain npm installs run lifecycle scripts in the background, so run
71
+ # `sdl-mcp init` after install. Use `--foreground-scripts` only when you
72
+ # specifically want npm to show the install-time wizard and lifecycle output.
70
73
 
71
- # Initialize, auto-detect languages, index your repo, and run health checks
74
+ # Non-interactive setup: initialize, auto-detect languages, index, and run health checks
72
75
  sdl-mcp init -y --auto-index
73
76
 
74
77
  # Start the MCP server for your coding agent
75
78
  sdl-mcp serve --stdio
76
79
  ```
77
80
 
81
+ For a clean foreground installer flow, use the tiny wrapper package:
82
+
83
+ ```bash
84
+ npx create-sdl-mcp
85
+ ```
86
+
87
+ Run `npx create-sdl-mcp --update` for the fast update path: it installs the server binaries, skips repo setup, and prints the repo-init commands to run later.
88
+
78
89
  Point your MCP client at the server and the agent gains access to SDL-MCP's current configured surface. By default that is exclusive Code Mode; set `codeMode.exclusive: false` when you want Code Mode plus the regular flat or gateway tools in one session.
79
90
 
80
91
  > **npx users:** Replace `sdl-mcp` with `npx --yes sdl-mcp@latest` in all commands above.
@@ -273,7 +284,7 @@ When enabled, memories are **automatically surfaced** inside graph slices — wh
273
284
 
274
285
  ### SCIP Integration — Compiler-Grade Cross-References
275
286
 
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.
287
+ 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
288
 
278
289
  ![SCIP integration compiler cross-reference ingestion flow](./docs/readme-assets/readme-scip-integration.webp)
279
290
 
@@ -282,7 +293,7 @@ Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across the built-
282
293
  - Upgrades heuristic call resolution to **compiler-verified exact edges** (confidence 0.95)
283
294
  - External dependencies (npm packages, Go modules, crate deps) become searchable graph nodes
284
295
  - Interface/trait implementations tracked via `implements` edges
285
- - Auto-ingest on `sdl.index.refresh` keeps SCIP data current with zero manual steps
296
+ - Provider-first indexing keeps SCIP/LSP facts owned by the provider path; legacy indexing does not ingest `.scip` overlays
286
297
  - Complementary: tree-sitter provides structure, SCIP provides semantic precision
287
298
 
288
299
  [SCIP Integration Deep Dive →](./docs/feature-deep-dives/scip-integration.md)
@@ -422,9 +433,6 @@ The generated source of truth is [`docs/generated/tool-inventory.md`](./docs/gen
422
433
  <tr><td><code>sdl.workflow</code></td><td>Multi-step operations with budget tracking, ETag caching, and transforms</td></tr>
423
434
  <tr><td><code>sdl.manual</code></td><td>Self-documentation — query usage guide, action schemas, output format reference</td></tr>
424
435
 
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
436
  <tr><td rowspan="2"><strong>File</strong></td>
429
437
  <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
438
  <tr><td><code>sdl.file.write</code></td><td>Policy-aware write helper for non-indexed files and templates</td></tr>
@@ -556,7 +564,7 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
556
564
  | [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
557
565
  | [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
558
566
  | [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 |
567
+ | [SCIP Integration](./docs/feature-deep-dives/scip-integration.md) | Provider-first compiler-grade cross-references, external deps, implements edges |
560
568
  | [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
561
569
 
562
570
  <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": {