@cluesmith/codev 3.2.4 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/dashboard-dist/assets/index-BZRTEMtH.css +32 -0
  2. package/dashboard-dist/assets/{index-BZ1x7x1X.js → index-D3XaKpZW.js} +46 -44
  3. package/dashboard-dist/assets/index-D3XaKpZW.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 +154 -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 +34 -0
  40. package/dist/agent-farm/commands/reset.d.ts.map +1 -0
  41. package/dist/agent-farm/commands/reset.js +309 -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/commands/tower.d.ts.map +1 -1
  57. package/dist/agent-farm/commands/tower.js +13 -0
  58. package/dist/agent-farm/commands/tower.js.map +1 -1
  59. package/dist/agent-farm/db/index.d.ts +1 -1
  60. package/dist/agent-farm/db/index.d.ts.map +1 -1
  61. package/dist/agent-farm/db/index.js +80 -1
  62. package/dist/agent-farm/db/index.js.map +1 -1
  63. package/dist/agent-farm/db/mailbox.d.ts +222 -0
  64. package/dist/agent-farm/db/mailbox.d.ts.map +1 -0
  65. package/dist/agent-farm/db/mailbox.js +304 -0
  66. package/dist/agent-farm/db/mailbox.js.map +1 -0
  67. package/dist/agent-farm/db/schema.d.ts +1 -1
  68. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  69. package/dist/agent-farm/db/schema.js +35 -0
  70. package/dist/agent-farm/db/schema.js.map +1 -1
  71. package/dist/agent-farm/db/types.d.ts +45 -0
  72. package/dist/agent-farm/db/types.d.ts.map +1 -1
  73. package/dist/agent-farm/db/types.js.map +1 -1
  74. package/dist/agent-farm/lib/builder-lookup.d.ts +1 -1
  75. package/dist/agent-farm/lib/builder-lookup.js +2 -2
  76. package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
  77. package/dist/agent-farm/lib/reconnect-backoff.d.ts +64 -0
  78. package/dist/agent-farm/lib/reconnect-backoff.d.ts.map +1 -0
  79. package/dist/agent-farm/lib/reconnect-backoff.js +57 -0
  80. package/dist/agent-farm/lib/reconnect-backoff.js.map +1 -0
  81. package/dist/agent-farm/lib/tower-client.d.ts +16 -6
  82. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  83. package/dist/agent-farm/lib/tower-client.js +37 -6
  84. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  85. package/dist/agent-farm/lib/tunnel-client.d.ts +69 -1
  86. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  87. package/dist/agent-farm/lib/tunnel-client.js +225 -30
  88. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  89. package/dist/agent-farm/servers/canvas-relay.d.ts +60 -0
  90. package/dist/agent-farm/servers/canvas-relay.d.ts.map +1 -0
  91. package/dist/agent-farm/servers/canvas-relay.js +376 -0
  92. package/dist/agent-farm/servers/canvas-relay.js.map +1 -0
  93. package/dist/agent-farm/servers/cron-delivery.d.ts +72 -0
  94. package/dist/agent-farm/servers/cron-delivery.d.ts.map +1 -0
  95. package/dist/agent-farm/servers/cron-delivery.js +80 -0
  96. package/dist/agent-farm/servers/cron-delivery.js.map +1 -0
  97. package/dist/agent-farm/servers/delayed-send.d.ts +85 -0
  98. package/dist/agent-farm/servers/delayed-send.d.ts.map +1 -0
  99. package/dist/agent-farm/servers/delayed-send.js +165 -0
  100. package/dist/agent-farm/servers/delayed-send.js.map +1 -0
  101. package/dist/agent-farm/servers/gate-profiles.d.ts +67 -0
  102. package/dist/agent-farm/servers/gate-profiles.d.ts.map +1 -0
  103. package/dist/agent-farm/servers/gate-profiles.js +113 -0
  104. package/dist/agent-farm/servers/gate-profiles.js.map +1 -0
  105. package/dist/agent-farm/servers/mailbox-delivery.d.ts +370 -0
  106. package/dist/agent-farm/servers/mailbox-delivery.d.ts.map +1 -0
  107. package/dist/agent-farm/servers/mailbox-delivery.js +617 -0
  108. package/dist/agent-farm/servers/mailbox-delivery.js.map +1 -0
  109. package/dist/agent-farm/servers/mailbox-wiring.d.ts +125 -0
  110. package/dist/agent-farm/servers/mailbox-wiring.d.ts.map +1 -0
  111. package/dist/agent-farm/servers/mailbox-wiring.js +425 -0
  112. package/dist/agent-farm/servers/mailbox-wiring.js.map +1 -0
  113. package/dist/agent-farm/servers/message-write.d.ts +53 -1
  114. package/dist/agent-farm/servers/message-write.d.ts.map +1 -1
  115. package/dist/agent-farm/servers/message-write.js +63 -0
  116. package/dist/agent-farm/servers/message-write.js.map +1 -1
  117. package/dist/agent-farm/servers/overview.d.ts +19 -0
  118. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  119. package/dist/agent-farm/servers/overview.js +100 -4
  120. package/dist/agent-farm/servers/overview.js.map +1 -1
  121. package/dist/agent-farm/servers/render-gate.d.ts +141 -0
  122. package/dist/agent-farm/servers/render-gate.d.ts.map +1 -0
  123. package/dist/agent-farm/servers/render-gate.js +251 -0
  124. package/dist/agent-farm/servers/render-gate.js.map +1 -0
  125. package/dist/agent-farm/servers/session-submit.d.ts +90 -0
  126. package/dist/agent-farm/servers/session-submit.d.ts.map +1 -0
  127. package/dist/agent-farm/servers/session-submit.js +127 -0
  128. package/dist/agent-farm/servers/session-submit.js.map +1 -0
  129. package/dist/agent-farm/servers/tower-cron.d.ts +10 -7
  130. package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
  131. package/dist/agent-farm/servers/tower-cron.js +58 -53
  132. package/dist/agent-farm/servers/tower-cron.js.map +1 -1
  133. package/dist/agent-farm/servers/tower-instances.d.ts +14 -2
  134. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  135. package/dist/agent-farm/servers/tower-instances.js +78 -16
  136. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  137. package/dist/agent-farm/servers/tower-messages.d.ts +38 -1
  138. package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
  139. package/dist/agent-farm/servers/tower-messages.js +106 -1
  140. package/dist/agent-farm/servers/tower-messages.js.map +1 -1
  141. package/dist/agent-farm/servers/tower-routes.d.ts +16 -4
  142. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  143. package/dist/agent-farm/servers/tower-routes.js +826 -145
  144. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  145. package/dist/agent-farm/servers/tower-server.js +188 -34
  146. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  147. package/dist/agent-farm/servers/tower-terminals.d.ts +23 -2
  148. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  149. package/dist/agent-farm/servers/tower-terminals.js +134 -127
  150. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  151. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
  152. package/dist/agent-farm/servers/tower-tunnel.js +63 -4
  153. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  154. package/dist/agent-farm/servers/tower-types.d.ts +2 -1
  155. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  156. package/dist/agent-farm/servers/tower-utils.d.ts +64 -1
  157. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  158. package/dist/agent-farm/servers/tower-utils.js +168 -1
  159. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  160. package/dist/agent-farm/servers/tower-websocket.d.ts +6 -1
  161. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
  162. package/dist/agent-farm/servers/tower-websocket.js +95 -57
  163. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  164. package/dist/agent-farm/servers/write-queue.d.ts +35 -0
  165. package/dist/agent-farm/servers/write-queue.d.ts.map +1 -0
  166. package/dist/agent-farm/servers/write-queue.js +56 -0
  167. package/dist/agent-farm/servers/write-queue.js.map +1 -0
  168. package/dist/agent-farm/types.d.ts +39 -0
  169. package/dist/agent-farm/types.d.ts.map +1 -1
  170. package/dist/agent-farm/utils/agent-names.d.ts +2 -2
  171. package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
  172. package/dist/agent-farm/utils/agent-names.js +3 -3
  173. package/dist/agent-farm/utils/agent-names.js.map +1 -1
  174. package/dist/agent-farm/utils/architect-name.d.ts +2 -2
  175. package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
  176. package/dist/agent-farm/utils/architect-name.js +3 -3
  177. package/dist/agent-farm/utils/architect-name.js.map +1 -1
  178. package/dist/agent-farm/utils/config.d.ts +13 -0
  179. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  180. package/dist/agent-farm/utils/config.js +33 -1
  181. package/dist/agent-farm/utils/config.js.map +1 -1
  182. package/dist/agent-farm/utils/harness.d.ts +103 -7
  183. package/dist/agent-farm/utils/harness.d.ts.map +1 -1
  184. package/dist/agent-farm/utils/harness.js +126 -19
  185. package/dist/agent-farm/utils/harness.js.map +1 -1
  186. package/dist/agent-farm/utils/message-format.d.ts +8 -0
  187. package/dist/agent-farm/utils/message-format.d.ts.map +1 -1
  188. package/dist/agent-farm/utils/message-format.js +20 -0
  189. package/dist/agent-farm/utils/message-format.js.map +1 -1
  190. package/dist/agent-farm/utils/server-utils.d.ts +80 -4
  191. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  192. package/dist/agent-farm/utils/server-utils.js +286 -5
  193. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  194. package/dist/cli.d.ts.map +1 -1
  195. package/dist/cli.js +6 -32
  196. package/dist/cli.js.map +1 -1
  197. package/dist/commands/consult/cli-options.d.ts +34 -0
  198. package/dist/commands/consult/cli-options.d.ts.map +1 -0
  199. package/dist/commands/consult/cli-options.js +67 -0
  200. package/dist/commands/consult/cli-options.js.map +1 -0
  201. package/dist/commands/consult/index.d.ts +56 -2
  202. package/dist/commands/consult/index.d.ts.map +1 -1
  203. package/dist/commands/consult/index.js +272 -28
  204. package/dist/commands/consult/index.js.map +1 -1
  205. package/dist/commands/consult/metrics.d.ts +42 -0
  206. package/dist/commands/consult/metrics.d.ts.map +1 -1
  207. package/dist/commands/consult/metrics.js +129 -9
  208. package/dist/commands/consult/metrics.js.map +1 -1
  209. package/dist/commands/doctor.d.ts.map +1 -1
  210. package/dist/commands/doctor.js +71 -19
  211. package/dist/commands/doctor.js.map +1 -1
  212. package/dist/commands/porch/checks.d.ts +23 -0
  213. package/dist/commands/porch/checks.d.ts.map +1 -1
  214. package/dist/commands/porch/checks.js +60 -0
  215. package/dist/commands/porch/checks.js.map +1 -1
  216. package/dist/commands/porch/config.d.ts +20 -0
  217. package/dist/commands/porch/config.d.ts.map +1 -1
  218. package/dist/commands/porch/config.js +20 -0
  219. package/dist/commands/porch/config.js.map +1 -1
  220. package/dist/commands/porch/index.js +21 -28
  221. package/dist/commands/porch/index.js.map +1 -1
  222. package/dist/commands/porch/next.d.ts.map +1 -1
  223. package/dist/commands/porch/next.js +2 -41
  224. package/dist/commands/porch/next.js.map +1 -1
  225. package/dist/lib/config.d.ts +69 -3
  226. package/dist/lib/config.d.ts.map +1 -1
  227. package/dist/lib/config.js +67 -3
  228. package/dist/lib/config.js.map +1 -1
  229. package/dist/lib/consult-lanes.d.ts +149 -0
  230. package/dist/lib/consult-lanes.d.ts.map +1 -0
  231. package/dist/lib/consult-lanes.js +360 -0
  232. package/dist/lib/consult-lanes.js.map +1 -0
  233. package/dist/lib/forge-contracts.d.ts +9 -0
  234. package/dist/lib/forge-contracts.d.ts.map +1 -1
  235. package/dist/lib/forge-contracts.js.map +1 -1
  236. package/dist/lib/github.d.ts +15 -1
  237. package/dist/lib/github.d.ts.map +1 -1
  238. package/dist/lib/github.js +18 -1
  239. package/dist/lib/github.js.map +1 -1
  240. package/dist/lib/prompt-behavior-metrics.d.ts +67 -0
  241. package/dist/lib/prompt-behavior-metrics.d.ts.map +1 -0
  242. package/dist/lib/prompt-behavior-metrics.js +290 -0
  243. package/dist/lib/prompt-behavior-metrics.js.map +1 -0
  244. package/dist/lib/skeleton.d.ts +22 -1
  245. package/dist/lib/skeleton.d.ts.map +1 -1
  246. package/dist/lib/skeleton.js +120 -0
  247. package/dist/lib/skeleton.js.map +1 -1
  248. package/dist/lib/test-env.d.ts +74 -0
  249. package/dist/lib/test-env.d.ts.map +1 -0
  250. package/dist/lib/test-env.js +92 -0
  251. package/dist/lib/test-env.js.map +1 -0
  252. package/dist/terminal/attach-replay.d.ts +39 -0
  253. package/dist/terminal/attach-replay.d.ts.map +1 -0
  254. package/dist/terminal/attach-replay.js +76 -0
  255. package/dist/terminal/attach-replay.js.map +1 -0
  256. package/dist/terminal/pty-manager.d.ts +2 -0
  257. package/dist/terminal/pty-manager.d.ts.map +1 -1
  258. package/dist/terminal/pty-manager.js +51 -23
  259. package/dist/terminal/pty-manager.js.map +1 -1
  260. package/dist/terminal/pty-session.d.ts +201 -1
  261. package/dist/terminal/pty-session.d.ts.map +1 -1
  262. package/dist/terminal/pty-session.js +327 -46
  263. package/dist/terminal/pty-session.js.map +1 -1
  264. package/dist/terminal/ring-buffer.d.ts +39 -6
  265. package/dist/terminal/ring-buffer.d.ts.map +1 -1
  266. package/dist/terminal/ring-buffer.js +74 -6
  267. package/dist/terminal/ring-buffer.js.map +1 -1
  268. package/dist/terminal/session-manager.d.ts +53 -0
  269. package/dist/terminal/session-manager.d.ts.map +1 -1
  270. package/dist/terminal/session-manager.js +94 -9
  271. package/dist/terminal/session-manager.js.map +1 -1
  272. package/dist/terminal/session-screen.d.ts +116 -0
  273. package/dist/terminal/session-screen.d.ts.map +1 -0
  274. package/dist/terminal/session-screen.js +180 -0
  275. package/dist/terminal/session-screen.js.map +1 -0
  276. package/dist/terminal/shellper-main.js +2 -1
  277. package/dist/terminal/shellper-main.js.map +1 -1
  278. package/dist/terminal/shellper-process.d.ts +1 -1
  279. package/dist/terminal/shellper-process.d.ts.map +1 -1
  280. package/dist/terminal/shellper-process.js +17 -8
  281. package/dist/terminal/shellper-process.js.map +1 -1
  282. package/dist/terminal/shellper-replay-buffer.d.ts +69 -7
  283. package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -1
  284. package/dist/terminal/shellper-replay-buffer.js +167 -31
  285. package/dist/terminal/shellper-replay-buffer.js.map +1 -1
  286. package/package.json +13 -8
  287. package/scripts/forge/gitea/pr-view.sh +4 -1
  288. package/scripts/forge/github/pr-view.sh +1 -1
  289. package/scripts/forge/gitlab/pr-view.sh +4 -1
  290. package/skeleton/.claude/skills/afx/SKILL.md +68 -1
  291. package/skeleton/.claude/skills/arch-init/SKILL.md +22 -9
  292. package/skeleton/.claude/skills/arch-save/SKILL.md +183 -0
  293. package/skeleton/.claude/skills/codev/SKILL.md +31 -0
  294. package/skeleton/.claude/skills/runnable-worktrees/SKILL.md +119 -0
  295. package/skeleton/.codex/skills/afx/SKILL.md +68 -1
  296. package/skeleton/.codex/skills/arch-init/SKILL.md +22 -9
  297. package/skeleton/.codex/skills/arch-save/SKILL.md +183 -0
  298. package/skeleton/.codex/skills/codev/SKILL.md +31 -0
  299. package/skeleton/.codex/skills/runnable-worktrees/SKILL.md +119 -0
  300. package/skeleton/protocols/air/builder-prompt.md +28 -47
  301. package/skeleton/protocols/air/consult-types/impl-review.md +17 -34
  302. package/skeleton/protocols/air/consult-types/pr-review.md +14 -37
  303. package/skeleton/protocols/air/prompts/implement.md +20 -73
  304. package/skeleton/protocols/air/prompts/pr.md +22 -54
  305. package/skeleton/protocols/air/protocol.md +40 -71
  306. package/skeleton/protocols/aspir/builder-prompt.md +29 -66
  307. package/skeleton/protocols/aspir/consult-types/impl-review.md +17 -44
  308. package/skeleton/protocols/aspir/consult-types/phase-review.md +17 -44
  309. package/skeleton/protocols/aspir/consult-types/plan-review.md +14 -38
  310. package/skeleton/protocols/aspir/consult-types/pr-review.md +13 -39
  311. package/skeleton/protocols/aspir/consult-types/spec-review.md +13 -33
  312. package/skeleton/protocols/aspir/prompts/implement.md +27 -196
  313. package/skeleton/protocols/aspir/prompts/plan.md +21 -85
  314. package/skeleton/protocols/aspir/prompts/review.md +29 -228
  315. package/skeleton/protocols/aspir/prompts/specify.md +25 -111
  316. package/skeleton/protocols/aspir/protocol.json +10 -0
  317. package/skeleton/protocols/aspir/protocol.md +36 -82
  318. package/skeleton/protocols/bugfix/builder-prompt.md +23 -45
  319. package/skeleton/protocols/bugfix/consult-types/impl-review.md +21 -45
  320. package/skeleton/protocols/bugfix/consult-types/pr-review.md +18 -52
  321. package/skeleton/protocols/bugfix/prompts/fix.md +16 -61
  322. package/skeleton/protocols/bugfix/prompts/investigate.md +18 -62
  323. package/skeleton/protocols/bugfix/prompts/pr.md +22 -57
  324. package/skeleton/protocols/bugfix/protocol.md +44 -50
  325. package/skeleton/protocols/experiment/builder-prompt.md +25 -58
  326. package/skeleton/protocols/experiment/protocol.md +22 -188
  327. package/skeleton/protocols/experiment/templates/notes.md +11 -71
  328. package/skeleton/protocols/maintain/builder-prompt.md +24 -45
  329. package/skeleton/protocols/maintain/consult-types/impl-review.md +17 -44
  330. package/skeleton/protocols/maintain/consult-types/pr-review.md +13 -39
  331. package/skeleton/protocols/maintain/prompts/maintain.md +1 -1
  332. package/skeleton/protocols/maintain/protocol.md +32 -266
  333. package/skeleton/protocols/maintain/templates/maintenance-run.md +11 -0
  334. package/skeleton/protocols/pir/builder-prompt.md +31 -64
  335. package/skeleton/protocols/pir/consult-types/impl-review.md +17 -50
  336. package/skeleton/protocols/pir/consult-types/pr-review.md +11 -40
  337. package/skeleton/protocols/pir/prompts/implement.md +2 -3
  338. package/skeleton/protocols/pir/prompts/plan.md +1 -4
  339. package/skeleton/protocols/pir/prompts/review.md +2 -2
  340. package/skeleton/protocols/pir/protocol.md +54 -177
  341. package/skeleton/protocols/research/builder-prompt.md +27 -58
  342. package/skeleton/protocols/research/protocol.md +28 -153
  343. package/skeleton/protocols/spike/builder-prompt.md +30 -48
  344. package/skeleton/protocols/spike/protocol.md +24 -107
  345. package/skeleton/protocols/spike/templates/findings.md +9 -39
  346. package/skeleton/protocols/spir/builder-prompt.md +33 -62
  347. package/skeleton/protocols/spir/consult-types/impl-review.md +17 -44
  348. package/skeleton/protocols/spir/consult-types/phase-review.md +17 -44
  349. package/skeleton/protocols/spir/consult-types/plan-review.md +14 -38
  350. package/skeleton/protocols/spir/consult-types/pr-review.md +13 -39
  351. package/skeleton/protocols/spir/consult-types/spec-review.md +13 -33
  352. package/skeleton/protocols/spir/prompts/implement.md +26 -195
  353. package/skeleton/protocols/spir/prompts/plan.md +20 -84
  354. package/skeleton/protocols/spir/prompts/review.md +28 -227
  355. package/skeleton/protocols/spir/prompts/specify.md +24 -110
  356. package/skeleton/protocols/spir/protocol.json +10 -0
  357. package/skeleton/protocols/spir/protocol.md +84 -633
  358. package/skeleton/protocols/spir/templates/plan.md +28 -147
  359. package/skeleton/protocols/spir/templates/review.md +21 -80
  360. package/skeleton/protocols/spir/templates/spec.md +24 -118
  361. package/skeleton/resources/commands/agent-farm.md +262 -0
  362. package/skeleton/resources/commands/consult.md +236 -8
  363. package/skeleton/resources/commands/overview.md +1 -0
  364. package/skeleton/roles/architect.md +67 -317
  365. package/skeleton/roles/builder.md +76 -191
  366. package/skeleton/templates/AGENTS.md +2 -0
  367. package/skeleton/templates/CLAUDE.md +2 -0
  368. package/templates/3d-viewer.html +32 -4
  369. package/templates/open.html +58 -12
  370. package/templates/tower.html +65 -9
  371. package/templates/vendor/three-3MFLoader.js +1478 -0
  372. package/templates/vendor/three-STLLoader.js +410 -0
  373. package/templates/vendor/three-TrackballControls.js +828 -0
  374. package/templates/vendor/three-fflate.module.js +2474 -0
  375. package/templates/vendor/three.module.js +53044 -0
  376. package/dashboard-dist/assets/index-BZ1x7x1X.js.map +0 -1
  377. package/dashboard-dist/assets/index-DB1KBSNE.css +0 -32
  378. package/dist/agent-farm/servers/send-buffer.d.ts +0 -59
  379. package/dist/agent-farm/servers/send-buffer.d.ts.map +0 -1
  380. package/dist/agent-farm/servers/send-buffer.js +0 -116
  381. package/dist/agent-farm/servers/send-buffer.js.map +0 -1
  382. package/skeleton/porch/prompts/defend.md +0 -108
  383. package/skeleton/porch/prompts/diagnose.md +0 -70
  384. package/skeleton/porch/prompts/evaluate.md +0 -132
  385. package/skeleton/porch/prompts/fix.md +0 -59
  386. package/skeleton/porch/prompts/implement.md +0 -88
  387. package/skeleton/porch/prompts/plan.md +0 -74
  388. package/skeleton/porch/prompts/pr.md +0 -84
  389. package/skeleton/porch/prompts/review.md +0 -249
  390. package/skeleton/porch/prompts/specify.md +0 -53
  391. package/skeleton/porch/prompts/test.md +0 -63
  392. package/skeleton/protocols/aspir/templates/plan.md +0 -184
  393. package/skeleton/protocols/aspir/templates/review.md +0 -120
  394. package/skeleton/protocols/aspir/templates/spec.md +0 -154
