@desplega.ai/agent-swarm 1.169.0 → 1.171.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/README.md +11 -2
  2. package/dist/{acp-adapter-m47zfx4a.js → acp-adapter-wnhq4ydy.js} +6 -6
  3. package/dist/{actions-ws7k3tvq.js → actions-45eyf0ns.js} +31 -29
  4. package/dist/{amp-adapter-nvv8k8j5.js → amp-adapter-f5dr6dm0.js} +6 -6
  5. package/dist/{anthropic-messages-13yn502s.js → anthropic-messages-etkbxhhy.js} +11 -11
  6. package/dist/{app-80w6qspx.js → app-qv86qhzz.js} +9 -9
  7. package/dist/{artifact-fey7dvj9.js → artifact-eczsknc3.js} +6 -3
  8. package/dist/{assistant-jtq439kw.js → assistant-10yaeebp.js} +34 -32
  9. package/dist/{azure-openai-responses-9st34pfz.js → azure-openai-responses-xap57x4b.js} +7 -7
  10. package/dist/{boot-reembed-feda8wn8.js → boot-reembed-p2wbqxm4.js} +8 -8
  11. package/dist/{boot-reembed-3nc0aaed.js → boot-reembed-wyb785et.js} +8 -8
  12. package/dist/{boot-scrub-sweep-grsa2er0.js → boot-scrub-sweep-daaqcs9t.js} +9 -9
  13. package/dist/{boot-seeds-gcfgq44f.js → boot-seeds-1pvzyx4h.js} +12 -12
  14. package/dist/{claude-adapter-pjv2q7t8.js → claude-adapter-v2py1c6g.js} +15 -15
  15. package/dist/{claude-managed-adapter-0wa8se82.js → claude-managed-adapter-kqqqhp2q.js} +2 -2
  16. package/dist/{claude-managed-setup-zxa9p9tx.js → claude-managed-setup-bnmjarjc.js} +11 -8
  17. package/dist/{claude-sdk-session-c9j6k9kx.js → claude-sdk-session-mk938tpt.js} +15 -15
  18. package/dist/cli-0p3enk35.js +188 -0
  19. package/dist/cli-1srmzpr3.js +16 -0
  20. package/dist/{cli-zzev32jw.js → cli-231av4y6.js} +6 -6
  21. package/dist/{cli-eqfbsxsn.js → cli-2aap68ns.js} +14 -11
  22. package/dist/{cli-mv2520nm.js → cli-2bw3w47j.js} +1 -1
  23. package/dist/{cli-km8559dm.js → cli-2k8gyaey.js} +18 -10
  24. package/dist/{cli-efnd2kce.js → cli-2rbt7at8.js} +6 -1
  25. package/dist/{cli-xvc3q9br.js → cli-451ks6aw.js} +1 -1
  26. package/dist/{cli-7vz49g7h.js → cli-48ve9gsj.js} +101 -4
  27. package/dist/{cli-zp38xvtm.js → cli-5rqrj7q0.js} +1 -1
  28. package/dist/{cli-km4x66j0.js → cli-5y67yrt6.js} +13 -13
  29. package/dist/{cli-3ry5gx4f.js → cli-6pxmb99j.js} +2 -2
  30. package/dist/cli-6zx22mv6.js +0 -0
  31. package/dist/{cli-zp67qg5x.js → cli-7a0sde2x.js} +72 -1
  32. package/dist/{cli-v1w7pbd8.js → cli-7jykv7ef.js} +1 -1
  33. package/dist/{cli-rfphkzh5.js → cli-7pz3b7x5.js} +24 -4
  34. package/dist/{cli-mb75wpxf.js → cli-81r1wjyv.js} +1 -1
  35. package/dist/cli-8ntwbxmm.js +1351 -0
  36. package/dist/{cli-f14fvzag.js → cli-a1b9b32n.js} +6 -1
  37. package/dist/{cli-rg1c8ccw.js → cli-amvnn9wz.js} +497 -73
  38. package/dist/{cli-fyeft04q.js → cli-apnwqe6h.js} +2 -2
  39. package/dist/{cli-m23r88re.js → cli-bkdbswyn.js} +3 -3
  40. package/dist/{cli-qg2zhjfc.js → cli-c9cnsnms.js} +8 -8
  41. package/dist/cli-cd0hv9nh.js +32 -0
  42. package/dist/{cli-wt7ccy4r.js → cli-d161g69q.js} +9 -1
  43. package/dist/{cli-rbr91whd.js → cli-d78fccnb.js} +9 -5
  44. package/dist/cli-db3m6zdt.js +362 -0
  45. package/dist/{cli-hf5s9pgf.js → cli-e3pmyt39.js} +1 -1
  46. package/dist/{cli-91r17hb1.js → cli-ehf1dfay.js} +3 -3
  47. package/dist/{cli-61tbnjpf.js → cli-f3vy7ncj.js} +767 -541
  48. package/dist/{cli-sajr098b.js → cli-f651ypy4.js} +3 -3
  49. package/dist/{cli-9k7mqz00.js → cli-ge593j7e.js} +30 -3
  50. package/dist/cli-h8w3fg83.js +17 -0
  51. package/dist/{cli-dv76vq5d.js → cli-hadkza7w.js} +685 -209
  52. package/dist/{cli-jkfxpg1b.js → cli-hrbedqp0.js} +2 -2
  53. package/dist/{cli-xvdgasgy.js → cli-hsem16hb.js} +114 -9
  54. package/dist/{cli-kp3vfknv.js → cli-j8xzym9k.js} +2 -2
  55. package/dist/{cli-swrz3mj8.js → cli-jn9wk8z8.js} +1 -1
  56. package/dist/{cli-a8vps458.js → cli-jr749y58.js} +17274 -17242
  57. package/dist/{cli-b7y8113e.js → cli-k2v5x13t.js} +1 -1
  58. package/dist/{cli-bqrs5ycj.js → cli-m4csbs67.js} +2 -2
  59. package/dist/{cli-yvxfaem2.js → cli-ndvfgmk8.js} +9 -5
  60. package/dist/{cli-r7eeddkq.js → cli-ph3145b7.js} +3 -3
  61. package/dist/cli-ppy4nnnh.js +168 -0
  62. package/dist/{cli-e5qk3m2a.js → cli-pw9x22wp.js} +19 -19
  63. package/dist/{cli-s0k2j7q9.js → cli-pwnxv8pw.js} +10 -10
  64. package/dist/{cli-jv36y8wz.js → cli-rrbctenq.js} +1 -1
  65. package/dist/{cli-vejds37t.js → cli-tb8p51kg.js} +3 -3
  66. package/dist/cli-tqzk05ty.js +832 -0
  67. package/dist/{cli-rh44xx46.js → cli-vtqrsgnm.js} +15 -15
  68. package/dist/{cli-7mhy3ths.js → cli-x61srfpp.js} +5 -5
  69. package/dist/{cli-n4z21pt8.js → cli-xy6sgy6p.js} +1 -1
  70. package/dist/{cli-w6xa5nf5.js → cli-y1j1ggbf.js} +8 -8
  71. package/dist/{cli-jvmtxqtc.js → cli-ywh2a87k.js} +7 -2
  72. package/dist/{cli-3qhyh31j.js → cli-ywm1azg9.js} +6 -0
  73. package/dist/{cli-8xjst8q2.js → cli-z9cvwx5m.js} +11 -11
  74. package/dist/{cli-ysnkvdx6.js → cli-zh93km01.js} +313 -91
  75. package/dist/{cli-z48ggfyq.js → cli-zxm9p3x4.js} +2 -2
  76. package/dist/cli.js +42 -24
  77. package/dist/{codex-adapter-0kpg09ca.js → codex-adapter-cg8vntj1.js} +13 -13
  78. package/dist/{codex-hook-295jpbfa.js → codex-hook-7ba15hjd.js} +5 -3
  79. package/dist/{codex-login-g1cyt5zm.js → codex-login-841kv5fk.js} +7 -5
  80. package/dist/{codex-session-runner-8n672hxh.js → codex-session-runner-jxs6n1qx.js} +13 -13
  81. package/dist/{commands-mhmg5n0x.js → commands-8zhezbzr.js} +10 -10
  82. package/dist/controller-hq5ggpcp.js +193 -0
  83. package/dist/controllers-connect-q0brsq11.js +265 -0
  84. package/dist/{cursor-adapter-wn8n5zzk.js → cursor-adapter-t4pr1m3c.js} +5 -5
  85. package/dist/db-d80sy99v.js +71 -0
  86. package/dist/{db-wa6s1mwv.js → db-ggc4b127.js} +8 -8
  87. package/dist/{devin-adapter-bffjj5n4.js → devin-adapter-xgtj680j.js} +2 -2
  88. package/dist/{dispatcher-nhs2pkr8.js → dispatcher-eascgc1z.js} +30 -28
  89. package/dist/docker-f503k9p0.js +201 -0
  90. package/dist/{dsh-adapter-5423p70m.js → dsh-adapter-2h8m4cab.js} +5 -5
  91. package/dist/e2b-66xra4az.js +202 -0
  92. package/dist/{e2b-nd50eccg.js → e2b-xwhyj8cw.js} +43 -527
  93. package/dist/{event-bus-vnfthafg.js → event-bus-vjtv82gm.js} +2 -2
  94. package/dist/{grok-adapter-28pkdt80.js → grok-adapter-8ram8zse.js} +7 -7
  95. package/dist/{handlers-5rtf9nng.js → handlers-hypxbg7e.js} +33 -31
  96. package/dist/heartbeat-ge72pt7q.js +124 -0
  97. package/dist/{hook-krjfkpzy.js → hook-grgtyrad.js} +20 -17
  98. package/dist/{hook-qkm73zk6.js → hook-xzwg1zwp.js} +13 -13
  99. package/dist/{http-a397xcn4.js → http-2nf2axqq.js} +1958 -205
  100. package/dist/{index-vvsq7v45.js → index-0h5dd9xg.js} +30 -28
  101. package/dist/{index-ac0v8v9d.js → index-27aez391.js} +8 -8
  102. package/dist/{index-rtxg15ah.js → index-57svck0z.js} +39 -29
  103. package/dist/{index-ytdhtdry.js → index-6zehd2p5.js} +31 -22
  104. package/dist/{index-kqre45fr.js → index-9egx96ey.js} +30 -28
  105. package/dist/{keepalive-psfh8ysx.js → keepalive-5pjbsz8f.js} +10 -10
  106. package/dist/{lead-m6rppjn7.js → lead-g19prqhd.js} +48 -46
  107. package/dist/{maintenance-41f837ke.js → maintenance-1brc7q4c.js} +8 -8
  108. package/dist/{node-8zkdq42h.js → node-c9we95xf.js} +9 -9
  109. package/dist/{oauth-refresh-sweep-6hr55hm8.js → oauth-refresh-sweep-rhe857nd.js} +9 -9
  110. package/dist/{onboard-ktrtd7cz.js → onboard-6bcg69eg.js} +25 -15
  111. package/dist/{openai-codex-responses-jzxkta9b.js → openai-codex-responses-pgvtddvv.js} +3 -3
  112. package/dist/{openai-responses-m3g43rrt.js → openai-responses-9dyzwzkr.js} +9 -9
  113. package/dist/{opencode-adapter-yjyqynzf.js → opencode-adapter-f1zby94p.js} +3 -3
  114. package/dist/{otel-impl-dq4f2k3m.js → otel-impl-y237rck3.js} +5 -5
  115. package/dist/{pi-mono-adapter-e5v9w0hv.js → pi-mono-adapter-fx6k5wwh.js} +38 -27
  116. package/dist/{pricing-refresh-kmk7j1ra.js → pricing-refresh-se1qg8wn.js} +10 -10
  117. package/dist/{rbac-roles-9w1dkkxd.js → rbac-roles-b6ca1n23.js} +11 -11
  118. package/dist/{rbac-roles-9ykx9tc5.js → rbac-roles-c58kydph.js} +10 -10
  119. package/dist/{render-v2-ycqm53np.js → render-v2-gqz7z5xt.js} +9 -9
  120. package/dist/{resume-cq2pkp8q.js → resume-yb3y3vda.js} +16 -16
  121. package/dist/{setup-0dcmdvbn.js → setup-1rbr9x3c.js} +7 -5
  122. package/dist/static-t1gr2cr7.js +30 -0
  123. package/dist/{virtual-modules-1x9k4jcs.js → virtual-modules-rdjmcg7q.js} +3 -3
  124. package/dist/{work-objects-x01x2fh8.js → work-objects-nzcp8srm.js} +35 -33
  125. package/dist/{worker-py1ssb1h.js → worker-wnz1h3g0.js} +48 -46
  126. package/dist/{x-ma4gnfgy.js → x-qfmygqqv.js} +2 -2
  127. package/openapi.json +3382 -167
  128. package/package.json +3 -3
  129. package/src/be/db/agents.ts +6 -0
  130. package/src/be/db/instance-signals.ts +30 -0
  131. package/src/be/db/tasks/read.ts +2 -0
  132. package/src/be/db/tasks/write.ts +39 -5
  133. package/src/be/db/workflow-runs.ts +22 -0
  134. package/src/be/db.ts +96 -40
  135. package/src/be/fleet-benchmark-stats.ts +39 -0
  136. package/src/be/migrations/205_favorites_per_dashboard_user.sql +29 -0
  137. package/src/be/migrations/206_runtime_pools.sql +62 -0
  138. package/src/be/migrations/207_runtime_session_tokens.sql +31 -0
  139. package/src/be/migrations/208_task_runtime_dispatch.sql +4 -0
  140. package/src/be/model-tier-resolution.ts +9 -2
  141. package/src/be/multi-runtime.ts +102 -13
  142. package/src/be/org-profile.ts +35 -0
  143. package/src/be/rbac-audit.ts +4 -0
  144. package/src/be/runtime-pools/controllers.ts +150 -0
  145. package/src/be/runtime-pools/db.ts +526 -0
  146. package/src/be/runtime-pools/demand.ts +65 -0
  147. package/src/be/runtime-pools/e2b-images.ts +109 -0
  148. package/src/be/runtime-pools/errors.ts +8 -0
  149. package/src/be/runtime-pools/lifecycle.ts +44 -0
  150. package/src/be/runtime-pools/reachability.ts +30 -0
  151. package/src/be/runtime-pools/recovery.ts +248 -0
  152. package/src/be/runtime-pools/remote-controller.ts +144 -0
  153. package/src/be/runtime-pools/routing.ts +304 -0
  154. package/src/be/runtime-pools/seed.ts +110 -0
  155. package/src/be/runtime-pools/supervisor.ts +981 -0
  156. package/src/be/runtime-pools/tokens.ts +57 -0
  157. package/src/be/scripts/typecheck.ts +48 -3
  158. package/src/be/secret-registry.ts +17 -1
  159. package/src/be/skill-usage.ts +467 -0
  160. package/src/be/swarm-config-guard.ts +59 -2
  161. package/src/be/telemetry-enable.ts +66 -0
  162. package/src/be/telemetry-ingest-anchor.ts +77 -0
  163. package/src/be/users.ts +173 -23
  164. package/src/be/worker-nudge-listener.ts +28 -0
  165. package/src/be/worker-nudges.ts +22 -0
  166. package/src/cli.tsx +22 -3
  167. package/src/commands/controller.ts +180 -0
  168. package/src/commands/onboard/non-interactive.ts +36 -12
  169. package/src/commands/onboard/types.ts +1 -1
  170. package/src/commands/onboard.tsx +3 -0
  171. package/src/commands/push-delivery.ts +230 -0
  172. package/src/commands/runner.ts +560 -276
  173. package/src/e2b/dispatch.ts +15 -1
  174. package/src/extensions/contract-types.generated.ts +1 -1
  175. package/src/fleet-benchmark.ts +157 -0
  176. package/src/heartbeat/heartbeat.ts +53 -135
  177. package/src/hooks/hook.ts +3 -2
  178. package/src/http/agents.ts +21 -0
  179. package/src/http/all-routes.ts +6 -0
  180. package/src/http/apps.ts +4 -2
  181. package/src/http/auth.ts +4 -7
  182. package/src/http/config.ts +58 -21
  183. package/src/http/controllers-connect.ts +206 -0
  184. package/src/http/core.ts +108 -14
  185. package/src/http/favorite-owner.ts +31 -1
  186. package/src/http/fleet-benchmark.ts +206 -0
  187. package/src/http/index.ts +38 -6
  188. package/src/http/mcp.ts +3 -8
  189. package/src/http/poll.ts +31 -2
  190. package/src/http/realtime.ts +1 -1
  191. package/src/http/request-principal.ts +2 -0
  192. package/src/http/runtime-pools.ts +527 -0
  193. package/src/http/session-data.ts +2 -0
  194. package/src/http/sessions.ts +100 -23
  195. package/src/http/skills.ts +173 -0
  196. package/src/http/status.ts +25 -1
  197. package/src/http/tasks.ts +14 -1
  198. package/src/http/telemetry-ui.ts +102 -0
  199. package/src/http/used-by.ts +140 -0
  200. package/src/http/utils.ts +7 -1
  201. package/src/http/workflows.ts +10 -2
  202. package/src/jira/app.ts +1 -2
  203. package/src/kv-reserved-namespaces.ts +1 -0
  204. package/src/linear/app.ts +1 -2
  205. package/src/providers/acp-target-catalog.ts +75 -1
  206. package/src/providers/acp-targets.ts +114 -0
  207. package/src/providers/amp-adapter.ts +1 -1
  208. package/src/providers/claude-adapter.ts +1 -1
  209. package/src/providers/codex-adapter.ts +5 -1
  210. package/src/providers/opencode-adapter.ts +2 -1
  211. package/src/providers/pi-mono-adapter.ts +41 -26
  212. package/src/providers/pricing-sources.md +2 -0
  213. package/src/providers/skill-invoke.ts +39 -3
  214. package/src/rbac/legacy-policy.ts +8 -0
  215. package/src/rbac/permissions.ts +16 -0
  216. package/src/rbac/types.ts +2 -0
  217. package/src/realtime/auth.ts +13 -0
  218. package/src/realtime/channels.ts +24 -0
  219. package/src/realtime/transport.ts +94 -15
  220. package/src/realtime/worker-client.ts +176 -0
  221. package/src/runtime-providers/controller-protocol.ts +97 -0
  222. package/src/runtime-providers/controller.ts +86 -0
  223. package/src/runtime-providers/docker.ts +235 -0
  224. package/src/runtime-providers/e2b.ts +217 -0
  225. package/src/runtime-providers/index.ts +37 -0
  226. package/src/runtime-providers/static.ts +26 -0
  227. package/src/runtime-providers/types.ts +92 -0
  228. package/src/runtime-providers/worker-api-url.ts +11 -0
  229. package/src/scripts-runtime/sdk-allowlist.ts +6 -0
  230. package/src/scripts-runtime/types/stdlib.d.ts +15 -0
  231. package/src/scripts-runtime/types/swarm-extension.d.ts +1 -0
  232. package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
  233. package/src/server.ts +12 -0
  234. package/src/slack/router.ts +7 -5
  235. package/src/tasks/worker-follow-up.ts +80 -52
  236. package/src/telemetry-context.ts +6 -0
  237. package/src/telemetry-contract/EVENTS.md +14 -1
  238. package/src/telemetry-contract/SOURCE.json +4 -4
  239. package/src/telemetry-contract/catalog.json +155 -0
  240. package/src/telemetry-contract/types.gen.ts +248 -4
  241. package/src/telemetry-ui-events.ts +130 -0
  242. package/src/telemetry.ts +43 -3
  243. package/src/tests/acp-adapter.test.ts +129 -0
  244. package/src/tests/claude-adapter.test.ts +6 -2
  245. package/src/tests/codex-adapter.test.ts +6 -2
  246. package/src/tests/config-internal-keys.test.ts +27 -0
  247. package/src/tests/config-session-auth.test.ts +19 -3
  248. package/src/tests/db-retention.test.ts +50 -10
  249. package/src/tests/docs-index-footprint.test.js +3 -3
  250. package/src/tests/e2b-dispatch.test.ts +28 -1
  251. package/src/tests/e2e-runtime-pools.test.ts +51 -0
  252. package/src/tests/entrypoint-acp-target-binary.test.ts +38 -1
  253. package/src/tests/favorites.test.ts +188 -0
  254. package/src/tests/fetch-resolved-env.test.ts +59 -1
  255. package/src/tests/fleet-benchmark.test.ts +453 -0
  256. package/src/tests/harness-model-support.test.ts +70 -2
  257. package/src/tests/heartbeat-orphan-resume.test.ts +24 -0
  258. package/src/tests/heartbeat-reboot-live.test.ts +31 -0
  259. package/src/tests/heartbeat-supersede-resume.test.ts +21 -0
  260. package/src/tests/hook-runtime-close.test.ts +64 -0
  261. package/src/tests/http-task-write-ownership.test.ts +8 -1
  262. package/src/tests/integration-disable-flags.test.ts +45 -0
  263. package/src/tests/migration-206-runtime-pools.test.ts +134 -0
  264. package/src/tests/migration-207-runtime-session-tokens.test.ts +45 -0
  265. package/src/tests/migration-208-task-runtime-dispatch.test.ts +30 -0
  266. package/src/tests/multi-runtime-registration.test.ts +219 -4
  267. package/src/tests/onboard-non-interactive.test.ts +104 -6
  268. package/src/tests/opencode-adapter.test.ts +6 -2
  269. package/src/tests/org-website.test.ts +115 -0
  270. package/src/tests/pi-mono-adapter.test.ts +74 -10
  271. package/src/tests/rbac-admission-e2e.test.ts +4 -4
  272. package/src/tests/rbac-engine.test.ts +8 -1
  273. package/src/tests/realtime-room-auth.test.ts +49 -0
  274. package/src/tests/repo-allow-merge-gate.test.ts +8 -1
  275. package/src/tests/runner-exit-after-tasks.test.ts +163 -0
  276. package/src/tests/runner-finish-retry.test.ts +466 -0
  277. package/src/tests/runner-harness-telemetry-env.test.ts +105 -0
  278. package/src/tests/runner-push-delivery.test.ts +670 -0
  279. package/src/tests/runner-slot-reconcile.test.ts +89 -1
  280. package/src/tests/runtime-child-token-cleanup.test.ts +172 -0
  281. package/src/tests/runtime-controller-token.test.ts +254 -0
  282. package/src/tests/runtime-demand.test.ts +119 -0
  283. package/src/tests/runtime-e2b-pools.test.ts +847 -0
  284. package/src/tests/runtime-pool-reachability.test.ts +328 -0
  285. package/src/tests/runtime-pool-routing.test.ts +817 -0
  286. package/src/tests/runtime-pools-db.test.ts +275 -0
  287. package/src/tests/runtime-pools-http.test.ts +506 -0
  288. package/src/tests/runtime-pools-ownership-guards.test.ts +235 -0
  289. package/src/tests/runtime-pools-seed.test.ts +203 -0
  290. package/src/tests/runtime-pools-test-utils.ts +128 -0
  291. package/src/tests/runtime-provider-registration.test.ts +133 -0
  292. package/src/tests/runtime-providers-docker.test.ts +400 -0
  293. package/src/tests/runtime-providers-e2b-transport.test.ts +50 -0
  294. package/src/tests/runtime-providers-e2b.test.ts +335 -0
  295. package/src/tests/runtime-recovery.test.ts +745 -0
  296. package/src/tests/runtime-remote-controller.test.ts +846 -0
  297. package/src/tests/runtime-supervisor-failures.test.ts +387 -0
  298. package/src/tests/runtime-supervisor.test.ts +1039 -0
  299. package/src/tests/runtime-token-auth.test.ts +897 -0
  300. package/src/tests/script-connections.test.ts +7 -0
  301. package/src/tests/secret-scrubber.test.ts +17 -2
  302. package/src/tests/session-costs-codex-recompute.test.ts +49 -0
  303. package/src/tests/session-tokens.test.ts +13 -3
  304. package/src/tests/skill-invoke.test.ts +142 -0
  305. package/src/tests/skill-usage-cohorts.test.ts +232 -0
  306. package/src/tests/skill-usage.test.ts +348 -0
  307. package/src/tests/slack-attachments-block.test.ts +23 -0
  308. package/src/tests/slack-render-v2.test.ts +6 -0
  309. package/src/tests/status-instance.test.ts +71 -0
  310. package/src/tests/task-supersede-resume.test.ts +87 -4
  311. package/src/tests/telemetry-enable.test.ts +113 -0
  312. package/src/tests/telemetry-ui-route.test.ts +195 -0
  313. package/src/tests/tool-annotations.test.ts +1 -1
  314. package/src/tests/used-by-route.test.ts +237 -0
  315. package/src/tests/worker-nudges.test.ts +653 -0
  316. package/src/tests/worker-realtime-client.test.ts +188 -0
  317. package/src/tests/workflow-sub-workflow.test.ts +22 -0
  318. package/src/tools/app-upsert.ts +1 -1
  319. package/src/tools/runtime-controller-list.ts +28 -0
  320. package/src/tools/runtime-pool-bind-agent.ts +29 -0
  321. package/src/tools/runtime-pool-common.ts +37 -0
  322. package/src/tools/runtime-pool-create-agent.ts +29 -0
  323. package/src/tools/runtime-pool-delete.ts +27 -0
  324. package/src/tools/runtime-pool-list.ts +27 -0
  325. package/src/tools/runtime-pool-upsert.ts +31 -0
  326. package/src/tools/script-common.ts +1 -1
  327. package/src/tools/send-task.ts +3 -2
  328. package/src/tools/tool-config.ts +6 -0
  329. package/src/types.ts +137 -2
  330. package/src/utils/config-secrets.ts +1 -0
  331. package/src/utils/lead-monitor-channels.ts +3 -0
  332. package/src/utils/org-website.ts +104 -0
  333. package/src/utils/request-auth-context.ts +10 -2
  334. package/src/utils/runtime-pools-flag.ts +11 -0
  335. package/src/utils/secret-scrubber.ts +9 -0
  336. package/src/utils/session-token-connections.ts +20 -0
  337. package/templates/skills/apps/content.md +1 -1
  338. package/templates/skills/code-quality/content.md +9 -1
  339. package/templates/skills/db-query-guidance/content.md +9 -0
  340. package/templates/skills/swarm-scripts/SKILL.md +1 -1
  341. package/templates/skills/swarm-scripts/content.md +1 -1
  342. package/templates/skills/work-on-task/SKILL.md +1 -1
  343. package/templates/skills/work-on-task/content.md +1 -1
  344. package/dist/{cli-qd97v6z2.js → cli-1qtgd1h1.js} +3 -3
  345. package/dist/{cli-cmxkbzzs.js → cli-j0w59p15.js} +6 -6
  346. package/dist/{google-generative-ai-b8zxrpax.js → google-generative-ai-pvhm0dq1.js} +1 -1
  347. package/dist/{google-vertex-nrdd697t.js → google-vertex-tek9sqe2.js} +4 -4
  348. package/dist/{mistral-conversations-059y51zt.js → mistral-conversations-rjxa9s1j.js} +3 -3
  349. package/dist/{openai-completions-663yncfq.js → openai-completions-44gb0zsk.js} +12 -12
