@desplega.ai/agent-swarm 2.7.4 → 2.7.6

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 (326) hide show
  1. package/README.md +1 -1
  2. package/dist/acp-adapter-bp91d37f.js +15 -0
  3. package/dist/{actions-gfrr9vb7.js → actions-yj0eeaqh.js} +19 -18
  4. package/dist/{amp-adapter-0s58gm46.js → amp-adapter-4pg9h34q.js} +3 -3
  5. package/dist/{app-stvq692g.js → app-909e97cr.js} +3 -3
  6. package/dist/{assistant-5s37fr9n.js → assistant-qdyb5fyy.js} +32 -23
  7. package/dist/{boot-reembed-yzy1841n.js → boot-reembed-fk0s9z18.js} +1 -1
  8. package/dist/{boot-reembed-cv82gz7y.js → boot-reembed-gs1rzrnh.js} +1 -1
  9. package/dist/{boot-scrub-sweep-8k4q95ap.js → boot-scrub-sweep-4qfd4kfx.js} +4 -4
  10. package/dist/{boot-seeds-ftt9htah.js → boot-seeds-yr00k13d.js} +4 -4
  11. package/dist/{boxd-515v1t8z.js → boxd-vdmfssd9.js} +5 -5
  12. package/dist/{claude-adapter-t00wrzeh.js → claude-adapter-qta1f1xn.js} +7 -7
  13. package/dist/{claude-managed-adapter-g6vmjccb.js → claude-managed-adapter-dvs2xw5n.js} +2 -2
  14. package/dist/{claude-managed-setup-afpa82f7.js → claude-managed-setup-sc6j4dm0.js} +3 -3
  15. package/dist/{claude-sdk-session-vj0c2azx.js → claude-sdk-session-zgrz6yvc.js} +9175 -9076
  16. package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
  17. package/dist/{cli-edmm9d9y.js → cli-0at8w34w.js} +7 -7
  18. package/dist/{cli-a81qevyg.js → cli-0qatpy8q.js} +20 -36
  19. package/dist/{cli-bcz074zx.js → cli-0yv5z2pg.js} +1 -1
  20. package/dist/{cli-a4btqqft.js → cli-1b7btd38.js} +1 -1
  21. package/dist/{cli-a2jw6ee5.js → cli-1p89xny0.js} +1 -1
  22. package/dist/{cli-v726afdm.js → cli-2pnswgh8.js} +1 -1
  23. package/dist/{cli-jkt52mgt.js → cli-386tyxxg.js} +2 -2
  24. package/dist/{cli-az0bpf8p.js → cli-3ypk9vk1.js} +3 -3
  25. package/dist/{cli-wk9md5px.js → cli-436532ck.js} +4 -4
  26. package/dist/{cli-7n5sbw0z.js → cli-4necwtsv.js} +5 -5
  27. package/dist/cli-54t00gt8.js +151 -0
  28. package/dist/{cli-655xm9ms.js → cli-583frbyr.js} +1 -1
  29. package/dist/{cli-4r12t6w6.js → cli-5c4hjzne.js} +101 -4
  30. package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
  31. package/dist/{cli-rtk9g7av.js → cli-73jzwksr.js} +6 -2
  32. package/dist/{cli-jg0nfda6.js → cli-75gkpjvw.js} +52 -21
  33. package/dist/{cli-wcmnan2g.js → cli-89knwags.js} +5 -5
  34. package/dist/{cli-pwyevs29.js → cli-8bc1w0tw.js} +22 -21
  35. package/dist/{cli-t282jgab.js → cli-8snvgs5r.js} +41 -16
  36. package/dist/{cli-vqgnyh76.js → cli-98rw5dt5.js} +15 -3
  37. package/dist/{cli-9cctx1tn.js → cli-a22h291q.js} +1 -1
  38. package/dist/{cli-ycm6180s.js → cli-a7v854rf.js} +5 -3
  39. package/dist/{cli-98pke4vk.js → cli-ae7mrdf9.js} +2 -2
  40. package/dist/{cli-je8yeyc5.js → cli-bjb3z51z.js} +5 -5
  41. package/dist/{cli-mc97xy2s.js → cli-c60vetmm.js} +16 -4
  42. package/dist/{cli-j4kw3rsx.js → cli-cm5yqn35.js} +18 -0
  43. package/dist/{cli-wndv9p7g.js → cli-decfb6v8.js} +6 -6
  44. package/dist/{cli-h55y2bjc.js → cli-dhar9qay.js} +2 -2
  45. package/dist/{cli-8yy525ad.js → cli-drr5v6av.js} +2 -2
  46. package/dist/{cli-5gr1g711.js → cli-dxae2yg7.js} +2 -2
  47. package/dist/{cli-pe09p6dv.js → cli-e3r2neck.js} +8 -7
  48. package/dist/{cli-13jvmew3.js → cli-ekwks2vs.js} +7 -7
  49. package/dist/{cli-jg4p5t36.js → cli-es6va8jk.js} +121 -51
  50. package/dist/{cli-j4kt1mpb.js → cli-faxe6thg.js} +3 -3
  51. package/dist/{cli-tzrpv5sc.js → cli-ftyxyspd.js} +1 -1
  52. package/dist/cli-fw2w0kva.js +47 -0
  53. package/dist/{cli-2dfbv8qr.js → cli-fy6x31ps.js} +1 -0
  54. package/dist/{cli-aq58fk5m.js → cli-g83s9ewh.js} +7 -1
  55. package/dist/cli-gdhpcbhf.js +55 -0
  56. package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
  57. package/dist/{cli-8veytvbh.js → cli-he9wchme.js} +1 -1
  58. package/dist/{cli-k76tgq03.js → cli-hgaazk69.js} +2 -2
  59. package/dist/{cli-d2pzqej1.js → cli-hr2e2fft.js} +741 -7
  60. package/dist/{cli-dae4sbgy.js → cli-jm2vfpfd.js} +2 -2
  61. package/dist/{cli-1s1dqn1j.js → cli-k2gzwsj2.js} +297 -140
  62. package/dist/{cli-b1afgtj3.js → cli-kqdg1bsb.js} +3 -3
  63. package/dist/cli-m2z8jagn.js +12078 -0
  64. package/dist/{cli-mvckssyq.js → cli-m48g6p95.js} +5 -5
  65. package/dist/{cli-bwty35gx.js → cli-mthwvjre.js} +1 -1
  66. package/dist/{cli-41z8xwj0.js → cli-nhrvpaj7.js} +34 -8
  67. package/dist/{cli-ahd90bwt.js → cli-nwj0ee2w.js} +6 -6
  68. package/dist/{cli-kvtc7aez.js → cli-p5gp8pcx.js} +44 -14
  69. package/dist/{cli-avgcz4ra.js → cli-pd7vagab.js} +436 -171
  70. package/dist/{cli-zn15c46z.js → cli-q0k1w5zd.js} +1 -1
  71. package/dist/{cli-bq2pcphn.js → cli-rmmmrjkd.js} +1 -1
  72. package/dist/{cli-2qpvmmkw.js → cli-s0qnd4wv.js} +1 -1
  73. package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
  74. package/dist/{cli-1yekbyqm.js → cli-shpbx5ee.js} +283 -82
  75. package/dist/{cli-9y354g3j.js → cli-srye3vdt.js} +1 -1
  76. package/dist/{cli-byqfbnjw.js → cli-svj5090z.js} +9 -9
  77. package/dist/{cli-gcbdjt47.js → cli-vfym7wmz.js} +6 -6
  78. package/dist/{cli-v1yw3wha.js → cli-vvpx3gsx.js} +4 -4
  79. package/dist/{cli-a1fhj4n9.js → cli-w6dt9ged.js} +2 -2
  80. package/dist/{cli-1gm8jcyr.js → cli-waqbxg08.js} +5232 -68
  81. package/dist/{cli-5hjced2v.js → cli-wp9sp1qb.js} +6 -6
  82. package/dist/{cli-eny54typ.js → cli-wx3rhnm0.js} +1 -1
  83. package/dist/{cli-s0exq74r.js → cli-xbbndvjy.js} +3 -3
  84. package/dist/{cli-f255yaqn.js → cli-xds5f77d.js} +3 -3
  85. package/dist/{cli-0sbkss7h.js → cli-xnqgpshy.js} +2 -2
  86. package/dist/{cli-0fgr1w9b.js → cli-xnrwazav.js} +20 -3
  87. package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
  88. package/dist/{cli-cq1pf336.js → cli-yn4kxs06.js} +124 -11
  89. package/dist/{cli-224epwwf.js → cli-yx4kfngt.js} +3 -3
  90. package/dist/{cli-eqx6k993.js → cli-yy3rhsdw.js} +47 -13
  91. package/dist/{cli-36g23z21.js → cli-zbbwez0r.js} +4 -4
  92. package/dist/{cli-ktmvb20s.js → cli-zm72anhg.js} +12 -12
  93. package/dist/cli.js +26 -25
  94. package/dist/{codex-adapter-g0gctw29.js → codex-adapter-ayd1fb6h.js} +5 -5
  95. package/dist/{codex-hook-vrzz2xhr.js → codex-hook-9efm2x1m.js} +1 -1
  96. package/dist/{codex-login-0gg46ygn.js → codex-login-y0pmff1c.js} +1 -1
  97. package/dist/{codex-session-runner-dr2cxe1c.js → codex-session-runner-jesa32xc.js} +6 -6
  98. package/dist/{commands-1p07cvff.js → commands-hanewgf2.js} +9 -3
  99. package/dist/{controller-z0s7sv6r.js → controller-dt1n3c1q.js} +9 -4
  100. package/dist/{controllers-connect-x9kvvhyk.js → controllers-connect-xx8x64n5.js} +22 -21
  101. package/dist/{cursor-adapter-m5b98pvk.js → cursor-adapter-9s4dwwdw.js} +2 -2
  102. package/dist/{db-capk2raj.js → db-3vttcbv4.js} +3 -3
  103. package/dist/{db-rsh04kh3.js → db-9dv0g1ab.js} +12 -4
  104. package/dist/{devin-adapter-yxm87fe9.js → devin-adapter-r9phbnc9.js} +1 -1
  105. package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
  106. package/dist/{dispatcher-304q6fwa.js → dispatcher-tx9hd1sv.js} +18 -17
  107. package/dist/{docker-7rxt0rry.js → docker-c1a3gqmf.js} +91 -24
  108. package/dist/{dsh-adapter-btewem0y.js → dsh-adapter-007y4ejs.js} +2 -2
  109. package/dist/{e2b-renc0k8q.js → e2b-a19d28rz.js} +4 -4
  110. package/dist/{e2b-7fc9b9bd.js → e2b-we6hs6q5.js} +6 -6
  111. package/dist/{easter-egg-3d-fm1p3n4d.js → easter-egg-3d-rgbrqb8s.js} +1 -1
  112. package/dist/{embedding-space-s68v49ct.js → embedding-space-ny1e2940.js} +6 -6
  113. package/dist/{embeddings-4ms3604w.js → embeddings-2t386t13.js} +1 -1
  114. package/dist/{event-bus-dfjx2qdh.js → event-bus-g0ka3pbw.js} +1 -1
  115. package/dist/{execute-mcdgccjs.js → execute-pksh0ceh.js} +1 -1
  116. package/dist/{external-channel-9dxwfztn.js → external-channel-phgmhmd7.js} +2 -2
  117. package/dist/fx-adapter-fy8rr921.js +18 -0
  118. package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-8y3m3k4b.js} +1 -1
  119. package/dist/{google-vertex-jrtdh9gs.js → google-vertex-w3v98n7b.js} +1 -1
  120. package/dist/{grok-adapter-05ecv4h0.js → grok-adapter-q0abvpaj.js} +8 -8
  121. package/dist/handlers-by3sfxyx.js +32 -0
  122. package/dist/{heartbeat-3n94heh3.js → heartbeat-kadyek8p.js} +21 -20
  123. package/dist/{hook-aadrn69x.js → hook-5zs3msf6.js} +6 -6
  124. package/dist/{hook-zxwje86c.js → hook-9k551xnj.js} +4 -4
  125. package/dist/{http-xzxk9mst.js → http-mhz9vw1f.js} +272 -103
  126. package/dist/index-4f2pvxae.js +37 -0
  127. package/dist/index-98gz7tmp.js +30 -0
  128. package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
  129. package/dist/index-k08z2cak.js +33 -0
  130. package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
  131. package/dist/{index-d34f6r87.js → index-q361cg2f.js} +1 -1
  132. package/dist/{index-9j4zwcht.js → index-rvr00sg7.js} +168 -675
  133. package/dist/{index-qeb82z37.js → index-vdygbq10.js} +1 -1
  134. package/dist/{keepalive-w4aakbyk.js → keepalive-w56f32cg.js} +4 -4
  135. package/dist/lead-enq35nqp.js +70 -0
  136. package/dist/{maintenance-hbptpk6p.js → maintenance-7mdgxcea.js} +1 -1
  137. package/dist/{oauth-refresh-sweep-217semrv.js → oauth-refresh-sweep-29txy9vk.js} +3 -3
  138. package/dist/{onboard-vz2s5df3.js → onboard-kpsrkarj.js} +5 -5
  139. package/dist/{opencode-adapter-gtfd7d7v.js → opencode-adapter-j25vm3rr.js} +5 -5
  140. package/dist/{otel-impl-aefave37.js → otel-impl-6kkct7a8.js} +2 -2
  141. package/dist/{pi-mono-adapter-f8h5yseh.js → pi-mono-adapter-exhkzhn2.js} +117 -23
  142. package/dist/{pricing-refresh-m1yhh9ya.js → pricing-refresh-n2x7jh6k.js} +3 -3
  143. package/dist/{rbac-roles-rrw8twdz.js → rbac-roles-81ypx6es.js} +1 -1
  144. package/dist/{rbac-roles-svj72cdf.js → rbac-roles-b5htkjby.js} +2 -2
  145. package/dist/{render-v2-amwbnfxh.js → render-v2-qn6jmpk4.js} +3 -3
  146. package/dist/{resume-9cd6wf6z.js → resume-wd30wx23.js} +7 -7
  147. package/dist/{runtime-fp4vrx7m.js → runtime-4hsg7h60.js} +1 -1
  148. package/dist/{session-access-21t6yjyg.js → session-access-5qvfevhk.js} +4 -4
  149. package/dist/{session-source-backfill-pxbzcsc6.js → session-source-backfill-n1czavbr.js} +3 -3
  150. package/dist/{setup-4592tqz4.js → setup-dnb56qy5.js} +3 -3
  151. package/dist/{virtual-modules-gzfnpmnz.js → virtual-modules-76xxv9fs.js} +2 -2
  152. package/dist/{work-objects-t9tcf174.js → work-objects-4n21tfkm.js} +21 -20
  153. package/dist/{worker-follow-up-q32jh4yk.js → worker-follow-up-77hvzxww.js} +18 -17
  154. package/dist/worker-gg1576j3.js +70 -0
  155. package/dist/{x-b6wxntdt.js → x-vmmye1kb.js} +2 -2
  156. package/openapi.json +189 -32
  157. package/package.json +8 -7
  158. package/src/be/db/script-runs.ts +23 -0
  159. package/src/be/db/session-summaries.ts +8 -2
  160. package/src/be/db/session-tree.ts +174 -61
  161. package/src/be/db/session-visibility.ts +5 -4
  162. package/src/be/db/tasks/read.ts +122 -3
  163. package/src/be/db-client.ts +8 -5
  164. package/src/be/db.ts +23 -8
  165. package/src/be/memory/providers/sqlite-store.ts +49 -12
  166. package/src/be/migrations/259_session_summaries_open_tasks.sql +111 -0
  167. package/src/be/migrations/260_runtime_pool_cache.sql +20 -0
  168. package/src/be/migrations/262_session_visibility_indexes.sql +18 -0
  169. package/src/be/migrations/263_task_list_filter_index.sql +11 -0
  170. package/src/be/migrations/264_slack_thread_cover_index.sql +9 -0
  171. package/src/be/migrations/266_script_runs_source_task.sql +11 -0
  172. package/src/be/model-validation.ts +5 -1
  173. package/src/be/pricing-normalize.ts +7 -2
  174. package/src/be/runtime-pools/cache-cleanup.ts +109 -0
  175. package/src/be/runtime-pools/db.ts +65 -6
  176. package/src/be/runtime-pools/remote-controller.ts +5 -0
  177. package/src/be/runtime-pools/supervisor.ts +33 -2
  178. package/src/be/scripts/typecheck.ts +23 -0
  179. package/src/be/seed/schedules-seeder.ts +135 -9
  180. package/src/be/seed/workflows-seeder.ts +65 -1
  181. package/src/be/seed-pricing.ts +23 -0
  182. package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
  183. package/src/be/steering.ts +50 -3
  184. package/src/be/swarm-config-guard.ts +1 -0
  185. package/src/commands/controller.ts +4 -0
  186. package/src/commands/entrypoint-api-readiness.ts +74 -0
  187. package/src/commands/provider-credentials.ts +29 -2
  188. package/src/commands/runner.ts +86 -5
  189. package/src/extensions/contract-types.generated.ts +1 -1
  190. package/src/extensions/contract.ts +27 -1
  191. package/src/extensions/dispatcher.ts +4 -0
  192. package/src/http/agents.ts +1 -0
  193. package/src/http/index.ts +1 -1
  194. package/src/http/list-total-cache.ts +14 -7
  195. package/src/http/mcp-bridge.ts +4 -0
  196. package/src/http/memory.ts +38 -9
  197. package/src/http/script-runs.ts +174 -5
  198. package/src/http/status.ts +10 -2
  199. package/src/http/tasks.ts +4 -2
  200. package/src/integrations/chat-sdk/inbound.ts +15 -5
  201. package/src/integrations/chat-sdk/steering.ts +3 -1
  202. package/src/kv-reserved-namespaces.ts +2 -0
  203. package/src/prompts/base-prompt.ts +4 -1
  204. package/src/prompts/session-templates.ts +26 -0
  205. package/src/providers/acp-adapter.ts +190 -26
  206. package/src/providers/acp-targets.ts +306 -6
  207. package/src/providers/amp-adapter.ts +1 -1
  208. package/src/providers/codex-adapter.ts +9 -44
  209. package/src/providers/codex-oauth/flow.ts +24 -3
  210. package/src/providers/codex-oauth/storage.ts +56 -17
  211. package/src/providers/codex-oauth/subscription.ts +67 -0
  212. package/src/providers/fx-adapter.ts +211 -0
  213. package/src/providers/index.ts +5 -1
  214. package/src/providers/mcp-loopback-proxy.ts +94 -0
  215. package/src/providers/pi-mono-adapter.ts +98 -13
  216. package/src/providers/pricing-sources.md +8 -0
  217. package/src/providers/reasoning-effort.ts +17 -1
  218. package/src/providers/types.ts +2 -1
  219. package/src/runtime-providers/controller-protocol.ts +14 -1
  220. package/src/runtime-providers/controller.ts +5 -0
  221. package/src/runtime-providers/docker.ts +108 -23
  222. package/src/runtime-providers/types.ts +16 -0
  223. package/src/scheduler/scheduler.ts +36 -3
  224. package/src/script-workflows/workflow-ctx.ts +8 -0
  225. package/src/scripts-runtime/sdk-allowlist.ts +1 -0
  226. package/src/scripts-runtime/types/stdlib.d.ts +27 -0
  227. package/src/scripts-runtime/types/swarm-extension.d.ts +33 -0
  228. package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -0
  229. package/src/server-user.ts +1 -0
  230. package/src/server.ts +7 -0
  231. package/src/slack/assistant.ts +17 -1
  232. package/src/slack/commands.ts +5 -1
  233. package/src/slack/handlers.ts +53 -5
  234. package/src/slack/left-threads.ts +88 -0
  235. package/src/slack/steering.ts +3 -0
  236. package/src/slack/thread-buffer.ts +40 -16
  237. package/src/tasks/follow-up-redelegation-guard.ts +155 -0
  238. package/src/tests/acp-adapter.test.ts +79 -0
  239. package/src/tests/base-prompt.test.ts +12 -0
  240. package/src/tests/chat-sdk-inbound.test.ts +30 -0
  241. package/src/tests/chatgpt-subscription-model-groups.test.ts +62 -0
  242. package/src/tests/chatgpt-subscription-pi.test.ts +170 -0
  243. package/src/tests/chatgpt-subscription-session-bench.test.ts +198 -0
  244. package/src/tests/claude-artifacts-read-script.test.ts +209 -0
  245. package/src/tests/codex-oauth-credential-info.test.ts +40 -0
  246. package/src/tests/codex-oauth-refresh-egress.test.ts +194 -0
  247. package/src/tests/context-window.test.ts +7 -0
  248. package/src/tests/db-client.test.ts +21 -0
  249. package/src/tests/db-task-read-contract.test.ts +8 -2
  250. package/src/tests/db-task-write-contract.test.ts +5 -1
  251. package/src/tests/entrypoint-api-readiness.test.ts +416 -210
  252. package/src/tests/explicit-model-validation.test.ts +113 -8
  253. package/src/tests/extensions-run-context.test.ts +11 -0
  254. package/src/tests/extensions-steering.test.ts +353 -0
  255. package/src/tests/extensions-validate.test.ts +5 -0
  256. package/src/tests/fixtures/extensions/steering-policy/hooks.ts +39 -0
  257. package/src/tests/fixtures/extensions/steering-policy/manifest.json +7 -0
  258. package/src/tests/fixtures/fake-fx.ts +167 -0
  259. package/src/tests/fixtures/fx/acp-responses-recorded.json +157 -0
  260. package/src/tests/fixtures/fx/acp-updates-recorded.jsonl +15 -0
  261. package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
  262. package/src/tests/fx-adapter.test.ts +771 -0
  263. package/src/tests/grok-adapter.test.ts +36 -0
  264. package/src/tests/list-total-cache.test.ts +27 -2
  265. package/src/tests/mcp-loopback-proxy.test.ts +193 -0
  266. package/src/tests/memory-fts-populate.test.ts +11 -9
  267. package/src/tests/memory-retrieval-purge.test.ts +80 -0
  268. package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
  269. package/src/tests/model-tier-resolution.test.ts +3 -3
  270. package/src/tests/pricing-refresh.test.ts +5 -5
  271. package/src/tests/prompt-template-session.test.ts +5 -3
  272. package/src/tests/provider-registration.test.ts +2 -1
  273. package/src/tests/query-audit-plans.test.ts +30 -2
  274. package/src/tests/runtime-cache-cleanup.test.ts +367 -0
  275. package/src/tests/runtime-e2b-pools.test.ts +41 -0
  276. package/src/tests/runtime-pools-db.test.ts +98 -0
  277. package/src/tests/runtime-pools-http.test.ts +29 -0
  278. package/src/tests/runtime-providers-docker.test.ts +253 -0
  279. package/src/tests/runtime-remote-controller.test.ts +66 -2
  280. package/src/tests/runtime-supervisor.test.ts +66 -2
  281. package/src/tests/script-connections.test.ts +13 -0
  282. package/src/tests/script-runs-http.test.ts +684 -2
  283. package/src/tests/seed-model-profiles.test.ts +2 -2
  284. package/src/tests/seed-schedules.test.ts +138 -0
  285. package/src/tests/seed-scripts.test.ts +26 -0
  286. package/src/tests/session-cost-recompute-unit.test.ts +39 -0
  287. package/src/tests/session-costs-golden.test.ts +26 -0
  288. package/src/tests/session-summaries-plans.test.ts +120 -0
  289. package/src/tests/session-summaries.test.ts +72 -12
  290. package/src/tests/sessions-tree.test.ts +11 -3
  291. package/src/tests/slack-leave-thread.test.ts +571 -0
  292. package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
  293. package/src/tests/status.test.ts +11 -0
  294. package/src/tests/tasks-readable-row.test.ts +155 -0
  295. package/src/tests/tool-annotations.test.ts +2 -1
  296. package/src/tests/workflow-engine-v2.test.ts +42 -0
  297. package/src/tests/workflow-script-principal.test.ts +207 -7
  298. package/src/tools/send-task.ts +35 -47
  299. package/src/tools/slack-leave-thread.ts +104 -0
  300. package/src/tools/steer-task.ts +3 -2
  301. package/src/tools/task-dedup.ts +45 -21
  302. package/src/tools/tool-config.ts +2 -1
  303. package/src/types.ts +57 -0
  304. package/src/utils/codex-auth-failure.ts +30 -0
  305. package/src/utils/context-window.ts +4 -1
  306. package/src/utils/credentials.ts +7 -0
  307. package/src/utils/fx-models.ts +43 -0
  308. package/src/workflows/cooldown.ts +3 -2
  309. package/src/workflows/engine.ts +24 -9
  310. package/templates/schedules/dreaming-daily/config.json +1 -1
  311. package/templates/schedules/dreaming-daily/content.md +6 -14
  312. package/templates/skills/composio-google-docs/content.md +10 -0
  313. package/templates/skills/script-workflows/content.md +19 -1
  314. package/templates/skills/swarm-docs/content.md +2 -0
  315. package/templates/skills/swarm-scripts/SKILL.md +2 -0
  316. package/templates/skills/swarm-scripts/content.md +2 -0
  317. package/templates/workflows/dreaming/content.md +5 -1
  318. package/dist/acp-adapter-96dc64m2.js +0 -15
  319. package/dist/cli-dznrgaep.js +0 -30
  320. package/dist/cli-w3hcrxht.js +0 -6985
  321. package/dist/handlers-jg7v74ty.js +0 -31
  322. package/dist/index-8c1zbz59.js +0 -29
  323. package/dist/index-8k8tmfxd.js +0 -32
  324. package/dist/index-hq617xdj.js +0 -36
  325. package/dist/lead-567kw7x3.js +0 -68
  326. package/dist/worker-fjdqra6q.js +0 -68
