@desplega.ai/agent-swarm 2.2.0 → 2.4.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 (266) hide show
  1. package/README.md +1 -0
  2. package/dist/{acp-adapter-k0vwfyvn.js → acp-adapter-kedstxx6.js} +6 -6
  3. package/dist/{actions-w4pnb8vz.js → actions-vget6r1k.js} +18 -16
  4. package/dist/{amp-adapter-0cmxb2t5.js → amp-adapter-xeb5mktv.js} +2 -2
  5. package/dist/{app-zneem7g9.js → app-mqap8t8m.js} +3 -3
  6. package/dist/{assistant-wbzd2rnr.js → assistant-h0gv97mv.js} +20 -18
  7. package/dist/{boot-reembed-4kx69j3g.js → boot-reembed-qr8a894z.js} +1 -1
  8. package/dist/{boot-reembed-db0wwgy1.js → boot-reembed-rj85jjhw.js} +1 -1
  9. package/dist/{boot-scrub-sweep-tfv4d3mm.js → boot-scrub-sweep-eyfvn6v9.js} +3 -3
  10. package/dist/{boot-seeds-w2hmkxn5.js → boot-seeds-xs9a8dx1.js} +4 -4
  11. package/dist/{claude-adapter-5qrc2paq.js → claude-adapter-bm23cye7.js} +5 -5
  12. package/dist/{claude-managed-adapter-n7ahjyx6.js → claude-managed-adapter-1mwrsm9d.js} +2 -2
  13. package/dist/{claude-managed-setup-7ra32em4.js → claude-managed-setup-gkfgks4j.js} +1 -1
  14. package/dist/{claude-sdk-session-cd02gc76.js → claude-sdk-session-apb4ypz3.js} +5 -5
  15. package/dist/cli-02vhhssk.js +848 -0
  16. package/dist/{cli-4ync7m60.js → cli-0ebey9hg.js} +1 -1
  17. package/dist/{cli-665j3feb.js → cli-0xk505e8.js} +1 -1
  18. package/dist/{cli-8c1m9mhy.js → cli-1cevz46c.js} +5 -5
  19. package/dist/{cli-gzvb3d4a.js → cli-1jx0srjt.js} +3 -3
  20. package/dist/{cli-zj4d6afs.js → cli-1pa3rz69.js} +21 -6
  21. package/dist/{cli-vmbakbq0.js → cli-2rwet3r7.js} +1 -1
  22. package/dist/{cli-azs9bhc5.js → cli-3wjs22x3.js} +2 -2
  23. package/dist/{cli-tba8fxf9.js → cli-4fhyq711.js} +45 -36
  24. package/dist/{cli-ak4c12mh.js → cli-5ff2sjyt.js} +1 -1
  25. package/dist/{cli-6q7pyd3k.js → cli-5s5hx57y.js} +5 -3
  26. package/dist/{cli-h23mr2s6.js → cli-6ftrrwm1.js} +9 -371
  27. package/dist/{cli-9ac0mkg5.js → cli-8b9wvjps.js} +1 -1
  28. package/dist/cli-8cxkw1f5.js +382 -0
  29. package/dist/{cli-xhgtay7w.js → cli-8rwvksbc.js} +2 -2
  30. package/dist/{cli-e09hj50q.js → cli-8wkb09q5.js} +11 -11
  31. package/dist/{cli-ksrphveb.js → cli-a1esmmee.js} +14 -2
  32. package/dist/{cli-xnp2vkx7.js → cli-avmqhatn.js} +7 -7
  33. package/dist/{cli-xx13gqf3.js → cli-b80a1100.js} +1 -1
  34. package/dist/{cli-z1hh99j0.js → cli-bfc3k1x5.js} +3 -3
  35. package/dist/{cli-0k9rcwfy.js → cli-bhwa8rzc.js} +33 -15
  36. package/dist/{cli-8cvvytad.js → cli-bn26xbcs.js} +2 -2
  37. package/dist/{cli-k28p6xh7.js → cli-c8fwpgqb.js} +1 -1
  38. package/dist/{cli-rc3r0bnh.js → cli-ccn0eybf.js} +1 -1
  39. package/dist/{cli-9td5ss65.js → cli-dsgj3e7a.js} +2 -2
  40. package/dist/{cli-jrk8mj0t.js → cli-ecshf504.js} +2 -2
  41. package/dist/{cli-raejy0mp.js → cli-eqgfs202.js} +1 -1
  42. package/dist/{cli-ppapy34w.js → cli-f3nx1h8z.js} +2 -2
  43. package/dist/{cli-c9vrwcpb.js → cli-ffbrkh1r.js} +74 -35
  44. package/dist/{cli-mnry16kh.js → cli-kk2r80n5.js} +4 -4
  45. package/dist/{cli-c0dpzwnx.js → cli-kz116kvw.js} +3 -3
  46. package/dist/{cli-e5y285rg.js → cli-mvg2hf8p.js} +4 -4
  47. package/dist/{cli-2jm992rm.js → cli-mz1ezzzh.js} +2 -2
  48. package/dist/{cli-dw0njd9q.js → cli-nme7wery.js} +6 -6
  49. package/dist/{cli-mvsfbbgq.js → cli-nrrg0fvy.js} +18 -4
  50. package/dist/{cli-8jtrekpy.js → cli-p1m2b6gc.js} +7 -7
  51. package/dist/{cli-4c7k75rq.js → cli-rg7ntypm.js} +378 -84
  52. package/dist/{cli-z3dk189k.js → cli-rsd7ga7v.js} +10 -8
  53. package/dist/{cli-etvn5ej2.js → cli-sppc0cmw.js} +1 -1
  54. package/dist/{cli-8w65vwee.js → cli-tg9ksbn8.js} +1 -1
  55. package/dist/{cli-th8krqbf.js → cli-tgvpmnwz.js} +2 -2
  56. package/dist/{cli-hwc4a9xm.js → cli-tj4j2ts4.js} +6 -6
  57. package/dist/{cli-jhhb2v9n.js → cli-ttaz6c7m.js} +2 -2
  58. package/dist/{cli-w7z94e6c.js → cli-tx00c0h6.js} +4 -2
  59. package/dist/{cli-4g629sgr.js → cli-wrv09v7q.js} +20 -1
  60. package/dist/{cli-cby329ny.js → cli-wyrr38xm.js} +2 -2
  61. package/dist/{cli-5ks6x36q.js → cli-x1p5dhq2.js} +3 -3
  62. package/dist/{cli-bddxamg7.js → cli-x719j3vs.js} +220 -629
  63. package/dist/{cli-ztcxv5nv.js → cli-xfe63zx3.js} +1 -1
  64. package/dist/{cli-q6gw45wj.js → cli-ywyrffff.js} +1 -1
  65. package/dist/{cli-p46xdr1m.js → cli-zvze9rbm.js} +1 -1
  66. package/dist/cli.js +15 -15
  67. package/dist/{codex-adapter-m0fx3v3s.js → codex-adapter-pp2gq8gr.js} +3 -3
  68. package/dist/{codex-hook-x6tm6y5m.js → codex-hook-qwzccd64.js} +1 -1
  69. package/dist/{codex-session-runner-j9m2gfyy.js → codex-session-runner-0vzn09t8.js} +3 -3
  70. package/dist/{commands-ktnqwrv4.js → commands-psqhkttb.js} +2 -2
  71. package/dist/{controller-nex2he8v.js → controller-t20vz2k8.js} +2 -2
  72. package/dist/{controllers-connect-6yhwqv9v.js → controllers-connect-gkxmqw9d.js} +24 -20
  73. package/dist/{cursor-adapter-02s5ekva.js → cursor-adapter-3v542qe5.js} +1 -1
  74. package/dist/{db-jvr86v7f.js → db-2xbyenjr.js} +2 -2
  75. package/dist/{db-19tw9r5s.js → db-nc1rd869.js} +3 -2
  76. package/dist/{dispatcher-d3mnsg2y.js → dispatcher-ewceb8ts.js} +17 -15
  77. package/dist/{dsh-adapter-63rvej88.js → dsh-adapter-75xwh78t.js} +1 -1
  78. package/dist/{easter-egg-3d-6hg2r942.js → easter-egg-3d-xsc47jwf.js} +1 -1
  79. package/dist/{execute-bcqc69a5.js → execute-gzmw1mnw.js} +1 -1
  80. package/dist/{external-channel-44cwer32.js → external-channel-a5dsmxn4.js} +2 -2
  81. package/dist/{google-generative-ai-phpmwxvg.js → google-generative-ai-bmq8gkf3.js} +1 -1
  82. package/dist/{google-vertex-es9ybgdy.js → google-vertex-b1rvp52s.js} +1 -1
  83. package/dist/{grok-adapter-ysp907f6.js → grok-adapter-vj88xr23.js} +7 -7
  84. package/dist/handlers-zbs90bny.js +39 -0
  85. package/dist/{heartbeat-2etacsqq.js → heartbeat-t2m9r3wa.js} +20 -18
  86. package/dist/{hook-mzxxs5n2.js → hook-8femx1bg.js} +4 -4
  87. package/dist/{hook-3kvmax6d.js → hook-xa677f8r.js} +5 -5
  88. package/dist/{http-fn978m0g.js → http-xpmmq028.js} +940 -269
  89. package/dist/{index-e4tsa1h7.js → index-8pwc1jc8.js} +17 -15
  90. package/dist/{index-w2wr89xd.js → index-cdzyfrsp.js} +1 -1
  91. package/dist/{index-1r8hw4vd.js → index-dg2tmj99.js} +17 -15
  92. package/dist/index-nxa6me0q.js +41 -0
  93. package/dist/{index-039x2sag.js → index-s7ckdajq.js} +42 -14
  94. package/dist/{index-wgsw9xcz.js → index-syztqdt6.js} +1 -1
  95. package/dist/{index-x0q2a4f9.js → index-ysd45kgc.js} +1 -1
  96. package/dist/{index-g909y089.js → index-zgvqzjsw.js} +8 -8
  97. package/dist/{keepalive-d4nzs76x.js → keepalive-3nr4st3r.js} +3 -3
  98. package/dist/{lead-8h5n9k5f.js → lead-td8h2sfn.js} +33 -31
  99. package/dist/{maintenance-ea6jfw42.js → maintenance-verwpe2c.js} +1 -1
  100. package/dist/{oauth-refresh-sweep-3f25djq3.js → oauth-refresh-sweep-9q2t0y3q.js} +2 -2
  101. package/dist/{onboard-pvk7hdb2.js → onboard-aytqedmq.js} +2 -2
  102. package/dist/{opencode-adapter-eeesgfqk.js → opencode-adapter-f4hryjny.js} +4 -4
  103. package/dist/{otel-impl-qb7nhgdp.js → otel-impl-hckw4wt1.js} +1 -1
  104. package/dist/{pi-mono-adapter-zasp3ze3.js → pi-mono-adapter-hxby0ce1.js} +6 -6
  105. package/dist/{pricing-refresh-6ehwkcmp.js → pricing-refresh-5nvme3sm.js} +3 -3
  106. package/dist/{rbac-roles-km0f9cmm.js → rbac-roles-pd8c26m1.js} +5 -3
  107. package/dist/{rbac-roles-9648nh00.js → rbac-roles-vbpy21mg.js} +2 -2
  108. package/dist/{render-v2-xkze1wef.js → render-v2-7nqgvk2q.js} +3 -3
  109. package/dist/{resume-tq0bbvt5.js → resume-b6djcj3c.js} +6 -6
  110. package/dist/{runtime-ar8310ba.js → runtime-txrxc9za.js} +1 -1
  111. package/dist/session-access-fc3f9y12.js +25 -0
  112. package/dist/{setup-rnrazxvd.js → setup-n39szm6b.js} +1 -1
  113. package/dist/{virtual-modules-wzk6jf3a.js → virtual-modules-wyp2k6z3.js} +2 -2
  114. package/dist/{work-objects-e75q2rqs.js → work-objects-jem2fre0.js} +20 -18
  115. package/dist/{worker-4ww4hjef.js → worker-wr6xgfr2.js} +33 -31
  116. package/openapi.json +1011 -115
  117. package/package.json +2 -2
  118. package/src/apps/action-caller.ts +6 -0
  119. package/src/apps/script-types.ts +16 -3
  120. package/src/be/asset-key-audit.ts +4 -13
  121. package/src/be/db/active-sessions.ts +5 -0
  122. package/src/be/db/session-visibility.ts +29 -0
  123. package/src/be/db/tasks/read.ts +61 -3
  124. package/src/be/db/tasks/write.ts +15 -6
  125. package/src/be/db.ts +149 -66
  126. package/src/be/events.ts +11 -0
  127. package/src/be/migrations/227_inbox_item_state_last_read_at.sql +1 -0
  128. package/src/be/migrations/230_session_shares.sql +23 -0
  129. package/src/be/rbac-roles.ts +2 -0
  130. package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +22 -4
  131. package/src/be/session-shares.ts +244 -0
  132. package/src/be/swarm-config-guard.ts +23 -2
  133. package/src/commands/runner.ts +11 -0
  134. package/src/heartbeat/heartbeat.ts +25 -7
  135. package/src/http/active-sessions.ts +13 -2
  136. package/src/http/agents.ts +10 -3
  137. package/src/http/all-routes.ts +1 -0
  138. package/src/http/api-keys.ts +3 -1
  139. package/src/http/approval-requests.ts +2 -1
  140. package/src/http/apps.ts +36 -11
  141. package/src/http/assets.ts +26 -4
  142. package/src/http/config.ts +3 -0
  143. package/src/http/context.ts +2 -0
  144. package/src/http/core.ts +39 -2
  145. package/src/http/events.ts +6 -2
  146. package/src/http/favorite-owner.ts +1 -1
  147. package/src/http/fs.ts +38 -3
  148. package/src/http/inbox-state.ts +58 -8
  149. package/src/http/index.ts +3 -1
  150. package/src/http/memory.ts +3 -1
  151. package/src/http/ranking.ts +367 -0
  152. package/src/http/realtime.ts +26 -21
  153. package/src/http/route-def.ts +77 -11
  154. package/src/http/script-runs.ts +2 -1
  155. package/src/http/scripts.ts +8 -0
  156. package/src/http/session-access.ts +179 -0
  157. package/src/http/session-data.ts +10 -2
  158. package/src/http/sessions.ts +212 -12
  159. package/src/http/stats.ts +7 -3
  160. package/src/http/tasks.ts +83 -7
  161. package/src/http/used-by.ts +11 -3
  162. package/src/kv-reserved-namespaces.ts +1 -0
  163. package/src/prompts/session-templates.ts +3 -1
  164. package/src/providers/amp-adapter.ts +1 -1
  165. package/src/ranking/telemetry-ranking.ts +147 -0
  166. package/src/ranking/usage.ts +57 -0
  167. package/src/rbac/admission.ts +22 -7
  168. package/src/rbac/legacy-policy.ts +2 -0
  169. package/src/rbac/permissions.ts +9 -0
  170. package/src/realtime/auth.ts +69 -0
  171. package/src/realtime/tickets.ts +4 -1
  172. package/src/realtime/transport.ts +77 -9
  173. package/src/slack/blocks.ts +18 -0
  174. package/src/slack/dm.ts +29 -0
  175. package/src/telemetry-contract/EVENTS.md +3 -0
  176. package/src/telemetry-contract/SOURCE.json +37 -4
  177. package/src/telemetry-contract/catalog.json +69 -0
  178. package/src/telemetry-contract/ranking/fixtures/expected.json +30 -0
  179. package/src/telemetry-contract/ranking/fixtures/invalid/bad-category.json +11 -0
  180. package/src/telemetry-contract/ranking/fixtures/invalid/bad-claim.json +11 -0
  181. package/src/telemetry-contract/ranking/fixtures/invalid/blank-description.json +11 -0
  182. package/src/telemetry-contract/ranking/fixtures/invalid/blank-name.json +11 -0
  183. package/src/telemetry-contract/ranking/fixtures/invalid/description-too-long.json +11 -0
  184. package/src/telemetry-contract/ranking/fixtures/invalid/domain-uppercase.json +11 -0
  185. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-scheme.json +11 -0
  186. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-www.json +11 -0
  187. package/src/telemetry-contract/ranking/fixtures/invalid/http-source-url.json +11 -0
  188. package/src/telemetry-contract/ranking/fixtures/invalid/missing-description.json +10 -0
  189. package/src/telemetry-contract/ranking/fixtures/invalid/missing-version.json +10 -0
  190. package/src/telemetry-contract/ranking/fixtures/invalid/name-not-string.json +11 -0
  191. package/src/telemetry-contract/ranking/fixtures/invalid/name-too-long.json +11 -0
  192. package/src/telemetry-contract/ranking/fixtures/invalid/not-object.json +1 -0
  193. package/src/telemetry-contract/ranking/fixtures/invalid/null.json +1 -0
  194. package/src/telemetry-contract/ranking/fixtures/invalid/other-with-subcategory.json +11 -0
  195. package/src/telemetry-contract/ranking/fixtures/invalid/oversize.json +1 -0
  196. package/src/telemetry-contract/ranking/fixtures/invalid/short-claim.json +11 -0
  197. package/src/telemetry-contract/ranking/fixtures/invalid/subcategory-other-category.json +11 -0
  198. package/src/telemetry-contract/ranking/fixtures/invalid/trailing-data.json +1 -0
  199. package/src/telemetry-contract/ranking/fixtures/invalid/unknown-field.json +12 -0
  200. package/src/telemetry-contract/ranking/fixtures/invalid/unsupported-version.json +11 -0
  201. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-not-date.json +11 -0
  202. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-offset.json +11 -0
  203. package/src/telemetry-contract/ranking/fixtures/invalid/wrong-case-field.json +11 -0
  204. package/src/telemetry-contract/ranking/fixtures/valid/category-without-subcategory.json +11 -0
  205. package/src/telemetry-contract/ranking/fixtures/valid/full.json +11 -0
  206. package/src/telemetry-contract/ranking/fixtures/valid/minimal.json +11 -0
  207. package/src/telemetry-contract/ranking/fixtures/valid/padded-text.json +11 -0
  208. package/src/telemetry-contract/ranking/fixtures/valid/unicode-name.json +11 -0
  209. package/src/telemetry-contract/ranking/listing.v1.schema.json +61 -0
  210. package/src/telemetry-contract/ranking/taxonomy.json +8 -0
  211. package/src/telemetry-contract/ranking-taxonomy.gen.ts +11 -0
  212. package/src/telemetry-contract/types.gen.ts +708 -1
  213. package/src/telemetry.ts +26 -2
  214. package/src/tests/apps-rbac.test.ts +189 -2
  215. package/src/tests/apps-script-types.test.ts +16 -3
  216. package/src/tests/asset-key-api.test.ts +128 -0
  217. package/src/tests/asset-key-invariants.test.ts +179 -3
  218. package/src/tests/asset-key-migration.test.ts +35 -0
  219. package/src/tests/check-pr-body.test.ts +23 -0
  220. package/src/tests/check-ranking-entry.test.ts +146 -0
  221. package/src/tests/db-extraction-contract.test.ts +1 -0
  222. package/src/tests/db-task-read-contract.test.ts +1 -0
  223. package/src/tests/docs-index-footprint.test.js +2 -2
  224. package/src/tests/heartbeat-checklist.test.ts +88 -0
  225. package/src/tests/heartbeat-jev-gate.test.ts +394 -10
  226. package/src/tests/inbox-state.test.ts +167 -0
  227. package/src/tests/kv-tool.test.ts +15 -0
  228. package/src/tests/org-identity.test.ts +44 -0
  229. package/src/tests/ranking-listing.test.ts +112 -0
  230. package/src/tests/ranking-route.test.ts +319 -0
  231. package/src/tests/ranking-usage.test.ts +50 -0
  232. package/src/tests/rbac-admission-e2e.test.ts +8 -0
  233. package/src/tests/rbac-admission.test.ts +38 -0
  234. package/src/tests/rbac-charact-http.test.ts +4 -3
  235. package/src/tests/rbac-engine.test.ts +2 -0
  236. package/src/tests/rbac-roles.test.ts +2 -0
  237. package/src/tests/realtime-room-surfaces.test.ts +3 -1
  238. package/src/tests/realtime-session-join-race.test.ts +142 -0
  239. package/src/tests/realtime-tickets.test.ts +24 -17
  240. package/src/tests/realtime-transport.test.ts +91 -0
  241. package/src/tests/script-connections.test.ts +2 -0
  242. package/src/tests/session-route-posture.test.ts +639 -0
  243. package/src/tests/session-sharing-routes.test.ts +282 -0
  244. package/src/tests/session-sharing.test.ts +526 -0
  245. package/src/tests/sessions-detail-batch.test.ts +7 -1
  246. package/src/tests/slack-tool-blocks.test.ts +101 -0
  247. package/src/tests/slack-update.test.ts +55 -0
  248. package/src/tests/slack-user-dm.test.ts +177 -0
  249. package/src/tests/used-by-route.test.ts +10 -0
  250. package/src/tools/slack-post.ts +18 -12
  251. package/src/tools/slack-read.ts +13 -1
  252. package/src/tools/slack-reply.ts +7 -10
  253. package/src/tools/slack-start-thread.ts +18 -11
  254. package/src/tools/slack-update.ts +2 -9
  255. package/src/types.ts +37 -0
  256. package/src/utils/org-identity.ts +33 -0
  257. package/templates/skills/apps/SKILL.md +17 -0
  258. package/templates/skills/apps/content.md +17 -0
  259. package/templates/skills/code-quality/content.md +2 -2
  260. package/templates/skills/pages/content.md +4 -0
  261. package/templates/skills/swarm-scripts/SKILL.md +6 -0
  262. package/templates/skills/swarm-scripts/content.md +6 -0
  263. package/dist/handlers-t5pbabwf.js +0 -37
  264. package/dist/index-qyjbb7br.js +0 -39
  265. package/dist/{cli-n5mrsg0f.js → cli-60cgh1rv.js} +3 -3
  266. /package/dist/{cli-j0v75y13.js → cli-y83zk5sb.js} +0 -0
