chatroom-cli 1.34.0 → 1.34.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 (841) hide show
  1. package/dist/index.js +205 -319
  2. package/dist/index.js.map +413 -1
  3. package/package.json +5 -4
  4. package/dist/api.d.ts +0 -61
  5. package/dist/api.d.ts.map +0 -1
  6. package/dist/api.js +0 -10
  7. package/dist/api.js.map +0 -1
  8. package/dist/commands/artifact/deps.d.ts +0 -6
  9. package/dist/commands/artifact/deps.d.ts.map +0 -1
  10. package/dist/commands/artifact/deps.js +0 -2
  11. package/dist/commands/artifact/deps.js.map +0 -1
  12. package/dist/commands/artifact/index.d.ts +0 -43
  13. package/dist/commands/artifact/index.d.ts.map +0 -1
  14. package/dist/commands/artifact/index.js +0 -205
  15. package/dist/commands/artifact/index.js.map +0 -1
  16. package/dist/commands/artifact/index.test.d.ts +0 -8
  17. package/dist/commands/artifact/index.test.d.ts.map +0 -1
  18. package/dist/commands/artifact/index.test.js +0 -188
  19. package/dist/commands/artifact/index.test.js.map +0 -1
  20. package/dist/commands/auth-login/deps.d.ts +0 -50
  21. package/dist/commands/auth-login/deps.d.ts.map +0 -1
  22. package/dist/commands/auth-login/deps.js +0 -9
  23. package/dist/commands/auth-login/deps.js.map +0 -1
  24. package/dist/commands/auth-login/index.d.ts +0 -22
  25. package/dist/commands/auth-login/index.d.ts.map +0 -1
  26. package/dist/commands/auth-login/index.js +0 -246
  27. package/dist/commands/auth-login/index.js.map +0 -1
  28. package/dist/commands/auth-login/index.test.d.ts +0 -9
  29. package/dist/commands/auth-login/index.test.d.ts.map +0 -1
  30. package/dist/commands/auth-login/index.test.js +0 -297
  31. package/dist/commands/auth-login/index.test.js.map +0 -1
  32. package/dist/commands/auth-logout/deps.d.ts +0 -20
  33. package/dist/commands/auth-logout/deps.d.ts.map +0 -1
  34. package/dist/commands/auth-logout/deps.js +0 -7
  35. package/dist/commands/auth-logout/deps.js.map +0 -1
  36. package/dist/commands/auth-logout/index.d.ts +0 -8
  37. package/dist/commands/auth-logout/index.d.ts.map +0 -1
  38. package/dist/commands/auth-logout/index.js +0 -34
  39. package/dist/commands/auth-logout/index.js.map +0 -1
  40. package/dist/commands/auth-logout/index.test.d.ts +0 -8
  41. package/dist/commands/auth-logout/index.test.d.ts.map +0 -1
  42. package/dist/commands/auth-logout/index.test.js +0 -85
  43. package/dist/commands/auth-logout/index.test.js.map +0 -1
  44. package/dist/commands/auth-status/deps.d.ts +0 -35
  45. package/dist/commands/auth-status/deps.d.ts.map +0 -1
  46. package/dist/commands/auth-status/deps.js +0 -7
  47. package/dist/commands/auth-status/deps.js.map +0 -1
  48. package/dist/commands/auth-status/index.d.ts +0 -8
  49. package/dist/commands/auth-status/index.d.ts.map +0 -1
  50. package/dist/commands/auth-status/index.js +0 -80
  51. package/dist/commands/auth-status/index.js.map +0 -1
  52. package/dist/commands/auth-status/index.test.d.ts +0 -8
  53. package/dist/commands/auth-status/index.test.d.ts.map +0 -1
  54. package/dist/commands/auth-status/index.test.js +0 -116
  55. package/dist/commands/auth-status/index.test.js.map +0 -1
  56. package/dist/commands/backlog/deps.d.ts +0 -21
  57. package/dist/commands/backlog/deps.d.ts.map +0 -1
  58. package/dist/commands/backlog/deps.js +0 -5
  59. package/dist/commands/backlog/deps.js.map +0 -1
  60. package/dist/commands/backlog/index.d.ts +0 -129
  61. package/dist/commands/backlog/index.d.ts.map +0 -1
  62. package/dist/commands/backlog/index.js +0 -694
  63. package/dist/commands/backlog/index.js.map +0 -1
  64. package/dist/commands/backlog/index.test.d.ts +0 -7
  65. package/dist/commands/backlog/index.test.d.ts.map +0 -1
  66. package/dist/commands/backlog/index.test.js +0 -395
  67. package/dist/commands/backlog/index.test.js.map +0 -1
  68. package/dist/commands/classify/deps.d.ts +0 -18
  69. package/dist/commands/classify/deps.d.ts.map +0 -1
  70. package/dist/commands/classify/deps.js +0 -8
  71. package/dist/commands/classify/deps.js.map +0 -1
  72. package/dist/commands/classify/index.d.ts +0 -19
  73. package/dist/commands/classify/index.d.ts.map +0 -1
  74. package/dist/commands/classify/index.js +0 -162
  75. package/dist/commands/classify/index.js.map +0 -1
  76. package/dist/commands/classify/index.test.d.ts +0 -9
  77. package/dist/commands/classify/index.test.d.ts.map +0 -1
  78. package/dist/commands/classify/index.test.js +0 -263
  79. package/dist/commands/classify/index.test.js.map +0 -1
  80. package/dist/commands/context/deps.d.ts +0 -6
  81. package/dist/commands/context/deps.d.ts.map +0 -1
  82. package/dist/commands/context/deps.js +0 -2
  83. package/dist/commands/context/deps.js.map +0 -1
  84. package/dist/commands/context/index.d.ts +0 -42
  85. package/dist/commands/context/index.d.ts.map +0 -1
  86. package/dist/commands/context/index.js +0 -324
  87. package/dist/commands/context/index.js.map +0 -1
  88. package/dist/commands/context/index.test.d.ts +0 -9
  89. package/dist/commands/context/index.test.d.ts.map +0 -1
  90. package/dist/commands/context/index.test.js +0 -272
  91. package/dist/commands/context/index.test.js.map +0 -1
  92. package/dist/commands/get-next-task/index.d.ts +0 -20
  93. package/dist/commands/get-next-task/index.d.ts.map +0 -1
  94. package/dist/commands/get-next-task/index.js +0 -156
  95. package/dist/commands/get-next-task/index.js.map +0 -1
  96. package/dist/commands/get-next-task/index.test.d.ts +0 -9
  97. package/dist/commands/get-next-task/index.test.d.ts.map +0 -1
  98. package/dist/commands/get-next-task/index.test.js +0 -125
  99. package/dist/commands/get-next-task/index.test.js.map +0 -1
  100. package/dist/commands/get-next-task/session.d.ts +0 -127
  101. package/dist/commands/get-next-task/session.d.ts.map +0 -1
  102. package/dist/commands/get-next-task/session.js +0 -335
  103. package/dist/commands/get-next-task/session.js.map +0 -1
  104. package/dist/commands/get-next-task/session.test.d.ts +0 -11
  105. package/dist/commands/get-next-task/session.test.d.ts.map +0 -1
  106. package/dist/commands/get-next-task/session.test.js +0 -367
  107. package/dist/commands/get-next-task/session.test.js.map +0 -1
  108. package/dist/commands/get-system-prompt/deps.d.ts +0 -14
  109. package/dist/commands/get-system-prompt/deps.d.ts.map +0 -1
  110. package/dist/commands/get-system-prompt/deps.js +0 -7
  111. package/dist/commands/get-system-prompt/deps.js.map +0 -1
  112. package/dist/commands/get-system-prompt/index.d.ts +0 -16
  113. package/dist/commands/get-system-prompt/index.d.ts.map +0 -1
  114. package/dist/commands/get-system-prompt/index.js +0 -70
  115. package/dist/commands/get-system-prompt/index.js.map +0 -1
  116. package/dist/commands/guidelines/deps.d.ts +0 -14
  117. package/dist/commands/guidelines/deps.d.ts.map +0 -1
  118. package/dist/commands/guidelines/deps.js +0 -7
  119. package/dist/commands/guidelines/deps.js.map +0 -1
  120. package/dist/commands/guidelines/index.d.ts +0 -19
  121. package/dist/commands/guidelines/index.d.ts.map +0 -1
  122. package/dist/commands/guidelines/index.js +0 -92
  123. package/dist/commands/guidelines/index.js.map +0 -1
  124. package/dist/commands/guidelines/index.test.d.ts +0 -8
  125. package/dist/commands/guidelines/index.test.d.ts.map +0 -1
  126. package/dist/commands/guidelines/index.test.js +0 -140
  127. package/dist/commands/guidelines/index.test.js.map +0 -1
  128. package/dist/commands/handoff/deps.d.ts +0 -9
  129. package/dist/commands/handoff/deps.d.ts.map +0 -1
  130. package/dist/commands/handoff/deps.js +0 -5
  131. package/dist/commands/handoff/deps.js.map +0 -1
  132. package/dist/commands/handoff/index.d.ts +0 -23
  133. package/dist/commands/handoff/index.d.ts.map +0 -1
  134. package/dist/commands/handoff/index.js +0 -226
  135. package/dist/commands/handoff/index.js.map +0 -1
  136. package/dist/commands/handoff/index.test.d.ts +0 -9
  137. package/dist/commands/handoff/index.test.d.ts.map +0 -1
  138. package/dist/commands/handoff/index.test.js +0 -189
  139. package/dist/commands/handoff/index.test.js.map +0 -1
  140. package/dist/commands/init/deps.d.ts +0 -21
  141. package/dist/commands/init/deps.d.ts.map +0 -1
  142. package/dist/commands/init/deps.js +0 -8
  143. package/dist/commands/init/deps.js.map +0 -1
  144. package/dist/commands/init/index.d.ts +0 -22
  145. package/dist/commands/init/index.d.ts.map +0 -1
  146. package/dist/commands/init/index.js +0 -181
  147. package/dist/commands/init/index.js.map +0 -1
  148. package/dist/commands/init/index.test.d.ts +0 -8
  149. package/dist/commands/init/index.test.d.ts.map +0 -1
  150. package/dist/commands/init/index.test.js +0 -170
  151. package/dist/commands/init/index.test.js.map +0 -1
  152. package/dist/commands/machine/daemon-start/command-loop.d.ts +0 -15
  153. package/dist/commands/machine/daemon-start/command-loop.d.ts.map +0 -1
  154. package/dist/commands/machine/daemon-start/command-loop.js +0 -295
  155. package/dist/commands/machine/daemon-start/command-loop.js.map +0 -1
  156. package/dist/commands/machine/daemon-start/command-loop.test.d.ts +0 -13
  157. package/dist/commands/machine/daemon-start/command-loop.test.d.ts.map +0 -1
  158. package/dist/commands/machine/daemon-start/command-loop.test.js +0 -156
  159. package/dist/commands/machine/daemon-start/command-loop.test.js.map +0 -1
  160. package/dist/commands/machine/daemon-start/command-sync-heartbeat.d.ts +0 -12
  161. package/dist/commands/machine/daemon-start/command-sync-heartbeat.d.ts.map +0 -1
  162. package/dist/commands/machine/daemon-start/command-sync-heartbeat.js +0 -58
  163. package/dist/commands/machine/daemon-start/command-sync-heartbeat.js.map +0 -1
  164. package/dist/commands/machine/daemon-start/deps.d.ts +0 -85
  165. package/dist/commands/machine/daemon-start/deps.d.ts.map +0 -1
  166. package/dist/commands/machine/daemon-start/deps.js +0 -14
  167. package/dist/commands/machine/daemon-start/deps.js.map +0 -1
  168. package/dist/commands/machine/daemon-start/event-bus.test.d.ts +0 -2
  169. package/dist/commands/machine/daemon-start/event-bus.test.d.ts.map +0 -1
  170. package/dist/commands/machine/daemon-start/event-bus.test.js +0 -100
  171. package/dist/commands/machine/daemon-start/event-bus.test.js.map +0 -1
  172. package/dist/commands/machine/daemon-start/event-listeners.test.d.ts +0 -2
  173. package/dist/commands/machine/daemon-start/event-listeners.test.d.ts.map +0 -1
  174. package/dist/commands/machine/daemon-start/event-listeners.test.js +0 -155
  175. package/dist/commands/machine/daemon-start/event-listeners.test.js.map +0 -1
  176. package/dist/commands/machine/daemon-start/file-content-fulfillment.d.ts +0 -12
  177. package/dist/commands/machine/daemon-start/file-content-fulfillment.d.ts.map +0 -1
  178. package/dist/commands/machine/daemon-start/file-content-fulfillment.js +0 -120
  179. package/dist/commands/machine/daemon-start/file-content-fulfillment.js.map +0 -1
  180. package/dist/commands/machine/daemon-start/file-content-subscription.d.ts +0 -29
  181. package/dist/commands/machine/daemon-start/file-content-subscription.d.ts.map +0 -1
  182. package/dist/commands/machine/daemon-start/file-content-subscription.js +0 -55
  183. package/dist/commands/machine/daemon-start/file-content-subscription.js.map +0 -1
  184. package/dist/commands/machine/daemon-start/file-tree-subscription.d.ts +0 -22
  185. package/dist/commands/machine/daemon-start/file-tree-subscription.d.ts.map +0 -1
  186. package/dist/commands/machine/daemon-start/file-tree-subscription.js +0 -83
  187. package/dist/commands/machine/daemon-start/file-tree-subscription.js.map +0 -1
  188. package/dist/commands/machine/daemon-start/git-heartbeat.d.ts +0 -18
  189. package/dist/commands/machine/daemon-start/git-heartbeat.d.ts.map +0 -1
  190. package/dist/commands/machine/daemon-start/git-heartbeat.js +0 -218
  191. package/dist/commands/machine/daemon-start/git-heartbeat.js.map +0 -1
  192. package/dist/commands/machine/daemon-start/git-subscription.d.ts +0 -60
  193. package/dist/commands/machine/daemon-start/git-subscription.d.ts.map +0 -1
  194. package/dist/commands/machine/daemon-start/git-subscription.js +0 -389
  195. package/dist/commands/machine/daemon-start/git-subscription.js.map +0 -1
  196. package/dist/commands/machine/daemon-start/git-subscription.test.d.ts +0 -2
  197. package/dist/commands/machine/daemon-start/git-subscription.test.d.ts.map +0 -1
  198. package/dist/commands/machine/daemon-start/git-subscription.test.js +0 -103
  199. package/dist/commands/machine/daemon-start/git-subscription.test.js.map +0 -1
  200. package/dist/commands/machine/daemon-start/handlers/command-runner.d.ts +0 -23
  201. package/dist/commands/machine/daemon-start/handlers/command-runner.d.ts.map +0 -1
  202. package/dist/commands/machine/daemon-start/handlers/command-runner.js +0 -236
  203. package/dist/commands/machine/daemon-start/handlers/command-runner.js.map +0 -1
  204. package/dist/commands/machine/daemon-start/handlers/ping.d.ts +0 -6
  205. package/dist/commands/machine/daemon-start/handlers/ping.d.ts.map +0 -1
  206. package/dist/commands/machine/daemon-start/handlers/ping.js +0 -8
  207. package/dist/commands/machine/daemon-start/handlers/ping.js.map +0 -1
  208. package/dist/commands/machine/daemon-start/handlers/ping.test.d.ts +0 -5
  209. package/dist/commands/machine/daemon-start/handlers/ping.test.d.ts.map +0 -1
  210. package/dist/commands/machine/daemon-start/handlers/ping.test.js +0 -23
  211. package/dist/commands/machine/daemon-start/handlers/ping.test.js.map +0 -1
  212. package/dist/commands/machine/daemon-start/handlers/shared.d.ts +0 -11
  213. package/dist/commands/machine/daemon-start/handlers/shared.d.ts.map +0 -1
  214. package/dist/commands/machine/daemon-start/handlers/shared.js +0 -25
  215. package/dist/commands/machine/daemon-start/handlers/shared.js.map +0 -1
  216. package/dist/commands/machine/daemon-start/handlers/state-recovery.d.ts +0 -19
  217. package/dist/commands/machine/daemon-start/handlers/state-recovery.d.ts.map +0 -1
  218. package/dist/commands/machine/daemon-start/handlers/state-recovery.js +0 -61
  219. package/dist/commands/machine/daemon-start/handlers/state-recovery.js.map +0 -1
  220. package/dist/commands/machine/daemon-start/handlers/state-recovery.test.d.ts +0 -8
  221. package/dist/commands/machine/daemon-start/handlers/state-recovery.test.d.ts.map +0 -1
  222. package/dist/commands/machine/daemon-start/handlers/state-recovery.test.js +0 -98
  223. package/dist/commands/machine/daemon-start/handlers/state-recovery.test.js.map +0 -1
  224. package/dist/commands/machine/daemon-start/handlers/status.d.ts +0 -6
  225. package/dist/commands/machine/daemon-start/handlers/status.d.ts.map +0 -1
  226. package/dist/commands/machine/daemon-start/handlers/status.js +0 -13
  227. package/dist/commands/machine/daemon-start/handlers/status.js.map +0 -1
  228. package/dist/commands/machine/daemon-start/handlers/status.test.d.ts +0 -5
  229. package/dist/commands/machine/daemon-start/handlers/status.test.d.ts.map +0 -1
  230. package/dist/commands/machine/daemon-start/handlers/status.test.js +0 -51
  231. package/dist/commands/machine/daemon-start/handlers/status.test.js.map +0 -1
  232. package/dist/commands/machine/daemon-start/handlers/stop-agent.d.ts +0 -21
  233. package/dist/commands/machine/daemon-start/handlers/stop-agent.d.ts.map +0 -1
  234. package/dist/commands/machine/daemon-start/handlers/stop-agent.js +0 -36
  235. package/dist/commands/machine/daemon-start/handlers/stop-agent.js.map +0 -1
  236. package/dist/commands/machine/daemon-start/handlers/stop-agent.test.d.ts +0 -7
  237. package/dist/commands/machine/daemon-start/handlers/stop-agent.test.d.ts.map +0 -1
  238. package/dist/commands/machine/daemon-start/handlers/stop-agent.test.js +0 -135
  239. package/dist/commands/machine/daemon-start/handlers/stop-agent.test.js.map +0 -1
  240. package/dist/commands/machine/daemon-start/index.d.ts +0 -16
  241. package/dist/commands/machine/daemon-start/index.d.ts.map +0 -1
  242. package/dist/commands/machine/daemon-start/index.js +0 -21
  243. package/dist/commands/machine/daemon-start/index.js.map +0 -1
  244. package/dist/commands/machine/daemon-start/init.d.ts +0 -23
  245. package/dist/commands/machine/daemon-start/init.d.ts.map +0 -1
  246. package/dist/commands/machine/daemon-start/init.js +0 -340
  247. package/dist/commands/machine/daemon-start/init.js.map +0 -1
  248. package/dist/commands/machine/daemon-start/init.test.d.ts +0 -8
  249. package/dist/commands/machine/daemon-start/init.test.d.ts.map +0 -1
  250. package/dist/commands/machine/daemon-start/init.test.js +0 -385
  251. package/dist/commands/machine/daemon-start/init.test.js.map +0 -1
  252. package/dist/commands/machine/daemon-start/testing/index.d.ts +0 -5
  253. package/dist/commands/machine/daemon-start/testing/index.d.ts.map +0 -1
  254. package/dist/commands/machine/daemon-start/testing/index.js +0 -5
  255. package/dist/commands/machine/daemon-start/testing/index.js.map +0 -1
  256. package/dist/commands/machine/daemon-start/testing/mock-daemon-deps.d.ts +0 -26
  257. package/dist/commands/machine/daemon-start/testing/mock-daemon-deps.d.ts.map +0 -1
  258. package/dist/commands/machine/daemon-start/testing/mock-daemon-deps.js +0 -68
  259. package/dist/commands/machine/daemon-start/testing/mock-daemon-deps.js.map +0 -1
  260. package/dist/commands/machine/daemon-start/types.d.ts +0 -89
  261. package/dist/commands/machine/daemon-start/types.d.ts.map +0 -1
  262. package/dist/commands/machine/daemon-start/types.js +0 -5
  263. package/dist/commands/machine/daemon-start/types.js.map +0 -1
  264. package/dist/commands/machine/daemon-start/utils.d.ts +0 -8
  265. package/dist/commands/machine/daemon-start/utils.d.ts.map +0 -1
  266. package/dist/commands/machine/daemon-start/utils.js +0 -10
  267. package/dist/commands/machine/daemon-start/utils.js.map +0 -1
  268. package/dist/commands/machine/daemon-status.d.ts +0 -10
  269. package/dist/commands/machine/daemon-status.d.ts.map +0 -1
  270. package/dist/commands/machine/daemon-status.js +0 -23
  271. package/dist/commands/machine/daemon-status.js.map +0 -1
  272. package/dist/commands/machine/daemon-stop.d.ts +0 -10
  273. package/dist/commands/machine/daemon-stop.d.ts.map +0 -1
  274. package/dist/commands/machine/daemon-stop.js +0 -44
  275. package/dist/commands/machine/daemon-stop.js.map +0 -1
  276. package/dist/commands/machine/index.d.ts +0 -9
  277. package/dist/commands/machine/index.d.ts.map +0 -1
  278. package/dist/commands/machine/index.js +0 -9
  279. package/dist/commands/machine/index.js.map +0 -1
  280. package/dist/commands/machine/pid.d.ts +0 -48
  281. package/dist/commands/machine/pid.d.ts.map +0 -1
  282. package/dist/commands/machine/pid.js +0 -141
  283. package/dist/commands/machine/pid.js.map +0 -1
  284. package/dist/commands/messages/deps.d.ts +0 -6
  285. package/dist/commands/messages/deps.d.ts.map +0 -1
  286. package/dist/commands/messages/deps.js +0 -2
  287. package/dist/commands/messages/deps.js.map +0 -1
  288. package/dist/commands/messages/index.d.ts +0 -28
  289. package/dist/commands/messages/index.d.ts.map +0 -1
  290. package/dist/commands/messages/index.js +0 -166
  291. package/dist/commands/messages/index.js.map +0 -1
  292. package/dist/commands/messages/index.test.d.ts +0 -8
  293. package/dist/commands/messages/index.test.d.ts.map +0 -1
  294. package/dist/commands/messages/index.test.js +0 -159
  295. package/dist/commands/messages/index.test.js.map +0 -1
  296. package/dist/commands/opencode-install/deps.d.ts +0 -32
  297. package/dist/commands/opencode-install/deps.d.ts.map +0 -1
  298. package/dist/commands/opencode-install/deps.js +0 -8
  299. package/dist/commands/opencode-install/deps.js.map +0 -1
  300. package/dist/commands/opencode-install/index.d.ts +0 -31
  301. package/dist/commands/opencode-install/index.d.ts.map +0 -1
  302. package/dist/commands/opencode-install/index.js +0 -440
  303. package/dist/commands/opencode-install/index.js.map +0 -1
  304. package/dist/commands/opencode-install/index.test.d.ts +0 -8
  305. package/dist/commands/opencode-install/index.test.d.ts.map +0 -1
  306. package/dist/commands/opencode-install/index.test.js +0 -123
  307. package/dist/commands/opencode-install/index.test.js.map +0 -1
  308. package/dist/commands/register-agent/deps.d.ts +0 -12
  309. package/dist/commands/register-agent/deps.d.ts.map +0 -1
  310. package/dist/commands/register-agent/deps.js +0 -8
  311. package/dist/commands/register-agent/deps.js.map +0 -1
  312. package/dist/commands/register-agent/index.d.ts +0 -15
  313. package/dist/commands/register-agent/index.d.ts.map +0 -1
  314. package/dist/commands/register-agent/index.js +0 -118
  315. package/dist/commands/register-agent/index.js.map +0 -1
  316. package/dist/commands/register-agent/index.test.d.ts +0 -9
  317. package/dist/commands/register-agent/index.test.d.ts.map +0 -1
  318. package/dist/commands/register-agent/index.test.js +0 -204
  319. package/dist/commands/register-agent/index.test.js.map +0 -1
  320. package/dist/commands/report-progress/deps.d.ts +0 -9
  321. package/dist/commands/report-progress/deps.d.ts.map +0 -1
  322. package/dist/commands/report-progress/deps.js +0 -5
  323. package/dist/commands/report-progress/deps.js.map +0 -1
  324. package/dist/commands/report-progress/index.d.ts +0 -14
  325. package/dist/commands/report-progress/index.d.ts.map +0 -1
  326. package/dist/commands/report-progress/index.js +0 -110
  327. package/dist/commands/report-progress/index.js.map +0 -1
  328. package/dist/commands/report-progress/index.test.d.ts +0 -8
  329. package/dist/commands/report-progress/index.test.d.ts.map +0 -1
  330. package/dist/commands/report-progress/index.test.js +0 -114
  331. package/dist/commands/report-progress/index.test.js.map +0 -1
  332. package/dist/commands/skill/deps.d.ts +0 -9
  333. package/dist/commands/skill/deps.d.ts.map +0 -1
  334. package/dist/commands/skill/deps.js +0 -5
  335. package/dist/commands/skill/deps.js.map +0 -1
  336. package/dist/commands/skill/index.d.ts +0 -20
  337. package/dist/commands/skill/index.d.ts.map +0 -1
  338. package/dist/commands/skill/index.js +0 -89
  339. package/dist/commands/skill/index.js.map +0 -1
  340. package/dist/commands/skill/index.test.d.ts +0 -8
  341. package/dist/commands/skill/index.test.d.ts.map +0 -1
  342. package/dist/commands/skill/index.test.js +0 -166
  343. package/dist/commands/skill/index.test.js.map +0 -1
  344. package/dist/commands/task/read/deps.d.ts +0 -18
  345. package/dist/commands/task/read/deps.d.ts.map +0 -1
  346. package/dist/commands/task/read/deps.js +0 -8
  347. package/dist/commands/task/read/deps.js.map +0 -1
  348. package/dist/commands/task/read/index.d.ts +0 -17
  349. package/dist/commands/task/read/index.d.ts.map +0 -1
  350. package/dist/commands/task/read/index.js +0 -144
  351. package/dist/commands/task/read/index.js.map +0 -1
  352. package/dist/commands/telegram/deps.d.ts +0 -13
  353. package/dist/commands/telegram/deps.d.ts.map +0 -1
  354. package/dist/commands/telegram/deps.js +0 -5
  355. package/dist/commands/telegram/deps.js.map +0 -1
  356. package/dist/commands/telegram/index.d.ts +0 -18
  357. package/dist/commands/telegram/index.d.ts.map +0 -1
  358. package/dist/commands/telegram/index.js +0 -94
  359. package/dist/commands/telegram/index.js.map +0 -1
  360. package/dist/commands/update/deps.d.ts +0 -21
  361. package/dist/commands/update/deps.d.ts.map +0 -1
  362. package/dist/commands/update/deps.js +0 -8
  363. package/dist/commands/update/deps.js.map +0 -1
  364. package/dist/commands/update/index.d.ts +0 -8
  365. package/dist/commands/update/index.d.ts.map +0 -1
  366. package/dist/commands/update/index.js +0 -70
  367. package/dist/commands/update/index.js.map +0 -1
  368. package/dist/commands/update/index.test.d.ts +0 -8
  369. package/dist/commands/update/index.test.d.ts.map +0 -1
  370. package/dist/commands/update/index.test.js +0 -108
  371. package/dist/commands/update/index.test.js.map +0 -1
  372. package/dist/commands/workflow/deps.d.ts +0 -9
  373. package/dist/commands/workflow/deps.d.ts.map +0 -1
  374. package/dist/commands/workflow/deps.js +0 -5
  375. package/dist/commands/workflow/deps.js.map +0 -1
  376. package/dist/commands/workflow/index.d.ts +0 -73
  377. package/dist/commands/workflow/index.d.ts.map +0 -1
  378. package/dist/commands/workflow/index.js +0 -545
  379. package/dist/commands/workflow/index.js.map +0 -1
  380. package/dist/commands/workflow/index.test.d.ts +0 -7
  381. package/dist/commands/workflow/index.test.d.ts.map +0 -1
  382. package/dist/commands/workflow/index.test.js +0 -315
  383. package/dist/commands/workflow/index.test.js.map +0 -1
  384. package/dist/config/defaults.d.ts +0 -10
  385. package/dist/config/defaults.d.ts.map +0 -1
  386. package/dist/config/defaults.js +0 -79
  387. package/dist/config/defaults.js.map +0 -1
  388. package/dist/config/loader.d.ts +0 -52
  389. package/dist/config/loader.d.ts.map +0 -1
  390. package/dist/config/loader.js +0 -202
  391. package/dist/config/loader.js.map +0 -1
  392. package/dist/config/schema.d.ts +0 -50
  393. package/dist/config/schema.d.ts.map +0 -1
  394. package/dist/config/schema.js +0 -99
  395. package/dist/config/schema.js.map +0 -1
  396. package/dist/config.d.ts +0 -14
  397. package/dist/config.d.ts.map +0 -1
  398. package/dist/config.js +0 -14
  399. package/dist/config.js.map +0 -1
  400. package/dist/events/daemon/agent/on-agent-exited.d.ts +0 -26
  401. package/dist/events/daemon/agent/on-agent-exited.d.ts.map +0 -1
  402. package/dist/events/daemon/agent/on-agent-exited.js +0 -20
  403. package/dist/events/daemon/agent/on-agent-exited.js.map +0 -1
  404. package/dist/events/daemon/agent/on-agent-started.d.ts +0 -16
  405. package/dist/events/daemon/agent/on-agent-started.d.ts.map +0 -1
  406. package/dist/events/daemon/agent/on-agent-started.js +0 -11
  407. package/dist/events/daemon/agent/on-agent-started.js.map +0 -1
  408. package/dist/events/daemon/agent/on-agent-stopped.d.ts +0 -14
  409. package/dist/events/daemon/agent/on-agent-stopped.d.ts.map +0 -1
  410. package/dist/events/daemon/agent/on-agent-stopped.js +0 -11
  411. package/dist/events/daemon/agent/on-agent-stopped.js.map +0 -1
  412. package/dist/events/daemon/agent/on-request-start-agent.d.ts +0 -19
  413. package/dist/events/daemon/agent/on-request-start-agent.d.ts.map +0 -1
  414. package/dist/events/daemon/agent/on-request-start-agent.js +0 -55
  415. package/dist/events/daemon/agent/on-request-start-agent.js.map +0 -1
  416. package/dist/events/daemon/agent/on-request-start-agent.test.d.ts +0 -2
  417. package/dist/events/daemon/agent/on-request-start-agent.test.d.ts.map +0 -1
  418. package/dist/events/daemon/agent/on-request-start-agent.test.js +0 -96
  419. package/dist/events/daemon/agent/on-request-start-agent.test.js.map +0 -1
  420. package/dist/events/daemon/agent/on-request-stop-agent.d.ts +0 -16
  421. package/dist/events/daemon/agent/on-request-stop-agent.d.ts.map +0 -1
  422. package/dist/events/daemon/agent/on-request-stop-agent.js +0 -19
  423. package/dist/events/daemon/agent/on-request-stop-agent.js.map +0 -1
  424. package/dist/events/daemon/event-bus.d.ts +0 -87
  425. package/dist/events/daemon/event-bus.d.ts.map +0 -1
  426. package/dist/events/daemon/event-bus.js +0 -50
  427. package/dist/events/daemon/event-bus.js.map +0 -1
  428. package/dist/events/daemon/register-listeners.d.ts +0 -9
  429. package/dist/events/daemon/register-listeners.d.ts.map +0 -1
  430. package/dist/events/daemon/register-listeners.js +0 -21
  431. package/dist/events/daemon/register-listeners.js.map +0 -1
  432. package/dist/events/lifecycle/on-daemon-shutdown.d.ts +0 -9
  433. package/dist/events/lifecycle/on-daemon-shutdown.d.ts.map +0 -1
  434. package/dist/events/lifecycle/on-daemon-shutdown.js +0 -43
  435. package/dist/events/lifecycle/on-daemon-shutdown.js.map +0 -1
  436. package/dist/index.d.ts +0 -9
  437. package/dist/index.d.ts.map +0 -1
  438. package/dist/infrastructure/auth/middleware.d.ts +0 -21
  439. package/dist/infrastructure/auth/middleware.d.ts.map +0 -1
  440. package/dist/infrastructure/auth/middleware.js +0 -106
  441. package/dist/infrastructure/auth/middleware.js.map +0 -1
  442. package/dist/infrastructure/auth/storage.d.ts +0 -59
  443. package/dist/infrastructure/auth/storage.d.ts.map +0 -1
  444. package/dist/infrastructure/auth/storage.js +0 -242
  445. package/dist/infrastructure/auth/storage.js.map +0 -1
  446. package/dist/infrastructure/convex/client.d.ts +0 -28
  447. package/dist/infrastructure/convex/client.d.ts.map +0 -1
  448. package/dist/infrastructure/convex/client.js +0 -77
  449. package/dist/infrastructure/convex/client.js.map +0 -1
  450. package/dist/infrastructure/deps/backend.d.ts +0 -13
  451. package/dist/infrastructure/deps/backend.d.ts.map +0 -1
  452. package/dist/infrastructure/deps/backend.js +0 -8
  453. package/dist/infrastructure/deps/backend.js.map +0 -1
  454. package/dist/infrastructure/deps/clock.d.ts +0 -13
  455. package/dist/infrastructure/deps/clock.d.ts.map +0 -1
  456. package/dist/infrastructure/deps/clock.js +0 -8
  457. package/dist/infrastructure/deps/clock.js.map +0 -1
  458. package/dist/infrastructure/deps/fs.d.ts +0 -12
  459. package/dist/infrastructure/deps/fs.d.ts.map +0 -1
  460. package/dist/infrastructure/deps/fs.js +0 -8
  461. package/dist/infrastructure/deps/fs.js.map +0 -1
  462. package/dist/infrastructure/deps/index.d.ts +0 -12
  463. package/dist/infrastructure/deps/index.d.ts.map +0 -1
  464. package/dist/infrastructure/deps/index.js +0 -8
  465. package/dist/infrastructure/deps/index.js.map +0 -1
  466. package/dist/infrastructure/deps/process.d.ts +0 -11
  467. package/dist/infrastructure/deps/process.d.ts.map +0 -1
  468. package/dist/infrastructure/deps/process.js +0 -8
  469. package/dist/infrastructure/deps/process.js.map +0 -1
  470. package/dist/infrastructure/deps/session.d.ts +0 -16
  471. package/dist/infrastructure/deps/session.d.ts.map +0 -1
  472. package/dist/infrastructure/deps/session.js +0 -8
  473. package/dist/infrastructure/deps/session.js.map +0 -1
  474. package/dist/infrastructure/git/git-reader.d.ts +0 -206
  475. package/dist/infrastructure/git/git-reader.d.ts.map +0 -1
  476. package/dist/infrastructure/git/git-reader.js +0 -711
  477. package/dist/infrastructure/git/git-reader.js.map +0 -1
  478. package/dist/infrastructure/git/git-reader.test.d.ts +0 -8
  479. package/dist/infrastructure/git/git-reader.test.d.ts.map +0 -1
  480. package/dist/infrastructure/git/git-reader.test.js +0 -598
  481. package/dist/infrastructure/git/git-reader.test.js.map +0 -1
  482. package/dist/infrastructure/git/git-writer.d.ts +0 -48
  483. package/dist/infrastructure/git/git-writer.d.ts.map +0 -1
  484. package/dist/infrastructure/git/git-writer.js +0 -127
  485. package/dist/infrastructure/git/git-writer.js.map +0 -1
  486. package/dist/infrastructure/git/index.d.ts +0 -10
  487. package/dist/infrastructure/git/index.d.ts.map +0 -1
  488. package/dist/infrastructure/git/index.js +0 -9
  489. package/dist/infrastructure/git/index.js.map +0 -1
  490. package/dist/infrastructure/git/types.d.ts +0 -127
  491. package/dist/infrastructure/git/types.d.ts.map +0 -1
  492. package/dist/infrastructure/git/types.js +0 -20
  493. package/dist/infrastructure/git/types.js.map +0 -1
  494. package/dist/infrastructure/history/storage.d.ts +0 -21
  495. package/dist/infrastructure/history/storage.d.ts.map +0 -1
  496. package/dist/infrastructure/history/storage.js +0 -56
  497. package/dist/infrastructure/history/storage.js.map +0 -1
  498. package/dist/infrastructure/lifecycle-heartbeat.d.ts +0 -18
  499. package/dist/infrastructure/lifecycle-heartbeat.d.ts.map +0 -1
  500. package/dist/infrastructure/lifecycle-heartbeat.js +0 -21
  501. package/dist/infrastructure/lifecycle-heartbeat.js.map +0 -1
  502. package/dist/infrastructure/local-actions/execute-local-action.d.ts +0 -33
  503. package/dist/infrastructure/local-actions/execute-local-action.d.ts.map +0 -1
  504. package/dist/infrastructure/local-actions/execute-local-action.js +0 -109
  505. package/dist/infrastructure/local-actions/execute-local-action.js.map +0 -1
  506. package/dist/infrastructure/local-actions/index.d.ts +0 -9
  507. package/dist/infrastructure/local-actions/index.d.ts.map +0 -1
  508. package/dist/infrastructure/local-actions/index.js +0 -8
  509. package/dist/infrastructure/local-actions/index.js.map +0 -1
  510. package/dist/infrastructure/local-api/cors.d.ts +0 -19
  511. package/dist/infrastructure/local-api/cors.d.ts.map +0 -1
  512. package/dist/infrastructure/local-api/cors.js +0 -50
  513. package/dist/infrastructure/local-api/cors.js.map +0 -1
  514. package/dist/infrastructure/local-api/identity.test.d.ts +0 -8
  515. package/dist/infrastructure/local-api/identity.test.d.ts.map +0 -1
  516. package/dist/infrastructure/local-api/identity.test.js +0 -71
  517. package/dist/infrastructure/local-api/identity.test.js.map +0 -1
  518. package/dist/infrastructure/local-api/index.d.ts +0 -10
  519. package/dist/infrastructure/local-api/index.d.ts.map +0 -1
  520. package/dist/infrastructure/local-api/index.js +0 -8
  521. package/dist/infrastructure/local-api/index.js.map +0 -1
  522. package/dist/infrastructure/local-api/open-finder.test.d.ts +0 -13
  523. package/dist/infrastructure/local-api/open-finder.test.d.ts.map +0 -1
  524. package/dist/infrastructure/local-api/open-finder.test.js +0 -112
  525. package/dist/infrastructure/local-api/open-finder.test.js.map +0 -1
  526. package/dist/infrastructure/local-api/open-github-desktop.test.d.ts +0 -12
  527. package/dist/infrastructure/local-api/open-github-desktop.test.d.ts.map +0 -1
  528. package/dist/infrastructure/local-api/open-github-desktop.test.js +0 -129
  529. package/dist/infrastructure/local-api/open-github-desktop.test.js.map +0 -1
  530. package/dist/infrastructure/local-api/open-vscode.test.d.ts +0 -12
  531. package/dist/infrastructure/local-api/open-vscode.test.d.ts.map +0 -1
  532. package/dist/infrastructure/local-api/open-vscode.test.js +0 -130
  533. package/dist/infrastructure/local-api/open-vscode.test.js.map +0 -1
  534. package/dist/infrastructure/local-api/router.d.ts +0 -28
  535. package/dist/infrastructure/local-api/router.d.ts.map +0 -1
  536. package/dist/infrastructure/local-api/router.js +0 -60
  537. package/dist/infrastructure/local-api/router.js.map +0 -1
  538. package/dist/infrastructure/local-api/router.test.d.ts +0 -8
  539. package/dist/infrastructure/local-api/router.test.d.ts.map +0 -1
  540. package/dist/infrastructure/local-api/router.test.js +0 -142
  541. package/dist/infrastructure/local-api/router.test.js.map +0 -1
  542. package/dist/infrastructure/local-api/routes/identity.d.ts +0 -28
  543. package/dist/infrastructure/local-api/routes/identity.d.ts.map +0 -1
  544. package/dist/infrastructure/local-api/routes/identity.js +0 -42
  545. package/dist/infrastructure/local-api/routes/identity.js.map +0 -1
  546. package/dist/infrastructure/local-api/routes/open-finder.d.ts +0 -25
  547. package/dist/infrastructure/local-api/routes/open-finder.d.ts.map +0 -1
  548. package/dist/infrastructure/local-api/routes/open-finder.js +0 -58
  549. package/dist/infrastructure/local-api/routes/open-finder.js.map +0 -1
  550. package/dist/infrastructure/local-api/routes/open-github-desktop.d.ts +0 -21
  551. package/dist/infrastructure/local-api/routes/open-github-desktop.d.ts.map +0 -1
  552. package/dist/infrastructure/local-api/routes/open-github-desktop.js +0 -43
  553. package/dist/infrastructure/local-api/routes/open-github-desktop.js.map +0 -1
  554. package/dist/infrastructure/local-api/routes/open-vscode.d.ts +0 -23
  555. package/dist/infrastructure/local-api/routes/open-vscode.d.ts.map +0 -1
  556. package/dist/infrastructure/local-api/routes/open-vscode.js +0 -51
  557. package/dist/infrastructure/local-api/routes/open-vscode.js.map +0 -1
  558. package/dist/infrastructure/local-api/routes/shared-utils.d.ts +0 -51
  559. package/dist/infrastructure/local-api/routes/shared-utils.d.ts.map +0 -1
  560. package/dist/infrastructure/local-api/routes/shared-utils.js +0 -96
  561. package/dist/infrastructure/local-api/routes/shared-utils.js.map +0 -1
  562. package/dist/infrastructure/local-api/server.d.ts +0 -40
  563. package/dist/infrastructure/local-api/server.d.ts.map +0 -1
  564. package/dist/infrastructure/local-api/server.js +0 -153
  565. package/dist/infrastructure/local-api/server.js.map +0 -1
  566. package/dist/infrastructure/local-api/types.d.ts +0 -48
  567. package/dist/infrastructure/local-api/types.d.ts.map +0 -1
  568. package/dist/infrastructure/local-api/types.js +0 -8
  569. package/dist/infrastructure/local-api/types.js.map +0 -1
  570. package/dist/infrastructure/machine/crash-loop-tracker.d.ts +0 -69
  571. package/dist/infrastructure/machine/crash-loop-tracker.d.ts.map +0 -1
  572. package/dist/infrastructure/machine/crash-loop-tracker.js +0 -116
  573. package/dist/infrastructure/machine/crash-loop-tracker.js.map +0 -1
  574. package/dist/infrastructure/machine/crash-loop-tracker.test.d.ts +0 -8
  575. package/dist/infrastructure/machine/crash-loop-tracker.test.d.ts.map +0 -1
  576. package/dist/infrastructure/machine/crash-loop-tracker.test.js +0 -210
  577. package/dist/infrastructure/machine/crash-loop-tracker.test.js.map +0 -1
  578. package/dist/infrastructure/machine/daemon-state.d.ts +0 -96
  579. package/dist/infrastructure/machine/daemon-state.d.ts.map +0 -1
  580. package/dist/infrastructure/machine/daemon-state.js +0 -183
  581. package/dist/infrastructure/machine/daemon-state.js.map +0 -1
  582. package/dist/infrastructure/machine/daemon-state.test.d.ts +0 -10
  583. package/dist/infrastructure/machine/daemon-state.test.d.ts.map +0 -1
  584. package/dist/infrastructure/machine/daemon-state.test.js +0 -128
  585. package/dist/infrastructure/machine/daemon-state.test.js.map +0 -1
  586. package/dist/infrastructure/machine/detection.d.ts +0 -27
  587. package/dist/infrastructure/machine/detection.d.ts.map +0 -1
  588. package/dist/infrastructure/machine/detection.js +0 -47
  589. package/dist/infrastructure/machine/detection.js.map +0 -1
  590. package/dist/infrastructure/machine/index.d.ts +0 -10
  591. package/dist/infrastructure/machine/index.d.ts.map +0 -1
  592. package/dist/infrastructure/machine/index.js +0 -11
  593. package/dist/infrastructure/machine/index.js.map +0 -1
  594. package/dist/infrastructure/machine/stop-reason.d.ts +0 -26
  595. package/dist/infrastructure/machine/stop-reason.d.ts.map +0 -1
  596. package/dist/infrastructure/machine/stop-reason.js +0 -22
  597. package/dist/infrastructure/machine/stop-reason.js.map +0 -1
  598. package/dist/infrastructure/machine/stop-reason.test.d.ts +0 -2
  599. package/dist/infrastructure/machine/stop-reason.test.d.ts.map +0 -1
  600. package/dist/infrastructure/machine/stop-reason.test.js +0 -32
  601. package/dist/infrastructure/machine/stop-reason.test.js.map +0 -1
  602. package/dist/infrastructure/machine/storage.d.ts +0 -42
  603. package/dist/infrastructure/machine/storage.d.ts.map +0 -1
  604. package/dist/infrastructure/machine/storage.js +0 -156
  605. package/dist/infrastructure/machine/storage.js.map +0 -1
  606. package/dist/infrastructure/machine/types.d.ts +0 -58
  607. package/dist/infrastructure/machine/types.d.ts.map +0 -1
  608. package/dist/infrastructure/machine/types.js +0 -11
  609. package/dist/infrastructure/machine/types.js.map +0 -1
  610. package/dist/infrastructure/retry-queue.d.ts +0 -17
  611. package/dist/infrastructure/retry-queue.d.ts.map +0 -1
  612. package/dist/infrastructure/retry-queue.js +0 -33
  613. package/dist/infrastructure/retry-queue.js.map +0 -1
  614. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.d.ts +0 -142
  615. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.d.ts.map +0 -1
  616. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.js +0 -567
  617. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.js.map +0 -1
  618. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.test.d.ts +0 -2
  619. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.test.d.ts.map +0 -1
  620. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.test.js +0 -692
  621. package/dist/infrastructure/services/agent-process-manager/agent-process-manager.test.js.map +0 -1
  622. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.d.ts +0 -47
  623. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.d.ts.map +0 -1
  624. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.js +0 -68
  625. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.js.map +0 -1
  626. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.test.d.ts +0 -2
  627. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.test.d.ts.map +0 -1
  628. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.test.js +0 -149
  629. package/dist/infrastructure/services/harness-spawning/harness-spawning-service.test.js.map +0 -1
  630. package/dist/infrastructure/services/harness-spawning/index.d.ts +0 -5
  631. package/dist/infrastructure/services/harness-spawning/index.d.ts.map +0 -1
  632. package/dist/infrastructure/services/harness-spawning/index.js +0 -3
  633. package/dist/infrastructure/services/harness-spawning/index.js.map +0 -1
  634. package/dist/infrastructure/services/harness-spawning/rate-limiter.d.ts +0 -45
  635. package/dist/infrastructure/services/harness-spawning/rate-limiter.d.ts.map +0 -1
  636. package/dist/infrastructure/services/harness-spawning/rate-limiter.js +0 -84
  637. package/dist/infrastructure/services/harness-spawning/rate-limiter.js.map +0 -1
  638. package/dist/infrastructure/services/harness-spawning/rate-limiter.test.d.ts +0 -2
  639. package/dist/infrastructure/services/harness-spawning/rate-limiter.test.d.ts.map +0 -1
  640. package/dist/infrastructure/services/harness-spawning/rate-limiter.test.js +0 -179
  641. package/dist/infrastructure/services/harness-spawning/rate-limiter.test.js.map +0 -1
  642. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.d.ts +0 -77
  643. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.d.ts.map +0 -1
  644. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.js +0 -149
  645. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.js.map +0 -1
  646. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.test.d.ts +0 -2
  647. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.test.d.ts.map +0 -1
  648. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.test.js +0 -273
  649. package/dist/infrastructure/services/remote-agents/base-cli-agent-service.test.js.map +0 -1
  650. package/dist/infrastructure/services/remote-agents/claude/claude-code-agent-service.d.ts +0 -30
  651. package/dist/infrastructure/services/remote-agents/claude/claude-code-agent-service.d.ts.map +0 -1
  652. package/dist/infrastructure/services/remote-agents/claude/claude-code-agent-service.js +0 -186
  653. package/dist/infrastructure/services/remote-agents/claude/claude-code-agent-service.js.map +0 -1
  654. package/dist/infrastructure/services/remote-agents/claude/claude-stream-reader.d.ts +0 -42
  655. package/dist/infrastructure/services/remote-agents/claude/claude-stream-reader.d.ts.map +0 -1
  656. package/dist/infrastructure/services/remote-agents/claude/claude-stream-reader.js +0 -92
  657. package/dist/infrastructure/services/remote-agents/claude/claude-stream-reader.js.map +0 -1
  658. package/dist/infrastructure/services/remote-agents/claude/index.d.ts +0 -2
  659. package/dist/infrastructure/services/remote-agents/claude/index.d.ts.map +0 -1
  660. package/dist/infrastructure/services/remote-agents/claude/index.js +0 -2
  661. package/dist/infrastructure/services/remote-agents/claude/index.js.map +0 -1
  662. package/dist/infrastructure/services/remote-agents/copilot/copilot-agent-service.d.ts +0 -44
  663. package/dist/infrastructure/services/remote-agents/copilot/copilot-agent-service.d.ts.map +0 -1
  664. package/dist/infrastructure/services/remote-agents/copilot/copilot-agent-service.js +0 -160
  665. package/dist/infrastructure/services/remote-agents/copilot/copilot-agent-service.js.map +0 -1
  666. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.d.ts +0 -59
  667. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.d.ts.map +0 -1
  668. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.js +0 -100
  669. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.js.map +0 -1
  670. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.test.d.ts +0 -2
  671. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.test.d.ts.map +0 -1
  672. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.test.js +0 -105
  673. package/dist/infrastructure/services/remote-agents/copilot/copilot-stream-reader.test.js.map +0 -1
  674. package/dist/infrastructure/services/remote-agents/copilot/index.d.ts +0 -3
  675. package/dist/infrastructure/services/remote-agents/copilot/index.d.ts.map +0 -1
  676. package/dist/infrastructure/services/remote-agents/copilot/index.js +0 -3
  677. package/dist/infrastructure/services/remote-agents/copilot/index.js.map +0 -1
  678. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.d.ts +0 -29
  679. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.d.ts.map +0 -1
  680. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.js +0 -219
  681. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.js.map +0 -1
  682. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.test.d.ts +0 -2
  683. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.test.d.ts.map +0 -1
  684. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.test.js +0 -223
  685. package/dist/infrastructure/services/remote-agents/cursor/cursor-agent-service.test.js.map +0 -1
  686. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.d.ts +0 -41
  687. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.d.ts.map +0 -1
  688. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.js +0 -95
  689. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.js.map +0 -1
  690. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.test.d.ts +0 -2
  691. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.test.d.ts.map +0 -1
  692. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.test.js +0 -334
  693. package/dist/infrastructure/services/remote-agents/cursor/cursor-stream-reader.test.js.map +0 -1
  694. package/dist/infrastructure/services/remote-agents/cursor/index.d.ts +0 -3
  695. package/dist/infrastructure/services/remote-agents/cursor/index.d.ts.map +0 -1
  696. package/dist/infrastructure/services/remote-agents/cursor/index.js +0 -2
  697. package/dist/infrastructure/services/remote-agents/cursor/index.js.map +0 -1
  698. package/dist/infrastructure/services/remote-agents/index.d.ts +0 -8
  699. package/dist/infrastructure/services/remote-agents/index.d.ts.map +0 -1
  700. package/dist/infrastructure/services/remote-agents/index.js +0 -7
  701. package/dist/infrastructure/services/remote-agents/index.js.map +0 -1
  702. package/dist/infrastructure/services/remote-agents/init-registry.d.ts +0 -3
  703. package/dist/infrastructure/services/remote-agents/init-registry.d.ts.map +0 -1
  704. package/dist/infrastructure/services/remote-agents/init-registry.js +0 -19
  705. package/dist/infrastructure/services/remote-agents/init-registry.js.map +0 -1
  706. package/dist/infrastructure/services/remote-agents/opencode/index.d.ts +0 -4
  707. package/dist/infrastructure/services/remote-agents/opencode/index.d.ts.map +0 -1
  708. package/dist/infrastructure/services/remote-agents/opencode/index.js +0 -3
  709. package/dist/infrastructure/services/remote-agents/opencode/index.js.map +0 -1
  710. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.d.ts +0 -32
  711. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.d.ts.map +0 -1
  712. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.js +0 -225
  713. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.js.map +0 -1
  714. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.test.d.ts +0 -2
  715. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.test.d.ts.map +0 -1
  716. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.test.js +0 -226
  717. package/dist/infrastructure/services/remote-agents/opencode/opencode-agent-service.test.js.map +0 -1
  718. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.d.ts +0 -46
  719. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.d.ts.map +0 -1
  720. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.js +0 -104
  721. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.js.map +0 -1
  722. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.test.d.ts +0 -2
  723. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.test.d.ts.map +0 -1
  724. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.test.js +0 -268
  725. package/dist/infrastructure/services/remote-agents/opencode/opencode-json-reader.test.js.map +0 -1
  726. package/dist/infrastructure/services/remote-agents/pi/index.d.ts +0 -3
  727. package/dist/infrastructure/services/remote-agents/pi/index.d.ts.map +0 -1
  728. package/dist/infrastructure/services/remote-agents/pi/index.js +0 -2
  729. package/dist/infrastructure/services/remote-agents/pi/index.js.map +0 -1
  730. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.d.ts +0 -35
  731. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.d.ts.map +0 -1
  732. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.js +0 -253
  733. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.js.map +0 -1
  734. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.test.d.ts +0 -2
  735. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.test.d.ts.map +0 -1
  736. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.test.js +0 -348
  737. package/dist/infrastructure/services/remote-agents/pi/pi-agent-service.test.js.map +0 -1
  738. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.d.ts +0 -50
  739. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.d.ts.map +0 -1
  740. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.js +0 -120
  741. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.js.map +0 -1
  742. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.test.d.ts +0 -2
  743. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.test.d.ts.map +0 -1
  744. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.test.js +0 -288
  745. package/dist/infrastructure/services/remote-agents/pi/pi-rpc-reader.test.js.map +0 -1
  746. package/dist/infrastructure/services/remote-agents/registry.d.ts +0 -8
  747. package/dist/infrastructure/services/remote-agents/registry.d.ts.map +0 -1
  748. package/dist/infrastructure/services/remote-agents/registry.js +0 -14
  749. package/dist/infrastructure/services/remote-agents/registry.js.map +0 -1
  750. package/dist/infrastructure/services/remote-agents/remote-agent-service.d.ts +0 -79
  751. package/dist/infrastructure/services/remote-agents/remote-agent-service.d.ts.map +0 -1
  752. package/dist/infrastructure/services/remote-agents/remote-agent-service.js +0 -9
  753. package/dist/infrastructure/services/remote-agents/remote-agent-service.js.map +0 -1
  754. package/dist/infrastructure/services/workspace/command-discovery.d.ts +0 -65
  755. package/dist/infrastructure/services/workspace/command-discovery.d.ts.map +0 -1
  756. package/dist/infrastructure/services/workspace/command-discovery.js +0 -193
  757. package/dist/infrastructure/services/workspace/command-discovery.js.map +0 -1
  758. package/dist/infrastructure/services/workspace/command-discovery.test.d.ts +0 -7
  759. package/dist/infrastructure/services/workspace/command-discovery.test.d.ts.map +0 -1
  760. package/dist/infrastructure/services/workspace/command-discovery.test.js +0 -182
  761. package/dist/infrastructure/services/workspace/command-discovery.test.js.map +0 -1
  762. package/dist/infrastructure/services/workspace/file-tree-scanner.d.ts +0 -47
  763. package/dist/infrastructure/services/workspace/file-tree-scanner.d.ts.map +0 -1
  764. package/dist/infrastructure/services/workspace/file-tree-scanner.js +0 -159
  765. package/dist/infrastructure/services/workspace/file-tree-scanner.js.map +0 -1
  766. package/dist/infrastructure/services/workspace/file-tree-scanner.test.d.ts +0 -2
  767. package/dist/infrastructure/services/workspace/file-tree-scanner.test.d.ts.map +0 -1
  768. package/dist/infrastructure/services/workspace/file-tree-scanner.test.js +0 -132
  769. package/dist/infrastructure/services/workspace/file-tree-scanner.test.js.map +0 -1
  770. package/dist/infrastructure/services/workspace/workspace-resolver.d.ts +0 -34
  771. package/dist/infrastructure/services/workspace/workspace-resolver.d.ts.map +0 -1
  772. package/dist/infrastructure/services/workspace/workspace-resolver.js +0 -187
  773. package/dist/infrastructure/services/workspace/workspace-resolver.js.map +0 -1
  774. package/dist/infrastructure/services/workspace/workspace-resolver.test.d.ts +0 -5
  775. package/dist/infrastructure/services/workspace/workspace-resolver.test.d.ts.map +0 -1
  776. package/dist/infrastructure/services/workspace/workspace-resolver.test.js +0 -152
  777. package/dist/infrastructure/services/workspace/workspace-resolver.test.js.map +0 -1
  778. package/dist/tools/index.d.ts +0 -7
  779. package/dist/tools/index.d.ts.map +0 -1
  780. package/dist/tools/index.js +0 -5
  781. package/dist/tools/index.js.map +0 -1
  782. package/dist/tools/output.d.ts +0 -50
  783. package/dist/tools/output.d.ts.map +0 -1
  784. package/dist/tools/output.js +0 -78
  785. package/dist/tools/output.js.map +0 -1
  786. package/dist/tools/output.test.d.ts +0 -8
  787. package/dist/tools/output.test.d.ts.map +0 -1
  788. package/dist/tools/output.test.js +0 -120
  789. package/dist/tools/output.test.js.map +0 -1
  790. package/dist/tools/parse-pdf/deps.d.ts +0 -42
  791. package/dist/tools/parse-pdf/deps.d.ts.map +0 -1
  792. package/dist/tools/parse-pdf/deps.js +0 -8
  793. package/dist/tools/parse-pdf/deps.js.map +0 -1
  794. package/dist/tools/parse-pdf/index.d.ts +0 -18
  795. package/dist/tools/parse-pdf/index.d.ts.map +0 -1
  796. package/dist/tools/parse-pdf/index.js +0 -160
  797. package/dist/tools/parse-pdf/index.js.map +0 -1
  798. package/dist/tools/parse-pdf/index.test.d.ts +0 -8
  799. package/dist/tools/parse-pdf/index.test.d.ts.map +0 -1
  800. package/dist/tools/parse-pdf/index.test.js +0 -183
  801. package/dist/tools/parse-pdf/index.test.js.map +0 -1
  802. package/dist/tools/types.d.ts +0 -12
  803. package/dist/tools/types.d.ts.map +0 -1
  804. package/dist/tools/types.js +0 -5
  805. package/dist/tools/types.js.map +0 -1
  806. package/dist/utils/convex-error.d.ts +0 -19
  807. package/dist/utils/convex-error.d.ts.map +0 -1
  808. package/dist/utils/convex-error.js +0 -38
  809. package/dist/utils/convex-error.js.map +0 -1
  810. package/dist/utils/convex-error.test.d.ts +0 -7
  811. package/dist/utils/convex-error.test.d.ts.map +0 -1
  812. package/dist/utils/convex-error.test.js +0 -71
  813. package/dist/utils/convex-error.test.js.map +0 -1
  814. package/dist/utils/error-formatting.d.ts +0 -33
  815. package/dist/utils/error-formatting.d.ts.map +0 -1
  816. package/dist/utils/error-formatting.js +0 -96
  817. package/dist/utils/error-formatting.js.map +0 -1
  818. package/dist/utils/file-content.d.ts +0 -24
  819. package/dist/utils/file-content.d.ts.map +0 -1
  820. package/dist/utils/file-content.js +0 -35
  821. package/dist/utils/file-content.js.map +0 -1
  822. package/dist/utils/serialization/decode/index.d.ts +0 -71
  823. package/dist/utils/serialization/decode/index.d.ts.map +0 -1
  824. package/dist/utils/serialization/decode/index.js +0 -167
  825. package/dist/utils/serialization/decode/index.js.map +0 -1
  826. package/dist/utils/serialization/decode/index.test.d.ts +0 -5
  827. package/dist/utils/serialization/decode/index.test.d.ts.map +0 -1
  828. package/dist/utils/serialization/decode/index.test.js +0 -226
  829. package/dist/utils/serialization/decode/index.test.js.map +0 -1
  830. package/dist/utils/stdin.d.ts +0 -6
  831. package/dist/utils/stdin.d.ts.map +0 -1
  832. package/dist/utils/stdin.js +0 -19
  833. package/dist/utils/stdin.js.map +0 -1
  834. package/dist/utils/terminal-safety.d.ts +0 -7
  835. package/dist/utils/terminal-safety.d.ts.map +0 -1
  836. package/dist/utils/terminal-safety.js +0 -17
  837. package/dist/utils/terminal-safety.js.map +0 -1
  838. package/dist/version.d.ts +0 -14
  839. package/dist/version.d.ts.map +0 -1
  840. package/dist/version.js +0 -43
  841. package/dist/version.js.map +0 -1