@@ -7,21 +7,21 @@ import {
7
7
  tierConfigKey,
8
8
  init_model_tier_keys,
9
9
  init_db4
10
- } from "./cli-1s1dqn1j.js";
10
+ } from "./cli-k2gzwsj2.js";
11
11
  import {
12
12
  ensureRbacSeedsSynced2,
13
13
  init_rbac_roles
14
- } from "./cli-bq2pcphn.js";
14
+ } from "./cli-rmmmrjkd.js";
15
15
  import {
16
16
  seedPricingFromModelsDev,
17
17
  init_seed_pricing
18
- } from "./cli-mc97xy2s.js";
18
+ } from "./cli-c60vetmm.js";
19
19
  import {
20
20
  MODEL_TIERS,
21
21
  DEFAULT_MODEL_TIER_MAP,
22
22
  ProviderNameSchema,
23
23
  init_types4
24
- } from "./cli-41z8xwj0.js";
24
+ } from "./cli-nhrvpaj7.js";
25
25
  import {
26
26
  __esm
27
27
  } from "./cli-242037k3.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  workflowEventBus2,
3
3
  init_event_bus
4
- } from "./cli-eny54typ.js";
4
+ } from "./cli-wx3rhnm0.js";
5
5
  import {
6
6
  getDbClient2,
7
7
  isRuntimePoolsEnabled,
@@ -63,14 +63,14 @@ import {
63
63
  getStaleApprovalRequests2,
64
64
  upsertKv2,
65
65
  init_db4
66
- } from "./cli-1s1dqn1j.js";
66
+ } from "./cli-k2gzwsj2.js";
67
67
  import {
68
68
  listRuntimePools2,
69
69
  init_db2
70
- } from "./cli-cq1pf336.js";
70
+ } from "./cli-yn4kxs06.js";
71
71
  import {
72
72
  remediateStalledRuntime
73
- } from "./cli-t282jgab.js";
73
+ } from "./cli-8snvgs5r.js";
74
74
  import {
75
75
  repointTrackerSyncBySwarmId,
76
76
  init_tracker,
@@ -100,13 +100,13 @@ import {
100
100
  init_approval_cancel,
101
101
  canClaim,
102
102
  init_budget_admission
103
- } from "./cli-1yekbyqm.js";
103
+ } from "./cli-shpbx5ee.js";
104
104
  import {
105
105
  runScriptWithRunCredential,
106
106
  init_run_credential,
107
107
  runSavedScriptAsAgent,
108
108
  init_run_saved
109
- } from "./cli-d2pzqej1.js";
109
+ } from "./cli-hr2e2fft.js";
110
110
  import {
111
111
  runtimeStaleThresholdMinutes,
112
112
  countActiveRuntimeInstancesForAgent,
@@ -115,7 +115,7 @@ import {
115
115
  init_multi_runtime,
116
116
  createApprovalFollowUpTask,
117
117
  init_approval_notifications
118
- } from "./cli-pwyevs29.js";
118
+ } from "./cli-8bc1w0tw.js";
119
119
  import {
120
120
  isMultiRuntimeEnabled,
121
121
  init_multi_runtime2
@@ -124,13 +124,13 @@ import {
124
124
  recordIdentityEvent,
125
125
  mintToken,
126
126
  init_users
127
- } from "./cli-8yy525ad.js";
127
+ } from "./cli-drr5v6av.js";
128
128
  import {
129
129
  TERMINAL_TASK_STATUSES,
130
130
  OPEN_TASK_STATUSES,
131
131
  SUPERSEDED_WORKFLOW_TASK_REASON,
132
132
  init_types4
133
- } from "./cli-41z8xwj0.js";
133
+ } from "./cli-nhrvpaj7.js";
134
134
  import {
135
135
  DEFAULT_OPENROUTER_BASE_URL,
136
136
  getOpenRouterBaseUrl,
@@ -141,11 +141,11 @@ import {
141
141
  init_registry3,
142
142
  resolveTemplate,
143
143
  init_resolver
144
- } from "./cli-j4kw3rsx.js";
144
+ } from "./cli-cm5yqn35.js";
145
145
  import {
146
146
  init_package,
147
147
  package_default
148
- } from "./cli-pe09p6dv.js";
148
+ } from "./cli-e3r2neck.js";
149
149
  import {
150
150
  isEnvFlagEnabled,
151
151
  init_env_flag
@@ -153,7 +153,7 @@ import {
153
153
  import {
154
154
  scrubSecrets,
155
155
  init_secret_scrubber
156
- } from "./cli-a4btqqft.js";
156
+ } from "./cli-1b7btd38.js";
157
157
 
158
158
  // src/be/runtime-pools/routing.ts
159
159
  init_multi_runtime2();
package/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  use_app_default,
12
12
  Spinner,
13
13
  require_react_jsx_dev_runtime_development
14
- } from "./cli-82jg7fp9.js";
14
+ } from "./cli-he5nxaa8.js";
15
15
  import"./cli-v41kn3cd.js";