@@ -21,12 +21,12 @@ import {
21
21
  resolveClaudeTrustDirs,
22
22
  runClaudeSessionSummary,
23
23
  withClaudeRouteEnv
24
- } from "./cli-qg2zhjfc.js";
25
- import"./cli-eqfbsxsn.js";
26
- import"./cli-bqrs5ycj.js";
24
+ } from "./cli-c9cnsnms.js";
25
+ import"./cli-2aap68ns.js";
26
+ import"./cli-m4csbs67.js";
27
27
  import"./cli-v6vv7dy8.js";
28
28
  import"./cli-q2j38vre.js";
29
- import"./cli-r7eeddkq.js";
29
+ import"./cli-ph3145b7.js";
30
30
  import"./cli-hp1n6zq3.js";
31
31
  import"./cli-tng3131n.js";
32
32
  import"./cli-zm7njwzd.js";
@@ -35,24 +35,24 @@ import"./cli-7avy4v8w.js";
35
35
  import"./cli-eree7rnv.js";
36
36
  import"./cli-2pdaysab.js";
37
37
  import"./cli-tmhsxhb8.js";
38
+ import"./cli-knd276ed.js";
38
39
  import"./cli-w0bwte75.js";
39
40
  import"./cli-re8z5p8p.js";
40
- import"./cli-f14fvzag.js";
41
41
  import"./cli-zt3w1cn1.js";
