sdl-mcp 0.11.3 → 0.11.5

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 (698) hide show
  1. package/README.md +13 -11
  2. package/config/sdlmcp.config.example.json +55 -6
  3. package/config/sdlmcp.config.json +3 -2
  4. package/config/sdlmcp.config.schema.json +277 -11
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/agent/context-engine.d.ts +8 -0
  7. package/dist/agent/context-engine.d.ts.map +1 -1
  8. package/dist/agent/context-engine.js +56 -18
  9. package/dist/agent/context-engine.js.map +1 -1
  10. package/dist/agent/context-seeding.d.ts.map +1 -1
  11. package/dist/agent/context-seeding.js +15 -0
  12. package/dist/agent/context-seeding.js.map +1 -1
  13. package/dist/cli/argParsing.d.ts.map +1 -1
  14. package/dist/cli/argParsing.js +3 -0
  15. package/dist/cli/argParsing.js.map +1 -1
  16. package/dist/cli/commands/doctor.js +47 -6
  17. package/dist/cli/commands/doctor.js.map +1 -1
  18. package/dist/cli/commands/index.d.ts +19 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -1
  20. package/dist/cli/commands/index.js +1397 -24
  21. package/dist/cli/commands/index.js.map +1 -1
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +507 -133
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/serve.d.ts.map +1 -1
  26. package/dist/cli/commands/serve.js +27 -20
  27. package/dist/cli/commands/serve.js.map +1 -1
  28. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  29. package/dist/cli/commands/tool-actions.js +81 -4
  30. package/dist/cli/commands/tool-actions.js.map +1 -1
  31. package/dist/cli/commands/tool-dispatch.d.ts.map +1 -1
  32. package/dist/cli/commands/tool-dispatch.js +65 -10
  33. package/dist/cli/commands/tool-dispatch.js.map +1 -1
  34. package/dist/cli/index.js +1 -1
  35. package/dist/cli/transport/http.d.ts +8 -0
  36. package/dist/cli/transport/http.d.ts.map +1 -1
  37. package/dist/cli/transport/http.js +56 -10
  38. package/dist/cli/transport/http.js.map +1 -1
  39. package/dist/code-mode/action-catalog.d.ts.map +1 -1
  40. package/dist/code-mode/action-catalog.js +69 -17
  41. package/dist/code-mode/action-catalog.js.map +1 -1
  42. package/dist/code-mode/descriptions.d.ts.map +1 -1
  43. package/dist/code-mode/descriptions.js +27 -24
  44. package/dist/code-mode/descriptions.js.map +1 -1
  45. package/dist/code-mode/index.d.ts.map +1 -1
  46. package/dist/code-mode/index.js +80 -18
  47. package/dist/code-mode/index.js.map +1 -1
  48. package/dist/code-mode/manual-generator.d.ts.map +1 -1
  49. package/dist/code-mode/manual-generator.js +25 -31
  50. package/dist/code-mode/manual-generator.js.map +1 -1
  51. package/dist/code-mode/ref-resolver.d.ts +1 -0
  52. package/dist/code-mode/ref-resolver.d.ts.map +1 -1
  53. package/dist/code-mode/ref-resolver.js +31 -4
  54. package/dist/code-mode/ref-resolver.js.map +1 -1
  55. package/dist/code-mode/transforms.d.ts.map +1 -1
  56. package/dist/code-mode/transforms.js +7 -1
  57. package/dist/code-mode/transforms.js.map +1 -1
  58. package/dist/code-mode/types.d.ts +2 -0
  59. package/dist/code-mode/types.d.ts.map +1 -1
  60. package/dist/code-mode/types.js +2 -0
  61. package/dist/code-mode/types.js.map +1 -1
  62. package/dist/code-mode/workflow-budget.d.ts.map +1 -1
  63. package/dist/code-mode/workflow-budget.js +6 -5
  64. package/dist/code-mode/workflow-budget.js.map +1 -1
  65. package/dist/code-mode/workflow-executor.d.ts.map +1 -1
  66. package/dist/code-mode/workflow-executor.js +76 -7
  67. package/dist/code-mode/workflow-executor.js.map +1 -1
  68. package/dist/code-mode/workflow-parser.d.ts.map +1 -1
  69. package/dist/code-mode/workflow-parser.js +15 -4
  70. package/dist/code-mode/workflow-parser.js.map +1 -1
  71. package/dist/code-mode/workflow-truncation.d.ts.map +1 -1
  72. package/dist/code-mode/workflow-truncation.js +23 -4
  73. package/dist/code-mode/workflow-truncation.js.map +1 -1
  74. package/dist/config/admin-metadata.d.ts.map +1 -1
  75. package/dist/config/admin-metadata.js +11 -2
  76. package/dist/config/admin-metadata.js.map +1 -1
  77. package/dist/config/configPath.d.ts.map +1 -1
  78. package/dist/config/configPath.js +4 -13
  79. package/dist/config/configPath.js.map +1 -1
  80. package/dist/config/constants.d.ts +18 -4
  81. package/dist/config/constants.d.ts.map +1 -1
  82. package/dist/config/constants.js +18 -4
  83. package/dist/config/constants.js.map +1 -1
  84. package/dist/config/semantic-embedding-model-plan.d.ts +13 -0
  85. package/dist/config/semantic-embedding-model-plan.d.ts.map +1 -0
  86. package/dist/config/semantic-embedding-model-plan.js +82 -0
  87. package/dist/config/semantic-embedding-model-plan.js.map +1 -0
  88. package/dist/config/types.d.ts +203 -6
  89. package/dist/config/types.d.ts.map +1 -1
  90. package/dist/config/types.js +144 -12
  91. package/dist/config/types.js.map +1 -1
  92. package/dist/db/extension-caps.d.ts +4 -0
  93. package/dist/db/extension-caps.d.ts.map +1 -1
  94. package/dist/db/extension-caps.js +6 -0
  95. package/dist/db/extension-caps.js.map +1 -1
  96. package/dist/db/ladybug-algorithms.d.ts +5 -0
  97. package/dist/db/ladybug-algorithms.d.ts.map +1 -1
  98. package/dist/db/ladybug-algorithms.js +32 -0
  99. package/dist/db/ladybug-algorithms.js.map +1 -1
  100. package/dist/db/ladybug-batching.d.ts +14 -0
  101. package/dist/db/ladybug-batching.d.ts.map +1 -0
  102. package/dist/db/ladybug-batching.js +23 -0
  103. package/dist/db/ladybug-batching.js.map +1 -0
  104. package/dist/db/ladybug-clusters.d.ts +12 -4
  105. package/dist/db/ladybug-clusters.d.ts.map +1 -1
  106. package/dist/db/ladybug-clusters.js +219 -1
  107. package/dist/db/ladybug-clusters.js.map +1 -1
  108. package/dist/db/ladybug-core.d.ts +9 -3
  109. package/dist/db/ladybug-core.d.ts.map +1 -1
  110. package/dist/db/ladybug-core.js +15 -9
  111. package/dist/db/ladybug-core.js.map +1 -1
  112. package/dist/db/ladybug-derived-state.d.ts +5 -2
  113. package/dist/db/ladybug-derived-state.d.ts.map +1 -1
  114. package/dist/db/ladybug-derived-state.js +10 -3
  115. package/dist/db/ladybug-derived-state.js.map +1 -1
  116. package/dist/db/ladybug-edges.d.ts +58 -5
  117. package/dist/db/ladybug-edges.d.ts.map +1 -1
  118. package/dist/db/ladybug-edges.js +692 -155
  119. package/dist/db/ladybug-edges.js.map +1 -1
  120. package/dist/db/ladybug-embeddings.d.ts +4 -1
  121. package/dist/db/ladybug-embeddings.d.ts.map +1 -1
  122. package/dist/db/ladybug-embeddings.js +5 -4
  123. package/dist/db/ladybug-embeddings.js.map +1 -1
  124. package/dist/db/ladybug-file-summaries.d.ts +29 -10
  125. package/dist/db/ladybug-file-summaries.d.ts.map +1 -1
  126. package/dist/db/ladybug-file-summaries.js +204 -1
  127. package/dist/db/ladybug-file-summaries.js.map +1 -1
  128. package/dist/db/ladybug-metrics.d.ts +62 -6
  129. package/dist/db/ladybug-metrics.d.ts.map +1 -1
  130. package/dist/db/ladybug-metrics.js +357 -33
  131. package/dist/db/ladybug-metrics.js.map +1 -1
  132. package/dist/db/ladybug-prefetch-outcomes.d.ts +48 -0
  133. package/dist/db/ladybug-prefetch-outcomes.d.ts.map +1 -0
  134. package/dist/db/ladybug-prefetch-outcomes.js +109 -0
  135. package/dist/db/ladybug-prefetch-outcomes.js.map +1 -0
  136. package/dist/db/ladybug-processes.d.ts +13 -4
  137. package/dist/db/ladybug-processes.d.ts.map +1 -1
  138. package/dist/db/ladybug-processes.js +215 -1
  139. package/dist/db/ladybug-processes.js.map +1 -1
  140. package/dist/db/ladybug-queries.d.ts +2 -0
  141. package/dist/db/ladybug-queries.d.ts.map +1 -1
  142. package/dist/db/ladybug-queries.js +3 -0
  143. package/dist/db/ladybug-queries.js.map +1 -1
  144. package/dist/db/ladybug-repos.d.ts +5 -1
  145. package/dist/db/ladybug-repos.d.ts.map +1 -1
  146. package/dist/db/ladybug-repos.js +12 -5
  147. package/dist/db/ladybug-repos.js.map +1 -1
  148. package/dist/db/ladybug-schema.d.ts +10 -2
  149. package/dist/db/ladybug-schema.d.ts.map +1 -1
  150. package/dist/db/ladybug-schema.js +71 -4
  151. package/dist/db/ladybug-schema.js.map +1 -1
  152. package/dist/db/ladybug-scip.d.ts +10 -6
  153. package/dist/db/ladybug-scip.d.ts.map +1 -1
  154. package/dist/db/ladybug-scip.js +125 -73
  155. package/dist/db/ladybug-scip.js.map +1 -1
  156. package/dist/db/ladybug-symbols.d.ts +29 -7
  157. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  158. package/dist/db/ladybug-symbols.js +383 -46
  159. package/dist/db/ladybug-symbols.js.map +1 -1
  160. package/dist/db/ladybug-versions.d.ts +26 -4
  161. package/dist/db/ladybug-versions.d.ts.map +1 -1
  162. package/dist/db/ladybug-versions.js +197 -1
  163. package/dist/db/ladybug-versions.js.map +1 -1
  164. package/dist/db/ladybug.d.ts +56 -2
  165. package/dist/db/ladybug.d.ts.map +1 -1
  166. package/dist/db/ladybug.js +224 -49
  167. package/dist/db/ladybug.js.map +1 -1
  168. package/dist/db/migrations/index.d.ts.map +1 -1
  169. package/dist/db/migrations/index.js +4 -0
  170. package/dist/db/migrations/index.js.map +1 -1
  171. package/dist/db/migrations/m019-add-prefetch-outcomes.d.ts +5 -0
  172. package/dist/db/migrations/m019-add-prefetch-outcomes.d.ts.map +1 -0
  173. package/dist/db/migrations/m019-add-prefetch-outcomes.js +74 -0
  174. package/dist/db/migrations/m019-add-prefetch-outcomes.js.map +1 -0
  175. package/dist/db/migrations/m020-add-metrics-fingerprint.d.ts +5 -0
  176. package/dist/db/migrations/m020-add-metrics-fingerprint.d.ts.map +1 -0
  177. package/dist/db/migrations/m020-add-metrics-fingerprint.js +23 -0
  178. package/dist/db/migrations/m020-add-metrics-fingerprint.js.map +1 -0
  179. package/dist/db/symbol-placeholders.d.ts +4 -0
  180. package/dist/db/symbol-placeholders.d.ts.map +1 -1
  181. package/dist/db/symbol-placeholders.js +40 -3
  182. package/dist/db/symbol-placeholders.js.map +1 -1
  183. package/dist/gateway/compact-schema.d.ts +1 -0
  184. package/dist/gateway/compact-schema.d.ts.map +1 -1
  185. package/dist/gateway/compact-schema.js +371 -9
  186. package/dist/gateway/compact-schema.js.map +1 -1
  187. package/dist/gateway/descriptions.js +2 -2
  188. package/dist/gateway/descriptions.js.map +1 -1
  189. package/dist/gateway/router.d.ts.map +1 -1
  190. package/dist/gateway/router.js +6 -1
  191. package/dist/gateway/router.js.map +1 -1
  192. package/dist/gateway/schemas.d.ts +126 -7
  193. package/dist/gateway/schemas.d.ts.map +1 -1
  194. package/dist/gateway/schemas.js +251 -52
  195. package/dist/gateway/schemas.js.map +1 -1
  196. package/dist/graph/centrality-algorithms.d.ts +18 -0
  197. package/dist/graph/centrality-algorithms.d.ts.map +1 -0
  198. package/dist/graph/centrality-algorithms.js +144 -0
  199. package/dist/graph/centrality-algorithms.js.map +1 -0
  200. package/dist/graph/centrality-worker-runner.d.ts +11 -0
  201. package/dist/graph/centrality-worker-runner.d.ts.map +1 -0
  202. package/dist/graph/centrality-worker-runner.js +48 -0
  203. package/dist/graph/centrality-worker-runner.js.map +1 -0
  204. package/dist/graph/centrality-worker-thread.d.ts +6 -0
  205. package/dist/graph/centrality-worker-thread.d.ts.map +1 -0
  206. package/dist/graph/centrality-worker-thread.js +12 -0
  207. package/dist/graph/centrality-worker-thread.js.map +1 -0
  208. package/dist/graph/index.d.ts +3 -1
  209. package/dist/graph/index.d.ts.map +1 -1
  210. package/dist/graph/index.js +2 -1
  211. package/dist/graph/index.js.map +1 -1
  212. package/dist/graph/metrics-recovery.d.ts +14 -0
  213. package/dist/graph/metrics-recovery.d.ts.map +1 -0
  214. package/dist/graph/metrics-recovery.js +113 -0
  215. package/dist/graph/metrics-recovery.js.map +1 -0
  216. package/dist/graph/metrics.d.ts +35 -2
  217. package/dist/graph/metrics.d.ts.map +1 -1
  218. package/dist/graph/metrics.js +544 -98
  219. package/dist/graph/metrics.js.map +1 -1
  220. package/dist/graph/prefetch-model.d.ts +1 -0
  221. package/dist/graph/prefetch-model.d.ts.map +1 -1
  222. package/dist/graph/prefetch-model.js.map +1 -1
  223. package/dist/graph/prefetch-outcomes.d.ts +93 -0
  224. package/dist/graph/prefetch-outcomes.d.ts.map +1 -0
  225. package/dist/graph/prefetch-outcomes.js +429 -0
  226. package/dist/graph/prefetch-outcomes.js.map +1 -0
  227. package/dist/graph/prefetch.d.ts +33 -6
  228. package/dist/graph/prefetch.d.ts.map +1 -1
  229. package/dist/graph/prefetch.js +440 -61
  230. package/dist/graph/prefetch.js.map +1 -1
  231. package/dist/graph/slice/edge-projector.d.ts.map +1 -1
  232. package/dist/graph/slice/edge-projector.js +17 -4
  233. package/dist/graph/slice/edge-projector.js.map +1 -1
  234. package/dist/indexer/adapter/LanguageAdapter.d.ts +14 -0
  235. package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -1
  236. package/dist/indexer/adapter/cpp.d.ts.map +1 -1
  237. package/dist/indexer/adapter/cpp.js +32 -29
  238. package/dist/indexer/adapter/cpp.js.map +1 -1
  239. package/dist/indexer/adapter/plugin/loader.d.ts +2 -2
  240. package/dist/indexer/adapter/plugin/loader.d.ts.map +1 -1
  241. package/dist/indexer/adapter/plugin/loader.js +68 -25
  242. package/dist/indexer/adapter/plugin/loader.js.map +1 -1
  243. package/dist/indexer/adapter/plugin/types.d.ts +2 -1
  244. package/dist/indexer/adapter/plugin/types.d.ts.map +1 -1
  245. package/dist/indexer/adapter/plugin/types.js.map +1 -1
  246. package/dist/indexer/adapter/registry.d.ts +14 -5
  247. package/dist/indexer/adapter/registry.d.ts.map +1 -1
  248. package/dist/indexer/adapter/registry.js +38 -14
  249. package/dist/indexer/adapter/registry.js.map +1 -1
  250. package/dist/indexer/cluster-orchestrator.d.ts +45 -0
  251. package/dist/indexer/cluster-orchestrator.d.ts.map +1 -1
  252. package/dist/indexer/cluster-orchestrator.js +446 -200
  253. package/dist/indexer/cluster-orchestrator.js.map +1 -1
  254. package/dist/indexer/derived-refresh-queue.d.ts +13 -6
  255. package/dist/indexer/derived-refresh-queue.d.ts.map +1 -1
  256. package/dist/indexer/derived-refresh-queue.js +101 -12
  257. package/dist/indexer/derived-refresh-queue.js.map +1 -1
  258. package/dist/indexer/edge-builder/cleanup.d.ts.map +1 -1
  259. package/dist/indexer/edge-builder/cleanup.js +6 -9
  260. package/dist/indexer/edge-builder/cleanup.js.map +1 -1
  261. package/dist/indexer/edge-builder/import-resolution.d.ts.map +1 -1
  262. package/dist/indexer/edge-builder/import-resolution.js +1 -0
  263. package/dist/indexer/edge-builder/import-resolution.js.map +1 -1
  264. package/dist/indexer/edge-builder/pass2.d.ts.map +1 -1
  265. package/dist/indexer/edge-builder/pass2.js +3 -1
  266. package/dist/indexer/edge-builder/pass2.js.map +1 -1
  267. package/dist/indexer/edge-builder/telemetry.d.ts +18 -0
  268. package/dist/indexer/edge-builder/telemetry.d.ts.map +1 -1
  269. package/dist/indexer/edge-builder/telemetry.js +33 -0
  270. package/dist/indexer/edge-builder/telemetry.js.map +1 -1
  271. package/dist/indexer/edge-builder.d.ts +1 -1
  272. package/dist/indexer/edge-builder.d.ts.map +1 -1
  273. package/dist/indexer/edge-builder.js +1 -1
  274. package/dist/indexer/edge-builder.js.map +1 -1
  275. package/dist/indexer/fileScanner.d.ts +6 -1
  276. package/dist/indexer/fileScanner.d.ts.map +1 -1
  277. package/dist/indexer/fileScanner.js +108 -6
  278. package/dist/indexer/fileScanner.js.map +1 -1
  279. package/dist/indexer/finalize-derived-state.d.ts +7 -0
  280. package/dist/indexer/finalize-derived-state.d.ts.map +1 -1
  281. package/dist/indexer/finalize-derived-state.js +85 -71
  282. package/dist/indexer/finalize-derived-state.js.map +1 -1
  283. package/dist/indexer/import-resolution/c-include-adapter.d.ts.map +1 -1
  284. package/dist/indexer/import-resolution/c-include-adapter.js +10 -3
  285. package/dist/indexer/import-resolution/c-include-adapter.js.map +1 -1
  286. package/dist/indexer/import-resolution/types.d.ts +3 -0
  287. package/dist/indexer/import-resolution/types.d.ts.map +1 -1
  288. package/dist/indexer/indexer-finalize-edges.d.ts +17 -0
  289. package/dist/indexer/indexer-finalize-edges.d.ts.map +1 -0
  290. package/dist/indexer/indexer-finalize-edges.js +28 -0
  291. package/dist/indexer/indexer-finalize-edges.js.map +1 -0
  292. package/dist/indexer/indexer-init.d.ts +21 -7
  293. package/dist/indexer/indexer-init.d.ts.map +1 -1
  294. package/dist/indexer/indexer-init.js.map +1 -1
  295. package/dist/indexer/indexer-pass1-policy.d.ts +55 -0
  296. package/dist/indexer/indexer-pass1-policy.d.ts.map +1 -0
  297. package/dist/indexer/indexer-pass1-policy.js +76 -0
  298. package/dist/indexer/indexer-pass1-policy.js.map +1 -0
  299. package/dist/indexer/indexer-pass1.d.ts +2 -0
  300. package/dist/indexer/indexer-pass1.d.ts.map +1 -1
  301. package/dist/indexer/indexer-pass1.js +67 -15
  302. package/dist/indexer/indexer-pass1.js.map +1 -1
  303. package/dist/indexer/indexer-pass2-import-cache.d.ts +29 -0
  304. package/dist/indexer/indexer-pass2-import-cache.d.ts.map +1 -0
  305. package/dist/indexer/indexer-pass2-import-cache.js +103 -0
  306. package/dist/indexer/indexer-pass2-import-cache.js.map +1 -0
  307. package/dist/indexer/indexer-pass2-symbol-index.d.ts +4 -0
  308. package/dist/indexer/indexer-pass2-symbol-index.d.ts.map +1 -0
  309. package/dist/indexer/indexer-pass2-symbol-index.js +51 -0
  310. package/dist/indexer/indexer-pass2-symbol-index.js.map +1 -0
  311. package/dist/indexer/indexer-pass2-write.d.ts +128 -0
  312. package/dist/indexer/indexer-pass2-write.d.ts.map +1 -0
  313. package/dist/indexer/indexer-pass2-write.js +580 -0
  314. package/dist/indexer/indexer-pass2-write.js.map +1 -0
  315. package/dist/indexer/indexer-pass2.d.ts +12 -51
  316. package/dist/indexer/indexer-pass2.d.ts.map +1 -1
  317. package/dist/indexer/indexer-pass2.js +298 -211
  318. package/dist/indexer/indexer-pass2.js.map +1 -1
  319. package/dist/indexer/indexer-version.d.ts +8 -0
  320. package/dist/indexer/indexer-version.d.ts.map +1 -1
  321. package/dist/indexer/indexer-version.js +86 -29
  322. package/dist/indexer/indexer-version.js.map +1 -1
  323. package/dist/indexer/indexer.d.ts +145 -1
  324. package/dist/indexer/indexer.d.ts.map +1 -1
  325. package/dist/indexer/indexer.js +2390 -122
  326. package/dist/indexer/indexer.js.map +1 -1
  327. package/dist/indexer/language.d.ts +3 -0
  328. package/dist/indexer/language.d.ts.map +1 -0
  329. package/dist/indexer/language.js +67 -0
  330. package/dist/indexer/language.js.map +1 -0
  331. package/dist/indexer/metrics-updater.d.ts +14 -1
  332. package/dist/indexer/metrics-updater.d.ts.map +1 -1
  333. package/dist/indexer/metrics-updater.js +215 -52
  334. package/dist/indexer/metrics-updater.js.map +1 -1
  335. package/dist/indexer/parser/batch-persist.d.ts +100 -1
  336. package/dist/indexer/parser/batch-persist.d.ts.map +1 -1
  337. package/dist/indexer/parser/batch-persist.js +511 -32
  338. package/dist/indexer/parser/batch-persist.js.map +1 -1
  339. package/dist/indexer/parser/build-rows.d.ts +9 -1
  340. package/dist/indexer/parser/build-rows.d.ts.map +1 -1
  341. package/dist/indexer/parser/build-rows.js +37 -2
  342. package/dist/indexer/parser/build-rows.js.map +1 -1
  343. package/dist/indexer/parser/helpers.d.ts.map +1 -1
  344. package/dist/indexer/parser/helpers.js +2 -1
  345. package/dist/indexer/parser/helpers.js.map +1 -1
  346. package/dist/indexer/parser/process-file.d.ts.map +1 -1
  347. package/dist/indexer/parser/process-file.js +61 -13
  348. package/dist/indexer/parser/process-file.js.map +1 -1
  349. package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
  350. package/dist/indexer/parser/rust-process-file.js +21 -10
  351. package/dist/indexer/parser/rust-process-file.js.map +1 -1
  352. package/dist/indexer/pass2/registry.d.ts.map +1 -1
  353. package/dist/indexer/pass2/registry.js +2 -3
  354. package/dist/indexer/pass2/registry.js.map +1 -1
  355. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts +13 -0
  356. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts.map +1 -1
  357. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js +160 -32
  358. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js.map +1 -1
  359. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts +37 -2
  360. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts.map +1 -1
  361. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js +355 -117
  362. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js.map +1 -1
  363. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.d.ts.map +1 -1
  364. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js +3 -1
  365. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js.map +1 -1
  366. package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
  367. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +3 -1
  368. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
  369. package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts.map +1 -1
  370. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js +3 -1
  371. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js.map +1 -1
  372. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.d.ts.map +1 -1
  373. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js +3 -1
  374. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js.map +1 -1
  375. package/dist/indexer/pass2/resolvers/php-pass2-resolver.d.ts.map +1 -1
  376. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js +3 -1
  377. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js.map +1 -1
  378. package/dist/indexer/pass2/resolvers/python-pass2-resolver.d.ts.map +1 -1
  379. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js +18 -10
  380. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js.map +1 -1
  381. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
  382. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js +3 -1
  383. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js.map +1 -1
  384. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.d.ts.map +1 -1
  385. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js +3 -1
  386. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js.map +1 -1
  387. package/dist/indexer/pass2/types.d.ts +129 -16
  388. package/dist/indexer/pass2/types.d.ts.map +1 -1
  389. package/dist/indexer/pass2/types.js +263 -9
  390. package/dist/indexer/pass2/types.js.map +1 -1
  391. package/dist/indexer/provider-first/cpp-call-proof.d.ts +24 -0
  392. package/dist/indexer/provider-first/cpp-call-proof.d.ts.map +1 -0
  393. package/dist/indexer/provider-first/cpp-call-proof.js +489 -0
  394. package/dist/indexer/provider-first/cpp-call-proof.js.map +1 -0
  395. package/dist/indexer/provider-first/executor.d.ts +181 -0
  396. package/dist/indexer/provider-first/executor.d.ts.map +1 -0
  397. package/dist/indexer/provider-first/executor.js +1023 -0
  398. package/dist/indexer/provider-first/executor.js.map +1 -0
  399. package/dist/indexer/provider-first/graph-validation.d.ts +15 -0
  400. package/dist/indexer/provider-first/graph-validation.d.ts.map +1 -0
  401. package/dist/indexer/provider-first/graph-validation.js +137 -0
  402. package/dist/indexer/provider-first/graph-validation.js.map +1 -0
  403. package/dist/indexer/provider-first/ids.d.ts +31 -0
  404. package/dist/indexer/provider-first/ids.d.ts.map +1 -0
  405. package/dist/indexer/provider-first/ids.js +46 -0
  406. package/dist/indexer/provider-first/ids.js.map +1 -0
  407. package/dist/indexer/provider-first/index.d.ts +15 -0
  408. package/dist/indexer/provider-first/index.d.ts.map +1 -0
  409. package/dist/indexer/provider-first/index.js +10 -0
  410. package/dist/indexer/provider-first/index.js.map +1 -0
  411. package/dist/indexer/provider-first/legacy-shadow-rows.d.ts +17 -0
  412. package/dist/indexer/provider-first/legacy-shadow-rows.d.ts.map +1 -0
  413. package/dist/indexer/provider-first/legacy-shadow-rows.js +247 -0
  414. package/dist/indexer/provider-first/legacy-shadow-rows.js.map +1 -0
  415. package/dist/indexer/provider-first/lsp-cache.d.ts +10 -0
  416. package/dist/indexer/provider-first/lsp-cache.d.ts.map +1 -0
  417. package/dist/indexer/provider-first/lsp-cache.js +16 -0
  418. package/dist/indexer/provider-first/lsp-cache.js.map +1 -0
  419. package/dist/indexer/provider-first/materializer.d.ts +90 -0
  420. package/dist/indexer/provider-first/materializer.d.ts.map +1 -0
  421. package/dist/indexer/provider-first/materializer.js +415 -0
  422. package/dist/indexer/provider-first/materializer.js.map +1 -0
  423. package/dist/indexer/provider-first/planner.d.ts +9 -0
  424. package/dist/indexer/provider-first/planner.d.ts.map +1 -0
  425. package/dist/indexer/provider-first/planner.js +93 -0
  426. package/dist/indexer/provider-first/planner.js.map +1 -0
  427. package/dist/indexer/provider-first/provenance.d.ts +11 -0
  428. package/dist/indexer/provider-first/provenance.d.ts.map +1 -0
  429. package/dist/indexer/provider-first/provenance.js +230 -0
  430. package/dist/indexer/provider-first/provenance.js.map +1 -0
  431. package/dist/indexer/provider-first/scip-normalizer.d.ts +36 -0
  432. package/dist/indexer/provider-first/scip-normalizer.d.ts.map +1 -0
  433. package/dist/indexer/provider-first/scip-normalizer.js +1482 -0
  434. package/dist/indexer/provider-first/scip-normalizer.js.map +1 -0
  435. package/dist/indexer/provider-first/semantic-readiness.d.ts +40 -0
  436. package/dist/indexer/provider-first/semantic-readiness.d.ts.map +1 -0
  437. package/dist/indexer/provider-first/semantic-readiness.js +129 -0
  438. package/dist/indexer/provider-first/semantic-readiness.js.map +1 -0
  439. package/dist/indexer/provider-first/semantic-scope.d.ts +8 -0
  440. package/dist/indexer/provider-first/semantic-scope.d.ts.map +1 -0
  441. package/dist/indexer/provider-first/semantic-scope.js +170 -0
  442. package/dist/indexer/provider-first/semantic-scope.js.map +1 -0
  443. package/dist/indexer/provider-first/shadow-activation.d.ts +41 -0
  444. package/dist/indexer/provider-first/shadow-activation.d.ts.map +1 -0
  445. package/dist/indexer/provider-first/shadow-activation.js +277 -0
  446. package/dist/indexer/provider-first/shadow-activation.js.map +1 -0
  447. package/dist/indexer/provider-first/shadow-build.d.ts +73 -0
  448. package/dist/indexer/provider-first/shadow-build.d.ts.map +1 -0
  449. package/dist/indexer/provider-first/shadow-build.js +554 -0
  450. package/dist/indexer/provider-first/shadow-build.js.map +1 -0
  451. package/dist/indexer/provider-first/shadow-finalization.d.ts +51 -0
  452. package/dist/indexer/provider-first/shadow-finalization.d.ts.map +1 -0
  453. package/dist/indexer/provider-first/shadow-finalization.js +1421 -0
  454. package/dist/indexer/provider-first/shadow-finalization.js.map +1 -0
  455. package/dist/indexer/provider-first/source-call-proof.d.ts +31 -0
  456. package/dist/indexer/provider-first/source-call-proof.d.ts.map +1 -0
  457. package/dist/indexer/provider-first/source-call-proof.js +460 -0
  458. package/dist/indexer/provider-first/source-call-proof.js.map +1 -0
  459. package/dist/indexer/provider-first/types.d.ts +149 -0
  460. package/dist/indexer/provider-first/types.d.ts.map +1 -0
  461. package/dist/indexer/provider-first/types.js +2 -0
  462. package/dist/indexer/provider-first/types.js.map +1 -0
  463. package/dist/indexer/scanner.d.ts +3 -2
  464. package/dist/indexer/scanner.d.ts.map +1 -1
  465. package/dist/indexer/scanner.js +2 -2
  466. package/dist/indexer/scanner.js.map +1 -1
  467. package/dist/indexer/symbol-embedding-context.d.ts +2 -1
  468. package/dist/indexer/symbol-embedding-context.d.ts.map +1 -1
  469. package/dist/indexer/symbol-embedding-context.js +4 -2
  470. package/dist/indexer/symbol-embedding-context.js.map +1 -1
  471. package/dist/indexer/treesitter/grammarLoader.d.ts +1 -0
  472. package/dist/indexer/treesitter/grammarLoader.d.ts.map +1 -1
  473. package/dist/indexer/treesitter/grammarLoader.js +15 -1
  474. package/dist/indexer/treesitter/grammarLoader.js.map +1 -1
  475. package/dist/indexer/treesitter/tsTreesitter.d.ts +4 -0
  476. package/dist/indexer/treesitter/tsTreesitter.d.ts.map +1 -1
  477. package/dist/indexer/treesitter/tsTreesitter.js +97 -12
  478. package/dist/indexer/treesitter/tsTreesitter.js.map +1 -1
  479. package/dist/indexer/ts/tsParser.d.ts +5 -0
  480. package/dist/indexer/ts/tsParser.d.ts.map +1 -1
  481. package/dist/indexer/ts/tsParser.js +34 -3
  482. package/dist/indexer/ts/tsParser.js.map +1 -1
  483. package/dist/indexer/watcher.d.ts +7 -0
  484. package/dist/indexer/watcher.d.ts.map +1 -1
  485. package/dist/indexer/watcher.js +53 -18
  486. package/dist/indexer/watcher.js.map +1 -1
  487. package/dist/indexer/worker.js +7 -0
  488. package/dist/indexer/worker.js.map +1 -1
  489. package/dist/live-index/checkpoint-service.d.ts.map +1 -1
  490. package/dist/live-index/checkpoint-service.js +21 -1
  491. package/dist/live-index/checkpoint-service.js.map +1 -1
  492. package/dist/live-index/draft-parser.d.ts.map +1 -1
  493. package/dist/live-index/draft-parser.js +4 -1
  494. package/dist/live-index/draft-parser.js.map +1 -1
  495. package/dist/live-index/types.d.ts +1 -0
  496. package/dist/live-index/types.d.ts.map +1 -1
  497. package/dist/main.js +6 -0
  498. package/dist/main.js.map +1 -1
  499. package/dist/mcp/context-response-projection.d.ts.map +1 -1
  500. package/dist/mcp/context-response-projection.js +9 -6
  501. package/dist/mcp/context-response-projection.js.map +1 -1
  502. package/dist/mcp/dispatch-limiter.d.ts +2 -0
  503. package/dist/mcp/dispatch-limiter.d.ts.map +1 -1
  504. package/dist/mcp/dispatch-limiter.js +25 -1
  505. package/dist/mcp/dispatch-limiter.js.map +1 -1
  506. package/dist/mcp/server-instructions.d.ts +2 -0
  507. package/dist/mcp/server-instructions.d.ts.map +1 -0
  508. package/dist/mcp/server-instructions.js +14 -0
  509. package/dist/mcp/server-instructions.js.map +1 -0
  510. package/dist/mcp/telemetry.d.ts +24 -0
  511. package/dist/mcp/telemetry.d.ts.map +1 -1
  512. package/dist/mcp/telemetry.js +9 -0
  513. package/dist/mcp/telemetry.js.map +1 -1
  514. package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
  515. package/dist/mcp/tool-call-formatter.js +69 -6
  516. package/dist/mcp/tool-call-formatter.js.map +1 -1
  517. package/dist/mcp/tools/buffer.d.ts.map +1 -1
  518. package/dist/mcp/tools/buffer.js +2 -1
  519. package/dist/mcp/tools/buffer.js.map +1 -1
  520. package/dist/mcp/tools/code.d.ts +2 -2
  521. package/dist/mcp/tools/code.d.ts.map +1 -1
  522. package/dist/mcp/tools/code.js +8 -5
  523. package/dist/mcp/tools/code.js.map +1 -1
  524. package/dist/mcp/tools/context.d.ts +19 -0
  525. package/dist/mcp/tools/context.d.ts.map +1 -1
  526. package/dist/mcp/tools/context.js +183 -3
  527. package/dist/mcp/tools/context.js.map +1 -1
  528. package/dist/mcp/tools/delta.d.ts +2 -1
  529. package/dist/mcp/tools/delta.d.ts.map +1 -1
  530. package/dist/mcp/tools/delta.js +4 -3
  531. package/dist/mcp/tools/delta.js.map +1 -1
  532. package/dist/mcp/tools/file-gateway.d.ts +148 -14
  533. package/dist/mcp/tools/file-gateway.d.ts.map +1 -1
  534. package/dist/mcp/tools/file-gateway.js +217 -21
  535. package/dist/mcp/tools/file-gateway.js.map +1 -1
  536. package/dist/mcp/tools/file-read.d.ts.map +1 -1
  537. package/dist/mcp/tools/file-read.js +64 -17
  538. package/dist/mcp/tools/file-read.js.map +1 -1
  539. package/dist/mcp/tools/prRisk.d.ts +20 -6
  540. package/dist/mcp/tools/prRisk.d.ts.map +1 -1
  541. package/dist/mcp/tools/prRisk.js +46 -16
  542. package/dist/mcp/tools/prRisk.js.map +1 -1
  543. package/dist/mcp/tools/repo.d.ts.map +1 -1
  544. package/dist/mcp/tools/repo.js +7 -2
  545. package/dist/mcp/tools/repo.js.map +1 -1
  546. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  547. package/dist/mcp/tools/runtime.js +104 -12
  548. package/dist/mcp/tools/runtime.js.map +1 -1
  549. package/dist/mcp/tools/scip.d.ts.map +1 -1
  550. package/dist/mcp/tools/scip.js +1 -0
  551. package/dist/mcp/tools/scip.js.map +1 -1
  552. package/dist/mcp/tools/search-edit/index.d.ts.map +1 -1
  553. package/dist/mcp/tools/search-edit/index.js +14 -1
  554. package/dist/mcp/tools/search-edit/index.js.map +1 -1
  555. package/dist/mcp/tools/search-edit/plan-store.d.ts +37 -1
  556. package/dist/mcp/tools/search-edit/plan-store.d.ts.map +1 -1
  557. package/dist/mcp/tools/search-edit/plan-store.js +2 -1
  558. package/dist/mcp/tools/search-edit/plan-store.js.map +1 -1
  559. package/dist/mcp/tools/search-edit/planner.d.ts +46 -6
  560. package/dist/mcp/tools/search-edit/planner.d.ts.map +1 -1
  561. package/dist/mcp/tools/search-edit/planner.js +983 -109
  562. package/dist/mcp/tools/search-edit/planner.js.map +1 -1
  563. package/dist/mcp/tools/search-edit/structural.d.ts +63 -0
  564. package/dist/mcp/tools/search-edit/structural.d.ts.map +1 -0
  565. package/dist/mcp/tools/search-edit/structural.js +524 -0
  566. package/dist/mcp/tools/search-edit/structural.js.map +1 -0
  567. package/dist/mcp/tools/slice.d.ts.map +1 -1
  568. package/dist/mcp/tools/slice.js +3 -2
  569. package/dist/mcp/tools/slice.js.map +1 -1
  570. package/dist/mcp/tools/symbol-edit/ast.d.ts +28 -0
  571. package/dist/mcp/tools/symbol-edit/ast.d.ts.map +1 -0
  572. package/dist/mcp/tools/symbol-edit/ast.js +513 -0
  573. package/dist/mcp/tools/symbol-edit/ast.js.map +1 -0
  574. package/dist/mcp/tools/symbol-edit/index.d.ts +12 -0
  575. package/dist/mcp/tools/symbol-edit/index.d.ts.map +1 -0
  576. package/dist/mcp/tools/symbol-edit/index.js +633 -0
  577. package/dist/mcp/tools/symbol-edit/index.js.map +1 -0
  578. package/dist/mcp/tools/symbol.d.ts +3 -2
  579. package/dist/mcp/tools/symbol.d.ts.map +1 -1
  580. package/dist/mcp/tools/symbol.js +13 -11
  581. package/dist/mcp/tools/symbol.js.map +1 -1
  582. package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -1
  583. package/dist/mcp/tools/tool-descriptors.js +9 -2
  584. package/dist/mcp/tools/tool-descriptors.js.map +1 -1
  585. package/dist/mcp/tools.d.ts +315 -16
  586. package/dist/mcp/tools.d.ts.map +1 -1
  587. package/dist/mcp/tools.js +222 -9
  588. package/dist/mcp/tools.js.map +1 -1
  589. package/dist/observability/aggregator.d.ts +10 -1
  590. package/dist/observability/aggregator.d.ts.map +1 -1
  591. package/dist/observability/aggregator.js +41 -3
  592. package/dist/observability/aggregator.js.map +1 -1
  593. package/dist/observability/types.d.ts +21 -0
  594. package/dist/observability/types.d.ts.map +1 -1
  595. package/dist/observability/types.js.map +1 -1
  596. package/dist/retrieval/fallback.d.ts +16 -2
  597. package/dist/retrieval/fallback.d.ts.map +1 -1
  598. package/dist/retrieval/fallback.js +35 -26
  599. package/dist/retrieval/fallback.js.map +1 -1
  600. package/dist/retrieval/index-lifecycle.d.ts +60 -19
  601. package/dist/retrieval/index-lifecycle.d.ts.map +1 -1
  602. package/dist/retrieval/index-lifecycle.js +348 -173
  603. package/dist/retrieval/index-lifecycle.js.map +1 -1
  604. package/dist/runtime/deferred-work-state.d.ts +28 -0
  605. package/dist/runtime/deferred-work-state.d.ts.map +1 -0
  606. package/dist/runtime/deferred-work-state.js +70 -0
  607. package/dist/runtime/deferred-work-state.js.map +1 -0
  608. package/dist/runtime/executor.d.ts.map +1 -1
  609. package/dist/runtime/executor.js +15 -1
  610. package/dist/runtime/executor.js.map +1 -1
  611. package/dist/runtime/runtimes.d.ts +1 -0
  612. package/dist/runtime/runtimes.d.ts.map +1 -1
  613. package/dist/runtime/runtimes.js +7 -0
  614. package/dist/runtime/runtimes.js.map +1 -1
  615. package/dist/runtime/types.d.ts +4 -0
  616. package/dist/runtime/types.d.ts.map +1 -1
  617. package/dist/scip/cleanup.d.ts +1 -0
  618. package/dist/scip/cleanup.d.ts.map +1 -1
  619. package/dist/scip/cleanup.js +23 -11
  620. package/dist/scip/cleanup.js.map +1 -1
  621. package/dist/scip/decoder-rust.d.ts.map +1 -1
  622. package/dist/scip/decoder-rust.js +1 -0
  623. package/dist/scip/decoder-rust.js.map +1 -1
  624. package/dist/scip/decoder-ts.d.ts +2 -2
  625. package/dist/scip/decoder-ts.d.ts.map +1 -1
  626. package/dist/scip/decoder-ts.js +4 -2
  627. package/dist/scip/decoder-ts.js.map +1 -1
  628. package/dist/scip/diagnostics.d.ts +18 -0
  629. package/dist/scip/diagnostics.d.ts.map +1 -0
  630. package/dist/scip/diagnostics.js +2 -0
  631. package/dist/scip/diagnostics.js.map +1 -0
  632. package/dist/scip/ingestion.d.ts +6 -1
  633. package/dist/scip/ingestion.d.ts.map +1 -1
  634. package/dist/scip/ingestion.js +45 -5
  635. package/dist/scip/ingestion.js.map +1 -1
  636. package/dist/scip/kind-mapping.d.ts +1 -0
  637. package/dist/scip/kind-mapping.d.ts.map +1 -1
  638. package/dist/scip/kind-mapping.js +62 -3
  639. package/dist/scip/kind-mapping.js.map +1 -1
  640. package/dist/scip/limits.d.ts +3 -0
  641. package/dist/scip/limits.d.ts.map +1 -0
  642. package/dist/scip/limits.js +3 -0
  643. package/dist/scip/limits.js.map +1 -0
  644. package/dist/scip/scip-io-runner.d.ts +77 -4
  645. package/dist/scip/scip-io-runner.d.ts.map +1 -1
  646. package/dist/scip/scip-io-runner.js +1581 -24
  647. package/dist/scip/scip-io-runner.js.map +1 -1
  648. package/dist/scip/symbol-matcher.d.ts.map +1 -1
  649. package/dist/scip/symbol-matcher.js +2 -2
  650. package/dist/scip/symbol-matcher.js.map +1 -1
  651. package/dist/scip/types.d.ts +5 -0
  652. package/dist/scip/types.d.ts.map +1 -1
  653. package/dist/semantic/providers/lsp/candidates.d.ts.map +1 -1
  654. package/dist/semantic/providers/lsp/candidates.js +2 -1
  655. package/dist/semantic/providers/lsp/candidates.js.map +1 -1
  656. package/dist/server.d.ts +8 -0
  657. package/dist/server.d.ts.map +1 -1
  658. package/dist/server.js +143 -2
  659. package/dist/server.js.map +1 -1
  660. package/dist/startup/derived-state-recovery.d.ts +25 -0
  661. package/dist/startup/derived-state-recovery.d.ts.map +1 -0
  662. package/dist/startup/derived-state-recovery.js +96 -0
  663. package/dist/startup/derived-state-recovery.js.map +1 -0
  664. package/dist/startup/plugins.d.ts +9 -0
  665. package/dist/startup/plugins.d.ts.map +1 -0
  666. package/dist/startup/plugins.js +47 -0
  667. package/dist/startup/plugins.js.map +1 -0
  668. package/dist/startup/prefetch-startup.d.ts +3 -0
  669. package/dist/startup/prefetch-startup.d.ts.map +1 -0
  670. package/dist/startup/prefetch-startup.js +21 -0
  671. package/dist/startup/prefetch-startup.js.map +1 -0
  672. package/dist/ui/config.d.ts.map +1 -1
  673. package/dist/ui/config.js +7 -0
  674. package/dist/ui/config.js.map +1 -1
  675. package/dist/ui/observability.css +11 -7
  676. package/dist/ui/observability.html +24 -0
  677. package/dist/ui/observability.js +24 -3
  678. package/dist/ui/observability.js.map +1 -1
  679. package/dist/util/asyncFs.d.ts +21 -0
  680. package/dist/util/asyncFs.d.ts.map +1 -1
  681. package/dist/util/asyncFs.js +40 -0
  682. package/dist/util/asyncFs.js.map +1 -1
  683. package/dist/util/runtime-identity.d.ts +8 -0
  684. package/dist/util/runtime-identity.d.ts.map +1 -0
  685. package/dist/util/runtime-identity.js +15 -0
  686. package/dist/util/runtime-identity.js.map +1 -0
  687. package/dist/util/safeRegex.d.ts.map +1 -1
  688. package/dist/util/safeRegex.js +9 -3
  689. package/dist/util/safeRegex.js.map +1 -1
  690. package/dist/util/shutdown.d.ts +2 -2
  691. package/dist/util/shutdown.d.ts.map +1 -1
  692. package/dist/util/shutdown.js +15 -2
  693. package/dist/util/shutdown.js.map +1 -1
  694. package/package.json +6 -3
  695. package/templates/AGENTS.md.template +7 -1
  696. package/templates/CLAUDE.md.template +7 -1
  697. package/templates/CODEX.md.template +7 -1
  698. package/templates/SDL.md +252 -227