@@ -64,8 +64,9 @@ import {
64
64
  resolveApprovalRequest2,
65
65
  getExpiredPendingApprovals2,
66
66
  getStaleApprovalRequests2,
67
+ upsertKv2,
67
68
  init_db3
68
- } from "./cli-4c7k75rq.js";
69
+ } from "./cli-rg7ntypm.js";
69
70
  import {
70
71
  poolTaskRunsOnHarness,
71
72
  isRuntimePoolWakeable,
@@ -90,32 +91,34 @@ import {
90
91
  createRerouteDecisionTask,
91
92
  createPoolStarvationDecisionTask,
92
93
  canClaim
93
- } from "./cli-bddxamg7.js";
94
+ } from "./cli-x719j3vs.js";
94
95
  import {
95
- mintToken,
96
- init_users,
97
96
  listRuntimePools2,
98
97
  init_db
99
- } from "./cli-h23mr2s6.js";
98
+ } from "./cli-6ftrrwm1.js";
100
99
  import {
101
100
  createApprovalFollowUpTask
102
- } from "./cli-hwc4a9xm.js";
101
+ } from "./cli-tj4j2ts4.js";
103
102
  import {
104
103
  remediateStalledRuntime
105
- } from "./cli-z3dk189k.js";
104
+ } from "./cli-rsd7ga7v.js";
106
105
  import {
107
106
  runSavedScriptAsAgent
108
- } from "./cli-mvsfbbgq.js";
107
+ } from "./cli-nrrg0fvy.js";
108
+ import {
109
+ mintToken,
110
+ init_users
111
+ } from "./cli-8cxkw1f5.js";
109
112
  import {
110
113
  TERMINAL_TASK_STATUSES,
111
114
  init_types
112
- } from "./cli-ksrphveb.js";
115
+ } from "./cli-a1esmmee.js";
113
116
  import {
114
117
  registerTemplate,
115
118
  init_registry,
116
119
  resolveTemplate,
117
120
  init_resolver
118
- } from "./cli-w7z94e6c.js";
121
+ } from "./cli-tx00c0h6.js";
119
122
  import {
120
123
  DEFAULT_OPENROUTER_BASE_URL,
121
124
  getOpenRouterBaseUrl,
@@ -124,7 +127,7 @@ import {
124
127
  import {
125
128
  init_package,
126
129
  package_default
127
- } from "./cli-2jm992rm.js";
130
+ } from "./cli-mz1ezzzh.js";
128
131
  import {
129
132
  isEnvFlagEnabled,
130
133
  init_env_flag
@@ -1347,6 +1350,7 @@ async function gatherSystemStatus(options) {
1347
1350
  }
1348
1351
  }
1349
1352
  const recentFailures = await getRecentFailedTasks2(6);
1353
+ const renderedFailures = recentFailures.slice(0, 10);
1350
1354
  if (recentFailures.length > 0) {
1351
1355
  sections.push("");
1352
1356
  sections.push("## Recent Failures (last 6h) [auto-generated]");
@@ -1367,10 +1371,12 @@ async function gatherSystemStatus(options) {
1367
1371
  }
1368
1372
  }
1369
1373
  sections.push("");
1370
- for (const task of recentFailures.slice(0, 10)) {
1374
+ for (const task of renderedFailures) {
1371
1375
  const agentSlice = task.agentId?.slice(0, 8) ?? "unassigned";
1372
1376
  const reason = task.failureReason?.slice(0, 100) ?? "no reason";
1373
- sections.push(`- [${task.id.slice(0, 8)}] "${task.task.slice(0, 50)}" — agent: ${agentSlice}, reason: ${reason}, at: ${task.finishedAt}`);
1377
+ const line = `- [${task.id.slice(0, 8)}] "${task.task.slice(0, 50)}" — agent: ${agentSlice}, reason: ${reason}, at: ${task.finishedAt}`;
1378
+ sections.push(line);
1379
+ options?.reportedFailures?.push({ id: task.id, line });
1374
1380
  }
1375
1381
  if (recentFailures.length > 10) {
1376
1382
  sections.push(`- ... and ${recentFailures.length - 10} more`);
@@ -1527,7 +1533,8 @@ async function checkHeartbeatChecklist2() {
1527
1533
  console.log(`[Heartbeat] Checklist skipped for lead ${lead.name}: quiet tick`);
1528
1534
  return;
1529
1535
  }
1530
- let systemStatus = await gatherSystemStatus();
1536
+ const reportedFailures = [];
1537
+ let systemStatus = await gatherSystemStatus({ reportedFailures });
1531
1538
  if (gateMode === "enforce" && gate?.verdict === "wake" && gate.summary) {
1532
1539
  const findings = resolveTemplate("heartbeat.checklist.gate_findings", {
1533
1540
  gate_summary: gate.summary
@@ -1543,7 +1550,7 @@ ${findings.text}`;
1543
1550
  });
1544
1551
  if (result.skipped)
1545
1552
  return;
1546
- await createTaskExtended2(result.text, {
1553
+ const task = await createTaskExtended2(result.text, {
1547
1554
  agentId: lead.id,
1548
1555
  routingReason: "skill",
1549
1556
  routingSource: "engine_default",
@@ -1552,6 +1559,17 @@ ${findings.text}`;
1552
1559
  tags: ["checklist", "auto-generated", ...gate ? [`heartbeat-gate:${gate.verdict}`] : []],
1553
1560
  priority: 60
1554
1561
  });
1562
+ try {
1563
+ await upsertKv2({
1564
+ namespace: "heartbeat-checklist:reported-failures",
1565
+ key: task.id,
1566
+ value: reportedFailures.filter(({ line }) => result.text.includes(line)).map(({ id }) => id),
1567
+ valueType: "json",
1568
+ expiresAt: Date.now() + 7 * 24 * 3600000
1569
+ });
1570
+ } catch (err) {
1571
+ console.error(`[Heartbeat] Failed to save reported failures for checklist ${task.id}:`, err);
1572
+ }
1555
1573
  console.log(`[Heartbeat] Checklist task created for lead ${lead.name}`);
1556
1574
  }
1557
1575
  async function runHeartbeatSweep2() {
@@ -13206,9 +13206,9 @@ var anthropicMessagesApi = () => lazyApi(() => import("./anthropic-messages-g6pq
13206
13206
  // node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js
13207
13207
  var azureOpenAIResponsesApi = () => lazyApi(() => import("./azure-openai-responses-9dbmj346.js"));
13208
13208
  // node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js
13209
- var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-phpmwxvg.js"));
13209
+ var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-bmq8gkf3.js"));
13210
13210
  // node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js
13211
- var googleVertexApi = () => lazyApi(() => import("./google-vertex-es9ybgdy.js"));
13211
+ var googleVertexApi = () => lazyApi(() => import("./google-vertex-b1rvp52s.js"));
13212
13212
  // node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js
13213
13213
  var mistralConversationsApi = () => lazyApi(() => import("./mistral-conversations-1medfwv7.js"));
13214
13214
  // node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js
@@ -13,7 +13,7 @@ import {
13
13
  claudeMdLineageOf,
14
14
  planClaudeMdSync,
15
15
  init_profile_sync
16
- } from "./cli-cby329ny.js";
16
+ } from "./cli-wyrr38xm.js";
17
17
  import {
18
18
  scrubSecrets,
19
19
  init_secret_scrubber
@@ -23,7 +23,7 @@ import {
23
23
  autoIndexMemoryFile,
24
24
  fetchConcurrentContext,
25
25
  summarizeTranscript
26
- } from "./cli-9td5ss65.js";
26
+ } from "./cli-dsgj3e7a.js";
27
27
  import {
28
28
  applyReasoningEffort
29
29
  } from "./cli-p22zdvnt.js";
@@ -10,13 +10,13 @@ import {
10
10
  } from "./cli-0726awxw.js";
11
11
  import {
12
12
  summarizeSession
13
- } from "./cli-etvn5ej2.js";
13
+ } from "./cli-sppc0cmw.js";
14
14
  import {
15
15
  resolveTemplateFromCode,
16
16
  resolveTemplateAsync,
17
17
  init_resolver,
18
18
  init_session_templates
19
- } from "./cli-w7z94e6c.js";
19
+ } from "./cli-tx00c0h6.js";
20
20
  import {
21
21
  getOpenRouterAttributionHeaders,
22
22
  init_openrouter_base_url
@@ -18,7 +18,7 @@ import {
18
18
  import {
19
19
  applyOpenRouterBaseUrlOverride2,
20
20
  buildOpenAICompatibleProviderBlock2
21
- } from "./cli-rc3r0bnh.js";
21
+ } from "./cli-ccn0eybf.js";
22
22
  import {
23
23
  fetchInstalledMcpServers
24
24
  } from "./cli-bst1vp7e.js";
@@ -43,7 +43,7 @@ import {
43
43
  import {
44
44
  init_package,
45
45
  package_default
46
- } from "./cli-2jm992rm.js";
46
+ } from "./cli-mz1ezzzh.js";
47
47
  import {
48
48
  scrubSecrets,
49
49
  init_secret_scrubber
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  RuntimeProviderKindSchema,
3
3
  init_types
4
- } from "./cli-ksrphveb.js";
4
+ } from "./cli-a1esmmee.js";
5
5
  import {
6
6
  init_zod
7
7
  } from "./cli-4chz1hye.js";
@@ -8,11 +8,11 @@ import {
8
8
  resolveConfigValueOrThrow,
9
9
  resolveHeadersOrThrow,
10
10
  FileAuthStorageBackend
11
- } from "./cli-8jtrekpy.js";
11
+ } from "./cli-p1m2b6gc.js";
12
12
  import {
13
13
  oauthSuccessHtml,
14
14
  oauthErrorHtml
15
- } from "./cli-8cvvytad.js";
15
+ } from "./cli-bn26xbcs.js";
16
16
  import {
17
17
  __toESM
18
18
  } from "./cli-242037k3.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  renderSteeringDelivery
3
- } from "./cli-665j3feb.js";
3
+ } from "./cli-0xk505e8.js";
4
4
  import {
5
5
  authJsonToCredentialSelection,
6
6
  credentialsToAuthJson,
@@ -14,6 +14,13 @@ import {
14
14
  skillFromToolArgs,
15
15
  createSkillInvokeTracker
16
16
  } from "./cli-77cd6gy8.js";
17
+ import {
18
+ isLeadChannelMonitoringEnabled,
19
+ orgIdentityStatus,
20
+ renderMemoriesPrompt,
21
+ isUnknownModelError,
22
+ writeSkillsToFilesystem
23
+ } from "./cli-wrv09v7q.js";
17
24
  import {
18
25
  isPollTracingEnabled,
19
26
  initOtel,
@@ -23,7 +30,7 @@ import {
23
30
  injectTraceContext2,
24
31
  initialize,
25
32
  ensure
26
- } from "./cli-tba8fxf9.js";
33
+ } from "./cli-4fhyq711.js";
27
34
  import {
28
35
  getContextWindowSize
29
36
  } from "./cli-jhp7w1fy.js";
@@ -44,7 +51,7 @@ import {
44
51
  canonicalAzureDevOpsRepoUrl,
45
52
  parseAzureDevOpsRepoUrl,
46
53
  resolveScriptsOnlyMode
47
- } from "./cli-bddxamg7.js";
54
+ } from "./cli-x719j3vs.js";
48
55
  import {
49
56
  ACP_TARGET_IDS,
50
57
  isAcpTarget
@@ -52,38 +59,32 @@ import {
52
59
  import {
53
60
  checkAmpCredentials2,
54
61
  liveTestAmpCredentials2
55
- } from "./cli-th8krqbf.js";
62
+ } from "./cli-tgvpmnwz.js";
56
63
  import {
57
64
  checkClaudeCredentials2
58
- } from "./cli-c0dpzwnx.js";
65
+ } from "./cli-kz116kvw.js";
59
66
  import {
60
67
  checkClaudeManagedCredentials2
61
- } from "./cli-j0v75y13.js";
68
+ } from "./cli-y83zk5sb.js";
62
69
  import {
63
70
  codexUserHome,
64
71
  checkCodexCredentials2
65
- } from "./cli-z1hh99j0.js";
72
+ } from "./cli-bfc3k1x5.js";
66
73
  import {
67
74
  checkCursorCredentials2
68
- } from "./cli-xhgtay7w.js";
75
+ } from "./cli-8rwvksbc.js";
69
76
  import {
70
77
  checkDevinCredentials2
71
78
  } from "./cli-zv4vy2b0.js";
