sdl-mcp 0.10.2 → 0.10.4

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 (621) hide show
  1. package/README.md +129 -87
  2. package/config/sdlmcp.config.example.json +35 -7
  3. package/config/sdlmcp.config.schema.json +171 -8
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/agent/context-engine.d.ts +40 -4
  6. package/dist/agent/context-engine.d.ts.map +1 -1
  7. package/dist/agent/context-engine.js +343 -174
  8. package/dist/agent/context-engine.js.map +1 -1
  9. package/dist/agent/context-ranking.d.ts +42 -0
  10. package/dist/agent/context-ranking.d.ts.map +1 -0
  11. package/dist/agent/context-ranking.js +486 -0
  12. package/dist/agent/context-ranking.js.map +1 -0
  13. package/dist/agent/context-seeding.d.ts +41 -0
  14. package/dist/agent/context-seeding.d.ts.map +1 -0
  15. package/dist/agent/context-seeding.js +302 -0
  16. package/dist/agent/context-seeding.js.map +1 -0
  17. package/dist/agent/executor.d.ts +13 -10
  18. package/dist/agent/executor.d.ts.map +1 -1
  19. package/dist/agent/executor.js +262 -98
  20. package/dist/agent/executor.js.map +1 -1
  21. package/dist/agent/planner.d.ts +14 -4
  22. package/dist/agent/planner.d.ts.map +1 -1
  23. package/dist/agent/planner.js +141 -48
  24. package/dist/agent/planner.js.map +1 -1
  25. package/dist/agent/types.d.ts +40 -0
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/cli/argParsing.d.ts +1 -1
  28. package/dist/cli/argParsing.d.ts.map +1 -1
  29. package/dist/cli/argParsing.js.map +1 -1
  30. package/dist/cli/commands/benchmark.d.ts +1 -10
  31. package/dist/cli/commands/benchmark.d.ts.map +1 -1
  32. package/dist/cli/commands/benchmark.js +2 -2
  33. package/dist/cli/commands/benchmark.js.map +1 -1
  34. package/dist/cli/commands/doctor.d.ts.map +1 -1
  35. package/dist/cli/commands/doctor.js +65 -1
  36. package/dist/cli/commands/doctor.js.map +1 -1
  37. package/dist/cli/commands/health.js +1 -1
  38. package/dist/cli/commands/health.js.map +1 -1
  39. package/dist/cli/commands/index.d.ts.map +1 -1
  40. package/dist/cli/commands/index.js +191 -17
  41. package/dist/cli/commands/index.js.map +1 -1
  42. package/dist/cli/commands/init.d.ts.map +1 -1
  43. package/dist/cli/commands/init.js +1 -0
  44. package/dist/cli/commands/init.js.map +1 -1
  45. package/dist/cli/commands/serve.d.ts.map +1 -1
  46. package/dist/cli/commands/serve.js +8 -0
  47. package/dist/cli/commands/serve.js.map +1 -1
  48. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  49. package/dist/cli/commands/tool-actions.js +829 -160
  50. package/dist/cli/commands/tool-actions.js.map +1 -1
  51. package/dist/cli/transport/http.d.ts +8 -2
  52. package/dist/cli/transport/http.d.ts.map +1 -1
  53. package/dist/cli/transport/http.js +78 -23
  54. package/dist/cli/transport/http.js.map +1 -1
  55. package/dist/cli/types.d.ts +2 -1
  56. package/dist/cli/types.d.ts.map +1 -1
  57. package/dist/code/hotpath.d.ts +7 -0
  58. package/dist/code/hotpath.d.ts.map +1 -1
  59. package/dist/code/hotpath.js +30 -9
  60. package/dist/code/hotpath.js.map +1 -1
  61. package/dist/code/skeleton.d.ts.map +1 -1
  62. package/dist/code/skeleton.js +39 -11
  63. package/dist/code/skeleton.js.map +1 -1
  64. package/dist/code-mode/action-catalog.d.ts +4 -0
  65. package/dist/code-mode/action-catalog.d.ts.map +1 -1
  66. package/dist/code-mode/action-catalog.js +98 -27
  67. package/dist/code-mode/action-catalog.js.map +1 -1
  68. package/dist/code-mode/etag-cache.d.ts +2 -0
  69. package/dist/code-mode/etag-cache.d.ts.map +1 -1
  70. package/dist/code-mode/etag-cache.js +55 -0
  71. package/dist/code-mode/etag-cache.js.map +1 -1
  72. package/dist/code-mode/index.d.ts.map +1 -1
  73. package/dist/code-mode/index.js +24 -6
  74. package/dist/code-mode/index.js.map +1 -1
  75. package/dist/code-mode/manual-generator.d.ts +8 -0
  76. package/dist/code-mode/manual-generator.d.ts.map +1 -1
  77. package/dist/code-mode/manual-generator.js +79 -9
  78. package/dist/code-mode/manual-generator.js.map +1 -1
  79. package/dist/code-mode/transforms.d.ts.map +1 -1
  80. package/dist/code-mode/transforms.js +27 -7
  81. package/dist/code-mode/transforms.js.map +1 -1
  82. package/dist/code-mode/workflow-budget.d.ts +14 -0
  83. package/dist/code-mode/workflow-budget.d.ts.map +1 -1
  84. package/dist/code-mode/workflow-budget.js +32 -4
  85. package/dist/code-mode/workflow-budget.js.map +1 -1
  86. package/dist/code-mode/workflow-executor.d.ts.map +1 -1
  87. package/dist/code-mode/workflow-executor.js +8 -0
  88. package/dist/code-mode/workflow-executor.js.map +1 -1
  89. package/dist/code-mode/workflow-parser.d.ts.map +1 -1
  90. package/dist/code-mode/workflow-parser.js +8 -6
  91. package/dist/code-mode/workflow-parser.js.map +1 -1
  92. package/dist/config/loadConfig.d.ts.map +1 -1
  93. package/dist/config/loadConfig.js +21 -0
  94. package/dist/config/loadConfig.js.map +1 -1
  95. package/dist/config/memory-config.d.ts +26 -0
  96. package/dist/config/memory-config.d.ts.map +1 -0
  97. package/dist/config/memory-config.js +74 -0
  98. package/dist/config/memory-config.js.map +1 -0
  99. package/dist/config/types.d.ts +123 -2
  100. package/dist/config/types.d.ts.map +1 -1
  101. package/dist/config/types.js +107 -10
  102. package/dist/config/types.js.map +1 -1
  103. package/dist/db/ladybug-algorithms.d.ts +98 -0
  104. package/dist/db/ladybug-algorithms.d.ts.map +1 -0
  105. package/dist/db/ladybug-algorithms.js +283 -0
  106. package/dist/db/ladybug-algorithms.js.map +1 -0
  107. package/dist/db/ladybug-clusters.d.ts +6 -0
  108. package/dist/db/ladybug-clusters.d.ts.map +1 -1
  109. package/dist/db/ladybug-clusters.js +24 -11
  110. package/dist/db/ladybug-clusters.js.map +1 -1
  111. package/dist/db/ladybug-edges.d.ts +15 -0
  112. package/dist/db/ladybug-edges.d.ts.map +1 -1
  113. package/dist/db/ladybug-edges.js +55 -2
  114. package/dist/db/ladybug-edges.js.map +1 -1
  115. package/dist/db/ladybug-feedback.d.ts.map +1 -1
  116. package/dist/db/ladybug-feedback.js +10 -2
  117. package/dist/db/ladybug-feedback.js.map +1 -1
  118. package/dist/db/ladybug-memory.d.ts +1 -0
  119. package/dist/db/ladybug-memory.d.ts.map +1 -1
  120. package/dist/db/ladybug-memory.js +7 -3
  121. package/dist/db/ladybug-memory.js.map +1 -1
  122. package/dist/db/ladybug-metrics.d.ts +12 -0
  123. package/dist/db/ladybug-metrics.d.ts.map +1 -1
  124. package/dist/db/ladybug-metrics.js +43 -0
  125. package/dist/db/ladybug-metrics.js.map +1 -1
  126. package/dist/db/ladybug-processes.d.ts +8 -0
  127. package/dist/db/ladybug-processes.d.ts.map +1 -1
  128. package/dist/db/ladybug-processes.js +35 -0
  129. package/dist/db/ladybug-processes.js.map +1 -1
  130. package/dist/db/ladybug-queries.d.ts +4 -0
  131. package/dist/db/ladybug-queries.d.ts.map +1 -1
  132. package/dist/db/ladybug-queries.js +7 -0
  133. package/dist/db/ladybug-queries.js.map +1 -1
  134. package/dist/db/ladybug-repos.d.ts +4 -0
  135. package/dist/db/ladybug-repos.d.ts.map +1 -1
  136. package/dist/db/ladybug-repos.js +3 -0
  137. package/dist/db/ladybug-repos.js.map +1 -1
  138. package/dist/db/ladybug-schema.d.ts +8 -1
  139. package/dist/db/ladybug-schema.d.ts.map +1 -1
  140. package/dist/db/ladybug-schema.js +103 -4
  141. package/dist/db/ladybug-schema.js.map +1 -1
  142. package/dist/db/ladybug-scip.d.ts +165 -0
  143. package/dist/db/ladybug-scip.d.ts.map +1 -0
  144. package/dist/db/ladybug-scip.js +451 -0
  145. package/dist/db/ladybug-scip.js.map +1 -0
  146. package/dist/db/ladybug-shadow-clusters.d.ts +62 -0
  147. package/dist/db/ladybug-shadow-clusters.d.ts.map +1 -0
  148. package/dist/db/ladybug-shadow-clusters.js +137 -0
  149. package/dist/db/ladybug-shadow-clusters.js.map +1 -0
  150. package/dist/db/ladybug-symbol-embeddings.d.ts +1 -1
  151. package/dist/db/ladybug-symbol-embeddings.d.ts.map +1 -1
  152. package/dist/db/ladybug-symbol-embeddings.js +12 -6
  153. package/dist/db/ladybug-symbol-embeddings.js.map +1 -1
  154. package/dist/db/ladybug-symbols.d.ts +18 -2
  155. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  156. package/dist/db/ladybug-symbols.js +166 -34
  157. package/dist/db/ladybug-symbols.js.map +1 -1
  158. package/dist/db/ladybug.d.ts +6 -0
  159. package/dist/db/ladybug.d.ts.map +1 -1
  160. package/dist/db/ladybug.js +84 -5
  161. package/dist/db/ladybug.js.map +1 -1
  162. package/dist/db/migrations/index.d.ts.map +1 -1
  163. package/dist/db/migrations/index.js +15 -1
  164. package/dist/db/migrations/index.js.map +1 -1
  165. package/dist/db/migrations/m010-add-jina-code-embedding.d.ts +5 -0
  166. package/dist/db/migrations/m010-add-jina-code-embedding.d.ts.map +1 -0
  167. package/dist/db/migrations/m010-add-jina-code-embedding.js +30 -0
  168. package/dist/db/migrations/m010-add-jina-code-embedding.js.map +1 -0
  169. package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.d.ts +5 -0
  170. package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.d.ts.map +1 -0
  171. package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.js +65 -0
  172. package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.js.map +1 -0
  173. package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.d.ts +5 -0
  174. package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.d.ts.map +1 -0
  175. package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.js +45 -0
  176. package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.js.map +1 -0
  177. package/dist/db/migrations/m013-semantic-vector-array-storage.d.ts +20 -0
  178. package/dist/db/migrations/m013-semantic-vector-array-storage.d.ts.map +1 -0
  179. package/dist/db/migrations/m013-semantic-vector-array-storage.js +68 -0
  180. package/dist/db/migrations/m013-semantic-vector-array-storage.js.map +1 -0
  181. package/dist/db/schema.d.ts +8 -0
  182. package/dist/db/schema.d.ts.map +1 -1
  183. package/dist/delta/blastRadius.d.ts +33 -0
  184. package/dist/delta/blastRadius.d.ts.map +1 -1
  185. package/dist/delta/blastRadius.js +94 -0
  186. package/dist/delta/blastRadius.js.map +1 -1
  187. package/dist/domain/errors.d.ts +16 -0
  188. package/dist/domain/errors.d.ts.map +1 -1
  189. package/dist/domain/errors.js +28 -0
  190. package/dist/domain/errors.js.map +1 -1
  191. package/dist/domain/repositories/symbol-repository.d.ts +13 -0
  192. package/dist/domain/repositories/symbol-repository.d.ts.map +1 -1
  193. package/dist/domain/repositories/symbol-repository.js.map +1 -1
  194. package/dist/domain/types.d.ts +20 -1
  195. package/dist/domain/types.d.ts.map +1 -1
  196. package/dist/domain/types.js +13 -2
  197. package/dist/domain/types.js.map +1 -1
  198. package/dist/gateway/descriptions.d.ts +9 -0
  199. package/dist/gateway/descriptions.d.ts.map +1 -1
  200. package/dist/gateway/descriptions.js +20 -3
  201. package/dist/gateway/descriptions.js.map +1 -1
  202. package/dist/gateway/index.js +2 -2
  203. package/dist/gateway/index.js.map +1 -1
  204. package/dist/gateway/router.d.ts +0 -8
  205. package/dist/gateway/router.d.ts.map +1 -1
  206. package/dist/gateway/router.js +32 -3
  207. package/dist/gateway/router.js.map +1 -1
  208. package/dist/gateway/schemas.d.ts +13 -4
  209. package/dist/gateway/schemas.d.ts.map +1 -1
  210. package/dist/gateway/schemas.js +20 -0
  211. package/dist/gateway/schemas.js.map +1 -1
  212. package/dist/gateway/thin-schemas.d.ts.map +1 -1
  213. package/dist/gateway/thin-schemas.js +3 -1
  214. package/dist/gateway/thin-schemas.js.map +1 -1
  215. package/dist/graph/buildGraph.d.ts +9 -0
  216. package/dist/graph/buildGraph.d.ts.map +1 -1
  217. package/dist/graph/buildGraph.js +9 -30
  218. package/dist/graph/buildGraph.js.map +1 -1
  219. package/dist/graph/cluster.d.ts.map +1 -1
  220. package/dist/graph/cluster.js +13 -0
  221. package/dist/graph/cluster.js.map +1 -1
  222. package/dist/graph/graphSnapshotCache.d.ts.map +1 -1
  223. package/dist/graph/graphSnapshotCache.js +13 -0
  224. package/dist/graph/graphSnapshotCache.js.map +1 -1
  225. package/dist/graph/metrics.d.ts +20 -6
  226. package/dist/graph/metrics.d.ts.map +1 -1
  227. package/dist/graph/metrics.js +107 -39
  228. package/dist/graph/metrics.js.map +1 -1
  229. package/dist/graph/overview.d.ts.map +1 -1
  230. package/dist/graph/overview.js +109 -11
  231. package/dist/graph/overview.js.map +1 -1
  232. package/dist/graph/prefetch.d.ts.map +1 -1
  233. package/dist/graph/prefetch.js +7 -3
  234. package/dist/graph/prefetch.js.map +1 -1
  235. package/dist/graph/score.d.ts +76 -0
  236. package/dist/graph/score.d.ts.map +1 -1
  237. package/dist/graph/score.js +98 -0
  238. package/dist/graph/score.js.map +1 -1
  239. package/dist/graph/slice/beam-score-worker.d.ts +2 -1
  240. package/dist/graph/slice/beam-score-worker.d.ts.map +1 -1
  241. package/dist/graph/slice/beam-score-worker.js +3 -149
  242. package/dist/graph/slice/beam-score-worker.js.map +1 -1
  243. package/dist/graph/slice/beam-search-engine.d.ts +2 -2
  244. package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
  245. package/dist/graph/slice/beam-search-engine.js +57 -14
  246. package/dist/graph/slice/beam-search-engine.js.map +1 -1
  247. package/dist/graph/slice/result.d.ts +3 -0
  248. package/dist/graph/slice/result.d.ts.map +1 -1
  249. package/dist/graph/slice/result.js +4 -0
  250. package/dist/graph/slice/result.js.map +1 -1
  251. package/dist/graph/slice.d.ts.map +1 -1
  252. package/dist/graph/slice.js +1 -0
  253. package/dist/graph/slice.js.map +1 -1
  254. package/dist/indexer/cluster-orchestrator.d.ts +4 -0
  255. package/dist/indexer/cluster-orchestrator.d.ts.map +1 -1
  256. package/dist/indexer/cluster-orchestrator.js +380 -87
  257. package/dist/indexer/cluster-orchestrator.js.map +1 -1
  258. package/dist/indexer/edge-builder/cleanup.js +19 -16
  259. package/dist/indexer/edge-builder/cleanup.js.map +1 -1
  260. package/dist/indexer/edge-builder/telemetry.d.ts +44 -0
  261. package/dist/indexer/edge-builder/telemetry.d.ts.map +1 -1
  262. package/dist/indexer/edge-builder/telemetry.js +130 -0
  263. package/dist/indexer/edge-builder/telemetry.js.map +1 -1
  264. package/dist/indexer/edge-builder/unresolved-imports.d.ts +8 -2
  265. package/dist/indexer/edge-builder/unresolved-imports.d.ts.map +1 -1
  266. package/dist/indexer/edge-builder/unresolved-imports.js +100 -55
  267. package/dist/indexer/edge-builder/unresolved-imports.js.map +1 -1
  268. package/dist/indexer/embeddings.d.ts.map +1 -1
  269. package/dist/indexer/embeddings.js +16 -4
  270. package/dist/indexer/embeddings.js.map +1 -1
  271. package/dist/indexer/indexer-init.d.ts +19 -1
  272. package/dist/indexer/indexer-init.d.ts.map +1 -1
  273. package/dist/indexer/indexer-init.js +10 -15
  274. package/dist/indexer/indexer-init.js.map +1 -1
  275. package/dist/indexer/indexer-memory.d.ts.map +1 -1
  276. package/dist/indexer/indexer-memory.js +8 -0
  277. package/dist/indexer/indexer-memory.js.map +1 -1
  278. package/dist/indexer/indexer-pass1.d.ts.map +1 -1
  279. package/dist/indexer/indexer-pass1.js +27 -0
  280. package/dist/indexer/indexer-pass1.js.map +1 -1
  281. package/dist/indexer/indexer-pass2.d.ts +3 -0
  282. package/dist/indexer/indexer-pass2.d.ts.map +1 -1
  283. package/dist/indexer/indexer-pass2.js +7 -5
  284. package/dist/indexer/indexer-pass2.js.map +1 -1
  285. package/dist/indexer/indexer.d.ts +42 -1
  286. package/dist/indexer/indexer.d.ts.map +1 -1
  287. package/dist/indexer/indexer.js +291 -78
  288. package/dist/indexer/indexer.js.map +1 -1
  289. package/dist/indexer/metrics-updater.d.ts +7 -2
  290. package/dist/indexer/metrics-updater.d.ts.map +1 -1
  291. package/dist/indexer/metrics-updater.js +81 -33
  292. package/dist/indexer/metrics-updater.js.map +1 -1
  293. package/dist/indexer/model-downloader.d.ts.map +1 -1
  294. package/dist/indexer/model-downloader.js +40 -6
  295. package/dist/indexer/model-downloader.js.map +1 -1
  296. package/dist/indexer/model-registry.d.ts +16 -0
  297. package/dist/indexer/model-registry.d.ts.map +1 -1
  298. package/dist/indexer/model-registry.js +42 -4
  299. package/dist/indexer/model-registry.js.map +1 -1
  300. package/dist/indexer/parser/early-exit.d.ts.map +1 -1
  301. package/dist/indexer/parser/early-exit.js +24 -3
  302. package/dist/indexer/parser/early-exit.js.map +1 -1
  303. package/dist/indexer/parser/helpers.d.ts +3 -8
  304. package/dist/indexer/parser/helpers.d.ts.map +1 -1
  305. package/dist/indexer/parser/helpers.js +2 -1
  306. package/dist/indexer/parser/helpers.js.map +1 -1
  307. package/dist/indexer/parser/parse-and-extract.d.ts.map +1 -1
  308. package/dist/indexer/parser/parse-and-extract.js +8 -1
  309. package/dist/indexer/parser/parse-and-extract.js.map +1 -1
  310. package/dist/indexer/parser/process-file.d.ts.map +1 -1
  311. package/dist/indexer/parser/process-file.js +12 -0
  312. package/dist/indexer/parser/process-file.js.map +1 -1
  313. package/dist/indexer/parser/rust-process-file.d.ts +2 -8
  314. package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
  315. package/dist/indexer/parser/rust-process-file.js +47 -1
  316. package/dist/indexer/parser/rust-process-file.js.map +1 -1
  317. package/dist/indexer/parser/types.d.ts +2 -0
  318. package/dist/indexer/parser/types.d.ts.map +1 -1
  319. package/dist/indexer/pass2/barrel-walker.d.ts +77 -0
  320. package/dist/indexer/pass2/barrel-walker.d.ts.map +1 -0
  321. package/dist/indexer/pass2/barrel-walker.js +112 -0
  322. package/dist/indexer/pass2/barrel-walker.js.map +1 -0
  323. package/dist/indexer/pass2/confidence.d.ts +74 -0
  324. package/dist/indexer/pass2/confidence.d.ts.map +1 -0
  325. package/dist/indexer/pass2/confidence.js +173 -0
  326. package/dist/indexer/pass2/confidence.js.map +1 -0
  327. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts.map +1 -1
  328. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js +13 -6
  329. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js.map +1 -1
  330. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts.map +1 -1
  331. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js +22 -12
  332. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js.map +1 -1
  333. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.d.ts.map +1 -1
  334. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js +31 -13
  335. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js.map +1 -1
  336. package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
  337. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +23 -9
  338. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
  339. package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts +64 -0
  340. package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts.map +1 -1
  341. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js +276 -28
  342. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js.map +1 -1
  343. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.d.ts.map +1 -1
  344. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js +27 -9
  345. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js.map +1 -1
  346. package/dist/indexer/pass2/resolvers/php-pass2-resolver.d.ts.map +1 -1
  347. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js +33 -15
  348. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js.map +1 -1
  349. package/dist/indexer/pass2/resolvers/python-pass2-helpers.d.ts +67 -0
  350. package/dist/indexer/pass2/resolvers/python-pass2-helpers.d.ts.map +1 -0
  351. package/dist/indexer/pass2/resolvers/python-pass2-helpers.js +180 -0
  352. package/dist/indexer/pass2/resolvers/python-pass2-helpers.js.map +1 -0
  353. package/dist/indexer/pass2/resolvers/python-pass2-resolver.d.ts.map +1 -1
  354. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js +256 -8
  355. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js.map +1 -1
  356. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts +93 -1
  357. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
  358. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js +470 -15
  359. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js.map +1 -1
  360. package/dist/indexer/pass2/resolvers/shell-pass2-helpers.d.ts +32 -0
  361. package/dist/indexer/pass2/resolvers/shell-pass2-helpers.d.ts.map +1 -0
  362. package/dist/indexer/pass2/resolvers/shell-pass2-helpers.js +71 -0
  363. package/dist/indexer/pass2/resolvers/shell-pass2-helpers.js.map +1 -0
  364. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.d.ts.map +1 -1
  365. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js +19 -5
  366. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js.map +1 -1
  367. package/dist/indexer/pass2/scope-walker.d.ts +70 -0
  368. package/dist/indexer/pass2/scope-walker.d.ts.map +1 -0
  369. package/dist/indexer/pass2/scope-walker.js +130 -0
  370. package/dist/indexer/pass2/scope-walker.js.map +1 -0
  371. package/dist/indexer/rustIndexer.d.ts.map +1 -1
  372. package/dist/indexer/rustIndexer.js +23 -4
  373. package/dist/indexer/rustIndexer.js.map +1 -1
  374. package/dist/indexer/scanner.d.ts +1 -0
  375. package/dist/indexer/scanner.d.ts.map +1 -1
  376. package/dist/indexer/scanner.js +17 -8
  377. package/dist/indexer/scanner.js.map +1 -1
  378. package/dist/indexer/summaries.d.ts.map +1 -1
  379. package/dist/indexer/summaries.js +614 -99
  380. package/dist/indexer/summaries.js.map +1 -1
  381. package/dist/indexer/symbol-map-cache.d.ts +29 -0
  382. package/dist/indexer/symbol-map-cache.d.ts.map +1 -0
  383. package/dist/indexer/symbol-map-cache.js +152 -0
  384. package/dist/indexer/symbol-map-cache.js.map +1 -0
  385. package/dist/indexer/ts/tsParser.d.ts +6 -3
  386. package/dist/indexer/ts/tsParser.d.ts.map +1 -1
  387. package/dist/indexer/ts/tsParser.js +149 -27
  388. package/dist/indexer/ts/tsParser.js.map +1 -1
  389. package/dist/indexer/watcher.d.ts.map +1 -1
  390. package/dist/indexer/watcher.js +12 -1
  391. package/dist/indexer/watcher.js.map +1 -1
  392. package/dist/live-index/checkpoint-service.d.ts +15 -0
  393. package/dist/live-index/checkpoint-service.d.ts.map +1 -1
  394. package/dist/live-index/checkpoint-service.js +74 -0
  395. package/dist/live-index/checkpoint-service.js.map +1 -1
  396. package/dist/live-index/coordinator.d.ts.map +1 -1
  397. package/dist/live-index/coordinator.js +29 -1
  398. package/dist/live-index/coordinator.js.map +1 -1
  399. package/dist/live-index/file-patcher.d.ts +3 -0
  400. package/dist/live-index/file-patcher.d.ts.map +1 -1
  401. package/dist/live-index/file-patcher.js +86 -15
  402. package/dist/live-index/file-patcher.js.map +1 -1
  403. package/dist/live-index/overlay-reader.d.ts +1 -1
  404. package/dist/live-index/overlay-reader.d.ts.map +1 -1
  405. package/dist/live-index/overlay-reader.js +2 -2
  406. package/dist/live-index/overlay-reader.js.map +1 -1
  407. package/dist/live-index/symbol-diff.d.ts +74 -0
  408. package/dist/live-index/symbol-diff.d.ts.map +1 -0
  409. package/dist/live-index/symbol-diff.js +190 -0
  410. package/dist/live-index/symbol-diff.js.map +1 -0
  411. package/dist/mcp/context-response-projection.d.ts +18 -0
  412. package/dist/mcp/context-response-projection.d.ts.map +1 -0
  413. package/dist/mcp/context-response-projection.js +56 -0
  414. package/dist/mcp/context-response-projection.js.map +1 -0
  415. package/dist/mcp/hooks/memory-hint.d.ts.map +1 -1
  416. package/dist/mcp/hooks/memory-hint.js +16 -4
  417. package/dist/mcp/hooks/memory-hint.js.map +1 -1
  418. package/dist/mcp/savings-meter.d.ts +7 -0
  419. package/dist/mcp/savings-meter.d.ts.map +1 -1
  420. package/dist/mcp/savings-meter.js +34 -7
  421. package/dist/mcp/savings-meter.js.map +1 -1
  422. package/dist/mcp/telemetry.d.ts +16 -0
  423. package/dist/mcp/telemetry.d.ts.map +1 -1
  424. package/dist/mcp/telemetry.js.map +1 -1
  425. package/dist/mcp/token-usage.d.ts.map +1 -1
  426. package/dist/mcp/token-usage.js +25 -5
  427. package/dist/mcp/token-usage.js.map +1 -1
  428. package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
  429. package/dist/mcp/tool-call-formatter.js +13 -1
  430. package/dist/mcp/tool-call-formatter.js.map +1 -1
  431. package/dist/mcp/tools/agent-feedback.d.ts.map +1 -1
  432. package/dist/mcp/tools/agent-feedback.js +1 -2
  433. package/dist/mcp/tools/agent-feedback.js.map +1 -1
  434. package/dist/mcp/tools/buffer.d.ts.map +1 -1
  435. package/dist/mcp/tools/buffer.js +5 -1
  436. package/dist/mcp/tools/buffer.js.map +1 -1
  437. package/dist/mcp/tools/code.d.ts.map +1 -1
  438. package/dist/mcp/tools/code.js +27 -6
  439. package/dist/mcp/tools/code.js.map +1 -1
  440. package/dist/mcp/tools/context.d.ts.map +1 -1
  441. package/dist/mcp/tools/context.js +78 -1
  442. package/dist/mcp/tools/context.js.map +1 -1
  443. package/dist/mcp/tools/delta.d.ts.map +1 -1
  444. package/dist/mcp/tools/delta.js +76 -6
  445. package/dist/mcp/tools/delta.js.map +1 -1
  446. package/dist/mcp/tools/file-read.d.ts.map +1 -1
  447. package/dist/mcp/tools/file-read.js +44 -10
  448. package/dist/mcp/tools/file-read.js.map +1 -1
  449. package/dist/mcp/tools/info.d.ts +4 -2
  450. package/dist/mcp/tools/info.d.ts.map +1 -1
  451. package/dist/mcp/tools/info.js +30 -3
  452. package/dist/mcp/tools/info.js.map +1 -1
  453. package/dist/mcp/tools/memory.d.ts.map +1 -1
  454. package/dist/mcp/tools/memory.js +85 -51
  455. package/dist/mcp/tools/memory.js.map +1 -1
  456. package/dist/mcp/tools/policy.d.ts.map +1 -1
  457. package/dist/mcp/tools/policy.js +19 -15
  458. package/dist/mcp/tools/policy.js.map +1 -1
  459. package/dist/mcp/tools/prRisk.d.ts.map +1 -1
  460. package/dist/mcp/tools/prRisk.js +184 -26
  461. package/dist/mcp/tools/prRisk.js.map +1 -1
  462. package/dist/mcp/tools/repo.d.ts.map +1 -1
  463. package/dist/mcp/tools/repo.js +128 -36
  464. package/dist/mcp/tools/repo.js.map +1 -1
  465. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  466. package/dist/mcp/tools/runtime.js +50 -12
  467. package/dist/mcp/tools/runtime.js.map +1 -1
  468. package/dist/mcp/tools/scip.d.ts +10 -0
  469. package/dist/mcp/tools/scip.d.ts.map +1 -0
  470. package/dist/mcp/tools/scip.js +46 -0
  471. package/dist/mcp/tools/scip.js.map +1 -0
  472. package/dist/mcp/tools/slice-wire-format.d.ts +7 -5
  473. package/dist/mcp/tools/slice-wire-format.d.ts.map +1 -1
  474. package/dist/mcp/tools/slice-wire-format.js +14 -6
  475. package/dist/mcp/tools/slice-wire-format.js.map +1 -1
  476. package/dist/mcp/tools/slice.d.ts.map +1 -1
  477. package/dist/mcp/tools/slice.js +44 -10
  478. package/dist/mcp/tools/slice.js.map +1 -1
  479. package/dist/mcp/tools/summary.d.ts.map +1 -1
  480. package/dist/mcp/tools/summary.js +5 -2
  481. package/dist/mcp/tools/summary.js.map +1 -1
  482. package/dist/mcp/tools/symbol.d.ts +7 -21
  483. package/dist/mcp/tools/symbol.d.ts.map +1 -1
  484. package/dist/mcp/tools/symbol.js +160 -162
  485. package/dist/mcp/tools/symbol.js.map +1 -1
  486. package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -1
  487. package/dist/mcp/tools/tool-descriptors.js +17 -3
  488. package/dist/mcp/tools/tool-descriptors.js.map +1 -1
  489. package/dist/mcp/tools.d.ts +152 -43
  490. package/dist/mcp/tools.d.ts.map +1 -1
  491. package/dist/mcp/tools.js +165 -19
  492. package/dist/mcp/tools.js.map +1 -1
  493. package/dist/memory/surface.d.ts +7 -0
  494. package/dist/memory/surface.d.ts.map +1 -1
  495. package/dist/memory/surface.js +43 -1
  496. package/dist/memory/surface.js.map +1 -1
  497. package/dist/retrieval/fallback.d.ts.map +1 -1
  498. package/dist/retrieval/fallback.js +35 -1
  499. package/dist/retrieval/fallback.js.map +1 -1
  500. package/dist/retrieval/feedback-boost.d.ts +3 -1
  501. package/dist/retrieval/feedback-boost.d.ts.map +1 -1
  502. package/dist/retrieval/feedback-boost.js +4 -2
  503. package/dist/retrieval/feedback-boost.js.map +1 -1
  504. package/dist/retrieval/index-lifecycle.d.ts +5 -15
  505. package/dist/retrieval/index-lifecycle.d.ts.map +1 -1
  506. package/dist/retrieval/index-lifecycle.js +45 -21
  507. package/dist/retrieval/index-lifecycle.js.map +1 -1
  508. package/dist/retrieval/model-mapping.d.ts +4 -1
  509. package/dist/retrieval/model-mapping.d.ts.map +1 -1
  510. package/dist/retrieval/model-mapping.js +7 -2
  511. package/dist/retrieval/model-mapping.js.map +1 -1
  512. package/dist/retrieval/orchestrator.d.ts.map +1 -1
  513. package/dist/retrieval/orchestrator.js +86 -28
  514. package/dist/retrieval/orchestrator.js.map +1 -1
  515. package/dist/retrieval/types.d.ts +11 -1
  516. package/dist/retrieval/types.d.ts.map +1 -1
  517. package/dist/runtime/executor.d.ts.map +1 -1
  518. package/dist/runtime/executor.js +96 -110
  519. package/dist/runtime/executor.js.map +1 -1
  520. package/dist/runtime/runtimes.d.ts +13 -0
  521. package/dist/runtime/runtimes.d.ts.map +1 -1
  522. package/dist/runtime/runtimes.js +73 -18
  523. package/dist/runtime/runtimes.js.map +1 -1
  524. package/dist/scip/decoder-factory.d.ts +16 -0
  525. package/dist/scip/decoder-factory.d.ts.map +1 -0
  526. package/dist/scip/decoder-factory.js +38 -0
  527. package/dist/scip/decoder-factory.js.map +1 -0
  528. package/dist/scip/decoder-rust.d.ts +29 -0
  529. package/dist/scip/decoder-rust.d.ts.map +1 -0
  530. package/dist/scip/decoder-rust.js +189 -0
  531. package/dist/scip/decoder-rust.js.map +1 -0
  532. package/dist/scip/decoder-ts.d.ts +27 -0
  533. package/dist/scip/decoder-ts.d.ts.map +1 -0
  534. package/dist/scip/decoder-ts.js +184 -0
  535. package/dist/scip/decoder-ts.js.map +1 -0
  536. package/dist/scip/edge-builder.d.ts +84 -0
  537. package/dist/scip/edge-builder.d.ts.map +1 -0
  538. package/dist/scip/edge-builder.js +177 -0
  539. package/dist/scip/edge-builder.js.map +1 -0
  540. package/dist/scip/external-symbols.d.ts +38 -0
  541. package/dist/scip/external-symbols.d.ts.map +1 -0
  542. package/dist/scip/external-symbols.js +105 -0
  543. package/dist/scip/external-symbols.js.map +1 -0
  544. package/dist/scip/ingestion.d.ts +63 -0
  545. package/dist/scip/ingestion.d.ts.map +1 -0
  546. package/dist/scip/ingestion.js +560 -0
  547. package/dist/scip/ingestion.js.map +1 -0
  548. package/dist/scip/kind-mapping.d.ts +119 -0
  549. package/dist/scip/kind-mapping.d.ts.map +1 -0
  550. package/dist/scip/kind-mapping.js +405 -0
  551. package/dist/scip/kind-mapping.js.map +1 -0
  552. package/dist/scip/proto/scip_pb.d.ts +420 -0
  553. package/dist/scip/proto/scip_pb.d.ts.map +1 -0
  554. package/dist/scip/proto/scip_pb.js +779 -0
  555. package/dist/scip/proto/scip_pb.js.map +1 -0
  556. package/dist/scip/scip-io-runner.d.ts +152 -0
  557. package/dist/scip/scip-io-runner.d.ts.map +1 -0
  558. package/dist/scip/scip-io-runner.js +870 -0
  559. package/dist/scip/scip-io-runner.js.map +1 -0
  560. package/dist/scip/symbol-matcher.d.ts +65 -0
  561. package/dist/scip/symbol-matcher.d.ts.map +1 -0
  562. package/dist/scip/symbol-matcher.js +198 -0
  563. package/dist/scip/symbol-matcher.js.map +1 -0
  564. package/dist/scip/types.d.ts +115 -0
  565. package/dist/scip/types.d.ts.map +1 -0
  566. package/dist/scip/types.js +2 -0
  567. package/dist/scip/types.js.map +1 -0
  568. package/dist/server.d.ts.map +1 -1
  569. package/dist/server.js +40 -14
  570. package/dist/server.js.map +1 -1
  571. package/dist/services/card-builder.d.ts +7 -0
  572. package/dist/services/card-builder.d.ts.map +1 -1
  573. package/dist/services/card-builder.js +54 -7
  574. package/dist/services/card-builder.js.map +1 -1
  575. package/dist/services/health.d.ts +1 -1
  576. package/dist/services/health.d.ts.map +1 -1
  577. package/dist/services/health.js +1 -1
  578. package/dist/services/health.js.map +1 -1
  579. package/dist/services/summary.d.ts.map +1 -1
  580. package/dist/services/summary.js +71 -13
  581. package/dist/services/summary.js.map +1 -1
  582. package/dist/ts/mapping.d.ts +2 -13
  583. package/dist/ts/mapping.d.ts.map +1 -1
  584. package/dist/ts/mapping.js.map +1 -1
  585. package/dist/ui/graph.d.ts +2 -0
  586. package/dist/ui/graph.d.ts.map +1 -0
  587. package/dist/ui/graph.js +227 -0
  588. package/dist/ui/graph.js.map +1 -0
  589. package/dist/util/conditional-response.d.ts +16 -0
  590. package/dist/util/conditional-response.d.ts.map +1 -0
  591. package/dist/util/conditional-response.js +20 -0
  592. package/dist/util/conditional-response.js.map +1 -0
  593. package/dist/util/hashing.d.ts +2 -0
  594. package/dist/util/hashing.d.ts.map +1 -1
  595. package/dist/util/hashing.js +8 -4
  596. package/dist/util/hashing.js.map +1 -1
  597. package/dist/util/resolve-symbol-ref.d.ts +1 -0
  598. package/dist/util/resolve-symbol-ref.d.ts.map +1 -1
  599. package/dist/util/resolve-symbol-ref.js +15 -2
  600. package/dist/util/resolve-symbol-ref.js.map +1 -1
  601. package/dist/util/symbol-relevance.d.ts +30 -0
  602. package/dist/util/symbol-relevance.d.ts.map +1 -0
  603. package/dist/util/symbol-relevance.js +131 -0
  604. package/dist/util/symbol-relevance.js.map +1 -0
  605. package/dist/util/type-name.d.ts +12 -0
  606. package/dist/util/type-name.d.ts.map +1 -0
  607. package/dist/util/type-name.js +37 -0
  608. package/dist/util/type-name.js.map +1 -0
  609. package/package.json +8 -5
  610. package/dist/agent/index.d.ts +0 -9
  611. package/dist/agent/index.d.ts.map +0 -1
  612. package/dist/agent/index.js +0 -8
  613. package/dist/agent/index.js.map +0 -1
  614. package/dist/indexer/pass2/context.d.ts +0 -3
  615. package/dist/indexer/pass2/context.d.ts.map +0 -1
  616. package/dist/indexer/pass2/context.js +0 -4
  617. package/dist/indexer/pass2/context.js.map +0 -1
  618. package/dist/indexer/treesitter/types.d.ts +0 -19
  619. package/dist/indexer/treesitter/types.d.ts.map +0 -1
  620. package/dist/indexer/treesitter/types.js +0 -7
  621. package/dist/indexer/treesitter/types.js.map +0 -1
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ### **Cards-first code context for AI coding agents**
9
9
 
