@flyingrobots/graft 0.6.1 → 0.7.1

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 (665) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +1 -2
  3. package/bin/graft.js +26 -26
  4. package/dist/adapters/json-text-decoder.d.ts +3 -0
  5. package/dist/adapters/json-text-decoder.d.ts.map +1 -0
  6. package/dist/adapters/json-text-decoder.js +12 -0
  7. package/dist/adapters/json-text-decoder.js.map +1 -0
  8. package/dist/adapters/node-paths.d.ts +3 -0
  9. package/dist/adapters/node-paths.d.ts.map +1 -0
  10. package/dist/adapters/node-paths.js +29 -0
  11. package/dist/adapters/node-paths.js.map +1 -0
  12. package/dist/adapters/repo-paths.d.ts.map +1 -1
  13. package/dist/adapters/repo-paths.js +40 -5
  14. package/dist/adapters/repo-paths.js.map +1 -1
  15. package/dist/api/tool-bridge.d.ts +1 -1
  16. package/dist/api/tool-bridge.d.ts.map +1 -1
  17. package/dist/api/tool-bridge.js +1 -1
  18. package/dist/api/tool-bridge.js.map +1 -1
  19. package/dist/cli/cli-error.d.ts.map +1 -1
  20. package/dist/cli/cli-error.js +47 -10
  21. package/dist/cli/cli-error.js.map +1 -1
  22. package/dist/cli/command-parser.d.ts +12 -3
  23. package/dist/cli/command-parser.d.ts.map +1 -1
  24. package/dist/cli/command-parser.js +161 -2
  25. package/dist/cli/command-parser.js.map +1 -1
  26. package/dist/cli/daemon-status-model.d.ts +87 -0
  27. package/dist/cli/daemon-status-model.d.ts.map +1 -0
  28. package/dist/cli/daemon-status-model.js +142 -0
  29. package/dist/cli/daemon-status-model.js.map +1 -0
  30. package/dist/cli/daemon-status-render.d.ts +3 -0
  31. package/dist/cli/daemon-status-render.d.ts.map +1 -0
  32. package/dist/cli/daemon-status-render.js +100 -0
  33. package/dist/cli/daemon-status-render.js.map +1 -0
  34. package/dist/cli/daemon-status.d.ts +7 -0
  35. package/dist/cli/daemon-status.d.ts.map +1 -0
  36. package/dist/cli/daemon-status.js +79 -0
  37. package/dist/cli/daemon-status.js.map +1 -0
  38. package/dist/cli/git-graft-enhance-model.d.ts +67 -0
  39. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -0
  40. package/dist/cli/git-graft-enhance-model.js +55 -0
  41. package/dist/cli/git-graft-enhance-model.js.map +1 -0
  42. package/dist/cli/git-graft-enhance-render.d.ts +3 -0
  43. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -0
  44. package/dist/cli/git-graft-enhance-render.js +29 -0
  45. package/dist/cli/git-graft-enhance-render.js.map +1 -0
  46. package/dist/cli/git-graft-enhance.d.ts +14 -0
  47. package/dist/cli/git-graft-enhance.d.ts.map +1 -0
  48. package/dist/cli/git-graft-enhance.js +29 -0
  49. package/dist/cli/git-graft-enhance.js.map +1 -0
  50. package/dist/cli/index-cmd.d.ts.map +1 -1
  51. package/dist/cli/index-cmd.js +18 -21
  52. package/dist/cli/index-cmd.js.map +1 -1
  53. package/dist/cli/index-model.d.ts +5 -9
  54. package/dist/cli/index-model.d.ts.map +1 -1
  55. package/dist/cli/index-model.js +20 -18
  56. package/dist/cli/index-model.js.map +1 -1
  57. package/dist/cli/init-client-config.d.ts +12 -7
  58. package/dist/cli/init-client-config.d.ts.map +1 -1
  59. package/dist/cli/init-client-config.js +145 -47
  60. package/dist/cli/init-client-config.js.map +1 -1
  61. package/dist/cli/init-model.d.ts +9 -2
  62. package/dist/cli/init-model.d.ts.map +1 -1
  63. package/dist/cli/init-model.js +54 -6
  64. package/dist/cli/init-model.js.map +1 -1
  65. package/dist/cli/init-render.d.ts.map +1 -1
  66. package/dist/cli/init-render.js +2 -2
  67. package/dist/cli/init-render.js.map +1 -1
  68. package/dist/cli/init.d.ts.map +1 -1
  69. package/dist/cli/init.js +11 -9
  70. package/dist/cli/init.js.map +1 -1
  71. package/dist/cli/json-document.d.ts +6 -0
  72. package/dist/cli/json-document.d.ts.map +1 -1
  73. package/dist/cli/json-document.js +12 -0
  74. package/dist/cli/json-document.js.map +1 -1
  75. package/dist/cli/main.d.ts +7 -0
  76. package/dist/cli/main.d.ts.map +1 -1
  77. package/dist/cli/main.js +49 -7
  78. package/dist/cli/main.js.map +1 -1
  79. package/dist/cli/migrate-local-history.d.ts.map +1 -1
  80. package/dist/cli/migrate-local-history.js +3 -2
  81. package/dist/cli/migrate-local-history.js.map +1 -1
  82. package/dist/cli/peer-command.d.ts +1 -1
  83. package/dist/cli/peer-command.d.ts.map +1 -1
  84. package/dist/cli/peer-command.js +1 -1
  85. package/dist/cli/peer-command.js.map +1 -1
  86. package/dist/contracts/capabilities.d.ts +5 -5
  87. package/dist/contracts/capabilities.d.ts.map +1 -1
  88. package/dist/contracts/capabilities.js +89 -0
  89. package/dist/contracts/capabilities.js.map +1 -1
  90. package/dist/contracts/causal-ontology.d.ts +17 -17
  91. package/dist/contracts/json-object.d.ts +0 -1
  92. package/dist/contracts/json-object.d.ts.map +1 -1
  93. package/dist/contracts/json-object.js +0 -10
  94. package/dist/contracts/json-object.js.map +1 -1
  95. package/dist/contracts/output-schema-cli.d.ts +277 -25
  96. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  97. package/dist/contracts/output-schema-cli.js +35 -3
  98. package/dist/contracts/output-schema-cli.js.map +1 -1
  99. package/dist/contracts/output-schema-fragments.d.ts +212 -87
  100. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  101. package/dist/contracts/output-schema-fragments.js +49 -2
  102. package/dist/contracts/output-schema-fragments.js.map +1 -1
  103. package/dist/contracts/output-schema-mcp.d.ts +372 -47
  104. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  105. package/dist/contracts/output-schema-mcp.js +217 -1
  106. package/dist/contracts/output-schema-mcp.js.map +1 -1
  107. package/dist/contracts/output-schema-meta.d.ts +2 -2
  108. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  109. package/dist/contracts/output-schemas.d.ts +7 -7
  110. package/dist/contracts/output-schemas.d.ts.map +1 -1
  111. package/dist/contracts/output-schemas.js +294 -6
  112. package/dist/contracts/output-schemas.js.map +1 -1
  113. package/dist/git/diff.d.ts +11 -0
  114. package/dist/git/diff.d.ts.map +1 -1
  115. package/dist/git/diff.js +50 -6
  116. package/dist/git/diff.js.map +1 -1
  117. package/dist/hooks/posttooluse-read.js +1 -1
  118. package/dist/hooks/posttooluse-read.js.map +1 -1
  119. package/dist/hooks/pretooluse-read.js +1 -1
  120. package/dist/hooks/pretooluse-read.js.map +1 -1
  121. package/dist/mcp/burden.d.ts.map +1 -1
  122. package/dist/mcp/burden.js +9 -0
  123. package/dist/mcp/burden.js.map +1 -1
  124. package/dist/mcp/context.d.ts +3 -2
  125. package/dist/mcp/context.d.ts.map +1 -1
  126. package/dist/mcp/context.js +2 -37
  127. package/dist/mcp/context.js.map +1 -1
  128. package/dist/mcp/daemon-server.d.ts +2 -0
  129. package/dist/mcp/daemon-server.d.ts.map +1 -1
  130. package/dist/mcp/daemon-server.js +6 -1
  131. package/dist/mcp/daemon-server.js.map +1 -1
  132. package/dist/mcp/daemon-session-host.d.ts +1 -0
  133. package/dist/mcp/daemon-session-host.d.ts.map +1 -1
  134. package/dist/mcp/daemon-session-host.js +3 -0
  135. package/dist/mcp/daemon-session-host.js.map +1 -1
  136. package/dist/mcp/daemon-stdio-bridge.d.ts +1 -0
  137. package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -1
  138. package/dist/mcp/daemon-stdio-bridge.js +1 -0
  139. package/dist/mcp/daemon-stdio-bridge.js.map +1 -1
  140. package/dist/mcp/daemon-worker-child-pool.d.ts +2 -0
  141. package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -1
  142. package/dist/mcp/daemon-worker-child-pool.js +10 -3
  143. package/dist/mcp/daemon-worker-child-pool.js.map +1 -1
  144. package/dist/mcp/daemon-worker-pool.d.ts +1 -1
  145. package/dist/mcp/daemon-worker-pool.d.ts.map +1 -1
  146. package/dist/mcp/daemon-worker-pool.js +1 -1
  147. package/dist/mcp/daemon-worker-pool.js.map +1 -1
  148. package/dist/mcp/monitor-tick-job.d.ts +1 -0
  149. package/dist/mcp/monitor-tick-job.d.ts.map +1 -1
  150. package/dist/mcp/monitor-tick-job.js +84 -29
  151. package/dist/mcp/monitor-tick-job.js.map +1 -1
  152. package/dist/mcp/monitor-types.d.ts +1 -1
  153. package/dist/mcp/monitor-types.d.ts.map +1 -1
  154. package/dist/mcp/persisted-local-history-graph.d.ts +2 -2
  155. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  156. package/dist/mcp/persisted-local-history-graph.js +3 -2
  157. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  158. package/dist/mcp/persisted-local-history.d.ts +5 -5
  159. package/dist/mcp/persisted-local-history.js +2 -2
  160. package/dist/mcp/persisted-local-history.js.map +1 -1
  161. package/dist/mcp/persistent-monitor-runtime.d.ts +1 -0
  162. package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -1
  163. package/dist/mcp/persistent-monitor-runtime.js +35 -0
  164. package/dist/mcp/persistent-monitor-runtime.js.map +1 -1
  165. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
  166. package/dist/mcp/repo-tool-worker-context.js +5 -2
  167. package/dist/mcp/repo-tool-worker-context.js.map +1 -1
  168. package/dist/mcp/server-context.d.ts.map +1 -1
  169. package/dist/mcp/server-context.js +13 -0
  170. package/dist/mcp/server-context.js.map +1 -1
  171. package/dist/mcp/server-tool-access.d.ts +1 -1
  172. package/dist/mcp/server-tool-access.d.ts.map +1 -1
  173. package/dist/mcp/server-tool-access.js +3 -1
  174. package/dist/mcp/server-tool-access.js.map +1 -1
  175. package/dist/mcp/server.d.ts +3 -0
  176. package/dist/mcp/server.d.ts.map +1 -1
  177. package/dist/mcp/server.js +5 -3
  178. package/dist/mcp/server.js.map +1 -1
  179. package/dist/mcp/tool-registry.d.ts.map +1 -1
  180. package/dist/mcp/tool-registry.js +18 -0
  181. package/dist/mcp/tool-registry.js.map +1 -1
  182. package/dist/mcp/tools/code-find.d.ts.map +1 -1
  183. package/dist/mcp/tools/code-find.js +20 -0
  184. package/dist/mcp/tools/code-find.js.map +1 -1
  185. package/dist/mcp/tools/code-show.d.ts.map +1 -1
  186. package/dist/mcp/tools/code-show.js +24 -0
  187. package/dist/mcp/tools/code-show.js.map +1 -1
  188. package/dist/mcp/tools/diagnostic-models.d.ts +2 -0
  189. package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -1
  190. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  191. package/dist/mcp/tools/doctor.js +18 -1
  192. package/dist/mcp/tools/doctor.js.map +1 -1
  193. package/dist/mcp/tools/export-surface-diff.d.ts +3 -0
  194. package/dist/mcp/tools/export-surface-diff.d.ts.map +1 -0
  195. package/dist/mcp/tools/export-surface-diff.js +24 -0
  196. package/dist/mcp/tools/export-surface-diff.js.map +1 -0
  197. package/dist/mcp/tools/file-outline.js +1 -1
  198. package/dist/mcp/tools/file-outline.js.map +1 -1
  199. package/dist/mcp/tools/graft-edit.d.ts +3 -0
  200. package/dist/mcp/tools/graft-edit.d.ts.map +1 -0
  201. package/dist/mcp/tools/graft-edit.js +192 -0
  202. package/dist/mcp/tools/graft-edit.js.map +1 -0
  203. package/dist/mcp/tools/knowledge-map.d.ts +3 -0
  204. package/dist/mcp/tools/knowledge-map.d.ts.map +1 -0
  205. package/dist/mcp/tools/knowledge-map.js +31 -0
  206. package/dist/mcp/tools/knowledge-map.js.map +1 -0
  207. package/dist/mcp/tools/monitor-nudge.d.ts +3 -0
  208. package/dist/mcp/tools/monitor-nudge.d.ts.map +1 -0
  209. package/dist/mcp/tools/monitor-nudge.js +17 -0
  210. package/dist/mcp/tools/monitor-nudge.js.map +1 -0
  211. package/dist/mcp/tools/precision-warp.d.ts +3 -3
  212. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  213. package/dist/mcp/tools/precision-warp.js +24 -15
  214. package/dist/mcp/tools/precision-warp.js.map +1 -1
  215. package/dist/mcp/tools/refactor-difficulty.d.ts +3 -0
  216. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -0
  217. package/dist/mcp/tools/refactor-difficulty.js +36 -0
  218. package/dist/mcp/tools/refactor-difficulty.js.map +1 -0
  219. package/dist/mcp/tools/safe-read.js +2 -2
  220. package/dist/mcp/tools/safe-read.js.map +1 -1
  221. package/dist/mcp/tools/structural-blame.d.ts +3 -0
  222. package/dist/mcp/tools/structural-blame.d.ts.map +1 -0
  223. package/dist/mcp/tools/structural-blame.js +44 -0
  224. package/dist/mcp/tools/structural-blame.js.map +1 -0
  225. package/dist/mcp/tools/structural-churn.d.ts +3 -0
  226. package/dist/mcp/tools/structural-churn.d.ts.map +1 -0
  227. package/dist/mcp/tools/structural-churn.js +28 -0
  228. package/dist/mcp/tools/structural-churn.js.map +1 -0
  229. package/dist/mcp/tools/structural-log.d.ts +3 -0
  230. package/dist/mcp/tools/structural-log.d.ts.map +1 -0
  231. package/dist/mcp/tools/structural-log.js +38 -0
  232. package/dist/mcp/tools/structural-log.js.map +1 -0
  233. package/dist/mcp/tools/structural-review.d.ts +3 -0
  234. package/dist/mcp/tools/structural-review.d.ts.map +1 -0
  235. package/dist/mcp/tools/structural-review.js +55 -0
  236. package/dist/mcp/tools/structural-review.js.map +1 -0
  237. package/dist/mcp/warp-pool.d.ts +4 -4
  238. package/dist/mcp/warp-pool.d.ts.map +1 -1
  239. package/dist/mcp/warp-pool.js.map +1 -1
  240. package/dist/mcp/workspace-router-model.d.ts +2 -2
  241. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  242. package/dist/mcp/workspace-router-runtime.d.ts +3 -3
  243. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -1
  244. package/dist/mcp/workspace-router-runtime.js +4 -1
  245. package/dist/mcp/workspace-router-runtime.js.map +1 -1
  246. package/dist/mcp/workspace-router.d.ts +3 -2
  247. package/dist/mcp/workspace-router.d.ts.map +1 -1
  248. package/dist/mcp/workspace-router.js +6 -0
  249. package/dist/mcp/workspace-router.js.map +1 -1
  250. package/dist/operations/adaptive-projection.d.ts +22 -0
  251. package/dist/operations/adaptive-projection.d.ts.map +1 -0
  252. package/dist/operations/adaptive-projection.js +36 -0
  253. package/dist/operations/adaptive-projection.js.map +1 -0
  254. package/dist/operations/agent-handoff.d.ts +25 -0
  255. package/dist/operations/agent-handoff.d.ts.map +1 -0
  256. package/dist/operations/agent-handoff.js +36 -0
  257. package/dist/operations/agent-handoff.js.map +1 -0
  258. package/dist/operations/capture-range.d.ts +33 -0
  259. package/dist/operations/capture-range.d.ts.map +1 -0
  260. package/dist/operations/capture-range.js +45 -0
  261. package/dist/operations/capture-range.js.map +1 -0
  262. package/dist/operations/conversation-primer.d.ts +27 -0
  263. package/dist/operations/conversation-primer.d.ts.map +1 -0
  264. package/dist/operations/conversation-primer.js +52 -0
  265. package/dist/operations/conversation-primer.js.map +1 -0
  266. package/dist/operations/cross-session-resume.d.ts +28 -0
  267. package/dist/operations/cross-session-resume.d.ts.map +1 -0
  268. package/dist/operations/cross-session-resume.js +79 -0
  269. package/dist/operations/cross-session-resume.js.map +1 -0
  270. package/dist/operations/deterministic-replay.d.ts +39 -0
  271. package/dist/operations/deterministic-replay.d.ts.map +1 -0
  272. package/dist/operations/deterministic-replay.js +90 -0
  273. package/dist/operations/deterministic-replay.js.map +1 -0
  274. package/dist/operations/export-surface-diff.d.ts +36 -0
  275. package/dist/operations/export-surface-diff.d.ts.map +1 -0
  276. package/dist/operations/export-surface-diff.js +298 -0
  277. package/dist/operations/export-surface-diff.js.map +1 -0
  278. package/dist/operations/footprint-parallelism.d.ts +25 -0
  279. package/dist/operations/footprint-parallelism.d.ts.map +1 -0
  280. package/dist/operations/footprint-parallelism.js +79 -0
  281. package/dist/operations/footprint-parallelism.js.map +1 -0
  282. package/dist/operations/graft-diff.d.ts.map +1 -1
  283. package/dist/operations/graft-diff.js +14 -7
  284. package/dist/operations/graft-diff.js.map +1 -1
  285. package/dist/operations/horizon-of-readability.d.ts +23 -0
  286. package/dist/operations/horizon-of-readability.d.ts.map +1 -0
  287. package/dist/operations/horizon-of-readability.js +39 -0
  288. package/dist/operations/horizon-of-readability.js.map +1 -0
  289. package/dist/operations/import-reference-impact.d.ts +13 -0
  290. package/dist/operations/import-reference-impact.d.ts.map +1 -0
  291. package/dist/operations/import-reference-impact.js +101 -0
  292. package/dist/operations/import-reference-impact.js.map +1 -0
  293. package/dist/operations/knowledge-map.d.ts +30 -0
  294. package/dist/operations/knowledge-map.d.ts.map +1 -0
  295. package/dist/operations/knowledge-map.js +64 -0
  296. package/dist/operations/knowledge-map.js.map +1 -0
  297. package/dist/operations/observation-cache.d.ts +8 -2
  298. package/dist/operations/observation-cache.d.ts.map +1 -1
  299. package/dist/operations/observation-cache.js +17 -5
  300. package/dist/operations/observation-cache.js.map +1 -1
  301. package/dist/operations/projection-safety.d.ts +31 -0
  302. package/dist/operations/projection-safety.d.ts.map +1 -0
  303. package/dist/operations/projection-safety.js +77 -0
  304. package/dist/operations/projection-safety.js.map +1 -0
  305. package/dist/operations/repo-workspace.js +3 -3
  306. package/dist/operations/repo-workspace.js.map +1 -1
  307. package/dist/operations/semantic-drift.d.ts +27 -0
  308. package/dist/operations/semantic-drift.d.ts.map +1 -0
  309. package/dist/operations/semantic-drift.js +46 -0
  310. package/dist/operations/semantic-drift.js.map +1 -0
  311. package/dist/operations/session-filtration.d.ts +36 -0
  312. package/dist/operations/session-filtration.d.ts.map +1 -0
  313. package/dist/operations/session-filtration.js +48 -0
  314. package/dist/operations/session-filtration.js.map +1 -0
  315. package/dist/operations/session-replay.d.ts +17 -0
  316. package/dist/operations/session-replay.d.ts.map +1 -0
  317. package/dist/operations/session-replay.js +59 -0
  318. package/dist/operations/session-replay.js.map +1 -0
  319. package/dist/operations/sludge-detector.d.ts +45 -0
  320. package/dist/operations/sludge-detector.d.ts.map +1 -0
  321. package/dist/operations/sludge-detector.js +278 -0
  322. package/dist/operations/sludge-detector.js.map +1 -0
  323. package/dist/operations/structural-blame.d.ts +67 -0
  324. package/dist/operations/structural-blame.d.ts.map +1 -0
  325. package/dist/operations/structural-blame.js +111 -0
  326. package/dist/operations/structural-blame.js.map +1 -0
  327. package/dist/operations/structural-review.d.ts +47 -0
  328. package/dist/operations/structural-review.d.ts.map +1 -0
  329. package/dist/operations/structural-review.js +225 -0
  330. package/dist/operations/structural-review.js.map +1 -0
  331. package/dist/operations/teaching-hints.d.ts +18 -0
  332. package/dist/operations/teaching-hints.d.ts.map +1 -0
  333. package/dist/operations/teaching-hints.js +35 -0
  334. package/dist/operations/teaching-hints.js.map +1 -0
  335. package/dist/parser/diff.d.ts +2 -0
  336. package/dist/parser/diff.d.ts.map +1 -1
  337. package/dist/parser/diff.js +7 -0
  338. package/dist/parser/diff.js.map +1 -1
  339. package/dist/ports/paths.d.ts +17 -0
  340. package/dist/ports/paths.d.ts.map +1 -0
  341. package/dist/ports/{warp.js → paths.js} +2 -2
  342. package/dist/ports/paths.js.map +1 -0
  343. package/dist/version.d.ts.map +1 -1
  344. package/dist/version.js +3 -1
  345. package/dist/version.js.map +1 -1
  346. package/dist/warp/ast-emitter.d.ts +28 -0
  347. package/dist/warp/ast-emitter.d.ts.map +1 -0
  348. package/dist/warp/ast-emitter.js +90 -0
  349. package/dist/warp/ast-emitter.js.map +1 -0
  350. package/dist/warp/ast-import-resolver.d.ts +13 -0
  351. package/dist/warp/ast-import-resolver.d.ts.map +1 -0
  352. package/dist/warp/ast-import-resolver.js +259 -0
  353. package/dist/warp/ast-import-resolver.js.map +1 -0
  354. package/dist/warp/commit-meta.d.ts +8 -0
  355. package/dist/warp/commit-meta.d.ts.map +1 -0
  356. package/dist/warp/commit-meta.js +13 -0
  357. package/dist/warp/commit-meta.js.map +1 -0
  358. package/dist/warp/context.d.ts +10 -0
  359. package/dist/warp/context.d.ts.map +1 -0
  360. package/dist/warp/context.js +26 -0
  361. package/dist/warp/context.js.map +1 -0
  362. package/dist/warp/dead-symbols.d.ts +40 -0
  363. package/dist/warp/dead-symbols.d.ts.map +1 -0
  364. package/dist/warp/dead-symbols.js +127 -0
  365. package/dist/warp/dead-symbols.js.map +1 -0
  366. package/dist/warp/drift-sentinel.d.ts +30 -0
  367. package/dist/warp/drift-sentinel.d.ts.map +1 -0
  368. package/dist/warp/drift-sentinel.js +65 -0
  369. package/dist/warp/drift-sentinel.js.map +1 -0
  370. package/dist/warp/index-head.d.ts +32 -0
  371. package/dist/warp/index-head.d.ts.map +1 -0
  372. package/dist/warp/index-head.js +245 -0
  373. package/dist/warp/index-head.js.map +1 -0
  374. package/dist/warp/observers.d.ts +6 -6
  375. package/dist/warp/observers.d.ts.map +1 -1
  376. package/dist/warp/observers.js +5 -4
  377. package/dist/warp/observers.js.map +1 -1
  378. package/dist/warp/open.d.ts +5 -4
  379. package/dist/warp/open.d.ts.map +1 -1
  380. package/dist/warp/open.js +24 -49
  381. package/dist/warp/open.js.map +1 -1
  382. package/dist/warp/outline-diff-trailer.d.ts +26 -0
  383. package/dist/warp/outline-diff-trailer.d.ts.map +1 -0
  384. package/dist/warp/outline-diff-trailer.js +68 -0
  385. package/dist/warp/outline-diff-trailer.js.map +1 -0
  386. package/dist/warp/refactor-difficulty.d.ts +38 -0
  387. package/dist/warp/refactor-difficulty.d.ts.map +1 -0
  388. package/dist/warp/refactor-difficulty.js +169 -0
  389. package/dist/warp/refactor-difficulty.js.map +1 -0
  390. package/dist/warp/references.d.ts +22 -0
  391. package/dist/warp/references.d.ts.map +1 -0
  392. package/dist/warp/references.js +57 -0
  393. package/dist/warp/references.js.map +1 -0
  394. package/dist/warp/stale-docs.d.ts +56 -0
  395. package/dist/warp/stale-docs.d.ts.map +1 -0
  396. package/dist/warp/stale-docs.js +149 -0
  397. package/dist/warp/stale-docs.js.map +1 -0
  398. package/dist/warp/structural-drift-detection.d.ts +49 -0
  399. package/dist/warp/structural-drift-detection.d.ts.map +1 -0
  400. package/dist/warp/structural-drift-detection.js +51 -0
  401. package/dist/warp/structural-drift-detection.js.map +1 -0
  402. package/dist/warp/structural-queries.d.ts +49 -0
  403. package/dist/warp/structural-queries.d.ts.map +1 -0
  404. package/dist/warp/structural-queries.js +175 -0
  405. package/dist/warp/structural-queries.js.map +1 -0
  406. package/dist/warp/symbol-timeline.d.ts +34 -0
  407. package/dist/warp/symbol-timeline.d.ts.map +1 -0
  408. package/dist/warp/symbol-timeline.js +127 -0
  409. package/dist/warp/symbol-timeline.js.map +1 -0
  410. package/dist/warp/traverse-hydrate.d.ts +23 -0
  411. package/dist/warp/traverse-hydrate.d.ts.map +1 -0
  412. package/dist/warp/traverse-hydrate.js +39 -0
  413. package/dist/warp/traverse-hydrate.js.map +1 -0
  414. package/dist/warp/warp-reference-count.d.ts +19 -0
  415. package/dist/warp/warp-reference-count.d.ts.map +1 -0
  416. package/dist/warp/warp-reference-count.js +32 -0
  417. package/dist/warp/warp-reference-count.js.map +1 -0
  418. package/dist/warp/warp-structural-blame.d.ts +20 -0
  419. package/dist/warp/warp-structural-blame.d.ts.map +1 -0
  420. package/dist/warp/warp-structural-blame.js +43 -0
  421. package/dist/warp/warp-structural-blame.js.map +1 -0
  422. package/dist/warp/warp-structural-churn.d.ts +30 -0
  423. package/dist/warp/warp-structural-churn.d.ts.map +1 -0
  424. package/dist/warp/warp-structural-churn.js +213 -0
  425. package/dist/warp/warp-structural-churn.js.map +1 -0
  426. package/dist/warp/warp-structural-log.d.ts +35 -0
  427. package/dist/warp/warp-structural-log.d.ts.map +1 -0
  428. package/dist/warp/warp-structural-log.js +104 -0
  429. package/dist/warp/warp-structural-log.js.map +1 -0
  430. package/docs/CLI.md +68 -4
  431. package/docs/MCP.md +23 -0
  432. package/docs/SETUP.md +112 -27
  433. package/package.json +13 -6
  434. package/dist/ports/warp.d.ts +0 -45
  435. package/dist/ports/warp.d.ts.map +0 -1
  436. package/dist/ports/warp.js.map +0 -1
  437. package/dist/warp/identity-resolver.d.ts +0 -14
  438. package/dist/warp/identity-resolver.d.ts.map +0 -1
  439. package/dist/warp/identity-resolver.js +0 -31
  440. package/dist/warp/identity-resolver.js.map +0 -1
  441. package/dist/warp/indexer-git.d.ts +0 -22
  442. package/dist/warp/indexer-git.d.ts.map +0 -1
  443. package/dist/warp/indexer-git.js +0 -148
  444. package/dist/warp/indexer-git.js.map +0 -1
  445. package/dist/warp/indexer-graph.d.ts +0 -17
  446. package/dist/warp/indexer-graph.d.ts.map +0 -1
  447. package/dist/warp/indexer-graph.js +0 -179
  448. package/dist/warp/indexer-graph.js.map +0 -1
  449. package/dist/warp/indexer-model.d.ts +0 -51
  450. package/dist/warp/indexer-model.d.ts.map +0 -1
  451. package/dist/warp/indexer-model.js +0 -21
  452. package/dist/warp/indexer-model.js.map +0 -1
  453. package/dist/warp/indexer.d.ts +0 -9
  454. package/dist/warp/indexer.d.ts.map +0 -1
  455. package/dist/warp/indexer.js +0 -112
  456. package/dist/warp/indexer.js.map +0 -1
  457. package/dist/warp/symbol-identity.d.ts +0 -11
  458. package/dist/warp/symbol-identity.d.ts.map +0 -1
  459. package/dist/warp/symbol-identity.js +0 -67
  460. package/dist/warp/symbol-identity.js.map +0 -1
  461. package/src/adapters/canonical-json.ts +0 -56
  462. package/src/adapters/node-fs.ts +0 -43
  463. package/src/adapters/node-git.ts +0 -47
  464. package/src/adapters/node-process-runner.ts +0 -27
  465. package/src/adapters/repo-paths.ts +0 -22
  466. package/src/adapters/rotating-ndjson-log.ts +0 -66
  467. package/src/api/index.ts +0 -107
  468. package/src/api/repo-local-graft.ts +0 -21
  469. package/src/api/repo-workspace.ts +0 -34
  470. package/src/api/tool-bridge.ts +0 -21
  471. package/src/cli/activity-render.ts +0 -112
  472. package/src/cli/cli-error.ts +0 -153
  473. package/src/cli/command-parser.ts +0 -302
  474. package/src/cli/entrypoint.ts +0 -18
  475. package/src/cli/index-cmd.ts +0 -94
  476. package/src/cli/index-model.ts +0 -76
  477. package/src/cli/init-bootstrap.ts +0 -47
  478. package/src/cli/init-client-config.ts +0 -299
  479. package/src/cli/init-model.ts +0 -229
  480. package/src/cli/init-render.ts +0 -54
  481. package/src/cli/init-target-hooks.ts +0 -93
  482. package/src/cli/init.ts +0 -122
  483. package/src/cli/json-document.ts +0 -144
  484. package/src/cli/local-history-dag-model.ts +0 -437
  485. package/src/cli/local-history-dag-render.ts +0 -133
  486. package/src/cli/local-history-dag.ts +0 -103
  487. package/src/cli/main.ts +0 -150
  488. package/src/cli/migrate-local-history.ts +0 -118
  489. package/src/cli/peer-command.ts +0 -59
  490. package/src/contracts/capabilities.ts +0 -450
  491. package/src/contracts/causal-ontology.ts +0 -627
  492. package/src/contracts/causal-surface-next-action.ts +0 -18
  493. package/src/contracts/json-object.ts +0 -28
  494. package/src/contracts/mcp-runtime.ts +0 -16
  495. package/src/contracts/output-schema-cli.ts +0 -70
  496. package/src/contracts/output-schema-fragments.ts +0 -831
  497. package/src/contracts/output-schema-mcp.ts +0 -282
  498. package/src/contracts/output-schema-meta.ts +0 -119
  499. package/src/contracts/output-schemas.ts +0 -1230
  500. package/src/git/diff.ts +0 -100
  501. package/src/git/target-git-hook-bootstrap.ts +0 -56
  502. package/src/guards/stream-boundary.ts +0 -110
  503. package/src/hooks/posttooluse-read.ts +0 -54
  504. package/src/hooks/pretooluse-read.ts +0 -52
  505. package/src/hooks/read-governor.ts +0 -95
  506. package/src/hooks/read-messages.ts +0 -53
  507. package/src/hooks/shared.ts +0 -168
  508. package/src/index.ts +0 -1
  509. package/src/mcp/burden.ts +0 -123
  510. package/src/mcp/cache.ts +0 -7
  511. package/src/mcp/cached-file.ts +0 -1
  512. package/src/mcp/context.ts +0 -187
  513. package/src/mcp/control-plane/authz-storage.ts +0 -129
  514. package/src/mcp/control-plane/session-registry.ts +0 -115
  515. package/src/mcp/control-plane/status-projection.ts +0 -76
  516. package/src/mcp/control-plane/types.ts +0 -144
  517. package/src/mcp/daemon-bootstrap.ts +0 -100
  518. package/src/mcp/daemon-control-plane.ts +0 -310
  519. package/src/mcp/daemon-job-scheduler.ts +0 -279
  520. package/src/mcp/daemon-repos.ts +0 -99
  521. package/src/mcp/daemon-server.ts +0 -165
  522. package/src/mcp/daemon-session-host.ts +0 -230
  523. package/src/mcp/daemon-stdio-bridge.ts +0 -260
  524. package/src/mcp/daemon-worker-child-pool.ts +0 -213
  525. package/src/mcp/daemon-worker-inline-pool.ts +0 -46
  526. package/src/mcp/daemon-worker-pool.ts +0 -7
  527. package/src/mcp/daemon-worker-process.ts +0 -52
  528. package/src/mcp/daemon-worker-types.ts +0 -66
  529. package/src/mcp/metrics.ts +0 -176
  530. package/src/mcp/monitor-health.ts +0 -83
  531. package/src/mcp/monitor-persistence.ts +0 -54
  532. package/src/mcp/monitor-tick-job.ts +0 -102
  533. package/src/mcp/monitor-types.ts +0 -103
  534. package/src/mcp/persisted-local-history-graph.ts +0 -591
  535. package/src/mcp/persisted-local-history-policy.ts +0 -501
  536. package/src/mcp/persisted-local-history-views.ts +0 -250
  537. package/src/mcp/persisted-local-history.ts +0 -1621
  538. package/src/mcp/persistent-monitor-runtime.ts +0 -445
  539. package/src/mcp/policy.ts +0 -75
  540. package/src/mcp/receipt.ts +0 -201
  541. package/src/mcp/repo-concurrency.ts +0 -392
  542. package/src/mcp/repo-overview/filter.ts +0 -44
  543. package/src/mcp/repo-overview/types.ts +0 -63
  544. package/src/mcp/repo-overview/view-projection.ts +0 -90
  545. package/src/mcp/repo-state-git.ts +0 -247
  546. package/src/mcp/repo-state-observation.ts +0 -203
  547. package/src/mcp/repo-state-transition.ts +0 -151
  548. package/src/mcp/repo-state-types.ts +0 -107
  549. package/src/mcp/repo-state.ts +0 -146
  550. package/src/mcp/repo-tool-job.ts +0 -102
  551. package/src/mcp/repo-tool-worker-context.ts +0 -212
  552. package/src/mcp/repo-workspace.ts +0 -21
  553. package/src/mcp/run-capture-config.ts +0 -33
  554. package/src/mcp/runtime-causal-context.ts +0 -72
  555. package/src/mcp/runtime-observability.ts +0 -217
  556. package/src/mcp/runtime-staged-target.ts +0 -161
  557. package/src/mcp/runtime-workspace-overlay.ts +0 -255
  558. package/src/mcp/secret-scrub.ts +0 -89
  559. package/src/mcp/semantic-transition-guidance.ts +0 -60
  560. package/src/mcp/semantic-transition-summary.ts +0 -130
  561. package/src/mcp/server-context.ts +0 -223
  562. package/src/mcp/server-invocation.ts +0 -388
  563. package/src/mcp/server-tool-access.ts +0 -145
  564. package/src/mcp/server.ts +0 -265
  565. package/src/mcp/stdio-server.ts +0 -26
  566. package/src/mcp/stdio.ts +0 -3
  567. package/src/mcp/tool-registry.ts +0 -80
  568. package/src/mcp/tools/activity-view.ts +0 -325
  569. package/src/mcp/tools/budget.ts +0 -23
  570. package/src/mcp/tools/causal-attach.ts +0 -67
  571. package/src/mcp/tools/causal-status.ts +0 -58
  572. package/src/mcp/tools/changed-since.ts +0 -71
  573. package/src/mcp/tools/code-find.ts +0 -169
  574. package/src/mcp/tools/code-refs.ts +0 -470
  575. package/src/mcp/tools/code-show.ts +0 -262
  576. package/src/mcp/tools/daemon-monitors.ts +0 -14
  577. package/src/mcp/tools/daemon-repos.ts +0 -22
  578. package/src/mcp/tools/daemon-sessions.ts +0 -14
  579. package/src/mcp/tools/daemon-status.ts +0 -12
  580. package/src/mcp/tools/diagnostic-models.ts +0 -95
  581. package/src/mcp/tools/doctor.ts +0 -66
  582. package/src/mcp/tools/explain.ts +0 -84
  583. package/src/mcp/tools/file-outline.ts +0 -67
  584. package/src/mcp/tools/git-files.ts +0 -73
  585. package/src/mcp/tools/graft-diff.ts +0 -35
  586. package/src/mcp/tools/map-collector.ts +0 -338
  587. package/src/mcp/tools/map.ts +0 -185
  588. package/src/mcp/tools/monitor-pause.ts +0 -18
  589. package/src/mcp/tools/monitor-resume.ts +0 -18
  590. package/src/mcp/tools/monitor-start.ts +0 -20
  591. package/src/mcp/tools/monitor-stop.ts +0 -18
  592. package/src/mcp/tools/precision-live.ts +0 -158
  593. package/src/mcp/tools/precision-match.ts +0 -54
  594. package/src/mcp/tools/precision-paths.ts +0 -59
  595. package/src/mcp/tools/precision-query.ts +0 -127
  596. package/src/mcp/tools/precision-show.ts +0 -86
  597. package/src/mcp/tools/precision-visibility.ts +0 -44
  598. package/src/mcp/tools/precision-warp.ts +0 -90
  599. package/src/mcp/tools/precision.ts +0 -21
  600. package/src/mcp/tools/read-range.ts +0 -28
  601. package/src/mcp/tools/run-capture.ts +0 -149
  602. package/src/mcp/tools/safe-read.ts +0 -148
  603. package/src/mcp/tools/since.ts +0 -53
  604. package/src/mcp/tools/state.ts +0 -39
  605. package/src/mcp/tools/stats.ts +0 -24
  606. package/src/mcp/tools/workspace-authorizations.ts +0 -14
  607. package/src/mcp/tools/workspace-authorize.ts +0 -20
  608. package/src/mcp/tools/workspace-bind.ts +0 -25
  609. package/src/mcp/tools/workspace-rebind.ts +0 -25
  610. package/src/mcp/tools/workspace-revoke.ts +0 -18
  611. package/src/mcp/tools/workspace-status.ts +0 -12
  612. package/src/mcp/warp-pool.ts +0 -36
  613. package/src/mcp/workspace-read-observation-model.ts +0 -48
  614. package/src/mcp/workspace-read-observation.ts +0 -103
  615. package/src/mcp/workspace-router-capability.ts +0 -32
  616. package/src/mcp/workspace-router-history.ts +0 -233
  617. package/src/mcp/workspace-router-model.ts +0 -131
  618. package/src/mcp/workspace-router-resolution.ts +0 -71
  619. package/src/mcp/workspace-router-runtime.ts +0 -243
  620. package/src/mcp/workspace-router.ts +0 -681
  621. package/src/metrics/logger.ts +0 -40
  622. package/src/metrics/types.ts +0 -40
  623. package/src/operations/cached-file.ts +0 -40
  624. package/src/operations/diff-identity.ts +0 -127
  625. package/src/operations/file-outline.ts +0 -48
  626. package/src/operations/graft-diff.ts +0 -162
  627. package/src/operations/observation-cache.ts +0 -149
  628. package/src/operations/read-range.ts +0 -64
  629. package/src/operations/repo-workspace.ts +0 -339
  630. package/src/operations/result-dto.ts +0 -23
  631. package/src/operations/safe-read.ts +0 -118
  632. package/src/operations/state.ts +0 -66
  633. package/src/operations/structured-buffer-compare.ts +0 -429
  634. package/src/operations/structured-buffer-model.ts +0 -456
  635. package/src/operations/structured-buffer-query.ts +0 -794
  636. package/src/operations/structured-buffer.ts +0 -181
  637. package/src/parser/diff.ts +0 -313
  638. package/src/parser/lang.ts +0 -71
  639. package/src/parser/markdown.ts +0 -197
  640. package/src/parser/outline.ts +0 -316
  641. package/src/parser/runtime.ts +0 -71
  642. package/src/parser/types.ts +0 -75
  643. package/src/policy/evaluate.ts +0 -178
  644. package/src/policy/graftignore.ts +0 -6
  645. package/src/policy/types.ts +0 -87
  646. package/src/ports/codec.ts +0 -13
  647. package/src/ports/filesystem.ts +0 -18
  648. package/src/ports/git.ts +0 -16
  649. package/src/ports/guards.ts +0 -68
  650. package/src/ports/process-runner.ts +0 -22
  651. package/src/ports/warp.ts +0 -55
  652. package/src/release/security-gate.ts +0 -102
  653. package/src/session/tracker.ts +0 -145
  654. package/src/session/types.ts +0 -23
  655. package/src/version.ts +0 -3
  656. package/src/warp/identity-resolver.ts +0 -35
  657. package/src/warp/indexer-git.ts +0 -182
  658. package/src/warp/indexer-graph.ts +0 -276
  659. package/src/warp/indexer-model.ts +0 -69
  660. package/src/warp/indexer.ts +0 -186
  661. package/src/warp/observers.ts +0 -100
  662. package/src/warp/open.ts +0 -93
  663. package/src/warp/plumbing.d.ts +0 -15
  664. package/src/warp/symbol-identity.ts +0 -100
  665. package/src/warp/writer-id.ts +0 -30
