@flyingrobots/graft 0.7.1 → 0.9.0

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 (366) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/GUIDE.md +8 -3
  3. package/README.md +128 -85
  4. package/dist/adapters/fake-echo-kernel-transport.d.ts +33 -0
  5. package/dist/adapters/fake-echo-kernel-transport.d.ts.map +1 -0
  6. package/dist/adapters/fake-echo-kernel-transport.js +208 -0
  7. package/dist/adapters/fake-echo-kernel-transport.js.map +1 -0
  8. package/dist/api/index.d.ts +3 -0
  9. package/dist/api/index.d.ts.map +1 -1
  10. package/dist/api/index.js +2 -0
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/cli/cli-error.d.ts.map +1 -1
  13. package/dist/cli/cli-error.js +22 -3
  14. package/dist/cli/cli-error.js.map +1 -1
  15. package/dist/cli/command-parser.d.ts.map +1 -1
  16. package/dist/cli/command-parser.js +62 -6
  17. package/dist/cli/command-parser.js.map +1 -1
  18. package/dist/cli/dead-symbols-render.d.ts +2 -0
  19. package/dist/cli/dead-symbols-render.d.ts.map +1 -0
  20. package/dist/cli/dead-symbols-render.js +23 -0
  21. package/dist/cli/dead-symbols-render.js.map +1 -0
  22. package/dist/cli/doctor-render.d.ts +2 -0
  23. package/dist/cli/doctor-render.d.ts.map +1 -0
  24. package/dist/cli/doctor-render.js +80 -0
  25. package/dist/cli/doctor-render.js.map +1 -0
  26. package/dist/cli/entrypoint.d.ts +1 -0
  27. package/dist/cli/entrypoint.d.ts.map +1 -1
  28. package/dist/cli/entrypoint.js +1 -0
  29. package/dist/cli/entrypoint.js.map +1 -1
  30. package/dist/cli/git-graft-enhance-model.d.ts +33 -3
  31. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -1
  32. package/dist/cli/git-graft-enhance-model.js +38 -0
  33. package/dist/cli/git-graft-enhance-model.js.map +1 -1
  34. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -1
  35. package/dist/cli/git-graft-enhance-render.js +13 -0
  36. package/dist/cli/git-graft-enhance-render.js.map +1 -1
  37. package/dist/cli/git-graft-enhance.d.ts.map +1 -1
  38. package/dist/cli/git-graft-enhance.js +44 -1
  39. package/dist/cli/git-graft-enhance.js.map +1 -1
  40. package/dist/cli/index-cmd.d.ts +1 -0
  41. package/dist/cli/index-cmd.d.ts.map +1 -1
  42. package/dist/cli/index-cmd.js +3 -0
  43. package/dist/cli/index-cmd.js.map +1 -1
  44. package/dist/cli/main.d.ts +2 -0
  45. package/dist/cli/main.d.ts.map +1 -1
  46. package/dist/cli/main.js +24 -2
  47. package/dist/cli/main.js.map +1 -1
  48. package/dist/cli/peer-command.d.ts.map +1 -1
  49. package/dist/cli/peer-command.js +25 -0
  50. package/dist/cli/peer-command.js.map +1 -1
  51. package/dist/cli/review-cooldown.d.ts +15 -0
  52. package/dist/cli/review-cooldown.d.ts.map +1 -0
  53. package/dist/cli/review-cooldown.js +136 -0
  54. package/dist/cli/review-cooldown.js.map +1 -0
  55. package/dist/cli/structural-blame-render.d.ts +2 -0
  56. package/dist/cli/structural-blame-render.d.ts.map +1 -0
  57. package/dist/cli/structural-blame-render.js +42 -0
  58. package/dist/cli/structural-blame-render.js.map +1 -0
  59. package/dist/cli/structural-review-render.d.ts +2 -0
  60. package/dist/cli/structural-review-render.d.ts.map +1 -0
  61. package/dist/cli/structural-review-render.js +56 -0
  62. package/dist/cli/structural-review-render.js.map +1 -0
  63. package/dist/cli/structural-test-coverage-render.d.ts +2 -0
  64. package/dist/cli/structural-test-coverage-render.d.ts.map +1 -0
  65. package/dist/cli/structural-test-coverage-render.js +46 -0
  66. package/dist/cli/structural-test-coverage-render.js.map +1 -0
  67. package/dist/contracts/capabilities.d.ts +9 -6
  68. package/dist/contracts/capabilities.d.ts.map +1 -1
  69. package/dist/contracts/capabilities.js +54 -1
  70. package/dist/contracts/capabilities.js.map +1 -1
  71. package/dist/contracts/causal-ontology.d.ts +17 -17
  72. package/dist/contracts/output-schema-cli.d.ts +106 -41
  73. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  74. package/dist/contracts/output-schema-cli.js +29 -0
  75. package/dist/contracts/output-schema-cli.js.map +1 -1
  76. package/dist/contracts/output-schema-fragments.d.ts +238 -76
  77. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  78. package/dist/contracts/output-schema-fragments.js +27 -0
  79. package/dist/contracts/output-schema-fragments.js.map +1 -1
  80. package/dist/contracts/output-schema-mcp.d.ts +171 -62
  81. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  82. package/dist/contracts/output-schema-mcp.js +49 -22
  83. package/dist/contracts/output-schema-mcp.js.map +1 -1
  84. package/dist/contracts/output-schema-meta.d.ts +2 -2
  85. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  86. package/dist/contracts/output-schemas.d.ts +7 -7
  87. package/dist/contracts/output-schemas.d.ts.map +1 -1
  88. package/dist/contracts/output-schemas.js +101 -1
  89. package/dist/contracts/output-schemas.js.map +1 -1
  90. package/dist/echo/canonical-cbor.d.ts +10 -0
  91. package/dist/echo/canonical-cbor.d.ts.map +1 -0
  92. package/dist/echo/canonical-cbor.js +213 -0
  93. package/dist/echo/canonical-cbor.js.map +1 -0
  94. package/dist/echo/codec-runtime.d.ts +72 -0
  95. package/dist/echo/codec-runtime.d.ts.map +1 -0
  96. package/dist/echo/codec-runtime.js +259 -0
  97. package/dist/echo/codec-runtime.js.map +1 -0
  98. package/dist/echo/structural-history-client.d.ts +68 -0
  99. package/dist/echo/structural-history-client.d.ts.map +1 -0
  100. package/dist/echo/structural-history-client.js +149 -0
  101. package/dist/echo/structural-history-client.js.map +1 -0
  102. package/dist/echo/structural-history-envelope-codec.d.ts +46 -0
  103. package/dist/echo/structural-history-envelope-codec.d.ts.map +1 -0
  104. package/dist/echo/structural-history-envelope-codec.js +121 -0
  105. package/dist/echo/structural-history-envelope-codec.js.map +1 -0
  106. package/dist/echo/structural-reading-adapter.d.ts +13 -0
  107. package/dist/echo/structural-reading-adapter.d.ts.map +1 -0
  108. package/dist/echo/structural-reading-adapter.js +120 -0
  109. package/dist/echo/structural-reading-adapter.js.map +1 -0
  110. package/dist/generated/graft-structural-history.codec.generated.d.ts +135 -0
  111. package/dist/generated/graft-structural-history.codec.generated.d.ts.map +1 -0
  112. package/dist/generated/graft-structural-history.codec.generated.js +545 -0
  113. package/dist/generated/graft-structural-history.codec.generated.js.map +1 -0
  114. package/dist/generated/graft-structural-history.d.ts +331 -0
  115. package/dist/generated/graft-structural-history.d.ts.map +1 -0
  116. package/dist/generated/graft-structural-history.js +47 -0
  117. package/dist/generated/graft-structural-history.js.map +1 -0
  118. package/dist/git/version-guard.d.ts +17 -0
  119. package/dist/git/version-guard.d.ts.map +1 -0
  120. package/dist/git/version-guard.js +51 -0
  121. package/dist/git/version-guard.js.map +1 -0
  122. package/dist/hooks/posttooluse-read.js +2 -2
  123. package/dist/hooks/posttooluse-read.js.map +1 -1
  124. package/dist/mcp/burden.d.ts.map +1 -1
  125. package/dist/mcp/burden.js +4 -0
  126. package/dist/mcp/burden.js.map +1 -1
  127. package/dist/mcp/context.d.ts +5 -1
  128. package/dist/mcp/context.d.ts.map +1 -1
  129. package/dist/mcp/context.js +11 -1
  130. package/dist/mcp/context.js.map +1 -1
  131. package/dist/mcp/daemon-server.d.ts.map +1 -1
  132. package/dist/mcp/daemon-server.js +2 -0
  133. package/dist/mcp/daemon-server.js.map +1 -1
  134. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  135. package/dist/mcp/persisted-local-history-graph.js +2 -1
  136. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  137. package/dist/mcp/persisted-local-history.d.ts +5 -5
  138. package/dist/mcp/repo-tool-job.d.ts.map +1 -1
  139. package/dist/mcp/repo-tool-job.js +2 -0
  140. package/dist/mcp/repo-tool-job.js.map +1 -1
  141. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
  142. package/dist/mcp/repo-tool-worker-context.js +19 -0
  143. package/dist/mcp/repo-tool-worker-context.js.map +1 -1
  144. package/dist/mcp/server-context.d.ts.map +1 -1
  145. package/dist/mcp/server-context.js +17 -0
  146. package/dist/mcp/server-context.js.map +1 -1
  147. package/dist/mcp/server-invocation.d.ts.map +1 -1
  148. package/dist/mcp/server-invocation.js +206 -147
  149. package/dist/mcp/server-invocation.js.map +1 -1
  150. package/dist/mcp/server-tool-access.d.ts.map +1 -1
  151. package/dist/mcp/server-tool-access.js +4 -0
  152. package/dist/mcp/server-tool-access.js.map +1 -1
  153. package/dist/mcp/server.d.ts.map +1 -1
  154. package/dist/mcp/server.js +184 -116
  155. package/dist/mcp/server.js.map +1 -1
  156. package/dist/mcp/stdio-server.d.ts.map +1 -1
  157. package/dist/mcp/stdio-server.js +2 -0
  158. package/dist/mcp/stdio-server.js.map +1 -1
  159. package/dist/mcp/tool-registry.d.ts.map +1 -1
  160. package/dist/mcp/tool-registry.js +9 -1
  161. package/dist/mcp/tool-registry.js.map +1 -1
  162. package/dist/mcp/tools/changed-since.d.ts.map +1 -1
  163. package/dist/mcp/tools/changed-since.js +10 -3
  164. package/dist/mcp/tools/changed-since.js.map +1 -1
  165. package/dist/mcp/tools/dead-symbols.d.ts +3 -0
  166. package/dist/mcp/tools/dead-symbols.d.ts.map +1 -0
  167. package/dist/mcp/tools/dead-symbols.js +32 -0
  168. package/dist/mcp/tools/dead-symbols.js.map +1 -0
  169. package/dist/mcp/tools/map.d.ts.map +1 -1
  170. package/dist/mcp/tools/map.js +2 -0
  171. package/dist/mcp/tools/map.js.map +1 -1
  172. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  173. package/dist/mcp/tools/precision-warp.js +2 -6
  174. package/dist/mcp/tools/precision-warp.js.map +1 -1
  175. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -1
  176. package/dist/mcp/tools/refactor-difficulty.js +2 -0
  177. package/dist/mcp/tools/refactor-difficulty.js.map +1 -1
  178. package/dist/mcp/tools/safe-read.d.ts.map +1 -1
  179. package/dist/mcp/tools/safe-read.js +10 -105
  180. package/dist/mcp/tools/safe-read.js.map +1 -1
  181. package/dist/mcp/tools/structural-blame.d.ts.map +1 -1
  182. package/dist/mcp/tools/structural-blame.js +3 -0
  183. package/dist/mcp/tools/structural-blame.js.map +1 -1
  184. package/dist/mcp/tools/structural-review.d.ts.map +1 -1
  185. package/dist/mcp/tools/structural-review.js +9 -22
  186. package/dist/mcp/tools/structural-review.js.map +1 -1
  187. package/dist/mcp/tools/structural-test-coverage.d.ts +3 -0
  188. package/dist/mcp/tools/structural-test-coverage.d.ts.map +1 -0
  189. package/dist/mcp/tools/structural-test-coverage.js +35 -0
  190. package/dist/mcp/tools/structural-test-coverage.js.map +1 -0
  191. package/dist/mcp/tools/workspace-list-opened.d.ts +3 -0
  192. package/dist/mcp/tools/workspace-list-opened.d.ts.map +1 -0
  193. package/dist/mcp/tools/workspace-list-opened.js +10 -0
  194. package/dist/mcp/tools/workspace-list-opened.js.map +1 -0
  195. package/dist/mcp/tools/workspace-open.d.ts +3 -0
  196. package/dist/mcp/tools/workspace-open.d.ts.map +1 -0
  197. package/dist/mcp/tools/workspace-open.js +34 -0
  198. package/dist/mcp/tools/workspace-open.js.map +1 -0
  199. package/dist/mcp/workspace-router-model.d.ts +27 -0
  200. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  201. package/dist/mcp/workspace-router-model.js.map +1 -1
  202. package/dist/mcp/workspace-router.d.ts +9 -2
  203. package/dist/mcp/workspace-router.d.ts.map +1 -1
  204. package/dist/mcp/workspace-router.js +145 -1
  205. package/dist/mcp/workspace-router.js.map +1 -1
  206. package/dist/operations/cached-file.d.ts +6 -2
  207. package/dist/operations/cached-file.d.ts.map +1 -1
  208. package/dist/operations/cached-file.js +30 -6
  209. package/dist/operations/cached-file.js.map +1 -1
  210. package/dist/operations/export-surface-diff.d.ts.map +1 -1
  211. package/dist/operations/export-surface-diff.js +2 -0
  212. package/dist/operations/export-surface-diff.js.map +1 -1
  213. package/dist/operations/file-outline.js +2 -2
  214. package/dist/operations/file-outline.js.map +1 -1
  215. package/dist/operations/graft-diff.d.ts.map +1 -1
  216. package/dist/operations/graft-diff.js +2 -0
  217. package/dist/operations/graft-diff.js.map +1 -1
  218. package/dist/operations/projection-safety.d.ts.map +1 -1
  219. package/dist/operations/projection-safety.js +2 -0
  220. package/dist/operations/projection-safety.js.map +1 -1
  221. package/dist/operations/repo-workspace.d.ts.map +1 -1
  222. package/dist/operations/repo-workspace.js +26 -8
  223. package/dist/operations/repo-workspace.js.map +1 -1
  224. package/dist/operations/review-cooldown-status.d.ts +27 -0
  225. package/dist/operations/review-cooldown-status.d.ts.map +1 -0
  226. package/dist/operations/review-cooldown-status.js +115 -0
  227. package/dist/operations/review-cooldown-status.js.map +1 -0
  228. package/dist/operations/safe-read.js +2 -2
  229. package/dist/operations/safe-read.js.map +1 -1
  230. package/dist/operations/sludge-detector.d.ts.map +1 -1
  231. package/dist/operations/sludge-detector.js +2 -1
  232. package/dist/operations/sludge-detector.js.map +1 -1
  233. package/dist/operations/structural-review.js +8 -8
  234. package/dist/operations/structural-review.js.map +1 -1
  235. package/dist/operations/structural-test-coverage-map.d.ts +44 -0
  236. package/dist/operations/structural-test-coverage-map.d.ts.map +1 -0
  237. package/dist/operations/structural-test-coverage-map.js +331 -0
  238. package/dist/operations/structural-test-coverage-map.js.map +1 -0
  239. package/dist/operations/structured-buffer-compare.d.ts.map +1 -1
  240. package/dist/operations/structured-buffer-compare.js +4 -1
  241. package/dist/operations/structured-buffer-compare.js.map +1 -1
  242. package/dist/operations/structured-buffer-model.d.ts +15 -13
  243. package/dist/operations/structured-buffer-model.d.ts.map +1 -1
  244. package/dist/operations/structured-buffer-model.js +24 -5
  245. package/dist/operations/structured-buffer-model.js.map +1 -1
  246. package/dist/operations/structured-buffer-query.d.ts.map +1 -1
  247. package/dist/operations/structured-buffer-query.js +21 -12
  248. package/dist/operations/structured-buffer-query.js.map +1 -1
  249. package/dist/parser/extractors/common.d.ts +16 -0
  250. package/dist/parser/extractors/common.d.ts.map +1 -0
  251. package/dist/parser/extractors/common.js +23 -0
  252. package/dist/parser/extractors/common.js.map +1 -0
  253. package/dist/parser/extractors/go.d.ts +18 -0
  254. package/dist/parser/extractors/go.d.ts.map +1 -0
  255. package/dist/parser/extractors/go.js +200 -0
  256. package/dist/parser/extractors/go.js.map +1 -0
  257. package/dist/parser/extractors/graphql.d.ts +26 -0
  258. package/dist/parser/extractors/graphql.d.ts.map +1 -0
  259. package/dist/parser/extractors/graphql.js +239 -0
  260. package/dist/parser/extractors/graphql.js.map +1 -0
  261. package/dist/parser/extractors/index.d.ts +4 -0
  262. package/dist/parser/extractors/index.d.ts.map +1 -0
  263. package/dist/parser/extractors/index.js +26 -0
  264. package/dist/parser/extractors/index.js.map +1 -0
  265. package/dist/parser/extractors/json.d.ts +10 -0
  266. package/dist/parser/extractors/json.d.ts.map +1 -0
  267. package/dist/parser/extractors/json.js +75 -0
  268. package/dist/parser/extractors/json.js.map +1 -0
  269. package/dist/parser/extractors/python.d.ts +16 -0
  270. package/dist/parser/extractors/python.d.ts.map +1 -0
  271. package/dist/parser/extractors/python.js +145 -0
  272. package/dist/parser/extractors/python.js.map +1 -0
  273. package/dist/parser/extractors/rust.d.ts +12 -0
  274. package/dist/parser/extractors/rust.d.ts.map +1 -0
  275. package/dist/parser/extractors/rust.js +122 -0
  276. package/dist/parser/extractors/rust.js.map +1 -0
  277. package/dist/parser/extractors/toml.d.ts +10 -0
  278. package/dist/parser/extractors/toml.d.ts.map +1 -0
  279. package/dist/parser/extractors/toml.js +74 -0
  280. package/dist/parser/extractors/toml.js.map +1 -0
  281. package/dist/parser/extractors/typescript.d.ts +13 -0
  282. package/dist/parser/extractors/typescript.d.ts.map +1 -0
  283. package/dist/parser/extractors/typescript.js +179 -0
  284. package/dist/parser/extractors/typescript.js.map +1 -0
  285. package/dist/parser/extractors/yaml.d.ts +13 -0
  286. package/dist/parser/extractors/yaml.d.ts.map +1 -0
  287. package/dist/parser/extractors/yaml.js +93 -0
  288. package/dist/parser/extractors/yaml.js.map +1 -0
  289. package/dist/parser/lang.d.ts +2 -2
  290. package/dist/parser/lang.d.ts.map +1 -1
  291. package/dist/parser/lang.js +19 -1
  292. package/dist/parser/lang.js.map +1 -1
  293. package/dist/parser/outline.d.ts +4 -0
  294. package/dist/parser/outline.d.ts.map +1 -1
  295. package/dist/parser/outline.js +32 -221
  296. package/dist/parser/outline.js.map +1 -1
  297. package/dist/parser/runtime.d.ts +7 -0
  298. package/dist/parser/runtime.d.ts.map +1 -1
  299. package/dist/parser/runtime.js +99 -10
  300. package/dist/parser/runtime.js.map +1 -1
  301. package/dist/parser/types.d.ts +1 -1
  302. package/dist/parser/types.d.ts.map +1 -1
  303. package/dist/parser/types.js.map +1 -1
  304. package/dist/ports/echo-kernel-transport.d.ts +12 -0
  305. package/dist/ports/echo-kernel-transport.d.ts.map +1 -0
  306. package/dist/ports/echo-kernel-transport.js +13 -0
  307. package/dist/ports/echo-kernel-transport.js.map +1 -0
  308. package/dist/ports/provenance-timeline.d.ts +10 -0
  309. package/dist/ports/provenance-timeline.d.ts.map +1 -0
  310. package/dist/ports/provenance-timeline.js +17 -0
  311. package/dist/ports/provenance-timeline.js.map +1 -0
  312. package/dist/ports/semantic-enrichment.d.ts +47 -0
  313. package/dist/ports/semantic-enrichment.d.ts.map +1 -0
  314. package/dist/ports/semantic-enrichment.js +2 -0
  315. package/dist/ports/semantic-enrichment.js.map +1 -0
  316. package/dist/ports/structural-reading.d.ts +100 -0
  317. package/dist/ports/structural-reading.d.ts.map +1 -0
  318. package/dist/ports/structural-reading.js +41 -0
  319. package/dist/ports/structural-reading.js.map +1 -0
  320. package/dist/warp/ast-import-resolver.d.ts.map +1 -1
  321. package/dist/warp/ast-import-resolver.js +2 -1
  322. package/dist/warp/ast-import-resolver.js.map +1 -1
  323. package/dist/warp/dead-symbols.d.ts.map +1 -1
  324. package/dist/warp/dead-symbols.js +4 -7
  325. package/dist/warp/dead-symbols.js.map +1 -1
  326. package/dist/warp/index-head.d.ts +4 -0
  327. package/dist/warp/index-head.d.ts.map +1 -1
  328. package/dist/warp/index-head.js +255 -22
  329. package/dist/warp/index-head.js.map +1 -1
  330. package/dist/warp/observers.d.ts.map +1 -1
  331. package/dist/warp/observers.js +3 -2
  332. package/dist/warp/observers.js.map +1 -1
  333. package/dist/warp/refactor-difficulty.d.ts.map +1 -1
  334. package/dist/warp/refactor-difficulty.js +4 -9
  335. package/dist/warp/refactor-difficulty.js.map +1 -1
  336. package/dist/warp/references.d.ts.map +1 -1
  337. package/dist/warp/references.js +2 -1
  338. package/dist/warp/references.js.map +1 -1
  339. package/dist/warp/semantic-enrichment.d.ts +14 -0
  340. package/dist/warp/semantic-enrichment.d.ts.map +1 -0
  341. package/dist/warp/semantic-enrichment.js +55 -0
  342. package/dist/warp/semantic-enrichment.js.map +1 -0
  343. package/dist/warp/structural-queries.d.ts.map +1 -1
  344. package/dist/warp/structural-queries.js +7 -14
  345. package/dist/warp/structural-queries.js.map +1 -1
  346. package/dist/warp/structural-reading-adapter.d.ts +28 -0
  347. package/dist/warp/structural-reading-adapter.d.ts.map +1 -0
  348. package/dist/warp/structural-reading-adapter.js +94 -0
  349. package/dist/warp/structural-reading-adapter.js.map +1 -0
  350. package/dist/warp/sym-id-codec.d.ts +14 -0
  351. package/dist/warp/sym-id-codec.d.ts.map +1 -0
  352. package/dist/warp/sym-id-codec.js +47 -0
  353. package/dist/warp/sym-id-codec.js.map +1 -0
  354. package/dist/warp/symbol-timeline.d.ts.map +1 -1
  355. package/dist/warp/symbol-timeline.js +6 -14
  356. package/dist/warp/symbol-timeline.js.map +1 -1
  357. package/dist/warp/warp-structural-churn.d.ts.map +1 -1
  358. package/dist/warp/warp-structural-churn.js +6 -10
  359. package/dist/warp/warp-structural-churn.js.map +1 -1
  360. package/dist/warp/warp-structural-log.d.ts.map +1 -1
  361. package/dist/warp/warp-structural-log.js +8 -10
  362. package/dist/warp/warp-structural-log.js.map +1 -1
  363. package/docs/CLI.md +63 -5
  364. package/docs/MCP.md +12 -6
  365. package/docs/SETUP.md +12 -6
  366. package/package.json +13 -4