42
- import"./cli-7mhy3ths.js";
43
- import"./cli-v1w7pbd8.js";
44
- import"./cli-km4x66j0.js";
42
+ import"./cli-x61srfpp.js";
43
+ import"./cli-7jykv7ef.js";
44
+ import"./cli-5y67yrt6.js";
45
45
  import"./cli-rb9m6rpe.js";
46
46
  import"./cli-2x0e561b.js";
47
47
  import"./cli-bsakbbkm.js";
48
48
  import"./cli-zxg80zs9.js";
49
49
  import"./cli-ydt3zkwv.js";
50
50
  import"./cli-mn8qkd8v.js";
51
- import"./cli-g7k7zbcz.js";
52
51
  import"./cli-btbzvq95.js";
53
52
  import"./cli-1m2e086m.js";
53
+ import"./cli-g7k7zbcz.js";
54
54
  import"./cli-wnb9b2g3.js";
55
- import"./cli-jv36y8wz.js";
55
+ import"./cli-rrbctenq.js";
56
56
  import"./cli-7mm2r1kp.js";
57
57
  import"./cli-e2prcx5m.js";
58
58
  import"./cli-dmtrxqhg.js";
@@ -63,14 +63,14 @@ import"./cli-tadfgd0t.js";
63
63
  import"./cli-ywybs5as.js";
