@desplega.ai/agent-swarm 1.165.0 → 1.167.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/dist/acp-adapter-zpvy6321.js +34 -0
- package/dist/{actions-jna0b3wm.js → actions-fq2zrwtf.js} +30 -34
- package/dist/{amp-adapter-0eve81pz.js → amp-adapter-5gbk7501.js} +7 -7
- package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
- package/dist/{app-75hm5cfa.js → app-nctetn1e.js} +11 -11
- package/dist/{assistant-yzd51j33.js → assistant-0aq8gjvj.js} +31 -35
- package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
- package/dist/{boot-reembed-z158xq32.js → boot-reembed-1ze5853n.js} +14 -16
- package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-fmp5ww69.js} +15 -16
- package/dist/boot-scrub-sweep-cbp8xd4e.js +212 -0
- package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-22tx8a53.js} +13 -12
- package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-0jhgeh1d.js} +25 -25
- package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-tzwxy803.js} +5 -5
- package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-nrhfx5b0.js} +5 -5
- package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-wh77rh83.js} +2632 -2614
- package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
- package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
- package/dist/{cli-8gpbwy09.js → cli-1yrcfa5s.js} +5 -5
- package/dist/{cli-xtgtyafv.js → cli-577bxkf6.js} +212 -451
- package/dist/{cli-ma3zvh39.js → cli-5qkcdv8c.js} +6118 -5874
- package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
- package/dist/{cli-zvckv750.js → cli-69egj654.js} +2 -2
- package/dist/{cli-9xb89xca.js → cli-6bpvv8h4.js} +9 -9
- package/dist/{cli-90v942q1.js → cli-6qxmjpem.js} +8 -8
- package/dist/{cli-9866bd07.js → cli-6vfz44sr.js} +1 -1
- package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
- package/dist/{cli-xb3c6aat.js → cli-7mhy3ths.js} +21 -18
- package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
- package/dist/cli-a35hzdve.js +33 -0
- package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
- package/dist/{cli-prt9emct.js → cli-c2tpw9ck.js} +3 -3
- package/dist/{cli-0n4fasz0.js → cli-c8r99akr.js} +16 -16
- package/dist/{cli-5anb0ev3.js → cli-cexctgn5.js} +89 -26
- package/dist/{cli-bns5c8k9.js → cli-cf2vgn9d.js} +105 -91
- package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
- package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
- package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
- package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
- package/dist/{cli-zn2v3t8v.js → cli-jvmtxqtc.js} +27 -15
- package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
- package/dist/cli-kw0jcfje.js +516 -0
- package/dist/{cli-28smfvbn.js → cli-m7vmeepg.js} +32 -19
- package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
- package/dist/{cli-qdv8kgz7.js → cli-mkdsy1nq.js} +14018 -3333
- package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
- package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
- package/dist/{cli-n9ehc28t.js → cli-mxry91sa.js} +31 -10
- package/dist/{cli-wfajtmf7.js → cli-mxvnnv5q.js} +596 -13
- package/dist/cli-nkqjj42q.js +104 -0
- package/dist/{cli-e7t4snpa.js → cli-p8rt8spp.js} +5 -5
- package/dist/{cli-gh5yqzpe.js → cli-pkj1w46r.js} +12 -7
- package/dist/cli-q1vnz8wv.js +96 -0
- package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
- package/dist/{cli-ba66wyhy.js → cli-qzmzwegq.js} +60 -20
- package/dist/{cli-5b2fjjzh.js → cli-r7eeddkq.js} +14 -9
- package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
- package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
- package/dist/{cli-59jn5twa.js → cli-tc5zec7v.js} +7 -7
- package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
- package/dist/{cli-k6xx3pve.js → cli-tx2zvn23.js} +4 -4
- package/dist/{cli-pjxnr1jn.js → cli-ty4bzkqr.js} +5 -5
- package/dist/{cli-nfygw434.js → cli-v1pwxreq.js} +55 -52
- package/dist/{cli-ftry7975.js → cli-v1w7pbd8.js} +3 -2
- package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
- package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
- package/dist/cli-wt7ccy4r.js +2654 -0
- package/dist/{cli-50eg13rj.js → cli-wydz3feg.js} +549 -321
- package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
- package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
- package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
- package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
- package/dist/{cli-j0pdrmwg.js → cli-y0kjpfm9.js} +3 -3
- package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
- package/dist/{cli-amwhs8h2.js → cli-ykt8f7va.js} +22 -9
- package/dist/{cli-1kzfvd1z.js → cli-ymmc1zxg.js} +15 -11
- package/dist/{cli-xnzrzets.js → cli-ypgba1a8.js} +2 -2
- package/dist/{cli-bdv39kgj.js → cli-z1dqhc9y.js} +31 -20
- package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
- package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
- package/dist/cli.js +36 -32
- package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
- package/dist/{codex-adapter-3qnxshje.js → codex-adapter-cgesnjkr.js} +20 -20
- package/dist/{codex-login-brkxhhdg.js → codex-login-g1cyt5zm.js} +2 -2
- package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-8kd7ddhr.js} +20 -20
- package/dist/{commands-2ybfcxkj.js → commands-h6zaaxym.js} +11 -10
- package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-v8mm6bp5.js} +7 -7
- package/dist/{db-f4ans0jj.js → db-qg3myn53.js} +13 -10
- package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
- package/dist/{dispatcher-pk182apd.js → dispatcher-7vnwj9qw.js} +28 -32
- package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-tz6hfp5r.js} +7 -7
- package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
- package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
- package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
- package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
- package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
- package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
- package/dist/grok-adapter-jdt2dz2s.js +39 -0
- package/dist/{handlers-g2wnr4t9.js → handlers-2qtkpncr.js} +31 -35
- package/dist/{hook-f7jt9vnm.js → hook-51yfcgsv.js} +48 -39
- package/dist/{hook-bbdpnkb4.js → hook-qnbdgwvd.js} +15 -17
- package/dist/{http-w40q4w94.js → http-jsmtag08.js} +536 -231
- package/dist/{index-056j5kzn.js → index-2t9kesn1.js} +13 -12
- package/dist/{index-cj1r9q83.js → index-bt8wkv1w.js} +29 -33
- package/dist/{index-7n70jwbb.js → index-cx1sb9bq.js} +42 -35
- package/dist/{index-9bfssf54.js → index-ekywyv2v.js} +28 -32
- package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
- package/dist/{index-k8xc083e.js → index-t4g06w93.js} +28 -32
- package/dist/{keepalive-1tj10tf4.js → keepalive-4aezx4bj.js} +16 -12
- package/dist/{lead-st0bg7v4.js → lead-r44bkpm5.js} +52 -56
- package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
- package/dist/{maintenance-nz71zats.js → maintenance-grz5jrzh.js} +12 -13
- package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
- package/dist/{node-f0ykebbv.js → node-qm9eb6z0.js} +25 -7
- package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-wm4ctjfj.js} +15 -11
- package/dist/{onboard-kgpr9mbn.js → onboard-v60zgqf0.js} +2 -2
- package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
- package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
- package/dist/openai-decisions-vj9nkpf8.js +162 -0
- package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
- package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-yjyqynzf.js} +8 -8
- package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
- package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ghh4dyf8.js} +2 -2
- package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
- package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-0eg8kw2c.js} +69 -52
- package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-mjrqvnvw.js} +12 -11
- package/dist/{rbac-roles-790j3ga8.js → rbac-roles-axv4d74x.js} +11 -10
- package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-fd5tskj9.js} +11 -10
- package/dist/{render-v2-tch4nefj.js → render-v2-k50j33qd.js} +11 -11
- package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
- package/dist/{setup-rcm303ns.js → setup-4syh0pd2.js} +2 -2
- package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
- package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
- package/dist/{work-objects-ctg7t70w.js → work-objects-jcdbg8rr.js} +32 -36
- package/dist/{worker-5dp0xm55.js → worker-x8j8c9sx.js} +52 -56
- package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
- package/openapi.json +5 -2
- package/package.json +15 -11
- package/src/be/automation-preflight.ts +9 -4
- package/src/be/boot-scrub-sweep.ts +302 -0
- package/src/be/crypto/key-bootstrap.ts +1 -1
- package/src/be/db/approvals.ts +15 -1
- package/src/be/db/codex-oauth-device-flows.ts +40 -0
- package/src/be/db/config-secrets.ts +31 -0
- package/src/be/db/runtime.ts +4 -0
- package/src/be/db/script-runs.ts +15 -0
- package/src/be/db/tasks/write.ts +1 -1
- package/src/be/db-queries/mcp-oauth.ts +5 -0
- package/src/be/db-queries/oauth.ts +77 -0
- package/src/be/db.ts +162 -59
- package/src/be/events.ts +17 -1
- package/src/be/memory/index-content.ts +2 -2
- package/src/be/memory/providers/openai-embedding.ts +7 -2
- package/src/be/memory/providers/sqlite-store.ts +63 -11
- package/src/be/memory/raters/llm-summarizer.ts +7 -2
- package/src/be/memory/types.ts +14 -0
- package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
- package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
- package/src/be/modelsdev-cache.json +61 -0
- package/src/be/scripts/db.ts +28 -4
- package/src/be/scripts/source-secrets.ts +37 -0
- package/src/be/scrub-json.ts +32 -0
- package/src/be/sealed-json.ts +59 -0
- package/src/be/secret-registry.ts +131 -0
- package/src/be/seed-pricing.ts +84 -53
- package/src/be/swarm-config-guard.ts +13 -0
- package/src/be/workflow-replay.ts +77 -0
- package/src/commands/provider-credentials.ts +28 -5
- package/src/commands/runner.ts +7 -12
- package/src/heartbeat/heartbeat.ts +91 -19
- package/src/hooks/hook.ts +72 -27
- package/src/http/codex-oauth-device.ts +8 -10
- package/src/http/db-query-bounded.ts +3 -0
- package/src/http/db-query-shared.ts +107 -15
- package/src/http/db-query.ts +10 -2
- package/src/http/index.ts +23 -6
- package/src/http/mcp.ts +5 -0
- package/src/http/onboarding.ts +2 -0
- package/src/http/script-runs.ts +9 -1
- package/src/http/scripts.ts +15 -0
- package/src/http/workflows.ts +3 -2
- package/src/oauth/mcp-wrapper.ts +1 -1
- package/src/providers/acp-adapter.ts +25 -11
- package/src/providers/acp-target-catalog.ts +35 -1
- package/src/providers/acp-targets.ts +78 -7
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +26 -0
- package/src/providers/codex-adapter.ts +30 -3
- package/src/providers/codex-oauth/auth-json.ts +21 -4
- package/src/providers/codex-oauth/types.ts +2 -0
- package/src/providers/cursor-adapter.ts +1 -1
- package/src/providers/dsh-adapter.ts +10 -1
- package/src/providers/grok-adapter.ts +18 -2
- package/src/providers/opencode-adapter.ts +21 -5
- package/src/providers/pi-mono-extension.ts +56 -25
- package/src/providers/pricing-sources.md +2 -0
- package/src/script-workflows/supervisor.ts +11 -2
- package/src/scripts-runtime/eval-harness.ts +2 -12
- package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
- package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
- package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
- package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
- package/src/scripts-runtime/executors/quickjs.ts +196 -0
- package/src/scripts-runtime/executors/registry.ts +2 -0
- package/src/scripts-runtime/executors/sourcemap.ts +79 -0
- package/src/scripts-runtime/script-error-hints.ts +14 -0
- package/src/server.ts +66 -4
- package/src/tests/acp-adapter.test.ts +277 -12
- package/src/tests/boot-scrub-sweep.test.ts +390 -0
- package/src/tests/check-text-columns.test.ts +145 -0
- package/src/tests/ci-unit-test-report.test.ts +73 -0
- package/src/tests/claude-default-route.test.ts +75 -0
- package/src/tests/claude-hook-output.test.ts +233 -0
- package/src/tests/claude-sdk-process.fixture.ts +13 -2
- package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
- package/src/tests/codex-adapter.test.ts +166 -26
- package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
- package/src/tests/codex-oauth-device.test.ts +23 -37
- package/src/tests/codex-oauth.test.ts +4 -1
- package/src/tests/context-window.test.ts +2 -2
- package/src/tests/credential-check.test.ts +51 -1
- package/src/tests/db-query-denylist.test.ts +202 -0
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/db-task-write-contract.test.ts +1 -0
- package/src/tests/dsh-adapter.test.ts +23 -1
- package/src/tests/enabled-tools.test.ts +269 -0
- package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
- package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
- package/src/tests/events-scrub.test.ts +88 -0
- package/src/tests/fixtures/secret-corpus.ts +320 -0
- package/src/tests/grok-adapter.test.ts +13 -0
- package/src/tests/haiku-5-5-pricing.test.ts +38 -0
- package/src/tests/heartbeat-checklist.test.ts +158 -1
- package/src/tests/onboarding.test.ts +44 -0
- package/src/tests/opencode-adapter.test.ts +66 -3
- package/src/tests/opencode-plugin.test.ts +37 -0
- package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
- package/src/tests/openrouter-base-url.test.ts +30 -39
- package/src/tests/pi-mono-extension.test.ts +161 -2
- package/src/tests/pricing-refresh.test.ts +70 -1
- package/src/tests/reasoning-effort.test.ts +3 -1
- package/src/tests/script-connections.test.ts +5 -0
- package/src/tests/script-executor-conformance.test.ts +3 -0
- package/src/tests/script-executor-quickjs.test.ts +442 -0
- package/src/tests/script-executor-registry.test.ts +6 -1
- package/src/tests/script-runs-http.test.ts +88 -1
- package/src/tests/script-runs-scrub.test.ts +275 -0
- package/src/tests/scripts-http.test.ts +82 -1
- package/src/tests/scrubbed-text-12e.test.ts +289 -0
- package/src/tests/sealed-key-guard.test.ts +166 -0
- package/src/tests/secret-canary-sweep.test.ts +958 -0
- package/src/tests/secret-registry.test.ts +355 -0
- package/src/tests/secret-rules.test.ts +230 -0
- package/src/tests/secret-scrubber.test.ts +3 -2
- package/src/tests/telemetry-trigger.test.ts +12 -1
- package/src/tests/workflow-llm.test.ts +14 -0
- package/src/tests/workflow-replay.test.ts +518 -0
- package/src/tests/workflow-scrub.test.ts +242 -0
- package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
- package/src/tools/db-query.ts +1 -1
- package/src/tools/inject-learning.ts +1 -1
- package/src/tools/request-human-input.ts +7 -2
- package/src/tools/workflows/get-workflow-run.ts +3 -2
- package/src/types.ts +1 -1
- package/src/utils/enabled-tools.ts +27 -0
- package/src/utils/internal-ai/complete-structured.ts +11 -3
- package/src/utils/openrouter-base-url.ts +23 -0
- package/src/utils/secret-rules.generated.ts +2055 -0
- package/src/utils/secret-scrubber.ts +363 -29
- package/src/workflows/engine.ts +39 -4
- package/src/workflows/executors/raw-llm.ts +1 -0
- package/src/workflows/executors/system-one-decision.ts +2 -0
- package/src/workflows/executors/validate.ts +1 -0
- package/src/workflows/executors/workflow-llm.ts +9 -2
- package/src/workflows/recovery.ts +10 -1
- package/src/workflows/resume.ts +62 -3
- package/src/workflows/retry-poller.ts +3 -0
- package/templates/skills/agent-browser/SKILL.md +2 -0
- package/templates/skills/agent-browser/content.md +2 -0
- package/templates/skills/code-quality/content.md +1 -0
- package/templates/skills/heartbeat-runbook/content.md +1 -1
- package/templates/skills/work-on-task/SKILL.md +4 -0
- package/templates/skills/work-on-task/content.md +4 -0
- package/templates/skills/workflow-iterate/content.md +9 -0
- package/dist/acp-adapter-w6zws6me.js +0 -23
- package/dist/boot-scrub-logs-246yn076.js +0 -99
- package/dist/cli-3a4m1aws.js +0 -572
- package/dist/cli-3dpj7atn.js +0 -11
- package/dist/cli-a87b04k8.js +0 -951
- package/dist/cli-cvk6yzw5.js +0 -40
- package/dist/cli-gvcgmx69.js +0 -183
- package/dist/cli-h1spv8v4.js +0 -427
- package/dist/cli-jqt9hrnz.js +0 -168
- package/dist/cli-yhmwmv0g.js +0 -9281
- package/dist/grok-adapter-yt9pab3k.js +0 -29
- package/src/be/boot-scrub-logs.ts +0 -132
- package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
replaceTabs,
|
|
8
8
|
truncateMiddle,
|
|
9
9
|
writeOutputFile
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-rhy7z1rp.js";
|
|
11
11
|
import {
|
|
12
12
|
Container,
|
|
13
13
|
Spacer,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
keyHint,
|
|
18
18
|
normalizePath,
|
|
19
19
|
stripBom
|
|
20
|
-
} from "./cli-
|
|
20
|
+
} from "./cli-5t5my0h8.js";
|
|
21
21
|
import {
|
|
22
22
|
require_cross_spawn
|
|
23
23
|
} from "./cli-5bfdm1ah.js";
|
|
@@ -2647,6 +2647,7 @@ class StreamableHttpTransport extends TransportEvents {
|
|
|
2647
2647
|
sessionIdValue;
|
|
2648
2648
|
protocolVersion;
|
|
2649
2649
|
getStreamStarted = false;
|
|
2650
|
+
lastToken;
|
|
2650
2651
|
constructor(options) {
|
|
2651
2652
|
super();
|
|
2652
2653
|
this.options = Object.freeze({ ...options, headers: options.headers ? { ...options.headers } : undefined });
|
|
@@ -2705,16 +2706,14 @@ class StreamableHttpTransport extends TransportEvents {
|
|
|
2705
2706
|
this.closed = true;
|
|
2706
2707
|
this.controller.abort();
|
|
2707
2708
|
if (this.started && this.sessionIdValue) {
|
|
2708
|
-
const controller = new AbortController;
|
|
2709
|
-
const timeout = setTimeout(() => controller.abort(), 1000);
|
|
2710
2709
|
try {
|
|
2711
|
-
const
|
|
2712
|
-
|
|
2713
|
-
|
|
2710
|
+
const response = await this.fetch(this.url, {
|
|
2711
|
+
method: "DELETE",
|
|
2712
|
+
headers: this.buildHeaders({}, this.lastToken),
|
|
2713
|
+
signal: AbortSignal.timeout(1000)
|
|
2714
2714
|
});
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
}
|
|
2715
|
+
await discard(response);
|
|
2716
|
+
} catch {}
|
|
2718
2717
|
}
|
|
2719
2718
|
this.emitClose();
|
|
2720
2719
|
}
|
|
@@ -2738,6 +2737,11 @@ class StreamableHttpTransport extends TransportEvents {
|
|
|
2738
2737
|
}
|
|
2739
2738
|
}
|
|
2740
2739
|
async headers(extra = {}) {
|
|
2740
|
+
const token = await this.options.authProvider?.token();
|
|
2741
|
+
this.lastToken = token;
|
|
2742
|
+
return { headers: this.buildHeaders(extra, token), ...token ? { token } : {} };
|
|
2743
|
+
}
|
|
2744
|
+
buildHeaders(extra, token) {
|
|
2741
2745
|
const headers = new Headers(this.options.headers);
|
|
2742
2746
|
for (const [name, value] of Object.entries(extra))
|
|
2743
2747
|
headers.set(name, value);
|
|
@@ -2745,10 +2749,9 @@ class StreamableHttpTransport extends TransportEvents {
|
|
|
2745
2749
|
headers.set("Mcp-Session-Id", this.sessionIdValue);
|
|
2746
2750
|
if (this.protocolVersion)
|
|
2747
2751
|
headers.set("MCP-Protocol-Version", this.protocolVersion);
|
|
2748
|
-
const token = await this.options.authProvider?.token();
|
|
2749
2752
|
if (token)
|
|
2750
2753
|
headers.set("Authorization", `Bearer ${token}`);
|
|
2751
|
-
return
|
|
2754
|
+
return headers;
|
|
2752
2755
|
}
|
|
2753
2756
|
captureSession(response) {
|
|
2754
2757
|
const sessionId = response.headers.get("mcp-session-id");
|
|
@@ -3829,4 +3832,4 @@ function readStoredCredential(providerId, authPath = join(getAgentDir(), "auth.j
|
|
|
3829
3832
|
}
|
|
3830
3833
|
}
|
|
3831
3834
|
|
|
3832
|
-
export { createToolNameMatcher, LIST_MCP_RESOURCES_TOOL, LIST_MCP_RESOURCE_TEMPLATES_TOOL, READ_MCP_RESOURCE_TOOL, isMcpToolName, mcpNamespace, getMcpToolExposure, validateMcpServerConfig, McpServerRegistry, getConfigValueEnvVarNames, isCommandConfigValue, isConfigValueConfigured, resolveConfigValueOrThrow, resolveHeadersOrThrow,
|
|
3835
|
+
export { require_proper_lockfile, createToolNameMatcher, LIST_MCP_RESOURCES_TOOL, LIST_MCP_RESOURCE_TEMPLATES_TOOL, READ_MCP_RESOURCE_TOOL, isMcpToolName, mcpNamespace, getMcpToolExposure, validateMcpServerConfig, McpServerRegistry, getConfigValueEnvVarNames, isCommandConfigValue, isConfigValueConfigured, resolveConfigValueOrThrow, resolveHeadersOrThrow, operationSignal, raceWithAbortSignal, FileAuthStorageBackend, ReadOnlyAuthStorage, AuthStorage, readStoredCredential, JSON_RPC_ERROR_CODES, McpError, isObject, LATEST_PROTOCOL_VERSION, McpClient, StdioTransport, McpHttpError, McpAuthRequiredError, McpSessionExpiredError, StreamableHttpTransport, createMcpToolName, createMcpToolDefinition, createMcpToolRenderers, isMcpAppResource, createMcpResourceToolDefinitions };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
clampThinkingLevel,
|
|
3
3
|
getSystemMessageText
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-g7k7zbcz.js";
|
|
5
5
|
|
|
6
6
|
// node_modules/@earendil-works/pi-ai/dist/api/constrained-sampling.js
|
|
7
7
|
class UnsupportedStrictJsonSchemaError extends Error {
|
|
@@ -227,7 +227,7 @@ function createGrammarToolInputProperties(tools, supportsOpenAIGrammarTools) {
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
// node_modules/@earendil-works/pi-ai/dist/utils/estimate.js
|
|
230
|
-
var CHARS_PER_TOKEN =
|
|
230
|
+
var CHARS_PER_TOKEN = 3.5;
|
|
231
231
|
var ESTIMATED_IMAGE_CHARS = 4800;
|
|
232
232
|
function calculateContextTokens(usage) {
|
|
233
233
|
return usage.totalTokens || usage.input + usage.output + usage.cacheRead + usage.cacheWrite;
|
|
@@ -2243,7 +2243,7 @@ var init_types = __esm(() => {
|
|
|
2243
2243
|
})
|
|
2244
2244
|
]);
|
|
2245
2245
|
AgentAcpStatusSchema = exports_zod.object({
|
|
2246
|
-
target: exports_zod.enum(["opencode", "custom"]),
|
|
2246
|
+
target: exports_zod.enum(["opencode", "gemini", "copilot", "custom"]),
|
|
2247
2247
|
configOptions: exports_zod.array(AcpSessionConfigOptionSchema),
|
|
2248
2248
|
reportedAt: exports_zod.number()
|
|
2249
2249
|
}).openapi("AgentAcpStatus");
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
linkIdentity,
|
|
5
5
|
recordUnmappedIdentity,
|
|
6
6
|
resolveIdentity
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-wydz3feg.js";
|
|
8
8
|
import {
|
|
9
9
|
getKv,
|
|
10
|
-
init_db,
|
|
10
|
+
init_db1 as init_db,
|
|
11
11
|
upsertKv
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-mkdsy1nq.js";
|
|
13
13
|
|
|
14
14
|
// src/slack/enrich.ts
|
|
15
15
|
init_db();
|
|
@@ -2,25 +2,28 @@ import {
|
|
|
2
2
|
ACPAdapter,
|
|
3
3
|
grokTargetProfile,
|
|
4
4
|
isGrokOpenRouterModel
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-cexctgn5.js";
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
getOpenRouterAttributionHeaders,
|
|
8
|
+
getOpenRouterBaseUrl,
|
|
9
|
+
init_openrouter_base_url
|
|
10
|
+
} from "./cli-a35hzdve.js";
|
|
9
11
|
import {
|
|
10
12
|
init_src,
|
|
11
13
|
normalizeGrokModel
|
|
12
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-014vns2y.js";
|
|
13
15
|
import {
|
|
14
16
|
init_secret_scrubber,
|
|
15
17
|
registerVolatileSecret
|
|
16
|
-
} from "./cli-
|
|
18
|
+
} from "./cli-wt7ccy4r.js";
|
|
17
19
|
|
|
18
20
|
// src/providers/grok-adapter.ts
|
|
19
21
|
init_src();
|
|
22
|
+
init_openrouter_base_url();
|
|
23
|
+
init_secret_scrubber();
|
|
20
24
|
import { mkdtemp, rm } from "node:fs/promises";
|
|
21
25
|
import { tmpdir } from "node:os";
|
|
22
26
|
import { join } from "node:path";
|
|
23
|
-
init_secret_scrubber();
|
|
24
27
|
function checkGrokCredentials(env) {
|
|
25
28
|
return env.XAI_API_KEY?.trim() || env.OPENROUTER_API_KEY?.trim() ? { ready: true, missing: [], satisfiedBy: "env" } : {
|
|
26
29
|
ready: false,
|
|
@@ -43,13 +46,22 @@ function grokOpenRouterModel(model, env) {
|
|
|
43
46
|
const id = model.trim();
|
|
44
47
|
if (!isGrokOpenRouterModel(id))
|
|
45
48
|
return null;
|
|
49
|
+
const baseUrl = getOpenRouterBaseUrl(env);
|
|
46
50
|
return {
|
|
47
51
|
id,
|
|
48
52
|
model: id.slice("openrouter/".length),
|
|
49
|
-
baseUrl
|
|
50
|
-
envKey: "OPENROUTER_API_KEY"
|
|
53
|
+
baseUrl,
|
|
54
|
+
envKey: "OPENROUTER_API_KEY",
|
|
55
|
+
headers: getOpenRouterAttributionHeaders(baseUrl, env)
|
|
51
56
|
};
|
|
52
57
|
}
|
|
58
|
+
function tomlInlineTable(key, entries) {
|
|
59
|
+
const pairs = Object.entries(entries ?? {});
|
|
60
|
+
if (pairs.length === 0)
|
|
61
|
+
return [];
|
|
62
|
+
const body = pairs.map(([k, v]) => `${JSON.stringify(k)} = ${JSON.stringify(v)}`).join(", ");
|
|
63
|
+
return [`${key} = { ${body} }`];
|
|
64
|
+
}
|
|
53
65
|
function buildGrokConfigToml(disabledPlugins, customModel = null) {
|
|
54
66
|
const list = disabledPlugins.map((name) => JSON.stringify(name)).join(", ");
|
|
55
67
|
const modelBlock = customModel ? [
|
|
@@ -58,7 +70,8 @@ function buildGrokConfigToml(disabledPlugins, customModel = null) {
|
|
|
58
70
|
`model = ${JSON.stringify(customModel.model)}`,
|
|
59
71
|
`base_url = ${JSON.stringify(customModel.baseUrl)}`,
|
|
60
72
|
`env_key = ${JSON.stringify(customModel.envKey)}`,
|
|
61
|
-
`api_backend = "chat_completions"
|
|
73
|
+
`api_backend = "chat_completions"`,
|
|
74
|
+
...tomlInlineTable("extra_headers", customModel.headers)
|
|
62
75
|
] : [];
|
|
63
76
|
return [
|
|
64
77
|
"[cli]",
|
|
@@ -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: "1.
|
|
10
|
+
version: "1.167.0",
|
|
11
11
|
description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
|
|
12
12
|
keywords: [
|
|
13
13
|
"agent-swarm.dev",
|
|
@@ -102,6 +102,8 @@ var init_package = __esm(() => {
|
|
|
102
102
|
"check:extension-schema": "bun scripts/build-extension-manifest-schema.ts --check",
|
|
103
103
|
"build:extension-catalog": "bun scripts/build-extension-catalog.ts",
|
|
104
104
|
"check:extension-catalog": "bun scripts/build-extension-catalog.ts --check",
|
|
105
|
+
"build:secret-rules": "bun scripts/gen-secret-rules.ts",
|
|
106
|
+
"check:secret-rules": "bun scripts/gen-secret-rules.ts --check",
|
|
105
107
|
"build:cli": "bun run scripts/build-cli.ts",
|
|
106
108
|
"mono:build": "turbo run build",
|
|
107
109
|
"mono:test": "turbo run test",
|
|
@@ -152,8 +154,8 @@ var init_package = __esm(() => {
|
|
|
152
154
|
"start:portless": "portless api.swarm bun --expose-gc src/http.ts",
|
|
153
155
|
inspector: "bunx @modelcontextprotocol/inspector --transport stdio bun src/stdio.ts",
|
|
154
156
|
"inspector:http": "bunx @modelcontextprotocol/inspector --transport http https://api.swarm.localhost:1355/mcp",
|
|
155
|
-
lint: "biome check src apps/evals packages/ui-e2e packages/model-routing",
|
|
156
|
-
"lint:fix": "biome check --write src apps/evals packages/ui-e2e packages/model-routing",
|
|
157
|
+
lint: "biome check src apps/evals packages/ui-e2e packages/model-routing packages/model-catalog",
|
|
158
|
+
"lint:fix": "biome check --write src apps/evals packages/ui-e2e packages/model-routing packages/model-catalog",
|
|
157
159
|
format: "biome format --write src",
|
|
158
160
|
"build:binary": "bun build ./src/cli.tsx ./src/providers/pi-binary-root/src/extensions/codemode/worker.ts --root ./src/providers/pi-binary-root --compile --bytecode --format=esm --compile-exec-argv='--expose-gc' --target=bun-linux-x64 --outfile ./dist/agent-swarm",
|
|
159
161
|
"build:binary:arm64": "bun build ./src/cli.tsx ./src/providers/pi-binary-root/src/extensions/codemode/worker.ts --root ./src/providers/pi-binary-root --compile --bytecode --format=esm --compile-exec-argv='--expose-gc' --target=bun-linux-arm64 --outfile ./dist/agent-swarm",
|
|
@@ -207,20 +209,21 @@ var init_package = __esm(() => {
|
|
|
207
209
|
dependencies: {
|
|
208
210
|
"@agentclientprotocol/sdk": "1.7.0",
|
|
209
211
|
"@ai-sdk/openai": "^3.0.41",
|
|
210
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
211
|
-
"@anthropic-ai/sdk": "^0.
|
|
212
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.293",
|
|
213
|
+
"@anthropic-ai/sdk": "^0.132.1",
|
|
212
214
|
"@asteasolutions/zod-to-openapi": "^8.0.0",
|
|
213
215
|
"@aws-sdk/client-bedrock": "3.1048.0",
|
|
214
|
-
"@cursor/sdk": "1.0.
|
|
216
|
+
"@cursor/sdk": "1.0.37",
|
|
215
217
|
"@desplega.ai/business-use": "^0.4.2",
|
|
216
218
|
"@desplega.ai/localtunnel": "^2.2.0",
|
|
217
|
-
"@earendil-works/pi-agent-core": "^1.0
|
|
218
|
-
"@earendil-works/pi-ai": "^1.0
|
|
219
|
-
"@earendil-works/pi-coding-agent": "^1.0
|
|
219
|
+
"@earendil-works/pi-agent-core": "^1.1.0",
|
|
220
|
+
"@earendil-works/pi-ai": "^1.1.0",
|
|
221
|
+
"@earendil-works/pi-coding-agent": "^1.1.0",
|
|
220
222
|
"@inkjs/ui": "^2.0.0",
|
|
223
|
+
"@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
|
|
221
224
|
"@linear/sdk": "^77.0.0",
|
|
222
|
-
"@modelcontextprotocol/sdk": "1.
|
|
223
|
-
"@openai/codex": "0.
|
|
225
|
+
"@modelcontextprotocol/sdk": "1.31.0",
|
|
226
|
+
"@openai/codex": "0.161.0",
|
|
224
227
|
"@opencode-ai/sdk": "^1.18.35",
|
|
225
228
|
"@openfort/openfort-node": "^0.9.1",
|
|
226
229
|
"@opentelemetry/api": "^1.9.1",
|
|
@@ -244,6 +247,7 @@ var init_package = __esm(() => {
|
|
|
244
247
|
ink: "^6.5.1",
|
|
245
248
|
oauth4webapi: "^3.8.5",
|
|
246
249
|
openai: "^6.22.0",
|
|
250
|
+
"quickjs-emscripten-core": "0.32.0",
|
|
247
251
|
react: "19.2.3",
|
|
248
252
|
"react-devtools-core": "^7.0.1",
|
|
249
253
|
"sqlite-vec": "^0.1.9",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
materializeClaudeMd,
|
|
3
3
|
stopClaudeMd
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-69egj654.js";
|
|
5
5
|
import {
|
|
6
6
|
guardGhPrBody
|
|
7
7
|
} from "./cli-v6vv7dy8.js";
|
|
8
8
|
import {
|
|
9
9
|
summarizeSession
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-r7eeddkq.js";
|
|
11
11
|
import {
|
|
12
12
|
checkToolLoop,
|
|
13
13
|
clearToolHistory
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
init_profile_sync,
|
|
30
30
|
readIdentityBaselines,
|
|
31
31
|
warnProfileFileTooLarge
|
|
32
|
-
} from "./cli-
|
|
32
|
+
} from "./cli-mxvnnv5q.js";
|
|
33
33
|
import {
|
|
34
34
|
MAX_PROFILE_FILE_LENGTH,
|
|
35
35
|
getMcpBaseUrl,
|
|
@@ -38,11 +38,11 @@ import {
|
|
|
38
38
|
import {
|
|
39
39
|
init_package,
|
|
40
40
|
package_default
|
|
41
|
-
} from "./cli-
|
|
41
|
+
} from "./cli-ymmc1zxg.js";
|
|
42
42
|
import {
|
|
43
43
|
init_secret_scrubber,
|
|
44
44
|
scrubSecrets
|
|
45
|
-
} from "./cli-
|
|
45
|
+
} from "./cli-wt7ccy4r.js";
|
|
46
46
|
|
|
47
47
|
// src/hooks/hook.ts
|
|
48
48
|
init_package();
|
|
@@ -511,9 +511,18 @@ async function handleHook() {
|
|
|
511
511
|
}
|
|
512
512
|
};
|
|
513
513
|
const outputBlockResponse = (reason) => {
|
|
514
|
+
const response = msg.hook_event_name === "PreToolUse" ? {
|
|
515
|
+
hookSpecificOutput: {
|
|
516
|
+
hookEventName: "PreToolUse",
|
|
517
|
+
permissionDecision: "deny",
|
|
518
|
+
permissionDecisionReason: reason
|
|
519
|
+
}
|
|
520
|
+
} : { decision: "block", reason };
|
|
521
|
+
console.log(JSON.stringify(response));
|
|
522
|
+
};
|
|
523
|
+
const outputToolContext = (hookEventName, additionalContext) => {
|
|
514
524
|
const response = {
|
|
515
|
-
|
|
516
|
-
reason
|
|
525
|
+
hookSpecificOutput: { hookEventName, additionalContext }
|
|
517
526
|
};
|
|
518
527
|
console.log(JSON.stringify(response));
|
|
519
528
|
};
|
|
@@ -597,7 +606,13 @@ async function handleHook() {
|
|
|
597
606
|
};
|
|
598
607
|
await ping();
|
|
599
608
|
const agentInfo = await getAgentInfo();
|
|
600
|
-
if (agentInfo) {
|
|
609
|
+
if (msg.hook_event_name === "UserPromptSubmit" && agentInfo && !agentInfo.isLead && agentInfo.status === "busy") {
|
|
610
|
+
if (await checkAndBlockIfCancelled(true)) {
|
|
611
|
+
return;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
const isToolEvent = msg.hook_event_name === "PreToolUse" || msg.hook_event_name === "PostToolUse";
|
|
615
|
+
if (agentInfo && !isToolEvent) {
|
|
601
616
|
console.log(`You are registered as ${agentInfo.isLead ? "lead" : "worker"} agent "${agentInfo.name}" (ID: ${agentInfo.id}, status: ${agentInfo.status}).`);
|
|
602
617
|
if (agentInfo.inbox) {
|
|
603
618
|
const tray = formatSystemTray(agentInfo.inbox);
|
|
@@ -606,7 +621,7 @@ async function handleHook() {
|
|
|
606
621
|
}
|
|
607
622
|
}
|
|
608
623
|
} else if (shouldShowRegistrationNudge({
|
|
609
|
-
agentInfoPresent:
|
|
624
|
+
agentInfoPresent: Boolean(agentInfo),
|
|
610
625
|
eventType: msg.hook_event_name,
|
|
611
626
|
hasAgentIdHeader: hasAgentIdHeader()
|
|
612
627
|
})) {
|
|
@@ -715,6 +730,7 @@ You do not have a pre-defined agent ID, you will receive one when you join the s
|
|
|
715
730
|
return;
|
|
716
731
|
}
|
|
717
732
|
}
|
|
733
|
+
let loopWarning;
|
|
718
734
|
if (agentInfo && !agentInfo.isLead && agentInfo.status === "busy") {
|
|
719
735
|
const loopTaskFile = await readTaskFile();
|
|
720
736
|
if (loopTaskFile?.taskId && msg.tool_name && msg.tool_input) {
|
|
@@ -724,7 +740,7 @@ You do not have a pre-defined agent ID, you will receive one when you join the s
|
|
|
724
740
|
return;
|
|
725
741
|
}
|
|
726
742
|
if (loopResult.severity === "warning" && loopResult.reason) {
|
|
727
|
-
|
|
743
|
+
loopWarning = `Warning: ${loopResult.reason}`;
|
|
728
744
|
}
|
|
729
745
|
}
|
|
730
746
|
}
|
|
@@ -735,6 +751,9 @@ You do not have a pre-defined agent ID, you will receive one when you join the s
|
|
|
735
751
|
return;
|
|
736
752
|
}
|
|
737
753
|
}
|
|
754
|
+
if (loopWarning) {
|
|
755
|
+
outputToolContext("PreToolUse", loopWarning);
|
|
756
|
+
}
|
|
738
757
|
break;
|
|
739
758
|
}
|
|
740
759
|
case "PostToolUse":
|
|
@@ -752,7 +771,7 @@ You do not have a pre-defined agent ID, you will receive one when you join the s
|
|
|
752
771
|
method: "PUT",
|
|
753
772
|
headers: mcpConfig.headers
|
|
754
773
|
}).catch((e) => {
|
|
755
|
-
console.
|
|
774
|
+
console.error("Failed to update agent activity timestamp:", e);
|
|
756
775
|
});
|
|
757
776
|
}
|
|
758
777
|
if (agentInfo) {
|
|
@@ -797,19 +816,11 @@ You do not have a pre-defined agent ID, you will receive one when you join the s
|
|
|
797
816
|
if (agentInfo.isLead) {
|
|
798
817
|
if (msg.tool_name?.endsWith("send-task")) {
|
|
799
818
|
const maybeTaskId = msg.tool_response?.task?.id;
|
|
800
|
-
|
|
819
|
+
outputToolContext("PostToolUse", `Task sent successfully.${maybeTaskId ? ` Task ID: ${maybeTaskId}.` : ""} Monitor progress using the get-task-details tool periodically.`);
|
|
801
820
|
}
|
|
802
821
|
}
|
|
803
822
|
}
|
|
804
823
|
break;
|
|
805
|
-
case "UserPromptSubmit": {
|
|
806
|
-
if (agentInfo && !agentInfo.isLead && agentInfo.status === "busy") {
|
|
807
|
-
if (await checkAndBlockIfCancelled(true)) {
|
|
808
|
-
return;
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
break;
|
|
812
|
-
}
|
|
813
824
|
case "Stop":
|
|
814
825
|
try {
|
|
815
826
|
const pm2ListOutput = await Bun.$`pm2 jlist 2>/dev/null || echo "[]"`.text();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/providers/acp-target-catalog.ts
|
|
2
|
-
var ACP_TARGET_IDS = ["opencode", "gemini", "custom"];
|
|
2
|
+
var ACP_TARGET_IDS = ["opencode", "gemini", "copilot", "custom"];
|
|
3
3
|
var ACP_TARGET_CATALOG = [
|
|
4
4
|
{
|
|
5
5
|
id: "opencode",
|
|
@@ -41,6 +41,39 @@ var ACP_TARGET_CATALOG = [
|
|
|
41
41
|
],
|
|
42
42
|
knobs: [{ id: "model", label: "Model", category: "model" }]
|
|
43
43
|
},
|
|
44
|
+
{
|
|
45
|
+
id: "copilot",
|
|
46
|
+
label: "GitHub Copilot CLI",
|
|
47
|
+
description: "GitHub Copilot CLI's ACP server, launched with `copilot --acp`. Uses a Copilot-entitled COPILOT_GITHUB_TOKEN, or a BYOK provider via COPILOT_PROVIDER_*.",
|
|
48
|
+
command: "copilot",
|
|
49
|
+
args: ["--acp"],
|
|
50
|
+
envKeys: [
|
|
51
|
+
"COPILOT_GITHUB_TOKEN",
|
|
52
|
+
"COPILOT_GH_HOST",
|
|
53
|
+
"GH_HOST",
|
|
54
|
+
"COPILOT_HOME",
|
|
55
|
+
"COPILOT_MODEL",
|
|
56
|
+
"COPILOT_AUTO_TIER",
|
|
57
|
+
"COPILOT_OFFLINE",
|
|
58
|
+
"COPILOT_PROVIDER_BASE_URL",
|
|
59
|
+
"COPILOT_PROVIDER_TYPE",
|
|
60
|
+
"COPILOT_PROVIDER_API_KEY",
|
|
61
|
+
"COPILOT_PROVIDER_API_KEY_COMMAND",
|
|
62
|
+
"COPILOT_PROVIDER_BEARER_TOKEN",
|
|
63
|
+
"COPILOT_PROVIDER_WIRE_API",
|
|
64
|
+
"COPILOT_PROVIDER_TRANSPORT",
|
|
65
|
+
"COPILOT_PROVIDER_AZURE_API_VERSION",
|
|
66
|
+
"COPILOT_PROVIDER_MODEL_ID",
|
|
67
|
+
"COPILOT_PROVIDER_WIRE_MODEL",
|
|
68
|
+
"COPILOT_PROVIDER_MAX_PROMPT_TOKENS",
|
|
69
|
+
"COPILOT_PROVIDER_MAX_OUTPUT_TOKENS",
|
|
70
|
+
"COPILOT_PROVIDER_HEADERS",
|
|
71
|
+
"HTTP_PROXY",
|
|
72
|
+
"HTTPS_PROXY",
|
|
73
|
+
"NO_PROXY"
|
|
74
|
+
],
|
|
75
|
+
knobs: [{ id: "model", label: "Model", category: "model" }]
|
|
76
|
+
},
|
|
44
77
|
{
|
|
45
78
|
id: "custom",
|
|
46
79
|
label: "Custom",
|
|
@@ -72,6 +72,8 @@ async function retryProviderRequest(request, options = {}) {
|
|
|
72
72
|
throw createAbortError();
|
|
73
73
|
if (retriesRemaining <= 0 || !isProviderError(error) || !isRetryableProviderError(error))
|
|
74
74
|
throw error;
|
|
75
|
+
if (error.status !== undefined && options.noRetryStatuses?.includes(error.status))
|
|
76
|
+
throw error;
|
|
75
77
|
const retryIndex = maxRetries - retriesRemaining;
|
|
76
78
|
retriesRemaining--;
|
|
77
79
|
await abortableSleep(getRetryDelayMs(error, retryIndex, options.maxRetryDelayMs), options.signal);
|