@cluesmith/codev 3.2.3 → 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 (445) 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 +173 -0
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/attach.js +2 -2
  9. package/dist/agent-farm/commands/attach.js.map +1 -1
  10. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  11. package/dist/agent-farm/commands/cleanup.js +16 -0
  12. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  13. package/dist/agent-farm/commands/inbox.d.ts +42 -0
  14. package/dist/agent-farm/commands/inbox.d.ts.map +1 -0
  15. package/dist/agent-farm/commands/inbox.js +129 -0
  16. package/dist/agent-farm/commands/inbox.js.map +1 -0
  17. package/dist/agent-farm/commands/interrupt.d.ts +20 -0
  18. package/dist/agent-farm/commands/interrupt.d.ts.map +1 -0
  19. package/dist/agent-farm/commands/interrupt.js +65 -0
  20. package/dist/agent-farm/commands/interrupt.js.map +1 -0
  21. package/dist/agent-farm/commands/reset/constants.d.ts +52 -0
  22. package/dist/agent-farm/commands/reset/constants.d.ts.map +1 -0
  23. package/dist/agent-farm/commands/reset/constants.js +52 -0
  24. package/dist/agent-farm/commands/reset/constants.js.map +1 -0
  25. package/dist/agent-farm/commands/reset/context.d.ts +230 -0
  26. package/dist/agent-farm/commands/reset/context.d.ts.map +1 -0
  27. package/dist/agent-farm/commands/reset/context.js +428 -0
  28. package/dist/agent-farm/commands/reset/context.js.map +1 -0
  29. package/dist/agent-farm/commands/reset/index.d.ts +192 -0
  30. package/dist/agent-farm/commands/reset/index.d.ts.map +1 -0
  31. package/dist/agent-farm/commands/reset/index.js +488 -0
  32. package/dist/agent-farm/commands/reset/index.js.map +1 -0
  33. package/dist/agent-farm/commands/reset/receipt.d.ts +97 -0
  34. package/dist/agent-farm/commands/reset/receipt.d.ts.map +1 -0
  35. package/dist/agent-farm/commands/reset/receipt.js +149 -0
  36. package/dist/agent-farm/commands/reset/receipt.js.map +1 -0
  37. package/dist/agent-farm/commands/reset/reorient.d.ts +117 -0
  38. package/dist/agent-farm/commands/reset/reorient.d.ts.map +1 -0
  39. package/dist/agent-farm/commands/reset/reorient.js +313 -0
  40. package/dist/agent-farm/commands/reset/reorient.js.map +1 -0
  41. package/dist/agent-farm/commands/reset.d.ts +19 -0
  42. package/dist/agent-farm/commands/reset.d.ts.map +1 -0
  43. package/dist/agent-farm/commands/reset.js +292 -0
  44. package/dist/agent-farm/commands/reset.js.map +1 -0
  45. package/dist/agent-farm/commands/send.d.ts +2 -2
  46. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  47. package/dist/agent-farm/commands/send.js +52 -11
  48. package/dist/agent-farm/commands/send.js.map +1 -1
  49. package/dist/agent-farm/commands/setup.d.ts +4 -1
  50. package/dist/agent-farm/commands/setup.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/setup.js +8 -4
  52. package/dist/agent-farm/commands/setup.js.map +1 -1
  53. package/dist/agent-farm/commands/spawn-worktree.d.ts +116 -6
  54. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  55. package/dist/agent-farm/commands/spawn-worktree.js +345 -74
  56. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  57. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  58. package/dist/agent-farm/commands/spawn.js +13 -1
  59. package/dist/agent-farm/commands/spawn.js.map +1 -1
  60. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  61. package/dist/agent-farm/commands/status.js +105 -9
  62. package/dist/agent-farm/commands/status.js.map +1 -1
  63. package/dist/agent-farm/commands/tower-sweep-husks.d.ts +6 -0
  64. package/dist/agent-farm/commands/tower-sweep-husks.d.ts.map +1 -0
  65. package/dist/agent-farm/commands/tower-sweep-husks.js +77 -0
  66. package/dist/agent-farm/commands/tower-sweep-husks.js.map +1 -0
  67. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  68. package/dist/agent-farm/commands/tower.js +34 -0
  69. package/dist/agent-farm/commands/tower.js.map +1 -1
  70. package/dist/agent-farm/commands/whoami.d.ts +65 -0
  71. package/dist/agent-farm/commands/whoami.d.ts.map +1 -0
  72. package/dist/agent-farm/commands/whoami.js +196 -0
  73. package/dist/agent-farm/commands/whoami.js.map +1 -0
  74. package/dist/agent-farm/db/index.d.ts +1 -1
  75. package/dist/agent-farm/db/index.d.ts.map +1 -1
  76. package/dist/agent-farm/db/index.js +80 -1
  77. package/dist/agent-farm/db/index.js.map +1 -1
  78. package/dist/agent-farm/db/mailbox.d.ts +222 -0
  79. package/dist/agent-farm/db/mailbox.d.ts.map +1 -0
  80. package/dist/agent-farm/db/mailbox.js +304 -0
  81. package/dist/agent-farm/db/mailbox.js.map +1 -0
  82. package/dist/agent-farm/db/schema.d.ts +1 -1
  83. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  84. package/dist/agent-farm/db/schema.js +35 -0
  85. package/dist/agent-farm/db/schema.js.map +1 -1
  86. package/dist/agent-farm/db/types.d.ts +45 -0
  87. package/dist/agent-farm/db/types.d.ts.map +1 -1
  88. package/dist/agent-farm/db/types.js.map +1 -1
  89. package/dist/agent-farm/lib/builder-lookup.d.ts +1 -1
  90. package/dist/agent-farm/lib/builder-lookup.js +2 -2
  91. package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
  92. package/dist/agent-farm/lib/reconnect-backoff.d.ts +54 -0
  93. package/dist/agent-farm/lib/reconnect-backoff.d.ts.map +1 -0
  94. package/dist/agent-farm/lib/reconnect-backoff.js +47 -0
  95. package/dist/agent-farm/lib/reconnect-backoff.js.map +1 -0
  96. package/dist/agent-farm/lib/tower-client.d.ts +16 -6
  97. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  98. package/dist/agent-farm/lib/tower-client.js +37 -6
  99. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  100. package/dist/agent-farm/lib/tunnel-client.d.ts +69 -1
  101. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  102. package/dist/agent-farm/lib/tunnel-client.js +218 -27
  103. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  104. package/dist/agent-farm/servers/architect-session-holder.d.ts +133 -0
  105. package/dist/agent-farm/servers/architect-session-holder.d.ts.map +1 -0
  106. package/dist/agent-farm/servers/architect-session-holder.js +268 -0
  107. package/dist/agent-farm/servers/architect-session-holder.js.map +1 -0
  108. package/dist/agent-farm/servers/cron-delivery.d.ts +72 -0
  109. package/dist/agent-farm/servers/cron-delivery.d.ts.map +1 -0
  110. package/dist/agent-farm/servers/cron-delivery.js +80 -0
  111. package/dist/agent-farm/servers/cron-delivery.js.map +1 -0
  112. package/dist/agent-farm/servers/delayed-send.d.ts +85 -0
  113. package/dist/agent-farm/servers/delayed-send.d.ts.map +1 -0
  114. package/dist/agent-farm/servers/delayed-send.js +165 -0
  115. package/dist/agent-farm/servers/delayed-send.js.map +1 -0
  116. package/dist/agent-farm/servers/gate-profiles.d.ts +67 -0
  117. package/dist/agent-farm/servers/gate-profiles.d.ts.map +1 -0
  118. package/dist/agent-farm/servers/gate-profiles.js +113 -0
  119. package/dist/agent-farm/servers/gate-profiles.js.map +1 -0
  120. package/dist/agent-farm/servers/mailbox-delivery.d.ts +370 -0
  121. package/dist/agent-farm/servers/mailbox-delivery.d.ts.map +1 -0
  122. package/dist/agent-farm/servers/mailbox-delivery.js +617 -0
  123. package/dist/agent-farm/servers/mailbox-delivery.js.map +1 -0
  124. package/dist/agent-farm/servers/mailbox-wiring.d.ts +125 -0
  125. package/dist/agent-farm/servers/mailbox-wiring.d.ts.map +1 -0
  126. package/dist/agent-farm/servers/mailbox-wiring.js +425 -0
  127. package/dist/agent-farm/servers/mailbox-wiring.js.map +1 -0
  128. package/dist/agent-farm/servers/message-write.d.ts +53 -1
  129. package/dist/agent-farm/servers/message-write.d.ts.map +1 -1
  130. package/dist/agent-farm/servers/message-write.js +63 -0
  131. package/dist/agent-farm/servers/message-write.js.map +1 -1
  132. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  133. package/dist/agent-farm/servers/overview.js +23 -4
  134. package/dist/agent-farm/servers/overview.js.map +1 -1
  135. package/dist/agent-farm/servers/process-census.d.ts +41 -0
  136. package/dist/agent-farm/servers/process-census.d.ts.map +1 -0
  137. package/dist/agent-farm/servers/process-census.js +62 -0
  138. package/dist/agent-farm/servers/process-census.js.map +1 -0
  139. package/dist/agent-farm/servers/render-gate.d.ts +141 -0
  140. package/dist/agent-farm/servers/render-gate.d.ts.map +1 -0
  141. package/dist/agent-farm/servers/render-gate.js +251 -0
  142. package/dist/agent-farm/servers/render-gate.js.map +1 -0
  143. package/dist/agent-farm/servers/session-log-sweep.d.ts +93 -0
  144. package/dist/agent-farm/servers/session-log-sweep.d.ts.map +1 -0
  145. package/dist/agent-farm/servers/session-log-sweep.js +165 -0
  146. package/dist/agent-farm/servers/session-log-sweep.js.map +1 -0
  147. package/dist/agent-farm/servers/session-submit.d.ts +90 -0
  148. package/dist/agent-farm/servers/session-submit.d.ts.map +1 -0
  149. package/dist/agent-farm/servers/session-submit.js +127 -0
  150. package/dist/agent-farm/servers/session-submit.js.map +1 -0
  151. package/dist/agent-farm/servers/shellper-husk-sweep.d.ts +87 -0
  152. package/dist/agent-farm/servers/shellper-husk-sweep.d.ts.map +1 -0
  153. package/dist/agent-farm/servers/shellper-husk-sweep.js +129 -0
  154. package/dist/agent-farm/servers/shellper-husk-sweep.js.map +1 -0
  155. package/dist/agent-farm/servers/tower-cron.d.ts +10 -7
  156. package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
  157. package/dist/agent-farm/servers/tower-cron.js +58 -53
  158. package/dist/agent-farm/servers/tower-cron.js.map +1 -1
  159. package/dist/agent-farm/servers/tower-instances.d.ts +14 -2
  160. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  161. package/dist/agent-farm/servers/tower-instances.js +128 -19
  162. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  163. package/dist/agent-farm/servers/tower-messages.d.ts +38 -1
  164. package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
  165. package/dist/agent-farm/servers/tower-messages.js +106 -1
  166. package/dist/agent-farm/servers/tower-messages.js.map +1 -1
  167. package/dist/agent-farm/servers/tower-routes.d.ts +16 -4
  168. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  169. package/dist/agent-farm/servers/tower-routes.js +807 -99
  170. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  171. package/dist/agent-farm/servers/tower-server.js +241 -15
  172. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  173. package/dist/agent-farm/servers/tower-terminals.d.ts +17 -2
  174. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  175. package/dist/agent-farm/servers/tower-terminals.js +139 -124
  176. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  177. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
  178. package/dist/agent-farm/servers/tower-tunnel.js +63 -4
  179. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  180. package/dist/agent-farm/servers/tower-types.d.ts +2 -1
  181. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  182. package/dist/agent-farm/servers/tower-utils.d.ts +99 -1
  183. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  184. package/dist/agent-farm/servers/tower-utils.js +242 -6
  185. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  186. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
  187. package/dist/agent-farm/servers/tower-websocket.js +6 -21
  188. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  189. package/dist/agent-farm/servers/write-queue.d.ts +35 -0
  190. package/dist/agent-farm/servers/write-queue.d.ts.map +1 -0
  191. package/dist/agent-farm/servers/write-queue.js +56 -0
  192. package/dist/agent-farm/servers/write-queue.js.map +1 -0
  193. package/dist/agent-farm/state.d.ts +6 -1
  194. package/dist/agent-farm/state.d.ts.map +1 -1
  195. package/dist/agent-farm/state.js +5 -2
  196. package/dist/agent-farm/state.js.map +1 -1
  197. package/dist/agent-farm/types.d.ts +39 -0
  198. package/dist/agent-farm/types.d.ts.map +1 -1
  199. package/dist/agent-farm/utils/agent-names.d.ts +2 -2
  200. package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
  201. package/dist/agent-farm/utils/agent-names.js +3 -3
  202. package/dist/agent-farm/utils/agent-names.js.map +1 -1
  203. package/dist/agent-farm/utils/architect-name.d.ts +2 -2
  204. package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
  205. package/dist/agent-farm/utils/architect-name.js +3 -3
  206. package/dist/agent-farm/utils/architect-name.js.map +1 -1
  207. package/dist/agent-farm/utils/config.d.ts +13 -0
  208. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  209. package/dist/agent-farm/utils/config.js +33 -1
  210. package/dist/agent-farm/utils/config.js.map +1 -1
  211. package/dist/agent-farm/utils/harness.d.ts +103 -7
  212. package/dist/agent-farm/utils/harness.d.ts.map +1 -1
  213. package/dist/agent-farm/utils/harness.js +126 -19
  214. package/dist/agent-farm/utils/harness.js.map +1 -1
  215. package/dist/cli.d.ts.map +1 -1
  216. package/dist/cli.js +6 -32
  217. package/dist/cli.js.map +1 -1
  218. package/dist/commands/adopt.d.ts +3 -2
  219. package/dist/commands/adopt.d.ts.map +1 -1
  220. package/dist/commands/adopt.js +7 -6
  221. package/dist/commands/adopt.js.map +1 -1
  222. package/dist/commands/consult/agy-auth-cache.d.ts +97 -0
  223. package/dist/commands/consult/agy-auth-cache.d.ts.map +1 -0
  224. package/dist/commands/consult/agy-auth-cache.js +320 -0
  225. package/dist/commands/consult/agy-auth-cache.js.map +1 -0
  226. package/dist/commands/consult/cli-options.d.ts +34 -0
  227. package/dist/commands/consult/cli-options.d.ts.map +1 -0
  228. package/dist/commands/consult/cli-options.js +67 -0
  229. package/dist/commands/consult/cli-options.js.map +1 -0
  230. package/dist/commands/consult/index.d.ts +56 -2
  231. package/dist/commands/consult/index.d.ts.map +1 -1
  232. package/dist/commands/consult/index.js +330 -27
  233. package/dist/commands/consult/index.js.map +1 -1
  234. package/dist/commands/consult/metrics.d.ts +42 -0
  235. package/dist/commands/consult/metrics.d.ts.map +1 -1
  236. package/dist/commands/consult/metrics.js +129 -9
  237. package/dist/commands/consult/metrics.js.map +1 -1
  238. package/dist/commands/doctor.d.ts +28 -0
  239. package/dist/commands/doctor.d.ts.map +1 -1
  240. package/dist/commands/doctor.js +258 -22
  241. package/dist/commands/doctor.js.map +1 -1
  242. package/dist/commands/init.d.ts +3 -2
  243. package/dist/commands/init.d.ts.map +1 -1
  244. package/dist/commands/init.js +7 -6
  245. package/dist/commands/init.js.map +1 -1
  246. package/dist/commands/porch/checks.d.ts +23 -0
  247. package/dist/commands/porch/checks.d.ts.map +1 -1
  248. package/dist/commands/porch/checks.js +60 -0
  249. package/dist/commands/porch/checks.js.map +1 -1
  250. package/dist/commands/porch/config.d.ts +20 -0
  251. package/dist/commands/porch/config.d.ts.map +1 -1
  252. package/dist/commands/porch/config.js +20 -0
  253. package/dist/commands/porch/config.js.map +1 -1
  254. package/dist/commands/porch/index.d.ts.map +1 -1
  255. package/dist/commands/porch/index.js +32 -36
  256. package/dist/commands/porch/index.js.map +1 -1
  257. package/dist/commands/porch/next.d.ts.map +1 -1
  258. package/dist/commands/porch/next.js +2 -41
  259. package/dist/commands/porch/next.js.map +1 -1
  260. package/dist/commands/update.d.ts +4 -4
  261. package/dist/commands/update.d.ts.map +1 -1
  262. package/dist/commands/update.js +9 -11
  263. package/dist/commands/update.js.map +1 -1
  264. package/dist/lib/config.d.ts +70 -3
  265. package/dist/lib/config.d.ts.map +1 -1
  266. package/dist/lib/config.js +67 -3
  267. package/dist/lib/config.js.map +1 -1
  268. package/dist/lib/consult-lanes.d.ts +149 -0
  269. package/dist/lib/consult-lanes.d.ts.map +1 -0
  270. package/dist/lib/consult-lanes.js +360 -0
  271. package/dist/lib/consult-lanes.js.map +1 -0
  272. package/dist/lib/default-branch.d.ts +1 -1
  273. package/dist/lib/default-branch.js +1 -1
  274. package/dist/lib/github.js +1 -1
  275. package/dist/lib/github.js.map +1 -1
  276. package/dist/lib/gitignore.d.ts +25 -2
  277. package/dist/lib/gitignore.d.ts.map +1 -1
  278. package/dist/lib/gitignore.js +70 -0
  279. package/dist/lib/gitignore.js.map +1 -1
  280. package/dist/lib/migration-backup-audit.d.ts +64 -0
  281. package/dist/lib/migration-backup-audit.d.ts.map +1 -0
  282. package/dist/lib/migration-backup-audit.js +145 -0
  283. package/dist/lib/migration-backup-audit.js.map +1 -0
  284. package/dist/lib/prompt-behavior-metrics.d.ts +67 -0
  285. package/dist/lib/prompt-behavior-metrics.d.ts.map +1 -0
  286. package/dist/lib/prompt-behavior-metrics.js +290 -0
  287. package/dist/lib/prompt-behavior-metrics.js.map +1 -0
  288. package/dist/lib/protocol-drift-audit.d.ts +118 -0
  289. package/dist/lib/protocol-drift-audit.d.ts.map +1 -0
  290. package/dist/lib/protocol-drift-audit.js +217 -0
  291. package/dist/lib/protocol-drift-audit.js.map +1 -0
  292. package/dist/lib/scaffold.d.ts +10 -3
  293. package/dist/lib/scaffold.d.ts.map +1 -1
  294. package/dist/lib/scaffold.js +29 -26
  295. package/dist/lib/scaffold.js.map +1 -1
  296. package/dist/lib/skeleton.d.ts +22 -1
  297. package/dist/lib/skeleton.d.ts.map +1 -1
  298. package/dist/lib/skeleton.js +120 -0
  299. package/dist/lib/skeleton.js.map +1 -1
  300. package/dist/lib/test-env.d.ts +74 -0
  301. package/dist/lib/test-env.d.ts.map +1 -0
  302. package/dist/lib/test-env.js +92 -0
  303. package/dist/lib/test-env.js.map +1 -0
  304. package/dist/terminal/pty-manager.d.ts +9 -0
  305. package/dist/terminal/pty-manager.d.ts.map +1 -1
  306. package/dist/terminal/pty-manager.js +32 -6
  307. package/dist/terminal/pty-manager.js.map +1 -1
  308. package/dist/terminal/pty-session.d.ts +156 -4
  309. package/dist/terminal/pty-session.d.ts.map +1 -1
  310. package/dist/terminal/pty-session.js +307 -42
  311. package/dist/terminal/pty-session.js.map +1 -1
  312. package/dist/terminal/ring-buffer.d.ts +39 -6
  313. package/dist/terminal/ring-buffer.d.ts.map +1 -1
  314. package/dist/terminal/ring-buffer.js +74 -6
  315. package/dist/terminal/ring-buffer.js.map +1 -1
  316. package/dist/terminal/session-manager.d.ts +129 -0
  317. package/dist/terminal/session-manager.d.ts.map +1 -1
  318. package/dist/terminal/session-manager.js +337 -44
  319. package/dist/terminal/session-manager.js.map +1 -1
  320. package/dist/terminal/session-screen.d.ts +91 -0
  321. package/dist/terminal/session-screen.d.ts.map +1 -0
  322. package/dist/terminal/session-screen.js +135 -0
  323. package/dist/terminal/session-screen.js.map +1 -0
  324. package/dist/terminal/shellper-client.d.ts +19 -4
  325. package/dist/terminal/shellper-client.d.ts.map +1 -1
  326. package/dist/terminal/shellper-client.js +70 -8
  327. package/dist/terminal/shellper-client.js.map +1 -1
  328. package/dist/terminal/shellper-main.js +2 -1
  329. package/dist/terminal/shellper-main.js.map +1 -1
  330. package/dist/terminal/shellper-process.d.ts +1 -1
  331. package/dist/terminal/shellper-process.d.ts.map +1 -1
  332. package/dist/terminal/shellper-process.js +33 -9
  333. package/dist/terminal/shellper-process.js.map +1 -1
  334. package/dist/terminal/shellper-protocol.d.ts +40 -2
  335. package/dist/terminal/shellper-protocol.d.ts.map +1 -1
  336. package/dist/terminal/shellper-protocol.js +72 -5
  337. package/dist/terminal/shellper-protocol.js.map +1 -1
  338. package/dist/terminal/shellper-replay-buffer.d.ts +69 -7
  339. package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -1
  340. package/dist/terminal/shellper-replay-buffer.js +167 -31
  341. package/dist/terminal/shellper-replay-buffer.js.map +1 -1
  342. package/package.json +11 -9
  343. package/skeleton/.claude/skills/afx/SKILL.md +27 -1
  344. package/skeleton/.claude/skills/arch-init/SKILL.md +135 -0
  345. package/skeleton/.claude/skills/arch-save/SKILL.md +183 -0
  346. package/skeleton/.claude/skills/codev/SKILL.md +33 -2
  347. package/skeleton/.claude/skills/runnable-worktrees/SKILL.md +119 -0
  348. package/skeleton/.codex/skills/afx/SKILL.md +170 -0
  349. package/skeleton/.codex/skills/arch-init/SKILL.md +135 -0
  350. package/skeleton/.codex/skills/arch-save/SKILL.md +183 -0
  351. package/skeleton/.codex/skills/codev/SKILL.md +90 -0
  352. package/skeleton/.codex/skills/consult/SKILL.md +96 -0
  353. package/skeleton/.codex/skills/generate-image/SKILL.md +45 -0
  354. package/skeleton/.codex/skills/porch/SKILL.md +60 -0
  355. package/skeleton/.codex/skills/runnable-worktrees/SKILL.md +119 -0
  356. package/skeleton/.codex/skills/update-arch-docs/SKILL.md +132 -0
  357. package/skeleton/protocols/air/builder-prompt.md +28 -47
  358. package/skeleton/protocols/air/consult-types/impl-review.md +17 -34
  359. package/skeleton/protocols/air/consult-types/pr-review.md +14 -37
  360. package/skeleton/protocols/air/prompts/implement.md +20 -73
  361. package/skeleton/protocols/air/prompts/pr.md +22 -54
  362. package/skeleton/protocols/air/protocol.md +40 -71
  363. package/skeleton/protocols/aspir/builder-prompt.md +29 -66
  364. package/skeleton/protocols/aspir/consult-types/impl-review.md +17 -44
  365. package/skeleton/protocols/aspir/consult-types/phase-review.md +17 -44
  366. package/skeleton/protocols/aspir/consult-types/plan-review.md +14 -38
  367. package/skeleton/protocols/aspir/consult-types/pr-review.md +13 -39
  368. package/skeleton/protocols/aspir/consult-types/spec-review.md +13 -33
  369. package/skeleton/protocols/aspir/prompts/implement.md +27 -196
  370. package/skeleton/protocols/aspir/prompts/plan.md +21 -85
  371. package/skeleton/protocols/aspir/prompts/review.md +29 -228
  372. package/skeleton/protocols/aspir/prompts/specify.md +25 -111
  373. package/skeleton/protocols/aspir/protocol.json +10 -0
  374. package/skeleton/protocols/aspir/protocol.md +36 -82
  375. package/skeleton/protocols/bugfix/builder-prompt.md +23 -45
  376. package/skeleton/protocols/bugfix/consult-types/impl-review.md +21 -45
  377. package/skeleton/protocols/bugfix/consult-types/pr-review.md +18 -52
  378. package/skeleton/protocols/bugfix/prompts/fix.md +16 -61
  379. package/skeleton/protocols/bugfix/prompts/investigate.md +18 -62
  380. package/skeleton/protocols/bugfix/prompts/pr.md +22 -57
  381. package/skeleton/protocols/bugfix/protocol.md +44 -50
  382. package/skeleton/protocols/experiment/builder-prompt.md +25 -58
  383. package/skeleton/protocols/experiment/protocol.md +22 -188
  384. package/skeleton/protocols/experiment/templates/notes.md +11 -71
  385. package/skeleton/protocols/maintain/builder-prompt.md +24 -45
  386. package/skeleton/protocols/maintain/consult-types/impl-review.md +17 -44
  387. package/skeleton/protocols/maintain/consult-types/pr-review.md +13 -39
  388. package/skeleton/protocols/maintain/prompts/maintain.md +1 -1
  389. package/skeleton/protocols/maintain/protocol.md +32 -266
  390. package/skeleton/protocols/maintain/templates/maintenance-run.md +11 -0
  391. package/skeleton/protocols/pir/builder-prompt.md +30 -64
  392. package/skeleton/protocols/pir/consult-types/impl-review.md +17 -50
  393. package/skeleton/protocols/pir/consult-types/pr-review.md +11 -40
  394. package/skeleton/protocols/pir/prompts/implement.md +1 -2
  395. package/skeleton/protocols/pir/prompts/plan.md +0 -3
  396. package/skeleton/protocols/pir/prompts/review.md +1 -1
  397. package/skeleton/protocols/pir/protocol.md +54 -177
  398. package/skeleton/protocols/research/builder-prompt.md +27 -58
  399. package/skeleton/protocols/research/protocol.md +28 -153
  400. package/skeleton/protocols/spike/builder-prompt.md +30 -48
  401. package/skeleton/protocols/spike/protocol.md +24 -107
  402. package/skeleton/protocols/spike/templates/findings.md +9 -39
  403. package/skeleton/protocols/spir/builder-prompt.md +33 -62
  404. package/skeleton/protocols/spir/consult-types/impl-review.md +17 -44
  405. package/skeleton/protocols/spir/consult-types/phase-review.md +17 -44
  406. package/skeleton/protocols/spir/consult-types/plan-review.md +14 -38
  407. package/skeleton/protocols/spir/consult-types/pr-review.md +13 -39
  408. package/skeleton/protocols/spir/consult-types/spec-review.md +13 -33
  409. package/skeleton/protocols/spir/prompts/implement.md +26 -195
  410. package/skeleton/protocols/spir/prompts/plan.md +20 -84
  411. package/skeleton/protocols/spir/prompts/review.md +28 -227
  412. package/skeleton/protocols/spir/prompts/specify.md +24 -110
  413. package/skeleton/protocols/spir/protocol.json +10 -0
  414. package/skeleton/protocols/spir/protocol.md +84 -633
  415. package/skeleton/protocols/spir/templates/plan.md +28 -147
  416. package/skeleton/protocols/spir/templates/review.md +21 -80
  417. package/skeleton/protocols/spir/templates/spec.md +24 -118
  418. package/skeleton/resources/commands/agent-farm.md +348 -0
  419. package/skeleton/resources/commands/codev.md +5 -0
  420. package/skeleton/resources/commands/consult.md +262 -8
  421. package/skeleton/resources/commands/overview.md +1 -0
  422. package/skeleton/roles/architect.md +67 -306
  423. package/skeleton/roles/builder.md +77 -191
  424. package/skeleton/templates/AGENTS.md +2 -0
  425. package/skeleton/templates/CLAUDE.md +2 -0
  426. package/templates/tower.html +39 -2
  427. package/dashboard-dist/assets/index-BZ1x7x1X.js.map +0 -1
  428. package/dashboard-dist/assets/index-DB1KBSNE.css +0 -32
  429. package/dist/agent-farm/servers/send-buffer.d.ts +0 -59
  430. package/dist/agent-farm/servers/send-buffer.d.ts.map +0 -1
  431. package/dist/agent-farm/servers/send-buffer.js +0 -103
  432. package/dist/agent-farm/servers/send-buffer.js.map +0 -1
  433. package/skeleton/porch/prompts/defend.md +0 -108
  434. package/skeleton/porch/prompts/diagnose.md +0 -70
  435. package/skeleton/porch/prompts/evaluate.md +0 -132
  436. package/skeleton/porch/prompts/fix.md +0 -59
  437. package/skeleton/porch/prompts/implement.md +0 -88
  438. package/skeleton/porch/prompts/plan.md +0 -74
  439. package/skeleton/porch/prompts/pr.md +0 -84
  440. package/skeleton/porch/prompts/review.md +0 -249
  441. package/skeleton/porch/prompts/specify.md +0 -53
  442. package/skeleton/porch/prompts/test.md +0 -63
  443. package/skeleton/protocols/aspir/templates/plan.md +0 -184
  444. package/skeleton/protocols/aspir/templates/review.md +0 -120
  445. package/skeleton/protocols/aspir/templates/spec.md +0 -154