@@ -1,116 +0,0 @@
1
- /**
2
- * CrashLoopTracker — detects rapid restart loops per (chatroomId, role).
3
- *
4
- * Uses a sliding window with progressive backoff: records timestamps of recent
5
- * restarts and checks whether the agent should be allowed to restart based on
6
- * the backoff schedule. If not, the caller should schedule a retry.
7
- */
8
- // ─── Constants ────────────────────────────────────────────────────────────────
9
- /**
10
- * Maximum number of restarts within WINDOW_MS before the loop is halted.
11
- * Expanded from 3 to 10 to accommodate progressive backoff.
12
- */
13
- export const CRASH_LOOP_MAX_RESTARTS = 10;
14
- /**
15
- * Sliding window duration in milliseconds.
16
- * Expanded to accommodate 10 restarts with backoff (~9.5 minutes total).
17
- */
18
- export const CRASH_LOOP_WINDOW_MS = 10 * 60 * 1000; // 10 minutes
19
- /**
20
- * Backoff intervals in milliseconds.
21
- * - Attempt 1: immediate (0ms)
22
- * - Attempt 2: 30 seconds
23
- * - Attempts 3-10: 1 minute each (sustained backoff)
24
- */
25
- export const BACKOFF_INTERVALS = [
26
- 0, // Attempt 1: immediate
27
- 30000, // Attempt 2: 30 seconds
28
- 60000, // Attempt 3-10: 1 minute each
29
- ];
30
- /**
31
- * Tracks restart timestamps per `${chatroomId}:${role}` key.
32
- * Exported for testing only — use the singleton instance in production.
33
- */
34
- export class CrashLoopTracker {
35
- /** Map of agent key → sorted list of restart timestamps (oldest first). */
36
- history = new Map();
37
- /**
38
- * Record a restart attempt and check whether the agent is in a crash loop.
39
- *
40
- * Call this BEFORE spawning. If the result is `allowed: false`, do not spawn
41
- * and schedule a retry after `waitMs` instead.
42
- *
43
- * @param chatroomId - Chatroom identifier
44
- * @param role - Agent role (case-insensitive)
45
- * @param now - Current timestamp in ms (defaults to Date.now())
46
- */
47
- record(chatroomId, role, now = Date.now()) {
48
- const key = `${chatroomId}:${role.toLowerCase()}`;
49
- const windowStart = now - CRASH_LOOP_WINDOW_MS;
50
- // Fetch existing history and prune entries outside the window
51
- const raw = this.history.get(key) ?? [];
52
- const recent = raw.filter((ts) => ts >= windowStart);
53
- // Count of restarts already recorded (successful ones)
54
- const restartCount = recent.length;
55
- // Check if we've exceeded max restarts
56
- if (restartCount >= CRASH_LOOP_MAX_RESTARTS) {
57
- // Note: we don't record the blocked attempt in history
58
- return {
59
- allowed: false,
60
- restartCount: restartCount + 1, // Count the blocked attempt
61
- windowMs: CRASH_LOOP_WINDOW_MS,
62
- };
63
- }
64
- // Calculate the expected backoff interval based on the next attempt number
65
- // Next attempt = restartCount + 1
66
- const nextAttemptNumber = restartCount + 1;
67
- const backoffIndex = Math.min(nextAttemptNumber - 1, // 1st attempt -> index 0, 2nd -> index 1, etc.
68
- BACKOFF_INTERVALS.length - 1);
69
- const expectedInterval = BACKOFF_INTERVALS[backoffIndex];
70
- // Check if enough time has passed since the last successful restart
71
- const lastRestart = recent[recent.length - 1]; // Most recent successful restart
72
- if (lastRestart !== undefined && expectedInterval > 0) {
73
- const timeSinceLastRestart = now - lastRestart;
74
- if (timeSinceLastRestart < expectedInterval) {
75
- // Not enough time has passed — calculate wait time
76
- // Note: we don't record the blocked attempt in history
77
- const nextAllowedAt = lastRestart + expectedInterval;
78
- const waitMs = nextAllowedAt - now;
79
- return {
80
- allowed: false,
81
- restartCount: restartCount + 1, // Count the blocked attempt
82
- windowMs: CRASH_LOOP_WINDOW_MS,
83
- nextAllowedAt,
84
- waitMs,
85
- };
86
- }
87
- }
88
- // Restart is allowed — record the successful restart
89
- recent.push(now);
90
- this.history.set(key, recent);
91
- return {
92
- allowed: true,
93
- restartCount: restartCount + 1,
94
- windowMs: CRASH_LOOP_WINDOW_MS,
95
- };
96
- }
97
- /**
98
- * Clear the restart history for an agent.
99
- * Call when the agent is intentionally stopped (user.stop) to reset the window.
100
- */
101
- clear(chatroomId, role) {
102
- const key = `${chatroomId}:${role.toLowerCase()}`;
103
- this.history.delete(key);
104
- }
105
- /**
106
- * Returns the number of successful restarts recorded in the current window for this agent.
107
- * Does NOT record a new restart — use for inspection only.
108
- */
109
- getCount(chatroomId, role, now = Date.now()) {
110
- const key = `${chatroomId}:${role.toLowerCase()}`;
111
- const windowStart = now - CRASH_LOOP_WINDOW_MS;
112
- const raw = this.history.get(key) ?? [];
113
- return raw.filter((ts) => ts >= windowStart).length;
114
- }
115
- }
116
- //# sourceMappingURL=crash-loop-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crash-loop-tracker.js","sourceRoot":"","sources":["../../../src/infrastructure/machine/crash-loop-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,CAAC,EAAO,uBAAuB;IAC/B,KAAK,EAAG,wBAAwB;IAChC,KAAK,EAAG,8BAA8B;CACvC,CAAC;AAoBF;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAC3B,2EAA2E;IAC1D,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEvD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAkB,EAAE,IAAY,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,oBAAoB,CAAC;QAE/C,8DAA8D;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC;QAErD,uDAAuD;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAEnC,uCAAuC;QACvC,IAAI,YAAY,IAAI,uBAAuB,EAAE,CAAC;YAC5C,uDAAuD;YACvD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,YAAY,GAAG,CAAC,EAAE,4BAA4B;gBAC5D,QAAQ,EAAE,oBAAoB;aAC/B,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,iBAAiB,GAAG,CAAC,EAAE,+CAA+C;QACtE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;QACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEzD,oEAAoE;QACpE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC;QAChF,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,oBAAoB,GAAG,GAAG,GAAG,WAAW,CAAC;YAE/C,IAAI,oBAAoB,GAAG,gBAAgB,EAAE,CAAC;gBAC5C,mDAAmD;gBACnD,uDAAuD;gBACvD,MAAM,aAAa,GAAG,WAAW,GAAG,gBAAgB,CAAC;gBACrD,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,CAAC;gBAEnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,YAAY,GAAG,CAAC,EAAE,4BAA4B;oBAC5D,QAAQ,EAAE,oBAAoB;oBAC9B,aAAa;oBACb,MAAM;iBACP,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE9B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,YAAY,GAAG,CAAC;YAC9B,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAkB,EAAE,IAAY;QACpC,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,UAAkB,EAAE,IAAY,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,oBAAoB,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC;IACtD,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- /**
2
- * CrashLoopTracker — Unit Tests
3
- *
4
- * Tests the sliding window restart detection with progressive backoff
5
- * used by the daemon to prevent crash loops from restarting agents indefinitely.
6
- */
7
- export {};
8
- //# sourceMappingURL=crash-loop-tracker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crash-loop-tracker.test.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/machine/crash-loop-tracker.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,210 +0,0 @@
1
- /**
2
- * CrashLoopTracker — Unit Tests
3
- *
4
- * Tests the sliding window restart detection with progressive backoff
5
- * used by the daemon to prevent crash loops from restarting agents indefinitely.
6
- */
7
- import { describe, expect, test } from 'vitest';
8
- import { CrashLoopTracker, CRASH_LOOP_MAX_RESTARTS, CRASH_LOOP_WINDOW_MS, BACKOFF_INTERVALS, } from './crash-loop-tracker.js';
9
- describe('CrashLoopTracker', () => {
10
- test('first restart is always allowed', () => {
11
- const tracker = new CrashLoopTracker();
12
- const now = 1000000;
13
- const result = tracker.record('room-1', 'builder', now);
14
- expect(result.allowed).toBe(true);
15
- expect(result.restartCount).toBe(1);
16
- expect(result.nextAllowedAt).toBeUndefined();
17
- expect(result.waitMs).toBeUndefined();
18
- });
19
- test('allows immediate second restart when gap >= 30 seconds', () => {
20
- const tracker = new CrashLoopTracker();
21
- const now = 1000000;
22
- tracker.record('room-1', 'builder', now);
23
- const result = tracker.record('room-1', 'builder', now + 30000);
24
- expect(result.allowed).toBe(true);
25
- expect(result.restartCount).toBe(2);
26
- });
27
- test('blocks second restart when gap < 30 seconds', () => {
28
- const tracker = new CrashLoopTracker();
29
- const now = 1000000;
30
- tracker.record('room-1', 'builder', now);
31
- const result = tracker.record('room-1', 'builder', now + 10000);
32
- expect(result.allowed).toBe(false);
33
- expect(result.restartCount).toBe(2);
34
- expect(result.waitMs).toBe(20000); // 30s - 10s = 20s
35
- expect(result.nextAllowedAt).toBe(now + 30000);
36
- });
37
- test('returns allowed: false when exceeding CRASH_LOOP_MAX_RESTARTS', () => {
38
- const tracker = new CrashLoopTracker();
39
- const now = 1000000;
40
- // Allow first 10 restarts with proper backoff timing
41
- tracker.record('room-1', 'builder', now); // 1
42
- tracker.record('room-1', 'builder', now + 30000); // 2
43
- tracker.record('room-1', 'builder', now + 90000); // 3 (60s gap)
44
- tracker.record('room-1', 'builder', now + 150000); // 4 (60s gap)
45
- tracker.record('room-1', 'builder', now + 210000); // 5
46
- tracker.record('room-1', 'builder', now + 270000); // 6
47
- tracker.record('room-1', 'builder', now + 330000); // 7
48
- tracker.record('room-1', 'builder', now + 390000); // 8
49
- tracker.record('room-1', 'builder', now + 450000); // 9
50
- tracker.record('room-1', 'builder', now + 510000); // 10
51
- // This should be blocked (11th restart)
52
- const result = tracker.record('room-1', 'builder', now + 570000);
53
- expect(result.allowed).toBe(false);
54
- expect(result.restartCount).toBe(11);
55
- });
56
- test('sliding window: old timestamps outside the window are pruned', () => {
57
- const tracker = new CrashLoopTracker();
58
- const now = 1000000;
59
- // Record max restarts at the beginning
60
- for (let i = 0; i < CRASH_LOOP_MAX_RESTARTS; i++) {
61
- tracker.record('room-1', 'builder', now);
62
- }
63
- // After the window expires completely, all old restarts should be pruned
64
- const afterWindow = now + CRASH_LOOP_WINDOW_MS + 1000;
65
- const result = tracker.record('room-1', 'builder', afterWindow);
66
- expect(result.allowed).toBe(true);
67
- expect(result.restartCount).toBe(1); // Only the new restart
68
- });
69
- test('clear() resets the history — next record() starts fresh', () => {
70
- const tracker = new CrashLoopTracker();
71
- const now = 1000000;
72
- // Record some restarts
73
- tracker.record('room-1', 'builder', now);
74
- tracker.record('room-1', 'builder', now + 30000);
75
- // Clear and verify fresh start
76
- tracker.clear('room-1', 'builder');
77
- const result = tracker.record('room-1', 'builder', now + 10000);
78
- expect(result.allowed).toBe(true);
79
- expect(result.restartCount).toBe(1);
80
- });
81
- test('getCount() returns correct count without recording a new restart', () => {
82
- const tracker = new CrashLoopTracker();
83
- const now = 1000000;
84
- tracker.record('room-1', 'builder', now);
85
- // Second restart after 30s gap (allowed)
86
- tracker.record('room-1', 'builder', now + 30000);
87
- expect(tracker.getCount('room-1', 'builder', now + 60000)).toBe(2);
88
- // getCount should not change the count
89
- expect(tracker.getCount('room-1', 'builder', now + 60000)).toBe(2);
90
- });
91
- test('tracks independently per (chatroomId, role) key', () => {
92
- const tracker = new CrashLoopTracker();
93
- const now = 1000000;
94
- tracker.record('room-1', 'builder', now);
95
- // Second restart after 30s gap (allowed)
96
- tracker.record('room-1', 'builder', now + 30000);
97
- tracker.record('room-2', 'builder', now);
98
- expect(tracker.getCount('room-1', 'builder', now + 60000)).toBe(2);
99
- expect(tracker.getCount('room-2', 'builder', now + 60000)).toBe(1);
100
- expect(tracker.getCount('room-1', 'planner', now + 60000)).toBe(0);
101
- });
102
- test('role is case-insensitive', () => {
103
- const tracker = new CrashLoopTracker();
104
- const now = 1000000;
105
- tracker.record('room-1', 'Builder', now);
106
- tracker.record('room-1', 'BUILDER', now + 30000);
107
- tracker.record('room-1', 'builder', now + 90000);
108
- expect(tracker.getCount('room-1', 'builder', now + 120000)).toBe(3);
109
- expect(tracker.getCount('room-1', 'BUILDER', now + 120000)).toBe(3);
110
- });
111
- test('windowMs is always returned in the result', () => {
112
- const tracker = new CrashLoopTracker();
113
- const result = tracker.record('room-1', 'builder');
114
- expect(result.windowMs).toBe(CRASH_LOOP_WINDOW_MS);
115
- });
116
- });
117
- describe('Progressive Backoff', () => {
118
- test('BACKOFF_INTERVALS are defined correctly', () => {
119
- expect(BACKOFF_INTERVALS[0]).toBe(0); // Immediate
120
- expect(BACKOFF_INTERVALS[1]).toBe(30000); // 30 seconds
121
- expect(BACKOFF_INTERVALS[2]).toBe(60000); // 60 seconds
122
- });
123
- test('third restart requires 60 second gap', () => {
124
- const tracker = new CrashLoopTracker();
125
- const now = 1000000;
126
- // First two restarts with proper gaps
127
- tracker.record('room-1', 'builder', now);
128
- tracker.record('room-1', 'builder', now + 30000);
129
- // Third restart too soon (< 60s) - should be blocked
130
- const tooSoon = tracker.record('room-1', 'builder', now + 60000);
131
- expect(tooSoon.allowed).toBe(false);
132
- expect(tooSoon.restartCount).toBe(3);
133
- expect(tooSoon.waitMs).toBe(30000); // 60s - 30s = 30s
134
- expect(tooSoon.nextAllowedAt).toBe(now + 90000);
135
- // After 60s gap from second restart - should be allowed
136
- const after60s = tracker.record('room-1', 'builder', now + 90000);
137
- expect(after60s.allowed).toBe(true);
138
- expect(after60s.restartCount).toBe(3);
139
- });
140
- test('subsequent restarts also require 60 second gap', () => {
141
- const tracker = new CrashLoopTracker();
142
- const now = 1000000;
143
- // First two restarts
144
- tracker.record('room-1', 'builder', now);
145
- tracker.record('room-1', 'builder', now + 30000);
146
- // Third restart
147
- tracker.record('room-1', 'builder', now + 90000);
148
- // Fourth restart too soon (< 60s from third) - should be blocked
149
- const fourthTooSoon = tracker.record('room-1', 'builder', now + 120000);
150
- expect(fourthTooSoon.allowed).toBe(false);
151
- expect(fourthTooSoon.waitMs).toBe(30000); // 60s - 30s = 30s
152
- // After 60s gap - should be allowed
153
- const fourthAllowed = tracker.record('room-1', 'builder', now + 150000);
154
- expect(fourthAllowed.allowed).toBe(true);
155
- expect(fourthAllowed.restartCount).toBe(4);
156
- });
157
- test('rapid restarts accumulate in history and affect next backoff calculation', () => {
158
- const tracker = new CrashLoopTracker();
159
- const now = 1000000;
160
- // First restart
161
- tracker.record('room-1', 'builder', now);
162
- // Multiple rapid restart attempts (each blocked)
163
- for (let i = 0; i < 5; i++) {
164
- tracker.record('room-1', 'builder', now + 5000);
165
- }
166
- // After 30s from first restart, second should be allowed
167
- const second = tracker.record('room-1', 'builder', now + 30000);
168
- expect(second.allowed).toBe(true);
169
- expect(second.restartCount).toBe(2); // First + second
170
- });
171
- test('restart attempts beyond BACKOFF_INTERVALS length use last interval', () => {
172
- const tracker = new CrashLoopTracker();
173
- const now = 1000000;
174
- // First two restarts with proper gaps
175
- tracker.record('room-1', 'builder', now);
176
- tracker.record('room-1', 'builder', now + 30000);
177
- // Multiple third restart attempts (all use 60s backoff)
178
- for (let i = 0; i < 3; i++) {
179
- const attempt = tracker.record('room-1', 'builder', now + 60000 + i * 10000);
180
- expect(attempt.waitMs).toBe(60000 - 30000 - i * 10000);
181
- }
182
- });
183
- test('handles clock drift gracefully (now < lastRestart)', () => {
184
- const tracker = new CrashLoopTracker();
185
- const now = 1000000;
186
- tracker.record('room-1', 'builder', now);
187
- // Clock moved back - still within window
188
- const result = tracker.record('room-1', 'builder', now - 1000);
189
- // Should block because gap appears < 0 (treated as very recent)
190
- expect(result.allowed).toBe(false);
191
- expect(result.waitMs).toBeGreaterThan(0);
192
- });
193
- test('allows restart after window expires and resets backoff', () => {
194
- const tracker = new CrashLoopTracker();
195
- const now = 1000000;
196
- // Fill up some restarts
197
- tracker.record('room-1', 'builder', now);
198
- tracker.record('room-1', 'builder', now + 30000);
199
- // Jump past window - old restarts are pruned (windowStart = now - windowMs)
200
- // So if now = 1000000 and windowMs = 600000, old entries < 400000 are pruned
201
- // But our entries are at 1000000 and 1030000, so they're kept
202
- // We need to jump way past the window
203
- const afterWindow = tracker.record('room-1', 'builder', now + CRASH_LOOP_WINDOW_MS * 2);
204
- // Should be allowed (fresh start)
205
- expect(afterWindow.allowed).toBe(true);
206
- // Count = 1 because only the new restart is recorded (old ones pruned)
207
- expect(afterWindow.restartCount).toBe(1);
208
- });
209
- });
210
- //# sourceMappingURL=crash-loop-tracker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crash-loop-tracker.test.js","sourceRoot":"","sources":["../../../src/infrastructure/machine/crash-loop-tracker.test.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- /**
2
- * Daemon State Storage
3
- *
4
- * Manages per-machine daemon runtime state in a dedicated file, separate from
5
- * the static machine configuration in machine.json.
6
- *
7
- * State files are stored at:
8
- * ~/.chatroom/machines/state/<machine-id>.json
9
- *
10
- * This separation prevents write contention when a single machine works with
11
- * multiple backends. The machine.json file holds static config (identity, tools,
12
- * agent context), while this module handles volatile runtime state (spawned PIDs).
13
- *
14
- * File layout:
15
- * {
16
- * "version": "1",
17
- * "machineId": "uuid",
18
- * "updatedAt": "ISO string",
19
- * "agents": {
20
- * "<chatroomId>/<role>": {
21
- * "pid": 12345,
22
- * "harness": "opencode",
23
- * "startedAt": "ISO string"
24
- * }
25
- * }
26
- * }
27
- */
28
- import type { AgentHarness } from './types.js';
29
- /** Runtime info for a single spawned agent */
30
- export interface DaemonAgentEntry {
31
- /** OS process ID */
32
- pid: number;
33
- /** Which agent harness spawned it */
34
- harness: AgentHarness;
35
- /** When the agent was started (ISO string) */
36
- startedAt: string;
37
- }
38
- /** On-disk shape of a per-machine state file */
39
- export interface DaemonStateFile {
40
- /** Schema version for forward-compat migrations */
41
- version: string;
42
- /** Machine UUID (matches machineId in machine.json) */
43
- machineId: string;
44
- /** Last time this file was written (ISO string) */
45
- updatedAt: string;
46
- /** Spawned agents keyed by "<chatroomId>/<role>" */
47
- agents: Record<string, DaemonAgentEntry>;
48
- /**
49
- * Last processed event stream event ID (string form of Convex `_id`).
50
- * Persisted so the daemon resumes from the correct cursor after restart.
51
- */
52
- lastSeenEventId?: string;
53
- }
54
- /**
55
- * Load the daemon state file for a machine.
56
- * Returns null if the file doesn't exist or is unreadable.
57
- */
58
- export declare function loadDaemonState(machineId: string): DaemonStateFile | null;
59
- /**
60
- * Record a spawned agent PID in the daemon state file.
61
- *
62
- * Called after a successful agent start so the daemon can recover it on restart.
63
- */
64
- export declare function persistAgentPid(machineId: string, chatroomId: string, role: string, pid: number, harness: AgentHarness): void;
65
- /**
66
- * Remove a spawned agent entry from the daemon state file.
67
- *
68
- * Called after a successful agent stop or when a stale PID is detected.
69
- */
70
- export declare function clearAgentPid(machineId: string, chatroomId: string, role: string): void;
71
- /**
72
- * List all agent entries from the daemon state file.
73
- *
74
- * Returns an array of { chatroomId, role, entry } for iteration during
75
- * recovery. Returns an empty array when no state file exists.
76
- */
77
- export declare function listAgentEntries(machineId: string): {
78
- chatroomId: string;
79
- role: string;
80
- entry: DaemonAgentEntry;
81
- }[];
82
- /**
83
- * Persist the event stream cursor (last processed event ID) to daemon state.
84
- *
85
- * Best-effort: if the write fails, logs a warning but does not throw.
86
- * Call this after each processed batch of stream events to survive daemon restarts.
87
- */
88
- export declare function persistEventCursor(machineId: string, lastSeenEventId: string): void;
89
- /**
90
- * Load the event stream cursor from persisted daemon state.
91
- *
92
- * Returns the last seen event ID string if present, or null if none is stored.
93
- * Called at daemon startup to resume the stream from the correct position.
94
- */
95
- export declare function loadEventCursor(machineId: string): string | null;
96
- //# sourceMappingURL=daemon-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon-state.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/machine/daemon-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAc/C,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAczE;AAoCD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,GACpB,IAAI,CAWN;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,EAAE,CAgBjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAUnF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE"}
@@ -1,183 +0,0 @@
1
- /**
2
- * Daemon State Storage
3
- *
4
- * Manages per-machine daemon runtime state in a dedicated file, separate from
5
- * the static machine configuration in machine.json.
6
- *
7
- * State files are stored at:
8
- * ~/.chatroom/machines/state/<machine-id>.json
9
- *
10
- * This separation prevents write contention when a single machine works with
11
- * multiple backends. The machine.json file holds static config (identity, tools,
12
- * agent context), while this module handles volatile runtime state (spawned PIDs).
13
- *
14
- * File layout:
15
- * {
16
- * "version": "1",
17
- * "machineId": "uuid",
18
- * "updatedAt": "ISO string",
19
- * "agents": {
20
- * "<chatroomId>/<role>": {
21
- * "pid": 12345,
22
- * "harness": "opencode",
23
- * "startedAt": "ISO string"
24
- * }
25
- * }
26
- * }
27
- */
28
- import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync } from 'node:fs';
29
- import { homedir } from 'node:os';
30
- import { join } from 'node:path';
31
- // ---------------------------------------------------------------------------
32
- // Constants
33
- // ---------------------------------------------------------------------------
34
- const CHATROOM_DIR = join(homedir(), '.chatroom');
35
- const STATE_DIR = join(CHATROOM_DIR, 'machines', 'state');
36
- const STATE_VERSION = '1';
37
- // ---------------------------------------------------------------------------
38
- // Helpers
39
- // ---------------------------------------------------------------------------
40
- /** Build the composite key used in the agents map */
41
- function agentKey(chatroomId, role) {
42
- return `${chatroomId}/${role}`;
43
- }
44
- /** Ensure the state directory tree exists */
45
- function ensureStateDir() {
46
- if (!existsSync(STATE_DIR)) {
47
- // SECURITY: 0o700 restricts directory access to owner only.
48
- mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
49
- }
50
- }
51
- /** Path to the state file for a given machine */
52
- function stateFilePath(machineId) {
53
- return join(STATE_DIR, `${machineId}.json`);
54
- }
55
- // ---------------------------------------------------------------------------
56
- // Read / Write
57
- // ---------------------------------------------------------------------------
58
- /**
59
- * Load the daemon state file for a machine.
60
- * Returns null if the file doesn't exist or is unreadable.
61
- */
62
- export function loadDaemonState(machineId) {
63
- const filePath = stateFilePath(machineId);
64
- if (!existsSync(filePath)) {
65
- return null;
66
- }
67
- try {
68
- const content = readFileSync(filePath, 'utf-8');
69
- return JSON.parse(content);
70
- }
71
- catch {
72
- // Corrupted file — caller should treat as empty
73
- return null;
74
- }
75
- }
76
- /**
77
- * Save the daemon state file using atomic write (write-to-tmp then rename).
78
- */
79
- function saveDaemonState(state) {
80
- ensureStateDir();
81
- const filePath = stateFilePath(state.machineId);
82
- const tempPath = `${filePath}.tmp`;
83
- const content = JSON.stringify(state, null, 2);
84
- // SECURITY: 0o600 restricts file access to owner only.
85
- writeFileSync(tempPath, content, { encoding: 'utf-8', mode: 0o600 });
86
- // Atomic rename — safe against crashes mid-write.
87
- renameSync(tempPath, filePath);
88
- }
89
- /**
90
- * Load or create a fresh state file for the given machine.
91
- */
92
- function loadOrCreate(machineId) {
93
- return (loadDaemonState(machineId) ?? {
94
- version: STATE_VERSION,
95
- machineId,
96
- updatedAt: new Date().toISOString(),
97
- agents: {},
98
- });
99
- }
100
- // ---------------------------------------------------------------------------
101
- // Public API
102
- // ---------------------------------------------------------------------------
103
- /**
104
- * Record a spawned agent PID in the daemon state file.
105
- *
106
- * Called after a successful agent start so the daemon can recover it on restart.
107
- */
108
- export function persistAgentPid(machineId, chatroomId, role, pid, harness) {
109
- const state = loadOrCreate(machineId);
110
- state.agents[agentKey(chatroomId, role)] = {
111
- pid,
112
- harness,
113
- startedAt: new Date().toISOString(),
114
- };
115
- state.updatedAt = new Date().toISOString();
116
- saveDaemonState(state);
117
- }
118
- /**
119
- * Remove a spawned agent entry from the daemon state file.
120
- *
121
- * Called after a successful agent stop or when a stale PID is detected.
122
- */
123
- export function clearAgentPid(machineId, chatroomId, role) {
124
- const state = loadDaemonState(machineId);
125
- if (!state)
126
- return;
127
- const key = agentKey(chatroomId, role);
128
- if (!(key in state.agents))
129
- return;
130
- delete state.agents[key];
131
- state.updatedAt = new Date().toISOString();
132
- saveDaemonState(state);
133
- }
134
- /**
135
- * List all agent entries from the daemon state file.
136
- *
137
- * Returns an array of { chatroomId, role, entry } for iteration during
138
- * recovery. Returns an empty array when no state file exists.
139
- */
140
- export function listAgentEntries(machineId) {
141
- const state = loadDaemonState(machineId);
142
- if (!state)
143
- return [];
144
- const results = [];
145
- for (const [key, entry] of Object.entries(state.agents)) {
146
- const separatorIndex = key.lastIndexOf('/');
147
- if (separatorIndex === -1)
148
- continue; // Malformed key — skip
149
- const chatroomId = key.substring(0, separatorIndex);
150
- const role = key.substring(separatorIndex + 1);
151
- results.push({ chatroomId, role, entry });
152
- }
153
- return results;
154
- }
155
- /**
156
- * Persist the event stream cursor (last processed event ID) to daemon state.
157
- *
158
- * Best-effort: if the write fails, logs a warning but does not throw.
159
- * Call this after each processed batch of stream events to survive daemon restarts.
160
- */
161
- export function persistEventCursor(machineId, lastSeenEventId) {
162
- try {
163
- const state = loadOrCreate(machineId);
164
- state.lastSeenEventId = lastSeenEventId;
165
- state.updatedAt = new Date().toISOString();
166
- saveDaemonState(state);
167
- }
168
- catch (err) {
169
- // Best-effort: log and continue — never block command processing
170
- console.warn(`⚠️ Failed to persist event cursor: ${err.message}`);
171
- }
172
- }
173
- /**
174
- * Load the event stream cursor from persisted daemon state.
175
- *
176
- * Returns the last seen event ID string if present, or null if none is stored.
177
- * Called at daemon startup to resume the stream from the correct position.
178
- */
179
- export function loadEventCursor(machineId) {
180
- const state = loadDaemonState(machineId);
181
- return state?.lastSeenEventId ?? null;
182
- }
183
- //# sourceMappingURL=daemon-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon-state.js","sourceRoot":"","sources":["../../../src/infrastructure/machine/daemon-state.ts"],"names":[],"mappings":"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"}