10
- *Stop feeding entire files into the context window.<br/>Start giving agents exactly the code intelligence they need.*
10
+ _Stop feeding entire files into the context window.<br/>Start giving agents exactly the code intelligence they need._
11
11
 
12
12
  <br/>
13
13
 
@@ -19,10 +19,6 @@
19
19
 
20
20
  ---
21
21
 
22
-
23
-
24
-
25
-
26
22
  <br/>
27
23
 
28
24
  ## What's the problem?
@@ -46,7 +42,7 @@ flowchart TD
46
42
  Codebase["Your Codebase"]
47
43
  Indexer["Indexer<br/>12 languages<br/>Rust native or Tree-sitter fallback"]
48
44
  Graph["LadybugDB graph<br/>symbols, edges, metrics, versions"]
49
- MCP["34 flat MCP tools<br/>plus optional gateway and code-mode surfaces"]
45
+ MCP["38 unique MCP tool surfaces<br/>flat, gateway, and code-mode"]
50
46
  CLI["13 CLI commands"]
51
47
  HTTP["HTTP API and graph UI"]
52
48
  Agent["AI coding agent<br/>Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Gemini"]
@@ -109,13 +105,14 @@ flowchart TB
109
105
 
110
106
  > **Most questions are answered at Rungs 1-2** without ever reading raw code. That's where the token savings come from.