64
64
  import"./cli-f9w1semm.js";
65
65
  import"./cli-a35hzdve.js";
66
- import"./cli-gd4favx9.js";
67
- import"./cli-ej6gbxfb.js";
68
66
  import"./cli-014vns2y.js";
69
67
  import"./cli-sd0mxa3c.js";
70
68
  import"./cli-w5e1d1vv.js";
71
- import"./cli-m23r88re.js";
72
- import"./cli-wt7ccy4r.js";
73
- import"./cli-knd276ed.js";
69
+ import"./cli-bkdbswyn.js";
70
+ import"./cli-gd4favx9.js";
71
+ import"./cli-ej6gbxfb.js";
72
+ import"./cli-a1b9b32n.js";
73
+ import"./cli-d161g69q.js";
74
74
  import"./cli-bc05qbss.js";
75
75
  export {
76
76
  ClaudeAdapter,
@@ -3,7 +3,7 @@ import {
3
3
  checkClaudeManagedCredentials,
4
4
  composeManagedUserMessage,
5
5
  normalizeRepoUrl
6
- } from "./cli-b7y8113e.js";
6
+ } from "./cli-k2v5x13t.js";
7
7
  import"./cli-hsxj0yar.js";
8
8
  import"./cli-gt4hxb8p.js";
