sdl-mcp 0.9.0 → 0.9.2

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 (651) hide show
  1. package/README.md +67 -5
  2. package/config/benchmark.ci.config.json +4 -4
  3. package/config/sdlmcp.config.example.json +5 -1
  4. package/config/sdlmcp.config.json +1 -1
  5. package/config/sdlmcp.config.schema.json +25 -4
  6. package/dist/agent/executor.d.ts +26 -3
  7. package/dist/agent/executor.d.ts.map +1 -1
  8. package/dist/agent/executor.js +392 -102
  9. package/dist/agent/executor.js.map +1 -1
  10. package/dist/agent/orchestrator.d.ts.map +1 -1
  11. package/dist/agent/orchestrator.js +68 -18
  12. package/dist/agent/orchestrator.js.map +1 -1
  13. package/dist/agent/planner.d.ts.map +1 -1
  14. package/dist/agent/planner.js +36 -37
  15. package/dist/agent/planner.js.map +1 -1
  16. package/dist/benchmark/edgeAccuracy.d.ts.map +1 -1
  17. package/dist/benchmark/edgeAccuracy.js +7 -1
  18. package/dist/benchmark/edgeAccuracy.js.map +1 -1
  19. package/dist/benchmark/threshold.d.ts.map +1 -1
  20. package/dist/benchmark/threshold.js +14 -3
  21. package/dist/benchmark/threshold.js.map +1 -1
  22. package/dist/cli/argParsing.d.ts.map +1 -1
  23. package/dist/cli/argParsing.js +16 -2
  24. package/dist/cli/argParsing.js.map +1 -1
  25. package/dist/cli/commands/doctor.js +16 -14
  26. package/dist/cli/commands/doctor.js.map +1 -1
  27. package/dist/cli/commands/index.d.ts.map +1 -1
  28. package/dist/cli/commands/index.js +43 -19
  29. package/dist/cli/commands/index.js.map +1 -1
  30. package/dist/cli/commands/info.d.ts +3 -0
  31. package/dist/cli/commands/info.d.ts.map +1 -0
  32. package/dist/cli/commands/info.js +44 -0
  33. package/dist/cli/commands/info.js.map +1 -0
  34. package/dist/cli/commands/init.d.ts.map +1 -1
  35. package/dist/cli/commands/init.js +413 -7
  36. package/dist/cli/commands/init.js.map +1 -1
  37. package/dist/cli/commands/serve.d.ts.map +1 -1
  38. package/dist/cli/commands/serve.js +20 -17
  39. package/dist/cli/commands/serve.js.map +1 -1
  40. package/dist/cli/commands/tool-actions.d.ts.map +1 -1
  41. package/dist/cli/commands/tool-actions.js +107 -1
  42. package/dist/cli/commands/tool-actions.js.map +1 -1
  43. package/dist/cli/commands/version.d.ts +1 -0
  44. package/dist/cli/commands/version.d.ts.map +1 -1
  45. package/dist/cli/commands/version.js +3 -13
  46. package/dist/cli/commands/version.js.map +1 -1
  47. package/dist/cli/index.js +10 -0
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/cli/logging.d.ts.map +1 -1
  50. package/dist/cli/logging.js +3 -0
  51. package/dist/cli/logging.js.map +1 -1
  52. package/dist/cli/transport/http.d.ts +40 -3
  53. package/dist/cli/transport/http.d.ts.map +1 -1
  54. package/dist/cli/transport/http.js +92 -27
  55. package/dist/cli/transport/http.js.map +1 -1
  56. package/dist/cli/types.d.ts +3 -0
  57. package/dist/cli/types.d.ts.map +1 -1
  58. package/dist/code/gate.d.ts +3 -1
  59. package/dist/code/gate.d.ts.map +1 -1
  60. package/dist/code/gate.js +39 -27
  61. package/dist/code/gate.js.map +1 -1
  62. package/dist/code/hotpath.d.ts.map +1 -1
  63. package/dist/code/hotpath.js +3 -81
  64. package/dist/code/hotpath.js.map +1 -1
  65. package/dist/code/skeleton.d.ts +9 -1
  66. package/dist/code/skeleton.d.ts.map +1 -1
  67. package/dist/code/skeleton.js +27 -20
  68. package/dist/code/skeleton.js.map +1 -1
  69. package/dist/code/windows.d.ts +2 -0
  70. package/dist/code/windows.d.ts.map +1 -1
  71. package/dist/code/windows.js +21 -7
  72. package/dist/code/windows.js.map +1 -1
  73. package/dist/code-mode/action-catalog.d.ts +65 -0
  74. package/dist/code-mode/action-catalog.d.ts.map +1 -0
  75. package/dist/code-mode/action-catalog.js +558 -0
  76. package/dist/code-mode/action-catalog.js.map +1 -0
  77. package/dist/code-mode/chain-executor.d.ts +2 -2
  78. package/dist/code-mode/chain-executor.d.ts.map +1 -1
  79. package/dist/code-mode/chain-executor.js +187 -59
  80. package/dist/code-mode/chain-executor.js.map +1 -1
  81. package/dist/code-mode/chain-parser.d.ts +2 -0
  82. package/dist/code-mode/chain-parser.d.ts.map +1 -1
  83. package/dist/code-mode/chain-parser.js +7 -4
  84. package/dist/code-mode/chain-parser.js.map +1 -1
  85. package/dist/code-mode/descriptions.d.ts +1 -0
  86. package/dist/code-mode/descriptions.d.ts.map +1 -1
  87. package/dist/code-mode/descriptions.js +6 -2
  88. package/dist/code-mode/descriptions.js.map +1 -1
  89. package/dist/code-mode/index.d.ts +18 -0
  90. package/dist/code-mode/index.d.ts.map +1 -1
  91. package/dist/code-mode/index.js +199 -18
  92. package/dist/code-mode/index.js.map +1 -1
  93. package/dist/code-mode/ladder-validator.d.ts.map +1 -1
  94. package/dist/code-mode/ladder-validator.js +3 -0
  95. package/dist/code-mode/ladder-validator.js.map +1 -1
  96. package/dist/code-mode/manual-generator.d.ts.map +1 -1
  97. package/dist/code-mode/manual-generator.js +6 -1
  98. package/dist/code-mode/manual-generator.js.map +1 -1
  99. package/dist/code-mode/transforms.d.ts +22 -0
  100. package/dist/code-mode/transforms.d.ts.map +1 -0
  101. package/dist/code-mode/transforms.js +289 -0
  102. package/dist/code-mode/transforms.js.map +1 -0
  103. package/dist/code-mode/types.d.ts +88 -0
  104. package/dist/code-mode/types.d.ts.map +1 -1
  105. package/dist/code-mode/types.js +14 -0
  106. package/dist/code-mode/types.js.map +1 -1
  107. package/dist/config/constants.d.ts +5 -1
  108. package/dist/config/constants.d.ts.map +1 -1
  109. package/dist/config/constants.js +5 -1
  110. package/dist/config/constants.js.map +1 -1
  111. package/dist/config/loadConfig.d.ts.map +1 -1
  112. package/dist/config/loadConfig.js +38 -20
  113. package/dist/config/loadConfig.js.map +1 -1
  114. package/dist/config/types.d.ts +102 -17
  115. package/dist/config/types.d.ts.map +1 -1
  116. package/dist/config/types.js +15 -2
  117. package/dist/config/types.js.map +1 -1
  118. package/dist/db/ladybug-clusters.d.ts.map +1 -1
  119. package/dist/db/ladybug-clusters.js +9 -7
  120. package/dist/db/ladybug-clusters.js.map +1 -1
  121. package/dist/db/ladybug-core.d.ts +2 -8
  122. package/dist/db/ladybug-core.d.ts.map +1 -1
  123. package/dist/db/ladybug-core.js +76 -46
  124. package/dist/db/ladybug-core.js.map +1 -1
  125. package/dist/db/ladybug-edges.d.ts +7 -0
  126. package/dist/db/ladybug-edges.d.ts.map +1 -1
  127. package/dist/db/ladybug-edges.js +48 -48
  128. package/dist/db/ladybug-edges.js.map +1 -1
  129. package/dist/db/ladybug-feedback.d.ts +2 -2
  130. package/dist/db/ladybug-feedback.d.ts.map +1 -1
  131. package/dist/db/ladybug-feedback.js +68 -30
  132. package/dist/db/ladybug-feedback.js.map +1 -1
  133. package/dist/db/ladybug-memory.d.ts.map +1 -1
  134. package/dist/db/ladybug-memory.js +20 -16
  135. package/dist/db/ladybug-memory.js.map +1 -1
  136. package/dist/db/ladybug-metrics.d.ts +10 -0
  137. package/dist/db/ladybug-metrics.d.ts.map +1 -1
  138. package/dist/db/ladybug-metrics.js +28 -4
  139. package/dist/db/ladybug-metrics.js.map +1 -1
  140. package/dist/db/ladybug-processes.d.ts.map +1 -1
  141. package/dist/db/ladybug-processes.js +9 -7
  142. package/dist/db/ladybug-processes.js.map +1 -1
  143. package/dist/db/ladybug-queries.d.ts +1 -0
  144. package/dist/db/ladybug-queries.d.ts.map +1 -1
  145. package/dist/db/ladybug-queries.js +2 -0
  146. package/dist/db/ladybug-queries.js.map +1 -1
  147. package/dist/db/ladybug-repos.d.ts +1 -0
  148. package/dist/db/ladybug-repos.d.ts.map +1 -1
  149. package/dist/db/ladybug-repos.js +62 -2
  150. package/dist/db/ladybug-repos.js.map +1 -1
  151. package/dist/db/ladybug-schema.d.ts +1 -1
  152. package/dist/db/ladybug-schema.d.ts.map +1 -1
  153. package/dist/db/ladybug-schema.js +16 -1
  154. package/dist/db/ladybug-schema.js.map +1 -1
  155. package/dist/db/ladybug-slices.d.ts.map +1 -1
  156. package/dist/db/ladybug-slices.js +3 -2
  157. package/dist/db/ladybug-slices.js.map +1 -1
  158. package/dist/db/ladybug-symbols.d.ts +12 -0
  159. package/dist/db/ladybug-symbols.d.ts.map +1 -1
  160. package/dist/db/ladybug-symbols.js +204 -63
  161. package/dist/db/ladybug-symbols.js.map +1 -1
  162. package/dist/db/ladybug-usage.d.ts +44 -0
  163. package/dist/db/ladybug-usage.d.ts.map +1 -0
  164. package/dist/db/ladybug-usage.js +192 -0
  165. package/dist/db/ladybug-usage.js.map +1 -0
  166. package/dist/db/ladybug-versions.d.ts.map +1 -1
  167. package/dist/db/ladybug-versions.js +8 -4
  168. package/dist/db/ladybug-versions.js.map +1 -1
  169. package/dist/db/ladybug.d.ts.map +1 -1
  170. package/dist/db/ladybug.js +11 -5
  171. package/dist/db/ladybug.js.map +1 -1
  172. package/dist/db/migrations/index.d.ts.map +1 -1
  173. package/dist/db/migrations/index.js +2 -1
  174. package/dist/db/migrations/index.js.map +1 -1
  175. package/dist/db/migrations/m006-add-usage-snapshot.d.ts +11 -0
  176. package/dist/db/migrations/m006-add-usage-snapshot.d.ts.map +1 -0
  177. package/dist/db/migrations/m006-add-usage-snapshot.js +36 -0
  178. package/dist/db/migrations/m006-add-usage-snapshot.js.map +1 -0
  179. package/dist/delta/blastRadius.d.ts.map +1 -1
  180. package/dist/delta/blastRadius.js +18 -11
  181. package/dist/delta/blastRadius.js.map +1 -1
  182. package/dist/delta/versioning.d.ts.map +1 -1
  183. package/dist/delta/versioning.js +31 -26
  184. package/dist/delta/versioning.js.map +1 -1
  185. package/dist/domain/errors.d.ts.map +1 -1
  186. package/dist/domain/errors.js +0 -12
  187. package/dist/domain/errors.js.map +1 -1
  188. package/dist/domain/types.d.ts +5 -1
  189. package/dist/domain/types.d.ts.map +1 -1
  190. package/dist/gateway/compact-schema.d.ts +2 -2
  191. package/dist/gateway/compact-schema.d.ts.map +1 -1
  192. package/dist/gateway/compact-schema.js +4 -21
  193. package/dist/gateway/compact-schema.js.map +1 -1
  194. package/dist/gateway/descriptions.d.ts +1 -1
  195. package/dist/gateway/descriptions.d.ts.map +1 -1
  196. package/dist/gateway/descriptions.js +11 -8
  197. package/dist/gateway/descriptions.js.map +1 -1
  198. package/dist/gateway/index.d.ts.map +1 -1
  199. package/dist/gateway/index.js +10 -5
  200. package/dist/gateway/index.js.map +1 -1
  201. package/dist/gateway/legacy.d.ts.map +1 -1
  202. package/dist/gateway/legacy.js +3 -1
  203. package/dist/gateway/legacy.js.map +1 -1
  204. package/dist/gateway/router.d.ts.map +1 -1
  205. package/dist/gateway/router.js +10 -3
  206. package/dist/gateway/router.js.map +1 -1
  207. package/dist/gateway/schemas.d.ts +171 -49
  208. package/dist/gateway/schemas.d.ts.map +1 -1
  209. package/dist/gateway/schemas.js +44 -5
  210. package/dist/gateway/schemas.js.map +1 -1
  211. package/dist/gateway/thin-schemas.d.ts +7 -12
  212. package/dist/gateway/thin-schemas.d.ts.map +1 -1
  213. package/dist/gateway/thin-schemas.js +29 -29
  214. package/dist/gateway/thin-schemas.js.map +1 -1
  215. package/dist/graph/buildGraph.js +1 -1
  216. package/dist/graph/buildGraph.js.map +1 -1
  217. package/dist/graph/graphSnapshotCache.d.ts +3 -0
  218. package/dist/graph/graphSnapshotCache.d.ts.map +1 -1
  219. package/dist/graph/graphSnapshotCache.js +140 -132
  220. package/dist/graph/graphSnapshotCache.js.map +1 -1
  221. package/dist/graph/index.d.ts +1 -1
  222. package/dist/graph/index.d.ts.map +1 -1
  223. package/dist/graph/index.js +1 -1
  224. package/dist/graph/index.js.map +1 -1
  225. package/dist/graph/metrics.d.ts +3 -1
  226. package/dist/graph/metrics.d.ts.map +1 -1
  227. package/dist/graph/metrics.js +88 -20
  228. package/dist/graph/metrics.js.map +1 -1
  229. package/dist/graph/minHeap.d.ts +22 -2
  230. package/dist/graph/minHeap.d.ts.map +1 -1
  231. package/dist/graph/minHeap.js +47 -2
  232. package/dist/graph/minHeap.js.map +1 -1
  233. package/dist/graph/overview.d.ts +7 -0
  234. package/dist/graph/overview.d.ts.map +1 -1
  235. package/dist/graph/overview.js +53 -1
  236. package/dist/graph/overview.js.map +1 -1
  237. package/dist/graph/prefetch-model.js +1 -1
  238. package/dist/graph/prefetch-model.js.map +1 -1
  239. package/dist/graph/score.d.ts +0 -1
  240. package/dist/graph/score.d.ts.map +1 -1
  241. package/dist/graph/score.js +11 -12
  242. package/dist/graph/score.js.map +1 -1
  243. package/dist/graph/slice/beam-score-worker.js +2 -0
  244. package/dist/graph/slice/beam-score-worker.js.map +1 -1
  245. package/dist/graph/slice/beam-search-engine.d.ts +8 -0
  246. package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
  247. package/dist/graph/slice/beam-search-engine.js +47 -12
  248. package/dist/graph/slice/beam-search-engine.js.map +1 -1
  249. package/dist/graph/slice/slice-serializer.d.ts.map +1 -1
  250. package/dist/graph/slice/slice-serializer.js +10 -9
  251. package/dist/graph/slice/slice-serializer.js.map +1 -1
  252. package/dist/graph/slice/start-node-resolver.d.ts.map +1 -1
  253. package/dist/graph/slice/start-node-resolver.js +31 -0
  254. package/dist/graph/slice/start-node-resolver.js.map +1 -1
  255. package/dist/graph/slice.d.ts.map +1 -1
  256. package/dist/graph/slice.js +16 -4
  257. package/dist/graph/slice.js.map +1 -1
  258. package/dist/indexer/adapter/BaseAdapter.d.ts +2 -1
  259. package/dist/indexer/adapter/BaseAdapter.d.ts.map +1 -1
  260. package/dist/indexer/adapter/BaseAdapter.js +19 -4
  261. package/dist/indexer/adapter/BaseAdapter.js.map +1 -1
  262. package/dist/indexer/adapter/LanguageAdapter.d.ts +2 -2
  263. package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -1
  264. package/dist/indexer/adapter/adapters.d.ts.map +1 -1
  265. package/dist/indexer/adapter/adapters.js +20 -0
  266. package/dist/indexer/adapter/adapters.js.map +1 -1
  267. package/dist/indexer/adapter/cpp.d.ts.map +1 -1
  268. package/dist/indexer/adapter/cpp.js +12 -5
  269. package/dist/indexer/adapter/cpp.js.map +1 -1
  270. package/dist/indexer/adapter/csharp.js +1 -1
  271. package/dist/indexer/adapter/csharp.js.map +1 -1
  272. package/dist/indexer/adapter/go.d.ts.map +1 -1
  273. package/dist/indexer/adapter/go.js +3 -4
  274. package/dist/indexer/adapter/go.js.map +1 -1
  275. package/dist/indexer/adapter/python.d.ts.map +1 -1
  276. package/dist/indexer/adapter/python.js +10 -5
  277. package/dist/indexer/adapter/python.js.map +1 -1
  278. package/dist/indexer/adapter/rust.js +6 -6
  279. package/dist/indexer/adapter/rust.js.map +1 -1
  280. package/dist/indexer/adapter/typescript.d.ts +2 -0
  281. package/dist/indexer/adapter/typescript.d.ts.map +1 -1
  282. package/dist/indexer/adapter/typescript.js +62 -0
  283. package/dist/indexer/adapter/typescript.js.map +1 -1
  284. package/dist/indexer/ann-index.js +1 -1
  285. package/dist/indexer/ann-index.js.map +1 -1
  286. package/dist/indexer/edge-builder/builtins.d.ts +4 -1
  287. package/dist/indexer/edge-builder/builtins.d.ts.map +1 -1
  288. package/dist/indexer/edge-builder/builtins.js +512 -66
  289. package/dist/indexer/edge-builder/builtins.js.map +1 -1
  290. package/dist/indexer/edge-builder/enclosing-symbol.d.ts +23 -0
  291. package/dist/indexer/edge-builder/enclosing-symbol.d.ts.map +1 -0
  292. package/dist/indexer/edge-builder/enclosing-symbol.js +37 -0
  293. package/dist/indexer/edge-builder/enclosing-symbol.js.map +1 -0
  294. package/dist/indexer/edge-builder/import-resolution.d.ts.map +1 -1
  295. package/dist/indexer/edge-builder/import-resolution.js +25 -0
  296. package/dist/indexer/edge-builder/import-resolution.js.map +1 -1
  297. package/dist/indexer/edge-builder/pass2.d.ts +1 -25
  298. package/dist/indexer/edge-builder/pass2.d.ts.map +1 -1
  299. package/dist/indexer/edge-builder/pass2.js +28 -158
  300. package/dist/indexer/edge-builder/pass2.js.map +1 -1
  301. package/dist/indexer/edge-builder/symbol-mapping.d.ts +38 -0
  302. package/dist/indexer/edge-builder/symbol-mapping.d.ts.map +1 -0
  303. package/dist/indexer/edge-builder/symbol-mapping.js +70 -0
  304. package/dist/indexer/edge-builder/symbol-mapping.js.map +1 -0
  305. package/dist/indexer/edge-builder/target-selection.d.ts +10 -0
  306. package/dist/indexer/edge-builder/target-selection.d.ts.map +1 -0
  307. package/dist/indexer/edge-builder/target-selection.js +63 -0
  308. package/dist/indexer/edge-builder/target-selection.js.map +1 -0
  309. package/dist/indexer/edge-builder/unresolved-imports.d.ts +6 -0
  310. package/dist/indexer/edge-builder/unresolved-imports.d.ts.map +1 -0
  311. package/dist/indexer/edge-builder/unresolved-imports.js +70 -0
  312. package/dist/indexer/edge-builder/unresolved-imports.js.map +1 -0
  313. package/dist/indexer/edge-builder.d.ts +5 -1
  314. package/dist/indexer/edge-builder.d.ts.map +1 -1
  315. package/dist/indexer/edge-builder.js +5 -1
  316. package/dist/indexer/edge-builder.js.map +1 -1
  317. package/dist/indexer/fileScanner.d.ts.map +1 -1
  318. package/dist/indexer/fileScanner.js +2 -1
  319. package/dist/indexer/fileScanner.js.map +1 -1
  320. package/dist/indexer/fingerprints.d.ts +23 -0
  321. package/dist/indexer/fingerprints.d.ts.map +1 -1
  322. package/dist/indexer/fingerprints.js +22 -0
  323. package/dist/indexer/fingerprints.js.map +1 -1
  324. package/dist/indexer/import-resolution/go-adapter.d.ts.map +1 -1
  325. package/dist/indexer/import-resolution/go-adapter.js +9 -1
  326. package/dist/indexer/import-resolution/go-adapter.js.map +1 -1
  327. package/dist/indexer/import-resolution/php-adapter.d.ts.map +1 -1
  328. package/dist/indexer/import-resolution/php-adapter.js +17 -2
  329. package/dist/indexer/import-resolution/php-adapter.js.map +1 -1
  330. package/dist/indexer/indexer-init.d.ts +68 -0
  331. package/dist/indexer/indexer-init.d.ts.map +1 -0
  332. package/dist/indexer/indexer-init.js +79 -0
  333. package/dist/indexer/indexer-init.js.map +1 -0
  334. package/dist/indexer/indexer-memory.d.ts +6 -0
  335. package/dist/indexer/indexer-memory.d.ts.map +1 -0
  336. package/dist/indexer/indexer-memory.js +98 -0
  337. package/dist/indexer/indexer-memory.js.map +1 -0
  338. package/dist/indexer/indexer-pass1.d.ts +12 -0
  339. package/dist/indexer/indexer-pass1.d.ts.map +1 -0
  340. package/dist/indexer/indexer-pass1.js +218 -0
  341. package/dist/indexer/indexer-pass1.js.map +1 -0
  342. package/dist/indexer/indexer-pass2.d.ts +41 -0
  343. package/dist/indexer/indexer-pass2.d.ts.map +1 -0
  344. package/dist/indexer/indexer-pass2.js +135 -0
  345. package/dist/indexer/indexer-pass2.js.map +1 -0
  346. package/dist/indexer/indexer-version.d.ts +6 -0
  347. package/dist/indexer/indexer-version.d.ts.map +1 -0
  348. package/dist/indexer/indexer-version.js +29 -0
  349. package/dist/indexer/indexer-version.js.map +1 -0
  350. package/dist/indexer/indexer.d.ts +2 -6
  351. package/dist/indexer/indexer.d.ts.map +1 -1
  352. package/dist/indexer/indexer.js +29 -535
  353. package/dist/indexer/indexer.js.map +1 -1
  354. package/dist/indexer/parser/process-file.d.ts.map +1 -1
  355. package/dist/indexer/parser/process-file.js +17 -3
  356. package/dist/indexer/parser/process-file.js.map +1 -1
  357. package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
  358. package/dist/indexer/parser/rust-process-file.js +10 -3
  359. package/dist/indexer/parser/rust-process-file.js.map +1 -1
  360. package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts.map +1 -1
  361. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js +15 -5
  362. package/dist/indexer/pass2/resolvers/c-pass2-resolver.js.map +1 -1
  363. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts.map +1 -1
  364. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js +19 -5
  365. package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js.map +1 -1
  366. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.d.ts.map +1 -1
  367. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js +42 -20
  368. package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js.map +1 -1
  369. package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
  370. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +14 -5
  371. package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
  372. package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts.map +1 -1
  373. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js +42 -20
  374. package/dist/indexer/pass2/resolvers/java-pass2-resolver.js.map +1 -1
  375. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.d.ts.map +1 -1
  376. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js +12 -4
  377. package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js.map +1 -1
  378. package/dist/indexer/pass2/resolvers/php-pass2-resolver.d.ts.map +1 -1
  379. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js +12 -4
  380. package/dist/indexer/pass2/resolvers/php-pass2-resolver.js.map +1 -1
  381. package/dist/indexer/pass2/resolvers/python-pass2-resolver.d.ts.map +1 -1
  382. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js +34 -103
  383. package/dist/indexer/pass2/resolvers/python-pass2-resolver.js.map +1 -1
  384. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts +12 -1
  385. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
  386. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js +117 -7
  387. package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js.map +1 -1
  388. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.d.ts.map +1 -1
  389. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js +12 -4
  390. package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js.map +1 -1
  391. package/dist/indexer/rustIndexer.d.ts +6 -0
  392. package/dist/indexer/rustIndexer.d.ts.map +1 -1
  393. package/dist/indexer/rustIndexer.js +26 -3
  394. package/dist/indexer/rustIndexer.js.map +1 -1
  395. package/dist/indexer/summaries.d.ts +2 -1
  396. package/dist/indexer/summaries.d.ts.map +1 -1
  397. package/dist/indexer/summaries.js +119 -73
  398. package/dist/indexer/summaries.js.map +1 -1
  399. package/dist/indexer/treesitter/extractCalls.d.ts +1 -0
  400. package/dist/indexer/treesitter/extractCalls.d.ts.map +1 -1
  401. package/dist/indexer/treesitter/extractCalls.js +93 -17
  402. package/dist/indexer/treesitter/extractCalls.js.map +1 -1
  403. package/dist/indexer/treesitter/extractImports.d.ts.map +1 -1
  404. package/dist/indexer/treesitter/extractImports.js +15 -30
  405. package/dist/indexer/treesitter/extractImports.js.map +1 -1
  406. package/dist/indexer/treesitter/extractSymbols.d.ts +5 -22
  407. package/dist/indexer/treesitter/extractSymbols.d.ts.map +1 -1
  408. package/dist/indexer/treesitter/extractSymbols.js +39 -32
  409. package/dist/indexer/treesitter/extractSymbols.js.map +1 -1
  410. package/dist/indexer/treesitter/grammarLoader.js.map +1 -1
  411. package/dist/indexer/treesitter/tsTreesitter.d.ts +1 -1
  412. package/dist/indexer/treesitter/tsTreesitter.d.ts.map +1 -1
  413. package/dist/indexer/watcher.d.ts +5 -0
  414. package/dist/indexer/watcher.d.ts.map +1 -1
  415. package/dist/indexer/watcher.js +27 -10
  416. package/dist/indexer/watcher.js.map +1 -1
  417. package/dist/indexer/worker.js +15 -3
  418. package/dist/indexer/worker.js.map +1 -1
  419. package/dist/indexer/workerPool.d.ts.map +1 -1
  420. package/dist/indexer/workerPool.js +38 -6
  421. package/dist/indexer/workerPool.js.map +1 -1
  422. package/dist/info/report.d.ts +35 -0
  423. package/dist/info/report.d.ts.map +1 -0
  424. package/dist/info/report.js +66 -0
  425. package/dist/info/report.js.map +1 -0
  426. package/dist/live-index/coordinator.d.ts +1 -1
  427. package/dist/live-index/coordinator.d.ts.map +1 -1
  428. package/dist/live-index/coordinator.js +4 -2
  429. package/dist/live-index/coordinator.js.map +1 -1
  430. package/dist/live-index/debounce.js.map +1 -1
  431. package/dist/live-index/file-patcher.d.ts.map +1 -1
  432. package/dist/live-index/file-patcher.js +9 -1
  433. package/dist/live-index/file-patcher.js.map +1 -1
  434. package/dist/live-index/overlay-merge.d.ts +1 -0
  435. package/dist/live-index/overlay-merge.d.ts.map +1 -1
  436. package/dist/live-index/overlay-merge.js +9 -0
  437. package/dist/live-index/overlay-merge.js.map +1 -1
  438. package/dist/live-index/overlay-reader.d.ts.map +1 -1
  439. package/dist/live-index/overlay-reader.js +11 -1
  440. package/dist/live-index/overlay-reader.js.map +1 -1
  441. package/dist/live-index/overlay-store.js +1 -1
  442. package/dist/live-index/overlay-store.js.map +1 -1
  443. package/dist/live-index/reconcile-queue.d.ts +2 -0
  444. package/dist/live-index/reconcile-queue.d.ts.map +1 -1
  445. package/dist/live-index/reconcile-queue.js +15 -1
  446. package/dist/live-index/reconcile-queue.js.map +1 -1
  447. package/dist/live-index/reconcile-worker.d.ts +13 -1
  448. package/dist/live-index/reconcile-worker.d.ts.map +1 -1
  449. package/dist/live-index/reconcile-worker.js +33 -18
  450. package/dist/live-index/reconcile-worker.js.map +1 -1
  451. package/dist/main.js +3 -2
  452. package/dist/main.js.map +1 -1
  453. package/dist/mcp/errors.d.ts +7 -0
  454. package/dist/mcp/errors.d.ts.map +1 -1
  455. package/dist/mcp/errors.js +93 -0
  456. package/dist/mcp/errors.js.map +1 -1
  457. package/dist/mcp/hooks/memory-hint.d.ts +10 -0
  458. package/dist/mcp/hooks/memory-hint.d.ts.map +1 -0
  459. package/dist/mcp/hooks/memory-hint.js +105 -0
  460. package/dist/mcp/hooks/memory-hint.js.map +1 -0
  461. package/dist/mcp/request-normalization.d.ts +2 -0
  462. package/dist/mcp/request-normalization.d.ts.map +1 -0
  463. package/dist/mcp/request-normalization.js +52 -0
  464. package/dist/mcp/request-normalization.js.map +1 -0
  465. package/dist/mcp/savings-meter.d.ts +49 -0
  466. package/dist/mcp/savings-meter.d.ts.map +1 -0
  467. package/dist/mcp/savings-meter.js +152 -0
  468. package/dist/mcp/savings-meter.js.map +1 -0
  469. package/dist/mcp/token-accumulator.d.ts +53 -0
  470. package/dist/mcp/token-accumulator.d.ts.map +1 -0
  471. package/dist/mcp/token-accumulator.js +89 -0
  472. package/dist/mcp/token-accumulator.js.map +1 -0
  473. package/dist/mcp/token-usage.d.ts +1 -0
  474. package/dist/mcp/token-usage.d.ts.map +1 -1
  475. package/dist/mcp/token-usage.js +4 -2
  476. package/dist/mcp/token-usage.js.map +1 -1
  477. package/dist/mcp/tool-call-formatter.d.ts +12 -0
  478. package/dist/mcp/tool-call-formatter.d.ts.map +1 -0
  479. package/dist/mcp/tool-call-formatter.js +216 -0
  480. package/dist/mcp/tool-call-formatter.js.map +1 -0
  481. package/dist/mcp/tool-presentation.d.ts +8 -0
  482. package/dist/mcp/tool-presentation.d.ts.map +1 -0
  483. package/dist/mcp/tool-presentation.js +73 -0
  484. package/dist/mcp/tool-presentation.js.map +1 -0
  485. package/dist/mcp/tools/agent-feedback.d.ts.map +1 -1
  486. package/dist/mcp/tools/agent-feedback.js +4 -3
  487. package/dist/mcp/tools/agent-feedback.js.map +1 -1
  488. package/dist/mcp/tools/agent.d.ts +1 -239
  489. package/dist/mcp/tools/agent.d.ts.map +1 -1
  490. package/dist/mcp/tools/agent.js +26 -111
  491. package/dist/mcp/tools/agent.js.map +1 -1
  492. package/dist/mcp/tools/buffer.d.ts.map +1 -1
  493. package/dist/mcp/tools/buffer.js +46 -7
  494. package/dist/mcp/tools/buffer.js.map +1 -1
  495. package/dist/mcp/tools/code.d.ts.map +1 -1
  496. package/dist/mcp/tools/code.js +57 -20
  497. package/dist/mcp/tools/code.js.map +1 -1
  498. package/dist/mcp/tools/delta.d.ts.map +1 -1
  499. package/dist/mcp/tools/delta.js +7 -4
  500. package/dist/mcp/tools/delta.js.map +1 -1
  501. package/dist/mcp/tools/index.d.ts.map +1 -1
  502. package/dist/mcp/tools/index.js +12 -3
  503. package/dist/mcp/tools/index.js.map +1 -1
  504. package/dist/mcp/tools/info.d.ts +4 -0
  505. package/dist/mcp/tools/info.d.ts.map +1 -0
  506. package/dist/mcp/tools/info.js +7 -0
  507. package/dist/mcp/tools/info.js.map +1 -0
  508. package/dist/mcp/tools/memory.d.ts +1 -1
  509. package/dist/mcp/tools/memory.d.ts.map +1 -1
  510. package/dist/mcp/tools/memory.js +37 -95
  511. package/dist/mcp/tools/memory.js.map +1 -1
  512. package/dist/mcp/tools/prRisk.d.ts +5 -1
  513. package/dist/mcp/tools/prRisk.d.ts.map +1 -1
  514. package/dist/mcp/tools/prRisk.js +8 -3
  515. package/dist/mcp/tools/prRisk.js.map +1 -1
  516. package/dist/mcp/tools/repo.d.ts.map +1 -1
  517. package/dist/mcp/tools/repo.js +33 -17
  518. package/dist/mcp/tools/repo.js.map +1 -1
  519. package/dist/mcp/tools/runtime.d.ts.map +1 -1
  520. package/dist/mcp/tools/runtime.js +101 -13
  521. package/dist/mcp/tools/runtime.js.map +1 -1
  522. package/dist/mcp/tools/slice.d.ts.map +1 -1
  523. package/dist/mcp/tools/slice.js +51 -101
  524. package/dist/mcp/tools/slice.js.map +1 -1
  525. package/dist/mcp/tools/summary.d.ts.map +1 -1
  526. package/dist/mcp/tools/summary.js +27 -14
  527. package/dist/mcp/tools/summary.js.map +1 -1
  528. package/dist/mcp/tools/symbol.d.ts.map +1 -1
  529. package/dist/mcp/tools/symbol.js +156 -37
  530. package/dist/mcp/tools/symbol.js.map +1 -1
  531. package/dist/mcp/tools/usage.d.ts +9 -0
  532. package/dist/mcp/tools/usage.d.ts.map +1 -0
  533. package/dist/mcp/tools/usage.js +130 -0
  534. package/dist/mcp/tools/usage.js.map +1 -0
  535. package/dist/mcp/tools.d.ts +965 -393
  536. package/dist/mcp/tools.d.ts.map +1 -1
  537. package/dist/mcp/tools.js +119 -12
  538. package/dist/mcp/tools.js.map +1 -1
  539. package/dist/memory/file-sync.d.ts +2 -0
  540. package/dist/memory/file-sync.d.ts.map +1 -1
  541. package/dist/memory/file-sync.js +90 -18
  542. package/dist/memory/file-sync.js.map +1 -1
  543. package/dist/memory/surface.d.ts +19 -0
  544. package/dist/memory/surface.d.ts.map +1 -0
  545. package/dist/memory/surface.js +72 -0
  546. package/dist/memory/surface.js.map +1 -0
  547. package/dist/policy/engine.d.ts.map +1 -1
  548. package/dist/policy/engine.js +22 -1
  549. package/dist/policy/engine.js.map +1 -1
  550. package/dist/runtime/artifacts.d.ts.map +1 -1
  551. package/dist/runtime/artifacts.js +5 -0
  552. package/dist/runtime/artifacts.js.map +1 -1
  553. package/dist/runtime/executor.d.ts +1 -1
  554. package/dist/runtime/executor.d.ts.map +1 -1
  555. package/dist/runtime/executor.js +11 -7
  556. package/dist/runtime/executor.js.map +1 -1
  557. package/dist/runtime/runtimes.d.ts +30 -18
  558. package/dist/runtime/runtimes.d.ts.map +1 -1
  559. package/dist/runtime/runtimes.js +262 -220
  560. package/dist/runtime/runtimes.js.map +1 -1
  561. package/dist/server.d.ts +9 -2
  562. package/dist/server.d.ts.map +1 -1
  563. package/dist/server.js +113 -16
  564. package/dist/server.js.map +1 -1
  565. package/dist/services/health.d.ts +1 -0
  566. package/dist/services/health.d.ts.map +1 -1
  567. package/dist/services/health.js +4 -2
  568. package/dist/services/health.js.map +1 -1
  569. package/dist/services/summary.d.ts.map +1 -1
  570. package/dist/services/summary.js +2 -1
  571. package/dist/services/summary.js.map +1 -1
  572. package/dist/sync/pull.d.ts.map +1 -1
  573. package/dist/sync/pull.js +3 -2
  574. package/dist/sync/pull.js.map +1 -1
  575. package/dist/sync/sync.d.ts.map +1 -1
  576. package/dist/sync/sync.js +53 -14
  577. package/dist/sync/sync.js.map +1 -1
  578. package/dist/sync/types.d.ts +1 -0
  579. package/dist/sync/types.d.ts.map +1 -1
  580. package/dist/ts/diagnostics.d.ts.map +1 -1
  581. package/dist/ts/diagnostics.js +8 -4
  582. package/dist/ts/diagnostics.js.map +1 -1
  583. package/dist/ts/mapping.d.ts.map +1 -1
  584. package/dist/ts/mapping.js +29 -2
  585. package/dist/ts/mapping.js.map +1 -1
  586. package/dist/util/logger.d.ts +16 -19
  587. package/dist/util/logger.d.ts.map +1 -1
  588. package/dist/util/logger.js +109 -104
  589. package/dist/util/logger.js.map +1 -1
  590. package/dist/util/package-info.d.ts +2 -0
  591. package/dist/util/package-info.d.ts.map +1 -0
  592. package/dist/util/package-info.js +13 -0
  593. package/dist/util/package-info.js.map +1 -0
  594. package/dist/util/paths.d.ts.map +1 -1
  595. package/dist/util/paths.js +20 -5
  596. package/dist/util/paths.js.map +1 -1
  597. package/dist/util/pidfile.d.ts.map +1 -1
  598. package/dist/util/pidfile.js +6 -1
  599. package/dist/util/pidfile.js.map +1 -1
  600. package/dist/util/resolve-symbol-id.d.ts +18 -0
  601. package/dist/util/resolve-symbol-id.d.ts.map +1 -0
  602. package/dist/util/resolve-symbol-id.js +64 -0
  603. package/dist/util/resolve-symbol-id.js.map +1 -0
  604. package/dist/util/resolve-symbol-ref.d.ts +31 -0
  605. package/dist/util/resolve-symbol-ref.d.ts.map +1 -0
  606. package/dist/util/resolve-symbol-ref.js +153 -0
  607. package/dist/util/resolve-symbol-ref.js.map +1 -0
  608. package/dist/util/safeJson.d.ts +1 -1
  609. package/dist/util/safeJson.d.ts.map +1 -1
  610. package/dist/util/safeJson.js +1 -1
  611. package/dist/util/safeJson.js.map +1 -1
  612. package/dist/util/safeRegex.js +2 -2
  613. package/dist/util/safeRegex.js.map +1 -1
  614. package/dist/util/truncation.d.ts.map +1 -1
  615. package/dist/util/truncation.js +1 -5
  616. package/dist/util/truncation.js.map +1 -1
  617. package/package.json +18 -12
  618. package/scripts/postinstall-prune.mjs +269 -0
  619. package/templates/AGENTS.md.template +84 -0
  620. package/templates/CLAUDE.md.template +41 -179
  621. package/templates/CODEX.md.template +28 -0
  622. package/templates/GEMINI.md.template +28 -0
  623. package/templates/OPENCODE.md.template +27 -0
  624. package/migrations/.gitkeep +0 -1
  625. package/migrations/0001_init.sql +0 -61
  626. package/migrations/0002_edges_indexes.sql +0 -2
  627. package/migrations/0003_versions.sql +0 -22
  628. package/migrations/0004_metrics_audit.sql +0 -23
  629. package/migrations/0005_slice_handles.sql +0 -15
  630. package/migrations/0006_content_addressed.sql +0 -29
  631. package/migrations/0007_add_language_to_symbols.sql +0 -28
  632. package/migrations/0008_performance_indexes.sql +0 -21
  633. package/migrations/0009_fix_edge_fks.sql +0 -37
  634. package/migrations/0010_standardize_fks.sql +0 -35
  635. package/migrations/0011_add_directory_column.sql +0 -20
  636. package/migrations/0012_symbol_references.sql +0 -16
  637. package/migrations/0013_sync_artifacts.sql +0 -17
  638. package/migrations/0014_add_edge_confidence.sql +0 -19
  639. package/migrations/0015_add_edge_resolution_strategy.sql +0 -5
  640. package/migrations/0016_symbol_embeddings.sql +0 -14
  641. package/migrations/0017_agent_feedback.sql +0 -34
  642. package/migrations/0018_summary_cache.sql +0 -15
  643. package/migrations/0019_canonical_test.sql +0 -1
  644. package/migrations/0020_deduplicate_edges.sql +0 -27
  645. package/templates/README.md +0 -228
  646. package/templates/plugin-template/LICENSE +0 -21
  647. package/templates/plugin-template/README.md +0 -309
  648. package/templates/plugin-template/index.ts +0 -160
  649. package/templates/plugin-template/package.json +0 -31
  650. package/templates/plugin-template/test/plugin.test.ts +0 -186
  651. package/templates/plugin-template/tsconfig.json +0 -21