111
107
 
112
- | Scenario | Reading the file | Using the Ladder | Savings |
113
- |:---------|:----------------:|:----------------:|:-------:|
114
- | "What does `parseConfig` accept?" | ~2,000 tok | ~100 tok | **20x** |
115
- | "Show me the shape of `AuthService`" | ~4,000 tok | ~300 tok | **13x** |
116
- | "Where is `this.cache` set?" | ~2,000 tok | ~500 tok | **4x** |
108
+ | Scenario | Reading the file | Using the Ladder | Savings |
109
+ | :----------------------------------- | :--------------: | :--------------: | :-----: |
110
+ | "What does `parseConfig` accept?" | ~2,000 tok | ~100 tok | **20x** |
111
+ | "Show me the shape of `AuthService`" | ~4,000 tok | ~300 tok | **13x** |
112
+ | "Where is `this.cache` set?" | ~2,000 tok | ~500 tok | **4x** |
117
113
 
118
114
  **Why it matters:**
115
+
119
116
  - **4–20x token savings** on typical code understanding queries
120
117
  - Most questions answered at Rungs 1–2 without ever reading raw code
121
118
  - Controlled escalation prevents agents from over-consuming context
@@ -133,7 +130,7 @@ flowchart TB
133
130
 
134
131
  ### Symbol Cards — The Atoms of Understanding
