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,692 +0,0 @@
1
- import { describe, expect, test, vi, beforeEach, afterEach } from 'vitest';
2
- import { AgentProcessManager, } from './agent-process-manager.js';
3
- import { CRASH_LOOP_MAX_RESTARTS, CrashLoopTracker, } from '../../machine/crash-loop-tracker.js';
4
- // ─── Helpers ────────────────────────────────────────────────────────────────
5
- const CHATROOM_ID = 'test-chatroom';
6
- const ROLE = 'builder';
7
- const PID = 42;
8
- function createMockService() {
9
- return {
10
- id: 'opencode',
11
- displayName: 'OpenCode',
12
- command: 'opencode',
13
- isInstalled: vi.fn().mockReturnValue(true),
14
- getVersion: vi.fn().mockReturnValue({ version: '1.0.0', major: 1 }),
15
- listModels: vi.fn().mockResolvedValue([]),
16
- spawn: vi.fn().mockResolvedValue({
17
- pid: PID,
18
- onExit: vi.fn(),
19
- onOutput: vi.fn(),
20
- onAgentEnd: vi.fn(),
21
- }),
22
- stop: vi.fn().mockResolvedValue(undefined),
23
- isAlive: vi.fn().mockReturnValue(false),
24
- getTrackedProcesses: vi.fn().mockReturnValue([]),
25
- untrack: vi.fn(),
26
- };
27
- }
28
- function createDeps(overrides) {
29
- const mockService = createMockService();
30
- return {
31
- agentServices: new Map([['opencode', mockService]]),
32
- backend: {
33
- query: vi.fn().mockResolvedValue({
34
- prompt: true,
35
- rolePrompt: 'You are a builder',
36
- initialMessage: 'Start working',
37
- }),
38
- mutation: vi.fn().mockResolvedValue(undefined),
39
- },
40
- sessionId: 'test-session',
41
- machineId: 'test-machine',
42
- processes: { kill: vi.fn() },
43
- clock: {
44
- delay: vi.fn().mockResolvedValue(undefined),
45
- now: vi.fn().mockReturnValue(Date.now()),
46
- },
47
- fs: {
48
- stat: vi.fn().mockResolvedValue({ isDirectory: () => true }),
49
- },
50
- persistence: {
51
- persistAgentPid: vi.fn(),
52
- clearAgentPid: vi.fn(),
53
- listAgentEntries: vi.fn().mockReturnValue([]),
54
- },
55
- spawning: {
56
- shouldAllowSpawn: vi.fn().mockReturnValue({ allowed: true }),
57
- recordSpawn: vi.fn(),
58
- recordExit: vi.fn(),
59
- },
60
- crashLoop: new CrashLoopTracker(),
61
- convexUrl: 'http://test:3210',
62
- ...overrides,
63
- };
64
- }
65
- function createOpts(overrides) {
66
- return {
67
- chatroomId: CHATROOM_ID,
68
- role: ROLE,
69
- agentHarness: 'opencode',
70
- model: 'gpt-4',
71
- workingDir: '/tmp/test',
72
- reason: 'user.start',
73
- ...overrides,
74
- };
75
- }
76
- // ─── Tests ──────────────────────────────────────────────────────────────────
77
- describe('AgentProcessManager', () => {
78
- let deps;
79
- let manager;
80
- beforeEach(() => {
81
- vi.clearAllMocks();
82
- deps = createDeps();
83
- manager = new AgentProcessManager(deps);
84
- });
85
- // ── ensureRunning ─────────────────────────────────────────────────────
86
- describe('ensureRunning', () => {
87
- test('idle → spawning → running: spawns process and transitions correctly', async () => {
88
- const result = await manager.ensureRunning(createOpts());
89
- expect(result).toEqual({ success: true, pid: PID });
90
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
91
- expect(slot).toBeDefined();
92
- expect(slot.state).toBe('running');
93
- expect(slot.pid).toBe(PID);
94
- expect(slot.harness).toBe('opencode');
95
- expect(slot.model).toBe('gpt-4');
96
- expect(slot.workingDir).toBe('/tmp/test');
97
- // Verify backend interactions
98
- const service = deps.agentServices.get('opencode');
99
- expect(service.spawn).toHaveBeenCalledOnce();
100
- expect(deps.spawning.recordSpawn).toHaveBeenCalledWith(CHATROOM_ID);
101
- expect(deps.persistence.persistAgentPid).toHaveBeenCalledWith('test-machine', CHATROOM_ID, ROLE, PID, 'opencode');
102
- });
103
- test('already running: returns immediately with existing PID', async () => {
104
- // First call: spawn
105
- await manager.ensureRunning(createOpts());
106
- const service = deps.agentServices.get('opencode');
107
- service.spawn.mockClear();
108
- // Second call: should return immediately
109
- const result = await manager.ensureRunning(createOpts());
110
- expect(result).toEqual({ success: true, pid: PID });
111
- expect(service.spawn).not.toHaveBeenCalled();
112
- });
113
- test('concurrent calls: second call awaits the first, does not spawn twice', async () => {
114
- let resolveSpawn;
115
- const spawnPromise = new Promise((resolve) => {
116
- resolveSpawn = resolve;
117
- });
118
- const service = deps.agentServices.get('opencode');
119
- service.spawn.mockImplementation(async () => {
120
- await spawnPromise;
121
- return {
122
- pid: PID,
123
- onExit: vi.fn(),
124
- onOutput: vi.fn(),
125
- onAgentEnd: vi.fn(),
126
- };
127
- });
128
- // Fire both concurrently
129
- const p1 = manager.ensureRunning(createOpts());
130
- const p2 = manager.ensureRunning(createOpts());
131
- // Resolve the spawn
132
- resolveSpawn(undefined);
133
- const [r1, r2] = await Promise.all([p1, p2]);
134
- expect(r1).toEqual({ success: true, pid: PID });
135
- expect(r2).toEqual({ success: true, pid: PID });
136
- expect(service.spawn).toHaveBeenCalledTimes(1);
137
- });
138
- test('rate limited: returns failure, slot stays idle', async () => {
139
- deps.spawning.shouldAllowSpawn.mockReturnValue({
140
- allowed: false,
141
- });
142
- const result = await manager.ensureRunning(createOpts());
143
- expect(result).toEqual({ success: false, error: 'rate_limited' });
144
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
145
- expect(slot.state).toBe('idle');
146
- });
147
- test('crash loop: returns failure, emits restartLimitReached', async () => {
148
- // Fill the window to max successful restarts: spacing must satisfy backoff (30s then 60s)
149
- // and keep all timestamps within CRASH_LOOP_WINDOW_MS so the limit check applies.
150
- const base = 1_700_000_000_000;
151
- const now = vi.mocked(deps.clock.now);
152
- now.mockReturnValue(base);
153
- deps.crashLoop.record(CHATROOM_ID, ROLE, base);
154
- let t = base + 30_000;
155
- for (let i = 1; i < CRASH_LOOP_MAX_RESTARTS; i++) {
156
- now.mockReturnValue(t);
157
- deps.crashLoop.record(CHATROOM_ID, ROLE, t);
158
- t += 60_000;
159
- }
160
- now.mockReturnValue(t);
161
- const result = await manager.ensureRunning(createOpts({ reason: 'platform.crash_recovery' }));
162
- expect(result.success).toBe(false);
163
- expect(result.error).toBe('crash_loop');
164
- // Should have emitted event
165
- expect(deps.backend.mutation).toHaveBeenCalledWith(expect.objectContaining({}), expect.objectContaining({
166
- chatroomId: CHATROOM_ID,
167
- role: ROLE,
168
- restartCount: expect.any(Number),
169
- windowMs: expect.any(Number),
170
- }));
171
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
172
- expect(slot.state).toBe('idle');
173
- });
174
- test('spawn fails: returns failure, slot transitions back to idle', async () => {
175
- const service = deps.agentServices.get('opencode');
176
- service.spawn.mockRejectedValue(new Error('spawn error'));
177
- const result = await manager.ensureRunning(createOpts());
178
- expect(result).toEqual({ success: false, error: 'Failed to spawn agent: spawn error' });
179
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
180
- expect(slot.state).toBe('idle');
181
- });
182
- test('invalid working dir: returns failure', async () => {
183
- deps.fs.stat.mockResolvedValue({
184
- isDirectory: () => false,
185
- });
186
- const result = await manager.ensureRunning(createOpts());
187
- expect(result.success).toBe(false);
188
- expect(result.error).toContain('not a directory');
189
- });
190
- test('working dir does not exist: returns failure', async () => {
191
- deps.fs.stat.mockRejectedValue(new Error('ENOENT'));
192
- const result = await manager.ensureRunning(createOpts());
193
- expect(result.success).toBe(false);
194
- expect(result.error).toContain('does not exist');
195
- });
196
- test('unknown harness: returns failure', async () => {
197
- const result = await manager.ensureRunning(createOpts({ agentHarness: 'cursor' }) // Use valid type but no service registered
198
- );
199
- // Remove the cursor service so it's "unknown"
200
- deps.agentServices.delete('cursor');
201
- const result2 = await manager.ensureRunning({
202
- ...createOpts(),
203
- agentHarness: 'cursor', // valid type, but no service for it
204
- });
205
- expect(result2.success).toBe(false);
206
- expect(result2.error).toContain('Unknown agent harness');
207
- });
208
- test('init prompt fetch fails: returns failure', async () => {
209
- deps.backend.query.mockRejectedValue(new Error('network error'));
210
- const result = await manager.ensureRunning(createOpts());
211
- expect(result.success).toBe(false);
212
- expect(result.error).toContain('Failed to fetch init prompt');
213
- });
214
- });
215
- // ── stop ──────────────────────────────────────────────────────────────
216
- describe('stop', () => {
217
- test('running → stopping → idle: kills process, emits exit event, clears disk', async () => {
218
- // Start agent first
219
- await manager.ensureRunning(createOpts());
220
- // Mock process.kill to pretend process dies on signal 0 check
221
- let killed = false;
222
- deps.processes.kill.mockImplementation((pid, sig) => {
223
- if (sig === 0 && killed)
224
- throw new Error('ESRCH');
225
- if (sig === 'SIGTERM')
226
- killed = true;
227
- });
228
- const result = await manager.stop({
229
- chatroomId: CHATROOM_ID,
230
- role: ROLE,
231
- reason: 'user.stop',
232
- });
233
- expect(result).toEqual({ success: true });
234
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
235
- expect(slot.state).toBe('idle');
236
- expect(slot.pid).toBeUndefined();
237
- expect(deps.persistence.clearAgentPid).toHaveBeenCalledWith('test-machine', CHATROOM_ID, ROLE);
238
- });
239
- test('already idle: returns success and notifies backend for cleanup', async () => {
240
- const result = await manager.stop({
241
- chatroomId: CHATROOM_ID,
242
- role: ROLE,
243
- reason: 'user.stop',
244
- });
245
- expect(result).toEqual({ success: true });
246
- // Verify that recordAgentExited was called for idle cleanup
247
- expect(deps.backend.mutation).toHaveBeenCalledWith(expect.anything(), // api.machines.recordAgentExited
248
- expect.objectContaining({
249
- sessionId: 'test-session',
250
- machineId: 'test-machine',
251
- chatroomId: CHATROOM_ID,
252
- role: ROLE,
253
- pid: 0,
254
- stopReason: 'user.stop',
255
- }));
256
- });
257
- test('already idle with event PID: attempts to kill the process and reports exit with that PID', async () => {
258
- const result = await manager.stop({
259
- chatroomId: CHATROOM_ID,
260
- role: ROLE,
261
- reason: 'user.stop',
262
- pid: 12345,
263
- });
264
- expect(result).toEqual({ success: true });
265
- // Should attempt to kill the event PID
266
- expect(deps.processes.kill).toHaveBeenCalledWith(12345, 'SIGTERM');
267
- // Should report exit with the event PID, not 0
268
- expect(deps.backend.mutation).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
269
- pid: 12345,
270
- stopReason: 'user.stop',
271
- }));
272
- });
273
- test('already idle without event PID: reports exit with pid 0 (backward compat)', async () => {
274
- const result = await manager.stop({
275
- chatroomId: CHATROOM_ID,
276
- role: ROLE,
277
- reason: 'user.stop',
278
- });
279
- expect(result).toEqual({ success: true });
280
- // Should report exit with pid 0 (no PID available)
281
- expect(deps.backend.mutation).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
282
- pid: 0,
283
- stopReason: 'user.stop',
284
- }));
285
- });
286
- test('concurrent stop calls: second awaits first', async () => {
287
- await manager.ensureRunning(createOpts());
288
- // Make the process die on first SIGTERM check
289
- let killed = false;
290
- deps.processes.kill.mockImplementation((pid, sig) => {
291
- if (sig === 0 && killed)
292
- throw new Error('ESRCH');
293
- if (sig === 'SIGTERM')
294
- killed = true;
295
- });
296
- const p1 = manager.stop({ chatroomId: CHATROOM_ID, role: ROLE, reason: 'user.stop' });
297
- const p2 = manager.stop({ chatroomId: CHATROOM_ID, role: ROLE, reason: 'user.stop' });
298
- const [r1, r2] = await Promise.all([p1, p2]);
299
- expect(r1).toEqual({ success: true });
300
- expect(r2).toEqual({ success: true });
301
- });
302
- test('stop + onExit callback does NOT produce duplicate exit events', async () => {
303
- // This tests the fix for the double agent.exited bug:
304
- // When stop() kills a process, the onExit callback also fires.
305
- // Only ONE recordAgentExited call should be made (from doStop), not two.
306
- await manager.ensureRunning(createOpts());
307
- // Capture the onExit callback registered during spawn
308
- const service = deps.agentServices.get('opencode');
309
- const spawnMockResult = service.spawn.mock.results[0].value;
310
- const resolvedSpawn = await spawnMockResult;
311
- const registeredOnExit = resolvedSpawn.onExit.mock.calls[0]?.[0];
312
- // Reset the backend mutation mock to track calls from here
313
- deps.backend.mutation.mockClear();
314
- // Mock process.kill: process dies on SIGTERM, then signal 0 throws
315
- let killed = false;
316
- deps.processes.kill.mockImplementation((pid, sig) => {
317
- if (sig === 0 && killed)
318
- throw new Error('ESRCH');
319
- if (sig === 'SIGTERM') {
320
- killed = true;
321
- // Simulate: the onExit callback fires when the process dies
322
- // This happens asynchronously in real life, but we call it here
323
- // to simulate the race condition
324
- if (registeredOnExit) {
325
- registeredOnExit({ code: null, signal: 'SIGTERM' });
326
- }
327
- }
328
- });
329
- await manager.stop({
330
- chatroomId: CHATROOM_ID,
331
- role: ROLE,
332
- reason: 'user.stop',
333
- });
334
- // Count all backend.mutation calls — should be exactly 1 (from doStop only)
335
- // Before the fix, handleExit would also fire, producing 2 calls
336
- const mutationCalls = deps.backend.mutation.mock.calls;
337
- expect(mutationCalls).toHaveLength(1);
338
- });
339
- });
340
- // ── handleExit ────────────────────────────────────────────────────────
341
- describe('handleExit', () => {
342
- test('unexpected exit triggers auto restart', async () => {
343
- await manager.ensureRunning(createOpts());
344
- const service = deps.agentServices.get('opencode');
345
- // Reset spawn mock for the restart call
346
- service.spawn.mockResolvedValue({
347
- pid: 100,
348
- onExit: vi.fn(),
349
- onOutput: vi.fn(),
350
- onAgentEnd: vi.fn(),
351
- });
352
- // Simulate process exit directly via handleExit
353
- manager.handleExit({
354
- chatroomId: CHATROOM_ID,
355
- role: ROLE,
356
- pid: PID,
357
- code: 1,
358
- signal: null,
359
- });
360
- // Allow async restart to run
361
- await vi.waitFor(() => {
362
- expect(service.spawn).toHaveBeenCalledTimes(2); // original + restart
363
- });
364
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
365
- expect(slot.state).toBe('running');
366
- expect(slot.pid).toBe(100);
367
- });
368
- test('signal exit (SIGTERM) triggers restart (no stale reason leak)', async () => {
369
- await manager.ensureRunning(createOpts());
370
- const service = deps.agentServices.get('opencode');
371
- service.spawn.mockClear();
372
- // SIGTERM exit → agent_process.signal → should trigger restart
373
- // This verifies no stale state from prior stops leaks into the reason
374
- manager.handleExit({
375
- chatroomId: CHATROOM_ID,
376
- role: ROLE,
377
- pid: PID,
378
- code: 0,
379
- signal: 'SIGTERM',
380
- });
381
- // Should restart because agent_process.signal is a restartable reason
382
- await vi.waitFor(() => {
383
- expect(service.spawn).toHaveBeenCalledTimes(1);
384
- });
385
- });
386
- test('stale PID is ignored', async () => {
387
- await manager.ensureRunning(createOpts());
388
- const service = deps.agentServices.get('opencode');
389
- service.spawn.mockClear();
390
- // Simulate exit with WRONG PID — should be ignored
391
- manager.handleExit({
392
- chatroomId: CHATROOM_ID,
393
- role: ROLE,
394
- pid: 99999, // Different from PID (42)
395
- code: 1,
396
- signal: null,
397
- });
398
- // Slot should remain running
399
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
400
- expect(slot.state).toBe('running');
401
- expect(slot.pid).toBe(PID);
402
- expect(service.spawn).not.toHaveBeenCalled();
403
- });
404
- test('exit without harness/workingDir does not restart', async () => {
405
- // Manually set a slot without workingDir
406
- await manager.ensureRunning(createOpts());
407
- // Hack: remove workingDir from slot to simulate edge case
408
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
409
- slot.workingDir = undefined;
410
- const service = deps.agentServices.get('opencode');
411
- service.spawn.mockClear();
412
- manager.handleExit({
413
- chatroomId: CHATROOM_ID,
414
- role: ROLE,
415
- pid: PID,
416
- code: 1,
417
- signal: null,
418
- });
419
- // Should NOT restart since workingDir is missing
420
- // Wait a tick for any async work
421
- await new Promise((r) => setTimeout(r, 10));
422
- expect(service.spawn).not.toHaveBeenCalled();
423
- });
424
- test('crash after previous stop does not leak stale stop reason', async () => {
425
- await manager.ensureRunning(createOpts());
426
- const service = deps.agentServices.get('opencode');
427
- // Stop the agent intentionally (user.stop)
428
- await manager.stop({ chatroomId: CHATROOM_ID, role: ROLE, reason: 'user.stop' });
429
- // Restart the agent
430
- service.spawn.mockClear();
431
- service.spawn.mockResolvedValue({
432
- pid: 200,
433
- workingDir: '/test/work',
434
- });
435
- await manager.ensureRunning(createOpts());
436
- // Clear mutation mock to isolate the exit event we care about
437
- deps.backend.mutation.mockClear();
438
- // Now let it crash — the stop reason should be derived from exit info,
439
- // NOT leaked from the previous user.stop
440
- manager.handleExit({
441
- chatroomId: CHATROOM_ID,
442
- role: ROLE,
443
- pid: 200,
444
- code: 1,
445
- signal: null,
446
- });
447
- // Verify the recordAgentExited mutation was called with agent_process.crashed
448
- await vi.waitFor(() => {
449
- const mutationCalls = deps.backend.mutation.mock.calls;
450
- const exitCall = mutationCalls.find((c) => c[1] &&
451
- typeof c[1] === 'object' &&
452
- c[1].stopReason !== undefined);
453
- expect(exitCall).toBeDefined();
454
- expect(exitCall[1].stopReason).toBe('agent_process.crashed');
455
- });
456
- });
457
- test('clean exit triggers restart', async () => {
458
- await manager.ensureRunning(createOpts());
459
- const service = deps.agentServices.get('opencode');
460
- service.spawn.mockClear();
461
- // Clean exit with code 0 → agent_process.exited_clean → triggers restart
462
- manager.handleExit({
463
- chatroomId: CHATROOM_ID,
464
- role: ROLE,
465
- pid: PID,
466
- code: 0,
467
- signal: null,
468
- });
469
- // Should restart (exited_clean is not intentional)
470
- await vi.waitFor(() => {
471
- expect(service.spawn).toHaveBeenCalledTimes(1);
472
- });
473
- });
474
- });
475
- // ── recover ───────────────────────────────────────────────────────────
476
- describe('recover', () => {
477
- test('alive PIDs are restored to running state', async () => {
478
- deps.persistence.listAgentEntries.mockReturnValue([
479
- { chatroomId: CHATROOM_ID, role: ROLE, entry: { pid: 1234, harness: 'opencode' } },
480
- ]);
481
- // process.kill(pid, 0) succeeds → alive
482
- deps.processes.kill.mockImplementation(() => { });
483
- await manager.recover();
484
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
485
- expect(slot).toBeDefined();
486
- expect(slot.state).toBe('running');
487
- expect(slot.pid).toBe(1234);
488
- expect(slot.harness).toBe('opencode');
489
- });
490
- test('dead PIDs are cleaned up', async () => {
491
- deps.persistence.listAgentEntries.mockReturnValue([
492
- { chatroomId: CHATROOM_ID, role: ROLE, entry: { pid: 9999, harness: 'opencode' } },
493
- ]);
494
- // process.kill(pid, 0) throws → dead
495
- deps.processes.kill.mockImplementation(() => {
496
- throw new Error('ESRCH');
497
- });
498
- await manager.recover();
499
- const slot = manager.getSlot(CHATROOM_ID, ROLE);
500
- expect(slot).toBeUndefined(); // No slot created for dead process
501
- expect(deps.persistence.clearAgentPid).toHaveBeenCalledWith('test-machine', CHATROOM_ID, ROLE);
502
- });
503
- });
504
- // ── listActive ────────────────────────────────────────────────────────
505
- describe('listActive', () => {
506
- test('returns running and spawning slots', async () => {
507
- await manager.ensureRunning(createOpts());
508
- await manager.ensureRunning(createOpts({ chatroomId: 'other-room', role: 'reviewer' }));
509
- const active = manager.listActive();
510
- expect(active).toHaveLength(2);
511
- expect(active.map((a) => a.role)).toContain('builder');
512
- expect(active.map((a) => a.role)).toContain('reviewer');
513
- });
514
- test('does not include idle slots', async () => {
515
- // Create and then exit an agent
516
- await manager.ensureRunning(createOpts());
517
- manager.handleExit({
518
- chatroomId: CHATROOM_ID,
519
- role: ROLE,
520
- pid: PID,
521
- code: 1,
522
- signal: null,
523
- });
524
- // Wait for the restart attempt to complete (or fail due to spawning)
525
- await new Promise((r) => setTimeout(r, 50));
526
- // The slot might be running again due to auto-restart. Let's check differently:
527
- // Just verify listActive works
528
- const active = manager.listActive();
529
- for (const entry of active) {
530
- expect(['running', 'spawning']).toContain(entry.slot.state);
531
- }
532
- });
533
- });
534
- // ── exitRetryQueue ────────────────────────────────────────────────────
535
- describe('exitRetryQueue', () => {
536
- beforeEach(() => {
537
- vi.useFakeTimers();
538
- });
539
- afterEach(() => {
540
- vi.useRealTimers();
541
- });
542
- test('queues exit event for retry when recordAgentExited fails in handleExit', async () => {
543
- // Arrange: mutation mock — all calls succeed by default, except for recordAgentExited on first try
544
- const mutation = vi.fn().mockResolvedValue(undefined);
545
- // Allow first spawn, then block restarts
546
- const shouldAllowSpawn = vi.fn()
547
- .mockReturnValueOnce({ allowed: true }) // first spawn succeeds
548
- .mockReturnValue({ allowed: false, retryAfterMs: 60_000 }); // no restarts
549
- const localDeps = createDeps({
550
- backend: {
551
- query: vi.fn().mockResolvedValue({
552
- prompt: true,
553
- rolePrompt: 'You are a builder',
554
- initialMessage: 'Start working',
555
- }),
556
- mutation,
557
- },
558
- spawning: {
559
- shouldAllowSpawn,
560
- recordSpawn: vi.fn(),
561
- recordExit: vi.fn(),
562
- },
563
- });
564
- const localManager = new AgentProcessManager(localDeps);
565
- // Spawn agent
566
- const result = await localManager.ensureRunning(createOpts());
567
- expect(result.success).toBe(true);
568
- // recordAgentExited fails on the next call
569
- mutation.mockRejectedValueOnce(new Error('fetch failed'));
570
- const callsBeforeExit = mutation.mock.calls.length;
571
- // Trigger exit
572
- localManager.handleExit({ chatroomId: CHATROOM_ID, role: ROLE, pid: PID, code: 0, signal: null });
573
- // Let the promise rejection propagate
574
- await Promise.resolve();
575
- await Promise.resolve();
576
- await Promise.resolve();
577
- // recordAgentExited was attempted (and failed)
578
- expect(mutation.mock.calls.length).toBeGreaterThanOrEqual(callsBeforeExit + 1);
579
- // Advance timers to trigger retry — retry should succeed now (mock returns resolved)
580
- await vi.advanceTimersByTimeAsync(10_000);
581
- await Promise.resolve();
582
- await Promise.resolve();
583
- // Verify a retry was attempted (at least one more mutation call)
584
- expect(mutation.mock.calls.length).toBeGreaterThan(callsBeforeExit + 1);
585
- });
586
- test('removes item from retry queue on successful retry', async () => {
587
- const mutation = vi.fn();
588
- // First: spawn-related mutations succeed
589
- const localDeps = createDeps({
590
- backend: {
591
- query: vi.fn().mockResolvedValue({
592
- prompt: true,
593
- rolePrompt: 'You are a builder',
594
- initialMessage: 'Start working',
595
- }),
596
- mutation,
597
- },
598
- });
599
- const localManager = new AgentProcessManager(localDeps);
600
- await localManager.ensureRunning(createOpts());
601
- // recordAgentExited fails first time
602
- mutation.mockRejectedValueOnce(new Error('fetch failed'));
603
- localManager.handleExit({ chatroomId: CHATROOM_ID, role: ROLE, pid: PID, code: 0, signal: null });
604
- await Promise.resolve();
605
- await Promise.resolve();
606
- // Now retry succeeds
607
- mutation.mockResolvedValueOnce(undefined);
608
- await vi.advanceTimersByTimeAsync(10_000);
609
- await Promise.resolve();
610
- await Promise.resolve();
611
- // After success, the timer should stop (advancing again won't trigger more mutations)
612
- const callCountAfterSuccess = mutation.mock.calls.length;
613
- mutation.mockResolvedValueOnce(undefined); // would be called if timer still running
614
- await vi.advanceTimersByTimeAsync(10_000);
615
- await Promise.resolve();
616
- // No additional calls — timer was stopped
617
- expect(mutation.mock.calls.length).toBe(callCountAfterSuccess);
618
- });
619
- test('keeps item in retry queue when retry also fails', async () => {
620
- const mutation = vi.fn();
621
- const localDeps = createDeps({
622
- backend: {
623
- query: vi.fn().mockResolvedValue({
624
- prompt: true,
625
- rolePrompt: 'You are a builder',
626
- initialMessage: 'Start working',
627
- }),
628
- mutation,
629
- },
630
- });
631
- const localManager = new AgentProcessManager(localDeps);
632
- await localManager.ensureRunning(createOpts());
633
- // Initial recordAgentExited fails
634
- mutation.mockRejectedValueOnce(new Error('fetch failed'));
635
- localManager.handleExit({ chatroomId: CHATROOM_ID, role: ROLE, pid: PID, code: 0, signal: null });
636
- await Promise.resolve();
637
- await Promise.resolve();
638
- const callsAfterFirstFail = mutation.mock.calls.length;
639
- // Retry also fails
640
- mutation.mockRejectedValueOnce(new Error('still offline'));
641
- await vi.advanceTimersByTimeAsync(10_000);
642
- await Promise.resolve();
643
- await Promise.resolve();
644
- // A retry was attempted (mutation called again)
645
- expect(mutation.mock.calls.length).toBeGreaterThan(callsAfterFirstFail);
646
- // Retry second time succeeds
647
- mutation.mockResolvedValueOnce(undefined);
648
- await vi.advanceTimersByTimeAsync(10_000);
649
- await Promise.resolve();
650
- await Promise.resolve();
651
- // Timer should stop now
652
- const callCountAfterSecondSuccess = mutation.mock.calls.length;
653
- await vi.advanceTimersByTimeAsync(10_000);
654
- await Promise.resolve();
655
- expect(mutation.mock.calls.length).toBe(callCountAfterSecondSuccess);
656
- });
657
- test('queues multiple failed exit events independently', async () => {
658
- const mutation = vi.fn();
659
- const localDeps = createDeps({
660
- backend: {
661
- query: vi.fn().mockResolvedValue({
662
- prompt: true,
663
- rolePrompt: 'You are a builder',
664
- initialMessage: 'Start working',
665
- }),
666
- mutation,
667
- },
668
- });
669
- const localManager = new AgentProcessManager(localDeps);
670
- // Spawn two agents
671
- await localManager.ensureRunning(createOpts({ chatroomId: 'room-1', role: 'builder' }));
672
- await localManager.ensureRunning(createOpts({ chatroomId: 'room-2', role: 'builder' }));
673
- // Both recordAgentExited calls fail
674
- mutation.mockRejectedValueOnce(new Error('offline'));
675
- mutation.mockRejectedValueOnce(new Error('offline'));
676
- localManager.handleExit({ chatroomId: 'room-1', role: 'builder', pid: PID, code: 0, signal: null });
677
- localManager.handleExit({ chatroomId: 'room-2', role: 'builder', pid: PID, code: 0, signal: null });
678
- await Promise.resolve();
679
- await Promise.resolve();
680
- await Promise.resolve();
681
- const callsBeforeRetry = mutation.mock.calls.length;
682
- // Both retries succeed
683
- mutation.mockResolvedValue(undefined);
684
- await vi.advanceTimersByTimeAsync(10_000);
685
- await Promise.resolve();
686
- await Promise.resolve();
687
- // 2 additional retry calls were made
688
- expect(mutation.mock.calls.length).toBeGreaterThanOrEqual(callsBeforeRetry + 2);
689
- });
690
- });
691
- });
692
- //# sourceMappingURL=agent-process-manager.test.js.map