@cluesmith/codev 3.2.4 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/dashboard-dist/assets/index-BZRTEMtH.css +32 -0
  2. package/dashboard-dist/assets/{index-BZ1x7x1X.js → index-JCbkpAcV.js} +33 -33
  3. package/dashboard-dist/assets/index-JCbkpAcV.js.map +1 -0
  4. package/dashboard-dist/index.html +2 -2
  5. package/dist/agent-farm/cli.d.ts.map +1 -1
  6. package/dist/agent-farm/cli.js +142 -0
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  9. package/dist/agent-farm/commands/cleanup.js +16 -0
  10. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  11. package/dist/agent-farm/commands/inbox.d.ts +42 -0
  12. package/dist/agent-farm/commands/inbox.d.ts.map +1 -0
  13. package/dist/agent-farm/commands/inbox.js +129 -0
  14. package/dist/agent-farm/commands/inbox.js.map +1 -0
  15. package/dist/agent-farm/commands/interrupt.d.ts +20 -0
  16. package/dist/agent-farm/commands/interrupt.d.ts.map +1 -0
  17. package/dist/agent-farm/commands/interrupt.js +65 -0
  18. package/dist/agent-farm/commands/interrupt.js.map +1 -0
  19. package/dist/agent-farm/commands/reset/constants.d.ts +52 -0
  20. package/dist/agent-farm/commands/reset/constants.d.ts.map +1 -0
  21. package/dist/agent-farm/commands/reset/constants.js +52 -0
  22. package/dist/agent-farm/commands/reset/constants.js.map +1 -0
  23. package/dist/agent-farm/commands/reset/context.d.ts +230 -0
  24. package/dist/agent-farm/commands/reset/context.d.ts.map +1 -0
  25. package/dist/agent-farm/commands/reset/context.js +428 -0
  26. package/dist/agent-farm/commands/reset/context.js.map +1 -0
  27. package/dist/agent-farm/commands/reset/index.d.ts +192 -0
  28. package/dist/agent-farm/commands/reset/index.d.ts.map +1 -0
  29. package/dist/agent-farm/commands/reset/index.js +488 -0
  30. package/dist/agent-farm/commands/reset/index.js.map +1 -0
  31. package/dist/agent-farm/commands/reset/receipt.d.ts +97 -0
  32. package/dist/agent-farm/commands/reset/receipt.d.ts.map +1 -0
  33. package/dist/agent-farm/commands/reset/receipt.js +149 -0
  34. package/dist/agent-farm/commands/reset/receipt.js.map +1 -0
  35. package/dist/agent-farm/commands/reset/reorient.d.ts +117 -0
  36. package/dist/agent-farm/commands/reset/reorient.d.ts.map +1 -0
  37. package/dist/agent-farm/commands/reset/reorient.js +313 -0
  38. package/dist/agent-farm/commands/reset/reorient.js.map +1 -0
  39. package/dist/agent-farm/commands/reset.d.ts +19 -0
  40. package/dist/agent-farm/commands/reset.d.ts.map +1 -0
  41. package/dist/agent-farm/commands/reset.js +292 -0
  42. package/dist/agent-farm/commands/reset.js.map +1 -0
  43. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  44. package/dist/agent-farm/commands/send.js +49 -8
  45. package/dist/agent-farm/commands/send.js.map +1 -1
  46. package/dist/agent-farm/commands/spawn-worktree.d.ts +105 -6
  47. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  48. package/dist/agent-farm/commands/spawn-worktree.js +289 -66
  49. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  50. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/spawn.js +13 -1
  52. package/dist/agent-farm/commands/spawn.js.map +1 -1
  53. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  54. package/dist/agent-farm/commands/status.js +80 -8
  55. package/dist/agent-farm/commands/status.js.map +1 -1
  56. package/dist/agent-farm/db/index.d.ts +1 -1
  57. package/dist/agent-farm/db/index.d.ts.map +1 -1
  58. package/dist/agent-farm/db/index.js +80 -1
  59. package/dist/agent-farm/db/index.js.map +1 -1
  60. package/dist/agent-farm/db/mailbox.d.ts +222 -0
  61. package/dist/agent-farm/db/mailbox.d.ts.map +1 -0
  62. package/dist/agent-farm/db/mailbox.js +304 -0
  63. package/dist/agent-farm/db/mailbox.js.map +1 -0
  64. package/dist/agent-farm/db/schema.d.ts +1 -1
  65. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  66. package/dist/agent-farm/db/schema.js +35 -0
  67. package/dist/agent-farm/db/schema.js.map +1 -1
  68. package/dist/agent-farm/db/types.d.ts +45 -0
  69. package/dist/agent-farm/db/types.d.ts.map +1 -1
  70. package/dist/agent-farm/db/types.js.map +1 -1
  71. package/dist/agent-farm/lib/builder-lookup.d.ts +1 -1
  72. package/dist/agent-farm/lib/builder-lookup.js +2 -2
  73. package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
  74. package/dist/agent-farm/lib/reconnect-backoff.d.ts +54 -0
  75. package/dist/agent-farm/lib/reconnect-backoff.d.ts.map +1 -0
  76. package/dist/agent-farm/lib/reconnect-backoff.js +47 -0
  77. package/dist/agent-farm/lib/reconnect-backoff.js.map +1 -0
  78. package/dist/agent-farm/lib/tower-client.d.ts +16 -6
  79. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  80. package/dist/agent-farm/lib/tower-client.js +37 -6
  81. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  82. package/dist/agent-farm/lib/tunnel-client.d.ts +69 -1
  83. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  84. package/dist/agent-farm/lib/tunnel-client.js +218 -27
  85. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  86. package/dist/agent-farm/servers/cron-delivery.d.ts +72 -0
  87. package/dist/agent-farm/servers/cron-delivery.d.ts.map +1 -0
  88. package/dist/agent-farm/servers/cron-delivery.js +80 -0
  89. package/dist/agent-farm/servers/cron-delivery.js.map +1 -0
  90. package/dist/agent-farm/servers/delayed-send.d.ts +85 -0
  91. package/dist/agent-farm/servers/delayed-send.d.ts.map +1 -0
  92. package/dist/agent-farm/servers/delayed-send.js +165 -0
  93. package/dist/agent-farm/servers/delayed-send.js.map +1 -0
  94. package/dist/agent-farm/servers/gate-profiles.d.ts +67 -0
  95. package/dist/agent-farm/servers/gate-profiles.d.ts.map +1 -0
  96. package/dist/agent-farm/servers/gate-profiles.js +113 -0
  97. package/dist/agent-farm/servers/gate-profiles.js.map +1 -0
  98. package/dist/agent-farm/servers/mailbox-delivery.d.ts +370 -0
  99. package/dist/agent-farm/servers/mailbox-delivery.d.ts.map +1 -0
  100. package/dist/agent-farm/servers/mailbox-delivery.js +617 -0
  101. package/dist/agent-farm/servers/mailbox-delivery.js.map +1 -0
  102. package/dist/agent-farm/servers/mailbox-wiring.d.ts +125 -0
  103. package/dist/agent-farm/servers/mailbox-wiring.d.ts.map +1 -0
  104. package/dist/agent-farm/servers/mailbox-wiring.js +425 -0
  105. package/dist/agent-farm/servers/mailbox-wiring.js.map +1 -0
  106. package/dist/agent-farm/servers/message-write.d.ts +53 -1
  107. package/dist/agent-farm/servers/message-write.d.ts.map +1 -1
  108. package/dist/agent-farm/servers/message-write.js +63 -0
  109. package/dist/agent-farm/servers/message-write.js.map +1 -1
  110. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  111. package/dist/agent-farm/servers/overview.js +23 -4
  112. package/dist/agent-farm/servers/overview.js.map +1 -1
  113. package/dist/agent-farm/servers/render-gate.d.ts +141 -0
  114. package/dist/agent-farm/servers/render-gate.d.ts.map +1 -0
  115. package/dist/agent-farm/servers/render-gate.js +251 -0
  116. package/dist/agent-farm/servers/render-gate.js.map +1 -0
  117. package/dist/agent-farm/servers/session-submit.d.ts +90 -0
  118. package/dist/agent-farm/servers/session-submit.d.ts.map +1 -0
  119. package/dist/agent-farm/servers/session-submit.js +127 -0
  120. package/dist/agent-farm/servers/session-submit.js.map +1 -0
  121. package/dist/agent-farm/servers/tower-cron.d.ts +10 -7
  122. package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
  123. package/dist/agent-farm/servers/tower-cron.js +58 -53
  124. package/dist/agent-farm/servers/tower-cron.js.map +1 -1
  125. package/dist/agent-farm/servers/tower-instances.d.ts +14 -2
  126. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  127. package/dist/agent-farm/servers/tower-instances.js +78 -16
  128. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  129. package/dist/agent-farm/servers/tower-messages.d.ts +38 -1
  130. package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
  131. package/dist/agent-farm/servers/tower-messages.js +106 -1
  132. package/dist/agent-farm/servers/tower-messages.js.map +1 -1
  133. package/dist/agent-farm/servers/tower-routes.d.ts +16 -4
  134. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  135. package/dist/agent-farm/servers/tower-routes.js +670 -105
  136. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  137. package/dist/agent-farm/servers/tower-server.js +163 -31
  138. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  139. package/dist/agent-farm/servers/tower-terminals.d.ts +17 -2
  140. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  141. package/dist/agent-farm/servers/tower-terminals.js +104 -122
  142. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  143. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
  144. package/dist/agent-farm/servers/tower-tunnel.js +63 -4
  145. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  146. package/dist/agent-farm/servers/tower-types.d.ts +2 -1
  147. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  148. package/dist/agent-farm/servers/tower-utils.d.ts +64 -1
  149. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  150. package/dist/agent-farm/servers/tower-utils.js +168 -1
  151. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  152. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
  153. package/dist/agent-farm/servers/tower-websocket.js +6 -21
  154. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  155. package/dist/agent-farm/servers/write-queue.d.ts +35 -0
  156. package/dist/agent-farm/servers/write-queue.d.ts.map +1 -0
  157. package/dist/agent-farm/servers/write-queue.js +56 -0
  158. package/dist/agent-farm/servers/write-queue.js.map +1 -0
  159. package/dist/agent-farm/types.d.ts +39 -0
  160. package/dist/agent-farm/types.d.ts.map +1 -1
  161. package/dist/agent-farm/utils/agent-names.d.ts +2 -2
  162. package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
  163. package/dist/agent-farm/utils/agent-names.js +3 -3
  164. package/dist/agent-farm/utils/agent-names.js.map +1 -1
  165. package/dist/agent-farm/utils/architect-name.d.ts +2 -2
  166. package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
  167. package/dist/agent-farm/utils/architect-name.js +3 -3
  168. package/dist/agent-farm/utils/architect-name.js.map +1 -1
  169. package/dist/agent-farm/utils/config.d.ts +13 -0
  170. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  171. package/dist/agent-farm/utils/config.js +33 -1
  172. package/dist/agent-farm/utils/config.js.map +1 -1
  173. package/dist/agent-farm/utils/harness.d.ts +103 -7
  174. package/dist/agent-farm/utils/harness.d.ts.map +1 -1
  175. package/dist/agent-farm/utils/harness.js +126 -19
  176. package/dist/agent-farm/utils/harness.js.map +1 -1
  177. package/dist/cli.d.ts.map +1 -1
  178. package/dist/cli.js +6 -32
  179. package/dist/cli.js.map +1 -1
  180. package/dist/commands/consult/cli-options.d.ts +34 -0
  181. package/dist/commands/consult/cli-options.d.ts.map +1 -0
  182. package/dist/commands/consult/cli-options.js +67 -0
  183. package/dist/commands/consult/cli-options.js.map +1 -0
  184. package/dist/commands/consult/index.d.ts +56 -2
  185. package/dist/commands/consult/index.d.ts.map +1 -1
  186. package/dist/commands/consult/index.js +272 -28
  187. package/dist/commands/consult/index.js.map +1 -1
  188. package/dist/commands/consult/metrics.d.ts +42 -0
  189. package/dist/commands/consult/metrics.d.ts.map +1 -1
  190. package/dist/commands/consult/metrics.js +129 -9
  191. package/dist/commands/consult/metrics.js.map +1 -1
  192. package/dist/commands/doctor.d.ts.map +1 -1
  193. package/dist/commands/doctor.js +71 -19
  194. package/dist/commands/doctor.js.map +1 -1
  195. package/dist/commands/porch/checks.d.ts +23 -0
  196. package/dist/commands/porch/checks.d.ts.map +1 -1
  197. package/dist/commands/porch/checks.js +60 -0
  198. package/dist/commands/porch/checks.js.map +1 -1
  199. package/dist/commands/porch/config.d.ts +20 -0
  200. package/dist/commands/porch/config.d.ts.map +1 -1
  201. package/dist/commands/porch/config.js +20 -0
  202. package/dist/commands/porch/config.js.map +1 -1
  203. package/dist/commands/porch/index.js +21 -28
  204. package/dist/commands/porch/index.js.map +1 -1
  205. package/dist/commands/porch/next.d.ts.map +1 -1
  206. package/dist/commands/porch/next.js +2 -41
  207. package/dist/commands/porch/next.js.map +1 -1
  208. package/dist/lib/config.d.ts +69 -3
  209. package/dist/lib/config.d.ts.map +1 -1
  210. package/dist/lib/config.js +67 -3
  211. package/dist/lib/config.js.map +1 -1
  212. package/dist/lib/consult-lanes.d.ts +149 -0
  213. package/dist/lib/consult-lanes.d.ts.map +1 -0
  214. package/dist/lib/consult-lanes.js +360 -0
  215. package/dist/lib/consult-lanes.js.map +1 -0
  216. package/dist/lib/github.js +1 -1
  217. package/dist/lib/github.js.map +1 -1
  218. package/dist/lib/prompt-behavior-metrics.d.ts +67 -0
  219. package/dist/lib/prompt-behavior-metrics.d.ts.map +1 -0
  220. package/dist/lib/prompt-behavior-metrics.js +290 -0
  221. package/dist/lib/prompt-behavior-metrics.js.map +1 -0
  222. package/dist/lib/skeleton.d.ts +22 -1
  223. package/dist/lib/skeleton.d.ts.map +1 -1
  224. package/dist/lib/skeleton.js +120 -0
  225. package/dist/lib/skeleton.js.map +1 -1
  226. package/dist/lib/test-env.d.ts +74 -0
  227. package/dist/lib/test-env.d.ts.map +1 -0
  228. package/dist/lib/test-env.js +92 -0
  229. package/dist/lib/test-env.js.map +1 -0
  230. package/dist/terminal/pty-manager.d.ts +2 -0
  231. package/dist/terminal/pty-manager.d.ts.map +1 -1
  232. package/dist/terminal/pty-manager.js +16 -6
  233. package/dist/terminal/pty-manager.js.map +1 -1
  234. package/dist/terminal/pty-session.d.ts +131 -0
  235. package/dist/terminal/pty-session.d.ts.map +1 -1
  236. package/dist/terminal/pty-session.js +232 -39
  237. package/dist/terminal/pty-session.js.map +1 -1
  238. package/dist/terminal/ring-buffer.d.ts +39 -6
  239. package/dist/terminal/ring-buffer.d.ts.map +1 -1
  240. package/dist/terminal/ring-buffer.js +74 -6
  241. package/dist/terminal/ring-buffer.js.map +1 -1
  242. package/dist/terminal/session-manager.d.ts +53 -0
  243. package/dist/terminal/session-manager.d.ts.map +1 -1
  244. package/dist/terminal/session-manager.js +94 -9
  245. package/dist/terminal/session-manager.js.map +1 -1
  246. package/dist/terminal/session-screen.d.ts +91 -0
  247. package/dist/terminal/session-screen.d.ts.map +1 -0
  248. package/dist/terminal/session-screen.js +135 -0
  249. package/dist/terminal/session-screen.js.map +1 -0
  250. package/dist/terminal/shellper-main.js +2 -1
  251. package/dist/terminal/shellper-main.js.map +1 -1
  252. package/dist/terminal/shellper-process.d.ts +1 -1
  253. package/dist/terminal/shellper-process.d.ts.map +1 -1
  254. package/dist/terminal/shellper-process.js +17 -8
  255. package/dist/terminal/shellper-process.js.map +1 -1
  256. package/dist/terminal/shellper-replay-buffer.d.ts +69 -7
  257. package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -1
  258. package/dist/terminal/shellper-replay-buffer.js +167 -31
  259. package/dist/terminal/shellper-replay-buffer.js.map +1 -1
  260. package/package.json +8 -6
  261. package/skeleton/.claude/skills/afx/SKILL.md +14 -1
  262. package/skeleton/.claude/skills/arch-init/SKILL.md +22 -9
  263. package/skeleton/.claude/skills/arch-save/SKILL.md +183 -0
  264. package/skeleton/.claude/skills/codev/SKILL.md +31 -0
  265. package/skeleton/.claude/skills/runnable-worktrees/SKILL.md +119 -0
  266. package/skeleton/.codex/skills/afx/SKILL.md +14 -1
  267. package/skeleton/.codex/skills/arch-init/SKILL.md +22 -9
  268. package/skeleton/.codex/skills/arch-save/SKILL.md +183 -0
  269. package/skeleton/.codex/skills/codev/SKILL.md +31 -0
  270. package/skeleton/.codex/skills/runnable-worktrees/SKILL.md +119 -0
  271. package/skeleton/protocols/air/builder-prompt.md +28 -47
  272. package/skeleton/protocols/air/consult-types/impl-review.md +17 -34
  273. package/skeleton/protocols/air/consult-types/pr-review.md +14 -37
  274. package/skeleton/protocols/air/prompts/implement.md +20 -73
  275. package/skeleton/protocols/air/prompts/pr.md +22 -54
  276. package/skeleton/protocols/air/protocol.md +40 -71
  277. package/skeleton/protocols/aspir/builder-prompt.md +29 -66
  278. package/skeleton/protocols/aspir/consult-types/impl-review.md +17 -44
  279. package/skeleton/protocols/aspir/consult-types/phase-review.md +17 -44
  280. package/skeleton/protocols/aspir/consult-types/plan-review.md +14 -38
  281. package/skeleton/protocols/aspir/consult-types/pr-review.md +13 -39
  282. package/skeleton/protocols/aspir/consult-types/spec-review.md +13 -33
  283. package/skeleton/protocols/aspir/prompts/implement.md +27 -196
  284. package/skeleton/protocols/aspir/prompts/plan.md +21 -85
  285. package/skeleton/protocols/aspir/prompts/review.md +29 -228
  286. package/skeleton/protocols/aspir/prompts/specify.md +25 -111
  287. package/skeleton/protocols/aspir/protocol.json +10 -0
  288. package/skeleton/protocols/aspir/protocol.md +36 -82
  289. package/skeleton/protocols/bugfix/builder-prompt.md +23 -45
  290. package/skeleton/protocols/bugfix/consult-types/impl-review.md +21 -45
  291. package/skeleton/protocols/bugfix/consult-types/pr-review.md +18 -52
  292. package/skeleton/protocols/bugfix/prompts/fix.md +16 -61
  293. package/skeleton/protocols/bugfix/prompts/investigate.md +18 -62
  294. package/skeleton/protocols/bugfix/prompts/pr.md +22 -57
  295. package/skeleton/protocols/bugfix/protocol.md +44 -50
  296. package/skeleton/protocols/experiment/builder-prompt.md +25 -58
  297. package/skeleton/protocols/experiment/protocol.md +22 -188
  298. package/skeleton/protocols/experiment/templates/notes.md +11 -71
  299. package/skeleton/protocols/maintain/builder-prompt.md +24 -45
  300. package/skeleton/protocols/maintain/consult-types/impl-review.md +17 -44
  301. package/skeleton/protocols/maintain/consult-types/pr-review.md +13 -39
  302. package/skeleton/protocols/maintain/prompts/maintain.md +1 -1
  303. package/skeleton/protocols/maintain/protocol.md +32 -266
  304. package/skeleton/protocols/maintain/templates/maintenance-run.md +11 -0
  305. package/skeleton/protocols/pir/builder-prompt.md +30 -64
  306. package/skeleton/protocols/pir/consult-types/impl-review.md +17 -50
  307. package/skeleton/protocols/pir/consult-types/pr-review.md +11 -40
  308. package/skeleton/protocols/pir/prompts/implement.md +1 -2
  309. package/skeleton/protocols/pir/prompts/plan.md +0 -3
  310. package/skeleton/protocols/pir/prompts/review.md +1 -1
  311. package/skeleton/protocols/pir/protocol.md +54 -177
  312. package/skeleton/protocols/research/builder-prompt.md +27 -58
  313. package/skeleton/protocols/research/protocol.md +28 -153
  314. package/skeleton/protocols/spike/builder-prompt.md +30 -48
  315. package/skeleton/protocols/spike/protocol.md +24 -107
  316. package/skeleton/protocols/spike/templates/findings.md +9 -39
  317. package/skeleton/protocols/spir/builder-prompt.md +33 -62
  318. package/skeleton/protocols/spir/consult-types/impl-review.md +17 -44
  319. package/skeleton/protocols/spir/consult-types/phase-review.md +17 -44
  320. package/skeleton/protocols/spir/consult-types/plan-review.md +14 -38
  321. package/skeleton/protocols/spir/consult-types/pr-review.md +13 -39
  322. package/skeleton/protocols/spir/consult-types/spec-review.md +13 -33
  323. package/skeleton/protocols/spir/prompts/implement.md +26 -195
  324. package/skeleton/protocols/spir/prompts/plan.md +20 -84
  325. package/skeleton/protocols/spir/prompts/review.md +28 -227
  326. package/skeleton/protocols/spir/prompts/specify.md +24 -110
  327. package/skeleton/protocols/spir/protocol.json +10 -0
  328. package/skeleton/protocols/spir/protocol.md +84 -633
  329. package/skeleton/protocols/spir/templates/plan.md +28 -147
  330. package/skeleton/protocols/spir/templates/review.md +21 -80
  331. package/skeleton/protocols/spir/templates/spec.md +24 -118
  332. package/skeleton/resources/commands/agent-farm.md +259 -0
  333. package/skeleton/resources/commands/consult.md +236 -8
  334. package/skeleton/resources/commands/overview.md +1 -0
  335. package/skeleton/roles/architect.md +67 -317
  336. package/skeleton/roles/builder.md +77 -191
  337. package/skeleton/templates/AGENTS.md +2 -0
  338. package/skeleton/templates/CLAUDE.md +2 -0
  339. package/templates/tower.html +39 -2
  340. package/dashboard-dist/assets/index-BZ1x7x1X.js.map +0 -1
  341. package/dashboard-dist/assets/index-DB1KBSNE.css +0 -32
  342. package/dist/agent-farm/servers/send-buffer.d.ts +0 -59
  343. package/dist/agent-farm/servers/send-buffer.d.ts.map +0 -1
  344. package/dist/agent-farm/servers/send-buffer.js +0 -116
  345. package/dist/agent-farm/servers/send-buffer.js.map +0 -1
  346. package/skeleton/porch/prompts/defend.md +0 -108
  347. package/skeleton/porch/prompts/diagnose.md +0 -70
  348. package/skeleton/porch/prompts/evaluate.md +0 -132
  349. package/skeleton/porch/prompts/fix.md +0 -59
  350. package/skeleton/porch/prompts/implement.md +0 -88
  351. package/skeleton/porch/prompts/plan.md +0 -74
  352. package/skeleton/porch/prompts/pr.md +0 -84
  353. package/skeleton/porch/prompts/review.md +0 -249
  354. package/skeleton/porch/prompts/specify.md +0 -53
  355. package/skeleton/porch/prompts/test.md +0 -63
  356. package/skeleton/protocols/aspir/templates/plan.md +0 -184
  357. package/skeleton/protocols/aspir/templates/review.md +0 -120
  358. package/skeleton/protocols/aspir/templates/spec.md +0 -154