@@ -15,17 +15,20 @@ import { Command } from 'commander';
15
15
  import { WebSocketServer } from 'ws';
16
16
  import { SessionManager } from '../../terminal/session-manager.js';
17
17
  import { startRateLimitCleanup } from './tower-utils.js';
18
+ import { sweepShellperHusks, resolveHuskGraceMs } from './shellper-husk-sweep.js';
19
+ import { sweepSessionLogs, measureSessionLogs, resolveLogRetentionDays, resolveLogSweepIntervalMs, formatBytes, MS_PER_DAY, } from './session-log-sweep.js';
18
20
  import { initTunnel, shutdownTunnel, } from './tower-tunnel.js';
19
21
  import { initCron, shutdownCron } from './tower-cron.js';
20
- import { resolveTarget } from './tower-messages.js';
21
22
  import { initInstances, shutdownInstances, registerKnownWorkspace, getKnownWorkspacePaths, getInstances, } from './tower-instances.js';
22
23
  import { initTerminals, shutdownTerminals, getWorkspaceTerminals, getTerminalManager, getWorkspaceTerminalsEntry, saveTerminalSession, deleteTerminalSession, deleteWorkspaceTerminalSessions, deleteFileTabsForWorkspace, getTerminalsForWorkspace, reconcileTerminalSessions, } from './tower-terminals.js';
