@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.
- package/README.md +1 -1
- package/dist/acp-adapter-bp91d37f.js +15 -0
- package/dist/{actions-gfrr9vb7.js → actions-yj0eeaqh.js} +19 -18
- package/dist/{amp-adapter-0s58gm46.js → amp-adapter-4pg9h34q.js} +3 -3
- package/dist/{app-stvq692g.js → app-909e97cr.js} +3 -3
- package/dist/{assistant-5s37fr9n.js → assistant-qdyb5fyy.js} +32 -23
- package/dist/{boot-reembed-yzy1841n.js → boot-reembed-fk0s9z18.js} +1 -1
- package/dist/{boot-reembed-cv82gz7y.js → boot-reembed-gs1rzrnh.js} +1 -1
- package/dist/{boot-scrub-sweep-8k4q95ap.js → boot-scrub-sweep-4qfd4kfx.js} +4 -4
- package/dist/{boot-seeds-ftt9htah.js → boot-seeds-yr00k13d.js} +4 -4
- package/dist/{boxd-515v1t8z.js → boxd-vdmfssd9.js} +5 -5
- package/dist/{claude-adapter-t00wrzeh.js → claude-adapter-qta1f1xn.js} +7 -7
- package/dist/{claude-managed-adapter-g6vmjccb.js → claude-managed-adapter-dvs2xw5n.js} +2 -2
- package/dist/{claude-managed-setup-afpa82f7.js → claude-managed-setup-sc6j4dm0.js} +3 -3
- package/dist/{claude-sdk-session-vj0c2azx.js → claude-sdk-session-zgrz6yvc.js} +9175 -9076
- package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
- package/dist/{cli-edmm9d9y.js → cli-0at8w34w.js} +7 -7
- package/dist/{cli-a81qevyg.js → cli-0qatpy8q.js} +20 -36
- package/dist/{cli-bcz074zx.js → cli-0yv5z2pg.js} +1 -1
- package/dist/{cli-a4btqqft.js → cli-1b7btd38.js} +1 -1
- package/dist/{cli-a2jw6ee5.js → cli-1p89xny0.js} +1 -1
- package/dist/{cli-v726afdm.js → cli-2pnswgh8.js} +1 -1
- package/dist/{cli-jkt52mgt.js → cli-386tyxxg.js} +2 -2
- package/dist/{cli-az0bpf8p.js → cli-3ypk9vk1.js} +3 -3
- package/dist/{cli-wk9md5px.js → cli-436532ck.js} +4 -4
- package/dist/{cli-7n5sbw0z.js → cli-4necwtsv.js} +5 -5
- package/dist/cli-54t00gt8.js +151 -0
- package/dist/{cli-655xm9ms.js → cli-583frbyr.js} +1 -1
- package/dist/{cli-4r12t6w6.js → cli-5c4hjzne.js} +101 -4
- package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
- package/dist/{cli-rtk9g7av.js → cli-73jzwksr.js} +6 -2
- package/dist/{cli-jg0nfda6.js → cli-75gkpjvw.js} +52 -21
- package/dist/{cli-wcmnan2g.js → cli-89knwags.js} +5 -5
- package/dist/{cli-pwyevs29.js → cli-8bc1w0tw.js} +22 -21
- package/dist/{cli-t282jgab.js → cli-8snvgs5r.js} +41 -16
- package/dist/{cli-vqgnyh76.js → cli-98rw5dt5.js} +15 -3
- package/dist/{cli-9cctx1tn.js → cli-a22h291q.js} +1 -1
- package/dist/{cli-ycm6180s.js → cli-a7v854rf.js} +5 -3
- package/dist/{cli-98pke4vk.js → cli-ae7mrdf9.js} +2 -2
- package/dist/{cli-je8yeyc5.js → cli-bjb3z51z.js} +5 -5
- package/dist/{cli-mc97xy2s.js → cli-c60vetmm.js} +16 -4
- package/dist/{cli-j4kw3rsx.js → cli-cm5yqn35.js} +18 -0
- package/dist/{cli-wndv9p7g.js → cli-decfb6v8.js} +6 -6
- package/dist/{cli-h55y2bjc.js → cli-dhar9qay.js} +2 -2
- package/dist/{cli-8yy525ad.js → cli-drr5v6av.js} +2 -2
- package/dist/{cli-5gr1g711.js → cli-dxae2yg7.js} +2 -2
- package/dist/{cli-pe09p6dv.js → cli-e3r2neck.js} +8 -7
- package/dist/{cli-13jvmew3.js → cli-ekwks2vs.js} +7 -7
- package/dist/{cli-jg4p5t36.js → cli-es6va8jk.js} +121 -51
- package/dist/{cli-j4kt1mpb.js → cli-faxe6thg.js} +3 -3
- package/dist/{cli-tzrpv5sc.js → cli-ftyxyspd.js} +1 -1
- package/dist/cli-fw2w0kva.js +47 -0
- package/dist/{cli-2dfbv8qr.js → cli-fy6x31ps.js} +1 -0
- package/dist/{cli-aq58fk5m.js → cli-g83s9ewh.js} +7 -1
- package/dist/cli-gdhpcbhf.js +55 -0
- package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
- package/dist/{cli-8veytvbh.js → cli-he9wchme.js} +1 -1
- package/dist/{cli-k76tgq03.js → cli-hgaazk69.js} +2 -2
- package/dist/{cli-d2pzqej1.js → cli-hr2e2fft.js} +741 -7
- package/dist/{cli-dae4sbgy.js → cli-jm2vfpfd.js} +2 -2
- package/dist/{cli-1s1dqn1j.js → cli-k2gzwsj2.js} +297 -140
- package/dist/{cli-b1afgtj3.js → cli-kqdg1bsb.js} +3 -3
- package/dist/cli-m2z8jagn.js +12078 -0
- package/dist/{cli-mvckssyq.js → cli-m48g6p95.js} +5 -5
- package/dist/{cli-bwty35gx.js → cli-mthwvjre.js} +1 -1
- package/dist/{cli-41z8xwj0.js → cli-nhrvpaj7.js} +34 -8
- package/dist/{cli-ahd90bwt.js → cli-nwj0ee2w.js} +6 -6
- package/dist/{cli-kvtc7aez.js → cli-p5gp8pcx.js} +44 -14
- package/dist/{cli-avgcz4ra.js → cli-pd7vagab.js} +436 -171
- package/dist/{cli-zn15c46z.js → cli-q0k1w5zd.js} +1 -1
- package/dist/{cli-bq2pcphn.js → cli-rmmmrjkd.js} +1 -1
- package/dist/{cli-2qpvmmkw.js → cli-s0qnd4wv.js} +1 -1
- package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
- package/dist/{cli-1yekbyqm.js → cli-shpbx5ee.js} +283 -82
- package/dist/{cli-9y354g3j.js → cli-srye3vdt.js} +1 -1
- package/dist/{cli-byqfbnjw.js → cli-svj5090z.js} +9 -9
- package/dist/{cli-gcbdjt47.js → cli-vfym7wmz.js} +6 -6
- package/dist/{cli-v1yw3wha.js → cli-vvpx3gsx.js} +4 -4
- package/dist/{cli-a1fhj4n9.js → cli-w6dt9ged.js} +2 -2
- package/dist/{cli-1gm8jcyr.js → cli-waqbxg08.js} +5232 -68
- package/dist/{cli-5hjced2v.js → cli-wp9sp1qb.js} +6 -6
- package/dist/{cli-eny54typ.js → cli-wx3rhnm0.js} +1 -1
- package/dist/{cli-s0exq74r.js → cli-xbbndvjy.js} +3 -3
- package/dist/{cli-f255yaqn.js → cli-xds5f77d.js} +3 -3
- package/dist/{cli-0sbkss7h.js → cli-xnqgpshy.js} +2 -2
- package/dist/{cli-0fgr1w9b.js → cli-xnrwazav.js} +20 -3
- package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
- package/dist/{cli-cq1pf336.js → cli-yn4kxs06.js} +124 -11
- package/dist/{cli-224epwwf.js → cli-yx4kfngt.js} +3 -3
- package/dist/{cli-eqx6k993.js → cli-yy3rhsdw.js} +47 -13
- package/dist/{cli-36g23z21.js → cli-zbbwez0r.js} +4 -4
- package/dist/{cli-ktmvb20s.js → cli-zm72anhg.js} +12 -12
- package/dist/cli.js +26 -25
- package/dist/{codex-adapter-g0gctw29.js → codex-adapter-ayd1fb6h.js} +5 -5
- package/dist/{codex-hook-vrzz2xhr.js → codex-hook-9efm2x1m.js} +1 -1
- package/dist/{codex-login-0gg46ygn.js → codex-login-y0pmff1c.js} +1 -1
- package/dist/{codex-session-runner-dr2cxe1c.js → codex-session-runner-jesa32xc.js} +6 -6
- package/dist/{commands-1p07cvff.js → commands-hanewgf2.js} +9 -3
- package/dist/{controller-z0s7sv6r.js → controller-dt1n3c1q.js} +9 -4
- package/dist/{controllers-connect-x9kvvhyk.js → controllers-connect-xx8x64n5.js} +22 -21
- package/dist/{cursor-adapter-m5b98pvk.js → cursor-adapter-9s4dwwdw.js} +2 -2
- package/dist/{db-capk2raj.js → db-3vttcbv4.js} +3 -3
- package/dist/{db-rsh04kh3.js → db-9dv0g1ab.js} +12 -4
- package/dist/{devin-adapter-yxm87fe9.js → devin-adapter-r9phbnc9.js} +1 -1
- package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
- package/dist/{dispatcher-304q6fwa.js → dispatcher-tx9hd1sv.js} +18 -17
- package/dist/{docker-7rxt0rry.js → docker-c1a3gqmf.js} +91 -24
- package/dist/{dsh-adapter-btewem0y.js → dsh-adapter-007y4ejs.js} +2 -2
- package/dist/{e2b-renc0k8q.js → e2b-a19d28rz.js} +4 -4
- package/dist/{e2b-7fc9b9bd.js → e2b-we6hs6q5.js} +6 -6
- package/dist/{easter-egg-3d-fm1p3n4d.js → easter-egg-3d-rgbrqb8s.js} +1 -1
- package/dist/{embedding-space-s68v49ct.js → embedding-space-ny1e2940.js} +6 -6
- package/dist/{embeddings-4ms3604w.js → embeddings-2t386t13.js} +1 -1
- package/dist/{event-bus-dfjx2qdh.js → event-bus-g0ka3pbw.js} +1 -1
- package/dist/{execute-mcdgccjs.js → execute-pksh0ceh.js} +1 -1
- package/dist/{external-channel-9dxwfztn.js → external-channel-phgmhmd7.js} +2 -2
- package/dist/fx-adapter-fy8rr921.js +18 -0
- package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-8y3m3k4b.js} +1 -1
- package/dist/{google-vertex-jrtdh9gs.js → google-vertex-w3v98n7b.js} +1 -1
- package/dist/{grok-adapter-05ecv4h0.js → grok-adapter-q0abvpaj.js} +8 -8
- package/dist/handlers-by3sfxyx.js +32 -0
- package/dist/{heartbeat-3n94heh3.js → heartbeat-kadyek8p.js} +21 -20
- package/dist/{hook-aadrn69x.js → hook-5zs3msf6.js} +6 -6
- package/dist/{hook-zxwje86c.js → hook-9k551xnj.js} +4 -4
- package/dist/{http-xzxk9mst.js → http-mhz9vw1f.js} +272 -103
- package/dist/index-4f2pvxae.js +37 -0
- package/dist/index-98gz7tmp.js +30 -0
- package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
- package/dist/index-k08z2cak.js +33 -0
- package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
- package/dist/{index-d34f6r87.js → index-q361cg2f.js} +1 -1
- package/dist/{index-9j4zwcht.js → index-rvr00sg7.js} +168 -675
- package/dist/{index-qeb82z37.js → index-vdygbq10.js} +1 -1
- package/dist/{keepalive-w4aakbyk.js → keepalive-w56f32cg.js} +4 -4
- package/dist/lead-enq35nqp.js +70 -0
- package/dist/{maintenance-hbptpk6p.js → maintenance-7mdgxcea.js} +1 -1
- package/dist/{oauth-refresh-sweep-217semrv.js → oauth-refresh-sweep-29txy9vk.js} +3 -3
- package/dist/{onboard-vz2s5df3.js → onboard-kpsrkarj.js} +5 -5
- package/dist/{opencode-adapter-gtfd7d7v.js → opencode-adapter-j25vm3rr.js} +5 -5
- package/dist/{otel-impl-aefave37.js → otel-impl-6kkct7a8.js} +2 -2
- package/dist/{pi-mono-adapter-f8h5yseh.js → pi-mono-adapter-exhkzhn2.js} +117 -23
- package/dist/{pricing-refresh-m1yhh9ya.js → pricing-refresh-n2x7jh6k.js} +3 -3
- package/dist/{rbac-roles-rrw8twdz.js → rbac-roles-81ypx6es.js} +1 -1
- package/dist/{rbac-roles-svj72cdf.js → rbac-roles-b5htkjby.js} +2 -2
- package/dist/{render-v2-amwbnfxh.js → render-v2-qn6jmpk4.js} +3 -3
- package/dist/{resume-9cd6wf6z.js → resume-wd30wx23.js} +7 -7
- package/dist/{runtime-fp4vrx7m.js → runtime-4hsg7h60.js} +1 -1
- package/dist/{session-access-21t6yjyg.js → session-access-5qvfevhk.js} +4 -4
- package/dist/{session-source-backfill-pxbzcsc6.js → session-source-backfill-n1czavbr.js} +3 -3
- package/dist/{setup-4592tqz4.js → setup-dnb56qy5.js} +3 -3
- package/dist/{virtual-modules-gzfnpmnz.js → virtual-modules-76xxv9fs.js} +2 -2
- package/dist/{work-objects-t9tcf174.js → work-objects-4n21tfkm.js} +21 -20
- package/dist/{worker-follow-up-q32jh4yk.js → worker-follow-up-77hvzxww.js} +18 -17
- package/dist/worker-gg1576j3.js +70 -0
- package/dist/{x-b6wxntdt.js → x-vmmye1kb.js} +2 -2
- package/openapi.json +189 -32
- package/package.json +8 -7
- package/src/be/db/script-runs.ts +23 -0
- package/src/be/db/session-summaries.ts +8 -2
- package/src/be/db/session-tree.ts +174 -61
- package/src/be/db/session-visibility.ts +5 -4
- package/src/be/db/tasks/read.ts +122 -3
- package/src/be/db-client.ts +8 -5
- package/src/be/db.ts +23 -8
- package/src/be/memory/providers/sqlite-store.ts +49 -12
- package/src/be/migrations/259_session_summaries_open_tasks.sql +111 -0
- package/src/be/migrations/260_runtime_pool_cache.sql +20 -0
- package/src/be/migrations/262_session_visibility_indexes.sql +18 -0
- package/src/be/migrations/263_task_list_filter_index.sql +11 -0
- package/src/be/migrations/264_slack_thread_cover_index.sql +9 -0
- package/src/be/migrations/266_script_runs_source_task.sql +11 -0
- package/src/be/model-validation.ts +5 -1
- package/src/be/pricing-normalize.ts +7 -2
- package/src/be/runtime-pools/cache-cleanup.ts +109 -0
- package/src/be/runtime-pools/db.ts +65 -6
- package/src/be/runtime-pools/remote-controller.ts +5 -0
- package/src/be/runtime-pools/supervisor.ts +33 -2
- package/src/be/scripts/typecheck.ts +23 -0
- package/src/be/seed/schedules-seeder.ts +135 -9
- package/src/be/seed/workflows-seeder.ts +65 -1
- package/src/be/seed-pricing.ts +23 -0
- package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
- package/src/be/steering.ts +50 -3
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/commands/controller.ts +4 -0
- package/src/commands/entrypoint-api-readiness.ts +74 -0
- package/src/commands/provider-credentials.ts +29 -2
- package/src/commands/runner.ts +86 -5
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +27 -1
- package/src/extensions/dispatcher.ts +4 -0
- package/src/http/agents.ts +1 -0
- package/src/http/index.ts +1 -1
- package/src/http/list-total-cache.ts +14 -7
- package/src/http/mcp-bridge.ts +4 -0
- package/src/http/memory.ts +38 -9
- package/src/http/script-runs.ts +174 -5
- package/src/http/status.ts +10 -2
- package/src/http/tasks.ts +4 -2
- package/src/integrations/chat-sdk/inbound.ts +15 -5
- package/src/integrations/chat-sdk/steering.ts +3 -1
- package/src/kv-reserved-namespaces.ts +2 -0
- package/src/prompts/base-prompt.ts +4 -1
- package/src/prompts/session-templates.ts +26 -0
- package/src/providers/acp-adapter.ts +190 -26
- package/src/providers/acp-targets.ts +306 -6
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/codex-adapter.ts +9 -44
- package/src/providers/codex-oauth/flow.ts +24 -3
- package/src/providers/codex-oauth/storage.ts +56 -17
- package/src/providers/codex-oauth/subscription.ts +67 -0
- package/src/providers/fx-adapter.ts +211 -0
- package/src/providers/index.ts +5 -1
- package/src/providers/mcp-loopback-proxy.ts +94 -0
- package/src/providers/pi-mono-adapter.ts +98 -13
- package/src/providers/pricing-sources.md +8 -0
- package/src/providers/reasoning-effort.ts +17 -1
- package/src/providers/types.ts +2 -1
- package/src/runtime-providers/controller-protocol.ts +14 -1
- package/src/runtime-providers/controller.ts +5 -0
- package/src/runtime-providers/docker.ts +108 -23
- package/src/runtime-providers/types.ts +16 -0
- package/src/scheduler/scheduler.ts +36 -3
- package/src/script-workflows/workflow-ctx.ts +8 -0
- package/src/scripts-runtime/sdk-allowlist.ts +1 -0
- package/src/scripts-runtime/types/stdlib.d.ts +27 -0
- package/src/scripts-runtime/types/swarm-extension.d.ts +33 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -0
- package/src/server-user.ts +1 -0
- package/src/server.ts +7 -0
- package/src/slack/assistant.ts +17 -1
- package/src/slack/commands.ts +5 -1
- package/src/slack/handlers.ts +53 -5
- package/src/slack/left-threads.ts +88 -0
- package/src/slack/steering.ts +3 -0
- package/src/slack/thread-buffer.ts +40 -16
- package/src/tasks/follow-up-redelegation-guard.ts +155 -0
- package/src/tests/acp-adapter.test.ts +79 -0
- package/src/tests/base-prompt.test.ts +12 -0
- package/src/tests/chat-sdk-inbound.test.ts +30 -0
- package/src/tests/chatgpt-subscription-model-groups.test.ts +62 -0
- package/src/tests/chatgpt-subscription-pi.test.ts +170 -0
- package/src/tests/chatgpt-subscription-session-bench.test.ts +198 -0
- package/src/tests/claude-artifacts-read-script.test.ts +209 -0
- package/src/tests/codex-oauth-credential-info.test.ts +40 -0
- package/src/tests/codex-oauth-refresh-egress.test.ts +194 -0
- package/src/tests/context-window.test.ts +7 -0
- package/src/tests/db-client.test.ts +21 -0
- package/src/tests/db-task-read-contract.test.ts +8 -2
- package/src/tests/db-task-write-contract.test.ts +5 -1
- package/src/tests/entrypoint-api-readiness.test.ts +416 -210
- package/src/tests/explicit-model-validation.test.ts +113 -8
- package/src/tests/extensions-run-context.test.ts +11 -0
- package/src/tests/extensions-steering.test.ts +353 -0
- package/src/tests/extensions-validate.test.ts +5 -0
- package/src/tests/fixtures/extensions/steering-policy/hooks.ts +39 -0
- package/src/tests/fixtures/extensions/steering-policy/manifest.json +7 -0
- package/src/tests/fixtures/fake-fx.ts +167 -0
- package/src/tests/fixtures/fx/acp-responses-recorded.json +157 -0
- package/src/tests/fixtures/fx/acp-updates-recorded.jsonl +15 -0
- package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
- package/src/tests/fx-adapter.test.ts +771 -0
- package/src/tests/grok-adapter.test.ts +36 -0
- package/src/tests/list-total-cache.test.ts +27 -2
- package/src/tests/mcp-loopback-proxy.test.ts +193 -0
- package/src/tests/memory-fts-populate.test.ts +11 -9
- package/src/tests/memory-retrieval-purge.test.ts +80 -0
- package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
- package/src/tests/model-tier-resolution.test.ts +3 -3
- package/src/tests/pricing-refresh.test.ts +5 -5
- package/src/tests/prompt-template-session.test.ts +5 -3
- package/src/tests/provider-registration.test.ts +2 -1
- package/src/tests/query-audit-plans.test.ts +30 -2
- package/src/tests/runtime-cache-cleanup.test.ts +367 -0
- package/src/tests/runtime-e2b-pools.test.ts +41 -0
- package/src/tests/runtime-pools-db.test.ts +98 -0
- package/src/tests/runtime-pools-http.test.ts +29 -0
- package/src/tests/runtime-providers-docker.test.ts +253 -0
- package/src/tests/runtime-remote-controller.test.ts +66 -2
- package/src/tests/runtime-supervisor.test.ts +66 -2
- package/src/tests/script-connections.test.ts +13 -0
- package/src/tests/script-runs-http.test.ts +684 -2
- package/src/tests/seed-model-profiles.test.ts +2 -2
- package/src/tests/seed-schedules.test.ts +138 -0
- package/src/tests/seed-scripts.test.ts +26 -0
- package/src/tests/session-cost-recompute-unit.test.ts +39 -0
- package/src/tests/session-costs-golden.test.ts +26 -0
- package/src/tests/session-summaries-plans.test.ts +120 -0
- package/src/tests/session-summaries.test.ts +72 -12
- package/src/tests/sessions-tree.test.ts +11 -3
- package/src/tests/slack-leave-thread.test.ts +571 -0
- package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
- package/src/tests/status.test.ts +11 -0
- package/src/tests/tasks-readable-row.test.ts +155 -0
- package/src/tests/tool-annotations.test.ts +2 -1
- package/src/tests/workflow-engine-v2.test.ts +42 -0
- package/src/tests/workflow-script-principal.test.ts +207 -7
- package/src/tools/send-task.ts +35 -47
- package/src/tools/slack-leave-thread.ts +104 -0
- package/src/tools/steer-task.ts +3 -2
- package/src/tools/task-dedup.ts +45 -21
- package/src/tools/tool-config.ts +2 -1
- package/src/types.ts +57 -0
- package/src/utils/codex-auth-failure.ts +30 -0
- package/src/utils/context-window.ts +4 -1
- package/src/utils/credentials.ts +7 -0
- package/src/utils/fx-models.ts +43 -0
- package/src/workflows/cooldown.ts +3 -2
- package/src/workflows/engine.ts +24 -9
- package/templates/schedules/dreaming-daily/config.json +1 -1
- package/templates/schedules/dreaming-daily/content.md +6 -14
- package/templates/skills/composio-google-docs/content.md +10 -0
- package/templates/skills/script-workflows/content.md +19 -1
- package/templates/skills/swarm-docs/content.md +2 -0
- package/templates/skills/swarm-scripts/SKILL.md +2 -0
- package/templates/skills/swarm-scripts/content.md +2 -0
- package/templates/workflows/dreaming/content.md +5 -1
- package/dist/acp-adapter-96dc64m2.js +0 -15
- package/dist/cli-dznrgaep.js +0 -30
- package/dist/cli-w3hcrxht.js +0 -6985
- package/dist/handlers-jg7v74ty.js +0 -31
- package/dist/index-8c1zbz59.js +0 -29
- package/dist/index-8k8tmfxd.js +0 -32
- package/dist/index-hq617xdj.js +0 -36
- package/dist/lead-567kw7x3.js +0 -68
- package/dist/worker-fjdqra6q.js +0 -68
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CONTROLLER_COMMAND_TIMEOUT_MS,
|
|
5
5
|
RuntimeHandleSchema,
|
|
6
6
|
ControllerStatusResultSchema
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-xnrwazav.js";
|
|
8
8
|
import {
|
|
9
9
|
getDbClient2,
|
|
10
10
|
isRuntimePoolsEnabled,
|
|
@@ -21,8 +21,11 @@ import {
|
|
|
21
21
|
upsertSwarmConfig2,
|
|
22
22
|
getResolvedConfig2,
|
|
23
23
|
init_db4
|
|
24
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-k2gzwsj2.js";
|
|
25
25
|
import {
|
|
26
|
+
getPoolCache,
|
|
27
|
+
reconcileCacheReleases,
|
|
28
|
+
init_cache_cleanup,
|
|
26
29
|
getRuntimeController2,
|
|
27
30
|
getRuntimeControllerTarget2,
|
|
28
31
|
checkE2bControllerConfig2,
|
|
@@ -32,17 +35,17 @@ import {
|
|
|
32
35
|
getPoolForAgent2,
|
|
33
36
|
resolvePoolDelivery2,
|
|
34
37
|
init_db2
|
|
35
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-yn4kxs06.js";
|
|
36
39
|
import {
|
|
37
40
|
workflowEventBus2,
|
|
38
41
|
init_event_bus
|
|
39
|
-
} from "./cli-
|
|
42
|
+
} from "./cli-wx3rhnm0.js";
|
|
40
43
|
import {
|
|
41
44
|
createWorkerTaskFollowUp2,
|
|
42
45
|
init_worker_follow_up,
|
|
43
46
|
canClaim,
|
|
44
47
|
init_budget_admission
|
|
45
|
-
} from "./cli-
|
|
48
|
+
} from "./cli-shpbx5ee.js";
|
|
46
49
|
import {
|
|
47
50
|
runtimeStaleThresholdMinutes,
|
|
48
51
|
getRuntimeInstanceById,
|
|
@@ -51,7 +54,7 @@ import {
|
|
|
51
54
|
listRuntimeInstancesForAgent,
|
|
52
55
|
listRuntimeInstancesForPool,
|
|
53
56
|
init_multi_runtime
|
|
54
|
-
} from "./cli-
|
|
57
|
+
} from "./cli-8bc1w0tw.js";
|
|
55
58
|
import {
|
|
56
59
|
isMultiRuntimeEnabled,
|
|
57
60
|
init_multi_runtime2
|
|
@@ -60,20 +63,20 @@ import {
|
|
|
60
63
|
canProvisionKind,
|
|
61
64
|
createRuntimeProvider,
|
|
62
65
|
init_runtime_providers
|
|
63
|
-
} from "./cli-
|
|
66
|
+
} from "./cli-kqdg1bsb.js";
|
|
64
67
|
import {
|
|
65
68
|
mintRuntimeToken,
|
|
66
69
|
init_users
|
|
67
|
-
} from "./cli-
|
|
70
|
+
} from "./cli-drr5v6av.js";
|
|
68
71
|
import {
|
|
69
72
|
import_websocket,
|
|
70
73
|
init_wrapper2
|
|
71
|
-
} from "./cli-
|
|
74
|
+
} from "./cli-69szn7w7.js";
|
|
72
75
|
import {
|
|
73
76
|
TERMINAL_TASK_STATUSES,
|
|
74
77
|
isTerminalTaskStatus,
|
|
75
78
|
init_types4
|
|
76
|
-
} from "./cli-
|
|
79
|
+
} from "./cli-nhrvpaj7.js";
|
|
77
80
|
import {
|
|
78
81
|
init_zod
|
|
79
82
|
} from "./cli-k5671be5.js";
|
|
@@ -89,7 +92,7 @@ import {
|
|
|
89
92
|
import {
|
|
90
93
|
buildImageTemplate,
|
|
91
94
|
init_dispatch
|
|
92
|
-
} from "./cli-
|
|
95
|
+
} from "./cli-583frbyr.js";
|
|
93
96
|
import {
|
|
94
97
|
resolveWorkerApiUrl,
|
|
95
98
|
init_worker_api_url
|
|
@@ -97,12 +100,12 @@ import {
|
|
|
97
100
|
import {
|
|
98
101
|
RUNTIME_LABELS,
|
|
99
102
|
init_types5
|
|
100
|
-
} from "./cli-
|
|
103
|
+
} from "./cli-0agcv1v5.js";
|
|
101
104
|
import {
|
|
102
105
|
scrubSecrets,
|
|
103
106
|
registerVolatileSecret,
|
|
104
107
|
init_secret_scrubber
|
|
105
|
-
} from "./cli-
|
|
108
|
+
} from "./cli-1b7btd38.js";
|
|
106
109
|
|
|
107
110
|
// src/be/runtime-pools/supervisor.ts
|
|
108
111
|
init_runtime_providers();
|
|
@@ -118,6 +121,7 @@ init_budget_admission();
|
|
|
118
121
|
init_db4();
|
|
119
122
|
init_multi_runtime();
|
|
120
123
|
init_users();
|
|
124
|
+
init_cache_cleanup();
|
|
121
125
|
|
|
122
126
|
// src/be/runtime-pools/controllers.ts
|
|
123
127
|
init_runtime_providers();
|
|
@@ -162,12 +166,17 @@ class RemoteController {
|
|
|
162
166
|
renew;
|
|
163
167
|
pause;
|
|
164
168
|
resume;
|
|
169
|
+
releaseCache;
|
|
165
170
|
constructor(id, ws, traits, workerApiUrl, timeouts = {}) {
|
|
166
171
|
this.id = id;
|
|
167
172
|
this.ws = ws;
|
|
168
173
|
this.traits = traits;
|
|
169
174
|
this.workerApiUrl = workerApiUrl;
|
|
170
175
|
this.timeouts = timeouts;
|
|
176
|
+
if (traits.persistentCache)
|
|
177
|
+
this.releaseCache = async (cache) => {
|
|
178
|
+
await this.call({ op: "release-cache", payload: cache });
|
|
179
|
+
};
|
|
171
180
|
if (traits.maxTtlSec)
|
|
172
181
|
this.renew = async (handle, ttlSec) => object2({ endAt: string2() }).parse(await this.call({ op: "renew", payload: { handle, ttlSec } }));
|
|
173
182
|
if (traits.supportsPause) {
|
|
@@ -537,7 +546,7 @@ async function recoverSessions(runtimeId, reason) {
|
|
|
537
546
|
}
|
|
538
547
|
if (!sessions.length)
|
|
539
548
|
return;
|
|
540
|
-
const { remediateTaskForDeadRuntime } = await import("./heartbeat-
|
|
549
|
+
const { remediateTaskForDeadRuntime } = await import("./heartbeat-kadyek8p.js");
|
|
541
550
|
for (const session of sessions) {
|
|
542
551
|
try {
|
|
543
552
|
const task = await getTaskById2(session.taskId);
|
|
@@ -818,6 +827,9 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
818
827
|
if (templateId)
|
|
819
828
|
env.TEMPLATE_ID = templateId;
|
|
820
829
|
const ttlSec = pool.kind === "e2b" ? poolLeaseTtl(pool, controller) : undefined;
|
|
830
|
+
const currentPoolCache = await getPoolCache(pool.id);
|
|
831
|
+
const currentCache = currentPoolCache?.controllerId === pool.placements[0] ? currentPoolCache : null;
|
|
832
|
+
const cache = currentCache && controller.traits.persistentCache ? { key: currentCache.key, mountPath: currentCache.mountPath } : undefined;
|
|
821
833
|
signal?.throwIfAborted();
|
|
822
834
|
const handle = await controller.provision({
|
|
823
835
|
runtimeId,
|
|
@@ -828,6 +840,7 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
828
840
|
...ttlSec === undefined ? {} : { ttlSec },
|
|
829
841
|
env,
|
|
830
842
|
resources: pool.resources ?? undefined,
|
|
843
|
+
...cache ? { cache } : {},
|
|
831
844
|
labels: {
|
|
832
845
|
[RUNTIME_LABELS.runtimeId]: runtimeId,
|
|
833
846
|
[RUNTIME_LABELS.poolId]: pool.id,
|
|
@@ -840,6 +853,17 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
|
|
|
840
853
|
await markRuntimeTerminated(runtimeId, "Supervisor stopped during provision");
|
|
841
854
|
return false;
|
|
842
855
|
}
|
|
856
|
+
const cacheWarning = currentCache ? !controller.traits.persistentCache ? "Controller does not support persistent caches; runtime started without cache" : handle.meta?.cacheWarning : undefined;
|
|
857
|
+
const cacheErrorPrefix = "Persistent cache: ";
|
|
858
|
+
const cacheError = cacheWarning ? cacheErrorPrefix + scrubSecrets(cacheWarning) : null;
|
|
859
|
+
await getDbClient2().run(`UPDATE runtime_pools SET last_error = ?, last_error_at = ?
|
|
860
|
+
WHERE id = ? AND (last_error IS NULL OR substr(last_error, 1, ?) = ?)`, [
|
|
861
|
+
cacheError,
|
|
862
|
+
cacheError ? new Date().toISOString() : null,
|
|
863
|
+
pool.id,
|
|
864
|
+
cacheErrorPrefix.length,
|
|
865
|
+
cacheErrorPrefix
|
|
866
|
+
]);
|
|
843
867
|
await getDbClient2().run("UPDATE runtime_instances SET external_handle = ?, lease_expires_at = ?, created_at = COALESCE(?, created_at), updated_at = ? WHERE id = ?", [
|
|
844
868
|
JSON.stringify(handle),
|
|
845
869
|
ttlSec === undefined ? null : handle.meta?.leaseExpiresAt ?? new Date(now.getTime() + ttlSec * 1000).toISOString(),
|
|
@@ -1286,8 +1310,9 @@ async function reconcilePools(now, commands, signal) {
|
|
|
1286
1310
|
async function reconcileOnce(opts = {}) {
|
|
1287
1311
|
if (!isRuntimePoolsEnabled() || !isMultiRuntimeEnabled() || inFlight)
|
|
1288
1312
|
return;
|
|
1289
|
-
|
|
1290
|
-
|
|
1313
|
+
const tick = new AbortController;
|
|
1314
|
+
tickAbort = tick;
|
|
1315
|
+
inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tick.signal).then(() => reconcileCacheReleases(opts.getControllerCommands ?? getControllerCommands, tick.signal));
|
|
1291
1316
|
try {
|
|
1292
1317
|
await inFlight;
|
|
1293
1318
|
} catch (error) {
|
|
@@ -2,15 +2,17 @@ import {
|
|
|
2
2
|
runtimeCatalogSection,
|
|
3
3
|
runtimeCatalogModel,
|
|
4
4
|
init_runtime_model_catalog
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-1p89xny0.js";
|
|
6
6
|
import {
|
|
7
|
+
CHATGPT_SUBSCRIPTION_PROVIDER,
|
|
7
8
|
dshCatalogRef,
|
|
8
9
|
grokCatalogRef,
|
|
10
|
+
fxCatalogRef,
|
|
9
11
|
cursorCatalogRef,
|
|
10
12
|
reasoningLevelsFor,
|
|
11
13
|
claudeCatalogModelId,
|
|
12
14
|
init_src2
|
|
13
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-5c4hjzne.js";
|
|
14
16
|
|
|
15
17
|
// src/providers/reasoning-effort.ts
|
|
16
18
|
init_src2();
|
|
@@ -38,10 +40,17 @@ function lookupModel(harness, model) {
|
|
|
38
40
|
({ providerId, modelId } = cursorCatalogRef(model));
|
|
39
41
|
} else if (harness === "grok") {
|
|
40
42
|
({ providerId, modelId } = grokCatalogRef(model));
|
|
43
|
+
} else if (harness === "fx") {
|
|
44
|
+
const ref = fxCatalogRef(model);
|
|
45
|
+
if (!ref)
|
|
46
|
+
return;
|
|
47
|
+
({ providerId, modelId } = ref);
|
|
41
48
|
} else {
|
|
42
49
|
({ providerId, modelId } = splitProviderModel(model));
|
|
43
50
|
if (!providerId)
|
|
44
51
|
return;
|
|
52
|
+
if (providerId.toLowerCase() === CHATGPT_SUBSCRIPTION_PROVIDER)
|
|
53
|
+
providerId = "openai";
|
|
45
54
|
}
|
|
46
55
|
const facts = runtimeCatalogModel(providerId, modelId);
|
|
47
56
|
return facts ? { id: modelId, facts } : undefined;
|
|
@@ -124,6 +133,8 @@ function applyReasoningEffort(harness, model, level) {
|
|
|
124
133
|
return { kind: "cursor-effort", reasoningEffort: level };
|
|
125
134
|
case "grok":
|
|
126
135
|
return { kind: "grok-effort", reasoningEffort: level };
|
|
136
|
+
case "fx":
|
|
137
|
+
return { kind: "fx-effort", reasoningEffort: level };
|
|
127
138
|
default: {
|
|
128
139
|
const _exhaustive = harness;
|
|
129
140
|
return _exhaustive;
|
|
@@ -138,7 +149,8 @@ var REASONING_HARNESSES = new Set([
|
|
|
138
149
|
"dsh",
|
|
139
150
|
"cursor",
|
|
140
151
|
"amp",
|
|
141
|
-
"grok"
|
|
152
|
+
"grok",
|
|
153
|
+
"fx"
|
|
142
154
|
]);
|
|
143
155
|
function supportedReasoningLevels(harness, model) {
|
|
144
156
|
if (!REASONING_HARNESSES.has(harness))
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
} from "./cli-4sydckyj.js";
|
|
9
9
|
import {
|
|
10
10
|
init_templates4
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-2pnswgh8.js";
|
|
12
12
|
import {
|
|
13
13
|
resolveTemplateAsync,
|
|
14
14
|
init_resolver,
|
|
15
15
|
init_session_templates
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-cm5yqn35.js";
|
|
17
17
|
import {
|
|
18
18
|
MAX_PROFILE_FILE_LENGTH,
|
|
19
19
|
getAppUrl,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
scrubSecrets,
|
|
28
28
|
init_secret_scrubber
|
|
29
|
-
} from "./cli-
|
|
29
|
+
} from "./cli-1b7btd38.js";
|
|
30
30
|
import {
|
|
31
31
|
__esm
|
|
32
32
|
} from "./cli-242037k3.js";
|
|
@@ -262,6 +262,8 @@ function toolDiscoveryEvent(provider, hasToolSearch) {
|
|
|
262
262
|
switch (provider) {
|
|
263
263
|
case "amp":
|
|
264
264
|
return "system.agent.tool_discovery.amp";
|
|
265
|
+
case "fx":
|
|
266
|
+
return "system.agent.tool_discovery.fx";
|
|
265
267
|
case "codex":
|
|
266
268
|
return "system.agent.tool_discovery.codex";
|
|
267
269
|
case "opencode":
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
isSensitiveKey,
|
|
7
7
|
scrubSecrets,
|
|
8
8
|
init_secret_scrubber
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-1b7btd38.js";
|
|
10
10
|
import {
|
|
11
11
|
openAICompatibleKeyVars,
|
|
12
12
|
openAICompatibleBaseUrlVars,
|
|
13
13
|
init_src2
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-5c4hjzne.js";
|
|
15
15
|
import {
|
|
16
16
|
__esm
|
|
17
17
|
} from "./cli-242037k3.js";
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
publicEndpointSsrfOptions,
|
|
7
7
|
init_mcp_wrapper
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-hgaazk69.js";
|
|
9
9
|
import {
|
|
10
10
|
normalizeOrgWebsite,
|
|
11
11
|
init_org_website,
|
|
12
12
|
assertUrlSafe
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-k2gzwsj2.js";
|
|
14
14
|
import {
|
|
15
15
|
getOpenRouterBaseUrl,
|
|
16
16
|
getOpenRouterAttributionHeaders,
|
|
@@ -21,16 +21,16 @@ import {
|
|
|
21
21
|
createScopedFetch,
|
|
22
22
|
deriveDefaultRoute,
|
|
23
23
|
init_src
|
|
24
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-g83s9ewh.js";
|
|
25
25
|
import {
|
|
26
26
|
scrubSecrets,
|
|
27
27
|
init_secret_scrubber
|
|
28
|
-
} from "./cli-
|
|
28
|
+
} from "./cli-1b7btd38.js";
|
|
29
29
|
import {
|
|
30
30
|
providerBaseUrl,
|
|
31
31
|
providerForKeyVar,
|
|
32
32
|
init_src2
|
|
33
|
-
} from "./cli-
|
|
33
|
+
} from "./cli-5c4hjzne.js";
|
|
34
34
|
|
|
35
35
|
// src/utils/lead-monitor-channels.ts
|
|
36
36
|
function isLeadChannelMonitoringEnabled(env = process.env) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDb2,
|
|
3
3
|
init_db4
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-k2gzwsj2.js";
|
|
5
5
|
import {
|
|
6
6
|
openAICompatibleProviderIds,
|
|
7
7
|
withRegistryCatalogSections,
|
|
8
8
|
init_src2
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-5c4hjzne.js";
|
|
10
10
|
import {
|
|
11
11
|
__esm
|
|
12
12
|
} from "./cli-242037k3.js";
|
|
@@ -61,7 +61,7 @@ var ROUTING_PREFIXES_BY_PROVIDER, AMP_DATED_SUFFIX;
|
|
|
61
61
|
var init_pricing_normalize = __esm(() => {
|
|
62
62
|
ROUTING_PREFIXES_BY_PROVIDER = {
|
|
63
63
|
opencode: ["openrouter/", "github-copilot/"],
|
|
64
|
-
pi: ["openrouter/", "github-copilot/"],
|
|
64
|
+
pi: ["openrouter/", "github-copilot/", "openai-codex/"],
|
|
65
65
|
codex: ["openai/", "github-copilot/"],
|
|
66
66
|
claude: [],
|
|
67
67
|
"claude-managed": [],
|
|
@@ -71,7 +71,8 @@ var init_pricing_normalize = __esm(() => {
|
|
|
71
71
|
dsh: ["openrouter/"],
|
|
72
72
|
amp: ["anthropic/", "openai/", "google-vertex/", "google/"],
|
|
73
73
|
cursor: [],
|
|
74
|
-
grok: ["openrouter/", "xai/"]
|
|
74
|
+
grok: ["openrouter/", "xai/"],
|
|
75
|
+
fx: ["openrouter/", "vercel/"]
|
|
75
76
|
};
|
|
76
77
|
AMP_DATED_SUFFIX = /-\d{4}-\d{2}-\d{2}$/;
|
|
77
78
|
});
|
|
@@ -183,6 +184,7 @@ function buildModelsDevSeedRows(cache) {
|
|
|
183
184
|
continue;
|
|
184
185
|
add(id, projectCostBlock("codex", id, model.cost));
|
|
185
186
|
add(id, projectCostBlock("pi", id, model.cost));
|
|
187
|
+
add(id, projectCostBlock("fx", id, model.cost));
|
|
186
188
|
}
|
|
187
189
|
for (const vendor of ["openai", "anthropic", "google", "xai"]) {
|
|
188
190
|
for (const [id, model] of Object.entries(cache[vendor]?.models ?? {})) {
|
|
@@ -216,12 +218,22 @@ function buildModelsDevSeedRows(cache) {
|
|
|
216
218
|
add(id, projectCostBlock("grok", id, model.cost, {
|
|
217
219
|
anthropicBilled: id.startsWith("anthropic/")
|
|
218
220
|
}));
|
|
221
|
+
add(id, projectCostBlock("fx", id, model.cost, {
|
|
222
|
+
anthropicBilled: id.startsWith("anthropic/")
|
|
223
|
+
}));
|
|
219
224
|
if (id.startsWith("google/")) {
|
|
220
225
|
const geminiKey = id.replace(/^google\//, "");
|
|
221
226
|
add(geminiKey, projectCostBlock("gemini", geminiKey, model.cost));
|
|
222
227
|
add(id, projectCostBlock("gemini", id, model.cost));
|
|
223
228
|
}
|
|
224
229
|
}
|
|
230
|
+
for (const [id, model] of Object.entries(cache.vercel?.models ?? {})) {
|
|
231
|
+
if (!model?.cost || openrouter[id]?.cost)
|
|
232
|
+
continue;
|
|
233
|
+
add(id, projectCostBlock("fx", id, model.cost, {
|
|
234
|
+
anthropicBilled: id.startsWith("anthropic/")
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
225
237
|
for (const provider of openAICompatibleProviderIds()) {
|
|
226
238
|
for (const [id, model] of Object.entries(cache[provider]?.models ?? {})) {
|
|
227
239
|
if (!model?.cost)
|
|
@@ -451,6 +451,7 @@ The engine posts the thread tree and the outcome card. You post at most one mess
|
|
|
451
451
|
The outcome card publishes your \`output\` verbatim. Keep free-text \`output\` under 120 words by default, with the exceptions in How you write.
|
|
452
452
|
A Slack task from an unknown user: register them with \`manage-user\` first.
|
|
453
453
|
You MUST use the \`slack-interaction\` skill before you post to Slack.
|
|
454
|
+
Call \`slack-leave-thread\` with your taskId when a thread no longer needs you: people are talking among themselves, someone tells you to stop or back off, or the thread's work is done. The swarm then ignores the thread until someone @mentions it. Leave quietly, with no goodbye message.
|
|
454
455
|
`,
|
|
455
456
|
variables: [],
|
|
456
457
|
category: "system"
|
|
@@ -512,6 +513,15 @@ Task: {{task}}{{progressLine}}
|
|
|
512
513
|
],
|
|
513
514
|
category: "system"
|
|
514
515
|
});
|
|
516
|
+
registerTemplate({
|
|
517
|
+
eventType: "system.agent.fx.system_prompt_file",
|
|
518
|
+
header: "",
|
|
519
|
+
defaultBody: "These instructions are cut short. Read {{path}} before you start: it holds the complete swarm instructions, of which the text above is only the first part.",
|
|
520
|
+
variables: [
|
|
521
|
+
{ name: "path", description: "Absolute path of the file with the full system prompt" }
|
|
522
|
+
],
|
|
523
|
+
category: "system"
|
|
524
|
+
});
|
|
515
525
|
registerTemplate({
|
|
516
526
|
eventType: "system.agent.cursor.first_message",
|
|
517
527
|
header: "",
|
|
@@ -547,6 +557,13 @@ Task: {{task}}{{progressLine}}
|
|
|
547
557
|
variables: [],
|
|
548
558
|
category: "system"
|
|
549
559
|
});
|
|
560
|
+
registerTemplate({
|
|
561
|
+
eventType: "system.agent.tool_discovery.fx",
|
|
562
|
+
header: "",
|
|
563
|
+
defaultBody: "Most swarm tools are deferred behind `capability_search`. Each one is named `mcp_swarm_<tool>`, so `store-progress` is `mcp_swarm_store-progress`. Call a tool you know by that name directly. To find one, use `capability_search`.",
|
|
564
|
+
variables: [],
|
|
565
|
+
category: "system"
|
|
566
|
+
});
|
|
550
567
|
registerTemplate({
|
|
551
568
|
eventType: "system.agent.tool_discovery.codex",
|
|
552
569
|
header: "",
|
|
@@ -657,6 +674,7 @@ Rules of the road:
|
|
|
657
674
|
## Slack (scripts-only)
|
|
658
675
|
|
|
659
676
|
This task originated from Slack (channel: \`{{slackChannelId}}\`). The engine maintains the thread tree and publishes the top-level outcome card. Post at most one distinct agent-authored message per task, concrete, sized to what the user asked for. Progress, start, completion, failure, acknowledgment messages, and relayed raw task output stay out of Slack. Named Slack tools are not exposed in scripts-only mode, so use \`script-run\` with inline source calling \`ctx.swarm.slack_reply({ taskId, message })\` (your taskId carries the thread context).
|
|
677
|
+
When the thread no longer needs you (people are talking among themselves, someone tells you to stop, or the work is done), call \`ctx.swarm.slack_leaveThread({ taskId })\` the same way. The swarm then ignores the thread until someone @mentions it. Leave quietly, with no goodbye message.
|
|
660
678
|
The outcome card publishes your \`output\` verbatim. Keep free-text \`output\` under 120 words by default, with the exceptions in How you write.
|
|
661
679
|
`,
|
|
662
680
|
variables: [
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
materializeClaudeMd,
|
|
3
3
|
stopClaudeMd
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-jm2vfpfd.js";
|
|
5
5
|
import {
|
|
6
6
|
summarizeSession
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-faxe6thg.js";
|
|
8
8
|
import {
|
|
9
9
|
contextBoundNoteThreshold,
|
|
10
10
|
injectClaimedContextBoundNote
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-dhar9qay.js";
|
|
12
12
|
import {
|
|
13
13
|
guardGhPrBody,
|
|
14
14
|
guardGhPrRoom
|
|
@@ -32,11 +32,11 @@ import {
|
|
|
32
32
|
warnProfileFileTooLarge,
|
|
33
33
|
buildIndependentIdentityPayloads,
|
|
34
34
|
init_profile_sync
|
|
35
|
-
} from "./cli-
|
|
35
|
+
} from "./cli-a7v854rf.js";
|
|
36
36
|
import {
|
|
37
37
|
init_package,
|
|
38
38
|
package_default
|
|
39
|
-
} from "./cli-
|
|
39
|
+
} from "./cli-e3r2neck.js";
|
|
40
40
|
import {
|
|
41
41
|
MAX_PROFILE_FILE_LENGTH,
|
|
42
42
|
getMcpBaseUrl,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
import {
|
|
54
54
|
scrubSecrets,
|
|
55
55
|
init_secret_scrubber
|
|
56
|
-
} from "./cli-
|
|
56
|
+
} from "./cli-1b7btd38.js";
|
|
57
57
|
|
|
58
58
|
// src/hooks/hook.ts
|
|
59
59
|
init_package();
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
getKnownContextWindowSize,
|
|
3
3
|
clampContextPercent,
|
|
4
4
|
init_context_window
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-73jzwksr.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveTemplateFromCode,
|
|
8
8
|
resolveTemplateAsync,
|
|
9
9
|
init_resolver,
|
|
10
10
|
init_session_templates
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-cm5yqn35.js";
|
|
12
12
|
|
|
13
13
|
// src/hooks/context-bound-note.ts
|
|
14
14
|
import { renameSync, writeFileSync } from "node:fs";
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
validateRuntimeTokenTtlHours,
|
|
6
6
|
init_swarm_config_guard,
|
|
7
7
|
init_db4
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-k2gzwsj2.js";
|
|
9
9
|
import {
|
|
10
10
|
registerVolatileSecret,
|
|
11
11
|
unregisterVolatileSecret,
|
|
12
12
|
init_secret_scrubber
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-1b7btd38.js";
|
|
14
14
|
import {
|
|
15
15
|
__esm
|
|
16
16
|
} from "./cli-242037k3.js";
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
resolveConfigValueOrThrow,
|
|
9
9
|
resolveHeadersOrThrow,
|
|
10
10
|
FileAuthStorageBackend
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-0at8w34w.js";
|
|
12
12
|
import {
|
|
13
13
|
oauthSuccessHtml,
|
|
14
14
|
oauthErrorHtml,
|
|
15
15
|
init_oauth_page
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-436532ck.js";
|
|
17
17
|
import {
|
|
18
18
|
__toESM
|
|
19
19
|
} from "./cli-242037k3.js";
|
|
@@ -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.7.
|
|
10
|
+
version: "2.7.6",
|
|
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",
|
|
@@ -69,6 +69,7 @@ var init_package = __esm(() => {
|
|
|
69
69
|
"packages/*"
|
|
70
70
|
],
|
|
71
71
|
overrides: {
|
|
72
|
+
"@slack/socket-mode": "^2.0.7",
|
|
72
73
|
react: "19.2.3",
|
|
73
74
|
"react-dom": "19.2.3"
|
|
74
75
|
},
|
|
@@ -185,12 +186,12 @@ var init_package = __esm(() => {
|
|
|
185
186
|
},
|
|
186
187
|
devDependencies: {
|
|
187
188
|
"@biomejs/biome": "^2.3.10",
|
|
188
|
-
"@desplega.ai/slack-mock": "^0.
|
|
189
|
+
"@desplega.ai/slack-mock": "^0.5.0",
|
|
189
190
|
"@desplega/model-catalog": "workspace:*",
|
|
190
191
|
"@desplega/model-routing": "workspace:*",
|
|
191
192
|
"@faker-js/faker": "^10.4.0",
|
|
192
|
-
"@opencode/plugin": "2.2.
|
|
193
|
-
"@opencode/sdk": "2.2.
|
|
193
|
+
"@opencode/plugin": "2.2.3",
|
|
194
|
+
"@opencode/sdk": "2.2.3",
|
|
194
195
|
"@oxlint/plugins": "1.78.0",
|
|
195
196
|
"@types/bun": "latest",
|
|
196
197
|
"dependency-cruiser": "^18.0.0",
|
|
@@ -208,9 +209,9 @@ var init_package = __esm(() => {
|
|
|
208
209
|
bun: ">=1.3.12"
|
|
209
210
|
},
|
|
210
211
|
dependencies: {
|
|
211
|
-
"@agentclientprotocol/sdk": "2.
|
|
212
|
+
"@agentclientprotocol/sdk": "2.2.0",
|
|
212
213
|
"@ai-sdk/openai": "^3.0.41",
|
|
213
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
214
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.314",
|
|
214
215
|
"@anthropic-ai/sdk": "^1.3.0",
|
|
215
216
|
"@asteasolutions/zod-to-openapi": "^8.0.0",
|
|
216
217
|
"@aws-sdk/client-bedrock": "3.1048.0",
|
|
@@ -229,7 +230,7 @@ var init_package = __esm(() => {
|
|
|
229
230
|
"@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
|
|
230
231
|
"@linear/sdk": "^77.0.0",
|
|
231
232
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
232
|
-
"@openai/codex": "0.
|
|
233
|
+
"@openai/codex": "0.166.0",
|
|
233
234
|
"@openfort/openfort-node": "^0.9.1",
|
|
234
235
|
"@opentelemetry/api": "^1.9.1",
|
|
235
236
|
"@opentelemetry/api-logs": "^0.218.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
contextBoundNoteThreshold,
|
|
3
3
|
createContextBoundNote
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-dhar9qay.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveSlashSkillPrompt
|
|
7
7
|
} from "./cli-jc1g9ndz.js";
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
autoIndexMemoryFile,
|
|
20
20
|
fetchConcurrentContext,
|
|
21
21
|
summarizeTranscript
|
|
22
|
-
} from "./cli-
|
|
22
|
+
} from "./cli-yx4kfngt.js";
|
|
23
23
|
import {
|
|
24
24
|
applyReasoningEffort
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-98rw5dt5.js";
|
|
26
26
|
import {
|
|
27
27
|
fetchInstalledMcpServers
|
|
28
28
|
} from "./cli-bst1vp7e.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
getContextWindowSize,
|
|
32
32
|
clampContextPercent,
|
|
33
33
|
init_context_window
|
|
34
|
-
} from "./cli-
|
|
34
|
+
} from "./cli-73jzwksr.js";
|
|
35
35
|
import {
|
|
36
36
|
swarmRuntimeInstanceId,
|
|
37
37
|
init_multi_runtime2
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
openAICompatibleKeyLabels,
|
|
48
48
|
validateOpencodeCredentials,
|
|
49
49
|
init_credentials2
|
|
50
|
-
} from "./cli-
|
|
50
|
+
} from "./cli-g83s9ewh.js";
|
|
51
51
|
import {
|
|
52
52
|
isEnvFlagEnabled,
|
|
53
53
|
isSessionSummarySkipped,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
scrubSecrets,
|
|
58
58
|
registerVolatileSecret,
|
|
59
59
|
init_secret_scrubber
|
|
60
|
-
} from "./cli-
|
|
60
|
+
} from "./cli-1b7btd38.js";
|
|
61
61
|
import {
|
|
62
62
|
openAICompatibleProviders,
|
|
63
63
|
providerKeyVars,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
openAICompatibleProvider,
|
|
69
69
|
providerForKeyVar,
|
|
70
70
|
init_src2
|
|
71
|
-
} from "./cli-
|
|
71
|
+
} from "./cli-5c4hjzne.js";
|
|
72
72
|
|
|
73
73
|
// src/providers/opencode-adapter.ts
|
|
74
74
|
init_src2();
|