@mclawnet/swarm 0.1.12 → 0.1.14

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 (368) hide show
  1. package/dist/__tests__/always-on-activity-reader.test.d.ts +2 -0
  2. package/dist/__tests__/always-on-activity-reader.test.d.ts.map +1 -0
  3. package/dist/__tests__/always-on-activity-reader.test.js +193 -0
  4. package/dist/__tests__/always-on-activity-reader.test.js.map +1 -0
  5. package/dist/__tests__/always-on-config.test.d.ts +2 -0
  6. package/dist/__tests__/always-on-config.test.d.ts.map +1 -0
  7. package/dist/__tests__/always-on-config.test.js +285 -0
  8. package/dist/__tests__/always-on-config.test.js.map +1 -0
  9. package/dist/__tests__/always-on-manager.test.d.ts +2 -0
  10. package/dist/__tests__/always-on-manager.test.d.ts.map +1 -0
  11. package/dist/__tests__/always-on-manager.test.js +797 -0
  12. package/dist/__tests__/always-on-manager.test.js.map +1 -0
  13. package/dist/__tests__/always-on-parity.test.d.ts +2 -0
  14. package/dist/__tests__/always-on-parity.test.d.ts.map +1 -0
  15. package/dist/__tests__/always-on-parity.test.js +20 -0
  16. package/dist/__tests__/always-on-parity.test.js.map +1 -0
  17. package/dist/__tests__/cascade-picker.test.d.ts +2 -0
  18. package/dist/__tests__/cascade-picker.test.d.ts.map +1 -0
  19. package/dist/__tests__/cascade-picker.test.js +122 -0
  20. package/dist/__tests__/cascade-picker.test.js.map +1 -0
  21. package/dist/__tests__/coordinator-shipment.test.d.ts +2 -0
  22. package/dist/__tests__/coordinator-shipment.test.d.ts.map +1 -0
  23. package/dist/__tests__/coordinator-shipment.test.js +280 -0
  24. package/dist/__tests__/coordinator-shipment.test.js.map +1 -0
  25. package/dist/__tests__/coordinator-workspace-recover.test.d.ts +2 -0
  26. package/dist/__tests__/coordinator-workspace-recover.test.d.ts.map +1 -0
  27. package/dist/__tests__/coordinator-workspace-recover.test.js +140 -0
  28. package/dist/__tests__/coordinator-workspace-recover.test.js.map +1 -0
  29. package/dist/__tests__/coordinator-workspace.test.d.ts +2 -0
  30. package/dist/__tests__/coordinator-workspace.test.d.ts.map +1 -0
  31. package/dist/__tests__/coordinator-workspace.test.js +135 -0
  32. package/dist/__tests__/coordinator-workspace.test.js.map +1 -0
  33. package/dist/__tests__/default-runner-epipe.test.d.ts +2 -0
  34. package/dist/__tests__/default-runner-epipe.test.d.ts.map +1 -0
  35. package/dist/__tests__/default-runner-epipe.test.js +43 -0
  36. package/dist/__tests__/default-runner-epipe.test.js.map +1 -0
  37. package/dist/__tests__/discovery-scheduler.test.d.ts +2 -0
  38. package/dist/__tests__/discovery-scheduler.test.d.ts.map +1 -0
  39. package/dist/__tests__/discovery-scheduler.test.js +367 -0
  40. package/dist/__tests__/discovery-scheduler.test.js.map +1 -0
  41. package/dist/__tests__/env-forward-e2e.test.d.ts +2 -0
  42. package/dist/__tests__/env-forward-e2e.test.d.ts.map +1 -0
  43. package/dist/__tests__/env-forward-e2e.test.js +57 -0
  44. package/dist/__tests__/env-forward-e2e.test.js.map +1 -0
  45. package/dist/__tests__/gh-pr-creator.test.d.ts +2 -0
  46. package/dist/__tests__/gh-pr-creator.test.d.ts.map +1 -0
  47. package/dist/__tests__/gh-pr-creator.test.js +107 -0
  48. package/dist/__tests__/gh-pr-creator.test.js.map +1 -0
  49. package/dist/__tests__/git-worktree-provider.test.d.ts +2 -0
  50. package/dist/__tests__/git-worktree-provider.test.d.ts.map +1 -0
  51. package/dist/__tests__/git-worktree-provider.test.js +98 -0
  52. package/dist/__tests__/git-worktree-provider.test.js.map +1 -0
  53. package/dist/__tests__/gitignore-check.test.d.ts +2 -0
  54. package/dist/__tests__/gitignore-check.test.d.ts.map +1 -0
  55. package/dist/__tests__/gitignore-check.test.js +39 -0
  56. package/dist/__tests__/gitignore-check.test.js.map +1 -0
  57. package/dist/__tests__/idea-research-source.test.d.ts +2 -0
  58. package/dist/__tests__/idea-research-source.test.d.ts.map +1 -0
  59. package/dist/__tests__/idea-research-source.test.js +425 -0
  60. package/dist/__tests__/idea-research-source.test.js.map +1 -0
  61. package/dist/__tests__/idea-todo-source.test.d.ts +2 -0
  62. package/dist/__tests__/idea-todo-source.test.d.ts.map +1 -0
  63. package/dist/__tests__/idea-todo-source.test.js +258 -0
  64. package/dist/__tests__/idea-todo-source.test.js.map +1 -0
  65. package/dist/__tests__/inbox-store-notbefore.test.d.ts +2 -0
  66. package/dist/__tests__/inbox-store-notbefore.test.d.ts.map +1 -0
  67. package/dist/__tests__/inbox-store-notbefore.test.js +47 -0
  68. package/dist/__tests__/inbox-store-notbefore.test.js.map +1 -0
  69. package/dist/__tests__/inbox-store-swarmid-validation.test.d.ts +2 -0
  70. package/dist/__tests__/inbox-store-swarmid-validation.test.d.ts.map +1 -0
  71. package/dist/__tests__/inbox-store-swarmid-validation.test.js +32 -0
  72. package/dist/__tests__/inbox-store-swarmid-validation.test.js.map +1 -0
  73. package/dist/__tests__/introspection-dedupe.test.d.ts +2 -0
  74. package/dist/__tests__/introspection-dedupe.test.d.ts.map +1 -0
  75. package/dist/__tests__/introspection-dedupe.test.js +484 -0
  76. package/dist/__tests__/introspection-dedupe.test.js.map +1 -0
  77. package/dist/__tests__/introspection-source.test.d.ts +2 -0
  78. package/dist/__tests__/introspection-source.test.d.ts.map +1 -0
  79. package/dist/__tests__/introspection-source.test.js +1051 -0
  80. package/dist/__tests__/introspection-source.test.js.map +1 -0
  81. package/dist/__tests__/migration-roles.test.js +1 -22
  82. package/dist/__tests__/migration-roles.test.js.map +1 -1
  83. package/dist/__tests__/reconcile-researching.test.d.ts +2 -0
  84. package/dist/__tests__/reconcile-researching.test.d.ts.map +1 -0
  85. package/dist/__tests__/reconcile-researching.test.js +224 -0
  86. package/dist/__tests__/reconcile-researching.test.js.map +1 -0
  87. package/dist/__tests__/role-loader-editor.test.js +40 -10
  88. package/dist/__tests__/role-loader-editor.test.js.map +1 -1
  89. package/dist/__tests__/role-loader-preamble-all.test.js +3 -1
  90. package/dist/__tests__/role-loader-preamble-all.test.js.map +1 -1
  91. package/dist/__tests__/role-loader.test.js +95 -0
  92. package/dist/__tests__/role-loader.test.js.map +1 -1
  93. package/dist/__tests__/role-prompt-no-legacy-protocol.test.js +3 -1
  94. package/dist/__tests__/role-prompt-no-legacy-protocol.test.js.map +1 -1
  95. package/dist/__tests__/secret-scrub.test.d.ts +2 -0
  96. package/dist/__tests__/secret-scrub.test.d.ts.map +1 -0
  97. package/dist/__tests__/secret-scrub.test.js +55 -0
  98. package/dist/__tests__/secret-scrub.test.js.map +1 -0
  99. package/dist/__tests__/shipment-actions.test.d.ts +2 -0
  100. package/dist/__tests__/shipment-actions.test.d.ts.map +1 -0
  101. package/dist/__tests__/shipment-actions.test.js +378 -0
  102. package/dist/__tests__/shipment-actions.test.js.map +1 -0
  103. package/dist/__tests__/shipment-persistence.test.d.ts +2 -0
  104. package/dist/__tests__/shipment-persistence.test.d.ts.map +1 -0
  105. package/dist/__tests__/shipment-persistence.test.js +120 -0
  106. package/dist/__tests__/shipment-persistence.test.js.map +1 -0
  107. package/dist/__tests__/shipment-pipeline.test.d.ts +2 -0
  108. package/dist/__tests__/shipment-pipeline.test.d.ts.map +1 -0
  109. package/dist/__tests__/shipment-pipeline.test.js +392 -0
  110. package/dist/__tests__/shipment-pipeline.test.js.map +1 -0
  111. package/dist/__tests__/shipment-report.test.d.ts +2 -0
  112. package/dist/__tests__/shipment-report.test.d.ts.map +1 -0
  113. package/dist/__tests__/shipment-report.test.js +78 -0
  114. package/dist/__tests__/shipment-report.test.js.map +1 -0
  115. package/dist/__tests__/shipment-stdin-integration.test.d.ts +2 -0
  116. package/dist/__tests__/shipment-stdin-integration.test.d.ts.map +1 -0
  117. package/dist/__tests__/shipment-stdin-integration.test.js +49 -0
  118. package/dist/__tests__/shipment-stdin-integration.test.js.map +1 -0
  119. package/dist/__tests__/shipment-type-parity.test.d.ts +2 -0
  120. package/dist/__tests__/shipment-type-parity.test.d.ts.map +1 -0
  121. package/dist/__tests__/shipment-type-parity.test.js +10 -0
  122. package/dist/__tests__/shipment-type-parity.test.js.map +1 -0
  123. package/dist/__tests__/snapshot-copy-provider.test.d.ts +2 -0
  124. package/dist/__tests__/snapshot-copy-provider.test.d.ts.map +1 -0
  125. package/dist/__tests__/snapshot-copy-provider.test.js +88 -0
  126. package/dist/__tests__/snapshot-copy-provider.test.js.map +1 -0
  127. package/dist/__tests__/swarm-coordinator-backend.test.js +153 -0
  128. package/dist/__tests__/swarm-coordinator-backend.test.js.map +1 -1
  129. package/dist/__tests__/swarm-coordinator-complete-intercept.test.d.ts +2 -0
  130. package/dist/__tests__/swarm-coordinator-complete-intercept.test.d.ts.map +1 -0
  131. package/dist/__tests__/swarm-coordinator-complete-intercept.test.js +111 -0
  132. package/dist/__tests__/swarm-coordinator-complete-intercept.test.js.map +1 -0
  133. package/dist/__tests__/task-store-source.test.d.ts +2 -0
  134. package/dist/__tests__/task-store-source.test.d.ts.map +1 -0
  135. package/dist/__tests__/task-store-source.test.js +56 -0
  136. package/dist/__tests__/task-store-source.test.js.map +1 -0
  137. package/dist/__tests__/template-loader-editor.test.js +28 -13
  138. package/dist/__tests__/template-loader-editor.test.js.map +1 -1
  139. package/dist/__tests__/transport-detect.test.d.ts +2 -0
  140. package/dist/__tests__/transport-detect.test.d.ts.map +1 -0
  141. package/dist/__tests__/transport-detect.test.js +92 -0
  142. package/dist/__tests__/transport-detect.test.js.map +1 -0
  143. package/dist/__tests__/wakeup-end-to-end.test.d.ts +2 -0
  144. package/dist/__tests__/wakeup-end-to-end.test.d.ts.map +1 -0
  145. package/dist/__tests__/wakeup-end-to-end.test.js +80 -0
  146. package/dist/__tests__/wakeup-end-to-end.test.js.map +1 -0
  147. package/dist/__tests__/wakeup-scheduler-restore-fires.test.d.ts +2 -0
  148. package/dist/__tests__/wakeup-scheduler-restore-fires.test.d.ts.map +1 -0
  149. package/dist/__tests__/wakeup-scheduler-restore-fires.test.js +33 -0
  150. package/dist/__tests__/wakeup-scheduler-restore-fires.test.js.map +1 -0
  151. package/dist/__tests__/wakeup-scheduler-restore.test.d.ts +2 -0
  152. package/dist/__tests__/wakeup-scheduler-restore.test.d.ts.map +1 -0
  153. package/dist/__tests__/wakeup-scheduler-restore.test.js +62 -0
  154. package/dist/__tests__/wakeup-scheduler-restore.test.js.map +1 -0
  155. package/dist/__tests__/wakeup-scheduler.test.d.ts +2 -0
  156. package/dist/__tests__/wakeup-scheduler.test.d.ts.map +1 -0
  157. package/dist/__tests__/wakeup-scheduler.test.js +65 -0
  158. package/dist/__tests__/wakeup-scheduler.test.js.map +1 -0
  159. package/dist/__tests__/watch-manager.test.d.ts +2 -0
  160. package/dist/__tests__/watch-manager.test.d.ts.map +1 -0
  161. package/dist/__tests__/watch-manager.test.js +203 -0
  162. package/dist/__tests__/watch-manager.test.js.map +1 -0
  163. package/dist/__tests__/workcycle-runner-cascade.test.d.ts +2 -0
  164. package/dist/__tests__/workcycle-runner-cascade.test.d.ts.map +1 -0
  165. package/dist/__tests__/workcycle-runner-cascade.test.js +203 -0
  166. package/dist/__tests__/workcycle-runner-cascade.test.js.map +1 -0
  167. package/dist/__tests__/workcycle-runner.test.d.ts +2 -0
  168. package/dist/__tests__/workcycle-runner.test.d.ts.map +1 -0
  169. package/dist/__tests__/workcycle-runner.test.js +369 -0
  170. package/dist/__tests__/workcycle-runner.test.js.map +1 -0
  171. package/dist/__tests__/workspace-diff.test.d.ts +2 -0
  172. package/dist/__tests__/workspace-diff.test.d.ts.map +1 -0
  173. package/dist/__tests__/workspace-diff.test.js +62 -0
  174. package/dist/__tests__/workspace-diff.test.js.map +1 -0
  175. package/dist/__tests__/workspace-manager.test.d.ts +2 -0
  176. package/dist/__tests__/workspace-manager.test.d.ts.map +1 -0
  177. package/dist/__tests__/workspace-manager.test.js +120 -0
  178. package/dist/__tests__/workspace-manager.test.js.map +1 -0
  179. package/dist/__tests__/workspace-types.test.d.ts +2 -0
  180. package/dist/__tests__/workspace-types.test.d.ts.map +1 -0
  181. package/dist/__tests__/workspace-types.test.js +37 -0
  182. package/dist/__tests__/workspace-types.test.js.map +1 -0
  183. package/dist/__tests__/worktree-gc.test.d.ts +2 -0
  184. package/dist/__tests__/worktree-gc.test.d.ts.map +1 -0
  185. package/dist/__tests__/worktree-gc.test.js +183 -0
  186. package/dist/__tests__/worktree-gc.test.js.map +1 -0
  187. package/dist/always-on/activity-reader.d.ts +27 -0
  188. package/dist/always-on/activity-reader.d.ts.map +1 -0
  189. package/dist/always-on/activity-reader.js +95 -0
  190. package/dist/always-on/activity-reader.js.map +1 -0
  191. package/dist/always-on/always-on-manager.d.ts +170 -0
  192. package/dist/always-on/always-on-manager.d.ts.map +1 -0
  193. package/dist/always-on/always-on-manager.js +538 -0
  194. package/dist/always-on/always-on-manager.js.map +1 -0
  195. package/dist/always-on/config.d.ts +141 -0
  196. package/dist/always-on/config.d.ts.map +1 -0
  197. package/dist/always-on/config.js +324 -0
  198. package/dist/always-on/config.js.map +1 -0
  199. package/dist/always-on/discovery-scheduler.d.ts +60 -0
  200. package/dist/always-on/discovery-scheduler.d.ts.map +1 -0
  201. package/dist/always-on/discovery-scheduler.js +287 -0
  202. package/dist/always-on/discovery-scheduler.js.map +1 -0
  203. package/dist/always-on/ideas-client.d.ts +23 -0
  204. package/dist/always-on/ideas-client.d.ts.map +1 -0
  205. package/dist/always-on/ideas-client.js +13 -0
  206. package/dist/always-on/ideas-client.js.map +1 -0
  207. package/dist/always-on/reconcile-researching.d.ts +42 -0
  208. package/dist/always-on/reconcile-researching.d.ts.map +1 -0
  209. package/dist/always-on/reconcile-researching.js +133 -0
  210. package/dist/always-on/reconcile-researching.js.map +1 -0
  211. package/dist/always-on/task-sources/cascade-picker.d.ts +42 -0
  212. package/dist/always-on/task-sources/cascade-picker.d.ts.map +1 -0
  213. package/dist/always-on/task-sources/cascade-picker.js +65 -0
  214. package/dist/always-on/task-sources/cascade-picker.js.map +1 -0
  215. package/dist/always-on/task-sources/idea-dedupe.d.ts +62 -0
  216. package/dist/always-on/task-sources/idea-dedupe.d.ts.map +1 -0
  217. package/dist/always-on/task-sources/idea-dedupe.js +130 -0
  218. package/dist/always-on/task-sources/idea-dedupe.js.map +1 -0
  219. package/dist/always-on/task-sources/idea-research-source.d.ts +46 -0
  220. package/dist/always-on/task-sources/idea-research-source.d.ts.map +1 -0
  221. package/dist/always-on/task-sources/idea-research-source.js +308 -0
  222. package/dist/always-on/task-sources/idea-research-source.js.map +1 -0
  223. package/dist/always-on/task-sources/idea-sort.d.ts +3 -0
  224. package/dist/always-on/task-sources/idea-sort.d.ts.map +1 -0
  225. package/dist/always-on/task-sources/idea-sort.js +25 -0
  226. package/dist/always-on/task-sources/idea-sort.js.map +1 -0
  227. package/dist/always-on/task-sources/idea-todo-source.d.ts +48 -0
  228. package/dist/always-on/task-sources/idea-todo-source.d.ts.map +1 -0
  229. package/dist/always-on/task-sources/idea-todo-source.js +226 -0
  230. package/dist/always-on/task-sources/idea-todo-source.js.map +1 -0
  231. package/dist/always-on/task-sources/introspection-source.d.ts +101 -0
  232. package/dist/always-on/task-sources/introspection-source.d.ts.map +1 -0
  233. package/dist/always-on/task-sources/introspection-source.js +695 -0
  234. package/dist/always-on/task-sources/introspection-source.js.map +1 -0
  235. package/dist/always-on/task-sources/task-store-source.d.ts +15 -0
  236. package/dist/always-on/task-sources/task-store-source.d.ts.map +1 -0
  237. package/dist/always-on/task-sources/task-store-source.js +59 -0
  238. package/dist/always-on/task-sources/task-store-source.js.map +1 -0
  239. package/dist/always-on/task-sources/types.d.ts +108 -0
  240. package/dist/always-on/task-sources/types.d.ts.map +1 -0
  241. package/dist/always-on/task-sources/types.js +13 -0
  242. package/dist/always-on/task-sources/types.js.map +1 -0
  243. package/dist/always-on/types.d.ts +76 -0
  244. package/dist/always-on/types.d.ts.map +1 -0
  245. package/dist/always-on/types.js +17 -0
  246. package/dist/always-on/types.js.map +1 -0
  247. package/dist/always-on/workcycle-runner.d.ts +115 -0
  248. package/dist/always-on/workcycle-runner.d.ts.map +1 -0
  249. package/dist/always-on/workcycle-runner.js +285 -0
  250. package/dist/always-on/workcycle-runner.js.map +1 -0
  251. package/dist/always-on/worktree-gc.d.ts +41 -0
  252. package/dist/always-on/worktree-gc.d.ts.map +1 -0
  253. package/dist/always-on/worktree-gc.js +167 -0
  254. package/dist/always-on/worktree-gc.js.map +1 -0
  255. package/dist/inbox-store.d.ts +7 -0
  256. package/dist/inbox-store.d.ts.map +1 -1
  257. package/dist/inbox-store.js +8 -1
  258. package/dist/inbox-store.js.map +1 -1
  259. package/dist/index.d.ts +29 -3
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +27 -2
  262. package/dist/index.js.map +1 -1
  263. package/dist/persistence.d.ts +37 -1
  264. package/dist/persistence.d.ts.map +1 -1
  265. package/dist/persistence.js +48 -0
  266. package/dist/persistence.js.map +1 -1
  267. package/dist/retrospective.d.ts.map +1 -1
  268. package/dist/retrospective.js +6 -0
  269. package/dist/retrospective.js.map +1 -1
  270. package/dist/roles/role-loader.d.ts +31 -6
  271. package/dist/roles/role-loader.d.ts.map +1 -1
  272. package/dist/roles/role-loader.js +58 -32
  273. package/dist/roles/role-loader.js.map +1 -1
  274. package/dist/roles/types.d.ts +12 -0
  275. package/dist/roles/types.d.ts.map +1 -1
  276. package/dist/shipment/gh-pr-creator.d.ts +28 -0
  277. package/dist/shipment/gh-pr-creator.d.ts.map +1 -0
  278. package/dist/shipment/gh-pr-creator.js +80 -0
  279. package/dist/shipment/gh-pr-creator.js.map +1 -0
  280. package/dist/shipment/report.d.ts +27 -0
  281. package/dist/shipment/report.d.ts.map +1 -0
  282. package/dist/shipment/report.js +41 -0
  283. package/dist/shipment/report.js.map +1 -0
  284. package/dist/shipment/secret-scrub.d.ts +12 -0
  285. package/dist/shipment/secret-scrub.d.ts.map +1 -0
  286. package/dist/shipment/secret-scrub.js +30 -0
  287. package/dist/shipment/secret-scrub.js.map +1 -0
  288. package/dist/shipment/shipment-actions.d.ts +85 -0
  289. package/dist/shipment/shipment-actions.d.ts.map +1 -0
  290. package/dist/shipment/shipment-actions.js +190 -0
  291. package/dist/shipment/shipment-actions.js.map +1 -0
  292. package/dist/shipment/shipment-pipeline.d.ts +48 -0
  293. package/dist/shipment/shipment-pipeline.d.ts.map +1 -0
  294. package/dist/shipment/shipment-pipeline.js +256 -0
  295. package/dist/shipment/shipment-pipeline.js.map +1 -0
  296. package/dist/shipment/transport-detect.d.ts +16 -0
  297. package/dist/shipment/transport-detect.d.ts.map +1 -0
  298. package/dist/shipment/transport-detect.js +54 -0
  299. package/dist/shipment/transport-detect.js.map +1 -0
  300. package/dist/shipment/workspace-diff.d.ts +39 -0
  301. package/dist/shipment/workspace-diff.d.ts.map +1 -0
  302. package/dist/shipment/workspace-diff.js +64 -0
  303. package/dist/shipment/workspace-diff.js.map +1 -0
  304. package/dist/swarm-coordinator.d.ts +20 -1
  305. package/dist/swarm-coordinator.d.ts.map +1 -1
  306. package/dist/swarm-coordinator.js +193 -10
  307. package/dist/swarm-coordinator.js.map +1 -1
  308. package/dist/templates/template-loader.d.ts +23 -9
  309. package/dist/templates/template-loader.d.ts.map +1 -1
  310. package/dist/templates/template-loader.js +33 -26
  311. package/dist/templates/template-loader.js.map +1 -1
  312. package/dist/types.d.ts +62 -0
  313. package/dist/types.d.ts.map +1 -1
  314. package/dist/wakeup-scheduler.d.ts +36 -0
  315. package/dist/wakeup-scheduler.d.ts.map +1 -0
  316. package/dist/wakeup-scheduler.js +107 -0
  317. package/dist/wakeup-scheduler.js.map +1 -0
  318. package/dist/watch-manager.d.ts +32 -0
  319. package/dist/watch-manager.d.ts.map +1 -0
  320. package/dist/watch-manager.js +153 -0
  321. package/dist/watch-manager.js.map +1 -0
  322. package/dist/workspace/git-worktree-provider.d.ts +11 -0
  323. package/dist/workspace/git-worktree-provider.d.ts.map +1 -0
  324. package/dist/workspace/git-worktree-provider.js +123 -0
  325. package/dist/workspace/git-worktree-provider.js.map +1 -0
  326. package/dist/workspace/gitignore-check.d.ts +10 -0
  327. package/dist/workspace/gitignore-check.d.ts.map +1 -0
  328. package/dist/workspace/gitignore-check.js +25 -0
  329. package/dist/workspace/gitignore-check.js.map +1 -0
  330. package/dist/workspace/index.d.ts +5 -0
  331. package/dist/workspace/index.d.ts.map +1 -0
  332. package/dist/workspace/index.js +5 -0
  333. package/dist/workspace/index.js.map +1 -0
  334. package/dist/workspace/snapshot-copy-provider.d.ts +11 -0
  335. package/dist/workspace/snapshot-copy-provider.d.ts.map +1 -0
  336. package/dist/workspace/snapshot-copy-provider.js +66 -0
  337. package/dist/workspace/snapshot-copy-provider.js.map +1 -0
  338. package/dist/workspace/types.d.ts +36 -0
  339. package/dist/workspace/types.d.ts.map +1 -0
  340. package/dist/workspace/types.js +2 -0
  341. package/dist/workspace/types.js.map +1 -0
  342. package/dist/workspace/workspace-manager.d.ts +30 -0
  343. package/dist/workspace/workspace-manager.d.ts.map +1 -0
  344. package/dist/workspace/workspace-manager.js +104 -0
  345. package/dist/workspace/workspace-manager.js.map +1 -0
  346. package/package.json +5 -5
  347. package/roles/queen.md +1 -0
  348. package/templates/introspection.md +64 -0
  349. package/templates/research-only.md +58 -0
  350. package/roles/preset-analyst-simons.md +0 -39
  351. package/roles/preset-architect-knuth.md +0 -39
  352. package/roles/preset-designer-norman.md +0 -39
  353. package/roles/preset-designer.md +0 -39
  354. package/roles/preset-dev-carmack.md +0 -39
  355. package/roles/preset-dev-gosling.md +0 -39
  356. package/roles/preset-developer.md +0 -52
  357. package/roles/preset-manager-grove.md +0 -39
  358. package/roles/preset-manager-musk.md +0 -39
  359. package/roles/preset-pm.md +0 -78
  360. package/roles/preset-researcher-feynman.md +0 -39
  361. package/roles/preset-reviewer.md +0 -46
  362. package/roles/preset-strategist-buffett.md +0 -39
  363. package/roles/preset-strategist-munger.md +0 -39
  364. package/roles/preset-strategist-sunzi.md +0 -39
  365. package/roles/preset-tester-beck.md +0 -40
  366. package/roles/preset-tester.md +0 -47
  367. package/roles/preset-writer-orwell.md +0 -39
  368. package/roles/preset-writer.md +0 -39
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipment-actions.js","sourceRoot":"","sources":["../../src/shipment/shipment-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { SwarmInstance } from "../types.js";
2
+ import { type CommandRunnerWithStdin } from "./gh-pr-creator.js";
3
+ export interface ShipmentInput {
4
+ swarm: SwarmInstance;
5
+ /** Optional LLM caller for title/summary generation. Falls back to swarmId/diffStat if absent. */
6
+ generateText?: (prompt: string) => Promise<string>;
7
+ /**
8
+ * Test injection: command runner for git/gh/cp commands. Supports stdin so
9
+ * `gh pr create --body-file -` receives the rendered report body.
10
+ * For backwards compatibility, runners that only accept (cmd, args) or
11
+ * (cmd, args, cwd) work for non-stdin commands.
12
+ */
13
+ runner?: CommandRunnerWithStdin;
14
+ /** Test injection: file writer (for fallback diff.patch + report.md). */
15
+ writeFile?: (path: string, contents: string) => Promise<void>;
16
+ }
17
+ export interface ShipmentResult {
18
+ strategy: "pr" | "diff-only" | "skipped";
19
+ /** ISO timestamp when shipment ran. M6.2 UI uses this for display. */
20
+ createdAt: string;
21
+ /** PR title (LLM-generated or fallback). M6.2 UI surface. */
22
+ title?: string;
23
+ /** PR summary (first ~200 chars; full version lives in report.md). M6.2 UI surface. */
24
+ summary?: string;
25
+ prUrl?: string;
26
+ branchName?: string;
27
+ diffPath?: string;
28
+ reportPath?: string;
29
+ /** Populated when strategy=diff-only because a PR attempt failed; carries the gh error. */
30
+ prAttemptError?: string;
31
+ error?: string;
32
+ /**
33
+ * ISO timestamp stamped by `mergeShipment()` when the user marks the PR as
34
+ * merged. Lives on the on-disk JSON; M6.3's history view surfaces it as the
35
+ * "Merged" filter. Optional because most shipments are never marked merged
36
+ * and pre-M6.2.3 shipment.json files don't have the field at all.
37
+ */
38
+ mergedAt?: string;
39
+ }
40
+ /**
41
+ * Stdin-aware default runner. When `opts.stdin` is set, opens a stdin pipe so
42
+ * `gh pr create --body-file -` can read the rendered report body. Mirrors
43
+ * gh-pr-creator's own defaultRunner so production wiring actually delivers
44
+ * stdin to subprocesses.
45
+ */
46
+ export declare const defaultRunnerWithStdin: CommandRunnerWithStdin;
47
+ export declare function runShipment(input: ShipmentInput): Promise<ShipmentResult>;
48
+ //# sourceMappingURL=shipment-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipment-pipeline.d.ts","sourceRoot":"","sources":["../../src/shipment/shipment-pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA+BhF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,kGAAkG;IAClG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AAKH,eAAO,MAAM,sBAAsB,EAAE,sBAwBpC,CAAC;AAEF,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA8L/E"}
@@ -0,0 +1,256 @@
1
+ import { writeFile as fsWriteFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { createLogger } from "@mclawnet/logger";
4
+ import { computeWorkspaceDiff } from "./workspace-diff.js";
5
+ import { renderReport } from "./report.js";
6
+ import { detectTransport } from "./transport-detect.js";
7
+ import { createDraftPR } from "./gh-pr-creator.js";
8
+ import { scrubSecrets } from "./secret-scrub.js";
9
+ const log = createLogger({ module: "swarm/shipment/pipeline" });
10
+ /**
11
+ * Auto-commit identity. Surfaces in `git log`/`git blame` so reviewers can
12
+ * distinguish swarm-generated commits from human work without inspecting
13
+ * the message body.
14
+ */
15
+ const COMMIT_AUTHOR_NAME = "ClawNet Swarm";
16
+ const COMMIT_AUTHOR_EMAIL = "swarm@clawnet.local";
17
+ /** GitHub caps PR bodies near 65KB. 60KB leaves headroom for trailing markers. */
18
+ const MAX_PR_BODY = 60_000;
19
+ function commitArgs(message, extra = []) {
20
+ return [
21
+ "-c",
22
+ `user.name=${COMMIT_AUTHOR_NAME}`,
23
+ "-c",
24
+ `user.email=${COMMIT_AUTHOR_EMAIL}`,
25
+ "commit",
26
+ "--author",
27
+ `${COMMIT_AUTHOR_NAME} <${COMMIT_AUTHOR_EMAIL}>`,
28
+ ...extra,
29
+ "-m",
30
+ message,
31
+ ];
32
+ }
33
+ /**
34
+ * Stdin-aware default runner. When `opts.stdin` is set, opens a stdin pipe so
35
+ * `gh pr create --body-file -` can read the rendered report body. Mirrors
36
+ * gh-pr-creator's own defaultRunner so production wiring actually delivers
37
+ * stdin to subprocesses.
38
+ */
39
+ // Exported (not `const` private) so the EPIPE regression suite can pin the
40
+ // stdin error-listener behavior against the real runner instead of an inline
41
+ // copy. Default-runner overrides for tests still flow through
42
+ // `ShipmentInput.runner`; only the test layer touches this export directly.
43
+ export const defaultRunnerWithStdin = async (cmd, args, opts) => {
44
+ const { spawn } = await import("node:child_process");
45
+ return new Promise((resolve) => {
46
+ const child = spawn(cmd, args, {
47
+ cwd: opts.cwd,
48
+ stdio: [opts.stdin === undefined ? "ignore" : "pipe", "pipe", "pipe"],
49
+ });
50
+ let stdout = "";
51
+ let stderr = "";
52
+ child.stdout?.on("data", (c) => (stdout += c.toString("utf-8")));
53
+ child.stderr?.on("data", (c) => (stderr += c.toString("utf-8")));
54
+ child.on("error", (e) => resolve({ exitCode: -1, stdout, stderr: e.message }));
55
+ child.on("close", (code) => resolve({ exitCode: code ?? -1, stdout, stderr }));
56
+ if (opts.stdin !== undefined && child.stdin) {
57
+ // EPIPE safety (matches claude-process PR #181 pattern): if the child
58
+ // dies before we finish writing, stdin emits 'error' and — without a
59
+ // listener — Node crashes the agent process. Route to the same resolve
60
+ // path as spawn errors. Promise dedupes naturally so a later close()
61
+ // resolve() is a no-op.
62
+ child.stdin.on("error", (e) => resolve({ exitCode: -1, stdout, stderr: e.message }));
63
+ child.stdin.write(opts.stdin);
64
+ child.stdin.end();
65
+ }
66
+ });
67
+ };
68
+ export async function runShipment(input) {
69
+ const createdAt = new Date().toISOString();
70
+ try {
71
+ const swarm = input.swarm;
72
+ const ws = swarm.workspace;
73
+ if (!ws)
74
+ return { strategy: "skipped", createdAt, error: "no workspace" };
75
+ if (ws.strategy !== "git-worktree") {
76
+ return {
77
+ strategy: "skipped",
78
+ createdAt,
79
+ error: `${ws.strategy} not supported in M6.1 (git-worktree only)`,
80
+ };
81
+ }
82
+ const runner = input.runner ?? defaultRunnerWithStdin;
83
+ // Facade for code paths that historically used (cmd, args, cwd) — drops stdin.
84
+ const runnerNoStdin = (cmd, args, cwd) => runner(cmd, args, { cwd });
85
+ const writeFile = input.writeFile ??
86
+ (async (p, c) => {
87
+ await fsWriteFile(p, c, "utf-8");
88
+ });
89
+ // 2. Auto-commit any uncommitted changes
90
+ await runnerNoStdin("git", ["add", "-A"], ws.cwd).catch(() => null);
91
+ const status = await runnerNoStdin("git", ["status", "--porcelain"], ws.cwd).catch(() => null);
92
+ if (status && status.exitCode === 0 && status.stdout.trim().length > 0) {
93
+ // Observability for S4: surface the file list so users can spot junk
94
+ // (e.g. .DS_Store, editor swap files) that crept in via `git add -A`.
95
+ // Not filtered here — opt-in filtering would need user config.
96
+ log.info({
97
+ swarmId: swarm.id,
98
+ files: status.stdout.trim().split("\n").slice(0, 50),
99
+ }, "shipment: about to auto-commit changes");
100
+ const commitMsg = `swarm output: ${swarm.id}`;
101
+ let commit = await runnerNoStdin("git", commitArgs(commitMsg), ws.cwd).catch(() => null);
102
+ if (!commit || commit.exitCode !== 0) {
103
+ log.warn({ swarmId: swarm.id, stderr: commit?.stderr }, "shipment: git commit failed (likely pre-commit hook); retrying with --no-verify");
104
+ commit = await runnerNoStdin("git", commitArgs(`${commitMsg} (no-verify after hook failure)`, ["--no-verify"]), ws.cwd).catch(() => null);
105
+ if (!commit || commit.exitCode !== 0) {
106
+ log.warn({ swarmId: swarm.id, stderr: commit?.stderr }, "shipment: git commit --no-verify also failed; continuing with HEAD as-is");
107
+ }
108
+ }
109
+ }
110
+ // 3. Diff
111
+ const diff = await computeWorkspaceDiff({
112
+ worktreeCwd: ws.cwd,
113
+ baseCommit: ws.metadata.baseCommit,
114
+ runner: runnerNoStdin,
115
+ });
116
+ if (diff.error)
117
+ return { strategy: "skipped", createdAt, error: diff.error };
118
+ if (diff.files.length === 0)
119
+ return { strategy: "skipped", createdAt, error: "no changes" };
120
+ // Scrub secrets from diff text BEFORE it reaches the LLM or report. Common
121
+ // patterns only (GitHub/Slack/OpenAI/AWS tokens + KEY=value lines); manual
122
+ // review is still required and the report makes this explicit.
123
+ const scrubbedDiff = {
124
+ ...diff,
125
+ stat: scrubSecrets(diff.stat),
126
+ patch: scrubSecrets(diff.patch),
127
+ };
128
+ // 4. LLM title/summary or fallback
129
+ let title = `swarm: ${swarm.id}`;
130
+ let summary = `Swarm produced ${scrubbedDiff.files.length} file change(s).\n\n${scrubbedDiff.stat}`;
131
+ if (input.generateText) {
132
+ try {
133
+ const t = (await input.generateText(buildTitlePrompt(swarm, scrubbedDiff)))
134
+ .trim()
135
+ .split("\n")[0];
136
+ if (t)
137
+ title = t;
138
+ const s = (await input.generateText(buildSummaryPrompt(swarm, scrubbedDiff))).trim();
139
+ if (s)
140
+ summary = s;
141
+ }
142
+ catch (err) {
143
+ log.warn({ err, swarmId: swarm.id }, "shipment: LLM generateText failed; using fallback");
144
+ }
145
+ }
146
+ // Re-scrub LLM output: model could re-emit a leaked secret it saw in the diff.
147
+ title = scrubSecrets(title);
148
+ summary = scrubSecrets(summary);
149
+ // 5. Render report
150
+ const report = renderReport({
151
+ swarmId: swarm.id,
152
+ swarmDisplayName: swarm.displayName,
153
+ teamName: swarm.teamName ?? "default",
154
+ baseBranch: ws.metadata.baseBranch ?? "main",
155
+ baseCommit: ws.metadata.baseCommit,
156
+ branchName: ws.metadata.branchName,
157
+ startedAt: getStartedAt(swarm, createdAt),
158
+ endedAt: createdAt,
159
+ status: mapStatus(swarm.status),
160
+ diffStat: scrubbedDiff.stat,
161
+ changedFiles: scrubbedDiff.files,
162
+ title,
163
+ summary,
164
+ roles: [...swarm.roles.values()].map((r) => ({
165
+ instanceId: r.instanceId,
166
+ roleName: r.roleName,
167
+ })),
168
+ });
169
+ // 6. Transport
170
+ const transport = await detectTransport(ws.cwd, { runner: runnerNoStdin });
171
+ const branchName = ws.metadata.branchName;
172
+ // 7. PR path
173
+ let prAttemptError;
174
+ if (transport.kind === "pr") {
175
+ // GitHub caps PR bodies around 65KB. Truncate with a clear pointer to
176
+ // the full report on disk so reviewers know nothing was silently dropped.
177
+ let body = report;
178
+ if (body.length > MAX_PR_BODY) {
179
+ body =
180
+ body.substring(0, MAX_PR_BODY) +
181
+ "\n\n... (truncated — full report at `report.md` in the worktree)\n";
182
+ }
183
+ const pr = await createDraftPR({
184
+ cwd: ws.cwd,
185
+ branchName,
186
+ baseBranch: transport.defaultBranch ?? "main",
187
+ title,
188
+ bodyMarkdown: body,
189
+ }, { runner });
190
+ if (pr.ok) {
191
+ log.info({ swarmId: swarm.id, prUrl: pr.url }, "shipment: PR created");
192
+ return {
193
+ strategy: "pr",
194
+ createdAt,
195
+ title,
196
+ summary: summary.substring(0, 200),
197
+ prUrl: pr.url,
198
+ branchName,
199
+ };
200
+ }
201
+ prAttemptError = `${pr.step}: ${pr.error}`;
202
+ log.warn({ swarmId: swarm.id, step: pr.step, err: pr.error }, "shipment: PR creation failed; falling back to diff-only");
203
+ // fall through
204
+ }
205
+ // 8. Diff-only fallback
206
+ const diffPath = join(ws.cwd, "diff.patch");
207
+ const reportPath = join(ws.cwd, "report.md");
208
+ await writeFile(diffPath, scrubbedDiff.patch);
209
+ await writeFile(reportPath, report);
210
+ log.info({ swarmId: swarm.id, diffPath, reportPath }, "shipment: diff+report written to worktree");
211
+ return {
212
+ strategy: "diff-only",
213
+ createdAt,
214
+ title,
215
+ summary: summary.substring(0, 200),
216
+ diffPath,
217
+ reportPath,
218
+ branchName,
219
+ prAttemptError,
220
+ };
221
+ }
222
+ catch (err) {
223
+ log.warn({ err, swarmId: input.swarm.id }, "shipment: unexpected failure");
224
+ return { strategy: "skipped", createdAt, error: err?.message ?? String(err) };
225
+ }
226
+ }
227
+ function buildTitlePrompt(swarm, diff) {
228
+ return (`You are summarizing a swarm's work as a one-line PR title.\n\n` +
229
+ `Swarm id: ${swarm.id}\n` +
230
+ `Files changed:\n${diff.stat}\n\n` +
231
+ `Output a single short title (max 60 chars), no quotes, no trailing period.`);
232
+ }
233
+ function buildSummaryPrompt(swarm, diff) {
234
+ return (`Write a 1-3 paragraph summary of what this swarm accomplished, suitable for a PR description.\n\n` +
235
+ `Swarm id: ${swarm.id}\n` +
236
+ `Files changed:\n${diff.stat}\n\n` +
237
+ `Diff (truncated to 4000 chars):\n${diff.patch.substring(0, 4000)}\n\n` +
238
+ `Write the summary in markdown. Do not include a heading.`);
239
+ }
240
+ function getStartedAt(swarm, fallback) {
241
+ const candidate = swarm.createdAt;
242
+ if (typeof candidate === "string")
243
+ return candidate;
244
+ if (typeof candidate === "number")
245
+ return new Date(candidate).toISOString();
246
+ // No createdAt → use endedAt instead of 1970-01-01 epoch zero (cosmetic fix).
247
+ return fallback;
248
+ }
249
+ function mapStatus(s) {
250
+ if (s === "completed")
251
+ return "completed";
252
+ if (s === "failed")
253
+ return "failed";
254
+ return "cancelled";
255
+ }
256
+ //# sourceMappingURL=shipment-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipment-pipeline.js","sourceRoot":"","sources":["../../src/shipment/shipment-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface TransportDetectResult {
2
+ kind: "pr" | "diff-only" | "no-remote";
3
+ reason: string;
4
+ defaultBranch?: string;
5
+ remoteUrl?: string;
6
+ }
7
+ export type CommandRunner = (cmd: string, args: string[], cwd?: string) => Promise<{
8
+ exitCode: number;
9
+ stdout: string;
10
+ stderr: string;
11
+ }>;
12
+ export interface TransportDetectOptions {
13
+ runner?: CommandRunner;
14
+ }
15
+ export declare function detectTransport(cwd: string, opts?: TransportDetectOptions): Promise<TransportDetectResult>;
16
+ //# sourceMappingURL=transport-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-detect.d.ts","sourceRoot":"","sources":["../../src/shipment/transport-detect.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAkBD,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,qBAAqB,CAAC,CAkDhC"}
@@ -0,0 +1,54 @@
1
+ import { spawn } from "node:child_process";
2
+ const INSTALL_HINTS = "macOS: brew install gh | " +
3
+ "Linux: see https://github.com/cli/cli/blob/trunk/docs/install_linux.md | " +
4
+ "Windows: winget install --id GitHub.cli";
5
+ const defaultRunner = (cmd, args, cwd) => new Promise((resolve) => {
6
+ const child = spawn(cmd, args, { cwd, stdio: ["ignore", "pipe", "pipe"] });
7
+ let stdout = "";
8
+ let stderr = "";
9
+ child.stdout?.on("data", (c) => (stdout += c.toString("utf-8")));
10
+ child.stderr?.on("data", (c) => (stderr += c.toString("utf-8")));
11
+ child.on("error", (e) => resolve({ exitCode: -1, stdout, stderr: e.message }));
12
+ child.on("close", (code) => resolve({ exitCode: code ?? -1, stdout, stderr }));
13
+ });
14
+ export async function detectTransport(cwd, opts = {}) {
15
+ const run = opts.runner ?? defaultRunner;
16
+ // 1. Origin remote
17
+ const remote = await run("git", ["remote", "get-url", "origin"], cwd).catch(() => null);
18
+ if (!remote || remote.exitCode !== 0 || !remote.stdout.trim()) {
19
+ return { kind: "no-remote", reason: "no 'origin' remote configured" };
20
+ }
21
+ const remoteUrl = remote.stdout.trim();
22
+ // 2. gh CLI
23
+ const gh = await run("gh", ["--version"]).catch(() => null);
24
+ if (!gh || gh.exitCode !== 0) {
25
+ return {
26
+ kind: "diff-only",
27
+ reason: `gh CLI not installed; install with: ${INSTALL_HINTS}`,
28
+ remoteUrl,
29
+ };
30
+ }
31
+ // 3. Default branch
32
+ const symref = await run("git", ["symbolic-ref", "refs/remotes/origin/HEAD"], cwd).catch(() => null);
33
+ let defaultBranch = "main";
34
+ if (symref && symref.exitCode === 0 && symref.stdout.trim()) {
35
+ defaultBranch =
36
+ symref.stdout.trim().replace(/^refs\/remotes\/origin\//, "") || "main";
37
+ }
38
+ else {
39
+ // Fresh clones often have origin/HEAD unset → symbolic-ref exits non-zero.
40
+ // Ask gh for the repo's declared default branch before falling back to "main"
41
+ // (which is wrong on legacy master repos and breaks PR creation).
42
+ const ghDefault = await run("gh", ["repo", "view", "--json", "defaultBranchRef", "-q", ".defaultBranchRef.name"], cwd).catch(() => null);
43
+ if (ghDefault && ghDefault.exitCode === 0 && ghDefault.stdout.trim()) {
44
+ defaultBranch = ghDefault.stdout.trim();
45
+ }
46
+ }
47
+ return {
48
+ kind: "pr",
49
+ reason: "remote + gh ok",
50
+ defaultBranch,
51
+ remoteUrl,
52
+ };
53
+ }
54
+ //# sourceMappingURL=transport-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-detect.js","sourceRoot":"","sources":["../../src/shipment/transport-detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export type DiffCommandRunner = (cmd: string, args: string[], cwd?: string) => Promise<{
2
+ exitCode: number;
3
+ stdout: string;
4
+ stderr: string;
5
+ }>;
6
+ export interface WorkspaceDiffFile {
7
+ path: string;
8
+ added: number;
9
+ removed: number;
10
+ }
11
+ export interface WorkspaceDiff {
12
+ /** Human-readable `git diff --stat` body. Empty when no changes. */
13
+ stat: string;
14
+ /** Full unified diff (may be empty). */
15
+ patch: string;
16
+ /** Structured per-file additions/removals. */
17
+ files: WorkspaceDiffFile[];
18
+ /** Set when the underlying git command failed. */
19
+ error?: string;
20
+ }
21
+ export interface ComputeWorkspaceDiffInput {
22
+ /** Absolute path to the worktree. */
23
+ worktreeCwd: string;
24
+ /** Base commit (the commit the worktree was created from). */
25
+ baseCommit: string;
26
+ /** Optional injected runner (defaults to internal spawn-based git). */
27
+ runner?: DiffCommandRunner;
28
+ }
29
+ /**
30
+ * Compute the diff of a worktree relative to its base commit. Includes both
31
+ * committed (HEAD vs baseCommit) and uncommitted (workdir + index vs HEAD)
32
+ * changes — `git diff <baseCommit>` covers both naturally.
33
+ *
34
+ * Returns an error result (not throws) on non-git dirs / git failures, so the
35
+ * caller (ShipmentPipeline) can gracefully fall back to a "skipped" outcome
36
+ * instead of aborting the swarm destroy flow.
37
+ */
38
+ export declare function computeWorkspaceDiff(input: ComputeWorkspaceDiffInput): Promise<WorkspaceDiff>;
39
+ //# sourceMappingURL=workspace-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-diff.d.ts","sourceRoot":"","sources":["../../src/shipment/workspace-diff.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
@@ -0,0 +1,64 @@
1
+ import { spawn } from "node:child_process";
2
+ import { createLogger } from "@mclawnet/logger";
3
+ const log = createLogger({ module: "swarm/shipment/workspace-diff" });
4
+ /**
5
+ * Compute the diff of a worktree relative to its base commit. Includes both
6
+ * committed (HEAD vs baseCommit) and uncommitted (workdir + index vs HEAD)
7
+ * changes — `git diff <baseCommit>` covers both naturally.
8
+ *
9
+ * Returns an error result (not throws) on non-git dirs / git failures, so the
10
+ * caller (ShipmentPipeline) can gracefully fall back to a "skipped" outcome
11
+ * instead of aborting the swarm destroy flow.
12
+ */
13
+ export async function computeWorkspaceDiff(input) {
14
+ const run = input.runner ?? ((cmd, args, cwd) => defaultSpawn(cmd, args, cwd));
15
+ const stat = await run("git", ["diff", "--stat", input.baseCommit], input.worktreeCwd).catch(() => null);
16
+ if (!stat || stat.exitCode !== 0) {
17
+ return {
18
+ stat: "",
19
+ patch: "",
20
+ files: [],
21
+ error: stat?.stderr || "git diff --stat failed",
22
+ };
23
+ }
24
+ const patch = await run("git", ["diff", input.baseCommit], input.worktreeCwd).catch(() => null);
25
+ if (!patch || patch.exitCode !== 0) {
26
+ return {
27
+ stat: "",
28
+ patch: "",
29
+ files: [],
30
+ error: patch?.stderr || "git diff failed",
31
+ };
32
+ }
33
+ const numstat = await run("git", ["diff", "--numstat", input.baseCommit], input.worktreeCwd).catch(() => null);
34
+ const files = [];
35
+ if (numstat && numstat.exitCode === 0) {
36
+ for (const line of numstat.stdout.split("\n")) {
37
+ if (!line.trim())
38
+ continue;
39
+ const parts = line.split("\t");
40
+ if (parts.length < 3)
41
+ continue;
42
+ const [a, r, ...rest] = parts;
43
+ const path = rest.join("\t");
44
+ // For binary files git emits "-" "-" — treat as 0/0
45
+ const added = a === "-" ? 0 : parseInt(a, 10) || 0;
46
+ const removed = r === "-" ? 0 : parseInt(r, 10) || 0;
47
+ files.push({ path, added, removed });
48
+ }
49
+ }
50
+ log.debug({ worktreeCwd: input.worktreeCwd, baseCommit: input.baseCommit, fileCount: files.length }, "computeWorkspaceDiff ok");
51
+ return { stat: stat.stdout, patch: patch.stdout, files };
52
+ }
53
+ function defaultSpawn(cmd, args, cwd) {
54
+ return new Promise((resolve) => {
55
+ const child = spawn(cmd, args, { cwd, stdio: ["ignore", "pipe", "pipe"] });
56
+ let stdout = "";
57
+ let stderr = "";
58
+ child.stdout?.on("data", (c) => (stdout += c.toString("utf-8")));
59
+ child.stderr?.on("data", (c) => (stderr += c.toString("utf-8")));
60
+ child.on("error", (e) => resolve({ exitCode: -1, stdout, stderr: e.message }));
61
+ child.on("close", (code) => resolve({ exitCode: code ?? -1, stdout, stderr }));
62
+ });
63
+ }
64
+ //# sourceMappingURL=workspace-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-diff.js","sourceRoot":"","sources":["../../src/shipment/workspace-diff.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { InboxWatcher } from "./inbox-watcher.js";
4
4
  import { TaskStore } from "@mclawnet/task";