9
9
  import"./cli-hp1n6zq3.js";
@@ -11,7 +11,7 @@ import"./cli-7avy4v8w.js";
11
11
  import"./cli-gmdajfw5.js";
12
12
  import"./cli-51tf7ac3.js";
13
13
  import"./cli-014vns2y.js";
14
- import"./cli-wt7ccy4r.js";
14
+ import"./cli-d161g69q.js";
15
15
  import"./cli-bc05qbss.js";
16
16
  export {
17
17
  ClaudeManagedAdapter,
@@ -6,21 +6,22 @@ import {
6
6
  ConflictError,
7
7
  toFile
8
8
  } from "./cli-gmdajfw5.js";
9
- import {
10
- getApiKey
11
- } from "./cli-f14fvzag.js";
12
- import"./cli-v1w7pbd8.js";
9
+ import"./cli-7jykv7ef.js";
13
10
  import"./cli-51tf7ac3.js";
14
11
  import {
15
12
  DEFAULT_MODEL_TIER_MAP,
16
13
  init_types
17
- } from "./cli-xvdgasgy.js";
14
+ } from "./cli-hsem16hb.js";
18
15
  import"./cli-1a2j50m0.js";
19
- import"./cli-gd4favx9.js";
20
- import"./cli-ej6gbxfb.js";
21
16
  import"./cli-sd0mxa3c.js";
22
17
  import"./cli-w5e1d1vv.js";
23
- import"./cli-wt7ccy4r.js";
18
+ import"./cli-gd4favx9.js";
19
+ import"./cli-ej6gbxfb.js";
20
+ import {
21
+ getApiKey,
22
+ init_api_key
23
+ } from "./cli-a1b9b32n.js";
24
+ import"./cli-d161g69q.js";
24
25
  import {
25
26
  __require
26
27
  } from "./cli-bc05qbss.js";