16
16
  import {
17
17
  setBedrockProviderModule,
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  scrubSecrets,
22
22
  init_secret_scrubber
23
- } from "./cli-a4btqqft.js";
23
+ } from "./cli-1b7btd38.js";
24
24
  import {
25
25
  __toESM,
26
26
  __commonJS
@@ -50,7 +50,7 @@ var import_react = __toESM(require_react(), 1);
50
50
  // package.json
51
51
  var package_default = {
52
52
  name: "@desplega.ai/agent-swarm",
53
- version: "2.7.4",
53
+ version: "2.7.6",
54
54
  description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
55
55
  keywords: [
56
56
  "agent-swarm.dev",
@@ -112,6 +112,7 @@ var package_default = {
112
112
  "packages/*"
113
113
  ],
114
114
  overrides: {
115
+ "@slack/socket-mode": "^2.0.7",
115
116
  react: "19.2.3",
116
117
  "react-dom": "19.2.3"
117
118
  },
@@ -228,12 +229,12 @@ var package_default = {
228
229
  },
229
230
  devDependencies: {
230
231
  "@biomejs/biome": "^2.3.10",
231
- "@desplega.ai/slack-mock": "^0.4.1",
232
+ "@desplega.ai/slack-mock": "^0.5.0",
232
233
  "@desplega/model-catalog": "workspace:*",
233
234
  "@desplega/model-routing": "workspace:*",
234
235
  "@faker-js/faker": "^10.4.0",
235
- "@opencode/plugin": "2.2.1",
236
- "@opencode/sdk": "2.2.1",
236
+ "@opencode/plugin": "2.2.3",
237
+ "@opencode/sdk": "2.2.3",
237
238
  "@oxlint/plugins": "1.78.0",
238
239
  "@types/bun": "latest",
239
240
  "dependency-cruiser": "^18.0.0",
@@ -251,9 +252,9 @@ var package_default = {
251
252
  bun: ">=1.3.12"
252
253
  },
253
254
  dependencies: {
254
- "@agentclientprotocol/sdk": "2.1.0",
255
+ "@agentclientprotocol/sdk": "2.2.0",
255
256
  "@ai-sdk/openai": "^3.0.41",
256
- "@anthropic-ai/claude-agent-sdk": "0.3.312",
257
+ "@anthropic-ai/claude-agent-sdk": "0.3.314",
257
258
  "@anthropic-ai/sdk": "^1.3.0",
258
259
  "@asteasolutions/zod-to-openapi": "^8.0.0",
259
260
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -272,7 +273,7 @@ var package_default = {
272
273
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
273
274
  "@linear/sdk": "^77.0.0",
274
275
  "@modelcontextprotocol/sdk": "1.32.1",
275
- "@openai/codex": "0.165.0",
276
+ "@openai/codex": "0.166.0",
276
277
  "@openfort/openfort-node": "^0.9.1",
277
278
  "@opentelemetry/api": "^1.9.1",
278
279
  "@opentelemetry/api-logs": "^0.218.0",
@@ -843,7 +844,7 @@ function McpServer({ port, apiKey, dbPath }) {
843
844
  if (dbPath) {
844
845
  process.env.DATABASE_PATH = dbPath;
845
846
  }
846
- import("./http-xzxk9mst.js").then(() => {
847
+ import("./http-mhz9vw1f.js").then(() => {
847
848
  setStatus("running");
848
849
  }).catch((err) => {
849
850
  setStatus("error");
@@ -930,7 +931,7 @@ function WorkerRunner({
930
931
  const { exit } = use_app_default();
931
932
  import_react.useEffect(() => {
932
933
  installConsoleScrub();
933
- import("./worker-fjdqra6q.js").then(({ runWorker }) => runWorker({
934
+ import("./worker-gg1576j3.js").then(({ runWorker }) => runWorker({
934
935
  prompt: prompt || undefined,
935
936
  yolo,
936
937
  systemPrompt: systemPrompt || undefined,
@@ -948,7 +949,7 @@ function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalAr
948
949
  const { exit } = use_app_default();
949
950
  import_react.useEffect(() => {
950
951
  installConsoleScrub();
951
- import("./lead-567kw7x3.js").then(({ runLead }) => runLead({
952
+ import("./lead-enq35nqp.js").then(({ runLead }) => runLead({
952
953
  prompt: prompt || undefined,
953
954
  yolo,
954
955
  systemPrompt: systemPrompt || undefined,
@@ -988,8 +989,8 @@ function LazyComponent({
988
989
  }
989
990
  return import_react.createElement(Component, props);
990
991
  }
991
- var loadOnboard = () => import("./onboard-vz2s5df3.js").then(({ Onboard }) => Onboard);
992
- var loadConnect = () => import("./setup-4592tqz4.js").then(({ Setup }) => Setup);
992
+ var loadOnboard = () => import("./onboard-kpsrkarj.js").then(({ Onboard }) => Onboard);
993
+ var loadConnect = () => import("./setup-dnb56qy5.js").then(({ Setup }) => Setup);
993
994
  function UnknownCommand({ command }) {
994
995
  const { exit } = use_app_default();
995
996
  import_react.useEffect(() => {
@@ -1121,19 +1122,19 @@ ${binName} docs \u2014 v${package_default.version}
1121
1122
  }
1122
1123
  process.exit(0);
1123
1124
  } else if (args.command === "hook") {
1124
- const { runHook } = await import("./hook-zxwje86c.js");
1125
+ const { runHook } = await import("./hook-9k551xnj.js");
1125
1126
  await runHook();
1126
1127
  } else if (args.command === "codex-hook") {
1127
- const { handleCodexHook } = await import("./codex-hook-vrzz2xhr.js");
1128
+ const { handleCodexHook } = await import("./codex-hook-9efm2x1m.js");
1128
1129
  await handleCodexHook();
1129
1130
  process.exit(process.exitCode ?? 0);
1130
1131
  } else if (args.command === "session-summary-stdin") {
1131
- const { runSessionSummaryFromStdin } = await import("./hook-aadrn69x.js");
1132
+ const { runSessionSummaryFromStdin } = await import("./hook-5zs3msf6.js");
1132
1133
  await runSessionSummaryFromStdin();
1133
1134
  process.exit(process.exitCode ?? 0);
1134
1135
  } else if (args.command === "x") {
1135
1136
  const xArgs = process.argv.slice(process.argv.indexOf("x") + 1);
1136
- const { runXCommand } = await import("./x-b6wxntdt.js");
1137
+ const { runXCommand } = await import("./x-vmmye1kb.js");
1137
1138
  await runXCommand(xArgs);
1138
1139
  } else if (args.command === "scripts") {
1139
1140
  const scriptsArgs = process.argv.slice(process.argv.indexOf("scripts") + 1);
@@ -1141,7 +1142,7 @@ ${binName} docs \u2014 v${package_default.version}
1141
1142
  printHelp("scripts");
1142
1143
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
1143
1144
  }
1144
- const { runScriptsMaintenanceCommand } = await import("./maintenance-hbptpk6p.js");
1145
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-7mdgxcea.js");
1145
1146
  await runScriptsMaintenanceCommand(scriptsArgs);
1146
1147
  console.log("Scripts re-embedded.");
1147
1148
  } else if (args.command === "rbac") {
@@ -1151,17 +1152,17 @@ ${binName} docs \u2014 v${package_default.version}
1151
1152
  printHelp("rbac");
1152
1153
  process.exit(args.showHelp ? 0 : 1);
1153
1154
  }
1154
- const { runRbacCliCommand } = await import("./rbac-roles-rrw8twdz.js");
1155
+ const { runRbacCliCommand } = await import("./rbac-roles-81ypx6es.js");
1155
1156
  await runRbacCliCommand(rbacArgs);
1156
1157
  } else if (args.command === "codex-login") {
1157
- const { runCodexLogin } = await import("./codex-login-0gg46ygn.js");
1158
+ const { runCodexLogin } = await import("./codex-login-y0pmff1c.js");
1158
1159
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1159
1160
  await runCodexLogin(codexLoginArgs);
1160
1161
  } else if (args.command === "codex-session-runner") {
1161
- const { runCodexSessionRunner } = await import("./codex-session-runner-dr2cxe1c.js");
1162
+ const { runCodexSessionRunner } = await import("./codex-session-runner-jesa32xc.js");
1162
1163
  await runCodexSessionRunner();
1163
1164
  } else if (args.command === "claude-managed-setup") {
1164
- const { runClaudeManagedSetup } = await import("./claude-managed-setup-afpa82f7.js");
1165
+ const { runClaudeManagedSetup } = await import("./claude-managed-setup-sc6j4dm0.js");
1165
1166
  const setupArgs = process.argv.slice(process.argv.indexOf("claude-managed-setup") + 1);
1166
1167
  await runClaudeManagedSetup(setupArgs);
1167
1168
  } else if (args.command === "worker-token") {
@@ -1169,11 +1170,11 @@ ${binName} docs \u2014 v${package_default.version}
1169
1170
  const tokenArgs = process.argv.slice(process.argv.indexOf("worker-token") + 1);
1170
1171
  process.exit(await runWorkerToken(tokenArgs));
1171
1172
  } else if (args.command === "e2b") {
1172
- const { runE2BCommand } = await import("./e2b-renc0k8q.js");
1173
+ const { runE2BCommand } = await import("./e2b-a19d28rz.js");
1173
1174
  const e2bArgs = process.argv.slice(process.argv.indexOf("e2b") + 1);
1174
1175
  await runE2BCommand(e2bArgs);
1175
1176
  } else if (args.command === "controller") {
1176
- const { runController } = await import("./controller-z0s7sv6r.js");
1177
+ const { runController } = await import("./controller-dt1n3c1q.js");
1177
1178
  await runController(process.argv.slice(process.argv.indexOf("controller") + 1));
1178
1179
  } else {
1179
1180
  render_default(/* @__PURE__ */ jsx_dev_runtime.jsxDEV(App, {
@@ -2,17 +2,17 @@ import {
2
2
  checkCodexCredentials2,
3
3
  createInProcessCodexSession2,
4
4
  CodexAdapter2
5
- } from "./cli-a81qevyg.js";
5
+ } from "./cli-0qatpy8q.js";
6
6
  import"./cli-4zsenjhy.js";
7
7
  import"./cli-kr5tjjtz.js";
8
8
  import"./cli-98rwmcyc.js";
9
9
  import"./cli-4bd1rck6.js";
10
10
  import"./cli-jc1g9ndz.js";
11
- import"./cli-j4kt1mpb.js";
11
+ import"./cli-faxe6thg.js";
12
12
  import"./cli-0726awxw.js";
13
- import"./cli-h55y2bjc.js";
14
- import"./cli-bwty35gx.js";
15
- import"./cli-vqgnyh76.js";
13
+ import"./cli-dhar9qay.js";
14
+ import"./cli-mthwvjre.js";
15
+ import"./cli-98rw5dt5.js";
16
16
  export {
17
17
  CodexAdapter2 as CodexAdapter,
18
18
  checkCodexCredentials2 as checkCodexCredentials,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  renderSteeringDelivery
4
- } from "./cli-tzrpv5sc.js";
4
+ } from "./cli-ftyxyspd.js";
5
5
  import {
6
6
  guardGhPrBody,
7
7
  guardGhPrRoom
@@ -8,7 +8,7 @@ import {
8
8
  loadAllCodexOAuthSlots,
9
9
  storeCodexOAuth,
10
10
  init_storage
11
- } from "./cli-jg0nfda6.js";
11
+ } from "./cli-75gkpjvw.js";
12
12
  import {
13
13
  getApiKey,
14
14
  init_api_key
@@ -1,20 +1,20 @@
1
- import"./cli-h55y2bjc.js";
2
- import"./cli-bwty35gx.js";
3
- import"./cli-j4kt1mpb.js";
1
+ import"./cli-dhar9qay.js";
2
+ import"./cli-mthwvjre.js";
3
+ import"./cli-faxe6thg.js";
4
4
  import {
5
5
  createInProcessCodexSession2
6
- } from "./cli-a81qevyg.js";
6
+ } from "./cli-0qatpy8q.js";
7
7
  import"./cli-jc1g9ndz.js";
8
8
  import"./cli-0726awxw.js";
9
9
  import"./cli-4bd1rck6.js";
10
10
  import"./cli-kr5tjjtz.js";
11
11
  import"./cli-98rwmcyc.js";
12
- import"./cli-vqgnyh76.js";
12
+ import"./cli-98rw5dt5.js";
13
13
  import"./cli-4zsenjhy.js";
14
14
  import {
15
15
  scrubSecrets,
16
16
  init_secret_scrubber
17
- } from "./cli-a4btqqft.js";
17
+ } from "./cli-1b7btd38.js";
18
18
 
19
19
  // src/commands/codex-session-runner.ts
20
20
  init_secret_scrubber();
@@ -2,12 +2,16 @@ import {
2
2
  getAllAgents2,
3
3
  getAllTasks2,
4
4
  init_db4
5
- } from "./cli-1s1dqn1j.js";
5
+ } from "./cli-k2gzwsj2.js";
6
6
  import {
7
7
  EXTERNAL_CHANNEL_BLOCKED_REPLY2,
8
8
  shouldBlockChannel2,
9
9
  init_external_channel
10
- } from "./cli-a1fhj4n9.js";
10
+ } from "./cli-w6dt9ged.js";
11
+ import {
12
+ isSlackLeaveThreadDisabled,
13
+ init_left_threads
14
+ } from "./cli-gdhpcbhf.js";
11
15
  import {
12
16
  isEnvFlagEnabled,
13
17
  init_env_flag
@@ -91,9 +95,10 @@ function registerCommandHandler(app) {
91
95
  • \`!now <message>\` in a thread — Flush buffer immediately, skip dependency queue
92
96
  • Follow-up tasks auto-depend on the active task in the thread for natural sequencing`);
93
97
  }
98
+ const leaveLine = isSlackLeaveThreadDisabled() ? "" : "\n• `!leave` in a thread - Make the swarm ignore that thread until someone @mentions it";
94
99
  sections.push(`*Commands:*
95
100
  • \`/agent-swarm-status\` - Show all agents and their current status
96
- • \`/agent-swarm-help\` - Show this help message`);
101
+ • \`/agent-swarm-help\` - Show this help message${leaveLine}`);
97
102
  const blocks = [
98
103
  {
99
104
  type: "header",
@@ -114,6 +119,7 @@ var init_commands = __esm(() => {
114
119
  init_db4();
115
120
  init_env_flag();
116
121
  init_external_channel();
122
+ init_left_threads();
117
123
  });
118
124
  init_commands();
119
125
 
@@ -3,20 +3,20 @@ import {
3
3
  CONTROLLER_PROTOCOL_VERSION,
4
4
  CONTROLLER_PING_INTERVAL_MS,
5
5
  ControllerServerMessageSchema
6
- } from "./cli-0fgr1w9b.js";
6
+ } from "./cli-xnrwazav.js";
7
7
  import {
8
8
  createRuntimeProvider,
9
9
  init_runtime_providers
10
- } from "./cli-b1afgtj3.js";
10
+ } from "./cli-kqdg1bsb.js";
11
11
  import {
12
12
  RuntimeProviderKindSchema,
13
13
  init_types4
14
- } from "./cli-41z8xwj0.js";
14
+ } from "./cli-nhrvpaj7.js";
15
15
  import {
16
16
  scrubSecrets,
17
17
  registerVolatileSecret,
18
18
  init_secret_scrubber
19
- } from "./cli-a4btqqft.js";
19
+ } from "./cli-1b7btd38.js";
20
20
 
21
21
  // src/commands/controller.ts
22
22
  init_runtime_providers();
@@ -24,6 +24,11 @@ init_types4();
24
24
  init_secret_scrubber();
25
25
  async function executeCommand(controller, command) {
26
26
  switch (command.op) {
27
+ case "release-cache":
28
+ if (!controller.releaseCache)
29
+ throw new Error("Controller does not support cache cleanup");
30
+ await controller.releaseCache(command.payload);
31
+ return {};
27
32
  case "provision":
28
33
  return await controller.provision(command.payload);
29
34
  case "terminate":
@@ -3,16 +3,16 @@ import {
3
3
  isRuntimePoolsEnabled,
4
4
  init_runtime_pools_flag,
5
5
  init_db4
6
- } from "./cli-1s1dqn1j.js";
6
+ } from "./cli-k2gzwsj2.js";
7
7
  import {
8
8
  CONTROLLER_PROTOCOL_VERSION,
9
9
  CONTROLLER_PING_INTERVAL_MS,
10
10
  ControllerClientMessageSchema
11
- } from "./cli-0fgr1w9b.js";
11
+ } from "./cli-xnrwazav.js";
12
12
  import {
13
13
  getRuntimeController2,
14
14
  init_db2
15
- } from "./cli-cq1pf336.js";
15
+ } from "./cli-yn4kxs06.js";
16
16
  import {
17
17
  remoteControllerSession,
18
18
  installRemoteController,
@@ -21,36 +21,37 @@ import {
21
21
  ensureRuntimeOwnerId,
22
22
  reconcileRemoteProvisions,
23
23
  reconcileControllerOrphans
24
- } from "./cli-t282jgab.js";
25
- import"./cli-a1fhj4n9.js";
26
- import"./cli-1gm8jcyr.js";
27
- import"./cli-eny54typ.js";
28
- import"./cli-mvckssyq.js";
24
+ } from "./cli-8snvgs5r.js";
25
+ import"./cli-w6dt9ged.js";
26
+ import"./cli-waqbxg08.js";
27
+ import"./cli-wx3rhnm0.js";
28
+ import"./cli-m48g6p95.js";
29
29
  import {
30
30
  resolveHttpRequestAuth,
31
31
  init_auth
32
- } from "./cli-1yekbyqm.js";
33
- import"./cli-bq2pcphn.js";
34
- import"./cli-36g23z21.js";
35
- import"./cli-wcmnan2g.js";
32
+ } from "./cli-shpbx5ee.js";
33
+ import"./cli-rmmmrjkd.js";
34
+ import"./cli-zbbwez0r.js";
35
+ import"./cli-89knwags.js";
36
36
  import"./cli-3xj33nrx.js";
37
37
  import {
38
38
  route,
39
39
  init_route_def
40
- } from "./cli-7n5sbw0z.js";
41
- import"./cli-mc97xy2s.js";
42
- import"./cli-d2pzqej1.js";
43
- import"./cli-0sbkss7h.js";
44
- import"./cli-pwyevs29.js";
45
- import"./cli-k76tgq03.js";
40
+ } from "./cli-4necwtsv.js";
41
+ import"./cli-c60vetmm.js";
42
+ import"./cli-hr2e2fft.js";
43
+ import"./cli-xnqgpshy.js";
44
+ import"./cli-8bc1w0tw.js";
45
+ import"./cli-gdhpcbhf.js";
46
+ import"./cli-hgaazk69.js";
46
47
  import {
47
48
  registerSessionTokenConnection,
48
49
  init_session_token_connections
49
- } from "./cli-8yy525ad.js";
50
+ } from "./cli-drr5v6av.js";
50
51
  import {
51
52
  import_websocket_server,
52
53
  init_wrapper2
53
- } from "./cli-dznrgaep.js";
54
+ } from "./cli-69szn7w7.js";
54
55
  import {
55
56
  getApiKey,
56
57
  init_api_key
@@ -58,7 +59,7 @@ import {
58
59
  import {
59
60
  scrubSecrets,
60
61
  init_secret_scrubber
61
- } from "./cli-a4btqqft.js";
62
+ } from "./cli-1b7btd38.js";
62
63
 
63
64
  // src/http/controllers-connect.ts
64
65
  init_wrapper2();
@@ -2,9 +2,9 @@ import {
2
2
  checkCursorCredentials2,
3
3
  liveTestCursorKey2,
4
4
  CursorAdapter2
5
- } from "./cli-5hjced2v.js";
5
+ } from "./cli-wp9sp1qb.js";
6
6
  import"./cli-jc1g9ndz.js";
7
- import"./cli-vqgnyh76.js";
7
+ import"./cli-98rw5dt5.js";
8
8
  export {
9
9
  CursorAdapter2 as CursorAdapter,
10
10
  checkCursorCredentials2 as checkCursorCredentials,
@@ -19,9 +19,9 @@ import {
19
19
  createPoolAgent2,
20
20
  loadRuntimeControllerSecrets2,
21
21
  init_db2
22
- } from "./cli-cq1pf336.js";
23
- import"./cli-8yy525ad.js";
24
- import"./cli-1s1dqn1j.js";
22
+ } from "./cli-yn4kxs06.js";
23
+ import"./cli-drr5v6av.js";
24
+ import"./cli-k2gzwsj2.js";
25
25
  init_db2();
26
26
 
27
27
  export {
@@ -96,7 +96,9 @@ import {
96
96
  getLatestActiveTaskByContextKey2,
97
97
  getLatestLeadTaskByContextKey2,
98
98
  getMostRecentTaskInThread2,
99
- findCompletedTaskInThread2,
99
+ findCompletedTasksInThread2,
100
+ findRecentFailedTaskInThread2,
101
+ countAgentDispatchesInThread2,
100
102
  findRecentCancelledTaskInThread2,
101
103
  AssetKeyMovesBlockedError2,
102
104
  assertAssetKeyMovesAllowed2,
@@ -128,6 +130,8 @@ import {
128
130
  recordKeySeatMismatch2,
129
131
  recordKeyValidation2,
130
132
  getScriptRunExecutionArgs2,
133
+ getScriptRunFollowUpGuard2,
134
+ setScriptRunFollowUpGuard2,
131
135
  literalPrefixPattern2,
132
136
  getSlackRenderV2ActivatedAt2,
133
137
  ensureSlackRenderV2Activation2,
@@ -510,13 +514,13 @@ import {
510
514
  countScriptRunJournalSteps2,
511
515
  countScriptRunJournalAgentTaskSteps2,
512
516
  init_db4
513
- } from "./cli-1s1dqn1j.js";
517
+ } from "./cli-k2gzwsj2.js";
514
518
  import {
515
519
  generateDefaultClaudeMd2,
516
520
  generateDefaultSoulMd2,
517
521
  generateDefaultIdentityMd2,
518
522
  generateDefaultToolsMd2
519
- } from "./cli-ycm6180s.js";
523
+ } from "./cli-a7v854rf.js";
520
524
  init_db4();
521
525
 
522
526
  export {
@@ -562,6 +566,7 @@ export {
562
566
  completeTask2 as completeTask,
563
567
  computeContentHash2 as computeContentHash,
564
568
  countActiveScriptRuns2 as countActiveScriptRuns,
569
+ countAgentDispatchesInThread2 as countAgentDispatchesInThread,
565
570
  countAllMetrics2 as countAllMetrics,
566
571
  countAllPages2 as countAllPages,
567
572
  countKv2 as countKv,
@@ -636,9 +641,10 @@ export {
636
641
  failPendingResumeIfUnclaimed2 as failPendingResumeIfUnclaimed,
637
642
  failTask2 as failTask,
638
643
  findActiveTasksByVcs2 as findActiveTasksByVcs,
639
- findCompletedTaskInThread2 as findCompletedTaskInThread,
644
+ findCompletedTasksInThread2 as findCompletedTasksInThread,
640
645
  findExistingLinearTrackerContextWork2 as findExistingLinearTrackerContextWork,
641
646
  findRecentCancelledTaskInThread2 as findRecentCancelledTaskInThread,
647
+ findRecentFailedTaskInThread2 as findRecentFailedTaskInThread,
642
648
  findRecentSimilarTasks2 as findRecentSimilarTasks,
643
649
  findTaskByAgentMailThread2 as findTaskByAgentMailThread,
644
650
  findTaskByGitHub2 as findTaskByGitHub,
@@ -787,6 +793,7 @@ export {
787
793
  getScriptRun2 as getScriptRun,
788
794
  getScriptRunByIdempotencyKey2 as getScriptRunByIdempotencyKey,
789
795
  getScriptRunExecutionArgs2 as getScriptRunExecutionArgs,
796
+ getScriptRunFollowUpGuard2 as getScriptRunFollowUpGuard,
790
797
  getScriptRunJournalStep2 as getScriptRunJournalStep,
791
798
  getServiceByAgentAndName2 as getServiceByAgentAndName,
792
799
  getServiceById2 as getServiceById,
@@ -979,6 +986,7 @@ export {
979
986
  setApiKeyPlan2 as setApiKeyPlan,
980
987
  setBudgetRefusalFollowUpTaskId2 as setBudgetRefusalFollowUpTaskId,
981
988
  setFavorite2 as setFavorite,
989
+ setScriptRunFollowUpGuard2 as setScriptRunFollowUpGuard,
982
990
  setSlackMessageTracking2 as setSlackMessageTracking,
983
991
  setUserFavorite2 as setUserFavorite,
984
992
  settleSupersededTaskDependents2 as settleSupersededTaskDependents,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  checkDevinCredentials2,
3
3
  DevinAdapter2
4
- } from "./cli-9y354g3j.js";
4
+ } from "./cli-srye3vdt.js";
5
5
  export {
6
6
  DevinAdapter2 as DevinAdapter,
7
7
  checkDevinCredentials2 as checkDevinCredentials
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  wrapper_default,
3
3
  init_wrapper2
4
- } from "./cli-dznrgaep.js";
4
+ } from "./cli-69szn7w7.js";
5
5
  import {
6
6
  __toESM,
7
7
  __commonJS