@nanonets/graft 0.21.1 → 0.22.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 (389) hide show
  1. package/README.md +549 -314
  2. package/dist/app/checkout.d.ts +0 -32
  3. package/dist/app/checkout.d.ts.map +1 -1
  4. package/dist/app/checkout.js +0 -45
  5. package/dist/app/checkout.js.map +1 -1
  6. package/dist/app/identity.d.ts +0 -56
  7. package/dist/app/identity.d.ts.map +1 -1
  8. package/dist/app/identity.js +0 -119
  9. package/dist/app/identity.js.map +1 -1
  10. package/dist/app/main.js +0 -8
  11. package/dist/app/main.js.map +1 -1
  12. package/dist/app/review-process.d.ts.map +1 -1
  13. package/dist/app/review-process.js +6 -5
  14. package/dist/app/review-process.js.map +1 -1
  15. package/dist/app/server.d.ts +0 -20
  16. package/dist/app/server.d.ts.map +1 -1
  17. package/dist/app/server.js +0 -121
  18. package/dist/app/server.js.map +1 -1
  19. package/dist/ask/ask.d.ts +12 -6
  20. package/dist/ask/ask.d.ts.map +1 -1
  21. package/dist/ask/ask.js +28 -38
  22. package/dist/ask/ask.js.map +1 -1
  23. package/dist/bin/graft.d.ts +3 -0
  24. package/dist/bin/graft.d.ts.map +1 -0
  25. package/dist/bin/graft.js +8 -0
  26. package/dist/bin/graft.js.map +1 -0
  27. package/dist/bin/trail.d.ts +3 -0
  28. package/dist/bin/trail.d.ts.map +1 -0
  29. package/dist/bin/trail.js +6 -0
  30. package/dist/bin/trail.js.map +1 -0
  31. package/dist/blast/blast-cli.d.ts.map +1 -1
  32. package/dist/blast/blast-cli.js +2 -1
  33. package/dist/blast/blast-cli.js.map +1 -1
  34. package/dist/blast/render.d.ts.map +1 -1
  35. package/dist/blast/render.js +3 -2
  36. package/dist/blast/render.js.map +1 -1
  37. package/dist/brand.d.ts +97 -0
  38. package/dist/brand.d.ts.map +1 -0
  39. package/dist/brand.js +254 -0
  40. package/dist/brand.js.map +1 -0
  41. package/dist/check/learning-edits.d.ts +9 -0
  42. package/dist/check/learning-edits.d.ts.map +1 -0
  43. package/dist/check/learning-edits.js +62 -0
  44. package/dist/check/learning-edits.js.map +1 -0
  45. package/dist/check/local-check.d.ts +104 -0
  46. package/dist/check/local-check.d.ts.map +1 -0
  47. package/dist/check/local-check.js +830 -0
  48. package/dist/check/local-check.js.map +1 -0
  49. package/dist/check/types.d.ts +31 -0
  50. package/dist/check/types.d.ts.map +1 -0
  51. package/dist/check/types.js +2 -0
  52. package/dist/check/types.js.map +1 -0
  53. package/dist/claude/format.d.ts +44 -1
  54. package/dist/claude/format.d.ts.map +1 -1
  55. package/dist/claude/format.js +113 -19
  56. package/dist/claude/format.js.map +1 -1
  57. package/dist/claude/hook-layers.d.ts +8 -0
  58. package/dist/claude/hook-layers.d.ts.map +1 -0
  59. package/dist/claude/hook-layers.js +72 -0
  60. package/dist/claude/hook-layers.js.map +1 -0
  61. package/dist/claude/hooks.d.ts +34 -0
  62. package/dist/claude/hooks.d.ts.map +1 -1
  63. package/dist/claude/hooks.js +220 -12
  64. package/dist/claude/hooks.js.map +1 -1
  65. package/dist/claude/init.d.ts +12 -1
  66. package/dist/claude/init.d.ts.map +1 -1
  67. package/dist/claude/init.js +48 -19
  68. package/dist/claude/init.js.map +1 -1
  69. package/dist/claude/session-metrics.d.ts +1 -1
  70. package/dist/claude/session-metrics.d.ts.map +1 -1
  71. package/dist/claude/session-metrics.js +11 -8
  72. package/dist/claude/session-metrics.js.map +1 -1
  73. package/dist/claude/settings-merge.d.ts +1 -0
  74. package/dist/claude/settings-merge.d.ts.map +1 -1
  75. package/dist/claude/settings-merge.js +21 -18
  76. package/dist/claude/settings-merge.js.map +1 -1
  77. package/dist/claude/shim-template.d.ts +17 -2
  78. package/dist/claude/shim-template.d.ts.map +1 -1
  79. package/dist/claude/shim-template.js +153 -23
  80. package/dist/claude/shim-template.js.map +1 -1
  81. package/dist/claude/skill-template.d.ts +10 -1
  82. package/dist/claude/skill-template.d.ts.map +1 -1
  83. package/dist/claude/skill-template.js +143 -1
  84. package/dist/claude/skill-template.js.map +1 -1
  85. package/dist/claude/state.d.ts +8 -0
  86. package/dist/claude/state.d.ts.map +1 -1
  87. package/dist/claude/state.js.map +1 -1
  88. package/dist/claude/statusline.d.ts.map +1 -1
  89. package/dist/claude/statusline.js +4 -1
  90. package/dist/claude/statusline.js.map +1 -1
  91. package/dist/claude/tally.js +1 -1
  92. package/dist/claude/tally.js.map +1 -1
  93. package/dist/cli-epilogue.d.ts +0 -6
  94. package/dist/cli-epilogue.d.ts.map +1 -1
  95. package/dist/cli-epilogue.js +5 -4
  96. package/dist/cli-epilogue.js.map +1 -1
  97. package/dist/cli-meta.d.ts +8 -0
  98. package/dist/cli-meta.d.ts.map +1 -1
  99. package/dist/cli-meta.js +28 -8
  100. package/dist/cli-meta.js.map +1 -1
  101. package/dist/cli-picker.d.ts +15 -0
  102. package/dist/cli-picker.d.ts.map +1 -1
  103. package/dist/cli-picker.js +44 -10
  104. package/dist/cli-picker.js.map +1 -1
  105. package/dist/cli.d.ts +0 -5
  106. package/dist/cli.d.ts.map +1 -1
  107. package/dist/cli.js +1112 -559
  108. package/dist/cli.js.map +1 -1
  109. package/dist/cloud/diff.d.ts +20 -0
  110. package/dist/cloud/diff.d.ts.map +1 -0
  111. package/dist/cloud/diff.js +59 -0
  112. package/dist/cloud/diff.js.map +1 -0
  113. package/dist/cloud/nudge.d.ts +66 -0
  114. package/dist/cloud/nudge.d.ts.map +1 -0
  115. package/dist/cloud/nudge.js +269 -0
  116. package/dist/cloud/nudge.js.map +1 -0
  117. package/dist/cloud/workspace-sync.d.ts +58 -0
  118. package/dist/cloud/workspace-sync.d.ts.map +1 -0
  119. package/dist/cloud/workspace-sync.js +268 -0
  120. package/dist/cloud/workspace-sync.js.map +1 -0
  121. package/dist/cloud/workspace.d.ts +159 -0
  122. package/dist/cloud/workspace.d.ts.map +1 -0
  123. package/dist/cloud/workspace.js +134 -0
  124. package/dist/cloud/workspace.js.map +1 -0
  125. package/dist/context/check.d.ts +1 -1
  126. package/dist/context/check.d.ts.map +1 -1
  127. package/dist/context/check.js +9 -8
  128. package/dist/context/check.js.map +1 -1
  129. package/dist/context/node-file.js +1 -1
  130. package/dist/context/node-file.js.map +1 -1
  131. package/dist/context/savings.d.ts.map +1 -1
  132. package/dist/context/savings.js +10 -7
  133. package/dist/context/savings.js.map +1 -1
  134. package/dist/engine.d.ts.map +1 -1
  135. package/dist/engine.js +3 -1
  136. package/dist/engine.js.map +1 -1
  137. package/dist/graph/build.d.ts +30 -0
  138. package/dist/graph/build.d.ts.map +1 -1
  139. package/dist/graph/build.js +65 -19
  140. package/dist/graph/build.js.map +1 -1
  141. package/dist/graph/cards.d.ts.map +1 -1
  142. package/dist/graph/cards.js +4 -2
  143. package/dist/graph/cards.js.map +1 -1
  144. package/dist/graph/check.d.ts.map +1 -1
  145. package/dist/graph/check.js +17 -18
  146. package/dist/graph/check.js.map +1 -1
  147. package/dist/graph/container.d.ts.map +1 -1
  148. package/dist/graph/container.js +7 -2
  149. package/dist/graph/container.js.map +1 -1
  150. package/dist/graph/extract-cache.d.ts +4 -0
  151. package/dist/graph/extract-cache.d.ts.map +1 -1
  152. package/dist/graph/extract-cache.js.map +1 -1
  153. package/dist/graph/extract.d.ts +2 -0
  154. package/dist/graph/extract.d.ts.map +1 -1
  155. package/dist/graph/extract.js +5 -32
  156. package/dist/graph/extract.js.map +1 -1
  157. package/dist/graph/generic.d.ts +7 -1
  158. package/dist/graph/generic.d.ts.map +1 -1
  159. package/dist/graph/generic.js +48 -8
  160. package/dist/graph/generic.js.map +1 -1
  161. package/dist/graph/native.d.ts +38 -0
  162. package/dist/graph/native.d.ts.map +1 -0
  163. package/dist/graph/native.js +169 -0
  164. package/dist/graph/native.js.map +1 -0
  165. package/dist/graph/refresh.d.ts.map +1 -1
  166. package/dist/graph/refresh.js +3 -2
  167. package/dist/graph/refresh.js.map +1 -1
  168. package/dist/graph/traverse-cli.d.ts.map +1 -1
  169. package/dist/graph/traverse-cli.js +4 -3
  170. package/dist/graph/traverse-cli.js.map +1 -1
  171. package/dist/graph/workspace-cli.d.ts +2 -0
  172. package/dist/graph/workspace-cli.d.ts.map +1 -1
  173. package/dist/graph/workspace-cli.js +13 -1
  174. package/dist/graph/workspace-cli.js.map +1 -1
  175. package/dist/graph/workspace.d.ts.map +1 -1
  176. package/dist/graph/workspace.js +6 -5
  177. package/dist/graph/workspace.js.map +1 -1
  178. package/dist/hosts/antigravity.d.ts +10 -3
  179. package/dist/hosts/antigravity.d.ts.map +1 -1
  180. package/dist/hosts/antigravity.js +27 -10
  181. package/dist/hosts/antigravity.js.map +1 -1
  182. package/dist/hosts/claude-global.d.ts +27 -4
  183. package/dist/hosts/claude-global.d.ts.map +1 -1
  184. package/dist/hosts/claude-global.js +90 -9
  185. package/dist/hosts/claude-global.js.map +1 -1
  186. package/dist/hosts/codex-hooks.d.ts.map +1 -1
  187. package/dist/hosts/codex-hooks.js +1 -2
  188. package/dist/hosts/codex-hooks.js.map +1 -1
  189. package/dist/hosts/config-write.d.ts.map +1 -1
  190. package/dist/hosts/config-write.js +2 -1
  191. package/dist/hosts/config-write.js.map +1 -1
  192. package/dist/hosts/cursor-hooks.d.ts +5 -2
  193. package/dist/hosts/cursor-hooks.d.ts.map +1 -1
  194. package/dist/hosts/cursor-hooks.js +14 -9
  195. package/dist/hosts/cursor-hooks.js.map +1 -1
  196. package/dist/hosts/init.d.ts +3 -0
  197. package/dist/hosts/init.d.ts.map +1 -1
  198. package/dist/hosts/init.js +32 -10
  199. package/dist/hosts/init.js.map +1 -1
  200. package/dist/hosts/instructions.d.ts +9 -4
  201. package/dist/hosts/instructions.d.ts.map +1 -1
  202. package/dist/hosts/instructions.js +19 -16
  203. package/dist/hosts/instructions.js.map +1 -1
  204. package/dist/hosts/mcp-config.d.ts +19 -4
  205. package/dist/hosts/mcp-config.d.ts.map +1 -1
  206. package/dist/hosts/mcp-config.js +81 -30
  207. package/dist/hosts/mcp-config.js.map +1 -1
  208. package/dist/hosts/plan.d.ts.map +1 -1
  209. package/dist/hosts/plan.js +11 -9
  210. package/dist/hosts/plan.js.map +1 -1
  211. package/dist/hosts/registry.d.ts +25 -2
  212. package/dist/hosts/registry.d.ts.map +1 -1
  213. package/dist/hosts/registry.js +53 -0
  214. package/dist/hosts/registry.js.map +1 -1
  215. package/dist/hosts/retract.d.ts.map +1 -1
  216. package/dist/hosts/retract.js +73 -33
  217. package/dist/hosts/retract.js.map +1 -1
  218. package/dist/hosts/sections.d.ts +17 -1
  219. package/dist/hosts/sections.d.ts.map +1 -1
  220. package/dist/hosts/sections.js +52 -2
  221. package/dist/hosts/sections.js.map +1 -1
  222. package/dist/mcp/instructions.d.ts +1 -25
  223. package/dist/mcp/instructions.d.ts.map +1 -1
  224. package/dist/mcp/instructions.js +6 -4
  225. package/dist/mcp/instructions.js.map +1 -1
  226. package/dist/mcp/server.d.ts.map +1 -1
  227. package/dist/mcp/server.js +7 -3
  228. package/dist/mcp/server.js.map +1 -1
  229. package/dist/mcp/tool-names.d.ts +10 -3
  230. package/dist/mcp/tool-names.d.ts.map +1 -1
  231. package/dist/mcp/tool-names.js +13 -5
  232. package/dist/mcp/tool-names.js.map +1 -1
  233. package/dist/mcp/tools.d.ts.map +1 -1
  234. package/dist/mcp/tools.js +6 -5
  235. package/dist/mcp/tools.js.map +1 -1
  236. package/dist/notes/ask-notes.d.ts +8 -0
  237. package/dist/notes/ask-notes.d.ts.map +1 -0
  238. package/dist/notes/ask-notes.js +18 -0
  239. package/dist/notes/ask-notes.js.map +1 -0
  240. package/dist/notes/branches.d.ts +85 -0
  241. package/dist/notes/branches.d.ts.map +1 -0
  242. package/dist/notes/branches.js +238 -0
  243. package/dist/notes/branches.js.map +1 -0
  244. package/dist/notes/cold-start.d.ts +177 -0
  245. package/dist/notes/cold-start.d.ts.map +1 -0
  246. package/dist/notes/cold-start.js +537 -0
  247. package/dist/notes/cold-start.js.map +1 -0
  248. package/dist/notes/git-facts.d.ts +17 -0
  249. package/dist/notes/git-facts.d.ts.map +1 -0
  250. package/dist/notes/git-facts.js +117 -0
  251. package/dist/notes/git-facts.js.map +1 -0
  252. package/dist/notes/home.d.ts +87 -0
  253. package/dist/notes/home.d.ts.map +1 -0
  254. package/dist/notes/home.js +423 -0
  255. package/dist/notes/home.js.map +1 -0
  256. package/dist/notes/notes.d.ts +193 -0
  257. package/dist/notes/notes.d.ts.map +1 -0
  258. package/dist/notes/notes.js +536 -0
  259. package/dist/notes/notes.js.map +1 -0
  260. package/dist/notes/pr-reviews.d.ts +108 -0
  261. package/dist/notes/pr-reviews.d.ts.map +1 -0
  262. package/dist/notes/pr-reviews.js +325 -0
  263. package/dist/notes/pr-reviews.js.map +1 -0
  264. package/dist/notes/repo-trail.d.ts +16 -0
  265. package/dist/notes/repo-trail.d.ts.map +1 -0
  266. package/dist/notes/repo-trail.js +74 -0
  267. package/dist/notes/repo-trail.js.map +1 -0
  268. package/dist/notes/session-cost.d.ts +21 -0
  269. package/dist/notes/session-cost.d.ts.map +1 -0
  270. package/dist/notes/session-cost.js +162 -0
  271. package/dist/notes/session-cost.js.map +1 -0
  272. package/dist/search/grep-cli.d.ts.map +1 -1
  273. package/dist/search/grep-cli.js +4 -3
  274. package/dist/search/grep-cli.js.map +1 -1
  275. package/dist/skills/skills.d.ts +118 -0
  276. package/dist/skills/skills.d.ts.map +1 -0
  277. package/dist/skills/skills.js +370 -0
  278. package/dist/skills/skills.js.map +1 -0
  279. package/dist/telemetry/contract.d.ts +2 -14
  280. package/dist/telemetry/contract.d.ts.map +1 -1
  281. package/dist/telemetry/contract.js +40 -24
  282. package/dist/telemetry/contract.js.map +1 -1
  283. package/dist/telemetry/gate.d.ts.map +1 -1
  284. package/dist/telemetry/gate.js +2 -1
  285. package/dist/telemetry/gate.js.map +1 -1
  286. package/dist/telemetry/notice.d.ts +1 -1
  287. package/dist/telemetry/notice.d.ts.map +1 -1
  288. package/dist/telemetry/notice.js +6 -5
  289. package/dist/telemetry/notice.js.map +1 -1
  290. package/dist/telemetry/track.d.ts.map +1 -1
  291. package/dist/telemetry/track.js +5 -0
  292. package/dist/telemetry/track.js.map +1 -1
  293. package/dist/upkeep-run.d.ts +7 -0
  294. package/dist/upkeep-run.d.ts.map +1 -1
  295. package/dist/upkeep-run.js +52 -12
  296. package/dist/upkeep-run.js.map +1 -1
  297. package/dist/upkeep.d.ts +9 -19
  298. package/dist/upkeep.d.ts.map +1 -1
  299. package/dist/upkeep.js +38 -59
  300. package/dist/upkeep.js.map +1 -1
  301. package/dist/util/browser.d.ts +3 -0
  302. package/dist/util/browser.d.ts.map +1 -0
  303. package/dist/util/browser.js +14 -0
  304. package/dist/util/browser.js.map +1 -0
  305. package/dist/util/front-matter.d.ts +19 -0
  306. package/dist/util/front-matter.d.ts.map +1 -0
  307. package/dist/util/front-matter.js +21 -0
  308. package/dist/util/front-matter.js.map +1 -0
  309. package/dist/util/state.d.ts +1 -18
  310. package/dist/util/state.d.ts.map +1 -1
  311. package/dist/util/state.js +4 -2
  312. package/dist/util/state.js.map +1 -1
  313. package/dist/viz/assemble.js +1 -1
  314. package/dist/viz/assemble.js.map +1 -1
  315. package/dist/viz/serve.d.ts.map +1 -1
  316. package/dist/viz/serve.js +4 -3
  317. package/dist/viz/serve.js.map +1 -1
  318. package/package.json +7 -7
  319. package/scripts/pack-trail.mjs +53 -0
  320. package/scripts/postinstall.mjs +17 -2
  321. package/scripts/run-tests.mjs +4 -1
  322. package/dist/app/brain-build-process.d.ts +0 -22
  323. package/dist/app/brain-build-process.d.ts.map +0 -1
  324. package/dist/app/brain-build-process.js +0 -129
  325. package/dist/app/brain-build-process.js.map +0 -1
  326. package/dist/app/brain-build-worker.d.ts +0 -35
  327. package/dist/app/brain-build-worker.d.ts.map +0 -1
  328. package/dist/app/brain-build-worker.js +0 -56
  329. package/dist/app/brain-build-worker.js.map +0 -1
  330. package/dist/app/brain-build.d.ts +0 -160
  331. package/dist/app/brain-build.d.ts.map +0 -1
  332. package/dist/app/brain-build.js +0 -278
  333. package/dist/app/brain-build.js.map +0 -1
  334. package/dist/app/history.d.ts +0 -163
  335. package/dist/app/history.d.ts.map +0 -1
  336. package/dist/app/history.js +0 -319
  337. package/dist/app/history.js.map +0 -1
  338. package/dist/app/sources.d.ts +0 -81
  339. package/dist/app/sources.d.ts.map +0 -1
  340. package/dist/app/sources.js +0 -470
  341. package/dist/app/sources.js.map +0 -1
  342. package/dist/brain/attach.d.ts +0 -44
  343. package/dist/brain/attach.d.ts.map +0 -1
  344. package/dist/brain/attach.js +0 -63
  345. package/dist/brain/attach.js.map +0 -1
  346. package/dist/brain/claude-md.d.ts +0 -61
  347. package/dist/brain/claude-md.d.ts.map +0 -1
  348. package/dist/brain/claude-md.js +0 -171
  349. package/dist/brain/claude-md.js.map +0 -1
  350. package/dist/brain/connect.d.ts +0 -59
  351. package/dist/brain/connect.d.ts.map +0 -1
  352. package/dist/brain/connect.js +0 -80
  353. package/dist/brain/connect.js.map +0 -1
  354. package/dist/brain/context-files.d.ts +0 -79
  355. package/dist/brain/context-files.d.ts.map +0 -1
  356. package/dist/brain/context-files.js +0 -245
  357. package/dist/brain/context-files.js.map +0 -1
  358. package/dist/brain/link.d.ts +0 -106
  359. package/dist/brain/link.d.ts.map +0 -1
  360. package/dist/brain/link.js +0 -167
  361. package/dist/brain/link.js.map +0 -1
  362. package/dist/brain/pull.d.ts +0 -48
  363. package/dist/brain/pull.d.ts.map +0 -1
  364. package/dist/brain/pull.js +0 -257
  365. package/dist/brain/pull.js.map +0 -1
  366. package/dist/brain/push.d.ts +0 -155
  367. package/dist/brain/push.d.ts.map +0 -1
  368. package/dist/brain/push.js +0 -304
  369. package/dist/brain/push.js.map +0 -1
  370. package/dist/brain/signup.d.ts +0 -117
  371. package/dist/brain/signup.d.ts.map +0 -1
  372. package/dist/brain/signup.js +0 -276
  373. package/dist/brain/signup.js.map +0 -1
  374. package/dist/brain/upload.d.ts +0 -61
  375. package/dist/brain/upload.d.ts.map +0 -1
  376. package/dist/brain/upload.js +0 -210
  377. package/dist/brain/upload.js.map +0 -1
  378. package/dist/brain/watch.d.ts +0 -209
  379. package/dist/brain/watch.d.ts.map +0 -1
  380. package/dist/brain/watch.js +0 -397
  381. package/dist/brain/watch.js.map +0 -1
  382. package/dist/brain/wire.d.ts +0 -38
  383. package/dist/brain/wire.d.ts.map +0 -1
  384. package/dist/brain/wire.js +0 -133
  385. package/dist/brain/wire.js.map +0 -1
  386. package/dist/legacy-args.d.ts +0 -12
  387. package/dist/legacy-args.d.ts.map +0 -1
  388. package/dist/legacy-args.js +0 -31
  389. package/dist/legacy-args.js.map +0 -1