135
132
 
136
- Every function, class, interface, type, and variable becomes a **Symbol Card**: a compact metadata record (~100 tokens) containing everything an agent needs to *understand* a symbol without reading its code.
133
+ Every function, class, interface, type, and variable becomes a **Symbol Card**: a compact metadata record (~100 tokens) containing everything an agent needs to _understand_ a symbol without reading its code.
137
134
 
138
135
  ```mermaid
139
136
  flowchart TB
@@ -155,10 +152,12 @@ flowchart TB
155
152
  Cards include **confidence-scored call resolution** (the pass-2 resolver traces imports, aliases, barrel re-exports, and tagged templates to produce accurate dependency edges), **community detection** (cluster membership), and **call-chain tracing** (process participation with entry/intermediate/exit roles).
156
153
 
157
154
  **Why it matters:**
155
+
158
156
  - **~100 tokens per symbol** vs. ~2,000 tokens to read the full file
159
157
  - Confidence-scored dependency edges trace real call relationships across files
160
158
  - Community detection and call-chain tracing reveal architectural structure
161
159
  - ETag-based conditional requests avoid re-fetching unchanged symbols
160
+ - Workflow ETag caching now seeds `slice.build` with `knownCardEtags` so repeated slice builds can skip unchanged cards
162
161
 
163
162
  [Indexing & Language Support Deep Dive →](./docs/feature-deep-dives/indexing-languages.md)
164
163
 
@@ -166,7 +165,7 @@ Cards include **confidence-scored call resolution** (the pass-2 resolver traces
166
165
 
167
166
  ### Graph Slicing — The Right Context for Every Task
168
167
 
169
- Instead of reading files in the same directory, SDL-MCP follows the *dependency graph*. Starting from symbols relevant to your task, it traverses weighted edges (call: 1.0, config: 0.8, import: 0.6), scores each symbol by relevance, and returns the N most important within a token budget.
168
+ Instead of reading files in the same directory, SDL-MCP follows the _dependency graph_. Starting from symbols relevant to your task, it traverses weighted edges (call: 1.0, config: 0.8, import: 0.6), scores each symbol by relevance, and returns the N most important within a token budget.
170
169
 
171
170
  ```mermaid
