@swarmify/agents-cli 1.11.3 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/LICENSE +21 -0
  3. package/README.md +209 -233
  4. package/dist/commands/__tests__/sessions.test.js +90 -20
  5. package/dist/commands/__tests__/sessions.test.js.map +1 -1
  6. package/dist/commands/cloud.d.ts +11 -0
  7. package/dist/commands/cloud.d.ts.map +1 -0
  8. package/dist/commands/cloud.js +363 -0
  9. package/dist/commands/cloud.js.map +1 -0
  10. package/dist/commands/commands.d.ts +9 -0
  11. package/dist/commands/commands.d.ts.map +1 -1
  12. package/dist/commands/commands.js +330 -139
  13. package/dist/commands/commands.js.map +1 -1
  14. package/dist/commands/daemon.d.ts +8 -0
  15. package/dist/commands/daemon.d.ts.map +1 -1
  16. package/dist/commands/daemon.js +38 -222
  17. package/dist/commands/daemon.js.map +1 -1
  18. package/dist/commands/drive.d.ts +8 -0
  19. package/dist/commands/drive.d.ts.map +1 -1
  20. package/dist/commands/drive.js +70 -7
  21. package/dist/commands/drive.js.map +1 -1
  22. package/dist/commands/exec.d.ts +9 -1
  23. package/dist/commands/exec.d.ts.map +1 -1
  24. package/dist/commands/exec.js +198 -24
  25. package/dist/commands/exec.js.map +1 -1
  26. package/dist/commands/factory.d.ts +11 -0
  27. package/dist/commands/factory.d.ts.map +1 -0
  28. package/dist/commands/factory.js +445 -0
  29. package/dist/commands/factory.js.map +1 -0
  30. package/dist/commands/fork.d.ts +8 -0
  31. package/dist/commands/fork.d.ts.map +1 -1
  32. package/dist/commands/fork.js +38 -4
  33. package/dist/commands/fork.js.map +1 -1
  34. package/dist/commands/hooks.d.ts +9 -0
  35. package/dist/commands/hooks.d.ts.map +1 -1
  36. package/dist/commands/hooks.js +252 -18
  37. package/dist/commands/hooks.js.map +1 -1
  38. package/dist/commands/init.d.ts +15 -0
  39. package/dist/commands/init.d.ts.map +1 -0
  40. package/dist/commands/init.js +137 -0
  41. package/dist/commands/init.js.map +1 -0
  42. package/dist/commands/mcp.d.ts +9 -0
  43. package/dist/commands/mcp.d.ts.map +1 -1
  44. package/dist/commands/mcp.js +250 -169
  45. package/dist/commands/mcp.js.map +1 -1
  46. package/dist/commands/models.d.ts +11 -0
  47. package/dist/commands/models.d.ts.map +1 -0
  48. package/dist/commands/models.js +170 -0
  49. package/dist/commands/models.js.map +1 -0
  50. package/dist/commands/packages.d.ts +8 -0
  51. package/dist/commands/packages.d.ts.map +1 -1
  52. package/dist/commands/packages.js +155 -14
  53. package/dist/commands/packages.js.map +1 -1
  54. package/dist/commands/permissions.d.ts +9 -0
  55. package/dist/commands/permissions.d.ts.map +1 -1
  56. package/dist/commands/permissions.js +72 -13
  57. package/dist/commands/permissions.js.map +1 -1
  58. package/dist/commands/plugins.d.ts +8 -0
  59. package/dist/commands/plugins.d.ts.map +1 -1
  60. package/dist/commands/plugins.js +265 -44
  61. package/dist/commands/plugins.js.map +1 -1
  62. package/dist/commands/profiles.d.ts +12 -0
  63. package/dist/commands/profiles.d.ts.map +1 -0
  64. package/dist/commands/profiles.js +255 -0
  65. package/dist/commands/profiles.js.map +1 -0
  66. package/dist/commands/pty.d.ts +1 -0
  67. package/dist/commands/pty.d.ts.map +1 -1
  68. package/dist/commands/pty.js +133 -22
  69. package/dist/commands/pty.js.map +1 -1
  70. package/dist/commands/pull.d.ts +8 -0
  71. package/dist/commands/pull.d.ts.map +1 -1
  72. package/dist/commands/pull.js +103 -14
  73. package/dist/commands/pull.js.map +1 -1
  74. package/dist/commands/push.d.ts +8 -0
  75. package/dist/commands/push.d.ts.map +1 -1
  76. package/dist/commands/push.js +37 -3
  77. package/dist/commands/push.js.map +1 -1
  78. package/dist/commands/refresh-memory.d.ts +16 -0
  79. package/dist/commands/refresh-memory.d.ts.map +1 -0
  80. package/dist/commands/refresh-memory.js +52 -0
  81. package/dist/commands/refresh-memory.js.map +1 -0
  82. package/dist/commands/resource-view.d.ts +39 -0
  83. package/dist/commands/resource-view.d.ts.map +1 -0
  84. package/dist/commands/resource-view.js +197 -0
  85. package/dist/commands/resource-view.js.map +1 -0
  86. package/dist/commands/routines.d.ts +8 -0
  87. package/dist/commands/routines.d.ts.map +1 -1
  88. package/dist/commands/routines.js +163 -34
  89. package/dist/commands/routines.js.map +1 -1
  90. package/dist/commands/rules.d.ts +9 -0
  91. package/dist/commands/rules.d.ts.map +1 -1
  92. package/dist/commands/rules.js +83 -12
  93. package/dist/commands/rules.js.map +1 -1
  94. package/dist/commands/secrets.d.ts +11 -0
  95. package/dist/commands/secrets.d.ts.map +1 -0
  96. package/dist/commands/secrets.js +352 -0
  97. package/dist/commands/secrets.js.map +1 -0
  98. package/dist/commands/sessions-picker.d.ts +18 -0
  99. package/dist/commands/sessions-picker.d.ts.map +1 -0
  100. package/dist/commands/sessions-picker.js +265 -0
  101. package/dist/commands/sessions-picker.js.map +1 -0
  102. package/dist/commands/sessions.d.ts +15 -0
  103. package/dist/commands/sessions.d.ts.map +1 -1
  104. package/dist/commands/sessions.js +708 -258
  105. package/dist/commands/sessions.js.map +1 -1
  106. package/dist/commands/skills.d.ts +9 -0
  107. package/dist/commands/skills.d.ts.map +1 -1
  108. package/dist/commands/skills.js +355 -233
  109. package/dist/commands/skills.js.map +1 -1
  110. package/dist/commands/status.d.ts +7 -0
  111. package/dist/commands/status.d.ts.map +1 -1
  112. package/dist/commands/status.js +7 -0
  113. package/dist/commands/status.js.map +1 -1
  114. package/dist/commands/subagents.d.ts +8 -0
  115. package/dist/commands/subagents.d.ts.map +1 -1
  116. package/dist/commands/subagents.js +214 -74
  117. package/dist/commands/subagents.js.map +1 -1
  118. package/dist/commands/sync.d.ts +8 -0
  119. package/dist/commands/sync.d.ts.map +1 -1
  120. package/dist/commands/sync.js +15 -7
  121. package/dist/commands/sync.js.map +1 -1
  122. package/dist/commands/teams-picker.d.ts +18 -0
  123. package/dist/commands/teams-picker.d.ts.map +1 -0
  124. package/dist/commands/teams-picker.js +290 -0
  125. package/dist/commands/teams-picker.js.map +1 -0
  126. package/dist/commands/teams.d.ts +18 -0
  127. package/dist/commands/teams.d.ts.map +1 -0
  128. package/dist/commands/teams.js +1098 -0
  129. package/dist/commands/teams.js.map +1 -0
  130. package/dist/commands/utils.d.ts +20 -0
  131. package/dist/commands/utils.d.ts.map +1 -1
  132. package/dist/commands/utils.js +34 -0
  133. package/dist/commands/utils.js.map +1 -1
  134. package/dist/commands/versions.d.ts +8 -0
  135. package/dist/commands/versions.d.ts.map +1 -1
  136. package/dist/commands/versions.js +71 -8
  137. package/dist/commands/versions.js.map +1 -1
  138. package/dist/commands/view.d.ts +34 -1
  139. package/dist/commands/view.d.ts.map +1 -1
  140. package/dist/commands/view.js +207 -13
  141. package/dist/commands/view.js.map +1 -1
  142. package/dist/index.d.ts +6 -0
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +136 -51
  145. package/dist/index.js.map +1 -1
  146. package/dist/lib/__tests__/bugfixes.test.js +3 -3
  147. package/dist/lib/__tests__/bugfixes.test.js.map +1 -1
  148. package/dist/lib/__tests__/exec.test.js +125 -19
  149. package/dist/lib/__tests__/exec.test.js.map +1 -1
  150. package/dist/lib/__tests__/hooks.test.d.ts +2 -0
  151. package/dist/lib/__tests__/hooks.test.d.ts.map +1 -0
  152. package/dist/lib/__tests__/hooks.test.js +203 -0
  153. package/dist/lib/__tests__/hooks.test.js.map +1 -0
  154. package/dist/lib/__tests__/memory-compile.test.d.ts +2 -0
  155. package/dist/lib/__tests__/memory-compile.test.d.ts.map +1 -0
  156. package/dist/lib/__tests__/memory-compile.test.js +95 -0
  157. package/dist/lib/__tests__/memory-compile.test.js.map +1 -0
  158. package/dist/lib/__tests__/models.test.d.ts +2 -0
  159. package/dist/lib/__tests__/models.test.d.ts.map +1 -0
  160. package/dist/lib/__tests__/models.test.js +239 -0
  161. package/dist/lib/__tests__/models.test.js.map +1 -0
  162. package/dist/lib/__tests__/rotate.test.d.ts +2 -0
  163. package/dist/lib/__tests__/rotate.test.d.ts.map +1 -0
  164. package/dist/lib/__tests__/rotate.test.js +80 -0
  165. package/dist/lib/__tests__/rotate.test.js.map +1 -0
  166. package/dist/lib/__tests__/secrets-bundles.test.d.ts +2 -0
  167. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +1 -0
  168. package/dist/lib/__tests__/secrets-bundles.test.js +104 -0
  169. package/dist/lib/__tests__/secrets-bundles.test.js.map +1 -0
  170. package/dist/lib/__tests__/secrets.test.d.ts +2 -0
  171. package/dist/lib/__tests__/secrets.test.d.ts.map +1 -0
  172. package/dist/lib/__tests__/secrets.test.js +90 -0
  173. package/dist/lib/__tests__/secrets.test.js.map +1 -0
  174. package/dist/lib/__tests__/shims.test.d.ts +2 -0
  175. package/dist/lib/__tests__/shims.test.d.ts.map +1 -0
  176. package/dist/lib/__tests__/shims.test.js +39 -0
  177. package/dist/lib/__tests__/shims.test.js.map +1 -0
  178. package/dist/lib/__tests__/usage.test.js +4 -2
  179. package/dist/lib/__tests__/usage.test.js.map +1 -1
  180. package/dist/lib/__tests__/versions.test.d.ts +2 -0
  181. package/dist/lib/__tests__/versions.test.d.ts.map +1 -0
  182. package/dist/lib/__tests__/versions.test.js +63 -0
  183. package/dist/lib/__tests__/versions.test.js.map +1 -0
  184. package/dist/lib/agents.d.ts +53 -1
  185. package/dist/lib/agents.d.ts.map +1 -1
  186. package/dist/lib/agents.js +178 -37
  187. package/dist/lib/agents.js.map +1 -1
  188. package/dist/lib/artifact-actions.d.ts +8 -3
  189. package/dist/lib/artifact-actions.d.ts.map +1 -1
  190. package/dist/lib/artifact-actions.js +8 -5
  191. package/dist/lib/artifact-actions.js.map +1 -1
  192. package/dist/lib/cloud/codex.d.ts +26 -0
  193. package/dist/lib/cloud/codex.d.ts.map +1 -0
  194. package/dist/lib/cloud/codex.js +237 -0
  195. package/dist/lib/cloud/codex.js.map +1 -0
  196. package/dist/lib/cloud/factory.d.ts +32 -0
  197. package/dist/lib/cloud/factory.d.ts.map +1 -0
  198. package/dist/lib/cloud/factory.js +43 -0
  199. package/dist/lib/cloud/factory.js.map +1 -0
  200. package/dist/lib/cloud/registry.d.ts +16 -0
  201. package/dist/lib/cloud/registry.d.ts.map +1 -0
  202. package/dist/lib/cloud/registry.js +68 -0
  203. package/dist/lib/cloud/registry.js.map +1 -0
  204. package/dist/lib/cloud/rush.d.ts +37 -0
  205. package/dist/lib/cloud/rush.d.ts.map +1 -0
  206. package/dist/lib/cloud/rush.js +230 -0
  207. package/dist/lib/cloud/rush.js.map +1 -0
  208. package/dist/lib/cloud/rush.test.d.ts +2 -0
  209. package/dist/lib/cloud/rush.test.d.ts.map +1 -0
  210. package/dist/lib/cloud/rush.test.js +63 -0
  211. package/dist/lib/cloud/rush.test.js.map +1 -0
  212. package/dist/lib/cloud/store.d.ts +23 -0
  213. package/dist/lib/cloud/store.d.ts.map +1 -0
  214. package/dist/lib/cloud/store.js +116 -0
  215. package/dist/lib/cloud/store.js.map +1 -0
  216. package/dist/lib/cloud/stream.d.ts +24 -0
  217. package/dist/lib/cloud/stream.d.ts.map +1 -0
  218. package/dist/lib/cloud/stream.js +145 -0
  219. package/dist/lib/cloud/stream.js.map +1 -0
  220. package/dist/lib/cloud/types.d.ts +109 -0
  221. package/dist/lib/cloud/types.d.ts.map +1 -0
  222. package/dist/lib/cloud/types.js +33 -0
  223. package/dist/lib/cloud/types.js.map +1 -0
  224. package/dist/lib/cloud/types.test.d.ts +2 -0
  225. package/dist/lib/cloud/types.test.d.ts.map +1 -0
  226. package/dist/lib/cloud/types.test.js +41 -0
  227. package/dist/lib/cloud/types.test.js.map +1 -0
  228. package/dist/lib/commands.d.ts +67 -0
  229. package/dist/lib/commands.d.ts.map +1 -1
  230. package/dist/lib/commands.js +161 -2
  231. package/dist/lib/commands.js.map +1 -1
  232. package/dist/lib/convert.d.ts +10 -0
  233. package/dist/lib/convert.d.ts.map +1 -1
  234. package/dist/lib/convert.js +9 -0
  235. package/dist/lib/convert.js.map +1 -1
  236. package/dist/lib/daemon.d.ts +21 -0
  237. package/dist/lib/daemon.d.ts.map +1 -1
  238. package/dist/lib/daemon.js +21 -0
  239. package/dist/lib/daemon.js.map +1 -1
  240. package/dist/lib/drive-sync.d.ts +18 -0
  241. package/dist/lib/drive-sync.d.ts.map +1 -1
  242. package/dist/lib/drive-sync.js +16 -0
  243. package/dist/lib/drive-sync.js.map +1 -1
  244. package/dist/lib/exec.d.ts +64 -3
  245. package/dist/lib/exec.d.ts.map +1 -1
  246. package/dist/lib/exec.js +218 -80
  247. package/dist/lib/exec.js.map +1 -1
  248. package/dist/lib/factory/__tests__/config.test.d.ts +2 -0
  249. package/dist/lib/factory/__tests__/config.test.d.ts.map +1 -0
  250. package/dist/lib/factory/__tests__/config.test.js +128 -0
  251. package/dist/lib/factory/__tests__/config.test.js.map +1 -0
  252. package/dist/lib/factory/config.d.ts +49 -0
  253. package/dist/lib/factory/config.d.ts.map +1 -0
  254. package/dist/lib/factory/config.js +127 -0
  255. package/dist/lib/factory/config.js.map +1 -0
  256. package/dist/lib/factory.js +1 -1
  257. package/dist/lib/factory.js.map +1 -1
  258. package/dist/lib/git.d.ts +16 -1
  259. package/dist/lib/git.d.ts.map +1 -1
  260. package/dist/lib/git.js +33 -4
  261. package/dist/lib/git.js.map +1 -1
  262. package/dist/lib/help.d.ts +7 -0
  263. package/dist/lib/help.d.ts.map +1 -1
  264. package/dist/lib/help.js +3 -0
  265. package/dist/lib/help.js.map +1 -1
  266. package/dist/lib/hooks.d.ts +59 -3
  267. package/dist/lib/hooks.d.ts.map +1 -1
  268. package/dist/lib/hooks.js +413 -33
  269. package/dist/lib/hooks.js.map +1 -1
  270. package/dist/lib/ledger/__tests__/local.test.d.ts +2 -0
  271. package/dist/lib/ledger/__tests__/local.test.d.ts.map +1 -0
  272. package/dist/lib/ledger/__tests__/local.test.js +177 -0
  273. package/dist/lib/ledger/__tests__/local.test.js.map +1 -0
  274. package/dist/lib/ledger/__tests__/sync.test.d.ts +2 -0
  275. package/dist/lib/ledger/__tests__/sync.test.d.ts.map +1 -0
  276. package/dist/lib/ledger/__tests__/sync.test.js +117 -0
  277. package/dist/lib/ledger/__tests__/sync.test.js.map +1 -0
  278. package/dist/lib/ledger/index.d.ts +18 -0
  279. package/dist/lib/ledger/index.d.ts.map +1 -0
  280. package/dist/lib/ledger/index.js +32 -0
  281. package/dist/lib/ledger/index.js.map +1 -0
  282. package/dist/lib/ledger/local.d.ts +22 -0
  283. package/dist/lib/ledger/local.d.ts.map +1 -0
  284. package/dist/lib/ledger/local.js +333 -0
  285. package/dist/lib/ledger/local.js.map +1 -0
  286. package/dist/lib/ledger/r2.d.ts +41 -0
  287. package/dist/lib/ledger/r2.d.ts.map +1 -0
  288. package/dist/lib/ledger/r2.js +335 -0
  289. package/dist/lib/ledger/r2.js.map +1 -0
  290. package/dist/lib/ledger/sync.d.ts +33 -0
  291. package/dist/lib/ledger/sync.d.ts.map +1 -0
  292. package/dist/lib/ledger/sync.js +106 -0
  293. package/dist/lib/ledger/sync.js.map +1 -0
  294. package/dist/lib/ledger/types.d.ts +100 -0
  295. package/dist/lib/ledger/types.d.ts.map +1 -0
  296. package/dist/lib/ledger/types.js +21 -0
  297. package/dist/lib/ledger/types.js.map +1 -0
  298. package/dist/lib/manifest.d.ts +6 -0
  299. package/dist/lib/manifest.d.ts.map +1 -1
  300. package/dist/lib/manifest.js +12 -0
  301. package/dist/lib/manifest.js.map +1 -1
  302. package/dist/lib/markdown.d.ts.map +1 -1
  303. package/dist/lib/markdown.js +6 -0
  304. package/dist/lib/markdown.js.map +1 -1
  305. package/dist/lib/mcp.d.ts +0 -9
  306. package/dist/lib/mcp.d.ts.map +1 -1
  307. package/dist/lib/mcp.js +0 -20
  308. package/dist/lib/mcp.js.map +1 -1
  309. package/dist/lib/memory-compile.d.ts +65 -0
  310. package/dist/lib/memory-compile.d.ts.map +1 -0
  311. package/dist/lib/memory-compile.js +174 -0
  312. package/dist/lib/memory-compile.js.map +1 -0
  313. package/dist/lib/memory.d.ts +8 -0
  314. package/dist/lib/memory.d.ts.map +1 -1
  315. package/dist/lib/memory.js +8 -0
  316. package/dist/lib/memory.js.map +1 -1
  317. package/dist/lib/models.d.ts +98 -0
  318. package/dist/lib/models.d.ts.map +1 -0
  319. package/dist/lib/models.js +722 -0
  320. package/dist/lib/models.js.map +1 -0
  321. package/dist/lib/permissions.d.ts +3 -1
  322. package/dist/lib/permissions.d.ts.map +1 -1
  323. package/dist/lib/permissions.js +13 -3
  324. package/dist/lib/permissions.js.map +1 -1
  325. package/dist/lib/picker.d.ts +27 -0
  326. package/dist/lib/picker.d.ts.map +1 -0
  327. package/dist/lib/picker.js +110 -0
  328. package/dist/lib/picker.js.map +1 -0
  329. package/dist/lib/plugins.d.ts +22 -0
  330. package/dist/lib/plugins.d.ts.map +1 -1
  331. package/dist/lib/plugins.js +114 -0
  332. package/dist/lib/plugins.js.map +1 -1
  333. package/dist/lib/profiles-keychain.d.ts +11 -0
  334. package/dist/lib/profiles-keychain.d.ts.map +1 -0
  335. package/dist/lib/profiles-keychain.js +14 -0
  336. package/dist/lib/profiles-keychain.js.map +1 -0
  337. package/dist/lib/profiles-presets.d.ts +25 -0
  338. package/dist/lib/profiles-presets.d.ts.map +1 -0
  339. package/dist/lib/profiles-presets.js +104 -0
  340. package/dist/lib/profiles-presets.js.map +1 -0
  341. package/dist/lib/profiles.d.ts +70 -0
  342. package/dist/lib/profiles.d.ts.map +1 -0
  343. package/dist/lib/profiles.js +145 -0
  344. package/dist/lib/profiles.js.map +1 -0
  345. package/dist/lib/pty-client.d.ts +1 -0
  346. package/dist/lib/pty-client.d.ts.map +1 -1
  347. package/dist/lib/pty-client.js.map +1 -1
  348. package/dist/lib/pty-server.d.ts +5 -0
  349. package/dist/lib/pty-server.d.ts.map +1 -1
  350. package/dist/lib/pty-server.js +5 -0
  351. package/dist/lib/pty-server.js.map +1 -1
  352. package/dist/lib/registry.d.ts +17 -0
  353. package/dist/lib/registry.d.ts.map +1 -1
  354. package/dist/lib/registry.js +17 -0
  355. package/dist/lib/registry.js.map +1 -1
  356. package/dist/lib/resources.d.ts +5 -0
  357. package/dist/lib/resources.d.ts.map +1 -1
  358. package/dist/lib/resources.js.map +1 -1
  359. package/dist/lib/rotate.d.ts +58 -0
  360. package/dist/lib/rotate.d.ts.map +1 -0
  361. package/dist/lib/rotate.js +93 -0
  362. package/dist/lib/rotate.js.map +1 -0
  363. package/dist/lib/routines.d.ts +30 -1
  364. package/dist/lib/routines.d.ts.map +1 -1
  365. package/dist/lib/routines.js +31 -4
  366. package/dist/lib/routines.js.map +1 -1
  367. package/dist/lib/runner.d.ts +14 -0
  368. package/dist/lib/runner.d.ts.map +1 -1
  369. package/dist/lib/runner.js +45 -11
  370. package/dist/lib/runner.js.map +1 -1
  371. package/dist/lib/sandbox.d.ts +16 -0
  372. package/dist/lib/sandbox.d.ts.map +1 -1
  373. package/dist/lib/sandbox.js +19 -2
  374. package/dist/lib/sandbox.js.map +1 -1
  375. package/dist/lib/scheduler.d.ts +8 -0
  376. package/dist/lib/scheduler.d.ts.map +1 -1
  377. package/dist/lib/scheduler.js +8 -0
  378. package/dist/lib/scheduler.js.map +1 -1
  379. package/dist/lib/secrets-bundles.d.ts +38 -0
  380. package/dist/lib/secrets-bundles.d.ts.map +1 -0
  381. package/dist/lib/secrets-bundles.js +176 -0
  382. package/dist/lib/secrets-bundles.js.map +1 -0
  383. package/dist/lib/secrets.d.ts +53 -0
  384. package/dist/lib/secrets.d.ts.map +1 -0
  385. package/dist/lib/secrets.js +140 -0
  386. package/dist/lib/secrets.js.map +1 -0
  387. package/dist/lib/session/__tests__/db.test.d.ts +2 -0
  388. package/dist/lib/session/__tests__/db.test.d.ts.map +1 -0
  389. package/dist/lib/session/__tests__/db.test.js +54 -0
  390. package/dist/lib/session/__tests__/db.test.js.map +1 -0
  391. package/dist/lib/session/__tests__/discover.test.js +54 -91
  392. package/dist/lib/session/__tests__/discover.test.js.map +1 -1
  393. package/dist/lib/session/__tests__/prompt.test.d.ts +2 -0
  394. package/dist/lib/session/__tests__/prompt.test.d.ts.map +1 -0
  395. package/dist/lib/session/__tests__/prompt.test.js +44 -0
  396. package/dist/lib/session/__tests__/prompt.test.js.map +1 -0
  397. package/dist/lib/session/__tests__/render.test.d.ts +2 -0
  398. package/dist/lib/session/__tests__/render.test.d.ts.map +1 -0
  399. package/dist/lib/session/__tests__/render.test.js +602 -0
  400. package/dist/lib/session/__tests__/render.test.js.map +1 -0
  401. package/dist/lib/session/artifacts.d.ts +15 -0
  402. package/dist/lib/session/artifacts.d.ts.map +1 -0
  403. package/dist/lib/session/artifacts.js +86 -0
  404. package/dist/lib/session/artifacts.js.map +1 -0
  405. package/dist/lib/session/db.d.ts +140 -0
  406. package/dist/lib/session/db.d.ts.map +1 -0
  407. package/dist/lib/session/db.js +599 -0
  408. package/dist/lib/session/db.js.map +1 -0
  409. package/dist/lib/session/discover.d.ts +44 -32
  410. package/dist/lib/session/discover.d.ts.map +1 -1
  411. package/dist/lib/session/discover.js +418 -464
  412. package/dist/lib/session/discover.js.map +1 -1
  413. package/dist/lib/session/parse.d.ts +11 -0
  414. package/dist/lib/session/parse.d.ts.map +1 -1
  415. package/dist/lib/session/parse.js +50 -0
  416. package/dist/lib/session/parse.js.map +1 -1
  417. package/dist/lib/session/prompt.d.ts +10 -0
  418. package/dist/lib/session/prompt.d.ts.map +1 -1
  419. package/dist/lib/session/prompt.js +38 -2
  420. package/dist/lib/session/prompt.js.map +1 -1
  421. package/dist/lib/session/prompt.test.d.ts +2 -0
  422. package/dist/lib/session/prompt.test.d.ts.map +1 -0
  423. package/dist/lib/session/prompt.test.js +57 -0
  424. package/dist/lib/session/prompt.test.js.map +1 -0
  425. package/dist/lib/session/render.d.ts +91 -10
  426. package/dist/lib/session/render.d.ts.map +1 -1
  427. package/dist/lib/session/render.js +708 -180
  428. package/dist/lib/session/render.js.map +1 -1
  429. package/dist/lib/session/team-filter.d.ts +35 -0
  430. package/dist/lib/session/team-filter.d.ts.map +1 -0
  431. package/dist/lib/session/team-filter.js +75 -0
  432. package/dist/lib/session/team-filter.js.map +1 -0
  433. package/dist/lib/session/team-filter.test.d.ts +2 -0
  434. package/dist/lib/session/team-filter.test.d.ts.map +1 -0
  435. package/dist/lib/session/team-filter.test.js +157 -0
  436. package/dist/lib/session/team-filter.test.js.map +1 -0
  437. package/dist/lib/session/types.d.ts +48 -6
  438. package/dist/lib/session/types.d.ts.map +1 -1
  439. package/dist/lib/session/types.js +9 -0
  440. package/dist/lib/session/types.js.map +1 -1
  441. package/dist/lib/shims.d.ts +73 -2
  442. package/dist/lib/shims.d.ts.map +1 -1
  443. package/dist/lib/shims.js +171 -25
  444. package/dist/lib/shims.js.map +1 -1
  445. package/dist/lib/skills.d.ts +68 -0
  446. package/dist/lib/skills.d.ts.map +1 -1
  447. package/dist/lib/skills.js +267 -1
  448. package/dist/lib/skills.js.map +1 -1
  449. package/dist/lib/state.d.ts +41 -2
  450. package/dist/lib/state.d.ts.map +1 -1
  451. package/dist/lib/state.js +63 -4
  452. package/dist/lib/state.js.map +1 -1
  453. package/dist/lib/subagents.d.ts +9 -0
  454. package/dist/lib/subagents.d.ts.map +1 -1
  455. package/dist/lib/subagents.js +9 -1
  456. package/dist/lib/subagents.js.map +1 -1
  457. package/dist/lib/teams/__tests__/oracle.test.d.ts +2 -0
  458. package/dist/lib/teams/__tests__/oracle.test.d.ts.map +1 -0
  459. package/dist/lib/teams/__tests__/oracle.test.js +89 -0
  460. package/dist/lib/teams/__tests__/oracle.test.js.map +1 -0
  461. package/dist/lib/teams/__tests__/supervisor.test.d.ts +2 -0
  462. package/dist/lib/teams/__tests__/supervisor.test.d.ts.map +1 -0
  463. package/dist/lib/teams/__tests__/supervisor.test.js +179 -0
  464. package/dist/lib/teams/__tests__/supervisor.test.js.map +1 -0
  465. package/dist/lib/teams/agents.d.ts +247 -0
  466. package/dist/lib/teams/agents.d.ts.map +1 -0
  467. package/dist/lib/teams/agents.js +1244 -0
  468. package/dist/lib/teams/agents.js.map +1 -0
  469. package/dist/lib/teams/api.d.ts +91 -0
  470. package/dist/lib/teams/api.d.ts.map +1 -0
  471. package/dist/lib/teams/api.js +239 -0
  472. package/dist/lib/teams/api.js.map +1 -0
  473. package/dist/lib/teams/cloud.d.ts +11 -0
  474. package/dist/lib/teams/cloud.d.ts.map +1 -0
  475. package/dist/lib/teams/cloud.js +169 -0
  476. package/dist/lib/teams/cloud.js.map +1 -0
  477. package/dist/lib/teams/debug.d.ts +8 -0
  478. package/dist/lib/teams/debug.d.ts.map +1 -0
  479. package/dist/lib/teams/debug.js +12 -0
  480. package/dist/lib/teams/debug.js.map +1 -0
  481. package/dist/lib/teams/file_ops.d.ts +13 -0
  482. package/dist/lib/teams/file_ops.d.ts.map +1 -0
  483. package/dist/lib/teams/file_ops.js +66 -0
  484. package/dist/lib/teams/file_ops.js.map +1 -0
  485. package/dist/lib/teams/index.d.ts +16 -0
  486. package/dist/lib/teams/index.d.ts.map +1 -0
  487. package/dist/lib/teams/index.js +15 -0
  488. package/dist/lib/teams/index.js.map +1 -0
  489. package/dist/lib/teams/oracle.d.ts +20 -0
  490. package/dist/lib/teams/oracle.d.ts.map +1 -0
  491. package/dist/lib/teams/oracle.js +59 -0
  492. package/dist/lib/teams/oracle.js.map +1 -0
  493. package/dist/lib/teams/parsers.d.ts +9 -0
  494. package/dist/lib/teams/parsers.d.ts.map +1 -0
  495. package/dist/lib/teams/parsers.js +837 -0
  496. package/dist/lib/teams/parsers.js.map +1 -0
  497. package/dist/lib/teams/persistence.d.ts +43 -0
  498. package/dist/lib/teams/persistence.d.ts.map +1 -0
  499. package/dist/lib/teams/persistence.js +299 -0
  500. package/dist/lib/teams/persistence.js.map +1 -0
  501. package/dist/lib/teams/ralph.d.ts +8 -0
  502. package/dist/lib/teams/ralph.d.ts.map +1 -0
  503. package/dist/lib/teams/ralph.js +59 -0
  504. package/dist/lib/teams/ralph.js.map +1 -0
  505. package/dist/lib/teams/registry.d.ts +18 -0
  506. package/dist/lib/teams/registry.d.ts.map +1 -0
  507. package/dist/lib/teams/registry.js +68 -0
  508. package/dist/lib/teams/registry.js.map +1 -0
  509. package/dist/lib/teams/summarizer.d.ts +73 -0
  510. package/dist/lib/teams/summarizer.d.ts.map +1 -0
  511. package/dist/lib/teams/summarizer.js +780 -0
  512. package/dist/lib/teams/summarizer.js.map +1 -0
  513. package/dist/lib/teams/supervisor.d.ts +49 -0
  514. package/dist/lib/teams/supervisor.d.ts.map +1 -0
  515. package/dist/lib/teams/supervisor.js +74 -0
  516. package/dist/lib/teams/supervisor.js.map +1 -0
  517. package/dist/lib/template.d.ts +8 -5
  518. package/dist/lib/template.d.ts.map +1 -1
  519. package/dist/lib/template.js +8 -5
  520. package/dist/lib/template.js.map +1 -1
  521. package/dist/lib/types.d.ts +58 -1
  522. package/dist/lib/types.d.ts.map +1 -1
  523. package/dist/lib/types.js +16 -1
  524. package/dist/lib/types.js.map +1 -1
  525. package/dist/lib/usage.d.ts +48 -0
  526. package/dist/lib/usage.d.ts.map +1 -1
  527. package/dist/lib/usage.js +103 -11
  528. package/dist/lib/usage.js.map +1 -1
  529. package/dist/lib/versions.d.ts +12 -1
  530. package/dist/lib/versions.d.ts.map +1 -1
  531. package/dist/lib/versions.js +91 -35
  532. package/dist/lib/versions.js.map +1 -1
  533. package/package.json +20 -6
  534. package/scripts/postinstall.js +1 -1
  535. package/scripts/rebuild-sqlite.sh +46 -0
  536. package/dist/commands/sessions.test.d.ts +0 -2
  537. package/dist/commands/sessions.test.d.ts.map +0 -1
  538. package/dist/commands/sessions.test.js +0 -53
  539. package/dist/commands/sessions.test.js.map +0 -1