@@ -1,38 +0,0 @@
1
- import { type HostTarget } from '../hosts/registry.js';
2
- import { type UpsertAction } from '../hosts/sections.js';
3
- import type { BrainRule } from './link.js';
4
- /** What a rules write did to one host's file. */
5
- export interface BrainWrite {
6
- id: string;
7
- path: string;
8
- action: UpsertAction;
9
- }
10
- /**
11
- * Render the rules block for an instruction file.
12
- *
13
- * Grouped by the file the rule governs, because that is how someone reads a
14
- * codebase, and repo-wide rules (no symbol) come first — they apply everywhere,
15
- * so they should not be buried under a path heading.
16
- */
17
- export declare function renderBrainSection(rules: BrainRule[], repoLabel: string): string;
18
- /**
19
- * Every instruction file a brain section should go in.
20
- *
21
- * `section`-kind hosts only. An `owned`-kind host (Cursor's `.mdc`, Kiro's
22
- * steering file, a `SKILL.md`) is a file graft rewrites whole from a pure
23
- * template, so a second managed region inside one would be erased by the next
24
- * `init` — those agents get their rules through `graft ask` instead, which they
25
- * all call.
26
- *
27
- * Deduplicated by path: three hosts target `AGENTS.md`, and writing it three
28
- * times in one pass is just three identical upserts.
29
- */
30
- export declare function brainSectionTargets(repo: string, home: string, ids?: string[]): HostTarget[];
31
- /**
32
- * Write the brain's rules into each selected host's instruction file.
33
- *
34
- * Best-effort per file: one unwritable path must not stop the rest, since a
35
- * partially delivered rulebook is strictly better than none.
36
- */
37
- export declare function writeBrainSections(repo: string, home: string, rules: BrainRule[], repoLabel: string, ids?: string[]): BrainWrite[];
38
- //# sourceMappingURL=wire.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/brain/wire.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAK3C,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAqChF;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAa5F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,UAAU,EAAE,CAed"}
@@ -1,133 +0,0 @@
1
- /**
2
- * Writing a brain's rules into the instruction file each coding agent already
3
- * reads.
4
- *
5
- * Two delivery paths exist and both matter. Every `graft ask` carries the rules
6
- * for the symbols in its answer — that is the precise one. This is the broad
7
- * one: the repo-wide conventions, sitting in `AGENTS.md` / `CLAUDE.md` /
8
- * `.cursor/rules` where the agent picks them up whether or not it ever calls
9
- * graft.
10
- *
11
- * The rules land in their OWN fenced block (`BRAIN_MARKERS`), never inside the
12
- * instruction block: instructions are static and rewritten by `init`, rules
13
- * change whenever the brain does, and `uninstall` has to be able to remove
14
- * either one.
15
- */
16
- import { join } from 'node:path';
17
- import { HOSTS, detectHosts } from '../hosts/registry.js';
18
- import { upsertSection, BRAIN_MARKERS } from '../hosts/sections.js';
19
- import { statSync } from 'node:fs';
20
- /** How many rules go into an instruction file. */
21
- const MAX_FILE_RULES = 40;
22
- /**
23
- * Render the rules block for an instruction file.
24
- *
25
- * Grouped by the file the rule governs, because that is how someone reads a
26
- * codebase, and repo-wide rules (no symbol) come first — they apply everywhere,
27
- * so they should not be buried under a path heading.
28
- */
29
- export function renderBrainSection(rules, repoLabel) {
30
- const capped = rules.slice(0, MAX_FILE_RULES);
31
- const lines = [
32
- '## House rules for this codebase',
33
- '',
34
- `Mined from ${repoLabel}'s own history — commit messages and pull-request`,
35
- 'discussion — by Trail. These are decisions the team has already made, so',
36
- 'follow them and do not re-litigate them in passing. Each is attributed to',
37
- 'what established it.',
38
- '',
39
- ];
40
- const byFile = new Map();
41
- for (const r of capped) {
42
- // A node id is `<path>#<QualifiedName>`; everything before the '#' is the file.
43
- const file = r.symbol.includes('#') ? r.symbol.slice(0, r.symbol.indexOf('#')) : '';
44
- const bucket = byFile.get(file);
45
- if (bucket)
46
- bucket.push(r);
47
- else
48
- byFile.set(file, [r]);
49
- }
50
- const general = byFile.get('') ?? [];
51
- for (const r of general)
52
- lines.push(`- ${r.rule}${r.sourceUrl ? ` (${r.sourceUrl})` : ''}`);
53
- if (general.length)
54
- lines.push('');
55
- for (const [file, group] of [...byFile].filter(([f]) => f !== '').sort()) {
56
- lines.push(`### ${file}`);
57
- for (const r of group)
58
- lines.push(`- ${r.rule}${r.sourceUrl ? ` (${r.sourceUrl})` : ''}`);
59
- lines.push('');
60
- }
61
- if (rules.length > capped.length) {
62
- lines.push(`_${rules.length - capped.length} more rules apply to specific symbols; graft attaches those to each \`graft ask\` answer._`);
63
- }
64
- return lines.join('\n').trimEnd();
65
- }
66
- /** Build the probe `detectHosts` needs. Mirrors hosts/init.ts's own. */
67
- function probeFor(repo, home) {
68
- return {
69
- home,
70
- repo,
71
- dirExists: (p) => {
72
- try {
73
- return statSync(p).isDirectory();
74
- }
75
- catch {
76
- return false;
77
- }
78
- },
79
- };
80
- }
81
- /**
82
- * Every instruction file a brain section should go in.
83
- *
84
- * `section`-kind hosts only. An `owned`-kind host (Cursor's `.mdc`, Kiro's
85
- * steering file, a `SKILL.md`) is a file graft rewrites whole from a pure
86
- * template, so a second managed region inside one would be erased by the next
87
- * `init` — those agents get their rules through `graft ask` instead, which they
88
- * all call.
89
- *
90
- * Deduplicated by path: three hosts target `AGENTS.md`, and writing it three
91
- * times in one pass is just three identical upserts.
92
- */
93
- export function brainSectionTargets(repo, home, ids) {
94
- const selected = ids?.length
95
- ? HOSTS.filter((h) => ids.includes(h.id))
96
- : detectHosts(probeFor(repo, home));
97
- const seen = new Set();
98
- const out = [];
99
- for (const h of selected) {
100
- if (h.kind !== 'section')
101
- continue;
102
- if (seen.has(h.relPath))
103
- continue;
104
- seen.add(h.relPath);
105
- out.push(h);
106
- }
107
- return out;
108
- }
109
- /**
110
- * Write the brain's rules into each selected host's instruction file.
111
- *
112
- * Best-effort per file: one unwritable path must not stop the rest, since a
113
- * partially delivered rulebook is strictly better than none.
114
- */
115
- export function writeBrainSections(repo, home, rules, repoLabel, ids) {
116
- if (!rules.length)
117
- return [];
118
- const body = renderBrainSection(rules, repoLabel);
119
- const out = [];
120
- for (const host of brainSectionTargets(repo, home, ids)) {
121
- const path = join(repo, host.relPath);
122
- try {
123
- const { action } = upsertSection(path, body, BRAIN_MARKERS);
124
- out.push({ id: host.id, path, action });
125
- }
126
- catch {
127
- // Unwritable file (read-only checkout, a directory in the way). Skipped
128
- // silently here; the caller reports what it did get.
129
- }
130
- }
131
- return out;
132
- }
133
- //# sourceMappingURL=wire.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/brain/wire.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * The old spellings of renamed commands, still accepted.
3
- *
4
- * `graft brain …` became `graft trail …`, and `init --brain` became
5
- * `init --trail`, to match the product's name. The old ones are in docs, in
6
- * scripts, in shell history and on Trail pages already open in someone's
7
- * browser, so they keep working. They are rewritten before parsing rather than
8
- * registered as aliases, so help lists only the new names.
9
- */
10
- /** `process.argv` with the old spellings replaced by the new ones. */
11
- export declare function withLegacyNames(argv: readonly string[]): string[];
12
- //# sourceMappingURL=legacy-args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-args.d.ts","sourceRoot":"","sources":["../src/legacy-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAcjE"}
@@ -1,31 +0,0 @@
1
- /**
2
- * The old spellings of renamed commands, still accepted.
3
- *
4
- * `graft brain …` became `graft trail …`, and `init --brain` became
5
- * `init --trail`, to match the product's name. The old ones are in docs, in
6
- * scripts, in shell history and on Trail pages already open in someone's
7
- * browser, so they keep working. They are rewritten before parsing rather than
8
- * registered as aliases, so help lists only the new names.
9
- */
10
- /** Global options that take a value: their value is never the command. */
11
- const VALUE_OPTIONS = new Set(["--dir", "--provider", "--model", "--api-key", "--base-url"]);
12
- /** `process.argv` with the old spellings replaced by the new ones. */
13
- export function withLegacyNames(argv) {
14
- const out = [...argv];
15
- // The command is the first word after the global options.
16
- for (let i = 2; i < out.length; i++) {
17
- const a = out[i];
18
- if (a === "--")
19
- break;
20
- if (a.startsWith("-")) {
21
- if (VALUE_OPTIONS.has(a))
22
- i++;
23
- continue;
24
- }
25
- if (a === "brain")
26
- out[i] = "trail";
27
- break;
28
- }
29
- return out.map((a) => (a === "--brain" ? "--trail" : a.startsWith("--brain=") ? `--trail=${a.slice("--brain=".length)}` : a));
30
- }
31
- //# sourceMappingURL=legacy-args.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-args.js","sourceRoot":"","sources":["../src/legacy-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAE7F,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,0DAA0D;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAClB,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM;QACtB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACpC,MAAM;IACR,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChI,CAAC"}