172
171
  flowchart TD
@@ -183,6 +182,7 @@ flowchart TD
183
182
  Slices have handles, leases, refresh (delta-only updates), and spillover (paged overflow). You can also skip the symbol search entirely — pass a `taskText` string and SDL-MCP auto-discovers the relevant entry symbols.
184
183
 
185
184
  **Why it matters:**
185
+
186
186
  - Follows the **dependency graph**, not directory boundaries, for cross-cutting context
187
187
  - Weighted edge scoring (call > config > import) prioritizes the most relevant symbols
188
188
  - Token-budgeted: returns only what fits within your budget (~800 tokens vs. ~16,000 for raw files)
@@ -194,7 +194,7 @@ Slices have handles, leases, refresh (delta-only updates), and spillover (paged
194
194
 
195
195
  ### Delta Packs & Blast Radius — Semantic Change Intelligence
196
196
 
197
- `git diff` tells you what lines changed. SDL-MCP tells you what that change *means* and who's affected.
197
+ `git diff` tells you what lines changed. SDL-MCP tells you what that change _means_ and who's affected.
198
198
 
199
199
  ```mermaid
200
200
  flowchart TD
@@ -223,6 +223,7 @@ flowchart TD
223
223
  **PR risk analysis** (`sdl.pr.risk.analyze`) wraps this into a scored assessment with findings, evidence, and test recommendations. **Fan-in trend analysis** detects "amplifier" symbols whose growing dependency count means changes ripple further over time.
224
224
 
225
225
  **Why it matters:**
226
+
226
227
  - Semantic diffs show what a change **means**, not just what lines moved
227
228
  - Ranked blast radius identifies which dependent symbols are most at risk
228
229
  - Fan-in trend analysis detects "amplifier" symbols whose changes ripple further over time
@@ -234,7 +235,7 @@ flowchart TD
234
235
 
235
236
  ### Live Indexing — Real-Time Code Intelligence
236
237
 
237
- SDL-MCP doesn't wait for you to save. As you type in your editor, buffer updates are pushed to an in-memory overlay store, parsed in the background, and merged with the durable database. Search, cards, and slices reflect your *current* code, not your last save.
238
+ SDL-MCP doesn't wait for you to save. As you type in your editor, buffer updates are pushed to an in-memory overlay store, parsed in the background, and merged with the durable database. Search, cards, and slices reflect your _current_ code, not your last save.
238
239
 
239
240
  ```mermaid
240
241
  flowchart LR
@@ -246,6 +247,7 @@ flowchart LR
246
247
  ```
247
248
 
248
249
  **Why it matters:**
250
+
249
251
  - Search, cards, and slices reflect **unsaved editor changes** in real time
250
252
  - No manual re-index needed during active development
251
253
  - Background AST parsing with in-memory overlay keeps queries fast
@@ -257,15 +259,17 @@ flowchart LR
257
259
  ### Governance & Policy — Controlled Access
258
260
 
259
261
  Raw code access (Rung 4) is **policy-gated**. Agents must provide:
262
+
260
263
  - A **reason** explaining why they need raw code
261
264
  - **Identifiers** they expect to find in the code
262
265
  - An **expected line count** within configured limits
263
266
 
264
267
  Requests that don't meet policy are denied with actionable guidance ("try `getHotPath` with these identifiers instead"). Every access is audit-logged.
265
268
 
266
- The sandboxed runtime execution tool (`sdl.runtime.execute`) has its own governance layer: disabled by default, executable allowlisting, CWD jailing, environment scrubbing, concurrency limits, and timeout enforcement. The `outputMode` parameter (`"minimal"` | `"summary"` | `"intent"`) defaults to `"minimal"` for ~95% token savings, with `sdl.runtime.queryOutput` enabling on-demand output retrieval when needed.
269
+ The sandboxed runtime execution tool (`sdl.runtime.execute`) has its own governance layer: enabled by default, but still guarded by executable allowlisting, CWD jailing, environment scrubbing, concurrency limits, and timeout enforcement. The `outputMode` parameter (`"minimal"` | `"summary"` | `"intent"`) defaults to `"minimal"` for ~95% token savings, with `sdl.runtime.queryOutput` enabling on-demand output retrieval when needed.
267
270
 
268
271
  **Why it matters:**
272
+
269
273
  - Proof-of-need gating prevents agents from wastefully reading raw code
270
274
  - Denied requests include **actionable next-best-action** guidance
271
275
  - Full audit logging of every code access decision
@@ -284,6 +288,7 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
284
288
  `sdl.context.summary` generates portable, token-bounded context briefings in markdown, JSON, or clipboard format for use outside MCP environments.
285
289
 
286
290
  **Why it matters:**
291
+
287
292
  - Task-shaped context retrieval plans the **right Iris Gate path** within a token budget
288
293
  - Feedback loop records what was useful/missing, improving future slice quality
289
294
  - Portable context summaries export findings for use outside MCP environments
@@ -297,6 +302,7 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
297
302
  Run tests, linters, and scripts through SDL-MCP's governance layer instead of uncontrolled shell access. 16 runtimes (Node.js, Python, Go, Java, Rust, Shell, and more), code-mode or args-mode, smart output summarization with keyword-matched excerpts, and gzip artifact persistence.
298
303
 
299
304
  **Why it matters:**
305
+
300
306
  - Run tests, linters, and scripts **under governance** instead of uncontrolled shell access
301
307
  - 16 runtimes supported (Node, Python, Go, Java, Rust, Shell, and more)
302
308
  - Executable allowlisting, CWD jailing, timeout enforcement, and environment scrubbing
@@ -306,9 +312,9 @@ Run tests, linters, and scripts through SDL-MCP's governance layer instead of un
306
312
 
307
313
  ---
308
314
 
309
- ### Development Memories — Cross-Session Knowledge Persistence
315
+ ### Development Memories — Cross-Session Knowledge Persistence (Opt-In)
310
316
 
311
- Agents forget everything between sessions. SDL-MCP fixes this with a **graph-backed memory system** that lets agents store decisions, bugfix context, and task notes linked directly to the symbols and files they relate to. Memories are stored both in the graph database (for fast querying) and as checked-in markdown files (for version control and team sharing).
317
+ Agents forget everything between sessions. SDL-MCP fixes this with an **opt-in graph-backed memory system** that lets agents store decisions, bugfix context, and task notes linked directly to the symbols and files they relate to. Memory is **disabled by default** and must be explicitly enabled in the configuration. When enabled, memories are stored both in the graph database (for fast querying) and as checked-in markdown files (for version control and team sharing).
312
318
 
313
319
  ```mermaid
314
320
  flowchart LR
@@ -322,11 +328,13 @@ flowchart LR
322
328
  Graph --> Recall["Relevant memory surfaced<br/>race condition fix in authenticate()"]
323
329
  ```
324
330
 
325
- Memories are **automatically surfaced** inside graph slices — when an agent builds a slice touching symbols with linked memories, those memories appear alongside the cards. During re-indexing, memories linked to changed symbols are **flagged as stale**, prompting agents to review and update them. Four MCP tools (`store`, `query`, `remove`, `surface`) provide full CRUD plus intelligent ranking by confidence, recency, and symbol overlap.
331
+ When enabled, memories are **automatically surfaced** inside graph slices — when an agent builds a slice touching symbols with linked memories, those memories appear alongside the cards. During re-indexing, memories linked to changed symbols are **flagged as stale**, prompting agents to review and update them. Four MCP tools (`store`, `query`, `remove`, `surface`) provide full CRUD plus intelligent ranking by confidence, recency, and symbol overlap. Memory tools are only available when memory is enabled in the configuration.
326
332
 
327
333
  **Why it matters:**
334
+
328
335
  - Structured knowledge **persists across sessions**, linked directly to symbols and files
329
- - Automatically surfaced inside graph slices when touching related symbols
336
+ - Opt-in and disabled by default enable via `"memory": { "enabled": true }` in config
337
+ - When enabled, automatically surfaced inside graph slices when touching related symbols
330
338
  - Stale memories flagged when linked symbols change during re-indexing
331
339
  - Dual storage: graph DB for fast querying + markdown files for version control and team sharing
332
340
 
@@ -334,6 +342,31 @@ Memories are **automatically surfaced** inside graph slices — when an agent bu
334
342
 
335
343
  ---
336
344
 
345
+ ### SCIP Integration — Compiler-Grade Cross-References
346
+
347
+ Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across 11 languages. SCIP (Source Code Intelligence Protocol) supplements this with **compiler-grade cross-references** from tools like scip-typescript, scip-go, and rust-analyzer. Generate a `.scip` index file, point SDL-MCP at it, and heuristic edges are upgraded to exact compiler-verified edges, external dependency symbols become first-class graph nodes, and new `implements` edges reveal interface/trait relationships that syntax analysis cannot discover.
348
+
349
+ ```mermaid
350
+ flowchart LR
351
+ Compiler["Compiler / Type Checker"] --> SCIP[".scip index file"]
352
+ SCIP --> Ingest["sdl.scip.ingest"]
353
+ Ingest --> Upgrade["Heuristic edges → exact edges"]
354
+ Ingest --> External["External dependency nodes"]
355
+ Ingest --> Implements["implements edges"]
356
+ ```
357
+
358
+ **Why it matters:**
359
+
360
+ - Upgrades heuristic call resolution to **compiler-verified exact edges** (confidence 0.95)
361
+ - External dependencies (npm packages, Go modules, crate deps) become searchable graph nodes
362
+ - Interface/trait implementations tracked via `implements` edges
363
+ - Auto-ingest on `sdl.index.refresh` keeps SCIP data current with zero manual steps
364
+ - Complementary: tree-sitter provides structure, SCIP provides semantic precision
365
+
366
+ [SCIP Integration Deep Dive →](./docs/feature-deep-dives/scip-integration.md)
367
+
368
+ ---
369
+
337
370
  ### CLI Tool Access — No MCP Server Required
338
371
 
339
372
  Access all 32 flat SDL action tools directly from the command line with `sdl-mcp tool`. No MCP server, transport, or SDK is required.
@@ -352,6 +385,7 @@ echo '{"repoId":"my-repo"}' | sdl-mcp tool symbol.search --query "auth"
352
385
  Features include typed argument coercion (string, number, boolean, string[], json), budget flag merging, stdin JSON piping with CLI-flags-win precedence, auto-resolved `repoId` from cwd, four output formats (json, json-compact, pretty, table), typo suggestions, and per-action `--help`. The CLI dispatches through the same gateway router and Zod schemas as the MCP server — identical code paths, identical validation.
353
386
 
354
387
  **Why it matters:**
388
+
355
389
  - All MCP tool actions accessible from **any terminal** — no server, transport, or SDK required
356
390
  - Same code paths and Zod validation as the MCP server — identical behavior
357
391
  - Four output formats (json, json-compact, pretty, table) for scripting and CI pipelines
@@ -374,6 +408,7 @@ flowchart LR
374
408
  Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "symbol.search", repoId: "x", query: "auth" }`) and routes to the same handlers with double Zod validation. Thin wire schemas in `tools/list` keep the registration compact while full validation happens server-side. Legacy flat tool names are optionally emitted alongside for backward compatibility.