@@ -29,9 +30,11 @@ import {
29
30
  import { readdir, readFile } from "node:fs/promises";
30
31
  import path from "node:path";
31
32
  init_types();
33
+ init_api_key();
32
34
 
33
35
  // src/commands/codex-login.ts
34
36
  import { emitKeypressEvents } from "node:readline";
37
+ init_api_key();
35
38
  async function promptTextInput(label, defaultValue) {
36
39
  const { createInterface } = await import("node:readline");
37
40
  const rl = createInterface({
@@ -4,12 +4,12 @@ import {
4
4
  cleanupTaskFile,
5
5
  normalizeClaudeMessage,
6
6
  runClaudeSessionSummary
7
- } from "./cli-qg2zhjfc.js";
8
- import"./cli-eqfbsxsn.js";
9
- import"./cli-bqrs5ycj.js";
7
+ } from "./cli-c9cnsnms.js";
8
+ import"./cli-2aap68ns.js";
9
+ import"./cli-m4csbs67.js";
10
10
  import"./cli-v6vv7dy8.js";
11
11
  import"./cli-q2j38vre.js";
12
- import"./cli-r7eeddkq.js";
12
+ import"./cli-ph3145b7.js";
13
13
  import"./cli-hp1n6zq3.js";
14
14
  import"./cli-tng3131n.js";
15
15
  import"./cli-zm7njwzd.js";
@@ -25,29 +25,29 @@ import {
25
25
  trackErrorFromJson
26
26
  } from "./cli-2pdaysab.js";
27
27
  import"./cli-tmhsxhb8.js";
28
+ import"./cli-knd276ed.js";
28
29
  import"./cli-w0bwte75.js";
29
30
  import"./cli-re8z5p8p.js";
30
- import"./cli-f14fvzag.js";
31
31
  import {
32
32
  detachedProcessGroup,
33
33
  registerProcessGroup,
34
34
  signalProcessGroup,
35
35
  terminateProcessGroup
36
36
  } from "./cli-zt3w1cn1.js";
37
- import"./cli-7mhy3ths.js";
38
- import"./cli-v1w7pbd8.js";
39
- import"./cli-km4x66j0.js";
37
+ import"./cli-x61srfpp.js";
38
+ import"./cli-7jykv7ef.js";
39
+ import"./cli-5y67yrt6.js";
40
40
  import"./cli-rb9m6rpe.js";
41
41
  import"./cli-2x0e561b.js";
42
42
  import"./cli-bsakbbkm.js";
43
43
  import"./cli-zxg80zs9.js";
44
44
  import"./cli-ydt3zkwv.js";
45
45
  import"./cli-mn8qkd8v.js";
46
- import"./cli-g7k7zbcz.js";
47
46
  import"./cli-btbzvq95.js";
48
47
  import"./cli-1m2e086m.js";
48
+ import"./cli-g7k7zbcz.js";
49
49
  import"./cli-wnb9b2g3.js";
50
- import"./cli-jv36y8wz.js";
50
+ import"./cli-rrbctenq.js";
51
51
  import"./cli-7mm2r1kp.js";
52
52
  import"./cli-e2prcx5m.js";
53
53
  import"./cli-dmtrxqhg.js";
@@ -58,17 +58,17 @@ import"./cli-tadfgd0t.js";
58
58
  import"./cli-ywybs5as.js";
59
59
  import"./cli-f9w1semm.js";
60
60
  import"./cli-a35hzdve.js";
61
- import"./cli-gd4favx9.js";
62
- import"./cli-ej6gbxfb.js";
63
61
  import"./cli-014vns2y.js";
64
62
  import"./cli-sd0mxa3c.js";
65
63
  import"./cli-w5e1d1vv.js";
66
- import"./cli-m23r88re.js";
64
+ import"./cli-bkdbswyn.js";
65
+ import"./cli-gd4favx9.js";
66
+ import"./cli-ej6gbxfb.js";
67
+ import"./cli-a1b9b32n.js";
67
68
  import {
68
69
  init_secret_scrubber,
69
70
  scrubSecrets
70
- } from "./cli-wt7ccy4r.js";
71
- import"./cli-knd276ed.js";
71
+ } from "./cli-d161g69q.js";
72
72
  import"./cli-bc05qbss.js";
73
73
 
74
74
  // src/providers/claude-sdk-session.ts
@@ -0,0 +1,188 @@
1
+ import {
2
+ getApiKey,
3
+ init_api_key
4
+ } from "./cli-a1b9b32n.js";
5
+ import {
6
+ init_secret_scrubber,
7
+ isSensitiveKey,
8
+ scrubSecrets
9
+ } from "./cli-d161g69q.js";
10
+ import {
11
+ __esm
12
+ } from "./cli-bc05qbss.js";
13
+
14
+ // src/e2b/env.ts
15
+ import { resolve } from "node:path";
16
+ function decodeDoubleQuotedValue(value) {
17
+ return value.replace(/\\n/g, `
18
+ `).replace(/\\r/g, "\r").replace(/\\t/g, "\t").replace(/\\"/g, '"').replace(/\\\\/g, "\\");
19
+ }
20
+ function parseQuotedValue(value, quote) {
21
+ let escaped = false;
22
+ for (let i = 1;i < value.length; i++) {
23
+ const char = value[i];
24
+ if (quote === '"' && escaped) {
25
+ escaped = false;
26
+ continue;
27
+ }
28
+ if (quote === '"' && char === "\\") {
29
+ escaped = true;
30
+ continue;
31
+ }
32
+ if (char !== quote)
33
+ continue;
34
+ const rest = value.slice(i + 1).trim();
35
+ if (rest && !rest.startsWith("#"))
36
+ return null;
37
+ const inner = value.slice(1, i);
38
+ return quote === '"' ? decodeDoubleQuotedValue(inner) : inner;
39
+ }
40
+ return null;
41
+ }
42
+ function parseDotenv(source) {
43
+ const out = {};
44
+ for (const rawLine of source.split(/\r?\n/)) {
45
+ let line = rawLine.trim();
46
+ if (!line || line.startsWith("#"))
47
+ continue;
48
+ if (line.startsWith("export ")) {
49
+ line = line.slice("export ".length).trimStart();
50
+ }
51
+ const eq = line.indexOf("=");
52
+ if (eq <= 0)
53
+ continue;
54
+ const key = line.slice(0, eq).trim();
55
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
56
+ continue;
57
+ let value = line.slice(eq + 1).trim();
58
+ const quote = value[0];
59
+ const quoted = quote === '"' || quote === "'" ? parseQuotedValue(value, quote) : null;
60
+ if (quoted !== null) {
61
+ value = quoted;
62
+ } else {
63
+ value = value.replace(/\s+#.*$/, "").trim();
64
+ }
65
+ out[key] = value;
66
+ }
67
+ return out;
68
+ }
69
+ async function readDotenvFile(path) {
70
+ const file = Bun.file(path);
71
+ if (!await file.exists()) {
72
+ throw new Error(`Env file not found: ${path}`);
73
+ }
74
+ return parseDotenv(await file.text());
75
+ }
76
+ async function maybeReadDotenvFile(path) {
77
+ const file = Bun.file(path);
78
+ if (!await file.exists())
79
+ return {};
80
+ return parseDotenv(await file.text());
81
+ }
82
+ function parseKeyValue(raw, label) {
83
+ const eq = raw.indexOf("=");
84
+ if (eq <= 0) {
85
+ throw new Error(`${label} must be KEY=VALUE`);
86
+ }
87
+ const key = raw.slice(0, eq);
88
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {
89
+ throw new Error(`${label} has invalid env key: ${key}`);
90
+ }
91
+ return [key, raw.slice(eq + 1)];
92
+ }
93
+ function splitKeys(values) {
94
+ return values.flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean);
95
+ }
96
+ function selectEnv(source, keys) {
97
+ const out = {};
98
+ for (const key of keys) {
99
+ const value = source[key];
100
+ if (typeof value === "string" && value.length > 0) {
101
+ out[key] = value;
102
+ }
103
+ }
104
+ return out;
105
+ }
106
+ function resolveSwarmApiKey(env, explicit) {
107
+ const apiKey = explicit || env.AGENT_SWARM_API_KEY || env.API_KEY || getApiKey();
108
+ if (!apiKey) {
109
+ throw new Error("Missing swarm API key. Pass --api-key or set AGENT_SWARM_API_KEY/API_KEY for E2B sandboxes.");
110
+ }
111
+ return apiKey;
112
+ }
113
+ function redactWithEnv(text, env) {
114
+ let out = text;
115
+ const entries = Object.entries(env).filter(([key, value]) => isSensitiveKey(key) && value.length >= 8).sort((a, b) => b[1].length - a[1].length);
116
+ for (const [key, value] of entries) {
117
+ out = out.split(value).join(`[REDACTED:${key}]`);
118
+ }
119
+ return scrubSecrets(out);
120
+ }
121
+ function redactObjectWithEnv(value, env, seen = new WeakSet) {
122
+ if (value === null || value === undefined)
123
+ return value;
124
+ if (typeof value === "string")
125
+ return redactWithEnv(value, env);
126
+ if (typeof value !== "object")
127
+ return value;
128
+ if (seen.has(value))
129
+ return "[Circular]";
130
+ seen.add(value);
131
+ if (Array.isArray(value)) {
132
+ return value.map((item) => redactObjectWithEnv(item, env, seen));
133
+ }
134
+ const out = {};
135
+ for (const [key, child] of Object.entries(value)) {
136
+ const normalized = key.replace(/([a-z])([A-Z])/g, "$1_$2").toUpperCase();
137
+ if (isSensitiveKey(normalized) || /TOKEN|SECRET|PASSWORD|PRIVATE_KEY/.test(normalized)) {
138
+ out[key] = `[REDACTED:${key}]`;
139
+ continue;
140
+ }
141
+ out[key] = redactObjectWithEnv(child, env, seen);
142
+ }
143
+ return out;
144
+ }
145
+ function absolutePath(path, cwd = process.cwd()) {
146
+ return resolve(cwd, path);
147
+ }
148
+ var DEFAULT_E2B_API_BASE = "https://api.e2b.app", DEFAULT_E2B_TEMPLATE_NAMES, DEFAULT_E2B_FORWARD_KEYS;
149
+ var init_env = __esm(() => {
150
+ init_api_key();
151
+ init_secret_scrubber();
152
+ DEFAULT_E2B_TEMPLATE_NAMES = {
153
+ api: "agent-swarm-api",
154
+ worker: "agent-swarm-worker"
155
+ };
156
+ DEFAULT_E2B_FORWARD_KEYS = [
157
+ "AGENT_SWARM_API_KEY",
158
+ "API_KEY",
159
+ "SECRETS_ENCRYPTION_KEY",
160
+ "ANTHROPIC_API_KEY",
161
+ "CLAUDE_CODE_OAUTH_TOKEN",
162
+ "OPENAI_API_KEY",
163
+ "OPENROUTER_API_KEY",
164
+ "GITHUB_TOKEN",
165
+ "GITLAB_TOKEN",
166
+ "AZURE_DEVOPS_TOKEN",
167
+ "AZURE_DEVOPS_ORG_URL",
168
+ "LINEAR_API_KEY",
169
+ "SLACK_BOT_TOKEN",
170
+ "SLACK_SIGNING_SECRET",
171
+ "BUSINESS_USE_API_KEY",
172
+ "SENTRY_AUTH_TOKEN",
173
+ "OTEL_EXPORTER_OTLP_ENDPOINT",
174
+ "OTEL_EXPORTER_OTLP_HEADERS",
175
+ "SIGNOZ_INGESTION_KEY",
176
+ "DEVIN_API_KEY",
177
+ "DEVIN_ORG_ID",
178
+ "MANAGED_AGENT_ID",
179
+ "MANAGED_ENVIRONMENT_ID",
180
+ "MANAGED_AGENT_MODEL",
181
+ "MANAGED_GITHUB_TOKEN",
182
+ "HARNESS_PROVIDER",
183
+ "MODEL_OVERRIDE",
184
+ "STARTUP_SCRIPT_STRICT"
185
+ ];
186
+ });
187
+
188
+ export { DEFAULT_E2B_API_BASE, DEFAULT_E2B_TEMPLATE_NAMES, DEFAULT_E2B_FORWARD_KEYS, readDotenvFile, maybeReadDotenvFile, parseKeyValue, splitKeys, selectEnv, resolveSwarmApiKey, redactWithEnv, redactObjectWithEnv, absolutePath, init_env };
@@ -0,0 +1,16 @@
1
+ import {
2
+ __esm
3
+ } from "./cli-bc05qbss.js";
4
+
5
+ // src/runtime-providers/types.ts
6
+ var RUNTIME_LABELS;
7
+ var init_types = __esm(() => {
8
+ RUNTIME_LABELS = {
9
+ owner: "swarm.owner",
10
+ runtimeId: "swarm.runtime-id",
11
+ poolId: "swarm.pool-id",
12
+ agentId: "swarm.agent-id"
13
+ };
14
+ });
15
+
16
+ export { RUNTIME_LABELS, init_types };
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  DEFAULT_MODEL_TIER_MAP,
16
16
  init_types
17
- } from "./cli-xvdgasgy.js";
17
+ } from "./cli-hsem16hb.js";
18
18
  import {
19
19
  init_session_templates
20
20
  } from "./cli-e2prcx5m.js";
@@ -23,19 +23,19 @@ import {
23
23
  resolveTemplateAsync,
24
24
  resolveTemplateFromCode
25
25
  } from "./cli-5c2j5yvx.js";
26
- import {
27
- init_env_flag,
28
- parseEnvFlag
29
- } from "./cli-ej6gbxfb.js";
30
26
  import {
31
27
  cursorCatalogRef,
32
28
  init_src
33
29
  } from "./cli-014vns2y.js";
30
+ import {
31
+ init_env_flag,
32
+ parseEnvFlag
33
+ } from "./cli-ej6gbxfb.js";
34
34
  import {
35
35
  init_secret_scrubber,
36
36
  registerVolatileSecret,
37
37
  scrubSecrets
38
- } from "./cli-wt7ccy4r.js";
38
+ } from "./cli-d161g69q.js";
39
39
  import {
40
40
  __require
41
41
  } from "./cli-bc05qbss.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  materializeClaudeMd,
