@desplega.ai/agent-swarm 2.5.4 → 2.6.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 +2 -2
- package/dist/{acp-adapter-ek38cwsv.js → acp-adapter-dgfakfpw.js} +9 -9
- package/dist/{actions-92mepq03.js → actions-fbqma8aa.js} +21 -21
- package/dist/{amp-adapter-9gaxg015.js → amp-adapter-en0jy6hs.js} +4 -4
- package/dist/{app-ctn8gsgx.js → app-k8a5cgpp.js} +3 -3
- package/dist/{assistant-zyr5kz47.js → assistant-a16433gr.js} +29 -25
- package/dist/{boot-reembed-dwzfttdr.js → boot-reembed-6c1sjfnr.js} +1 -1
- package/dist/{boot-reembed-w75maga2.js → boot-reembed-f4nn561n.js} +1 -1
- package/dist/{boot-scrub-sweep-e9kq43kf.js → boot-scrub-sweep-d4w9gajf.js} +4 -4
- package/dist/{boot-seeds-x28v3fhb.js → boot-seeds-9bmkspyw.js} +4 -4
- package/dist/{claude-adapter-f0afqnne.js → claude-adapter-nys1kjxa.js} +9 -9
- package/dist/{claude-managed-adapter-x81a7r65.js → claude-managed-adapter-55207973.js} +2 -2
- package/dist/{claude-managed-setup-bqzwjd9x.js → claude-managed-setup-3cm35gey.js} +10 -3
- package/dist/{claude-sdk-session-7b7whkaq.js → claude-sdk-session-nw5yd8cp.js} +11 -11
- package/dist/{cli-c61mbdds.js → cli-03gg9pd1.js} +4 -4
- package/dist/{cli-kxpfx2xr.js → cli-0z1xjzwa.js} +2 -2
- package/dist/cli-1tem6ns9.js +894 -0
- package/dist/{cli-jbnn4vxb.js → cli-24j1jeeb.js} +3 -3
- package/dist/{cli-pzatvw94.js → cli-2sjhpsns.js} +2 -2
- package/dist/{cli-dew6x255.js → cli-39aet655.js} +2 -2
- package/dist/{cli-g1cw7xtt.js → cli-39rrw8yp.js} +1 -1
- package/dist/{cli-x0f2v69c.js → cli-3aqd4jaa.js} +12 -7
- package/dist/{cli-gbfxp48k.js → cli-3fwqy71j.js} +15 -15
- package/dist/{cli-7p4jxgtt.js → cli-3gfvmzht.js} +6 -6
- package/dist/{cli-03vpq45j.js → cli-3ndmpxxv.js} +2 -2
- package/dist/{cli-asq5ydm4.js → cli-4hxrf0p4.js} +131 -50
- package/dist/{cli-mz9afxxf.js → cli-4rf0f5vg.js} +15 -3
- package/dist/{cli-k4tjsdx9.js → cli-5rj83bam.js} +272 -195
- package/dist/{cli-sbwsxvtd.js → cli-5sckpqcx.js} +2 -2
- package/dist/{cli-cz5nmdxt.js → cli-683y0b3a.js} +2 -2
- package/dist/{cli-ethgy7ha.js → cli-6y51ryva.js} +2 -2
- package/dist/{cli-n4c8e3s5.js → cli-708wdy32.js} +1 -1
- package/dist/{cli-pasyvjmm.js → cli-737pyqxr.js} +1 -1
- package/dist/{cli-gx4rm0qx.js → cli-7enjwya9.js} +1 -1
- package/dist/{cli-6x9ma5w5.js → cli-803188pb.js} +1 -1
- package/dist/{cli-hh5we352.js → cli-9abdgn5t.js} +7 -7
- package/dist/{cli-ff1tm9n9.js → cli-a2rr0fmg.js} +1 -1
- package/dist/{cli-c952c7ac.js → cli-a34pr3w1.js} +2 -2
- package/dist/{cli-s682zgqz.js → cli-abkm71vr.js} +1 -1
- package/dist/{cli-mmhj8vd7.js → cli-ag2yrnt5.js} +11 -2
- package/dist/{cli-bvpgr9ny.js → cli-aj8djyqt.js} +5 -5
- package/dist/{cli-gwhjmh8g.js → cli-art7c1zh.js} +5 -5
- package/dist/{cli-5bnsc0e1.js → cli-az25fn5f.js} +4 -4
- package/dist/{cli-9s05422w.js → cli-bqztfyve.js} +1 -1
- package/dist/{cli-bn0rewsy.js → cli-c081bj3b.js} +2 -2
- package/dist/{cli-1r5ad7j5.js → cli-c2habvsf.js} +12 -12
- package/dist/{cli-64mh9mf3.js → cli-ca6banwz.js} +69 -17
- package/dist/{cli-25n3mv5d.js → cli-cz37jqss.js} +5 -5
- package/dist/{cli-6n8axjv1.js → cli-d2dpf95n.js} +2 -2
- package/dist/{cli-gn5af0x5.js → cli-emhjcj2y.js} +11 -11
- package/dist/{cli-6a1xg1p7.js → cli-esakngh8.js} +2 -2
- package/dist/{cli-ha9rmwgq.js → cli-fb8m699c.js} +2 -2
- package/dist/{cli-4b2z6n0m.js → cli-ffvsj2qw.js} +17 -8
- package/dist/{cli-abs8ndtr.js → cli-g20jjwt4.js} +26 -26
- package/dist/{cli-jb30dzvk.js → cli-g8ka5j4j.js} +446 -164
- package/dist/{cli-19202kew.js → cli-gf95q3bm.js} +5 -5
- package/dist/{cli-eftzyh9y.js → cli-gnsb1zxa.js} +2 -2
- package/dist/{cli-nwyw3zhg.js → cli-gxee0bqa.js} +1 -1
- package/dist/{cli-e42vss7b.js → cli-hfeb68z4.js} +5 -5
- package/dist/{cli-g9vd9ece.js → cli-k21gx5ht.js} +14 -16
- package/dist/{cli-tsma7p8v.js → cli-kf4jree9.js} +2 -2
- package/dist/{cli-dabehxhp.js → cli-kt907da6.js} +1 -1
- package/dist/{cli-wx2nj19m.js → cli-m5a9m0ak.js} +6 -6
- package/dist/{cli-621ce7kw.js → cli-m70bajzr.js} +3 -3
- package/dist/{cli-9j129brq.js → cli-mtnj4fwa.js} +6 -6
- package/dist/{cli-xzfq4at3.js → cli-mvjz5an3.js} +15 -11
- package/dist/{cli-277c31dw.js → cli-n7asmce6.js} +225 -3
- package/dist/{cli-xtrz6bzs.js → cli-nn6vx2mq.js} +1 -1
- package/dist/{cli-2655k16q.js → cli-nq677csy.js} +1 -1
- package/dist/{cli-0shx9j93.js → cli-pfk92eqz.js} +2 -2
- package/dist/{cli-wghjkr0e.js → cli-sqma6vw1.js} +10 -7
- package/dist/{cli-nzfnt2gs.js → cli-tf1n0r0b.js} +1 -1
- package/dist/{cli-qqzmjxkf.js → cli-v49fkghp.js} +11 -6
- package/dist/{cli-x77gen2p.js → cli-w2656ka1.js} +7 -7
- package/dist/{cli-5kqnemen.js → cli-yvy48785.js} +1 -1
- package/dist/{cli-m4ecdxvz.js → cli-zqne1qcj.js} +7 -7
- package/dist/cli.js +17 -17
- package/dist/{codex-adapter-wch12q99.js → codex-adapter-d95q4qsn.js} +7 -7
- package/dist/{codex-login-rn7c5gxt.js → codex-login-8cg0vhf2.js} +1 -1
- package/dist/{codex-session-runner-41pfcr95.js → codex-session-runner-gdwd8h0c.js} +8 -8
- package/dist/{commands-9849dkj6.js → commands-jqmgk54b.js} +2 -2
- package/dist/{controller-ja0sd95p.js → controller-z3jq589f.js} +4 -4
- package/dist/{controllers-connect-xp05dj6x.js → controllers-connect-r2za39ef.js} +23 -23
- package/dist/{cursor-adapter-623qxqew.js → cursor-adapter-4mr4jgkw.js} +2 -2
- package/dist/{db-47vj40dy.js → db-ppv2tze7.js} +3 -3
- package/dist/{db-w759qmx0.js → db-w36wwb5g.js} +4 -2
- package/dist/{devin-adapter-4ycy4vrf.js → devin-adapter-byen2cxt.js} +1 -1
- package/dist/{dispatcher-7b8e4z2j.js → dispatcher-pv5h77vf.js} +20 -20
- package/dist/{docker-s84hjs91.js → docker-fdzyewpz.js} +2 -2
- package/dist/{dsh-adapter-2ezw3xea.js → dsh-adapter-d4pdpb3r.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-4sp4dvmc.js} +1 -1
- package/dist/{event-bus-3z78ep5n.js → event-bus-pghg8hqy.js} +1 -1
- package/dist/{execute-0xpz8950.js → execute-jev839y1.js} +1 -1
- package/dist/{external-channel-e2s028da.js → external-channel-y6nkzhnn.js} +2 -2
- package/dist/{grok-adapter-ys7gaqee.js → grok-adapter-t08b9ntm.js} +10 -10
- package/dist/handlers-eqsnmv95.js +41 -0
- package/dist/{heartbeat-w3mntghj.js → heartbeat-vn31xwdk.js} +23 -23
- package/dist/{hook-g7kvv6x9.js → hook-6d0zbvvt.js} +6 -6
- package/dist/{hook-3jjywnpb.js → hook-cpjs8q51.js} +8 -8
- package/dist/{http-tkp7d4kb.js → http-9c6medda.js} +856 -99
- package/dist/{index-xdaahthb.js → index-38t35h0n.js} +20 -20
- package/dist/{index-3n8m9ea2.js → index-g6k9tctj.js} +1 -1
- package/dist/{index-1ef1myq2.js → index-k0yt1tvq.js} +20 -20
- package/dist/{index-31ceyf42.js → index-pkma1yf8.js} +1 -1
- package/dist/{index-q7m26kvs.js → index-qhjf2htm.js} +13 -10
- package/dist/index-yqgbfgaj.js +43 -0
- package/dist/{keepalive-v4ta8wgg.js → keepalive-em0117bp.js} +4 -4
- package/dist/lead-23e7z59t.js +79 -0
- package/dist/{maintenance-84n1ex21.js → maintenance-kbme3qy9.js} +1 -1
- package/dist/{oauth-refresh-sweep-vjnnandw.js → oauth-refresh-sweep-xysj4yse.js} +3 -3
- package/dist/{onboard-sfmpe4np.js → onboard-p6q0vz97.js} +3 -3
- package/dist/{opencode-adapter-jmpst4q4.js → opencode-adapter-esv3k9yn.js} +7 -7
- package/dist/{otel-impl-v6cc0zve.js → otel-impl-54qhqh1z.js} +2 -2
- package/dist/{pi-mono-adapter-fk8fkcf6.js → pi-mono-adapter-mymbwhj0.js} +10 -10
- package/dist/{pricing-refresh-fsk1e1zc.js → pricing-refresh-yb75wv33.js} +3 -3
- package/dist/{rbac-roles-prmkdnkw.js → rbac-roles-1vp2mw4p.js} +2 -2
- package/dist/{rbac-roles-zxmxqa39.js → rbac-roles-dexhc9x8.js} +1 -1
- package/dist/render-v2-tjay5hhf.js +16 -0
- package/dist/{resume-frdtgfa0.js → resume-8ayf37g5.js} +9 -9
- package/dist/{runtime-bt5pkpm1.js → runtime-hqe5cqcd.js} +1 -1
- package/dist/{session-access-fpez4y5q.js → session-access-fdhp987s.js} +4 -4
- package/dist/session-source-backfill-qgtc86z1.js +110 -0
- package/dist/{setup-mq6m3m8q.js → setup-4rrmqcq3.js} +1 -1
- package/dist/{virtual-modules-mnfbh5mr.js → virtual-modules-52km00d6.js} +2 -2
- package/dist/{work-objects-kfahhjsq.js → work-objects-p28fgd70.js} +23 -23
- package/dist/worker-e3w7vye1.js +79 -0
- package/dist/{x-pbpezr0s.js → x-wxrzvzx8.js} +2 -2
- package/openapi.json +1274 -32
- package/package.json +1 -1
- package/src/assets/source-key.ts +95 -0
- package/src/be/db/api-keys.ts +80 -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 +183 -1
- package/src/be/db-retention.ts +61 -6
- package/src/be/db.ts +59 -114
- package/src/be/memory/providers/openai-embedding.ts +5 -1
- package/src/be/migrations/244_api_key_validation.sql +4 -0
- package/src/be/onboarding.ts +4 -0
- package/src/be/scripts/typecheck.ts +1 -1
- 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/provider-credentials.ts +210 -170
- 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/http/all-routes.ts +2 -0
- package/src/http/api-keys.ts +53 -0
- 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/index.ts +11 -0
- package/src/http/integrations.ts +5 -1
- package/src/http/kv.ts +8 -3
- package/src/http/onboarding.ts +6 -1
- package/src/http/pool-keys.ts +354 -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 +78 -9
- package/src/integrations/chat-sdk/inbound.ts +27 -0
- package/src/kv-reserved-namespaces.ts +19 -0
- 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/scheduler/scheduler.ts +3 -2
- package/src/scripts-runtime/swarm-sdk.ts +7 -1
- package/src/scripts-runtime/types/stdlib.d.ts +1 -1
- package/src/scripts-runtime/types/swarm-extension.d.ts +17 -8
- package/src/scripts-runtime/types/swarm-sdk.d.ts +1 -1
- 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-keys-validation.test.ts +170 -0
- 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/config-pool-keys.test.ts +533 -0
- package/src/tests/credential-check.test.ts +290 -2
- 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/extensions-pre-task.test.ts +53 -1
- 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/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/onboarding.test.ts +108 -1
- package/src/tests/openai-embedding-credentials.test.ts +35 -0
- package/src/tests/openrouter-attribution-call-sites.test.ts +2 -2
- package/src/tests/org-website.test.ts +36 -0
- 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/script-connections.test.ts +2 -0
- package/src/tests/script-runs-retention.test.ts +212 -0
- package/src/tests/sdk-allowlist.test.ts +39 -0
- 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/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/used-by-route.test.ts +11 -0
- package/src/tests/workflow-cascade-cancel.test.ts +172 -0
- package/src/tests/workflow-http-v2.test.ts +131 -0
- package/src/tests/workflow-step-order.test.ts +92 -0
- package/src/tests/workflow-sub-workflow.test.ts +30 -0
- package/src/tools/get-tasks.ts +8 -0
- package/src/tools/kv/kv-read-auth.ts +4 -2
- package/src/tools/task-action.ts +1 -1
- package/src/tools/workflows/get-workflow-run.ts +14 -4
- package/src/types.ts +24 -0
- package/src/utils/company-profile.ts +51 -1
- package/src/utils/credentials.ts +5 -2
- 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/executors/sub-workflow.ts +8 -1
- package/templates/ai-toolbox.manifest.json +2 -2
- package/templates/skills/researching/content.md +2 -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
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Agent Swarm API",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.6.0",
|
|
6
6
|
"description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
@@ -648,6 +648,15 @@
|
|
|
648
648
|
},
|
|
649
649
|
"testedAt": {
|
|
650
650
|
"type": "number"
|
|
651
|
+
},
|
|
652
|
+
"warning": {
|
|
653
|
+
"type": "string"
|
|
654
|
+
},
|
|
655
|
+
"keys": {
|
|
656
|
+
"type": "array",
|
|
657
|
+
"items": {
|
|
658
|
+
"$ref": "#/components/schemas/AgentCredStatusKeyResult"
|
|
659
|
+
}
|
|
651
660
|
}
|
|
652
661
|
},
|
|
653
662
|
"default": null,
|
|
@@ -657,6 +666,39 @@
|
|
|
657
666
|
"testedAt"
|
|
658
667
|
]
|
|
659
668
|
},
|
|
669
|
+
"AgentCredStatusKeyResult": {
|
|
670
|
+
"type": "object",
|
|
671
|
+
"properties": {
|
|
672
|
+
"keyType": {
|
|
673
|
+
"type": "string"
|
|
674
|
+
},
|
|
675
|
+
"index": {
|
|
676
|
+
"type": "number"
|
|
677
|
+
},
|
|
678
|
+
"suffix": {
|
|
679
|
+
"type": "string"
|
|
680
|
+
},
|
|
681
|
+
"ok": {
|
|
682
|
+
"type": "boolean"
|
|
683
|
+
},
|
|
684
|
+
"error": {
|
|
685
|
+
"type": "string"
|
|
686
|
+
},
|
|
687
|
+
"httpStatus": {
|
|
688
|
+
"type": "number"
|
|
689
|
+
},
|
|
690
|
+
"latency_ms": {
|
|
691
|
+
"type": "number"
|
|
692
|
+
}
|
|
693
|
+
},
|
|
694
|
+
"required": [
|
|
695
|
+
"keyType",
|
|
696
|
+
"index",
|
|
697
|
+
"suffix",
|
|
698
|
+
"ok",
|
|
699
|
+
"latency_ms"
|
|
700
|
+
]
|
|
701
|
+
},
|
|
660
702
|
"AgentLatestModel": {
|
|
661
703
|
"type": [
|
|
662
704
|
"object",
|
|
@@ -5521,6 +5563,77 @@
|
|
|
5521
5563
|
"nodeId"
|
|
5522
5564
|
]
|
|
5523
5565
|
},
|
|
5566
|
+
"WorkflowRunStepSlim": {
|
|
5567
|
+
"type": "object",
|
|
5568
|
+
"properties": {
|
|
5569
|
+
"id": {
|
|
5570
|
+
"type": "string",
|
|
5571
|
+
"format": "uuid"
|
|
5572
|
+
},
|
|
5573
|
+
"runId": {
|
|
5574
|
+
"type": "string",
|
|
5575
|
+
"format": "uuid"
|
|
5576
|
+
},
|
|
5577
|
+
"nodeId": {
|
|
5578
|
+
"type": "string"
|
|
5579
|
+
},
|
|
5580
|
+
"nodeType": {
|
|
5581
|
+
"type": "string"
|
|
5582
|
+
},
|
|
5583
|
+
"status": {
|
|
5584
|
+
"type": "string",
|
|
5585
|
+
"enum": [
|
|
5586
|
+
"pending",
|
|
5587
|
+
"running",
|
|
5588
|
+
"waiting",
|
|
5589
|
+
"completed",
|
|
5590
|
+
"failed",
|
|
5591
|
+
"skipped",
|
|
5592
|
+
"cancelled"
|
|
5593
|
+
]
|
|
5594
|
+
},
|
|
5595
|
+
"output": {},
|
|
5596
|
+
"error": {
|
|
5597
|
+
"type": "string"
|
|
5598
|
+
},
|
|
5599
|
+
"startedAt": {
|
|
5600
|
+
"type": "string"
|
|
5601
|
+
},
|
|
5602
|
+
"finishedAt": {
|
|
5603
|
+
"type": "string"
|
|
5604
|
+
},
|
|
5605
|
+
"retryCount": {
|
|
5606
|
+
"type": "integer",
|
|
5607
|
+
"minimum": 0,
|
|
5608
|
+
"default": 0
|
|
5609
|
+
},
|
|
5610
|
+
"maxRetries": {
|
|
5611
|
+
"type": "integer",
|
|
5612
|
+
"minimum": 0,
|
|
5613
|
+
"default": 3
|
|
5614
|
+
},
|
|
5615
|
+
"nextRetryAt": {
|
|
5616
|
+
"type": "string"
|
|
5617
|
+
},
|
|
5618
|
+
"idempotencyKey": {
|
|
5619
|
+
"type": "string"
|
|
5620
|
+
},
|
|
5621
|
+
"diagnostics": {
|
|
5622
|
+
"type": "string"
|
|
5623
|
+
},
|
|
5624
|
+
"nextPort": {
|
|
5625
|
+
"type": "string"
|
|
5626
|
+
}
|
|
5627
|
+
},
|
|
5628
|
+
"required": [
|
|
5629
|
+
"id",
|
|
5630
|
+
"runId",
|
|
5631
|
+
"nodeId",
|
|
5632
|
+
"nodeType",
|
|
5633
|
+
"status",
|
|
5634
|
+
"startedAt"
|
|
5635
|
+
]
|
|
5636
|
+
},
|
|
5524
5637
|
"WorkflowVersion": {
|
|
5525
5638
|
"type": "object",
|
|
5526
5639
|
"properties": {
|
|
@@ -12366,6 +12479,9 @@
|
|
|
12366
12479
|
"eng_lead",
|
|
12367
12480
|
"founder",
|
|
12368
12481
|
"product",
|
|
12482
|
+
"marketing",
|
|
12483
|
+
"sales",
|
|
12484
|
+
"research",
|
|
12369
12485
|
"ops",
|
|
12370
12486
|
"other"
|
|
12371
12487
|
]
|
|
@@ -17266,6 +17382,217 @@
|
|
|
17266
17382
|
}
|
|
17267
17383
|
}
|
|
17268
17384
|
},
|
|
17385
|
+
"/api/codex-oauth/accounts": {
|
|
17386
|
+
"get": {
|
|
17387
|
+
"summary": "List stored Codex ChatGPT accounts",
|
|
17388
|
+
"tags": [
|
|
17389
|
+
"Codex OAuth"
|
|
17390
|
+
],
|
|
17391
|
+
"security": [
|
|
17392
|
+
{
|
|
17393
|
+
"bearerAuth": []
|
|
17394
|
+
}
|
|
17395
|
+
],
|
|
17396
|
+
"responses": {
|
|
17397
|
+
"200": {
|
|
17398
|
+
"description": "Stored account metadata",
|
|
17399
|
+
"content": {
|
|
17400
|
+
"application/json": {
|
|
17401
|
+
"schema": {
|
|
17402
|
+
"type": "object",
|
|
17403
|
+
"properties": {
|
|
17404
|
+
"accounts": {
|
|
17405
|
+
"type": "array",
|
|
17406
|
+
"items": {
|
|
17407
|
+
"type": "object",
|
|
17408
|
+
"properties": {
|
|
17409
|
+
"slot": {
|
|
17410
|
+
"type": "integer",
|
|
17411
|
+
"minimum": 0
|
|
17412
|
+
},
|
|
17413
|
+
"configKey": {
|
|
17414
|
+
"type": "string"
|
|
17415
|
+
},
|
|
17416
|
+
"legacy": {
|
|
17417
|
+
"type": "boolean"
|
|
17418
|
+
},
|
|
17419
|
+
"suffix": {
|
|
17420
|
+
"type": [
|
|
17421
|
+
"string",
|
|
17422
|
+
"null"
|
|
17423
|
+
]
|
|
17424
|
+
},
|
|
17425
|
+
"plan": {
|
|
17426
|
+
"type": [
|
|
17427
|
+
"string",
|
|
17428
|
+
"null"
|
|
17429
|
+
]
|
|
17430
|
+
},
|
|
17431
|
+
"email": {
|
|
17432
|
+
"type": [
|
|
17433
|
+
"string",
|
|
17434
|
+
"null"
|
|
17435
|
+
]
|
|
17436
|
+
},
|
|
17437
|
+
"status": {
|
|
17438
|
+
"type": "string",
|
|
17439
|
+
"enum": [
|
|
17440
|
+
"ok",
|
|
17441
|
+
"needs_login",
|
|
17442
|
+
"unchecked"
|
|
17443
|
+
]
|
|
17444
|
+
}
|
|
17445
|
+
},
|
|
17446
|
+
"required": [
|
|
17447
|
+
"slot",
|
|
17448
|
+
"configKey",
|
|
17449
|
+
"legacy",
|
|
17450
|
+
"suffix",
|
|
17451
|
+
"plan",
|
|
17452
|
+
"email",
|
|
17453
|
+
"status"
|
|
17454
|
+
]
|
|
17455
|
+
}
|
|
17456
|
+
}
|
|
17457
|
+
},
|
|
17458
|
+
"required": [
|
|
17459
|
+
"accounts"
|
|
17460
|
+
]
|
|
17461
|
+
}
|
|
17462
|
+
}
|
|
17463
|
+
}
|
|
17464
|
+
},
|
|
17465
|
+
"403": {
|
|
17466
|
+
"description": "Caller cannot read all secrets",
|
|
17467
|
+
"content": {
|
|
17468
|
+
"application/json": {
|
|
17469
|
+
"schema": {
|
|
17470
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
17471
|
+
}
|
|
17472
|
+
}
|
|
17473
|
+
}
|
|
17474
|
+
}
|
|
17475
|
+
}
|
|
17476
|
+
}
|
|
17477
|
+
},
|
|
17478
|
+
"/api/codex-oauth/accounts/{slot}": {
|
|
17479
|
+
"delete": {
|
|
17480
|
+
"summary": "Remove a stored Codex ChatGPT account",
|
|
17481
|
+
"tags": [
|
|
17482
|
+
"Codex OAuth"
|
|
17483
|
+
],
|
|
17484
|
+
"security": [
|
|
17485
|
+
{
|
|
17486
|
+
"bearerAuth": []
|
|
17487
|
+
}
|
|
17488
|
+
],
|
|
17489
|
+
"parameters": [
|
|
17490
|
+
{
|
|
17491
|
+
"schema": {
|
|
17492
|
+
"type": [
|
|
17493
|
+
"integer",
|
|
17494
|
+
"null"
|
|
17495
|
+
],
|
|
17496
|
+
"minimum": 0,
|
|
17497
|
+
"maximum": 100
|
|
17498
|
+
},
|
|
17499
|
+
"required": false,
|
|
17500
|
+
"name": "slot",
|
|
17501
|
+
"in": "path"
|
|
17502
|
+
}
|
|
17503
|
+
],
|
|
17504
|
+
"responses": {
|
|
17505
|
+
"200": {
|
|
17506
|
+
"description": "Remaining accounts",
|
|
17507
|
+
"content": {
|
|
17508
|
+
"application/json": {
|
|
17509
|
+
"schema": {
|
|
17510
|
+
"type": "object",
|
|
17511
|
+
"properties": {
|
|
17512
|
+
"accounts": {
|
|
17513
|
+
"type": "array",
|
|
17514
|
+
"items": {
|
|
17515
|
+
"type": "object",
|
|
17516
|
+
"properties": {
|
|
17517
|
+
"slot": {
|
|
17518
|
+
"type": "integer",
|
|
17519
|
+
"minimum": 0
|
|
17520
|
+
},
|
|
17521
|
+
"configKey": {
|
|
17522
|
+
"type": "string"
|
|
17523
|
+
},
|
|
17524
|
+
"legacy": {
|
|
17525
|
+
"type": "boolean"
|
|
17526
|
+
},
|
|
17527
|
+
"suffix": {
|
|
17528
|
+
"type": [
|
|
17529
|
+
"string",
|
|
17530
|
+
"null"
|
|
17531
|
+
]
|
|
17532
|
+
},
|
|
17533
|
+
"plan": {
|
|
17534
|
+
"type": [
|
|
17535
|
+
"string",
|
|
17536
|
+
"null"
|
|
17537
|
+
]
|
|
17538
|
+
},
|
|
17539
|
+
"email": {
|
|
17540
|
+
"type": [
|
|
17541
|
+
"string",
|
|
17542
|
+
"null"
|
|
17543
|
+
]
|
|
17544
|
+
},
|
|
17545
|
+
"status": {
|
|
17546
|
+
"type": "string",
|
|
17547
|
+
"enum": [
|
|
17548
|
+
"ok",
|
|
17549
|
+
"needs_login",
|
|
17550
|
+
"unchecked"
|
|
17551
|
+
]
|
|
17552
|
+
}
|
|
17553
|
+
},
|
|
17554
|
+
"required": [
|
|
17555
|
+
"slot",
|
|
17556
|
+
"configKey",
|
|
17557
|
+
"legacy",
|
|
17558
|
+
"suffix",
|
|
17559
|
+
"plan",
|
|
17560
|
+
"email",
|
|
17561
|
+
"status"
|
|
17562
|
+
]
|
|
17563
|
+
}
|
|
17564
|
+
}
|
|
17565
|
+
},
|
|
17566
|
+
"required": [
|
|
17567
|
+
"accounts"
|
|
17568
|
+
]
|
|
17569
|
+
}
|
|
17570
|
+
}
|
|
17571
|
+
}
|
|
17572
|
+
},
|
|
17573
|
+
"403": {
|
|
17574
|
+
"description": "Config administration and permission to read all secrets required",
|
|
17575
|
+
"content": {
|
|
17576
|
+
"application/json": {
|
|
17577
|
+
"schema": {
|
|
17578
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
17579
|
+
}
|
|
17580
|
+
}
|
|
17581
|
+
}
|
|
17582
|
+
},
|
|
17583
|
+
"404": {
|
|
17584
|
+
"description": "Account slot does not exist",
|
|
17585
|
+
"content": {
|
|
17586
|
+
"application/json": {
|
|
17587
|
+
"schema": {
|
|
17588
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
17589
|
+
}
|
|
17590
|
+
}
|
|
17591
|
+
}
|
|
17592
|
+
}
|
|
17593
|
+
}
|
|
17594
|
+
}
|
|
17595
|
+
},
|
|
17269
17596
|
"/api/oauth/keep-warm/codex": {
|
|
17270
17597
|
"post": {
|
|
17271
17598
|
"summary": "Locked keep-warm refresh sweep across all Codex OAuth pool slots",
|
|
@@ -17417,7 +17744,7 @@
|
|
|
17417
17744
|
"/api/comb/review-batches": {
|
|
17418
17745
|
"post": {
|
|
17419
17746
|
"summary": "Send agent-fs comments to the swarm as one lead task",
|
|
17420
|
-
"description": "Comb's 'Send to swarm'. The server reads each comment again from agent-fs with its bootstrap key, skips replies, resolved comments, and comments already sent, and creates ONE task for the lead. Each sent comment gets a `[comb:sent task=<id>]` reply from the swarm service account. A comment is sent at most once. When an earlier send lost its reply, the batch posts that reply again (`repaired`). Answers 404 while COMB_ENABLED is off.",
|
|
17747
|
+
"description": "Comb's 'Send to swarm'. The server reads each comment again from agent-fs with its bootstrap key, skips replies, resolved comments, and comments already sent, and creates ONE task for the lead. Each sent comment gets a `[comb:sent task=<id>]` reply from the swarm service account. A comment is sent at most once. An optional `note` from the sender goes into the task text. When an earlier send lost its reply, the batch posts that reply again (`repaired`). Answers 404 while COMB_ENABLED is off.",
|
|
17421
17748
|
"tags": [
|
|
17422
17749
|
"Comb"
|
|
17423
17750
|
],
|
|
@@ -17453,6 +17780,10 @@
|
|
|
17453
17780
|
"type": "string",
|
|
17454
17781
|
"minLength": 1,
|
|
17455
17782
|
"maxLength": 1024
|
|
17783
|
+
},
|
|
17784
|
+
"note": {
|
|
17785
|
+
"type": "string",
|
|
17786
|
+
"maxLength": 4000
|
|
17456
17787
|
}
|
|
17457
17788
|
},
|
|
17458
17789
|
"required": [
|
|
@@ -17529,6 +17860,14 @@
|
|
|
17529
17860
|
"taskId"
|
|
17530
17861
|
]
|
|
17531
17862
|
}
|
|
17863
|
+
},
|
|
17864
|
+
"lead": {
|
|
17865
|
+
"type": "string",
|
|
17866
|
+
"enum": [
|
|
17867
|
+
"online",
|
|
17868
|
+
"offline",
|
|
17869
|
+
"none"
|
|
17870
|
+
]
|
|
17532
17871
|
}
|
|
17533
17872
|
},
|
|
17534
17873
|
"required": [
|
|
@@ -17604,6 +17943,14 @@
|
|
|
17604
17943
|
"taskId"
|
|
17605
17944
|
]
|
|
17606
17945
|
}
|
|
17946
|
+
},
|
|
17947
|
+
"lead": {
|
|
17948
|
+
"type": "string",
|
|
17949
|
+
"enum": [
|
|
17950
|
+
"online",
|
|
17951
|
+
"offline",
|
|
17952
|
+
"none"
|
|
17953
|
+
]
|
|
17607
17954
|
}
|
|
17608
17955
|
},
|
|
17609
17956
|
"required": [
|
|
@@ -17761,6 +18108,537 @@
|
|
|
17761
18108
|
}
|
|
17762
18109
|
}
|
|
17763
18110
|
},
|
|
18111
|
+
"/api/config/pool-keys": {
|
|
18112
|
+
"get": {
|
|
18113
|
+
"summary": "List credential pool suffixes and status",
|
|
18114
|
+
"tags": [
|
|
18115
|
+
"Config"
|
|
18116
|
+
],
|
|
18117
|
+
"security": [
|
|
18118
|
+
{
|
|
18119
|
+
"bearerAuth": []
|
|
18120
|
+
}
|
|
18121
|
+
],
|
|
18122
|
+
"parameters": [
|
|
18123
|
+
{
|
|
18124
|
+
"schema": {
|
|
18125
|
+
"type": "string"
|
|
18126
|
+
},
|
|
18127
|
+
"required": true,
|
|
18128
|
+
"name": "key",
|
|
18129
|
+
"in": "query"
|
|
18130
|
+
}
|
|
18131
|
+
],
|
|
18132
|
+
"responses": {
|
|
18133
|
+
"200": {
|
|
18134
|
+
"description": "Credential pool",
|
|
18135
|
+
"content": {
|
|
18136
|
+
"application/json": {
|
|
18137
|
+
"schema": {
|
|
18138
|
+
"type": "object",
|
|
18139
|
+
"properties": {
|
|
18140
|
+
"key": {
|
|
18141
|
+
"type": "string"
|
|
18142
|
+
},
|
|
18143
|
+
"source": {
|
|
18144
|
+
"type": "string",
|
|
18145
|
+
"enum": [
|
|
18146
|
+
"stored",
|
|
18147
|
+
"env",
|
|
18148
|
+
"none"
|
|
18149
|
+
]
|
|
18150
|
+
},
|
|
18151
|
+
"readOnly": {
|
|
18152
|
+
"type": "boolean"
|
|
18153
|
+
},
|
|
18154
|
+
"keys": {
|
|
18155
|
+
"type": "array",
|
|
18156
|
+
"items": {
|
|
18157
|
+
"type": "object",
|
|
18158
|
+
"properties": {
|
|
18159
|
+
"index": {
|
|
18160
|
+
"type": "integer",
|
|
18161
|
+
"minimum": 0
|
|
18162
|
+
},
|
|
18163
|
+
"suffix": {
|
|
18164
|
+
"type": "string"
|
|
18165
|
+
},
|
|
18166
|
+
"status": {
|
|
18167
|
+
"type": "string",
|
|
18168
|
+
"enum": [
|
|
18169
|
+
"ok",
|
|
18170
|
+
"rejected",
|
|
18171
|
+
"rate_limited",
|
|
18172
|
+
"unchecked"
|
|
18173
|
+
]
|
|
18174
|
+
},
|
|
18175
|
+
"error": {
|
|
18176
|
+
"type": [
|
|
18177
|
+
"string",
|
|
18178
|
+
"null"
|
|
18179
|
+
]
|
|
18180
|
+
},
|
|
18181
|
+
"checkedAt": {
|
|
18182
|
+
"type": [
|
|
18183
|
+
"string",
|
|
18184
|
+
"null"
|
|
18185
|
+
]
|
|
18186
|
+
},
|
|
18187
|
+
"rateLimitedUntil": {
|
|
18188
|
+
"type": [
|
|
18189
|
+
"string",
|
|
18190
|
+
"null"
|
|
18191
|
+
]
|
|
18192
|
+
}
|
|
18193
|
+
},
|
|
18194
|
+
"required": [
|
|
18195
|
+
"index",
|
|
18196
|
+
"suffix",
|
|
18197
|
+
"status",
|
|
18198
|
+
"error",
|
|
18199
|
+
"checkedAt",
|
|
18200
|
+
"rateLimitedUntil"
|
|
18201
|
+
]
|
|
18202
|
+
}
|
|
18203
|
+
}
|
|
18204
|
+
},
|
|
18205
|
+
"required": [
|
|
18206
|
+
"key",
|
|
18207
|
+
"source",
|
|
18208
|
+
"readOnly",
|
|
18209
|
+
"keys"
|
|
18210
|
+
]
|
|
18211
|
+
}
|
|
18212
|
+
}
|
|
18213
|
+
}
|
|
18214
|
+
},
|
|
18215
|
+
"400": {
|
|
18216
|
+
"description": "Invalid pool variable",
|
|
18217
|
+
"content": {
|
|
18218
|
+
"application/json": {
|
|
18219
|
+
"schema": {
|
|
18220
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18221
|
+
}
|
|
18222
|
+
}
|
|
18223
|
+
}
|
|
18224
|
+
},
|
|
18225
|
+
"403": {
|
|
18226
|
+
"description": "Secret read permission required",
|
|
18227
|
+
"content": {
|
|
18228
|
+
"application/json": {
|
|
18229
|
+
"schema": {
|
|
18230
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18231
|
+
}
|
|
18232
|
+
}
|
|
18233
|
+
}
|
|
18234
|
+
}
|
|
18235
|
+
}
|
|
18236
|
+
},
|
|
18237
|
+
"post": {
|
|
18238
|
+
"summary": "Test and append keys to a credential pool",
|
|
18239
|
+
"tags": [
|
|
18240
|
+
"Config"
|
|
18241
|
+
],
|
|
18242
|
+
"security": [
|
|
18243
|
+
{
|
|
18244
|
+
"bearerAuth": []
|
|
18245
|
+
}
|
|
18246
|
+
],
|
|
18247
|
+
"requestBody": {
|
|
18248
|
+
"content": {
|
|
18249
|
+
"application/json": {
|
|
18250
|
+
"schema": {
|
|
18251
|
+
"type": "object",
|
|
18252
|
+
"properties": {
|
|
18253
|
+
"key": {
|
|
18254
|
+
"type": "string"
|
|
18255
|
+
},
|
|
18256
|
+
"value": {
|
|
18257
|
+
"type": "string"
|
|
18258
|
+
},
|
|
18259
|
+
"baseUrl": {
|
|
18260
|
+
"type": [
|
|
18261
|
+
"string",
|
|
18262
|
+
"null"
|
|
18263
|
+
],
|
|
18264
|
+
"description": "Base URL for the check only. Null tests the provider default. Omit to use the stored URL."
|
|
18265
|
+
}
|
|
18266
|
+
},
|
|
18267
|
+
"required": [
|
|
18268
|
+
"key",
|
|
18269
|
+
"value"
|
|
18270
|
+
]
|
|
18271
|
+
}
|
|
18272
|
+
}
|
|
18273
|
+
}
|
|
18274
|
+
},
|
|
18275
|
+
"responses": {
|
|
18276
|
+
"200": {
|
|
18277
|
+
"description": "Updated credential pool and checks",
|
|
18278
|
+
"content": {
|
|
18279
|
+
"application/json": {
|
|
18280
|
+
"schema": {
|
|
18281
|
+
"type": "object",
|
|
18282
|
+
"properties": {
|
|
18283
|
+
"key": {
|
|
18284
|
+
"type": "string"
|
|
18285
|
+
},
|
|
18286
|
+
"source": {
|
|
18287
|
+
"type": "string",
|
|
18288
|
+
"enum": [
|
|
18289
|
+
"stored",
|
|
18290
|
+
"env",
|
|
18291
|
+
"none"
|
|
18292
|
+
]
|
|
18293
|
+
},
|
|
18294
|
+
"readOnly": {
|
|
18295
|
+
"type": "boolean"
|
|
18296
|
+
},
|
|
18297
|
+
"keys": {
|
|
18298
|
+
"type": "array",
|
|
18299
|
+
"items": {
|
|
18300
|
+
"type": "object",
|
|
18301
|
+
"properties": {
|
|
18302
|
+
"index": {
|
|
18303
|
+
"type": "integer",
|
|
18304
|
+
"minimum": 0
|
|
18305
|
+
},
|
|
18306
|
+
"suffix": {
|
|
18307
|
+
"type": "string"
|
|
18308
|
+
},
|
|
18309
|
+
"status": {
|
|
18310
|
+
"type": "string",
|
|
18311
|
+
"enum": [
|
|
18312
|
+
"ok",
|
|
18313
|
+
"rejected",
|
|
18314
|
+
"rate_limited",
|
|
18315
|
+
"unchecked"
|
|
18316
|
+
]
|
|
18317
|
+
},
|
|
18318
|
+
"error": {
|
|
18319
|
+
"type": [
|
|
18320
|
+
"string",
|
|
18321
|
+
"null"
|
|
18322
|
+
]
|
|
18323
|
+
},
|
|
18324
|
+
"checkedAt": {
|
|
18325
|
+
"type": [
|
|
18326
|
+
"string",
|
|
18327
|
+
"null"
|
|
18328
|
+
]
|
|
18329
|
+
},
|
|
18330
|
+
"rateLimitedUntil": {
|
|
18331
|
+
"type": [
|
|
18332
|
+
"string",
|
|
18333
|
+
"null"
|
|
18334
|
+
]
|
|
18335
|
+
}
|
|
18336
|
+
},
|
|
18337
|
+
"required": [
|
|
18338
|
+
"index",
|
|
18339
|
+
"suffix",
|
|
18340
|
+
"status",
|
|
18341
|
+
"error",
|
|
18342
|
+
"checkedAt",
|
|
18343
|
+
"rateLimitedUntil"
|
|
18344
|
+
]
|
|
18345
|
+
}
|
|
18346
|
+
},
|
|
18347
|
+
"checks": {
|
|
18348
|
+
"type": "array",
|
|
18349
|
+
"items": {
|
|
18350
|
+
"type": "object",
|
|
18351
|
+
"properties": {
|
|
18352
|
+
"suffix": {
|
|
18353
|
+
"type": "string"
|
|
18354
|
+
},
|
|
18355
|
+
"result": {
|
|
18356
|
+
"type": "string",
|
|
18357
|
+
"enum": [
|
|
18358
|
+
"verified",
|
|
18359
|
+
"rejected",
|
|
18360
|
+
"not_tested"
|
|
18361
|
+
]
|
|
18362
|
+
},
|
|
18363
|
+
"httpStatus": {
|
|
18364
|
+
"type": [
|
|
18365
|
+
"number",
|
|
18366
|
+
"null"
|
|
18367
|
+
]
|
|
18368
|
+
},
|
|
18369
|
+
"error": {
|
|
18370
|
+
"type": [
|
|
18371
|
+
"string",
|
|
18372
|
+
"null"
|
|
18373
|
+
]
|
|
18374
|
+
}
|
|
18375
|
+
},
|
|
18376
|
+
"required": [
|
|
18377
|
+
"suffix",
|
|
18378
|
+
"result",
|
|
18379
|
+
"httpStatus",
|
|
18380
|
+
"error"
|
|
18381
|
+
]
|
|
18382
|
+
}
|
|
18383
|
+
}
|
|
18384
|
+
},
|
|
18385
|
+
"required": [
|
|
18386
|
+
"key",
|
|
18387
|
+
"source",
|
|
18388
|
+
"readOnly",
|
|
18389
|
+
"keys",
|
|
18390
|
+
"checks"
|
|
18391
|
+
]
|
|
18392
|
+
}
|
|
18393
|
+
}
|
|
18394
|
+
}
|
|
18395
|
+
},
|
|
18396
|
+
"400": {
|
|
18397
|
+
"description": "Invalid key",
|
|
18398
|
+
"content": {
|
|
18399
|
+
"application/json": {
|
|
18400
|
+
"schema": {
|
|
18401
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18402
|
+
}
|
|
18403
|
+
}
|
|
18404
|
+
}
|
|
18405
|
+
},
|
|
18406
|
+
"403": {
|
|
18407
|
+
"description": "Config administration and permission to read all secrets required",
|
|
18408
|
+
"content": {
|
|
18409
|
+
"application/json": {
|
|
18410
|
+
"schema": {
|
|
18411
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18412
|
+
}
|
|
18413
|
+
}
|
|
18414
|
+
}
|
|
18415
|
+
},
|
|
18416
|
+
"409": {
|
|
18417
|
+
"description": "Duplicate key or deployment env pool",
|
|
18418
|
+
"content": {
|
|
18419
|
+
"application/json": {
|
|
18420
|
+
"schema": {
|
|
18421
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18422
|
+
}
|
|
18423
|
+
}
|
|
18424
|
+
}
|
|
18425
|
+
},
|
|
18426
|
+
"422": {
|
|
18427
|
+
"description": "Provider rejected a key. Nothing was saved.",
|
|
18428
|
+
"content": {
|
|
18429
|
+
"application/json": {
|
|
18430
|
+
"schema": {
|
|
18431
|
+
"type": "object",
|
|
18432
|
+
"properties": {
|
|
18433
|
+
"error": {
|
|
18434
|
+
"type": "string"
|
|
18435
|
+
},
|
|
18436
|
+
"checks": {
|
|
18437
|
+
"type": "array",
|
|
18438
|
+
"items": {
|
|
18439
|
+
"type": "object",
|
|
18440
|
+
"properties": {
|
|
18441
|
+
"suffix": {
|
|
18442
|
+
"type": "string"
|
|
18443
|
+
},
|
|
18444
|
+
"result": {
|
|
18445
|
+
"type": "string",
|
|
18446
|
+
"enum": [
|
|
18447
|
+
"verified",
|
|
18448
|
+
"rejected",
|
|
18449
|
+
"not_tested"
|
|
18450
|
+
]
|
|
18451
|
+
},
|
|
18452
|
+
"httpStatus": {
|
|
18453
|
+
"type": [
|
|
18454
|
+
"number",
|
|
18455
|
+
"null"
|
|
18456
|
+
]
|
|
18457
|
+
},
|
|
18458
|
+
"error": {
|
|
18459
|
+
"type": [
|
|
18460
|
+
"string",
|
|
18461
|
+
"null"
|
|
18462
|
+
]
|
|
18463
|
+
}
|
|
18464
|
+
},
|
|
18465
|
+
"required": [
|
|
18466
|
+
"suffix",
|
|
18467
|
+
"result",
|
|
18468
|
+
"httpStatus",
|
|
18469
|
+
"error"
|
|
18470
|
+
]
|
|
18471
|
+
}
|
|
18472
|
+
}
|
|
18473
|
+
},
|
|
18474
|
+
"required": [
|
|
18475
|
+
"error",
|
|
18476
|
+
"checks"
|
|
18477
|
+
]
|
|
18478
|
+
}
|
|
18479
|
+
}
|
|
18480
|
+
}
|
|
18481
|
+
}
|
|
18482
|
+
}
|
|
18483
|
+
},
|
|
18484
|
+
"delete": {
|
|
18485
|
+
"summary": "Remove one credential pool member",
|
|
18486
|
+
"tags": [
|
|
18487
|
+
"Config"
|
|
18488
|
+
],
|
|
18489
|
+
"security": [
|
|
18490
|
+
{
|
|
18491
|
+
"bearerAuth": []
|
|
18492
|
+
}
|
|
18493
|
+
],
|
|
18494
|
+
"parameters": [
|
|
18495
|
+
{
|
|
18496
|
+
"schema": {
|
|
18497
|
+
"type": "string"
|
|
18498
|
+
},
|
|
18499
|
+
"required": true,
|
|
18500
|
+
"name": "key",
|
|
18501
|
+
"in": "query"
|
|
18502
|
+
},
|
|
18503
|
+
{
|
|
18504
|
+
"schema": {
|
|
18505
|
+
"type": [
|
|
18506
|
+
"integer",
|
|
18507
|
+
"null"
|
|
18508
|
+
],
|
|
18509
|
+
"minimum": 0
|
|
18510
|
+
},
|
|
18511
|
+
"required": false,
|
|
18512
|
+
"name": "index",
|
|
18513
|
+
"in": "query"
|
|
18514
|
+
},
|
|
18515
|
+
{
|
|
18516
|
+
"schema": {
|
|
18517
|
+
"type": "string",
|
|
18518
|
+
"minLength": 1,
|
|
18519
|
+
"maxLength": 5
|
|
18520
|
+
},
|
|
18521
|
+
"required": true,
|
|
18522
|
+
"name": "suffix",
|
|
18523
|
+
"in": "query"
|
|
18524
|
+
}
|
|
18525
|
+
],
|
|
18526
|
+
"responses": {
|
|
18527
|
+
"200": {
|
|
18528
|
+
"description": "Updated credential pool",
|
|
18529
|
+
"content": {
|
|
18530
|
+
"application/json": {
|
|
18531
|
+
"schema": {
|
|
18532
|
+
"type": "object",
|
|
18533
|
+
"properties": {
|
|
18534
|
+
"key": {
|
|
18535
|
+
"type": "string"
|
|
18536
|
+
},
|
|
18537
|
+
"source": {
|
|
18538
|
+
"type": "string",
|
|
18539
|
+
"enum": [
|
|
18540
|
+
"stored",
|
|
18541
|
+
"env",
|
|
18542
|
+
"none"
|
|
18543
|
+
]
|
|
18544
|
+
},
|
|
18545
|
+
"readOnly": {
|
|
18546
|
+
"type": "boolean"
|
|
18547
|
+
},
|
|
18548
|
+
"keys": {
|
|
18549
|
+
"type": "array",
|
|
18550
|
+
"items": {
|
|
18551
|
+
"type": "object",
|
|
18552
|
+
"properties": {
|
|
18553
|
+
"index": {
|
|
18554
|
+
"type": "integer",
|
|
18555
|
+
"minimum": 0
|
|
18556
|
+
},
|
|
18557
|
+
"suffix": {
|
|
18558
|
+
"type": "string"
|
|
18559
|
+
},
|
|
18560
|
+
"status": {
|
|
18561
|
+
"type": "string",
|
|
18562
|
+
"enum": [
|
|
18563
|
+
"ok",
|
|
18564
|
+
"rejected",
|
|
18565
|
+
"rate_limited",
|
|
18566
|
+
"unchecked"
|
|
18567
|
+
]
|
|
18568
|
+
},
|
|
18569
|
+
"error": {
|
|
18570
|
+
"type": [
|
|
18571
|
+
"string",
|
|
18572
|
+
"null"
|
|
18573
|
+
]
|
|
18574
|
+
},
|
|
18575
|
+
"checkedAt": {
|
|
18576
|
+
"type": [
|
|
18577
|
+
"string",
|
|
18578
|
+
"null"
|
|
18579
|
+
]
|
|
18580
|
+
},
|
|
18581
|
+
"rateLimitedUntil": {
|
|
18582
|
+
"type": [
|
|
18583
|
+
"string",
|
|
18584
|
+
"null"
|
|
18585
|
+
]
|
|
18586
|
+
}
|
|
18587
|
+
},
|
|
18588
|
+
"required": [
|
|
18589
|
+
"index",
|
|
18590
|
+
"suffix",
|
|
18591
|
+
"status",
|
|
18592
|
+
"error",
|
|
18593
|
+
"checkedAt",
|
|
18594
|
+
"rateLimitedUntil"
|
|
18595
|
+
]
|
|
18596
|
+
}
|
|
18597
|
+
}
|
|
18598
|
+
},
|
|
18599
|
+
"required": [
|
|
18600
|
+
"key",
|
|
18601
|
+
"source",
|
|
18602
|
+
"readOnly",
|
|
18603
|
+
"keys"
|
|
18604
|
+
]
|
|
18605
|
+
}
|
|
18606
|
+
}
|
|
18607
|
+
}
|
|
18608
|
+
},
|
|
18609
|
+
"400": {
|
|
18610
|
+
"description": "Invalid pool member",
|
|
18611
|
+
"content": {
|
|
18612
|
+
"application/json": {
|
|
18613
|
+
"schema": {
|
|
18614
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18615
|
+
}
|
|
18616
|
+
}
|
|
18617
|
+
}
|
|
18618
|
+
},
|
|
18619
|
+
"403": {
|
|
18620
|
+
"description": "Config administration and permission to read all secrets required",
|
|
18621
|
+
"content": {
|
|
18622
|
+
"application/json": {
|
|
18623
|
+
"schema": {
|
|
18624
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18625
|
+
}
|
|
18626
|
+
}
|
|
18627
|
+
}
|
|
18628
|
+
},
|
|
18629
|
+
"409": {
|
|
18630
|
+
"description": "The pool changed or comes from the deployment env",
|
|
18631
|
+
"content": {
|
|
18632
|
+
"application/json": {
|
|
18633
|
+
"schema": {
|
|
18634
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
18635
|
+
}
|
|
18636
|
+
}
|
|
18637
|
+
}
|
|
18638
|
+
}
|
|
18639
|
+
}
|
|
18640
|
+
}
|
|
18641
|
+
},
|
|
17764
18642
|
"/api/tasks/{id}/context": {
|
|
17765
18643
|
"post": {
|
|
17766
18644
|
"summary": "Record a context usage snapshot for a task",
|
|
@@ -18113,9 +18991,108 @@
|
|
|
18113
18991
|
}
|
|
18114
18992
|
}
|
|
18115
18993
|
},
|
|
18116
|
-
"/api/keys/report-rate-limit": {
|
|
18994
|
+
"/api/keys/report-rate-limit": {
|
|
18995
|
+
"post": {
|
|
18996
|
+
"summary": "Mark an API key as rate-limited",
|
|
18997
|
+
"tags": [
|
|
18998
|
+
"API Keys"
|
|
18999
|
+
],
|
|
19000
|
+
"security": [
|
|
19001
|
+
{
|
|
19002
|
+
"bearerAuth": []
|
|
19003
|
+
}
|
|
19004
|
+
],
|
|
19005
|
+
"requestBody": {
|
|
19006
|
+
"content": {
|
|
19007
|
+
"application/json": {
|
|
19008
|
+
"schema": {
|
|
19009
|
+
"type": "object",
|
|
19010
|
+
"properties": {
|
|
19011
|
+
"keyType": {
|
|
19012
|
+
"type": "string"
|
|
19013
|
+
},
|
|
19014
|
+
"keySuffix": {
|
|
19015
|
+
"type": "string",
|
|
19016
|
+
"minLength": 1,
|
|
19017
|
+
"maxLength": 10
|
|
19018
|
+
},
|
|
19019
|
+
"keyIndex": {
|
|
19020
|
+
"type": "integer",
|
|
19021
|
+
"minimum": 0
|
|
19022
|
+
},
|
|
19023
|
+
"rateLimitedUntil": {
|
|
19024
|
+
"type": "string",
|
|
19025
|
+
"format": "date-time"
|
|
19026
|
+
},
|
|
19027
|
+
"scope": {
|
|
19028
|
+
"type": "string"
|
|
19029
|
+
},
|
|
19030
|
+
"scopeId": {
|
|
19031
|
+
"type": "string"
|
|
19032
|
+
}
|
|
19033
|
+
},
|
|
19034
|
+
"required": [
|
|
19035
|
+
"keyType",
|
|
19036
|
+
"keySuffix",
|
|
19037
|
+
"keyIndex",
|
|
19038
|
+
"rateLimitedUntil"
|
|
19039
|
+
]
|
|
19040
|
+
}
|
|
19041
|
+
}
|
|
19042
|
+
}
|
|
19043
|
+
},
|
|
19044
|
+
"responses": {
|
|
19045
|
+
"200": {
|
|
19046
|
+
"description": "Key marked as rate-limited",
|
|
19047
|
+
"content": {
|
|
19048
|
+
"application/json": {
|
|
19049
|
+
"schema": {
|
|
19050
|
+
"type": "object",
|
|
19051
|
+
"properties": {
|
|
19052
|
+
"success": {
|
|
19053
|
+
"type": "boolean",
|
|
19054
|
+
"enum": [
|
|
19055
|
+
true
|
|
19056
|
+
]
|
|
19057
|
+
},
|
|
19058
|
+
"message": {
|
|
19059
|
+
"type": "string"
|
|
19060
|
+
}
|
|
19061
|
+
},
|
|
19062
|
+
"required": [
|
|
19063
|
+
"success",
|
|
19064
|
+
"message"
|
|
19065
|
+
]
|
|
19066
|
+
}
|
|
19067
|
+
}
|
|
19068
|
+
}
|
|
19069
|
+
},
|
|
19070
|
+
"400": {
|
|
19071
|
+
"description": "Validation error",
|
|
19072
|
+
"content": {
|
|
19073
|
+
"application/json": {
|
|
19074
|
+
"schema": {
|
|
19075
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
19076
|
+
}
|
|
19077
|
+
}
|
|
19078
|
+
}
|
|
19079
|
+
},
|
|
19080
|
+
"401": {
|
|
19081
|
+
"description": "Unauthorized",
|
|
19082
|
+
"content": {
|
|
19083
|
+
"application/json": {
|
|
19084
|
+
"schema": {
|
|
19085
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
19086
|
+
}
|
|
19087
|
+
}
|
|
19088
|
+
}
|
|
19089
|
+
}
|
|
19090
|
+
}
|
|
19091
|
+
}
|
|
19092
|
+
},
|
|
19093
|
+
"/api/keys/report-validation": {
|
|
18117
19094
|
"post": {
|
|
18118
|
-
"summary": "
|
|
19095
|
+
"summary": "Record live validation results for a credential pool",
|
|
18119
19096
|
"tags": [
|
|
18120
19097
|
"API Keys"
|
|
18121
19098
|
],
|
|
@@ -18133,18 +19110,35 @@
|
|
|
18133
19110
|
"keyType": {
|
|
18134
19111
|
"type": "string"
|
|
18135
19112
|
},
|
|
18136
|
-
"
|
|
18137
|
-
"type": "
|
|
18138
|
-
"
|
|
18139
|
-
|
|
18140
|
-
|
|
18141
|
-
|
|
18142
|
-
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
|
|
18146
|
-
|
|
18147
|
-
|
|
19113
|
+
"keys": {
|
|
19114
|
+
"type": "array",
|
|
19115
|
+
"items": {
|
|
19116
|
+
"type": "object",
|
|
19117
|
+
"properties": {
|
|
19118
|
+
"keyIndex": {
|
|
19119
|
+
"type": "integer",
|
|
19120
|
+
"minimum": 0
|
|
19121
|
+
},
|
|
19122
|
+
"keySuffix": {
|
|
19123
|
+
"type": "string",
|
|
19124
|
+
"minLength": 1,
|
|
19125
|
+
"maxLength": 10
|
|
19126
|
+
},
|
|
19127
|
+
"ok": {
|
|
19128
|
+
"type": "boolean"
|
|
19129
|
+
},
|
|
19130
|
+
"httpStatus": {
|
|
19131
|
+
"type": "integer"
|
|
19132
|
+
}
|
|
19133
|
+
},
|
|
19134
|
+
"required": [
|
|
19135
|
+
"keyIndex",
|
|
19136
|
+
"keySuffix",
|
|
19137
|
+
"ok"
|
|
19138
|
+
]
|
|
19139
|
+
},
|
|
19140
|
+
"minItems": 1,
|
|
19141
|
+
"maxItems": 100
|
|
18148
19142
|
},
|
|
18149
19143
|
"scope": {
|
|
18150
19144
|
"type": "string"
|
|
@@ -18155,9 +19149,7 @@
|
|
|
18155
19149
|
},
|
|
18156
19150
|
"required": [
|
|
18157
19151
|
"keyType",
|
|
18158
|
-
"
|
|
18159
|
-
"keyIndex",
|
|
18160
|
-
"rateLimitedUntil"
|
|
19152
|
+
"keys"
|
|
18161
19153
|
]
|
|
18162
19154
|
}
|
|
18163
19155
|
}
|
|
@@ -18165,7 +19157,7 @@
|
|
|
18165
19157
|
},
|
|
18166
19158
|
"responses": {
|
|
18167
19159
|
"200": {
|
|
18168
|
-
"description": "
|
|
19160
|
+
"description": "Validation recorded",
|
|
18169
19161
|
"content": {
|
|
18170
19162
|
"application/json": {
|
|
18171
19163
|
"schema": {
|
|
@@ -18631,6 +19623,12 @@
|
|
|
18631
19623
|
"type": "integer"
|
|
18632
19624
|
}
|
|
18633
19625
|
},
|
|
19626
|
+
"rejectedIndices": {
|
|
19627
|
+
"type": "array",
|
|
19628
|
+
"items": {
|
|
19629
|
+
"type": "integer"
|
|
19630
|
+
}
|
|
19631
|
+
},
|
|
18634
19632
|
"totalKeys": {
|
|
18635
19633
|
"type": "integer"
|
|
18636
19634
|
},
|
|
@@ -18872,6 +19870,18 @@
|
|
|
18872
19870
|
"null"
|
|
18873
19871
|
]
|
|
18874
19872
|
},
|
|
19873
|
+
"lastValidationError": {
|
|
19874
|
+
"type": [
|
|
19875
|
+
"string",
|
|
19876
|
+
"null"
|
|
19877
|
+
]
|
|
19878
|
+
},
|
|
19879
|
+
"lastValidationFailedAt": {
|
|
19880
|
+
"type": [
|
|
19881
|
+
"string",
|
|
19882
|
+
"null"
|
|
19883
|
+
]
|
|
19884
|
+
},
|
|
18875
19885
|
"modelLimits": {
|
|
18876
19886
|
"type": "array",
|
|
18877
19887
|
"items": {
|
|
@@ -18931,6 +19941,8 @@
|
|
|
18931
19941
|
"lastSeatMismatchModel",
|
|
18932
19942
|
"consecutiveAuthFailures",
|
|
18933
19943
|
"lastAuthFailureAt",
|
|
19944
|
+
"lastValidationError",
|
|
19945
|
+
"lastValidationFailedAt",
|
|
18934
19946
|
"modelLimits",
|
|
18935
19947
|
"createdAt",
|
|
18936
19948
|
"updatedAt"
|
|
@@ -29471,7 +30483,7 @@
|
|
|
29471
30483
|
"/status": {
|
|
29472
30484
|
"get": {
|
|
29473
30485
|
"summary": "Identity + setup readiness + live activity for the swarm dashboard",
|
|
29474
|
-
"description": "Single source of truth consumed by the UI home page. Identity comes from SWARM_* envs; setup milestones each emit `unverified | configured | verified`; automations report `running | needs_setup` from the same runtime preflight used at dispatch; activity counts agents alive in the last 5 min and tasks created in the last 24h; agent_fs reports whether AGENT_FS_API_URL is set, plus the Comb settings (COMB_ENABLED, the browser-facing agent-fs URL, the shared org and drive ids, and the agent-fs user id of the swarm service account); telemetry reports the effective ANONYMIZED_TELEMETRY opt-out state.",
|
|
30486
|
+
"description": "Single source of truth consumed by the UI home page. Identity comes from SWARM_* envs; setup milestones each emit `unverified | configured | verified`; automations report `running | needs_setup` from the same runtime preflight used at dispatch; activity counts agents alive in the last 5 min, leads that can take work (status idle or busy), and tasks created in the last 24h; agent_fs reports whether AGENT_FS_API_URL is set, plus the Comb settings (COMB_ENABLED, the browser-facing agent-fs URL, the shared org and drive ids, and the agent-fs user id of the swarm service account); telemetry reports the effective ANONYMIZED_TELEMETRY opt-out state.",
|
|
29475
30487
|
"tags": [
|
|
29476
30488
|
"Status"
|
|
29477
30489
|
],
|
|
@@ -29664,6 +30676,10 @@
|
|
|
29664
30676
|
"type": "integer",
|
|
29665
30677
|
"minimum": 0
|
|
29666
30678
|
},
|
|
30679
|
+
"leads_ready": {
|
|
30680
|
+
"type": "integer",
|
|
30681
|
+
"minimum": 0
|
|
30682
|
+
},
|
|
29667
30683
|
"recent_tasks_count": {
|
|
29668
30684
|
"type": "integer",
|
|
29669
30685
|
"minimum": 0
|
|
@@ -29672,6 +30688,7 @@
|
|
|
29672
30688
|
"required": [
|
|
29673
30689
|
"agents_online",
|
|
29674
30690
|
"leads_online",
|
|
30691
|
+
"leads_ready",
|
|
29675
30692
|
"recent_tasks_count"
|
|
29676
30693
|
]
|
|
29677
30694
|
},
|
|
@@ -30590,13 +31607,27 @@
|
|
|
30590
31607
|
"verifiedWorkers": {
|
|
30591
31608
|
"type": "integer",
|
|
30592
31609
|
"minimum": 0
|
|
31610
|
+
},
|
|
31611
|
+
"error": {
|
|
31612
|
+
"type": [
|
|
31613
|
+
"string",
|
|
31614
|
+
"null"
|
|
31615
|
+
]
|
|
31616
|
+
},
|
|
31617
|
+
"warning": {
|
|
31618
|
+
"type": [
|
|
31619
|
+
"string",
|
|
31620
|
+
"null"
|
|
31621
|
+
]
|
|
30593
31622
|
}
|
|
30594
31623
|
},
|
|
30595
31624
|
"required": [
|
|
30596
31625
|
"provider",
|
|
30597
31626
|
"state",
|
|
30598
31627
|
"workers",
|
|
30599
|
-
"verifiedWorkers"
|
|
31628
|
+
"verifiedWorkers",
|
|
31629
|
+
"error",
|
|
31630
|
+
"warning"
|
|
30600
31631
|
]
|
|
30601
31632
|
}
|
|
30602
31633
|
},
|
|
@@ -31590,13 +32621,27 @@
|
|
|
31590
32621
|
"verifiedWorkers": {
|
|
31591
32622
|
"type": "integer",
|
|
31592
32623
|
"minimum": 0
|
|
32624
|
+
},
|
|
32625
|
+
"error": {
|
|
32626
|
+
"type": [
|
|
32627
|
+
"string",
|
|
32628
|
+
"null"
|
|
32629
|
+
]
|
|
32630
|
+
},
|
|
32631
|
+
"warning": {
|
|
32632
|
+
"type": [
|
|
32633
|
+
"string",
|
|
32634
|
+
"null"
|
|
32635
|
+
]
|
|
31593
32636
|
}
|
|
31594
32637
|
},
|
|
31595
32638
|
"required": [
|
|
31596
32639
|
"provider",
|
|
31597
32640
|
"state",
|
|
31598
32641
|
"workers",
|
|
31599
|
-
"verifiedWorkers"
|
|
32642
|
+
"verifiedWorkers",
|
|
32643
|
+
"error",
|
|
32644
|
+
"warning"
|
|
31600
32645
|
]
|
|
31601
32646
|
}
|
|
31602
32647
|
},
|
|
@@ -31991,6 +33036,15 @@
|
|
|
31991
33036
|
"name": "scheduleId",
|
|
31992
33037
|
"in": "query"
|
|
31993
33038
|
},
|
|
33039
|
+
{
|
|
33040
|
+
"schema": {
|
|
33041
|
+
"type": "string",
|
|
33042
|
+
"format": "uuid"
|
|
33043
|
+
},
|
|
33044
|
+
"required": false,
|
|
33045
|
+
"name": "workflowRunId",
|
|
33046
|
+
"in": "query"
|
|
33047
|
+
},
|
|
31994
33048
|
{
|
|
31995
33049
|
"schema": {
|
|
31996
33050
|
"type": "string",
|
|
@@ -49605,6 +50659,12 @@
|
|
|
49605
50659
|
"schema": {
|
|
49606
50660
|
"type": "object",
|
|
49607
50661
|
"properties": {
|
|
50662
|
+
"labels": {
|
|
50663
|
+
"type": "object",
|
|
50664
|
+
"additionalProperties": {
|
|
50665
|
+
"type": "string"
|
|
50666
|
+
}
|
|
50667
|
+
},
|
|
49608
50668
|
"groups": {
|
|
49609
50669
|
"type": "array",
|
|
49610
50670
|
"items": {
|
|
@@ -50362,6 +51422,9 @@
|
|
|
50362
51422
|
"owner": {
|
|
50363
51423
|
"$ref": "#/components/schemas/SessionOwner"
|
|
50364
51424
|
},
|
|
51425
|
+
"groupKey": {
|
|
51426
|
+
"type": "string"
|
|
51427
|
+
},
|
|
50365
51428
|
"approvals": {
|
|
50366
51429
|
"type": "array",
|
|
50367
51430
|
"items": {
|
|
@@ -50408,7 +51471,8 @@
|
|
|
50408
51471
|
"root",
|
|
50409
51472
|
"chain",
|
|
50410
51473
|
"access",
|
|
50411
|
-
"owner"
|
|
51474
|
+
"owner",
|
|
51475
|
+
"groupKey"
|
|
50412
51476
|
]
|
|
50413
51477
|
}
|
|
50414
51478
|
}
|
|
@@ -55599,6 +56663,71 @@
|
|
|
55599
56663
|
"batchSize",
|
|
55600
56664
|
"slowestStatementMs"
|
|
55601
56665
|
]
|
|
56666
|
+
},
|
|
56667
|
+
"scriptRuns": {
|
|
56668
|
+
"type": "object",
|
|
56669
|
+
"properties": {
|
|
56670
|
+
"at": {
|
|
56671
|
+
"type": "string"
|
|
56672
|
+
},
|
|
56673
|
+
"rowsDeleted": {
|
|
56674
|
+
"type": "number"
|
|
56675
|
+
},
|
|
56676
|
+
"batches": {
|
|
56677
|
+
"type": "number"
|
|
56678
|
+
},
|
|
56679
|
+
"durationMs": {
|
|
56680
|
+
"type": "number"
|
|
56681
|
+
},
|
|
56682
|
+
"dryRun": {
|
|
56683
|
+
"type": "boolean"
|
|
56684
|
+
},
|
|
56685
|
+
"cumulativeRowsDeleted": {
|
|
56686
|
+
"type": "number"
|
|
56687
|
+
},
|
|
56688
|
+
"outcome": {
|
|
56689
|
+
"type": "string",
|
|
56690
|
+
"enum": [
|
|
56691
|
+
"converged",
|
|
56692
|
+
"budget_exhausted",
|
|
56693
|
+
"error"
|
|
56694
|
+
]
|
|
56695
|
+
},
|
|
56696
|
+
"drained": {
|
|
56697
|
+
"type": "boolean"
|
|
56698
|
+
},
|
|
56699
|
+
"backlogRemaining": {
|
|
56700
|
+
"type": "number"
|
|
56701
|
+
},
|
|
56702
|
+
"batchSize": {
|
|
56703
|
+
"type": "number"
|
|
56704
|
+
},
|
|
56705
|
+
"slowestStatementMs": {
|
|
56706
|
+
"type": "number"
|
|
56707
|
+
},
|
|
56708
|
+
"lastError": {
|
|
56709
|
+
"type": "string"
|
|
56710
|
+
},
|
|
56711
|
+
"lastErrorAt": {
|
|
56712
|
+
"type": "string"
|
|
56713
|
+
},
|
|
56714
|
+
"lastSuccessAt": {
|
|
56715
|
+
"type": "string"
|
|
56716
|
+
}
|
|
56717
|
+
},
|
|
56718
|
+
"required": [
|
|
56719
|
+
"at",
|
|
56720
|
+
"rowsDeleted",
|
|
56721
|
+
"batches",
|
|
56722
|
+
"durationMs",
|
|
56723
|
+
"dryRun",
|
|
56724
|
+
"cumulativeRowsDeleted",
|
|
56725
|
+
"outcome",
|
|
56726
|
+
"drained",
|
|
56727
|
+
"backlogRemaining",
|
|
56728
|
+
"batchSize",
|
|
56729
|
+
"slowestStatementMs"
|
|
56730
|
+
]
|
|
55602
56731
|
}
|
|
55603
56732
|
}
|
|
55604
56733
|
}
|
|
@@ -62664,6 +63793,7 @@
|
|
|
62664
63793
|
"/api/workflow-runs/{id}": {
|
|
62665
63794
|
"get": {
|
|
62666
63795
|
"summary": "Get a workflow run with steps (includes retry columns)",
|
|
63796
|
+
"description": "Returns the run with its `context` and every step with its `input` by default. A step's `input` is a snapshot of the context when the step started, so in runs with loops (polling, `wait`, iterations) the response grows with steps × context size. Pass `fields=slim` to drop `run.context` and `steps[].input`; outputs, errors, diagnostics, retry fields and `parent` stay.",
|
|
62667
63797
|
"tags": [
|
|
62668
63798
|
"Workflows"
|
|
62669
63799
|
],
|
|
@@ -62680,32 +63810,134 @@
|
|
|
62680
63810
|
"required": true,
|
|
62681
63811
|
"name": "id",
|
|
62682
63812
|
"in": "path"
|
|
63813
|
+
},
|
|
63814
|
+
{
|
|
63815
|
+
"schema": {
|
|
63816
|
+
"type": "string",
|
|
63817
|
+
"enum": [
|
|
63818
|
+
"full",
|
|
63819
|
+
"slim"
|
|
63820
|
+
]
|
|
63821
|
+
},
|
|
63822
|
+
"required": false,
|
|
63823
|
+
"name": "fields",
|
|
63824
|
+
"in": "query"
|
|
62683
63825
|
}
|
|
62684
63826
|
],
|
|
62685
63827
|
"responses": {
|
|
62686
63828
|
"200": {
|
|
62687
63829
|
"description": "Workflow run details with steps including retry info",
|
|
63830
|
+
"content": {
|
|
63831
|
+
"application/json": {
|
|
63832
|
+
"schema": {
|
|
63833
|
+
"anyOf": [
|
|
63834
|
+
{
|
|
63835
|
+
"type": "object",
|
|
63836
|
+
"properties": {
|
|
63837
|
+
"run": {
|
|
63838
|
+
"$ref": "#/components/schemas/WorkflowRun"
|
|
63839
|
+
},
|
|
63840
|
+
"steps": {
|
|
63841
|
+
"type": "array",
|
|
63842
|
+
"items": {
|
|
63843
|
+
"$ref": "#/components/schemas/WorkflowRunStep"
|
|
63844
|
+
}
|
|
63845
|
+
},
|
|
63846
|
+
"parent": {
|
|
63847
|
+
"$ref": "#/components/schemas/WorkflowRunParent"
|
|
63848
|
+
}
|
|
63849
|
+
},
|
|
63850
|
+
"required": [
|
|
63851
|
+
"run",
|
|
63852
|
+
"steps"
|
|
63853
|
+
]
|
|
63854
|
+
},
|
|
63855
|
+
{
|
|
63856
|
+
"type": "object",
|
|
63857
|
+
"properties": {
|
|
63858
|
+
"run": {
|
|
63859
|
+
"$ref": "#/components/schemas/WorkflowRunSummary"
|
|
63860
|
+
},
|
|
63861
|
+
"steps": {
|
|
63862
|
+
"type": "array",
|
|
63863
|
+
"items": {
|
|
63864
|
+
"$ref": "#/components/schemas/WorkflowRunStepSlim"
|
|
63865
|
+
}
|
|
63866
|
+
},
|
|
63867
|
+
"parent": {
|
|
63868
|
+
"$ref": "#/components/schemas/WorkflowRunParent"
|
|
63869
|
+
}
|
|
63870
|
+
},
|
|
63871
|
+
"required": [
|
|
63872
|
+
"run",
|
|
63873
|
+
"steps"
|
|
63874
|
+
]
|
|
63875
|
+
}
|
|
63876
|
+
]
|
|
63877
|
+
}
|
|
63878
|
+
}
|
|
63879
|
+
}
|
|
63880
|
+
},
|
|
63881
|
+
"404": {
|
|
63882
|
+
"description": "Run not found",
|
|
63883
|
+
"content": {
|
|
63884
|
+
"application/json": {
|
|
63885
|
+
"schema": {
|
|
63886
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
63887
|
+
}
|
|
63888
|
+
}
|
|
63889
|
+
}
|
|
63890
|
+
}
|
|
63891
|
+
}
|
|
63892
|
+
}
|
|
63893
|
+
},
|
|
63894
|
+
"/api/workflow-runs/{id}/tree": {
|
|
63895
|
+
"get": {
|
|
63896
|
+
"summary": "Get a workflow run and every sub-workflow run below it",
|
|
63897
|
+
"description": "Follows stored parent links (`parentStepId` → step → run) through every attempt of every step, terminal runs included. `runs` holds list rows without `context`, root first. `hasOpenWork` is true while any run in the tree is live, has a pending, running or waiting step, a queued retry, an open task or a pending approval; after a cancel it turns false once the tree has settled. Both come from one read snapshot. The tree is not paginated. Links that form a cycle or nest deeper than 32 levels return 409.",
|
|
63898
|
+
"tags": [
|
|
63899
|
+
"Workflows"
|
|
63900
|
+
],
|
|
63901
|
+
"security": [
|
|
63902
|
+
{
|
|
63903
|
+
"bearerAuth": []
|
|
63904
|
+
}
|
|
63905
|
+
],
|
|
63906
|
+
"parameters": [
|
|
63907
|
+
{
|
|
63908
|
+
"schema": {
|
|
63909
|
+
"type": "string"
|
|
63910
|
+
},
|
|
63911
|
+
"required": true,
|
|
63912
|
+
"name": "id",
|
|
63913
|
+
"in": "path"
|
|
63914
|
+
}
|
|
63915
|
+
],
|
|
63916
|
+
"responses": {
|
|
63917
|
+
"200": {
|
|
63918
|
+
"description": "The run tree",
|
|
62688
63919
|
"content": {
|
|
62689
63920
|
"application/json": {
|
|
62690
63921
|
"schema": {
|
|
62691
63922
|
"type": "object",
|
|
62692
63923
|
"properties": {
|
|
62693
|
-
"
|
|
62694
|
-
"
|
|
63924
|
+
"rootRunId": {
|
|
63925
|
+
"type": "string"
|
|
62695
63926
|
},
|
|
62696
|
-
"
|
|
63927
|
+
"runs": {
|
|
62697
63928
|
"type": "array",
|
|
62698
63929
|
"items": {
|
|
62699
|
-
"$ref": "#/components/schemas/
|
|
63930
|
+
"$ref": "#/components/schemas/WorkflowRunSummary"
|
|
62700
63931
|
}
|
|
62701
63932
|
},
|
|
62702
|
-
"
|
|
62703
|
-
"
|
|
63933
|
+
"hasOpenWork": {
|
|
63934
|
+
"type": "boolean"
|
|
62704
63935
|
}
|
|
62705
63936
|
},
|
|
62706
63937
|
"required": [
|
|
62707
|
-
"
|
|
62708
|
-
"
|
|
63938
|
+
"rootRunId",
|
|
63939
|
+
"runs",
|
|
63940
|
+
"hasOpenWork"
|
|
62709
63941
|
]
|
|
62710
63942
|
}
|
|
62711
63943
|
}
|
|
@@ -62720,6 +63952,16 @@
|
|
|
62720
63952
|
}
|
|
62721
63953
|
}
|
|
62722
63954
|
}
|
|
63955
|
+
},
|
|
63956
|
+
"409": {
|
|
63957
|
+
"description": "Stored parent links form a cycle or nest past the depth bound",
|
|
63958
|
+
"content": {
|
|
63959
|
+
"application/json": {
|
|
63960
|
+
"schema": {
|
|
63961
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
63962
|
+
}
|
|
63963
|
+
}
|
|
63964
|
+
}
|
|
62723
63965
|
}
|
|
62724
63966
|
}
|
|
62725
63967
|
}
|