sdl-mcp 0.11.4 → 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 (537) hide show
  1. package/README.md +1 -0
  2. package/config/sdlmcp.config.example.json +40 -18
  3. package/config/sdlmcp.config.schema.json +221 -8
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/agent/context-engine.d.ts +8 -0
  6. package/dist/agent/context-engine.d.ts.map +1 -1
  7. package/dist/agent/context-engine.js +56 -18
  8. package/dist/agent/context-engine.js.map +1 -1
  9. package/dist/cli/commands/index.d.ts +19 -0
  10. package/dist/cli/commands/index.d.ts.map +1 -1
  11. package/dist/cli/commands/index.js +1364 -9
  12. package/dist/cli/commands/index.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts.map +1 -1
  14. package/dist/cli/commands/init.js +29 -7
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/serve.d.ts.map +1 -1
  17. package/dist/cli/commands/serve.js +4 -0
  18. package/dist/cli/commands/serve.js.map +1 -1
  19. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  20. package/dist/cli/commands/tool-actions.js +5 -3
  21. package/dist/cli/commands/tool-actions.js.map +1 -1
  22. package/dist/cli/commands/tool-dispatch.d.ts.map +1 -1
  23. package/dist/cli/commands/tool-dispatch.js +2 -0
  24. package/dist/cli/commands/tool-dispatch.js.map +1 -1
  25. package/dist/cli/transport/http.d.ts.map +1 -1
  26. package/dist/cli/transport/http.js +5 -0
  27. package/dist/cli/transport/http.js.map +1 -1
  28. package/dist/code-mode/action-catalog.d.ts.map +1 -1
  29. package/dist/code-mode/action-catalog.js +11 -3
  30. package/dist/code-mode/action-catalog.js.map +1 -1
  31. package/dist/code-mode/descriptions.d.ts.map +1 -1
  32. package/dist/code-mode/descriptions.js +27 -27
  33. package/dist/code-mode/descriptions.js.map +1 -1
  34. package/dist/code-mode/index.d.ts.map +1 -1
  35. package/dist/code-mode/index.js +4 -1
  36. package/dist/code-mode/index.js.map +1 -1
  37. package/dist/code-mode/manual-generator.js +5 -5
  38. package/dist/code-mode/types.d.ts +2 -0
  39. package/dist/code-mode/types.d.ts.map +1 -1
  40. package/dist/code-mode/types.js +2 -0
  41. package/dist/code-mode/types.js.map +1 -1
  42. package/dist/code-mode/workflow-budget.d.ts.map +1 -1
  43. package/dist/code-mode/workflow-budget.js +6 -5
  44. package/dist/code-mode/workflow-budget.js.map +1 -1
  45. package/dist/code-mode/workflow-executor.d.ts.map +1 -1
  46. package/dist/code-mode/workflow-executor.js +24 -0
  47. package/dist/code-mode/workflow-executor.js.map +1 -1
  48. package/dist/config/admin-metadata.js +2 -2
  49. package/dist/config/admin-metadata.js.map +1 -1
  50. package/dist/config/constants.d.ts +7 -0
  51. package/dist/config/constants.d.ts.map +1 -1
  52. package/dist/config/constants.js +7 -0
  53. package/dist/config/constants.js.map +1 -1
  54. package/dist/config/types.d.ts +148 -2
  55. package/dist/config/types.d.ts.map +1 -1
  56. package/dist/config/types.js +109 -2
  57. package/dist/config/types.js.map +1 -1
  58. package/dist/db/extension-caps.d.ts +4 -0
  59. package/dist/db/extension-caps.d.ts.map +1 -1
  60. package/dist/db/extension-caps.js +6 -0
  61. package/dist/db/extension-caps.js.map +1 -1
  62. package/dist/db/ladybug-algorithms.d.ts +5 -0
  63. package/dist/db/ladybug-algorithms.d.ts.map +1 -1
  64. package/dist/db/ladybug-algorithms.js +32 -0
  65. package/dist/db/ladybug-algorithms.js.map +1 -1
  66. package/dist/db/ladybug-batching.d.ts +14 -0
  67. package/dist/db/ladybug-batching.d.ts.map +1 -0
  68. package/dist/db/ladybug-batching.js +23 -0
  69. package/dist/db/ladybug-batching.js.map +1 -0
  70. package/dist/db/ladybug-clusters.d.ts +12 -4
  71. package/dist/db/ladybug-clusters.d.ts.map +1 -1
  72. package/dist/db/ladybug-clusters.js +219 -1
  73. package/dist/db/ladybug-clusters.js.map +1 -1
  74. package/dist/db/ladybug-core.d.ts +5 -1
  75. package/dist/db/ladybug-core.d.ts.map +1 -1
  76. package/dist/db/ladybug-core.js +6 -4
  77. package/dist/db/ladybug-core.js.map +1 -1
  78. package/dist/db/ladybug-derived-state.d.ts +3 -1
  79. package/dist/db/ladybug-derived-state.d.ts.map +1 -1
  80. package/dist/db/ladybug-derived-state.js +4 -2
  81. package/dist/db/ladybug-derived-state.js.map +1 -1
  82. package/dist/db/ladybug-edges.d.ts +58 -5
  83. package/dist/db/ladybug-edges.d.ts.map +1 -1
  84. package/dist/db/ladybug-edges.js +692 -155
  85. package/dist/db/ladybug-edges.js.map +1 -1
  86. package/dist/db/ladybug-embeddings.d.ts +4 -1
  87. package/dist/db/ladybug-embeddings.d.ts.map +1 -1
  88. package/dist/db/ladybug-embeddings.js +5 -4
  89. package/dist/db/ladybug-embeddings.js.map +1 -1
  90. package/dist/db/ladybug-file-summaries.d.ts +29 -10
  91. package/dist/db/ladybug-file-summaries.d.ts.map +1 -1
  92. package/dist/db/ladybug-file-summaries.js +204 -1
  93. package/dist/db/ladybug-file-summaries.js.map +1 -1
  94. package/dist/db/ladybug-metrics.d.ts +62 -6
  95. package/dist/db/ladybug-metrics.d.ts.map +1 -1
  96. package/dist/db/ladybug-metrics.js +357 -33
  97. package/dist/db/ladybug-metrics.js.map +1 -1
  98. package/dist/db/ladybug-processes.d.ts +13 -4
  99. package/dist/db/ladybug-processes.d.ts.map +1 -1
  100. package/dist/db/ladybug-processes.js +215 -1
  101. package/dist/db/ladybug-processes.js.map +1 -1
  102. package/dist/db/ladybug-queries.d.ts +1 -0
  103. package/dist/db/ladybug-queries.d.ts.map +1 -1
  104. package/dist/db/ladybug-queries.js +1 -0
  105. package/dist/db/ladybug-queries.js.map +1 -1
  106. package/dist/db/ladybug-repos.d.ts +5 -1
  107. package/dist/db/ladybug-repos.d.ts.map +1 -1
  108. package/dist/db/ladybug-repos.js +7 -5
  109. package/dist/db/ladybug-repos.js.map +1 -1
  110. package/dist/db/ladybug-schema.d.ts +10 -2
  111. package/dist/db/ladybug-schema.d.ts.map +1 -1
  112. package/dist/db/ladybug-schema.js +29 -4
  113. package/dist/db/ladybug-schema.js.map +1 -1
  114. package/dist/db/ladybug-scip.d.ts +10 -6
  115. package/dist/db/ladybug-scip.d.ts.map +1 -1
  116. package/dist/db/ladybug-scip.js +125 -73
  117. package/dist/db/ladybug-scip.js.map +1 -1
  118. package/dist/db/ladybug-symbols.d.ts +29 -7
  119. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  120. package/dist/db/ladybug-symbols.js +383 -46
  121. package/dist/db/ladybug-symbols.js.map +1 -1
  122. package/dist/db/ladybug-versions.d.ts +26 -4
  123. package/dist/db/ladybug-versions.d.ts.map +1 -1
  124. package/dist/db/ladybug-versions.js +197 -1
  125. package/dist/db/ladybug-versions.js.map +1 -1
  126. package/dist/db/ladybug.d.ts +56 -2
  127. package/dist/db/ladybug.d.ts.map +1 -1
  128. package/dist/db/ladybug.js +200 -30
  129. package/dist/db/ladybug.js.map +1 -1
  130. package/dist/db/migrations/index.d.ts.map +1 -1
  131. package/dist/db/migrations/index.js +2 -0
  132. package/dist/db/migrations/index.js.map +1 -1
  133. package/dist/db/migrations/m020-add-metrics-fingerprint.d.ts +5 -0
  134. package/dist/db/migrations/m020-add-metrics-fingerprint.d.ts.map +1 -0
  135. package/dist/db/migrations/m020-add-metrics-fingerprint.js +23 -0
  136. package/dist/db/migrations/m020-add-metrics-fingerprint.js.map +1 -0
  137. package/dist/db/symbol-placeholders.d.ts +4 -0
  138. package/dist/db/symbol-placeholders.d.ts.map +1 -1
  139. package/dist/db/symbol-placeholders.js +40 -3
  140. package/dist/db/symbol-placeholders.js.map +1 -1
  141. package/dist/gateway/compact-schema.d.ts +1 -0
  142. package/dist/gateway/compact-schema.d.ts.map +1 -1
  143. package/dist/gateway/compact-schema.js +371 -9
  144. package/dist/gateway/compact-schema.js.map +1 -1
  145. package/dist/gateway/schemas.d.ts +23 -5
  146. package/dist/gateway/schemas.d.ts.map +1 -1
  147. package/dist/gateway/schemas.js +89 -25
  148. package/dist/gateway/schemas.js.map +1 -1
  149. package/dist/graph/centrality-algorithms.d.ts +18 -0
  150. package/dist/graph/centrality-algorithms.d.ts.map +1 -0
  151. package/dist/graph/centrality-algorithms.js +144 -0
  152. package/dist/graph/centrality-algorithms.js.map +1 -0
  153. package/dist/graph/centrality-worker-runner.d.ts +11 -0
  154. package/dist/graph/centrality-worker-runner.d.ts.map +1 -0
  155. package/dist/graph/centrality-worker-runner.js +48 -0
  156. package/dist/graph/centrality-worker-runner.js.map +1 -0
  157. package/dist/graph/centrality-worker-thread.d.ts +6 -0
  158. package/dist/graph/centrality-worker-thread.d.ts.map +1 -0
  159. package/dist/graph/centrality-worker-thread.js +12 -0
  160. package/dist/graph/centrality-worker-thread.js.map +1 -0
  161. package/dist/graph/metrics-recovery.d.ts +14 -0
  162. package/dist/graph/metrics-recovery.d.ts.map +1 -0
  163. package/dist/graph/metrics-recovery.js +113 -0
  164. package/dist/graph/metrics-recovery.js.map +1 -0
  165. package/dist/graph/metrics.d.ts +35 -2
  166. package/dist/graph/metrics.d.ts.map +1 -1
  167. package/dist/graph/metrics.js +544 -98
  168. package/dist/graph/metrics.js.map +1 -1
  169. package/dist/indexer/adapter/LanguageAdapter.d.ts +14 -0
  170. package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -1
  171. package/dist/indexer/adapter/cpp.d.ts.map +1 -1
  172. package/dist/indexer/adapter/cpp.js +32 -29
  173. package/dist/indexer/adapter/cpp.js.map +1 -1
  174. package/dist/indexer/adapter/plugin/loader.d.ts +2 -2
  175. package/dist/indexer/adapter/plugin/loader.d.ts.map +1 -1
  176. package/dist/indexer/adapter/plugin/loader.js +68 -25
  177. package/dist/indexer/adapter/plugin/loader.js.map +1 -1
  178. package/dist/indexer/adapter/plugin/types.d.ts +2 -1
  179. package/dist/indexer/adapter/plugin/types.d.ts.map +1 -1
  180. package/dist/indexer/adapter/plugin/types.js.map +1 -1
  181. package/dist/indexer/adapter/registry.d.ts +14 -5
  182. package/dist/indexer/adapter/registry.d.ts.map +1 -1
  183. package/dist/indexer/adapter/registry.js +38 -14
  184. package/dist/indexer/adapter/registry.js.map +1 -1
  185. package/dist/indexer/cluster-orchestrator.d.ts +45 -0
  186. package/dist/indexer/cluster-orchestrator.d.ts.map +1 -1
  187. package/dist/indexer/cluster-orchestrator.js +446 -200
  188. package/dist/indexer/cluster-orchestrator.js.map +1 -1
  189. package/dist/indexer/derived-refresh-queue.d.ts +8 -5
  190. package/dist/indexer/derived-refresh-queue.d.ts.map +1 -1
  191. package/dist/indexer/derived-refresh-queue.js +34 -9
  192. package/dist/indexer/derived-refresh-queue.js.map +1 -1
  193. package/dist/indexer/edge-builder/cleanup.d.ts.map +1 -1
  194. package/dist/indexer/edge-builder/cleanup.js +6 -9
  195. package/dist/indexer/edge-builder/cleanup.js.map +1 -1
  196. package/dist/indexer/edge-builder/import-resolution.d.ts.map +1 -1
  197. package/dist/indexer/edge-builder/import-resolution.js +1 -0
  198. package/dist/indexer/edge-builder/import-resolution.js.map +1 -1
  199. package/dist/indexer/edge-builder/pass2.d.ts.map +1 -1
  200. package/dist/indexer/edge-builder/pass2.js +3 -1
  201. package/dist/indexer/edge-builder/pass2.js.map +1 -1
  202. package/dist/indexer/edge-builder/telemetry.d.ts +18 -0
  203. package/dist/indexer/edge-builder/telemetry.d.ts.map +1 -1
  204. package/dist/indexer/edge-builder/telemetry.js +33 -0
  205. package/dist/indexer/edge-builder/telemetry.js.map +1 -1
  206. package/dist/indexer/edge-builder.d.ts +1 -1
  207. package/dist/indexer/edge-builder.d.ts.map +1 -1
  208. package/dist/indexer/edge-builder.js +1 -1
  209. package/dist/indexer/edge-builder.js.map +1 -1
  210. package/dist/indexer/fileScanner.d.ts +6 -1
  211. package/dist/indexer/fileScanner.d.ts.map +1 -1
  212. package/dist/indexer/fileScanner.js +108 -6
  213. package/dist/indexer/fileScanner.js.map +1 -1
  214. package/dist/indexer/finalize-derived-state.d.ts +7 -0
  215. package/dist/indexer/finalize-derived-state.d.ts.map +1 -1
  216. package/dist/indexer/finalize-derived-state.js +48 -5
  217. package/dist/indexer/finalize-derived-state.js.map +1 -1
  218. package/dist/indexer/import-resolution/c-include-adapter.d.ts.map +1 -1
  219. package/dist/indexer/import-resolution/c-include-adapter.js +10 -3
  220. package/dist/indexer/import-resolution/c-include-adapter.js.map +1 -1
  221. package/dist/indexer/import-resolution/types.d.ts +3 -0
  222. package/dist/indexer/import-resolution/types.d.ts.map +1 -1
  223. package/dist/indexer/indexer-finalize-edges.d.ts +17 -0
  224. package/dist/indexer/indexer-finalize-edges.d.ts.map +1 -0
  225. package/dist/indexer/indexer-finalize-edges.js +28 -0
  226. package/dist/indexer/indexer-finalize-edges.js.map +1 -0
  227. package/dist/indexer/indexer-init.d.ts +21 -7
  228. package/dist/indexer/indexer-init.d.ts.map +1 -1
  229. package/dist/indexer/indexer-init.js.map +1 -1
  230. package/dist/indexer/indexer-pass1-policy.d.ts +55 -0
  231. package/dist/indexer/indexer-pass1-policy.d.ts.map +1 -0
  232. package/dist/indexer/indexer-pass1-policy.js +76 -0
  233. package/dist/indexer/indexer-pass1-policy.js.map +1 -0
  234. package/dist/indexer/indexer-pass1.d.ts +2 -0
  235. package/dist/indexer/indexer-pass1.d.ts.map +1 -1
  236. package/dist/indexer/indexer-pass1.js +67 -15
  237. package/dist/indexer/indexer-pass1.js.map +1 -1
  238. package/dist/indexer/indexer-pass2-import-cache.d.ts +29 -0
  239. package/dist/indexer/indexer-pass2-import-cache.d.ts.map +1 -0
  240. package/dist/indexer/indexer-pass2-import-cache.js +103 -0
  241. package/dist/indexer/indexer-pass2-import-cache.js.map +1 -0
  242. package/dist/indexer/indexer-pass2-symbol-index.d.ts +4 -0
  243. package/dist/indexer/indexer-pass2-symbol-index.d.ts.map +1 -0
  244. package/dist/indexer/indexer-pass2-symbol-index.js +51 -0
  245. package/dist/indexer/indexer-pass2-symbol-index.js.map +1 -0
  246. package/dist/indexer/indexer-pass2-write.d.ts +128 -0
  247. package/dist/indexer/indexer-pass2-write.d.ts.map +1 -0
  248. package/dist/indexer/indexer-pass2-write.js +580 -0
  249. package/dist/indexer/indexer-pass2-write.js.map +1 -0
  250. package/dist/indexer/indexer-pass2.d.ts +12 -51
  251. package/dist/indexer/indexer-pass2.d.ts.map +1 -1
  252. package/dist/indexer/indexer-pass2.js +298 -211
  253. package/dist/indexer/indexer-pass2.js.map +1 -1
  254. package/dist/indexer/indexer-version.d.ts +8 -0
  255. package/dist/indexer/indexer-version.d.ts.map +1 -1
  256. package/dist/indexer/indexer-version.js +86 -29
  257. package/dist/indexer/indexer-version.js.map +1 -1
  258. package/dist/indexer/indexer.d.ts +145 -1
  259. package/dist/indexer/indexer.d.ts.map +1 -1
  260. package/dist/indexer/indexer.js +2390 -122
  261. package/dist/indexer/indexer.js.map +1 -1
  262. package/dist/indexer/language.d.ts +3 -0
  263. package/dist/indexer/language.d.ts.map +1 -0
  264. package/dist/indexer/language.js +67 -0
  265. package/dist/indexer/language.js.map +1 -0
  266. package/dist/indexer/metrics-updater.d.ts +14 -1
  267. package/dist/indexer/metrics-updater.d.ts.map +1 -1
  268. package/dist/indexer/metrics-updater.js +201 -17
  269. package/dist/indexer/metrics-updater.js.map +1 -1
  270. package/dist/indexer/parser/batch-persist.d.ts +100 -1
  271. package/dist/indexer/parser/batch-persist.d.ts.map +1 -1
  272. package/dist/indexer/parser/batch-persist.js +511 -32
  273. package/dist/indexer/parser/batch-persist.js.map +1 -1
  274. package/dist/indexer/parser/build-rows.d.ts +9 -1
  275. package/dist/indexer/parser/build-rows.d.ts.map +1 -1
  276. package/dist/indexer/parser/build-rows.js +37 -2
  277. package/dist/indexer/parser/build-rows.js.map +1 -1
  278. package/dist/indexer/parser/helpers.d.ts.map +1 -1
  279. package/dist/indexer/parser/helpers.js +2 -1
  280. package/dist/indexer/parser/helpers.js.map +1 -1
  281. package/dist/indexer/parser/process-file.d.ts.map +1 -1
  282. package/dist/indexer/parser/process-file.js +61 -13
  283. package/dist/indexer/parser/process-file.js.map +1 -1
  284. package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
  285. package/dist/indexer/parser/rust-process-file.js +21 -10
  286. package/dist/indexer/parser/rust-process-file.js.map +1 -1
  287. package/dist/indexer/pass2/registry.d.ts.map +1 -1
  288. package/dist/indexer/pass2/registry.js +2 -3
  289. package/dist/indexer/pass2/registry.js.map +1 -1
  290. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts +13 -0
  291. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts.map +1 -1
  292. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js +160 -32
  293. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js.map +1 -1
  294. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts +37 -2
  295. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts.map +1 -1
  296. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js +355 -117
  297. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js.map +1 -1
  298. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.d.ts.map +1 -1
  299. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js +3 -1
  300. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js.map +1 -1
  301. package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
  302. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +3 -1
  303. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
  304. package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts.map +1 -1
  305. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js +3 -1
  306. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js.map +1 -1
  307. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.d.ts.map +1 -1
  308. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js +3 -1
  309. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js.map +1 -1
  310. package/dist/indexer/pass2/resolvers/php-pass2-resolver.d.ts.map +1 -1
  311. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js +3 -1
  312. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js.map +1 -1
  313. package/dist/indexer/pass2/resolvers/python-pass2-resolver.d.ts.map +1 -1
  314. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js +18 -10
  315. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js.map +1 -1
  316. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
  317. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js +3 -1
  318. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js.map +1 -1
  319. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.d.ts.map +1 -1
  320. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js +3 -1
  321. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js.map +1 -1
  322. package/dist/indexer/pass2/types.d.ts +129 -16
  323. package/dist/indexer/pass2/types.d.ts.map +1 -1
  324. package/dist/indexer/pass2/types.js +263 -9
  325. package/dist/indexer/pass2/types.js.map +1 -1
  326. package/dist/indexer/provider-first/cpp-call-proof.d.ts +24 -0
  327. package/dist/indexer/provider-first/cpp-call-proof.d.ts.map +1 -0
  328. package/dist/indexer/provider-first/cpp-call-proof.js +489 -0
  329. package/dist/indexer/provider-first/cpp-call-proof.js.map +1 -0
  330. package/dist/indexer/provider-first/executor.d.ts +181 -0
  331. package/dist/indexer/provider-first/executor.d.ts.map +1 -0
  332. package/dist/indexer/provider-first/executor.js +1023 -0
  333. package/dist/indexer/provider-first/executor.js.map +1 -0
  334. package/dist/indexer/provider-first/graph-validation.d.ts +15 -0
  335. package/dist/indexer/provider-first/graph-validation.d.ts.map +1 -0
  336. package/dist/indexer/provider-first/graph-validation.js +137 -0
  337. package/dist/indexer/provider-first/graph-validation.js.map +1 -0
  338. package/dist/indexer/provider-first/ids.d.ts +31 -0
  339. package/dist/indexer/provider-first/ids.d.ts.map +1 -0
  340. package/dist/indexer/provider-first/ids.js +46 -0
  341. package/dist/indexer/provider-first/ids.js.map +1 -0
  342. package/dist/indexer/provider-first/index.d.ts +15 -0
  343. package/dist/indexer/provider-first/index.d.ts.map +1 -0
  344. package/dist/indexer/provider-first/index.js +10 -0
  345. package/dist/indexer/provider-first/index.js.map +1 -0
  346. package/dist/indexer/provider-first/legacy-shadow-rows.d.ts +17 -0
  347. package/dist/indexer/provider-first/legacy-shadow-rows.d.ts.map +1 -0
  348. package/dist/indexer/provider-first/legacy-shadow-rows.js +247 -0
  349. package/dist/indexer/provider-first/legacy-shadow-rows.js.map +1 -0
  350. package/dist/indexer/provider-first/lsp-cache.d.ts +10 -0
  351. package/dist/indexer/provider-first/lsp-cache.d.ts.map +1 -0
  352. package/dist/indexer/provider-first/lsp-cache.js +16 -0
  353. package/dist/indexer/provider-first/lsp-cache.js.map +1 -0
  354. package/dist/indexer/provider-first/materializer.d.ts +90 -0
  355. package/dist/indexer/provider-first/materializer.d.ts.map +1 -0
  356. package/dist/indexer/provider-first/materializer.js +415 -0
  357. package/dist/indexer/provider-first/materializer.js.map +1 -0
  358. package/dist/indexer/provider-first/planner.d.ts +9 -0
  359. package/dist/indexer/provider-first/planner.d.ts.map +1 -0
  360. package/dist/indexer/provider-first/planner.js +93 -0
  361. package/dist/indexer/provider-first/planner.js.map +1 -0
  362. package/dist/indexer/provider-first/provenance.d.ts +11 -0
  363. package/dist/indexer/provider-first/provenance.d.ts.map +1 -0
  364. package/dist/indexer/provider-first/provenance.js +230 -0
  365. package/dist/indexer/provider-first/provenance.js.map +1 -0
  366. package/dist/indexer/provider-first/scip-normalizer.d.ts +36 -0
  367. package/dist/indexer/provider-first/scip-normalizer.d.ts.map +1 -0
  368. package/dist/indexer/provider-first/scip-normalizer.js +1482 -0
  369. package/dist/indexer/provider-first/scip-normalizer.js.map +1 -0
  370. package/dist/indexer/provider-first/semantic-readiness.d.ts +40 -0
  371. package/dist/indexer/provider-first/semantic-readiness.d.ts.map +1 -0
  372. package/dist/indexer/provider-first/semantic-readiness.js +129 -0
  373. package/dist/indexer/provider-first/semantic-readiness.js.map +1 -0
  374. package/dist/indexer/provider-first/semantic-scope.d.ts +8 -0
  375. package/dist/indexer/provider-first/semantic-scope.d.ts.map +1 -0
  376. package/dist/indexer/provider-first/semantic-scope.js +170 -0
  377. package/dist/indexer/provider-first/semantic-scope.js.map +1 -0
  378. package/dist/indexer/provider-first/shadow-activation.d.ts +41 -0
  379. package/dist/indexer/provider-first/shadow-activation.d.ts.map +1 -0
  380. package/dist/indexer/provider-first/shadow-activation.js +277 -0
  381. package/dist/indexer/provider-first/shadow-activation.js.map +1 -0
  382. package/dist/indexer/provider-first/shadow-build.d.ts +73 -0
  383. package/dist/indexer/provider-first/shadow-build.d.ts.map +1 -0
  384. package/dist/indexer/provider-first/shadow-build.js +554 -0
  385. package/dist/indexer/provider-first/shadow-build.js.map +1 -0
  386. package/dist/indexer/provider-first/shadow-finalization.d.ts +51 -0
  387. package/dist/indexer/provider-first/shadow-finalization.d.ts.map +1 -0
  388. package/dist/indexer/provider-first/shadow-finalization.js +1421 -0
  389. package/dist/indexer/provider-first/shadow-finalization.js.map +1 -0
  390. package/dist/indexer/provider-first/source-call-proof.d.ts +31 -0
  391. package/dist/indexer/provider-first/source-call-proof.d.ts.map +1 -0
  392. package/dist/indexer/provider-first/source-call-proof.js +460 -0
  393. package/dist/indexer/provider-first/source-call-proof.js.map +1 -0
  394. package/dist/indexer/provider-first/types.d.ts +149 -0
  395. package/dist/indexer/provider-first/types.d.ts.map +1 -0
  396. package/dist/indexer/provider-first/types.js +2 -0
  397. package/dist/indexer/provider-first/types.js.map +1 -0
  398. package/dist/indexer/scanner.d.ts +3 -2
  399. package/dist/indexer/scanner.d.ts.map +1 -1
  400. package/dist/indexer/scanner.js +2 -2
  401. package/dist/indexer/scanner.js.map +1 -1
  402. package/dist/indexer/symbol-embedding-context.d.ts +2 -1
  403. package/dist/indexer/symbol-embedding-context.d.ts.map +1 -1
  404. package/dist/indexer/symbol-embedding-context.js +4 -2
  405. package/dist/indexer/symbol-embedding-context.js.map +1 -1
  406. package/dist/indexer/treesitter/grammarLoader.d.ts +1 -0
  407. package/dist/indexer/treesitter/grammarLoader.d.ts.map +1 -1
  408. package/dist/indexer/treesitter/grammarLoader.js +15 -1
  409. package/dist/indexer/treesitter/grammarLoader.js.map +1 -1
  410. package/dist/indexer/treesitter/tsTreesitter.d.ts +4 -0
  411. package/dist/indexer/treesitter/tsTreesitter.d.ts.map +1 -1
  412. package/dist/indexer/treesitter/tsTreesitter.js +97 -12
  413. package/dist/indexer/treesitter/tsTreesitter.js.map +1 -1
  414. package/dist/indexer/ts/tsParser.d.ts +5 -0
  415. package/dist/indexer/ts/tsParser.d.ts.map +1 -1
  416. package/dist/indexer/ts/tsParser.js +34 -3
  417. package/dist/indexer/ts/tsParser.js.map +1 -1
  418. package/dist/indexer/watcher.d.ts +7 -0
  419. package/dist/indexer/watcher.d.ts.map +1 -1
  420. package/dist/indexer/watcher.js +53 -18
  421. package/dist/indexer/watcher.js.map +1 -1
  422. package/dist/indexer/worker.js +7 -0
  423. package/dist/indexer/worker.js.map +1 -1
  424. package/dist/live-index/draft-parser.d.ts.map +1 -1
  425. package/dist/live-index/draft-parser.js +4 -1
  426. package/dist/live-index/draft-parser.js.map +1 -1
  427. package/dist/main.js +2 -0
  428. package/dist/main.js.map +1 -1
  429. package/dist/mcp/server-instructions.js +5 -5
  430. package/dist/mcp/server-instructions.js.map +1 -1
  431. package/dist/mcp/telemetry.d.ts +8 -0
  432. package/dist/mcp/telemetry.d.ts.map +1 -1
  433. package/dist/mcp/telemetry.js.map +1 -1
  434. package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
  435. package/dist/mcp/tool-call-formatter.js +12 -5
  436. package/dist/mcp/tool-call-formatter.js.map +1 -1
  437. package/dist/mcp/tools/file-gateway.d.ts +23 -5
  438. package/dist/mcp/tools/file-gateway.d.ts.map +1 -1
  439. package/dist/mcp/tools/file-gateway.js +5 -5
  440. package/dist/mcp/tools/file-gateway.js.map +1 -1
  441. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  442. package/dist/mcp/tools/runtime.js +36 -13
  443. package/dist/mcp/tools/runtime.js.map +1 -1
  444. package/dist/mcp/tools/scip.d.ts.map +1 -1
  445. package/dist/mcp/tools/scip.js +1 -0
  446. package/dist/mcp/tools/scip.js.map +1 -1
  447. package/dist/mcp/tools/search-edit/index.d.ts.map +1 -1
  448. package/dist/mcp/tools/search-edit/index.js +13 -1
  449. package/dist/mcp/tools/search-edit/index.js.map +1 -1
  450. package/dist/mcp/tools/search-edit/planner.d.ts +27 -2
  451. package/dist/mcp/tools/search-edit/planner.d.ts.map +1 -1
  452. package/dist/mcp/tools/search-edit/planner.js +685 -136
  453. package/dist/mcp/tools/search-edit/planner.js.map +1 -1
  454. package/dist/mcp/tools/search-edit/structural.d.ts +63 -0
  455. package/dist/mcp/tools/search-edit/structural.d.ts.map +1 -0
  456. package/dist/mcp/tools/search-edit/structural.js +524 -0
  457. package/dist/mcp/tools/search-edit/structural.js.map +1 -0
  458. package/dist/mcp/tools/tool-descriptors.js +2 -2
  459. package/dist/mcp/tools/tool-descriptors.js.map +1 -1
  460. package/dist/mcp/tools.d.ts +53 -9
  461. package/dist/mcp/tools.d.ts.map +1 -1
  462. package/dist/mcp/tools.js +74 -9
  463. package/dist/mcp/tools.js.map +1 -1
  464. package/dist/retrieval/fallback.d.ts +16 -2
  465. package/dist/retrieval/fallback.d.ts.map +1 -1
  466. package/dist/retrieval/fallback.js +35 -26
  467. package/dist/retrieval/fallback.js.map +1 -1
  468. package/dist/retrieval/index-lifecycle.d.ts +60 -19
  469. package/dist/retrieval/index-lifecycle.d.ts.map +1 -1
  470. package/dist/retrieval/index-lifecycle.js +348 -173
  471. package/dist/retrieval/index-lifecycle.js.map +1 -1
  472. package/dist/scip/cleanup.d.ts +1 -0
  473. package/dist/scip/cleanup.d.ts.map +1 -1
  474. package/dist/scip/cleanup.js +23 -11
  475. package/dist/scip/cleanup.js.map +1 -1
  476. package/dist/scip/decoder-rust.d.ts.map +1 -1
  477. package/dist/scip/decoder-rust.js +1 -0
  478. package/dist/scip/decoder-rust.js.map +1 -1
  479. package/dist/scip/decoder-ts.d.ts +2 -2
  480. package/dist/scip/decoder-ts.d.ts.map +1 -1
  481. package/dist/scip/decoder-ts.js +4 -2
  482. package/dist/scip/decoder-ts.js.map +1 -1
  483. package/dist/scip/diagnostics.d.ts +18 -0
  484. package/dist/scip/diagnostics.d.ts.map +1 -0
  485. package/dist/scip/diagnostics.js +2 -0
  486. package/dist/scip/diagnostics.js.map +1 -0
  487. package/dist/scip/ingestion.d.ts +6 -1
  488. package/dist/scip/ingestion.d.ts.map +1 -1
  489. package/dist/scip/ingestion.js +45 -5
  490. package/dist/scip/ingestion.js.map +1 -1
  491. package/dist/scip/kind-mapping.d.ts +1 -0
  492. package/dist/scip/kind-mapping.d.ts.map +1 -1
  493. package/dist/scip/kind-mapping.js +62 -3
  494. package/dist/scip/kind-mapping.js.map +1 -1
  495. package/dist/scip/limits.d.ts +3 -0
  496. package/dist/scip/limits.d.ts.map +1 -0
  497. package/dist/scip/limits.js +3 -0
  498. package/dist/scip/limits.js.map +1 -0
  499. package/dist/scip/scip-io-runner.d.ts +77 -4
  500. package/dist/scip/scip-io-runner.d.ts.map +1 -1
  501. package/dist/scip/scip-io-runner.js +1581 -24
  502. package/dist/scip/scip-io-runner.js.map +1 -1
  503. package/dist/scip/symbol-matcher.d.ts.map +1 -1
  504. package/dist/scip/symbol-matcher.js +2 -2
  505. package/dist/scip/symbol-matcher.js.map +1 -1
  506. package/dist/scip/types.d.ts +5 -0
  507. package/dist/scip/types.d.ts.map +1 -1
  508. package/dist/semantic/providers/lsp/candidates.d.ts.map +1 -1
  509. package/dist/semantic/providers/lsp/candidates.js +2 -1
  510. package/dist/semantic/providers/lsp/candidates.js.map +1 -1
  511. package/dist/startup/derived-state-recovery.d.ts +4 -2
  512. package/dist/startup/derived-state-recovery.d.ts.map +1 -1
  513. package/dist/startup/derived-state-recovery.js +24 -2
  514. package/dist/startup/derived-state-recovery.js.map +1 -1
  515. package/dist/startup/plugins.d.ts +9 -0
  516. package/dist/startup/plugins.d.ts.map +1 -0
  517. package/dist/startup/plugins.js +47 -0
  518. package/dist/startup/plugins.js.map +1 -0
  519. package/dist/ui/config.d.ts.map +1 -1
  520. package/dist/ui/config.js +7 -0
  521. package/dist/ui/config.js.map +1 -1
  522. package/dist/util/asyncFs.d.ts +21 -0
  523. package/dist/util/asyncFs.d.ts.map +1 -1
  524. package/dist/util/asyncFs.js +40 -0
  525. package/dist/util/asyncFs.js.map +1 -1
  526. package/dist/util/runtime-identity.d.ts +8 -0
  527. package/dist/util/runtime-identity.d.ts.map +1 -0
  528. package/dist/util/runtime-identity.js +15 -0
  529. package/dist/util/runtime-identity.js.map +1 -0
  530. package/dist/util/safeRegex.d.ts.map +1 -1
  531. package/dist/util/safeRegex.js +9 -3
  532. package/dist/util/safeRegex.js.map +1 -1
  533. package/package.json +6 -3
  534. package/templates/AGENTS.md.template +1 -1
  535. package/templates/CLAUDE.md.template +1 -1
  536. package/templates/CODEX.md.template +1 -1
  537. package/templates/SDL.md +13 -4
