@flyingrobots/graft 0.6.0 → 0.7.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 (563) hide show
  1. package/ADVANCED_GUIDE.md +52 -0
  2. package/CHANGELOG.md +142 -0
  3. package/GUIDE.md +53 -0
  4. package/README.md +1 -1
  5. package/dist/adapters/json-text-decoder.d.ts +3 -0
  6. package/dist/adapters/json-text-decoder.d.ts.map +1 -0
  7. package/dist/adapters/json-text-decoder.js +12 -0
  8. package/dist/adapters/json-text-decoder.js.map +1 -0
  9. package/dist/adapters/node-paths.d.ts +3 -0
  10. package/dist/adapters/node-paths.d.ts.map +1 -0
  11. package/dist/adapters/node-paths.js +29 -0
  12. package/dist/adapters/node-paths.js.map +1 -0
  13. package/dist/adapters/repo-paths.d.ts.map +1 -1
  14. package/dist/adapters/repo-paths.js +40 -5
  15. package/dist/adapters/repo-paths.js.map +1 -1
  16. package/dist/api/tool-bridge.d.ts +1 -1
  17. package/dist/api/tool-bridge.d.ts.map +1 -1
  18. package/dist/api/tool-bridge.js +1 -1
  19. package/dist/api/tool-bridge.js.map +1 -1
  20. package/dist/cli/cli-error.d.ts.map +1 -1
  21. package/dist/cli/cli-error.js +47 -10
  22. package/dist/cli/cli-error.js.map +1 -1
  23. package/dist/cli/command-parser.d.ts +12 -3
  24. package/dist/cli/command-parser.d.ts.map +1 -1
  25. package/dist/cli/command-parser.js +161 -2
  26. package/dist/cli/command-parser.js.map +1 -1
  27. package/dist/cli/daemon-status-model.d.ts +87 -0
  28. package/dist/cli/daemon-status-model.d.ts.map +1 -0
  29. package/dist/cli/daemon-status-model.js +142 -0
  30. package/dist/cli/daemon-status-model.js.map +1 -0
  31. package/dist/cli/daemon-status-render.d.ts +3 -0
  32. package/dist/cli/daemon-status-render.d.ts.map +1 -0
  33. package/dist/cli/daemon-status-render.js +100 -0
  34. package/dist/cli/daemon-status-render.js.map +1 -0
  35. package/dist/cli/daemon-status.d.ts +7 -0
  36. package/dist/cli/daemon-status.d.ts.map +1 -0
  37. package/dist/cli/daemon-status.js +79 -0
  38. package/dist/cli/daemon-status.js.map +1 -0
  39. package/dist/cli/git-graft-enhance-model.d.ts +67 -0
  40. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -0
  41. package/dist/cli/git-graft-enhance-model.js +55 -0
  42. package/dist/cli/git-graft-enhance-model.js.map +1 -0
  43. package/dist/cli/git-graft-enhance-render.d.ts +3 -0
  44. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -0
  45. package/dist/cli/git-graft-enhance-render.js +29 -0
  46. package/dist/cli/git-graft-enhance-render.js.map +1 -0
  47. package/dist/cli/git-graft-enhance.d.ts +14 -0
  48. package/dist/cli/git-graft-enhance.d.ts.map +1 -0
  49. package/dist/cli/git-graft-enhance.js +29 -0
  50. package/dist/cli/git-graft-enhance.js.map +1 -0
  51. package/dist/cli/index-cmd.d.ts.map +1 -1
  52. package/dist/cli/index-cmd.js +18 -21
  53. package/dist/cli/index-cmd.js.map +1 -1
  54. package/dist/cli/index-model.d.ts +5 -9
  55. package/dist/cli/index-model.d.ts.map +1 -1
  56. package/dist/cli/index-model.js +20 -18
  57. package/dist/cli/index-model.js.map +1 -1
  58. package/dist/cli/init-client-config.d.ts +12 -7
  59. package/dist/cli/init-client-config.d.ts.map +1 -1
  60. package/dist/cli/init-client-config.js +105 -43
  61. package/dist/cli/init-client-config.js.map +1 -1
  62. package/dist/cli/init-model.d.ts +9 -2
  63. package/dist/cli/init-model.d.ts.map +1 -1
  64. package/dist/cli/init-model.js +52 -4
  65. package/dist/cli/init-model.js.map +1 -1
  66. package/dist/cli/init-render.d.ts.map +1 -1
  67. package/dist/cli/init-render.js +2 -2
  68. package/dist/cli/init-render.js.map +1 -1
  69. package/dist/cli/init.d.ts.map +1 -1
  70. package/dist/cli/init.js +11 -9
  71. package/dist/cli/init.js.map +1 -1
  72. package/dist/cli/json-document.d.ts +5 -0
  73. package/dist/cli/json-document.d.ts.map +1 -1
  74. package/dist/cli/json-document.js +9 -0
  75. package/dist/cli/json-document.js.map +1 -1
  76. package/dist/cli/main.d.ts +7 -0
  77. package/dist/cli/main.d.ts.map +1 -1
  78. package/dist/cli/main.js +49 -7
  79. package/dist/cli/main.js.map +1 -1
  80. package/dist/cli/migrate-local-history.d.ts.map +1 -1
  81. package/dist/cli/migrate-local-history.js +3 -2
  82. package/dist/cli/migrate-local-history.js.map +1 -1
  83. package/dist/cli/peer-command.d.ts +1 -1
  84. package/dist/cli/peer-command.d.ts.map +1 -1
  85. package/dist/cli/peer-command.js +1 -1
  86. package/dist/cli/peer-command.js.map +1 -1
  87. package/dist/contracts/capabilities.d.ts +5 -5
  88. package/dist/contracts/capabilities.d.ts.map +1 -1
  89. package/dist/contracts/capabilities.js +89 -0
  90. package/dist/contracts/capabilities.js.map +1 -1
  91. package/dist/contracts/causal-ontology.d.ts +17 -17
  92. package/dist/contracts/json-object.d.ts +0 -1
  93. package/dist/contracts/json-object.d.ts.map +1 -1
  94. package/dist/contracts/json-object.js +0 -10
  95. package/dist/contracts/json-object.js.map +1 -1
  96. package/dist/contracts/output-schema-cli.d.ts +277 -25
  97. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  98. package/dist/contracts/output-schema-cli.js +35 -3
  99. package/dist/contracts/output-schema-cli.js.map +1 -1
  100. package/dist/contracts/output-schema-fragments.d.ts +212 -87
  101. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  102. package/dist/contracts/output-schema-fragments.js +49 -2
  103. package/dist/contracts/output-schema-fragments.js.map +1 -1
  104. package/dist/contracts/output-schema-mcp.d.ts +372 -47
  105. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  106. package/dist/contracts/output-schema-mcp.js +217 -1
  107. package/dist/contracts/output-schema-mcp.js.map +1 -1
  108. package/dist/contracts/output-schema-meta.d.ts +2 -2
  109. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  110. package/dist/contracts/output-schemas.d.ts +7 -7
  111. package/dist/contracts/output-schemas.d.ts.map +1 -1
  112. package/dist/contracts/output-schemas.js +294 -6
  113. package/dist/contracts/output-schemas.js.map +1 -1
  114. package/dist/git/diff.d.ts +11 -0
  115. package/dist/git/diff.d.ts.map +1 -1
  116. package/dist/git/diff.js +50 -6
  117. package/dist/git/diff.js.map +1 -1
  118. package/dist/mcp/burden.d.ts.map +1 -1
  119. package/dist/mcp/burden.js +9 -0
  120. package/dist/mcp/burden.js.map +1 -1
  121. package/dist/mcp/context.d.ts +3 -2
  122. package/dist/mcp/context.d.ts.map +1 -1
  123. package/dist/mcp/context.js +2 -37
  124. package/dist/mcp/context.js.map +1 -1
  125. package/dist/mcp/daemon-server.d.ts +2 -0
  126. package/dist/mcp/daemon-server.d.ts.map +1 -1
  127. package/dist/mcp/daemon-server.js +6 -1
  128. package/dist/mcp/daemon-server.js.map +1 -1
  129. package/dist/mcp/daemon-session-host.d.ts +1 -0
  130. package/dist/mcp/daemon-session-host.d.ts.map +1 -1
  131. package/dist/mcp/daemon-session-host.js +3 -0
  132. package/dist/mcp/daemon-session-host.js.map +1 -1
  133. package/dist/mcp/daemon-stdio-bridge.d.ts +1 -0
  134. package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -1
  135. package/dist/mcp/daemon-stdio-bridge.js +1 -0
  136. package/dist/mcp/daemon-stdio-bridge.js.map +1 -1
  137. package/dist/mcp/monitor-tick-job.d.ts +1 -0
  138. package/dist/mcp/monitor-tick-job.d.ts.map +1 -1
  139. package/dist/mcp/monitor-tick-job.js +84 -29
  140. package/dist/mcp/monitor-tick-job.js.map +1 -1
  141. package/dist/mcp/monitor-types.d.ts +1 -1
  142. package/dist/mcp/monitor-types.d.ts.map +1 -1
  143. package/dist/mcp/persisted-local-history-graph.d.ts +2 -2
  144. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  145. package/dist/mcp/persisted-local-history-graph.js +3 -2
  146. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  147. package/dist/mcp/persisted-local-history.d.ts +5 -5
  148. package/dist/mcp/persisted-local-history.js +2 -2
  149. package/dist/mcp/persisted-local-history.js.map +1 -1
  150. package/dist/mcp/persistent-monitor-runtime.d.ts +1 -0
  151. package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -1
  152. package/dist/mcp/persistent-monitor-runtime.js +35 -0
  153. package/dist/mcp/persistent-monitor-runtime.js.map +1 -1
  154. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
  155. package/dist/mcp/repo-tool-worker-context.js +5 -2
  156. package/dist/mcp/repo-tool-worker-context.js.map +1 -1
  157. package/dist/mcp/server-context.d.ts.map +1 -1
  158. package/dist/mcp/server-context.js +13 -0
  159. package/dist/mcp/server-context.js.map +1 -1
  160. package/dist/mcp/server-tool-access.d.ts +1 -1
  161. package/dist/mcp/server-tool-access.d.ts.map +1 -1
  162. package/dist/mcp/server-tool-access.js +3 -1
  163. package/dist/mcp/server-tool-access.js.map +1 -1
  164. package/dist/mcp/server.d.ts +3 -0
  165. package/dist/mcp/server.d.ts.map +1 -1
  166. package/dist/mcp/server.js +5 -3
  167. package/dist/mcp/server.js.map +1 -1
  168. package/dist/mcp/tool-registry.d.ts.map +1 -1
  169. package/dist/mcp/tool-registry.js +18 -0
  170. package/dist/mcp/tool-registry.js.map +1 -1
  171. package/dist/mcp/tools/code-find.d.ts.map +1 -1
  172. package/dist/mcp/tools/code-find.js +20 -0
  173. package/dist/mcp/tools/code-find.js.map +1 -1
  174. package/dist/mcp/tools/code-show.d.ts.map +1 -1
  175. package/dist/mcp/tools/code-show.js +24 -0
  176. package/dist/mcp/tools/code-show.js.map +1 -1
  177. package/dist/mcp/tools/diagnostic-models.d.ts +2 -0
  178. package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -1
  179. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  180. package/dist/mcp/tools/doctor.js +18 -1
  181. package/dist/mcp/tools/doctor.js.map +1 -1
  182. package/dist/mcp/tools/export-surface-diff.d.ts +3 -0
  183. package/dist/mcp/tools/export-surface-diff.d.ts.map +1 -0
  184. package/dist/mcp/tools/export-surface-diff.js +24 -0
  185. package/dist/mcp/tools/export-surface-diff.js.map +1 -0
  186. package/dist/mcp/tools/file-outline.js +1 -1
  187. package/dist/mcp/tools/file-outline.js.map +1 -1
  188. package/dist/mcp/tools/graft-edit.d.ts +3 -0
  189. package/dist/mcp/tools/graft-edit.d.ts.map +1 -0
  190. package/dist/mcp/tools/graft-edit.js +192 -0
  191. package/dist/mcp/tools/graft-edit.js.map +1 -0
  192. package/dist/mcp/tools/knowledge-map.d.ts +3 -0
  193. package/dist/mcp/tools/knowledge-map.d.ts.map +1 -0
  194. package/dist/mcp/tools/knowledge-map.js +31 -0
  195. package/dist/mcp/tools/knowledge-map.js.map +1 -0
  196. package/dist/mcp/tools/monitor-nudge.d.ts +3 -0
  197. package/dist/mcp/tools/monitor-nudge.d.ts.map +1 -0
  198. package/dist/mcp/tools/monitor-nudge.js +17 -0
  199. package/dist/mcp/tools/monitor-nudge.js.map +1 -0
  200. package/dist/mcp/tools/precision-warp.d.ts +3 -3
  201. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  202. package/dist/mcp/tools/precision-warp.js +24 -15
  203. package/dist/mcp/tools/precision-warp.js.map +1 -1
  204. package/dist/mcp/tools/refactor-difficulty.d.ts +3 -0
  205. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -0
  206. package/dist/mcp/tools/refactor-difficulty.js +36 -0
  207. package/dist/mcp/tools/refactor-difficulty.js.map +1 -0
  208. package/dist/mcp/tools/safe-read.js +2 -2
  209. package/dist/mcp/tools/safe-read.js.map +1 -1
  210. package/dist/mcp/tools/structural-blame.d.ts +3 -0
  211. package/dist/mcp/tools/structural-blame.d.ts.map +1 -0
  212. package/dist/mcp/tools/structural-blame.js +44 -0
  213. package/dist/mcp/tools/structural-blame.js.map +1 -0
  214. package/dist/mcp/tools/structural-churn.d.ts +3 -0
  215. package/dist/mcp/tools/structural-churn.d.ts.map +1 -0
  216. package/dist/mcp/tools/structural-churn.js +28 -0
  217. package/dist/mcp/tools/structural-churn.js.map +1 -0
  218. package/dist/mcp/tools/structural-log.d.ts +3 -0
  219. package/dist/mcp/tools/structural-log.d.ts.map +1 -0
  220. package/dist/mcp/tools/structural-log.js +38 -0
  221. package/dist/mcp/tools/structural-log.js.map +1 -0
  222. package/dist/mcp/tools/structural-review.d.ts +3 -0
  223. package/dist/mcp/tools/structural-review.d.ts.map +1 -0
  224. package/dist/mcp/tools/structural-review.js +55 -0
  225. package/dist/mcp/tools/structural-review.js.map +1 -0
  226. package/dist/mcp/warp-pool.d.ts +4 -4
  227. package/dist/mcp/warp-pool.d.ts.map +1 -1
  228. package/dist/mcp/warp-pool.js.map +1 -1
  229. package/dist/mcp/workspace-router-model.d.ts +2 -2
  230. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  231. package/dist/mcp/workspace-router-runtime.d.ts +3 -3
  232. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -1
  233. package/dist/mcp/workspace-router-runtime.js +4 -1
  234. package/dist/mcp/workspace-router-runtime.js.map +1 -1
  235. package/dist/mcp/workspace-router.d.ts +3 -2
  236. package/dist/mcp/workspace-router.d.ts.map +1 -1
  237. package/dist/mcp/workspace-router.js +6 -0
  238. package/dist/mcp/workspace-router.js.map +1 -1
  239. package/dist/operations/adaptive-projection.d.ts +22 -0
  240. package/dist/operations/adaptive-projection.d.ts.map +1 -0
  241. package/dist/operations/adaptive-projection.js +36 -0
  242. package/dist/operations/adaptive-projection.js.map +1 -0
  243. package/dist/operations/agent-handoff.d.ts +25 -0
  244. package/dist/operations/agent-handoff.d.ts.map +1 -0
  245. package/dist/operations/agent-handoff.js +36 -0
  246. package/dist/operations/agent-handoff.js.map +1 -0
  247. package/dist/operations/capture-range.d.ts +33 -0
  248. package/dist/operations/capture-range.d.ts.map +1 -0
  249. package/dist/operations/capture-range.js +45 -0
  250. package/dist/operations/capture-range.js.map +1 -0
  251. package/dist/operations/conversation-primer.d.ts +27 -0
  252. package/dist/operations/conversation-primer.d.ts.map +1 -0
  253. package/dist/operations/conversation-primer.js +52 -0
  254. package/dist/operations/conversation-primer.js.map +1 -0
  255. package/dist/operations/cross-session-resume.d.ts +28 -0
  256. package/dist/operations/cross-session-resume.d.ts.map +1 -0
  257. package/dist/operations/cross-session-resume.js +79 -0
  258. package/dist/operations/cross-session-resume.js.map +1 -0
  259. package/dist/operations/deterministic-replay.d.ts +39 -0
  260. package/dist/operations/deterministic-replay.d.ts.map +1 -0
  261. package/dist/operations/deterministic-replay.js +90 -0
  262. package/dist/operations/deterministic-replay.js.map +1 -0
  263. package/dist/operations/export-surface-diff.d.ts +36 -0
  264. package/dist/operations/export-surface-diff.d.ts.map +1 -0
  265. package/dist/operations/export-surface-diff.js +298 -0
  266. package/dist/operations/export-surface-diff.js.map +1 -0
  267. package/dist/operations/footprint-parallelism.d.ts +25 -0
  268. package/dist/operations/footprint-parallelism.d.ts.map +1 -0
  269. package/dist/operations/footprint-parallelism.js +79 -0
  270. package/dist/operations/footprint-parallelism.js.map +1 -0
  271. package/dist/operations/graft-diff.d.ts.map +1 -1
  272. package/dist/operations/graft-diff.js +14 -7
  273. package/dist/operations/graft-diff.js.map +1 -1
  274. package/dist/operations/horizon-of-readability.d.ts +23 -0
  275. package/dist/operations/horizon-of-readability.d.ts.map +1 -0
  276. package/dist/operations/horizon-of-readability.js +39 -0
  277. package/dist/operations/horizon-of-readability.js.map +1 -0
  278. package/dist/operations/import-reference-impact.d.ts +13 -0
  279. package/dist/operations/import-reference-impact.d.ts.map +1 -0
  280. package/dist/operations/import-reference-impact.js +101 -0
  281. package/dist/operations/import-reference-impact.js.map +1 -0
  282. package/dist/operations/knowledge-map.d.ts +30 -0
  283. package/dist/operations/knowledge-map.d.ts.map +1 -0
  284. package/dist/operations/knowledge-map.js +64 -0
  285. package/dist/operations/knowledge-map.js.map +1 -0
  286. package/dist/operations/observation-cache.d.ts +8 -2
  287. package/dist/operations/observation-cache.d.ts.map +1 -1
  288. package/dist/operations/observation-cache.js +17 -5
  289. package/dist/operations/observation-cache.js.map +1 -1
  290. package/dist/operations/projection-safety.d.ts +31 -0
  291. package/dist/operations/projection-safety.d.ts.map +1 -0
  292. package/dist/operations/projection-safety.js +77 -0
  293. package/dist/operations/projection-safety.js.map +1 -0
  294. package/dist/operations/repo-workspace.js +3 -3
  295. package/dist/operations/repo-workspace.js.map +1 -1
  296. package/dist/operations/semantic-drift.d.ts +27 -0
  297. package/dist/operations/semantic-drift.d.ts.map +1 -0
  298. package/dist/operations/semantic-drift.js +46 -0
  299. package/dist/operations/semantic-drift.js.map +1 -0
  300. package/dist/operations/session-filtration.d.ts +36 -0
  301. package/dist/operations/session-filtration.d.ts.map +1 -0
  302. package/dist/operations/session-filtration.js +48 -0
  303. package/dist/operations/session-filtration.js.map +1 -0
  304. package/dist/operations/session-replay.d.ts +17 -0
  305. package/dist/operations/session-replay.d.ts.map +1 -0
  306. package/dist/operations/session-replay.js +59 -0
  307. package/dist/operations/session-replay.js.map +1 -0
  308. package/dist/operations/sludge-detector.d.ts +45 -0
  309. package/dist/operations/sludge-detector.d.ts.map +1 -0
  310. package/dist/operations/sludge-detector.js +278 -0
  311. package/dist/operations/sludge-detector.js.map +1 -0
  312. package/dist/operations/structural-blame.d.ts +67 -0
  313. package/dist/operations/structural-blame.d.ts.map +1 -0
  314. package/dist/operations/structural-blame.js +111 -0
  315. package/dist/operations/structural-blame.js.map +1 -0
  316. package/dist/operations/structural-review.d.ts +47 -0
  317. package/dist/operations/structural-review.d.ts.map +1 -0
  318. package/dist/operations/structural-review.js +225 -0
  319. package/dist/operations/structural-review.js.map +1 -0
  320. package/dist/operations/teaching-hints.d.ts +18 -0
  321. package/dist/operations/teaching-hints.d.ts.map +1 -0
  322. package/dist/operations/teaching-hints.js +35 -0
  323. package/dist/operations/teaching-hints.js.map +1 -0
  324. package/dist/parser/diff.d.ts +2 -0
  325. package/dist/parser/diff.d.ts.map +1 -1
  326. package/dist/parser/diff.js +7 -0
  327. package/dist/parser/diff.js.map +1 -1
  328. package/dist/ports/paths.d.ts +17 -0
  329. package/dist/ports/paths.d.ts.map +1 -0
  330. package/dist/ports/{warp.js → paths.js} +2 -2
  331. package/dist/ports/paths.js.map +1 -0
  332. package/dist/warp/ast-emitter.d.ts +28 -0
  333. package/dist/warp/ast-emitter.d.ts.map +1 -0
  334. package/dist/warp/ast-emitter.js +90 -0
  335. package/dist/warp/ast-emitter.js.map +1 -0
  336. package/dist/warp/ast-import-resolver.d.ts +13 -0
  337. package/dist/warp/ast-import-resolver.d.ts.map +1 -0
  338. package/dist/warp/ast-import-resolver.js +259 -0
  339. package/dist/warp/ast-import-resolver.js.map +1 -0
  340. package/dist/warp/commit-meta.d.ts +8 -0
  341. package/dist/warp/commit-meta.d.ts.map +1 -0
  342. package/dist/warp/commit-meta.js +13 -0
  343. package/dist/warp/commit-meta.js.map +1 -0
  344. package/dist/warp/context.d.ts +10 -0
  345. package/dist/warp/context.d.ts.map +1 -0
  346. package/dist/warp/context.js +26 -0
  347. package/dist/warp/context.js.map +1 -0
  348. package/dist/warp/dead-symbols.d.ts +40 -0
  349. package/dist/warp/dead-symbols.d.ts.map +1 -0
  350. package/dist/warp/dead-symbols.js +127 -0
  351. package/dist/warp/dead-symbols.js.map +1 -0
  352. package/dist/warp/drift-sentinel.d.ts +30 -0
  353. package/dist/warp/drift-sentinel.d.ts.map +1 -0
  354. package/dist/warp/drift-sentinel.js +65 -0
  355. package/dist/warp/drift-sentinel.js.map +1 -0
  356. package/dist/warp/index-head.d.ts +32 -0
  357. package/dist/warp/index-head.d.ts.map +1 -0
  358. package/dist/warp/index-head.js +245 -0
  359. package/dist/warp/index-head.js.map +1 -0
  360. package/dist/warp/observers.d.ts +6 -6
  361. package/dist/warp/observers.d.ts.map +1 -1
  362. package/dist/warp/observers.js +5 -4
  363. package/dist/warp/observers.js.map +1 -1
  364. package/dist/warp/open.d.ts +5 -4
  365. package/dist/warp/open.d.ts.map +1 -1
  366. package/dist/warp/open.js +24 -49
  367. package/dist/warp/open.js.map +1 -1
  368. package/dist/warp/outline-diff-trailer.d.ts +26 -0
  369. package/dist/warp/outline-diff-trailer.d.ts.map +1 -0
  370. package/dist/warp/outline-diff-trailer.js +68 -0
  371. package/dist/warp/outline-diff-trailer.js.map +1 -0
  372. package/dist/warp/refactor-difficulty.d.ts +38 -0
  373. package/dist/warp/refactor-difficulty.d.ts.map +1 -0
  374. package/dist/warp/refactor-difficulty.js +169 -0
  375. package/dist/warp/refactor-difficulty.js.map +1 -0
  376. package/dist/warp/references.d.ts +22 -0
  377. package/dist/warp/references.d.ts.map +1 -0
  378. package/dist/warp/references.js +57 -0
  379. package/dist/warp/references.js.map +1 -0
  380. package/dist/warp/stale-docs.d.ts +56 -0
  381. package/dist/warp/stale-docs.d.ts.map +1 -0
  382. package/dist/warp/stale-docs.js +149 -0
  383. package/dist/warp/stale-docs.js.map +1 -0
  384. package/dist/warp/structural-drift-detection.d.ts +49 -0
  385. package/dist/warp/structural-drift-detection.d.ts.map +1 -0
  386. package/dist/warp/structural-drift-detection.js +51 -0
  387. package/dist/warp/structural-drift-detection.js.map +1 -0
  388. package/dist/warp/structural-queries.d.ts +49 -0
  389. package/dist/warp/structural-queries.d.ts.map +1 -0
  390. package/dist/warp/structural-queries.js +175 -0
  391. package/dist/warp/structural-queries.js.map +1 -0
  392. package/dist/warp/symbol-timeline.d.ts +34 -0
  393. package/dist/warp/symbol-timeline.d.ts.map +1 -0
  394. package/dist/warp/symbol-timeline.js +127 -0
  395. package/dist/warp/symbol-timeline.js.map +1 -0
  396. package/dist/warp/traverse-hydrate.d.ts +23 -0
  397. package/dist/warp/traverse-hydrate.d.ts.map +1 -0
  398. package/dist/warp/traverse-hydrate.js +39 -0
  399. package/dist/warp/traverse-hydrate.js.map +1 -0
  400. package/dist/warp/warp-reference-count.d.ts +19 -0
  401. package/dist/warp/warp-reference-count.d.ts.map +1 -0
  402. package/dist/warp/warp-reference-count.js +32 -0
  403. package/dist/warp/warp-reference-count.js.map +1 -0
  404. package/dist/warp/warp-structural-blame.d.ts +20 -0
  405. package/dist/warp/warp-structural-blame.d.ts.map +1 -0
  406. package/dist/warp/warp-structural-blame.js +43 -0
  407. package/dist/warp/warp-structural-blame.js.map +1 -0
  408. package/dist/warp/warp-structural-churn.d.ts +30 -0
  409. package/dist/warp/warp-structural-churn.d.ts.map +1 -0
  410. package/dist/warp/warp-structural-churn.js +213 -0
  411. package/dist/warp/warp-structural-churn.js.map +1 -0
  412. package/dist/warp/warp-structural-log.d.ts +35 -0
  413. package/dist/warp/warp-structural-log.d.ts.map +1 -0
  414. package/dist/warp/warp-structural-log.js +104 -0
  415. package/dist/warp/warp-structural-log.js.map +1 -0
  416. package/docs/CLI.md +68 -4
  417. package/docs/MCP.md +23 -0
  418. package/docs/SETUP.md +779 -0
  419. package/package.json +10 -7
  420. package/src/adapters/json-text-decoder.ts +11 -0
  421. package/src/adapters/node-paths.ts +35 -0
  422. package/src/adapters/repo-paths.ts +45 -4
  423. package/src/api/tool-bridge.ts +2 -1
  424. package/src/cli/cli-error.ts +49 -10
  425. package/src/cli/command-parser.ts +185 -3
  426. package/src/cli/daemon-status-model.ts +238 -0
  427. package/src/cli/daemon-status-render.ts +102 -0
  428. package/src/cli/daemon-status.ts +100 -0
  429. package/src/cli/git-graft-enhance-model.ts +131 -0
  430. package/src/cli/git-graft-enhance-render.ts +33 -0
  431. package/src/cli/git-graft-enhance.ts +54 -0
  432. package/src/cli/index-cmd.ts +18 -22
  433. package/src/cli/index-model.ts +21 -22
  434. package/src/cli/init-client-config.ts +167 -38
  435. package/src/cli/init-model.ts +57 -2
  436. package/src/cli/init-render.ts +2 -2
  437. package/src/cli/init.ts +11 -9
  438. package/src/cli/json-document.ts +11 -0
  439. package/src/cli/main.ts +53 -6
  440. package/src/cli/migrate-local-history.ts +3 -2
  441. package/src/cli/peer-command.ts +2 -1
  442. package/src/contracts/capabilities.ts +90 -0
  443. package/src/contracts/json-object.ts +1 -11
  444. package/src/contracts/output-schema-cli.ts +36 -3
  445. package/src/contracts/output-schema-fragments.ts +52 -2
  446. package/src/contracts/output-schema-mcp.ts +219 -0
  447. package/src/contracts/output-schemas.ts +300 -6
  448. package/src/git/diff.ts +61 -0
  449. package/src/mcp/burden.ts +9 -0
  450. package/src/mcp/context.ts +5 -42
  451. package/src/mcp/daemon-server.ts +8 -1
  452. package/src/mcp/daemon-session-host.ts +4 -0
  453. package/src/mcp/daemon-stdio-bridge.ts +2 -0
  454. package/src/mcp/monitor-tick-job.ts +90 -39
  455. package/src/mcp/monitor-types.ts +1 -1
  456. package/src/mcp/persisted-local-history-graph.ts +5 -4
  457. package/src/mcp/persisted-local-history.ts +2 -2
  458. package/src/mcp/persistent-monitor-runtime.ts +37 -0
  459. package/src/mcp/repo-tool-worker-context.ts +5 -2
  460. package/src/mcp/server-context.ts +15 -2
  461. package/src/mcp/server-tool-access.ts +4 -1
  462. package/src/mcp/server.ts +8 -3
  463. package/src/mcp/tool-registry.ts +18 -0
  464. package/src/mcp/tools/code-find.ts +23 -0
  465. package/src/mcp/tools/code-show.ts +27 -0
  466. package/src/mcp/tools/diagnostic-models.ts +2 -0
  467. package/src/mcp/tools/doctor.ts +18 -1
  468. package/src/mcp/tools/export-surface-diff.ts +26 -0
  469. package/src/mcp/tools/file-outline.ts +1 -1
  470. package/src/mcp/tools/graft-edit.ts +276 -0
  471. package/src/mcp/tools/knowledge-map.ts +34 -0
  472. package/src/mcp/tools/monitor-nudge.ts +19 -0
  473. package/src/mcp/tools/precision-warp.ts +27 -16
  474. package/src/mcp/tools/refactor-difficulty.ts +42 -0
  475. package/src/mcp/tools/safe-read.ts +2 -2
  476. package/src/mcp/tools/structural-blame.ts +55 -0
  477. package/src/mcp/tools/structural-churn.ts +28 -0
  478. package/src/mcp/tools/structural-log.ts +41 -0
  479. package/src/mcp/tools/structural-review.ts +63 -0
  480. package/src/mcp/warp-pool.ts +6 -6
  481. package/src/mcp/workspace-router-model.ts +2 -2
  482. package/src/mcp/workspace-router-runtime.ts +11 -8
  483. package/src/mcp/workspace-router.ts +9 -2
  484. package/src/operations/adaptive-projection.ts +54 -0
  485. package/src/operations/agent-handoff.ts +59 -0
  486. package/src/operations/capture-range.ts +64 -0
  487. package/src/operations/conversation-primer.ts +82 -0
  488. package/src/operations/cross-session-resume.ts +104 -0
  489. package/src/operations/deterministic-replay.ts +143 -0
  490. package/src/operations/export-surface-diff.ts +355 -0
  491. package/src/operations/footprint-parallelism.ts +98 -0
  492. package/src/operations/graft-diff.ts +14 -7
  493. package/src/operations/horizon-of-readability.ts +60 -0
  494. package/src/operations/import-reference-impact.ts +143 -0
  495. package/src/operations/knowledge-map.ts +96 -0
  496. package/src/operations/observation-cache.ts +20 -4
  497. package/src/operations/projection-safety.ts +111 -0
  498. package/src/operations/repo-workspace.ts +3 -3
  499. package/src/operations/semantic-drift.ts +70 -0
  500. package/src/operations/session-filtration.ts +76 -0
  501. package/src/operations/session-replay.ts +73 -0
  502. package/src/operations/sludge-detector.ts +356 -0
  503. package/src/operations/structural-blame.ts +197 -0
  504. package/src/operations/structural-review.ts +317 -0
  505. package/src/operations/teaching-hints.ts +52 -0
  506. package/src/parser/diff.ts +7 -0
  507. package/src/ports/paths.ts +22 -0
  508. package/src/warp/ast-emitter.ts +133 -0
  509. package/src/warp/ast-import-resolver.ts +333 -0
  510. package/src/warp/commit-meta.ts +19 -0
  511. package/src/warp/context.ts +48 -0
  512. package/src/warp/dead-symbols.ts +174 -0
  513. package/src/warp/drift-sentinel.ts +101 -0
  514. package/src/warp/index-head.ts +348 -0
  515. package/src/warp/observers.ts +8 -7
  516. package/src/warp/open.ts +40 -66
  517. package/src/warp/outline-diff-trailer.ts +100 -0
  518. package/src/warp/plumbing.d.ts +11 -2
  519. package/src/warp/refactor-difficulty.ts +257 -0
  520. package/src/warp/references.ts +77 -0
  521. package/src/warp/stale-docs.ts +210 -0
  522. package/src/warp/structural-drift-detection.ts +97 -0
  523. package/src/warp/structural-queries.ts +258 -0
  524. package/src/warp/symbol-timeline.ts +209 -0
  525. package/src/warp/traverse-hydrate.ts +61 -0
  526. package/src/warp/warp-reference-count.ts +47 -0
  527. package/src/warp/warp-structural-blame.ts +65 -0
  528. package/src/warp/warp-structural-churn.ts +309 -0
  529. package/src/warp/warp-structural-log.ts +149 -0
  530. package/dist/ports/warp.d.ts +0 -45
  531. package/dist/ports/warp.d.ts.map +0 -1
  532. package/dist/ports/warp.js.map +0 -1
  533. package/dist/warp/identity-resolver.d.ts +0 -14
  534. package/dist/warp/identity-resolver.d.ts.map +0 -1
  535. package/dist/warp/identity-resolver.js +0 -31
  536. package/dist/warp/identity-resolver.js.map +0 -1
  537. package/dist/warp/indexer-git.d.ts +0 -22
  538. package/dist/warp/indexer-git.d.ts.map +0 -1
  539. package/dist/warp/indexer-git.js +0 -148
  540. package/dist/warp/indexer-git.js.map +0 -1
  541. package/dist/warp/indexer-graph.d.ts +0 -17
  542. package/dist/warp/indexer-graph.d.ts.map +0 -1
  543. package/dist/warp/indexer-graph.js +0 -179
  544. package/dist/warp/indexer-graph.js.map +0 -1
  545. package/dist/warp/indexer-model.d.ts +0 -51
  546. package/dist/warp/indexer-model.d.ts.map +0 -1
  547. package/dist/warp/indexer-model.js +0 -21
  548. package/dist/warp/indexer-model.js.map +0 -1
  549. package/dist/warp/indexer.d.ts +0 -9
  550. package/dist/warp/indexer.d.ts.map +0 -1
  551. package/dist/warp/indexer.js +0 -112
  552. package/dist/warp/indexer.js.map +0 -1
  553. package/dist/warp/symbol-identity.d.ts +0 -11
  554. package/dist/warp/symbol-identity.d.ts.map +0 -1
  555. package/dist/warp/symbol-identity.js +0 -67
  556. package/dist/warp/symbol-identity.js.map +0 -1
  557. package/src/ports/warp.ts +0 -55
  558. package/src/warp/identity-resolver.ts +0 -35
  559. package/src/warp/indexer-git.ts +0 -182
  560. package/src/warp/indexer-graph.ts +0 -276
  561. package/src/warp/indexer-model.ts +0 -69
  562. package/src/warp/indexer.ts +0 -186
  563. package/src/warp/symbol-identity.ts +0 -100
