@flyingrobots/graft 0.5.0 → 0.6.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 (996) hide show
  1. package/{docs/ADVANCED_GUIDE.md → ADVANCED_GUIDE.md} +10 -7
  2. package/ARCHITECTURE.md +130 -377
  3. package/CHANGELOG.md +101 -13
  4. package/GUIDE.md +53 -0
  5. package/README.md +107 -269
  6. package/bin/graft.js +5 -3
  7. package/dist/adapters/canonical-json.d.ts +6 -0
  8. package/dist/adapters/canonical-json.d.ts.map +1 -0
  9. package/dist/adapters/canonical-json.js +52 -0
  10. package/dist/adapters/canonical-json.js.map +1 -0
  11. package/dist/adapters/node-fs.d.ts +3 -0
  12. package/dist/adapters/node-fs.d.ts.map +1 -0
  13. package/dist/adapters/node-fs.js +33 -0
  14. package/dist/adapters/node-fs.js.map +1 -0
  15. package/dist/adapters/node-git.d.ts +3 -0
  16. package/dist/adapters/node-git.d.ts.map +1 -0
  17. package/dist/adapters/node-git.js +44 -0
  18. package/dist/adapters/node-git.js.map +1 -0
  19. package/dist/adapters/node-process-runner.d.ts +3 -0
  20. package/dist/adapters/node-process-runner.d.ts.map +1 -0
  21. package/dist/adapters/node-process-runner.js +23 -0
  22. package/dist/adapters/node-process-runner.js.map +1 -0
  23. package/dist/adapters/repo-paths.d.ts +3 -0
  24. package/dist/adapters/repo-paths.d.ts.map +1 -0
  25. package/dist/adapters/repo-paths.js +22 -0
  26. package/dist/adapters/repo-paths.js.map +1 -0
  27. package/dist/adapters/rotating-ndjson-log.d.ts +18 -0
  28. package/dist/adapters/rotating-ndjson-log.d.ts.map +1 -0
  29. package/dist/adapters/rotating-ndjson-log.js +48 -0
  30. package/dist/adapters/rotating-ndjson-log.js.map +1 -0
  31. package/dist/api/index.d.ts +27 -0
  32. package/dist/api/index.d.ts.map +1 -0
  33. package/dist/api/index.js +25 -0
  34. package/dist/api/index.js.map +1 -0
  35. package/dist/api/repo-local-graft.d.ts +7 -0
  36. package/dist/api/repo-local-graft.d.ts.map +1 -0
  37. package/dist/api/repo-local-graft.js +12 -0
  38. package/dist/api/repo-local-graft.js.map +1 -0
  39. package/dist/api/repo-workspace.d.ts +15 -0
  40. package/dist/api/repo-workspace.d.ts.map +1 -0
  41. package/dist/api/repo-workspace.js +23 -0
  42. package/dist/api/repo-workspace.js.map +1 -0
  43. package/dist/api/tool-bridge.d.ts +7 -0
  44. package/dist/api/tool-bridge.d.ts.map +1 -0
  45. package/dist/api/tool-bridge.js +14 -0
  46. package/dist/api/tool-bridge.js.map +1 -0
  47. package/dist/cli/activity-render.d.ts +2 -0
  48. package/dist/cli/activity-render.d.ts.map +1 -0
  49. package/dist/cli/activity-render.js +90 -0
  50. package/dist/cli/activity-render.js.map +1 -0
  51. package/dist/cli/cli-error.d.ts +10 -0
  52. package/dist/cli/cli-error.d.ts.map +1 -0
  53. package/dist/cli/cli-error.js +130 -0
  54. package/dist/cli/cli-error.js.map +1 -0
  55. package/dist/cli/command-parser.d.ts +17 -0
  56. package/dist/cli/command-parser.d.ts.map +1 -0
  57. package/dist/cli/command-parser.js +255 -0
  58. package/dist/cli/command-parser.js.map +1 -0
  59. package/dist/cli/entrypoint.d.ts +7 -0
  60. package/dist/cli/entrypoint.d.ts.map +1 -0
  61. package/dist/cli/entrypoint.js +8 -0
  62. package/dist/cli/entrypoint.js.map +1 -0
  63. package/dist/cli/index-cmd.d.ts +12 -0
  64. package/dist/cli/index-cmd.d.ts.map +1 -0
  65. package/dist/cli/index-cmd.js +73 -0
  66. package/dist/cli/index-cmd.js.map +1 -0
  67. package/dist/cli/index-model.d.ts +33 -0
  68. package/dist/cli/index-model.d.ts.map +1 -0
  69. package/dist/cli/index-model.js +55 -0
  70. package/dist/cli/index-model.js.map +1 -0
  71. package/dist/cli/init-bootstrap.d.ts +6 -0
  72. package/dist/cli/init-bootstrap.d.ts.map +1 -0
  73. package/dist/cli/init-bootstrap.js +27 -0
  74. package/dist/cli/init-bootstrap.js.map +1 -0
  75. package/dist/cli/init-client-config.d.ts +13 -0
  76. package/dist/cli/init-client-config.d.ts.map +1 -0
  77. package/dist/cli/init-client-config.js +215 -0
  78. package/dist/cli/init-client-config.js.map +1 -0
  79. package/dist/cli/init-model.d.ts +80 -0
  80. package/dist/cli/init-model.d.ts.map +1 -0
  81. package/dist/cli/init-model.js +202 -0
  82. package/dist/cli/init-model.js.map +1 -0
  83. package/dist/cli/init-render.d.ts +8 -0
  84. package/dist/cli/init-render.d.ts.map +1 -0
  85. package/dist/cli/init-render.js +43 -0
  86. package/dist/cli/init-render.js.map +1 -0
  87. package/dist/cli/init-target-hooks.d.ts +3 -0
  88. package/dist/cli/init-target-hooks.d.ts.map +1 -0
  89. package/dist/cli/init-target-hooks.js +75 -0
  90. package/dist/cli/init-target-hooks.js.map +1 -0
  91. package/dist/cli/init.d.ts +12 -0
  92. package/dist/cli/init.d.ts.map +1 -0
  93. package/dist/cli/init.js +96 -0
  94. package/dist/cli/init.js.map +1 -0
  95. package/dist/cli/json-document.d.ts +35 -0
  96. package/dist/cli/json-document.d.ts.map +1 -0
  97. package/dist/cli/json-document.js +107 -0
  98. package/dist/cli/json-document.js.map +1 -0
  99. package/dist/cli/local-history-dag-model.d.ts +43 -0
  100. package/dist/cli/local-history-dag-model.d.ts.map +1 -0
  101. package/dist/cli/local-history-dag-model.js +344 -0
  102. package/dist/cli/local-history-dag-model.js.map +1 -0
  103. package/dist/cli/local-history-dag-render.d.ts +3 -0
  104. package/dist/cli/local-history-dag-render.d.ts.map +1 -0
  105. package/dist/cli/local-history-dag-render.js +126 -0
  106. package/dist/cli/local-history-dag-render.js.map +1 -0
  107. package/dist/cli/local-history-dag.d.ts +13 -0
  108. package/dist/cli/local-history-dag.d.ts.map +1 -0
  109. package/dist/cli/local-history-dag.js +60 -0
  110. package/dist/cli/local-history-dag.js.map +1 -0
  111. package/dist/cli/main.d.ts +15 -0
  112. package/dist/cli/main.d.ts.map +1 -0
  113. package/dist/cli/main.js +126 -0
  114. package/dist/cli/main.js.map +1 -0
  115. package/dist/cli/migrate-local-history.d.ts +12 -0
  116. package/dist/cli/migrate-local-history.d.ts.map +1 -0
  117. package/dist/cli/migrate-local-history.js +82 -0
  118. package/dist/cli/migrate-local-history.js.map +1 -0
  119. package/dist/cli/peer-command.d.ts +9 -0
  120. package/dist/cli/peer-command.d.ts.map +1 -0
  121. package/dist/cli/peer-command.js +38 -0
  122. package/dist/cli/peer-command.js.map +1 -0
  123. package/dist/contracts/capabilities.d.ts +44 -0
  124. package/dist/contracts/capabilities.d.ts.map +1 -0
  125. package/dist/contracts/capabilities.js +382 -0
  126. package/dist/contracts/capabilities.js.map +1 -0
  127. package/dist/contracts/causal-ontology.d.ts +1937 -0
  128. package/dist/contracts/causal-ontology.d.ts.map +1 -0
  129. package/dist/contracts/causal-ontology.js +506 -0
  130. package/dist/contracts/causal-ontology.js.map +1 -0
  131. package/dist/contracts/causal-surface-next-action.d.ts +17 -0
  132. package/dist/contracts/causal-surface-next-action.d.ts.map +1 -0
  133. package/dist/contracts/causal-surface-next-action.js +16 -0
  134. package/dist/contracts/causal-surface-next-action.js.map +1 -0
  135. package/dist/contracts/json-object.d.ts +7 -0
  136. package/dist/contracts/json-object.d.ts.map +1 -0
  137. package/dist/contracts/json-object.js +24 -0
  138. package/dist/contracts/json-object.js.map +1 -0
  139. package/dist/contracts/mcp-runtime.d.ts +4 -0
  140. package/dist/contracts/mcp-runtime.d.ts.map +1 -0
  141. package/dist/contracts/mcp-runtime.js +11 -0
  142. package/dist/contracts/mcp-runtime.js.map +1 -0
  143. package/dist/contracts/output-schema-cli.d.ts +2716 -0
  144. package/dist/contracts/output-schema-cli.d.ts.map +1 -0
  145. package/dist/contracts/output-schema-cli.js +68 -0
  146. package/dist/contracts/output-schema-cli.js.map +1 -0
  147. package/dist/contracts/output-schema-fragments.d.ts +10819 -0
  148. package/dist/contracts/output-schema-fragments.d.ts.map +1 -0
  149. package/dist/contracts/output-schema-fragments.js +753 -0
  150. package/dist/contracts/output-schema-fragments.js.map +1 -0
  151. package/dist/contracts/output-schema-mcp.d.ts +5926 -0
  152. package/dist/contracts/output-schema-mcp.d.ts.map +1 -0
  153. package/dist/contracts/output-schema-mcp.js +231 -0
  154. package/dist/contracts/output-schema-mcp.js.map +1 -0
  155. package/dist/contracts/output-schema-meta.d.ts +30 -0
  156. package/dist/contracts/output-schema-meta.d.ts.map +1 -0
  157. package/dist/contracts/output-schema-meta.js +51 -0
  158. package/dist/contracts/output-schema-meta.js.map +1 -0
  159. package/dist/contracts/output-schemas.d.ts +1072 -0
  160. package/dist/contracts/output-schemas.d.ts.map +1 -0
  161. package/dist/contracts/output-schemas.js +1089 -0
  162. package/dist/contracts/output-schemas.js.map +1 -0
  163. package/dist/git/diff.d.ts +32 -0
  164. package/dist/git/diff.d.ts.map +1 -0
  165. package/dist/git/diff.js +82 -0
  166. package/dist/git/diff.js.map +1 -0
  167. package/dist/git/target-git-hook-bootstrap.d.ts +7 -0
  168. package/dist/git/target-git-hook-bootstrap.d.ts.map +1 -0
  169. package/dist/git/target-git-hook-bootstrap.js +40 -0
  170. package/dist/git/target-git-hook-bootstrap.js.map +1 -0
  171. package/dist/guards/stream-boundary.d.ts +41 -0
  172. package/dist/guards/stream-boundary.d.ts.map +1 -0
  173. package/dist/guards/stream-boundary.js +97 -0
  174. package/dist/guards/stream-boundary.js.map +1 -0
  175. package/dist/hooks/posttooluse-read.d.ts +4 -0
  176. package/dist/hooks/posttooluse-read.d.ts.map +1 -0
  177. package/dist/hooks/posttooluse-read.js +41 -0
  178. package/dist/hooks/posttooluse-read.js.map +1 -0
  179. package/dist/hooks/pretooluse-read.d.ts +4 -0
  180. package/dist/hooks/pretooluse-read.d.ts.map +1 -0
  181. package/dist/hooks/pretooluse-read.js +41 -0
  182. package/dist/hooks/pretooluse-read.js.map +1 -0
  183. package/dist/hooks/read-governor.d.ts +24 -0
  184. package/dist/hooks/read-governor.d.ts.map +1 -0
  185. package/dist/hooks/read-governor.js +76 -0
  186. package/dist/hooks/read-governor.js.map +1 -0
  187. package/dist/hooks/read-messages.d.ts +6 -0
  188. package/dist/hooks/read-messages.d.ts.map +1 -0
  189. package/dist/hooks/read-messages.js +45 -0
  190. package/dist/hooks/read-messages.js.map +1 -0
  191. package/dist/hooks/shared.d.ts +52 -0
  192. package/dist/hooks/shared.d.ts.map +1 -0
  193. package/dist/hooks/shared.js +137 -0
  194. package/dist/hooks/shared.js.map +1 -0
  195. package/dist/index.d.ts +2 -0
  196. package/dist/index.d.ts.map +1 -0
  197. package/dist/index.js +2 -0
  198. package/dist/index.js.map +1 -0
  199. package/dist/mcp/burden.d.ts +21 -0
  200. package/dist/mcp/burden.d.ts.map +1 -0
  201. package/dist/mcp/burden.js +96 -0
  202. package/dist/mcp/burden.js.map +1 -0
  203. package/dist/mcp/cache.d.ts +2 -0
  204. package/dist/mcp/cache.d.ts.map +1 -0
  205. package/dist/mcp/cache.js +2 -0
  206. package/dist/mcp/cache.js.map +1 -0
  207. package/dist/mcp/cached-file.d.ts +2 -0
  208. package/dist/mcp/cached-file.d.ts.map +1 -0
  209. package/dist/mcp/cached-file.js +2 -0
  210. package/dist/mcp/cached-file.js.map +1 -0
  211. package/dist/mcp/context.d.ts +84 -0
  212. package/dist/mcp/context.d.ts.map +1 -0
  213. package/dist/mcp/context.js +79 -0
  214. package/dist/mcp/context.js.map +1 -0
  215. package/dist/mcp/control-plane/authz-storage.d.ts +35 -0
  216. package/dist/mcp/control-plane/authz-storage.d.ts.map +1 -0
  217. package/dist/mcp/control-plane/authz-storage.js +85 -0
  218. package/dist/mcp/control-plane/authz-storage.js.map +1 -0
  219. package/dist/mcp/control-plane/session-registry.d.ts +12 -0
  220. package/dist/mcp/control-plane/session-registry.d.ts.map +1 -0
  221. package/dist/mcp/control-plane/session-registry.js +88 -0
  222. package/dist/mcp/control-plane/session-registry.js.map +1 -0
  223. package/dist/mcp/control-plane/status-projection.d.ts +8 -0
  224. package/dist/mcp/control-plane/status-projection.d.ts.map +1 -0
  225. package/dist/mcp/control-plane/status-projection.js +49 -0
  226. package/dist/mcp/control-plane/status-projection.js.map +1 -0
  227. package/dist/mcp/control-plane/types.d.ts +107 -0
  228. package/dist/mcp/control-plane/types.d.ts.map +1 -0
  229. package/dist/mcp/control-plane/types.js +2 -0
  230. package/dist/mcp/control-plane/types.js.map +1 -0
  231. package/dist/mcp/daemon-bootstrap.d.ts +9 -0
  232. package/dist/mcp/daemon-bootstrap.d.ts.map +1 -0
  233. package/dist/mcp/daemon-bootstrap.js +96 -0
  234. package/dist/mcp/daemon-bootstrap.js.map +1 -0
  235. package/dist/mcp/daemon-control-plane.d.ts +37 -0
  236. package/dist/mcp/daemon-control-plane.d.ts.map +1 -0
  237. package/dist/mcp/daemon-control-plane.js +200 -0
  238. package/dist/mcp/daemon-control-plane.js.map +1 -0
  239. package/dist/mcp/daemon-job-scheduler.d.ts +60 -0
  240. package/dist/mcp/daemon-job-scheduler.d.ts.map +1 -0
  241. package/dist/mcp/daemon-job-scheduler.js +203 -0
  242. package/dist/mcp/daemon-job-scheduler.js.map +1 -0
  243. package/dist/mcp/daemon-repos.d.ts +9 -0
  244. package/dist/mcp/daemon-repos.d.ts.map +1 -0
  245. package/dist/mcp/daemon-repos.js +73 -0
  246. package/dist/mcp/daemon-repos.js.map +1 -0
  247. package/dist/mcp/daemon-server.d.ts +23 -0
  248. package/dist/mcp/daemon-server.d.ts.map +1 -0
  249. package/dist/mcp/daemon-server.js +128 -0
  250. package/dist/mcp/daemon-server.js.map +1 -0
  251. package/dist/mcp/daemon-session-host.d.ts +31 -0
  252. package/dist/mcp/daemon-session-host.d.ts.map +1 -0
  253. package/dist/mcp/daemon-session-host.js +173 -0
  254. package/dist/mcp/daemon-session-host.js.map +1 -0
  255. package/dist/mcp/daemon-stdio-bridge.d.ts +17 -0
  256. package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -0
  257. package/dist/mcp/daemon-stdio-bridge.js +207 -0
  258. package/dist/mcp/daemon-stdio-bridge.js.map +1 -0
  259. package/dist/mcp/daemon-worker-child-pool.d.ts +22 -0
  260. package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -0
  261. package/dist/mcp/daemon-worker-child-pool.js +193 -0
  262. package/dist/mcp/daemon-worker-child-pool.js.map +1 -0
  263. package/dist/mcp/daemon-worker-inline-pool.d.ts +12 -0
  264. package/dist/mcp/daemon-worker-inline-pool.d.ts.map +1 -0
  265. package/dist/mcp/daemon-worker-inline-pool.js +43 -0
  266. package/dist/mcp/daemon-worker-inline-pool.js.map +1 -0
  267. package/dist/mcp/daemon-worker-pool.d.ts +4 -0
  268. package/dist/mcp/daemon-worker-pool.d.ts.map +1 -0
  269. package/dist/mcp/daemon-worker-pool.js +3 -0
  270. package/dist/mcp/daemon-worker-pool.js.map +1 -0
  271. package/dist/mcp/daemon-worker-process.d.ts +2 -0
  272. package/dist/mcp/daemon-worker-process.d.ts.map +1 -0
  273. package/dist/mcp/daemon-worker-process.js +26 -0
  274. package/dist/mcp/daemon-worker-process.js.map +1 -0
  275. package/dist/mcp/daemon-worker-types.d.ts +56 -0
  276. package/dist/mcp/daemon-worker-types.d.ts.map +1 -0
  277. package/dist/mcp/daemon-worker-types.js +2 -0
  278. package/dist/mcp/daemon-worker-types.js.map +1 -0
  279. package/dist/mcp/metrics.d.ts +57 -0
  280. package/dist/mcp/metrics.d.ts.map +1 -0
  281. package/dist/mcp/metrics.js +133 -0
  282. package/dist/mcp/metrics.js.map +1 -0
  283. package/dist/mcp/monitor-health.d.ts +29 -0
  284. package/dist/mcp/monitor-health.d.ts.map +1 -0
  285. package/dist/mcp/monitor-health.js +70 -0
  286. package/dist/mcp/monitor-health.js.map +1 -0
  287. package/dist/mcp/monitor-persistence.d.ts +17 -0
  288. package/dist/mcp/monitor-persistence.d.ts.map +1 -0
  289. package/dist/mcp/monitor-persistence.js +38 -0
  290. package/dist/mcp/monitor-persistence.js.map +1 -0
  291. package/dist/mcp/monitor-tick-job.d.ts +22 -0
  292. package/dist/mcp/monitor-tick-job.d.ts.map +1 -0
  293. package/dist/mcp/monitor-tick-job.js +65 -0
  294. package/dist/mcp/monitor-tick-job.js.map +1 -0
  295. package/dist/mcp/monitor-types.d.ts +123 -0
  296. package/dist/mcp/monitor-types.d.ts.map +1 -0
  297. package/dist/mcp/monitor-types.js +29 -0
  298. package/dist/mcp/monitor-types.js.map +1 -0
  299. package/dist/mcp/persisted-local-history-graph.d.ts +40 -0
  300. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -0
  301. package/dist/mcp/persisted-local-history-graph.js +388 -0
  302. package/dist/mcp/persisted-local-history-graph.js.map +1 -0
  303. package/dist/mcp/persisted-local-history-policy.d.ts +43 -0
  304. package/dist/mcp/persisted-local-history-policy.d.ts.map +1 -0
  305. package/dist/mcp/persisted-local-history-policy.js +372 -0
  306. package/dist/mcp/persisted-local-history-policy.js.map +1 -0
  307. package/dist/mcp/persisted-local-history-views.d.ts +24 -0
  308. package/dist/mcp/persisted-local-history-views.d.ts.map +1 -0
  309. package/dist/mcp/persisted-local-history-views.js +201 -0
  310. package/dist/mcp/persisted-local-history-views.js.map +1 -0
  311. package/dist/mcp/persisted-local-history.d.ts +795 -0
  312. package/dist/mcp/persisted-local-history.d.ts.map +1 -0
  313. package/dist/mcp/persisted-local-history.js +1076 -0
  314. package/dist/mcp/persisted-local-history.js.map +1 -0
  315. package/dist/mcp/persistent-monitor-runtime.d.ts +33 -0
  316. package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -0
  317. package/dist/mcp/persistent-monitor-runtime.js +356 -0
  318. package/dist/mcp/persistent-monitor-runtime.js.map +1 -0
  319. package/dist/mcp/policy.d.ts +29 -0
  320. package/dist/mcp/policy.d.ts.map +1 -0
  321. package/dist/mcp/policy.js +40 -0
  322. package/dist/mcp/policy.js.map +1 -0
  323. package/dist/mcp/receipt.d.ts +64 -0
  324. package/dist/mcp/receipt.d.ts.map +1 -0
  325. package/dist/mcp/receipt.js +99 -0
  326. package/dist/mcp/receipt.js.map +1 -0
  327. package/dist/mcp/repo-concurrency.d.ts +62 -0
  328. package/dist/mcp/repo-concurrency.d.ts.map +1 -0
  329. package/dist/mcp/repo-concurrency.js +195 -0
  330. package/dist/mcp/repo-concurrency.js.map +1 -0
  331. package/dist/mcp/repo-overview/filter.d.ts +6 -0
  332. package/dist/mcp/repo-overview/filter.d.ts.map +1 -0
  333. package/dist/mcp/repo-overview/filter.js +32 -0
  334. package/dist/mcp/repo-overview/filter.js.map +1 -0
  335. package/dist/mcp/repo-overview/types.d.ts +41 -0
  336. package/dist/mcp/repo-overview/types.d.ts.map +1 -0
  337. package/dist/mcp/repo-overview/types.js +2 -0
  338. package/dist/mcp/repo-overview/types.js.map +1 -0
  339. package/dist/mcp/repo-overview/view-projection.d.ts +8 -0
  340. package/dist/mcp/repo-overview/view-projection.d.ts.map +1 -0
  341. package/dist/mcp/repo-overview/view-projection.js +73 -0
  342. package/dist/mcp/repo-overview/view-projection.js.map +1 -0
  343. package/dist/mcp/repo-state-git.d.ts +8 -0
  344. package/dist/mcp/repo-state-git.d.ts.map +1 -0
  345. package/dist/mcp/repo-state-git.js +203 -0
  346. package/dist/mcp/repo-state-git.js.map +1 -0
  347. package/dist/mcp/repo-state-observation.d.ts +4 -0
  348. package/dist/mcp/repo-state-observation.d.ts.map +1 -0
  349. package/dist/mcp/repo-state-observation.js +171 -0
  350. package/dist/mcp/repo-state-observation.js.map +1 -0
  351. package/dist/mcp/repo-state-transition.d.ts +4 -0
  352. package/dist/mcp/repo-state-transition.d.ts.map +1 -0
  353. package/dist/mcp/repo-state-transition.js +124 -0
  354. package/dist/mcp/repo-state-transition.js.map +1 -0
  355. package/dist/mcp/repo-state-types.d.ts +88 -0
  356. package/dist/mcp/repo-state-types.d.ts.map +1 -0
  357. package/dist/mcp/repo-state-types.js +2 -0
  358. package/dist/mcp/repo-state-types.js.map +1 -0
  359. package/dist/mcp/repo-state.d.ts +37 -0
  360. package/dist/mcp/repo-state.d.ts.map +1 -0
  361. package/dist/mcp/repo-state.js +101 -0
  362. package/dist/mcp/repo-state.js.map +1 -0
  363. package/dist/mcp/repo-tool-job.d.ts +55 -0
  364. package/dist/mcp/repo-tool-job.d.ts.map +1 -0
  365. package/dist/mcp/repo-tool-job.js +50 -0
  366. package/dist/mcp/repo-tool-job.js.map +1 -0
  367. package/dist/mcp/repo-tool-worker-context.d.ts +8 -0
  368. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -0
  369. package/dist/mcp/repo-tool-worker-context.js +199 -0
  370. package/dist/mcp/repo-tool-worker-context.js.map +1 -0
  371. package/dist/mcp/repo-workspace.d.ts +4 -0
  372. package/dist/mcp/repo-workspace.d.ts.map +1 -0
  373. package/dist/mcp/repo-workspace.js +15 -0
  374. package/dist/mcp/repo-workspace.js.map +1 -0
  375. package/dist/mcp/run-capture-config.d.ts +11 -0
  376. package/dist/mcp/run-capture-config.d.ts.map +1 -0
  377. package/dist/mcp/run-capture-config.js +23 -0
  378. package/dist/mcp/run-capture-config.js.map +1 -0
  379. package/dist/mcp/runtime-causal-context.d.ts +22 -0
  380. package/dist/mcp/runtime-causal-context.d.ts.map +1 -0
  381. package/dist/mcp/runtime-causal-context.js +28 -0
  382. package/dist/mcp/runtime-causal-context.js.map +1 -0
  383. package/dist/mcp/runtime-observability.d.ts +102 -0
  384. package/dist/mcp/runtime-observability.d.ts.map +1 -0
  385. package/dist/mcp/runtime-observability.js +95 -0
  386. package/dist/mcp/runtime-observability.js.map +1 -0
  387. package/dist/mcp/runtime-staged-target.d.ts +28 -0
  388. package/dist/mcp/runtime-staged-target.d.ts.map +1 -0
  389. package/dist/mcp/runtime-staged-target.js +101 -0
  390. package/dist/mcp/runtime-staged-target.js.map +1 -0
  391. package/dist/mcp/runtime-workspace-overlay.d.ts +45 -0
  392. package/dist/mcp/runtime-workspace-overlay.d.ts.map +1 -0
  393. package/dist/mcp/runtime-workspace-overlay.js +153 -0
  394. package/dist/mcp/runtime-workspace-overlay.js.map +1 -0
  395. package/dist/mcp/secret-scrub.d.ts +17 -0
  396. package/dist/mcp/secret-scrub.d.ts.map +1 -0
  397. package/dist/mcp/secret-scrub.js +82 -0
  398. package/dist/mcp/secret-scrub.js.map +1 -0
  399. package/dist/mcp/semantic-transition-guidance.d.ts +6 -0
  400. package/dist/mcp/semantic-transition-guidance.d.ts.map +1 -0
  401. package/dist/mcp/semantic-transition-guidance.js +47 -0
  402. package/dist/mcp/semantic-transition-guidance.js.map +1 -0
  403. package/dist/mcp/semantic-transition-summary.d.ts +23 -0
  404. package/dist/mcp/semantic-transition-summary.d.ts.map +1 -0
  405. package/dist/mcp/semantic-transition-summary.js +82 -0
  406. package/dist/mcp/semantic-transition-summary.js.map +1 -0
  407. package/dist/mcp/server-context.d.ts +46 -0
  408. package/dist/mcp/server-context.d.ts.map +1 -0
  409. package/dist/mcp/server-context.js +163 -0
  410. package/dist/mcp/server-context.js.map +1 -0
  411. package/dist/mcp/server-invocation.d.ts +73 -0
  412. package/dist/mcp/server-invocation.d.ts.map +1 -0
  413. package/dist/mcp/server-invocation.js +265 -0
  414. package/dist/mcp/server-invocation.js.map +1 -0
  415. package/dist/mcp/server-tool-access.d.ts +18 -0
  416. package/dist/mcp/server-tool-access.d.ts.map +1 -0
  417. package/dist/mcp/server-tool-access.js +123 -0
  418. package/dist/mcp/server-tool-access.js.map +1 -0
  419. package/dist/mcp/server.d.ts +41 -0
  420. package/dist/mcp/server.d.ts.map +1 -0
  421. package/dist/mcp/server.js +215 -0
  422. package/dist/mcp/server.js.map +1 -0
  423. package/dist/mcp/stdio-server.d.ts +6 -0
  424. package/dist/mcp/stdio-server.d.ts.map +1 -0
  425. package/dist/mcp/stdio-server.js +20 -0
  426. package/dist/mcp/stdio-server.js.map +1 -0
  427. package/dist/mcp/stdio.d.ts +2 -0
  428. package/dist/mcp/stdio.d.ts.map +1 -0
  429. package/dist/mcp/stdio.js +3 -0
  430. package/dist/mcp/stdio.js.map +1 -0
  431. package/dist/mcp/tool-registry.d.ts +5 -0
  432. package/dist/mcp/tool-registry.d.ts.map +1 -0
  433. package/dist/mcp/tool-registry.js +76 -0
  434. package/dist/mcp/tool-registry.js.map +1 -0
  435. package/dist/mcp/tools/activity-view.d.ts +3 -0
  436. package/dist/mcp/tools/activity-view.d.ts.map +1 -0
  437. package/dist/mcp/tools/activity-view.js +259 -0
  438. package/dist/mcp/tools/activity-view.js.map +1 -0
  439. package/dist/mcp/tools/budget.d.ts +3 -0
  440. package/dist/mcp/tools/budget.d.ts.map +1 -0
  441. package/dist/mcp/tools/budget.js +20 -0
  442. package/dist/mcp/tools/budget.js.map +1 -0
  443. package/dist/mcp/tools/causal-attach.d.ts +3 -0
  444. package/dist/mcp/tools/causal-attach.d.ts.map +1 -0
  445. package/dist/mcp/tools/causal-attach.js +53 -0
  446. package/dist/mcp/tools/causal-attach.js.map +1 -0
  447. package/dist/mcp/tools/causal-status.d.ts +3 -0
  448. package/dist/mcp/tools/causal-status.d.ts.map +1 -0
  449. package/dist/mcp/tools/causal-status.js +46 -0
  450. package/dist/mcp/tools/causal-status.js.map +1 -0
  451. package/dist/mcp/tools/changed-since.d.ts +3 -0
  452. package/dist/mcp/tools/changed-since.d.ts.map +1 -0
  453. package/dist/mcp/tools/changed-since.js +57 -0
  454. package/dist/mcp/tools/changed-since.js.map +1 -0
  455. package/dist/mcp/tools/code-find.d.ts +104 -0
  456. package/dist/mcp/tools/code-find.d.ts.map +1 -0
  457. package/dist/mcp/tools/code-find.js +125 -0
  458. package/dist/mcp/tools/code-find.js.map +1 -0
  459. package/dist/mcp/tools/code-refs.d.ts +3 -0
  460. package/dist/mcp/tools/code-refs.d.ts.map +1 -0
  461. package/dist/mcp/tools/code-refs.js +370 -0
  462. package/dist/mcp/tools/code-refs.js.map +1 -0
  463. package/dist/mcp/tools/code-show.d.ts +104 -0
  464. package/dist/mcp/tools/code-show.d.ts.map +1 -0
  465. package/dist/mcp/tools/code-show.js +202 -0
  466. package/dist/mcp/tools/code-show.js.map +1 -0
  467. package/dist/mcp/tools/daemon-monitors.d.ts +3 -0
  468. package/dist/mcp/tools/daemon-monitors.d.ts.map +1 -0
  469. package/dist/mcp/tools/daemon-monitors.js +12 -0
  470. package/dist/mcp/tools/daemon-monitors.js.map +1 -0
  471. package/dist/mcp/tools/daemon-repos.d.ts +3 -0
  472. package/dist/mcp/tools/daemon-repos.d.ts.map +1 -0
  473. package/dist/mcp/tools/daemon-repos.js +20 -0
  474. package/dist/mcp/tools/daemon-repos.js.map +1 -0
  475. package/dist/mcp/tools/daemon-sessions.d.ts +3 -0
  476. package/dist/mcp/tools/daemon-sessions.d.ts.map +1 -0
  477. package/dist/mcp/tools/daemon-sessions.js +12 -0
  478. package/dist/mcp/tools/daemon-sessions.js.map +1 -0
  479. package/dist/mcp/tools/daemon-status.d.ts +3 -0
  480. package/dist/mcp/tools/daemon-status.d.ts.map +1 -0
  481. package/dist/mcp/tools/daemon-status.js +10 -0
  482. package/dist/mcp/tools/daemon-status.js.map +1 -0
  483. package/dist/mcp/tools/diagnostic-models.d.ts +85 -0
  484. package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -0
  485. package/dist/mcp/tools/diagnostic-models.js +5 -0
  486. package/dist/mcp/tools/diagnostic-models.js.map +1 -0
  487. package/dist/mcp/tools/doctor.d.ts +3 -0
  488. package/dist/mcp/tools/doctor.d.ts.map +1 -0
  489. package/dist/mcp/tools/doctor.js +54 -0
  490. package/dist/mcp/tools/doctor.js.map +1 -0
  491. package/dist/mcp/tools/explain.d.ts +3 -0
  492. package/dist/mcp/tools/explain.d.ts.map +1 -0
  493. package/dist/mcp/tools/explain.js +81 -0
  494. package/dist/mcp/tools/explain.js.map +1 -0
  495. package/dist/mcp/tools/file-outline.d.ts +3 -0
  496. package/dist/mcp/tools/file-outline.d.ts.map +1 -0
  497. package/dist/mcp/tools/file-outline.js +54 -0
  498. package/dist/mcp/tools/file-outline.js.map +1 -0
  499. package/dist/mcp/tools/git-files.d.ts +24 -0
  500. package/dist/mcp/tools/git-files.d.ts.map +1 -0
  501. package/dist/mcp/tools/git-files.js +57 -0
  502. package/dist/mcp/tools/git-files.js.map +1 -0
  503. package/dist/mcp/tools/graft-diff.d.ts +3 -0
  504. package/dist/mcp/tools/graft-diff.d.ts.map +1 -0
  505. package/dist/mcp/tools/graft-diff.js +33 -0
  506. package/dist/mcp/tools/graft-diff.js.map +1 -0
  507. package/dist/mcp/tools/map-collector.d.ts +85 -0
  508. package/dist/mcp/tools/map-collector.d.ts.map +1 -0
  509. package/dist/mcp/tools/map-collector.js +249 -0
  510. package/dist/mcp/tools/map-collector.js.map +1 -0
  511. package/dist/mcp/tools/map.d.ts +7 -0
  512. package/dist/mcp/tools/map.d.ts.map +1 -0
  513. package/dist/mcp/tools/map.js +154 -0
  514. package/dist/mcp/tools/map.js.map +1 -0
  515. package/dist/mcp/tools/monitor-pause.d.ts +3 -0
  516. package/dist/mcp/tools/monitor-pause.d.ts.map +1 -0
  517. package/dist/mcp/tools/monitor-pause.js +16 -0
  518. package/dist/mcp/tools/monitor-pause.js.map +1 -0
  519. package/dist/mcp/tools/monitor-resume.d.ts +3 -0
  520. package/dist/mcp/tools/monitor-resume.d.ts.map +1 -0
  521. package/dist/mcp/tools/monitor-resume.js +16 -0
  522. package/dist/mcp/tools/monitor-resume.js.map +1 -0
  523. package/dist/mcp/tools/monitor-start.d.ts +3 -0
  524. package/dist/mcp/tools/monitor-start.d.ts.map +1 -0
  525. package/dist/mcp/tools/monitor-start.js +18 -0
  526. package/dist/mcp/tools/monitor-start.js.map +1 -0
  527. package/dist/mcp/tools/monitor-stop.d.ts +3 -0
  528. package/dist/mcp/tools/monitor-stop.d.ts.map +1 -0
  529. package/dist/mcp/tools/monitor-stop.js +16 -0
  530. package/dist/mcp/tools/monitor-stop.js.map +1 -0
  531. package/dist/mcp/tools/precision-live.d.ts +20 -0
  532. package/dist/mcp/tools/precision-live.d.ts.map +1 -0
  533. package/dist/mcp/tools/precision-live.js +105 -0
  534. package/dist/mcp/tools/precision-live.js.map +1 -0
  535. package/dist/mcp/tools/precision-match.d.ts +21 -0
  536. package/dist/mcp/tools/precision-match.d.ts.map +1 -0
  537. package/dist/mcp/tools/precision-match.js +46 -0
  538. package/dist/mcp/tools/precision-match.js.map +1 -0
  539. package/dist/mcp/tools/precision-paths.d.ts +7 -0
  540. package/dist/mcp/tools/precision-paths.d.ts.map +1 -0
  541. package/dist/mcp/tools/precision-paths.js +53 -0
  542. package/dist/mcp/tools/precision-paths.js.map +1 -0
  543. package/dist/mcp/tools/precision-query.d.ts +38 -0
  544. package/dist/mcp/tools/precision-query.d.ts.map +1 -0
  545. package/dist/mcp/tools/precision-query.js +116 -0
  546. package/dist/mcp/tools/precision-query.js.map +1 -0
  547. package/dist/mcp/tools/precision-show.d.ts +15 -0
  548. package/dist/mcp/tools/precision-show.d.ts.map +1 -0
  549. package/dist/mcp/tools/precision-show.js +46 -0
  550. package/dist/mcp/tools/precision-show.js.map +1 -0
  551. package/dist/mcp/tools/precision-visibility.d.ts +10 -0
  552. package/dist/mcp/tools/precision-visibility.d.ts.map +1 -0
  553. package/dist/mcp/tools/precision-visibility.js +24 -0
  554. package/dist/mcp/tools/precision-visibility.js.map +1 -0
  555. package/dist/mcp/tools/precision-warp.d.ts +6 -0
  556. package/dist/mcp/tools/precision-warp.d.ts.map +1 -0
  557. package/dist/mcp/tools/precision-warp.js +76 -0
  558. package/dist/mcp/tools/precision-warp.js.map +1 -0
  559. package/dist/mcp/tools/precision.d.ts +7 -0
  560. package/dist/mcp/tools/precision.d.ts.map +1 -0
  561. package/dist/mcp/tools/precision.js +6 -0
  562. package/dist/mcp/tools/precision.js.map +1 -0
  563. package/dist/mcp/tools/read-range.d.ts +3 -0
  564. package/dist/mcp/tools/read-range.d.ts.map +1 -0
  565. package/dist/mcp/tools/read-range.js +26 -0
  566. package/dist/mcp/tools/read-range.js.map +1 -0
  567. package/dist/mcp/tools/run-capture.d.ts +3 -0
  568. package/dist/mcp/tools/run-capture.d.ts.map +1 -0
  569. package/dist/mcp/tools/run-capture.js +125 -0
  570. package/dist/mcp/tools/run-capture.js.map +1 -0
  571. package/dist/mcp/tools/safe-read.d.ts +3 -0
  572. package/dist/mcp/tools/safe-read.d.ts.map +1 -0
  573. package/dist/mcp/tools/safe-read.js +133 -0
  574. package/dist/mcp/tools/safe-read.js.map +1 -0
  575. package/dist/mcp/tools/since.d.ts +3 -0
  576. package/dist/mcp/tools/since.d.ts.map +1 -0
  577. package/dist/mcp/tools/since.js +46 -0
  578. package/dist/mcp/tools/since.js.map +1 -0
  579. package/dist/mcp/tools/state.d.ts +4 -0
  580. package/dist/mcp/tools/state.d.ts.map +1 -0
  581. package/dist/mcp/tools/state.js +35 -0
  582. package/dist/mcp/tools/state.js.map +1 -0
  583. package/dist/mcp/tools/stats.d.ts +3 -0
  584. package/dist/mcp/tools/stats.d.ts.map +1 -0
  585. package/dist/mcp/tools/stats.js +22 -0
  586. package/dist/mcp/tools/stats.js.map +1 -0
  587. package/dist/mcp/tools/workspace-authorizations.d.ts +3 -0
  588. package/dist/mcp/tools/workspace-authorizations.d.ts.map +1 -0
  589. package/dist/mcp/tools/workspace-authorizations.js +12 -0
  590. package/dist/mcp/tools/workspace-authorizations.js.map +1 -0
  591. package/dist/mcp/tools/workspace-authorize.d.ts +3 -0
  592. package/dist/mcp/tools/workspace-authorize.d.ts.map +1 -0
  593. package/dist/mcp/tools/workspace-authorize.js +18 -0
  594. package/dist/mcp/tools/workspace-authorize.js.map +1 -0
  595. package/dist/mcp/tools/workspace-bind.d.ts +3 -0
  596. package/dist/mcp/tools/workspace-bind.d.ts.map +1 -0
  597. package/dist/mcp/tools/workspace-bind.js +23 -0
  598. package/dist/mcp/tools/workspace-bind.js.map +1 -0
  599. package/dist/mcp/tools/workspace-rebind.d.ts +3 -0
  600. package/dist/mcp/tools/workspace-rebind.d.ts.map +1 -0
  601. package/dist/mcp/tools/workspace-rebind.js +23 -0
  602. package/dist/mcp/tools/workspace-rebind.js.map +1 -0
  603. package/dist/mcp/tools/workspace-revoke.d.ts +3 -0
  604. package/dist/mcp/tools/workspace-revoke.d.ts.map +1 -0
  605. package/dist/mcp/tools/workspace-revoke.js +16 -0
  606. package/dist/mcp/tools/workspace-revoke.js.map +1 -0
  607. package/dist/mcp/tools/workspace-status.d.ts +3 -0
  608. package/dist/mcp/tools/workspace-status.d.ts.map +1 -0
  609. package/dist/mcp/tools/workspace-status.js +10 -0
  610. package/dist/mcp/tools/workspace-status.js.map +1 -0
  611. package/dist/mcp/warp-pool.d.ts +13 -0
  612. package/dist/mcp/warp-pool.d.ts.map +1 -0
  613. package/dist/mcp/warp-pool.js +30 -0
  614. package/dist/mcp/warp-pool.js.map +1 -0
  615. package/dist/mcp/workspace-read-observation-model.d.ts +34 -0
  616. package/dist/mcp/workspace-read-observation-model.d.ts.map +1 -0
  617. package/dist/mcp/workspace-read-observation-model.js +35 -0
  618. package/dist/mcp/workspace-read-observation-model.js.map +1 -0
  619. package/dist/mcp/workspace-read-observation.d.ts +19 -0
  620. package/dist/mcp/workspace-read-observation.d.ts.map +1 -0
  621. package/dist/mcp/workspace-read-observation.js +71 -0
  622. package/dist/mcp/workspace-read-observation.js.map +1 -0
  623. package/dist/mcp/workspace-router-capability.d.ts +14 -0
  624. package/dist/mcp/workspace-router-capability.d.ts.map +1 -0
  625. package/dist/mcp/workspace-router-capability.js +22 -0
  626. package/dist/mcp/workspace-router-capability.js.map +1 -0
  627. package/dist/mcp/workspace-router-history.d.ts +65 -0
  628. package/dist/mcp/workspace-router-history.d.ts.map +1 -0
  629. package/dist/mcp/workspace-router-history.js +142 -0
  630. package/dist/mcp/workspace-router-history.js.map +1 -0
  631. package/dist/mcp/workspace-router-model.d.ts +96 -0
  632. package/dist/mcp/workspace-router-model.d.ts.map +1 -0
  633. package/dist/mcp/workspace-router-model.js +31 -0
  634. package/dist/mcp/workspace-router-model.js.map +1 -0
  635. package/dist/mcp/workspace-router-resolution.d.ts +10 -0
  636. package/dist/mcp/workspace-router-resolution.d.ts.map +1 -0
  637. package/dist/mcp/workspace-router-resolution.js +56 -0
  638. package/dist/mcp/workspace-router-resolution.js.map +1 -0
  639. package/dist/mcp/workspace-router-runtime.d.ts +79 -0
  640. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -0
  641. package/dist/mcp/workspace-router-runtime.js +126 -0
  642. package/dist/mcp/workspace-router-runtime.js.map +1 -0
  643. package/dist/mcp/workspace-router.d.ts +72 -0
  644. package/dist/mcp/workspace-router.d.ts.map +1 -0
  645. package/dist/mcp/workspace-router.js +494 -0
  646. package/dist/mcp/workspace-router.js.map +1 -0
  647. package/dist/metrics/logger.d.ts +14 -0
  648. package/dist/metrics/logger.d.ts.map +1 -0
  649. package/dist/metrics/logger.js +30 -0
  650. package/dist/metrics/logger.js.map +1 -0
  651. package/dist/metrics/types.d.ts +25 -0
  652. package/dist/metrics/types.d.ts.map +1 -0
  653. package/dist/metrics/types.js +28 -0
  654. package/dist/metrics/types.js.map +1 -0
  655. package/dist/operations/cached-file.d.ts +24 -0
  656. package/dist/operations/cached-file.d.ts.map +1 -0
  657. package/dist/operations/cached-file.js +37 -0
  658. package/dist/operations/cached-file.js.map +1 -0
  659. package/dist/operations/diff-identity.d.ts +32 -0
  660. package/dist/operations/diff-identity.d.ts.map +1 -0
  661. package/dist/operations/diff-identity.js +93 -0
  662. package/dist/operations/diff-identity.js.map +1 -0
  663. package/dist/operations/file-outline.d.ts +15 -0
  664. package/dist/operations/file-outline.d.ts.map +1 -0
  665. package/dist/operations/file-outline.js +32 -0
  666. package/dist/operations/file-outline.js.map +1 -0
  667. package/dist/operations/graft-diff.d.ts +43 -0
  668. package/dist/operations/graft-diff.d.ts.map +1 -0
  669. package/dist/operations/graft-diff.js +115 -0
  670. package/dist/operations/graft-diff.js.map +1 -0
  671. package/dist/operations/observation-cache.d.ts +64 -0
  672. package/dist/operations/observation-cache.d.ts.map +1 -0
  673. package/dist/operations/observation-cache.js +104 -0
  674. package/dist/operations/observation-cache.js.map +1 -0
  675. package/dist/operations/read-range.d.ts +14 -0
  676. package/dist/operations/read-range.d.ts.map +1 -0
  677. package/dist/operations/read-range.js +41 -0
  678. package/dist/operations/read-range.js.map +1 -0
  679. package/dist/operations/repo-workspace.d.ts +114 -0
  680. package/dist/operations/repo-workspace.d.ts.map +1 -0
  681. package/dist/operations/repo-workspace.js +228 -0
  682. package/dist/operations/repo-workspace.js.map +1 -0
  683. package/dist/operations/result-dto.d.ts +10 -0
  684. package/dist/operations/result-dto.d.ts.map +1 -0
  685. package/dist/operations/result-dto.js +21 -0
  686. package/dist/operations/result-dto.js.map +1 -0
  687. package/dist/operations/safe-read.d.ts +35 -0
  688. package/dist/operations/safe-read.d.ts.map +1 -0
  689. package/dist/operations/safe-read.js +75 -0
  690. package/dist/operations/safe-read.js.map +1 -0
  691. package/dist/operations/state.d.ts +25 -0
  692. package/dist/operations/state.d.ts.map +1 -0
  693. package/dist/operations/state.js +47 -0
  694. package/dist/operations/state.js.map +1 -0
  695. package/dist/operations/structured-buffer-compare.d.ts +5 -0
  696. package/dist/operations/structured-buffer-compare.d.ts.map +1 -0
  697. package/dist/operations/structured-buffer-compare.js +392 -0
  698. package/dist/operations/structured-buffer-compare.js.map +1 -0
  699. package/dist/operations/structured-buffer-model.d.ts +232 -0
  700. package/dist/operations/structured-buffer-model.d.ts.map +1 -0
  701. package/dist/operations/structured-buffer-model.js +175 -0
  702. package/dist/operations/structured-buffer-model.js.map +1 -0
  703. package/dist/operations/structured-buffer-query.d.ts +24 -0
  704. package/dist/operations/structured-buffer-query.d.ts.map +1 -0
  705. package/dist/operations/structured-buffer-query.js +690 -0
  706. package/dist/operations/structured-buffer-query.js.map +1 -0
  707. package/dist/operations/structured-buffer.d.ts +43 -0
  708. package/dist/operations/structured-buffer.d.ts.map +1 -0
  709. package/dist/operations/structured-buffer.js +96 -0
  710. package/dist/operations/structured-buffer.js.map +1 -0
  711. package/dist/parser/diff.d.ts +63 -0
  712. package/dist/parser/diff.d.ts.map +1 -0
  713. package/dist/parser/diff.js +259 -0
  714. package/dist/parser/diff.js.map +1 -0
  715. package/dist/parser/lang.d.ts +17 -0
  716. package/dist/parser/lang.d.ts.map +1 -0
  717. package/dist/parser/lang.js +51 -0
  718. package/dist/parser/lang.js.map +1 -0
  719. package/dist/parser/markdown.d.ts +3 -0
  720. package/dist/parser/markdown.d.ts.map +1 -0
  721. package/dist/parser/markdown.js +168 -0
  722. package/dist/parser/markdown.js.map +1 -0
  723. package/dist/parser/outline.d.ts +12 -0
  724. package/dist/parser/outline.d.ts.map +1 -0
  725. package/dist/parser/outline.js +251 -0
  726. package/dist/parser/outline.js.map +1 -0
  727. package/dist/parser/runtime.d.ts +13 -0
  728. package/dist/parser/runtime.d.ts.map +1 -0
  729. package/dist/parser/runtime.js +43 -0
  730. package/dist/parser/runtime.js.map +1 -0
  731. package/dist/parser/types.d.ts +41 -0
  732. package/dist/parser/types.d.ts.map +1 -0
  733. package/dist/parser/types.js +46 -0
  734. package/dist/parser/types.js.map +1 -0
  735. package/dist/policy/evaluate.d.ts +8 -0
  736. package/dist/policy/evaluate.d.ts.map +1 -0
  737. package/dist/policy/evaluate.js +153 -0
  738. package/dist/policy/evaluate.js.map +1 -0
  739. package/dist/policy/graftignore.d.ts +2 -0
  740. package/dist/policy/graftignore.d.ts.map +1 -0
  741. package/dist/policy/graftignore.js +7 -0
  742. package/dist/policy/graftignore.js.map +1 -0
  743. package/dist/policy/types.d.ts +104 -0
  744. package/dist/policy/types.d.ts.map +1 -0
  745. package/dist/policy/types.js +49 -0
  746. package/dist/policy/types.js.map +1 -0
  747. package/dist/ports/codec.d.ts +10 -0
  748. package/dist/ports/codec.d.ts.map +1 -0
  749. package/dist/ports/codec.js +5 -0
  750. package/dist/ports/codec.js.map +1 -0
  751. package/dist/ports/filesystem.d.ts +19 -0
  752. package/dist/ports/filesystem.d.ts.map +1 -0
  753. package/dist/ports/filesystem.js +5 -0
  754. package/dist/ports/filesystem.js.map +1 -0
  755. package/dist/ports/git.d.ts +11 -0
  756. package/dist/ports/git.d.ts.map +1 -0
  757. package/dist/ports/git.js +5 -0
  758. package/dist/ports/git.js.map +1 -0
  759. package/dist/ports/guards.d.ts +15 -0
  760. package/dist/ports/guards.d.ts.map +1 -0
  761. package/dist/ports/guards.js +43 -0
  762. package/dist/ports/guards.js.map +1 -0
  763. package/dist/ports/process-runner.d.ts +17 -0
  764. package/dist/ports/process-runner.d.ts.map +1 -0
  765. package/dist/ports/process-runner.js +5 -0
  766. package/dist/ports/process-runner.js.map +1 -0
  767. package/dist/ports/warp.d.ts +45 -0
  768. package/dist/ports/warp.d.ts.map +1 -0
  769. package/dist/ports/warp.js +5 -0
  770. package/dist/ports/warp.js.map +1 -0
  771. package/dist/release/security-gate.d.ts +24 -0
  772. package/dist/release/security-gate.d.ts.map +1 -0
  773. package/dist/release/security-gate.js +69 -0
  774. package/dist/release/security-gate.js.map +1 -0
  775. package/dist/session/tracker.d.ts +36 -0
  776. package/dist/session/tracker.d.ts.map +1 -0
  777. package/dist/session/tracker.js +113 -0
  778. package/dist/session/tracker.js.map +1 -0
  779. package/dist/session/types.d.ts +14 -0
  780. package/dist/session/types.d.ts.map +1 -0
  781. package/dist/session/types.js +18 -0
  782. package/dist/session/types.js.map +1 -0
  783. package/dist/version.d.ts +2 -0
  784. package/dist/version.d.ts.map +1 -0
  785. package/dist/version.js +3 -0
  786. package/dist/version.js.map +1 -0
  787. package/dist/warp/identity-resolver.d.ts +14 -0
  788. package/dist/warp/identity-resolver.d.ts.map +1 -0
  789. package/dist/warp/identity-resolver.js +31 -0
  790. package/dist/warp/identity-resolver.js.map +1 -0
  791. package/dist/warp/indexer-git.d.ts +22 -0
  792. package/dist/warp/indexer-git.d.ts.map +1 -0
  793. package/dist/warp/indexer-git.js +148 -0
  794. package/dist/warp/indexer-git.js.map +1 -0
  795. package/dist/warp/indexer-graph.d.ts +17 -0
  796. package/dist/warp/indexer-graph.d.ts.map +1 -0
  797. package/dist/warp/indexer-graph.js +179 -0
  798. package/dist/warp/indexer-graph.js.map +1 -0
  799. package/dist/warp/indexer-model.d.ts +51 -0
  800. package/dist/warp/indexer-model.d.ts.map +1 -0
  801. package/dist/warp/indexer-model.js +21 -0
  802. package/dist/warp/indexer-model.js.map +1 -0
  803. package/dist/warp/indexer.d.ts +9 -0
  804. package/dist/warp/indexer.d.ts.map +1 -0
  805. package/dist/warp/indexer.js +112 -0
  806. package/dist/warp/indexer.js.map +1 -0
  807. package/dist/warp/observers.d.ts +54 -0
  808. package/dist/warp/observers.d.ts.map +1 -0
  809. package/dist/warp/observers.js +88 -0
  810. package/dist/warp/observers.js.map +1 -0
  811. package/dist/warp/open.d.ts +15 -0
  812. package/dist/warp/open.d.ts.map +1 -0
  813. package/dist/warp/open.js +67 -0
  814. package/dist/warp/open.js.map +1 -0
  815. package/dist/warp/symbol-identity.d.ts +11 -0
  816. package/dist/warp/symbol-identity.d.ts.map +1 -0
  817. package/dist/warp/symbol-identity.js +67 -0
  818. package/dist/warp/symbol-identity.js.map +1 -0
  819. package/dist/warp/writer-id.d.ts +5 -0
  820. package/dist/warp/writer-id.d.ts.map +1 -0
  821. package/dist/warp/writer-id.js +25 -0
  822. package/dist/warp/writer-id.js.map +1 -0
  823. package/docs/CLI.md +37 -15
  824. package/docs/MCP.md +44 -25
  825. package/docs/{GUIDE.md → SETUP.md} +21 -0
  826. package/package.json +24 -7
  827. package/src/adapters/repo-paths.ts +22 -0
  828. package/src/adapters/rotating-ndjson-log.ts +66 -0
  829. package/src/api/index.ts +107 -0
  830. package/src/api/repo-local-graft.ts +21 -0
  831. package/src/api/repo-workspace.ts +34 -0
  832. package/src/api/tool-bridge.ts +21 -0
  833. package/src/cli/activity-render.ts +112 -0
  834. package/src/cli/cli-error.ts +153 -0
  835. package/src/cli/command-parser.ts +302 -0
  836. package/src/cli/entrypoint.ts +18 -0
  837. package/src/cli/index-cmd.ts +31 -23
  838. package/src/cli/index-model.ts +76 -0
  839. package/src/cli/init-bootstrap.ts +47 -0
  840. package/src/cli/init-client-config.ts +299 -0
  841. package/src/cli/init-model.ts +229 -0
  842. package/src/cli/init-render.ts +54 -0
  843. package/src/cli/init-target-hooks.ts +93 -0
  844. package/src/cli/init.ts +16 -757
  845. package/src/cli/json-document.ts +144 -0
  846. package/src/cli/local-history-dag-model.ts +437 -0
  847. package/src/cli/local-history-dag-render.ts +133 -0
  848. package/src/cli/local-history-dag.ts +103 -0
  849. package/src/cli/main.ts +46 -333
  850. package/src/cli/migrate-local-history.ts +118 -0
  851. package/src/cli/peer-command.ts +59 -0
  852. package/src/contracts/capabilities.ts +218 -109
  853. package/src/contracts/causal-ontology.ts +5 -0
  854. package/src/contracts/json-object.ts +28 -0
  855. package/src/contracts/mcp-runtime.ts +16 -0
  856. package/src/contracts/output-schema-cli.ts +70 -0
  857. package/src/contracts/output-schema-fragments.ts +831 -0
  858. package/src/contracts/output-schema-mcp.ts +282 -0
  859. package/src/contracts/output-schema-meta.ts +119 -0
  860. package/src/contracts/output-schemas.ts +62 -1
  861. package/src/index.ts +1 -0
  862. package/src/mcp/cache.ts +7 -145
  863. package/src/mcp/cached-file.ts +1 -40
  864. package/src/mcp/context.ts +83 -13
  865. package/src/mcp/control-plane/authz-storage.ts +129 -0
  866. package/src/mcp/control-plane/session-registry.ts +115 -0
  867. package/src/mcp/control-plane/status-projection.ts +76 -0
  868. package/src/mcp/control-plane/types.ts +144 -0
  869. package/src/mcp/daemon-bootstrap.ts +100 -0
  870. package/src/mcp/daemon-control-plane.ts +93 -337
  871. package/src/mcp/daemon-repos.ts +27 -144
  872. package/src/mcp/daemon-server.ts +31 -262
  873. package/src/mcp/daemon-session-host.ts +230 -0
  874. package/src/mcp/daemon-stdio-bridge.ts +260 -0
  875. package/src/mcp/daemon-worker-child-pool.ts +213 -0
  876. package/src/mcp/daemon-worker-inline-pool.ts +46 -0
  877. package/src/mcp/daemon-worker-pool.ts +7 -310
  878. package/src/mcp/daemon-worker-types.ts +66 -0
  879. package/src/mcp/metrics.ts +68 -52
  880. package/src/mcp/monitor-health.ts +83 -0
  881. package/src/mcp/monitor-persistence.ts +54 -0
  882. package/src/mcp/monitor-tick-job.ts +3 -0
  883. package/src/mcp/monitor-types.ts +103 -0
  884. package/src/mcp/persisted-local-history-graph.ts +591 -0
  885. package/src/mcp/persisted-local-history-policy.ts +501 -0
  886. package/src/mcp/persisted-local-history-views.ts +250 -0
  887. package/src/mcp/persisted-local-history.ts +1137 -762
  888. package/src/mcp/persistent-monitor-runtime.ts +71 -175
  889. package/src/mcp/policy.ts +11 -20
  890. package/src/mcp/receipt.ts +67 -19
  891. package/src/mcp/repo-concurrency.ts +81 -7
  892. package/src/mcp/repo-overview/filter.ts +44 -0
  893. package/src/mcp/repo-overview/types.ts +63 -0
  894. package/src/mcp/repo-overview/view-projection.ts +90 -0
  895. package/src/mcp/repo-state-git.ts +247 -0
  896. package/src/mcp/repo-state-observation.ts +203 -0
  897. package/src/mcp/repo-state-transition.ts +151 -0
  898. package/src/mcp/repo-state-types.ts +107 -0
  899. package/src/mcp/repo-state.ts +90 -721
  900. package/src/mcp/repo-tool-job.ts +16 -216
  901. package/src/mcp/repo-tool-worker-context.ts +212 -0
  902. package/src/mcp/repo-workspace.ts +21 -0
  903. package/src/mcp/runtime-observability.ts +41 -43
  904. package/src/mcp/secret-scrub.ts +89 -0
  905. package/src/mcp/server-context.ts +223 -0
  906. package/src/mcp/server-invocation.ts +388 -0
  907. package/src/mcp/server-tool-access.ts +145 -0
  908. package/src/mcp/server.ts +46 -606
  909. package/src/mcp/stdio-server.ts +16 -2
  910. package/src/mcp/tool-registry.ts +80 -0
  911. package/src/mcp/tools/activity-view.ts +3 -3
  912. package/src/mcp/tools/budget.ts +10 -7
  913. package/src/mcp/tools/causal-attach.ts +3 -3
  914. package/src/mcp/tools/causal-status.ts +3 -3
  915. package/src/mcp/tools/changed-since.ts +4 -3
  916. package/src/mcp/tools/code-find.ts +7 -2
  917. package/src/mcp/tools/code-refs.ts +7 -3
  918. package/src/mcp/tools/code-show.ts +12 -2
  919. package/src/mcp/tools/daemon-monitors.ts +3 -3
  920. package/src/mcp/tools/daemon-repos.ts +3 -3
  921. package/src/mcp/tools/daemon-sessions.ts +3 -3
  922. package/src/mcp/tools/daemon-status.ts +3 -3
  923. package/src/mcp/tools/diagnostic-models.ts +95 -0
  924. package/src/mcp/tools/doctor.ts +10 -7
  925. package/src/mcp/tools/explain.ts +3 -3
  926. package/src/mcp/tools/file-outline.ts +10 -4
  927. package/src/mcp/tools/graft-diff.ts +6 -3
  928. package/src/mcp/tools/map-collector.ts +338 -0
  929. package/src/mcp/tools/map.ts +52 -3
  930. package/src/mcp/tools/monitor-pause.ts +3 -3
  931. package/src/mcp/tools/monitor-resume.ts +3 -3
  932. package/src/mcp/tools/monitor-start.ts +3 -3
  933. package/src/mcp/tools/monitor-stop.ts +3 -3
  934. package/src/mcp/tools/precision-live.ts +158 -0
  935. package/src/mcp/tools/precision-match.ts +3 -0
  936. package/src/mcp/tools/precision-paths.ts +59 -0
  937. package/src/mcp/tools/precision-show.ts +86 -0
  938. package/src/mcp/tools/precision-visibility.ts +44 -0
  939. package/src/mcp/tools/precision-warp.ts +90 -0
  940. package/src/mcp/tools/precision.ts +19 -310
  941. package/src/mcp/tools/read-range.ts +12 -5
  942. package/src/mcp/tools/run-capture.ts +2 -2
  943. package/src/mcp/tools/safe-read.ts +21 -10
  944. package/src/mcp/tools/since.ts +7 -3
  945. package/src/mcp/tools/state.ts +8 -7
  946. package/src/mcp/tools/stats.ts +3 -3
  947. package/src/mcp/tools/workspace-authorizations.ts +3 -3
  948. package/src/mcp/tools/workspace-authorize.ts +3 -3
  949. package/src/mcp/tools/workspace-bind.ts +3 -3
  950. package/src/mcp/tools/workspace-rebind.ts +3 -3
  951. package/src/mcp/tools/workspace-revoke.ts +3 -3
  952. package/src/mcp/tools/workspace-status.ts +3 -3
  953. package/src/mcp/warp-pool.ts +6 -6
  954. package/src/mcp/workspace-read-observation-model.ts +48 -0
  955. package/src/mcp/workspace-read-observation.ts +103 -0
  956. package/src/mcp/workspace-router-capability.ts +32 -0
  957. package/src/mcp/workspace-router-history.ts +233 -0
  958. package/src/mcp/workspace-router-model.ts +131 -0
  959. package/src/mcp/workspace-router-resolution.ts +71 -0
  960. package/src/mcp/workspace-router-runtime.ts +243 -0
  961. package/src/mcp/workspace-router.ts +151 -454
  962. package/src/metrics/logger.ts +22 -51
  963. package/src/metrics/types.ts +32 -4
  964. package/src/operations/cached-file.ts +40 -0
  965. package/src/operations/diff-identity.ts +127 -0
  966. package/src/operations/file-outline.ts +1 -1
  967. package/src/operations/graft-diff.ts +0 -1
  968. package/src/operations/observation-cache.ts +149 -0
  969. package/src/operations/read-range.ts +0 -1
  970. package/src/operations/repo-workspace.ts +339 -0
  971. package/src/operations/result-dto.ts +23 -0
  972. package/src/operations/safe-read.ts +3 -4
  973. package/src/operations/state.ts +42 -6
  974. package/src/operations/structured-buffer-compare.ts +429 -0
  975. package/src/operations/structured-buffer-model.ts +456 -0
  976. package/src/operations/structured-buffer-query.ts +794 -0
  977. package/src/operations/structured-buffer.ts +181 -0
  978. package/src/parser/diff.ts +172 -1
  979. package/src/parser/lang.ts +58 -15
  980. package/src/parser/markdown.ts +197 -0
  981. package/src/parser/outline.ts +8 -208
  982. package/src/parser/runtime.ts +71 -0
  983. package/src/policy/evaluate.ts +2 -2
  984. package/src/policy/types.ts +9 -9
  985. package/src/ports/guards.ts +68 -0
  986. package/src/ports/warp.ts +55 -0
  987. package/src/session/tracker.ts +7 -7
  988. package/src/session/types.ts +4 -1
  989. package/src/warp/identity-resolver.ts +35 -0
  990. package/src/warp/indexer-git.ts +182 -0
  991. package/src/warp/indexer-graph.ts +276 -0
  992. package/src/warp/indexer-model.ts +69 -0
  993. package/src/warp/indexer.ts +122 -449
  994. package/src/warp/observers.ts +7 -12
  995. package/src/warp/open.ts +66 -4
  996. package/src/warp/symbol-identity.ts +100 -0
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,306 +1,144 @@
1
- <div align="center">
2
- <img src="./docs/assets/graft.svg" />
3
- <h3>Context governor for coding agents</h3>
4
- </div>
1
+ # Graft
5
2
 