23
24
  import { setupUpgradeHandler, } from './tower-websocket.js';
24
- import { handleRequest, startSendBuffer, stopSendBuffer } from './tower-routes.js';
25
+ import { handleRequest, deliverCronMessage } from './tower-routes.js';
26
+ import { startMailboxDrainer, stopMailboxDrainer, setMailboxBroadcaster } from './mailbox-wiring.js';
27
+ import { shutdownDelayedSends } from './delayed-send.js';
25
28
  import { setCodevConfigNotifier, stopAllCodevConfigWatchers } from './codev-config-watcher.js';
26
29
  import { getGlobalDb } from '../db/index.js';
27
30
  import { runBootConsolidation } from '../db/consolidate.js';
28
- import { DEFAULT_TOWER_PORT } from '../lib/tower-client.js';
31
+ import { DEFAULT_TOWER_PORT, AGENT_FARM_DIR } from '../lib/tower-client.js';
29
32
  import { validateHost } from '../utils/server-utils.js';
30
33
  import { version } from '../../version.js';
31
34
  const __filename = fileURLToPath(import.meta.url);
@@ -35,7 +38,9 @@ const rateLimitCleanupInterval = startRateLimitCleanup();
35
38
  // Shellper session manager (initialized at startup)
36
39
  let shellperManager = null;