72
79
  import {
73
80
  checkDshCredentials2
74
- } from "./cli-9ac0mkg5.js";
81
+ } from "./cli-8b9wvjps.js";
75
82
  import {
76
83
  checkOpencodeCredentials2
77
- } from "./cli-rc3r0bnh.js";
84
+ } from "./cli-ccn0eybf.js";
78
85
  import {
79
86
  checkGrokCredentials2
80
- } from "./cli-p46xdr1m.js";
81
- import {
82
- isLeadChannelMonitoringEnabled,
83
- renderMemoriesPrompt,
84
- isUnknownModelError,
85
- writeSkillsToFilesystem
86
- } from "./cli-4g629sgr.js";
87
+ } from "./cli-zvze9rbm.js";
87
88
  import {
88
89
  CODEX_OAUTH_POOL_SLOTS_ENV,
89
90
  isCodexOAuthConfigKey,
@@ -92,7 +93,7 @@ import {
92
93
  } from "./cli-j4bwnpkm.js";
93
94
  import {
94
95
  validateJsonSchema
95
- } from "./cli-dw0njd9q.js";
96
+ } from "./cli-nme7wery.js";
96
97
  import {
97
98
  mapTriggerSurface,
98
99
  init_telemetry_context,
@@ -110,7 +111,7 @@ import {
110
111
  init_vcs_repo_match,
111
112
  isApiDrainingResponse,
112
113
  init_api_drain
113
- } from "./cli-4c7k75rq.js";
114
+ } from "./cli-rg7ntypm.js";
114
115
  import {
115
116
  parseWorkerModelTierOverrides,
116
117
  resolveTaskModelSelection,
@@ -118,7 +119,7 @@ import {
118
119
  ProviderNameSchema,
119
120
  WorkerNudgeSchema,
120
121
  init_types
121
- } from "./cli-ksrphveb.js";
122
+ } from "./cli-a1esmmee.js";
122
123
  import {
123
124
  generateDefaultClaudeMd2,
124
125
  generateDefaultSoulMd2,
@@ -142,7 +143,7 @@ import {
142
143
  resolveClaudeMdPath,
143
144
  syncProfileFilesToServer,
144
145
  init_profile_sync
145
- } from "./cli-cby329ny.js";
146
+ } from "./cli-wyrr38xm.js";
146
147
  import {
147
148
  isSteeringEnabled2,
148
149
  init_steering_enabled
@@ -156,14 +157,14 @@ import {
156
157
  } from "./cli-yxqag76b.js";
157
158
  import {
158
159
  init_templates3
159
- } from "./cli-4ync7m60.js";
160
+ } from "./cli-0ebey9hg.js";
160
161
  import {
161
162
  interpolate,
162
163
  init_template,
163
164
  configureHttpResolver,
164
165
  resolveTemplateAsync,
165
166
  init_resolver
166
- } from "./cli-w7z94e6c.js";
167
+ } from "./cli-tx00c0h6.js";
167
168
  import {
168
169
  modelFamilyOf,
169
170
  windowForModelFamily,
@@ -190,6 +191,10 @@ import {
190
191
  getMcpBaseUrl,
191
192
  init_constants2
192
193
  } from "./cli-w9g4sz81.js";
194
+ import {
195
+ isEnvFlagEnabled,
196
+ init_env_flag
197
+ } from "./cli-0hyhdkdk.js";
193
198
  import {
194
199
  getApiKey,
195
200
  init_api_key
@@ -241,19 +246,19 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
241
246
  async function createProviderAdapter(provider) {
242
247
  switch (provider) {
243
248
  case "claude": {
244
- const { ClaudeAdapter } = await import("./claude-adapter-5qrc2paq.js");
249
+ const { ClaudeAdapter } = await import("./claude-adapter-bm23cye7.js");
245
250
  return new ClaudeAdapter;
246
251
  }
247
252
  case "pi": {
248
- const { PiMonoAdapter } = await import("./pi-mono-adapter-zasp3ze3.js");
253
+ const { PiMonoAdapter } = await import("./pi-mono-adapter-hxby0ce1.js");
249
254
  return new PiMonoAdapter;
250
255
  }
251
256
  case "codex": {
252
- const { CodexAdapter } = await import("./codex-adapter-m0fx3v3s.js");
257
+ const { CodexAdapter } = await import("./codex-adapter-pp2gq8gr.js");
253
258
  return new CodexAdapter;
254
259
  }
255
260
  case "claude-managed": {
256
- const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-n7ahjyx6.js");
261
+ const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-1mwrsm9d.js");
257
262
  return new ClaudeManagedAdapter;
258
263
  }
259
264
  case "devin": {
@@ -261,27 +266,27 @@ async function createProviderAdapter(provider) {
261
266
  return new DevinAdapter;
262
267
  }
263
268
  case "opencode": {
264
- const { OpencodeAdapter } = await import("./opencode-adapter-eeesgfqk.js");
269
+ const { OpencodeAdapter } = await import("./opencode-adapter-f4hryjny.js");
265
270
  return new OpencodeAdapter;
266
271
  }
267
272
  case "dsh": {
268
- const { DshAdapter } = await import("./dsh-adapter-63rvej88.js");
273
+ const { DshAdapter } = await import("./dsh-adapter-75xwh78t.js");
269
274
  return new DshAdapter;
270
275
  }
271
276
  case "amp": {
272
- const { AmpAdapter } = await import("./amp-adapter-0cmxb2t5.js");
277
+ const { AmpAdapter } = await import("./amp-adapter-xeb5mktv.js");
273
278
  return new AmpAdapter;
274
279
  }
275
280
  case "cursor": {
276
- const { CursorAdapter } = await import("./cursor-adapter-02s5ekva.js");
281
+ const { CursorAdapter } = await import("./cursor-adapter-3v542qe5.js");
277
282
  return new CursorAdapter;
278
283
  }
279
284
  case "grok": {
280
- const { GrokAdapter } = await import("./grok-adapter-ysp907f6.js");
285
+ const { GrokAdapter } = await import("./grok-adapter-vj88xr23.js");
281
286
  return new GrokAdapter;
282
287
  }
283
288
  case "acp": {
284
- const { ACPAdapter } = await import("./acp-adapter-k0vwfyvn.js");
289
+ const { ACPAdapter } = await import("./acp-adapter-kedstxx6.js");
285
290
  return new ACPAdapter;
286
291
  }
287
292
  default:
@@ -289,6 +294,32 @@ async function createProviderAdapter(provider) {
289
294
  }
290
295
  }
291
296
 
297
+ // src/ranking/usage.ts
298
+ init_env_flag();
299
+ var tokens = (value) => typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.floor(value) : 0;
300
+ function rankingUsageProps(cost, session, env = process.env) {
301
+ if (!isEnvFlagEnabled("ANONYMIZED_TELEMETRY", true, env))
302
+ return null;
303
+ if (!isEnvFlagEnabled("PUBLIC_RANKING_ENABLED", false, env))
304
+ return null;
305
+ const identity = { SWARM_ORG_NAME: env.SWARM_ORG_NAME, SWARM_ORG_WEBSITE: env.SWARM_ORG_WEBSITE };
306
+ if (!orgIdentityStatus(identity).ok)
307
+ return null;
308
+ const input = tokens(cost.inputTokens);
309
+ const output = tokens(cost.outputTokens);
310
+ const cacheRead = tokens(cost.cacheReadTokens);
311
+ const cacheWrite = tokens(cost.cacheWriteTokens);
312
+ return {
313
+ model: session.model,
314
+ provider: session.provider,
315
+ totalTokens: input + cacheRead + cacheWrite + output,
316
+ inputTokens: input,
317
+ outputTokens: output,
318
+ ...cost.cacheReadTokens != null ? { cacheReadTokens: cacheRead } : {},
319
+ ...cost.cacheWriteTokens != null ? { cacheWriteTokens: cacheWrite } : {}
320
+ };
321
+ }
322
+
292
323
  // src/realtime/worker-client.ts
293
324
  init_types();
294
325
  init_api_key();
@@ -1174,7 +1205,7 @@ var CREDENTIAL_PROVIDER_CHECKERS = {
1174
1205
  devin: (env) => checkDevinCredentials2(env),
1175
1206
  opencode: (env, opts) => checkOpencodeCredentials2(env, opts),
1176
1207
  pi: async (env, opts) => {
1177
- const { checkPiMonoCredentials } = await import("./pi-mono-adapter-zasp3ze3.js");
1208
+ const { checkPiMonoCredentials } = await import("./pi-mono-adapter-hxby0ce1.js");
1178
1209
  return checkPiMonoCredentials(env, opts);
1179
1210
  },
1180
1211
  acp: (env) => {
@@ -1443,7 +1474,7 @@ async function validateProviderCredentials(provider, env = process.env, presence
1443
1474
  latency_ms: Date.now() - startedAt
1444
1475
  };
1445
1476
  }
1446
- const { liveTestCursorKey } = await import("./cursor-adapter-02s5ekva.js");
1477
+ const { liveTestCursorKey } = await import("./cursor-adapter-3v542qe5.js");
1447
1478
  const result = await liveTestCursorKey(apiKey);
1448
1479
  return result.ok ? { ok: true, latency_ms: Date.now() - startedAt } : { ok: false, error: result.error, latency_ms: Date.now() - startedAt };
1449
1480
  }
@@ -2466,6 +2497,8 @@ var RELOADABLE_ENV_KEYS = new Set([
2466
2497
  "TEMPLATE_REGISTRY_URL",
2467
2498
  "SLACK_DISABLE",
2468
2499
  "SWARM_ORG_NAME",
2500
+ "SWARM_ORG_WEBSITE",
2501
+ "PUBLIC_RANKING_ENABLED",
2469
2502
  "PI_TOOL_DEFERRAL",
2470
2503
  "PI_CODEMODE",
2471
2504
  "PI_CODEMODE_MODELS",
@@ -4642,6 +4675,12 @@ async function spawnProviderProcess(adapter, opts, logDir, isYolo) {
4642
4675
  numTurns: result.cost.numTurns,
4643
4676
  isError: result.cost.isError
4644
4677
  }, { userId: opts.requestedByUserId ?? null });
4678
+ const rankingUsage = rankingUsageProps(result.cost, {
4679
+ model: result.cost.model,
4680
+ provider: result.cost.provider ?? opts.harnessProvider
4681
+ });
4682
+ if (rankingUsage)
4683
+ telemetry.ranking("usage", rankingUsage);
4645
4684
  }
4646
4685
  if (result.cost && realTaskId) {
4647
4686
  fetch(`${opts.apiUrl}/api/tasks/${realTaskId}/context`, {
@@ -7,20 +7,20 @@ import {
7
7
  tierConfigKey,
8
8
  init_model_tier_keys,
9
9
  init_db3
10
- } from "./cli-4c7k75rq.js";
10
+ } from "./cli-rg7ntypm.js";
11
11
  import {
12
12
  ensureRbacSeedsSynced2,
13
13
  init_rbac_roles
14
- } from "./cli-6q7pyd3k.js";
14
+ } from "./cli-5s5hx57y.js";
15
15
  import {
16
16
  seedPricingFromModelsDev
17
- } from "./cli-8w65vwee.js";
17
+ } from "./cli-tg9ksbn8.js";
18
18
  import {
19
19
  MODEL_TIERS,
20
20
  DEFAULT_MODEL_TIER_MAP,
21
21
  ProviderNameSchema,
22
22
  init_types
23
- } from "./cli-ksrphveb.js";
23
+ } from "./cli-a1esmmee.js";
24
24
 
25
25
  // src/be/boot-seeds.ts
26
26
  init_db3();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runStopHookSessionSummarySubprocess
3
- } from "./cli-e5y285rg.js";
3
+ } from "./cli-mvg2hf8p.js";
4
4
  import {
5
5
  CONTEXT_FORMULA,
6
6
  getContextWindowSize,
@@ -47,7 +47,7 @@ import {
47
47
  import {
48
48
  withFileLock,
49
49
  init_file_lock
50
- } from "./cli-cby329ny.js";
50
+ } from "./cli-wyrr38xm.js";
51
51
  import {
52
52
  CLAUDE_CREDENTIALS_HINT,
53
53
  validateClaudeCredentials,
@@ -1236,7 +1236,7 @@ class ClaudeAdapter2 {
1236
1236
  if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
1237
1237
  throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
1238
1238
  }
1239
- const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-cd02gc76.js") : undefined;
1239
+ const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-apb4ypz3.js") : undefined;
1240
1240
  claudeSdk?.validateClaudeSdkAdditionalArgs([
1241
1241
  ...claudeBinaryArgv.slice(1),
1242
1242
  ...config.additionalArgs ?? []
@@ -8,10 +8,10 @@ import {
8
8
  import {
9
9
  materializeClaudeMd,
10
10
  stopClaudeMd
11
- } from "./cli-k28p6xh7.js";
11
+ } from "./cli-c8fwpgqb.js";
12
12
  import {
13
13
  summarizeSession
14
- } from "./cli-etvn5ej2.js";
14
+ } from "./cli-sppc0cmw.js";
15
15
  import {
16
16
  guardGhPrBody
17
17
  } from "./cli-c5sbmw1v.js";
@@ -26,11 +26,11 @@ import {
26
26
  warnProfileFileTooLarge,
27
27
  buildIndependentIdentityPayloads,
28
28
  init_profile_sync
29
- } from "./cli-cby329ny.js";
29
+ } from "./cli-wyrr38xm.js";
30
30
  import {
31
31
  init_package,
32
32
  package_default
33
- } from "./cli-2jm992rm.js";
33
+ } from "./cli-mz1ezzzh.js";
34
34
  import {
35
35
  MAX_PROFILE_FILE_LENGTH,
36
36
  getMcpBaseUrl,
@@ -7,7 +7,7 @@ var package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  name: "@desplega.ai/agent-swarm",
10
- version: "2.2.0",
10
+ version: "2.4.0",
11
11
  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.",
12
12
  keywords: [
13
13
  "agent-swarm.dev",
@@ -216,7 +216,7 @@ var init_package = __esm(() => {
216
216
  "@chat-adapter/teams": "4.41.1",
217
217
  "@chat-adapter/telegram": "4.41.1",
218
218
  "@cursor/sdk": "1.0.38",
219
- "@desplega.ai/agent-fs-just-bash": "0.17.0",
219
+ "@desplega.ai/agent-fs-just-bash": "0.18.4",
220
220
  "@desplega.ai/business-use": "^0.4.2",
221
221
  "@earendil-works/pi-agent-core": "^1.3.0",
222
222
  "@earendil-works/pi-ai": "^1.3.0",
@@ -39,7 +39,7 @@ import {
39
39
  getPendingWaitsByEvent2,
40
40
  resolveWaitState2,
41
41
  init_db3
42
- } from "./cli-4c7k75rq.js";
42
+ } from "./cli-rg7ntypm.js";
43
43
  import {
44
44
  BaseExecutor,
45
45
  postApprovalCancellationUpdates,
@@ -50,7 +50,7 @@ import {
50
50
  findEntryNodes,
51
51
  resolveValidationPort,
52
52
  getSuccessors
53
- } from "./cli-hwc4a9xm.js";
53
+ } from "./cli-tj4j2ts4.js";
54
54
  import {
55
55
  workflowEventBus2,
56
56
  init_event_bus
@@ -58,7 +58,7 @@ import {
58
58
  import {
59
59
  RetryPolicySchema,
60
60
  init_types
61
- } from "./cli-ksrphveb.js";
61
+ } from "./cli-a1esmmee.js";
62
62
  import {
63
63
  getSlackConfiguration,
64
64
  isSlackConfigured,
@@ -67,7 +67,7 @@ import {
67
67
  import {
68
68
  deepInterpolate,
69
69
  init_template
70
- } from "./cli-w7z94e6c.js";
70
+ } from "./cli-tx00c0h6.js";
71
71
  import {
72
72
  init_zod
73
73
  } from "./cli-4chz1hye.js";
@@ -106,7 +106,7 @@ async function notifyAutomationPreflightFailure(preflight) {
106
106
  return;
107
107
  }
108
108
  try {
109
- const { getSlackApp } = await import("./app-zneem7g9.js");
109
+ const { getSlackApp } = await import("./app-mqap8t8m.js");
110
110
  const app = getSlackApp();
111
111
  if (!app) {
112
112
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -1434,7 +1434,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
1434
1434
  if ("async" in result && result.async) {
1435
1435
  const waiting = await checkpointStepWaiting(runId, stepId, ctx);
1436
1436
  if (waiting && result.waitFor === "workflow.child.finished") {
1437
- const { resumeFromChildRun } = await import("./resume-tq0bbvt5.js");
1437
+ const { resumeFromChildRun } = await import("./resume-b6djcj3c.js");
1438
1438
  await resumeFromChildRun(stepId, registry);
1439
1439
  }
1440
1440
  return { outcome: waiting ? "waiting" : "completed", successors: [] };