@@ -8,7 +8,7 @@
8
8
  import fs from 'node:fs';
9
9
  import path from 'node:path';
10
10
  import os from 'node:os';
11
- import { TunnelClient } from '../lib/tunnel-client.js';
11
+ import { TunnelClient, TUNNEL_PROXY_HEADER, AUTH_RETRY_FAILED_MARKER, } from '../lib/tunnel-client.js';
12
12
  import { readCloudConfig, writeCloudConfig, deleteCloudConfig, getCloudConfigPath, getOrCreateMachineId, maskApiKey, DEFAULT_CLOUD_URL, } from '../lib/cloud-config.js';
13
13
  import { createPendingRegistration, consumePendingRegistration } from '../lib/nonce-store.js';
14
14
  import { redeemToken } from '../lib/token-exchange.js';
@@ -107,15 +107,19 @@ async function connectTunnel(config) {
107
107
  towerId: config.tower_id,
108
108
  localPort: _deps.port,
109
109
  });
110
- client.onStateChange((state, prev) => {
111
- _deps.log('INFO', `Tunnel: ${prev} → ${state}`);
110
+ client.onStateChange((state, prev, reason) => {
111
+ // #1372: always log *why* — a bare `prev → state` line made the uplink-flap
112
+ // wedge undiagnosable from the tower log.
113
+ _deps.log('INFO', `Tunnel: ${prev} → ${state}${reason ? ` (${reason})` : ''}`);
112
114
  if (state === 'connected') {
113
115
  startMetadataRefresh();
114
116
  }
115
117
  else if (prev === 'connected') {
116
118
  stopMetadataRefresh();
117
119
  }
118
- if (state === 'auth_failed') {
120
+ // Only the first park raises the alarm — the breaker half-opens every 15
121
+ // minutes (#1372), and a revoked key would otherwise log ERROR forever.
122
+ if (state === 'auth_failed' && !reason?.includes(AUTH_RETRY_FAILED_MARKER)) {
119
123
  _deps.log('ERROR', 'Cloud connection failed: API key is invalid or revoked. Run \'afx tower connect --reauth\' to update credentials.');
120
124
  }
121
125
  });
@@ -237,6 +241,52 @@ export function shutdownTunnel() {
237
241
  _deps = null;
238
242
  _getInstances = null;
239
243
  }
244
+ /** Trim a header value to something safe and bounded for a log line. */
245
+ function logSafe(value, max = 160) {
246
+ if (value === undefined)
247
+ return '';
248
+ const flat = Array.isArray(value) ? value.join(',') : value;
249
+ // Collapse control characters — a hostile header must not forge log lines.
250
+ // eslint-disable-next-line no-control-regex
251
+ return flat.replace(/[\u0000-\u001f\u007f]/g, ' ').slice(0, max);
252
+ }
253
+ /**
254
+ * Describe the origin of a tunnel management request (#1370).
255
+ *
256
+ * `POST /api/tunnel/disconnect` deregisters the tower server-side and deletes
257
+ * the local credentials, so an unattributed one is impossible to investigate
258
+ * after the fact. Every call now logs its remote address, user-agent and
259
+ * origin, plus whether it arrived through the tunnel proxy.
260
+ */
261
+ function describeSource(req) {
262
+ const viaTunnel = req.headers[TUNNEL_PROXY_HEADER] !== undefined;
263
+ const remote = req.socket?.remoteAddress ?? 'unknown';
264
+ const ua = logSafe(req.headers['user-agent']) || 'none';
265
+ const origin = logSafe(req.headers.origin ?? req.headers.referer);
266
+ return {
267
+ viaTunnel,
268
+ text: `remote=${logSafe(remote, 64)} via=${viaTunnel ? 'tunnel' : 'local'} ua="${ua}"` +
269
+ (origin ? ` origin=${origin}` : ''),
270
+ };
271
+ }
272
+ /**
273
+ * Reject a management request that arrived through the tunnel.
274
+ *
275
+ * TunnelClient already blocks `/api/tunnel/*` on the proxy side; this is the
276
+ * second, independent layer — a cloud-side actor must never be able to
277
+ * deregister the tower through the tower's own tunnel.
278
+ */
279
+ function rejectIfProxied(res, source, action) {
280
+ if (!source.viaTunnel)
281
+ return false;
282
+ _deps?.log('WARN', `Tunnel ${action} REJECTED — arrived via tunnel proxy (${source.text})`);
283
+ res.writeHead(403, { 'Content-Type': 'application/json' });
284
+ res.end(JSON.stringify({
285
+ success: false,
286
+ error: 'Forbidden: tunnel management endpoints are local-only',
287
+ }));
288
+ return true;
289
+ }
240
290
  function htmlPage(title, body) {
241
291
  return `<!DOCTYPE html>
242
292
  <html><head><meta charset="utf-8"><title>${title}</title>
@@ -296,6 +346,10 @@ export async function handleTunnelEndpoint(req, res, tunnelSub) {
296
346
  }
297
347
  // POST connect — OAuth initiation or smart reconnect
298
348
  if (req.method === 'POST' && tunnelSub === 'connect') {
349
+ const source = describeSource(req);
350
+ if (rejectIfProxied(res, source, 'connect'))
351
+ return;
352
+ _deps?.log('INFO', `Tunnel connect requested (${source.text})`);
299
353
  if (!_deps) {
300
354
  res.writeHead(503, { 'Content-Type': 'application/json' });
301
355
  res.end(JSON.stringify({ success: false, error: 'Tower is still starting up. Try again shortly.' }));
@@ -380,6 +434,11 @@ export async function handleTunnelEndpoint(req, res, tunnelSub) {
380
434
  }
381
435
  // POST disconnect — deregister server-side + delete local config
382
436
  if (req.method === 'POST' && tunnelSub === 'disconnect') {
437
+ const source = describeSource(req);
438
+ if (rejectIfProxied(res, source, 'disconnect'))
439
+ return;
440
+ // Deregisters server-side and deletes local credentials — always attributable.
441
+ _deps?.log('INFO', `Tunnel disconnect requested (${source.text})`);
383
442
  let warning;
384
443
  // Read config FIRST (need credentials for server-side deregister)
385
444
  let config = null;
@@ -1 +1 @@
1
- {"version":3,"file":"tower-tunnel.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-tunnel.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-tunnel.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  import type http from 'node:http';
6
6
  import type { WebSocketServer } from 'ws';
7
7
  import type Database from 'better-sqlite3';
8
- import type { TerminalType } from '@cluesmith/codev-core/tower-client';
8
+ import type { TerminalType } from '@cluesmith/codev-sdk/tower-client';
9
9
  import type { TerminalManager } from '../../terminal/pty-manager.js';
10
10
  import type { SessionManager } from '../../terminal/session-manager.js';
11
11
  import type { TunnelClient } from '../lib/tunnel-client.js';
@@ -118,6 +118,7 @@ export interface DbTerminalSession {
118
118
  shellper_start_time: number | null;
119
119
  label: string | null;
120
120
  cwd: string | null;
121
+ command: string | null;
121
122
  created_at: string;
122
123
  }
123
124
  //# sourceMappingURL=tower-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tower-types.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-types.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-types.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * workspace name extraction, MIME types, and static file serving.
7
7
  */
8
8
  import type { ServerResponse } from 'node:http';
9
- import type { CrashLoopFallback } from '../../terminal/session-manager.js';
9
+ import type { CrashLoopFallback, FreshLaunch, ReconnectRestartOptions } from '../../terminal/session-manager.js';
10
10
  /**
11
11
  * Check if a client has exceeded the rate limit for activations.
12
12
  * Returns true if rate limit exceeded, false if allowed.
@@ -94,9 +94,22 @@ export declare function sessionHasLiveHolder(sessionId: string, opts?: {
94
94
  * A session-capable harness row with no stored id, or an id whose session
95
95
  * artifact is gone, is a dead registration: the reconcile loop prunes it
96
96
  * instead of resurrecting a removed architect (the #1150 bug class).
97
+ *
98
+ * Issue #1338: a retired architect harness (e.g. gemini) makes getArchitectHarness
99
+ * throw. This is a Tower-side liveness predicate, NOT a launch, so it must not let
100
+ * that throw escape — an uncaught throw here aborts the whole sibling-reconcile
101
+ * pass (tower-instances.ts) for every architect in the workspace. Catch the
102
+ * retirement and return `true`: NOT because the registration can launch (it cannot;
103
+ * addArchitect fails closed on the same retirement), but because returning `false`
104
+ * makes the reconcile loop DELETE the user's sibling row (setArchitectByName null),
105
+ * destroying a registration they can still repair (fix the harness, or wire a custom
106
+ * "gemini"). Returning `true` routes to addArchitect, which fails closed with the
107
+ * retirement message and leaves the row intact — same launch safety, non-destructive
108
+ * to user config. Any other error is a real fault and is rethrown unchanged.
97
109
  */
98
110
  export declare function siblingRegistrationIsLive(workspacePath: string, sessionId: string | null, opts?: {
99
111
  homeDir?: string;
112
+ log?: (level: 'INFO' | 'WARN' | 'ERROR', message: string) => void;
100
113
  }): boolean;
101
114
  /**
102
115
  * Issue #832: resolve the args/env to launch (or revive) an architect, choosing
@@ -200,6 +213,56 @@ export declare function buildArchitectCrashLoopFallback(opts: {
200
213
  baseEnv: Record<string, string>;
201
214
  log: (level: 'INFO' | 'ERROR' | 'WARN', message: string) => void;
202
215
  }): CrashLoopFallback;
216
+ /**
217
+ * Issue #1264: the fresh-launch factory a shellper session uses to rerun the
218
+ * architect's harness after a *clean* exit (double Ctrl-C, `/quit`, `exit`).
219
+ *
220
+ * A clean exit means the user deliberately left that conversation, so the
221
+ * rerun must NOT carry `--resume`: it mints a brand-new conversation, with the
222
+ * role re-injected (which the resume path deliberately skips, since a resumed
223
+ * transcript already contains it).
224
+ *
225
+ * The new id is **persisted to the architect row**, so it becomes the identity
226
+ * a later crash recovers. Without that, an unnatural exit after a clean rerun
227
+ * would resume the conversation the user just walked away from. A persist
228
+ * failure is logged and tolerated rather than fatal — the launch itself is
229
+ * still correct, and the next cold start self-heals.
230
+ *
231
+ * Called once per clean exit (never memoized): each rerun is a genuinely new
232
+ * conversation and needs its own id.
233
+ */
234
+ export declare function buildArchitectFreshLaunch(opts: {
235
+ workspacePath: string;
236
+ architectName: string;
237
+ baseArgs: string[];
238
+ baseEnv: Record<string, string>;
239
+ log: (level: 'INFO' | 'ERROR' | 'WARN', message: string) => void;
240
+ }): FreshLaunch;
241
+ /**
242
+ * Issue #832 / #1149 / #1264 / #1338: resolve the shellper auto-restart options for
243
+ * an architect session being reconciled at startup or reconnected on the fly.
244
+ * Consolidates the two previously-duplicated blocks in tower-terminals.ts;
245
+ * `includeFreshLaunch` is the only behavioral difference between them (the startup
246
+ * reconcile path also wires the #1264 clean-exit rerun; the on-the-fly reconnect
247
+ * path does not).
248
+ *
249
+ * Fail-closed retirement (#1338): if the configured harness is retired,
250
+ * `resolveArchitectRestart` throws and this returns `undefined` — the caller
251
+ * reconnects to a live shellper if one exists, but NEVER configures an
252
+ * auto-restart into the retired binary. This replaces the previous fail-OPEN
253
+ * behavior, where the generic catch relaunched `cmdParts[0]` (the retired command
254
+ * itself) with no role injection. Any OTHER harness-resolution error still
255
+ * degrades to the plain configured command so a transient failure can reconnect
256
+ * (identity preserved via `cleanEnv`, Spec 786).
257
+ */
258
+ export declare function buildArchitectReconnectRestartOptions(opts: {
259
+ workspacePath: string;
260
+ architectName: string;
261
+ cmdParts: string[];
262
+ cleanEnv: Record<string, string>;
263
+ includeFreshLaunch: boolean;
264
+ log: (level: 'INFO' | 'WARN' | 'ERROR', message: string) => void;
265
+ }): ReconnectRestartOptions | undefined;
203
266
  /**
204
267
  * Serve a static file from the React dashboard dist.
205
268
  * Returns true if the file was served, false otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"tower-utils.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-utils.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { execFileSync } from 'node:child_process';
12
12
  import crypto from 'node:crypto';
13
13
  import { loadRolePrompt } from '../utils/roles.js';
14
14
  import { getArchitectHarness } from '../utils/config.js';
15
+ import { RetiredHarnessError } from '../utils/harness.js';
15
16
  import { getArchitectByName, setArchitectSessionId } from '../state.js';
16
17
  import { cmdlineHoldsSession } from './architect-session-holder.js';
17
18
  // ============================================================================
@@ -148,6 +149,16 @@ export function buildArchitectArgs(baseArgs, workspacePath) {
148
149
  const codevDir = path.join(workspacePath, 'codev');
149
150
  const bundledRolesDir = path.resolve(import.meta.dirname, '../../../skeleton/roles');
150
151
  const config = { codevDir, bundledRolesDir, workspaceRoot: workspacePath };
152
+ // Launch-boundary fail-closed (Issue #1338): this is the shared launch-injection
153
+ // helper every architect launch funnels through (fresh/reconnect/add-architect/
154
+ // no-Tower `afx architect`). A retired architect harness (e.g. gemini) makes
155
+ // getArchitectHarness throw RetiredHarnessError — that throw IS the intended
156
+ // behavior: a retired architect must not launch, and the error's message is the
157
+ // full retirement explanation. Do NOT catch-and-swallow it here; the launch
158
+ // entry points surface it cleanly (launchInstance → {success:false, error},
159
+ // addArchitect → {success:false, error}, the `afx architect` CLI prints
160
+ // .message). The non-launch liveness predicate is handled separately in
161
+ // siblingRegistrationIsLive.
151
162
  const harness = getArchitectHarness(workspacePath);
152
163
  const role = loadRolePrompt(config, 'architect');
153
164
  if (!role)
@@ -242,9 +253,36 @@ export function sessionHasLiveHolder(sessionId, opts) {
242
253
  * A session-capable harness row with no stored id, or an id whose session
243
254
  * artifact is gone, is a dead registration: the reconcile loop prunes it
244
255
  * instead of resurrecting a removed architect (the #1150 bug class).
256
+ *
257
+ * Issue #1338: a retired architect harness (e.g. gemini) makes getArchitectHarness
258
+ * throw. This is a Tower-side liveness predicate, NOT a launch, so it must not let
259
+ * that throw escape — an uncaught throw here aborts the whole sibling-reconcile
260
+ * pass (tower-instances.ts) for every architect in the workspace. Catch the
261
+ * retirement and return `true`: NOT because the registration can launch (it cannot;
262
+ * addArchitect fails closed on the same retirement), but because returning `false`
263
+ * makes the reconcile loop DELETE the user's sibling row (setArchitectByName null),
264
+ * destroying a registration they can still repair (fix the harness, or wire a custom
265
+ * "gemini"). Returning `true` routes to addArchitect, which fails closed with the
266
+ * retirement message and leaves the row intact — same launch safety, non-destructive
267
+ * to user config. Any other error is a real fault and is rethrown unchanged.
245
268
  */
246
269
  export function siblingRegistrationIsLive(workspacePath, sessionId, opts) {
247
- const harness = getArchitectHarness(workspacePath);
270
+ let harness;
271
+ try {
272
+ harness = getArchitectHarness(workspacePath);
273
+ }
274
+ catch (err) {
275
+ if (err instanceof RetiredHarnessError) {
276
+ // Don't prune: returning `true` keeps the user's sibling row so a later
277
+ // harness fix can revive it. The reconcile loop then calls addArchitect,
278
+ // which fails closed on the same retirement (no partial state created) and
279
+ // logs that failure itself — so this INFO explains why the retired row is
280
+ // KEPT rather than pruned. Callers that pass no `log` still get `true`.
281
+ opts?.log?.('INFO', `Sibling architect registration under '${workspacePath}' selects a retired harness; keeping the row (addArchitect fails closed) rather than pruning it, so it survives a harness fix (${err.message.split('\n')[0]})`);
282
+ return true;
283
+ }
284
+ throw err;
285
+ }
248
286
  if (!harness.session)
249
287
  return true;
250
288
  if (!sessionId)
@@ -351,6 +389,135 @@ export function buildArchitectCrashLoopFallback(opts) {
351
389
  },
352
390
  };
353
391
  }
392
+ /**
393
+ * Issue #1264: the fresh-launch factory a shellper session uses to rerun the
394
+ * architect's harness after a *clean* exit (double Ctrl-C, `/quit`, `exit`).
395
+ *
396
+ * A clean exit means the user deliberately left that conversation, so the
397
+ * rerun must NOT carry `--resume`: it mints a brand-new conversation, with the
398
+ * role re-injected (which the resume path deliberately skips, since a resumed
399
+ * transcript already contains it).
400
+ *
401
+ * The new id is **persisted to the architect row**, so it becomes the identity
402
+ * a later crash recovers. Without that, an unnatural exit after a clean rerun
403
+ * would resume the conversation the user just walked away from. A persist
404
+ * failure is logged and tolerated rather than fatal — the launch itself is
405
+ * still correct, and the next cold start self-heals.
406
+ *
407
+ * Called once per clean exit (never memoized): each rerun is a genuinely new
408
+ * conversation and needs its own id.
409
+ */
410
+ export function buildArchitectFreshLaunch(opts) {
411
+ const { workspacePath, architectName, baseArgs, baseEnv, log } = opts;
412
+ return {
413
+ next: () => {
414
+ let harness;
415
+ try {
416
+ harness = getArchitectHarness(workspacePath);
417
+ }
418
+ catch (err) {
419
+ // Issue #1338: the architect's configured harness was retired AFTER this
420
+ // session launched (a custom `gemini` harness removed, or a config edit
421
+ // before this clean exit). Two hazards, both handled by failing closed:
422
+ // 1. SessionManager invokes next() with no try/catch (session-manager.ts),
423
+ // so a raw throw here becomes an uncaught Tower exception.
424
+ // 2. next() can only change the args/env — the launch `command` is
425
+ // retained by SessionManager. The retained command may itself be the
426
+ // retired binary (a custom `gemini` command), so returning baseArgs
427
+ // would still relaunch it (fail-open).
428
+ // Signal STOP: SessionManager ends the session and surfaces the retirement
429
+ // in the pane instead of respawning. Non-retirement errors are real faults,
430
+ // rethrown.
431
+ if (err instanceof RetiredHarnessError) {
432
+ log('WARN', `Architect '${architectName}' harness is retired; not relaunching on clean exit in ${workspacePath}: ${err.message}`);
433
+ return { stop: true };
434
+ }
435
+ throw err;
436
+ }
437
+ // No resumable-session concept for this harness: there is no recovery to
438
+ // disable, so a plain rebuild of the launch args is already "fresh".
439
+ if (!harness.session) {
440
+ const built = buildArchitectArgs(baseArgs, workspacePath);
441
+ return { args: built.args, env: { ...baseEnv, ...built.env } };
442
+ }
443
+ const sessionId = crypto.randomUUID();
444
+ const built = buildArchitectArgs([...baseArgs, ...harness.session.newSessionArgs(sessionId)], workspacePath);
445
+ try {
446
+ setArchitectSessionId(workspacePath, architectName, sessionId);
447
+ }
448
+ catch (err) {
449
+ log('WARN', `Failed to persist fresh session id for architect '${architectName}': ${err instanceof Error ? err.message : err}`);
450
+ }
451
+ log('INFO', `Architect '${architectName}' exited cleanly; rerunning with a fresh session ${sessionId.slice(0, 8)}… in ${workspacePath}`);
452
+ return { args: built.args, env: { ...baseEnv, ...built.env } };
453
+ },
454
+ };
455
+ }
456
+ /**
457
+ * Issue #832 / #1149 / #1264 / #1338: resolve the shellper auto-restart options for
458
+ * an architect session being reconciled at startup or reconnected on the fly.
459
+ * Consolidates the two previously-duplicated blocks in tower-terminals.ts;
460
+ * `includeFreshLaunch` is the only behavioral difference between them (the startup
461
+ * reconcile path also wires the #1264 clean-exit rerun; the on-the-fly reconnect
462
+ * path does not).
463
+ *
464
+ * Fail-closed retirement (#1338): if the configured harness is retired,
465
+ * `resolveArchitectRestart` throws and this returns `undefined` — the caller
466
+ * reconnects to a live shellper if one exists, but NEVER configures an
467
+ * auto-restart into the retired binary. This replaces the previous fail-OPEN
468
+ * behavior, where the generic catch relaunched `cmdParts[0]` (the retired command
469
+ * itself) with no role injection. Any OTHER harness-resolution error still
470
+ * degrades to the plain configured command so a transient failure can reconnect
471
+ * (identity preserved via `cleanEnv`, Spec 786).
472
+ */
473
+ export function buildArchitectReconnectRestartOptions(opts) {
474
+ const { workspacePath, architectName, cmdParts, cleanEnv, includeFreshLaunch, log } = opts;
475
+ const command = cmdParts[0];
476
+ const baseArgs = cmdParts.slice(1);
477
+ try {
478
+ // Issue #832: revive the same conversation on auto-restart via the stored id.
479
+ const { args: architectArgs, env: harnessEnv, resumed, storedSessionId, fallback } = resolveArchitectRestart(workspacePath, architectName, baseArgs);
480
+ if (resumed && storedSessionId) {
481
+ log('INFO', `Resuming architect '${architectName}' session ${storedSessionId.slice(0, 8)}… on shellper restart in ${workspacePath}`);
482
+ }
483
+ const restartOptions = {
484
+ command,
485
+ args: architectArgs,
486
+ cwd: workspacePath,
487
+ env: { ...cleanEnv, ...harnessEnv },
488
+ restartDelay: 2000,
489
+ maxRestarts: 50,
490
+ };
491
+ // Issue #1264: a clean exit reruns the harness fresh (no --resume). Built from
492
+ // the ORIGINAL baseArgs, never `architectArgs` — the latter may carry --resume.
493
+ if (includeFreshLaunch) {
494
+ restartOptions.freshLaunch = buildArchitectFreshLaunch({
495
+ workspacePath, architectName, baseArgs, baseEnv: cleanEnv, log,
496
+ });
497
+ }
498
+ // Issue #1149: degrade a fast-failing resume to a fresh launch.
499
+ if (resumed && storedSessionId && fallback) {
500
+ restartOptions.crashLoopFallback = buildArchitectCrashLoopFallback({
501
+ workspacePath, architectName, storedSessionId, fallback, baseEnv: cleanEnv, log,
502
+ });
503
+ }
504
+ return restartOptions;
505
+ }
506
+ catch (err) {
507
+ if (err instanceof RetiredHarnessError) {
508
+ // Fail closed: do NOT relaunch the retired command. The session reconnects
509
+ // to its existing process if alive, but no auto-restart into the retired
510
+ // harness is configured.
511
+ log('WARN', `Architect '${architectName}' harness is retired; not configuring auto-restart into it in ${workspacePath}: ${err.message}`);
512
+ return undefined;
513
+ }
514
+ // Fall back to the plain command without harness role-prompt args so the
515
+ // session can still reconnect. `cleanEnv` carries CODEV_ARCHITECT_NAME
516
+ // (Spec 786 Phase 2), so identity is preserved even on harness failure.
517
+ log('WARN', `Harness resolution failed for workspace ${workspacePath}: ${err instanceof Error ? err.message : err}`);
518
+ return { command, args: baseArgs, cwd: workspacePath, env: cleanEnv, restartDelay: 2000, maxRestarts: 50 };
519
+ }
520
+ }
354
521
  /**
355
522
  * Serve a static file from the React dashboard dist.
356
523
  * Returns true if the file was served, false otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"tower-utils.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-utils.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,13 @@ import type { PtySession } from '../../terminal/pty-session.js';
13
13
  * Uses hybrid binary protocol (Spec 0085):
14
14
  * - 0x00 prefix: Control frame (JSON)
15
15
  * - 0x01 prefix: Data frame (raw PTY bytes)
16
+ *
17
+ * Async since PIR #1354: the replay payload is the session mirror's serialized
18
+ * O(screen) snapshot, whose parser flush awaits. Input/close handlers are
19
+ * registered BEFORE that await so the client can type during the flush and a
20
+ * close can never race the registration.
16
21
  */
17
- export declare function handleTerminalWebSocket(ws: WebSocket, session: PtySession, req: http.IncomingMessage): void;
22
+ export declare function handleTerminalWebSocket(ws: WebSocket, session: PtySession, req: http.IncomingMessage): Promise<void>;
18
23
  /**
19
24
  * Set up the WebSocket upgrade handler on the HTTP server.
20
25
  * Parses upgrade requests and routes them to the appropriate terminal session:
@@ -1 +1 @@
1
- {"version":3,"file":"tower-websocket.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-websocket.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAiBhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CA0G3G;AAwCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,GACX,IAAI,CAyGN"}
1
+ {"version":3,"file":"tower-websocket.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-websocket.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAkBhE;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0G1H;AAiED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,GACX,IAAI,CAwHN"}