6
- Graft enforces read policy so coding agents consume the smallest
7
- structurally correct view of a codebase instead of dumping entire
8
- files into their context window. Agent-first, but the structural
9
- tools (outlines, diffs, symbol history) are useful to anyone.
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.
10
4
 
11
- **v0.5.0** bounded between-commit activity for humans and agents.
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.
12
6
 
13
- ## Why
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)
14
9
 
15
- Empirical analysis of 1,091 real coding sessions ([Blacklight](https://github.com/flyingrobots/blacklight)) found
16
- that **Read accounts for 96.2 GB of context burden** — 6.6x all
17
- other tools combined. 58% of reads are full-file. The fattest 2.4%
18
- of reads produce 24% of raw bytes. Dynamic read caps + session
19
- management reduce this by **75.1%**.
10
+ ![Graft demo](./docs/assets/graft.svg)
20
11
 
21
- ## Install
12
+ ## Why Graft?
22
13
 
23
- ```bash
24
- npm install -g @flyingrobots/graft
25
- ```
14
+ Unlike simple file-scraping tools, Graft treats the repository as a layered worldline of code structure and causal activity.
26
15
 
27
- Or use directly:
16
+ - **Policy-Enforced Reads**: Automatically degrades large files to structural outlines and jump tables. Refuses binaries, secrets, and lockfiles with machine-readable reasons.
17
+ - **Machine-Readable Contracts**: Responses carry versioned `_schema` metadata and decision receipts so agents can reason about outcomes without scraping prose.
18
+ - **Structural Memory**: Uses WARP (Structural Worldline Memory) to track AST evolution across Git commits. Query what changed structurally without reading a single byte of source code.
19
+ - **Causal Provenance**: Tracks the *why* behind structural changes by logging read, stage, and transition activity into strand-scoped causal workspaces.
20
+ - **Industrial-Grade Daemon**: A same-user local runtime that manages multi-repo authorization, background indexing, and shared-machine worker pools.
28
21
 
29
- ```bash
30
- npx @flyingrobots/graft
31
- ```
22
+ ## Quick Start
23
+
24
+ Graft has three official entry points:
32
25
 
33
- Or run in Docker (no Node required):
26
+ - **API** for direct in-process integration
27
+ - **CLI** for operator and debugging workflows
28
+ - **MCP** for agent transport integration
34
29
 
30
+ ### 1. Bootstrap a Repo
31
+ Scaffold `.graftignore`, setup git hooks, and seed agent instructions.
35
32
  ```bash
36
- docker run -i --rm -v "$PWD:/workspace" flyingrobots/graft
33
+ npx @flyingrobots/graft init --write-claude-hooks --write-codex-mcp
37
34
  ```
38
35
 
39
- ## Quick start
40
-
36
+ ### 2. Repo-Local Stdio MCP
37
+ This is the simplest per-repo path for most clients. The current
38
+ checkout is the authority, and there is no separate workspace binding
39
+ step.
41
40
  ```bash
42
- npx @flyingrobots/graft init
41
+ npx @flyingrobots/graft serve
43
42
  ```
44
43
 
45
- Scaffolds `.graftignore`, adds `.graft/` to `.gitignore`, generates
46
- a `CLAUDE.md` snippet telling agents to prefer graft tools, and
47
- prints Claude Code hook / MCP config for manual setup.
48
-
49
- If you use Codex, the explicit `--write-codex-mcp` path also seeds
50
- `AGENTS.md` so the repo has both the MCP wiring and the instruction
51
- layer that tells Codex to prefer graft reads. It also writes a larger
52
- Codex `startup_timeout_sec` because cold `npx` startup can exceed the
53
- default 30 second MCP budget.
54
-
55
- For a project-local one-step bootstrap, use explicit write flags:
56
-
44
+ ### 3. Standalone CLI
45
+ Enforce policy on a single read or inspect structural history.
57
46
  ```bash
58
- npx @flyingrobots/graft init --write-claude-mcp --write-claude-hooks
59
- npx @flyingrobots/graft init --write-cursor-mcp
60
- npx @flyingrobots/graft init --write-windsurf-mcp
61
- npx @flyingrobots/graft init --write-continue-mcp
62
- npx @flyingrobots/graft init --write-cline-mcp
63
- npx @flyingrobots/graft init --write-codex-mcp
47
+ npx @flyingrobots/graft read safe src/app.ts
48
+ npx @flyingrobots/graft struct since HEAD~3
64
49
  ```
65
50
 
66
- These writes are idempotent. Existing JSON / TOML config is merged
67
- without duplicating graft entries.
68
-
69
- Then add graft to your MCP config:
51
+ ### 4. Direct Library API
52
+ Embed Graft in-process when you want direct access without MCP transport
53
+ or CLI process orchestration.
54
+ ```ts
55
+ import { createRepoLocalGraft, callGraftTool } from "@flyingrobots/graft";
70
56
 
71
- ```json
72
- {
73
- "mcpServers": {
74
- "graft": {
75
- "command": "npx",
76
- "args": ["-y", "@flyingrobots/graft", "serve"]
77
- }
78
- }
79
- }
57
+ const graft = createRepoLocalGraft({ cwd: process.cwd() });
58
+ const outline = await callGraftTool(graft, "file_outline", { path: "src/app.ts" });
80
59
  ```
81
60
 
82
- The MCP server works with Codex, Claude Code, Cursor, Windsurf,
83
- Continue, Cline, and any MCP-compatible client. Governed native-read
84
- behavior differs by client: Claude has hook guardrails, Codex now has
85
- repo-local `AGENTS.md` bootstrap guidance, and the other clients remain
86
- MCP-plus-instructions rather than true default-governed reads.
87
-
88
- Supported deployment posture today is local-user:
89
-
90
- - repo-local `serve` remains the standard editor bootstrap path
91
- - `graft daemon` now exists as a separate same-user local runtime on a
92
- Unix socket or Windows named pipe
93
-
94
- The daemon still follows a stricter contract than repo-local stdio:
95
- daemon sessions start unbound, workspace binding is the authorization
96
- event, `/healthz` is the liveness surface, and escape hatches like
97
- `run_capture` stay default-denied there unless a workspace is
98
- explicitly authorized for that posture through the daemon control
99
- plane. Daemon-wide inspection now exists through MCP tools such as
100
- `daemon_status`, `daemon_repos`, `daemon_sessions`,
101
- `workspace_authorizations`, and `daemon_monitors`. Repo-scoped
102
- background WARP indexing can now be controlled there too through
103
- `monitor_start`, `monitor_pause`, `monitor_resume`, and `monitor_stop`.
104
-
105
- See the **[Setup decision table](docs/GUIDE.md#choose-your-setup-path)**
106
- for the fastest path by client and mode, and the full
107
- **[Setup Guide](docs/GUIDE.md)** for per-editor instructions, Claude
108
- Code hooks, `.graftignore` configuration, troubleshooting, and
109
- details on what the agent experiences. For release-facing operator
110
- surfaces, see **[CLI Guide](docs/CLI.md)**,
111
- **[MCP Guide](docs/MCP.md)**, and **[Advanced Guide](docs/ADVANCED_GUIDE.md)**.
112
- Contributors should also read **[Architecture](ARCHITECTURE.md)** for
113
- the runtime systems map and **[Code of Conduct](CODE_OF_CONDUCT.md)**
114
- for project participation expectations.
115
-
116
- ## What it does
61
+ This uses the same repo-local core as the CLI and MCP server, but it
62
+ lets host tools call Graft directly inside the same process.
117
63
 
118
- When an agent asks to read a file, Graft applies policy:
119
-
120
- - **Small files** are returned as-is.
121
- - **Large files** are returned as a structural outline with a jump
122
- table so the agent can request specific ranges.
123
- - **Banned files** (binaries, lockfiles, minified bundles, secrets)
124
- are refused with a machine-readable reason code and suggested next
125
- steps.
126
- - **Re-reads** of unchanged files return a cached outline (no wasted
127
- context). Changed files return a structural diff (added/removed/
128
- changed symbols).
129
- - **Ranges** are bounded — no stealth `cat` of a 10,000-line file.
130
- - **Session depth** tightens caps as the context window fills.
131
- - **Budget governor** — agent declares a byte budget, thresholds
132
- tighten as it drains. No single read may consume more than 5% of
133
- remaining budget.
134
- - **Structural memory** — WARP-backed structural history across git
135
- commits. Query what changed structurally without reading files.
136
- - **Tripwires** signal when the session is going off the rails.
137
- - **Receipts** on every response with session/trace correlation,
138
- latency, and compression ratio for usage analysis.
139
- - **MCP runtime observability** — metadata-only session and tool-call
140
- logs under `.graft/logs/mcp-runtime.ndjson`.
141
- - **Versioned schemas** on every machine-readable MCP / CLI payload.
142
- - **Between-commit activity view** — bounded local `artifact_history`
143
- over recent continuity, transitions, staging, and reads, anchored
144
- to the current commit when possible.
145
-
146
- Every decision is logged. Every refusal is explainable. All output
147
- is structured JSON with versioned `_schema` metadata.
148
-
149
- ## Tools
150
-
151
- | Tool | Purpose |
152
- |---|---|
153
- | `safe_read` | Policy-enforced file read (content, outline, refusal, or diff) |
154
- | `file_outline` | Structural skeleton with jump table |
155
- | `read_range` | Bounded range read (max 250 lines), policy-gated |
156
- | `graft_diff` | Structural diff between git refs with per-file summary lines and explicit denied-file reporting |
157
- | `graft_since` | Structural changes since a git ref — symbols added/removed/changed with explicit denied-file reporting |
158
- | `graft_map` | Structural map of a directory — all files and symbols in one call, with explicit denied-file reporting |
159
- | `code_show` | Focus on a symbol by name — get its source code in one call |
160
- | `code_find` | Search symbols across the project by approximate name or glob, with optional kind/path filters |
161
- | `code_refs` | Search import sites, callsites, property access, or literal text references with explicit text-fallback provenance |
162
- | `changed_since` | Check if a file changed since last read (peek or consume) |
163
- | `run_capture` | Diagnostic shell-output escape hatch — tail to agent, optional redacted log persistence, explicit enable/disable posture, outside bounded-read policy, with explicit `policyBoundary` marker |
164
- | `state_save` | Save session working state (max 8 KB) |
165
- | `state_load` | Restore session working state |
166
- | `set_budget` | Declare session byte budget — governor tightens as it drains |
167
- | `activity_view` | Recent bounded local `artifact_history` for the active workspace, with current commit anchor, grouped activity, and degraded posture |
168
- | `explain` | Human-readable help for any reason code |
169
- | `doctor` | Runtime health check with burden summary and layered-worldline state |
170
- | `stats` | Decision metrics summary with cumulative burden-by-kind totals |
171
-
172
- ## Claude Code hooks
173
-
174
- Two hooks work alongside the MCP server to govern native `Read`
175
- calls — a safety net for when agents bypass graft's tools:
64
+ When you want a direct repo-local read surface instead of tool receipts,
65
+ use the workspace API:
66
+ ```ts
67
+ import { createRepoWorkspace } from "@flyingrobots/graft";
176
68
 
177
- ```json
178
- {
179
- "hooks": {
180
- "PreToolUse": [
181
- {
182
- "matcher": "Read",
183
- "hooks": [
184
- {
185
- "type": "command",
186
- "command": "node --import tsx node_modules/@flyingrobots/graft/src/hooks/pretooluse-read.ts"
187
- }
188
- ]
189
- }
190
- ],
191
- "PostToolUse": [
192
- {
193
- "matcher": "Read",
194
- "hooks": [
195
- {
196
- "type": "command",
197
- "command": "node --import tsx node_modules/@flyingrobots/graft/src/hooks/posttooluse-read.ts"
198
- }
199
- ]
200
- }
201
- ]
202
- }
203
- }
69
+ const workspace = await createRepoWorkspace({ cwd: process.cwd() });
70
+ const first = await workspace.safeRead({ path: "src/app.ts" });
71
+ const second = await workspace.safeRead({ path: "src/app.ts" });
72
+ const outline = await workspace.fileOutline({ path: "src/app.ts" });
204
73
  ```
205
74
 
206
- Add to `.claude/settings.json` in your project root.
207
- **PreToolUse** blocks banned files and redirects large JS/TS reads to
208
- `safe_read` before native `Read` can dump them into context.
209
- **PostToolUse** is the backstop: it reports what `safe_read` would have
210
- saved when an oversized code read still slips through.
75
+ This exposes the same governed repo-local read behavior that the MCP
76
+ surface uses for `safe_read`, `file_outline`, `read_range`, and
77
+ `changed_since`, but without going through MCP receipts at all.
211
78
 
212
- See the **[Setup Guide](docs/GUIDE.md)** for full details on hooks,
213
- per-editor MCP config, `.graftignore`, and troubleshooting.
214
-
215
- ## CLI
79
+ For close editor integration, use the buffer-native surface directly:
80
+ ```ts
81
+ import { createProjectionBundle, createStructuredBuffer } from "@flyingrobots/graft";
82
+
83
+ const buffer = createStructuredBuffer("src/app.tsx", liveEditorText, {
84
+ basis: { kind: "editor_head", headId: "head-42", tick: 17 },
85
+ });
86
+ const spans = buffer.syntaxSpans({
87
+ viewport: {
88
+ start: { row: 0, column: 0 },
89
+ end: { row: 80, column: 0 },
90
+ },
91
+ });
92
+ const context = buffer.nodeAt({ row: 24, column: 12 });
93
+ const rename = buffer.renamePreview({
94
+ position: { row: 24, column: 12 },
95
+ nextName: "nextValue",
96
+ });
97
+
98
+ // Every warm result now carries the basis it was derived from.
99
+ console.log(spans.basis);
100
+
101
+ const bundle = createProjectionBundle("src/app.tsx", liveEditorText, {
102
+ basis: { kind: "editor_head", headId: "head-42", tick: 17 },
103
+ viewport: {
104
+ start: { row: 0, column: 0 },
105
+ end: { row: 80, column: 0 },
106
+ },
107
+ });
108
+
109
+ console.log(bundle.parseStatus.status);
110
+ ```
216
111
 
112
+ ### 5. Shared Daemon Runtime
113
+ Start the same-user execution authority for multi-session or multi-repo
114
+ work.
217
115
  ```bash
218
- npx @flyingrobots/graft init
219
- npx @flyingrobots/graft init --write-claude-mcp --write-claude-hooks
220
- npx @flyingrobots/graft init --write-cursor-mcp
221
- npx @flyingrobots/graft init --write-windsurf-mcp
222
- npx @flyingrobots/graft init --write-continue-mcp
223
- npx @flyingrobots/graft init --write-cline-mcp
224
- npx @flyingrobots/graft init --write-codex-mcp
225
- npx @flyingrobots/graft serve
226
- npx @flyingrobots/graft index
227
- npx @flyingrobots/graft read safe src/app.ts --json
228
- npx @flyingrobots/graft read outline README.md --json
229
- npx @flyingrobots/graft read range src/app.ts --start 10 --end 40 --json
230
- npx @flyingrobots/graft read changed src/app.ts --json
231
- npx @flyingrobots/graft struct diff --json
232
- npx @flyingrobots/graft struct since HEAD~3 --json
233
- npx @flyingrobots/graft struct map src --json
234
- npx @flyingrobots/graft symbol show createServer --path src/mcp/server.ts --json
235
- npx @flyingrobots/graft symbol find 'create*' --json
236
- npx @flyingrobots/graft diag activity --json
237
- npx @flyingrobots/graft diag doctor --json
238
- npx @flyingrobots/graft diag explain CONTENT --json
239
- npx @flyingrobots/graft diag stats --json
240
- npx @flyingrobots/graft diag capture --tail 20 -- pnpm test --json
116
+ npx @flyingrobots/graft daemon
241
117
  ```
242
118
 
243
- The CLI now mirrors the core MCP product surface through grouped
244
- namespaces:
245
- - `read` for bounded reads
246
- - `struct` for structural navigation
247
- - `symbol` for precision lookup
248
- - `diag` for diagnostics
249
-
250
- `init` and `index` remain explicit CLI-only commands. MCP responses and
251
- CLI peer commands both carry versioned `_schema` metadata, and declared
252
- output contracts live in `src/contracts/output-schemas.ts`.
253
-
254
- `run_capture` remains an explicit shell escape hatch. For shared or
255
- release-sensitive environments, you can disable it with
256
- `GRAFT_ENABLE_RUN_CAPTURE=0`. Persisted capture logs can be disabled
257
- with `GRAFT_RUN_CAPTURE_PERSIST=0`, and persisted output is redacted for
258
- obvious secret-shaped values by default. In the local daemon runtime,
259
- `run_capture` remains opt-in rather than ambiently available.
119
+ Daemon sessions start `unbound`. If your client connects through the
120
+ daemon instead of repo-local stdio, the first repo-scoped flow is:
260
121
 
261
- ## Reason codes
122
+ 1. `workspace_authorize` for the target repo/worktree
123
+ 2. `workspace_bind` for the active daemon session
124
+ 3. then use repository-scoped tools such as `safe_read`
262
125
 
263
- Every refusal or policy decision includes a machine-readable reason
264
- code. Use `explain(code)` to get meaning and recommended action.
126
+ Use [docs/SETUP.md](./docs/SETUP.md) for the exact client bootstrap and
127
+ daemon control-plane posture.
265
128
 
266
- | Code | Meaning |
267
- |------|---------|
268
- | `CONTENT` | File within thresholds — full content returned |
269
- | `OUTLINE` | File exceeds thresholds — structural outline returned |
270
- | `SESSION_CAP` | Session-depth byte cap triggered |
271
- | `BUDGET_CAP` | Budget-proportional cap triggered |
272
- | `UNSUPPORTED_LANGUAGE` | No parser-backed outline for this file type |
273
- | `BINARY` | Binary file refused |
274
- | `LOCKFILE` | Machine-generated lockfile refused |
275
- | `MINIFIED` | Minified file refused |
276
- | `BUILD_OUTPUT` | Build output directory refused |
277
- | `SECRET` | Potential secrets file refused |
278
- | `GRAFTIGNORE` | Matches .graftignore pattern |
129
+ ## Documentation
279
130
 
280
- ## License
281
-
282
- Apache 2.0 see [LICENSE](LICENSE).
131
+ - **[Guide](./GUIDE.md)**: Orientation, the fast path, and agent bootstrap.
132
+ - **[Setup Guide](./docs/SETUP.md)**: Client-specific MCP setup, daemon posture, and workspace binding.
133
+ - **[Advanced Guide](./ADVANCED_GUIDE.md)**: Deep dives into the pipeline, worldlines, and daemon mechanics.
134
+ - **[Architecture](./ARCHITECTURE.md)**: The authoritative structural reference (Ports, Adapters, WARP).
135
+ - **[Public API Contract](./docs/public-api.md)**: The semver-public root import surface and stability policy.
136
+ - **[Repo Topology](./docs/repo-topology.md)**: Where API, CLI, MCP, and the core live in the source tree.
137
+ - **[Three-Surface Capability Matrix](./docs/three-surface-capability-matrix.md)**: Current API / CLI / MCP baseline and peer posture.
138
+ - **[Security Model](./docs/strategy/security-model.md)**: Same-user daemon trust boundaries, authz, and observability posture.
139
+ - **[Causal Provenance](./docs/strategy/causal-provenance.md)**: Transport sessions, causal workspaces, strands, and handoff truth.
140
+ - **[Vision](./docs/VISION.md)**: Core tenets and the provenance-aware mission.
141
+ - **[Method](./METHOD.md)**: Repo work doctrine and the cycle loop.
283
142
 
284
143
  ---
285
-
286
- ```ts
287
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
288
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
289
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
290
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
291
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣶⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
292
- ⠀⠀⠀⠀⠀⠀⢀⣤⣴⣶⣶⣶⣶⣦⣤⣼⣿⣿⣿⣿⣿⠀⢠⣶⣶⣦⡀⠀⢀⣴⣶⣶⣤⠀⠀⠀⠀⣀⣤⣴⣶⣶⣶⣶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⡄⠀⣀⣀⣠⣤⠀⠀⢀⣾⣿⣿⣀⣀⣀⣤⣤⣄⠀⠀⠀⠀⠀⠀
293
- ⠀⠀⠀⠀⠀⣴⣿⣿⠛⠉⠉⠉⠛⠿⣿⣿⣿⡿⠉⠉⠀⠀⢻⣿⣿⣿⣇⠀⣾⣿⣿⣿⣿⡇⠀⢠⣾⣿⣿⣿⡿⠟⠛⢻⣿⣿⣷⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀
294
- ⠀⠀⠀⠀⢸⣿⣿⣇⠀⠀⠀⠀⠀⠀⠘⣿⣿⡇⠀⠀⠀⠀⠈⢿⣿⣿⣿⢠⡿⠛⠛⠿⠟⠁⠀⢺⣿⣿⡿⠋⠀⠀⠀⣸⣿⣿⣿⡀⠀⠀⠀⠀⠛⠿⢿⣿⣿⠟⠛⠛⠛⠛⠀⠘⠻⠿⢿⣿⣿⠛⠛⠛⠛⠋⠀⠀⠀⠀⠀⠀
295
- ⠀⠀⠀⠀⠸⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⣠⣾⠟⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠈⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
296
- ⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣶⣤⣤⣤⣾⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⡿⠋⠀⢸⣿⣿⡇⠀⢀⣤⡀⠀⠀⠀⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡆⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀
297
- ⠀⠀⠀⠀⠀⠀⠀⣨⣿⡿⠟⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⠀⢸⣿⡇⠀⠀⠀⢻⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣇⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀
298
- ⠀⠀⠀⠀⠀⠀⣼⣿⣿⡀⠀⢀⣀⣀⣤⣤⣤⣴⣦⣤⣄⠀⠀⠀⠀⢰⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⢾⣿⣿⣇⠀⠀⣠⣿⢻⣿⣿⡀⣸⣿⡇⠀⠀⠀⠸⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣦⣀⣠⣾⣿⡟⠀⠀⠀⠀
299
- ⠀⠀⠀⠀⠀⠀⠹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⢸⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⠏⠀⢿⣿⣿⣿⣿⠇⠀⠀⠀⠀⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀
300
- ⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⠟⠉⠁⠀⠀⠀⠀⠀⢻⣿⣿⡟⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠛⠛⠁⠀⠀⠀⠙⠛⠛⠁⠀⠀⠀⠀⠀⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀
301
- ⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
302
- ⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣷⣤⣤⣤⣤⣤⣾⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
303
- ⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠻⠿⠿⠿⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
304
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
305
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
306
- ```
144
+ Built with precision by [FLYING ROBOTS](https://github.com/flyingrobots)
package/bin/graft.js CHANGED
@@ -13,9 +13,11 @@ const require = createRequire(import.meta.url);
13
13
 
14
14
  // If already running under tsx, proceed directly
15
15
  if (process.env.__GRAFT_TSX_LOADED === "1") {
16
- const { resolveEntrypointArgs, runCli } = await import("../src/cli/main.js");
17
- await runCli({
18
- args: resolveEntrypointArgs(process.argv.slice(2), process.stdin.isTTY, process.stdout.isTTY),
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,
19
21
  });
20
22
  } else {
21
23
  // Re-exec with tsx loader from our own node_modules
@@ -0,0 +1,6 @@
1
+ import type { JsonCodec } from "../ports/codec.js";
2
+ export declare class CanonicalJsonCodec implements JsonCodec {
3
+ encode(value: unknown): string;
4
+ decode(data: string): unknown;
5
+ }
6
+ //# sourceMappingURL=canonical-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-json.d.ts","sourceRoot":"","sources":["../../src/adapters/canonical-json.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmCnD,qBAAa,kBAAmB,YAAW,SAAS;IAClD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAI9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG9B"}
@@ -0,0 +1,52 @@
1
+ // ---------------------------------------------------------------------------
2
+ // CanonicalJsonCodec — deterministic JSON with sorted keys
3
+ // ---------------------------------------------------------------------------
4
+ //
5
+ // Subset of RFC 8785 (JSON Canonicalization Scheme):
6
+ // - Object keys sorted lexicographically at every nesting level
7
+ // - Compact output (no whitespace)
8
+ // - Deterministic: same data always produces the same string
9
+ //
10
+ // Enables stable hashes, diffable logs, reproducible receipts.
11
+ // ---------------------------------------------------------------------------
12
+ function isPlainObject(value) {
13
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
14
+ return false;
15
+ }
16
+ const proto = Object.getPrototypeOf(value);
17
+ return proto === Object.prototype || proto === null;
18
+ }
19
+ function sortDeep(value, seen = new WeakSet()) {
20
+ if (value === null || typeof value !== "object") {
21
+ return value;
22
+ }
23
+ if (!isPlainObject(value) && !Array.isArray(value)) {
24
+ return value;
25
+ }
26
+ if (seen.has(value)) {
27
+ throw new TypeError("Converting circular structure to JSON");
28
+ }
29
+ seen.add(value);
30
+ try {
31
+ if (Array.isArray(value)) {
32
+ return value.map((v) => sortDeep(v, seen));
33
+ }
34
+ const sorted = {};
35
+ for (const key of Object.keys(value).sort()) {
36
+ sorted[key] = sortDeep(value[key], seen);
37
+ }
38
+ return sorted;
39
+ }
40
+ finally {
41
+ seen.delete(value);
42
+ }
43
+ }
44
+ export class CanonicalJsonCodec {
45
+ encode(value) {
46
+ return JSON.stringify(sortDeep(value));
47
+ }
48
+ decode(data) {
49
+ return JSON.parse(data);
50
+ }
51
+ }
52
+ //# sourceMappingURL=canonical-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../../src/adapters/canonical-json.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAC9E,EAAE;AACF,qDAAqD;AACrD,kEAAkE;AAClE,qCAAqC;AACrC,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAC/D,8EAA8E;AAI9E,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAY,CAAC;IACtD,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAI,GAAG,IAAI,OAAO,EAAE;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,KAAc;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { FileSystem } from "../ports/filesystem.js";
2
+ export declare const nodeFs: FileSystem;
3
+ //# sourceMappingURL=node-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-fs.d.ts","sourceRoot":"","sources":["../../src/adapters/node-fs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAoCzD,eAAO,MAAM,MAAM,EAAE,UAAiC,CAAC"}
@@ -0,0 +1,33 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Node.js filesystem adapter — implements the FileSystem port
3
+ // ---------------------------------------------------------------------------
4
+ import * as fs from "node:fs";
5
+ import * as fsp from "node:fs/promises";
6
+ class NodeFileSystem {
7
+ readFile(path, encoding) {
8
+ if (encoding !== undefined)
9
+ return fsp.readFile(path, encoding);
10
+ return fsp.readFile(path);
11
+ }
12
+ readdir(path) {
13
+ return fsp.readdir(path);
14
+ }
15
+ writeFile(path, data, encoding) {
16
+ return fsp.writeFile(path, data, encoding);
17
+ }
18
+ appendFile(path, data, encoding) {
19
+ return fsp.appendFile(path, data, encoding);
20
+ }
21
+ async mkdir(path, options) {
22
+ await fsp.mkdir(path, options);
23
+ }
24
+ async stat(path) {
25
+ const s = await fsp.stat(path);
26
+ return { size: s.size };
27
+ }
28
+ readFileSync(path, encoding) {
29
+ return fs.readFileSync(path, encoding);
30
+ }
31
+ }
32
+ export const nodeFs = new NodeFileSystem();
33
+ //# sourceMappingURL=node-fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-fs.js","sourceRoot":"","sources":["../../src/adapters/node-fs.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAGxC,MAAM,cAAc;IAGlB,QAAQ,CAAC,IAAY,EAAE,QAAkB;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACrD,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACtD,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAA4B;QACpD,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,QAAiB;QAC1C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAe,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GitClient } from "../ports/git.js";
2
+ export declare const nodeGit: GitClient;
3
+ //# sourceMappingURL=node-git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-git.d.ts","sourceRoot":"","sources":["../../src/adapters/node-git.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAyChE,eAAO,MAAM,OAAO,EAAE,SAA+B,CAAC"}