@@ -1,9 +1,12 @@
1
1
  /**
2
- * Artifact action types and validation
3
- * Ported from agents/halo/cli/pkg/config
2
+ * Artifact action types and validation.
3
+ * Ported from agents/halo/cli/pkg/config.
4
+ *
5
+ * Artifact actions map tool invocations to artifact labels, allowing agents to
6
+ * trigger tools automatically when specific artifacts are produced.
4
7
  */
5
8
  /**
6
- * Validate artifact actions configuration
9
+ * Validate artifact actions configuration.
7
10
  * @param actions - List of artifact actions to validate
8
11
  * @param httpToolNames - Set of tool names defined in http_tools section
9
12
  * @param applicationTools - Set of valid application tool names
@@ -38,8 +41,8 @@ export function validateArtifactActions(actions, httpToolNames, applicationTools
38
41
  return errors;
39
42
  }
40
43
  /**
41
- * Validate template string uses only allowed patterns
42
- * Only allows {{artifact.X}} and {{preflight.X}} patterns
44
+ * Validate template string uses only allowed patterns.
45
+ * Only allows {{artifact.X}} and {{preflight.X}} patterns.
43
46
  */
44
47
  function validateTemplate(tmpl) {
45
48
  const re = /\{\{(\w+)\.(\w+)\}\}/g;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-actions.js","sourceRoot":"","sources":["../../src/lib/artifact-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyB,EACzB,aAA0B,EAC1B,gBAA6B;IAE7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,+BAA+B,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0DAA0D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,EAAE,GAAG,uBAAuB,CAAC;IACnC,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YACpD,OAAO,gCAAgC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC;QAC1G,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"artifact-actions.js","sourceRoot":"","sources":["../../src/lib/artifact-actions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyB,EACzB,aAA0B,EAC1B,gBAA6B;IAE7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,+BAA+B,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0DAA0D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,EAAE,GAAG,uBAAuB,CAAC;IACnC,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YACpD,OAAO,gCAAgC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC;QAC1G,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Codex Cloud provider -- wraps the `codex` CLI for cloud dispatch.
3
+ *
4
+ * Delegates to `codex cloud exec/status/list` subcommands, parsing their
5
+ * JSON or text output into the unified CloudTask format. Streaming is
6
+ * emulated via polling since Codex Cloud lacks an SSE endpoint.
7
+ */
8
+ import type { CloudProvider, CloudTask, CloudTaskStatus, CloudEvent, DispatchOptions } from './types.js';
9
+ export declare class CodexCloudProvider implements CloudProvider {
10
+ id: "codex";
11
+ name: string;
12
+ private defaultEnv?;
13
+ constructor(config?: {
14
+ env?: string;
15
+ });
16
+ supports(_options: DispatchOptions): boolean;
17
+ dispatch(options: DispatchOptions): Promise<CloudTask>;
18
+ status(taskId: string): Promise<CloudTask>;
19
+ list(filter?: {
20
+ status?: CloudTaskStatus;
21
+ }): Promise<CloudTask[]>;
22
+ stream(taskId: string): AsyncIterable<CloudEvent>;
23
+ cancel(_taskId: string): Promise<void>;
24
+ message(_taskId: string, _content: string): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/lib/cloud/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AA0EpB,qBAAa,kBAAmB,YAAW,aAAa;IACtD,EAAE,EAAG,OAAO,CAAU;IACtB,IAAI,SAAiB;IAErB,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAIrC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAItC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAgDtD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqB1C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgChE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IA+BlD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Codex Cloud provider -- wraps the `codex` CLI for cloud dispatch.
3
+ *
4
+ * Delegates to `codex cloud exec/status/list` subcommands, parsing their
5
+ * JSON or text output into the unified CloudTask format. Streaming is
6
+ * emulated via polling since Codex Cloud lacks an SSE endpoint.
7
+ */
8
+ import { spawn, execFileSync } from 'child_process';
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ import * as os from 'os';
12
+ import { resolveDispatchRepos } from './types.js';
13
+ const SHIMS_DIR = path.join(os.homedir(), '.agents', 'shims');
14
+ /** Map a Codex Cloud status string to the canonical CloudTaskStatus enum. */
15
+ function mapStatus(s) {
16
+ const lower = s.toLowerCase();
17
+ if (lower.includes('queued') || lower.includes('pending'))
18
+ return 'queued';
19
+ if (lower.includes('running') || lower.includes('in_progress'))
20
+ return 'running';
21
+ if (lower.includes('completed') || lower.includes('succeeded') || lower.includes('success'))
22
+ return 'completed';
23
+ if (lower.includes('failed') || lower.includes('error'))
24
+ return 'failed';
25
+ if (lower.includes('cancelled') || lower.includes('canceled'))
26
+ return 'cancelled';
27
+ return 'running';
28
+ }
29
+ /** Locate the codex binary, checking agents-cli shims first then PATH. */
30
+ function findCodexBinary() {
31
+ // Check agents-cli shims first
32
+ const shim = path.join(SHIMS_DIR, 'codex');
33
+ if (fs.existsSync(shim))
34
+ return shim;
35
+ // Check PATH via which
36
+ try {
37
+ return execFileSync('which', ['codex'], { stdio: 'pipe' }).toString().trim() || null;
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ /** Check whether the codex CLI is installed and reachable. */
44
+ function codexAvailable() {
45
+ return findCodexBinary() !== null;
46
+ }
47
+ /** Spawn the codex CLI with the given arguments and capture its output. */
48
+ function runCodex(args) {
49
+ const bin = findCodexBinary();
50
+ if (!bin)
51
+ return Promise.resolve({ stdout: '', stderr: 'codex not found', code: 127 });
52
+ return new Promise((resolve) => {
53
+ const proc = spawn(bin, args, { stdio: ['pipe', 'pipe', 'pipe'] });
54
+ let stdout = '';
55
+ let stderr = '';
56
+ proc.stdout.on('data', (d) => { stdout += d.toString(); });
57
+ proc.stderr.on('data', (d) => { stderr += d.toString(); });
58
+ proc.on('close', (code) => {
59
+ resolve({ stdout, stderr, code: code ?? 1 });
60
+ });
61
+ });
62
+ }
63
+ /** Best-effort parse of codex CLI output into task fields (tries JSON, then key:value lines). */
64
+ function parseTaskFromText(text) {
65
+ // Codex cloud list/status output varies. Try JSON first, then parse text.
66
+ try {
67
+ return JSON.parse(text);
68
+ }
69
+ catch {
70
+ // Parse text output line by line for key: value patterns
71
+ const result = {};
72
+ for (const line of text.split('\n')) {
73
+ const match = line.match(/^\s*(\w[\w\s]*\w)\s*[:=]\s*(.+)\s*$/);
74
+ if (match) {
75
+ result[match[1].toLowerCase().replace(/\s+/g, '_')] = match[2].trim();
76
+ }
77
+ }
78
+ return {
79
+ id: result.id || result.task_id,
80
+ status: result.status ? mapStatus(result.status) : undefined,
81
+ summary: result.summary || result.output,
82
+ };
83
+ }
84
+ }
85
+ export class CodexCloudProvider {
86
+ id = 'codex';
87
+ name = 'Codex Cloud';
88
+ defaultEnv;
89
+ constructor(config) {
90
+ this.defaultEnv = config?.env;
91
+ }
92
+ supports(_options) {
93
+ return codexAvailable();
94
+ }
95
+ async dispatch(options) {
96
+ const env = options.providerOptions?.env ?? this.defaultEnv;
97
+ if (!env) {
98
+ throw new Error('Codex Cloud requires --env <id>. Set a default in ~/.agents/agents.yaml under cloud.providers.codex.env.');
99
+ }
100
+ // Codex envs bundle their own repo list — the repos a task can touch are
101
+ // fixed at env-creation time, not per-dispatch. Passing 2+ repos here is
102
+ // almost always a misconfiguration: either the user meant to dispatch to
103
+ // Rush (which does support multi-repo), or they need to create/pick a
104
+ // Codex env that already contains those repos. Fail loudly rather than
105
+ // silently ignore the extras.
106
+ const repos = resolveDispatchRepos(options);
107
+ if (repos.length > 1) {
108
+ throw new Error(`Codex Cloud does not support multi-repo dispatch. Got ${repos.length} repos (${repos.join(', ')}). ` +
109
+ `Codex envs bundle repos at the env layer — either configure a Codex env that includes all of these repos, ` +
110
+ `or switch to --provider rush (which clones each repo into /workspace/<owner>/<name>/).`);
111
+ }
112
+ const args = ['cloud', 'exec', '--env', env];
113
+ if (options.branch)
114
+ args.push('--branch', options.branch);
115
+ args.push(options.prompt);
116
+ const { stdout, stderr, code } = await runCodex(args);
117
+ if (code !== 0) {
118
+ throw new Error(`codex cloud exec failed: ${stderr || stdout}`);
119
+ }
120
+ // Parse task ID from output. Codex typically prints the task ID.
121
+ const taskId = extractTaskId(stdout) ?? `codex-${Date.now()}`;
122
+ const now = new Date().toISOString();
123
+ return {
124
+ id: taskId,
125
+ provider: 'codex',
126
+ status: 'queued',
127
+ agent: 'codex',
128
+ prompt: options.prompt,
129
+ repo: repos[0],
130
+ repos: repos.length > 0 ? repos : undefined,
131
+ branch: options.branch,
132
+ createdAt: now,
133
+ updatedAt: now,
134
+ };
135
+ }
136
+ async status(taskId) {
137
+ const { stdout, stderr, code } = await runCodex(['cloud', 'status', taskId]);
138
+ if (code !== 0) {
139
+ throw new Error(`codex cloud status failed: ${stderr || stdout}`);
140
+ }
141
+ const parsed = parseTaskFromText(stdout);
142
+ const now = new Date().toISOString();
143
+ return {
144
+ id: taskId,
145
+ provider: 'codex',
146
+ status: parsed.status ?? 'running',
147
+ agent: 'codex',
148
+ prompt: parsed.prompt ?? '',
149
+ summary: parsed.summary,
150
+ createdAt: parsed.createdAt ?? now,
151
+ updatedAt: now,
152
+ };
153
+ }
154
+ async list(filter) {
155
+ const args = ['cloud', 'list', '--json', '--limit', '20'];
156
+ if (this.defaultEnv)
157
+ args.push('--env', this.defaultEnv);
158
+ const { stdout, stderr, code } = await runCodex(args);
159
+ if (code !== 0) {
160
+ throw new Error(`codex cloud list failed: ${stderr || stdout}`);
161
+ }
162
+ try {
163
+ const data = JSON.parse(stdout);
164
+ const tasks = (data.tasks ?? data ?? []).map((t) => ({
165
+ id: (t.id || t.task_id),
166
+ provider: 'codex',
167
+ status: mapStatus(t.status ?? ''),
168
+ agent: 'codex',
169
+ prompt: (t.prompt || t.query || ''),
170
+ branch: t.branch || undefined,
171
+ summary: t.summary || undefined,
172
+ createdAt: t.created_at || '',
173
+ updatedAt: t.updated_at || '',
174
+ }));
175
+ if (filter?.status) {
176
+ return tasks.filter((t) => t.status === filter.status);
177
+ }
178
+ return tasks;
179
+ }
180
+ catch {
181
+ return [];
182
+ }
183
+ }
184
+ async *stream(taskId) {
185
+ // Codex Cloud doesn't have SSE streaming. Poll status until terminal.
186
+ const terminalStatuses = new Set(['completed', 'failed', 'cancelled']);
187
+ let lastStatus = '';
188
+ while (true) {
189
+ try {
190
+ const task = await this.status(taskId);
191
+ if (task.status !== lastStatus) {
192
+ lastStatus = task.status;
193
+ yield {
194
+ type: terminalStatuses.has(task.status) ? 'done' : 'status',
195
+ data: JSON.stringify({ status: task.status, summary: task.summary }),
196
+ timestamp: new Date().toISOString(),
197
+ };
198
+ }
199
+ if (terminalStatuses.has(task.status))
200
+ break;
201
+ }
202
+ catch (err) {
203
+ yield {
204
+ type: 'error',
205
+ data: err instanceof Error ? err.message : String(err),
206
+ timestamp: new Date().toISOString(),
207
+ };
208
+ break;
209
+ }
210
+ // Poll every 5 seconds
211
+ await new Promise((r) => setTimeout(r, 5000));
212
+ }
213
+ }
214
+ async cancel(_taskId) {
215
+ // Codex Cloud doesn't expose a cancel command via CLI.
216
+ throw new Error('Cancel is not supported for Codex Cloud tasks via CLI.');
217
+ }
218
+ async message(_taskId, _content) {
219
+ throw new Error('Follow-up messages are not supported for Codex Cloud tasks.');
220
+ }
221
+ }
222
+ /** Extract a task ID from codex CLI output (JSON field, key:value line, or UUID pattern). */
223
+ function extractTaskId(output) {
224
+ // Try JSON first
225
+ try {
226
+ const data = JSON.parse(output);
227
+ return data.id || data.task_id;
228
+ }
229
+ catch {
230
+ // Look for UUID-like patterns or task IDs in the text
231
+ const match = output.match(/(?:task[_\s]?id|id)\s*[:=]\s*["']?([a-zA-Z0-9_-]+)/i)
232
+ || output.match(/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i)
233
+ || output.match(/(task_[a-zA-Z0-9]+)/i);
234
+ return match?.[1];
235
+ }
236
+ }
237
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/lib/cloud/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAQzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE9D,6EAA6E;AAC7E,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACjF,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IAChH,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;IAClF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0EAA0E;AAC1E,SAAS,eAAe;IACtB,+BAA+B;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,uBAAuB;IACvB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,SAAS,cAAc;IACrB,OAAO,eAAe,EAAE,KAAK,IAAI,CAAC;AACpC,CAAC;AAED,2EAA2E;AAC3E,SAAS,QAAQ,CAAC,IAAc;IAC9B,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAEvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iGAAiG;AACjG,SAAS,iBAAiB,CAAC,IAAY;IACrC,0EAA0E;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAChE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;QACD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM;SACzC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC7B,EAAE,GAAG,OAAgB,CAAC;IACtB,IAAI,GAAG,aAAa,CAAC;IAEb,UAAU,CAAU;IAE5B,YAAY,MAAyB;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,GAAG,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,QAAyB;QAChC,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;QAC9H,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,8BAA8B;QAC9B,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,yDAAyD,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACnG,4GAA4G;gBAC5G,wFAAwF,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,iEAAiE;QACjE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,OAAO;YACL,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,OAAO;YACL,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YAClC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;YAClC,SAAS,EAAE,GAAG;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAqC;QAC9C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC;gBACzF,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAW;gBACjC,QAAQ,EAAE,OAAgB;gBAC1B,MAAM,EAAE,SAAS,CAAE,CAAC,CAAC,MAAiB,IAAI,EAAE,CAAC;gBAC7C,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAW;gBAC7C,MAAM,EAAG,CAAC,CAAC,MAAiB,IAAI,SAAS;gBACzC,OAAO,EAAG,CAAC,CAAC,OAAkB,IAAI,SAAS;gBAC3C,SAAS,EAAG,CAAC,CAAC,UAAqB,IAAI,EAAE;gBACzC,SAAS,EAAG,CAAC,CAAC,UAAqB,IAAI,EAAE;aAC1C,CAAC,CAAC,CAAC;YAEJ,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAc;QAC1B,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACxF,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/B,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzB,MAAM;wBACJ,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;wBAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;wBACpE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC;gBACJ,CAAC;gBACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,MAAM;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM;oBACJ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACtD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;gBACF,MAAM;YACR,CAAC;YAED,uBAAuB;YACvB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,uDAAuD;QACvD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,QAAgB;QAC7C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;CACF;AAED,6FAA6F;AAC7F,SAAS,aAAa,CAAC,MAAc;IACnC,iBAAiB;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC;eAC5E,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC;eAC/E,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Factory/Droid cloud provider -- stub for Phase 2.
3
+ *
4
+ * Will dispatch tasks to a `droid daemon` running on a remote machine.
5
+ * All methods throw until the droid daemon API is documented and stable.
6
+ */
7
+ import type { CloudProvider, CloudTask, CloudTaskStatus, CloudEvent, DispatchOptions } from './types.js';
8
+ /**
9
+ * Factory/Droid cloud provider — stub for Phase 2.
10
+ *
11
+ * Integration path: `droid daemon` running on a remote machine (mac-mini, cloud VM, k8s pod).
12
+ * Dispatch via HTTP to the daemon, stream output, cancel via HTTP DELETE.
13
+ *
14
+ * Not yet implemented because:
15
+ * 1. Droid v0.104 has no cloud dispatch command (droid exec is local only)
16
+ * 2. droid daemon API isn't documented yet
17
+ * 3. droid computer register/ssh is the remote execution primitive but needs exploration
18
+ */
19
+ export declare class FactoryCloudProvider implements CloudProvider {
20
+ id: "factory";
21
+ name: string;
22
+ supports(_options: DispatchOptions): boolean;
23
+ dispatch(_options: DispatchOptions): Promise<CloudTask>;
24
+ status(_taskId: string): Promise<CloudTask>;
25
+ list(_filter?: {
26
+ status?: CloudTaskStatus;
27
+ }): Promise<CloudTask[]>;
28
+ stream(_taskId: string): AsyncIterable<CloudEvent>;
29
+ cancel(_taskId: string): Promise<void>;
30
+ message(_taskId: string, _content: string): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/lib/cloud/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,EAAE,EAAG,SAAS,CAAU;IACxB,IAAI,SAAqB;IAEzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAItC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAIvD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIjE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IAInD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Factory/Droid cloud provider -- stub for Phase 2.
3
+ *
4
+ * Will dispatch tasks to a `droid daemon` running on a remote machine.
5
+ * All methods throw until the droid daemon API is documented and stable.
6
+ */
7
+ /**
8
+ * Factory/Droid cloud provider — stub for Phase 2.
9
+ *
10
+ * Integration path: `droid daemon` running on a remote machine (mac-mini, cloud VM, k8s pod).
11
+ * Dispatch via HTTP to the daemon, stream output, cancel via HTTP DELETE.
12
+ *
13
+ * Not yet implemented because:
14
+ * 1. Droid v0.104 has no cloud dispatch command (droid exec is local only)
15
+ * 2. droid daemon API isn't documented yet
16
+ * 3. droid computer register/ssh is the remote execution primitive but needs exploration
17
+ */
18
+ export class FactoryCloudProvider {
19
+ id = 'factory';
20
+ name = 'Factory (Droid)';
21
+ supports(_options) {
22
+ return false;
23
+ }
24
+ async dispatch(_options) {
25
+ throw new Error('Factory cloud provider is not yet available. Coming in a future release.');
26
+ }
27
+ async status(_taskId) {
28
+ throw new Error('Factory cloud provider is not yet available.');
29
+ }
30
+ async list(_filter) {
31
+ return [];
32
+ }
33
+ async *stream(_taskId) {
34
+ throw new Error('Factory cloud provider is not yet available.');
35
+ }
36
+ async cancel(_taskId) {
37
+ throw new Error('Factory cloud provider is not yet available.');
38
+ }
39
+ async message(_taskId, _content) {
40
+ throw new Error('Factory cloud provider is not yet available.');
41
+ }
42
+ }
43
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/lib/cloud/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,oBAAoB;IAC/B,EAAE,GAAG,SAAkB,CAAC;IACxB,IAAI,GAAG,iBAAiB,CAAC;IAEzB,QAAQ,CAAC,QAAyB;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAsC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAe;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,QAAgB;QAC7C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Cloud provider registry.
3
+ *
4
+ * Reads the `cloud` section of agents.yaml, lazily instantiates provider
5
+ * implementations, and exposes lookup helpers used by the `agents cloud` commands.
6
+ */
7
+ import type { CloudProvider, CloudProviderId } from './types.js';
8
+ /** Look up a provider by ID, throwing if the ID is unknown. */
9
+ export declare function getProvider(id: CloudProviderId): CloudProvider;
10
+ /** Return the user's configured default provider, falling back to 'rush'. */
11
+ export declare function getDefaultProviderId(): CloudProviderId;
12
+ /** Return every registered provider (used by `agents cloud providers`). */
13
+ export declare function getAllProviders(): CloudProvider[];
14
+ /** Resolve the active provider from an explicit flag or the configured default. */
15
+ export declare function resolveProvider(explicit?: string): CloudProvider;
16
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/lib/cloud/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAyC9E,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,aAAa,CAO9D;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,IAAI,eAAe,CAGtD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAGjD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAGhE"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Cloud provider registry.
3
+ *
4
+ * Reads the `cloud` section of agents.yaml, lazily instantiates provider
5
+ * implementations, and exposes lookup helpers used by the `agents cloud` commands.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import * as os from 'os';
10
+ import * as yaml from 'yaml';
11
+ import { RushCloudProvider } from './rush.js';
12
+ import { CodexCloudProvider } from './codex.js';
13
+ import { FactoryCloudProvider } from './factory.js';
14
+ const META_FILE = path.join(os.homedir(), '.agents', 'agents.yaml');
15
+ let _config = null;
16
+ /** Parse the `cloud` section from agents.yaml, caching the result for the process lifetime. */
17
+ function loadCloudConfig() {
18
+ if (_config)
19
+ return _config;
20
+ if (!fs.existsSync(META_FILE)) {
21
+ _config = {};
22
+ return _config;
23
+ }
24
+ try {
25
+ const raw = fs.readFileSync(META_FILE, 'utf-8');
26
+ const data = yaml.parse(raw);
27
+ _config = data?.cloud ?? {};
28
+ }
29
+ catch {
30
+ _config = {};
31
+ }
32
+ return _config;
33
+ }
34
+ const providers = new Map();
35
+ /** Instantiate all provider implementations once, keyed by their ID. */
36
+ function initProviders() {
37
+ if (providers.size > 0)
38
+ return;
39
+ const config = loadCloudConfig();
40
+ providers.set('rush', new RushCloudProvider());
41
+ providers.set('codex', new CodexCloudProvider(config.providers?.codex));
42
+ providers.set('factory', new FactoryCloudProvider());
43
+ }
44
+ /** Look up a provider by ID, throwing if the ID is unknown. */
45
+ export function getProvider(id) {
46
+ initProviders();
47
+ const provider = providers.get(id);
48
+ if (!provider) {
49
+ throw new Error(`Unknown cloud provider: ${id}. Available: ${[...providers.keys()].join(', ')}`);
50
+ }
51
+ return provider;
52
+ }
53
+ /** Return the user's configured default provider, falling back to 'rush'. */
54
+ export function getDefaultProviderId() {
55
+ const config = loadCloudConfig();
56
+ return config.default_provider ?? 'rush';
57
+ }
58
+ /** Return every registered provider (used by `agents cloud providers`). */
59
+ export function getAllProviders() {
60
+ initProviders();
61
+ return [...providers.values()];
62
+ }
63
+ /** Resolve the active provider from an explicit flag or the configured default. */
64
+ export function resolveProvider(explicit) {
65
+ const id = (explicit ?? getDefaultProviderId());
66
+ return getProvider(id);
67
+ }
68
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/lib/cloud/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAEpE,IAAI,OAAO,GAAuB,IAAI,CAAC;AAEvC,+FAA+F;AAC/F,SAAS,eAAe;IACtB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QACxD,OAAO,GAAI,IAAI,EAAE,KAAqB,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,SAAS,GAAwC,IAAI,GAAG,EAAE,CAAC;AAEjE,wEAAwE;AACxE,SAAS,aAAa;IACpB,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO;IAE/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,EAAmB;IAC7C,aAAa,EAAE,CAAC;IAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe;IAC7B,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,oBAAoB,EAAE,CAAoB,CAAC;IACnE,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Rush Cloud provider -- dispatches tasks to the Factory Floor via api.prix.dev.
3
+ *
4
+ * Auth: reads the session token from ~/.rush/user.yaml (written by `rush login`).
5
+ * Requires the Rush GitHub App installed on the target repo.
6
+ */
7
+ import type { CloudProvider, CloudTask, CloudTaskStatus, CloudEvent, DispatchOptions } from './types.js';
8
+ /**
9
+ * Build the POST body for /api/v1/cloud-runs. Exported so tests can verify
10
+ * the back-compat shape (singular fields + repos[]) without needing real
11
+ * GitHub installations or a live Rush session. `findInstallation` is the
12
+ * only other I/O and it's tested by the halo/proxy integration suite.
13
+ */
14
+ export declare function buildDispatchBody(input: {
15
+ agent?: string;
16
+ prompt: string;
17
+ mode?: string;
18
+ resolvedRepos: Array<{
19
+ installation_id: number;
20
+ repo_owner: string;
21
+ repo_name: string;
22
+ }>;
23
+ }): Record<string, unknown>;
24
+ export declare class RushCloudProvider implements CloudProvider {
25
+ id: "rush";
26
+ name: string;
27
+ supports(_options: DispatchOptions): boolean;
28
+ dispatch(options: DispatchOptions): Promise<CloudTask>;
29
+ status(taskId: string): Promise<CloudTask>;
30
+ list(filter?: {
31
+ status?: CloudTaskStatus;
32
+ }): Promise<CloudTask[]>;
33
+ stream(taskId: string): AsyncIterable<CloudEvent>;
34
+ cancel(taskId: string): Promise<void>;
35
+ message(taskId: string, content: string): Promise<void>;
36
+ }
37
+ //# sourceMappingURL=rush.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rush.d.ts","sourceRoot":"","sources":["../../../src/lib/cloud/rush.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAiGpB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,KAAK,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiB1B;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,EAAE,EAAG,MAAM,CAAU;IACrB,IAAI,SAAgB;IAEpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAItC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAwDtD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAsB1C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAyBhE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IAWlD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO9D"}