375
409
 
376
410
  **Why it matters:**
411
+
377
412
  - Large reduction in `tools/list` overhead for gateway-first agents
378
413
  - 32 flat action tools consolidated into 4 namespace-scoped tools for simpler agent selection
379
414
  - Fewer tool choices means faster and more accurate tool dispatch by the agent
@@ -387,14 +422,14 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
387
422
 
388
423
  <br/>
389
424
 
390
- ## All 36 Unique Tool Surfaces at a Glance
425
+ ## All 38 Unique Tool Surfaces at a Glance
391
426
 
392
427
  <table>
393
428
  <tr><th>Category</th><th>Tool</th><th>One-Line Description</th></tr>
394
429
  <tr><td rowspan="4"><strong>Repository</strong></td>
395
430
  <td><code>sdl.repo.register</code></td><td>Register a codebase for indexing</td></tr>
396
431
  <tr><td><code>sdl.repo.status</code></td><td>Health, versions, watcher, prefetch, live-index stats</td></tr>
397
- <tr><td><code>sdl.repo.overview</code></td><td>Codebase summary: stats, directories, hotspots, clusters</td></tr>
432
+ <tr><td><code>sdl.repo.overview</code></td><td>Codebase summary: stats, directories, hotspots, clusters, with conditional ETag fetch support</td></tr>
398
433
  <tr><td><code>sdl.index.refresh</code></td><td>Trigger full or incremental re-indexing</td></tr>