@@ -0,0 +1,292 @@
1
+ /**
2
+ * `afx reset` — the command surface over the reset state machine (Spec 1273).
3
+ *
4
+ * This file is deliberately thin. It does three things and nothing else:
5
+ * resolves the target, binds REAL implementations to the orchestrator's ports,
6
+ * and prints the report. Every decision, every ordering rule and every refusal
7
+ * lives in `reset/index.ts`, where it is testable without Tower, a PTY, or a
8
+ * live builder.
9
+ *
10
+ * That split is the point. The dangerous part of reset is the ordering, and
11
+ * ordering is only provable if the thing that decides it has no I/O in it.
12
+ *
13
+ * Addressing, workspace detection and sender identity are reused verbatim from
14
+ * `afx send` — there is exactly one address resolver (the same rule `afx
15
+ * interrupt` follows).
16
+ */
17
+ import { existsSync, readFileSync, readdirSync, writeFileSync, statSync } from 'node:fs';
18
+ import { TowerClient } from '../lib/tower-client.js';
19
+ import { logger, fatal } from '../utils/logger.js';
20
+ import { findBuilderById } from '../lib/builder-lookup.js';
21
+ import { getConfig } from '../utils/index.js';
22
+ import { loadConfig } from '../../lib/config.js';
23
+ import { loadForgeConfig } from '../../lib/forge.js';
24
+ import { fetchIssue as fetchForgeIssue } from '../../lib/github.js';
25
+ import { buildPromptFromTemplate, buildResumeNotice } from './spawn-roles.js';
26
+ import { detectWorkspaceRoot, detectCurrentBuilderId } from './send.js';
27
+ import { resolveBuilderContext } from './reset/context.js';
28
+ import { formatResetReport, runReset, ResetPreflightError, } from './reset/index.js';
29
+ /** Same cap `afx send --file` enforces. One rule for architect-supplied files. */
30
+ const MAX_FILE_SIZE = 48 * 1024;
31
+ export async function reset(options) {
32
+ const target = options.builder;
33
+ if (!target) {
34
+ fatal('Must specify a builder. Usage: afx reset <builder>');
35
+ }
36
+ logger.header('Builder Context Reset');
37
+ const workspace = detectWorkspaceRoot() ?? undefined;
38
+ let from;
39
+ try {
40
+ from = detectCurrentBuilderId() ?? 'architect';
41
+ }
42
+ catch (err) {
43
+ fatal(err instanceof Error ? err.message : String(err));
44
+ }
45
+ // `findBuilderById`, NOT `getBuilder`: the latter matches the id EXACTLY, so
46
+ // `afx reset 1273` would fail against a builder registered as `aspir-1273`
47
+ // while `afx send 1273` reached it fine. Reset must resolve targets the same
48
+ // way every other builder-addressed command does — a reset that cannot be
49
+ // addressed the way the architect already types addresses is a reset that
50
+ // gets typed wrong under pressure. `findBuilderById` also reports AMBIGUOUS
51
+ // with the candidate list rather than silently picking one.
52
+ const builder = findBuilderById(target);
53
+ if (!builder) {
54
+ fatal(`No builder '${target}' in this workspace (or the id is ambiguous — see above). ` +
55
+ `Check 'afx status'. Reset needs the registry row for the worktree and branch.`);
56
+ }
57
+ if (!builder.worktree || !builder.branch) {
58
+ fatal(`Builder '${target}' has an incomplete registry row (worktree='${builder.worktree}', ` +
59
+ `branch='${builder.branch}'). Refusing to reset against unresolved state.`);
60
+ }
61
+ const client = new TowerClient();
62
+ if (!(await client.isRunning())) {
63
+ fatal('Tower is not running. Start it with: afx tower start');
64
+ }
65
+ const addendum = buildAddendum(options);
66
+ const config = getConfig();
67
+ const userConfig = loadConfig(config.workspaceRoot);
68
+ const context = resolveBuilderContext({
69
+ fs: {
70
+ exists: (p) => existsSync(p),
71
+ read: (p) => safeRead(p),
72
+ listDirs: (p) => {
73
+ try {
74
+ return readdirSync(p, { withFileTypes: true })
75
+ .filter(e => e.isDirectory())
76
+ .map(e => e.name);
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ },
82
+ },
83
+ builderId: builder.id,
84
+ worktree: builder.worktree,
85
+ branch: builder.branch,
86
+ issueNumber: builder.issueNumber === undefined ? undefined : String(builder.issueNumber),
87
+ taskText: builder.taskText,
88
+ modeOverride: options.mode,
89
+ customHarnesses: userConfig?.harness,
90
+ });
91
+ const terminal = buildTerminalPort(client, builder.terminalId, target, from, workspace);
92
+ try {
93
+ const result = await runReset({
94
+ context,
95
+ fs: buildFsPort(),
96
+ clock: realClock,
97
+ terminal,
98
+ buildSpawnPrompt: (protocol, templateContext) => buildPromptFromTemplate(config, protocol, templateContext),
99
+ buildResumeNotice,
100
+ issue: await fetchIssuePayload(context.issueNumber, config.workspaceRoot),
101
+ addendum,
102
+ dryRun: options.dryRun,
103
+ interruptFirst: options.interruptFirst,
104
+ receiptTimeoutMs: options.timeout ? options.timeout * 1000 : undefined,
105
+ minBytes: options.minBytes,
106
+ quietWindowMs: options.quietWindow,
107
+ });
108
+ if (result.outcome === 'dry-run') {
109
+ logger.info('DRY RUN — nothing was written to the builder.\n');
110
+ logger.info('--- save request (what the builder is asked to write) ---');
111
+ console.log(result.saveRequest);
112
+ logger.info('--- inline re-orientation ---');
113
+ console.log(result.payload?.inline ?? '');
114
+ logger.info(`--- long form would be written to ${result.reorientPath} ---`);
115
+ console.log(result.payload?.longForm ?? '');
116
+ return;
117
+ }
118
+ console.log(formatResetReport(result));
119
+ if (result.outcome === 'aborted') {
120
+ // Non-zero: an aborted reset is a failure the caller must see, even though
121
+ // it is the SAFE outcome. Silence here would let a script treat "refused
122
+ // to clear" as "cleared".
123
+ process.exitCode = 1;
124
+ return;
125
+ }
126
+ logger.success(`Builder ${target} reset and re-oriented.`);
127
+ logger.info(`State file: ${result.statePath} (${result.stateBytes} bytes)`);
128
+ }
129
+ catch (err) {
130
+ if (err instanceof ResetPreflightError) {
131
+ fatal(err.message);
132
+ }
133
+ fatal(err instanceof Error ? err.message : String(err));
134
+ }
135
+ }
136
+ // ============================================================================
137
+ // Port bindings
138
+ // ============================================================================
139
+ const realClock = {
140
+ now: () => Date.now(),
141
+ sleep: (ms) => new Promise(resolve => setTimeout(resolve, ms)),
142
+ };
143
+ function buildFsPort() {
144
+ return {
145
+ read: (p) => safeRead(p),
146
+ sizeOf: (p) => {
147
+ try {
148
+ return statSync(p).size;
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ },
154
+ write: (p, content) => writeFileSync(p, content, 'utf-8'),
155
+ };
156
+ }
157
+ function safeRead(p) {
158
+ try {
159
+ return readFileSync(p, 'utf-8');
160
+ }
161
+ catch {
162
+ return null;
163
+ }
164
+ }
165
+ function buildTerminalPort(client, terminalId, target, from, workspace) {
166
+ return {
167
+ async observe() {
168
+ if (!terminalId)
169
+ return { exists: false };
170
+ const t = await client.getTerminal(terminalId);
171
+ if (!t || t.status !== 'running')
172
+ return { exists: false };
173
+ // Both optional fields are forwarded AS-IS, including undefined. The
174
+ // orchestrator distinguishes "reported false" from "not reported", and
175
+ // collapsing either to a concrete value here would defeat that check at
176
+ // the boundary — `lastDataAt: 0` reads as decades of silence, and
177
+ // `writable: true` would assert a fact this Tower never supplied.
178
+ return { exists: true, lastDataAt: t.lastDataAt, writable: t.writable };
179
+ },
180
+ async sendMessage(message) {
181
+ const result = await client.sendMessage(target, message, {
182
+ from,
183
+ workspace,
184
+ fromWorkspace: workspace,
185
+ });
186
+ if (!result.ok)
187
+ throw new Error(result.error || 'Message delivery failed');
188
+ },
189
+ /**
190
+ * `raw: true`, NOT `escape: true`.
191
+ *
192
+ * Tower's escape route writes a hardcoded ESC and discards the message
193
+ * body, so binding this to `escape` would silently turn `/clear` into an
194
+ * interrupt: the run would report success while the builder kept its
195
+ * entire context. `raw` types the text as literal input, which is what the
196
+ * verified manual recipe used.
197
+ */
198
+ async sendRaw(text) {
199
+ const result = await client.sendMessage(target, text, {
200
+ from,
201
+ workspace,
202
+ fromWorkspace: workspace,
203
+ raw: true,
204
+ });
205
+ if (!result.ok)
206
+ throw new Error(result.error || 'Raw write failed');
207
+ },
208
+ async sendEscape() {
209
+ const result = await client.sendMessage(target, '\x1b', {
210
+ from,
211
+ workspace,
212
+ fromWorkspace: workspace,
213
+ escape: true,
214
+ });
215
+ if (!result.ok)
216
+ throw new Error(result.error || 'Interrupt (ESC) failed');
217
+ },
218
+ /**
219
+ * Bound for real, not left undefined.
220
+ *
221
+ * When this was absent the orchestrator's `confirmClear` returned false on
222
+ * every production run, so the report always said "clear-unconfirmed" — a
223
+ * step that looked attempted and could never succeed outside tests.
224
+ *
225
+ * Returns `total` alongside the lines so confirmation can look only at
226
+ * output produced AFTER the clear. Reset writes into this same terminal, so
227
+ * without that window any pattern eventually matches reset's own text.
228
+ */
229
+ async readOutput() {
230
+ if (!terminalId)
231
+ return null;
232
+ const output = await client.getTerminalOutput(terminalId, 200);
233
+ return output ? { lines: output.lines, total: output.total } : null;
234
+ },
235
+ };
236
+ }
237
+ // ============================================================================
238
+ // Inputs
239
+ // ============================================================================
240
+ /**
241
+ * Assemble the architect addendum from `--note` and `--file`.
242
+ *
243
+ * `--file` reads from the CALLER's filesystem, exactly as `afx send --file`
244
+ * does, and reuses its 48KB cap. The worktree-containment rule applies to the
245
+ * state-file path override, not to this — the architect is reading their own
246
+ * notes, not instructing the builder where to write.
247
+ */
248
+ function buildAddendum(options) {
249
+ const parts = [];
250
+ if (options.note)
251
+ parts.push(options.note);
252
+ if (options.file) {
253
+ if (!existsSync(options.file)) {
254
+ fatal(`File not found: ${options.file}`);
255
+ }
256
+ const buf = readFileSync(options.file);
257
+ if (buf.length > MAX_FILE_SIZE) {
258
+ fatal(`File too large: ${buf.length} bytes (max ${MAX_FILE_SIZE} bytes / 48KB)`);
259
+ }
260
+ parts.push(buf.toString('utf-8'));
261
+ }
262
+ return parts.length > 0 ? parts.join('\n\n') : undefined;
263
+ }
264
+ /**
265
+ * Fetch issue metadata for the long form, best-effort.
266
+ *
267
+ * A forge outage must not block a reset: phase 5 renders an explicit "could not
268
+ * be fetched" gap with a `gh issue view` recovery line, which is strictly better
269
+ * than aborting a reset the architect needs, and strictly better than silently
270
+ * omitting requirements.
271
+ */
272
+ async function fetchIssuePayload(issueNumber, workspaceRoot) {
273
+ if (!issueNumber)
274
+ return undefined;
275
+ try {
276
+ const issue = await fetchForgeIssue(issueNumber, {
277
+ cwd: workspaceRoot,
278
+ forgeConfig: loadForgeConfig(workspaceRoot),
279
+ });
280
+ if (!issue)
281
+ return undefined;
282
+ return {
283
+ number: issueNumber,
284
+ title: issue.title,
285
+ body: issue.body || '(No description provided)',
286
+ };
287
+ }
288
+ catch {
289
+ return undefined;
290
+ }
291
+ }
292
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/reset.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAkBnD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAWxG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAyDtD;AA0ED;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF9D"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAkBnD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAWxG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAyDtD;AAiGD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0H9D"}
@@ -177,16 +177,16 @@ async function readStdin() {
177
177
  }
178
178
  return Buffer.concat(chunks).toString('utf-8').trim();
179
179
  }