package/CHANGELOG.md CHANGED
@@ -7,6 +7,154 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.7.1] - 2026-04-30
11
+
12
+ ### Fixed
13
+
14
+ - **npm package runtime shape**: The published package now ships built
15
+ `dist/` output without `src/`, keeps `tsx` as development-only
16
+ tooling, runs the package bin and generated Claude hook commands from
17
+ compiled JavaScript, migrates generated v0.7.0 Claude hook commands
18
+ through `graft init --write-claude-hooks`, declares
19
+ targeted `sideEffects` metadata for parser initialization, pins the
20
+ patched `postcss` transitive used by Vite, and guards manual publishes
21
+ with `prepublishOnly`.
22
+
23
+ ## [0.7.0] - 2026-04-30
24
+
25
+ ### Added
26
+
27
+ - **Sludge detector**: `doctor` can run an opt-in parser-backed
28
+ structural smell scan with `sludge: true` or `graft doctor --sludge`.
29
+ It reports typedef/class imbalance, JSDoc cast density, homeless
30
+ constructor functions, free functions operating on project types, and
31
+ high-symbol-count files.
32
+ - **Refactor difficulty score**: `graft_difficulty` and
33
+ `graft symbol difficulty` report a scalar per-symbol refactor score
34
+ from WARP churn curvature and reference-edge friction.
35
+ - **WARP snapshot indexing**: `indexHead` is now the canonical
36
+ snapshot-based indexing path and emits commit, file, directory,
37
+ symbol, and AST facts with tick metadata.
38
+ - **Cross-file import resolution**: WARP now records import,
39
+ re-export, and namespace reference edges for graph-native reference
40
+ queries.
41
+ - **Outline-diff commit trailer**: `formatStructuralDiffTrailer` +
42
+ `parseStructuralDiffTrailer` for embedding structural diffs in
43
+ git commit messages as machine-readable trailers.
44
+ - **Background indexing with monitor_nudge**: `monitor_nudge` MCP
45
+ tool triggers immediate re-index for a running monitor. For
46
+ post-commit hooks to notify graft that HEAD changed.
47
+ - **Structural drift detection**: `checkNumericClaim` and
48
+ `checkPatternProhibition` verify doc claims against reality —
49
+ numeric counts and pattern prohibitions.
50
+ - **Drift sentinel**: `runDriftSentinel(ctx, options)` scans all
51
+ tracked markdown files for stale symbol references against the
52
+ WARP graph. Returns pass/fail verdict for pre-commit hook use.
53
+ - **WARP-based reference counting for structural-review**: `graft_review`
54
+ now counts symbol references via WARP graph traversal instead of
55
+ ripgrep. More precise (actual imports) and faster (no subprocess).
56
+ - **Stale docs checker**: `checkStaleDocs` cross-references markdown
57
+ symbol mentions against the WARP graph to detect outdated docs.
58
+ `checkVersionDrift` compares CHANGELOG vs package.json versions.
59
+ - **Session knowledge map**: `knowledge_map` MCP tool answers "what
60
+ do I already know?" — observed files, symbols, staleness flags,
61
+ and per-directory coverage.
62
+ - **Symbol history timeline**: `symbolTimeline(ctx, name, filePath?)`
63
+ returns every version of a symbol across commits — signature, line
64
+ range, presence, and change kind, ordered by tick.
65
+ - **Dead symbol detection**: `findDeadSymbols(ctx, options?)` finds
66
+ symbols removed from the codebase and never re-added. Supports
67
+ `maxCommits` depth limiting. Uses WARP snapshot diffs, no grep.
68
+ - **Monitor tick ceiling tracking**: `runMonitorTickJob` skips
69
+ `openWarp` and `indexHead` when HEAD hasn't changed since the last
70
+ indexed commit. Idle monitor ticks are now near-zero-cost.
71
+ - **Daemon-backed stdio MCP runtime**: `graft serve --runtime daemon`
72
+ exposes the tested daemon bridge as a release-facing MCP runtime, and
73
+ `graft init --mcp-runtime daemon --write-*-mcp` can generate client
74
+ config for daemon-backed stdio instead of repo-local stdio.
75
+ - **Read-only daemon status surface**: `graft daemon status
76
+ [--socket <path>]` renders daemon health, session counts, workspace
77
+ posture, monitor summary, scheduler pressure, and worker pressure
78
+ without adding daemon mutation actions.
79
+ - **Git-facing enhance first slice**: `git graft enhance --since <ref>`
80
+ and `git-graft enhance --since <ref>` compose shipped structural
81
+ since and export-surface facts into a concise review summary, with
82
+ schema-validated JSON available through `--json`.
83
+ - **Governed exact replacement edit**: `graft_edit` is a narrow MCP
84
+ edit tool for one exact replacement through Graft's path, policy,
85
+ schema, and filesystem-port boundaries.
86
+ - **Agent drift advisory**: `graft_edit` responses can include optional
87
+ advisory `driftWarnings` when a same-session edit removes then later
88
+ reintroduces the narrow `jsdoc_typedef` structural pattern.
89
+
90
+ ### Changed
91
+
92
+ - **WARP context boundary**: `WarpHandle` was removed in favor of
93
+ direct git-warp types carried through `WarpContext`, with fail-closed
94
+ strand routing hooks for future strand isolation.
95
+ - **Structural query read paths**: structural queries now use
96
+ `traverse`, `QueryBuilder`, and tick receipts instead of broad
97
+ `getEdges()` scans.
98
+ - **WARP-backed structural operations**: `graft_log`, `graft_churn`,
99
+ `graft_blame`, and `graft_review` now use WARP graph data for their
100
+ MCP execution paths.
101
+ - **Aggregate-backed structural churn**: `graft_churn` now computes
102
+ live-symbol change counts with WARP `QueryBuilder.aggregate()`, while
103
+ preserving removed-symbol churn from tick receipt evidence.
104
+ - **`graft_blame` output shape**: WARP-backed blame returns tick-aware
105
+ symbol timeline data and a simplified `createdInCommit` value. This
106
+ is a breaking pre-1.0 MCP schema change for consumers scraping the
107
+ old result shape.
108
+ - **Daemon runtime selection**: repo-local `graft serve` remains
109
+ unchanged, while daemon-backed operation is now an explicit
110
+ `--runtime daemon` choice with clear setup docs.
111
+ - **Release scope truth**: full LSP semantic enrichment and the
112
+ remaining medium-risk slice-first read sweep are preserved as
113
+ post-v0.7.0 follow-up cards instead of active release blockers.
114
+
115
+ ### Removed
116
+
117
+ - **Legacy commit-walking indexer**: removed the old `indexCommits`
118
+ pipeline and related model/graph helpers. `indexHead` is the active
119
+ indexing path.
120
+
121
+ ### Fixed
122
+
123
+ - **Agent worktree hygiene**: added `pnpm guard:agent-worktrees`,
124
+ wired it into release preflight and the repo-local pre-commit hook,
125
+ and covered forced embedded-repo gitlinks under `.claude/worktrees/`.
126
+ - **Export surface semver impact**: `exportSurfaceDiff` now treats
127
+ breaking signature changes conservatively. Required parameter
128
+ additions, removed parameters, parameter type changes, and return
129
+ type changes are `major`; additive optional parameters are `minor`.
130
+ - **Reference edge scan**: `referencesForSymbol` no longer scans all
131
+ graph edges; it traverses incoming `references` edges from the target
132
+ symbol/file node.
133
+ - **Keep a Changelog version drift**: `checkVersionDrift` now accepts
134
+ bracketed headings such as `## [0.7.0] - YYYY-MM-DD`.
135
+ - **Dockerized test isolation**: default `pnpm test` now runs in a
136
+ copy-in Docker container so validation cannot inherit the operator's
137
+ live checkout Git hooks or Git environment.
138
+ - **Full-suite timeout nondeterminism**: test MCP servers and daemon
139
+ integration tests now use explicit temp-only Git/runtime seams to
140
+ avoid hidden WARP/server work under full-suite load.
141
+ - **Repo path symlink-parent escape**: repo path resolution validates
142
+ the nearest existing ancestor so future create/write tools cannot
143
+ escape through an existing symlinked parent directory.
144
+ - **Monitor indexing ceiling**: background monitor ticks now batch
145
+ explicit paths through the existing `indexHead` cap instead of
146
+ failing every tick for repos with more than 64 parseable files.
147
+ - **WARP structural log metadata**: `indexHead` now persists commit
148
+ message, author, email, date, and timestamp on commit nodes so
149
+ `graft struct log` retains user-visible commit context.
150
+ - **Cold WARP structural review impact**: `graft_review` now preserves
151
+ breaking-change impact counts on fresh worktrees by falling back to a
152
+ bounded import/re-export scan when graph reference edges are not
153
+ available yet.
154
+ - **Backlog dependency DAG**: the checked-in DAG now renders
155
+ `blocked_by`, `blocking`, and `blocked_by_external` relationships
156
+ from backlog card frontmatter.
157
+
10
158
  ## [0.6.1] - 2026-04-19
