@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,5 +1,6 @@
1
1
  import { fileReader, impactedEvidence, reachTerms } from "./evidence.js";
2
2
  import { MAX_REVIEWERS, mention, sinceLabel } from "./owners.js";
3
+ import { brand, cmd } from "../brand.js";
3
4
  /** Diagram cap. Everything past it folds into one aggregate circle carrying the
4
5
  * dropped counts, so the picture shrinks but never lies. */
5
6
  const MAX_MODULE_BOXES = 5;
@@ -89,7 +90,7 @@ export function mermaidDiagram(r) {
89
90
  export function markdownReport(r, opts = {}) {
90
91
  const out = [];
91
92
  const symbols = r.modules.reduce((n, m) => n + m.symbols.length, 0);
92
- out.push("### 🌱 graft blast radius");
93
+ out.push(`### 🌱 ${brand()} blast radius`);
93
94
  out.push("");
94
95
  out.push(headline(r, symbols));
95
96
  const testLine = testHeadline(r);
@@ -127,7 +128,7 @@ export function markdownReport(r, opts = {}) {
127
128
  out.push(line);
128
129
  }
129
130
  out.push("");
130
- out.push(`<sub>\`graft blast\` · ${r.basis} · ${depthLabel(r.depth)} · ${plural(r.changed.length, "changed file")}</sub>`);
131
+ out.push(`<sub>\`${cmd("graft blast")}\` · ${r.basis} · ${depthLabel(r.depth)} · ${plural(r.changed.length, "changed file")}</sub>`);
131
132
  return out.join("\n") + "\n";
132
133
  }
133
134
  function headline(r, symbols) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/blast/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/blast/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ export type Brand = "trail" | "graft";
2
+ /** Set by `dist/bin/trail.js` and `dist/bin/graft.js` before the CLI loads. */
3
+ export declare const BRAND_ENV = "TRAIL_INVOKED_AS";
4
+ /** The npm package each name is published as. Same code, two names. */
5
+ export declare const PACKAGE_FOR: Record<Brand, string>;
6
+ export declare function brand(env?: NodeJS.ProcessEnv): Brand;
7
+ export declare function setBrand(b: Brand, env?: NodeJS.ProcessEnv): void;
8
+ /** `[trail]` or `[graft]`: the prefix agents and the statusline look for. */
9
+ export declare function tag(env?: NodeJS.ProcessEnv): string;
10
+ /**
11
+ * A command as the running name spells it. Takes the graft spelling, so call
12
+ * sites read the way they always have and graft's output does not change:
13
+ * `cmd("graft ask")` is `graft ask` under graft and `trail ask` under trail.
14
+ */
15
+ export declare function cmd(graftSpelling: string, b?: Brand): string;
16
+ /**
17
+ * Agent-facing prose and tool names in trail's spelling: `graft_find_code` →
18
+ * `trail_find_code`, and the word graft → trail. A `graft` followed by `/` is
19
+ * the code map's folder and stays, as do `graft-…` names. Under graft, the
20
+ * text comes back unchanged.
21
+ */
22
+ export declare function inBrand(text: string, b?: Brand): string;
23
+ /**
24
+ * `trail init` wired this repo under trail's names: its committed hooks shim,
25
+ * skill or settings say trail. Read from the repo, not the machine, so every
26
+ * teammate's agent speaks the same name whichever command they installed.
27
+ */
28
+ export declare function repoWiredForTrail(dir: string): boolean;
29
+ /**
30
+ * The name hooks and the statusline speak in `repo`. They run under whatever
31
+ * shim set the repo up, often one an older graft committed, so no `dist/bin`
32
+ * entry has set a name. They say trail in a repo wired for it, but only when
33
+ * the `trail` command is installed on this machine: a hook that tells the
34
+ * agent to run a command the machine doesn't have costs a failed tool call.
35
+ * A name already set (by the CLI that spawned this) is kept. `wiredElsewhere`
36
+ * also counts a repo whose other agents' files are on trail (hosts/registry.ts's
37
+ * `hostsWiredForTrail`, passed in so this file stays light): Cursor's and
38
+ * Codex's hooks run this same entry in repos with no `.claude` at all.
39
+ */
40
+ export declare function adoptRepoBrand(repo: string, env?: NodeJS.ProcessEnv, wiredElsewhere?: (repo: string) => boolean): Brand;
41
+ export declare function noticeStampPath(home?: string): string;
42
+ /** Whether a `trail` executable is on PATH. Only checked when the notice is due. */
43
+ export declare function trailOnPath(env?: NodeJS.ProcessEnv): boolean;
44
+ /** Whether an executable called `name` is on PATH: a few stats, no process spawned. */
45
+ export declare function commandOnPath(name: string, env?: NodeJS.ProcessEnv): boolean;
46
+ export interface NoticeInput {
47
+ /** The graft spelling of what just ran, e.g. `graft ask` or `graft build`. */
48
+ ran: string;
49
+ /** stderr is a terminal: a person is watching. */
50
+ tty: boolean;
51
+ env?: NodeJS.ProcessEnv;
52
+ home?: string;
53
+ now?: number;
54
+ }
55
+ /**
56
+ * The line a person typing `graft` sees, at most once a day, or null.
57
+ *
58
+ * Never shown to an agent (no terminal, or Claude Code's `CLAUDECODE` is set),
59
+ * in CI, or under trail itself: agents and scripts get graft's output exactly
60
+ * as it was. Writing the stamp is best-effort; a home we cannot write to just
61
+ * means the line may show again tomorrow.
62
+ */
63
+ export declare function graftNotice(input: NoticeInput): string | null;
64
+ /**
65
+ * The line a person typing `trail` sees in a repo an older graft wired, while
66
+ * nothing on this machine can reach that wiring; or null.
67
+ *
68
+ * A graft 0.21 or older committed hook shims that look for `@nanonets/graft`
69
+ * alone, and registered a bare `graft mcp` server. On a machine with trail and
70
+ * no graft, the hooks run and do nothing and the server never starts, so the
71
+ * session start that would move the repo to trail never happens. `trail init`
72
+ * in the repo moves it, and so does a session opened under the hooks
73
+ * `trail init` writes to `~/.claude`; this says so to someone who has done
74
+ * neither. Silent once graft is on PATH, since its hooks then move the repo.
75
+ * Never shown to an agent, a pipe or CI, like {@link graftNotice}.
76
+ */
77
+ export declare function strandedRepoNotice(input: {
78
+ cwd: string;
79
+ tty: boolean;
80
+ env?: NodeJS.ProcessEnv;
81
+ }): string | null;
82
+ export declare function handoverStampPath(home?: string): string;
83
+ /**
84
+ * The line a Claude Code session start hands the agent on a machine that has
85
+ * graft but not the trail command, at most once a week; or null.
86
+ *
87
+ * {@link graftNotice} reaches a person typing graft. Most people only meet
88
+ * graft through their agent, so the agent is the one who can tell them that
89
+ * `graft upgrade` adds trail. Once trail is installed, the next session moves
90
+ * the repo over by itself (see upkeep-run.ts), so this stops.
91
+ */
92
+ export declare function trailHandoverLine(input?: {
93
+ env?: NodeJS.ProcessEnv;
94
+ home?: string;
95
+ now?: number;
96
+ }): string | null;
97
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtC,+EAA+E;AAC/E,eAAO,MAAM,SAAS,qBAAqB,CAAC;AAE5C,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAG7C,CAAC;AAEF,wBAAgB,KAAK,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,KAAK,CAEjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAE7E;AAED,6EAA6E;AAC7E,wBAAgB,GAAG,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEhE;AAaD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,GAAE,KAAe,GAAG,MAAM,CAOrE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAE,KAAe,GAAG,MAAM,CAGhE;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACzC,KAAK,CAMP;AAQD,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEhE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzE;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAazF;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAqB7D;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAY/G;AAID,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,GAAG,IAAI,CAqBrH"}
package/dist/brand.js ADDED
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Which name this process was started under: `trail`, or `graft`, the name it
3
+ * had before.
4
+ *
5
+ * Both names run the same code. `trail` gets the new command layout and says
6
+ * `[trail]`; `graft` keeps every old command, meaning and output byte for byte,
7
+ * because agents, hooks, CI scripts and statusline parsers already read it.
8
+ * Nothing about graft is ever removed — see `graftNotice` for the one line a
9
+ * person typing it sees.
10
+ *
11
+ * The name travels in an environment variable rather than a module variable so
12
+ * that every child this process spawns (the detached update check, a hook's
13
+ * background build) speaks the same name as its parent. Unset means graft: the
14
+ * only things that load `dist/cli.js` without going through `dist/bin/*` are
15
+ * shims and configs an older graft wrote.
16
+ *
17
+ * This file imports nothing heavier than node:fs, because the hooks load it.
18
+ */
19
+ import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
20
+ import { homedir } from "node:os";
21
+ import { delimiter, dirname, join } from "node:path";
22
+ /** Set by `dist/bin/trail.js` and `dist/bin/graft.js` before the CLI loads. */
23
+ export const BRAND_ENV = "TRAIL_INVOKED_AS";
24
+ /** The npm package each name is published as. Same code, two names. */
25
+ export const PACKAGE_FOR = {
26
+ trail: "@trailhq/trail-code",
27
+ graft: "@nanonets/graft",
28
+ };
29
+ export function brand(env = process.env) {
30
+ return env[BRAND_ENV] === "trail" ? "trail" : "graft";
31
+ }
32
+ export function setBrand(b, env = process.env) {
33
+ env[BRAND_ENV] = b;
34
+ }
35
+ /** `[trail]` or `[graft]`: the prefix agents and the statusline look for. */
36
+ export function tag(env = process.env) {
37
+ return `[${brand(env)}]`;
38
+ }
39
+ /**
40
+ * The commands whose trail spelling is not just `graft` → `trail`, longest
41
+ * prefix first. `graft check` gave its name to the team check, and `graft
42
+ * stats` became `trail status`.
43
+ */
44
+ const RENAMED = [
45
+ ["graft check", "trail build --check"],
46
+ ["graft stats", "trail status"],
47
+ ["graft", "trail"],
48
+ ];
49
+ /**
50
+ * A command as the running name spells it. Takes the graft spelling, so call
51
+ * sites read the way they always have and graft's output does not change:
52
+ * `cmd("graft ask")` is `graft ask` under graft and `trail ask` under trail.
53
+ */
54
+ export function cmd(graftSpelling, b = brand()) {
55
+ if (b === "graft")
56
+ return graftSpelling;
57
+ for (const [from, to] of RENAMED) {
58
+ if (graftSpelling === from)
59
+ return to;
60
+ if (graftSpelling.startsWith(`${from} `))
61
+ return `${to}${graftSpelling.slice(from.length)}`;
62
+ }
63
+ return graftSpelling;
64
+ }
65
+ /**
66
+ * Agent-facing prose and tool names in trail's spelling: `graft_find_code` →
67
+ * `trail_find_code`, and the word graft → trail. A `graft` followed by `/` is
68
+ * the code map's folder and stays, as do `graft-…` names. Under graft, the
69
+ * text comes back unchanged.
70
+ */
71
+ export function inBrand(text, b = brand()) {
72
+ if (b === "graft")
73
+ return text;
74
+ return text.replace(/\bgraft_(?=[a-z])/g, "trail_").replace(/\bgraft\b(?![/\w-])/g, "trail");
75
+ }
76
+ /* -------------------------------------------------------------------------- */
77
+ /* hooks and the statusline */
78
+ /* -------------------------------------------------------------------------- */
79
+ /**
80
+ * `trail init` wired this repo under trail's names: its committed hooks shim,
81
+ * skill or settings say trail. Read from the repo, not the machine, so every
82
+ * teammate's agent speaks the same name whichever command they installed.
83
+ */
84
+ export function repoWiredForTrail(dir) {
85
+ if (existsSync(join(dir, ".claude", "helpers", "trail-hooks.cjs")) || existsSync(join(dir, ".claude", "skills", "trail", "SKILL.md")))
86
+ return true;
87
+ try {
88
+ return readFileSync(join(dir, ".claude", "settings.json"), "utf8").includes("trail-hooks.cjs");
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * The name hooks and the statusline speak in `repo`. They run under whatever
96
+ * shim set the repo up, often one an older graft committed, so no `dist/bin`
97
+ * entry has set a name. They say trail in a repo wired for it, but only when
98
+ * the `trail` command is installed on this machine: a hook that tells the
99
+ * agent to run a command the machine doesn't have costs a failed tool call.
100
+ * A name already set (by the CLI that spawned this) is kept. `wiredElsewhere`
101
+ * also counts a repo whose other agents' files are on trail (hosts/registry.ts's
102
+ * `hostsWiredForTrail`, passed in so this file stays light): Cursor's and
103
+ * Codex's hooks run this same entry in repos with no `.claude` at all.
104
+ */
105
+ export function adoptRepoBrand(repo, env = process.env, wiredElsewhere) {
106
+ if (env[BRAND_ENV] !== "trail" && env[BRAND_ENV] !== "graft") {
107
+ const wired = repoWiredForTrail(repo) || Boolean(wiredElsewhere?.(repo));
108
+ setBrand(wired && trailOnPath(env) ? "trail" : "graft", env);
109
+ }
110
+ return brand(env);
111
+ }
112
+ /* -------------------------------------------------------------------------- */
113
+ /* the once-a-day line for people still typing graft */
114
+ /* -------------------------------------------------------------------------- */
115
+ const DAY_MS = 24 * 60 * 60 * 1000;
116
+ export function noticeStampPath(home = homedir()) {
117
+ return join(home, ".graft", "rename-notice.json");
118
+ }
119
+ /** Whether a `trail` executable is on PATH. Only checked when the notice is due. */
120
+ export function trailOnPath(env = process.env) {
121
+ return commandOnPath("trail", env);
122
+ }
123
+ /** Whether an executable called `name` is on PATH: a few stats, no process spawned. */
124
+ export function commandOnPath(name, env = process.env) {
125
+ const names = process.platform === "win32" ? [`${name}.cmd`, `${name}.exe`, name] : [name];
126
+ for (const dir of (env.PATH ?? "").split(delimiter)) {
127
+ if (!dir)
128
+ continue;
129
+ for (const n of names) {
130
+ try {
131
+ if (statSync(join(dir, n)).isFile())
132
+ return true;
133
+ }
134
+ catch {
135
+ /* not here */
136
+ }
137
+ }
138
+ }
139
+ return false;
140
+ }
141
+ /**
142
+ * The line a person typing `graft` sees, at most once a day, or null.
143
+ *
144
+ * Never shown to an agent (no terminal, or Claude Code's `CLAUDECODE` is set),
145
+ * in CI, or under trail itself: agents and scripts get graft's output exactly
146
+ * as it was. Writing the stamp is best-effort; a home we cannot write to just
147
+ * means the line may show again tomorrow.
148
+ */
149
+ export function graftNotice(input) {
150
+ const env = input.env ?? process.env;
151
+ if (brand(env) !== "graft" || !input.tty)
152
+ return null;
153
+ if (env.CLAUDECODE !== undefined || env.CI || env.GRAFT_NO_RENAME_NOTICE)
154
+ return null;
155
+ const now = input.now ?? Date.now();
156
+ const path = noticeStampPath(input.home);
157
+ try {
158
+ const last = JSON.parse(readFileSync(path, "utf8")).shownAt ?? 0;
159
+ if (now - last < DAY_MS)
160
+ return null;
161
+ }
162
+ catch {
163
+ /* never shown */
164
+ }
165
+ try {
166
+ mkdirSync(dirname(path), { recursive: true });
167
+ writeFileSync(path, JSON.stringify({ shownAt: now }) + "\n");
168
+ }
169
+ catch {
170
+ /* shown again next time */
171
+ }
172
+ const lines = [`· graft is now trail. this ran ${cmd(input.ran, "trail")}, and graft keeps working (shown once a day)`];
173
+ if (!trailOnPath(env))
174
+ lines.push("· run graft upgrade to get the trail command too");
175
+ return lines.join("\n");
176
+ }
177
+ /** The nearest directory at or above `dir` holding a `.git`, or null. */
178
+ function gitRootOf(dir) {
179
+ for (let at = dir;; at = dirname(at)) {
180
+ if (existsSync(join(at, ".git")))
181
+ return at;
182
+ if (dirname(at) === at)
183
+ return null;
184
+ }
185
+ }
186
+ /**
187
+ * The line a person typing `trail` sees in a repo an older graft wired, while
188
+ * nothing on this machine can reach that wiring; or null.
189
+ *
190
+ * A graft 0.21 or older committed hook shims that look for `@nanonets/graft`
191
+ * alone, and registered a bare `graft mcp` server. On a machine with trail and
192
+ * no graft, the hooks run and do nothing and the server never starts, so the
193
+ * session start that would move the repo to trail never happens. `trail init`
194
+ * in the repo moves it, and so does a session opened under the hooks
195
+ * `trail init` writes to `~/.claude`; this says so to someone who has done
196
+ * neither. Silent once graft is on PATH, since its hooks then move the repo.
197
+ * Never shown to an agent, a pipe or CI, like {@link graftNotice}.
198
+ */
199
+ export function strandedRepoNotice(input) {
200
+ const env = input.env ?? process.env;
201
+ if (brand(env) !== "trail" || !input.tty)
202
+ return null;
203
+ if (env.CLAUDECODE !== undefined || env.CI)
204
+ return null;
205
+ const repo = gitRootOf(input.cwd);
206
+ if (!repo || repoWiredForTrail(repo) || commandOnPath("graft", env))
207
+ return null;
208
+ try {
209
+ if (readFileSync(join(repo, ".claude", "helpers", "graft-hooks.cjs"), "utf8").includes(PACKAGE_FOR.trail))
210
+ return null;
211
+ }
212
+ catch {
213
+ return null; // no graft wiring here
214
+ }
215
+ return "· this repo's agent hooks were set up by an older graft and can't find trail. run trail init here once to move the repo over";
216
+ }
217
+ const WEEK_MS = 7 * DAY_MS;
218
+ export function handoverStampPath(home = homedir()) {
219
+ return join(home, ".graft", "trail-handover.json");
220
+ }
221
+ /**
222
+ * The line a Claude Code session start hands the agent on a machine that has
223
+ * graft but not the trail command, at most once a week; or null.
224
+ *
225
+ * {@link graftNotice} reaches a person typing graft. Most people only meet
226
+ * graft through their agent, so the agent is the one who can tell them that
227
+ * `graft upgrade` adds trail. Once trail is installed, the next session moves
228
+ * the repo over by itself (see upkeep-run.ts), so this stops.
229
+ */
230
+ export function trailHandoverLine(input = {}) {
231
+ const env = input.env ?? process.env;
232
+ if (brand(env) !== "graft" || env.CI || env.GRAFT_NO_RENAME_NOTICE || trailOnPath(env))
233
+ return null;
234
+ const now = input.now ?? Date.now();
235
+ const path = handoverStampPath(input.home);
236
+ try {
237
+ const last = JSON.parse(readFileSync(path, "utf8")).shownAt ?? 0;
238
+ if (now - last < WEEK_MS)
239
+ return null;
240
+ }
241
+ catch {
242
+ /* never shown */
243
+ }
244
+ try {
245
+ mkdirSync(dirname(path), { recursive: true });
246
+ writeFileSync(path, JSON.stringify({ shownAt: now }) + "\n");
247
+ }
248
+ catch {
249
+ /* shown again next time */
250
+ }
251
+ return ("· graft is now Trail-code: the same code map under the `trail` command, plus learnings the team shares in .trail/. " +
252
+ "Tell the user once, in a line at the end of your first reply, that `graft upgrade` adds it and graft keeps working.");
253
+ }
254
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type Note } from "../notes/notes.js";
2
+ import type { CheckFinding } from "./types.js";
3
+ /** The learnings among `changed` that already existed at `from`, as they were there. */
4
+ export declare function learningsAtBase(repo: string, from: string, changed: string[]): Note[];
5
+ /** `notes` with each learning the branch changed swapped for its version at the base. */
6
+ export declare function withBaseLearnings(notes: Note[], atBase: Note[]): Note[];
7
+ /** One conflict per teammate's learning the branch edited or removed. */
8
+ export declare function teammateEdits(repo: string, atBase: Note[], me: string): CheckFinding[];
9
+ //# sourceMappingURL=learning-edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-edits.d.ts","sourceRoot":"","sources":["../../src/check/learning-edits.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CASrF;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAMvE;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,EAAE,CAatF"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Learnings a branch changed, read as they were where the branch left its
3
+ * base. `trail check` reads those, so rewriting a teammate's learning ("reversed:
4
+ * now 10") can't hide the conflict it records. And an edit to someone else's
5
+ * learning is a finding of its own: theirs stays as written, and a new learning
6
+ * says what changed.
7
+ */
8
+ import { execFileSync } from "node:child_process";
9
+ import { existsSync } from "node:fs";
10
+ import { basename, join } from "node:path";
11
+ import { parseNote } from "../notes/notes.js";
12
+ import { LEARNINGS_DIR } from "../notes/repo-trail.js";
13
+ function show(repo, ref, path) {
14
+ try {
15
+ return execFileSync("git", ["show", `${ref}:${path}`], {
16
+ cwd: repo,
17
+ encoding: "utf8",
18
+ stdio: ["ignore", "pipe", "ignore"],
19
+ maxBuffer: 4 * 1024 * 1024,
20
+ });
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ /** The learnings among `changed` that already existed at `from`, as they were there. */
27
+ export function learningsAtBase(repo, from, changed) {
28
+ const out = [];
29
+ for (const path of changed) {
30
+ if (!path.startsWith(`${LEARNINGS_DIR}/`) || !path.endsWith(".md"))
31
+ continue;
32
+ const text = show(repo, from, path);
33
+ const note = text === null ? null : parseNote(text, join(repo, path));
34
+ if (note)
35
+ out.push({ ...note, scope: "repo" });
36
+ }
37
+ return out;
38
+ }
39
+ /** `notes` with each learning the branch changed swapped for its version at the base. */
40
+ export function withBaseLearnings(notes, atBase) {
41
+ const byName = new Map(atBase.map((n) => [basename(n.path), n]));
42
+ return notes.map((n) => {
43
+ const base = !n.ref && n.scope !== "personal" ? byName.get(basename(n.path)) : undefined;
44
+ return base ? { ...base, teammate: n.teammate } : n;
45
+ });
46
+ }
47
+ /** One conflict per teammate's learning the branch edited or removed. */
48
+ export function teammateEdits(repo, atBase, me) {
49
+ return atBase
50
+ .filter((n) => n.author && n.author.toLowerCase() !== me.toLowerCase())
51
+ .map((n) => {
52
+ const file = `${LEARNINGS_DIR}/${basename(n.path)}`;
53
+ const verb = existsSync(join(repo, file)) ? "edits" : "removes";
54
+ return {
55
+ file,
56
+ verdict: "conflict",
57
+ summary: `${verb} ${n.author}'s learning · leave it as it was, and save what changed as a learning of your own with trail note`,
58
+ source: { kind: "note", title: n.title, author: n.author, date: n.date, path: n.path, quote: n.title },
59
+ };
60
+ });
61
+ }
62
+ //# sourceMappingURL=learning-edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-edits.js","sourceRoot":"","sources":["../../src/check/learning-edits.ts"],"names":[],"mappings":"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"}