@desplega.ai/agent-swarm 2.6.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/{acp-adapter-dgfakfpw.js → acp-adapter-8dn5tq56.js} +6 -6
- package/dist/{actions-fbqma8aa.js → actions-3r6gw7dy.js} +18 -18
- package/dist/{amp-adapter-en0jy6hs.js → amp-adapter-wjtq413p.js} +3 -3
- package/dist/{anthropic-messages-txs190dd.js → anthropic-messages-n4cby1rz.js} +4 -4
- package/dist/{app-k8a5cgpp.js → app-d53yhykk.js} +3 -3
- package/dist/{assistant-a16433gr.js → assistant-ksrawj3k.js} +20 -20
- package/dist/{boot-reembed-6c1sjfnr.js → boot-reembed-fxfw17m2.js} +11 -3
- package/dist/{boot-reembed-f4nn561n.js → boot-reembed-k5y5xbj0.js} +15 -8
- package/dist/{boot-scrub-sweep-d4w9gajf.js → boot-scrub-sweep-se41j9fd.js} +3 -3
- package/dist/{boot-seeds-9bmkspyw.js → boot-seeds-r3kwwv8b.js} +4 -4
- package/dist/{claude-adapter-nys1kjxa.js → claude-adapter-ahmyf231.js} +8 -8
- package/dist/{claude-managed-adapter-55207973.js → claude-managed-adapter-5knamegc.js} +3 -3
- package/dist/{claude-managed-setup-3cm35gey.js → claude-managed-setup-mdc7dy6b.js} +3 -3
- package/dist/{claude-sdk-session-nw5yd8cp.js → claude-sdk-session-n5wen9zk.js} +8729 -8600
- package/dist/{cli-683y0b3a.js → cli-0dqtv2jg.js} +2 -2
- package/dist/{cli-a34pr3w1.js → cli-0tww7dnz.js} +2 -2
- package/dist/{cli-w2656ka1.js → cli-0w4e4v58.js} +7 -7
- package/dist/{cli-5sckpqcx.js → cli-2sjm3t4r.js} +1 -1
- package/dist/{cli-gf2850q7.js → cli-3cywb44q.js} +18 -1
- package/dist/{cli-8wkb09q5.js → cli-3k9jej0c.js} +2 -2
- package/dist/{cli-3aqd4jaa.js → cli-3v2cyqb8.js} +3 -3
- package/dist/{cli-emhjcj2y.js → cli-5qt9vzmq.js} +89 -20
- package/dist/{cli-abkm71vr.js → cli-5rp1w4cr.js} +1 -1
- package/dist/{cli-gf95q3bm.js → cli-6vwjsetx.js} +4 -4
- package/dist/{cli-k21gx5ht.js → cli-6w2yrrc0.js} +10 -10
- package/dist/{cli-m70bajzr.js → cli-75tdydgv.js} +1 -1
- package/dist/{cli-5rj83bam.js → cli-8feswf2v.js} +47 -36
- package/dist/{cli-sxgtf5fw.js → cli-8wd3mbyj.js} +1 -1
- package/dist/{cli-ca6banwz.js → cli-9csfthbw.js} +10 -8
- package/dist/{cli-dqygeeh5.js → cli-b41p764a.js} +31 -3
- package/dist/{cli-m5a9m0ak.js → cli-c1t533hh.js} +3 -3
- package/dist/{cli-2sjhpsns.js → cli-c28jxpcv.js} +1 -1
- package/dist/{cli-bqztfyve.js → cli-cb50g9cd.js} +1 -1
- package/dist/{cli-ag2yrnt5.js → cli-d8gaphtr.js} +2 -2
- package/dist/{cli-9abdgn5t.js → cli-dgtfysne.js} +3 -3
- package/dist/{cli-nq677csy.js → cli-dscnhn18.js} +1 -1
- package/dist/{cli-3fwqy71j.js → cli-dv11pgpv.js} +39 -32
- package/dist/{cli-v49fkghp.js → cli-ekptgk2m.js} +6 -6
- package/dist/{cli-c2habvsf.js → cli-f3mzy662.js} +17 -17
- package/dist/{cli-zqne1qcj.js → cli-fk7k8s9x.js} +2 -2
- package/dist/{cli-1tem6ns9.js → cli-gt4h8cxw.js} +3 -2
- package/dist/{cli-vbhgkw9h.js → cli-h3e7bhvn.js} +3 -3
- package/dist/{cli-ffvsj2qw.js → cli-hkxqdmnb.js} +3 -3
- package/dist/{cli-a2rr0fmg.js → cli-hpkvgdad.js} +7 -4
- package/dist/{cli-art7c1zh.js → cli-hq2v4rr5.js} +37 -9
- package/dist/{cli-sqma6vw1.js → cli-k1zb7raw.js} +5 -5
- package/dist/{cli-4rvr7zfx.js → cli-k4awgvzm.js} +5 -0
- package/dist/{cli-3ndmpxxv.js → cli-k7d3hvya.js} +2 -2
- package/dist/{cli-3gfvmzht.js → cli-kbtdftbw.js} +74 -26
- package/dist/{cli-hfeb68z4.js → cli-kj69b9tw.js} +34 -6
- package/dist/{cli-az25fn5f.js → cli-kk9jy4nm.js} +2 -2
- package/dist/{cli-39aet655.js → cli-m52t4cta.js} +1 -1
- package/dist/{cli-cz37jqss.js → cli-mdadewqp.js} +5 -5
- package/dist/{cli-esakngh8.js → cli-nf6k60sn.js} +1 -1
- package/dist/{cli-j6rktc91.js → cli-nzdf09js.js} +1 -1
- package/dist/{cli-rr7zx19j.js → cli-prcyzecg.js} +12 -12
- package/dist/{cli-4hxrf0p4.js → cli-pzafyqtk.js} +393 -62
- package/dist/{cli-g8ka5j4j.js → cli-qvaa1gjp.js} +173 -52
- package/dist/{cli-d2dpf95n.js → cli-rg4b2g6j.js} +1 -1
- package/dist/{cli-kf4jree9.js → cli-rm66vqdz.js} +1 -1
- package/dist/{cli-4rf0f5vg.js → cli-s504c3w7.js} +5 -3
- package/dist/{cli-nn6vx2mq.js → cli-swkx9jm2.js} +7 -5
- package/dist/{cli-g20jjwt4.js → cli-thsaq4pd.js} +16 -16
- package/dist/{cli-aj8djyqt.js → cli-twjnyvs8.js} +2 -2
- package/dist/{cli-03gg9pd1.js → cli-typdpe8g.js} +4 -4
- package/dist/{cli-mtnj4fwa.js → cli-vg8pwmsd.js} +6 -6
- package/dist/{cli-gnsb1zxa.js → cli-vhpckzvp.js} +1 -1
- package/dist/{cli-7enjwya9.js → cli-vz78s5wm.js} +1 -1
- package/dist/{cli-dv97kdzv.js → cli-wdxgsdz5.js} +2 -2
- package/dist/{cli-7a6p4e65.js → cli-wtjg6je3.js} +1 -1
- package/dist/{cli-6y51ryva.js → cli-x3cngb1h.js} +44 -12
- package/dist/{cli-n7asmce6.js → cli-xbz6mcg4.js} +3 -3
- package/dist/{cli-24j1jeeb.js → cli-y4tdxsqb.js} +3 -3
- package/dist/{cli-mvjz5an3.js → cli-yqrsp3ny.js} +7 -7
- package/dist/cli.js +31 -21
- package/dist/{codex-adapter-d95q4qsn.js → codex-adapter-7wepzq15.js} +6 -6
- package/dist/{codex-hook-brpnycn5.js → codex-hook-pbdh4xhx.js} +2 -2
- package/dist/{codex-session-runner-gdwd8h0c.js → codex-session-runner-02sb49e4.js} +6 -6
- package/dist/{commands-jqmgk54b.js → commands-3rcspxct.js} +2 -2
- package/dist/{controller-z3jq589f.js → controller-8ar4avd6.js} +3 -3
- package/dist/{controllers-connect-r2za39ef.js → controllers-connect-ajvh9h0v.js} +19 -19
- package/dist/{cursor-adapter-4mr4jgkw.js → cursor-adapter-gd0sa7bh.js} +1 -1
- package/dist/{db-w36wwb5g.js → db-dv9j7ts5.js} +2 -2
- package/dist/{db-ppv2tze7.js → db-z26vgdvj.js} +3 -3
- package/dist/{dispatcher-pv5h77vf.js → dispatcher-8m0htjq8.js} +17 -17
- package/dist/{dsh-adapter-d4pdpb3r.js → dsh-adapter-y8gyk130.js} +1 -1
- package/dist/{e2b-fn3zacvt.js → e2b-74vg9b7e.js} +1 -1
- package/dist/{e2b-222hsajc.js → e2b-jyay8wzn.js} +1 -1
- package/dist/{easter-egg-3d-4sp4dvmc.js → easter-egg-3d-28f880xx.js} +1 -1
- package/dist/{execute-jev839y1.js → execute-9seb79vh.js} +1 -1
- package/dist/{external-channel-y6nkzhnn.js → external-channel-smz7jyth.js} +2 -2
- package/dist/{getMachineId-bsd-brn0xym3.js → getMachineId-bsd-whfre6gr.js} +3 -3
- package/dist/{getMachineId-darwin-t339sfxm.js → getMachineId-darwin-5zjynb19.js} +3 -3
- package/dist/{getMachineId-linux-5eq95d8b.js → getMachineId-linux-8mksrrsq.js} +3 -3
- package/dist/{getMachineId-unsupported-qavrtc7j.js → getMachineId-unsupported-fxtqsdt2.js} +3 -3
- package/dist/{getMachineId-win-q7fe1wx7.js → getMachineId-win-nzfmz857.js} +3 -3
- package/dist/{grok-adapter-t08b9ntm.js → grok-adapter-z0nnvtbn.js} +7 -7
- package/dist/handlers-pspryh6g.js +41 -0
- package/dist/{heartbeat-vn31xwdk.js → heartbeat-f928aqyp.js} +20 -20
- package/dist/{hook-cpjs8q51.js → hook-d7c605r4.js} +7 -7
- package/dist/{hook-6d0zbvvt.js → hook-q9hv5xf9.js} +5 -5
- package/dist/{http-9c6medda.js → http-q6j4k989.js} +1000 -251
- package/dist/{index-k0yt1tvq.js → index-5nb266jr.js} +17 -17
- package/dist/{index-ysd45kgc.js → index-8fxt5eah.js} +10 -10
- package/dist/{index-zgvqzjsw.js → index-cekzwhez.js} +5 -5
- package/dist/{index-38t35h0n.js → index-ch0c1xff.js} +17 -17
- package/dist/{index-pkma1yf8.js → index-ebnjhxh1.js} +1 -1
- package/dist/{index-yqgbfgaj.js → index-ed8dy8rn.js} +20 -20
- package/dist/{index-qhjf2htm.js → index-ejqdkkqx.js} +262 -96
- package/dist/{index-dr94zbnh.js → index-farm1zsn.js} +32661 -29443
- package/dist/{index-g6k9tctj.js → index-yn1yxg85.js} +1 -1
- package/dist/{keepalive-em0117bp.js → keepalive-zzc3hks1.js} +3 -3
- package/dist/lead-c0pjcaw4.js +79 -0
- package/dist/{maintenance-kbme3qy9.js → maintenance-kqsxzpzx.js} +1 -1
- package/dist/{oauth-refresh-sweep-xysj4yse.js → oauth-refresh-sweep-7qt0g55z.js} +8 -3
- package/dist/{onboard-p6q0vz97.js → onboard-k7x13fqg.js} +121 -8
- package/dist/{opencode-adapter-esv3k9yn.js → opencode-adapter-tqvrtter.js} +5 -5
- package/dist/{otel-impl-54qhqh1z.js → otel-impl-sqkf6k3b.js} +97 -97
- package/dist/{pi-mono-adapter-mymbwhj0.js → pi-mono-adapter-m2qnafxm.js} +89 -14
- package/dist/{pricing-refresh-yb75wv33.js → pricing-refresh-wkpwhgvs.js} +3 -3
- package/dist/{rbac-roles-dexhc9x8.js → rbac-roles-dpn0c0wj.js} +7 -4
- package/dist/{rbac-roles-1vp2mw4p.js → rbac-roles-wk7xd6a6.js} +2 -2
- package/dist/{render-v2-tjay5hhf.js → render-v2-ex2m4g2k.js} +3 -3
- package/dist/{resume-8ayf37g5.js → resume-725g9b0b.js} +7 -7
- package/dist/{runtime-hqe5cqcd.js → runtime-kajas15g.js} +1 -1
- package/dist/{session-access-fdhp987s.js → session-access-0j2ezjje.js} +8 -4
- package/dist/{session-source-backfill-qgtc86z1.js → session-source-backfill-62202awe.js} +2 -2
- package/dist/{setup-4rrmqcq3.js → setup-9sj11ax6.js} +1 -1
- package/dist/{virtual-modules-52km00d6.js → virtual-modules-c6fcq6zr.js} +2 -2
- package/dist/{work-objects-p28fgd70.js → work-objects-0y07495y.js} +20 -20
- package/dist/worker-d4q9sqbc.js +79 -0
- package/openapi.json +1536 -407
- package/package.json +7 -5
- package/src/be/automation-preflight.ts +2 -0
- package/src/be/connector-codes.ts +65 -22
- package/src/be/db/api-keys.ts +9 -0
- package/src/be/db/workflow-runs.ts +36 -5
- package/src/be/db.ts +80 -22
- package/src/be/memory/boot-reembed.ts +4 -1
- package/src/be/memory/constants.ts +6 -0
- package/src/be/memory/embedding-recovery.ts +48 -0
- package/src/be/memory/index-content.ts +5 -2
- package/src/be/memory/providers/openai-embedding.ts +65 -14
- package/src/be/memory/task-learning.ts +257 -0
- package/src/be/memory/types.ts +13 -2
- package/src/be/migrations/245_script_executor.sql +3 -0
- package/src/be/migrations/246_connector_code_kind.sql +11 -0
- package/src/be/oauth-refresh-sweep.ts +2 -1
- package/src/be/onboarding.ts +125 -15
- package/src/be/rbac-roles.ts +4 -1
- package/src/be/scripts/boot-reembed.ts +2 -0
- package/src/be/scripts/db.ts +14 -4
- package/src/be/scripts/embeddings.ts +4 -2
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +9 -3
- package/src/be/seed/agent-fs-provision.ts +75 -14
- package/src/be/seed-skills/index.ts +7 -0
- package/src/be/swarm-config-guard.ts +3 -0
- package/src/cli.tsx +9 -0
- package/src/comb/config.ts +6 -1
- package/src/commands/onboard/agent-fs-version.ts +5 -0
- package/src/commands/onboard/compose-generator.ts +117 -4
- package/src/commands/onboard/env-generator.ts +9 -0
- package/src/commands/onboard/tei-image.ts +12 -0
- package/src/commands/onboard/types.ts +7 -0
- package/src/commands/onboard.tsx +11 -1
- package/src/commands/provider-credentials.ts +2 -1
- package/src/commands/runner.ts +14 -1
- package/src/heartbeat/heartbeat.ts +14 -1
- package/src/heartbeat/script-runner-probe.ts +47 -0
- package/src/http/agentfs-proxy.ts +369 -0
- package/src/http/all-routes.ts +1 -0
- package/src/http/api-keys.ts +24 -9
- package/src/http/codex-oauth-device.ts +8 -1
- package/src/http/fs.ts +64 -10
- package/src/http/idempotency-key.ts +1 -1
- package/src/http/inbox-state.ts +27 -1
- package/src/http/index.ts +7 -4
- package/src/http/memory.ts +7 -4
- package/src/http/onboarding.ts +139 -11
- package/src/http/pages-public.ts +38 -5
- package/src/http/scripts.ts +27 -0
- package/src/http/session-access.ts +24 -0
- package/src/http/sessions.ts +10 -6
- package/src/http/tasks.ts +85 -11
- package/src/http/telemetry-ui.ts +1 -1
- package/src/http/user-roles.ts +4 -1
- package/src/http/users.ts +272 -3
- package/src/http/utils.ts +22 -3
- package/src/http/workflows.ts +10 -0
- package/src/http/x.ts +5 -0
- package/src/prompts/base-prompt.ts +45 -10
- package/src/prompts/session-templates.ts +43 -5
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/codex-adapter.ts +6 -1
- package/src/providers/cursor-adapter.ts +1 -1
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +99 -14
- package/src/rbac/legacy-policy.ts +1 -0
- package/src/rbac/permissions.ts +4 -0
- package/src/scheduler/scheduler.ts +2 -1
- 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 +9 -2
- package/src/scripts-runtime/types/stdlib.d.ts +9 -1
- package/src/scripts-runtime/types/swarm-sdk.d.ts +9 -1
- package/src/tests/agent-fs-provision-seeder.test.ts +261 -92
- package/src/tests/agentfs-proxy.test.ts +1106 -0
- package/src/tests/api-key-status-by-suffix.test.ts +242 -0
- package/src/tests/base-prompt.test.ts +139 -4
- package/src/tests/codex-adapter.test.ts +46 -8
- package/src/tests/codex-oauth-device.test.ts +12 -1
- package/src/tests/comb-config-guard.test.ts +20 -0
- package/src/tests/comb-links.test.ts +79 -1
- package/src/tests/comb-status.test.ts +44 -0
- package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
- package/src/tests/credential-check.test.ts +4 -2
- 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/fetch-resolved-env.test.ts +16 -2
- package/src/tests/fixtures/onboard/baseline-states.ts +68 -0
- package/src/tests/fixtures/onboard/content.compose.yml.txt +190 -0
- package/src/tests/fixtures/onboard/content.env.txt +29 -0
- package/src/tests/fixtures/onboard/dev.compose.yml.txt +155 -0
- package/src/tests/fixtures/onboard/dev.env.txt +28 -0
- package/src/tests/fixtures/onboard/full-all.compose.yml.txt +582 -0
- package/src/tests/fixtures/onboard/full-all.env.txt +59 -0
- package/src/tests/fixtures/onboard/full.compose.yml.txt +435 -0
- package/src/tests/fixtures/onboard/full.env.txt +36 -0
- package/src/tests/fixtures/onboard/research.compose.yml.txt +155 -0
- package/src/tests/fixtures/onboard/research.env.txt +28 -0
- package/src/tests/fixtures/onboard/solo.compose.yml.txt +85 -0
- package/src/tests/fixtures/onboard/solo.env.txt +26 -0
- package/src/tests/heartbeat-checklist.test.ts +89 -0
- package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
- package/src/tests/http-log-scrubbing.test.ts +34 -1
- package/src/tests/http-task-write-ownership.test.ts +5 -1
- package/src/tests/invites-http.test.ts +464 -0
- package/src/tests/memory-embedding-input-cap.test.ts +122 -1
- package/src/tests/memory-embedding-recovery.test.ts +137 -0
- package/src/tests/oauth-refresh-sweep.test.ts +34 -1
- package/src/tests/onboard-compose.test.ts +162 -0
- package/src/tests/onboard-env.test.ts +24 -0
- package/src/tests/onboard-non-interactive.test.ts +29 -0
- package/src/tests/onboard-tei-image.test.ts +36 -0
- package/src/tests/onboarding.test.ts +451 -4
- package/src/tests/openai-embedding-provider.test.ts +105 -2
- package/src/tests/opencode-adapter.test.ts +2 -1
- 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-mono-session-cost-on-abort.test.ts +270 -0
- package/src/tests/pi-native-mcp.test.ts +13 -1
- package/src/tests/pi-tool-exposure.test.ts +8 -8
- package/src/tests/preload-env.test.ts +4 -0
- package/src/tests/preload.ts +4 -0
- package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
- package/src/tests/prompt-template-session.test.ts +20 -3
- package/src/tests/rbac-admission-e2e.test.ts +22 -6
- package/src/tests/rbac-admission.test.ts +342 -4
- package/src/tests/rbac-engine.test.ts +1 -0
- package/src/tests/rbac-roles.test.ts +9 -1
- package/src/tests/request-composition-derive.test.ts +329 -0
- package/src/tests/script-connections.test.ts +2 -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/scripts-external-api.test.ts +45 -0
- package/src/tests/sdk-allowlist.test.ts +3 -2
- package/src/tests/self-improvement.test.ts +4 -4
- package/src/tests/send-task-requester-gate.test.ts +64 -3
- package/src/tests/sessions-move.test.ts +39 -1
- package/src/tests/store-progress-learning.test.ts +381 -0
- package/src/tests/ui-logs-parser.test.ts +180 -0
- package/src/tests/whoami-route.test.ts +41 -0
- package/src/tests/workflow-engine-v2.test.ts +116 -1
- 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-swarm-script.test.ts +34 -0
- package/src/tools/inject-learning.ts +1 -1
- package/src/tools/memory-edit.ts +1 -1
- package/src/tools/memory-search.ts +1 -1
- 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 +71 -1
- package/src/tools/utils.ts +12 -1
- package/src/tools/workflows/trigger-workflow.ts +104 -10
- package/src/types.ts +12 -1
- package/src/utils/constants.ts +39 -0
- package/src/utils/credentials.ts +5 -2
- package/src/utils/task-attachment-links.ts +15 -3
- package/src/workflows/engine.ts +18 -16
- 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/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/swarm-docs/config.json +14 -0
- package/templates/skills/swarm-docs/content.md +144 -0
- package/dist/handlers-eqsnmv95.js +0 -41
- package/dist/lead-23e7z59t.js +0 -79
- package/dist/worker-e3w7vye1.js +0 -79
- package/dist/{azure-openai-responses-9kfwhmn7.js → azure-openai-responses-43asa23s.js} +0 -0
- package/dist/{node-vxx896fa.js → node-t28cc56b.js} +0 -0
- package/dist/{openai-codex-responses-79s8xnbh.js → openai-codex-responses-jhr3sjtm.js} +3 -3
- package/dist/{openai-completions-tdbyts0x.js → openai-completions-gs6yn37k.js} +3 -3
- /package/dist/{openai-responses-dm3t5vqp.js → openai-responses-jqm9vwwk.js} +0 -0
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
getWorkflowRunStatus,
|
|
18
18
|
getChildWorkflowRunId,
|
|
19
19
|
isParentStepAttemptCurrent,
|
|
20
|
+
emitRunFinished,
|
|
20
21
|
createForeachChildSteps,
|
|
21
22
|
init_workflow_runs,
|
|
22
23
|
isApiOnlyConfigKey,
|
|
@@ -55,30 +56,30 @@ import {
|
|
|
55
56
|
releaseApprovalCancellationNotificationClaim2,
|
|
56
57
|
updateApprovalRequestNotifications2,
|
|
57
58
|
init_db3
|
|
58
|
-
} from "./cli-
|
|
59
|
+
} from "./cli-qvaa1gjp.js";
|
|
59
60
|
import {
|
|
60
61
|
isMultiRuntimeEnabled
|
|
61
62
|
} from "./cli-e8xyjvfc.js";
|
|
62
63
|
import {
|
|
63
64
|
getSlackApp2
|
|
64
|
-
} from "./cli-
|
|
65
|
+
} from "./cli-thsaq4pd.js";
|
|
65
66
|
import {
|
|
66
67
|
externalChannelToolError2,
|
|
67
68
|
isBlockExternalEnabled2,
|
|
68
69
|
getChannelBlockReason2
|
|
69
|
-
} from "./cli-
|
|
70
|
+
} from "./cli-vhpckzvp.js";
|
|
70
71
|
import {
|
|
71
72
|
DEFAULT_MODEL,
|
|
72
73
|
resolveCredential
|
|
73
|
-
} from "./cli-
|
|
74
|
+
} from "./cli-ekptgk2m.js";
|
|
74
75
|
import {
|
|
75
76
|
revokeRuntimeTokensForRuntime,
|
|
76
77
|
init_users
|
|
77
|
-
} from "./cli-
|
|
78
|
+
} from "./cli-nf6k60sn.js";
|
|
78
79
|
import {
|
|
79
80
|
TERMINAL_TASK_STATUSES,
|
|
80
81
|
init_types
|
|
81
|
-
} from "./cli-
|
|
82
|
+
} from "./cli-s504c3w7.js";
|
|
82
83
|
import {
|
|
83
84
|
getSlackConfiguration,
|
|
84
85
|
isSlackConfigured,
|
|
@@ -87,7 +88,7 @@ import {
|
|
|
87
88
|
import {
|
|
88
89
|
selectCredential,
|
|
89
90
|
init_credentials
|
|
90
|
-
} from "./cli-
|
|
91
|
+
} from "./cli-gt4h8cxw.js";
|
|
91
92
|
import {
|
|
92
93
|
DEFAULT_OPENROUTER_BASE_URL,
|
|
93
94
|
getOpenRouterBaseUrl,
|
|
@@ -99,7 +100,7 @@ import {
|
|
|
99
100
|
init_template,
|
|
100
101
|
resolveTemplate,
|
|
101
102
|
init_resolver
|
|
102
|
-
} from "./cli-
|
|
103
|
+
} from "./cli-b41p764a.js";
|
|
103
104
|
import {
|
|
104
105
|
init_zod
|
|
105
106
|
} from "./cli-4chz1hye.js";
|
|
@@ -122,7 +123,7 @@ import {
|
|
|
122
123
|
import {
|
|
123
124
|
getAppUrl,
|
|
124
125
|
init_constants2
|
|
125
|
-
} from "./cli-
|
|
126
|
+
} from "./cli-3cywb44q.js";
|
|
126
127
|
import {
|
|
127
128
|
isEnvFlagEnabled,
|
|
128
129
|
init_env_flag
|
|
@@ -149,7 +150,7 @@ async function notifyAutomationPreflightFailure(preflight) {
|
|
|
149
150
|
return;
|
|
150
151
|
}
|
|
151
152
|
try {
|
|
152
|
-
const { getSlackApp } = await import("./app-
|
|
153
|
+
const { getSlackApp } = await import("./app-d53yhykk.js");
|
|
153
154
|
const app = getSlackApp();
|
|
154
155
|
if (!app) {
|
|
155
156
|
console.warn("[Automation Preflight] Slack not available, cannot send notification");
|
|
@@ -176,6 +177,7 @@ init_config();
|
|
|
176
177
|
init_env_flag();
|
|
177
178
|
init_secret_scrubber();
|
|
178
179
|
init_db3();
|
|
180
|
+
init_workflow_runs();
|
|
179
181
|
init_oauth();
|
|
180
182
|
init_scrub_json();
|
|
181
183
|
var NEEDS_SETUP_PREFIX = "needs_setup:";
|
|
@@ -438,6 +440,7 @@ async function recordWorkflowPreflightFailure(input) {
|
|
|
438
440
|
timestamp,
|
|
439
441
|
timestamp
|
|
440
442
|
]);
|
|
443
|
+
emitRunFinished(runId, input.workflowId, "failed");
|
|
441
444
|
return {
|
|
442
445
|
runId,
|
|
443
446
|
recorded: await isFirstWorkflowPreflightFailureToday(input.workflowId, runId, now)
|
|
@@ -3812,6 +3815,18 @@ function resolveNodeTimeoutMs(node) {
|
|
|
3812
3815
|
return config.timeout;
|
|
3813
3816
|
return DEFAULT_NODE_TIMEOUT_MS;
|
|
3814
3817
|
}
|
|
3818
|
+
function startStepDeadline(timeoutMs) {
|
|
3819
|
+
const controller = new AbortController;
|
|
3820
|
+
let timer;
|
|
3821
|
+
const expired = new Promise((_, reject) => {
|
|
3822
|
+
timer = setTimeout(() => {
|
|
3823
|
+
const error = new Error(`Step timed out after ${timeoutMs}ms`);
|
|
3824
|
+
reject(error);
|
|
3825
|
+
controller.abort(error);
|
|
3826
|
+
}, timeoutMs);
|
|
3827
|
+
});
|
|
3828
|
+
return { signal: controller.signal, expired, clear: () => clearTimeout(timer) };
|
|
3829
|
+
}
|
|
3815
3830
|
|
|
3816
3831
|
// src/workflows/readiness.ts
|
|
3817
3832
|
async function findWorkflowReadinessProblems(definition, registry) {
|
|
@@ -4011,8 +4026,9 @@ async function startWorkflowExecution2(workflow, triggerData, registry, options
|
|
|
4011
4026
|
if (initial.status)
|
|
4012
4027
|
return runId;
|
|
4013
4028
|
const walk = walkGraph(workflow.definition, runId, initial.context, findEntryNodes(workflow.definition), registry, workflow.id, getSecretInputKeys(workflow.input), options);
|
|
4014
|
-
if (options.parentStepId) {
|
|
4015
|
-
|
|
4029
|
+
if (options.parentStepId || options.detach) {
|
|
4030
|
+
const kind = options.parentStepId ? "Child" : "Detached";
|
|
4031
|
+
walk.catch((err) => console.error(`[workflows] ${kind} workflow run ${runId} failed:`, err));
|
|
4016
4032
|
return runId;
|
|
4017
4033
|
}
|
|
4018
4034
|
await walk;
|
|
@@ -4487,17 +4503,17 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
|
|
|
4487
4503
|
requestedByUserId: options.requestedByUserId,
|
|
4488
4504
|
inputCtx: interpolationCtx
|
|
4489
4505
|
};
|
|
4490
|
-
const
|
|
4506
|
+
const deadline = startStepDeadline(resolveNodeTimeoutMs(node));
|
|
4491
4507
|
let result;
|
|
4492
4508
|
try {
|
|
4493
4509
|
result = await Promise.race([
|
|
4494
4510
|
executor.run({
|
|
4495
4511
|
config: interpolatedConfig,
|
|
4496
4512
|
context: executionCtx,
|
|
4497
|
-
meta
|
|
4513
|
+
meta: { ...meta, signal: deadline.signal }
|
|
4498
4514
|
}),
|
|
4499
|
-
|
|
4500
|
-
]);
|
|
4515
|
+
deadline.expired
|
|
4516
|
+
]).finally(deadline.clear);
|
|
4501
4517
|
} catch (err) {
|
|
4502
4518
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
4503
4519
|
const retryPolicy = node.retry || executor.retryPolicy;
|
|
@@ -4536,7 +4552,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
|
|
|
4536
4552
|
}
|
|
4537
4553
|
const waiting = await checkpointStepWaiting(runId, stepId, ctx);
|
|
4538
4554
|
if (waiting && result.waitFor === "workflow.child.finished") {
|
|
4539
|
-
const { resumeFromChildRun } = await import("./resume-
|
|
4555
|
+
const { resumeFromChildRun } = await import("./resume-725g9b0b.js");
|
|
4540
4556
|
await resumeFromChildRun(stepId, registry);
|
|
4541
4557
|
}
|
|
4542
4558
|
return { outcome: waiting ? "waiting" : "completed", successors: [] };
|
|
@@ -4741,11 +4757,6 @@ function scriptBodyInterpolationError(nodeId, tokens) {
|
|
|
4741
4757
|
const renderedTokens = [...new Set(tokens)].map((token) => `{{${token}}}`).join(", ");
|
|
4742
4758
|
return `Script body interpolation failed for node "${nodeId}": unresolved or disallowed token(s): ${renderedTokens}. Executable source may interpolate only input, workflow, swarm, or run values. Pass dynamic trigger or upstream values through config.args and read them from argv.`;
|
|
4743
4759
|
}
|
|
4744
|
-
function timeoutPromise(ms) {
|
|
4745
|
-
return new Promise((_, reject) => {
|
|
4746
|
-
setTimeout(() => reject(new Error(`Step timed out after ${ms}ms`)), ms);
|
|
4747
|
-
});
|
|
4748
|
-
}
|
|
4749
4760
|
|
|
4750
4761
|
// src/workflows/executors/foreach.ts
|
|
4751
4762
|
init_zod();
|
|
@@ -4998,7 +5009,7 @@ async function runForeachDrive(runId, parentNodeId, registry) {
|
|
|
4998
5009
|
if (drive.successors.length > 0) {
|
|
4999
5010
|
await walkGraph(workflow.definition, runId, ctx, drive.successors, registry, workflow.id, getSecretInputKeys(workflow.input));
|
|
5000
5011
|
} else {
|
|
5001
|
-
const { finalizeOrWait } = await import("./resume-
|
|
5012
|
+
const { finalizeOrWait } = await import("./resume-725g9b0b.js");
|
|
5002
5013
|
await finalizeOrWait(runId);
|
|
5003
5014
|
}
|
|
5004
5015
|
return drive;
|
|
@@ -5114,25 +5125,21 @@ async function startChild(input) {
|
|
|
5114
5125
|
}
|
|
5115
5126
|
}
|
|
5116
5127
|
const executor = registry.get(bodyType);
|
|
5117
|
-
const
|
|
5118
|
-
let timer;
|
|
5128
|
+
const deadline = startStepDeadline(resolveNodeTimeoutMs({ type: bodyType, config }));
|
|
5119
5129
|
let result;
|
|
5120
5130
|
try {
|
|
5121
5131
|
result = await Promise.race([
|
|
5122
5132
|
executor.run({
|
|
5123
5133
|
config,
|
|
5124
5134
|
context: { ...ctx, ...bodyCtx },
|
|
5125
|
-
meta: { ...meta, stepId: child.id, nodeId: child.nodeId }
|
|
5135
|
+
meta: { ...meta, stepId: child.id, nodeId: child.nodeId, signal: deadline.signal }
|
|
5126
5136
|
}),
|
|
5127
|
-
|
|
5128
|
-
timer = setTimeout(() => reject(new Error(`Step timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
5129
|
-
})
|
|
5137
|
+
deadline.expired
|
|
5130
5138
|
]);
|
|
5131
5139
|
} catch (err) {
|
|
5132
5140
|
return { status: "failed", error: err instanceof Error ? err.message : String(err) };
|
|
5133
5141
|
} finally {
|
|
5134
|
-
|
|
5135
|
-
clearTimeout(timer);
|
|
5142
|
+
deadline.clear();
|
|
5136
5143
|
}
|
|
5137
5144
|
if (result.status === "failed") {
|
|
5138
5145
|
return {
|
|
@@ -5145,7 +5152,7 @@ async function startChild(input) {
|
|
|
5145
5152
|
const parked = await getDbClient2().get("UPDATE workflow_run_steps SET status = 'waiting' WHERE id = ? AND status = 'running' RETURNING id", [child.id]);
|
|
5146
5153
|
if (parked && result.waitFor === "workflow.child.finished") {
|
|
5147
5154
|
ownedChildren.delete(child.id);
|
|
5148
|
-
const { resumeFromChildRun } = await import("./resume-
|
|
5155
|
+
const { resumeFromChildRun } = await import("./resume-725g9b0b.js");
|
|
5149
5156
|
await resumeFromChildRun(child.id, registry);
|
|
5150
5157
|
}
|
|
5151
5158
|
return null;
|
|
@@ -98,7 +98,7 @@ import {
|
|
|
98
98
|
init_src,
|
|
99
99
|
selectCredential,
|
|
100
100
|
init_credentials
|
|
101
|
-
} from "./cli-
|
|
101
|
+
} from "./cli-gt4h8cxw.js";
|
|
102
102
|
import {
|
|
103
103
|
__export
|
|
104
104
|
} from "./cli-242037k3.js";
|
|
@@ -13228,9 +13228,9 @@ function registerBunOAuthFlows() {
|
|
|
13228
13228
|
}
|
|
13229
13229
|
|
|
13230
13230
|
// node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js
|
|
13231
|
-
var anthropicMessagesApi = () => lazyApi(() => import("./anthropic-messages-
|
|
13231
|
+
var anthropicMessagesApi = () => lazyApi(() => import("./anthropic-messages-n4cby1rz.js"));
|
|
13232
13232
|
// node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js
|
|
13233
|
-
var azureOpenAIResponsesApi = () => lazyApi(() => import("./azure-openai-responses-
|
|
13233
|
+
var azureOpenAIResponsesApi = () => lazyApi(() => import("./azure-openai-responses-43asa23s.js"));
|
|
13234
13234
|
// node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js
|
|
13235
13235
|
var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-mk9vcpe1.js"));
|
|
13236
13236
|
// node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js
|
|
@@ -13238,11 +13238,11 @@ var googleVertexApi = () => lazyApi(() => import("./google-vertex-q580kz8k.js"))
|
|
|
13238
13238
|
// node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js
|
|
13239
13239
|
var mistralConversationsApi = () => lazyApi(() => import("./mistral-conversations-sd0xf1tn.js"));
|
|
13240
13240
|
// node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js
|
|
13241
|
-
var openAICodexResponsesApi = () => lazyApi(() => import("./openai-codex-responses-
|
|
13241
|
+
var openAICodexResponsesApi = () => lazyApi(() => import("./openai-codex-responses-jhr3sjtm.js"));
|
|
13242
13242
|
// node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js
|
|
13243
|
-
var openAICompletionsApi = () => lazyApi(() => import("./openai-completions-
|
|
13243
|
+
var openAICompletionsApi = () => lazyApi(() => import("./openai-completions-gs6yn37k.js"));
|
|
13244
13244
|
// node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js
|
|
13245
|
-
var openAIResponsesApi = () => lazyApi(() => import("./openai-responses-
|
|
13245
|
+
var openAIResponsesApi = () => lazyApi(() => import("./openai-responses-jqm9vwwk.js"));
|
|
13246
13246
|
// node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.js
|
|
13247
13247
|
var piMessagesApi = () => lazyApi(() => import("./pi-messages-3nf8bq1a.js"));
|
|
13248
13248
|
// node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CONTROLLER_COMMAND_TIMEOUT_MS,
|
|
5
5
|
RuntimeHandleSchema,
|
|
6
6
|
ControllerStatusResultSchema
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-rg4b2g6j.js";
|
|
8
8
|
import {
|
|
9
9
|
getDbClient2,
|
|
10
10
|
isRuntimePoolsEnabled,
|
|
@@ -21,11 +21,11 @@ import {
|
|
|
21
21
|
upsertSwarmConfig2,
|
|
22
22
|
getResolvedConfig2,
|
|
23
23
|
init_db3
|
|
24
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-qvaa1gjp.js";
|
|
25
25
|
import {
|
|
26
26
|
createWorkerTaskFollowUp,
|
|
27
27
|
canClaim
|
|
28
|
-
} from "./cli-
|
|
28
|
+
} from "./cli-pzafyqtk.js";
|
|
29
29
|
import {
|
|
30
30
|
getRuntimeController2,
|
|
31
31
|
getRuntimeControllerTarget2,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
getPoolForAgent2,
|
|
37
37
|
resolvePoolDelivery2,
|
|
38
38
|
init_db
|
|
39
|
-
} from "./cli-
|
|
39
|
+
} from "./cli-6vwjsetx.js";
|
|
40
40
|
import {
|
|
41
41
|
runtimeStaleThresholdMinutes,
|
|
42
42
|
getRuntimeInstanceById,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
markRuntimeTerminated,
|
|
45
45
|
listRuntimeInstancesForAgent,
|
|
46
46
|
listRuntimeInstancesForPool
|
|
47
|
-
} from "./cli-
|
|
47
|
+
} from "./cli-dv11pgpv.js";
|
|
48
48
|
import {
|
|
49
49
|
isMultiRuntimeEnabled
|
|
50
50
|
} from "./cli-e8xyjvfc.js";
|
|
@@ -55,20 +55,28 @@ import {
|
|
|
55
55
|
import {
|
|
56
56
|
import_websocket
|
|
57
57
|
} from "./cli-b2mz5mjc.js";
|
|
58
|
+
import {
|
|
59
|
+
resolveWorkerApiUrl,
|
|
60
|
+
init_worker_api_url
|
|
61
|
+
} from "./cli-wtjg6je3.js";
|
|
62
|
+
import {
|
|
63
|
+
buildImageTemplate,
|
|
64
|
+
init_dispatch
|
|
65
|
+
} from "./cli-tf1n0r0b.js";
|
|
58
66
|
import {
|
|
59
67
|
canProvisionKind,
|
|
60
68
|
createRuntimeProvider,
|
|
61
69
|
init_runtime_providers
|
|
62
|
-
} from "./cli-
|
|
70
|
+
} from "./cli-m52t4cta.js";
|
|
63
71
|
import {
|
|
64
72
|
mintRuntimeToken,
|
|
65
73
|
init_users
|
|
66
|
-
} from "./cli-
|
|
74
|
+
} from "./cli-nf6k60sn.js";
|
|
67
75
|
import {
|
|
68
76
|
TERMINAL_TASK_STATUSES,
|
|
69
77
|
isTerminalTaskStatus,
|
|
70
78
|
init_types
|
|
71
|
-
} from "./cli-
|
|
79
|
+
} from "./cli-s504c3w7.js";
|
|
72
80
|
import {
|
|
73
81
|
init_zod
|
|
74
82
|
} from "./cli-4chz1hye.js";
|
|
@@ -81,14 +89,6 @@ import {
|
|
|
81
89
|
realtimeBus,
|
|
82
90
|
init_bus
|
|
83
91
|
} from "./cli-syfdvhkc.js";
|
|
84
|
-
import {
|
|
85
|
-
resolveWorkerApiUrl,
|
|
86
|
-
init_worker_api_url
|
|
87
|
-
} from "./cli-7a6p4e65.js";
|
|
88
|
-
import {
|
|
89
|
-
buildImageTemplate,
|
|
90
|
-
init_dispatch
|
|
91
|
-
} from "./cli-tf1n0r0b.js";
|
|
92
92
|
import {
|
|
93
93
|
RUNTIME_LABELS,
|
|
94
94
|
init_types2
|
|
@@ -524,7 +524,7 @@ async function recoverSessions(runtimeId, reason) {
|
|
|
524
524
|
}
|
|
525
525
|
if (!sessions.length)
|
|
526
526
|
return;
|
|
527
|
-
const { remediateTaskForDeadRuntime } = await import("./heartbeat-
|
|
527
|
+
const { remediateTaskForDeadRuntime } = await import("./heartbeat-f928aqyp.js");
|
|
528
528
|
for (const session of sessions) {
|
|
529
529
|
try {
|
|
530
530
|
const task = await getTaskById2(session.taskId);
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
applyOpenRouterBaseUrlOverride2,
|
|
16
16
|
buildOpenAICompatibleProviderBlock2
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-dgtfysne.js";
|
|
18
18
|
import {
|
|
19
19
|
fetchInstalledMcpServers
|
|
20
20
|
} from "./cli-bst1vp7e.js";
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
import {
|
|
45
45
|
init_package,
|
|
46
46
|
package_default
|
|
47
|
-
} from "./cli-
|
|
47
|
+
} from "./cli-swkx9jm2.js";
|
|
48
48
|
import {
|
|
49
49
|
scrubSecrets,
|
|
50
50
|
init_secret_scrubber
|
|
@@ -750,9 +750,10 @@ async function fetchAvailableIndices(env, apiUrl, apiKey, poolVars = CREDENTIAL_
|
|
|
750
750
|
for (const envVar of poolVars) {
|
|
751
751
|
const val = env[envVar];
|
|
752
752
|
if (val) {
|
|
753
|
-
const
|
|
753
|
+
const keySuffixes = splitCredentialPool(val).map((key) => key.slice(-5));
|
|
754
|
+
const totalKeys = keySuffixes.length;
|
|
754
755
|
try {
|
|
755
|
-
const resp = await fetch(`${apiUrl}/api/keys/available?keyType=${encodeURIComponent(envVar)}&totalKeys=${totalKeys}${modelParam}`, { headers: { Authorization: `Bearer ${apiKey}` } });
|
|
756
|
+
const resp = await fetch(`${apiUrl}/api/keys/available?keyType=${encodeURIComponent(envVar)}&totalKeys=${totalKeys}${modelParam}&keySuffixes=${encodeURIComponent(keySuffixes.join(","))}`, { headers: { Authorization: `Bearer ${apiKey}` } });
|
|
756
757
|
if (resp.ok) {
|
|
757
758
|
const data = await resp.json();
|
|
758
759
|
availableIndicesMap[envVar] = {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./cli-
|
|
2
|
+
require_src2
|
|
3
|
+
} from "./cli-wdxgsdz5.js";
|
|
4
4
|
import {
|
|
5
5
|
__toESM
|
|
6
6
|
} from "./cli-242037k3.js";
|
|
7
7
|
|
|
8
8
|
// src/providers/otel-env.ts
|
|
9
|
-
var import_api = __toESM(
|
|
9
|
+
var import_api = __toESM(require_src2(), 1);
|
|
10
10
|
function isTruthy(value) {
|
|
11
11
|
const v = (value ?? "").toLowerCase();
|
|
12
12
|
return v === "1" || v === "true" || v === "yes" || v === "on";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Anthropic
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-prcyzecg.js";
|
|
4
4
|
import {
|
|
5
5
|
contextBoundNoteThreshold,
|
|
6
6
|
createContextBoundNote
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-dscnhn18.js";
|
|
8
8
|
import {
|
|
9
9
|
checkToolLoop
|
|
10
10
|
} from "./cli-0726awxw.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
selectCredential,
|
|
26
26
|
init_credentials
|
|
27
|
-
} from "./cli-
|
|
27
|
+
} from "./cli-gt4h8cxw.js";
|
|
28
28
|
import {
|
|
29
29
|
runtimeCatalogModel,
|
|
30
30
|
init_runtime_model_catalog
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
invalidateTelemetryUserRole,
|
|
5
5
|
init_telemetry_identity,
|
|
6
6
|
init_db3
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-qvaa1gjp.js";
|
|
8
8
|
import {
|
|
9
9
|
PermissionVerbSchema,
|
|
10
10
|
init_rbac
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-k4awgvzm.js";
|
|
12
12
|
import {
|
|
13
13
|
init_env_flag
|
|
14
14
|
} from "./cli-cebvbc9t.js";
|
|
@@ -276,7 +276,10 @@ var init_rbac_roles = __esm(() => {
|
|
|
276
276
|
"task.fs.mutate",
|
|
277
277
|
"favorite.write.own",
|
|
278
278
|
"session.share",
|
|
279
|
-
"session.presence"
|
|
279
|
+
"session.presence",
|
|
280
|
+
"task.steer.own",
|
|
281
|
+
"comb.presence",
|
|
282
|
+
"fs.join.own"
|
|
280
283
|
]
|
|
281
284
|
},
|
|
282
285
|
{
|
|
@@ -285,7 +288,7 @@ var init_rbac_roles = __esm(() => {
|
|
|
285
288
|
description: "Read-only: no task, approval or script writes.",
|
|
286
289
|
isBuiltin: true,
|
|
287
290
|
grantsAll: false,
|
|
288
|
-
verbs: ["favorite.write.own", "session.presence"]
|
|
291
|
+
verbs: ["favorite.write.own", "session.presence", "comb.presence", "fs.join.own"]
|
|
289
292
|
}
|
|
290
293
|
];
|
|
291
294
|
PRIMARY_ROLE_NAMES2 = ["admin", "requester", "viewer"];
|
|
@@ -9,21 +9,21 @@ import {
|
|
|
9
9
|
init_active_sessions,
|
|
10
10
|
getSteeringMessageById2,
|
|
11
11
|
init_db3
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-qvaa1gjp.js";
|
|
13
13
|
import {
|
|
14
14
|
getUserGrant2,
|
|
15
15
|
init_rbac_roles
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-hpkvgdad.js";
|
|
17
17
|
import {
|
|
18
18
|
findUserById,
|
|
19
19
|
findUserByExternalId,
|
|
20
20
|
init_users
|
|
21
|
-
} from "./cli-
|
|
21
|
+
} from "./cli-nf6k60sn.js";
|
|
22
22
|
import {
|
|
23
23
|
isRbacEnabled,
|
|
24
24
|
can,
|
|
25
25
|
init_rbac
|
|
26
|
-
} from "./cli-
|
|
26
|
+
} from "./cli-k4awgvzm.js";
|
|
27
27
|
import {
|
|
28
28
|
init_zod
|
|
29
29
|
} from "./cli-4chz1hye.js";
|
|
@@ -203,19 +203,33 @@ function wireHttpSpanLifecycle(res, span, getStatusCode, startTime) {
|
|
|
203
203
|
span.end();
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
|
+
function redactShareTokenInPath(pathname) {
|
|
207
|
+
const segments = pathname.split("/");
|
|
208
|
+
if (segments[1] === "invite" && segments[2]) {
|
|
209
|
+
segments[2] = "[REDACTED]";
|
|
210
|
+
return segments.join("/");
|
|
211
|
+
}
|
|
212
|
+
const at = segments[1] === "agentfs" ? 2 : 1;
|
|
213
|
+
if ((segments[at] === "share" || segments[at] === "site") && segments[at + 1]) {
|
|
214
|
+
segments[at + 1] = "[REDACTED]";
|
|
215
|
+
return segments.join("/");
|
|
216
|
+
}
|
|
217
|
+
return pathname;
|
|
218
|
+
}
|
|
206
219
|
function safeRequestUrlForLog(rawUrl) {
|
|
207
220
|
if (!rawUrl)
|
|
208
221
|
return "";
|
|
209
222
|
try {
|
|
210
223
|
const url = new URL(rawUrl, "http://localhost");
|
|
224
|
+
const pathname = redactShareTokenInPath(url.pathname);
|
|
211
225
|
const params = Array.from(url.searchParams.keys());
|
|
212
226
|
if (params.length === 0)
|
|
213
|
-
return
|
|
227
|
+
return pathname;
|
|
214
228
|
const redactedQuery = params.map((key) => `${key}=[REDACTED]`).join("&");
|
|
215
|
-
return `${
|
|
229
|
+
return `${pathname}?${redactedQuery}`;
|
|
216
230
|
} catch {
|
|
217
231
|
const pathOnly = rawUrl.split("?")[0] || rawUrl;
|
|
218
|
-
return scrubSecrets(pathOnly);
|
|
232
|
+
return scrubSecrets(redactShareTokenInPath(pathOnly));
|
|
219
233
|
}
|
|
220
234
|
}
|
|
221
235
|
async function agentWithCapacity(agent) {
|
|
@@ -503,7 +517,7 @@ function route(def) {
|
|
|
503
517
|
try {
|
|
504
518
|
const rawBody = def.body ? await parseBody(req, def.maxBodyBytes) : undefined;
|
|
505
519
|
if (def.session && "bodyTaskIds" in def.session) {
|
|
506
|
-
const { bodySessionDenial } = await import("./session-access-
|
|
520
|
+
const { bodySessionDenial } = await import("./session-access-0j2ezjje.js");
|
|
507
521
|
const denial = await bodySessionDenial(req, def.session.bodyTaskIds(rawBody));
|
|
508
522
|
if (denial) {
|
|
509
523
|
jsonError(res, denial, 403);
|
|
@@ -775,6 +789,20 @@ async function hasSessionWrite2(req, myAgentId, taskId) {
|
|
|
775
789
|
const access = await sessionAccessFor2(await resolveSessionActor2(req, myAgentId), taskId);
|
|
776
790
|
return hasSessionAccess(access, "write");
|
|
777
791
|
}
|
|
792
|
+
var NOT_YOUR_TASK_DENIED2 = "You can only change tasks you requested, or sessions shared with you to edit.";
|
|
793
|
+
async function deniesNonOwnerTaskWrite2(req, task) {
|
|
794
|
+
const auth = getRequestAuth(req);
|
|
795
|
+
if (auth?.kind !== "user" || !isRbacEnabled())
|
|
796
|
+
return false;
|
|
797
|
+
if (task.requestedByUserId === auth.userId)
|
|
798
|
+
return false;
|
|
799
|
+
if ((await getUserGrant2(auth.userId)).grantsAll)
|
|
800
|
+
return false;
|
|
801
|
+
const root = await getSessionRoot(task.id);
|
|
802
|
+
if (!root?.requestedByUserId)
|
|
803
|
+
return true;
|
|
804
|
+
return !hasSessionAccess(await sessionAccessForRoot(auth.userId, root), "write");
|
|
805
|
+
}
|
|
778
806
|
async function denyParentAttach2(req, res, myAgentId, parentTask, principal) {
|
|
779
807
|
const attach = can({
|
|
780
808
|
principal,
|
|
@@ -873,4 +901,4 @@ async function userAgentIdentityDenial2(req, def, pathSegments) {
|
|
|
873
901
|
return USER_AGENT_HEADER_DENIED;
|
|
874
902
|
}
|
|
875
903
|
|
|
876
|
-
export { duplicateGuardedQueryKey, warnIfCorsAllowsAnyOrigin, isOriginAllowedForCredentials, allowedCredentialRedirect, setCorsHeaders, parseQueryParams, getPathSegments, wireHttpSpanLifecycle, safeRequestUrlForLog, agentWithCapacity, RequestBodyTooLargeError, parseBody, BODY_TOO_LARGE, enforceContentLengthCap, json, jsonError, writeUnhandledError, triggerSchemaErrorResponse, deriveApiBaseUrl, httpServerSemconvAttributes, hasSessionAccess, getSessionRoot, sessionAccessForRoot, listActiveSessionShares, toSessionSharesState, setSessionShares, resolveTaskAuditUserId, resolveHttpAuditUserId, dashboardUserIdHeader, resolveHttpFavoriteOwner, resolveSessionActor2, sessionAccessFor2, SESSION_READ_DENIED2, canReadSession2, readableByFor2, SESSION_WRITE_DENIED2, hasSessionWrite2, denyParentAttach2, pathSessionDenial2, bodySessionDenial2, userAgentIdentityDenial2, runtimeInstanceHeader, bodyTask, bodyListTask, routeRegistry, isPublicRoute, findRoute, describeRequestRoute, route };
|
|
904
|
+
export { duplicateGuardedQueryKey, warnIfCorsAllowsAnyOrigin, isOriginAllowedForCredentials, allowedCredentialRedirect, setCorsHeaders, parseQueryParams, getPathSegments, wireHttpSpanLifecycle, redactShareTokenInPath, safeRequestUrlForLog, agentWithCapacity, RequestBodyTooLargeError, parseBody, BODY_TOO_LARGE, enforceContentLengthCap, json, jsonError, writeUnhandledError, triggerSchemaErrorResponse, deriveApiBaseUrl, httpServerSemconvAttributes, hasSessionAccess, getSessionRoot, sessionAccessForRoot, listActiveSessionShares, toSessionSharesState, setSessionShares, resolveTaskAuditUserId, resolveHttpAuditUserId, dashboardUserIdHeader, resolveHttpFavoriteOwner, resolveSessionActor2, sessionAccessFor2, SESSION_READ_DENIED2, canReadSession2, readableByFor2, SESSION_WRITE_DENIED2, hasSessionWrite2, NOT_YOUR_TASK_DENIED2, deniesNonOwnerTaskWrite2, denyParentAttach2, pathSessionDenial2, bodySessionDenial2, userAgentIdentityDenial2, runtimeInstanceHeader, bodyTask, bodyListTask, routeRegistry, isPublicRoute, findRoute, describeRequestRoute, route };
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
init_steering,
|
|
11
11
|
createLogEntry2,
|
|
12
12
|
init_db3
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-qvaa1gjp.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-thsaq4pd.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-pzafyqtk.js";
|
|
34
34
|
import {
|
|
35
35
|
resolveSlackUserId,
|
|
36
36
|
rewriteSlackMentions
|
|
37
|
-
} from "./cli-
|
|
37
|
+
} from "./cli-y4tdxsqb.js";
|
|
38
38
|
import {
|
|
39
39
|
findUserByExternalId,
|
|
40
40
|
init_users
|
|
41
|
-
} from "./cli-
|
|
41
|
+
} from "./cli-nf6k60sn.js";
|
|
42
42
|
import {
|
|
43
43
|
isSteeringEnabled2,
|
|
44
44
|
init_steering_enabled
|
|
@@ -306,6 +306,7 @@ var init_legacy_policy = __esm(() => {
|
|
|
306
306
|
"mcp-oauth.authorize.any": anyAuthenticated,
|
|
307
307
|
"kv.write.any": leadOrOwnNamespace,
|
|
308
308
|
"comb.presence": operatorOrUser,
|
|
309
|
+
"fs.join.own": anyAuthenticated,
|
|
309
310
|
"page.delete.any": leadOrResourceOwner,
|
|
310
311
|
"app.manage": anyAuthenticated,
|
|
311
312
|
"app.use": anyAuthenticated,
|
|
@@ -640,6 +641,10 @@ var init_permissions = __esm(() => {
|
|
|
640
641
|
description: "Use dashboard presence rooms for Comb drives.",
|
|
641
642
|
namespace: "comb"
|
|
642
643
|
},
|
|
644
|
+
"fs.join.own": {
|
|
645
|
+
description: "Join the swarm's shared agent-fs drive with your own account email.",
|
|
646
|
+
namespace: "fs"
|
|
647
|
+
},
|
|
643
648
|
"page.delete.any": {
|
|
644
649
|
description: "Delete a page the caller does not own.",
|
|
645
650
|
namespace: "page"
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
loadMcpConfig,
|
|
10
10
|
addMcpServerConfig,
|
|
11
11
|
removeMcpServerConfig
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-0w4e4v58.js";
|
|
13
13
|
import {
|
|
14
14
|
McpOAuthCredentialStore2,
|
|
15
15
|
McpSignInCancelledError2,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
McpServerLog2,
|
|
18
18
|
createDefaultTransport2,
|
|
19
19
|
McpServerConnection2
|
|
20
|
-
} from "./cli-
|
|
20
|
+
} from "./cli-0dqtv2jg.js";
|
|
21
21
|
|
|
22
22
|
// node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/cli.js
|
|
23
23
|
import { existsSync } from "node:fs";
|