11
159
 
12
160
  ### Fixed
package/README.md CHANGED
@@ -1,11 +1,10 @@
1
1
  # Graft
2
2
 
3
- An industrial-grade context governor for coding agents. Graft enforces read policy so agents consume the smallest structurally correct view of a codebase instead of dumping raw files into their context window.
3
+ A context governor for coding agents. Graft enforces read policy so agents consume the smallest structurally correct view of a codebase instead of dumping raw files into their context window.
4
4
 
5
5
  Graft is designed for the operator who demands precision and the architect who needs a stable foundation for agentic work. It scales from simple policy-aware reads to high-fidelity causal provenance tracking across multi-session worktrees.
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/@flyingrobots/graft)](https://www.npmjs.com/package/@flyingrobots/graft)
8
- [![License](https://img.shields.io/github/license/graft)](./LICENSE)
9
8
 
10
9
  ![Graft demo](./docs/assets/graft.svg)
11
10
 
package/bin/graft.js CHANGED
@@ -1,34 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- // Graft context governor for coding agents
4
- // Bootstrap: re-exec with tsx loader resolved from the package's own deps.
3
+ // Graft - context governor for coding agents.
4
+ // Published packages run the built CLI from dist; TypeScript stays dev-only.
5
5
 
6
- import { fileURLToPath } from "node:url";
6
+ import { realpathSync } from "node:fs";
7
7
  import { dirname, join } from "node:path";
8
- import { execFileSync } from "node:child_process";
9
- import { createRequire } from "node:module";
8
+ import { fileURLToPath, pathToFileURL } from "node:url";
10
9
 
11
- const __dirname = dirname(fileURLToPath(import.meta.url));
12
- const require = createRequire(import.meta.url);
10
+ const binPath = realpathSync(fileURLToPath(import.meta.url));
11
+ const entrypointUrl = pathToFileURL(join(dirname(binPath), "../dist/cli/entrypoint.js")).href;
13
12
 
14
- // If already running under tsx, proceed directly
15
- if (process.env.__GRAFT_TSX_LOADED === "1") {
16
- const { runCliEntrypoint } = await import("../src/cli/entrypoint.js");
17
- await runCliEntrypoint({
18
- argv: process.argv.slice(2),
19
- stdinIsTTY: process.stdin.isTTY,
20
- stdoutIsTTY: process.stdout.isTTY,
21
- });
22
- } else {
23
- // Re-exec with tsx loader from our own node_modules
24
- const tsxPath = require.resolve("tsx/esm");
25
- const script = join(__dirname, "graft.js");
26
- try {
27
- execFileSync(process.execPath, ["--import", tsxPath, script, ...process.argv.slice(2)], {
28
- stdio: "inherit",
29
- env: { ...process.env, __GRAFT_TSX_LOADED: "1" },
30
- });
31
- } catch (err) {
32
- process.exit(err?.status ?? 1);
13
+ let entrypoint;
14
+ try {
15
+ entrypoint = await import(entrypointUrl);
16
+ } catch (error) {
17
+ if (error.code === "ERR_MODULE_NOT_FOUND") {
18
+ console.error(
19
+ "[graft] Missing built CLI output. Run `pnpm build` before invoking bin/graft.js from a source checkout.",
20
+ );
21
+ } else {
22
+ console.error("[graft] Failed to load CLI entrypoint from dist.");
33
23
  }
24
+ if (process.env.GRAFT_DEBUG === "1") {
25
+ console.error(error);
26
+ }
27
+ process.exit(1);
34
28
  }
29
+
30
+ await entrypoint.runCliEntrypoint({
31
+ argv: process.argv.slice(2),
32
+ stdinIsTTY: process.stdin.isTTY,
33
+ stdoutIsTTY: process.stdout.isTTY,
34
+ });
@@ -0,0 +1,3 @@
1
+ import { type JsonObject } from "../contracts/json-object.js";
2
+ export declare function parseJsonTextObject(text: string, label: string): JsonObject;
3
+ //# sourceMappingURL=json-text-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-text-decoder.d.ts","sourceRoot":"","sources":["../../src/adapters/json-text-decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,6BAA6B,CAAC;AAE/E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAQ3E"}
@@ -0,0 +1,12 @@
1
+ import { parseJsonObject } from "../contracts/json-object.js";
2
+ export function parseJsonTextObject(text, label) {
3
+ let parsed;
4
+ try {
5
+ parsed = JSON.parse(text);
6
+ }
7
+ catch {
8
+ throw new Error(`${label} was not valid JSON`);
9
+ }
10
+ return parseJsonObject(parsed, label);
11
+ }
12
+ //# sourceMappingURL=json-text-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-text-decoder.js","sourceRoot":"","sources":["../../src/adapters/json-text-decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE/E,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAa;IAC7D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PathOps } from "../ports/paths.js";
2
+ export declare const nodePathOps: PathOps;
3
+ //# sourceMappingURL=node-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-paths.d.ts","sourceRoot":"","sources":["../../src/adapters/node-paths.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAejD,eAAO,MAAM,WAAW,EAAE,OAczB,CAAC"}
@@ -0,0 +1,29 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Node PathOps adapter — implements PathOps using node:path
3
+ // ---------------------------------------------------------------------------
4
+ import * as path from "node:path";
5
+ function toForwardSlash(p) {
6
+ return p.replaceAll("\\", "/");
7
+ }
8
+ function stripTrailingSlash(p) {
9
+ if (p === "/")
10
+ return p;
11
+ return p.endsWith("/") ? p.slice(0, -1) : p;
12
+ }
13
+ function normalizeImpl(p) {
14
+ return stripTrailingSlash(toForwardSlash(path.normalize(p)));
15
+ }
16
+ export const nodePathOps = {
17
+ normalize(p) {
18
+ return normalizeImpl(p);
19
+ },
20
+ isWithin(filePath, directory) {
21
+ const normFile = normalizeImpl(filePath);
22
+ const normDir = normalizeImpl(directory);
23
+ return normFile === normDir || normFile.startsWith(`${normDir}/`);
24
+ },
25
+ join(...segments) {
26
+ return normalizeImpl(path.join(...segments));
27
+ },
28
+ };
29
+ //# sourceMappingURL=node-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-paths.js","sourceRoot":"","sources":["../../src/adapters/node-paths.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS;IACnC,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,SAAS,CAAC,CAAS;QACjB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,SAAiB;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,GAAG,QAAkB;QACxB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"repo-paths.d.ts","sourceRoot":"","sources":["../../src/adapters/repo-paths.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAUrF;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO9E"}
1
+ {"version":3,"file":"repo-paths.d.ts","sourceRoot":"","sources":["../../src/adapters/repo-paths.ts"],"names":[],"mappings":"AAiCA,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAoBrF;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO9E"}
@@ -1,11 +1,46 @@
1
+ import * as fs from "node:fs";
1
2
  import * as path from "node:path";
3
+ function pathEscapesRoot(root, target) {
4
+ const relative = path.relative(root, target);
5
+ return relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative);
6
+ }
7
+ function realPathOrSelf(target) {
8
+ try {
9
+ return fs.realpathSync.native(target);
10
+ }
11
+ catch {
12
+ return target;
13
+ }
14
+ }
15
+ function nearestExistingAncestor(target) {
16
+ let current = target;
17
+ while (current.length > 0) {
18
+ try {
19
+ fs.lstatSync(current);
20
+ return current;
21
+ }
22
+ catch {
23
+ const parent = path.dirname(current);
24
+ if (parent === current) {
25
+ return current;
26
+ }
27
+ current = parent;
28
+ }
29
+ }
30
+ return target;
31
+ }
2
32
  export function createRepoPathResolver(projectRoot) {
33
+ const normalizedRoot = path.resolve(projectRoot);
34
+ const realProjectRoot = realPathOrSelf(normalizedRoot);
3
35
  return (input) => {
4
- if (path.isAbsolute(input))
5
- return input;
6
- const resolved = path.resolve(projectRoot, input);
7
- const relative = path.relative(projectRoot, resolved);
8
- if (relative.startsWith("..")) {
36
+ const resolved = path.isAbsolute(input)
37
+ ? path.resolve(input)
38
+ : path.resolve(normalizedRoot, input);
39
+ if (pathEscapesRoot(normalizedRoot, resolved)) {
40
+ throw new Error(`Path traversal blocked: ${input}`);
41
+ }
42
+ const realAncestor = realPathOrSelf(nearestExistingAncestor(resolved));
43
+ if (pathEscapesRoot(realProjectRoot, realAncestor)) {
9
44
  throw new Error(`Path traversal blocked: ${input}`);
10
45
  }
11
46
  return resolved;
@@ -1 +1 @@
1
- {"version":3,"file":"repo-paths.js","sourceRoot":"","sources":["../../src/adapters/repo-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,CAAC,KAAa,EAAU,EAAE;QAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChG,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChG,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"repo-paths.js","sourceRoot":"","sources":["../../src/adapters/repo-paths.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { McpToolName } from "../contracts/capabilities.js";
2
- import { type JsonObject } from "../contracts/json-object.js";
2
+ import type { JsonObject } from "../contracts/json-object.js";
3
3
  import { type McpOutputFor } from "../contracts/output-schemas.js";
4
4
  import type { GraftServer, McpToolResult } from "../mcp/server.js";
5
5
  export declare function parseGraftToolPayload(result: McpToolResult): JsonObject;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge.d.ts","sourceRoot":"","sources":["../../src/api/tool-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAMvE;AAED,wBAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EACvD,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAG1B"}
1
+ {"version":3,"file":"tool-bridge.d.ts","sourceRoot":"","sources":["../../src/api/tool-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAMvE;AAED,wBAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EACvD,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAG1B"}
@@ -1,4 +1,4 @@
1
- import { parseJsonTextObject } from "../contracts/json-object.js";
1
+ import { parseJsonTextObject } from "../adapters/json-text-decoder.js";
2
2
  import { getMcpOutputSchema } from "../contracts/output-schemas.js";
3
3
  export function parseGraftToolPayload(result) {
4
4
  const payload = result.content.find((item) => item.type === "text");
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../../src/api/tool-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gCAAgC,CAAC;AAGvF,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAkB,EAClB,IAAO,EACP,IAAgB;IAEhB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAoB,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../../src/api/tool-bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gCAAgC,CAAC;AAGvF,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAkB,EAClB,IAAO,EACP,IAAgB;IAEhB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAoB,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-error.d.ts","sourceRoot":"","sources":["../../src/cli/cli-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3D,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,IAAI,CAeN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAyH3E"}
1
+ {"version":3,"file":"cli-error.d.ts","sourceRoot":"","sources":["../../src/cli/cli-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3D,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,IAAI,CAeN;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAgK3E"}
@@ -25,25 +25,44 @@ export function describeCliFailure(argv) {
25
25
  }
26
26
  if (group === "serve") {
27
27
  return {
28
- usage: "graft serve",
29
- nextSteps: ["Run `graft help` to see the explicit transport entrypoints."],
28
+ usage: "graft serve [--runtime <repo-local|daemon>] [--socket <path>] [--no-autostart]",
29
+ nextSteps: [
30
+ "`graft serve` is repo-local stdio. Use `graft serve --runtime daemon` for the daemon-backed stdio bridge.",
31
+ ],
30
32
  };
31
33
  }
32
34
  if (group === "daemon") {
35
+ if (subcommand === "status") {
36
+ return {
37
+ usage: "graft daemon status [--socket <path>]",
38
+ nextSteps: ["Start the daemon with `graft daemon` or target another daemon with `--socket <path>`."],
39
+ };
40
+ }
33
41
  return {
34
- usage: "graft daemon [--socket <path>]",
35
- nextSteps: ["Run `graft help` to see the daemon and grouped command surfaces."],
42
+ usage: "graft daemon [--socket <path>] | graft daemon status [--socket <path>]",
43
+ nextSteps: ["Run `graft daemon status` to inspect an already-running daemon without mutating daemon state."],
36
44
  };
37
45
  }
46
+ if (group === "doctor") {
47
+ return { usage: "graft doctor [--sludge] [--path <path>] [--json]" };
48
+ }
38
49
  if (group === "index") {
39
50
  return {
40
- usage: "graft index [<from-ref>] [--json]",
41
- nextSteps: ["Use `--json` for machine-readable output."],
51
+ usage: "graft index [--path <path>] [--json]",
52
+ nextSteps: ["Use `--path <path>` for lazy per-file indexing and `--json` for machine-readable output."],
53
+ };
54
+ }
55
+ if (group === "enhance") {
56
+ return {
57
+ usage: "git-graft enhance --since <ref> [--head <ref>] [--json]",
58
+ nextSteps: [
59
+ "Use `git graft enhance --since <ref>` after package install, or `git-graft enhance --since <ref>` via the direct binary.",
60
+ ],
42
61
  };
43
62
  }
44
63
  if (group === "init") {
45
64
  return {
46
- usage: "graft init [--json] [--write-claude-mcp] [--write-claude-hooks] "
65
+ usage: "graft init [--json] [--mcp-runtime <repo-local|daemon>] [--write-claude-mcp] [--write-claude-hooks] "
47
66
  + "[--write-target-git-hooks] [--write-codex-mcp] [--write-cursor-mcp] "
48
67
  + "[--write-windsurf-mcp] [--write-continue-mcp] [--write-cline-mcp]",
49
68
  nextSteps: ["Run `graft help` to confirm the repo-local bootstrap surfaces."],
@@ -77,8 +96,20 @@ export function describeCliFailure(argv) {
77
96
  if (subcommand === "map") {
78
97
  return { usage: "graft struct map [<directory>] [--json]" };
79
98
  }
99
+ if (subcommand === "churn") {
100
+ return { usage: "graft struct churn [--path <path>] [--limit <n>] [--json]" };
101
+ }
102
+ if (subcommand === "exports") {
103
+ return { usage: "graft struct exports [<base-ref> <head-ref>] [--json]" };
104
+ }
105
+ if (subcommand === "log") {
106
+ return { usage: "graft struct log [--path <path>] [--limit <n>] [--json]" };
107
+ }
108
+ if (subcommand === "review") {
109
+ return { usage: "graft struct review [--base <ref>] [--head <ref>] [--json]" };
110
+ }
80
111
  return {
81
- usage: "graft struct <diff|since|map> ...",
112
+ usage: "graft struct <diff|since|map|churn|exports|log|review> ...",
82
113
  nextSteps: ["Run `graft help` to see the available structural subcommands."],
83
114
  };
84
115
  }
@@ -89,8 +120,14 @@ export function describeCliFailure(argv) {
89
120
  if (subcommand === "show") {
90
121
  return { usage: "graft symbol show <symbol> [--path <path>] [--ref <ref>] [--json]" };
91
122
  }
123
+ if (subcommand === "blame") {
124
+ return { usage: "graft symbol blame <symbol> [--path <path>] [--json]" };
125
+ }
126
+ if (subcommand === "difficulty") {
127
+ return { usage: "graft symbol difficulty <symbol> [--path <path>] [--limit <n>] [--json]" };
128
+ }
92
129
  return {
93
- usage: "graft symbol <find|show> ...",
130
+ usage: "graft symbol <find|show|blame|difficulty> ...",
94
131
  nextSteps: ["Run `graft help` to see the available symbol subcommands."],
95
132
  };
96
133
  }
@@ -107,7 +144,7 @@ export function describeCliFailure(argv) {
107
144
  return { usage: "graft diag local-history-dag [--limit <n>] [--json]" };
108
145
  }
109
146
  if (subcommand === "doctor") {
110
- return { usage: "graft diag doctor [--json]" };
147
+ return { usage: "graft diag doctor [--sludge] [--path <path>] [--json]" };
111
148
  }
112
149
  if (subcommand === "explain") {
113
150
  return { usage: "graft diag explain <reason-code> [--json]" };
@@ -1 +1 @@
1
- {"version":3,"file":"cli-error.js","sourceRoot":"","sources":["../../src/cli/cli-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-error.js","sourceRoot":"","sources":["../../src/cli/cli-error.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,19 @@ export interface ParsedCommand {
8
8
  json: boolean;
9
9
  args: Record<string, unknown>;
10
10
  }
11
+ export type ServeRuntime = "repo-local" | "daemon";
12
+ export interface ParsedServeCommand {
13
+ readonly runtime: ServeRuntime;
14
+ readonly socketPath?: string | undefined;
15
+ readonly spawnIfMissing?: boolean | undefined;
16
+ }
17
+ export interface ParsedDaemonCommand {
18
+ readonly action: "start" | "status";
19
+ readonly socketPath?: string | undefined;
20
+ }
11
21
  export declare function resolveEntrypointArgs(args: readonly string[], stdinIsTTY: boolean | undefined, stdoutIsTTY: boolean | undefined): string[];
12
- export declare function parseDaemonCommand(cwd: string, argv: string[]): {
13
- socketPath?: string;
14
- };
22
+ export declare function parseDaemonCommand(cwd: string, argv: string[]): ParsedDaemonCommand;
23
+ export declare function parseServeCommand(cwd: string, argv: string[]): ParsedServeCommand;
15
24
  export declare function parseGlobalOptions(cwd: string, args: readonly string[]): GlobalCliOptions;
16
25
  export declare function parseCommand(argv: string[]): ParsedCommand;
17
26
  //# sourceMappingURL=command-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/cli/command-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,WAAW,EAAE,OAAO,GAAG,SAAS,GAC/B,MAAM,EAAE,CAKV;AA4CD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAIvF;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,gBAAgB,CAOlB;AAgND,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAU1D"}
1
+ {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/cli/command-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,WAAW,EAAE,OAAO,GAAG,SAAS,GAC/B,MAAM,EAAE,CAKV;AA4CD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAWnF;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAqBjF;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,gBAAgB,CAOlB;AAkUD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAyB1D"}