399
434
 
400
435
  <tr><td rowspan="3"><strong>Live Buffer</strong></td>
@@ -413,8 +448,8 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
413
448
  <tr><td><code>sdl.slice.spillover.get</code></td><td>Page through overflow symbols beyond the budget</td></tr>
414
449
 
415
450
  <tr><td rowspan="3"><strong>Code Access</strong></td>
416
- <td><code>sdl.code.getSkeleton</code></td><td>Signatures + control flow, bodies elided</td></tr>
417
- <tr><td><code>sdl.code.getHotPath</code></td><td>Lines matching specific identifiers + context</td></tr>
451
+ <td><code>sdl.code.getSkeleton</code></td><td>Signatures + control flow, bodies elided, with conditional ETag fetch support</td></tr>
452
+ <tr><td><code>sdl.code.getHotPath</code></td><td>Lines matching specific identifiers + context, with conditional ETag fetch support</td></tr>
418
453
  <tr><td><code>sdl.code.needWindow</code></td><td>Full source code (policy-gated, requires justification)</td></tr>
419
454
 
420
455
  <tr><td><strong>Deltas</strong></td>
@@ -428,10 +463,10 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
428
463
  <td><code>sdl.pr.risk.analyze</code></td><td>Scored PR risk with findings and test recommendations</td></tr>
429
464
 
430
465
  <tr><td><strong>Context</strong></td>
431
- <td><code>sdl.context.summary</code></td><td>Token-bounded portable briefing (markdown/JSON/clipboard)</td></tr>
466
+ <td><code>sdl.context.summary</code></td><td>Token-bounded portable briefing (markdown/JSON/clipboard) with conditional ETag fetch support</td></tr>
432
467
 
433
468
  <tr><td rowspan="3"><strong>Agent</strong></td>
434
- <td><code>sdl.agent.context</code></td><td>Task-shaped context retrieval with budget-controlled rung planning</td></tr>
469
+ <td><code>sdl.agent.context</code></td><td>Task-shaped context retrieval with budget-controlled rung planning and conditional ETag fetch support</td></tr>
435
470
  <tr><td><code>sdl.agent.feedback</code></td><td>Record which symbols were useful or missing</td></tr>
436
471
  <tr><td><code>sdl.agent.feedback.query</code></td><td>Query aggregated feedback statistics</td></tr>
437
472
 
@@ -450,6 +485,12 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
450
485
  <tr><td><code>sdl.workflow</code></td><td>Multi-step operations with budget tracking, ETag caching, and transforms</td></tr>
451
486
  <tr><td><code>sdl.manual</code></td><td>Self-documentation — query usage guide, action schemas, output format reference</td></tr>
452
487
 
488
+ <tr><td><strong>SCIP</strong></td>
489
+ <td><code>sdl.scip.ingest</code></td><td>Ingest a pre-built SCIP index for compiler-grade cross-references (with dry-run support)</td></tr>
490
+
491
+ <tr><td><strong>File</strong></td>
492
+ <td><code>sdl.file.read</code></td><td>Read non-indexed files (configs, docs, templates) with line-range, search, or JSON-path modes</td></tr>
493
+
453
494
  <tr><td rowspan="3"><strong>Meta</strong></td>
454
495
  <td><code>sdl.info</code></td><td>Runtime diagnostics — version, Node.js, platform, database, config paths</td></tr>
455
496
  <tr><td><code>sdl.usage.stats</code></td><td>Session and lifetime token savings statistics</td></tr>
@@ -466,21 +507,21 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
466
507
 
467
508
  ## CLI Commands
468
509
 
469
- | Command | Description |
470
- |:--------|:------------|
471
- | `sdl-mcp init` | Bootstrap config, detect repo/languages, optionally auto-index |
472
- | `sdl-mcp doctor` | Validate runtime, config, DB, grammars, repo access |
473
- | `sdl-mcp index` | Index repositories (with optional `--watch` mode) |
474
- | `sdl-mcp serve` | Start MCP server (`--stdio` or `--http`) |
475
- | `sdl-mcp tool` | Access all 35 MCP tool actions directly ([docs](./docs/feature-deep-dives/cli-tool-access.md)) |
476
- | `sdl-mcp info` | Runtime diagnostics — version, Node.js, platform, database, config |
477
- | `sdl-mcp summary` | Generate copy/paste context summaries from the CLI |
478
- | `sdl-mcp health` | Compute composite health score with badge/JSON output |
479
- | `sdl-mcp benchmark` | Run CI regression benchmarks |
480
- | `sdl-mcp export` | Export sync artifact |
481
- | `sdl-mcp import` | Import sync artifact |
482
- | `sdl-mcp pull` | Pull by version/commit with fallback |
483
- | `sdl-mcp version` | Show version and environment info |
510
+ | Command | Description |
511
+ | :------------------ | :--------------------------------------------------------------------------------------------- |
512
+ | `sdl-mcp init` | Bootstrap config, detect repo/languages, optionally auto-index |
513
+ | `sdl-mcp doctor` | Validate runtime, config, DB, grammars, repo access |
514
+ | `sdl-mcp index` | Index repositories (with optional `--watch` mode) |
515
+ | `sdl-mcp serve` | Start MCP server (`--stdio` or `--http`) |
516
+ | `sdl-mcp tool` | Access all 35 MCP tool actions directly ([docs](./docs/feature-deep-dives/cli-tool-access.md)) |
517
+ | `sdl-mcp info` | Runtime diagnostics — version, Node.js, platform, database, config |
518
+ | `sdl-mcp summary` | Generate copy/paste context summaries from the CLI |
519
+ | `sdl-mcp health` | Compute composite health score with badge/JSON output |
520
+ | `sdl-mcp benchmark` | Run CI regression benchmarks |
521
+ | `sdl-mcp export` | Export sync artifact |
522
+ | `sdl-mcp import` | Import sync artifact |
523
+ | `sdl-mcp pull` | Pull by version/commit with fallback |
524
+ | `sdl-mcp version` | Show version and environment info |
484
525
 
485
526
  [CLI Reference →](./docs/cli-reference.md) · [Configuration Reference →](./docs/configuration-reference.md)
486
527
 
@@ -494,15 +535,15 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
494
535
 
495
536
  SDL-MCP works with any MCP-compatible client:
496
537
 
