@desplega.ai/agent-swarm 1.173.0 → 2.0.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 +1 -1
- package/dist/{acp-adapter-ccm9xrep.js → acp-adapter-sj2g0m84.js} +17 -16
- package/dist/{actions-sgeyv08k.js → actions-fegk44gr.js} +39 -34
- package/dist/{amp-adapter-gpxp3kc9.js → amp-adapter-ad8ft89x.js} +8 -7
- package/dist/{app-km9qnv2f.js → app-kfvgbvzy.js} +18 -14
- package/dist/{assistant-5r8tcvvd.js → assistant-z7zdy9ja.js} +40 -35
- package/dist/{boot-reembed-swwzdgd7.js → boot-reembed-5c2z0mbe.js} +10 -9
- package/dist/{boot-reembed-16rv9843.js → boot-reembed-j8xa181e.js} +10 -9
- package/dist/{boot-scrub-sweep-zkr6vkqb.js → boot-scrub-sweep-hnkn3rgt.js} +11 -10
- package/dist/{boot-seeds-d8sp49t2.js → boot-seeds-kwjq4d2z.js} +14 -13
- package/dist/{claude-adapter-yzzzh8jp.js → claude-adapter-9vmvpvgd.js} +19 -18
- package/dist/{claude-managed-adapter-xgxhqrt2.js → claude-managed-adapter-k9qae05j.js} +7 -5
- package/dist/{claude-managed-setup-bnmjarjc.js → claude-managed-setup-q54zx5q2.js} +6 -4
- package/dist/{claude-sdk-session-4whxere4.js → claude-sdk-session-9jye6cxr.js} +11881 -11472
- package/dist/{cli-94b48jhk.js → cli-03gedhng.js} +16 -14
- package/dist/{cli-1w0vj3gw.js → cli-1e4b6bzh.js} +7 -7
- package/dist/{cli-d603qf86.js → cli-29jc5q7w.js} +10 -8
- package/dist/cli-2m1ktfzz.js +17795 -0
- package/dist/{cli-x119kdba.js → cli-3dj8k4vy.js} +1 -1
- package/dist/{cli-srqq3gc5.js → cli-3fbmmawm.js} +5 -5
- package/dist/{cli-gmdajfw5.js → cli-4jxm2qtz.js} +4987 -1708
- package/dist/{cli-tadfgd0t.js → cli-5hkm7whv.js} +33 -4
- package/dist/{cli-42qhyvwx.js → cli-5t4f29ez.js} +3 -3
- package/dist/{cli-7a0sde2x.js → cli-6cagzc96.js} +9 -0
- package/dist/cli-6cvfxs8r.js +47 -0
- package/dist/{cli-0kxf81jj.js → cli-6jyj59nb.js} +2 -2
- package/dist/{cli-w1apjecb.js → cli-6razj6t4.js} +2 -2
- package/dist/{cli-anzdk0z4.js → cli-74ahz61x.js} +2 -2
- package/dist/{cli-m89t9jdf.js → cli-7x0g4sn1.js} +15416 -16024
- package/dist/{cli-yatxqynm.js → cli-9ha6hs2d.js} +1 -290
- package/dist/{cli-81r1wjyv.js → cli-9nfx44eh.js} +1 -1
- package/dist/cli-9traj3dn.js +638 -0
- package/dist/{cli-smcrrmhy.js → cli-agzebbd5.js} +9 -9
- package/dist/{cli-na2pxe4f.js → cli-apx87jne.js} +2 -2
- package/dist/{cli-rfz2ve55.js → cli-bzszjf2p.js} +2855 -862
- package/dist/{cli-c5km5znr.js → cli-c8r3kzzb.js} +1 -1
- package/dist/{cli-hsem16hb.js → cli-cgtksawx.js} +7 -4
- package/dist/{cli-db3m6zdt.js → cli-d2qr7aj4.js} +1 -1
- package/dist/{cli-rfs4vddv.js → cli-d5f9ed5c.js} +5 -5
- package/dist/cli-e3g5mbkz.js +776 -0
- package/dist/{cli-7jykv7ef.js → cli-e6mpjhed.js} +1 -1
- package/dist/{cli-7a93cv8c.js → cli-ee9gtz70.js} +98 -23
- package/dist/{cli-3nxdmjrc.js → cli-eejsgvm4.js} +4 -4
- package/dist/{cli-fmhj1ehj.js → cli-ef1hg1wv.js} +470 -51
- package/dist/cli-f527ce74.js +781 -0
- package/dist/{cli-ppy4nnnh.js → cli-f7kr7svz.js} +2 -2
- package/dist/cli-hjwmhcg1.js +10622 -0
- package/dist/{cli-2bw3w47j.js → cli-hnhtk6cj.js} +1 -1
- package/dist/{cli-ywm1azg9.js → cli-hnmhtzvh.js} +6 -4
- package/dist/{cli-h7k0xtry.js → cli-hvqbtna4.js} +4 -1256
- package/dist/{cli-s8z6x4b4.js → cli-j0pfptdp.js} +218 -102
- package/dist/cli-jta2eyzc.js +619 -0
- package/dist/{cli-5er5gjbm.js → cli-k382tshb.js} +10 -11
- package/dist/{cli-v3zhnxsb.js → cli-k3dp5tpf.js} +2 -2
- package/dist/{cli-wd0hz6ah.js → cli-kbrt8gqa.js} +9 -91
- package/dist/cli-kceah1eh.js +92 -0
- package/dist/{cli-ne7smj1b.js → cli-ke896fcf.js} +10 -10
- package/dist/{cli-xc7p7s3g.js → cli-kt6zqg0e.js} +6 -6
- package/dist/{cli-wrh08zjd.js → cli-m50t4309.js} +5 -18
- package/dist/cli-n2wq4j7m.js +6985 -0
- package/dist/{cli-bv2etw2y.js → cli-n3hzg89b.js} +46 -15
- package/dist/{cli-tmhsxhb8.js → cli-n5vwg842.js} +23 -6
- package/dist/{cli-qm1448f9.js → cli-ne236afy.js} +8 -8
- package/dist/{cli-d161g69q.js → cli-p1x85d2t.js} +50 -2
- package/dist/{cli-7pz3b7x5.js → cli-przpmdgr.js} +25 -0
- package/dist/{cli-0a7mm3zp.js → cli-q0ke1yww.js} +25 -21
- package/dist/{cli-e3pmyt39.js → cli-q50942rs.js} +1 -1
- package/dist/{cli-r44t9wqc.js → cli-r106725k.js} +2 -2
- package/dist/{cli-phcqp1b9.js → cli-r2pnvj8g.js} +2 -2
- package/dist/{cli-jpc4r224.js → cli-r62a35ea.js} +19 -3
- package/dist/{cli-cd0hv9nh.js → cli-ra0xzggj.js} +2 -2
- package/dist/cli-rhs9pz33.js +294 -0
- package/dist/{cli-r4fqfpwf.js → cli-s2sp957d.js} +50 -27
- package/dist/{cli-1x7da0de.js → cli-s4setq91.js} +8 -8
- package/dist/{cli-6thk4jz3.js → cli-se8w6wny.js} +6 -6
- package/dist/cli-skxvvpap.js +10140 -0
- package/dist/{cli-014vns2y.js → cli-stfs0k5s.js} +208 -525
- package/dist/{cli-0p3enk35.js → cli-tqaazemc.js} +9 -1
- package/dist/{cli-nwrdx840.js → cli-tr4sxp68.js} +3 -3
- package/dist/{cli-r0byd61h.js → cli-tsde1hdr.js} +15 -15
- package/dist/{cli-b07hr3bt.js → cli-txqb9s38.js} +2 -2
- package/dist/{cli-6r2f7edk.js → cli-v1yb0rqb.js} +6 -6
- package/dist/{cli-saqyage0.js → cli-vatyhshy.js} +179 -27
- package/dist/{cli-5wpw4rab.js → cli-vdach5a9.js} +5 -5
- package/dist/{cli-7avy4v8w.js → cli-w1q7h2r2.js} +5 -3
- package/dist/{cli-rcp5aqdw.js → cli-w7m81tb7.js} +1 -1
- package/dist/{cli-c3rk1v0x.js → cli-wayw93nt.js} +3 -3
- package/dist/cli-wmgrkscj.js +23254 -0
- package/dist/{cli-9xf7fdtp.js → cli-z5jjpaxw.js} +29 -6
- package/dist/{cli-451ks6aw.js → cli-zkpks3r3.js} +1 -1
- package/dist/cli.js +29 -45
- package/dist/{codex-adapter-r3dn4fp5.js → codex-adapter-y81sssk0.js} +15 -14
- package/dist/{codex-login-841kv5fk.js → codex-login-f2rcfpp9.js} +3 -2
- package/dist/{codex-session-runner-fwt793h4.js → codex-session-runner-8vx4j6a9.js} +15 -14
- package/dist/{commands-z8fq9qna.js → commands-kcpvpcrr.js} +11 -10
- package/dist/{controller-hq5ggpcp.js → controller-ywrmt6yd.js} +5 -4
- package/dist/{controllers-connect-3mf2btyj.js → controllers-connect-kwpvj3rf.js} +42 -37
- package/dist/{cursor-adapter-q8pgv5qa.js → cursor-adapter-cehv1qns.js} +7 -6
- package/dist/{db-yyhqqrbf.js → db-k8ankj20.js} +12 -11
- package/dist/{db-qfpq4bt7.js → db-ww5d7jq3.js} +28 -9
- package/dist/{devin-adapter-xgtj680j.js → devin-adapter-x1022qb1.js} +3 -2
- package/dist/{dispatcher-x0x7qfcq.js → dispatcher-e8gq5m68.js} +38 -33
- package/dist/{docker-f503k9p0.js → docker-ff6y1190.js} +3 -2
- package/dist/{dsh-adapter-34etvb5m.js → dsh-adapter-3epjm3af.js} +7 -6
- package/dist/{e2b-66xra4az.js → e2b-8ygwhg0f.js} +4 -3
- package/dist/{e2b-xwhyj8cw.js → e2b-swhnpw3n.js} +4 -3
- package/dist/{event-bus-vjtv82gm.js → event-bus-6axnngdj.js} +3 -2
- package/dist/{external-channel-h1fjecwe.js → external-channel-h3359cwn.js} +11 -10
- package/dist/{google-generative-ai-szdxbpqg.js → google-generative-ai-g8db7x0f.js} +4 -2
- package/dist/{google-vertex-qzw3p36d.js → google-vertex-r2692q0r.js} +4 -2
- package/dist/{grok-adapter-e7mr287e.js → grok-adapter-0d4x7gkx.js} +18 -17
- package/dist/{handlers-znb9n7d4.js → handlers-an1gzv21.js} +41 -36
- package/dist/{heartbeat-bm4qkn8d.js → heartbeat-6dakeb61.js} +43 -38
- package/dist/{hook-254r4mza.js → hook-6v6cv6d5.js} +11 -23
- package/dist/{hook-xaa3q80s.js → hook-sa5xye4y.js} +12 -11
- package/dist/{http-3dgrgp8y.js → http-r7f3eky0.js} +1499 -251
- package/dist/index-52j1aja4.js +3465 -0
- package/dist/{index-fx3jqq1e.js → index-7ep4gzdk.js} +38 -33
- package/dist/index-9gw58n4k.js +193 -0
- package/dist/index-9j87mcm8.js +56305 -0
- package/dist/index-bsmcresk.js +79424 -0
- package/dist/index-mh85qhec.js +475 -0
- package/dist/{index-g2byveez.js → index-rmpw9a8q.js} +38 -33
- package/dist/{index-2ybk7khy.js → index-s2wxgzr0.js} +468 -683
- package/dist/{index-bdsqa799.js → index-v1v6n7hg.js} +43 -38
- package/dist/index-we27kd31.js +12810 -0
- package/dist/{index-jd7sejm2.js → index-zk96aq1k.js} +10 -9
- package/dist/{keepalive-6ywhpja1.js → keepalive-be9vwy5h.js} +12 -11
- package/dist/{lead-cw45n21s.js → lead-0861cwrf.js} +61 -56
- package/dist/{maintenance-ss1a1ge9.js → maintenance-mzzgc8bn.js} +10 -9
- package/dist/{node-fkajaq96.js → node-mn1zs7an.js} +2 -1
- package/dist/{oauth-refresh-sweep-3c6f8vyy.js → oauth-refresh-sweep-cpdnfwdj.js} +11 -10
- package/dist/{onboard-8hzdhc1k.js → onboard-fh8qs4r3.js} +11 -3
- package/dist/{opencode-adapter-qbchbcfz.js → opencode-adapter-nm42wwj8.js} +18 -13
- package/dist/{otel-impl-e6mnvc4v.js → otel-impl-x6c1c9g4.js} +242 -868
- package/dist/{pi-mono-adapter-3c9g9snh.js → pi-mono-adapter-9n2ya240.js} +244 -106
- package/dist/{pricing-refresh-gedkjdw0.js → pricing-refresh-qb0rv0ap.js} +12 -11
- package/dist/{rbac-roles-dt4vh1yy.js → rbac-roles-1gzdwbh1.js} +11 -10
- package/dist/{rbac-roles-eszdg6pm.js → rbac-roles-3mraey52.js} +12 -11
- package/dist/{render-v2-907cy6sa.js → render-v2-agpa45zz.js} +18 -14
- package/dist/{resume-42stcaz0.js → resume-x0ydy9s9.js} +25 -21
- package/dist/{runtime-qfry88v2.js → runtime-sa2vr16g.js} +2 -2
- package/dist/{setup-adbc1c10.js → setup-as9ga0d6.js} +2 -2
- package/dist/{virtual-modules-rtmt494q.js → virtual-modules-9gkxqrap.js} +6 -5
- package/dist/{work-objects-wpj8ck95.js → work-objects-y5g1y7ev.js} +41 -36
- package/dist/{worker-bzdra9rf.js → worker-860c3e38.js} +61 -56
- package/dist/{x-qfmygqqv.js → x-m477fr0h.js} +3 -2
- package/openapi.json +523 -344
- package/package.json +10 -11
- package/src/be/config-refs.ts +60 -0
- package/src/be/db/page-versions.ts +15 -0
- package/src/be/db/runtime.ts +35 -8
- package/src/be/db/skill-name-resolution.ts +36 -0
- package/src/be/db/tasks/read.ts +230 -0
- package/src/be/db/tasks/write.ts +7 -0
- package/src/be/db.ts +52 -7
- package/src/be/migrations/215_swarm_config_export_to_env.sql +34 -0
- package/src/be/migrations/216_task_resolved_effort.sql +5 -0
- package/src/be/migrations/217_chat_sdk_state.sql +104 -0
- package/src/be/model-catalog-store.ts +5 -1
- package/src/be/model-tier-resolution.ts +12 -1
- package/src/be/model-validation.ts +5 -2
- package/src/be/models-catalog.ts +26 -1
- package/src/be/modelsdev-cache.json +198 -63
- package/src/be/modelsdev-cache.ts +9 -1
- package/src/be/script-credential-broker.ts +39 -2
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +10 -8
- package/src/be/seed/runner.ts +13 -1
- package/src/be/seed/state-db.ts +5 -0
- package/src/be/seed/types.ts +6 -0
- package/src/be/seed-pricing.ts +19 -2
- package/src/be/seed-scripts/catalog/ops-catalog-audit.inline.ts +1 -1
- package/src/be/seed-scripts/catalog/ops-catalog-audit.ts +1 -1
- package/src/be/seed-skills/bundled-files.generated.json +0 -18
- package/src/be/seed-skills/index.ts +104 -3
- package/src/be/swarm-config-guard.ts +52 -0
- package/src/cli.tsx +0 -16
- package/src/commands/onboard/non-interactive.ts +4 -2
- package/src/commands/provider-credentials.ts +52 -6
- package/src/commands/runner.ts +190 -54
- package/src/e2b/env.ts +5 -0
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +45 -0
- package/src/extensions/dispatcher.ts +7 -0
- package/src/extensions/post-bridge.ts +40 -0
- package/src/github/handlers.ts +11 -4
- package/src/heartbeat/templates.ts +8 -5
- package/src/hooks/hook.ts +0 -26
- package/src/http/all-routes.ts +0 -1
- package/src/http/config.ts +36 -17
- package/src/http/core.ts +4 -0
- package/src/http/index.ts +14 -2
- package/src/http/integrations.ts +88 -1
- package/src/http/mcp.ts +15 -5
- package/src/http/page-proxy.ts +2 -4
- package/src/http/pages-public.ts +3 -3
- package/src/http/pages.ts +3 -13
- package/src/http/poll.ts +28 -68
- package/src/http/requested-by.ts +54 -0
- package/src/http/scripts.ts +1 -0
- package/src/http/stats.ts +1 -30
- package/src/http/tasks.ts +61 -5
- package/src/http/utils.ts +14 -0
- package/src/http/webhooks.ts +159 -1
- package/src/http/x.ts +1 -0
- package/src/integrations/chat-sdk/adapters.ts +129 -0
- package/src/integrations/chat-sdk/attachments.ts +232 -0
- package/src/integrations/chat-sdk/background.ts +36 -0
- package/src/integrations/chat-sdk/commands.ts +194 -0
- package/src/integrations/chat-sdk/config.ts +198 -0
- package/src/integrations/chat-sdk/discord-api.ts +63 -0
- package/src/integrations/chat-sdk/discord-gateway.ts +185 -0
- package/src/integrations/chat-sdk/handlers.ts +28 -0
- package/src/integrations/chat-sdk/inbound.ts +426 -0
- package/src/integrations/chat-sdk/limits.ts +48 -0
- package/src/integrations/chat-sdk/logger.ts +81 -0
- package/src/integrations/chat-sdk/outbound.ts +123 -0
- package/src/integrations/chat-sdk/relay.ts +172 -0
- package/src/integrations/chat-sdk/router.ts +169 -0
- package/src/integrations/chat-sdk/runtime.ts +351 -0
- package/src/integrations/chat-sdk/schema.ts +245 -0
- package/src/integrations/chat-sdk/state.ts +243 -0
- package/src/integrations/chat-sdk/status.ts +244 -0
- package/src/integrations/chat-sdk/steering.ts +58 -0
- package/src/integrations/chat-sdk/teams-origin.ts +77 -0
- package/src/integrations/chat-sdk/telegram-api.ts +56 -0
- package/src/integrations/chat-sdk/templates.ts +16 -0
- package/src/integrations/chat-sdk/test-hooks.ts +37 -0
- package/src/integrations/chat-sdk/thread-buffer.ts +100 -0
- package/src/integrations/chat-sdk/typing.ts +65 -0
- package/src/pages/version.ts +4 -5
- package/src/prompts/base-prompt.ts +111 -45
- package/src/providers/acp-target-catalog.ts +6 -0
- package/src/providers/acp-targets.ts +55 -2
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +1 -1
- package/src/providers/claude-flag-settings.ts +17 -5
- package/src/providers/claude-managed-adapter.ts +1 -1
- package/src/providers/claude-session-events.ts +6 -1
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/opencode-adapter.ts +243 -26
- package/src/providers/opencode-swarm-plugin.ts +31 -0
- package/src/providers/pi-mono-adapter.ts +398 -153
- package/src/providers/pricing-sources.md +33 -2
- package/src/providers/reasoning-effort.ts +27 -0
- package/src/providers/types.ts +6 -2
- package/src/rbac/legacy-policy.ts +8 -2
- package/src/rbac/permissions.ts +21 -0
- package/src/scheduler/scheduler.ts +4 -2
- package/src/scripts-runtime/loader.ts +19 -7
- package/src/scripts-runtime/sdk-allowlist.ts +8 -6
- package/src/scripts-runtime/swarm-sdk.ts +0 -11
- package/src/scripts-runtime/types/stdlib.d.ts +27 -15
- package/src/scripts-runtime/types/swarm-extension.d.ts +63 -1
- package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -15
- package/src/server.ts +52 -18
- package/src/slack/event-dedup.ts +1 -1
- package/src/tasks/additive-buffer.ts +4 -2
- package/src/tasks/context-key.ts +60 -1
- package/src/tasks/model-pin.ts +67 -0
- package/src/tasks/worker-follow-up.ts +4 -31
- package/src/tests/acp-adapter.test.ts +42 -0
- package/src/tests/api-drain-worker-e2e.test.ts +1 -6
- package/src/tests/base-prompt.test.ts +58 -54
- package/src/tests/chat-sdk-commands.test.ts +191 -0
- package/src/tests/chat-sdk-config.test.ts +334 -0
- package/src/tests/chat-sdk-discord-api.test.ts +68 -0
- package/src/tests/chat-sdk-discord-gateway.test.ts +252 -0
- package/src/tests/chat-sdk-discord-webhook.test.ts +126 -0
- package/src/tests/chat-sdk-fields-sync.test.ts +50 -0
- package/src/tests/chat-sdk-harness.ts +146 -0
- package/src/tests/chat-sdk-inbound.test.ts +363 -0
- package/src/tests/chat-sdk-relay.test.ts +470 -0
- package/src/tests/chat-sdk-reload.test.ts +128 -0
- package/src/tests/chat-sdk-shutdown.test.ts +220 -0
- package/src/tests/chat-sdk-slack.test.ts +268 -0
- package/src/tests/chat-sdk-state.test.ts +163 -0
- package/src/tests/chat-sdk-status-route.test.ts +382 -0
- package/src/tests/chat-sdk-teams.test.ts +277 -0
- package/src/tests/chat-sdk-tools.test.ts +520 -0
- package/src/tests/chat-sdk-typing.test.ts +120 -0
- package/src/tests/chat-sdk-webhook-telegram.test.ts +200 -0
- package/src/tests/claude-adapter-binary.test.ts +9 -4
- package/src/tests/claude-flag-settings.test.ts +11 -3
- package/src/tests/claude-managed-adapter.test.ts +1 -1
- package/src/tests/claude-sdk-lifecycle.test.ts +9 -3
- package/src/tests/claude-thinking-tokens.test.ts +57 -0
- package/src/tests/claude-worker-parity.test.ts +2 -7
- package/src/tests/config-env-export-chat-sdk.test.ts +11 -0
- package/src/tests/config-refs.test.ts +66 -0
- package/src/tests/context-key.test.ts +19 -0
- package/src/tests/cors-allowlist.test.ts +25 -0
- package/src/tests/create-page-tool.test.ts +18 -0
- package/src/tests/credential-check.test.ts +139 -0
- package/src/tests/credentials.test.ts +21 -0
- package/src/tests/db-runtime.test.ts +61 -0
- package/src/tests/db-task-read-contract.test.ts +20 -0
- package/src/tests/db-task-write-contract.test.ts +10 -0
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/enabled-capabilities.test.ts +20 -0
- package/src/tests/entrypoint-api-readiness.test.ts +14 -8
- package/src/tests/entrypoint-config-env-export.test.ts +5 -2
- package/src/tests/entrypoint-export-to-env.test.ts +78 -0
- package/src/tests/explicit-model-validation.test.ts +105 -1
- package/src/tests/extensions-example-route-chat-channel.test.ts +154 -0
- package/src/tests/extensions-post-bridge.test.ts +51 -0
- package/src/tests/fetch-resolved-env.test.ts +128 -0
- package/src/tests/fixtures/chat-sdk/telegram-private-text.json +10 -0
- package/src/tests/fixtures/extensions/route-chat-channel-to-agent/hooks.ts +27 -0
- package/src/tests/fixtures/extensions/route-chat-channel-to-agent/manifest.json +9 -0
- package/src/tests/fixtures/openai-compatible-registry-extension.child.ts +146 -0
- package/src/tests/fixtures/runner-legacy-resume-prompt.ts +122 -0
- package/src/tests/github-handlers.test.ts +35 -0
- package/src/tests/harness-provider-resolution.test.ts +12 -0
- package/src/tests/heartbeat-checklist.test.ts +3 -2
- package/src/tests/hook-runtime-close.test.ts +0 -2
- package/src/tests/http-api-integration.test.ts +0 -25
- package/src/tests/migration-046-budgets.test.ts +17 -16
- package/src/tests/migration-217-chat-sdk-state.test.ts +113 -0
- package/src/tests/model-tier-resolution.test.ts +93 -0
- package/src/tests/models-catalog.test.ts +42 -1
- package/src/tests/openai-compatible-providers.test.ts +134 -0
- package/src/tests/openai-compatible-registry-extension.test.ts +42 -0
- package/src/tests/opencode-adapter.test.ts +216 -2
- package/src/tests/opencode-helmcode-sdk.test.ts +201 -0
- package/src/tests/opencode-shell-env.test.ts +145 -0
- package/src/tests/openrouter-base-url.test.ts +101 -151
- package/src/tests/page-proxy.test.ts +1 -1
- package/src/tests/pages-browser-sdk.test.ts +76 -0
- package/src/tests/pages-feedback.test.ts +1 -1
- package/src/tests/paused-tasks-requested-by.test.ts +102 -0
- package/src/tests/pi-custom-provider-fake-server.test.ts +442 -0
- package/src/tests/pi-mono-adapter.test.ts +385 -5
- package/src/tests/pi-shell-env.test.ts +170 -0
- package/src/tests/prompt-template-remaining.test.ts +35 -0
- package/src/tests/rbac-engine.test.ts +11 -3
- package/src/tests/runner-exit-after-tasks.test.ts +0 -4
- package/src/tests/runner-legacy-resume-prompt.test.ts +64 -0
- package/src/tests/script-connections.test.ts +2 -0
- package/src/tests/scripts-http.test.ts +201 -1
- package/src/tests/scripts-only-gating.test.ts +2 -3
- package/src/tests/scripts-runtime.test.ts +58 -40
- package/src/tests/secret-scrubber.test.ts +86 -0
- package/src/tests/seed-skills-bundled-files.test.ts +45 -53
- package/src/tests/seed-skills-retire.test.ts +182 -0
- package/src/tests/send-task-requester-gate.test.ts +58 -0
- package/src/tests/session-cost-recompute-unit.test.ts +46 -0
- package/src/tests/skill-get-name-resolution.test.ts +137 -0
- package/src/tests/sonnet-5-5-registry.test.ts +9 -1
- package/src/tests/swarm-config-export-to-env.test.ts +267 -0
- package/src/tests/swarm-config-reserved-keys.test.ts +16 -0
- package/src/tests/swarm-diff.test.ts +1 -1
- package/src/tests/task-model-effort-rerun.test.ts +164 -0
- package/src/tests/task-session-prompts.test.ts +132 -0
- package/src/tests/task-tool-manifest.test.ts +14 -0
- package/src/tests/task-tools-ctx.test.ts +2 -0
- package/src/tests/tool-annotations.test.ts +6 -6
- package/src/tests/ui-logs-parser.test.ts +43 -0
- package/src/tests/used-by-route.test.ts +6 -0
- package/src/tests/vercel-ai-gateway.test.ts +149 -0
- package/src/tests/workflow-swarm-script.test.ts +38 -0
- package/src/tests/workflow-wait-filter.test.ts +5 -3
- package/src/tools/chat-access.ts +41 -0
- package/src/tools/chat-open-dm.ts +59 -0
- package/src/tools/chat-post.ts +74 -0
- package/src/tools/chat-read-thread.ts +100 -0
- package/src/tools/chat-reply.ts +75 -0
- package/src/tools/create-page.ts +3 -13
- package/src/tools/model-catalog/index.ts +2 -1
- package/src/tools/register-chat-channel.ts +139 -0
- package/src/tools/send-task.ts +24 -0
- package/src/tools/skills/skill-get.ts +17 -9
- package/src/tools/swarm-config/get-config.ts +2 -1
- package/src/tools/swarm-config/list-config.ts +2 -1
- package/src/tools/swarm-config/set-config.ts +16 -3
- package/src/tools/tool-config.ts +8 -6
- package/src/types.ts +12 -2
- package/src/utils/config-env-export.ts +74 -0
- package/src/utils/credentials.test.ts +92 -0
- package/src/utils/credentials.ts +52 -4
- package/src/utils/harness-provider.ts +15 -6
- package/src/utils/runtime-model-catalog.ts +11 -1
- package/src/utils/secret-scrubber.ts +71 -2
- package/src/utils/task-tool-manifest.ts +19 -2
- package/src/workflows/executors/swarm-script.ts +1 -0
- package/templates/skills/agent-browser/SKILL.md +1 -1
- package/templates/skills/agent-browser/content.md +1 -1
- package/templates/skills/apps/SKILL.md +8 -1
- package/templates/skills/apps/content.md +8 -1
- package/templates/skills/chat-sdk/config.json +14 -0
- package/templates/skills/chat-sdk/content.md +84 -0
- package/templates/skills/composio-gmail/content.md +7 -0
- package/templates/skills/composio-google-docs/content.md +1 -1
- package/templates/skills/email-domain-health/config.json +14 -0
- package/templates/skills/email-domain-health/content.md +131 -0
- package/templates/skills/kv-storage/content.md +2 -2
- package/templates/skills/pages/content.md +8 -10
- package/templates/skills/swarm-extensions/content.md +2 -0
- package/templates/skills/swarm-scripts/SKILL.md +4 -2
- package/templates/skills/swarm-scripts/config.json +1 -1
- package/templates/skills/swarm-scripts/content.md +4 -2
- package/templates/skills/workflow-iterate/content.md +38 -0
- package/dist/artifact-eczsknc3.js +0 -3843
- package/dist/cli-bd957dgb.js +0 -153
- package/dist/cli-q51yprfq.js +0 -1104
- package/dist/cli-t1ze64h3.js +0 -811
- package/dist/cli-tcc4wd5d.js +0 -56471
- package/dist/index-9ch1n761.js +0 -1102
- package/src/artifact-sdk/index.ts +0 -2
- package/src/artifact-sdk/localtunnel.d.ts +0 -20
- package/src/artifact-sdk/port.ts +0 -12
- package/src/artifact-sdk/server.ts +0 -183
- package/src/artifact-sdk/tunnel.ts +0 -19
- package/src/commands/artifact.ts +0 -249
- package/src/http/ecosystem.ts +0 -77
- package/src/tests/artifact-commands.test.ts +0 -92
- package/src/tests/artifact-sdk.test.ts +0 -793
- package/src/tests/register-service-security.test.ts +0 -194
- package/src/tools/list-services.ts +0 -107
- package/src/tools/register-service.ts +0 -177
- package/src/tools/unregister-service.ts +0 -73
- package/src/tools/update-service-status.ts +0 -96
- package/templates/skills/artifacts/config.json +0 -14
- package/templates/skills/artifacts/content.md +0 -344
- package/templates/skills/artifacts/files/examples/approval-flow.ts +0 -34
- package/templates/skills/artifacts/files/examples/hono-dashboard.ts +0 -31
- package/templates/skills/artifacts/files/examples/multi-artifact.ts +0 -20
- package/templates/skills/artifacts/files/examples/static-report.sh +0 -17
- /package/src/{artifact-sdk → pages}/browser-sdk.ts +0 -0
- /package/src/{artifact-sdk → pages}/feedback-overlay.ts +0 -0
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
applyOpenRouterBaseUrlOverride
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
ACP_TARGET_IDS,
|
|
6
|
-
getAcpTargetCatalogEntry,
|
|
7
|
-
isAcpTarget
|
|
8
|
-
} from "./cli-7a0sde2x.js";
|
|
2
|
+
applyOpenRouterBaseUrlOverride,
|
|
3
|
+
buildOpenAICompatibleProviderBlock
|
|
4
|
+
} from "./cli-vatyhshy.js";
|
|
9
5
|
import {
|
|
10
6
|
fetchInstalledMcpServers
|
|
11
7
|
} from "./cli-tng3131n.js";
|
|
12
8
|
import {
|
|
13
9
|
clampContextPercent,
|
|
14
10
|
getContextWindowSize
|
|
15
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-w1q7h2r2.js";
|
|
12
|
+
import {
|
|
13
|
+
ACP_TARGET_IDS,
|
|
14
|
+
getAcpTargetCatalogEntry,
|
|
15
|
+
isAcpTarget
|
|
16
|
+
} from "./cli-6cagzc96.js";
|
|
16
17
|
import {
|
|
17
18
|
applyReasoningEffort
|
|
18
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-n5vwg842.js";
|
|
19
20
|
import {
|
|
20
21
|
detachedProcessGroup,
|
|
21
22
|
registerProcessGroup,
|
|
22
23
|
terminateProcessGroup
|
|
23
24
|
} from "./cli-zt3w1cn1.js";
|
|
24
|
-
import {
|
|
25
|
-
init_src,
|
|
26
|
-
normalizeGrokModel
|
|
27
|
-
} from "./cli-014vns2y.js";
|
|
28
25
|
import {
|
|
29
26
|
_null,
|
|
30
27
|
array,
|
|
@@ -45,11 +42,18 @@ import {
|
|
|
45
42
|
import {
|
|
46
43
|
init_package,
|
|
47
44
|
package_default
|
|
48
|
-
} from "./cli-
|
|
45
|
+
} from "./cli-k382tshb.js";
|
|
49
46
|
import {
|
|
50
47
|
init_secret_scrubber,
|
|
51
48
|
scrubSecrets
|
|
52
|
-
} from "./cli-
|
|
49
|
+
} from "./cli-p1x85d2t.js";
|
|
50
|
+
import {
|
|
51
|
+
baseUrlOverride,
|
|
52
|
+
init_src,
|
|
53
|
+
normalizeGrokModel,
|
|
54
|
+
providerBaseUrl,
|
|
55
|
+
providerForModel
|
|
56
|
+
} from "./cli-e3g5mbkz.js";
|
|
53
57
|
|
|
54
58
|
// node_modules/@agentclientprotocol/sdk/dist/schema/index.js
|
|
55
59
|
var AGENT_METHODS = {
|
|
@@ -4886,9 +4890,36 @@ function withOpencodeConfig(env, model) {
|
|
|
4886
4890
|
}
|
|
4887
4891
|
if (model.trim())
|
|
4888
4892
|
value.model = model.trim();
|
|
4893
|
+
withCustomProviderBlock(value, model.trim(), env);
|
|
4889
4894
|
applyOpenRouterBaseUrlOverride(value, env);
|
|
4890
4895
|
env[key] = JSON.stringify(value);
|
|
4891
4896
|
}
|
|
4897
|
+
function withCustomProviderBlock(config, model, env) {
|
|
4898
|
+
const provider = providerForModel(model);
|
|
4899
|
+
if (!provider)
|
|
4900
|
+
return;
|
|
4901
|
+
const existing = config.provider?.[provider.id];
|
|
4902
|
+
if (provider.catalog !== "registry") {
|
|
4903
|
+
const baseURL = baseUrlOverride(provider, env);
|
|
4904
|
+
if (!baseURL)
|
|
4905
|
+
return;
|
|
4906
|
+
config.provider = {
|
|
4907
|
+
...config.provider,
|
|
4908
|
+
[provider.id]: { ...existing, options: { baseURL, ...existing?.options } }
|
|
4909
|
+
};
|
|
4910
|
+
return;
|
|
4911
|
+
}
|
|
4912
|
+
const block = buildOpenAICompatibleProviderBlock(provider, `{env:${provider.envVar}}`, model.slice(provider.id.length + 1), providerBaseUrl(provider, env));
|
|
4913
|
+
config.provider = {
|
|
4914
|
+
...config.provider,
|
|
4915
|
+
[provider.id]: {
|
|
4916
|
+
...block,
|
|
4917
|
+
...existing,
|
|
4918
|
+
options: { ...block.options, ...existing?.options },
|
|
4919
|
+
models: { ...block.models, ...existing?.models }
|
|
4920
|
+
}
|
|
4921
|
+
};
|
|
4922
|
+
}
|
|
4892
4923
|
function parseCommand(command, args) {
|
|
4893
4924
|
const trimmed = command.trim();
|
|
4894
4925
|
if (!trimmed) {
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init_runtime_model_catalog,
|
|
3
|
+
runtimeCatalogModel,
|
|
4
|
+
runtimeCatalogSection
|
|
5
|
+
} from "./cli-stfs0k5s.js";
|
|
1
6
|
import {
|
|
2
7
|
claudeCatalogModelId,
|
|
3
8
|
cursorCatalogRef,
|
|
4
9
|
dshCatalogRef,
|
|
5
10
|
grokCatalogRef,
|
|
6
|
-
init_runtime_model_catalog,
|
|
7
11
|
init_src,
|
|
8
|
-
reasoningLevelsFor
|
|
9
|
-
|
|
10
|
-
runtimeCatalogSection
|
|
11
|
-
} from "./cli-014vns2y.js";
|
|
12
|
+
reasoningLevelsFor
|
|
13
|
+
} from "./cli-e3g5mbkz.js";
|
|
12
14
|
|
|
13
15
|
// src/providers/reasoning-effort.ts
|
|
14
16
|
init_src();
|
|
@@ -128,5 +130,20 @@ function applyReasoningEffort(harness, model, level) {
|
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
}
|
|
133
|
+
var REASONING_HARNESSES = new Set([
|
|
134
|
+
"claude",
|
|
135
|
+
"codex",
|
|
136
|
+
"pi",
|
|
137
|
+
"opencode",
|
|
138
|
+
"dsh",
|
|
139
|
+
"cursor",
|
|
140
|
+
"amp",
|
|
141
|
+
"grok"
|
|
142
|
+
]);
|
|
143
|
+
function effectiveReasoningEffort(harness, model, level) {
|
|
144
|
+
if (!level || !REASONING_HARNESSES.has(harness))
|
|
145
|
+
return null;
|
|
146
|
+
return applyReasoningEffort(harness, model, level).kind === "noop" ? null : level;
|
|
147
|
+
}
|
|
131
148
|
|
|
132
|
-
export { reasoningCapability, applyReasoningEffort };
|
|
149
|
+
export { reasoningCapability, applyReasoningEffort, effectiveReasoningEffort };
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
instantFlush,
|
|
6
6
|
requestSlackThreadSteering,
|
|
7
7
|
wasEventSeen
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-d5f9ed5c.js";
|
|
9
9
|
import {
|
|
10
10
|
enrichSlackUserEmail,
|
|
11
11
|
resolveSlackUserId,
|
|
12
12
|
rewriteSlackMentions
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-wayw93nt.js";
|
|
14
14
|
import {
|
|
15
15
|
TaskCreationBlockedError,
|
|
16
16
|
broadcastMatches,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
hasOtherUserMention,
|
|
24
24
|
notifySlackFileFailures,
|
|
25
25
|
routeMessage
|
|
26
|
-
} from "./cli-
|
|
26
|
+
} from "./cli-bzszjf2p.js";
|
|
27
27
|
import {
|
|
28
28
|
ackSlackMessage,
|
|
29
29
|
buildTreeBlocks,
|
|
@@ -34,14 +34,14 @@ import {
|
|
|
34
34
|
noteSlackInboundSideEffect,
|
|
35
35
|
registerTreeMessage,
|
|
36
36
|
reportSlackInboundFailure
|
|
37
|
-
} from "./cli-
|
|
37
|
+
} from "./cli-skxvvpap.js";
|
|
38
38
|
import {
|
|
39
39
|
getChannelBlockReason,
|
|
40
40
|
invalidateChannelExternality,
|
|
41
41
|
isBlockExternalEnabled,
|
|
42
42
|
leaveExternalChannel,
|
|
43
43
|
shouldBlockChannel
|
|
44
|
-
} from "./cli-
|
|
44
|
+
} from "./cli-k3dp5tpf.js";
|
|
45
45
|
import {
|
|
46
46
|
getAgentById,
|
|
47
47
|
getAgentWorkingOnThread,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
isExtensionAgent,
|
|
55
55
|
reactionName,
|
|
56
56
|
slackContextKey
|
|
57
|
-
} from "./cli-
|
|
57
|
+
} from "./cli-ef1hg1wv.js";
|
|
58
58
|
import {
|
|
59
59
|
init_resolver,
|
|
60
60
|
resolveTemplate
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
import {
|
|
69
69
|
init_event_bus,
|
|
70
70
|
workflowEventBus
|
|
71
|
-
} from "./cli-
|
|
71
|
+
} from "./cli-9nfx44eh.js";
|
|
72
72
|
import {
|
|
73
73
|
init_env_flag,
|
|
74
74
|
isEnvFlagEnabled
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
import {
|
|
77
77
|
init_secret_scrubber,
|
|
78
78
|
scrubSecrets
|
|
79
|
-
} from "./cli-
|
|
79
|
+
} from "./cli-p1x85d2t.js";
|
|
80
80
|
import {
|
|
81
81
|
__callDispose,
|
|
82
82
|
__using
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init_src,
|
|
3
|
+
openAICompatibleKeyVars
|
|
4
|
+
} from "./cli-e3g5mbkz.js";
|
|
1
5
|
import {
|
|
2
6
|
__esm
|
|
3
7
|
} from "./cli-bc05qbss.js";
|
|
@@ -2455,6 +2459,37 @@ function scrubObject(value, seen = new WeakSet) {
|
|
|
2455
2459
|
}
|
|
2456
2460
|
return out;
|
|
2457
2461
|
}
|
|
2462
|
+
function createValueScrubber(entries) {
|
|
2463
|
+
const names = new Map;
|
|
2464
|
+
for (const { value, name } of entries) {
|
|
2465
|
+
if (!value)
|
|
2466
|
+
continue;
|
|
2467
|
+
for (const form of escapedForms(value))
|
|
2468
|
+
if (!names.has(form))
|
|
2469
|
+
names.set(form, name);
|
|
2470
|
+
}
|
|
2471
|
+
if (names.size === 0)
|
|
2472
|
+
return { text: (text2) => text2, object: (value) => value };
|
|
2473
|
+
const pattern = [...names.keys()].sort((a, b) => b.length - a.length).map(escapeRegExp).join("|");
|
|
2474
|
+
const re = new RegExp(pattern, "g");
|
|
2475
|
+
const text = (input) => input.replace(re, (match) => `[REDACTED:${names.get(match) ?? "secret"}]`);
|
|
2476
|
+
const object = (value, seen = new WeakSet) => {
|
|
2477
|
+
if (typeof value === "string")
|
|
2478
|
+
return text(value);
|
|
2479
|
+
if (value === null || typeof value !== "object")
|
|
2480
|
+
return value;
|
|
2481
|
+
if (seen.has(value))
|
|
2482
|
+
return "[Circular]";
|
|
2483
|
+
seen.add(value);
|
|
2484
|
+
if (Array.isArray(value))
|
|
2485
|
+
return value.map((item) => object(item, seen));
|
|
2486
|
+
return Object.fromEntries(Object.entries(value).map(([key, child]) => [
|
|
2487
|
+
text(key),
|
|
2488
|
+
object(child, seen)
|
|
2489
|
+
]));
|
|
2490
|
+
};
|
|
2491
|
+
return { text, object: (value) => object(value) };
|
|
2492
|
+
}
|
|
2458
2493
|
function refreshSecretScrubberCache() {
|
|
2459
2494
|
cache = null;
|
|
2460
2495
|
}
|
|
@@ -2468,6 +2503,17 @@ function registerVolatileSecret(value, name) {
|
|
|
2468
2503
|
volatileGeneration++;
|
|
2469
2504
|
}
|
|
2470
2505
|
}
|
|
2506
|
+
function registerEnvSecrets(env) {
|
|
2507
|
+
for (const [key, value] of Object.entries(env)) {
|
|
2508
|
+
if (!value || !isSensitiveKey(key))
|
|
2509
|
+
continue;
|
|
2510
|
+
registerVolatileSecret(value, key);
|
|
2511
|
+
if (!value.includes(","))
|
|
2512
|
+
continue;
|
|
2513
|
+
for (const member of value.split(","))
|
|
2514
|
+
registerVolatileSecret(member.trim(), key);
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2471
2517
|
function unregisterVolatileSecret(name) {
|
|
2472
2518
|
for (const [value, registeredName] of volatileSecrets) {
|
|
2473
2519
|
if (registeredName !== name)
|
|
@@ -2483,8 +2529,9 @@ function registerSensitiveKeyName(key) {
|
|
|
2483
2529
|
sensitiveKeyVerdicts.clear();
|
|
2484
2530
|
cache = null;
|
|
2485
2531
|
}
|
|
2486
|
-
var SCRUBBER_RULES_VERSION =
|
|
2532
|
+
var SCRUBBER_RULES_VERSION = 8, SENSITIVE_KEY_EXACT, SENSITIVE_KEY_SUFFIXES, NON_SECRET_EXCEPTIONS, MIN_VALUE_LENGTH = 12, QUOTE_EOL, JSON_DQ, RAW_DQ, SQ, BARE, ASSIGNMENT_RE, LINE_START, LINE_END, LINE_VALUE, INI_ASSIGNMENT_RE, YAML_KEY_RE, JSON_KEY, JSON_KEY_RE, ESCAPED_JSON_KEY_RE, TOKEN68, HEADER_SEP, AUTH_HEADER_RE, API_KEY_HEADER_RE, CURL_PASSWORD_RE, CURL_USER_RE, URL_USERINFO_RE, PEM_RE, PEM_MARKER = "[REDACTED:private_key]", TB, TOKEN_REGEXES, gitleaks = null, gitleaksPassEnabled = true, cache = null, matcher = null, volatileSecrets, volatileGeneration = 0, registeredSensitiveKeys, sensitiveKeyVerdicts, MAX_KEY_VERDICTS = 4096;
|
|
2487
2533
|
var init_secret_scrubber = __esm(() => {
|
|
2534
|
+
init_src();
|
|
2488
2535
|
init_secret_rules_generated();
|
|
2489
2536
|
SENSITIVE_KEY_EXACT = new Set([
|
|
2490
2537
|
"API_KEY",
|
|
@@ -2497,6 +2544,7 @@ var init_secret_scrubber = __esm(() => {
|
|
|
2497
2544
|
"ANTHROPIC_API_KEY",
|
|
2498
2545
|
"OPENAI_API_KEY",
|
|
2499
2546
|
"OPENROUTER_API_KEY",
|
|
2547
|
+
...openAICompatibleKeyVars(),
|
|
2500
2548
|
"SLACK_BOT_TOKEN",
|
|
2501
2549
|
"SLACK_SIGNING_SECRET",
|
|
2502
2550
|
"SLACK_CLIENT_SECRET",
|
|
@@ -2659,4 +2707,4 @@ var init_secret_scrubber = __esm(() => {
|
|
|
2659
2707
|
sensitiveKeyVerdicts = new Map;
|
|
2660
2708
|
});
|
|
2661
2709
|
|
|
2662
|
-
export { SCRUBBER_RULES_VERSION, isSensitiveKey, scrubSecrets, findSecretsIn, scrubObject, refreshSecretScrubberCache, registerVolatileSecret, unregisterVolatileSecret, registerSensitiveKeyName, init_secret_scrubber };
|
|
2710
|
+
export { SCRUBBER_RULES_VERSION, isSensitiveKey, scrubSecrets, findSecretsIn, scrubObject, createValueScrubber, refreshSecretScrubberCache, registerVolatileSecret, registerEnvSecrets, unregisterVolatileSecret, registerSensitiveKeyName, init_secret_scrubber };
|
|
@@ -92,6 +92,10 @@ var init_permissions = __esm(() => {
|
|
|
92
92
|
description: "Mutate a task's filesystem artifacts and attachments.",
|
|
93
93
|
namespace: "task"
|
|
94
94
|
},
|
|
95
|
+
"task.parent.attach": {
|
|
96
|
+
description: "Create a task under an existing parent task. The child inherits the parent's thread context (contextKey, Slack thread, requester).",
|
|
97
|
+
namespace: "task"
|
|
98
|
+
},
|
|
95
99
|
"task.progress.write": {
|
|
96
100
|
description: "Write a task's progress, status, or output (its assignee, a lead, a human, or anyone while unassigned).",
|
|
97
101
|
namespace: "task"
|
|
@@ -132,6 +136,22 @@ var init_permissions = __esm(() => {
|
|
|
132
136
|
description: "Register or unregister a Kapso inbound number.",
|
|
133
137
|
namespace: "integration"
|
|
134
138
|
},
|
|
139
|
+
"integration.chat.manage": {
|
|
140
|
+
description: "Register or unregister a Chat SDK channel route.",
|
|
141
|
+
namespace: "integration"
|
|
142
|
+
},
|
|
143
|
+
"integration.chat.post": {
|
|
144
|
+
description: "Post to a Chat SDK thread or channel other than the thread of the current task.",
|
|
145
|
+
namespace: "integration"
|
|
146
|
+
},
|
|
147
|
+
"integration.chat.read": {
|
|
148
|
+
description: "Read a Chat SDK thread other than the thread of the current task.",
|
|
149
|
+
namespace: "integration"
|
|
150
|
+
},
|
|
151
|
+
"integration.chat.dm": {
|
|
152
|
+
description: "Open a direct-message thread with a user on a Chat SDK adapter.",
|
|
153
|
+
namespace: "integration"
|
|
154
|
+
},
|
|
135
155
|
"integration.slack.post": {
|
|
136
156
|
description: "Post to a direct Slack channel.",
|
|
137
157
|
namespace: "integration"
|
|
@@ -564,6 +584,7 @@ var init_legacy_policy = __esm(() => {
|
|
|
564
584
|
"task.steer.own": requesterOwnsTask,
|
|
565
585
|
"task.action.own": requesterOwnsTask,
|
|
566
586
|
"task.fs.mutate": taskFsMutate,
|
|
587
|
+
"task.parent.attach": taskFsMutate,
|
|
567
588
|
"task.progress.write": taskProgressWrite,
|
|
568
589
|
"favorite.write.own": anyAuthenticated,
|
|
569
590
|
"memory.learning.inject": leadOnly,
|
|
@@ -574,6 +595,10 @@ var init_legacy_policy = __esm(() => {
|
|
|
574
595
|
"channel.delete": leadOnly,
|
|
575
596
|
"repo.merge-policy.write": leadOrOperatorOrUser,
|
|
576
597
|
"integration.kapso.manage": leadOnly,
|
|
598
|
+
"integration.chat.manage": leadOnly,
|
|
599
|
+
"integration.chat.post": leadOnly,
|
|
600
|
+
"integration.chat.read": leadOnly,
|
|
601
|
+
"integration.chat.dm": leadOnly,
|
|
577
602
|
"integration.slack.post": leadOnly,
|
|
578
603
|
"integration.slack.read": leadOnly,
|
|
579
604
|
"integration.slack.thread.start": leadOnly,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runStopHookSessionSummarySubprocess
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-m50t4309.js";
|
|
4
|
+
import {
|
|
5
|
+
fetchInstalledMcpServers
|
|
6
|
+
} from "./cli-tng3131n.js";
|
|
4
7
|
import {
|
|
5
8
|
buildOtelTraceparentEnv,
|
|
6
9
|
isHarnessOtelEnabled
|
|
7
10
|
} from "./cli-q2j38vre.js";
|
|
8
|
-
import {
|
|
9
|
-
fetchInstalledMcpServers
|
|
10
|
-
} from "./cli-tng3131n.js";
|
|
11
11
|
import {
|
|
12
12
|
CTX_MODE_NUDGE_EVERY
|
|
13
13
|
} from "./cli-zm7njwzd.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
clampContextPercent,
|
|
20
20
|
computeContextUsedUnified,
|
|
21
21
|
getContextWindowSize
|
|
22
|
-
} from "./cli-
|
|
22
|
+
} from "./cli-w1q7h2r2.js";
|
|
23
23
|
import {
|
|
24
24
|
isClaudeBridgeEffective,
|
|
25
25
|
resolveClaudeTransport
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
} from "./cli-2pdaysab.js";
|
|
33
33
|
import {
|
|
34
34
|
applyReasoningEffort
|
|
35
|
-
} from "./cli-
|
|
35
|
+
} from "./cli-n5vwg842.js";
|
|
36
36
|
import {
|
|
37
37
|
require_src
|
|
38
38
|
} from "./cli-knd276ed.js";
|
|
@@ -47,12 +47,12 @@ import {
|
|
|
47
47
|
import {
|
|
48
48
|
init_file_lock,
|
|
49
49
|
withFileLock
|
|
50
|
-
} from "./cli-
|
|
50
|
+
} from "./cli-s2sp957d.js";
|
|
51
51
|
import {
|
|
52
52
|
CLAUDE_CREDENTIALS_HINT,
|
|
53
53
|
init_credentials,
|
|
54
54
|
validateClaudeCredentials
|
|
55
|
-
} from "./cli-
|
|
55
|
+
} from "./cli-5hkm7whv.js";
|
|
56
56
|
import {
|
|
57
57
|
deriveDefaultRoute,
|
|
58
58
|
init_src,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
import {
|
|
71
71
|
init_secret_scrubber,
|
|
72
72
|
scrubSecrets
|
|
73
|
-
} from "./cli-
|
|
73
|
+
} from "./cli-p1x85d2t.js";
|
|
74
74
|
import {
|
|
75
75
|
__require,
|
|
76
76
|
__toESM
|
|
@@ -93,8 +93,8 @@ import {
|
|
|
93
93
|
utimes,
|
|
94
94
|
writeFile
|
|
95
95
|
} from "node:fs/promises";
|
|
96
|
-
import { homedir } from "node:os";
|
|
97
|
-
import { dirname, join, resolve as resolve2 } from "node:path";
|
|
96
|
+
import { homedir as homedir2 } from "node:os";
|
|
97
|
+
import { dirname, join as join2, resolve as resolve2 } from "node:path";
|
|
98
98
|
import { promisify } from "node:util";
|
|
99
99
|
init_credentials();
|
|
100
100
|
init_env_flag();
|
|
@@ -170,10 +170,14 @@ class ClaudeBackgroundKeepalive {
|
|
|
170
170
|
// src/providers/claude-flag-settings.ts
|
|
171
171
|
init_secret_scrubber();
|
|
172
172
|
import { readFileSync } from "node:fs";
|
|
173
|
-
import {
|
|
173
|
+
import { homedir } from "node:os";
|
|
174
|
+
import { join, resolve } from "node:path";
|
|
174
175
|
var WORKSPACE_CLAUDE_MD_EXCLUDE = "/workspace/CLAUDE.md";
|
|
176
|
+
function userClaudeMdExclude(home = process.env.HOME ?? homedir()) {
|
|
177
|
+
return join(home, ".claude", "CLAUDE.md");
|
|
178
|
+
}
|
|
175
179
|
function claudeFlagSettings() {
|
|
176
|
-
return { claudeMdExcludes: [WORKSPACE_CLAUDE_MD_EXCLUDE] };
|
|
180
|
+
return { claudeMdExcludes: [WORKSPACE_CLAUDE_MD_EXCLUDE, userClaudeMdExclude()] };
|
|
177
181
|
}
|
|
178
182
|
var SETTINGS_FLAG = "--settings";
|
|
179
183
|
|
|
@@ -286,7 +290,7 @@ function costFromResult(json, state) {
|
|
|
286
290
|
cacheWriteTokens: usage?.cache_creation_input_tokens ?? 0,
|
|
287
291
|
cacheWrite5mTokens: finiteNumber(cacheCreation?.ephemeral_5m_input_tokens),
|
|
288
292
|
cacheWrite1hTokens: finiteNumber(cacheCreation?.ephemeral_1h_input_tokens),
|
|
289
|
-
thinkingTokens: usage?.thinking_input_tokens ?? 0,
|
|
293
|
+
thinkingTokens: tokenCount(usage?.output_tokens_details?.thinking_tokens) ?? tokenCount(usage?.thinking_input_tokens) ?? 0,
|
|
290
294
|
models,
|
|
291
295
|
durationMs: json.duration_ms || 0,
|
|
292
296
|
numTurns: json.num_turns ?? null,
|
|
@@ -520,8 +524,8 @@ function withClaudeBridgeAuthArgs(argv, sourceEnv) {
|
|
|
520
524
|
return [...argv];
|
|
521
525
|
}
|
|
522
526
|
var execFileAsync = promisify(execFile);
|
|
523
|
-
async function preseedClaudeTrustDialog(dirs, homeDir = process.env.HOME ??
|
|
524
|
-
const claudeJsonPath =
|
|
527
|
+
async function preseedClaudeTrustDialog(dirs, homeDir = process.env.HOME ?? homedir2()) {
|
|
528
|
+
const claudeJsonPath = join2(homeDir, ".claude.json");
|
|
525
529
|
const seed = async () => {
|
|
526
530
|
for (let attempt = 1;; attempt++) {
|
|
527
531
|
await withClaudeJsonLock(claudeJsonPath, () => seedTrustLocked(claudeJsonPath, dirs));
|
|
@@ -665,7 +669,7 @@ async function resolveClaudeTrustDirs(cwd) {
|
|
|
665
669
|
if (configured)
|
|
666
670
|
main = resolve2(path, configured);
|
|
667
671
|
main = await realpath(main);
|
|
668
|
-
if (await stat(
|
|
672
|
+
if (await stat(join2(main, ".git")).then(() => true, () => false)) {
|
|
669
673
|
if (!dirs.includes(main))
|
|
670
674
|
dirs.push(main);
|
|
671
675
|
}
|
|
@@ -701,7 +705,7 @@ async function createSessionMcpConfig(cwd, taskId, installedServers, contextKey)
|
|
|
701
705
|
const mcpJsonPaths = [];
|
|
702
706
|
let searchDir = cwd;
|
|
703
707
|
while (true) {
|
|
704
|
-
const candidate =
|
|
708
|
+
const candidate = join2(searchDir, ".mcp.json");
|
|
705
709
|
if (await Bun.file(candidate).exists()) {
|
|
706
710
|
mcpJsonPaths.push(candidate);
|
|
707
711
|
}
|
|
@@ -832,7 +836,7 @@ function getSystemPromptFilePath(taskId) {
|
|
|
832
836
|
async function resolveClaudePrompt(prompt, home, onInline) {
|
|
833
837
|
const resolved = await resolveSlashSkillPrompt(prompt, {
|
|
834
838
|
providerLabel: "claude",
|
|
835
|
-
skillsDir:
|
|
839
|
+
skillsDir: join2(home, ".claude", "skills"),
|
|
836
840
|
stripFrontmatter: true,
|
|
837
841
|
emit: (event) => {
|
|
838
842
|
if (event.type === "raw_stderr")
|
|
@@ -1176,7 +1180,7 @@ class ClaudeAdapter {
|
|
|
1176
1180
|
const sourceEnv = withClaudeRouteEnv(config.env || process.env);
|
|
1177
1181
|
const sessionConfig = {
|
|
1178
1182
|
...config,
|
|
1179
|
-
prompt: await resolveClaudePrompt(config.prompt, process.env.HOME ??
|
|
1183
|
+
prompt: await resolveClaudePrompt(config.prompt, process.env.HOME ?? homedir2(), config.onPromptSkill)
|
|
1180
1184
|
};
|
|
1181
1185
|
const transport = resolveClaudeTransport(sourceEnv);
|
|
1182
1186
|
const credType = validateClaudeCredentials(sourceEnv);
|
|
@@ -1190,7 +1194,7 @@ class ClaudeAdapter {
|
|
|
1190
1194
|
if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
|
|
1191
1195
|
throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
|
|
1192
1196
|
}
|
|
1193
|
-
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-
|
|
1197
|
+
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-9jye6cxr.js") : undefined;
|
|
1194
1198
|
claudeSdk?.validateClaudeSdkAdditionalArgs([
|
|
1195
1199
|
...claudeBinaryArgv.slice(1),
|
|
1196
1200
|
...config.additionalArgs ?? []
|
|
@@ -795,7 +795,7 @@ GFS4: `);
|
|
|
795
795
|
}
|
|
796
796
|
});
|
|
797
797
|
|
|
798
|
-
// node_modules/retry/lib/retry_operation.js
|
|
798
|
+
// node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js
|
|
799
799
|
var require_retry_operation = __commonJS(function(exports, module) {
|
|
800
800
|
function RetryOperation(timeouts, options) {
|
|
801
801
|
if (typeof options === "boolean") {
|
|
@@ -924,7 +924,7 @@ var require_retry_operation = __commonJS(function(exports, module) {
|
|
|
924
924
|
};
|
|
925
925
|
});
|
|
926
926
|
|
|
927
|
-
// node_modules/retry/lib/retry.js
|
|
927
|
+
// node_modules/proper-lockfile/node_modules/retry/lib/retry.js
|
|
928
928
|
var require_retry = __commonJS(function(exports) {
|
|
929
929
|
var RetryOperation = require_retry_operation();
|
|
930
930
|
exports.operation = function(options) {
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
getSwarmConfigs,
|
|
7
7
|
init_db1 as init_db,
|
|
8
8
|
upsertSwarmConfig
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-ef1hg1wv.js";
|
|
10
10
|
import {
|
|
11
11
|
init_secret_scrubber,
|
|
12
12
|
scrubSecrets
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-p1x85d2t.js";
|
|
14
14
|
import {
|
|
15
15
|
__require
|
|
16
16
|
} from "./cli-bc05qbss.js";
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDb,
|
|
3
3
|
init_db1 as init_db
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-ef1hg1wv.js";
|
|
5
|
+
import {
|
|
6
|
+
init_src,
|
|
7
|
+
openAICompatibleProviderIds,
|
|
8
|
+
withRegistryCatalogSections
|
|
9
|
+
} from "./cli-e3g5mbkz.js";
|
|
5
10
|
|
|
6
11
|
// src/be/seed-pricing.ts
|
|
12
|
+
init_src();
|
|
7
13
|
init_db();
|
|
8
14
|
|
|
9
15
|
// src/be/modelsdev-cache.ts
|
|
16
|
+
init_src();
|
|
10
17
|
import { readFileSync } from "node:fs";
|
|
11
18
|
import path from "node:path";
|
|
12
19
|
var MODELSDEV_CACHE_PATH = path.join("src", "be", "modelsdev-cache.json");
|
|
@@ -24,7 +31,7 @@ function loadModelsDevCache() {
|
|
|
24
31
|
if (memoized)
|
|
25
32
|
return memoized;
|
|
26
33
|
try {
|
|
27
|
-
const parsed = JSON.parse(readFileSync(candidate, "utf-8"));
|
|
34
|
+
const parsed = withRegistryCatalogSections(JSON.parse(readFileSync(candidate, "utf-8")));
|
|
28
35
|
parsedCaches.set(candidate, new WeakRef(parsed));
|
|
29
36
|
return parsed;
|
|
30
37
|
} catch {}
|
|
@@ -108,7 +115,7 @@ var ANTHROPIC_SHORTNAME_TO_MODELSDEV = {
|
|
|
108
115
|
};
|
|
109
116
|
var ANTHROPIC_SHORTNAME_PRICING_FALLBACKS = {
|
|
110
117
|
"claude-opus-5-5": { input: 4, output: 20, cache_read: 0.2, cache_write: 5 },
|
|
111
|
-
"claude-sonnet-5-5": { input: 2, output: 10, cache_read: 0.
|
|
118
|
+
"claude-sonnet-5-5": { input: 2, output: 10, cache_read: 0.1, cache_write: 2.5 },
|
|
112
119
|
"claude-fable-5-1": { input: 10, output: 50, cache_read: 0.25, cache_write: 12.5 },
|
|
113
120
|
"claude-mythos-5-1": { input: 10, output: 50, cache_read: 0.25, cache_write: 12.5 }
|
|
114
121
|
};
|
|
@@ -261,6 +268,15 @@ function buildModelsDevSeedRows(cache) {
|
|
|
261
268
|
add(id, projectCostBlock("gemini", id, model.cost));
|
|
262
269
|
}
|
|
263
270
|
}
|
|
271
|
+
for (const provider of openAICompatibleProviderIds()) {
|
|
272
|
+
for (const [id, model] of Object.entries(cache[provider]?.models ?? {})) {
|
|
273
|
+
if (!model?.cost)
|
|
274
|
+
continue;
|
|
275
|
+
const key = `${provider}/${id}`;
|
|
276
|
+
add(key, projectCostBlock("pi", key, model.cost));
|
|
277
|
+
add(key, projectCostBlock("opencode", key, model.cost));
|
|
278
|
+
}
|
|
279
|
+
}
|
|
264
280
|
return collapseNormalizedIds(sourced);
|
|
265
281
|
}
|
|
266
282
|
function buildPricingSeedRows(cache) {
|
|
@@ -14,11 +14,11 @@ async function createRuntimeProvider(kind, target = {}) {
|
|
|
14
14
|
return new StaticRuntimeProvider;
|
|
15
15
|
}
|
|
16
16
|
case "docker": {
|
|
17
|
-
const { DockerRuntimeProvider } = await import("./docker-
|
|
17
|
+
const { DockerRuntimeProvider } = await import("./docker-ff6y1190.js");
|
|
18
18
|
return new DockerRuntimeProvider;
|
|
19
19
|
}
|
|
20
20
|
case "e2b": {
|
|
21
|
-
const { E2BRuntimeProvider } = await import("./e2b-
|
|
21
|
+
const { E2BRuntimeProvider } = await import("./e2b-8ygwhg0f.js");
|
|
22
22
|
return new E2BRuntimeProvider(target);
|
|
23
23
|
}
|
|
24
24
|
case "k8s":
|