@desplega.ai/agent-swarm 2.5.4 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/{acp-adapter-ek38cwsv.js → acp-adapter-ma1js5n7.js} +9 -9
- package/dist/{actions-92mepq03.js → actions-1vhmtvg9.js} +21 -21
- package/dist/{amp-adapter-9gaxg015.js → amp-adapter-sxqqvmdk.js} +4 -4
- package/dist/{app-ctn8gsgx.js → app-mwx1d5a9.js} +3 -3
- package/dist/{assistant-zyr5kz47.js → assistant-yx1p6g82.js} +30 -26
- package/dist/{boot-reembed-w75maga2.js → boot-reembed-5h37a2c2.js} +1 -1
- package/dist/{boot-reembed-dwzfttdr.js → boot-reembed-7h78vmvv.js} +2 -1
- package/dist/{boot-scrub-sweep-e9kq43kf.js → boot-scrub-sweep-8mawd4gw.js} +4 -4
- package/dist/{boot-seeds-x28v3fhb.js → boot-seeds-ca84dhnn.js} +4 -4
- package/dist/{claude-adapter-f0afqnne.js → claude-adapter-wqt4hfkq.js} +9 -9
- package/dist/{claude-managed-adapter-x81a7r65.js → claude-managed-adapter-6fjqtr2z.js} +2 -2
- package/dist/{claude-managed-setup-bqzwjd9x.js → claude-managed-setup-rqv98sea.js} +10 -3
- package/dist/{claude-sdk-session-7b7whkaq.js → claude-sdk-session-f29f3b2x.js} +11 -11
- package/dist/{cli-sxgtf5fw.js → cli-07q03xm2.js} +1 -1
- package/dist/{cli-kxpfx2xr.js → cli-0z1xjzwa.js} +2 -2
- package/dist/{cli-g9vd9ece.js → cli-1hhbzkbb.js} +14 -16
- package/dist/{cli-qqzmjxkf.js → cli-1m9x8dr5.js} +11 -6
- package/dist/{cli-jbnn4vxb.js → cli-2pvzmas1.js} +3 -3
- package/dist/{cli-x77gen2p.js → cli-2y7v133v.js} +7 -7
- package/dist/{cli-dew6x255.js → cli-39aet655.js} +2 -2
- package/dist/{cli-g1cw7xtt.js → cli-39rrw8yp.js} +1 -1
- package/dist/{cli-jb30dzvk.js → cli-48gxjmcz.js} +530 -190
- package/dist/{cli-pzatvw94.js → cli-54sj64fc.js} +2 -2
- package/dist/{cli-bvpgr9ny.js → cli-60sty27p.js} +5 -5
- package/dist/{cli-asq5ydm4.js → cli-6a9qfa8b.js} +411 -69
- package/dist/{cli-277c31dw.js → cli-6mgdba42.js} +225 -3
- package/dist/{cli-19202kew.js → cli-6srv653c.js} +5 -5
- package/dist/{cli-n4c8e3s5.js → cli-708wdy32.js} +1 -1
- package/dist/{cli-pasyvjmm.js → cli-737pyqxr.js} +1 -1
- package/dist/{cli-6x9ma5w5.js → cli-803188pb.js} +1 -1
- package/dist/{cli-hh5we352.js → cli-86ehn4s5.js} +7 -7
- package/dist/{cli-9s05422w.js → cli-8mbc9za9.js} +1 -1
- package/dist/{cli-ff1tm9n9.js → cli-8wmj18cz.js} +1 -1
- package/dist/{cli-1r5ad7j5.js → cli-9gsm2rzp.js} +12 -12
- package/dist/{cli-mz9afxxf.js → cli-9pshx6rd.js} +17 -3
- package/dist/{cli-s682zgqz.js → cli-a6ds2epe.js} +1 -1
- package/dist/{cli-6a1xg1p7.js → cli-a89zdqz9.js} +2 -2
- package/dist/{cli-03vpq45j.js → cli-ay40dnj3.js} +2 -2
- package/dist/{cli-tsma7p8v.js → cli-aypd09nf.js} +2 -2
- package/dist/{cli-ethgy7ha.js → cli-b3yzyc57.js} +2 -2
- package/dist/{cli-bn0rewsy.js → cli-c081bj3b.js} +2 -2
- package/dist/{cli-mmhj8vd7.js → cli-c668vvcf.js} +11 -2
- package/dist/{cli-sbwsxvtd.js → cli-d20qvpr2.js} +2 -2
- package/dist/{cli-c952c7ac.js → cli-e1595bgx.js} +3 -3
- package/dist/{cli-621ce7kw.js → cli-f12mr20z.js} +3 -3
- package/dist/{cli-dqygeeh5.js → cli-f1e0ptjj.js} +10 -1
- package/dist/{cli-xzfq4at3.js → cli-f4dbh7a5.js} +16 -12
- package/dist/{cli-ha9rmwgq.js → cli-fb8m699c.js} +2 -2
- package/dist/{cli-5bnsc0e1.js → cli-gsfk58nw.js} +5 -5
- package/dist/cli-gt4h8cxw.js +895 -0
- package/dist/{cli-nwyw3zhg.js → cli-gxee0bqa.js} +1 -1
- package/dist/{cli-25n3mv5d.js → cli-h5jeg46p.js} +6 -6
- package/dist/{cli-gn5af0x5.js → cli-he9gbdx0.js} +62 -12
- package/dist/{cli-gbfxp48k.js → cli-j0ppywdr.js} +42 -35
- package/dist/{cli-k4tjsdx9.js → cli-j3y0x2n4.js} +277 -199
- package/dist/{cli-7p4jxgtt.js → cli-j9bpmykh.js} +75 -27
- package/dist/{cli-dabehxhp.js → cli-kt907da6.js} +1 -1
- package/dist/{cli-wx2nj19m.js → cli-kv7sbc2c.js} +6 -6
- package/dist/{cli-abs8ndtr.js → cli-m30k9777.js} +26 -26
- package/dist/{cli-cz5nmdxt.js → cli-m5e802r7.js} +2 -2
- package/dist/{cli-0shx9j93.js → cli-pfk92eqz.js} +2 -2
- package/dist/{cli-xtrz6bzs.js → cli-ptfq202x.js} +5 -3
- package/dist/{cli-6n8axjv1.js → cli-qj442fws.js} +2 -2
- package/dist/{cli-c61mbdds.js → cli-rd5m70gj.js} +4 -4
- package/dist/{cli-eftzyh9y.js → cli-s09j9vp5.js} +2 -2
- package/dist/{cli-m4ecdxvz.js → cli-s0mgx214.js} +7 -7
- package/dist/{cli-wghjkr0e.js → cli-sgqm2582.js} +10 -7
- package/dist/{cli-2655k16q.js → cli-sjctjr48.js} +2 -2
- package/dist/{cli-nzfnt2gs.js → cli-tf1n0r0b.js} +1 -1
- package/dist/{cli-x0f2v69c.js → cli-twctnkng.js} +12 -7
- package/dist/{cli-j6rktc91.js → cli-v6shg7na.js} +1 -1
- package/dist/{cli-gx4rm0qx.js → cli-vz78s5wm.js} +1 -1
- package/dist/{cli-gwhjmh8g.js → cli-wqr7cea4.js} +5 -5
- package/dist/{cli-e42vss7b.js → cli-x37r7qwf.js} +16 -8
- package/dist/{cli-4b2z6n0m.js → cli-yd2nreqw.js} +17 -8
- package/dist/{cli-64mh9mf3.js → cli-ymjpkxgn.js} +69 -17
- package/dist/{cli-5kqnemen.js → cli-yvy48785.js} +1 -1
- package/dist/{cli-9j129brq.js → cli-yxbsmx56.js} +6 -6
- package/dist/cli.js +22 -20
- package/dist/{codex-adapter-wch12q99.js → codex-adapter-zk59x2zh.js} +7 -7
- package/dist/{codex-hook-brpnycn5.js → codex-hook-xyjhvxwd.js} +1 -1
- package/dist/{codex-login-rn7c5gxt.js → codex-login-8cg0vhf2.js} +1 -1
- package/dist/{codex-session-runner-41pfcr95.js → codex-session-runner-kh6s4j3n.js} +8 -8
- package/dist/{commands-9849dkj6.js → commands-68et1qv2.js} +2 -2
- package/dist/{controller-ja0sd95p.js → controller-fyrbnzg4.js} +4 -4
- package/dist/{controllers-connect-xp05dj6x.js → controllers-connect-nep9h2xv.js} +23 -23
- package/dist/{cursor-adapter-623qxqew.js → cursor-adapter-yss3pg7t.js} +2 -2
- package/dist/{db-w759qmx0.js → db-28gjyvxj.js} +4 -2
- package/dist/{db-47vj40dy.js → db-8ftwvzba.js} +3 -3
- package/dist/{devin-adapter-4ycy4vrf.js → devin-adapter-byen2cxt.js} +1 -1
- package/dist/{dispatcher-7b8e4z2j.js → dispatcher-hayexmkr.js} +20 -20
- package/dist/{docker-s84hjs91.js → docker-fdzyewpz.js} +2 -2
- package/dist/{dsh-adapter-2ezw3xea.js → dsh-adapter-46wawff9.js} +2 -2
- package/dist/{e2b-9gkdhm3c.js → e2b-222hsajc.js} +2 -2
- package/dist/{e2b-cjtf8k1z.js → e2b-fn3zacvt.js} +2 -2
- package/dist/{easter-egg-3d-e4qv8dxj.js → easter-egg-3d-8d1e0h4m.js} +1 -1
- package/dist/{event-bus-3z78ep5n.js → event-bus-pghg8hqy.js} +1 -1
- package/dist/{execute-0xpz8950.js → execute-cjrfxfnm.js} +1 -1
- package/dist/{external-channel-e2s028da.js → external-channel-xbmxcg09.js} +2 -2
- package/dist/{grok-adapter-ys7gaqee.js → grok-adapter-ag4wks2a.js} +10 -10
- package/dist/handlers-tzmevqb5.js +41 -0
- package/dist/{heartbeat-w3mntghj.js → heartbeat-psfvcgwp.js} +23 -23
- package/dist/{hook-g7kvv6x9.js → hook-8pz04697.js} +6 -6
- package/dist/{hook-3jjywnpb.js → hook-cyq4mryn.js} +8 -8
- package/dist/{http-tkp7d4kb.js → http-haj1nd6k.js} +921 -169
- package/dist/{index-q7m26kvs.js → index-jwt2bj6f.js} +265 -97
- package/dist/{index-3n8m9ea2.js → index-q52f47pe.js} +1 -1
- package/dist/{index-31ceyf42.js → index-syvhnvtw.js} +1 -1
- package/dist/index-y1ajx04a.js +43 -0
- package/dist/{index-1ef1myq2.js → index-z5h22pes.js} +20 -20
- package/dist/{index-xdaahthb.js → index-zyq8ct52.js} +20 -20
- package/dist/{keepalive-v4ta8wgg.js → keepalive-xdvsamvj.js} +4 -4
- package/dist/lead-hqg57kdp.js +79 -0
- package/dist/{maintenance-84n1ex21.js → maintenance-4y2xzh3a.js} +1 -1
- package/dist/{oauth-refresh-sweep-vjnnandw.js → oauth-refresh-sweep-jd4r7zbs.js} +9 -4
- package/dist/{onboard-sfmpe4np.js → onboard-18447q9q.js} +6 -6
- package/dist/{opencode-adapter-jmpst4q4.js → opencode-adapter-26b2frdf.js} +7 -7
- package/dist/{otel-impl-v6cc0zve.js → otel-impl-f9tgr8yw.js} +2 -2
- package/dist/{pi-mono-adapter-fk8fkcf6.js → pi-mono-adapter-qn6qbga1.js} +38 -17
- package/dist/{pricing-refresh-fsk1e1zc.js → pricing-refresh-dw2tgb53.js} +3 -3
- package/dist/{rbac-roles-prmkdnkw.js → rbac-roles-aygm2760.js} +2 -2
- package/dist/{rbac-roles-zxmxqa39.js → rbac-roles-s4nwj2m3.js} +1 -1
- package/dist/render-v2-yfvdfr0x.js +16 -0
- package/dist/{resume-frdtgfa0.js → resume-1bmvjbf3.js} +9 -9
- package/dist/{runtime-bt5pkpm1.js → runtime-f7tpzedy.js} +1 -1
- package/dist/{session-access-fpez4y5q.js → session-access-r5garej6.js} +4 -4
- package/dist/session-source-backfill-424wzv0r.js +110 -0
- package/dist/{setup-mq6m3m8q.js → setup-8tygvxkq.js} +1 -1
- package/dist/{virtual-modules-mnfbh5mr.js → virtual-modules-xsw323b3.js} +2 -2
- package/dist/{work-objects-kfahhjsq.js → work-objects-ggnghpgf.js} +23 -23
- package/dist/worker-sqjd1nqf.js +79 -0
- package/dist/{x-pbpezr0s.js → x-wxrzvzx8.js} +2 -2
- package/openapi.json +1324 -14
- package/package.json +5 -3
- package/src/assets/source-key.ts +95 -0
- package/src/be/automation-preflight.ts +2 -0
- package/src/be/db/api-keys.ts +89 -0
- package/src/be/db/session-labels.ts +28 -0
- package/src/be/db/session-moves.ts +5 -6
- package/src/be/db/session-tree.ts +153 -14
- package/src/be/db/tasks/read.ts +11 -0
- package/src/be/db/tasks/write.ts +6 -1
- package/src/be/db/workflow-runs.ts +219 -6
- package/src/be/db-retention.ts +61 -6
- package/src/be/db.ts +135 -132
- package/src/be/memory/providers/openai-embedding.ts +5 -1
- package/src/be/memory/task-learning.ts +155 -0
- package/src/be/migrations/244_api_key_validation.sql +4 -0
- package/src/be/migrations/245_script_executor.sql +3 -0
- package/src/be/oauth-refresh-sweep.ts +2 -1
- package/src/be/onboarding.ts +4 -0
- package/src/be/scripts/boot-reembed.ts +2 -0
- package/src/be/scripts/db.ts +14 -4
- package/src/be/scripts/embeddings.ts +2 -0
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +10 -4
- package/src/be/seed-skills/index.ts +7 -0
- package/src/be/session-source-backfill.ts +163 -0
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/comb/review-batch.ts +28 -1
- package/src/comb/templates.ts +7 -2
- package/src/commands/claude-managed-setup.ts +7 -1
- package/src/commands/credential-refresh.ts +76 -1
- package/src/commands/credential-wait.ts +2 -2
- package/src/commands/onboard/compose-generator.ts +5 -3
- package/src/commands/provider-credentials.ts +212 -171
- package/src/commands/runner.ts +25 -4
- package/src/extensions/apply-task-create.ts +8 -1
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +5 -0
- package/src/heartbeat/heartbeat.ts +14 -1
- package/src/heartbeat/script-runner-probe.ts +47 -0
- package/src/http/all-routes.ts +2 -0
- package/src/http/api-keys.ts +77 -9
- package/src/http/assets.ts +15 -0
- package/src/http/codex-oauth-accounts.ts +191 -0
- package/src/http/comb.ts +15 -2
- package/src/http/config.ts +1 -1
- package/src/http/core.ts +6 -0
- package/src/http/fleet-benchmark.ts +5 -2
- package/src/http/idempotency-key.ts +1 -1
- package/src/http/index.ts +14 -3
- package/src/http/integrations.ts +5 -1
- package/src/http/kv.ts +8 -3
- package/src/http/onboarding.ts +6 -1
- package/src/http/pages-public.ts +38 -5
- package/src/http/pool-keys.ts +354 -0
- package/src/http/scripts.ts +27 -0
- package/src/http/sessions.ts +37 -12
- package/src/http/stats.ts +1 -0
- package/src/http/status.ts +26 -12
- package/src/http/tasks.ts +3 -0
- package/src/http/used-by.ts +7 -2
- package/src/http/workflows.ts +88 -9
- package/src/http/x.ts +5 -0
- package/src/integrations/chat-sdk/inbound.ts +27 -0
- package/src/kv-reserved-namespaces.ts +19 -0
- package/src/prompts/base-prompt.ts +21 -1
- package/src/prompts/session-templates.ts +17 -3
- package/src/providers/acp-targets.ts +1 -1
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +5 -1
- package/src/providers/claude-managed-adapter.ts +16 -9
- package/src/providers/codex-adapter.ts +71 -11
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +41 -11
- package/src/scheduler/scheduler.ts +5 -3
- package/src/scripts-runtime/eval-harness.ts +8 -1
- package/src/scripts-runtime/executors/native.ts +22 -16
- package/src/scripts-runtime/executors/quickjs-prelude.ts +103 -1
- package/src/scripts-runtime/executors/quickjs-runner.ts +2 -1
- package/src/scripts-runtime/executors/quickjs.ts +7 -0
- package/src/scripts-runtime/executors/registry.ts +32 -0
- package/src/scripts-runtime/executors/types.ts +7 -0
- package/src/scripts-runtime/host-validated-args.ts +133 -0
- package/src/scripts-runtime/loader.ts +30 -3
- package/src/scripts-runtime/swarm-sdk.ts +16 -3
- package/src/scripts-runtime/types/stdlib.d.ts +10 -2
- package/src/scripts-runtime/types/swarm-extension.d.ts +17 -8
- package/src/scripts-runtime/types/swarm-sdk.d.ts +10 -2
- package/src/slack/assistant.ts +7 -0
- package/src/slack/channel-labels.ts +74 -0
- package/src/slack/handlers.ts +8 -0
- package/src/slack/inbound-files.ts +5 -2
- package/src/slack/thread-buffer.ts +4 -0
- package/src/tasks/sibling-awareness.ts +12 -3
- package/src/telemetry-context.ts +5 -6
- package/src/telemetry-identity.ts +3 -3
- package/src/tests/api-key-status-by-suffix.test.ts +242 -0
- package/src/tests/api-keys-validation.test.ts +170 -0
- package/src/tests/base-prompt.test.ts +70 -2
- package/src/tests/claude-managed-adapter.test.ts +46 -0
- package/src/tests/claude-routes-e2e.test.ts +7 -2
- package/src/tests/codex-credential-pools.test.ts +120 -0
- package/src/tests/codex-gateway-route.test.ts +165 -0
- package/src/tests/codex-oauth-accounts.test.ts +357 -0
- package/src/tests/comb-review-batch.test.ts +63 -2
- package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
- package/src/tests/config-pool-keys.test.ts +533 -0
- package/src/tests/credential-check.test.ts +294 -4
- package/src/tests/credential-refresh.test.ts +172 -1
- package/src/tests/db-retention.test.ts +9 -3
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/db-task-write-contract.test.ts +1 -3
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/docs-index.test.ts +135 -0
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/extensions-pre-task.test.ts +53 -1
- package/src/tests/fetch-resolved-env.test.ts +16 -2
- package/src/tests/fixtures/extensions/record-task-create/hooks.ts +9 -0
- package/src/tests/fixtures/extensions/record-task-create/manifest.json +7 -0
- package/src/tests/fleet-benchmark.test.ts +8 -0
- package/src/tests/get-workflow-run-tool.test.ts +98 -0
- package/src/tests/heartbeat-checklist.test.ts +89 -0
- package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
- package/src/tests/integrations-http.test.ts +32 -2
- package/src/tests/internal-ai/complete-structured.test.ts +37 -1
- package/src/tests/internal-ai/credentials.test.ts +23 -0
- package/src/tests/kv-http.test.ts +32 -0
- package/src/tests/kv-tool.test.ts +25 -0
- package/src/tests/multi-runtime-registration.test.ts +12 -12
- package/src/tests/oauth-refresh-sweep.test.ts +34 -1
- package/src/tests/onboard-compose.test.ts +20 -0
- package/src/tests/onboarding.test.ts +108 -1
- package/src/tests/openai-embedding-credentials.test.ts +35 -0
- package/src/tests/opencode-adapter.test.ts +2 -1
- package/src/tests/openrouter-attribution-call-sites.test.ts +2 -2
- package/src/tests/org-website.test.ts +36 -0
- package/src/tests/pages-frame-ancestors.test.ts +162 -0
- package/src/tests/pi-codemode.test.ts +2 -1
- package/src/tests/pi-mono-adapter.test.ts +54 -0
- package/src/tests/pi-native-mcp.test.ts +13 -1
- package/src/tests/pi-tool-exposure.test.ts +8 -8
- package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
- package/src/tests/prompt-template-session.test.ts +4 -3
- package/src/tests/provider-key-probes.test.ts +181 -0
- package/src/tests/rbac-e2e-helpers.test.ts +88 -1
- package/src/tests/rbac-e2e-helpers.ts +36 -11
- package/src/tests/request-composition-derive.test.ts +329 -0
- package/src/tests/script-connections.test.ts +4 -0
- package/src/tests/script-executor-conformance.test.ts +36 -1
- package/src/tests/script-executor-quickjs-pool.test.ts +50 -0
- package/src/tests/script-executor-quickjs.test.ts +140 -0
- package/src/tests/script-host-validated-args-native.test.ts +196 -0
- package/src/tests/script-per-script-executor.test.ts +415 -0
- package/src/tests/script-runs-retention.test.ts +212 -0
- package/src/tests/scripts-external-api.test.ts +45 -0
- package/src/tests/sdk-allowlist.test.ts +42 -2
- package/src/tests/self-improvement.test.ts +4 -4
- package/src/tests/session-source-backfill.test.ts +429 -0
- package/src/tests/session-source-keys.test.ts +236 -0
- package/src/tests/session-source-labels.test.ts +419 -0
- package/src/tests/sessions-detail-batch.test.ts +2 -0
- package/src/tests/sessions-move.test.ts +131 -0
- package/src/tests/sessions-tree.test.ts +299 -2
- package/src/tests/slack-inbound-files.test.ts +103 -23
- package/src/tests/status.test.ts +101 -18
- package/src/tests/store-progress-learning.test.ts +288 -0
- package/src/tests/tasks-workflow-run-filter.test.ts +146 -0
- package/src/tests/test-net.ts +31 -0
- package/src/tests/transcription.test.ts +8 -0
- package/src/tests/ui-logs-parser.test.ts +180 -0
- package/src/tests/used-by-route.test.ts +11 -0
- package/src/tests/workflow-cascade-cancel.test.ts +172 -0
- package/src/tests/workflow-engine-v2.test.ts +116 -1
- package/src/tests/workflow-http-v2.test.ts +131 -0
- package/src/tests/workflow-mcp-trigger-schema.test.ts +209 -0
- package/src/tests/workflow-run-finished-event.test.ts +263 -0
- package/src/tests/workflow-step-order.test.ts +92 -0
- package/src/tests/workflow-sub-workflow.test.ts +30 -0
- package/src/tests/workflow-swarm-script.test.ts +34 -0
- package/src/tools/get-tasks.ts +8 -0
- package/src/tools/kv/kv-read-auth.ts +4 -2
- package/src/tools/script-common.ts +1 -0
- package/src/tools/script-run.ts +7 -0
- package/src/tools/script-upsert.ts +7 -0
- package/src/tools/store-progress.ts +67 -1
- package/src/tools/task-action.ts +1 -1
- package/src/tools/workflows/get-workflow-run.ts +14 -4
- package/src/tools/workflows/trigger-workflow.ts +104 -10
- package/src/types.ts +36 -1
- package/src/utils/company-profile.ts +51 -1
- package/src/utils/credentials.ts +10 -4
- package/src/utils/internal-ai/complete-structured.ts +5 -0
- package/src/utils/internal-ai/credentials.ts +4 -3
- package/src/utils/provider-key-probes.ts +328 -0
- package/src/utils/transcription.ts +4 -1
- package/src/workflows/engine.ts +18 -16
- package/src/workflows/executors/sub-workflow.ts +8 -1
- package/src/workflows/executors/swarm-script.ts +5 -0
- package/src/workflows/foreach-driver.ts +5 -11
- package/src/workflows/node-timeout.ts +30 -0
- package/templates/ai-toolbox.manifest.json +2 -2
- package/templates/community/linear-delivery-loop/PLAYBOOK.md +323 -0
- package/templates/community/linear-delivery-loop/README.md +38 -0
- package/templates/community/linear-delivery-loop/config.example.json +31 -0
- package/templates/community/linear-delivery-loop/lead-prompt.md +34 -0
- package/templates/community/linear-delivery-loop/schedule.json +10 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-setup.ts +148 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-tick.ts +1781 -0
- package/templates/skills/researching/content.md +2 -0
- package/templates/skills/swarm-docs/config.json +14 -0
- package/templates/skills/swarm-docs/content.md +144 -0
- package/templates/skills/swarm-scripts/SKILL.md +1 -0
- package/templates/skills/swarm-scripts/content.md +1 -0
- package/dist/cli-7421jzsw.js +0 -84
- package/dist/cli-e45e4m6b.js +0 -413
- package/dist/cli-zw88zjba.js +0 -307
- package/dist/handlers-wy1dr6ja.js +0 -41
- package/dist/index-nmm79qgr.js +0 -43
- package/dist/lead-sawnyqxk.js +0 -79
- package/dist/render-v2-pjwxvnkw.js +0 -12
- package/dist/worker-v5e5rxj3.js +0 -79
|
@@ -773,4 +773,4 @@ var init_src2 = __esm(() => {
|
|
|
773
773
|
init_resolve_alias();
|
|
774
774
|
});
|
|
775
775
|
|
|
776
|
-
export { isAlias, parseAlias, resolveAlias, harnessCatalogSection, isHarnessModelJudged, normalizeGrokModel, harnessModelIds, modelFamilyKey, buildClaudeShortnameMap, harnessModelMismatch, openAICompatibleProviders, openAICompatibleProviderIds, providerKeyVars, openAICompatibleKeyVars, openAICompatibleBaseUrlVars, baseUrlOverride, ignoredBaseUrlVar, providerBaseUrl, openAICompatibleProvider, providerForModel, providerForKeyVar, providerKeyFromEnv, providerHarnessModels, withAgentChatRegistrySections, registryCatalogSections, withRegistryCatalogSections, dshCatalogRef, grokCatalogRef, cursorCatalogRef, reasoningLevelsFor, claudeCatalogModelId, init_src2 };
|
|
776
|
+
export { isAlias, parseAlias, resolveAlias, harnessCatalogSection, isHarnessModelJudged, normalizeGrokModel, harnessModelIds, modelFamilyKey, buildClaudeShortnameMap, harnessModelMismatch, openAICompatibleProviders, openAICompatibleProviderIds, providerKeyVars, openAICompatibleKeyVars, baseUrlEnvVar, openAICompatibleBaseUrlVars, baseUrlOverride, ignoredBaseUrlVar, providerBaseUrl, openAICompatibleProvider, providerForModel, providerForKeyVar, providerKeyFromEnv, providerHarnessModels, withAgentChatRegistrySections, registryCatalogSections, withRegistryCatalogSections, dshCatalogRef, grokCatalogRef, cursorCatalogRef, reasoningLevelsFor, claudeCatalogModelId, init_src2 };
|
|
@@ -6,22 +6,22 @@ import {
|
|
|
6
6
|
} from "./cli-jc1g9ndz.js";
|
|
7
7
|
import {
|
|
8
8
|
applyReasoningEffort
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-c081bj3b.js";
|
|
10
10
|
import {
|
|
11
11
|
getContextWindowSize,
|
|
12
12
|
clampContextPercent,
|
|
13
13
|
init_context_window
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-pfk92eqz.js";
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_MODEL_TIER_MAP,
|
|
17
17
|
init_types
|
|
18
|
-
} from "./cli-
|
|
18
|
+
} from "./cli-9pshx6rd.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveTemplateFromCode,
|
|
21
21
|
resolveTemplateAsync,
|
|
22
22
|
init_resolver,
|
|
23
23
|
init_session_templates
|
|
24
|
-
} from "./cli-
|
|
24
|
+
} from "./cli-f1e0ptjj.js";
|
|
25
25
|
import {
|
|
26
26
|
parseEnvFlag,
|
|
27
27
|
init_env_flag
|
|
@@ -30,11 +30,11 @@ import {
|
|
|
30
30
|
scrubSecrets,
|
|
31
31
|
registerVolatileSecret,
|
|
32
32
|
init_secret_scrubber
|
|
33
|
-
} from "./cli-
|
|
33
|
+
} from "./cli-708wdy32.js";
|
|
34
34
|
import {
|
|
35
35
|
cursorCatalogRef,
|
|
36
36
|
init_src2
|
|
37
|
-
} from "./cli-
|
|
37
|
+
} from "./cli-gxee0bqa.js";
|
|
38
38
|
|
|
39
39
|
// src/providers/cursor-adapter.ts
|
|
40
40
|
init_src2();
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
workflowEventBus2,
|
|
6
6
|
init_event_bus
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-kt907da6.js";
|
|
8
8
|
import {
|
|
9
9
|
getDbClient2,
|
|
10
10
|
isRuntimePoolsEnabled,
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
getStaleApprovalRequests2,
|
|
67
67
|
upsertKv2,
|
|
68
68
|
init_db3
|
|
69
|
-
} from "./cli-
|
|
69
|
+
} from "./cli-48gxjmcz.js";
|
|
70
70
|
import {
|
|
71
71
|
poolTaskRunsOnHarness,
|
|
72
72
|
isRuntimePoolWakeable,
|
|
@@ -87,33 +87,34 @@ import {
|
|
|
87
87
|
createRerouteDecisionTask,
|
|
88
88
|
createPoolStarvationDecisionTask,
|
|
89
89
|
canClaim
|
|
90
|
-
} from "./cli-
|
|
90
|
+
} from "./cli-6a9qfa8b.js";
|
|
91
91
|
import {
|
|
92
92
|
runtimeStaleThresholdMinutes,
|
|
93
93
|
countActiveRuntimeInstancesForAgent,
|
|
94
94
|
agentsWithLiveRuntime,
|
|
95
95
|
expireStaleRuntimeInstances,
|
|
96
96
|
createApprovalFollowUpTask
|
|
97
|
-
} from "./cli-
|
|
97
|
+
} from "./cli-j0ppywdr.js";
|
|
98
98
|
import {
|
|
99
99
|
listRuntimePools2,
|
|
100
100
|
init_db
|
|
101
|
-
} from "./cli-
|
|
101
|
+
} from "./cli-6srv653c.js";
|
|
102
102
|
import {
|
|
103
103
|
remediateStalledRuntime
|
|
104
|
-
} from "./cli-
|
|
104
|
+
} from "./cli-9gsm2rzp.js";
|
|
105
105
|
import {
|
|
106
|
+
runScriptWithRunCredential,
|
|
106
107
|
runSavedScriptAsAgent
|
|
107
|
-
} from "./cli-
|
|
108
|
+
} from "./cli-j9bpmykh.js";
|
|
108
109
|
import {
|
|
109
110
|
mintToken,
|
|
110
111
|
init_users
|
|
111
|
-
} from "./cli-
|
|
112
|
+
} from "./cli-a89zdqz9.js";
|
|
112
113
|
import {
|
|
113
114
|
TERMINAL_TASK_STATUSES,
|
|
114
115
|
SUPERSEDED_WORKFLOW_TASK_REASON,
|
|
115
116
|
init_types
|
|
116
|
-
} from "./cli-
|
|
117
|
+
} from "./cli-9pshx6rd.js";
|
|
117
118
|
import {
|
|
118
119
|
DEFAULT_OPENROUTER_BASE_URL,
|
|
119
120
|
getOpenRouterBaseUrl,
|
|
@@ -124,11 +125,11 @@ import {
|
|
|
124
125
|
init_registry,
|
|
125
126
|
resolveTemplate,
|
|
126
127
|
init_resolver
|
|
127
|
-
} from "./cli-
|
|
128
|
+
} from "./cli-f1e0ptjj.js";
|
|
128
129
|
import {
|
|
129
130
|
init_package,
|
|
130
131
|
package_default
|
|
131
|
-
} from "./cli-
|
|
132
|
+
} from "./cli-ptfq202x.js";
|
|
132
133
|
import {
|
|
133
134
|
isEnvFlagEnabled,
|
|
134
135
|
init_env_flag
|
|
@@ -136,7 +137,7 @@ import {
|
|
|
136
137
|
import {
|
|
137
138
|
scrubSecrets,
|
|
138
139
|
init_secret_scrubber
|
|
139
|
-
} from "./cli-
|
|
140
|
+
} from "./cli-708wdy32.js";
|
|
140
141
|
|
|
141
142
|
// src/be/runtime-pools/routing.ts
|
|
142
143
|
init_runtime_pools_flag();
|
|
@@ -480,6 +481,44 @@ init_env_flag();
|
|
|
480
481
|
init_openrouter_base_url();
|
|
481
482
|
init_secret_scrubber();
|
|
482
483
|
|
|
484
|
+
// src/heartbeat/script-runner-probe.ts
|
|
485
|
+
init_secret_scrubber();
|
|
486
|
+
var PROBE_TIMEOUT_MS = 1e4;
|
|
487
|
+
async function probeScriptRunner(agentId, runner = runScriptWithRunCredential) {
|
|
488
|
+
const controller = new AbortController;
|
|
489
|
+
let timer;
|
|
490
|
+
try {
|
|
491
|
+
const deadline = new Promise((_, reject) => {
|
|
492
|
+
timer = setTimeout(() => {
|
|
493
|
+
controller.abort();
|
|
494
|
+
reject(new Error("timeout after 10000ms"));
|
|
495
|
+
}, PROBE_TIMEOUT_MS);
|
|
496
|
+
});
|
|
497
|
+
const output = await Promise.race([
|
|
498
|
+
runner({
|
|
499
|
+
source: "export default async function () { return true; }",
|
|
500
|
+
agentId,
|
|
501
|
+
fsMode: "none",
|
|
502
|
+
timeoutMs: PROBE_TIMEOUT_MS,
|
|
503
|
+
signal: controller.signal
|
|
504
|
+
}),
|
|
505
|
+
deadline
|
|
506
|
+
]);
|
|
507
|
+
if (output.exitCode !== 0 || output.error || output.runtimeError) {
|
|
508
|
+
throw new Error(output.runtimeError?.message ?? output.error ?? `script exited with code ${output.exitCode}`);
|
|
509
|
+
}
|
|
510
|
+
return null;
|
|
511
|
+
} catch (error) {
|
|
512
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
513
|
+
return {
|
|
514
|
+
quiet: false,
|
|
515
|
+
reason: `script-runner-unhealthy: ${scrubSecrets(message)}`.slice(0, 300)
|
|
516
|
+
};
|
|
517
|
+
} finally {
|
|
518
|
+
clearTimeout(timer);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
483
522
|
// src/heartbeat/templates.ts
|
|
484
523
|
init_registry();
|
|
485
524
|
registerTemplate({
|
|
@@ -1481,6 +1520,17 @@ async function getBootTriageFindings() {
|
|
|
1481
1520
|
};
|
|
1482
1521
|
}
|
|
1483
1522
|
async function defaultChecklistGateRunner(scriptName, leadAgentId, signal, deps = {}) {
|
|
1523
|
+
try {
|
|
1524
|
+
const unhealthy = await (deps.probe ?? probeScriptRunner)(leadAgentId);
|
|
1525
|
+
if (unhealthy)
|
|
1526
|
+
return unhealthy;
|
|
1527
|
+
} catch (error) {
|
|
1528
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1529
|
+
return {
|
|
1530
|
+
quiet: false,
|
|
1531
|
+
reason: `script-runner-unhealthy: ${scrubSecrets(message)}`.slice(0, 300)
|
|
1532
|
+
};
|
|
1533
|
+
}
|
|
1484
1534
|
const script = await getScript({ name: scriptName, scope: "global" });
|
|
1485
1535
|
if (!script)
|
|
1486
1536
|
throw new Error(`global script "${scriptName}" not found`);
|
|
@@ -11,10 +11,13 @@ import {
|
|
|
11
11
|
approvalCancellationNotificationKey,
|
|
12
12
|
init_approvals,
|
|
13
13
|
getTaskById2,
|
|
14
|
+
WorkflowReplayStateError,
|
|
15
|
+
init_workflow_replay,
|
|
14
16
|
getRunLineageBlock,
|
|
15
17
|
getWorkflowRunStatus,
|
|
16
18
|
getChildWorkflowRunId,
|
|
17
19
|
isParentStepAttemptCurrent,
|
|
20
|
+
emitRunFinished,
|
|
18
21
|
createForeachChildSteps,
|
|
19
22
|
init_workflow_runs,
|
|
20
23
|
isApiOnlyConfigKey,
|
|
@@ -27,8 +30,6 @@ import {
|
|
|
27
30
|
getOAuthApp,
|
|
28
31
|
getOAuthTokens,
|
|
29
32
|
init_oauth,
|
|
30
|
-
WorkflowReplayStateError,
|
|
31
|
-
init_workflow_replay,
|
|
32
33
|
createTaskExtended2,
|
|
33
34
|
getSwarmConfigs2,
|
|
34
35
|
upsertSwarmConfig2,
|
|
@@ -55,30 +56,30 @@ import {
|
|
|
55
56
|
releaseApprovalCancellationNotificationClaim2,
|
|
56
57
|
updateApprovalRequestNotifications2,
|
|
57
58
|
init_db3
|
|
58
|
-
} from "./cli-
|
|
59
|
+
} from "./cli-48gxjmcz.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-m30k9777.js";
|
|
65
66
|
import {
|
|
66
67
|
externalChannelToolError2,
|
|
67
68
|
isBlockExternalEnabled2,
|
|
68
69
|
getChannelBlockReason2
|
|
69
|
-
} from "./cli-
|
|
70
|
+
} from "./cli-s09j9vp5.js";
|
|
70
71
|
import {
|
|
71
72
|
DEFAULT_MODEL,
|
|
72
73
|
resolveCredential
|
|
73
|
-
} from "./cli-
|
|
74
|
+
} from "./cli-1m9x8dr5.js";
|
|
74
75
|
import {
|
|
75
76
|
revokeRuntimeTokensForRuntime,
|
|
76
77
|
init_users
|
|
77
|
-
} from "./cli-
|
|
78
|
+
} from "./cli-a89zdqz9.js";
|
|
78
79
|
import {
|
|
79
80
|
TERMINAL_TASK_STATUSES,
|
|
80
81
|
init_types
|
|
81
|
-
} from "./cli-
|
|
82
|
+
} from "./cli-9pshx6rd.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-f1e0ptjj.js";
|
|
103
104
|
import {
|
|
104
105
|
init_zod
|
|
105
106
|
} from "./cli-4chz1hye.js";
|
|
@@ -131,13 +132,13 @@ import {
|
|
|
131
132
|
isSensitiveKey,
|
|
132
133
|
scrubSecrets,
|
|
133
134
|
init_secret_scrubber
|
|
134
|
-
} from "./cli-
|
|
135
|
+
} from "./cli-708wdy32.js";
|
|
135
136
|
import {
|
|
136
137
|
providerKeyVars,
|
|
137
138
|
providerBaseUrl,
|
|
138
139
|
providerForModel,
|
|
139
140
|
init_src2
|
|
140
|
-
} from "./cli-
|
|
141
|
+
} from "./cli-gxee0bqa.js";
|
|
141
142
|
|
|
142
143
|
// src/automation-preflight-alert.ts
|
|
143
144
|
init_constants2();
|
|
@@ -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-mwx1d5a9.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-1bmvjbf3.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-1bmvjbf3.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-1bmvjbf3.js");
|
|
5149
5156
|
await resumeFromChildRun(child.id, registry);
|
|
5150
5157
|
}
|
|
5151
5158
|
return null;
|