497
- | Client | Transport | Setup |
498
- |:-------|:----------|:------|
499
- | **Claude Code** | stdio | `sdl-mcp init --client claude-code` |
500
- | **Claude Desktop** | stdio | `sdl-mcp init --client claude-code` |
501
- | **Cursor** | stdio | Standard MCP server config |
502
- | **Windsurf** | stdio | Standard MCP server config |
503
- | **Codex CLI** | stdio | `sdl-mcp init --client codex` |
504
- | **Gemini CLI** | stdio | `sdl-mcp init --client gemini` |
505
- | **OpenCode** | stdio | `sdl-mcp init --client opencode` |
538
+ | Client | Transport | Setup |
539
+ | :----------------- | :----------- | :---------------------------------- |
540
+ | **Claude Code** | stdio | `sdl-mcp init --client claude-code` |
541
+ | **Claude Desktop** | stdio | `sdl-mcp init --client claude-code` |
542
+ | **Cursor** | stdio | Standard MCP server config |
543
+ | **Windsurf** | stdio | Standard MCP server config |
544
+ | **Codex CLI** | stdio | `sdl-mcp init --client codex` |
545
+ | **Gemini CLI** | stdio | `sdl-mcp init --client gemini` |
546
+ | **OpenCode** | stdio | `sdl-mcp init --client opencode` |
506
547
  | **Any MCP client** | stdio / http | `sdl-mcp serve --stdio` or `--http` |
507
548
 
508
549
  A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for real-time indexing of unsaved edits.
@@ -515,15 +556,15 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
515
556
 
516
557
  ## Tech Stack
517
558
 
518
- | Component | Technology |
519
- |:----------|:-----------|
520
- | Runtime | Node.js 24+ / TypeScript 5.9+ (strict ESM) |
521
- | Graph Database | LadybugDB (embedded, single-file) |
522
- | Indexer (default) | Rust via napi-rs (multi-threaded) |
523
- | Indexer (fallback) | tree-sitter + tree-sitter-typescript |
524
- | MCP SDK | @modelcontextprotocol/sdk |
525
- | Validation | Zod schemas for all payloads |
526
- | Transports | stdio (agents) · HTTP (dev/network) |
559
+ | Component | Technology |
560
+ | :----------------- | :----------------------------------------- |
561
+ | Runtime | Node.js 24+ / TypeScript 5.9+ (strict ESM) |
562
+ | Graph Database | LadybugDB (embedded, single-file) |
563
+ | Indexer (default) | Rust via napi-rs (multi-threaded) |
564
+ | Indexer (fallback) | tree-sitter + tree-sitter-typescript |
565
+ | MCP SDK | @modelcontextprotocol/sdk |
566
+ | Validation | Zod schemas for all payloads |
567
+ | Transports | stdio (agents) · HTTP (dev/network) |
527
568
 
528
569
  <br/>
529
570
 
@@ -560,37 +601,38 @@ flowchart TD
560
601
 
561
602
  ## Documentation
562
603
 
563
- | Document | Description |
564
- |:---------|:------------|
565
- | [Getting Started](./docs/getting-started.md) | Installation, 5-minute setup, MCP client config |
566
- | [MCP Tools Reference](./docs/mcp-tools-detailed.md) | Detailed docs for all 36 unique tool surfaces (parameters, responses, examples) |
567
- | [CLI Reference](./docs/cli-reference.md) | All CLI commands and options |
568
- | [Configuration Reference](./docs/configuration-reference.md) | Every config option with defaults and guidance |
569
- | [Agent Workflows](./docs/agent-workflows.md) | Workflow instructions for CLAUDE.md / AGENTS.md |
570
- | [Architecture](./docs/architecture.md) | Tech stack, data flow, component diagram |
571
- | [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Context escalation methodology |
572
- | [Troubleshooting](./docs/troubleshooting.md) | Common issues and fixes |
604
+ | Document | Description |
605
+ | :---------------------------------------------------------------- | :------------------------------------------------------------------------------ |
606
+ | [Getting Started](./docs/getting-started.md) | Installation, 5-minute setup, MCP client config |
607
+ | [MCP Tools Reference](./docs/mcp-tools-detailed.md) | Detailed docs for all 37 unique tool surfaces (parameters, responses, examples) |
608
+ | [CLI Reference](./docs/cli-reference.md) | All CLI commands and options |
609
+ | [Configuration Reference](./docs/configuration-reference.md) | Every config option with defaults and guidance |
610
+ | [Agent Workflows](./docs/agent-workflows.md) | Workflow instructions for CLAUDE.md / AGENTS.md |
611
+ | [Architecture](./docs/architecture.md) | Tech stack, data flow, component diagram |
612
+ | [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Context escalation methodology |
613
+ | [Troubleshooting](./docs/troubleshooting.md) | Common issues and fixes |
573
614
 
574
615
  ### Feature Deep Dives
575
616
 
576
- | Topic | What You'll Learn |
577
- |:------|:------------------|
578
- | [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Four-rung context escalation with token savings analysis |
579
- | [Graph Slicing](./docs/feature-deep-dives/graph-slicing.md) | BFS/beam search, edge weights, wire formats, auto-discovery |
580
- | [Delta & Blast Radius](./docs/feature-deep-dives/delta-blast-radius.md) | Semantic diffs, ranked impact analysis, PR risk scoring |
581
- | [Live Indexing](./docs/feature-deep-dives/live-indexing.md) | Real-time editor buffer integration and overlay architecture |
582
- | [Governance & Policy](./docs/feature-deep-dives/governance-policy.md) | Proof-of-need gating, audit logging, runtime sandboxing |
583
- | [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
584
- | [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
585
- | [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md) | Rust/TS engines, two-pass architecture, 12-language support |
586
- | [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
587
- | [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to all tool actions, output formats, stdin piping, scripting |
588
- | [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35→4 tool consolidation, token reduction, thin schemas, migration guide |
589
- | [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md) | Pass-2 call resolution, embedding search, LLM summaries, confidence scoring |
590
- | [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
591
- | [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
592
- | [Development Memories](./docs/feature-deep-dives/development-memories.md) | Graph-backed cross-session memory, file sync, staleness detection, auto-surfacing |
593
- | [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
617
+ | Topic | What You'll Learn |
618
+ | :---------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |
619
+ | [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Four-rung context escalation with token savings analysis |
620
+ | [Graph Slicing](./docs/feature-deep-dives/graph-slicing.md) | BFS/beam search, edge weights, wire formats, auto-discovery |
621
+ | [Delta & Blast Radius](./docs/feature-deep-dives/delta-blast-radius.md) | Semantic diffs, ranked impact analysis, PR risk scoring |
622
+ | [Live Indexing](./docs/feature-deep-dives/live-indexing.md) | Real-time editor buffer integration and overlay architecture |
623
+ | [Governance & Policy](./docs/feature-deep-dives/governance-policy.md) | Proof-of-need gating, audit logging, runtime sandboxing |
624
+ | [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
625
+ | [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
626
+ | [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md) | Rust/TS engines, two-pass architecture, 12-language support |
627
+ | [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
628
+ | [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to all tool actions, output formats, stdin piping, scripting |
629
+ | [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35→4 tool consolidation, token reduction, thin schemas, migration guide |
630
+ | [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md) | Pass-2 call resolution, embedding search, LLM summaries, confidence scoring |
631
+ | [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
632
+ | [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
633
+ | [Development Memories](./docs/feature-deep-dives/development-memories.md) | Graph-backed cross-session memory, file sync, staleness detection, auto-surfacing |
634
+ | [SCIP Integration](./docs/feature-deep-dives/scip-integration.md) | Compiler-grade cross-references, external deps, implements edges, auto-ingest |
635
+ | [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
594
636
 
595
637
  <br/>
596
638
 
@@ -32,7 +32,12 @@
32
32
  "includeNodeModulesTypes": true,
33
33
  "packageJsonPath": null,
34
34
  "tsconfigPath": null,
35
- "workspaceGlobs": null
35
+ "workspaceGlobs": null,
36
+ "memory": {
37
+ "enabled": true,
38
+ "surfacingEnabled": true,
39
+ "fileSyncEnabled": false
40
+ }
36
41
  }
37
42
  ],
38
43
  "graphDatabase": {
@@ -118,7 +123,8 @@
118
123
  "vector": {
119
124
  "enabled": true,
120
125
  "topK": 75,
121
- "efs": 200,
126
+ "efc": 200,
127
+ "efs": 200,
122
128
  "indexes": {
123
129
  "all-MiniLM-L6-v2": {
124
130
  "indexName": "symbol_vec_minilm_l6_v2"
@@ -160,11 +166,8 @@
160
166
  "toolQueueTimeoutMs": 30000
161
167
  },
162
168
  "runtime": {
163
- "enabled": false,
164
- "allowedRuntimes": [
165
- "node",
166
- "python"
167
- ],
169
+ "enabled": true,
170
+ "allowedRuntimes": ["node", "typescript", "python", "shell"],
168
171
  "allowedExecutables": [],
169
172
  "maxDurationMs": 30000,
170
173
  "maxStdoutBytes": 1048576,
@@ -194,5 +197,30 @@
194
197
  },
195
198
  "security": {
196
199
  "allowedRepoRoots": []
200
+ },
201
+ "scip": {
202
+ "enabled": false,
203
+ "indexes": [
204
+ {
205
+ "path": "index.scip",
206
+ "label": "typescript"
207
+ }
208
+ ],
209
+ "externalSymbols": {
210
+ "enabled": true,
211
+ "maxPerIndex": 10000
212
+ },
213
+ "confidence": 0.95,
214
+ "autoIngestOnRefresh": true,
215
+ "generator": {
216
+ "enabled": false,
217
+ "binary": "scip-io",
218
+ "args": [],
219
+ "autoInstall": true,
220
+ "timeoutMs": 600000
221
+ }
222
+ },
223
+ "memory": {
224
+ "enabled": false
197
225
  }
198
226
  }