@@ -0,0 +1,52 @@
1
+ # Advanced Guide
2
+
3
+ This guide is the release-facing signpost for operators and
4
+ contributors who need more than setup instructions.
5
+
6
+ ## Use this guide for
7
+
8
+ - understanding the same-user local daemon posture
9
+ - understanding hook/bootstrap coverage and degraded footing
10
+ - understanding the boundary between bounded local `artifact_history`
11
+ and canonical provenance
12
+ - understanding why release prep pauses the repo after a cycle close
13
+
14
+ ## Current advanced topics
15
+
16
+ ### Daemon posture
17
+
18
+ `graft daemon` is a same-user local runtime with explicit workspace
19
+ authorization, session binding, monitor control, and bounded daemon
20
+ inspection surfaces.
21
+
22
+ ### Reactive footing
23
+
24
+ Checkout-boundary footing is explicit. Graft can report installed hook
25
+ coverage, hook-observed transitions, and degraded posture when local
26
+ edit watchers are absent.
27
+
28
+ ### Same-repo concurrency
29
+
30
+ Graft now distinguishes bounded same-repo postures such as
31
+ `exclusive`, `shared_repo_only`, `shared_worktree`,
32
+ `overlapping_actors`, and `divergent_checkout` without pretending
33
+ multi-writer provenance already exists.
34
+
35
+ ### Between-commit activity
36
+
37
+ `activity_view` and `graft diag activity` expose bounded local
38
+ between-commit `artifact_history`. This is not canonical provenance
39
+ and not causal collapse.
40
+
41
+ ## Related docs
42
+
43
+ - [README](./README.md)
44
+ - [Guide](./GUIDE.md)
45
+ - [Setup Guide](./docs/SETUP.md)
46
+ - [CLI Guide](./docs/CLI.md)
47
+ - [MCP Guide](./docs/MCP.md)
48
+ - [Architecture](./ARCHITECTURE.md)
49
+ - [Security Model](./docs/strategy/security-model.md)
50
+ - [Causal Provenance](./docs/strategy/causal-provenance.md)
51
+ - [Bearing](./docs/BEARING.md)
52
+ - [Vision](./docs/VISION.md)
package/CHANGELOG.md CHANGED
@@ -7,6 +7,148 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.7.0] - 2026-04-30
11
+
12
+ ### Added
13
+
14
+ - **Sludge detector**: `doctor` can run an opt-in parser-backed
15
+ structural smell scan with `sludge: true` or `graft doctor --sludge`.
16
+ It reports typedef/class imbalance, JSDoc cast density, homeless
17
+ constructor functions, free functions operating on project types, and
18
+ high-symbol-count files.
19
+ - **Refactor difficulty score**: `graft_difficulty` and
20
+ `graft symbol difficulty` report a scalar per-symbol refactor score
21
+ from WARP churn curvature and reference-edge friction.
22
+ - **WARP snapshot indexing**: `indexHead` is now the canonical
23
+ snapshot-based indexing path and emits commit, file, directory,
24
+ symbol, and AST facts with tick metadata.
25
+ - **Cross-file import resolution**: WARP now records import,
26
+ re-export, and namespace reference edges for graph-native reference
27
+ queries.
28
+ - **Outline-diff commit trailer**: `formatStructuralDiffTrailer` +
29
+ `parseStructuralDiffTrailer` for embedding structural diffs in
30
+ git commit messages as machine-readable trailers.
31
+ - **Background indexing with monitor_nudge**: `monitor_nudge` MCP
32
+ tool triggers immediate re-index for a running monitor. For
33
+ post-commit hooks to notify graft that HEAD changed.
34
+ - **Structural drift detection**: `checkNumericClaim` and
35
+ `checkPatternProhibition` verify doc claims against reality —
36
+ numeric counts and pattern prohibitions.
37
+ - **Drift sentinel**: `runDriftSentinel(ctx, options)` scans all
38
+ tracked markdown files for stale symbol references against the
39
+ WARP graph. Returns pass/fail verdict for pre-commit hook use.
40
+ - **WARP-based reference counting for structural-review**: `graft_review`
41
+ now counts symbol references via WARP graph traversal instead of
42
+ ripgrep. More precise (actual imports) and faster (no subprocess).
43
+ - **Stale docs checker**: `checkStaleDocs` cross-references markdown
44
+ symbol mentions against the WARP graph to detect outdated docs.
45
+ `checkVersionDrift` compares CHANGELOG vs package.json versions.
46
+ - **Session knowledge map**: `knowledge_map` MCP tool answers "what
47
+ do I already know?" — observed files, symbols, staleness flags,
48
+ and per-directory coverage.
49
+ - **Symbol history timeline**: `symbolTimeline(ctx, name, filePath?)`
50
+ returns every version of a symbol across commits — signature, line
51
+ range, presence, and change kind, ordered by tick.
52
+ - **Dead symbol detection**: `findDeadSymbols(ctx, options?)` finds
53
+ symbols removed from the codebase and never re-added. Supports
54
+ `maxCommits` depth limiting. Uses WARP snapshot diffs, no grep.
55
+ - **Monitor tick ceiling tracking**: `runMonitorTickJob` skips
56
+ `openWarp` and `indexHead` when HEAD hasn't changed since the last
57
+ indexed commit. Idle monitor ticks are now near-zero-cost.
58
+ - **Daemon-backed stdio MCP runtime**: `graft serve --runtime daemon`
59
+ exposes the tested daemon bridge as a release-facing MCP runtime, and
60
+ `graft init --mcp-runtime daemon --write-*-mcp` can generate client
61
+ config for daemon-backed stdio instead of repo-local stdio.
62
+ - **Read-only daemon status surface**: `graft daemon status
63
+ [--socket <path>]` renders daemon health, session counts, workspace
64
+ posture, monitor summary, scheduler pressure, and worker pressure
65
+ without adding daemon mutation actions.
66
+ - **Git-facing enhance first slice**: `git graft enhance --since <ref>`
67
+ and `git-graft enhance --since <ref>` compose shipped structural
68
+ since and export-surface facts into a concise review summary, with
69
+ schema-validated JSON available through `--json`.
70
+ - **Governed exact replacement edit**: `graft_edit` is a narrow MCP
71
+ edit tool for one exact replacement through Graft's path, policy,
72
+ schema, and filesystem-port boundaries.
73
+ - **Agent drift advisory**: `graft_edit` responses can include optional
74
+ advisory `driftWarnings` when a same-session edit removes then later
75
+ reintroduces the narrow `jsdoc_typedef` structural pattern.
76
+
77
+ ### Changed
78
+
79
+ - **WARP context boundary**: `WarpHandle` was removed in favor of
80
+ direct git-warp types carried through `WarpContext`, with fail-closed
81
+ strand routing hooks for future strand isolation.
82
+ - **Structural query read paths**: structural queries now use
83
+ `traverse`, `QueryBuilder`, and tick receipts instead of broad
84
+ `getEdges()` scans.
85
+ - **WARP-backed structural operations**: `graft_log`, `graft_churn`,
86
+ `graft_blame`, and `graft_review` now use WARP graph data for their
87
+ MCP execution paths.
88
+ - **Aggregate-backed structural churn**: `graft_churn` now computes
89
+ live-symbol change counts with WARP `QueryBuilder.aggregate()`, while
90
+ preserving removed-symbol churn from tick receipt evidence.
91
+ - **`graft_blame` output shape**: WARP-backed blame returns tick-aware
92
+ symbol timeline data and a simplified `createdInCommit` value. This
93
+ is a breaking pre-1.0 MCP schema change for consumers scraping the
94
+ old result shape.
95
+ - **Daemon runtime selection**: repo-local `graft serve` remains
96
+ unchanged, while daemon-backed operation is now an explicit
97
+ `--runtime daemon` choice with clear setup docs.
98
+ - **Release scope truth**: full LSP semantic enrichment and the
99
+ remaining medium-risk slice-first read sweep are preserved as
100
+ post-v0.7.0 follow-up cards instead of active release blockers.
101
+
102
+ ### Removed
103
+
104
+ - **Legacy commit-walking indexer**: removed the old `indexCommits`
105
+ pipeline and related model/graph helpers. `indexHead` is the active
106
+ indexing path.
107
+
108
+ ### Fixed
109
+
110
+ - **Agent worktree hygiene**: added `pnpm guard:agent-worktrees`,
111
+ wired it into release preflight and the repo-local pre-commit hook,
112
+ and covered forced embedded-repo gitlinks under `.claude/worktrees/`.
113
+ - **Export surface semver impact**: `exportSurfaceDiff` now treats
114
+ breaking signature changes conservatively. Required parameter
115
+ additions, removed parameters, parameter type changes, and return
116
+ type changes are `major`; additive optional parameters are `minor`.
117
+ - **Reference edge scan**: `referencesForSymbol` no longer scans all
118
+ graph edges; it traverses incoming `references` edges from the target
119
+ symbol/file node.
120
+ - **Keep a Changelog version drift**: `checkVersionDrift` now accepts
121
+ bracketed headings such as `## [0.7.0] - YYYY-MM-DD`.
122
+ - **Dockerized test isolation**: default `pnpm test` now runs in a
123
+ copy-in Docker container so validation cannot inherit the operator's
124
+ live checkout Git hooks or Git environment.
125
+ - **Full-suite timeout nondeterminism**: test MCP servers and daemon
126
+ integration tests now use explicit temp-only Git/runtime seams to
127
+ avoid hidden WARP/server work under full-suite load.
128
+ - **Repo path symlink-parent escape**: repo path resolution validates
129
+ the nearest existing ancestor so future create/write tools cannot
130
+ escape through an existing symlinked parent directory.
131
+ - **Monitor indexing ceiling**: background monitor ticks now batch
132
+ explicit paths through the existing `indexHead` cap instead of
133
+ failing every tick for repos with more than 64 parseable files.
134
+ - **WARP structural log metadata**: `indexHead` now persists commit
135
+ message, author, email, date, and timestamp on commit nodes so
136
+ `graft struct log` retains user-visible commit context.
137
+ - **Cold WARP structural review impact**: `graft_review` now preserves
138
+ breaking-change impact counts on fresh worktrees by falling back to a
139
+ bounded import/re-export scan when graph reference edges are not
140
+ available yet.
141
+ - **Backlog dependency DAG**: the checked-in DAG now renders
142
+ `blocked_by`, `blocking`, and `blocked_by_external` relationships
143
+ from backlog card frontmatter.
144
+
145
+ ## [0.6.1] - 2026-04-19
146
+
147
+ ### Fixed
148
+
149
+ - **CI test fixes**: release gate test excludes build artifact `dist/`
150
+ from existence check. Package docs test updated for moved doc paths.
151
+
10
152
  ## [0.6.0] - 2026-04-18
