@desplega.ai/agent-swarm 2.5.4 → 2.7.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.
- package/README.md +4 -2
- package/dist/{acp-adapter-ek38cwsv.js → acp-adapter-ma1js5n7.js} +9 -9
- package/dist/{actions-92mepq03.js → actions-1vhmtvg9.js} +21 -21
- package/dist/{amp-adapter-9gaxg015.js → amp-adapter-sxqqvmdk.js} +4 -4
- package/dist/{app-ctn8gsgx.js → app-mwx1d5a9.js} +3 -3
- package/dist/{assistant-zyr5kz47.js → assistant-yx1p6g82.js} +30 -26
- package/dist/{boot-reembed-w75maga2.js → boot-reembed-5h37a2c2.js} +1 -1
- package/dist/{boot-reembed-dwzfttdr.js → boot-reembed-7h78vmvv.js} +2 -1
- package/dist/{boot-scrub-sweep-e9kq43kf.js → boot-scrub-sweep-8mawd4gw.js} +4 -4
- package/dist/{boot-seeds-x28v3fhb.js → boot-seeds-ca84dhnn.js} +4 -4
- package/dist/{claude-adapter-f0afqnne.js → claude-adapter-wqt4hfkq.js} +9 -9
- package/dist/{claude-managed-adapter-x81a7r65.js → claude-managed-adapter-6fjqtr2z.js} +2 -2
- package/dist/{claude-managed-setup-bqzwjd9x.js → claude-managed-setup-rqv98sea.js} +10 -3
- package/dist/{claude-sdk-session-7b7whkaq.js → claude-sdk-session-f29f3b2x.js} +11 -11
- package/dist/{cli-sxgtf5fw.js → cli-07q03xm2.js} +1 -1
- package/dist/{cli-kxpfx2xr.js → cli-0z1xjzwa.js} +2 -2
- package/dist/{cli-g9vd9ece.js → cli-1hhbzkbb.js} +14 -16
- package/dist/{cli-qqzmjxkf.js → cli-1m9x8dr5.js} +11 -6
- package/dist/{cli-jbnn4vxb.js → cli-2pvzmas1.js} +3 -3
- package/dist/{cli-x77gen2p.js → cli-2y7v133v.js} +7 -7
- package/dist/{cli-dew6x255.js → cli-39aet655.js} +2 -2
- package/dist/{cli-g1cw7xtt.js → cli-39rrw8yp.js} +1 -1
- package/dist/{cli-jb30dzvk.js → cli-48gxjmcz.js} +530 -190
- package/dist/{cli-pzatvw94.js → cli-54sj64fc.js} +2 -2
- package/dist/{cli-bvpgr9ny.js → cli-60sty27p.js} +5 -5
- package/dist/{cli-asq5ydm4.js → cli-6a9qfa8b.js} +411 -69
- package/dist/{cli-277c31dw.js → cli-6mgdba42.js} +225 -3
- package/dist/{cli-19202kew.js → cli-6srv653c.js} +5 -5
- package/dist/{cli-n4c8e3s5.js → cli-708wdy32.js} +1 -1
- package/dist/{cli-pasyvjmm.js → cli-737pyqxr.js} +1 -1
- package/dist/{cli-6x9ma5w5.js → cli-803188pb.js} +1 -1
- package/dist/{cli-hh5we352.js → cli-86ehn4s5.js} +7 -7
- package/dist/{cli-9s05422w.js → cli-8mbc9za9.js} +1 -1
- package/dist/{cli-ff1tm9n9.js → cli-8wmj18cz.js} +1 -1
- package/dist/{cli-1r5ad7j5.js → cli-9gsm2rzp.js} +12 -12
- package/dist/{cli-mz9afxxf.js → cli-9pshx6rd.js} +17 -3
- package/dist/{cli-s682zgqz.js → cli-a6ds2epe.js} +1 -1
- package/dist/{cli-6a1xg1p7.js → cli-a89zdqz9.js} +2 -2
- package/dist/{cli-03vpq45j.js → cli-ay40dnj3.js} +2 -2
- package/dist/{cli-tsma7p8v.js → cli-aypd09nf.js} +2 -2
- package/dist/{cli-ethgy7ha.js → cli-b3yzyc57.js} +2 -2
- package/dist/{cli-bn0rewsy.js → cli-c081bj3b.js} +2 -2
- package/dist/{cli-mmhj8vd7.js → cli-c668vvcf.js} +11 -2
- package/dist/{cli-sbwsxvtd.js → cli-d20qvpr2.js} +2 -2
- package/dist/{cli-c952c7ac.js → cli-e1595bgx.js} +3 -3
- package/dist/{cli-621ce7kw.js → cli-f12mr20z.js} +3 -3
- package/dist/{cli-dqygeeh5.js → cli-f1e0ptjj.js} +10 -1
- package/dist/{cli-xzfq4at3.js → cli-f4dbh7a5.js} +16 -12
- package/dist/{cli-ha9rmwgq.js → cli-fb8m699c.js} +2 -2
- package/dist/{cli-5bnsc0e1.js → cli-gsfk58nw.js} +5 -5
- package/dist/cli-gt4h8cxw.js +895 -0
- package/dist/{cli-nwyw3zhg.js → cli-gxee0bqa.js} +1 -1
- package/dist/{cli-25n3mv5d.js → cli-h5jeg46p.js} +6 -6
- package/dist/{cli-gn5af0x5.js → cli-he9gbdx0.js} +62 -12
- package/dist/{cli-gbfxp48k.js → cli-j0ppywdr.js} +42 -35
- package/dist/{cli-k4tjsdx9.js → cli-j3y0x2n4.js} +277 -199
- package/dist/{cli-7p4jxgtt.js → cli-j9bpmykh.js} +75 -27
- package/dist/{cli-dabehxhp.js → cli-kt907da6.js} +1 -1
- package/dist/{cli-wx2nj19m.js → cli-kv7sbc2c.js} +6 -6
- package/dist/{cli-abs8ndtr.js → cli-m30k9777.js} +26 -26
- package/dist/{cli-cz5nmdxt.js → cli-m5e802r7.js} +2 -2
- package/dist/{cli-0shx9j93.js → cli-pfk92eqz.js} +2 -2
- package/dist/{cli-xtrz6bzs.js → cli-ptfq202x.js} +5 -3
- package/dist/{cli-6n8axjv1.js → cli-qj442fws.js} +2 -2
- package/dist/{cli-c61mbdds.js → cli-rd5m70gj.js} +4 -4
- package/dist/{cli-eftzyh9y.js → cli-s09j9vp5.js} +2 -2
- package/dist/{cli-m4ecdxvz.js → cli-s0mgx214.js} +7 -7
- package/dist/{cli-wghjkr0e.js → cli-sgqm2582.js} +10 -7
- package/dist/{cli-2655k16q.js → cli-sjctjr48.js} +2 -2
- package/dist/{cli-nzfnt2gs.js → cli-tf1n0r0b.js} +1 -1
- package/dist/{cli-x0f2v69c.js → cli-twctnkng.js} +12 -7
- package/dist/{cli-j6rktc91.js → cli-v6shg7na.js} +1 -1
- package/dist/{cli-gx4rm0qx.js → cli-vz78s5wm.js} +1 -1
- package/dist/{cli-gwhjmh8g.js → cli-wqr7cea4.js} +5 -5
- package/dist/{cli-e42vss7b.js → cli-x37r7qwf.js} +16 -8
- package/dist/{cli-4b2z6n0m.js → cli-yd2nreqw.js} +17 -8
- package/dist/{cli-64mh9mf3.js → cli-ymjpkxgn.js} +69 -17
- package/dist/{cli-5kqnemen.js → cli-yvy48785.js} +1 -1
- package/dist/{cli-9j129brq.js → cli-yxbsmx56.js} +6 -6
- package/dist/cli.js +22 -20
- package/dist/{codex-adapter-wch12q99.js → codex-adapter-zk59x2zh.js} +7 -7
- package/dist/{codex-hook-brpnycn5.js → codex-hook-xyjhvxwd.js} +1 -1
- package/dist/{codex-login-rn7c5gxt.js → codex-login-8cg0vhf2.js} +1 -1
- package/dist/{codex-session-runner-41pfcr95.js → codex-session-runner-kh6s4j3n.js} +8 -8
- package/dist/{commands-9849dkj6.js → commands-68et1qv2.js} +2 -2
- package/dist/{controller-ja0sd95p.js → controller-fyrbnzg4.js} +4 -4
- package/dist/{controllers-connect-xp05dj6x.js → controllers-connect-nep9h2xv.js} +23 -23
- package/dist/{cursor-adapter-623qxqew.js → cursor-adapter-yss3pg7t.js} +2 -2
- package/dist/{db-w759qmx0.js → db-28gjyvxj.js} +4 -2
- package/dist/{db-47vj40dy.js → db-8ftwvzba.js} +3 -3
- package/dist/{devin-adapter-4ycy4vrf.js → devin-adapter-byen2cxt.js} +1 -1
- package/dist/{dispatcher-7b8e4z2j.js → dispatcher-hayexmkr.js} +20 -20
- package/dist/{docker-s84hjs91.js → docker-fdzyewpz.js} +2 -2
- package/dist/{dsh-adapter-2ezw3xea.js → dsh-adapter-46wawff9.js} +2 -2
- package/dist/{e2b-9gkdhm3c.js → e2b-222hsajc.js} +2 -2
- package/dist/{e2b-cjtf8k1z.js → e2b-fn3zacvt.js} +2 -2
- package/dist/{easter-egg-3d-e4qv8dxj.js → easter-egg-3d-8d1e0h4m.js} +1 -1
- package/dist/{event-bus-3z78ep5n.js → event-bus-pghg8hqy.js} +1 -1
- package/dist/{execute-0xpz8950.js → execute-cjrfxfnm.js} +1 -1
- package/dist/{external-channel-e2s028da.js → external-channel-xbmxcg09.js} +2 -2
- package/dist/{grok-adapter-ys7gaqee.js → grok-adapter-ag4wks2a.js} +10 -10
- package/dist/handlers-tzmevqb5.js +41 -0
- package/dist/{heartbeat-w3mntghj.js → heartbeat-psfvcgwp.js} +23 -23
- package/dist/{hook-g7kvv6x9.js → hook-8pz04697.js} +6 -6
- package/dist/{hook-3jjywnpb.js → hook-cyq4mryn.js} +8 -8
- package/dist/{http-tkp7d4kb.js → http-haj1nd6k.js} +921 -169
- package/dist/{index-q7m26kvs.js → index-jwt2bj6f.js} +265 -97
- package/dist/{index-3n8m9ea2.js → index-q52f47pe.js} +1 -1
- package/dist/{index-31ceyf42.js → index-syvhnvtw.js} +1 -1
- package/dist/index-y1ajx04a.js +43 -0
- package/dist/{index-1ef1myq2.js → index-z5h22pes.js} +20 -20
- package/dist/{index-xdaahthb.js → index-zyq8ct52.js} +20 -20
- package/dist/{keepalive-v4ta8wgg.js → keepalive-xdvsamvj.js} +4 -4
- package/dist/lead-hqg57kdp.js +79 -0
- package/dist/{maintenance-84n1ex21.js → maintenance-4y2xzh3a.js} +1 -1
- package/dist/{oauth-refresh-sweep-vjnnandw.js → oauth-refresh-sweep-jd4r7zbs.js} +9 -4
- package/dist/{onboard-sfmpe4np.js → onboard-18447q9q.js} +6 -6
- package/dist/{opencode-adapter-jmpst4q4.js → opencode-adapter-26b2frdf.js} +7 -7
- package/dist/{otel-impl-v6cc0zve.js → otel-impl-f9tgr8yw.js} +2 -2
- package/dist/{pi-mono-adapter-fk8fkcf6.js → pi-mono-adapter-qn6qbga1.js} +38 -17
- package/dist/{pricing-refresh-fsk1e1zc.js → pricing-refresh-dw2tgb53.js} +3 -3
- package/dist/{rbac-roles-prmkdnkw.js → rbac-roles-aygm2760.js} +2 -2
- package/dist/{rbac-roles-zxmxqa39.js → rbac-roles-s4nwj2m3.js} +1 -1
- package/dist/render-v2-yfvdfr0x.js +16 -0
- package/dist/{resume-frdtgfa0.js → resume-1bmvjbf3.js} +9 -9
- package/dist/{runtime-bt5pkpm1.js → runtime-f7tpzedy.js} +1 -1
- package/dist/{session-access-fpez4y5q.js → session-access-r5garej6.js} +4 -4
- package/dist/session-source-backfill-424wzv0r.js +110 -0
- package/dist/{setup-mq6m3m8q.js → setup-8tygvxkq.js} +1 -1
- package/dist/{virtual-modules-mnfbh5mr.js → virtual-modules-xsw323b3.js} +2 -2
- package/dist/{work-objects-kfahhjsq.js → work-objects-ggnghpgf.js} +23 -23
- package/dist/worker-sqjd1nqf.js +79 -0
- package/dist/{x-pbpezr0s.js → x-wxrzvzx8.js} +2 -2
- package/openapi.json +1324 -14
- package/package.json +5 -3
- package/src/assets/source-key.ts +95 -0
- package/src/be/automation-preflight.ts +2 -0
- package/src/be/db/api-keys.ts +89 -0
- package/src/be/db/session-labels.ts +28 -0
- package/src/be/db/session-moves.ts +5 -6
- package/src/be/db/session-tree.ts +153 -14
- package/src/be/db/tasks/read.ts +11 -0
- package/src/be/db/tasks/write.ts +6 -1
- package/src/be/db/workflow-runs.ts +219 -6
- package/src/be/db-retention.ts +61 -6
- package/src/be/db.ts +135 -132
- package/src/be/memory/providers/openai-embedding.ts +5 -1
- package/src/be/memory/task-learning.ts +155 -0
- package/src/be/migrations/244_api_key_validation.sql +4 -0
- package/src/be/migrations/245_script_executor.sql +3 -0
- package/src/be/oauth-refresh-sweep.ts +2 -1
- package/src/be/onboarding.ts +4 -0
- package/src/be/scripts/boot-reembed.ts +2 -0
- package/src/be/scripts/db.ts +14 -4
- package/src/be/scripts/embeddings.ts +2 -0
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +10 -4
- package/src/be/seed-skills/index.ts +7 -0
- package/src/be/session-source-backfill.ts +163 -0
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/comb/review-batch.ts +28 -1
- package/src/comb/templates.ts +7 -2
- package/src/commands/claude-managed-setup.ts +7 -1
- package/src/commands/credential-refresh.ts +76 -1
- package/src/commands/credential-wait.ts +2 -2
- package/src/commands/onboard/compose-generator.ts +5 -3
- package/src/commands/provider-credentials.ts +212 -171
- package/src/commands/runner.ts +25 -4
- package/src/extensions/apply-task-create.ts +8 -1
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +5 -0
- package/src/heartbeat/heartbeat.ts +14 -1
- package/src/heartbeat/script-runner-probe.ts +47 -0
- package/src/http/all-routes.ts +2 -0
- package/src/http/api-keys.ts +77 -9
- package/src/http/assets.ts +15 -0
- package/src/http/codex-oauth-accounts.ts +191 -0
- package/src/http/comb.ts +15 -2
- package/src/http/config.ts +1 -1
- package/src/http/core.ts +6 -0
- package/src/http/fleet-benchmark.ts +5 -2
- package/src/http/idempotency-key.ts +1 -1
- package/src/http/index.ts +14 -3
- package/src/http/integrations.ts +5 -1
- package/src/http/kv.ts +8 -3
- package/src/http/onboarding.ts +6 -1
- package/src/http/pages-public.ts +38 -5
- package/src/http/pool-keys.ts +354 -0
- package/src/http/scripts.ts +27 -0
- package/src/http/sessions.ts +37 -12
- package/src/http/stats.ts +1 -0
- package/src/http/status.ts +26 -12
- package/src/http/tasks.ts +3 -0
- package/src/http/used-by.ts +7 -2
- package/src/http/workflows.ts +88 -9
- package/src/http/x.ts +5 -0
- package/src/integrations/chat-sdk/inbound.ts +27 -0
- package/src/kv-reserved-namespaces.ts +19 -0
- package/src/prompts/base-prompt.ts +21 -1
- package/src/prompts/session-templates.ts +17 -3
- package/src/providers/acp-targets.ts +1 -1
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +5 -1
- package/src/providers/claude-managed-adapter.ts +16 -9
- package/src/providers/codex-adapter.ts +71 -11
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +41 -11
- package/src/scheduler/scheduler.ts +5 -3
- package/src/scripts-runtime/eval-harness.ts +8 -1
- package/src/scripts-runtime/executors/native.ts +22 -16
- package/src/scripts-runtime/executors/quickjs-prelude.ts +103 -1
- package/src/scripts-runtime/executors/quickjs-runner.ts +2 -1
- package/src/scripts-runtime/executors/quickjs.ts +7 -0
- package/src/scripts-runtime/executors/registry.ts +32 -0
- package/src/scripts-runtime/executors/types.ts +7 -0
- package/src/scripts-runtime/host-validated-args.ts +133 -0
- package/src/scripts-runtime/loader.ts +30 -3
- package/src/scripts-runtime/swarm-sdk.ts +16 -3
- package/src/scripts-runtime/types/stdlib.d.ts +10 -2
- package/src/scripts-runtime/types/swarm-extension.d.ts +17 -8
- package/src/scripts-runtime/types/swarm-sdk.d.ts +10 -2
- package/src/slack/assistant.ts +7 -0
- package/src/slack/channel-labels.ts +74 -0
- package/src/slack/handlers.ts +8 -0
- package/src/slack/inbound-files.ts +5 -2
- package/src/slack/thread-buffer.ts +4 -0
- package/src/tasks/sibling-awareness.ts +12 -3
- package/src/telemetry-context.ts +5 -6
- package/src/telemetry-identity.ts +3 -3
- package/src/tests/api-key-status-by-suffix.test.ts +242 -0
- package/src/tests/api-keys-validation.test.ts +170 -0
- package/src/tests/base-prompt.test.ts +70 -2
- package/src/tests/claude-managed-adapter.test.ts +46 -0
- package/src/tests/claude-routes-e2e.test.ts +7 -2
- package/src/tests/codex-credential-pools.test.ts +120 -0
- package/src/tests/codex-gateway-route.test.ts +165 -0
- package/src/tests/codex-oauth-accounts.test.ts +357 -0
- package/src/tests/comb-review-batch.test.ts +63 -2
- package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
- package/src/tests/config-pool-keys.test.ts +533 -0
- package/src/tests/credential-check.test.ts +294 -4
- package/src/tests/credential-refresh.test.ts +172 -1
- package/src/tests/db-retention.test.ts +9 -3
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/db-task-write-contract.test.ts +1 -3
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/docs-index.test.ts +135 -0
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/extensions-pre-task.test.ts +53 -1
- package/src/tests/fetch-resolved-env.test.ts +16 -2
- package/src/tests/fixtures/extensions/record-task-create/hooks.ts +9 -0
- package/src/tests/fixtures/extensions/record-task-create/manifest.json +7 -0
- package/src/tests/fleet-benchmark.test.ts +8 -0
- package/src/tests/get-workflow-run-tool.test.ts +98 -0
- package/src/tests/heartbeat-checklist.test.ts +89 -0
- package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
- package/src/tests/integrations-http.test.ts +32 -2
- package/src/tests/internal-ai/complete-structured.test.ts +37 -1
- package/src/tests/internal-ai/credentials.test.ts +23 -0
- package/src/tests/kv-http.test.ts +32 -0
- package/src/tests/kv-tool.test.ts +25 -0
- package/src/tests/multi-runtime-registration.test.ts +12 -12
- package/src/tests/oauth-refresh-sweep.test.ts +34 -1
- package/src/tests/onboard-compose.test.ts +20 -0
- package/src/tests/onboarding.test.ts +108 -1
- package/src/tests/openai-embedding-credentials.test.ts +35 -0
- package/src/tests/opencode-adapter.test.ts +2 -1
- package/src/tests/openrouter-attribution-call-sites.test.ts +2 -2
- package/src/tests/org-website.test.ts +36 -0
- package/src/tests/pages-frame-ancestors.test.ts +162 -0
- package/src/tests/pi-codemode.test.ts +2 -1
- package/src/tests/pi-mono-adapter.test.ts +54 -0
- package/src/tests/pi-native-mcp.test.ts +13 -1
- package/src/tests/pi-tool-exposure.test.ts +8 -8
- package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
- package/src/tests/prompt-template-session.test.ts +4 -3
- package/src/tests/provider-key-probes.test.ts +181 -0
- package/src/tests/rbac-e2e-helpers.test.ts +88 -1
- package/src/tests/rbac-e2e-helpers.ts +36 -11
- package/src/tests/request-composition-derive.test.ts +329 -0
- package/src/tests/script-connections.test.ts +4 -0
- package/src/tests/script-executor-conformance.test.ts +36 -1
- package/src/tests/script-executor-quickjs-pool.test.ts +50 -0
- package/src/tests/script-executor-quickjs.test.ts +140 -0
- package/src/tests/script-host-validated-args-native.test.ts +196 -0
- package/src/tests/script-per-script-executor.test.ts +415 -0
- package/src/tests/script-runs-retention.test.ts +212 -0
- package/src/tests/scripts-external-api.test.ts +45 -0
- package/src/tests/sdk-allowlist.test.ts +42 -2
- package/src/tests/self-improvement.test.ts +4 -4
- package/src/tests/session-source-backfill.test.ts +429 -0
- package/src/tests/session-source-keys.test.ts +236 -0
- package/src/tests/session-source-labels.test.ts +419 -0
- package/src/tests/sessions-detail-batch.test.ts +2 -0
- package/src/tests/sessions-move.test.ts +131 -0
- package/src/tests/sessions-tree.test.ts +299 -2
- package/src/tests/slack-inbound-files.test.ts +103 -23
- package/src/tests/status.test.ts +101 -18
- package/src/tests/store-progress-learning.test.ts +288 -0
- package/src/tests/tasks-workflow-run-filter.test.ts +146 -0
- package/src/tests/test-net.ts +31 -0
- package/src/tests/transcription.test.ts +8 -0
- package/src/tests/ui-logs-parser.test.ts +180 -0
- package/src/tests/used-by-route.test.ts +11 -0
- package/src/tests/workflow-cascade-cancel.test.ts +172 -0
- package/src/tests/workflow-engine-v2.test.ts +116 -1
- package/src/tests/workflow-http-v2.test.ts +131 -0
- package/src/tests/workflow-mcp-trigger-schema.test.ts +209 -0
- package/src/tests/workflow-run-finished-event.test.ts +263 -0
- package/src/tests/workflow-step-order.test.ts +92 -0
- package/src/tests/workflow-sub-workflow.test.ts +30 -0
- package/src/tests/workflow-swarm-script.test.ts +34 -0
- package/src/tools/get-tasks.ts +8 -0
- package/src/tools/kv/kv-read-auth.ts +4 -2
- package/src/tools/script-common.ts +1 -0
- package/src/tools/script-run.ts +7 -0
- package/src/tools/script-upsert.ts +7 -0
- package/src/tools/store-progress.ts +67 -1
- package/src/tools/task-action.ts +1 -1
- package/src/tools/workflows/get-workflow-run.ts +14 -4
- package/src/tools/workflows/trigger-workflow.ts +104 -10
- package/src/types.ts +36 -1
- package/src/utils/company-profile.ts +51 -1
- package/src/utils/credentials.ts +10 -4
- package/src/utils/internal-ai/complete-structured.ts +5 -0
- package/src/utils/internal-ai/credentials.ts +4 -3
- package/src/utils/provider-key-probes.ts +328 -0
- package/src/utils/transcription.ts +4 -1
- package/src/workflows/engine.ts +18 -16
- package/src/workflows/executors/sub-workflow.ts +8 -1
- package/src/workflows/executors/swarm-script.ts +5 -0
- package/src/workflows/foreach-driver.ts +5 -11
- package/src/workflows/node-timeout.ts +30 -0
- package/templates/ai-toolbox.manifest.json +2 -2
- package/templates/community/linear-delivery-loop/PLAYBOOK.md +323 -0
- package/templates/community/linear-delivery-loop/README.md +38 -0
- package/templates/community/linear-delivery-loop/config.example.json +31 -0
- package/templates/community/linear-delivery-loop/lead-prompt.md +34 -0
- package/templates/community/linear-delivery-loop/schedule.json +10 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-setup.ts +148 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-tick.ts +1781 -0
- package/templates/skills/researching/content.md +2 -0
- package/templates/skills/swarm-docs/config.json +14 -0
- package/templates/skills/swarm-docs/content.md +144 -0
- package/templates/skills/swarm-scripts/SKILL.md +1 -0
- package/templates/skills/swarm-scripts/content.md +1 -0
- package/dist/cli-7421jzsw.js +0 -84
- package/dist/cli-e45e4m6b.js +0 -413
- package/dist/cli-zw88zjba.js +0 -307
- package/dist/handlers-wy1dr6ja.js +0 -41
- package/dist/index-nmm79qgr.js +0 -43
- package/dist/lead-sawnyqxk.js +0 -79
- package/dist/render-v2-pjwxvnkw.js +0 -12
- package/dist/worker-v5e5rxj3.js +0 -79
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
ACP_TARGET_IDS,
|
|
8
8
|
isAcpTarget,
|
|
9
9
|
getAcpTargetCatalogEntry
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-yvy48785.js";
|
|
11
11
|
import {
|
|
12
12
|
applyReasoningEffort
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-c081bj3b.js";
|
|
14
14
|
import {
|
|
15
15
|
applyOpenRouterBaseUrlOverride2,
|
|
16
16
|
buildOpenAICompatibleProviderBlock2
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-86ehn4s5.js";
|
|
18
18
|
import {
|
|
19
19
|
fetchInstalledMcpServers
|
|
20
20
|
} from "./cli-bst1vp7e.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
getContextWindowSize,
|
|
23
23
|
clampContextPercent,
|
|
24
24
|
init_context_window
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-pfk92eqz.js";
|
|
26
26
|
import {
|
|
27
27
|
NEVER,
|
|
28
28
|
string2,
|
|
@@ -44,18 +44,18 @@ import {
|
|
|
44
44
|
import {
|
|
45
45
|
init_package,
|
|
46
46
|
package_default
|
|
47
|
-
} from "./cli-
|
|
47
|
+
} from "./cli-ptfq202x.js";
|
|
48
48
|
import {
|
|
49
49
|
scrubSecrets,
|
|
50
50
|
init_secret_scrubber
|
|
51
|
-
} from "./cli-
|
|
51
|
+
} from "./cli-708wdy32.js";
|
|
52
52
|
import {
|
|
53
53
|
normalizeGrokModel,
|
|
54
54
|
baseUrlOverride,
|
|
55
55
|
providerBaseUrl,
|
|
56
56
|
providerForModel,
|
|
57
57
|
init_src2
|
|
58
|
-
} from "./cli-
|
|
58
|
+
} from "./cli-gxee0bqa.js";
|
|
59
59
|
|
|
60
60
|
// node_modules/@agentclientprotocol/sdk/dist/v1/unstable/schema/index.js
|
|
61
61
|
var AGENT_METHODS = {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
init_steering,
|
|
11
11
|
createLogEntry2,
|
|
12
12
|
init_db3
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-48gxjmcz.js";
|
|
14
14
|
import {
|
|
15
15
|
ackSlackMessage,
|
|
16
16
|
buildBufferFlushBlocks,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
ensureSlackThreadTree2,
|
|
21
21
|
registerTreeMessage,
|
|
22
22
|
getSlackApp2
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-m30k9777.js";
|
|
24
24
|
import {
|
|
25
25
|
createAdditiveBuffer,
|
|
26
26
|
TaskCreationBlockedError,
|
|
@@ -30,15 +30,15 @@ import {
|
|
|
30
30
|
createSlackTaskWithFiles,
|
|
31
31
|
notifySlackFileFailures,
|
|
32
32
|
extractSlackMessageText
|
|
33
|
-
} from "./cli-
|
|
33
|
+
} from "./cli-6a9qfa8b.js";
|
|
34
34
|
import {
|
|
35
35
|
resolveSlackUserId,
|
|
36
36
|
rewriteSlackMentions
|
|
37
|
-
} from "./cli-
|
|
37
|
+
} from "./cli-2pvzmas1.js";
|
|
38
38
|
import {
|
|
39
39
|
findUserByExternalId,
|
|
40
40
|
init_users
|
|
41
|
-
} from "./cli-
|
|
41
|
+
} from "./cli-a89zdqz9.js";
|
|
42
42
|
import {
|
|
43
43
|
isSteeringEnabled2,
|
|
44
44
|
init_steering_enabled
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
import {
|
|
47
47
|
scrubSecrets,
|
|
48
48
|
init_secret_scrubber
|
|
49
|
-
} from "./cli-
|
|
49
|
+
} from "./cli-708wdy32.js";
|
|
50
50
|
import {
|
|
51
51
|
__using,
|
|
52
52
|
__callDispose
|
|
@@ -311,7 +311,10 @@ ${description}` : description;
|
|
|
311
311
|
parentTaskId: mostRecentTask?.id,
|
|
312
312
|
inheritParentOutputSchema: false,
|
|
313
313
|
contextKey: slackContextKey({ channelId, threadTs })
|
|
314
|
-
}, inbound
|
|
314
|
+
}, inbound, {
|
|
315
|
+
trigger: "thread-buffer",
|
|
316
|
+
messages: items.map(({ ts, userId, text }) => ({ ts, userId, text }))
|
|
317
|
+
});
|
|
315
318
|
} catch (error) {
|
|
316
319
|
if (!(error instanceof TaskCreationBlockedError))
|
|
317
320
|
throw error;
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
getKnownContextWindowSize,
|
|
3
3
|
clampContextPercent,
|
|
4
4
|
init_context_window
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-pfk92eqz.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-f1e0ptjj.js";
|
|
12
12
|
|
|
13
13
|
// src/hooks/context-bound-note.ts
|
|
14
14
|
import { renameSync, writeFileSync } from "node:fs";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
getPendingWaitsByEvent2,
|
|
34
34
|
resolveWaitState2,
|
|
35
35
|
init_db3
|
|
36
|
-
} from "./cli-
|
|
36
|
+
} from "./cli-48gxjmcz.js";
|
|
37
37
|
import {
|
|
38
38
|
BaseExecutor,
|
|
39
39
|
postApprovalCancellationUpdates,
|
|
@@ -61,16 +61,16 @@ import {
|
|
|
61
61
|
stepFailureMode,
|
|
62
62
|
getNextTargets,
|
|
63
63
|
getSuccessors
|
|
64
|
-
} from "./cli-
|
|
64
|
+
} from "./cli-j0ppywdr.js";
|
|
65
65
|
import {
|
|
66
66
|
workflowEventBus2,
|
|
67
67
|
init_event_bus
|
|
68
|
-
} from "./cli-
|
|
68
|
+
} from "./cli-kt907da6.js";
|
|
69
69
|
import {
|
|
70
70
|
RetryPolicySchema,
|
|
71
71
|
SUPERSEDED_WORKFLOW_TASK_REASON,
|
|
72
72
|
init_types
|
|
73
|
-
} from "./cli-
|
|
73
|
+
} from "./cli-9pshx6rd.js";
|
|
74
74
|
import {
|
|
75
75
|
init_zod
|
|
76
76
|
} from "./cli-4chz1hye.js";
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
import {
|
|
89
89
|
scrubSecrets,
|
|
90
90
|
init_secret_scrubber
|
|
91
|
-
} from "./cli-
|
|
91
|
+
} from "./cli-708wdy32.js";
|
|
92
92
|
|
|
93
93
|
// src/workflows/approval-resolution.ts
|
|
94
94
|
function shapeApprovalResolution(registry, definition, nodeId, parkedOutput, approval) {
|
|
@@ -197,8 +197,13 @@ class SubWorkflowExecutor extends BaseExecutor {
|
|
|
197
197
|
throw err;
|
|
198
198
|
}
|
|
199
199
|
const child = await db.getWorkflowRun(childRunId);
|
|
200
|
-
if (!child)
|
|
201
|
-
return {
|
|
200
|
+
if (!child) {
|
|
201
|
+
return {
|
|
202
|
+
status: "failed",
|
|
203
|
+
error: `Child workflow run ${childRunId} not found`,
|
|
204
|
+
retryable: false
|
|
205
|
+
};
|
|
206
|
+
}
|
|
202
207
|
return this.settle(child, config.workflowId);
|
|
203
208
|
}
|
|
204
209
|
settle(child, workflowId) {
|
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
init_active_sessions,
|
|
10
10
|
getSteeringMessageById2,
|
|
11
11
|
init_db3
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-48gxjmcz.js";
|
|
13
13
|
import {
|
|
14
14
|
getUserGrant2,
|
|
15
15
|
init_rbac_roles
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-8wmj18cz.js";
|
|
17
17
|
import {
|
|
18
18
|
findUserById,
|
|
19
19
|
findUserByExternalId,
|
|
20
20
|
init_users
|
|
21
|
-
} from "./cli-
|
|
21
|
+
} from "./cli-a89zdqz9.js";
|
|
22
22
|
import {
|
|
23
23
|
isRbacEnabled,
|
|
24
24
|
can,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
import {
|
|
44
44
|
scrubSecrets,
|
|
45
45
|
init_secret_scrubber
|
|
46
|
-
} from "./cli-
|
|
46
|
+
} from "./cli-708wdy32.js";
|
|
47
47
|
|
|
48
48
|
// src/http/route-def.ts
|
|
49
49
|
init_zod();
|
|
@@ -503,7 +503,7 @@ function route(def) {
|
|
|
503
503
|
try {
|
|
504
504
|
const rawBody = def.body ? await parseBody(req, def.maxBodyBytes) : undefined;
|
|
505
505
|
if (def.session && "bodyTaskIds" in def.session) {
|
|
506
|
-
const { bodySessionDenial } = await import("./session-access-
|
|
506
|
+
const { bodySessionDenial } = await import("./session-access-r5garej6.js");
|
|
507
507
|
const denial = await bodySessionDenial(req, def.session.bodyTaskIds(rawBody));
|
|
508
508
|
if (denial) {
|
|
509
509
|
jsonError(res, denial, 403);
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getSlackConfiguration,
|
|
3
|
-
init_config
|
|
4
|
-
} from "./cli-qeaq3j6t.js";
|
|
5
1
|
import {
|
|
6
2
|
isSteeringEnabled2,
|
|
7
3
|
init_steering_enabled
|
|
8
4
|
} from "./cli-4sydckyj.js";
|
|
5
|
+
import {
|
|
6
|
+
getSlackConfiguration,
|
|
7
|
+
init_config
|
|
8
|
+
} from "./cli-qeaq3j6t.js";
|
|
9
9
|
import {
|
|
10
10
|
init_templates3
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-v6shg7na.js";
|
|
12
12
|
import {
|
|
13
13
|
resolveTemplateAsync,
|
|
14
14
|
init_resolver,
|
|
15
15
|
init_session_templates
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-f1e0ptjj.js";
|
|
17
17
|
import {
|
|
18
18
|
MAX_PROFILE_FILE_LENGTH,
|
|
19
19
|
getAppUrl,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
scrubSecrets,
|
|
26
26
|
init_secret_scrubber
|
|
27
|
-
} from "./cli-
|
|
27
|
+
} from "./cli-708wdy32.js";
|
|
28
28
|
import {
|
|
29
29
|
__esm
|
|
30
30
|
} from "./cli-242037k3.js";
|
|
@@ -283,6 +283,9 @@ function promptFlags(args) {
|
|
|
283
283
|
scriptsOnlyMode: hasMcp && scriptsOnly
|
|
284
284
|
};
|
|
285
285
|
}
|
|
286
|
+
function hasSwarmDocsSkill(skills) {
|
|
287
|
+
return skills === undefined || skills.some((skill) => skill.name === "swarm-docs");
|
|
288
|
+
}
|
|
286
289
|
function renderToolsAndSkillsVars(input) {
|
|
287
290
|
let section = "";
|
|
288
291
|
const skills = input.skillsSummary ?? [];
|
|
@@ -306,7 +309,7 @@ ${discovery}
|
|
|
306
309
|
}
|
|
307
310
|
}
|
|
308
311
|
const servers = (input.mcpServers ?? []).filter((name) => name.trim().length > 0);
|
|
309
|
-
const mcpLine = servers.length > 0 ? `Connected MCP servers: ${servers.join(", ")}. Their tools are in your tool list.
|
|
312
|
+
const mcpLine = servers.length > 0 ? `Connected MCP servers: ${servers.join(", ")}. ${input.mcpToolsDeferred ? "Load their tools with your harness tool search." : "Their tools are in your tool list."}
|
|
310
313
|
` : "";
|
|
311
314
|
return {
|
|
312
315
|
skills: section,
|
|
@@ -513,11 +516,16 @@ ${scriptsOnlyResult.text}`;
|
|
|
513
516
|
const toolsResult = await resolveTemplateAsync("system.agent.tools_skills", renderToolsAndSkillsVars({
|
|
514
517
|
skillsSummary: args.skillsSummary,
|
|
515
518
|
mcpServers: args.mcpServers,
|
|
519
|
+
mcpToolsDeferred: provider === "pi" && hasToolSearch,
|
|
516
520
|
nativeSkillDiscovery,
|
|
517
521
|
toolDiscovery: discoveryResult.text,
|
|
518
522
|
hasLocalEnv
|
|
519
523
|
}));
|
|
520
524
|
prompt += toolsResult.text;
|
|
525
|
+
if (role === "lead" && hasSwarmDocsSkill(args.skillsSummary)) {
|
|
526
|
+
const docsResult = await resolveTemplateAsync("system.agent.lead.docs", {});
|
|
527
|
+
prompt += docsResult.text;
|
|
528
|
+
}
|
|
521
529
|
}
|
|
522
530
|
if (hasLocalEnv && args.claudeMd && CLAUDE_MD_INJECT_PROVIDERS.has(provider) && !matchesDefaultClaudeMd(args.claudeMd, defaultsInput)) {
|
|
523
531
|
const budget = Math.min(BOOTSTRAP_MAX_CHARS, Math.max(0, BOOTSTRAP_TOTAL_MAX_CHARS - prompt.length));
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
contextBoundNoteThreshold,
|
|
6
6
|
createContextBoundNote
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-sjctjr48.js";
|
|
8
8
|
import {
|
|
9
9
|
checkToolLoop
|
|
10
10
|
} from "./cli-0726awxw.js";
|
|
@@ -20,21 +20,26 @@ import {
|
|
|
20
20
|
computeContextUsedUnified,
|
|
21
21
|
clampContextPercent,
|
|
22
22
|
init_context_window
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-pfk92eqz.js";
|
|
24
|
+
import {
|
|
25
|
+
selectCredential,
|
|
26
|
+
init_credentials
|
|
27
|
+
} from "./cli-gt4h8cxw.js";
|
|
24
28
|
import {
|
|
25
29
|
runtimeCatalogModel,
|
|
26
30
|
init_runtime_model_catalog
|
|
27
|
-
} from "./cli-
|
|
31
|
+
} from "./cli-803188pb.js";
|
|
28
32
|
import {
|
|
29
33
|
scrubSecrets,
|
|
30
34
|
init_secret_scrubber
|
|
31
|
-
} from "./cli-
|
|
35
|
+
} from "./cli-708wdy32.js";
|
|
32
36
|
import {
|
|
33
37
|
init_src2
|
|
34
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-gxee0bqa.js";
|
|
35
39
|
|
|
36
40
|
// src/providers/claude-managed-adapter.ts
|
|
37
41
|
init_context_window();
|
|
42
|
+
init_credentials();
|
|
38
43
|
init_secret_scrubber();
|
|
39
44
|
|
|
40
45
|
// src/providers/claude-managed-models.ts
|
|
@@ -592,7 +597,7 @@ class ClaudeManagedAdapter2 {
|
|
|
592
597
|
if (missing.length > 0) {
|
|
593
598
|
throw new Error(`[claude-managed] Missing required env var(s): ${missing.join(", ")}. ` + `Run \`bun run src/cli.tsx claude-managed-setup\` to create an Anthropic-side ` + `agent + environment and persist their IDs to swarm_config.`);
|
|
594
599
|
}
|
|
595
|
-
this.apiKey = process.env.ANTHROPIC_API_KEY;
|
|
600
|
+
this.apiKey = selectCredential(process.env.ANTHROPIC_API_KEY, undefined, "ANTHROPIC_API_KEY").selected;
|
|
596
601
|
this.agentId = process.env.MANAGED_AGENT_ID;
|
|
597
602
|
this.environmentId = process.env.MANAGED_ENVIRONMENT_ID;
|
|
598
603
|
if (opts.client) {
|
|
@@ -602,6 +607,10 @@ class ClaudeManagedAdapter2 {
|
|
|
602
607
|
}
|
|
603
608
|
}
|
|
604
609
|
async createSession(config) {
|
|
610
|
+
const taskKey = config.env?.ANTHROPIC_API_KEY;
|
|
611
|
+
const client = taskKey && this.client instanceof Anthropic ? this.client.withOptions({
|
|
612
|
+
apiKey: selectCredential(taskKey, undefined, "ANTHROPIC_API_KEY").selected
|
|
613
|
+
}) : this.client;
|
|
605
614
|
if (config.resumeSessionId) {
|
|
606
615
|
console.warn("[claude-managed-adapter] resumeSessionId ignored — native resume is disabled by deprecation plan");
|
|
607
616
|
}
|
|
@@ -633,9 +642,9 @@ class ClaudeManagedAdapter2 {
|
|
|
633
642
|
if (vaultIds.length > 0) {
|
|
634
643
|
createParams.vault_ids = Array.from(new Set(vaultIds));
|
|
635
644
|
}
|
|
636
|
-
const created = await Promise.resolve(
|
|
645
|
+
const created = await Promise.resolve(client.beta.sessions.create(createParams));
|
|
637
646
|
const sessionId = created.id;
|
|
638
|
-
return new ClaudeManagedSession(
|
|
647
|
+
return new ClaudeManagedSession(client, sessionId, config, userMessageContent, seenEventIds);
|
|
639
648
|
}
|
|
640
649
|
async canResume(sessionId) {
|
|
641
650
|
try {
|
|
@@ -7,18 +7,18 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
contextBoundNoteThreshold,
|
|
9
9
|
createContextBoundNote
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-sjctjr48.js";
|
|
11
11
|
import {
|
|
12
12
|
SessionErrorTracker
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-vz78s5wm.js";
|
|
14
14
|
import {
|
|
15
15
|
credentialsToAuthJson,
|
|
16
16
|
CodexOAuthRefreshError,
|
|
17
17
|
getValidCodexOAuth
|
|
18
|
-
} from "./cli-
|
|
18
|
+
} from "./cli-0z1xjzwa.js";
|
|
19
19
|
import {
|
|
20
20
|
summarizeSession
|
|
21
|
-
} from "./cli-
|
|
21
|
+
} from "./cli-c668vvcf.js";
|
|
22
22
|
import {
|
|
23
23
|
swarmRuntimeInstanceId
|
|
24
24
|
} from "./cli-e8xyjvfc.js";
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
} from "./cli-vbhgkw9h.js";
|
|
42
42
|
import {
|
|
43
43
|
applyReasoningEffort
|
|
44
|
-
} from "./cli-
|
|
44
|
+
} from "./cli-c081bj3b.js";
|
|
45
45
|
import {
|
|
46
46
|
createSwarmEventHandler
|
|
47
47
|
} from "./cli-4zsenjhy.js";
|
|
@@ -50,22 +50,31 @@ import {
|
|
|
50
50
|
computeContextUsedUnified,
|
|
51
51
|
clampContextPercent,
|
|
52
52
|
init_context_window
|
|
53
|
-
} from "./cli-
|
|
53
|
+
} from "./cli-pfk92eqz.js";
|
|
54
54
|
import {
|
|
55
55
|
hasCodexOAuthPoolSlots
|
|
56
56
|
} from "./cli-j4bwnpkm.js";
|
|
57
57
|
import {
|
|
58
58
|
DEFAULT_MODEL_TIER_MAP,
|
|
59
59
|
init_types
|
|
60
|
-
} from "./cli-
|
|
60
|
+
} from "./cli-9pshx6rd.js";
|
|
61
|
+
import {
|
|
62
|
+
routeCredentialStatus,
|
|
63
|
+
CODEX_GATEWAY_API_KEY,
|
|
64
|
+
deriveDefaultRoute,
|
|
65
|
+
routeUnsetEnv,
|
|
66
|
+
init_src,
|
|
67
|
+
selectCredential,
|
|
68
|
+
init_credentials
|
|
69
|
+
} from "./cli-gt4h8cxw.js";
|
|
61
70
|
import {
|
|
62
71
|
runtimeCatalogModel,
|
|
63
72
|
init_runtime_model_catalog
|
|
64
|
-
} from "./cli-
|
|
73
|
+
} from "./cli-803188pb.js";
|
|
65
74
|
import {
|
|
66
75
|
init_package,
|
|
67
76
|
package_default
|
|
68
|
-
} from "./cli-
|
|
77
|
+
} from "./cli-ptfq202x.js";
|
|
69
78
|
import {
|
|
70
79
|
isEnvFlagEnabled,
|
|
71
80
|
isSessionSummarySkipped,
|
|
@@ -78,10 +87,10 @@ import {
|
|
|
78
87
|
import {
|
|
79
88
|
scrubSecrets,
|
|
80
89
|
init_secret_scrubber
|
|
81
|
-
} from "./cli-
|
|
90
|
+
} from "./cli-708wdy32.js";
|
|
82
91
|
import {
|
|
83
92
|
init_src2
|
|
84
|
-
} from "./cli-
|
|
93
|
+
} from "./cli-gxee0bqa.js";
|
|
85
94
|
|
|
86
95
|
// src/providers/codex-oauth/home.ts
|
|
87
96
|
import os from "node:os";
|
|
@@ -90,10 +99,12 @@ function codexUserHome() {
|
|
|
90
99
|
}
|
|
91
100
|
|
|
92
101
|
// src/providers/codex-adapter.ts
|
|
102
|
+
init_src();
|
|
93
103
|
import { existsSync as nodeExistsSync } from "node:fs";
|
|
94
104
|
import { join as join2 } from "node:path";
|
|
95
105
|
init_api_key();
|
|
96
106
|
init_context_window();
|
|
107
|
+
init_credentials();
|
|
97
108
|
init_env_flag();
|
|
98
109
|
init_secret_scrubber();
|
|
99
110
|
|
|
@@ -526,8 +537,28 @@ function createCodexSwarmEventHandler(opts) {
|
|
|
526
537
|
}
|
|
527
538
|
|
|
528
539
|
// src/providers/codex-adapter.ts
|
|
540
|
+
var CODEX_GATEWAY_PROVIDER_ID = "swarm-gateway";
|
|
541
|
+
function codexGatewayConfig(route) {
|
|
542
|
+
return {
|
|
543
|
+
model_provider: CODEX_GATEWAY_PROVIDER_ID,
|
|
544
|
+
model_providers: {
|
|
545
|
+
[CODEX_GATEWAY_PROVIDER_ID]: {
|
|
546
|
+
name: "Swarm gateway",
|
|
547
|
+
base_url: route.baseUrl,
|
|
548
|
+
env_key: CODEX_GATEWAY_API_KEY,
|
|
549
|
+
wire_api: "responses",
|
|
550
|
+
requires_openai_auth: false
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
}
|
|
529
555
|
var CONTEXT_MODE_CODEX_PLUGIN = "context-mode@context-mode";
|
|
530
556
|
function checkCodexCredentials2(env, opts = {}) {
|
|
557
|
+
const gateway = deriveDefaultRoute("codex", env);
|
|
558
|
+
if (gateway) {
|
|
559
|
+
const status = routeCredentialStatus(gateway, env);
|
|
560
|
+
return status.ready ? { ready: true, missing: [], satisfiedBy: "env", hint: status.hint } : { ready: false, missing: status.missing, hint: status.hint };
|
|
561
|
+
}
|
|
531
562
|
const homeDir = opts.homeDir ?? env.HOME ?? "/root";
|
|
532
563
|
const existsSync = opts.fs?.existsSync ?? nodeExistsSync;
|
|
533
564
|
const authFile = `${homeDir}/.codex/auth.json`;
|
|
@@ -1735,8 +1766,13 @@ async function createInProcessCodexSession2(config, opts = {}) {
|
|
|
1735
1766
|
const bufferedEmit = (event) => {
|
|
1736
1767
|
preSessionEvents.push(event);
|
|
1737
1768
|
};
|
|
1738
|
-
const
|
|
1739
|
-
const
|
|
1769
|
+
const routeEnv = config.env ?? process.env;
|
|
1770
|
+
const gateway = deriveDefaultRoute("codex", routeEnv);
|
|
1771
|
+
const mergedConfig = {
|
|
1772
|
+
...await buildCodexConfig(config, resolvedModel, bufferedEmit),
|
|
1773
|
+
...gateway ? codexGatewayConfig(gateway) : {}
|
|
1774
|
+
};
|
|
1775
|
+
const authMode = gateway ? null : await resolveCodexAuthMode(config, bufferedEmit);
|
|
1740
1776
|
const env = {
|
|
1741
1777
|
PATH: process.env.PATH ?? "",
|
|
1742
1778
|
HOME: process.env.HOME ?? "",
|
|
@@ -1747,8 +1783,17 @@ async function createInProcessCodexSession2(config, opts = {}) {
|
|
|
1747
1783
|
...buildOtelTraceparentEnv(config.env ?? process.env),
|
|
1748
1784
|
SWARM_CODEX_APP_SERVER: "1"
|
|
1749
1785
|
};
|
|
1750
|
-
if (
|
|
1786
|
+
if (gateway) {
|
|
1787
|
+
for (const key of routeUnsetEnv("codex", gateway))
|
|
1788
|
+
delete env[key];
|
|
1789
|
+
const gatewayKey = routeEnv[CODEX_GATEWAY_API_KEY];
|
|
1790
|
+
if (gatewayKey)
|
|
1791
|
+
env[CODEX_GATEWAY_API_KEY] = gatewayKey;
|
|
1792
|
+
} else if (authMode === "chatgpt")
|
|
1751
1793
|
delete env.OPENAI_API_KEY;
|
|
1794
|
+
else if (env.OPENAI_API_KEY) {
|
|
1795
|
+
env.OPENAI_API_KEY = selectCredential(env.OPENAI_API_KEY, undefined, "OPENAI_API_KEY").selected;
|
|
1796
|
+
}
|
|
1752
1797
|
const codexPathOverride = process.env.CODEX_PATH_OVERRIDE;
|
|
1753
1798
|
if (config.resumeSessionId) {
|
|
1754
1799
|
console.warn("[codex-adapter] resumeSessionId ignored — native resume is disabled by deprecation plan");
|
|
@@ -1830,6 +1875,12 @@ class CodexSubprocessSession {
|
|
|
1830
1875
|
parentOtelEnv: buildOtelTraceparentEnv(config.env ?? process.env)
|
|
1831
1876
|
};
|
|
1832
1877
|
const apiKey = getApiKey();
|
|
1878
|
+
const providerKeys = {};
|
|
1879
|
+
for (const keyVar of ["OPENAI_API_KEY", "OPENROUTER_API_KEY", "ANTHROPIC_API_KEY"]) {
|
|
1880
|
+
const value = config.env?.[keyVar] ?? process.env[keyVar];
|
|
1881
|
+
if (value)
|
|
1882
|
+
providerKeys[keyVar] = selectCredential(value, undefined, keyVar).selected;
|
|
1883
|
+
}
|
|
1833
1884
|
this.proc = registerProcessGroup(Bun.spawn(argv, {
|
|
1834
1885
|
detached: detachedProcessGroup,
|
|
1835
1886
|
env: {
|
|
@@ -1838,9 +1889,7 @@ class CodexSubprocessSession {
|
|
|
1838
1889
|
...process.env.NODE_EXTRA_CA_CERTS ? { NODE_EXTRA_CA_CERTS: process.env.NODE_EXTRA_CA_CERTS } : {},
|
|
1839
1890
|
...process.env.MCP_BASE_URL ? { MCP_BASE_URL: process.env.MCP_BASE_URL } : {},
|
|
1840
1891
|
...apiKey ? { AGENT_SWARM_API_KEY: apiKey, API_KEY: apiKey } : {},
|
|
1841
|
-
...
|
|
1842
|
-
...process.env.OPENROUTER_API_KEY ? { OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY } : {},
|
|
1843
|
-
...process.env.ANTHROPIC_API_KEY ? { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY } : {},
|
|
1892
|
+
...providerKeys,
|
|
1844
1893
|
...process.env.CODEX_PATH_OVERRIDE ? { CODEX_PATH_OVERRIDE: process.env.CODEX_PATH_OVERRIDE } : {},
|
|
1845
1894
|
...process.env.CODEX_SKILLS_DIR ? { CODEX_SKILLS_DIR: process.env.CODEX_SKILLS_DIR } : {},
|
|
1846
1895
|
CONTEXT_MODE_EXTERNAL_MCP_NUDGE_EVERY: CTX_MODE_NUDGE_EVERY,
|
|
@@ -2070,6 +2119,9 @@ class CodexAdapter2 {
|
|
|
2070
2119
|
this.threadFactory = opts.threadFactory;
|
|
2071
2120
|
}
|
|
2072
2121
|
async createSession(config) {
|
|
2122
|
+
if (deriveDefaultRoute("codex", config.env ?? process.env)) {
|
|
2123
|
+
console.log("\x1B[2m[codex]\x1B[0m Using credential: gateway");
|
|
2124
|
+
}
|
|
2073
2125
|
if (this.bypassSubprocess) {
|
|
2074
2126
|
return createInProcessCodexSession2(config, {
|
|
2075
2127
|
skillsDir: this.skillsDir,
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
materializeClaudeMd,
|
|
10
10
|
stopClaudeMd
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-54sj64fc.js";
|
|
12
12
|
import {
|
|
13
13
|
summarizeSession
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-c668vvcf.js";
|
|
15
15
|
import {
|
|
16
16
|
contextBoundNoteThreshold,
|
|
17
17
|
injectClaimedContextBoundNote
|
|
18
|
-
} from "./cli-
|
|
18
|
+
} from "./cli-sjctjr48.js";
|
|
19
19
|
import {
|
|
20
20
|
guardGhPrBody,
|
|
21
21
|
guardGhPrRoom
|
|
@@ -31,11 +31,11 @@ import {
|
|
|
31
31
|
warnProfileFileTooLarge,
|
|
32
32
|
buildIndependentIdentityPayloads,
|
|
33
33
|
init_profile_sync
|
|
34
|
-
} from "./cli-
|
|
34
|
+
} from "./cli-x37r7qwf.js";
|
|
35
35
|
import {
|
|
36
36
|
init_package,
|
|
37
37
|
package_default
|
|
38
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-ptfq202x.js";
|
|
39
39
|
import {
|
|
40
40
|
MAX_PROFILE_FILE_LENGTH,
|
|
41
41
|
getMcpBaseUrl,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
import {
|
|
53
53
|
scrubSecrets,
|
|
54
54
|
init_secret_scrubber
|
|
55
|
-
} from "./cli-
|
|
55
|
+
} from "./cli-708wdy32.js";
|
|
56
56
|
|
|
57
57
|
// src/hooks/hook.ts
|
|
58
58
|
init_package();
|