@@ -2,6 +2,7 @@ import * as path from "node:path";
2
2
  import { z } from "zod";
3
3
  import { extractOutline } from "../../parser/outline.js";
4
4
  import { detectLang } from "../../parser/lang.js";
5
+ import { ensureParserReady } from "../../parser/runtime.js";
5
6
  import { GitFileQuery, listGitFiles } from "./git-files.js";
6
7
  import { evaluateMcpRefusal } from "../policy.js";
7
8
  import { collectSymbols, normalizeRepoPath } from "./precision.js";
@@ -66,6 +67,7 @@ export const mapTool = {
66
67
  },
67
68
  createHandler() {
68
69
  return async (args, ctx) => {
70
+ await ensureParserReady();
69
71
  const request = new StructuralMapRequest(args, ctx.projectRoot);
70
72
  // Budget gate: if the session budget is exhausted, return summary-only.
71
73
  const budget = ctx.governor.getBudget();
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/mcp/tools/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/mcp/tools/map.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"precision-warp.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/precision-warp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAgC5D,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAoBrG;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAqCjC"}
1
+ {"version":3,"file":"precision-warp.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/precision-warp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA6B5D,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAoBrG;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAqCjC"}
@@ -1,14 +1,10 @@
1
1
  import { observeGraph } from "../../warp/context.js";
2
2
  import { allSymbolsLens, commitsLens, fileSymbolsLens, symbolByNameLens } from "../../warp/observers.js";
3
+ import { SymIdCodec } from "../../warp/sym-id-codec.js";
3
4
  import { PrecisionSearchRequest } from "./precision-query.js";
4
5
  import { PrecisionSymbolMatch } from "./precision-match.js";
5
6
  function decodeSymbolPath(nodeId) {
6
- if (!nodeId.startsWith("sym:"))
7
- return null;
8
- const lastColon = nodeId.lastIndexOf(":");
9
- if (lastColon <= "sym:".length)
10
- return null;
11
- return nodeId.slice("sym:".length, lastColon);
7
+ return SymIdCodec.filePath(nodeId);
12
8
  }
13
9
  function toMatch(nodeId, props) {
14
10
  const name = props["name"];
@@ -1 +1 @@
1
- {"version":3,"file":"precision-warp.js","sourceRoot":"","sources":["../../../src/mcp/tools/precision-warp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precision-warp.js","sourceRoot":"","sources":["../../../src/mcp/tools/precision-warp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refactor-difficulty.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/refactor-difficulty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,sBAAsB,EAAE,cAoCpC,CAAC"}
1
+ {"version":3,"file":"refactor-difficulty.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/refactor-difficulty.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,sBAAsB,EAAE,cAqCpC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { toJsonObject } from "../../operations/result-dto.js";
3
+ import { ensureParserReady } from "../../parser/runtime.js";
3
4
  import { refactorDifficultyFromGraph } from "../../warp/refactor-difficulty.js";
4
5
  export const refactorDifficultyTool = {
5
6
  name: "graft_difficulty",
@@ -13,6 +14,7 @@ export const refactorDifficultyTool = {
13
14
  },
14
15
  createHandler() {
15
16
  return async (args, ctx) => {
17
+ await ensureParserReady();
16
18
  const symbol = args["symbol"];
17
19
  const rawPath = args["path"];
18
20
  const rawLimit = args["limit"];
@@ -1 +1 @@
1
- {"version":3,"file":"refactor-difficulty.js","sourceRoot":"","sources":["../../../src/mcp/tools/refactor-difficulty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAGhF,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IACpD,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,kEAAkE;QAClE,kEAAkE;QAClE,gCAAgC;IAClC,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAE/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE;gBACrD,MAAM;gBACN,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,CAAC,CAAC;YAEH,GAAG,CAAC,eAAe,CAAC;gBAClB,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrD,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"refactor-difficulty.js","sourceRoot":"","sources":["../../../src/mcp/tools/refactor-difficulty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAGhF,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IACpD,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,kEAAkE;QAClE,kEAAkE;QAClE,gCAAgC;IAClC,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAE/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE;gBACrD,MAAM;gBACN,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,CAAC,CAAC;YAEH,GAAG,CAAC,eAAe,CAAC;gBAClB,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrD,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"safe-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/safe-read.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAUjE,eAAO,MAAM,YAAY,EAAE,cAgI1B,CAAC"}
1
+ {"version":3,"file":"safe-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/safe-read.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAcjE,eAAO,MAAM,YAAY,EAAE,cA2B1B,CAAC"}
@@ -1,17 +1,16 @@
1
1
  import { z } from "zod";
2
- import { safeRead } from "../../operations/safe-read.js";
3
2
  import { toJsonObject } from "../../operations/result-dto.js";
4
- import { RefusedResult } from "../../policy/types.js";
5
- import { diffOutlines } from "../../parser/diff.js";
6
- import { CachedFile } from "../cached-file.js";
7
- import { evaluateMcpPolicy } from "../policy.js";
8
- import { toRepoPolicyPath } from "../../adapters/repo-paths.js";
3
+ import { createRepoWorkspaceFromToolContext } from "../repo-workspace.js";
9
4
  const PROJECTION_METRICS = {
10
5
  content: (m) => { m.recordRead(); },
11
6
  outline: (m) => { m.recordOutline(); },
12
7
  refused: (m) => { m.recordRefusal(); },
8
+ cache_hit: (m, result) => {
9
+ if (result.projection === "cache_hit") {
10
+ m.recordCacheHit(result.estimatedBytesAvoided);
11
+ }
12
+ },
13
13
  };
14
- const CACHEABLE_PROJECTIONS = new Set(["content", "outline"]);
15
14
  export const safeReadTool = {
16
15
  name: "safe_read",
17
16
  description: "Policy-enforced file read. Returns full content for small files, " +
@@ -23,109 +22,15 @@ export const safeReadTool = {
23
22
  return async (args, ctx) => {
24
23
  const filePath = ctx.resolvePath(args["path"]);
25
24
  ctx.recordFootprint({ paths: [filePath] });
26
- // Build CachedFile once — all consumers share the same snapshot,
27
- // eliminating TOCTOU races where the file changes between reads.
28
- let cf = null;
29
- try {
30
- const rawContent = await ctx.fs.readFile(filePath, "utf-8");
31
- cf = new CachedFile(filePath, rawContent);
32
- }
33
- catch {
34
- // File doesn't exist or can't be read — proceed to safeRead for error handling
35
- }
36
- // Check cache if we could read the file
37
- if (cf?.supportsOutline === true) {
38
- const cacheResult = ctx.cache.check(filePath, cf.rawContent);
39
- if (cacheResult.hit) {
40
- // Defense: re-check policy before returning cached data.
41
- const policy = evaluateMcpPolicy(ctx, filePath, cf.actual);
42
- if (policy instanceof RefusedResult) {
43
- ctx.metrics.recordRefusal();
44
- return ctx.respond("safe_read", {
45
- path: filePath,
46
- projection: "refused",
47
- reason: policy.reason,
48
- reasonDetail: policy.reasonDetail,
49
- next: [...policy.next],
50
- actual: cf.actual,
51
- });
52
- }
53
- cacheResult.obs.touch(ctx.cache.now());
54
- ctx.metrics.recordCacheHit(cf.actual.bytes);
55
- ctx.recordFootprint({
56
- symbols: cacheResult.obs.outline.map((e) => e.name),
57
- });
58
- return ctx.respond("safe_read", {
59
- path: filePath,
60
- projection: "cache_hit",
61
- reason: "REREAD_UNCHANGED",
62
- outline: cacheResult.obs.outline,
63
- jumpTable: cacheResult.obs.jumpTable,
64
- actual: cf.actual,
65
- readCount: cacheResult.obs.readCount,
66
- estimatedBytesAvoided: cf.actual.bytes,
67
- lastReadAt: cacheResult.obs.lastReadAt,
68
- });
69
- }
70
- // File changed since last observation — compute structural diff
71
- if (cacheResult.stale !== null) {
72
- // Defense: re-check policy before returning structural data.
73
- const policy = evaluateMcpPolicy(ctx, filePath, cf.actual);
74
- if (policy instanceof RefusedResult) {
75
- ctx.metrics.recordRefusal();
76
- return ctx.respond("safe_read", {
77
- path: filePath,
78
- projection: "refused",
79
- reason: policy.reason,
80
- reasonDetail: policy.reasonDetail,
81
- next: [...policy.next],
82
- actual: cf.actual,
83
- });
84
- }
85
- const diff = diffOutlines(cacheResult.stale.outline, cf.outline);
86
- const newReadCount = cacheResult.stale.readCount + 1;
87
- ctx.cache.record(filePath, cf.hash, cf.outline, cf.jumpTable, cf.actual);
88
- ctx.recordFootprint({
89
- symbols: cf.outline.map((e) => e.name),
90
- });
91
- const updatedObs = ctx.cache.get(filePath);
92
- return ctx.respond("safe_read", {
93
- path: filePath,
94
- projection: "diff",
95
- reason: "CHANGED_SINCE_LAST_READ",
96
- diff,
97
- outline: cf.outline,
98
- jumpTable: cf.jumpTable,
99
- actual: cf.actual,
100
- readCount: newReadCount,
101
- lastReadAt: updatedObs?.lastReadAt ?? ctx.cache.now(),
102
- });
103
- }
104
- }
105
- // First read — pass rawContent to avoid double-read (TOCTOU)
106
- const result = await safeRead(filePath, {
107
- fs: ctx.fs,
108
- codec: ctx.codec,
109
- content: cf?.rawContent,
25
+ const workspace = createRepoWorkspaceFromToolContext(ctx);
26
+ const result = await workspace.safeRead({
27
+ path: args["path"],
110
28
  intent: args["intent"],
111
- policyPath: toRepoPolicyPath(ctx.projectRoot, filePath),
112
- graftignorePatterns: [...ctx.graftignorePatterns],
113
- sessionDepth: ctx.governor.getGovernorDepth(),
114
- budgetRemaining: ctx.governor.getBudget()?.remaining,
115
29
  });
116
- PROJECTION_METRICS[result.projection]?.(ctx.metrics);
30
+ PROJECTION_METRICS[result.projection]?.(ctx.metrics, result);
117
31
  if (result.outline !== undefined) {
118
32
  ctx.recordFootprint({ symbols: result.outline.map((e) => e.name) });
119
33
  }
120
- // Record observation for cacheable projections — uses CachedFile
121
- // outline (no re-read) to eliminate the snapshot race.
122
- if (cf !== null &&
123
- cf.supportsOutline &&
124
- result.actual !== undefined &&
125
- CACHEABLE_PROJECTIONS.has(result.projection) &&
126
- result.reason !== "UNSUPPORTED_LANGUAGE") {
127
- ctx.cache.record(filePath, cf.hash, cf.outline, cf.jumpTable, result.actual);
128
- }
129
34
  return ctx.respond("safe_read", toJsonObject(result));
130
35
  };
131
36
  },
@@ -1 +1 @@
1
- {"version":3,"file":"safe-read.js","sourceRoot":"","sources":["../../../src/mcp/tools/safe-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-read.js","sourceRoot":"","sources":["../../../src/mcp/tools/safe-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,OAAO,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,kBAAkB,GAAsG;IAC5H,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACvB,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,+BAA+B;IACjC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;IAC3D,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC,CAAC;YACzD,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,SAAS,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;gBAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAuB;aAC7C,CAAC,CAAC;YAEH,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"structural-blame.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/structural-blame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAIjE,eAAO,MAAM,mBAAmB,EAAE,cAiDjC,CAAC"}
1
+ {"version":3,"file":"structural-blame.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/structural-blame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAIjE,eAAO,MAAM,mBAAmB,EAAE,cAoDjC,CAAC"}
@@ -35,7 +35,10 @@ export const structuralBlameTool = {
35
35
  tick: v.tick,
36
36
  changeKind: v.changeKind,
37
37
  present: v.present,
38
+ path: v.filePath,
38
39
  signature: v.signature ?? null,
40
+ ...(v.startLine !== undefined ? { startLine: v.startLine } : {}),
41
+ ...(v.endLine !== undefined ? { endLine: v.endLine } : {}),
39
42
  })),
40
43
  }));
41
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"structural-blame.js","sourceRoot":"","sources":["../../../src/mcp/tools/structural-blame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,kEAAkE;QAClE,gEAAgE;QAChE,gEAAgE;QAChE,4BAA4B;IAC9B,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAE7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YAEjC,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAC1C,IAAI,EACJ,UAAU,EACV,QAAQ,IAAI,EAAE,CACf,CAAC;YAEF,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAE/C,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;gBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;gBAC9C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,IAAI;gBACtD,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;iBAC/B,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"structural-blame.js","sourceRoot":"","sources":["../../../src/mcp/tools/structural-blame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,kEAAkE;QAClE,gEAAgE;QAChE,gEAAgE;QAChE,4BAA4B;IAC9B,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAE7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YAEjC,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAC1C,IAAI,EACJ,UAAU,EACV,QAAQ,IAAI,EAAE,CACf,CAAC;YAEF,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAE/C,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;gBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;gBAC9C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,IAAI;gBACtD,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,CAAC,CAAC,QAAQ;oBAChB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;oBAC9B,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"structural-review.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/structural-review.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,cAAc,EAAe,MAAM,eAAe,CAAC;AAgC9E,eAAO,MAAM,oBAAoB,EAAE,cA2BlC,CAAC"}
1
+ {"version":3,"file":"structural-review.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/structural-review.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,cAAc,EAAe,MAAM,eAAe,CAAC;AAmB9E,eAAO,MAAM,oBAAoB,EAAE,cA2BlC,CAAC"}
@@ -1,29 +1,16 @@
1
1
  import { z } from "zod";
2
2
  import { structuralReview } from "../../operations/structural-review.js";
3
3
  import { toJsonObject } from "../../operations/result-dto.js";
4
- import { countSymbolReferencesFromGraph } from "../../warp/warp-reference-count.js";
5
- import { nodePathOps } from "../../adapters/node-paths.js";
6
- import { countNamedImportReferencesAtRef } from "../../operations/import-reference-impact.js";
7
4
  async function countReviewReferences(ctx, symbolName, filePath, headRef) {
8
- const warpCtx = await ctx.getWarp();
9
- const graphResult = await countSymbolReferencesFromGraph(warpCtx, symbolName, filePath);
10
- if (graphResult.referenceCount > 0) {
11
- return graphResult;
12
- }
13
- try {
14
- const fallbackResult = await countNamedImportReferencesAtRef({
15
- cwd: ctx.projectRoot,
16
- git: ctx.git,
17
- pathOps: nodePathOps,
18
- symbolName,
19
- filePath,
20
- ref: headRef,
21
- });
22
- return fallbackResult.referenceCount > 0 ? fallbackResult : graphResult;
23
- }
24
- catch {
25
- return graphResult;
26
- }
5
+ const reading = await ctx.getStructuralReadingPort().countSymbolReferences({
6
+ symbolName,
7
+ filePath,
8
+ ref: headRef,
9
+ });
10
+ return {
11
+ referenceCount: reading.payload.referenceCount,
12
+ referencingFiles: reading.payload.referencingFiles,
13
+ };
27
14
  }
28
15
  export const structuralReviewTool = {
29
16
  name: "graft_review",
@@ -1 +1 @@
1
- {"version":3,"file":"structural-review.js","sourceRoot":"","sources":["../../../src/mcp/tools/structural-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAA6B,MAAM,uCAAuC,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAE9F,KAAK,UAAU,qBAAqB,CAClC,GAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxF,IAAI,WAAW,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,+BAA+B,CAAC;YAC3D,GAAG,EAAE,GAAG,CAAC,WAAW;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,OAAO,EAAE,WAAW;YACpB,UAAU;YACV,QAAQ;YACR,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,gEAAgE;QAChE,kEAAkE;QAClE,mEAAmE;IACrE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;IACpE,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;gBACpC,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAC/D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAuB;gBACxC,IAAI;gBACJ,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;oBAC9C,OAAO,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;gBAC1E,CAAC;aACF,CAAC,CAAC;YACH,GAAG,CAAC,eAAe,CAAC;gBAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"structural-review.js","sourceRoot":"","sources":["../../../src/mcp/tools/structural-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAA6B,MAAM,uCAAuC,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,KAAK,UAAU,qBAAqB,CAClC,GAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,wBAAwB,EAAE,CAAC,qBAAqB,CAAC;QACzE,UAAU;QACV,QAAQ;QACR,GAAG,EAAE,OAAO;KACb,CAAC,CAAC;IACH,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;QAC9C,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,gEAAgE;QAChE,kEAAkE;QAClE,mEAAmE;IACrE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;IACpE,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;gBACpC,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAC/D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAuB;gBACxC,IAAI;gBACJ,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;oBAC9C,OAAO,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;gBAC1E,CAAC;aACF,CAAC,CAAC;YACH,GAAG,CAAC,eAAe,CAAC;gBAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../context.js";
2
+ export declare const structuralTestCoverageTool: ToolDefinition;
3
+ //# sourceMappingURL=structural-test-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-test-coverage.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/structural-test-coverage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,0BAA0B,EAAE,cAiCxC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import { structuralTestCoverageMap } from "../../operations/structural-test-coverage-map.js";
3
+ import { toJsonObject } from "../../operations/result-dto.js";
4
+ export const structuralTestCoverageTool = {
5
+ name: "graft_test_coverage",
6
+ description: "Structural/reference test coverage map. Reports exported source symbols " +
7
+ "with or without obvious references in the configured test directory, " +
8
+ "without claiming execution coverage.",
9
+ schema: {
10
+ sourcePath: z.string().optional(),
11
+ testPath: z.string().optional(),
12
+ },
13
+ createHandler() {
14
+ return async (args, ctx) => {
15
+ const result = await structuralTestCoverageMap({
16
+ cwd: ctx.projectRoot,
17
+ fs: ctx.fs,
18
+ git: ctx.git,
19
+ process: ctx.process,
20
+ resolveWorkingTreePath: (filePath) => ctx.resolvePath(filePath),
21
+ sourcePath: args["sourcePath"],
22
+ testPath: args["testPath"],
23
+ });
24
+ ctx.recordFootprint({
25
+ paths: [
26
+ ...result.files.map((file) => file.path),
27
+ ...new Set(result.files.flatMap((file) => file.symbols.flatMap((symbol) => symbol.referencingTestFiles))),
28
+ ],
29
+ symbols: result.files.flatMap((file) => file.symbols.map((symbol) => symbol.name)),
30
+ });
31
+ return ctx.respond("graft_test_coverage", toJsonObject(result));
32
+ };
33
+ },
34
+ };
35
+ //# sourceMappingURL=structural-test-coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-test-coverage.js","sourceRoot":"","sources":["../../../src/mcp/tools/structural-test-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,MAAM,CAAC,MAAM,0BAA0B,GAAmB;IACxD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,0EAA0E;QAC1E,uEAAuE;QACvE,sCAAsC;IACxC,MAAM,EAAE;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;gBAC7C,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAC/D,UAAU,EAAE,IAAI,CAAC,YAAY,CAAuB;gBACpD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAuB;aACjD,CAAC,CAAC;YACH,GAAG,CAAC,eAAe,CAAC;gBAClB,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAC9D,CAAC;iBACH;gBACD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnF,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../context.js";
2
+ export declare const workspaceListOpenedTool: ToolDefinition;
3
+ //# sourceMappingURL=workspace-list-opened.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-list-opened.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-list-opened.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,uBAAuB,EAAE,cASrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const workspaceListOpenedTool = {
2
+ name: "workspace_list_opened",
3
+ description: "List workspaces opened in this MCP session and identify the active workspace.",
4
+ createHandler() {
5
+ return async (_args, ctx) => {
6
+ return ctx.respond("workspace_list_opened", { ...await ctx.listOpenedWorkspaces() });
7
+ };
8
+ },
9
+ };
10
+ //# sourceMappingURL=workspace-list-opened.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-list-opened.js","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-list-opened.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,+EAA+E;IACjF,aAAa;QACX,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../context.js";
2
+ export declare const workspaceOpenTool: ToolDefinition;
3
+ //# sourceMappingURL=workspace-open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-open.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-open.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,iBAAiB,EAAE,cAgC/B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ export const workspaceOpenTool = {
3
+ name: "workspace_open",
4
+ description: "Open a git worktree path in this MCP session and optionally make it the active workspace.",
5
+ schema: {
6
+ cwd: z.string(),
7
+ activate: z.boolean().optional(),
8
+ runCapture: z.boolean().optional(),
9
+ },
10
+ createHandler() {
11
+ return async (args, ctx) => {
12
+ const request = {
13
+ cwd: args["cwd"],
14
+ activate: args["activate"],
15
+ runCapture: args["runCapture"],
16
+ };
17
+ if (ctx.getWorkspaceStatus().sessionMode === "daemon") {
18
+ const authorization = await ctx.authorizeWorkspace(request);
19
+ if (!authorization.ok) {
20
+ return ctx.respond("workspace_open", {
21
+ ok: false,
22
+ changed: false,
23
+ freshSessionSlice: false,
24
+ ...ctx.getWorkspaceStatus(),
25
+ errorCode: authorization.errorCode,
26
+ error: authorization.error,
27
+ });
28
+ }
29
+ }
30
+ return ctx.respond("workspace_open", { ...await ctx.openWorkspace(request) });
31
+ };
32
+ },
33
+ };
34
+ //# sourceMappingURL=workspace-open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-open.js","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,2FAA2F;IAC7F,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACnC;IACD,aAAa;QACX,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG;gBACd,GAAG,EAAE,IAAI,CAAC,KAAK,CAAW;gBAC1B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAwB;gBACjD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAwB;aACtD,CAAC;YACF,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACtB,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE;wBACnC,EAAE,EAAE,KAAK;wBACT,OAAO,EAAE,KAAK;wBACd,iBAAiB,EAAE,KAAK;wBACxB,GAAG,GAAG,CAAC,kBAAkB,EAAE;wBAC3B,SAAS,EAAE,aAAa,CAAC,SAAS;wBAClC,KAAK,EAAE,aAAa,CAAC,KAAK;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -33,6 +33,33 @@ export interface WorkspaceActionResult extends WorkspaceStatus {
33
33
  readonly errorCode?: string;
34
34
  readonly error?: string;
35
35
  }
36
+ export type OpenedWorkspaceSource = "startup" | "session_opened" | "daemon_authorized";
37
+ export interface OpenedWorkspaceView extends ResolvedWorkspace {
38
+ readonly source: OpenedWorkspaceSource;
39
+ readonly active: boolean;
40
+ readonly capabilityProfile: WorkspaceCapabilityProfile;
41
+ readonly openedAt: string;
42
+ readonly lastActivatedAt: string | null;
43
+ readonly activeSessions?: number | undefined;
44
+ }
45
+ export interface WorkspaceOpenRequest {
46
+ readonly cwd: string;
47
+ readonly activate?: boolean | undefined;
48
+ readonly runCapture?: boolean | undefined;
49
+ }
50
+ export interface WorkspaceOpenResult extends WorkspaceStatus {
51
+ readonly ok: boolean;
52
+ readonly changed: boolean;
53
+ readonly freshSessionSlice: boolean;
54
+ readonly openedWorkspace?: OpenedWorkspaceView | undefined;
55
+ readonly errorCode?: string;
56
+ readonly error?: string;
57
+ }
58
+ export interface WorkspaceListOpenedResult {
59
+ readonly sessionMode: WorkspaceMode;
60
+ readonly activeWorktreeId: string | null;
61
+ readonly workspaces: readonly OpenedWorkspaceView[];
62
+ }
36
63
  export interface CausalAttachResult extends WorkspaceStatus {
37
64
  readonly ok: boolean;
38
65
  readonly action: "attach";
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-model.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-router-model.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-model.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"AAuDA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,mEAAmE,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,2DAA2D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AA2CD,MAAM,CAAC,MAAM,iCAAiC,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzF,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAA+B,MAAM,CAAC,MAAM,CAAC;IAC7F,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"workspace-router-model.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"AAuFA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,mEAAmE,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,2DAA2D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AA2CD,MAAM,CAAC,MAAM,iCAAiC,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzF,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAA+B,MAAM,CAAC,MAAM,CAAC;IAC7F,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC"}
@@ -4,14 +4,14 @@ import { type PersistedLocalActivityWindow, PersistedLocalHistoryStore, type Per
4
4
  import { type RepoObservation } from "./repo-state.js";
5
5
  import { type RuntimeWorkspaceOverlayFooting } from "./runtime-workspace-overlay.js";
6
6
  import { type AttributedReadToolName } from "./workspace-read-observation.js";
7
- import { type CausalAttachResult, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindRequest, type WorkspaceExecutionContext, type WorkspaceMode, type WorkspaceSharedAttachPolicy, type WorkspaceStatus } from "./workspace-router-model.js";
7
+ import { type CausalAttachResult, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindRequest, type WorkspaceExecutionContext, type WorkspaceListOpenedResult, type WorkspaceMode, type WorkspaceOpenRequest, type WorkspaceOpenResult, type WorkspaceSharedAttachPolicy, type WorkspaceStatus } from "./workspace-router-model.js";
8
8
  import type { FileSystem } from "../ports/filesystem.js";
9
9
  import type { GitClient } from "../ports/git.js";
10
10
  import type { WarpContext } from "../warp/context.js";
11
11
  import type { JsonObject } from "../contracts/json-object.js";
12
12
  import type { WarpPool } from "./warp-pool.js";
13
13
  import { GovernorTracker } from "../session/tracker.js";
14
- export { DEFAULT_DAEMON_CAPABILITY_PROFILE, DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE, WorkspaceBindingRequiredError, WorkspaceCapabilityDeniedError, type CausalAttachResult, type ResolvedWorkspace, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindAction, type WorkspaceBindRequest, type WorkspaceCapabilityProfile, type WorkspaceExecutionContext, type WorkspaceMode, type WorkspaceSharedAttachPolicy, type WorkspaceStatus, } from "./workspace-router-model.js";
14
+ export { DEFAULT_DAEMON_CAPABILITY_PROFILE, DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE, WorkspaceBindingRequiredError, WorkspaceCapabilityDeniedError, type CausalAttachResult, type OpenedWorkspaceSource, type OpenedWorkspaceView, type ResolvedWorkspace, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindAction, type WorkspaceBindRequest, type WorkspaceCapabilityProfile, type WorkspaceExecutionContext, type WorkspaceListOpenedResult, type WorkspaceMode, type WorkspaceOpenRequest, type WorkspaceOpenResult, type WorkspaceSharedAttachPolicy, type WorkspaceStatus, } from "./workspace-router-model.js";
15
15
  export { resolveWorkspaceRequest } from "./workspace-router-resolution.js";
16
16
  interface WorkspaceRouterOptions {
17
17
  readonly mode: WorkspaceMode;
@@ -34,6 +34,7 @@ export declare class WorkspaceRouter {
34
34
  private currentSlice;
35
35
  private currentBinding;
36
36
  private initialization;
37
+ private readonly openedWorkspaces;
37
38
  constructor(options: WorkspaceRouterOptions);
38
39
  initialize(): Promise<void>;
39
40
  get mode(): WorkspaceMode;
@@ -49,6 +50,8 @@ export declare class WorkspaceRouter {
49
50
  observeRepoState(): Promise<void>;
50
51
  getRepoState(): RepoObservation;
51
52
  getStatus(): WorkspaceStatus;
53
+ listOpenedWorkspaces(): WorkspaceListOpenedResult;
54
+ openWorkspace(request: WorkspaceOpenRequest): Promise<WorkspaceOpenResult>;
52
55
  getPersistedLocalHistorySummary(): Promise<PersistedLocalHistorySummary>;
53
56
  getRepoConcurrencySummary(): Promise<RepoConcurrencySummary | null>;
54
57
  getPersistedLocalActivityWindow(limit: number): Promise<PersistedLocalActivityWindow>;
@@ -62,6 +65,10 @@ export declare class WorkspaceRouter {
62
65
  private createBoundWorkspace;
63
66
  private requireBinding;
64
67
  private requireRepoState;
68
+ private noteOpenedWorkspace;
69
+ private noteWorkspaceActivated;
70
+ private requireOpenedWorkspace;
71
+ private toOpenedWorkspaceView;
65
72
  private buildCausalContext;
66
73
  private buildPersistedLocalHistoryContext;
67
74
  private buildPersistedLocalHistoryContextFromExecution;