37
40
  let shellperCleanupInterval = null;
41
+ let shellperHuskSweepInterval = null;
38
42
  let terminalPartialMonitorInterval = null;
43
+ let sessionLogSweepInterval = null;
39
44
  // Observability for Issue #1047: the ring-buffer partial is kept whole (no
40
45
  // byte cap) so reconnection replay stays faithful, which means a no-newline
41
46
  // full-screen TUI grows it without bound. This monitor surfaces that growth so
@@ -123,11 +128,27 @@ async function gracefulShutdown(signal) {
123
128
  clearInterval(rateLimitCleanupInterval);
124
129
  if (shellperCleanupInterval)
125
130
  clearInterval(shellperCleanupInterval);
131
+ if (shellperHuskSweepInterval)
132
+ clearInterval(shellperHuskSweepInterval);
126
133
  if (terminalPartialMonitorInterval)
127
134
  clearInterval(terminalPartialMonitorInterval);
135
+ if (sessionLogSweepInterval)
136
+ clearInterval(sessionLogSweepInterval);
128
137
  clearInterval(sseHeartbeatInterval);
129
- // 4b. Flush and stop send buffer (Spec 403) — delivers any deferred messages
130
- stopSendBuffer();
138
+ // 4b. Drop pending delayed sends FIRST (Spec 1307 `--delay`). Cancels every timer
139
+ // still waiting to fire and bumps the delayed-send generation, so a timer that
140
+ // fires mid-shutdown is a no-op at its delivery site rather than enqueuing a
141
+ // mailbox row after teardown has begun. Delayed sends are in-memory by design
142
+ // (dropped on restart) — the re-homed due-time callback enqueues to the mailbox
143
+ // only WHEN due, so a not-yet-due send has nothing persisted to recover; re-send
144
+ // if still wanted.
145
+ const droppedDelayed = shutdownDelayedSends();
146
+ if (droppedDelayed > 0) {
147
+ log('INFO', `Dropped ${droppedDelayed} pending delayed send(s) — re-send them if still wanted`);
148
+ }
149
+ // 4c. Stop the mailbox backstop drainer (Spec 1313) — no force-flush; held
150
+ // rows persist in SQLite and redeliver on a clean gate after restart.
151
+ stopMailboxDrainer();
131
152
  // 5. Stop cron scheduler (Spec 399)
132
153
  shutdownCron();
133
154
  // 6. Disconnect tunnel (Spec 0097 Phase 4 / Spec 0105 Phase 2)
@@ -293,21 +314,101 @@ const routeCtx = {
293
314
  // events. The actual watcher is installed lazily by any config-resolving
294
315
  // route handler (/api/worktree-config, /api/activity-hooks) on first request.
295
316
  setCodevConfigNotifier(broadcastNotification);
317
+ // Spec 1313 Phase 7: wire the same SSE broadcaster into the mailbox delivery path so
318
+ // its held-set events reach clients — `overview-changed` on a held-state change (keeps
319
+ // the held-count indicator live) and `mailbox-escalation` when a row crosses the
320
+ // escalation age (moves the indicator into its attention state). The pure delivery
321
+ // module and the boot-time drainer have no RouteContext, so they fan out through here.
322
+ setMailboxBroadcaster(broadcastNotification);
323
+ // ============================================================================
324
+ // Readiness gate (Issue #1261)
325
+ // ============================================================================
326
+ //
327
+ // The port must bind first — it is the single-Tower mutex (a second
328
+ // `afx tower start` detects EADDRINUSE) and the thing every readiness check
329
+ // probes. But binding used to mean "serving", and the boot sequence that wires
330
+ // up the request handlers' dependencies ran *after* the bind. Requests landing
331
+ // in that window were answered with whatever a half-wired Tower could produce:
332
+ // `DELETE /api/terminals/:id` returned 404 for a terminal that plainly existed,
333
+ // because `killTerminalWithShellper()` bails when `_deps` is null.
334
+ //
335
+ // So: bind immediately, but hold requests until `bootSequence()` finishes.
336
+ // Readiness becomes deterministic instead of a function of how long the boot's
337
+ // disk work happens to take on this machine.
338
+ // Boot is bounded by the maintenance work that stays *inside* it; anything
339
+ // slower than this is a hang, and a held request should not hang with it.
340
+ const BOOT_READY_TIMEOUT_MS = 20_000;
341
+ const bootStartedAtMs = Date.now();
342
+ let bootComplete = false;
343
+ const bootWaiters = [];
344
+ /** Open the gate: release every held request and admit all future ones. */
345
+ function markBootComplete() {
346
+ if (bootComplete)
347
+ return;
348
+ bootComplete = true;
349
+ log('INFO', `Tower ready — serving API requests (${Date.now() - bootStartedAtMs}ms after process start)`);
350
+ for (const release of bootWaiters.splice(0))
351
+ release();
352
+ }
353
+ /** Resolves true once boot completes, or false if it takes longer than `timeoutMs`. */
354
+ function whenBootComplete(timeoutMs) {
355
+ if (bootComplete)
356
+ return Promise.resolve(true);
357
+ return new Promise((resolve) => {
358
+ const timer = setTimeout(() => {
359
+ const index = bootWaiters.indexOf(release);
360
+ if (index !== -1)
361
+ bootWaiters.splice(index, 1);
362
+ resolve(false);
363
+ }, timeoutMs);
364
+ const release = () => {
365
+ clearTimeout(timer);
366
+ resolve(true);
367
+ };
368
+ bootWaiters.push(release);
369
+ });
370
+ }
296
371
  // ============================================================================
297
372
  // Create server — delegates all HTTP handling to tower-routes.ts
298
373
  // ============================================================================
299
374
  const server = http.createServer(async (req, res) => {
375
+ if (!bootComplete) {
376
+ if (!(await whenBootComplete(BOOT_READY_TIMEOUT_MS))) {
377
+ log('ERROR', `Boot did not complete within ${BOOT_READY_TIMEOUT_MS}ms; rejecting ${req.method} ${req.url} with 503`);
378
+ res.writeHead(503, { 'Content-Type': 'application/json', 'Retry-After': '1' });
379
+ res.end(JSON.stringify({ error: 'STARTING_UP', message: 'Tower is starting up. Try again shortly.' }));
380
+ return;
381
+ }
382
+ // The client may have given up while it was held.
383
+ if (res.destroyed || res.writableEnded)
384
+ return;
385
+ }
300
386
  await handleRequest(req, res, routeCtx);
301
387
  });
302
388
  // SECURITY: Bind to configured host (default 127.0.0.1 for localhost-only).
303
389
  // Bridge mode enables non-localhost binding when BRIDGE_MODE=1 is set.
304
- server.listen(port, bindHost, async () => {
390
+ server.listen(port, bindHost, () => {
305
391
  if (bridgeMode) {
306
392
  log('WARN', `Bridge mode is ENABLED — Tower is listening on ${bindHost} network interfaces.`);
307
393
  }
308
394
  // Display localhost in URLs for local UX even when bound to all interfaces.
309
395
  const displayHost = bindHost === '0.0.0.0' ? 'localhost' : bindHost;
310
396
  log('INFO', `Tower server listening at http://${displayHost}:${port}`);
397
+ bootSequence().catch((err) => {
398
+ // Preserve the previous fail-fast behaviour: before Issue #1261 this body
399
+ // was the listen callback, so a throw surfaced as an unhandled rejection
400
+ // and the process-level handler exited. Keep exiting rather than serving
401
+ // from a half-wired Tower.
402
+ log('ERROR', `Tower boot sequence failed: ${err.message}\n${err.stack}`);
403
+ process.exit(1);
404
+ });
405
+ });
406
+ /**
407
+ * Everything that must be wired up before Tower can answer API requests
408
+ * correctly. Runs once, immediately after the port binds; requests are held by
409
+ * the readiness gate above until it calls markBootComplete().
410
+ */
411
+ async function bootSequence() {
311
412
  // Initialize shellper session manager for persistent terminals
312
413
  const socketDir = process.env.SHELLPER_SOCKET_DIR || path.join(homedir(), '.codev', 'run');
313
414
  const shellperScript = path.join(__dirname, '..', '..', 'terminal', 'shellper-main.js');
@@ -317,6 +418,44 @@ server.listen(port, bindHost, async () => {
317
418
  nodeExecutable: process.execPath,
318
419
  logger: (msg) => log('INFO', msg),
319
420
  });
421
+ // #1198: a shellper connection that dies must leave a trace. Before this
422
+ // subscription existed, 'session-error' had no consumer anywhere, so a
423
+ // failed reconnect was completely invisible in the Tower log.
424
+ shellperManager.on('session-error', (sessionId, err) => {
425
+ log('ERROR', `Shellper session ${sessionId}: ${err.message}`);
426
+ });
427
+ // #1264: SessionManager stopped respawning a session for a reason the user
428
+ // needs to see. Put it in the terminal itself, not just the Tower log — the
429
+ // person affected is watching a pane that just went quiet, and has no reason
430
+ // to go reading server logs to find out why.
431
+ shellperManager.on('session-gave-up', (sessionId, reason) => {
432
+ log('ERROR', `Shellper session ${sessionId} gave up: ${reason}`);
433
+ const ptySession = getTerminalManager().findByShellperSessionId(sessionId);
434
+ if (!ptySession) {
435
+ log('WARN', `Shellper session ${sessionId} gave up but no matching terminal session found to notify`);
436
+ return;
437
+ }
438
+ ptySession.notice(reason);
439
+ });
440
+ // #1198: SessionManager re-established a session's connection in place
441
+ // after an unexpected socket close. Re-attach the replacement client to the
442
+ // PtySession so viewer I/O resumes (attachShellper is idempotent and
443
+ // cancels the pending close-grace teardown). Replay is deliberately empty:
444
+ // the ring buffer already holds the session history.
445
+ shellperManager.on('session-reconnected', (sessionId, client) => {
446
+ const ptySession = getTerminalManager().findByShellperSessionId(sessionId);
447
+ if (!ptySession) {
448
+ log('WARN', `Shellper session ${sessionId} reconnected but no matching terminal session found`);
449
+ return;
450
+ }
451
+ const info = shellperManager.getSessionInfo(sessionId);
452
+ let pid = -1;
453
+ if (info) {
454
+ pid = info.pid;
455
+ }
456
+ ptySession.attachShellper(client, Buffer.alloc(0), pid, ptySession.shellperSessionId ?? sessionId);
457
+ log('INFO', `Shellper session ${sessionId} re-attached to terminal ${ptySession.id}`);
458
+ });
320
459
  const staleCleaned = await shellperManager.cleanupStaleSockets();
321
460
  if (staleCleaned > 0) {
322
461
  log('INFO', `Cleaned up ${staleCleaned} stale shellper socket(s)`);
@@ -334,6 +473,31 @@ server.listen(port, bindHost, async () => {
334
473
  log('ERROR', `Periodic shellper cleanup failed: ${err.message}`);
335
474
  }
336
475
  }, cleanupIntervalMs);
476
+ // Issue #1227: husk sweep — a stricter second pass that reaps shellpers
477
+ // killOrphanedShellpers() can never reach, because it unconditionally
478
+ // protects any shellper whose socket still responds. A husk (child exited,
479
+ // shellper still listening) answers its socket, so it needs the stricter
480
+ // unregistered+childless+aged predicate instead. See shellper-husk-sweep.ts.
481
+ const huskGraceMs = resolveHuskGraceMs();
482
+ const parsedHuskSweepIntervalMs = parseInt(process.env.SHELLPER_HUSK_SWEEP_INTERVAL_MS || '3600000', 10);
483
+ const huskSweepIntervalMs = Math.max(Number.isNaN(parsedHuskSweepIntervalMs) ? 3600000 : parsedHuskSweepIntervalMs, 1000);
484
+ const runHuskSweep = async () => {
485
+ try {
486
+ const result = await sweepShellperHusks({
487
+ socketDir,
488
+ db: getGlobalDb(),
489
+ graceMs: huskGraceMs,
490
+ log: (msg) => log('INFO', msg),
491
+ });
492
+ if (result.swept > 0) {
493
+ log('INFO', `Husk sweep: reaped ${result.swept} shellper husk(s)`);
494
+ }
495
+ }
496
+ catch (err) {
497
+ log('ERROR', `Husk sweep failed: ${err.message}`);
498
+ }
499
+ };
500
+ shellperHuskSweepInterval = setInterval(runHuskSweep, huskSweepIntervalMs);
337
501
  log('INFO', 'Shellper session manager initialized');
338
502
  // Spec 0105 Phase 4: Initialize terminal management module
339
503
  initTerminals({
@@ -366,8 +530,10 @@ server.listen(port, bindHost, async () => {
366
530
  }
367
531
  }, TERMINAL_MONITOR_INTERVAL_MS);
368
532
  terminalPartialMonitorInterval.unref();
369
- // Spec 403: Start send buffer for typing-aware message delivery
370
- startSendBuffer(log);
533
+ // Spec 1313: start the mailbox backstop drainer (prunes terminal rows, then
534
+ // periodically redelivers held mail on a clean render-gate). Replaces the
535
+ // retired Spec 403 SendBuffer.
536
+ startMailboxDrainer(log);
371
537
  // Issue #1118: one-time state.db → global.db consolidation. Runs once ever
372
538
  // (strict `_consolidation` marker), BEFORE initInstances() reads architect /
373
539
  // builder rows. Migrates this boot's active state.db; satellite files are
@@ -399,9 +565,22 @@ server.listen(port, bindHost, async () => {
399
565
  if (orphansKilled > 0) {
400
566
  log('INFO', `Killed ${orphansKilled} orphaned shellper process(es)`);
401
567
  }
568
+ // Issue #1261 test hook: widen the pre-wiring window to a known duration so
569
+ // the startup race is deterministic instead of a function of this machine's
570
+ // process table and session-log volume. Never set outside tests.
571
+ const bootDelayMs = parseInt(process.env.AF_TEST_BOOT_DELAY_MS || '0', 10);
572
+ if (bootDelayMs > 0) {
573
+ log('WARN', `AF_TEST_BOOT_DELAY_MS=${bootDelayMs} — delaying dependency wiring (test hook)`);
574
+ await new Promise((r) => setTimeout(r, bootDelayMs));
575
+ }
402
576
  // Spec 0105 Phase 3: Initialize instance lifecycle module.
403
- // Placed after reconciliation so getInstances() returns [] during startup
404
- // (since _deps is null), preventing race conditions with reconciliation.
577
+ // Placed after reconciliation so getInstances() cannot race with it.
578
+ //
579
+ // Issue #1261: this used to be the *last* step of the boot sequence, after
580
+ // the husk sweep and the session-log retention scan — both of which scale
581
+ // with disk state. Every route that touches `_deps` was therefore broken for
582
+ // as long as those scans took. It only needs to follow reconciliation, so it
583
+ // now runs here and the two maintenance sweeps run after readiness instead.
405
584
  initInstances({
406
585
  log,
407
586
  workspaceTerminals: getWorkspaceTerminals(),
@@ -414,16 +593,63 @@ server.listen(port, bindHost, async () => {
414
593
  deleteFileTabsForWorkspace,
415
594
  getTerminalsForWorkspace,
416
595
  });
417
- // Spec 399: Initialize cron scheduler after instances are ready
596
+ // Spec 399: Initialize cron scheduler after instances are ready.
597
+ // Spec 1313 (Phase 6): cron delivers through the mailbox + gate via `deliverCronMessage`
598
+ // (the same single gated path as `handleSend`) instead of a blind PTY write.
418
599
  initCron({
419
600
  log,
420
601
  getKnownWorkspacePaths,
421
- resolveTarget,
422
- getTerminalManager: () => getTerminalManager(),
602
+ deliver: (task, message) => deliverCronMessage(task, message, log),
423
603
  });
424
- // Spec 0097 Phase 4 / Spec 0105 Phase 2: Initialize cloud tunnel
604
+ // Issue #1261: dependency wiring is complete — open the gate. Everything
605
+ // below is maintenance or background service startup: it must not gate the
606
+ // API, and none of it is a prerequisite for a correct response.
607
+ markBootComplete();
608
+ // Issue #1227: run the stricter husk sweep once at startup too, same
609
+ // ordering requirement as killOrphanedShellpers (must run after
610
+ // reconciliation so a reconnected session's shellper is registered).
611
+ // Safe to run post-readiness: the sweep's predicate requires an aged
612
+ // shellper (1h grace by default), so a session created by an incoming
613
+ // request while the sweep runs can never match it.
614
+ await runHuskSweep();
615
+ // Issue #1238: PTY session log retention. Session logs are per-session files
616
+ // in ~/.agent-farm/logs that nothing ever deleted, so they accreted forever
617
+ // (19 GB / 29,728 files on an audited machine). Sweep aged-out logs at
618
+ // startup and then daily. Deliberately placed AFTER reconcileTerminalSessions
619
+ // so surviving sessions are in the terminal manager's map and are excluded by
620
+ // id — the sweep must never unlink a log whose fd is still open.
621
+ const logRetentionDays = resolveLogRetentionDays();
622
+ const sessionLogDir = path.join(AGENT_FARM_DIR, 'logs');
623
+ const runSessionLogSweep = () => {
624
+ try {
625
+ sweepSessionLogs({
626
+ logDir: sessionLogDir,
627
+ retentionMs: logRetentionDays * MS_PER_DAY,
628
+ activeSessionIds: getTerminalManager().listSessions().map((s) => s.id),
629
+ log: (msg) => log('INFO', msg),
630
+ });
631
+ }
632
+ catch (err) {
633
+ log('ERROR', `Session log sweep failed: ${err.message}`);
634
+ }
635
+ };
636
+ if (logRetentionDays === 0) {
637
+ log('INFO', 'Session log retention disabled (AGENT_FARM_LOG_RETENTION_DAYS=0)');
638
+ }
639
+ else {
640
+ runSessionLogSweep();
641
+ const footprint = measureSessionLogs(sessionLogDir);
642
+ log('INFO', `Session logs: ${footprint.files} file(s), ${formatBytes(footprint.bytes)} ` +
643
+ `(retention ${logRetentionDays}d)`);
644
+ sessionLogSweepInterval = setInterval(runSessionLogSweep, resolveLogSweepIntervalMs());
645
+ sessionLogSweepInterval.unref();
646
+ }
647
+ // Spec 0097 Phase 4 / Spec 0105 Phase 2: Initialize cloud tunnel.
648
+ // Deliberately after markBootComplete(): connectTunnel() talks to a remote
649
+ // service, so gating local API readiness on it would make an unreachable
650
+ // cloud endpoint look like a broken Tower.
425
651
  await initTunnel({ port, log, workspaceTerminals: getWorkspaceTerminals(), terminalManager: getTerminalManager() }, { getInstances });
426
- });
652
+ }
427
653
  // Initialize terminal WebSocket server (Phase 2 - Spec 0090)
428
654
  terminalWss = new WebSocketServer({ noServer: true });
429
655
  // Spec 0105 Phase 5: WebSocket upgrade handler extracted to tower-websocket.ts
@@ -1 +1 @@
1
- {"version":3,"file":"tower-server.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-server.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-server.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,24 @@
5
5
  * Contains: terminal session CRUD, file tab persistence, shell ID allocation,
6
6
  * terminal reconciliation, and terminal list assembly.
7
7
  */
8
- import type { TerminalType } from '@cluesmith/codev-core/tower-client';
8
+ import type { TerminalType } from '@cluesmith/codev-sdk/tower-client';
9
9
  import type { FileTab } from '../utils/file-tabs.js';
10
10
  import { TerminalManager } from '../../terminal/index.js';
11
+ /**
12
+ * Extract shellper session UUID from socket path (Spec 468).
13
+ * Socket format: shellper-<UUID>.sock
14
+ */
15
+ /**
16
+ * #1198: cap the replay seeded into an adopted PtySession's ring buffer.
17
+ * A long-lived full-screen TUI session's replay can be many MB of
18
+ * newline-free history; seeding it whole means every subsequent viewer
19
+ * attach ships the entire payload to xterm.js in one bracketed write
20
+ * (multi-second parse, webview stalls). Seed only the most recent bytes:
21
+ * the client's post-connect resize nudge repaints full-screen apps, and the
22
+ * shellper retains the full history.
23
+ */
24
+ export declare const RING_SEED_MAX_BYTES: number;
25
+ export declare function capRingSeed(replayData: Buffer, sessionId: string): Buffer;
11
26
  import type { SessionManager } from '../../terminal/session-manager.js';
12
27
  import type { PtySession } from '../../terminal/pty-session.js';
13
28
  import type { WorkspaceTerminals, TerminalEntry, DbTerminalSession } from './tower-types.js';
@@ -78,7 +93,7 @@ export declare function getNextShellId(workspacePath: string): string;
78
93
  * Save a terminal session to SQLite.
79
94
  * Guards against race conditions by checking if workspace is still active.
80
95
  */
81
- export declare function saveTerminalSession(terminalId: string, workspacePath: string, type: TerminalType, roleId: string | null, pid: number | null, shellperSocket?: string | null, shellperPid?: number | null, shellperStartTime?: number | null, label?: string | null, cwd?: string | null): void;
96
+ export declare function saveTerminalSession(terminalId: string, workspacePath: string, type: TerminalType, roleId: string | null, pid: number | null, shellperSocket?: string | null, shellperPid?: number | null, shellperStartTime?: number | null, label?: string | null, cwd?: string | null, command?: string | null): void;
82
97
  /**
83
98
  * Update the label of a terminal session in SQLite (Spec 468).
84
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tower-terminals.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-terminals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tower-terminals.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-terminals.ts"],"names":[],"mappings":"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"}