@flyingrobots/graft 0.6.1 → 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 (561) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +1 -1
  3. package/dist/adapters/json-text-decoder.d.ts +3 -0
  4. package/dist/adapters/json-text-decoder.d.ts.map +1 -0
  5. package/dist/adapters/json-text-decoder.js +12 -0
  6. package/dist/adapters/json-text-decoder.js.map +1 -0
  7. package/dist/adapters/node-paths.d.ts +3 -0
  8. package/dist/adapters/node-paths.d.ts.map +1 -0
  9. package/dist/adapters/node-paths.js +29 -0
  10. package/dist/adapters/node-paths.js.map +1 -0
  11. package/dist/adapters/repo-paths.d.ts.map +1 -1
  12. package/dist/adapters/repo-paths.js +40 -5
  13. package/dist/adapters/repo-paths.js.map +1 -1
  14. package/dist/api/tool-bridge.d.ts +1 -1
  15. package/dist/api/tool-bridge.d.ts.map +1 -1
  16. package/dist/api/tool-bridge.js +1 -1
  17. package/dist/api/tool-bridge.js.map +1 -1
  18. package/dist/cli/cli-error.d.ts.map +1 -1
  19. package/dist/cli/cli-error.js +47 -10
  20. package/dist/cli/cli-error.js.map +1 -1
  21. package/dist/cli/command-parser.d.ts +12 -3
  22. package/dist/cli/command-parser.d.ts.map +1 -1
  23. package/dist/cli/command-parser.js +161 -2
  24. package/dist/cli/command-parser.js.map +1 -1
  25. package/dist/cli/daemon-status-model.d.ts +87 -0
  26. package/dist/cli/daemon-status-model.d.ts.map +1 -0
  27. package/dist/cli/daemon-status-model.js +142 -0
  28. package/dist/cli/daemon-status-model.js.map +1 -0
  29. package/dist/cli/daemon-status-render.d.ts +3 -0
  30. package/dist/cli/daemon-status-render.d.ts.map +1 -0
  31. package/dist/cli/daemon-status-render.js +100 -0
  32. package/dist/cli/daemon-status-render.js.map +1 -0
  33. package/dist/cli/daemon-status.d.ts +7 -0
  34. package/dist/cli/daemon-status.d.ts.map +1 -0
  35. package/dist/cli/daemon-status.js +79 -0
  36. package/dist/cli/daemon-status.js.map +1 -0
  37. package/dist/cli/git-graft-enhance-model.d.ts +67 -0
  38. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -0
  39. package/dist/cli/git-graft-enhance-model.js +55 -0
  40. package/dist/cli/git-graft-enhance-model.js.map +1 -0
  41. package/dist/cli/git-graft-enhance-render.d.ts +3 -0
  42. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -0
  43. package/dist/cli/git-graft-enhance-render.js +29 -0
  44. package/dist/cli/git-graft-enhance-render.js.map +1 -0
  45. package/dist/cli/git-graft-enhance.d.ts +14 -0
  46. package/dist/cli/git-graft-enhance.d.ts.map +1 -0
  47. package/dist/cli/git-graft-enhance.js +29 -0
  48. package/dist/cli/git-graft-enhance.js.map +1 -0
  49. package/dist/cli/index-cmd.d.ts.map +1 -1
  50. package/dist/cli/index-cmd.js +18 -21
  51. package/dist/cli/index-cmd.js.map +1 -1
  52. package/dist/cli/index-model.d.ts +5 -9
  53. package/dist/cli/index-model.d.ts.map +1 -1
  54. package/dist/cli/index-model.js +20 -18
  55. package/dist/cli/index-model.js.map +1 -1
  56. package/dist/cli/init-client-config.d.ts +12 -7
  57. package/dist/cli/init-client-config.d.ts.map +1 -1
  58. package/dist/cli/init-client-config.js +105 -43
  59. package/dist/cli/init-client-config.js.map +1 -1
  60. package/dist/cli/init-model.d.ts +9 -2
  61. package/dist/cli/init-model.d.ts.map +1 -1
  62. package/dist/cli/init-model.js +52 -4
  63. package/dist/cli/init-model.js.map +1 -1
  64. package/dist/cli/init-render.d.ts.map +1 -1
  65. package/dist/cli/init-render.js +2 -2
  66. package/dist/cli/init-render.js.map +1 -1
  67. package/dist/cli/init.d.ts.map +1 -1
  68. package/dist/cli/init.js +11 -9
  69. package/dist/cli/init.js.map +1 -1
  70. package/dist/cli/json-document.d.ts +5 -0
  71. package/dist/cli/json-document.d.ts.map +1 -1
  72. package/dist/cli/json-document.js +9 -0
  73. package/dist/cli/json-document.js.map +1 -1
  74. package/dist/cli/main.d.ts +7 -0
  75. package/dist/cli/main.d.ts.map +1 -1
  76. package/dist/cli/main.js +49 -7
  77. package/dist/cli/main.js.map +1 -1
  78. package/dist/cli/migrate-local-history.d.ts.map +1 -1
  79. package/dist/cli/migrate-local-history.js +3 -2
  80. package/dist/cli/migrate-local-history.js.map +1 -1
  81. package/dist/cli/peer-command.d.ts +1 -1
  82. package/dist/cli/peer-command.d.ts.map +1 -1
  83. package/dist/cli/peer-command.js +1 -1
  84. package/dist/cli/peer-command.js.map +1 -1
  85. package/dist/contracts/capabilities.d.ts +5 -5
  86. package/dist/contracts/capabilities.d.ts.map +1 -1
  87. package/dist/contracts/capabilities.js +89 -0
  88. package/dist/contracts/capabilities.js.map +1 -1
  89. package/dist/contracts/causal-ontology.d.ts +17 -17
  90. package/dist/contracts/json-object.d.ts +0 -1
  91. package/dist/contracts/json-object.d.ts.map +1 -1
  92. package/dist/contracts/json-object.js +0 -10
  93. package/dist/contracts/json-object.js.map +1 -1
  94. package/dist/contracts/output-schema-cli.d.ts +277 -25
  95. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  96. package/dist/contracts/output-schema-cli.js +35 -3
  97. package/dist/contracts/output-schema-cli.js.map +1 -1
  98. package/dist/contracts/output-schema-fragments.d.ts +212 -87
  99. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  100. package/dist/contracts/output-schema-fragments.js +49 -2
  101. package/dist/contracts/output-schema-fragments.js.map +1 -1
  102. package/dist/contracts/output-schema-mcp.d.ts +372 -47
  103. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  104. package/dist/contracts/output-schema-mcp.js +217 -1
  105. package/dist/contracts/output-schema-mcp.js.map +1 -1
  106. package/dist/contracts/output-schema-meta.d.ts +2 -2
  107. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  108. package/dist/contracts/output-schemas.d.ts +7 -7
  109. package/dist/contracts/output-schemas.d.ts.map +1 -1
  110. package/dist/contracts/output-schemas.js +294 -6
  111. package/dist/contracts/output-schemas.js.map +1 -1
  112. package/dist/git/diff.d.ts +11 -0
  113. package/dist/git/diff.d.ts.map +1 -1
  114. package/dist/git/diff.js +50 -6
  115. package/dist/git/diff.js.map +1 -1
  116. package/dist/mcp/burden.d.ts.map +1 -1
  117. package/dist/mcp/burden.js +9 -0
  118. package/dist/mcp/burden.js.map +1 -1
  119. package/dist/mcp/context.d.ts +3 -2
  120. package/dist/mcp/context.d.ts.map +1 -1
  121. package/dist/mcp/context.js +2 -37
  122. package/dist/mcp/context.js.map +1 -1
  123. package/dist/mcp/daemon-server.d.ts +2 -0
  124. package/dist/mcp/daemon-server.d.ts.map +1 -1
  125. package/dist/mcp/daemon-server.js +6 -1
  126. package/dist/mcp/daemon-server.js.map +1 -1
  127. package/dist/mcp/daemon-session-host.d.ts +1 -0
  128. package/dist/mcp/daemon-session-host.d.ts.map +1 -1
  129. package/dist/mcp/daemon-session-host.js +3 -0
  130. package/dist/mcp/daemon-session-host.js.map +1 -1
  131. package/dist/mcp/daemon-stdio-bridge.d.ts +1 -0
  132. package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -1
  133. package/dist/mcp/daemon-stdio-bridge.js +1 -0
  134. package/dist/mcp/daemon-stdio-bridge.js.map +1 -1
  135. package/dist/mcp/monitor-tick-job.d.ts +1 -0
  136. package/dist/mcp/monitor-tick-job.d.ts.map +1 -1
  137. package/dist/mcp/monitor-tick-job.js +84 -29
  138. package/dist/mcp/monitor-tick-job.js.map +1 -1
  139. package/dist/mcp/monitor-types.d.ts +1 -1
  140. package/dist/mcp/monitor-types.d.ts.map +1 -1
  141. package/dist/mcp/persisted-local-history-graph.d.ts +2 -2
  142. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  143. package/dist/mcp/persisted-local-history-graph.js +3 -2
  144. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  145. package/dist/mcp/persisted-local-history.d.ts +5 -5
  146. package/dist/mcp/persisted-local-history.js +2 -2
  147. package/dist/mcp/persisted-local-history.js.map +1 -1
  148. package/dist/mcp/persistent-monitor-runtime.d.ts +1 -0
  149. package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -1
  150. package/dist/mcp/persistent-monitor-runtime.js +35 -0
  151. package/dist/mcp/persistent-monitor-runtime.js.map +1 -1
  152. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
  153. package/dist/mcp/repo-tool-worker-context.js +5 -2
  154. package/dist/mcp/repo-tool-worker-context.js.map +1 -1
  155. package/dist/mcp/server-context.d.ts.map +1 -1
  156. package/dist/mcp/server-context.js +13 -0
  157. package/dist/mcp/server-context.js.map +1 -1
  158. package/dist/mcp/server-tool-access.d.ts +1 -1
  159. package/dist/mcp/server-tool-access.d.ts.map +1 -1
  160. package/dist/mcp/server-tool-access.js +3 -1
  161. package/dist/mcp/server-tool-access.js.map +1 -1
  162. package/dist/mcp/server.d.ts +3 -0
  163. package/dist/mcp/server.d.ts.map +1 -1
  164. package/dist/mcp/server.js +5 -3
  165. package/dist/mcp/server.js.map +1 -1
  166. package/dist/mcp/tool-registry.d.ts.map +1 -1
  167. package/dist/mcp/tool-registry.js +18 -0
  168. package/dist/mcp/tool-registry.js.map +1 -1
  169. package/dist/mcp/tools/code-find.d.ts.map +1 -1
  170. package/dist/mcp/tools/code-find.js +20 -0
  171. package/dist/mcp/tools/code-find.js.map +1 -1
  172. package/dist/mcp/tools/code-show.d.ts.map +1 -1
  173. package/dist/mcp/tools/code-show.js +24 -0
  174. package/dist/mcp/tools/code-show.js.map +1 -1
  175. package/dist/mcp/tools/diagnostic-models.d.ts +2 -0
  176. package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -1
  177. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  178. package/dist/mcp/tools/doctor.js +18 -1
  179. package/dist/mcp/tools/doctor.js.map +1 -1
  180. package/dist/mcp/tools/export-surface-diff.d.ts +3 -0
  181. package/dist/mcp/tools/export-surface-diff.d.ts.map +1 -0
  182. package/dist/mcp/tools/export-surface-diff.js +24 -0
  183. package/dist/mcp/tools/export-surface-diff.js.map +1 -0
  184. package/dist/mcp/tools/file-outline.js +1 -1
  185. package/dist/mcp/tools/file-outline.js.map +1 -1
  186. package/dist/mcp/tools/graft-edit.d.ts +3 -0
  187. package/dist/mcp/tools/graft-edit.d.ts.map +1 -0
  188. package/dist/mcp/tools/graft-edit.js +192 -0
  189. package/dist/mcp/tools/graft-edit.js.map +1 -0
  190. package/dist/mcp/tools/knowledge-map.d.ts +3 -0
  191. package/dist/mcp/tools/knowledge-map.d.ts.map +1 -0
  192. package/dist/mcp/tools/knowledge-map.js +31 -0
  193. package/dist/mcp/tools/knowledge-map.js.map +1 -0
  194. package/dist/mcp/tools/monitor-nudge.d.ts +3 -0
  195. package/dist/mcp/tools/monitor-nudge.d.ts.map +1 -0
  196. package/dist/mcp/tools/monitor-nudge.js +17 -0
  197. package/dist/mcp/tools/monitor-nudge.js.map +1 -0
  198. package/dist/mcp/tools/precision-warp.d.ts +3 -3
  199. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  200. package/dist/mcp/tools/precision-warp.js +24 -15
  201. package/dist/mcp/tools/precision-warp.js.map +1 -1
  202. package/dist/mcp/tools/refactor-difficulty.d.ts +3 -0
  203. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -0
  204. package/dist/mcp/tools/refactor-difficulty.js +36 -0
  205. package/dist/mcp/tools/refactor-difficulty.js.map +1 -0
  206. package/dist/mcp/tools/safe-read.js +2 -2
  207. package/dist/mcp/tools/safe-read.js.map +1 -1
  208. package/dist/mcp/tools/structural-blame.d.ts +3 -0
  209. package/dist/mcp/tools/structural-blame.d.ts.map +1 -0
  210. package/dist/mcp/tools/structural-blame.js +44 -0
  211. package/dist/mcp/tools/structural-blame.js.map +1 -0
  212. package/dist/mcp/tools/structural-churn.d.ts +3 -0
  213. package/dist/mcp/tools/structural-churn.d.ts.map +1 -0
  214. package/dist/mcp/tools/structural-churn.js +28 -0
  215. package/dist/mcp/tools/structural-churn.js.map +1 -0
  216. package/dist/mcp/tools/structural-log.d.ts +3 -0
  217. package/dist/mcp/tools/structural-log.d.ts.map +1 -0
  218. package/dist/mcp/tools/structural-log.js +38 -0
  219. package/dist/mcp/tools/structural-log.js.map +1 -0
  220. package/dist/mcp/tools/structural-review.d.ts +3 -0
  221. package/dist/mcp/tools/structural-review.d.ts.map +1 -0
  222. package/dist/mcp/tools/structural-review.js +55 -0
  223. package/dist/mcp/tools/structural-review.js.map +1 -0
  224. package/dist/mcp/warp-pool.d.ts +4 -4
  225. package/dist/mcp/warp-pool.d.ts.map +1 -1
  226. package/dist/mcp/warp-pool.js.map +1 -1
  227. package/dist/mcp/workspace-router-model.d.ts +2 -2
  228. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  229. package/dist/mcp/workspace-router-runtime.d.ts +3 -3
  230. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -1
  231. package/dist/mcp/workspace-router-runtime.js +4 -1
  232. package/dist/mcp/workspace-router-runtime.js.map +1 -1
  233. package/dist/mcp/workspace-router.d.ts +3 -2
  234. package/dist/mcp/workspace-router.d.ts.map +1 -1
  235. package/dist/mcp/workspace-router.js +6 -0
  236. package/dist/mcp/workspace-router.js.map +1 -1
  237. package/dist/operations/adaptive-projection.d.ts +22 -0
  238. package/dist/operations/adaptive-projection.d.ts.map +1 -0
  239. package/dist/operations/adaptive-projection.js +36 -0
  240. package/dist/operations/adaptive-projection.js.map +1 -0
  241. package/dist/operations/agent-handoff.d.ts +25 -0
  242. package/dist/operations/agent-handoff.d.ts.map +1 -0
  243. package/dist/operations/agent-handoff.js +36 -0
  244. package/dist/operations/agent-handoff.js.map +1 -0
  245. package/dist/operations/capture-range.d.ts +33 -0
  246. package/dist/operations/capture-range.d.ts.map +1 -0
  247. package/dist/operations/capture-range.js +45 -0
  248. package/dist/operations/capture-range.js.map +1 -0
  249. package/dist/operations/conversation-primer.d.ts +27 -0
  250. package/dist/operations/conversation-primer.d.ts.map +1 -0
  251. package/dist/operations/conversation-primer.js +52 -0
  252. package/dist/operations/conversation-primer.js.map +1 -0
  253. package/dist/operations/cross-session-resume.d.ts +28 -0
  254. package/dist/operations/cross-session-resume.d.ts.map +1 -0
  255. package/dist/operations/cross-session-resume.js +79 -0
  256. package/dist/operations/cross-session-resume.js.map +1 -0
  257. package/dist/operations/deterministic-replay.d.ts +39 -0
  258. package/dist/operations/deterministic-replay.d.ts.map +1 -0
  259. package/dist/operations/deterministic-replay.js +90 -0
  260. package/dist/operations/deterministic-replay.js.map +1 -0
  261. package/dist/operations/export-surface-diff.d.ts +36 -0
  262. package/dist/operations/export-surface-diff.d.ts.map +1 -0
  263. package/dist/operations/export-surface-diff.js +298 -0
  264. package/dist/operations/export-surface-diff.js.map +1 -0
  265. package/dist/operations/footprint-parallelism.d.ts +25 -0
  266. package/dist/operations/footprint-parallelism.d.ts.map +1 -0
  267. package/dist/operations/footprint-parallelism.js +79 -0
  268. package/dist/operations/footprint-parallelism.js.map +1 -0
  269. package/dist/operations/graft-diff.d.ts.map +1 -1
  270. package/dist/operations/graft-diff.js +14 -7
  271. package/dist/operations/graft-diff.js.map +1 -1
  272. package/dist/operations/horizon-of-readability.d.ts +23 -0
  273. package/dist/operations/horizon-of-readability.d.ts.map +1 -0
  274. package/dist/operations/horizon-of-readability.js +39 -0
  275. package/dist/operations/horizon-of-readability.js.map +1 -0
  276. package/dist/operations/import-reference-impact.d.ts +13 -0
  277. package/dist/operations/import-reference-impact.d.ts.map +1 -0
  278. package/dist/operations/import-reference-impact.js +101 -0
  279. package/dist/operations/import-reference-impact.js.map +1 -0
  280. package/dist/operations/knowledge-map.d.ts +30 -0
  281. package/dist/operations/knowledge-map.d.ts.map +1 -0
  282. package/dist/operations/knowledge-map.js +64 -0
  283. package/dist/operations/knowledge-map.js.map +1 -0
  284. package/dist/operations/observation-cache.d.ts +8 -2
  285. package/dist/operations/observation-cache.d.ts.map +1 -1
  286. package/dist/operations/observation-cache.js +17 -5
  287. package/dist/operations/observation-cache.js.map +1 -1
  288. package/dist/operations/projection-safety.d.ts +31 -0
  289. package/dist/operations/projection-safety.d.ts.map +1 -0
  290. package/dist/operations/projection-safety.js +77 -0
  291. package/dist/operations/projection-safety.js.map +1 -0
  292. package/dist/operations/repo-workspace.js +3 -3
  293. package/dist/operations/repo-workspace.js.map +1 -1
  294. package/dist/operations/semantic-drift.d.ts +27 -0
  295. package/dist/operations/semantic-drift.d.ts.map +1 -0
  296. package/dist/operations/semantic-drift.js +46 -0
  297. package/dist/operations/semantic-drift.js.map +1 -0
  298. package/dist/operations/session-filtration.d.ts +36 -0
  299. package/dist/operations/session-filtration.d.ts.map +1 -0
  300. package/dist/operations/session-filtration.js +48 -0
  301. package/dist/operations/session-filtration.js.map +1 -0
  302. package/dist/operations/session-replay.d.ts +17 -0
  303. package/dist/operations/session-replay.d.ts.map +1 -0
  304. package/dist/operations/session-replay.js +59 -0
  305. package/dist/operations/session-replay.js.map +1 -0
  306. package/dist/operations/sludge-detector.d.ts +45 -0
  307. package/dist/operations/sludge-detector.d.ts.map +1 -0
  308. package/dist/operations/sludge-detector.js +278 -0
  309. package/dist/operations/sludge-detector.js.map +1 -0
  310. package/dist/operations/structural-blame.d.ts +67 -0
  311. package/dist/operations/structural-blame.d.ts.map +1 -0
  312. package/dist/operations/structural-blame.js +111 -0
  313. package/dist/operations/structural-blame.js.map +1 -0
  314. package/dist/operations/structural-review.d.ts +47 -0
  315. package/dist/operations/structural-review.d.ts.map +1 -0
  316. package/dist/operations/structural-review.js +225 -0
  317. package/dist/operations/structural-review.js.map +1 -0
  318. package/dist/operations/teaching-hints.d.ts +18 -0
  319. package/dist/operations/teaching-hints.d.ts.map +1 -0
  320. package/dist/operations/teaching-hints.js +35 -0
  321. package/dist/operations/teaching-hints.js.map +1 -0
  322. package/dist/parser/diff.d.ts +2 -0
  323. package/dist/parser/diff.d.ts.map +1 -1
  324. package/dist/parser/diff.js +7 -0
  325. package/dist/parser/diff.js.map +1 -1
  326. package/dist/ports/paths.d.ts +17 -0
  327. package/dist/ports/paths.d.ts.map +1 -0
  328. package/dist/ports/{warp.js → paths.js} +2 -2
  329. package/dist/ports/paths.js.map +1 -0
  330. package/dist/warp/ast-emitter.d.ts +28 -0
  331. package/dist/warp/ast-emitter.d.ts.map +1 -0
  332. package/dist/warp/ast-emitter.js +90 -0
  333. package/dist/warp/ast-emitter.js.map +1 -0
  334. package/dist/warp/ast-import-resolver.d.ts +13 -0
  335. package/dist/warp/ast-import-resolver.d.ts.map +1 -0
  336. package/dist/warp/ast-import-resolver.js +259 -0
  337. package/dist/warp/ast-import-resolver.js.map +1 -0
  338. package/dist/warp/commit-meta.d.ts +8 -0
  339. package/dist/warp/commit-meta.d.ts.map +1 -0
  340. package/dist/warp/commit-meta.js +13 -0
  341. package/dist/warp/commit-meta.js.map +1 -0
  342. package/dist/warp/context.d.ts +10 -0
  343. package/dist/warp/context.d.ts.map +1 -0
  344. package/dist/warp/context.js +26 -0
  345. package/dist/warp/context.js.map +1 -0
  346. package/dist/warp/dead-symbols.d.ts +40 -0
  347. package/dist/warp/dead-symbols.d.ts.map +1 -0
  348. package/dist/warp/dead-symbols.js +127 -0
  349. package/dist/warp/dead-symbols.js.map +1 -0
  350. package/dist/warp/drift-sentinel.d.ts +30 -0
  351. package/dist/warp/drift-sentinel.d.ts.map +1 -0
  352. package/dist/warp/drift-sentinel.js +65 -0
  353. package/dist/warp/drift-sentinel.js.map +1 -0
  354. package/dist/warp/index-head.d.ts +32 -0
  355. package/dist/warp/index-head.d.ts.map +1 -0
  356. package/dist/warp/index-head.js +245 -0
  357. package/dist/warp/index-head.js.map +1 -0
  358. package/dist/warp/observers.d.ts +6 -6
  359. package/dist/warp/observers.d.ts.map +1 -1
  360. package/dist/warp/observers.js +5 -4
  361. package/dist/warp/observers.js.map +1 -1
  362. package/dist/warp/open.d.ts +5 -4
  363. package/dist/warp/open.d.ts.map +1 -1
  364. package/dist/warp/open.js +24 -49
  365. package/dist/warp/open.js.map +1 -1
  366. package/dist/warp/outline-diff-trailer.d.ts +26 -0
  367. package/dist/warp/outline-diff-trailer.d.ts.map +1 -0
  368. package/dist/warp/outline-diff-trailer.js +68 -0
  369. package/dist/warp/outline-diff-trailer.js.map +1 -0
  370. package/dist/warp/refactor-difficulty.d.ts +38 -0
  371. package/dist/warp/refactor-difficulty.d.ts.map +1 -0
  372. package/dist/warp/refactor-difficulty.js +169 -0
  373. package/dist/warp/refactor-difficulty.js.map +1 -0
  374. package/dist/warp/references.d.ts +22 -0
  375. package/dist/warp/references.d.ts.map +1 -0
  376. package/dist/warp/references.js +57 -0
  377. package/dist/warp/references.js.map +1 -0
  378. package/dist/warp/stale-docs.d.ts +56 -0
  379. package/dist/warp/stale-docs.d.ts.map +1 -0
  380. package/dist/warp/stale-docs.js +149 -0
  381. package/dist/warp/stale-docs.js.map +1 -0
  382. package/dist/warp/structural-drift-detection.d.ts +49 -0
  383. package/dist/warp/structural-drift-detection.d.ts.map +1 -0
  384. package/dist/warp/structural-drift-detection.js +51 -0
  385. package/dist/warp/structural-drift-detection.js.map +1 -0
  386. package/dist/warp/structural-queries.d.ts +49 -0
  387. package/dist/warp/structural-queries.d.ts.map +1 -0
  388. package/dist/warp/structural-queries.js +175 -0
  389. package/dist/warp/structural-queries.js.map +1 -0
  390. package/dist/warp/symbol-timeline.d.ts +34 -0
  391. package/dist/warp/symbol-timeline.d.ts.map +1 -0
  392. package/dist/warp/symbol-timeline.js +127 -0
  393. package/dist/warp/symbol-timeline.js.map +1 -0
  394. package/dist/warp/traverse-hydrate.d.ts +23 -0
  395. package/dist/warp/traverse-hydrate.d.ts.map +1 -0
  396. package/dist/warp/traverse-hydrate.js +39 -0
  397. package/dist/warp/traverse-hydrate.js.map +1 -0
  398. package/dist/warp/warp-reference-count.d.ts +19 -0
  399. package/dist/warp/warp-reference-count.d.ts.map +1 -0
  400. package/dist/warp/warp-reference-count.js +32 -0
  401. package/dist/warp/warp-reference-count.js.map +1 -0
  402. package/dist/warp/warp-structural-blame.d.ts +20 -0
  403. package/dist/warp/warp-structural-blame.d.ts.map +1 -0
  404. package/dist/warp/warp-structural-blame.js +43 -0
  405. package/dist/warp/warp-structural-blame.js.map +1 -0
  406. package/dist/warp/warp-structural-churn.d.ts +30 -0
  407. package/dist/warp/warp-structural-churn.d.ts.map +1 -0
  408. package/dist/warp/warp-structural-churn.js +213 -0
  409. package/dist/warp/warp-structural-churn.js.map +1 -0
  410. package/dist/warp/warp-structural-log.d.ts +35 -0
  411. package/dist/warp/warp-structural-log.d.ts.map +1 -0
  412. package/dist/warp/warp-structural-log.js +104 -0
  413. package/dist/warp/warp-structural-log.js.map +1 -0
  414. package/docs/CLI.md +68 -4
  415. package/docs/MCP.md +23 -0
  416. package/docs/SETUP.md +101 -20
  417. package/package.json +5 -3
  418. package/src/adapters/json-text-decoder.ts +11 -0
  419. package/src/adapters/node-paths.ts +35 -0
  420. package/src/adapters/repo-paths.ts +45 -4
  421. package/src/api/tool-bridge.ts +2 -1
  422. package/src/cli/cli-error.ts +49 -10
  423. package/src/cli/command-parser.ts +185 -3
  424. package/src/cli/daemon-status-model.ts +238 -0
  425. package/src/cli/daemon-status-render.ts +102 -0
  426. package/src/cli/daemon-status.ts +100 -0
  427. package/src/cli/git-graft-enhance-model.ts +131 -0
  428. package/src/cli/git-graft-enhance-render.ts +33 -0
  429. package/src/cli/git-graft-enhance.ts +54 -0
  430. package/src/cli/index-cmd.ts +18 -22
  431. package/src/cli/index-model.ts +21 -22
  432. package/src/cli/init-client-config.ts +167 -38
  433. package/src/cli/init-model.ts +57 -2
  434. package/src/cli/init-render.ts +2 -2
  435. package/src/cli/init.ts +11 -9
  436. package/src/cli/json-document.ts +11 -0
  437. package/src/cli/main.ts +53 -6
  438. package/src/cli/migrate-local-history.ts +3 -2
  439. package/src/cli/peer-command.ts +2 -1
  440. package/src/contracts/capabilities.ts +90 -0
  441. package/src/contracts/json-object.ts +1 -11
  442. package/src/contracts/output-schema-cli.ts +36 -3
  443. package/src/contracts/output-schema-fragments.ts +52 -2
  444. package/src/contracts/output-schema-mcp.ts +219 -0
  445. package/src/contracts/output-schemas.ts +300 -6
  446. package/src/git/diff.ts +61 -0
  447. package/src/mcp/burden.ts +9 -0
  448. package/src/mcp/context.ts +5 -42
  449. package/src/mcp/daemon-server.ts +8 -1
  450. package/src/mcp/daemon-session-host.ts +4 -0
  451. package/src/mcp/daemon-stdio-bridge.ts +2 -0
  452. package/src/mcp/monitor-tick-job.ts +90 -39
  453. package/src/mcp/monitor-types.ts +1 -1
  454. package/src/mcp/persisted-local-history-graph.ts +5 -4
  455. package/src/mcp/persisted-local-history.ts +2 -2
  456. package/src/mcp/persistent-monitor-runtime.ts +37 -0
  457. package/src/mcp/repo-tool-worker-context.ts +5 -2
  458. package/src/mcp/server-context.ts +15 -2
  459. package/src/mcp/server-tool-access.ts +4 -1
  460. package/src/mcp/server.ts +8 -3
  461. package/src/mcp/tool-registry.ts +18 -0
  462. package/src/mcp/tools/code-find.ts +23 -0
  463. package/src/mcp/tools/code-show.ts +27 -0
  464. package/src/mcp/tools/diagnostic-models.ts +2 -0
  465. package/src/mcp/tools/doctor.ts +18 -1
  466. package/src/mcp/tools/export-surface-diff.ts +26 -0
  467. package/src/mcp/tools/file-outline.ts +1 -1
  468. package/src/mcp/tools/graft-edit.ts +276 -0
  469. package/src/mcp/tools/knowledge-map.ts +34 -0
  470. package/src/mcp/tools/monitor-nudge.ts +19 -0
  471. package/src/mcp/tools/precision-warp.ts +27 -16
  472. package/src/mcp/tools/refactor-difficulty.ts +42 -0
  473. package/src/mcp/tools/safe-read.ts +2 -2
  474. package/src/mcp/tools/structural-blame.ts +55 -0
  475. package/src/mcp/tools/structural-churn.ts +28 -0
  476. package/src/mcp/tools/structural-log.ts +41 -0
  477. package/src/mcp/tools/structural-review.ts +63 -0
  478. package/src/mcp/warp-pool.ts +6 -6
  479. package/src/mcp/workspace-router-model.ts +2 -2
  480. package/src/mcp/workspace-router-runtime.ts +11 -8
  481. package/src/mcp/workspace-router.ts +9 -2
  482. package/src/operations/adaptive-projection.ts +54 -0
  483. package/src/operations/agent-handoff.ts +59 -0
  484. package/src/operations/capture-range.ts +64 -0
  485. package/src/operations/conversation-primer.ts +82 -0
  486. package/src/operations/cross-session-resume.ts +104 -0
  487. package/src/operations/deterministic-replay.ts +143 -0
  488. package/src/operations/export-surface-diff.ts +355 -0
  489. package/src/operations/footprint-parallelism.ts +98 -0
  490. package/src/operations/graft-diff.ts +14 -7
  491. package/src/operations/horizon-of-readability.ts +60 -0
  492. package/src/operations/import-reference-impact.ts +143 -0
  493. package/src/operations/knowledge-map.ts +96 -0
  494. package/src/operations/observation-cache.ts +20 -4
  495. package/src/operations/projection-safety.ts +111 -0
  496. package/src/operations/repo-workspace.ts +3 -3
  497. package/src/operations/semantic-drift.ts +70 -0
  498. package/src/operations/session-filtration.ts +76 -0
  499. package/src/operations/session-replay.ts +73 -0
  500. package/src/operations/sludge-detector.ts +356 -0
  501. package/src/operations/structural-blame.ts +197 -0
  502. package/src/operations/structural-review.ts +317 -0
  503. package/src/operations/teaching-hints.ts +52 -0
  504. package/src/parser/diff.ts +7 -0
  505. package/src/ports/paths.ts +22 -0
  506. package/src/warp/ast-emitter.ts +133 -0
  507. package/src/warp/ast-import-resolver.ts +333 -0
  508. package/src/warp/commit-meta.ts +19 -0
  509. package/src/warp/context.ts +48 -0
  510. package/src/warp/dead-symbols.ts +174 -0
  511. package/src/warp/drift-sentinel.ts +101 -0
  512. package/src/warp/index-head.ts +348 -0
  513. package/src/warp/observers.ts +8 -7
  514. package/src/warp/open.ts +40 -66
  515. package/src/warp/outline-diff-trailer.ts +100 -0
  516. package/src/warp/plumbing.d.ts +11 -2
  517. package/src/warp/refactor-difficulty.ts +257 -0
  518. package/src/warp/references.ts +77 -0
  519. package/src/warp/stale-docs.ts +210 -0
  520. package/src/warp/structural-drift-detection.ts +97 -0
  521. package/src/warp/structural-queries.ts +258 -0
  522. package/src/warp/symbol-timeline.ts +209 -0
  523. package/src/warp/traverse-hydrate.ts +61 -0
  524. package/src/warp/warp-reference-count.ts +47 -0
  525. package/src/warp/warp-structural-blame.ts +65 -0
  526. package/src/warp/warp-structural-churn.ts +309 -0
  527. package/src/warp/warp-structural-log.ts +149 -0
  528. package/dist/ports/warp.d.ts +0 -45
  529. package/dist/ports/warp.d.ts.map +0 -1
  530. package/dist/ports/warp.js.map +0 -1
  531. package/dist/warp/identity-resolver.d.ts +0 -14
  532. package/dist/warp/identity-resolver.d.ts.map +0 -1
  533. package/dist/warp/identity-resolver.js +0 -31
  534. package/dist/warp/identity-resolver.js.map +0 -1
  535. package/dist/warp/indexer-git.d.ts +0 -22
  536. package/dist/warp/indexer-git.d.ts.map +0 -1
  537. package/dist/warp/indexer-git.js +0 -148
  538. package/dist/warp/indexer-git.js.map +0 -1
  539. package/dist/warp/indexer-graph.d.ts +0 -17
  540. package/dist/warp/indexer-graph.d.ts.map +0 -1
  541. package/dist/warp/indexer-graph.js +0 -179
  542. package/dist/warp/indexer-graph.js.map +0 -1
  543. package/dist/warp/indexer-model.d.ts +0 -51
  544. package/dist/warp/indexer-model.d.ts.map +0 -1
  545. package/dist/warp/indexer-model.js +0 -21
  546. package/dist/warp/indexer-model.js.map +0 -1
  547. package/dist/warp/indexer.d.ts +0 -9
  548. package/dist/warp/indexer.d.ts.map +0 -1
  549. package/dist/warp/indexer.js +0 -112
  550. package/dist/warp/indexer.js.map +0 -1
  551. package/dist/warp/symbol-identity.d.ts +0 -11
  552. package/dist/warp/symbol-identity.d.ts.map +0 -1
  553. package/dist/warp/symbol-identity.js +0 -67
  554. package/dist/warp/symbol-identity.js.map +0 -1
  555. package/src/ports/warp.ts +0 -55
  556. package/src/warp/identity-resolver.ts +0 -35
  557. package/src/warp/indexer-git.ts +0 -182
  558. package/src/warp/indexer-graph.ts +0 -276
  559. package/src/warp/indexer-model.ts +0 -69
  560. package/src/warp/indexer.ts +0 -186
  561. package/src/warp/symbol-identity.ts +0 -100