5
5
  import type { SwarmInstance, RoleInstance, SwarmCreateOptions, CustomRoleDefinition } from "./types.js";
6
6
  import { type SandboxLevel } from "@mclawnet/shared";
7
+ import { WorkspaceManager } from "./workspace/index.js";
7
8
  /**
8
9
  * SwarmCoordinator — orchestrates multi-role Claude CLI swarms.
9
10
  *
@@ -30,6 +31,14 @@ export declare class SwarmCoordinator {
30
31
  * inline call sites still honour `CLAWNET_HOME` env var as before.
31
32
  */
32
33
  private home?;
34
+ /**
35
+ * Optional WorkspaceManager (M6). Used to prepare an isolated workspace
36
+ * (git worktree or snapshot copy) per swarm on create(), and to dispose
37
+ * it on destroy(). When omitted, a default WorkspaceManager is created
38
+ * (git-worktree → snapshot-copy fallback). Workspace prepare is
39
+ * best-effort: if it fails the swarm continues using `workDir` as before.
40
+ */
41
+ private workspaceManager;
33
42
  private swarms;
34
43
  readonly inboxRelay: InboxRelay;
35
44
  readonly inboxWatcher: InboxWatcher;
@@ -61,7 +70,15 @@ export declare class SwarmCoordinator {
61
70
  * `homedir()` and write files into the real `~/.clawnet`. When omitted,
62
71
  * inline call sites still honour `CLAWNET_HOME` env var as before.
63
72
  */
64
- home?: string | undefined);
73
+ home?: string | undefined,
74
+ /**
75
+ * Optional WorkspaceManager (M6). Used to prepare an isolated workspace
76
+ * (git worktree or snapshot copy) per swarm on create(), and to dispose
77
+ * it on destroy(). When omitted, a default WorkspaceManager is created
78
+ * (git-worktree → snapshot-copy fallback). Workspace prepare is
79
+ * best-effort: if it fails the swarm continues using `workDir` as before.
80
+ */
81
+ workspaceManager?: WorkspaceManager);
65
82
  /** Resolve the user-home root used for InboxStore / TaskStore lookups. */
66
83
  private resolveHome;
67
84
  /**
@@ -144,6 +161,8 @@ export declare class SwarmCoordinator {
144
161
  presetInstanceId?: string;
145
162
  backendOverride?: "claude" | "codex";
146
163
  sandboxOverride?: SandboxLevel;
164
+ modelOverride?: string;
165
+ modeOverride?: string;
147
166
  isDynamicAdd?: boolean;
148
167
  }): Promise<RoleInstance>;
149
168
  /** Spawn a new role instance in a swarm (real implementation, serialized by spawnRole). */
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-coordinator.d.ts","sourceRoot":"","sources":["../src/swarm-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-coordinator.d.ts","sourceRoot":"","sources":["../src/swarm-coordinator.ts"],"names":[],"mappings":"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"}