180
- /**
181
- * Send a message to all builders via Tower API.
182
- */
183
180
  async function sendToAll(client, message, workspace, from, options) {
184
181
  // Bugfix #826: loadState is workspace-scoped (for the architect read).
185
182
  // Builders are global per state.db; use the detected workspace root as
186
183
  // scope. `process.cwd()` is a safe fallback when detection fails — the
187
184
  // architect read returns [] and `--all` only uses `state.builders`.
188
185
  const state = loadState(detectWorkspaceRoot() ?? process.cwd());
189
- const results = { sent: [], failed: [] };
186
+ // Spec 1307 `--delay` + Spec 1313 mailbox: scheduled (delayed) and held
187
+ // (persisted, awaiting a clean prompt) are tracked separately from delivered.
188
+ // Reporting either as "Delivered" would claim a delivery that hasn't happened.
189
+ const results = { delivered: [], held: [], scheduled: [], failed: [] };
190
190
  if (state.builders.length === 0) {
191
191
  logger.warn('No active builders found.');
192
192
  return results;
@@ -200,11 +200,25 @@ async function sendToAll(client, message, workspace, from, options) {
200
200
  raw: options.raw,
201
201
  noEnter: options.noEnter,
202
202
  interrupt: options.interrupt,
203
+ // Spec 1307: each target's delivery is scheduled independently.
204
+ deliverAfter: options.delay,
203
205
  });
204
206
  if (!result.ok) {
205
207
  throw new Error(result.error || 'Unknown error');
206
208
  }
207
- results.sent.push(builder.id);
209
+ // Distinct outcomes, kept distinct (Spec 1307 `--delay` + Spec 1313 mailbox):
210
+ // a scheduled (delayed) or held (persisted, awaiting a clean prompt) message
211
+ // has NOT been delivered now — classifying either as "delivered" would claim a
212
+ // delivery that has not happened.
213
+ if (result.scheduled) {
214
+ results.scheduled.push(builder.id);
215
+ }
216
+ else if (result.held) {
217
+ results.held.push({ id: builder.id, reason: result.reason, mailboxId: result.mailboxId });
218
+ }
219
+ else {
220
+ results.delivered.push(builder.id);
221
+ }
208
222
  }