@@ -1,19 +1,21 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { GRAFT_HOOKS_CONFIG, GRAFT_MCP_SERVER, InitAction, } from "./init-model.js";
3
+ import { GRAFT_HOOKS_CONFIG, GRAFT_MCP_SERVER, GraftMcpServer, InitAction, isGraftMcpServerEntryForRuntime, } from "./init-model.js";
4
4
  import { JsonArrayNode, JsonObjectDocument, } from "./json-document.js";
5
5
  class JsonMcpConfigDocument {
6
6
  document;
7
7
  server;
8
- constructor(document, server) {
8
+ updateExisting;
9
+ constructor(document, server, updateExisting) {
9
10
  this.document = document;
10
11
  this.server = server;
12
+ this.updateExisting = updateExisting;
11
13
  }
12
- static create(filePath, label, server) {
13
- return new JsonMcpConfigDocument(JsonObjectDocument.create(filePath, label, server.toJsonMcpConfig()), server);
14
+ static create(filePath, label, server, updateExisting) {
15
+ return new JsonMcpConfigDocument(JsonObjectDocument.create(filePath, label, server.toJsonMcpConfig()), server, updateExisting);
14
16
  }
15
- static open(filePath, label, server) {
16
- return new JsonMcpConfigDocument(JsonObjectDocument.open(filePath, label), server);
17
+ static open(filePath, label, server, updateExisting) {
18
+ return new JsonMcpConfigDocument(JsonObjectDocument.open(filePath, label), server, updateExisting);
17
19
  }
18
20
  write() {
19
21
  this.document.write();
@@ -21,6 +23,15 @@ class JsonMcpConfigDocument {
21
23
  ensureGraftServer() {
22
24
  const root = this.document.root();
23
25
  const servers = root.ensureObject("mcpServers");
26
+ const existing = servers.toJsonValue()[this.server.name];
27
+ if (existing !== undefined) {
28
+ if (isGraftMcpServerEntryForRuntime(existing, this.server.runtime) || !this.updateExisting) {
29
+ return InitAction.exists(this.document.label, "already has graft mcp server");
30
+ }
31
+ servers.set(this.server.name, this.server.toJsonServerEntry());
32
+ this.document.write();
33
+ return InitAction.append(this.document.label, `updated graft mcp server runtime to ${this.server.runtime}`);
34
+ }
24
35
  if (servers.has(this.server.name)) {
25
36
  return InitAction.exists(this.document.label, "already has graft mcp server");
26
37
  }
@@ -32,15 +43,17 @@ class JsonMcpConfigDocument {
32
43
  class ContinueMcpConfigDocument {
33
44
  document;
34
45
  server;
35
- constructor(document, server) {
46
+ updateExisting;
47
+ constructor(document, server, updateExisting) {
36
48
  this.document = document;
37
49
  this.server = server;
50
+ this.updateExisting = updateExisting;
38
51
  }
39
- static create(filePath, label, server) {
40
- return new ContinueMcpConfigDocument(JsonObjectDocument.create(filePath, label, server.toContinueConfig()), server);
52
+ static create(filePath, label, server, updateExisting) {
53
+ return new ContinueMcpConfigDocument(JsonObjectDocument.create(filePath, label, server.toContinueConfig()), server, updateExisting);
41
54
  }
42
- static open(filePath, label, server) {
43
- return new ContinueMcpConfigDocument(JsonObjectDocument.open(filePath, label), server);
55
+ static open(filePath, label, server, updateExisting) {
56
+ return new ContinueMcpConfigDocument(JsonObjectDocument.open(filePath, label), server, updateExisting);
44
57
  }
45
58
  write() {
46
59
  this.document.write();
@@ -48,11 +61,16 @@ class ContinueMcpConfigDocument {
48
61
  ensureGraftServer() {
49
62
  const root = this.document.root();
50
63
  const servers = root.ensureArray("mcpServers");
51
- const exists = servers
52
- .objectItems()
53
- .some((entry) => entry.stringValue("name") === this.server.name);
54
- if (exists) {
55
- return InitAction.exists(this.document.label, "already has graft mcp server");
64
+ const existingEntries = servers.objectEntries();
65
+ const existing = existingEntries
66
+ .find((entry) => entry.node.stringValue("name") === this.server.name);
67
+ if (existing !== undefined) {
68
+ if (isContinueServerEntryForRuntime(existing.node.toJsonValue(), this.server.runtime) || !this.updateExisting) {
69
+ return InitAction.exists(this.document.label, "already has graft mcp server");
70
+ }
71
+ servers.set(existing.index, this.server.toContinueServerEntry());
72
+ this.document.write();
73
+ return InitAction.append(this.document.label, `updated graft mcp server runtime to ${this.server.runtime}`);
56
74
  }
57
75
  servers.push(this.server.toContinueServerEntry());
58
76
  this.document.write();
@@ -111,12 +129,14 @@ class ClaudeHooksDocument {
111
129
  }
112
130
  }
113
131
  export function ensureCodexStartupTimeout(existing) {
132
+ const ensured = ensureCodexMcpServerBlock(existing, GRAFT_MCP_SERVER, false);
133
+ return { content: ensured.content, changed: ensured.changed };
134
+ }
135
+ function codexBlockBounds(lines) {
114
136
  const marker = "[mcp_servers.graft]";
115
- const timeoutLine = `startup_timeout_sec = ${String(GRAFT_MCP_SERVER.codexStartupTimeoutSec)}`;
116
- const lines = existing.split("\n");
117
137
  const blockStart = lines.findIndex((line) => line.trim() === marker);
118
138
  if (blockStart === -1) {
119
- return { content: existing, changed: false };
139
+ return undefined;
120
140
  }
121
141
  let blockEnd = lines.length;
122
142
  for (let index = blockStart + 1; index < lines.length; index++) {
@@ -126,47 +146,89 @@ export function ensureCodexStartupTimeout(existing) {
126
146
  break;
127
147
  }
128
148
  }
149
+ return { start: blockStart, end: blockEnd };
150
+ }
151
+ function replaceOrInsertLine(lines, bounds, predicate, value) {
152
+ const index = lines
153
+ .slice(bounds.start + 1, bounds.end)
154
+ .findIndex(predicate);
155
+ if (index === -1) {
156
+ lines.splice(bounds.end, 0, value);
157
+ return { end: bounds.end + 1, changed: true };
158
+ }
159
+ const absoluteIndex = bounds.start + 1 + index;
160
+ if (lines[absoluteIndex] === value) {
161
+ return { end: bounds.end, changed: false };
162
+ }
163
+ lines[absoluteIndex] = value;
164
+ return { end: bounds.end, changed: true };
165
+ }
166
+ export function ensureCodexMcpServerBlock(existing, server, updateExisting) {
167
+ const lines = existing.split("\n");
168
+ const bounds = codexBlockBounds(lines);
169
+ if (bounds === undefined) {
170
+ return { content: existing, changed: false };
171
+ }
172
+ let changed = false;
173
+ let runtimeChanged = false;
174
+ let blockEnd = bounds.end;
175
+ if (updateExisting) {
176
+ const command = replaceOrInsertLine(lines, { start: bounds.start, end: blockEnd }, (line) => line.trim().startsWith("command"), `command = "${server.command}"`);
177
+ runtimeChanged = command.changed;
178
+ changed = command.changed;
179
+ blockEnd = command.end;
180
+ const args = replaceOrInsertLine(lines, { start: bounds.start, end: blockEnd }, (line) => line.trim().startsWith("args"), server.toCodexTomlArgsLine());
181
+ runtimeChanged = runtimeChanged || args.changed;
182
+ changed = changed || args.changed;
183
+ blockEnd = args.end;
184
+ }
129
185
  const hasTimeout = lines
130
- .slice(blockStart + 1, blockEnd)
186
+ .slice(bounds.start + 1, blockEnd)
131
187
  .some((line) => line.trim().startsWith("startup_timeout_sec"));
132
- if (hasTimeout) {
133
- return { content: existing, changed: false };
188
+ if (!hasTimeout) {
189
+ lines.splice(blockEnd, 0, `startup_timeout_sec = ${String(server.codexStartupTimeoutSec)}`);
190
+ changed = true;
134
191
  }
135
- lines.splice(blockEnd, 0, timeoutLine);
136
192
  return {
137
193
  content: lines.join("\n"),
138
- changed: true,
194
+ changed,
195
+ ...(runtimeChanged ? { detail: `updated graft mcp server runtime to ${server.runtime}` } : {}),
139
196
  };
140
197
  }
141
- function ensureJsonMcpConfig(filePath, label) {
198
+ function isContinueServerEntryForRuntime(value, runtime) {
199
+ const { name, ...entry } = value;
200
+ void name;
201
+ return isGraftMcpServerEntryForRuntime(entry, runtime);
202
+ }
203
+ function ensureJsonMcpConfig(filePath, label, server, updateExisting) {
142
204
  if (!fs.existsSync(filePath)) {
143
- const created = JsonMcpConfigDocument.create(filePath, label, GRAFT_MCP_SERVER);
205
+ const created = JsonMcpConfigDocument.create(filePath, label, server, updateExisting);
144
206
  created.write();
145
207
  return InitAction.create(label, "wrote graft mcp server");
146
208
  }
147
209
  return JsonMcpConfigDocument
148
- .open(filePath, label, GRAFT_MCP_SERVER)
210
+ .open(filePath, label, server, updateExisting)
149
211
  .ensureGraftServer();
150
212
  }
151
- export function mergeClaudeMcpConfig(cwd) {
213
+ export function mergeClaudeMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
152
214
  const label = ".mcp.json";
153
215
  const filePath = path.join(cwd, label);
154
- return ensureJsonMcpConfig(filePath, label);
216
+ return ensureJsonMcpConfig(filePath, label, server, updateExisting);
155
217
  }
156
- export function mergeCursorMcpConfig(cwd) {
218
+ export function mergeCursorMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
157
219
  const label = ".cursor/mcp.json";
158
220
  const filePath = path.join(cwd, ".cursor", "mcp.json");
159
- return ensureJsonMcpConfig(filePath, label);
221
+ return ensureJsonMcpConfig(filePath, label, server, updateExisting);
160
222
  }
161
- export function mergeWindsurfMcpConfig(cwd) {
223
+ export function mergeWindsurfMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
162
224
  const label = ".codeium/windsurf/mcp_config.json";
163
225
  const filePath = path.join(cwd, ".codeium", "windsurf", "mcp_config.json");
164
- return ensureJsonMcpConfig(filePath, label);
226
+ return ensureJsonMcpConfig(filePath, label, server, updateExisting);
165
227
  }
166
- export function mergeClineMcpConfig(cwd) {
228
+ export function mergeClineMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
167
229
  const label = ".vscode/cline_mcp_settings.json";
168
230
  const filePath = path.join(cwd, ".vscode", "cline_mcp_settings.json");
169
- return ensureJsonMcpConfig(filePath, label);
231
+ return ensureJsonMcpConfig(filePath, label, server, updateExisting);
170
232
  }
171
233
  export function mergeClaudeHooksConfig(cwd) {
172
234
  const label = ".claude/settings.json";
@@ -178,38 +240,38 @@ export function mergeClaudeHooksConfig(cwd) {
178
240
  }
179
241
  return ClaudeHooksDocument.open(filePath, label, GRAFT_HOOKS_CONFIG).ensureGraftHooks();
180
242
  }
181
- export function mergeContinueMcpConfig(cwd) {
243
+ export function mergeContinueMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
182
244
  const label = ".continue/config.json";
183
245
  const filePath = path.join(cwd, ".continue", "config.json");
184
246
  if (!fs.existsSync(filePath)) {
185
- const created = ContinueMcpConfigDocument.create(filePath, label, GRAFT_MCP_SERVER);
247
+ const created = ContinueMcpConfigDocument.create(filePath, label, server, updateExisting);
186
248
  created.write();
187
249
  return InitAction.create(label, "wrote graft mcp server");
188
250
  }
189
251
  return ContinueMcpConfigDocument
190
- .open(filePath, label, GRAFT_MCP_SERVER)
252
+ .open(filePath, label, server, updateExisting)
191
253
  .ensureGraftServer();
192
254
  }
193
- export function mergeCodexMcpConfig(cwd) {
255
+ export function mergeCodexMcpConfig(cwd, server = GRAFT_MCP_SERVER, updateExisting = false) {
194
256
  const label = ".codex/config.toml";
195
257
  const filePath = path.join(cwd, ".codex", "config.toml");
196
258
  const marker = "[mcp_servers.graft]";
197
259
  if (!fs.existsSync(filePath)) {
198
260
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
199
- fs.writeFileSync(filePath, GRAFT_MCP_SERVER.toCodexTomlBlock());
261
+ fs.writeFileSync(filePath, server.toCodexTomlBlock());
200
262
  return InitAction.create(label, "wrote graft mcp server");
201
263
  }
202
264
  const existing = fs.readFileSync(filePath, "utf-8");
203
265
  if (existing.includes(marker)) {
204
- const ensured = ensureCodexStartupTimeout(existing);
266
+ const ensured = ensureCodexMcpServerBlock(existing, server, updateExisting);
205
267
  if (ensured.changed) {
206
268
  fs.writeFileSync(filePath, ensured.content);
207
- return InitAction.append(label, "added graft startup timeout");
269
+ return InitAction.append(label, ensured.detail ?? "added graft startup timeout");
208
270
  }
209
271
  return InitAction.exists(label, "already has graft mcp server");
210
272
  }
211
273
  const separator = existing.endsWith("\n") ? "\n" : "\n\n";
212
- fs.writeFileSync(filePath, `${existing}${separator}${GRAFT_MCP_SERVER.toCodexTomlBlock()}`);
274
+ fs.writeFileSync(filePath, `${existing}${separator}${server.toCodexTomlBlock()}`);
213
275
  return InitAction.append(label, "appended graft mcp server");
214
276
  }
215
277
  //# sourceMappingURL=init-client-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-client-config.js","sourceRoot":"","sources":["../../src/cli/init-client-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-client-config.js","sourceRoot":"","sources":["../../src/cli/init-client-config.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface JsonObjectValue {
5
5
  [key: string]: JsonValue | undefined;
6
6
  }
7
7
  type InitActionKind = "exists" | "create" | "append";
8
+ export type GraftMcpRuntime = "repo-local" | "daemon";
8
9
  export declare class InitAction {
9
10
  readonly action: InitActionKind;
10
11
  readonly label: string;
@@ -23,6 +24,8 @@ export declare class InitFailure {
23
24
  }
24
25
  export declare class ParsedInitArgs {
25
26
  readonly json: boolean;
27
+ readonly mcpRuntime: GraftMcpRuntime;
28
+ readonly mcpRuntimeExplicit: boolean;
26
29
  readonly writeClaudeMcp: boolean;
27
30
  readonly writeClaudeHooks: boolean;
28
31
  readonly writeTargetGitHooks: boolean;
@@ -31,20 +34,23 @@ export declare class ParsedInitArgs {
31
34
  readonly writeWindsurfMcp: boolean;
32
35
  readonly writeContinueMcp: boolean;
33
36
  readonly writeClineMcp: boolean;
34
- constructor(json: boolean, writeClaudeMcp: boolean, writeClaudeHooks: boolean, writeTargetGitHooks: boolean, writeCodexMcp: boolean, writeCursorMcp: boolean, writeWindsurfMcp: boolean, writeContinueMcp: boolean, writeClineMcp: boolean);
37
+ constructor(json: boolean, mcpRuntime: GraftMcpRuntime, mcpRuntimeExplicit: boolean, writeClaudeMcp: boolean, writeClaudeHooks: boolean, writeTargetGitHooks: boolean, writeCodexMcp: boolean, writeCursorMcp: boolean, writeWindsurfMcp: boolean, writeContinueMcp: boolean, writeClineMcp: boolean);
35
38
  static parse(rawArgs: readonly string[]): ParsedInitArgs;
36
39
  get writesAnyMcpConfig(): boolean;
37
40
  }
38
41
  export declare class GraftMcpServer {
42
+ readonly runtime: GraftMcpRuntime;
39
43
  readonly name = "graft";
40
44
  readonly command = "npx";
41
- readonly args: readonly ["-y", "@flyingrobots/graft", "serve"];
42
45
  readonly codexStartupTimeoutSec = 120;
46
+ constructor(runtime?: GraftMcpRuntime);
47
+ get args(): readonly string[];
43
48
  toJsonServerEntry(): JsonObjectValue;
44
49
  toJsonMcpConfig(): JsonObjectValue;
45
50
  toContinueServerEntry(): JsonObjectValue;
46
51
  toContinueConfig(): JsonObjectValue;
47
52
  toCodexTomlBlock(): string;
53
+ toCodexTomlArgsLine(): string;
48
54
  }
49
55
  export declare class GraftHookCommand {
50
56
  readonly command: string;
@@ -76,5 +82,6 @@ export declare class InitResult {
76
82
  }
77
83
  export declare function isJsonObjectValue(value: unknown): value is JsonObjectValue;
78
84
  export declare function cloneJsonValue<T>(value: T): T;
85
+ export declare function isGraftMcpServerEntryForRuntime(value: JsonValue | undefined, runtime: GraftMcpRuntime): boolean;
79
86
  export {};
80
87
  //# sourceMappingURL=init-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-model.d.ts","sourceRoot":"","sources":["../../src/cli/init-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-model.d.ts","sourceRoot":"","sources":["../../src/cli/init-model.ts"],"names":[],"mappings":"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"}
@@ -41,8 +41,30 @@ function consumeFlag(args, flag) {
41
41
  args.splice(index, 1);
42
42
  return true;
43
43
  }
44
+ function consumeOption(args, flag) {
45
+ const index = args.indexOf(flag);
46
+ if (index === -1) {
47
+ return undefined;
48
+ }
49
+ if (index === args.length - 1) {
50
+ throw new Error(`Missing value for ${flag}`);
51
+ }
52
+ const [value] = args.splice(index, 2).slice(1);
53
+ return value;
54
+ }
55
+ function parseMcpRuntime(raw) {
56
+ if (raw === undefined) {
57
+ return { runtime: "repo-local", explicit: false };
58
+ }
59
+ if (raw === "repo-local" || raw === "daemon") {
60
+ return { runtime: raw, explicit: true };
61
+ }
62
+ throw new Error(`--mcp-runtime must be repo-local or daemon, got ${raw}`);
63
+ }
44
64
  export class ParsedInitArgs {
45
65
  json;
66
+ mcpRuntime;
67
+ mcpRuntimeExplicit;
46
68
  writeClaudeMcp;
47
69
  writeClaudeHooks;
48
70
  writeTargetGitHooks;
@@ -51,8 +73,10 @@ export class ParsedInitArgs {
51
73
  writeWindsurfMcp;
52
74
  writeContinueMcp;
53
75
  writeClineMcp;
54
- constructor(json, writeClaudeMcp, writeClaudeHooks, writeTargetGitHooks, writeCodexMcp, writeCursorMcp, writeWindsurfMcp, writeContinueMcp, writeClineMcp) {
76
+ constructor(json, mcpRuntime, mcpRuntimeExplicit, writeClaudeMcp, writeClaudeHooks, writeTargetGitHooks, writeCodexMcp, writeCursorMcp, writeWindsurfMcp, writeContinueMcp, writeClineMcp) {
55
77
  this.json = json;
78
+ this.mcpRuntime = mcpRuntime;
79
+ this.mcpRuntimeExplicit = mcpRuntimeExplicit;
56
80
  this.writeClaudeMcp = writeClaudeMcp;
57
81
  this.writeClaudeHooks = writeClaudeHooks;
58
82
  this.writeTargetGitHooks = writeTargetGitHooks;
@@ -64,7 +88,8 @@ export class ParsedInitArgs {
64
88
  }
65
89
  static parse(rawArgs) {
66
90
  const args = [...rawArgs];
67
- const parsed = new ParsedInitArgs(consumeFlag(args, "--json"), consumeFlag(args, "--write-claude-mcp"), consumeFlag(args, "--write-claude-hooks"), consumeFlag(args, "--write-target-git-hooks"), consumeFlag(args, "--write-codex-mcp"), consumeFlag(args, "--write-cursor-mcp"), consumeFlag(args, "--write-windsurf-mcp"), consumeFlag(args, "--write-continue-mcp"), consumeFlag(args, "--write-cline-mcp"));
91
+ const runtime = parseMcpRuntime(consumeOption(args, "--mcp-runtime"));
92
+ const parsed = new ParsedInitArgs(consumeFlag(args, "--json"), runtime.runtime, runtime.explicit, consumeFlag(args, "--write-claude-mcp"), consumeFlag(args, "--write-claude-hooks"), consumeFlag(args, "--write-target-git-hooks"), consumeFlag(args, "--write-codex-mcp"), consumeFlag(args, "--write-cursor-mcp"), consumeFlag(args, "--write-windsurf-mcp"), consumeFlag(args, "--write-continue-mcp"), consumeFlag(args, "--write-cline-mcp"));
68
93
  if (args.length > 0) {
69
94
  throw new Error(`Unknown init arguments: ${args.join(" ")}`);
70
95
  }
@@ -80,10 +105,18 @@ export class ParsedInitArgs {
80
105
  }
81
106
  }
82
107
  export class GraftMcpServer {
108
+ runtime;
83
109
  name = "graft";
84
110
  command = "npx";
85
- args = ["-y", "@flyingrobots/graft", "serve"];
86
111
  codexStartupTimeoutSec = 120;
112
+ constructor(runtime = "repo-local") {
113
+ this.runtime = runtime;
114
+ }
115
+ get args() {
116
+ return this.runtime === "daemon"
117
+ ? ["-y", "@flyingrobots/graft", "serve", "--runtime", "daemon"]
118
+ : ["-y", "@flyingrobots/graft", "serve"];
119
+ }
87
120
  toJsonServerEntry() {
88
121
  return {
89
122
  command: this.command,
@@ -113,11 +146,14 @@ export class GraftMcpServer {
113
146
  return [
114
147
  "[mcp_servers.graft]",
115
148
  "command = \"npx\"",
116
- "args = [\"-y\", \"@flyingrobots/graft\", \"serve\"]",
149
+ this.toCodexTomlArgsLine(),
117
150
  `startup_timeout_sec = ${String(this.codexStartupTimeoutSec)}`,
118
151
  "",
119
152
  ].join("\n");
120
153
  }
154
+ toCodexTomlArgsLine() {
155
+ return `args = [${this.args.map((arg) => `"${arg}"`).join(", ")}]`;
156
+ }
121
157
  }
122
158
  export class GraftHookCommand {
123
159
  command;
@@ -199,4 +235,16 @@ export function isJsonObjectValue(value) {
199
235
  export function cloneJsonValue(value) {
200
236
  return JSON.parse(JSON.stringify(value));
201
237
  }
238
+ export function isGraftMcpServerEntryForRuntime(value, runtime) {
239
+ if (!isJsonObjectValue(value)) {
240
+ return false;
241
+ }
242
+ const command = value["command"];
243
+ const args = value["args"];
244
+ const expected = new GraftMcpServer(runtime);
245
+ return command === expected.command
246
+ && Array.isArray(args)
247
+ && args.length === expected.args.length
248
+ && args.every((arg, index) => arg === expected.args[index]);
249
+ }
202
250
  //# sourceMappingURL=init-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-model.js","sourceRoot":"","sources":["../../src/cli/init-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-model.js","sourceRoot":"","sources":["../../src/cli/init-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-render.d.ts","sourceRoot":"","sources":["../../src/cli/init-render.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAItI,UAAU,MAAM;IACd,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAWD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA2B7F;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKxF"}
1
+ {"version":3,"file":"init-render.d.ts","sourceRoot":"","sources":["../../src/cli/init-render.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIpH,UAAU,MAAM;IACd,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAWD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA2B7F;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKxF"}
@@ -1,6 +1,6 @@
1
1
  import { CanonicalJsonCodec } from "../adapters/canonical-json.js";
2
2
  import { attachCliSchemaMeta, validateCliOutput } from "../contracts/output-schemas.js";
3
- import { GRAFT_HOOKS_CONFIG, GRAFT_MCP_SERVER, InitFailure, InitResult, ParsedInitArgs } from "./init-model.js";
3
+ import { GRAFT_HOOKS_CONFIG, InitFailure, InitResult, ParsedInitArgs } from "./init-model.js";
4
4
  const codec = new CanonicalJsonCodec();
5
5
  function writeLine(writer, line = "") {
6
6
  writer.write(`${line}\n`);
@@ -27,7 +27,7 @@ export function renderInitText(result, args, writer) {
27
27
  if (!args.writesAnyMcpConfig) {
28
28
  writeLine(writer, "Done. Add graft to your MCP config:");
29
29
  writeLine(writer);
30
- writeLine(writer, indentJson(GRAFT_MCP_SERVER.toJsonMcpConfig()));
30
+ writeLine(writer, indentJson(result.suggestedMcpServer.toJsonMcpConfig()));
31
31
  writeLine(writer);
32
32
  writeLine(writer, "Use explicit --write-*-mcp flags or --write-claude-hooks");
33
33
  writeLine(writer, "or --write-target-git-hooks for one-step bootstrap into project-local config files.");
@@ -1 +1 @@
1
- {"version":3,"file":"init-render.js","sourceRoot":"","sources":["../../src/cli/init-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AAEtI,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAMvC,SAAS,SAAS,CAAC,MAAc,EAAE,IAAI,GAAG,EAAE;IAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,MAAM,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,IAAoB,EAAE,MAAc;IACrF,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,SAAS,CAAC,MAAM,EAAE,yBAAyB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,SAAS,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,SAAS,CAAC,MAAM,CAAC,CAAC;IAElB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,SAAS,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAC;QACpF,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7B,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;QACzD,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,0DAA0D,CAAC,CAAC;QAC9E,SAAS,CAAC,MAAM,EAAE,qFAAqF,CAAC,CAAC;IAC3G,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqC,EAAE,MAAc;IAChF,MAAM,OAAO,GAAG,MAAM,YAAY,WAAW;QAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACjB,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"init-render.js","sourceRoot":"","sources":["../../src/cli/init-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AAEpH,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAMvC,SAAS,SAAS,CAAC,MAAc,EAAE,IAAI,GAAG,EAAE;IAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,MAAM,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,IAAoB,EAAE,MAAc;IACrF,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,SAAS,CAAC,MAAM,EAAE,yBAAyB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,SAAS,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,SAAS,CAAC,MAAM,CAAC,CAAC;IAElB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,SAAS,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAC;QACpF,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7B,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;QACzD,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC3E,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,0DAA0D,CAAC,CAAC;QAC9E,SAAS,CAAC,MAAM,EAAE,qFAAqF,CAAC,CAAC;IAC3G,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqC,EAAE,MAAc;IAChF,MAAM,OAAO,GAAG,MAAM,YAAY,WAAW;QAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACjB,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAmCA,UAAU,MAAM;IACd,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AA6CD,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CAgC1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAmCA,UAAU,MAAM;IACd,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AA+CD,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CAgC1D"}
package/dist/cli/init.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as path from "node:path";
2
2
  import { appendIfMissing, ensureTargetGitHooks, mergeClaudeHooksConfig, mergeClaudeMcpConfig, mergeClineMcpConfig, mergeCodexMcpConfig, mergeContinueMcpConfig, mergeCursorMcpConfig, mergeWindsurfMcpConfig, writeIfMissing } from "./init-bootstrap.js";
3
3
  import { writeCliError } from "./cli-error.js";
4
- import { GRAFT_HOOKS_CONFIG, GRAFT_MCP_SERVER, InitFailure, InitResult, ParsedInitArgs } from "./init-model.js";
4
+ import { GRAFT_HOOKS_CONFIG, GraftMcpServer, InitFailure, InitResult, ParsedInitArgs } from "./init-model.js";
5
5
  import { emitInitJson, renderInitText } from "./init-render.js";
6
6
  const GRAFTIGNORE_TEMPLATE = `# Graft ignore patterns — files matching these are refused by safe_read.
7
7
  # Syntax: same as .gitignore (glob matching via picomatch).
@@ -29,13 +29,15 @@ session metrics. Native reads bypass all of that.
29
29
  `;
30
30
  const GITIGNORE_ENTRY = "\n# Graft runtime data\n.graft/\n";
31
31
  function initProject(cwd, args) {
32
+ const mcpServer = new GraftMcpServer(args.mcpRuntime);
33
+ const updateExistingMcp = args.mcpRuntimeExplicit;
32
34
  const actions = [
33
35
  writeIfMissing(path.join(cwd, ".graftignore"), GRAFTIGNORE_TEMPLATE, ".graftignore"),
34
36
  appendIfMissing(path.join(cwd, ".gitignore"), ".graft/", GITIGNORE_ENTRY, ".gitignore"),
35
37
  appendIfMissing(path.join(cwd, "CLAUDE.md"), READ_GUIDANCE_MARKER, `\n${AGENT_SNIPPET}`, "CLAUDE.md"),
36
38
  ];
37
39
  if (args.writeClaudeMcp) {
38
- actions.push(mergeClaudeMcpConfig(cwd));
40
+ actions.push(mergeClaudeMcpConfig(cwd, mcpServer, updateExistingMcp));
39
41
  }
40
42
  if (args.writeClaudeHooks) {
41
43
  actions.push(mergeClaudeHooksConfig(cwd));
@@ -44,22 +46,22 @@ function initProject(cwd, args) {
44
46
  actions.push(...ensureTargetGitHooks(cwd));
45
47
  }
46
48
  if (args.writeCodexMcp) {
47
- actions.push(mergeCodexMcpConfig(cwd));
49
+ actions.push(mergeCodexMcpConfig(cwd, mcpServer, updateExistingMcp));
48
50
  actions.push(appendIfMissing(path.join(cwd, "AGENTS.md"), READ_GUIDANCE_MARKER, `\n${AGENT_SNIPPET}`, "AGENTS.md"));
49
51
  }
50
52
  if (args.writeCursorMcp) {
51
- actions.push(mergeCursorMcpConfig(cwd));
53
+ actions.push(mergeCursorMcpConfig(cwd, mcpServer, updateExistingMcp));
52
54
  }
53
55
  if (args.writeWindsurfMcp) {
54
- actions.push(mergeWindsurfMcpConfig(cwd));
56
+ actions.push(mergeWindsurfMcpConfig(cwd, mcpServer, updateExistingMcp));
55
57
  }
56
58
  if (args.writeContinueMcp) {
57
- actions.push(mergeContinueMcpConfig(cwd));
59
+ actions.push(mergeContinueMcpConfig(cwd, mcpServer, updateExistingMcp));
58
60
  }
59
61
  if (args.writeClineMcp) {
60
- actions.push(mergeClineMcpConfig(cwd));
62
+ actions.push(mergeClineMcpConfig(cwd, mcpServer, updateExistingMcp));
61
63
  }
62
- return new InitResult(cwd, actions, GRAFT_HOOKS_CONFIG, GRAFT_MCP_SERVER);
64
+ return new InitResult(cwd, actions, GRAFT_HOOKS_CONFIG, mcpServer);
63
65
  }
64
66
  export function runInit(options = {}) {
65
67
  const cwd = options.cwd ?? process.cwd();
@@ -83,7 +85,7 @@ export function runInit(options = {}) {
83
85
  return;
84
86
  }
85
87
  writeCliError(stderr, message, {
86
- usage: "graft init [--json] [--write-claude-mcp] [--write-claude-hooks] "
88
+ usage: "graft init [--json] [--mcp-runtime <repo-local|daemon>] [--write-claude-mcp] [--write-claude-hooks] "
87
89
  + "[--write-target-git-hooks] [--write-codex-mcp] [--write-cursor-mcp] "
88
90
  + "[--write-windsurf-mcp] [--write-continue-mcp] [--write-cline-mcp]",
89
91
  nextSteps: [