package/README.md CHANGED
@@ -772,6 +772,7 @@ flowchart TD
772
772
  | [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
773
773
  | [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
774
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 |
775
776
  | [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
776
777
  | [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to 36 action aliases, output formats, stdin piping, scripting |
777
778
  | [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35 gateway-routable actions, 4 namespace tools, thin schemas, migration guide |
@@ -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,18 +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
151
  "embeddingProfile": "specialized",
120
- "symbolEmbeddingModels": [
121
- "jina-embeddings-v2-base-code"
122
- ],
123
- "fileSummaryEmbeddingModels": [
124
- "nomic-embed-text-v1.5"
125
- ],
152
+ "symbolEmbeddingModels": ["jina-embeddings-v2-base-code"],
153
+ "fileSummaryEmbeddingModels": ["nomic-embed-text-v1.5"],
126
154
  "modelCacheDir": null,
127
155
  "generateSummaries": false,
128
156
  "summaryProvider": null,
@@ -137,9 +165,7 @@
137
165
  "fileSummaryEmbeddingMaxChars": 4096,
138
166
  "embeddingsSequential": false,
139
167
  "modelVariant": "default",
140
- "executionProviders": [
141
- "cpu"
142
- ],
168
+ "executionProviders": ["cpu"],
143
169
  "retrieval": {
144
170
  "mode": "hybrid",
145
171
  "extensionsOptional": true,
@@ -240,12 +266,7 @@
240
266
  },
241
267
  "runtime": {
242
268
  "enabled": true,
243
- "allowedRuntimes": [
244
- "node",
245
- "typescript",
246
- "python",
247
- "shell"
248
- ],
269
+ "allowedRuntimes": ["node", "typescript", "python", "shell"],
249
270
  "allowedExecutables": [],
250
271
  "maxDurationMs": 30000,
251
272
  "maxStdoutBytes": 1048576,
@@ -307,7 +328,8 @@
307
328
  "args": [],
308
329
  "autoInstall": true,
309
330
  "timeoutMs": 600000,
310
- "cleanupAfterIngest": true
331
+ "cleanupAfterIngest": true,
332
+ "cacheGeneratedIndexes": true
311
333
  }
312
334
  },
313
335
  "memory": {
@@ -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": {
@@ -1023,11 +1210,31 @@
1023
1210
  "enabled": { "type": "boolean", "default": true },
1024
1211
  "mode": { "enum": ["observe", "safe"], "default": "safe" },
1025
1212
  "minSamples": { "type": "integer", "minimum": 1, "default": 20 },
1026
- "suppressionWasteRate": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.8 },
1027
- "boostHitRate": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.35 },
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
+ },
1028
1225
  "retentionDays": { "type": "integer", "minimum": 1, "default": 14 },
1029
- "maxPriorityBoost": { "type": "integer", "minimum": 0, "maximum": 100, "default": 25 },
1030
- "maxBudgetTrimPercent": { "type": "integer", "minimum": 0, "maximum": 100, "default": 50 }
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
+ }
1031
1238
  },
1032
1239
  "default": {
1033
1240
  "enabled": true,
@@ -1566,13 +1773,18 @@
1566
1773
  "timeoutMs": {
1567
1774
  "type": "integer",
1568
1775
  "minimum": 1000,
1569
- "maximum": 1800000,
1776
+ "maximum": 18000000,
1570
1777
  "default": 600000
1571
1778
  },
1572
1779
  "cleanupAfterIngest": {
1573
1780
  "type": "boolean",
1574
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.",
1575
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
1576
1788
  }
1577
1789
  },
1578
1790
  "default": {
@@ -1581,7 +1793,8 @@
1581
1793
  "args": [],
1582
1794
  "autoInstall": true,
1583
1795
  "timeoutMs": 600000,
1584
- "cleanupAfterIngest": true
1796
+ "cleanupAfterIngest": true,
1797
+ "cacheGeneratedIndexes": true
1585
1798
  }
1586
1799
  }
1587
1800
  }