package/README.md CHANGED
@@ -11,11 +11,9 @@
11
11
 
12
12
  <br/>
13
13
 
14
- ![npm version](https://img.shields.io/npm/v/sdl-mcp.svg)
15
- ![npm downloads](https://img.shields.io/npm/dm/sdl-mcp.svg)
16
- ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/GlitterKill/sdl-mcp/ci.yml?label=CI%20Builds)
17
- ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/GlitterKill/sdl-mcp/publish-native.yml?label=Rust%20Indexer%20Builds)
18
- ![GitHub commit activity](https://img.shields.io/github/commit-activity/w/GlitterKill/sdl-mcp)
14
+ ![npm version](https://img.shields.io/npm/v/sdl-mcp.svg?style=for-the-badge)
15
+ ![npm downloads](https://img.shields.io/npm/dm/sdl-mcp.svg?style=for-the-badge)
16
+ ![GitHub commit activity](https://img.shields.io/github/commit-activity/w/GlitterKill/sdl-mcp?style=for-the-badge)
19
17
 
20
18
  </div>
21
19
 
@@ -131,6 +129,12 @@ The core innovation. Named after the adjustable aperture that controls light flo
131
129
  | "Show me the shape of `AuthService`" | ~4,000 tok | ~300 tok | **13x** |
132
130
  | "Where is `this.cache` set?" | ~2,000 tok | ~500 tok | **4x** |
133
131
 
132
+ **Why it matters:**
133
+ - **4–20x token savings** on typical code understanding queries
134
+ - Most questions answered at Rungs 1–2 without ever reading raw code
135
+ - Controlled escalation prevents agents from over-consuming context
136
+ - Policy-gated raw access ensures agents prove they need full source
137
+
134
138
  [Iris Gate Ladder Deep Dive →](./docs/feature-deep-dives/iris-gate-ladder.md)
135
139
 
136
140
  <br/>
@@ -169,6 +173,12 @@ Every function, class, interface, type, and variable becomes a **Symbol Card**:
169
173
 
170
174
  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).
171
175
 
176
+ **Why it matters:**
177
+ - **~100 tokens per symbol** vs. ~2,000 tokens to read the full file
178
+ - Confidence-scored dependency edges trace real call relationships across files
179
+ - Community detection and call-chain tracing reveal architectural structure
180
+ - ETag-based conditional requests avoid re-fetching unchanged symbols
181
+
172
182
  [Indexing & Language Support Deep Dive →](./docs/feature-deep-dives/indexing-languages.md)
173
183
 
174
184
  ---
@@ -198,6 +208,12 @@ Instead of reading files in the same directory, SDL-MCP follows the *dependency
198
208
 
199
209
  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.
200
210
 
211
+ **Why it matters:**
212
+ - Follows the **dependency graph**, not directory boundaries, for cross-cutting context
213
+ - Weighted edge scoring (call > config > import) prioritizes the most relevant symbols
214
+ - Token-budgeted: returns only what fits within your budget (~800 tokens vs. ~16,000 for raw files)
215
+ - Natural-language task-text auto-discovers entry symbols — no symbol IDs needed
216
+
201
217
  [Graph Slicing Deep Dive →](./docs/feature-deep-dives/graph-slicing.md)
202
218
 
203
219
  ---
@@ -223,6 +239,12 @@ Slices have handles, leases, refresh (delta-only updates), and spillover (paged
223
239
 
224
240
  **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.
225
241
 
242
+ **Why it matters:**
243
+ - Semantic diffs show what a change **means**, not just what lines moved
244
+ - Ranked blast radius identifies which dependent symbols are most at risk
245
+ - Fan-in trend analysis detects "amplifier" symbols whose changes ripple further over time
246
+ - PR risk scoring produces actionable findings with test re-run recommendations
247
+
226
248
  [Delta & Blast Radius Deep Dive →](./docs/feature-deep-dives/delta-blast-radius.md)
227
249
 
228
250
  ---
@@ -240,6 +262,11 @@ SDL-MCP doesn't wait for you to save. As you type in your editor, buffer updates
240
262
  LadybugDB (durable)
241
263
  ```
242
264
 
265
+ **Why it matters:**
266
+ - Search, cards, and slices reflect **unsaved editor changes** in real time
267
+ - No manual re-index needed during active development
268
+ - Background AST parsing with in-memory overlay keeps queries fast
269
+
243
270
  [Live Indexing Deep Dive →](./docs/feature-deep-dives/live-indexing.md)
244
271
 
245
272
  ---
@@ -255,6 +282,12 @@ Requests that don't meet policy are denied with actionable guidance ("try `getHo
255
282
 
256
283
  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.
257
284
 
285
+ **Why it matters:**
286
+ - Proof-of-need gating prevents agents from wastefully reading raw code
287
+ - Denied requests include **actionable next-best-action** guidance
288
+ - Full audit logging of every code access decision
289
+ - Sandboxed runtime with executable allowlisting, CWD jailing, and environment scrubbing
290
+
258
291
  [Governance & Policy Deep Dive →](./docs/feature-deep-dives/governance-policy.md)
259
292
 
260
293
  ---
@@ -267,6 +300,11 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
267
300
 
268
301
  `sdl.context.summary` generates portable, token-bounded context briefings in markdown, JSON, or clipboard format for use outside MCP environments.
269
302
 
303
+ **Why it matters:**
304
+ - Autonomous task execution plans the **optimal Iris Gate path** within a token budget
305
+ - Feedback loop records what was useful/missing, improving future slice quality
306
+ - Portable context summaries export findings for use outside MCP environments
307
+
270
308
  [Agent Orchestration Deep Dive →](./docs/feature-deep-dives/agent-orchestration.md)
271
309
 
272
310
  ---
@@ -275,6 +313,12 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
275
313
 
276
314
  Run tests, linters, and scripts through SDL-MCP's governance layer instead of uncontrolled shell access. Three runtimes (Node.js, Python, Shell), code-mode or args-mode, smart output summarization with keyword-matched excerpts, and gzip artifact persistence.
277
315
 
316
+ **Why it matters:**
317
+ - Run tests, linters, and scripts **under governance** instead of uncontrolled shell access
318
+ - 16 runtimes supported (Node, Python, Go, Java, Rust, Shell, and more)
319
+ - Executable allowlisting, CWD jailing, timeout enforcement, and environment scrubbing
320
+ - Smart output summarization with keyword-matched excerpts and gzip artifact persistence
321
+
278
322
  [Runtime Execution Deep Dive →](./docs/feature-deep-dives/runtime-execution.md)
279
323
 
280
324
  ---
@@ -302,6 +346,12 @@ Agents forget everything between sessions. SDL-MCP fixes this with a **graph-bac
302
346
 
303
347
  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.
304
348
 
349
+ **Why it matters:**
350
+ - Structured knowledge **persists across sessions**, linked directly to symbols and files
351
+ - Automatically surfaced inside graph slices when touching related symbols
352
+ - Stale memories flagged when linked symbols change during re-indexing
353
+ - Dual storage: graph DB for fast querying + markdown files for version control and team sharing
354
+
305
355
  [Development Memories Deep Dive →](./docs/feature-deep-dives/development-memories.md)
306
356
 
307
357
  ---
@@ -323,6 +373,12 @@ echo '{"repoId":"my-repo"}' | sdl-mcp tool symbol.search --query "auth"
323
373
 
324
374
  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.
325
375
 
376
+ **Why it matters:**
377
+ - All MCP tool actions accessible from **any terminal** — no server, transport, or SDK required
378
+ - Same code paths and Zod validation as the MCP server — identical behavior
379
+ - Four output formats (json, json-compact, pretty, table) for scripting and CI pipelines
380
+ - Auto-resolves repoId from cwd, supports stdin JSON piping and per-action `--help`
381
+
326
382
  [CLI Tool Access Deep Dive →](./docs/feature-deep-dives/cli-tool-access.md)
327
383
 
328
384
  ---
@@ -340,6 +396,12 @@ The tool gateway consolidates all 29 MCP tools into **4 namespace-scoped tools**
340
396
 
341
397
  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.
342
398
 
399
+ **Why it matters:**
400
+ - **81% token reduction** in `tools/list` overhead (~3,742 → ~713 tokens per conversation)
401
+ - 29 tools consolidated into 4 namespace-scoped tools for simpler agent selection
402
+ - Fewer tool choices means faster and more accurate tool dispatch by the agent
403
+ - Backward-compatible: legacy flat tool names optionally emitted alongside
404
+
343
405
  [Tool Gateway Deep Dive →](./docs/feature-deep-dives/tool-gateway.md)
344
406
 
345
407
  <br/>
@@ -4,16 +4,16 @@
4
4
  "thresholds": {
5
5
  "indexing": {
6
6
  "indexTimePerFile": {
7
- "maxMs": 2500,
7
+ "maxMs": 3000,
8
8
  "trend": "lower-is-better",
9
9
  "allowableIncreasePercent": 30,
10
- "_comment": "Raised for LadybugDB graph backend: graph writes are inherently slower than SQLite inserts. CI runners see ~1500-1700ms per file."
10
+ "_comment": "Raised for LadybugDB graph backend: graph writes are inherently slower than SQLite inserts. CI runners see ~2000-2500ms per file."
11
11
  },
12
12
  "indexTimePerSymbol": {
13
- "maxMs": 150,
13
+ "maxMs": 250,
14
14
  "trend": "lower-is-better",
15
15
  "allowableIncreasePercent": 30,
16
- "_comment": "Raised for LadybugDB graph backend: per-symbol graph operations cost more than SQLite row inserts."
16
+ "_comment": "Raised for LadybugDB graph backend: per-symbol graph operations cost more than SQLite row inserts. CI runners see ~150-200ms per symbol."
17
17
  }
18
18
  },
19
19
  "quality": {
@@ -39,7 +39,7 @@
39
39
  "maxWindowLines": 180,
40
40
  "maxWindowTokens": 1400,
41
41
  "requireIdentifiers": true,
42
- "allowBreakGlass": true
42
+ "allowBreakGlass": false
43
43
  },
44
44
  "redaction": {
45
45
  "enabled": true,
@@ -137,6 +137,10 @@
137
137
  "writeQueueTimeoutMs": 30000,
138
138
  "toolQueueTimeoutMs": 30000
139
139
  },
140
+ "httpAuth": {
141
+ "enabled": true,
142
+ "token": null
143
+ },
140
144
  "codeMode": {
141
145
  "enabled": false,
142
146
  "exclusive": false,
@@ -142,7 +142,7 @@
142
142
  "graphSliceMaxSizeBytes": 52428800
143
143
  },
144
144
  "semantic": {
145
- "enabled": false,
145
+ "enabled": true,
146
146
  "alpha": 0.6,
147
147
  "provider": "mock",
148
148
  "model": "all-MiniLM-L6-v2",
@@ -145,7 +145,7 @@
145
145
  "maxWindowLines": 180,
146
146
  "maxWindowTokens": 1400,
147
147
  "requireIdentifiers": true,
148
- "allowBreakGlass": true
148
+ "allowBreakGlass": false
149
149
  }
150
150
  },
151
151
  "redaction": {
@@ -263,7 +263,7 @@
263
263
  "type": "integer",
264
264
  "description": "Quiet-period threshold in milliseconds before idle checkpoint compaction runs",
265
265
  "minimum": 1000,
266
- "maximum": 300000,
266
+ "maximum": 600000,
267
267
  "default": 15000
268
268
  },
269
269
  "maxDraftFiles": {
@@ -489,7 +489,7 @@
489
489
  "model": {
490
490
  "type": "string",
491
491
  "enum": ["all-MiniLM-L6-v2", "nomic-embed-text-v1.5"],
492
- "default": "all-MiniLM-L6-v2"
492
+ "default": "nomic-embed-text-v1.5"
493
493
  },
494
494
  "modelCacheDir": {
495
495
  "type": "string",
@@ -581,7 +581,7 @@
581
581
  "enabled": true,
582
582
  "alpha": 0.6,
583
583
  "provider": "local",
584
- "model": "all-MiniLM-L6-v2",
584
+ "model": "nomic-embed-text-v1.5",
585
585
  "generateSummaries": false,
586
586
  "summaryModel": "claude-haiku-4-5-20251001",
587
587
  "summaryMaxConcurrency": 5,
@@ -833,6 +833,27 @@
833
833
  "emitLegacyTools": true
834
834
  }
835
835
  },
836
+ "httpAuth": {
837
+ "type": "object",
838
+ "description": "HTTP transport authentication configuration — set a static bearer token or disable auth entirely",
839
+ "properties": {
840
+ "enabled": {
841
+ "type": "boolean",
842
+ "description": "Enable bearer-token authentication for /mcp and /api/* endpoints",
843
+ "default": true
844
+ },
845
+ "token": {
846
+ "type": ["string", "null"],
847
+ "description": "Static bearer token. When null a random token is generated at startup.",
848
+ "minLength": 1,
849
+ "default": null
850
+ }
851
+ },
852
+ "default": {
853
+ "enabled": true,
854
+ "token": null
855
+ }
856
+ },
836
857
  "codeMode": {
837
858
  "type": "object",
838
859
  "description": "Code Mode configuration — batch multiple tool calls in a single chain with $N references between steps",
@@ -1,5 +1,8 @@
1
1
  import type { Action, AgentTask, Evidence, ExecutionMetrics, RungType } from "./types.js";
2
2
  import type { PolicyEngine } from "../policy/engine.js";
3
+ import { evaluateRequest } from "../code/gate.js";
4
+ /** Injectable gate evaluator for testability. */
5
+ export type GateEvaluator = typeof evaluateRequest;
3
6
  export declare class Executor {
4
7
  private evidenceCapture;
5
8
  private actions;
@@ -7,21 +10,41 @@ export declare class Executor {
7
10
  private startTime;
8
11
  private policyEngine;
9
12
  private policyDecisions;
10
- constructor(policyEngine?: PolicyEngine);
13
+ private gateEvaluator;
14
+ private connPromise;
15
+ constructor(policyEngine?: PolicyEngine, gateEvaluator?: GateEvaluator);
16
+ private getConn;
11
17
  execute(task: AgentTask, rungs: RungType[], context: string[]): Promise<{
12
18
  actions: Action[];
13
19
  evidence: Evidence[];
14
20
  success: boolean;
15
21
  }>;
22
+ private getNextEscalationRung;
16
23
  private executeRung;
24
+ /**
25
+ * Resolve file: context entries to symbol IDs by querying the DB.
26
+ */
27
+ private resolveFileSymbols;
28
+ /**
29
+ * Extract symbol IDs and file paths from context entries,
30
+ * resolving file: entries to their constituent symbol IDs.
31
+ */
32
+ private resolveContextToSymbols;
17
33
  private executeCardRung;
18
34
  private executeSkeletonRung;
19
35
  private executeHotPathRung;
20
36
  private executeRawRung;
37
+ /**
38
+ * Extract potential identifiers from task text for hot-path searching.
39
+ */
40
+ private extractIdentifiersFromTask;
21
41
  private generateActionId;
42
+ /**
43
+ * Returns a frozen snapshot of execution metrics computed at the end of
44
+ * the most recent `execute()` call. Calling this during execution will
45
+ * return stale data — use only after `execute()` resolves.
46
+ */
22
47
  getMetrics(): ExecutionMetrics;
23
- getActions(): Action[];
24
- getEvidence(): Evidence[];
25
48
  getNextBestAction(): string | undefined;
26
49
  reset(): void;
27
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agent/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,QAAQ;IACnB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAA0C;gBAErD,YAAY,CAAC,EAAE,YAAY;IAcjC,OAAO,CACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;YAY3D,WAAW;YAuCX,eAAe;YA0Cf,mBAAmB;YAsCnB,kBAAkB;YAsClB,cAAc;IAqF5B,OAAO,CAAC,gBAAgB;IAIxB,UAAU,IAAI,gBAAgB;IAM9B,UAAU,IAAI,MAAM,EAAE;IAItB,WAAW,IAAI,QAAQ,EAAE;IAIzB,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAkBvC,KAAK,IAAI,IAAI;CAcd"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agent/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC;AAmDnD,qBAAa,QAAQ;IACnB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAkD;gBAEzD,YAAY,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa;IActE,OAAO,CAAC,OAAO;IAOT,OAAO,CACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IAkFF,OAAO,CAAC,qBAAqB;YAYf,WAAW;IA0CzB;;OAEG;YACW,kBAAkB;IA2BhC;;;OAGG;YACW,uBAAuB;YAqBvB,eAAe;YAiFf,mBAAmB;YAqFnB,kBAAkB;YAgElB,cAAc;IAwG5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA6ClC,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,UAAU,IAAI,gBAAgB;IAI9B,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAgBvC,KAAK,IAAI,IAAI;CAiBd"}