@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
|
@@ -166,3 +166,5 @@ File-review is on by default (unless Autopilot):
|
|
|
166
166
|
- Research documents should be self-contained
|
|
167
167
|
- **CRITICAL**: You are a documentarian, not an evaluator
|
|
168
168
|
- **REMEMBER**: Document what IS, not what SHOULD BE
|
|
169
|
+
- Single-page-app blogs (Vite/MDX): the HTML and RSS carry only the title and summary. The post text is compiled into the main JS bundle (`/assets/index-<hash>.js`, referenced in the page HTML). Fetch the bundle and extract string literals with a quote-aware tokenizer started at a function boundary; a naive regex desyncs on quotes.
|
|
170
|
+
- YouTube bot-blocks downloads from sandboxed egress. To describe a video, give its URL to a multimodal model. For the bytes of a brand's own product video, grep the brand's site or changelog HTML for `.mp4` URLs first and match the target by duration.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "skill",
|
|
3
|
+
"name": "swarm-docs",
|
|
4
|
+
"displayName": "Swarm Docs",
|
|
5
|
+
"slug": "swarm-docs",
|
|
6
|
+
"title": "Swarm Docs",
|
|
7
|
+
"description": "docs.agent-swarm.dev index: general docs, guides and playbooks, when to offer a playbook or guide to a person, and how to fetch a page. Load on demand: when no existing skill, workflow, schedule or memory covers a person's request, or they ask where something is documented.",
|
|
8
|
+
"version": "1.0.0",
|
|
9
|
+
"category": "skills",
|
|
10
|
+
"placeholders": [],
|
|
11
|
+
"runAllSeedersCandidate": true,
|
|
12
|
+
"systemDefault": true,
|
|
13
|
+
"tags": ["docs", "playbooks", "guides", "lead"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Swarm docs
|
|
2
|
+
|
|
3
|
+
docs.agent-swarm.dev documents Agent Swarm: general docs, guides, and playbooks. A playbook is a tested way to run the swarm for one job (on-call, PR review, DORA metrics). Its page lists the agents, workflows, schedules and scripts to set up. The index below is generated from the docs frontmatter and ships with this release, so you can read it offline.
|
|
4
|
+
|
|
5
|
+
## When to load this skill
|
|
6
|
+
|
|
7
|
+
Load it on demand. Load it when a person asks for something that no skill, workflow, schedule or memory of yours covers, or asks where something is documented. When you already know how to handle the ask, handle it and leave the docs out.
|
|
8
|
+
|
|
9
|
+
## Offer a page (lead)
|
|
10
|
+
|
|
11
|
+
Follow these rules when you reply to a person.
|
|
12
|
+
|
|
13
|
+
1. Offer only in a reply to a person's request (Slack, DM, dashboard, email). Never offer in a heartbeat, schedule, workflow step, worker follow-up, or task output.
|
|
14
|
+
2. Offer only on a clear match with an entry's `when` line, and never on a `not when` match. With two candidates, offer the better one. Never offer a list.
|
|
15
|
+
3. Make at most one offer per reply. Offer a page at most once per thread, and never again after a no.
|
|
16
|
+
4. Skip the offer when the setup is already in place (`list-workflows` or the schedules list shows it), when one of your skills already covers the ask, or when the person already chose an approach.
|
|
17
|
+
5. Put the offer in one sentence at the end, with the title and the link: "This matches the [Open Oncall playbook](https://docs.agent-swarm.dev/docs/playbooks/open-oncall). Want me to set it up that way?" For a setup request, wait for the answer before you build. For a question, answer it and add the link without asking.
|
|
18
|
+
6. On yes, delegate to a worker: "Follow <page URL>. Read the page with the `swarm-docs` skill." Name the template when the entry has one.
|
|
19
|
+
|
|
20
|
+
Entries marked "reference" are never offered. Read them when a task touches their topic.
|
|
21
|
+
|
|
22
|
+
## Read a page (any agent)
|
|
23
|
+
|
|
24
|
+
Fetch the page as markdown: `curl -fsSL https://docs.agent-swarm.dev/llms.mdx/docs/<slug>`, where `<slug>` is the path after `/docs/` in the index link. Follow the page; it names the agents, templates, schedules and scripts to create.
|
|
25
|
+
|
|
26
|
+
- A 404 means the slug changed after this release. Fetch `https://docs.agent-swarm.dev/llms.txt` and find the page by title.
|
|
27
|
+
- When the site is unreachable (an offline or air-gapped install), say so in one line, give the page URL, and ask the requester to attach the page. An operator can host `docs-site/` from the agent-swarm repo as a mirror and edit this skill to point at it; the edit survives reseed.
|
|
28
|
+
- A `template` entry names a template that ships with the swarm (`templates/<id>` in the agent-swarm repo). Prefer it over writing the setup from scratch.
|
|
29
|
+
|
|
30
|
+
<!-- docs-index:start -->
|
|
31
|
+
<!-- Generated by `bun run build:docs-index` from the docs frontmatter. Do not edit by hand. -->
|
|
32
|
+
|
|
33
|
+
## Playbooks
|
|
34
|
+
|
|
35
|
+
- [Playbooks](https://docs.agent-swarm.dev/docs/playbooks). Reference.
|
|
36
|
+
- [The rulebook our lead agent wrote for itself](https://docs.agent-swarm.dev/docs/playbooks/lead-agent-rulebook). Reference.
|
|
37
|
+
- [Feature Development](https://docs.agent-swarm.dev/docs/playbooks/feature-development). When: Someone wants feature requests from Slack or Linear turned into reviewed pull requests end to end.
|
|
38
|
+
- [Lead Prospecting](https://docs.agent-swarm.dev/docs/playbooks/lead-prospecting). When: Someone wants prospects found and outreach drafted on a schedule, with a person approving before anything sends.
|
|
39
|
+
- [Content Generation](https://docs.agent-swarm.dev/docs/playbooks/content-generation). When: Someone wants blog posts, social posts, comparison pages or release notes written on a regular cadence.
|
|
40
|
+
- [UX Command Center](https://docs.agent-swarm.dev/docs/playbooks/ux-command-center). When: Someone wants regular UX audits of their product and proposals for usability fixes.
|
|
41
|
+
- [Proactive Customer Support](https://docs.agent-swarm.dev/docs/playbooks/proactive-customer-support). When: Someone wants an agent per key customer that remembers the account and prepares briefings or value reports.
|
|
42
|
+
- [Observability Alert Management](https://docs.agent-swarm.dev/docs/playbooks/code-health-alert-management). When: Someone wants Datadog, Sentry, New Relic or SigNoz alerts filtered for noise, plus recurring production health audits. Not when: Alerts that page a person and should be investigated and fixed as they fire; offer Open Oncall instead.
|
|
43
|
+
- [Code Health](https://docs.agent-swarm.dev/docs/playbooks/code-health-reports). When: Someone wants a recurring report on code hotspots, churn or technical debt in a repository. Template: `community/code-health-reports`.
|
|
44
|
+
- [DORA Metrics](https://docs.agent-swarm.dev/docs/playbooks/dora-metrics). When: Someone wants deploy frequency, lead time or other DORA metrics reported on a schedule. Template: `community/dora-metrics`.
|
|
45
|
+
- [Reports from Multiple Sources](https://docs.agent-swarm.dev/docs/playbooks/reports-multiple-sources). When: Someone wants business questions answered across their warehouse, analytics, billing and other data, with charts.
|
|
46
|
+
- [Self-Documenting & Release Reports](https://docs.agent-swarm.dev/docs/playbooks/self-documenting-release-reports). When: Someone wants docs kept current, release notes written from commits, or release videos made.
|
|
47
|
+
- [Open-Prompt Showreel Videos](https://docs.agent-swarm.dev/docs/playbooks/open-prompt-showreel). When: Someone wants a motion-graphics or showreel video made from a prompt. Template: `community/open-prompt-showreel`.
|
|
48
|
+
- [Email Domain Health](https://docs.agent-swarm.dev/docs/playbooks/email-domain-health). When: Someone wants the domains they send email from watched for SPF, DKIM, DMARC or blocklist problems.
|
|
49
|
+
- [Open Oncall](https://docs.agent-swarm.dev/docs/playbooks/open-oncall). When: Someone wants alerts from PagerDuty, Datadog, Sentry or a webhook investigated and fixed, with a person approving each fix. Not when: A one-off question about a single incident.
|
|
50
|
+
- [PR Review](https://docs.agent-swarm.dev/docs/playbooks/pr-review). When: Someone wants every pull request reviewed automatically before a person looks at it.
|
|
51
|
+
- [Linear Delivery Loop](https://docs.agent-swarm.dev/docs/playbooks/linear-delivery-loop). When: Someone wants agents to take Linear issues through implementation, CI and review to merged pull requests, with a person approving each one. Template: `community/linear-delivery-loop`.
|
|
52
|
+
- [Hot Patterns](https://docs.agent-swarm.dev/docs/playbooks/patterns). Reference.
|
|
53
|
+
- [Pattern: Litmus Tests (LLM-as-Judge Quality Gates)](https://docs.agent-swarm.dev/docs/playbooks/patterns/litmus-tests). When: Someone wants one agent to check another agent's output against a rubric before it ships.
|
|
54
|
+
- [Pattern: Drain Loops (Stacked PRs + Merge Loop)](https://docs.agent-swarm.dev/docs/playbooks/patterns/drain-loops). When: Someone wants a large change split into small stacked pull requests and merged in order.
|
|
55
|
+
- [Pattern: HITL Gates (Human-in-the-Loop Approval)](https://docs.agent-swarm.dev/docs/playbooks/patterns/hitl-gates). When: Someone wants a workflow to wait for a person's approval before it sends, merges, deletes or posts.
|
|
56
|
+
- [Pattern: Per-Customer Working Directories](https://docs.agent-swarm.dev/docs/playbooks/patterns/per-customer-working-directories). When: Someone wants agents to keep long-lived notes per customer or account.
|
|
57
|
+
- [Pattern: No-op When Nothing Changed](https://docs.agent-swarm.dev/docs/playbooks/patterns/no-op-workflows). When: Someone wants a scheduled job that stays silent when nothing changed.
|
|
58
|
+
|
|
59
|
+
## Guides
|
|
60
|
+
|
|
61
|
+
- [Deployment Guide](https://docs.agent-swarm.dev/docs/guides/deployment). When: Someone wants to run Agent Swarm on their own server with Docker Compose.
|
|
62
|
+
- [Kubernetes and Helm](https://docs.agent-swarm.dev/docs/guides/kubernetes). When: Someone wants to install Agent Swarm on Kubernetes.
|
|
63
|
+
- [Rootless Podman](https://docs.agent-swarm.dev/docs/guides/podman-rootless). When: Someone wants to run Agent Swarm under rootless Podman.
|
|
64
|
+
- [Published Artifacts](https://docs.agent-swarm.dev/docs/guides/published-artifacts). Reference.
|
|
65
|
+
- [Asset Namespaces](https://docs.agent-swarm.dev/docs/guides/asset-namespaces). Reference.
|
|
66
|
+
- [agent-fs Co-deployment](https://docs.agent-swarm.dev/docs/guides/agent-fs-co-deployment). When: Someone wants shared persistent files for agents on a self-hosted swarm.
|
|
67
|
+
- [Self-Hosted SSO](https://docs.agent-swarm.dev/docs/guides/self-hosted-sso). When: Someone wants their self-hosted swarm dashboard behind single sign-on.
|
|
68
|
+
- [E2B Provider Smoke Tests](https://docs.agent-swarm.dev/docs/guides/e2b-provider-smoke-tests). Reference.
|
|
69
|
+
- [Evals Harness](https://docs.agent-swarm.dev/docs/guides/evals-harness). Reference.
|
|
70
|
+
- [Personalization & Status](https://docs.agent-swarm.dev/docs/guides/personalization). Reference.
|
|
71
|
+
- [Secrets Encryption](https://docs.agent-swarm.dev/docs/guides/secrets-encryption). When: Someone asks how swarm secrets are stored, encrypted or backed up.
|
|
72
|
+
- [Harness Configuration](https://docs.agent-swarm.dev/docs/guides/harness-configuration). When: Someone wants agents to run on a different AI provider or coding CLI.
|
|
73
|
+
- [Provider Capability Matrix](https://docs.agent-swarm.dev/docs/guides/provider-capability-matrix). Reference.
|
|
74
|
+
- [Adding a Harness Provider](https://docs.agent-swarm.dev/docs/guides/harness-providers). Reference.
|
|
75
|
+
- [Steer a Running Task](https://docs.agent-swarm.dev/docs/guides/task-steering). Reference.
|
|
76
|
+
- [Claude Code Mod](https://docs.agent-swarm.dev/docs/guides/claude-code-mod). Reference.
|
|
77
|
+
- [Observability with OpenTelemetry](https://docs.agent-swarm.dev/docs/guides/observability-opentelemetry). When: Someone wants swarm traces and metrics in SigNoz or another OpenTelemetry backend.
|
|
78
|
+
- [Host Requirements & Disk Cleanup](https://docs.agent-swarm.dev/docs/guides/host-requirements). When: Someone asks how big a host their self-hosted swarm needs, or their disk is filling up with Docker images.
|
|
79
|
+
- [Performance & Resource Sizing](https://docs.agent-swarm.dev/docs/guides/performance-resource-sizing). Reference.
|
|
80
|
+
- [Cost & context computation](https://docs.agent-swarm.dev/docs/guides/cost-and-context-computation). Reference.
|
|
81
|
+
- [Extensions](https://docs.agent-swarm.dev/docs/guides/extensions). Reference.
|
|
82
|
+
- [Scripts runtime](https://docs.agent-swarm.dev/docs/guides/scripts-runtime). Reference.
|
|
83
|
+
- [Agent capabilities and tool allowlist](https://docs.agent-swarm.dev/docs/guides/agent-capabilities). Reference.
|
|
84
|
+
- [Scripts-only mode (code-mode)](https://docs.agent-swarm.dev/docs/guides/scripts-only-mode). Reference.
|
|
85
|
+
- [Script connections](https://docs.agent-swarm.dev/docs/guides/script-connections). When: Someone wants the swarm to call an external API, with credentials kept out of the code.
|
|
86
|
+
- [OAuth callback migration](https://docs.agent-swarm.dev/docs/guides/oauth-callback-migration). Reference.
|
|
87
|
+
- [Scripts as external APIs](https://docs.agent-swarm.dev/docs/guides/scripts-external-apis). When: Someone wants a swarm script exposed as a public HTTP endpoint or webhook receiver.
|
|
88
|
+
- [Scripts credential broker](https://docs.agent-swarm.dev/docs/guides/scripts-credential-broker). Reference.
|
|
89
|
+
- [One-off Script Workflow Runs](https://docs.agent-swarm.dev/docs/guides/script-workflow-runs). Reference.
|
|
90
|
+
- [Claude Bridge](https://docs.agent-swarm.dev/docs/guides/claude-bridge-experimental). Reference.
|
|
91
|
+
- [Worker Credential Recovery](https://docs.agent-swarm.dev/docs/guides/worker-credential-recovery). Reference.
|
|
92
|
+
- [Model Gateways](https://docs.agent-swarm.dev/docs/guides/provider-auth/model-gateways). Reference.
|
|
93
|
+
- [Codex OAuth](https://docs.agent-swarm.dev/docs/guides/provider-auth/codex-oauth). Reference.
|
|
94
|
+
- [Cursor](https://docs.agent-swarm.dev/docs/guides/provider-auth/cursor). Reference.
|
|
95
|
+
- [Amp](https://docs.agent-swarm.dev/docs/guides/provider-auth/amp). Reference.
|
|
96
|
+
- [Grok](https://docs.agent-swarm.dev/docs/guides/provider-auth/grok). Reference.
|
|
97
|
+
- [DeepSeek Harness (dsh)](https://docs.agent-swarm.dev/docs/guides/provider-auth/dsh). Reference.
|
|
98
|
+
- [x402 Payments](https://docs.agent-swarm.dev/docs/guides/x402-payments). Reference.
|
|
99
|
+
- [Multi-runtime agents](https://docs.agent-swarm.dev/docs/guides/multi-runtime-agents). Reference.
|
|
100
|
+
- [Runtime pools (beta)](https://docs.agent-swarm.dev/docs/guides/runtime-pools). Reference.
|
|
101
|
+
|
|
102
|
+
## Other docs
|
|
103
|
+
|
|
104
|
+
- [Introduction](https://docs.agent-swarm.dev/docs)
|
|
105
|
+
- [Getting Started](https://docs.agent-swarm.dev/docs/getting-started)
|
|
106
|
+
- [Architecture Overview](https://docs.agent-swarm.dev/docs/architecture/overview)
|
|
107
|
+
- [Agent Identity & Configuration](https://docs.agent-swarm.dev/docs/architecture/agents)
|
|
108
|
+
- [Memory System](https://docs.agent-swarm.dev/docs/architecture/memory)
|
|
109
|
+
- [Hook System](https://docs.agent-swarm.dev/docs/architecture/hooks)
|
|
110
|
+
- [Task Lifecycle](https://docs.agent-swarm.dev/docs/concepts/task-lifecycle)
|
|
111
|
+
- [Scheduled Tasks](https://docs.agent-swarm.dev/docs/concepts/scheduling)
|
|
112
|
+
- [Workflows](https://docs.agent-swarm.dev/docs/concepts/workflows)
|
|
113
|
+
- [Team Collaboration](https://docs.agent-swarm.dev/docs/features/team-collaboration)
|
|
114
|
+
- [Apps](https://docs.agent-swarm.dev/docs/apps)
|
|
115
|
+
- [App concepts](https://docs.agent-swarm.dev/docs/apps/concepts)
|
|
116
|
+
- [Build an App](https://docs.agent-swarm.dev/docs/apps/build-an-app)
|
|
117
|
+
- [App recipes](https://docs.agent-swarm.dev/docs/apps/recipes)
|
|
118
|
+
- [Overview](https://docs.agent-swarm.dev/docs/ui)
|
|
119
|
+
- [Sessions](https://docs.agent-swarm.dev/docs/ui/sessions)
|
|
120
|
+
- [Configuration](https://docs.agent-swarm.dev/docs/ui/configuration)
|
|
121
|
+
- [Comb (beta)](https://docs.agent-swarm.dev/docs/ui/comb)
|
|
122
|
+
- [Integrations](https://docs.agent-swarm.dev/docs/integrations)
|
|
123
|
+
- [Slack Integration](https://docs.agent-swarm.dev/docs/integrations/slack)
|
|
124
|
+
- [GitHub App Integration](https://docs.agent-swarm.dev/docs/integrations/github)
|
|
125
|
+
- [GitLab Integration](https://docs.agent-swarm.dev/docs/integrations/gitlab)
|
|
126
|
+
- [Azure DevOps Integration](https://docs.agent-swarm.dev/docs/integrations/azure-devops)
|
|
127
|
+
- [Bitbucket Integration](https://docs.agent-swarm.dev/docs/integrations/bitbucket)
|
|
128
|
+
- [Linear](https://docs.agent-swarm.dev/docs/integrations/linear)
|
|
129
|
+
- [Jira Integration](https://docs.agent-swarm.dev/docs/integrations/jira)
|
|
130
|
+
- [Sentry Integration](https://docs.agent-swarm.dev/docs/integrations/sentry)
|
|
131
|
+
- [AgentMail Integration](https://docs.agent-swarm.dev/docs/integrations/agentmail)
|
|
132
|
+
- [Kapso (WhatsApp)](https://docs.agent-swarm.dev/docs/integrations/kapso)
|
|
133
|
+
- [Chat SDK](https://docs.agent-swarm.dev/docs/integrations/chat-sdk)
|
|
134
|
+
- [Composio](https://docs.agent-swarm.dev/docs/integrations/composio)
|
|
135
|
+
- [Salesforce](https://docs.agent-swarm.dev/docs/integrations/salesforce)
|
|
136
|
+
- [Microsoft Graph](https://docs.agent-swarm.dev/docs/integrations/microsoft-graph)
|
|
137
|
+
- [Serply Search](https://docs.agent-swarm.dev/docs/integrations/serply)
|
|
138
|
+
- [MCP Tools Reference](https://docs.agent-swarm.dev/docs/reference/mcp-tools)
|
|
139
|
+
- [Environment Variables](https://docs.agent-swarm.dev/docs/reference/environment-variables)
|
|
140
|
+
- [CLI Reference](https://docs.agent-swarm.dev/docs/reference/cli)
|
|
141
|
+
- [The `x` command](https://docs.agent-swarm.dev/docs/reference/x-command)
|
|
142
|
+
- [Telemetry](https://docs.agent-swarm.dev/docs/reference/telemetry)
|
|
143
|
+
- [Contributing](https://docs.agent-swarm.dev/docs/contributing)
|
|
144
|
+
<!-- docs-index:end -->
|
|
@@ -175,6 +175,7 @@ function rowsToObjects(res: any): any[] {
|
|
|
175
175
|
- `kv_get` returns the entry at `data`: read `res.data.value`. The MCP tool shape `entry.value` reads `undefined` in a script.
|
|
176
176
|
- `script_run` returns an envelope (`result`, `truncated`, `durationMs`, `stdout`, `stderr`, `exitCode`). The callee payload is at `.result`. Take key names from a real response: a guessed key that is absent reads as a false zero.
|
|
177
177
|
- An `argsSchema` validation error fires before the body runs and repeats on every retry. Fix the args instead of retrying.
|
|
178
|
+
- The skill methods disagree on the id field: `skill_get({ id })`, but `skill_update({ skillId, content })`. `skill_update({ id, content })` returns outer `success: true` with inner `data.success: false` ("skillId is required.") and writes nothing. Gate a write on `res.data.success`, then re-read: the version must increase and the content must match the draft.
|
|
178
179
|
- Write a dedup or idempotency marker only after the step succeeds. A marker written after a failure blocks the next real attempt.
|
|
179
180
|
- `kv_set` returns `success: false` instead of throwing when a key has a character outside `[a-zA-Z0-9._:/-]` (for example `#` or `|` from a git ref). Check `success` after every write.
|
|
180
181
|
- `script_run` without `scope` runs an agent-scoped row of the same name before the global one, so a stale private copy silently wins. Pass `scope: "global"` for a shared script.
|
|
@@ -170,6 +170,7 @@ function rowsToObjects(res: any): any[] {
|
|
|
170
170
|
- `kv_get` returns the entry at `data`: read `res.data.value`. The MCP tool shape `entry.value` reads `undefined` in a script.
|
|
171
171
|
- `script_run` returns an envelope (`result`, `truncated`, `durationMs`, `stdout`, `stderr`, `exitCode`). The callee payload is at `.result`. Take key names from a real response: a guessed key that is absent reads as a false zero.
|
|
172
172
|
- An `argsSchema` validation error fires before the body runs and repeats on every retry. Fix the args instead of retrying.
|
|
173
|
+
- The skill methods disagree on the id field: `skill_get({ id })`, but `skill_update({ skillId, content })`. `skill_update({ id, content })` returns outer `success: true` with inner `data.success: false` ("skillId is required.") and writes nothing. Gate a write on `res.data.success`, then re-read: the version must increase and the content must match the draft.
|
|
173
174
|
- Write a dedup or idempotency marker only after the step succeeds. A marker written after a failure blocks the next real attempt.
|
|
174
175
|
- `kv_set` returns `success: false` instead of throwing when a key has a character outside `[a-zA-Z0-9._:/-]` (for example `#` or `|` from a git ref). Check `success` after every write.
|
|
175
176
|
- `script_run` without `scope` runs an agent-scoped row of the same name before the global one, so a stale private copy silently wins. Pass `scope: "global"` for a shared script.
|
package/dist/cli-7421jzsw.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__esm
|
|
3
|
-
} from "./cli-242037k3.js";
|
|
4
|
-
|
|
5
|
-
// src/utils/model-rate-limit-windows.ts
|
|
6
|
-
function modelFamilyOf(model) {
|
|
7
|
-
if (!model)
|
|
8
|
-
return;
|
|
9
|
-
const lower = model.toLowerCase();
|
|
10
|
-
const families = ["fable", "opus", "sonnet", "haiku"];
|
|
11
|
-
for (const family of families) {
|
|
12
|
-
if (lower.includes(family))
|
|
13
|
-
return family;
|
|
14
|
-
}
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
function windowForModelFamily(family) {
|
|
18
|
-
switch (family) {
|
|
19
|
-
case "fable":
|
|
20
|
-
return FABLE_WINDOW;
|
|
21
|
-
case "opus":
|
|
22
|
-
return OPUS_WINDOW;
|
|
23
|
-
case "sonnet":
|
|
24
|
-
return SONNET_WINDOW;
|
|
25
|
-
default:
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function isModelScopedWindow(type) {
|
|
30
|
-
return Object.hasOwn(MODEL_SCOPED_WINDOWS, type) && MODEL_SCOPED_WINDOWS[type] !== undefined;
|
|
31
|
-
}
|
|
32
|
-
function parseModelLimitMessage(text) {
|
|
33
|
-
const match = text.match(/reached your (Fable|Opus|Sonnet) limit/i);
|
|
34
|
-
if (!match)
|
|
35
|
-
return;
|
|
36
|
-
return match[1].toLowerCase();
|
|
37
|
-
}
|
|
38
|
-
function parseCreditsRequiredMessage(text) {
|
|
39
|
-
const match = text.match(/(Fable|Opus|Sonnet)(?:[^.]|\.(?=\d)){0,40}requires usage credits/i);
|
|
40
|
-
if (!match)
|
|
41
|
-
return;
|
|
42
|
-
return match[1].toLowerCase();
|
|
43
|
-
}
|
|
44
|
-
function activeModelBlock(windows, family, nowMs) {
|
|
45
|
-
if (!windows)
|
|
46
|
-
return;
|
|
47
|
-
const window = windowForModelFamily(family);
|
|
48
|
-
if (!window)
|
|
49
|
-
return;
|
|
50
|
-
const entry = windows[window];
|
|
51
|
-
if (!entry)
|
|
52
|
-
return;
|
|
53
|
-
if (entry.status !== "rejected")
|
|
54
|
-
return;
|
|
55
|
-
if (typeof entry.resetsAt !== "number" || entry.resetsAt * 1000 <= nowMs)
|
|
56
|
-
return;
|
|
57
|
-
return { window, resetsAt: entry.resetsAt };
|
|
58
|
-
}
|
|
59
|
-
function activeModelBlocks(windows, nowMs) {
|
|
60
|
-
if (!windows)
|
|
61
|
-
return [];
|
|
62
|
-
const blocks = [];
|
|
63
|
-
for (const [window, model] of Object.entries(MODEL_SCOPED_WINDOWS)) {
|
|
64
|
-
const entry = windows[window];
|
|
65
|
-
if (!entry)
|
|
66
|
-
continue;
|
|
67
|
-
if (entry.status !== "rejected")
|
|
68
|
-
continue;
|
|
69
|
-
if (typeof entry.resetsAt !== "number" || entry.resetsAt * 1000 <= nowMs)
|
|
70
|
-
continue;
|
|
71
|
-
blocks.push({ model, window, resetsAt: entry.resetsAt });
|
|
72
|
-
}
|
|
73
|
-
return blocks;
|
|
74
|
-
}
|
|
75
|
-
var FABLE_WINDOW = "seven_day_overage_included", OPUS_WINDOW = "seven_day_opus", SONNET_WINDOW = "seven_day_sonnet", MODEL_SCOPED_WINDOWS;
|
|
76
|
-
var init_model_rate_limit_windows = __esm(() => {
|
|
77
|
-
MODEL_SCOPED_WINDOWS = {
|
|
78
|
-
[FABLE_WINDOW]: "fable",
|
|
79
|
-
[OPUS_WINDOW]: "opus",
|
|
80
|
-
[SONNET_WINDOW]: "sonnet"
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
export { MODEL_SCOPED_WINDOWS, modelFamilyOf, windowForModelFamily, isModelScopedWindow, parseModelLimitMessage, parseCreditsRequiredMessage, activeModelBlock, activeModelBlocks, init_model_rate_limit_windows };
|