package/README.md CHANGED
@@ -502,7 +502,7 @@ Features include typed argument coercion (string, number, boolean, string[], jso
502
502
 
503
503
  **Why it matters:**
504
504
 
505
- - 35 direct graph/action aliases plus `action.search` and `manual` metadata proxies accessible from **any terminal** - no server, transport, or SDK required
505
+ - 36 direct graph/action aliases plus `action.search` and `manual` metadata proxies accessible from **any terminal** - no server, transport, or SDK required
506
506
  - Direct graph actions keep gateway-router/Zod parity; metadata proxies share the same MCP registration handlers
507
507
  - Four output formats (json, json-compact, pretty, table) for scripting and CI pipelines
508
508
  - Auto-resolves repoId from cwd, supports stdin JSON piping and per-action `--help`
@@ -513,12 +513,12 @@ Features include typed argument coercion (string, number, boolean, string[], jso
513
513
 
514
514
  ### Tool Gateway — Compact Tool Registration
515
515
 
516
- The tool gateway projects the 34 gateway-routable SDL actions into **4 namespace-scoped tools** (`sdl.query`, `sdl.code`, `sdl.repo`, `sdl.agent`), reducing `tools/list` overhead from the full flat schema surface to a compact gateway surface.
516
+ The tool gateway projects the 35 gateway-routable SDL actions into **4 namespace-scoped tools** (`sdl.query`, `sdl.code`, `sdl.repo`, `sdl.agent`), reducing `tools/list` overhead from the full flat schema surface to a compact gateway surface.
517
517
 
518
518
  ```mermaid
519
519
  %%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#E7F8F2","primaryBorderColor":"#0F766E","primaryTextColor":"#102A43","secondaryColor":"#E8F1FF","secondaryBorderColor":"#2563EB","secondaryTextColor":"#102A43","tertiaryColor":"#FFF4D6","tertiaryBorderColor":"#B45309","tertiaryTextColor":"#102A43","lineColor":"#0F766E","textColor":"#102A43","fontFamily":"Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"},"flowchart":{"curve":"basis","htmlLabels":true}}}%%
520
520
  flowchart LR
521
- Before["Flat mode<br/>37 tools<br/>2 universal + 35 flat"] e1@--> After["Gateway mode<br/>6 tools<br/>2 universal + 4 gateway"]
521
+ Before["Flat mode<br/>38 tools<br/>2 universal + 36 flat"] e1@--> After["Gateway mode<br/>6 tools<br/>2 universal + 4 gateway"]
522
522
  After e2@--> Savings["Smaller tools/list payload<br/>lower agent startup overhead"]
523
523
 
524
524
  classDef source fill:#E7F8F2,stroke:#0F766E,stroke-width:2px,color:#102A43;
@@ -536,7 +536,7 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
536
536
  **Why it matters:**
537
537
 
538
538
  - Large reduction in `tools/list` overhead for gateway-first agents
539
- - 34 gateway-routable actions consolidated into 4 namespace-scoped tools for simpler agent selection
539
+ - 35 gateway-routable actions consolidated into 4 namespace-scoped tools for simpler agent selection
540
540
  - Fewer tool choices means faster and more accurate tool dispatch by the agent
541
541
  - Choose Code Mode for task-shaped retrieval first; opt out of exclusive Code Mode when you also need regular flat or gateway tools
542
542
 
@@ -546,7 +546,7 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
546
546
 
547
547
  ### Observability Dashboard
548
548
 
549
- Built-in read-only dashboard surfaces every metric needed to diagnose SDL-MCP behaviour without parsing stderr logs. GlitterKill dark UI at `/ui/observability` on the HTTP transport or the loopback-only `sdl-mcp serve --stdio --dashboard-port <port>` sidecar, plus REST + SSE APIs (`/api/observability/snapshot`, `/timeseries`, `/beam-explain`, `/stream`) for programmatic access. Surfaces cache hit rates, hybrid-retrieval breakdowns (FTS / vector / PPR / RRF), beam-search decision traces, indexing pipeline metrics, write-pool and drain saturation, packed-wire token efficiency, and runtime CPU/memory/event-loop probes. See [Observability Dashboard Deep Dive](./docs/feature-deep-dives/observability-dashboard.md).
549
+ Built-in read-only dashboard surfaces every metric needed to diagnose SDL-MCP behaviour without parsing stderr logs. GlitterKill dark UI at `/ui/observability` on the HTTP transport or the loopback-only `sdl-mcp serve --stdio --dashboard-port <port>` sidecar, plus REST + SSE APIs (`/api/observability/snapshot`, `/timeseries`, `/beam-explain`, `/stream`) for programmatic access. Surfaces cache hit rates, predictive-context outcome learning, hybrid-retrieval breakdowns (FTS / vector / PPR / RRF), beam-search decision traces, indexing pipeline metrics, write-pool and drain saturation, packed-wire token efficiency, and runtime CPU/memory/event-loop probes. See [Observability Dashboard Deep Dive](./docs/feature-deep-dives/observability-dashboard.md).
550
550
 
551
551
  <br/>
552
552
 
@@ -558,9 +558,9 @@ Built-in read-only dashboard surfaces every metric needed to diagnose SDL-MCP be
558
558
 
559
559
  | Mode | Tool count | Composition |
560
560
  | :------------------ | :--------- | :--------------------------------------------------------------- |
561
- | Flat | `37` | `2` universal + `35` flat tools |
561
+ | Flat | `38` | `2` universal + `36` flat tools |
562
562
  | Gateway | `6` | `2` universal + `4` gateway tools |
563
- | Gateway + legacy | `41` | `2` universal + `4` gateway + `35` flat tools |
563
+ | Gateway + legacy | `42` | `2` universal + `4` gateway + `36` flat tools |
564
564
  | Code Mode exclusive | `5` | `sdl.action.search`, `sdl.context`, `sdl.file`, `sdl.manual`, `sdl.workflow` |
565
565
 
566
566
  The generated source of truth is [`docs/generated/tool-inventory.md`](./docs/generated/tool-inventory.md).
@@ -578,9 +578,10 @@ The generated source of truth is [`docs/generated/tool-inventory.md`](./docs/gen
578
578
  <tr><td><code>sdl.buffer.checkpoint</code></td><td>Force-write pending buffers to the durable database</td></tr>
579
579
  <tr><td><code>sdl.buffer.status</code></td><td>Live indexing diagnostics and queue depth</td></tr>
580
580
 
581
- <tr><td rowspan="2"><strong>Symbols</strong></td>
581
+ <tr><td rowspan="3"><strong>Symbols</strong></td>
582
582
  <td><code>sdl.symbol.search</code></td><td>Search symbols by name (with optional semantic reranking)</td></tr>
583
583
  <tr><td><code>sdl.symbol.getCard</code></td><td>Get one card or batch-fetch up to 100 cards with ETag-based conditional support</td></tr>
584
+ <tr><td><code>sdl.symbol.edit</code></td><td>Preview/apply one symbol-scoped edit with AST, range, file, and draft preconditions</td></tr>
584
585
 
585
586
  <tr><td rowspan="3"><strong>Slices</strong></td>
586
587
  <td><code>sdl.slice.build</code></td><td>Build a task-scoped dependency subgraph</td></tr>
@@ -650,7 +651,7 @@ The generated source of truth is [`docs/generated/tool-inventory.md`](./docs/gen
650
651
  | `sdl-mcp doctor` | Validate runtime, config, DB, grammars, repo access |
651
652
  | `sdl-mcp index` | Index repositories (with optional `--watch` mode) |
652
653
  | `sdl-mcp serve` | Start MCP server (`--stdio` or `--http`) |
653
- | `sdl-mcp tool` | Access 35 direct action aliases ([docs](./docs/feature-deep-dives/cli-tool-access.md)) |
654
+ | `sdl-mcp tool` | Access 36 direct action aliases ([docs](./docs/feature-deep-dives/cli-tool-access.md)) |
654
655
  | `sdl-mcp info` | Runtime diagnostics — version, Node.js, platform, database, config |
655
656
  | `sdl-mcp summary` | Generate copy/paste context summaries from the CLI |
656
657
  | `sdl-mcp health` | Compute composite health score with badge/JSON output |
@@ -771,9 +772,10 @@ flowchart TD
771
772
  | [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
772
773
  | [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
773
774
  | [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md) | Rust/TS engines, two-pass architecture, 12-language support |
775
+ | [Provider-First Indexing](./docs/feature-deep-dives/provider-first-indexing.md) | SCIP/LSP-first planning, provider facts, shadow DB readiness, fallback boundaries |
774
776
  | [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
775
- | [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to 35 action aliases, output formats, stdin piping, scripting |
776
- | [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 34 gateway-routable actions, 4 namespace tools, thin schemas, migration guide |
777
+ | [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to 36 action aliases, output formats, stdin piping, scripting |
778
+ | [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35 gateway-routable actions, 4 namespace tools, thin schemas, migration guide |
777
779
  | [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md) | Pass-2 call resolution, embedding search, LLM summaries, confidence scoring |
778
780
  | [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
779
781
  | [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
@@ -9,7 +9,12 @@
9
9
  "**/dist/**",
10
10
  "**/dist-*/**",
11
11
  "**/build/**",
12
+ "**/build-*/**",
13
+ "**/build_*/**",
14
+ "**/cmake-build-*/**",
12
15
  "**/out/**",
16
+ "**/out-*/**",
17
+ "**/out_*/**",
13
18
  "**/target/**",
14
19
  "**/coverage/**",
15
20
  "**/node_modules/**",
@@ -40,6 +45,7 @@
40
45
  "sh"
41
46
  ],
42
47
  "maxFileBytes": 2000000,
48
+ "sourceFileListPath": null,
43
49
  "postIndexSessionTimeoutMs": 900000,
44
50
  "includeNodeModulesTypes": true,
45
51
  "packageJsonPath": null,
@@ -69,13 +75,38 @@
69
75
  "patterns": []
70
76
  },
71
77
  "indexing": {
78
+ "pipeline": "auto",
79
+ "providerFirst": {
80
+ "activation": "shadowDb",
81
+ "readyState": "graphPlusAlgorithms",
82
+ "stagingFormat": "parquet",
83
+ "maxLegacyFallbackFiles": 1000000,
84
+ "maxSemanticEligibleFallbackFiles": 0,
85
+ "lsp": {
86
+ "mode": "primaryWithCaps",
87
+ "workspaceSymbolLimit": 5000,
88
+ "documentSymbolFileLimit": 500,
89
+ "referenceCandidateLimit": 200,
90
+ "diagnosticsLimit": 5000
91
+ }
92
+ },
72
93
  "concurrency": 8,
73
94
  "enableFileWatching": true,
74
95
  "maxWatchedFiles": 25000,
75
96
  "workerPoolSize": null,
76
97
  "engine": "rust",
77
98
  "watchDebounceMs": 300,
78
- "pass2Concurrency": 1
99
+ "pass2Concurrency": 1,
100
+ "algorithmRefresh": {
101
+ "enabled": true,
102
+ "pageRank": { "enabled": true },
103
+ "kCore": { "enabled": true },
104
+ "louvain": {
105
+ "enabled": true,
106
+ "maxCallEdges": 10000
107
+ },
108
+ "workerTimeoutMs": 120000
109
+ }
79
110
  },
80
111
  "liveIndex": {
81
112
  "enabled": true,
@@ -111,13 +142,15 @@
111
142
  "plugins": {
112
143
  "paths": [],
113
144
  "enabled": true,
114
- "strictVersioning": true
145
+ "strictVersioning": true,
146
+ "trustedRoots": []
115
147
  },
116
148
  "semantic": {
117
149
  "enabled": true,
118
150
  "provider": "local",
119
- "model": "jina-embeddings-v2-base-code",
120
- "additionalModels": ["nomic-embed-text-v1.5"],
151
+ "embeddingProfile": "specialized",
152
+ "symbolEmbeddingModels": ["jina-embeddings-v2-base-code"],
153
+ "fileSummaryEmbeddingModels": ["nomic-embed-text-v1.5"],
121
154
  "modelCacheDir": null,
122
155
  "generateSummaries": false,
123
156
  "summaryProvider": null,
@@ -187,7 +220,17 @@
187
220
  "prefetch": {
188
221
  "enabled": true,
189
222
  "maxBudgetPercent": 20,
190
- "warmTopN": 0
223
+ "warmTopN": 0,
224
+ "policy": {
225
+ "enabled": true,
226
+ "mode": "safe",
227
+ "minSamples": 20,
228
+ "suppressionWasteRate": 0.8,
229
+ "boostHitRate": 0.35,
230
+ "retentionDays": 14,
231
+ "maxPriorityBoost": 25,
232
+ "maxBudgetTrimPercent": 50
233
+ }
191
234
  },
192
235
  "tracing": {
193
236
  "enabled": true,
@@ -285,10 +328,16 @@
285
328
  "args": [],
286
329
  "autoInstall": true,
287
330
  "timeoutMs": 600000,
288
- "cleanupAfterIngest": true
331
+ "cleanupAfterIngest": true,
332
+ "cacheGeneratedIndexes": true
289
333
  }
290
334
  },
291
335
  "memory": {
292
336
  "enabled": false
337
+ },
338
+ "$": {
339
+ "prefetch": {
340
+ "policy": "{\"enabled\":true,\"mode\":\"safe\",\"minSamples\":20,\"suppressionWasteRate\":0.8,\"boostHitRate\":0.35,\"retentionDays\":14,\"maxPriorityBoost\":25,\"maxBudgetTrimPercent\":50}"
341
+ }
293
342
  }
294
343
  }
@@ -145,8 +145,9 @@
145
145
  "provider": "mock",
146
146
  "executionProviders": ["cpu"],
147
147
  "modelVariant": "default",
148
- "model": "jina-embeddings-v2-base-code",
149
- "additionalModels": ["nomic-embed-text-v1.5"],
148
+ "embeddingProfile": "specialized",
149
+ "symbolEmbeddingModels": ["jina-embeddings-v2-base-code"],
150
+ "fileSummaryEmbeddingModels": ["nomic-embed-text-v1.5"],
150
151
  "generateSummaries": false
151
152
  },
152
153
  "prefetch": {
@@ -33,7 +33,12 @@
33
33
  "**/dist/**",
34
34
  "**/dist-*/**",
35
35
  "**/build/**",
36
+ "**/build-*/**",
37
+ "**/build_*/**",
38
+ "**/cmake-build-*/**",
36
39
  "**/out/**",
40
+ "**/out-*/**",
41
+ "**/out_*/**",
37
42
  "**/target/**",
38
43
  "**/coverage/**",
39
44
  "**/node_modules/**",
@@ -91,6 +96,10 @@
91
96
  "minimum": 1,
92
97
  "default": 2000000
93
98
  },
99
+ "sourceFileListPath": {
100
+ "type": ["string", "null"],
101
+ "description": "Optional benchmark/tuning file list. When set, repository scanning uses these repo-relative source paths instead of walking the full tree."
102
+ },
94
103
  "postIndexSessionTimeoutMs": {
95
104
  "type": "integer",
96
105
  "description": "Hard timeout for post-index finalization writes in milliseconds. Covers embeddings, summaries, deferred index builds, memory sync, and audit flushing after pass-1/pass-2 complete.",
@@ -261,6 +270,104 @@
261
270
  "type": "object",
262
271
  "description": "Indexing behavior configuration",
263
272
  "properties": {
273
+ "pipeline": {
274
+ "type": "string",
275
+ "description": "Indexing pipeline selector. auto uses provider-first when SCIP or LSP coverage is configured, otherwise legacy.",
276
+ "enum": ["legacy", "providerFirst", "auto"],
277
+ "default": "auto"
278
+ },
279
+ "providerFirst": {
280
+ "type": "object",
281
+ "description": "Provider-first indexing options for SCIP/LSP-backed graph facts and shadow database activation.",
282
+ "properties": {
283
+ "activation": {
284
+ "type": "string",
285
+ "description": "Activation strategy for full provider-first builds.",
286
+ "enum": ["shadowDb"],
287
+ "default": "shadowDb"
288
+ },
289
+ "readyState": {
290
+ "type": "string",
291
+ "description": "Readiness gate for the first usable index state.",
292
+ "enum": ["graphPlusAlgorithms"],
293
+ "default": "graphPlusAlgorithms"
294
+ },
295
+ "stagingFormat": {
296
+ "type": "string",
297
+ "description": "Preferred provider fact staging format for shadow bulk loads. CSV is the fallback when Parquet is unavailable.",
298
+ "enum": ["parquet", "csv"],
299
+ "default": "parquet"
300
+ },
301
+ "maxLegacyFallbackFiles": {
302
+ "type": "integer",
303
+ "description": "Emergency cap for uncovered or provider-unusable files parsed by same-run legacy fallback after provider-first materialization. Defaults high so full provider-first runs build a complete graph; lower it only for partial iteration or resource protection.",
304
+ "minimum": 0,
305
+ "maximum": 1000000,
306
+ "default": 1000000
307
+ },
308
+ "maxSemanticEligibleFallbackFiles": {
309
+ "type": "integer",
310
+ "description": "Maximum semantic-eligible uncovered or provider-unusable files parsed when the full provider-first fallback gap exceeds maxLegacyFallbackFiles. The default of 0 avoids a misleading partial semantic subset when the main fallback cap was intentionally lowered or exceeded.",
311
+ "minimum": 0,
312
+ "maximum": 1000000,
313
+ "default": 0
314
+ },
315
+ "lsp": {
316
+ "type": "object",
317
+ "description": "Caps for primary LSP provider collection. LSP servers are consumed from configured commands; SDL-MCP does not install them.",
318
+ "properties": {
319
+ "mode": {
320
+ "type": "string",
321
+ "enum": ["primaryWithCaps"],
322
+ "default": "primaryWithCaps"
323
+ },
324
+ "workspaceSymbolLimit": {
325
+ "type": "integer",
326
+ "minimum": 0,
327
+ "maximum": 100000,
328
+ "default": 5000
329
+ },
330
+ "documentSymbolFileLimit": {
331
+ "type": "integer",
332
+ "minimum": 0,
333
+ "maximum": 50000,
334
+ "default": 500
335
+ },
336
+ "referenceCandidateLimit": {
337
+ "type": "integer",
338
+ "minimum": 0,
339
+ "maximum": 10000,
340
+ "default": 200
341
+ },
342
+ "diagnosticsLimit": {
343
+ "type": "integer",
344
+ "minimum": 0,
345
+ "maximum": 100000,
346
+ "default": 5000
347
+ }
348
+ },
349
+ "default": {
350
+ "mode": "primaryWithCaps",
351
+ "workspaceSymbolLimit": 5000,
352
+ "documentSymbolFileLimit": 500,
353
+ "referenceCandidateLimit": 200,
354
+ "diagnosticsLimit": 5000
355
+ }
356
+ }
357
+ },
358
+ "default": {
359
+ "activation": "shadowDb",
360
+ "readyState": "graphPlusAlgorithms",
361
+ "stagingFormat": "parquet",
362
+ "lsp": {
363
+ "mode": "primaryWithCaps",
364
+ "workspaceSymbolLimit": 5000,
365
+ "documentSymbolFileLimit": 500,
366
+ "referenceCandidateLimit": 200,
367
+ "diagnosticsLimit": 5000
368
+ }
369
+ }
370
+ },
264
371
  "concurrency": {
265
372
  "type": "integer",
266
373
  "description": "Number of concurrent indexing workers",
@@ -304,15 +411,86 @@
304
411
  "minimum": 1,
305
412
  "maximum": 16,
306
413
  "default": 1
414
+ },
415
+ "algorithmRefresh": {
416
+ "type": "object",
417
+ "description": "Optional post-index graph algorithm refresh. Canonical clusters/processes always run; PageRank/K-core use a bounded worker and Louvain is skipped above maxCallEdges.",
418
+ "properties": {
419
+ "enabled": {
420
+ "type": "boolean",
421
+ "default": true
422
+ },
423
+ "pageRank": {
424
+ "type": "object",
425
+ "properties": {
426
+ "enabled": { "type": "boolean", "default": true }
427
+ },
428
+ "default": { "enabled": true }
429
+ },
430
+ "kCore": {
431
+ "type": "object",
432
+ "properties": {
433
+ "enabled": { "type": "boolean", "default": true }
434
+ },
435
+ "default": { "enabled": true }
436
+ },
437
+ "louvain": {
438
+ "type": "object",
439
+ "properties": {
440
+ "enabled": { "type": "boolean", "default": true },
441
+ "maxCallEdges": {
442
+ "type": "integer",
443
+ "minimum": 0,
444
+ "default": 10000
445
+ }
446
+ },
447
+ "default": { "enabled": true, "maxCallEdges": 10000 }
448
+ },
449
+ "workerTimeoutMs": {
450
+ "type": "integer",
451
+ "minimum": 1000,
452
+ "maximum": 1800000,
453
+ "default": 120000
454
+ }
455
+ },
456
+ "default": {
457
+ "enabled": true,
458
+ "pageRank": { "enabled": true },
459
+ "kCore": { "enabled": true },
460
+ "louvain": { "enabled": true, "maxCallEdges": 10000 },
461
+ "workerTimeoutMs": 120000
462
+ }
307
463
  }
308
464
  },
309
465
  "default": {
466
+ "pipeline": "auto",
467
+ "providerFirst": {
468
+ "activation": "shadowDb",
469
+ "readyState": "graphPlusAlgorithms",
470
+ "stagingFormat": "parquet",
471
+ "maxLegacyFallbackFiles": 1000000,
472
+ "maxSemanticEligibleFallbackFiles": 0,
473
+ "lsp": {
474
+ "mode": "primaryWithCaps",
475
+ "workspaceSymbolLimit": 5000,
476
+ "documentSymbolFileLimit": 500,
477
+ "referenceCandidateLimit": 200,
478
+ "diagnosticsLimit": 5000
479
+ }
480
+ },
310
481
  "concurrency": 8,
311
482
  "enableFileWatching": true,
312
483
  "maxWatchedFiles": 25000,
313
484
  "engine": "rust",
314
485
  "watchDebounceMs": 300,
315
- "pass2Concurrency": 1
486
+ "pass2Concurrency": 1,
487
+ "algorithmRefresh": {
488
+ "enabled": true,
489
+ "pageRank": { "enabled": true },
490
+ "kCore": { "enabled": true },
491
+ "louvain": { "enabled": true, "maxCallEdges": 10000 },
492
+ "workerTimeoutMs": 120000
493
+ }
316
494
  }
317
495
  },
318
496
  "liveIndex": {
@@ -530,12 +708,21 @@
530
708
  "type": "boolean",
531
709
  "description": "Require plugin API version compatibility",
532
710
  "default": true
711
+ },
712
+ "trustedRoots": {
713
+ "type": "array",
714
+ "description": "Trusted plugin directories. Relative roots resolve from the config file directory; plugin entrypoints must resolve inside one root after symlinks are resolved.",
715
+ "items": {
716
+ "type": "string"
717
+ },
718
+ "default": []
533
719
  }
534
720
  },
535
721
  "default": {
536
722
  "paths": [],
537
723
  "enabled": true,
538
- "strictVersioning": true
724
+ "strictVersioning": true,
725
+ "trustedRoots": []
539
726
  }
540
727
  },
541
728
  "semantic": {
@@ -552,20 +739,36 @@
552
739
  "enum": ["api", "local", "mock"],
553
740
  "default": "local"
554
741
  },
742
+ "embeddingProfile": {
743
+ "type": "string",
744
+ "enum": ["specialized", "max-recall"],
745
+ "default": "specialized",
746
+ "description": "Semantic embedding model profile. 'specialized' embeds Symbols with Jina and FileSummary nodes with Nomic. 'max-recall' restores both supported models on both lanes."
747
+ },
748
+ "symbolEmbeddingModels": {
749
+ "type": "array",
750
+ "items": { "type": "string" },
751
+ "default": ["jina-embeddings-v2-base-code"],
752
+ "description": "Embedding models to populate for Symbol nodes. Overrides embeddingProfile for the Symbol lane when set."
753
+ },
754
+ "fileSummaryEmbeddingModels": {
755
+ "type": "array",
756
+ "items": { "type": "string" },
757
+ "default": ["nomic-embed-text-v1.5"],
758
+ "description": "Embedding models to populate for FileSummary nodes. Overrides embeddingProfile for the FileSummary lane when set."
759
+ },
555
760
  "model": {
556
761
  "type": "string",
557
- "enum": ["jina-embeddings-v2-base-code", "nomic-embed-text-v1.5"],
558
- "default": "jina-embeddings-v2-base-code"
762
+ "description": "Deprecated legacy primary embedding model. When no embeddingProfile or per-lane model arrays are configured, model plus additionalModels are treated as one shared model list for both Symbol and FileSummary embeddings."
559
763
  },
560
764
  "additionalModels": {
561
765
  "type": "array",
562
766
  "items": { "type": "string" },
563
- "default": ["nomic-embed-text-v1.5"],
564
- "description": "Extra embedding models to populate at index time so multiple vector lanes can contribute to hybrid fusion. Primary `model` is always populated; each name listed here gets a separate pass. Unknown model names are skipped."
767
+ "description": "Deprecated legacy shared extra embedding models. Use embeddingProfile, symbolEmbeddingModels, or fileSummaryEmbeddingModels instead."
565
768
  },
566
769
  "modelCacheDir": {
567
770
  "type": "string",
568
- "description": "Override directory for downloaded model files (nomic-embed-text-v1.5). Defaults to platform-specific cache."
771
+ "description": "Override directory for downloaded local embedding model files. Defaults to the platform-specific SDL-MCP model cache."
569
772
  },
570
773
  "generateSummaries": {
571
774
  "type": "boolean",
@@ -830,7 +1033,9 @@
830
1033
  "default": {
831
1034
  "enabled": true,
832
1035
  "provider": "local",
833
- "model": "jina-embeddings-v2-base-code",
1036
+ "embeddingProfile": "specialized",
1037
+ "symbolEmbeddingModels": ["jina-embeddings-v2-base-code"],
1038
+ "fileSummaryEmbeddingModels": ["nomic-embed-text-v1.5"],
834
1039
  "generateSummaries": false,
835
1040
  "summaryModel": "claude-haiku-4-5-20251001",
836
1041
  "summaryMaxConcurrency": 5,
@@ -996,12 +1201,67 @@
996
1201
  "minimum": 0,
997
1202
  "default": 0,
998
1203
  "description": "Number of top-fan-in symbols to prefetch on serve start. Default 0 disables startup warming; raise only when you have evidence the warm set is consumed within the 5-minute stale window."
1204
+ },
1205
+ "policy": {
1206
+ "type": "object",
1207
+ "description": "Outcome-trained predictive context policy. Safe mode can suppress, trim, or boost existing prefetch strategies but cannot invent new strategy types.",
1208
+ "additionalProperties": false,
1209
+ "properties": {
1210
+ "enabled": { "type": "boolean", "default": true },
1211
+ "mode": { "enum": ["observe", "safe"], "default": "safe" },
1212
+ "minSamples": { "type": "integer", "minimum": 1, "default": 20 },
1213
+ "suppressionWasteRate": {
1214
+ "type": "number",
1215
+ "minimum": 0,
1216
+ "maximum": 1,
1217
+ "default": 0.8
1218
+ },
1219
+ "boostHitRate": {
1220
+ "type": "number",
1221
+ "minimum": 0,
1222
+ "maximum": 1,
1223
+ "default": 0.35
1224
+ },
1225
+ "retentionDays": { "type": "integer", "minimum": 1, "default": 14 },
1226
+ "maxPriorityBoost": {
1227
+ "type": "integer",
1228
+ "minimum": 0,
1229
+ "maximum": 100,
1230
+ "default": 25
1231
+ },
1232
+ "maxBudgetTrimPercent": {
1233
+ "type": "integer",
1234
+ "minimum": 0,
1235
+ "maximum": 100,
1236
+ "default": 50
1237
+ }
1238
+ },
1239
+ "default": {
1240
+ "enabled": true,
1241
+ "mode": "safe",
1242
+ "minSamples": 20,
1243
+ "suppressionWasteRate": 0.8,
1244
+ "boostHitRate": 0.35,
1245
+ "retentionDays": 14,
1246
+ "maxPriorityBoost": 25,
1247
+ "maxBudgetTrimPercent": 50
1248
+ }
999
1249
  }
1000
1250
  },
1001
1251
  "default": {
1002
1252
  "enabled": true,
1003
1253
  "maxBudgetPercent": 20,
1004
- "warmTopN": 0
1254
+ "warmTopN": 0,
1255
+ "policy": {
1256
+ "enabled": true,
1257
+ "mode": "safe",
1258
+ "minSamples": 20,
1259
+ "suppressionWasteRate": 0.8,
1260
+ "boostHitRate": 0.35,
1261
+ "retentionDays": 14,
1262
+ "maxPriorityBoost": 25,
1263
+ "maxBudgetTrimPercent": 50
1264
+ }
1005
1265
  }
1006
1266
  },
1007
1267
  "observability": {
@@ -1513,13 +1773,18 @@
1513
1773
  "timeoutMs": {
1514
1774
  "type": "integer",
1515
1775
  "minimum": 1000,
1516
- "maximum": 1800000,
1776
+ "maximum": 18000000,
1517
1777
  "default": 600000
1518
1778
  },
1519
1779
  "cleanupAfterIngest": {
1520
1780
  "type": "boolean",
1521
1781
  "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.",
1522
1782
  "default": true
1783
+ },
1784
+ "cacheGeneratedIndexes": {
1785
+ "type": "boolean",
1786
+ "description": "Cache generated SCIP artifacts by source/config fingerprint and reuse them on later unchanged refreshes. The cache invalidates when tracked source files, common build manifests, generator args, or the scip-io binary change.",
1787
+ "default": true
1523
1788
  }
1524
1789
  },
1525
1790
  "default": {
@@ -1528,7 +1793,8 @@
1528
1793
  "args": [],
1529
1794
  "autoInstall": true,
1530
1795
  "timeoutMs": 600000,
1531
- "cleanupAfterIngest": true
1796
+ "cleanupAfterIngest": true,
1797
+ "cacheGeneratedIndexes": true
1532
1798
  }
1533
1799
  }
1534
1800
  }