3
3
  stopClaudeMd
4
- } from "./cli-bqrs5ycj.js";
4
+ } from "./cli-m4csbs67.js";
5
5
  import {
6
6
  guardGhPrBody
7
7
  } from "./cli-v6vv7dy8.js";
8
8
  import {
9
9
  summarizeSession
10
- } from "./cli-r7eeddkq.js";
10
+ } from "./cli-ph3145b7.js";
11
11
  import {
12
12
  checkToolLoop,
13
13
  clearToolHistory
@@ -19,9 +19,6 @@ import {
19
19
  isLlmRaterEnabled,
20
20
  postRatings
21
21
  } from "./cli-w0bwte75.js";
22
- import {
23
- getApiKey
24
- } from "./cli-f14fvzag.js";
25
22
  import {
26
23
  buildIndependentIdentityPayloads,
27
24
  contentSha256,
@@ -29,24 +26,29 @@ import {
29
26
  init_profile_sync,
30
27
  readIdentityBaselines,
31
28
  warnProfileFileTooLarge
32
- } from "./cli-jv36y8wz.js";
29
+ } from "./cli-rrbctenq.js";
30
+ import {
31
+ init_package,
32
+ package_default
33
+ } from "./cli-bkdbswyn.js";
33
34
  import {
34
35
  MAX_PROFILE_FILE_LENGTH,
35
36
  getMcpBaseUrl,
36
37
  init_constants
37
38
  } from "./cli-gd4favx9.js";
38
39
  import {
39
- init_package,
40
- package_default
41
- } from "./cli-m23r88re.js";
40
+ getApiKey,
41
+ init_api_key
42
+ } from "./cli-a1b9b32n.js";
42
43
  import {
43
44
  init_secret_scrubber,
44
45
  scrubSecrets
45
- } from "./cli-wt7ccy4r.js";
46
+ } from "./cli-d161g69q.js";
46
47
 