209
223
  catch (error) {
210
224
  logger.error(`Failed to send to ${builder.id}: ${error instanceof Error ? error.message : String(error)}`);
@@ -270,8 +284,17 @@ export async function send(options) {
270
284
  if (options.all) {
271
285
  // Broadcast to all builders
272
286
  const results = await sendToAll(client, message, workspace, from, options);
273
- if (results.sent.length > 0) {
274
- logger.success(`Sent to ${results.sent.length} builder(s): ${results.sent.join(', ')}`);
287
+ if (results.delivered.length > 0) {
288
+ logger.success(`Delivered to ${results.delivered.length} builder(s): ${results.delivered.join(', ')}`);
289
+ }
290
+ if (results.held.length > 0) {
291
+ const detail = results.held.map((h) => `${h.id} (${h.reason ?? 'pending'})`).join(', ');
292
+ logger.info(`Held for ${results.held.length} builder(s): ${detail}. ` +
293
+ `Each delivers automatically when its prompt is clear.`);
294
+ }
295
+ if (results.scheduled.length > 0) {
296
+ logger.success(`Scheduled for ${results.scheduled.length} builder(s) (+${options.delay}s): ${results.scheduled.join(', ')}`);
297
+ logger.info('Each is persisted and durable across a Tower restart; delivers onto a clear prompt when due. Inspect/cancel: afx inbox.');
275
298
  }
276
299
  if (results.failed.length > 0) {
277
300
  logger.error(`Failed for ${results.failed.length} builder(s): ${results.failed.join(', ')}`);
@@ -287,11 +310,29 @@ export async function send(options) {
287
310
  raw: options.raw,
288
311
  noEnter: options.noEnter,
289
312
  interrupt: options.interrupt,
313
+ deliverAfter: options.delay,
290
314
  });
291
315
  if (!result.ok) {
292
316
  throw new Error(result.error || 'Unknown error');
293
317
  }
294
- logger.success(`Message sent to ${result.resolvedTo ?? target}`);
318
+ // Report the real first outcome (Spec 1307 `--delay` + Spec 1313 mailbox). A
319
+ // scheduled message is deferred to a future time; a held message is persisted
320
+ // in the mailbox and delivers automatically once the target's prompt is clear
321
+ // (empty and render-verified) — neither is a failure, and neither has been
322
+ // delivered yet.
323
+ if (result.scheduled) {
324
+ logger.success(`Message scheduled for ${result.resolvedTo ?? target} (+${options.delay}s)` +
325
+ `${result.mailboxId ? ` — mailbox id ${result.mailboxId}` : ''}`);
326
+ logger.info('Persisted and durable across a Tower restart; delivers onto a clear prompt when due. Inspect/cancel: afx inbox.');
327
+ }
328
+ else if (result.held) {
329
+ logger.info(`Message held for ${result.resolvedTo ?? target} (${result.reason ?? 'pending'})` +
330
+ `${result.mailboxId ? ` — mailbox id ${result.mailboxId}` : ''}. ` +
331
+ `It delivers automatically when the prompt is clear.`);
332
+ }
333
+ else {
334
+ logger.success(`Message delivered to ${result.resolvedTo ?? target}`);
335
+ }
295
336
  }
296
337
  catch (error) {
297
338
  fatal(error instanceof Error ? error.message : String(error));
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/send.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * and terminal session creation via the Tower REST API.
8
8
  */
9
9
  import type { Config, ProtocolDefinition } from '../types.js';
10
+ import { type HarnessProvider } from '../utils/harness.js';
10
11
  import { type ForgeIssue } from '../../lib/github.js';
11
12
  import { type ForgeConfig } from '../../lib/forge.js';
12
13
  /**
@@ -151,16 +152,114 @@ export declare function createPtySession(config: Config, command: string, args:
151
152
  }): Promise<{
152
153
  terminalId: string;
153
154
  }>;
155
+ /**
156
+ * Build the `while true; do … done` launch loop for a builder script.
157
+ *
158
+ * `initial` is what the loop runs on entry, and what a crash restart reruns —
159
+ * on the resume path that is `<cmd> --resume <id>`, because recovering the
160
+ * conversation is exactly right after an unnatural death.
161
+ *
162
+ * `fresh` is what the Enter-gated relaunch runs after a *clean* exit. Issue
163
+ * #1267: a clean exit means the user deliberately ended that conversation, so
164
+ * relaunching it is the one thing the relaunch must not do — the same rule
165
+ * #1264 established for architect terminals. `fresh` is the plain
166
+ * role-injected, prompt-carrying invocation a non-resume spawn would have used,
167
+ * so "fresh" needs no definition of its own.
168
+ *
169
+ * The switch is one-way and sticky: once a clean exit has moved the loop to
170
+ * `fresh`, a later crash restarts the *fresh* invocation, never the superseded
171
+ * session the user walked away from.
172
+ *
173
+ * The two commands differ only on the resume path. Every other variant passes
174
+ * the same string twice and gets the historical single-command loop back,
175
+ * byte for byte.
176
+ *
177
+ * Issue #1233: this loop now serves only harnesses WITHOUT script-form session
178
+ * support (codex/gemini/opencode/custom) — their generated script is unchanged,
179
+ * byte for byte. Claude builders get `buildSessionLaunchLoop` instead, which
180
+ * resumes the conversation on crash restarts rather than replaying the prompt.
181
+ */
182
+ export declare function buildLaunchLoop(initial: string, fresh: string): string;
183
+ /**
184
+ * The prompt a crash-resume invocation carries (Issue #1233). Without it,
185
+ * `--resume` restores the conversation but leaves the agent idle at the input
186
+ * prompt — for an unattended builder that converts amnesia into a stall. The
187
+ * nudge is a new user message in the restored conversation, so the builder
188
+ * re-orients itself and continues autonomously. Deliberately free of
189
+ * single quotes: it is embedded single-quoted in the generated script.
190
+ */
191
+ export declare const CRASH_RESUME_NUDGE: string;
192
+ /** The shell expression the session-aware loop's commands use to reference the current session id. */
193
+ export declare const SESSION_ID_EXPR = "\"$codev_session_id\"";
194
+ /**
195
+ * Script-form session support for a harness, or undefined when the harness
196
+ * cannot pin/resume a conversation from a generated bash script. Both fragment
197
+ * forms are required — the session-aware loop needs to pin AND resume.
198
+ */
199
+ export declare function scriptSessionForms(harness: HarnessProvider): {
200
+ newSessionScriptFragment(idExpr: string): string;
201
+ resumeScriptFragment(idExpr: string): string;
202
+ } | undefined;
203
+ /**
204
+ * Build the session-aware launch loop (Issue #1233) — the builder-side
205
+ * expression of the architect resume pattern (#832/#1264): the wrapper pins a
206
+ * conversation id at entry and *resumes* it after an unnatural exit, instead of
207
+ * replaying the spawn prompt into a fresh session (the amnesia path this issue
208
+ * removes). A jetsam SIGKILL now costs 2 seconds, not the builder's memory.
209
+ *
210
+ * State machine, expressed in generated bash because builder liveness is
211
+ * deliberately decoupled from Tower (persistent PTYs survive Tower restarts,
212
+ * so no Node process is guaranteed to be around when the crash fires):
213
+ *
214
+ * - Entry: `initial` if given (the recover path's discovered-id resume), else
215
+ * the pinned fresh invocation (`--session-id` + role + prompt).
216
+ * - Unnatural exit → resume `$codev_session_id` with a short nudge prompt, so
217
+ * the restored builder re-orients and continues rather than idling.
218
+ * - Clean exit → Enter-gated relaunch stays FRESH per #1267/#1264 ("a clean
219
+ * exit ends that conversation"), but pinned to a newly minted id so the new
220
+ * conversation is crash-protected too. Sticky and one-way, like #1267.
221
+ * - Unresumable-session degrade (#1145/#1149 lesson): `--resume` against a
222
+ * gone/corrupt/held session dies fast; three consecutive fast failures
223
+ * (< CODEV_LAUNCH_FAST_FAIL_SECS, default 15) fall back to a prompt-replay
224
+ * fresh launch under a new id — today's behavior, crash-protected forward.
225
+ * A slow failure resets the counter.
226
+ * - Id minting at runtime uses uuidgen (lowercased) or /proc fallback; when
227
+ * neither exists the relaunch degrades to the UNPINNED fresh invocation —
228
+ * exactly the historical command — and crash restarts stay unpinned rather
229
+ * than resuming a stale id.
230
+ *
231
+ * `.builder-session-id` always holds the current id (removed while unpinned).
232
+ * The bash script is the sole writer: after a re-mint it is the only party
233
+ * that knows the current id, so Node- or DB-side copies would go stale
234
+ * (consumption by recover/--resume is Issue #1112's scope).
235
+ */
236
+ export declare function buildSessionLaunchLoop(opts: {
237
+ /** Initial value of $codev_session_id: spawn-minted, or the discovered id on the recover path. */
238
+ sessionId: string;
239
+ /** Entry command override (recover path). Defaults to the pinned fresh invocation. */
240
+ initial?: string;
241
+ /** Fresh conversation pinned to $codev_session_id: role + pin + prompt. */
242
+ pinnedFresh: string;
243
+ /** The historical unpinned fresh invocation — degrade target when no uuid can be minted. */
244
+ unpinnedFresh: string;
245
+ /** Resume $codev_session_id with the crash-resume nudge. */
246
+ resume: string;
247
+ }): string;
154
248
  /**
155
249
  * Start a terminal session for a builder.
156
250
  *
157
- * When `resume` is provided, the launch script invokes the harness's resume
251
+ * When `resume` is provided, the launch script *enters* on the harness's resume
158
252
  * form (e.g. `claude --resume <uuid>`) via the pre-escaped `scriptFragment`
159
- * instead of a fresh prompt+role invocation. The saved conversation contains
160
- * the system prompt / role context already, so role injection and the initial
161
- * prompt are intentionally skipped on that path. Only the Claude harness
162
- * produces a resume object (Issue #929); codex/gemini pass `undefined` here
163
- * and take the fresh role-injection path.
253
+ * rather than a prompt+role invocation: the saved conversation already contains
254
+ * the system prompt and role context. Only the Claude harness produces a resume
255
+ * object (Issue #929); codex/gemini pass `undefined` here and enter fresh.
256
+ *
257
+ * Issue #1267: the script still *carries* the fresh invocation, because a clean
258
+ * exit relaunches with it (see `buildLaunchLoop`). That is why role injection
259
+ * and the harness worktree files are prepared on the resume path too — the
260
+ * relaunch is a genuine fresh launch and needs everything one needs.
261
+ * `.builder-prompt.txt` is the deliberate exception: it is read, never
262
+ * rewritten, on resume (see below).
164
263
  */
165
264
  export declare function startBuilderSession(config: Config, builderId: string, worktreePath: string, baseCmd: string, prompt: string, roleContent: string | null, roleSource: string | null, resume?: {
166
265
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-worktree.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn-worktree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-worktree.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn-worktree.ts"],"names":[],"mappings":"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"}