11
153
 
12
154
  ### Added
package/GUIDE.md ADDED
@@ -0,0 +1,53 @@
1
+ # Guide — Graft
2
+
3
+ This is the developer-level operator guide for Graft. Use it for orientation, the productive-fast path, and to understand how the context governor orchestrates agentic reads.
4
+
5
+ For deep-track doctrine, worldline internals, and repository-wide engineering standards, use [ADVANCED_GUIDE.md](./ADVANCED_GUIDE.md).
6
+
7
+ ## Choose Your Lane
8
+
9
+ ### 1. Initialize a Repository
10
+ Bootstrap a new repo with read policies, git hooks, and agent instructions.
11
+ - **Run**: `npx @flyingrobots/graft init`
12
+ - **Read**: [Setup Guide](./docs/SETUP.md) (Detailed per-editor steps)
13
+
14
+ ### 2. Standalone CLI Usage
15
+ Manually enforce policies or inspect structural history from your terminal.
16
+ - **Read**: [CLI Signpost](./docs/CLI.md)
17
+
18
+ ### 3. Shared Daemon Mode
19
+ Run the central execution authority for multi-repo work and persistent monitors.
20
+ - **Run**: `npx @flyingrobots/graft daemon`
21
+ - **Read**: [docs/SETUP.md](./docs/SETUP.md) (Daemon bootstrap and `workspace_authorize` / `workspace_bind`)
22
+ - **Read**: [Architecture](./ARCHITECTURE.md) (Daemon section)
23
+
24
+ ## Big Picture: System Orchestration
25
+
26
+ Graft is a tiered governor. It manages the context burden across three layers:
27
+
28
+ 1. **Graft Core (Policy)**: Pure TypeScript logic that evaluates file size, language support, and session budgets to decide *what* an agent should see.
29
+ 2. **Parser (Meaning)**: Uses Tree-Sitter WASM to extract structural outlines and compute diffs, turning raw files into actionable meaning.
30
+ 3. **WARP (Memory)**: The Structural Worldline Memory that tracks AST evolution across commits, providing a provenance-aware history of the repository.
31
+
32
+ ## Orientation Checklist
33
+
34
+ - [ ] **I am setting up a new project**: Start with `README.md` Quick Start.
35
+ - [ ] **I am configuring Claude Code**: Use `npx graft init --write-claude-hooks`.
36
+ - [ ] **I am using daemon mode in a generic MCP client**: Read [docs/SETUP.md](./docs/SETUP.md) and expect explicit `workspace_authorize` then `workspace_bind`.
37
+ - [ ] **I am debugging a structural diff**: Use `npx graft struct diff --json`.
38
+ - [ ] **I am contributing to Graft**: Read `METHOD.md` and `docs/BEARING.md`.
39
+
40
+ ## Rule of Thumb
41
+
42
+ If you need a comprehensive tool reference, use the [MCP Signpost](./docs/MCP.md).
43
+
44
+ If you need the daemon trust boundary or handoff model, use
45
+ [docs/strategy/security-model.md](./docs/strategy/security-model.md) and
46
+ [docs/strategy/causal-provenance.md](./docs/strategy/causal-provenance.md).
47
+
48
+ If you need to know "what's true right now," use [docs/BEARING.md](./docs/BEARING.md).
49
+
50
+ If you are just starting, use the [README.md](./README.md) and the setup instructions in [docs/SETUP.md](./docs/SETUP.md).
51
+
52
+ ---
53
+ **The goal is inevitably. Every feature is defined by its tests.**
package/README.md CHANGED
@@ -1,6 +1,6 @@
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
 
@@ -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"}