47
48
  // src/hooks/hook.ts
48
49
  init_package();
49
50
  init_profile_sync();
51
+ init_api_key();
50
52
  init_constants();
51
53
  init_secret_scrubber();
52
54
  var SERVER_NAME = package_default.config?.name ?? "agent-swarm";
@@ -334,7 +336,8 @@ async function handleHook() {
334
336
  try {
335
337
  await fetch(`${getBaseUrl()}/close`, {
336
338
  method: "POST",
337
- headers: mcpConfig.headers
339
+ headers: { ...mcpConfig.headers, "Content-Type": "application/json" },
340
+ body: JSON.stringify({ runtimeShutdown: false })
338
341
  });
339
342
  } catch {}
340
343
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_MODEL_TIER_MAP,
3
3
  init_types
4
- } from "./cli-xvdgasgy.js";
4
+ } from "./cli-hsem16hb.js";
5
5
 
6
6
  // src/utils/amp-models.ts
7
7
  init_types();
@@ -12,7 +12,7 @@ import {
12
12
  } from "./cli-q2j38vre.js";
13
13
  import {
14
14
  summarizeSession
15
- } from "./cli-r7eeddkq.js";
15
+ } from "./cli-ph3145b7.js";
16
16
  import {
17
17
  CTX_MODE_NUDGE_EVERY
18
18
  } from "./cli-zm7njwzd.js";
@@ -39,9 +39,6 @@ import {
39
39
  import {
40
40
  swarmRuntimeInstanceId
41
41
  } from "./cli-re8z5p8p.js";
42
- import {
43
- getApiKey
44
- } from "./cli-f14fvzag.js";
45
42
  import {
46
43
  detachedProcessGroup,
47
44
  registerProcessGroup,
@@ -51,11 +48,11 @@ import {
51
48
  CodexOAuthRefreshError,
52
49
  credentialsToAuthJson,
53
50
  getValidCodexOAuth
54
- } from "./cli-v1w7pbd8.js";
51
+ } from "./cli-7jykv7ef.js";
55
52
  import {
56
53
  DEFAULT_MODEL_TIER_MAP,
57
54
  init_types
58
- } from "./cli-xvdgasgy.js";
55
+ } from "./cli-hsem16hb.js";
59
56
  import {
60
57
  init_runtime_model_catalog,
61
58
  init_src,
@@ -64,11 +61,19 @@ import {
64
61
  import {
65
62
  init_package,
66
63
  package_default
67
- } from "./cli-m23r88re.js";
64
+ } from "./cli-bkdbswyn.js";
65
+ import {
66
+ init_env_flag,
67
+ isEnvFlagEnabled
68
+ } from "./cli-ej6gbxfb.js";
69
+ import {
70
+ getApiKey,
71
+ init_api_key
72
+ } from "./cli-a1b9b32n.js";
68
73
  import {
69
74
  init_secret_scrubber,
70
75
  scrubSecrets
71
- } from "./cli-wt7ccy4r.js";
76
+ } from "./cli-d161g69q.js";
72
77
  import {
73
78
  __require
74
79
  } from "./cli-bc05qbss.js";
@@ -76,6 +81,8 @@ import {
76
81
  // src/providers/codex-adapter.ts
77
82
  import { existsSync as nodeExistsSync } from "node:fs";
78
83
  import { join as join2 } from "node:path";
84
+ init_api_key();
85
+ init_env_flag();
79
86
  init_secret_scrubber();
80
87
 
81
88
  // src/providers/codex-agents-md.ts
@@ -795,7 +802,7 @@ async function buildCodexConfig(config, model, emit) {
795
802
  });
796
803
  }
797
804
  }
798
- if (process.env.CONTEXT_MODE_DISABLED !== "true") {
805
+ if (!isEnvFlagEnabled("CONTEXT_MODE_DISABLED", false)) {
799
806
  mcpServers["context-mode"] = {
800
807
  command: "context-mode",
801
808
  enabled: true,
@@ -1380,7 +1387,8 @@ class CodexSession {
1380
1387
  type: "tool_end",
1381
1388
  toolCallId: item.id,
1382
1389
  toolName: this.toolNameForItem(item),
1383
- result: item
1390
+ result: item,
1391
+ ...item.type === "command_execution" ? { isError: item.exit_code !== 0 || item.status === "failed" } : {}
1384
1392
  });
1385
1393
  this.transcript.push(`Tool[${this.toolNameForItem(item)}] completed: ${this.shortenItemResult(item)}`);
1386
1394
  break;
@@ -71,6 +71,11 @@ function isExplicitSelfRaterEnabled() {
71
71
  return getMemoryRaterNames().includes("explicit-self");
72
72
  }
73
73
 
74
+ // src/utils/lead-monitor-channels.ts
75
+ function isLeadChannelMonitoringEnabled(env = process.env) {
76
+ return env.LEAD_MONITOR_CHANNELS === "true";
77
+ }
78
+
74
79
  // src/utils/harness-model-error.ts
75
80
  var UNKNOWN_MODEL_PATTERNS = [
76
81
  /issue with the selected model/i,
@@ -232,4 +237,4 @@ function writeSkillsToFilesystem(entries, harnessType = "all", home) {
232
237
  return { synced, removed, errors };
233
238
  }
234
239
 
235
- export { SIMILARITY_THRESHOLD, memoryRelevance, renderMemoriesPrompt, isUnknownModelError, writeSkillsToFilesystem };
240
+ export { isLeadChannelMonitoringEnabled, SIMILARITY_THRESHOLD, memoryRelevance, renderMemoriesPrompt, isUnknownModelError, writeSkillsToFilesystem };
@@ -3,7 +3,7 @@ import {
3
3
  registerVolatileSecret,
4
4
  scrubObject,
5
5
  scrubSecrets
6
- } from "./cli-wt7ccy4r.js";
6
+ } from "./cli-d161g69q.js";
7
7
 
8
8
  // src/x/composio.ts
9
9
  init_secret_scrubber();