@desplega.ai/agent-swarm 1.158.0 → 1.159.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/dist/{acp-adapter-xaq4n6pc.js → acp-adapter-qhch0n2v.js} +1 -1
- package/dist/{actions-p9hz5yat.js → actions-dtsh1mfb.js} +33 -29
- package/dist/{anthropic-messages-51pz26qe.js → anthropic-messages-f2h06k64.js} +8 -3
- package/dist/{app-g26wdcz6.js → app-y1b9srva.js} +10 -9
- package/dist/{assistant-wydfqkb3.js → assistant-31hwy5xj.js} +34 -30
- package/dist/{azure-openai-responses-8gksqtmz.js → azure-openai-responses-0k1mfax5.js} +12 -13
- package/dist/{boot-reembed-se8zmdcp.js → boot-reembed-48d2qpkt.js} +11 -11
- package/dist/{boot-reembed-g5ckg9yb.js → boot-reembed-w0bryhkr.js} +12 -12
- package/dist/{boot-scrub-logs-wfxqan61.js → boot-scrub-logs-t65wbrn7.js} +9 -8
- package/dist/{boot-seeds-s3q01xj3.js → boot-seeds-h7c32hvm.js} +12 -11
- package/dist/{claude-adapter-tv2x4f36.js → claude-adapter-1t6611ne.js} +26 -21
- package/dist/{claude-managed-adapter-41b2s7fd.js → claude-managed-adapter-werp659j.js} +4 -2
- package/dist/{claude-managed-setup-60g8aazx.js → claude-managed-setup-y6rdgbc1.js} +11 -2
- package/dist/claude-sdk-session-zhkyk8yw.js +29319 -0
- package/dist/{cli-vj6h9kc2.js → cli-0m7wct0d.js} +59 -1
- package/dist/{cli-wscdvcqz.js → cli-0n2e4x49.js} +1 -1
- package/dist/cli-0xqde53b.js +176 -0
- package/dist/{cli-xberxa1r.js → cli-10ym38qc.js} +2 -2
- package/dist/{cli-5b6b62tz.js → cli-13hw4z91.js} +1 -1
- package/dist/{cli-rqz8qbw7.js → cli-20035trh.js} +50 -18
- package/dist/{cli-k0g1sjzm.js → cli-31nkw3g3.js} +3 -3
- package/dist/cli-3gvrr8vj.js +1422 -0
- package/dist/{cli-c07r9a2m.js → cli-48527fpw.js} +9 -8
- package/dist/{cli-24k806sc.js → cli-4aj25szq.js} +2 -2
- package/dist/{cli-7gtvvpbh.js → cli-4tvgz99m.js} +7 -7
- package/dist/cli-503ya656.js +455 -0
- package/dist/{cli-cw9zck8j.js → cli-5f2hq128.js} +8 -4
- package/dist/{cli-s8eet254.js → cli-68bmme5p.js} +11078 -27833
- package/dist/{cli-ftfvggzx.js → cli-79aq9cgb.js} +794 -563
- package/dist/cli-7cxw8b60.js +14910 -0
- package/dist/cli-7kyk9jr3.js +22 -0
- package/dist/cli-7zttzetj.js +324 -0
- package/dist/{cli-y95wp3tg.js → cli-96qd5psa.js} +1 -1
- package/dist/{cli-g8djp6qe.js → cli-9yg65c1j.js} +22 -0
- package/dist/{cli-3gmcwfyx.js → cli-ardpzhjm.js} +5 -5
- package/dist/{cli-7s3syk22.js → cli-b6thtzac.js} +5 -5
- package/dist/{cli-00w2c66p.js → cli-bgv70kym.js} +13 -2
- package/dist/{cli-j55n64b6.js → cli-bv0a38v9.js} +163 -44
- package/dist/cli-ca2w7zv7.js +115 -0
- package/dist/cli-cpvsaqsw.js +333 -0
- package/dist/cli-cygyqj3b.js +754 -0
- package/dist/{cli-x24pshtq.js → cli-dvjpkkjd.js} +6 -6
- package/dist/{cli-5d10vd2m.js → cli-e0ndxhtk.js} +4 -4
- package/dist/{cli-4198qc9v.js → cli-e4xnc0qp.js} +15 -3
- package/dist/{cli-rjehvrts.js → cli-eg7cdg68.js} +8 -8
- package/dist/cli-ejpygnqz.js +3815 -0
- package/dist/{cli-fgqxwrpv.js → cli-fjtp3463.js} +1631 -127
- package/dist/{cli-zt1227k1.js → cli-fkqhbg8g.js} +5 -3
- package/dist/{cli-47m6dkd3.js → cli-g9df2m37.js} +409 -168
- package/dist/cli-gzyh0j0g.js +8455 -0
- package/dist/cli-hgqfttfc.js +183 -0
- package/dist/cli-hj65wsts.js +17755 -0
- package/dist/cli-j9z8mfx3.js +476 -0
- package/dist/{cli-aehm1rbq.js → cli-kc3dp84d.js} +1135 -61
- package/dist/{cli-h38x0qhg.js → cli-kdnehe0t.js} +4 -3
- package/dist/{cli-20cj37vt.js → cli-m4excttz.js} +136 -2216
- package/dist/{cli-8qmme6vd.js → cli-mg24hkt4.js} +2 -2
- package/dist/{cli-xhaeg2nc.js → cli-mzkqpxee.js} +1 -1
- package/dist/{cli-q67y4wzm.js → cli-phsaj4xq.js} +24 -2
- package/dist/{cli-pw9rj5t9.js → cli-pqetb83f.js} +1 -176
- package/dist/{cli-rj19hc34.js → cli-qjxy52w7.js} +1 -1
- package/dist/{cli-53sz8gkz.js → cli-qv4jv8bx.js} +1 -1
- package/dist/cli-qvnnx4ct.js +1051 -0
- package/dist/cli-rb9m6rpe.js +4980 -0
- package/dist/{cli-tt9k8r35.js → cli-rfezr056.js} +476 -909
- package/dist/{cli-ggm92wcn.js → cli-rgjprct3.js} +1 -0
- package/dist/{cli-9httdpyq.js → cli-rrqmqr1s.js} +1 -1
- package/dist/cli-rykfmgwg.js +102 -0
- package/dist/{cli-eetrvv91.js → cli-t3p77qk1.js} +1 -1
- package/dist/{cli-68w09sjw.js → cli-vn0qv9cj.js} +25 -88
- package/dist/{cli-987hg0aa.js → cli-vwbbaecp.js} +2 -2
- package/dist/cli-wd9hz40d.js +69 -0
- package/dist/{cli-j57qkrpq.js → cli-wgjx0q33.js} +13 -13
- package/dist/cli-xgpf00sk.js +2149 -0
- package/dist/{cli-mcnhgnn1.js → cli-ykk5jaax.js} +184 -26
- package/dist/{cli-aky8tctm.js → cli-z9x0sh1t.js} +3 -3
- package/dist/{cli-1hkrch3k.js → cli-zw65mab6.js} +5 -5
- package/dist/cli.js +38 -29
- package/dist/cloudflare-workers-ai-system-one-1sg586qv.js +46 -0
- package/dist/{codex-adapter-cnm8wk11.js → codex-adapter-jqfqqa21.js} +21 -14
- package/dist/{codex-hook-9hptmdhj.js → codex-hook-5eys3dya.js} +2 -2
- package/dist/{codex-session-runner-gfg547zj.js → codex-session-runner-zd341dsm.js} +21 -14
- package/dist/{commands-e3bn0p75.js → commands-vfsysz4s.js} +9 -8
- package/dist/{db-03v9kzr2.js → db-s3znhvbn.js} +15 -10
- package/dist/{dispatcher-nrmg8yht.js → dispatcher-5xn0c7rf.js} +32 -28
- package/dist/{dsh-adapter-k03nfqa6.js → dsh-adapter-894mgfvs.js} +3 -3
- package/dist/{e2b-93x1k0j5.js → e2b-ez07znam.js} +4 -3
- package/dist/execute-71ysgv35.js +965 -0
- package/dist/{google-generative-ai-bxmv50nc.js → google-generative-ai-1nfcdphp.js} +5 -4
- package/dist/{google-vertex-809af514.js → google-vertex-1tqcd7b1.js} +5 -4
- package/dist/{handlers-aqcedbyb.js → handlers-5w4jwycr.js} +35 -31
- package/dist/{hook-7vkskkre.js → hook-853bxrr6.js} +16 -13
- package/dist/{hook-ybvmrmhq.js → hook-z0hbxj85.js} +16 -13
- package/dist/{http-2eqa8t24.js → http-akc3wy3m.js} +600 -123
- package/dist/{index-f6cryxwe.js → index-4a5njnm1.js} +2 -59
- package/dist/{index-a3vn96n8.js → index-5sz16ksh.js} +187 -47
- package/dist/{index-c6zsv1bd.js → index-bjmjh9h4.js} +11 -11
- package/dist/{index-chgdkq36.js → index-cd151qkq.js} +32 -28
- package/dist/{index-x71bvq0p.js → index-k661dzzr.js} +33 -29
- package/dist/{index-1yks3qcr.js → index-ttpbhnjg.js} +32 -28
- package/dist/{keepalive-vtkf5n99.js → keepalive-8p9rpvz5.js} +11 -10
- package/dist/{lead-h3sp357x.js → lead-jp69z5h3.js} +49 -45
- package/dist/llama-cpp-classify-t2tccams.js +335 -0
- package/dist/{maintenance-jzeqtk3q.js → maintenance-fwx4ev0k.js} +12 -12
- package/dist/{mistral-conversations-zx0kn554.js → mistral-conversations-bhvwqcnk.js} +14 -17
- package/dist/{oauth-refresh-sweep-qp3dzmdp.js → oauth-refresh-sweep-cwcq1ctx.js} +10 -9
- package/dist/{onboard-tmsp0qbz.js → onboard-2b4q0t84.js} +6 -5
- package/dist/{openai-codex-responses-4vjqzvjp.js → openai-codex-responses-nekthgks.js} +21 -8
- package/dist/{openai-completions-9hjrqbw8.js → openai-completions-hxtzwj0s.js} +8 -11
- package/dist/{openai-responses-7b1pn0xt.js → openai-responses-w4r118w7.js} +22 -17
- package/dist/{opencode-adapter-x6x2da1z.js → opencode-adapter-zz7xvjj6.js} +6 -4
- package/dist/{openrouter-images-9f9ek4rw.js → openrouter-images-b6sqqjgn.js} +4 -6
- package/dist/{otel-impl-9mz73q65.js → otel-impl-g8rs4vwr.js} +1 -1
- package/dist/{pi-messages-txpjj39q.js → pi-messages-vxdt8v7j.js} +2 -1
- package/dist/{pi-mono-adapter-m6dvv0dz.js → pi-mono-adapter-n0me28wt.js} +29 -17
- package/dist/pricing-refresh-0v77385v.js +39 -0
- package/dist/{rbac-roles-c9wqz83x.js → rbac-roles-krjyazbj.js} +10 -9
- package/dist/{render-v2-gryrh9h8.js → render-v2-3wjsp9aw.js} +10 -9
- package/dist/runtime-ktjysacx.js +24 -0
- package/dist/{setup-q9720bt6.js → setup-yeqryke6.js} +6 -5
- package/dist/typesafe-system-one-96960jxp.js +27 -0
- package/dist/{virtual-modules-3htpgn8x.js → virtual-modules-dzdeq1sf.js} +21 -13
- package/dist/{work-objects-b76x7deb.js → work-objects-3pakpkw0.js} +35 -31
- package/dist/{worker-6vrxbv41.js → worker-85testgj.js} +49 -45
- package/openapi.json +863 -14
- package/package.json +9 -8
- package/src/be/db/agents.ts +20 -0
- package/src/be/db/tasks/human-free.ts +442 -0
- package/src/be/db/tasks/read.ts +56 -1
- package/src/be/db/tasks/write.ts +107 -11
- package/src/be/db.ts +89 -165
- package/src/be/harness-model-support.ts +182 -0
- package/src/be/human-free-drain.ts +67 -0
- package/src/be/migrations/182_task_human_free_flag.sql +63 -0
- package/src/be/migrations/183_human_free_reclassify_queue.sql +25 -0
- package/src/be/migrations/184_model_catalog.sql +120 -0
- package/src/be/model-catalog-store.ts +644 -0
- package/src/be/model-tier-keys.ts +31 -0
- package/src/be/model-tier-resolution.ts +489 -0
- package/src/be/model-validation.ts +112 -0
- package/src/be/models-catalog.ts +61 -7
- package/src/be/modelsdev-cache.json +82 -0
- package/src/be/modelsdev-cache.ts +2 -0
- package/src/be/pricing-refresh.ts +154 -12
- package/src/be/scripts/typecheck.ts +15 -0
- package/src/be/seed-scripts/catalog/task-failure-audit.ts +61 -9
- package/src/be/swarm-config-guard.ts +6 -0
- package/src/cli.tsx +10 -0
- package/src/commands/claude-managed-setup.ts +3 -1
- package/src/commands/runner.ts +76 -2
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/heartbeat/heartbeat.ts +64 -15
- package/src/heartbeat/templates.ts +2 -2
- package/src/http/agents.ts +49 -1
- package/src/http/index.ts +8 -0
- package/src/http/models-catalog.ts +357 -8
- package/src/http/poll.ts +45 -2
- package/src/http/schedules.ts +36 -6
- package/src/http/session-data.ts +2 -5
- package/src/http/stats.ts +6 -8
- package/src/http/tasks.ts +26 -1
- package/src/http/usage-cache.ts +56 -15
- package/src/http/workflows.ts +35 -8
- package/src/prompts/session-templates.ts +1 -0
- package/src/providers/claude-managed-models.ts +47 -161
- package/src/providers/codex-adapter.ts +4 -4
- package/src/providers/codex-models.ts +65 -198
- package/src/providers/reasoning-effort.ts +44 -140
- package/src/rbac/legacy-policy.ts +25 -0
- package/src/rbac/permissions.ts +10 -0
- package/src/scripts-runtime/sdk-allowlist.ts +4 -0
- package/src/scripts-runtime/types/stdlib.d.ts +15 -0
- package/src/scripts-runtime/types/swarm-extension.d.ts +3 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
- package/src/server.ts +6 -0
- package/src/slack/message-text.ts +56 -2
- package/src/slack/thread-buffer.ts +10 -2
- package/src/tests/agents-list-model-display.test.ts +4 -6
- package/src/tests/base-prompt.test.ts +3 -0
- package/src/tests/claude-adapter.test.ts +10 -0
- package/src/tests/claude-managed-adapter.test.ts +12 -18
- package/src/tests/codex-adapter.test.ts +2 -1
- package/src/tests/codex-gpt6-release.test.ts +66 -5
- package/src/tests/context-window.test.ts +7 -5
- package/src/tests/db-extraction-contract.test.ts +1 -0
- package/src/tests/db-task-read-contract.test.ts +5 -1
- package/src/tests/db-task-write-contract.test.ts +4 -1
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/explicit-model-validation.test.ts +332 -0
- package/src/tests/harness-model-support.test.ts +374 -0
- package/src/tests/heartbeat-checklist-config.test.ts +71 -0
- package/src/tests/heartbeat-checklist.test.ts +4 -2
- package/src/tests/heartbeat-orphan-resume.test.ts +48 -0
- package/src/tests/human-free-flag.test.ts +279 -0
- package/src/tests/human-free-oracle.ts +57 -0
- package/src/tests/human-free-reclassify.test.ts +669 -0
- package/src/tests/migration-046-budgets.test.ts +3 -3
- package/src/tests/model-catalog-migration.test.ts +134 -0
- package/src/tests/model-catalog-table.test.ts +249 -0
- package/src/tests/model-catalog-write-access.test.ts +387 -0
- package/src/tests/model-tier-resolution.test.ts +519 -0
- package/src/tests/models-catalog.test.ts +1 -1
- package/src/tests/multi-runtime-enabled-stats.test.ts +65 -1
- package/src/tests/package-publish.test.ts +137 -36
- package/src/tests/pricing-routes.test.ts +2 -2
- package/src/tests/rbac-engine.test.ts +42 -2
- package/src/tests/reasoning-effort.test.ts +109 -0
- package/src/tests/refresh-modelsdev-carryforward.test.ts +5 -5
- package/src/tests/runtime-model-catalog.test.ts +86 -0
- package/src/tests/script-connections.test.ts +5 -0
- package/src/tests/seed-scripts.test.ts +89 -0
- package/src/tests/session-costs.test.ts +14 -11
- package/src/tests/slack-message-text.test.ts +101 -0
- package/src/tests/slack-thread-buffer-context.test.ts +93 -0
- package/src/tests/task-cascade-fail.test.ts +148 -2
- package/src/tests/tool-annotations.test.ts +1 -1
- package/src/tests/usage-cache.test.ts +166 -0
- package/src/tests/workflow-executors.test.ts +5 -2
- package/src/tests/workflow-system-one-decision-review.test.ts +1021 -0
- package/src/tests/workflow-system-one-decision-save-warnings.test.ts +365 -0
- package/src/tests/workflow-system-one-decision.test.ts +2063 -0
- package/src/tools/model-catalog/index.ts +137 -0
- package/src/tools/schedules/create-schedule.ts +16 -1
- package/src/tools/schedules/patch-schedule.ts +17 -0
- package/src/tools/schedules/update-schedule.ts +17 -0
- package/src/tools/send-task.ts +14 -0
- package/src/tools/task-action.ts +12 -0
- package/src/tools/tool-config.ts +3 -1
- package/src/tools/workflows/create-workflow.ts +9 -2
- package/src/tools/workflows/patch-workflow-node.ts +17 -7
- package/src/tools/workflows/patch-workflow.ts +9 -2
- package/src/tools/workflows/update-workflow.ts +9 -2
- package/src/types.ts +30 -1
- package/src/utils/context-window.ts +47 -53
- package/src/utils/harness-cli-version.ts +115 -0
- package/src/utils/harness-model-error.ts +33 -0
- package/src/utils/runtime-model-catalog.ts +137 -0
- package/src/workflows/approval-resolution.ts +39 -0
- package/src/workflows/definition.ts +7 -0
- package/src/workflows/engine.ts +69 -1
- package/src/workflows/executors/agent-task.ts +9 -0
- package/src/workflows/executors/base.ts +53 -0
- package/src/workflows/executors/human-in-the-loop.ts +8 -8
- package/src/workflows/executors/index.ts +1 -0
- package/src/workflows/executors/registry.ts +2 -0
- package/src/workflows/executors/system-one-decision.ts +1232 -0
- package/src/workflows/executors/system-one-providers.ts +301 -0
- package/src/workflows/executors/workflow-llm.ts +13 -1
- package/src/workflows/readiness.ts +86 -0
- package/src/workflows/recovery.ts +12 -12
- package/src/workflows/resume.ts +23 -9
- package/templates/schedules/daily-blocker-digest/content.md +4 -5
- package/templates/skills/agent-browser/SKILL.md +6 -5
- package/templates/skills/agent-browser/content.md +6 -5
- package/templates/skills/heartbeat-runbook/config.json +1 -1
- package/templates/skills/heartbeat-runbook/content.md +2 -2
- package/templates/skills/swarm-scripts/SKILL.md +1 -1
- package/templates/skills/swarm-scripts/content.md +1 -1
- package/templates/skills/workflow-iterate/content.md +81 -1
- package/templates/workflows/claude-code-changelog-watch/content.md +2 -0
- package/templates/workflows/pr-review-status-sweep/content.md +2 -0
- package/dist/claude-sdk-session-t442qz6f.js +0 -39108
- package/dist/cli-0xjkj1j7.js +0 -61
- package/dist/cli-65hjmev5.js +0 -1141
- package/dist/cli-aw1jwp1r.js +0 -14075
- package/dist/cli-h967nb6r.js +0 -6603
- package/dist/cli-vapyk8sw.js +0 -20
- package/dist/cli-ws6rqycm.js +0 -247
- package/dist/pricing-refresh-v1cbr9te.js +0 -27
- package/src/providers/modelsdev-reasoning.json +0 -6453
- package/dist/{codex-login-x3jk4etn.js → codex-login-he9vrn90.js} +3 -3
- package/dist/{index-f24115ge.js → index-2wsdsnmm.js} +3 -3
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": "1.
|
|
5
|
+
"version": "1.159.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": [
|
|
@@ -360,6 +360,15 @@
|
|
|
360
360
|
"max"
|
|
361
361
|
]
|
|
362
362
|
},
|
|
363
|
+
"resolvedModel": {
|
|
364
|
+
"type": "string"
|
|
365
|
+
},
|
|
366
|
+
"modelSource": {
|
|
367
|
+
"type": "string"
|
|
368
|
+
},
|
|
369
|
+
"modelAlias": {
|
|
370
|
+
"type": "string"
|
|
371
|
+
},
|
|
363
372
|
"scheduleId": {
|
|
364
373
|
"type": "string"
|
|
365
374
|
},
|
|
@@ -4571,7 +4580,7 @@
|
|
|
4571
4580
|
},
|
|
4572
4581
|
"type": {
|
|
4573
4582
|
"type": "string",
|
|
4574
|
-
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'validate', 'property-match'"
|
|
4583
|
+
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'system-one-decision', 'validate', 'property-match'"
|
|
4575
4584
|
},
|
|
4576
4585
|
"label": {
|
|
4577
4586
|
"type": "string",
|
|
@@ -4580,7 +4589,7 @@
|
|
|
4580
4589
|
"config": {
|
|
4581
4590
|
"type": "object",
|
|
4582
4591
|
"additionalProperties": {},
|
|
4583
|
-
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
4592
|
+
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. For system-one-decision (typed decisions, Jev by default): { provider? ('typesafe' default | 'openrouter' | 'laya'; a literal, never a {{token}}), state, questions: { <id>: { type: 'noul'|'choice'|'score', instructions, criteria? } }, returns: { <id>: { type } }, model? (provider-specific; unset = the provider's default, and laya has none so it sends no model and picks its own checkpoint), timeoutMs?, maxRetries? (0-3), humanReview? { band: { min, max } (0-1, inclusive), approvers: { users?, roles?, policy }, title?, timeout?, notifications? } }; each provider needs its own global secret (TYPESAFE_API_KEY, OPENROUTER_API_KEY, or LAYA_API_KEY; laya also needs the global config LAYA_URL), and a save warns and a run fails before any node executes when one is missing; system-one-decision nodes must not set retry or validation.retry. With humanReview, an answer whose confidence is inside the band waits for a person (human-in-the-loop approval), and next must map ports { approved, rejected?, timeout? }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
4584
4593
|
},
|
|
4585
4594
|
"next": {
|
|
4586
4595
|
"anyOf": [
|
|
@@ -5000,7 +5009,7 @@
|
|
|
5000
5009
|
"properties": {
|
|
5001
5010
|
"type": {
|
|
5002
5011
|
"type": "string",
|
|
5003
|
-
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'validate', 'property-match'"
|
|
5012
|
+
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'system-one-decision', 'validate', 'property-match'"
|
|
5004
5013
|
},
|
|
5005
5014
|
"label": {
|
|
5006
5015
|
"type": "string",
|
|
@@ -5009,7 +5018,7 @@
|
|
|
5009
5018
|
"config": {
|
|
5010
5019
|
"type": "object",
|
|
5011
5020
|
"additionalProperties": {},
|
|
5012
|
-
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
5021
|
+
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. For system-one-decision (typed decisions, Jev by default): { provider? ('typesafe' default | 'openrouter' | 'laya'; a literal, never a {{token}}), state, questions: { <id>: { type: 'noul'|'choice'|'score', instructions, criteria? } }, returns: { <id>: { type } }, model? (provider-specific; unset = the provider's default, and laya has none so it sends no model and picks its own checkpoint), timeoutMs?, maxRetries? (0-3), humanReview? { band: { min, max } (0-1, inclusive), approvers: { users?, roles?, policy }, title?, timeout?, notifications? } }; each provider needs its own global secret (TYPESAFE_API_KEY, OPENROUTER_API_KEY, or LAYA_API_KEY; laya also needs the global config LAYA_URL), and a save warns and a run fails before any node executes when one is missing; system-one-decision nodes must not set retry or validation.retry. With humanReview, an answer whose confidence is inside the band waits for a person (human-in-the-loop approval), and next must map ports { approved, rejected?, timeout? }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
5013
5022
|
},
|
|
5014
5023
|
"next": {
|
|
5015
5024
|
"anyOf": [
|
|
@@ -9638,6 +9647,19 @@
|
|
|
9638
9647
|
"runtimeInstanceId": {
|
|
9639
9648
|
"type": "string",
|
|
9640
9649
|
"minLength": 1
|
|
9650
|
+
},
|
|
9651
|
+
"modelTierOverrides": {
|
|
9652
|
+
"type": "object",
|
|
9653
|
+
"additionalProperties": {
|
|
9654
|
+
"type": "object",
|
|
9655
|
+
"additionalProperties": {
|
|
9656
|
+
"type": "string"
|
|
9657
|
+
}
|
|
9658
|
+
}
|
|
9659
|
+
},
|
|
9660
|
+
"harnessCliVersion": {
|
|
9661
|
+
"type": "string",
|
|
9662
|
+
"maxLength": 64
|
|
9641
9663
|
}
|
|
9642
9664
|
},
|
|
9643
9665
|
"required": [
|
|
@@ -10083,7 +10105,7 @@
|
|
|
10083
10105
|
},
|
|
10084
10106
|
"patch": {
|
|
10085
10107
|
"summary": "Update an agent's runtime harness and default model",
|
|
10086
|
-
"description": "Updates `agents.harness_provider` and agent-scoped runtime config. The settings apply to future provider sessions. For `model`, `reasoning_effort`, and `claude.transport`: omit the field to leave it unchanged, send `null` to clear the corresponding override, or send a value to set it.",
|
|
10108
|
+
"description": "Updates `agents.harness_provider` and agent-scoped runtime config. The settings apply to future provider sessions. For `model`, `reasoning_effort`, and `claude.transport`: omit the field to leave it unchanged, send `null` to clear the corresponding override, or send a value to set it. A `model` the model catalog does not list is a 400 unless `allow_custom_model` is true. A `latest:` alias is not accepted here (aliases resolve for a task's model and for `MODEL_TIER_*` values); `reasoning_effort` must be one the harness and model support.",
|
|
10087
10109
|
"tags": [
|
|
10088
10110
|
"Agents"
|
|
10089
10111
|
],
|
|
@@ -22843,6 +22865,12 @@
|
|
|
22843
22865
|
},
|
|
22844
22866
|
"output": {
|
|
22845
22867
|
"type": "number"
|
|
22868
|
+
},
|
|
22869
|
+
"cache_read": {
|
|
22870
|
+
"type": "number"
|
|
22871
|
+
},
|
|
22872
|
+
"cache_write": {
|
|
22873
|
+
"type": "number"
|
|
22846
22874
|
}
|
|
22847
22875
|
}
|
|
22848
22876
|
},
|
|
@@ -22854,6 +22882,12 @@
|
|
|
22854
22882
|
}
|
|
22855
22883
|
}
|
|
22856
22884
|
},
|
|
22885
|
+
"release_date": {
|
|
22886
|
+
"type": "string"
|
|
22887
|
+
},
|
|
22888
|
+
"status": {
|
|
22889
|
+
"type": "string"
|
|
22890
|
+
},
|
|
22857
22891
|
"reasoning": {
|
|
22858
22892
|
"type": "boolean"
|
|
22859
22893
|
},
|
|
@@ -22903,6 +22937,726 @@
|
|
|
22903
22937
|
}
|
|
22904
22938
|
}
|
|
22905
22939
|
},
|
|
22940
|
+
"/api/models-catalog/tiers": {
|
|
22941
|
+
"get": {
|
|
22942
|
+
"summary": "Preview what each model tier resolves to per harness provider",
|
|
22943
|
+
"description": "One row per provider and tier: the built-in default, the `MODEL_TIER_<PROVIDER>_<TIER>` value stored in swarm config (if any), which layer wins, and the concrete model it resolves to against the current catalog (`latest:` aliases resolved with the same soak and auto-upgrade rules as claim time, without recording a resolution). Ignores per-worker `MODEL_TIER_*` overrides and per-task models.",
|
|
22944
|
+
"tags": [
|
|
22945
|
+
"Pricing"
|
|
22946
|
+
],
|
|
22947
|
+
"security": [
|
|
22948
|
+
{
|
|
22949
|
+
"bearerAuth": []
|
|
22950
|
+
}
|
|
22951
|
+
],
|
|
22952
|
+
"responses": {
|
|
22953
|
+
"200": {
|
|
22954
|
+
"description": "Tier previews",
|
|
22955
|
+
"content": {
|
|
22956
|
+
"application/json": {
|
|
22957
|
+
"schema": {
|
|
22958
|
+
"type": "object",
|
|
22959
|
+
"properties": {
|
|
22960
|
+
"tiers": {
|
|
22961
|
+
"type": "array",
|
|
22962
|
+
"items": {
|
|
22963
|
+
"type": "object",
|
|
22964
|
+
"properties": {
|
|
22965
|
+
"provider": {
|
|
22966
|
+
"type": "string",
|
|
22967
|
+
"enum": [
|
|
22968
|
+
"claude",
|
|
22969
|
+
"codex",
|
|
22970
|
+
"pi",
|
|
22971
|
+
"devin",
|
|
22972
|
+
"claude-managed",
|
|
22973
|
+
"opencode",
|
|
22974
|
+
"acp",
|
|
22975
|
+
"dsh"
|
|
22976
|
+
]
|
|
22977
|
+
},
|
|
22978
|
+
"tier": {
|
|
22979
|
+
"type": "string",
|
|
22980
|
+
"enum": [
|
|
22981
|
+
"smol",
|
|
22982
|
+
"regular",
|
|
22983
|
+
"smart",
|
|
22984
|
+
"ultra"
|
|
22985
|
+
]
|
|
22986
|
+
},
|
|
22987
|
+
"key": {
|
|
22988
|
+
"type": "string"
|
|
22989
|
+
},
|
|
22990
|
+
"defaultValue": {
|
|
22991
|
+
"type": "string"
|
|
22992
|
+
},
|
|
22993
|
+
"configured": {
|
|
22994
|
+
"type": [
|
|
22995
|
+
"string",
|
|
22996
|
+
"null"
|
|
22997
|
+
]
|
|
22998
|
+
},
|
|
22999
|
+
"source": {
|
|
23000
|
+
"type": "string",
|
|
23001
|
+
"enum": [
|
|
23002
|
+
"tier-config",
|
|
23003
|
+
"tier-default"
|
|
23004
|
+
]
|
|
23005
|
+
},
|
|
23006
|
+
"resolvedModel": {
|
|
23007
|
+
"type": [
|
|
23008
|
+
"string",
|
|
23009
|
+
"null"
|
|
23010
|
+
]
|
|
23011
|
+
},
|
|
23012
|
+
"alias": {
|
|
23013
|
+
"type": [
|
|
23014
|
+
"string",
|
|
23015
|
+
"null"
|
|
23016
|
+
]
|
|
23017
|
+
}
|
|
23018
|
+
},
|
|
23019
|
+
"required": [
|
|
23020
|
+
"provider",
|
|
23021
|
+
"tier",
|
|
23022
|
+
"key",
|
|
23023
|
+
"defaultValue",
|
|
23024
|
+
"configured",
|
|
23025
|
+
"source",
|
|
23026
|
+
"resolvedModel",
|
|
23027
|
+
"alias"
|
|
23028
|
+
]
|
|
23029
|
+
}
|
|
23030
|
+
}
|
|
23031
|
+
},
|
|
23032
|
+
"required": [
|
|
23033
|
+
"tiers"
|
|
23034
|
+
]
|
|
23035
|
+
}
|
|
23036
|
+
}
|
|
23037
|
+
}
|
|
23038
|
+
}
|
|
23039
|
+
}
|
|
23040
|
+
}
|
|
23041
|
+
},
|
|
23042
|
+
"/api/models-catalog/refresh": {
|
|
23043
|
+
"post": {
|
|
23044
|
+
"summary": "Refresh the model catalog from models.dev",
|
|
23045
|
+
"description": "Unforced calls skip the network when the last models.dev check is younger than 4h (`skipped-fresh`). `force: true` always fetches, still conditional on the stored ETag (`not-modified` on 304), but a forced call within a minute of the previous one returns `skipped-cooldown` with `retryAfterMs`. Concurrent refreshes share one fetch. Lead agent or operator only. `added` lists provider/modelId keys new since the previous fetch.",
|
|
23046
|
+
"tags": [
|
|
23047
|
+
"Pricing"
|
|
23048
|
+
],
|
|
23049
|
+
"security": [
|
|
23050
|
+
{
|
|
23051
|
+
"bearerAuth": []
|
|
23052
|
+
}
|
|
23053
|
+
],
|
|
23054
|
+
"requestBody": {
|
|
23055
|
+
"content": {
|
|
23056
|
+
"application/json": {
|
|
23057
|
+
"schema": {
|
|
23058
|
+
"type": "object",
|
|
23059
|
+
"properties": {
|
|
23060
|
+
"force": {
|
|
23061
|
+
"type": "boolean"
|
|
23062
|
+
}
|
|
23063
|
+
}
|
|
23064
|
+
}
|
|
23065
|
+
}
|
|
23066
|
+
}
|
|
23067
|
+
},
|
|
23068
|
+
"responses": {
|
|
23069
|
+
"200": {
|
|
23070
|
+
"description": "Refresh outcome",
|
|
23071
|
+
"content": {
|
|
23072
|
+
"application/json": {
|
|
23073
|
+
"schema": {
|
|
23074
|
+
"type": "object",
|
|
23075
|
+
"properties": {
|
|
23076
|
+
"status": {
|
|
23077
|
+
"type": "string",
|
|
23078
|
+
"enum": [
|
|
23079
|
+
"updated",
|
|
23080
|
+
"not-modified",
|
|
23081
|
+
"skipped-fresh",
|
|
23082
|
+
"skipped-cooldown",
|
|
23083
|
+
"error"
|
|
23084
|
+
]
|
|
23085
|
+
},
|
|
23086
|
+
"models": {
|
|
23087
|
+
"type": "number"
|
|
23088
|
+
},
|
|
23089
|
+
"added": {
|
|
23090
|
+
"type": "array",
|
|
23091
|
+
"items": {
|
|
23092
|
+
"type": "string"
|
|
23093
|
+
}
|
|
23094
|
+
},
|
|
23095
|
+
"checkedAt": {
|
|
23096
|
+
"type": [
|
|
23097
|
+
"number",
|
|
23098
|
+
"null"
|
|
23099
|
+
]
|
|
23100
|
+
},
|
|
23101
|
+
"retryAfterMs": {
|
|
23102
|
+
"type": "number"
|
|
23103
|
+
},
|
|
23104
|
+
"error": {
|
|
23105
|
+
"type": "string"
|
|
23106
|
+
}
|
|
23107
|
+
},
|
|
23108
|
+
"required": [
|
|
23109
|
+
"status",
|
|
23110
|
+
"models",
|
|
23111
|
+
"added",
|
|
23112
|
+
"checkedAt"
|
|
23113
|
+
]
|
|
23114
|
+
}
|
|
23115
|
+
}
|
|
23116
|
+
}
|
|
23117
|
+
},
|
|
23118
|
+
"403": {
|
|
23119
|
+
"description": "Forbidden",
|
|
23120
|
+
"content": {
|
|
23121
|
+
"application/json": {
|
|
23122
|
+
"schema": {
|
|
23123
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
23124
|
+
}
|
|
23125
|
+
}
|
|
23126
|
+
}
|
|
23127
|
+
}
|
|
23128
|
+
}
|
|
23129
|
+
}
|
|
23130
|
+
},
|
|
23131
|
+
"/api/models-catalog/overlay": {
|
|
23132
|
+
"put": {
|
|
23133
|
+
"summary": "Upsert one model-catalog overlay row",
|
|
23134
|
+
"description": "Overlay facts win per non-null field over the models.dev row; overlay-only models are served too. Overlay prices fill pricing-table gaps (never override an active price). With `expiresWhenUpstreamMatches` (default true) the row is deleted once upstream matches every non-null fact.",
|
|
23135
|
+
"tags": [
|
|
23136
|
+
"Pricing"
|
|
23137
|
+
],
|
|
23138
|
+
"security": [
|
|
23139
|
+
{
|
|
23140
|
+
"bearerAuth": []
|
|
23141
|
+
}
|
|
23142
|
+
],
|
|
23143
|
+
"requestBody": {
|
|
23144
|
+
"content": {
|
|
23145
|
+
"application/json": {
|
|
23146
|
+
"schema": {
|
|
23147
|
+
"type": "object",
|
|
23148
|
+
"properties": {
|
|
23149
|
+
"provider": {
|
|
23150
|
+
"type": "string",
|
|
23151
|
+
"minLength": 1
|
|
23152
|
+
},
|
|
23153
|
+
"modelId": {
|
|
23154
|
+
"type": "string",
|
|
23155
|
+
"minLength": 1
|
|
23156
|
+
},
|
|
23157
|
+
"name": {
|
|
23158
|
+
"type": "string"
|
|
23159
|
+
},
|
|
23160
|
+
"family": {
|
|
23161
|
+
"type": "string"
|
|
23162
|
+
},
|
|
23163
|
+
"releaseDate": {
|
|
23164
|
+
"type": "string"
|
|
23165
|
+
},
|
|
23166
|
+
"contextWindow": {
|
|
23167
|
+
"type": "integer",
|
|
23168
|
+
"exclusiveMinimum": 0
|
|
23169
|
+
},
|
|
23170
|
+
"maxOutput": {
|
|
23171
|
+
"type": "integer",
|
|
23172
|
+
"exclusiveMinimum": 0
|
|
23173
|
+
},
|
|
23174
|
+
"reasoning": {
|
|
23175
|
+
"type": "boolean"
|
|
23176
|
+
},
|
|
23177
|
+
"reasoningOptions": {
|
|
23178
|
+
"type": "array",
|
|
23179
|
+
"items": {
|
|
23180
|
+
"type": "object",
|
|
23181
|
+
"properties": {
|
|
23182
|
+
"type": {
|
|
23183
|
+
"type": "string"
|
|
23184
|
+
},
|
|
23185
|
+
"values": {
|
|
23186
|
+
"type": "array",
|
|
23187
|
+
"items": {
|
|
23188
|
+
"type": "string"
|
|
23189
|
+
}
|
|
23190
|
+
}
|
|
23191
|
+
},
|
|
23192
|
+
"required": [
|
|
23193
|
+
"type"
|
|
23194
|
+
]
|
|
23195
|
+
}
|
|
23196
|
+
},
|
|
23197
|
+
"pricing": {
|
|
23198
|
+
"type": "object",
|
|
23199
|
+
"properties": {
|
|
23200
|
+
"input": {
|
|
23201
|
+
"type": "number",
|
|
23202
|
+
"minimum": 0
|
|
23203
|
+
},
|
|
23204
|
+
"output": {
|
|
23205
|
+
"type": "number",
|
|
23206
|
+
"minimum": 0
|
|
23207
|
+
},
|
|
23208
|
+
"cache_read": {
|
|
23209
|
+
"type": "number",
|
|
23210
|
+
"minimum": 0
|
|
23211
|
+
},
|
|
23212
|
+
"cache_write": {
|
|
23213
|
+
"type": "number",
|
|
23214
|
+
"minimum": 0
|
|
23215
|
+
}
|
|
23216
|
+
}
|
|
23217
|
+
},
|
|
23218
|
+
"status": {
|
|
23219
|
+
"type": "string"
|
|
23220
|
+
},
|
|
23221
|
+
"reason": {
|
|
23222
|
+
"type": "string",
|
|
23223
|
+
"minLength": 1
|
|
23224
|
+
},
|
|
23225
|
+
"verifiedBy": {
|
|
23226
|
+
"type": "string"
|
|
23227
|
+
},
|
|
23228
|
+
"expiresWhenUpstreamMatches": {
|
|
23229
|
+
"type": "boolean"
|
|
23230
|
+
}
|
|
23231
|
+
},
|
|
23232
|
+
"required": [
|
|
23233
|
+
"provider",
|
|
23234
|
+
"modelId",
|
|
23235
|
+
"reason"
|
|
23236
|
+
]
|
|
23237
|
+
}
|
|
23238
|
+
}
|
|
23239
|
+
}
|
|
23240
|
+
},
|
|
23241
|
+
"responses": {
|
|
23242
|
+
"200": {
|
|
23243
|
+
"description": "Overlay row upserted",
|
|
23244
|
+
"content": {
|
|
23245
|
+
"application/json": {
|
|
23246
|
+
"schema": {
|
|
23247
|
+
"type": "object",
|
|
23248
|
+
"properties": {
|
|
23249
|
+
"provider": {
|
|
23250
|
+
"type": "string",
|
|
23251
|
+
"minLength": 1
|
|
23252
|
+
},
|
|
23253
|
+
"modelId": {
|
|
23254
|
+
"type": "string",
|
|
23255
|
+
"minLength": 1
|
|
23256
|
+
},
|
|
23257
|
+
"name": {
|
|
23258
|
+
"type": [
|
|
23259
|
+
"string",
|
|
23260
|
+
"null"
|
|
23261
|
+
]
|
|
23262
|
+
},
|
|
23263
|
+
"family": {
|
|
23264
|
+
"type": [
|
|
23265
|
+
"string",
|
|
23266
|
+
"null"
|
|
23267
|
+
]
|
|
23268
|
+
},
|
|
23269
|
+
"releaseDate": {
|
|
23270
|
+
"type": [
|
|
23271
|
+
"string",
|
|
23272
|
+
"null"
|
|
23273
|
+
]
|
|
23274
|
+
},
|
|
23275
|
+
"contextWindow": {
|
|
23276
|
+
"type": [
|
|
23277
|
+
"number",
|
|
23278
|
+
"null"
|
|
23279
|
+
]
|
|
23280
|
+
},
|
|
23281
|
+
"maxOutput": {
|
|
23282
|
+
"type": [
|
|
23283
|
+
"number",
|
|
23284
|
+
"null"
|
|
23285
|
+
]
|
|
23286
|
+
},
|
|
23287
|
+
"reasoning": {
|
|
23288
|
+
"type": [
|
|
23289
|
+
"boolean",
|
|
23290
|
+
"null"
|
|
23291
|
+
]
|
|
23292
|
+
},
|
|
23293
|
+
"reasoningOptions": {
|
|
23294
|
+
"type": [
|
|
23295
|
+
"array",
|
|
23296
|
+
"null"
|
|
23297
|
+
],
|
|
23298
|
+
"items": {
|
|
23299
|
+
"type": "object",
|
|
23300
|
+
"properties": {
|
|
23301
|
+
"type": {
|
|
23302
|
+
"type": "string"
|
|
23303
|
+
},
|
|
23304
|
+
"values": {
|
|
23305
|
+
"type": "array",
|
|
23306
|
+
"items": {
|
|
23307
|
+
"type": "string"
|
|
23308
|
+
}
|
|
23309
|
+
}
|
|
23310
|
+
},
|
|
23311
|
+
"required": [
|
|
23312
|
+
"type"
|
|
23313
|
+
]
|
|
23314
|
+
}
|
|
23315
|
+
},
|
|
23316
|
+
"pricing": {
|
|
23317
|
+
"type": [
|
|
23318
|
+
"object",
|
|
23319
|
+
"null"
|
|
23320
|
+
],
|
|
23321
|
+
"properties": {
|
|
23322
|
+
"input": {
|
|
23323
|
+
"type": "number",
|
|
23324
|
+
"minimum": 0
|
|
23325
|
+
},
|
|
23326
|
+
"output": {
|
|
23327
|
+
"type": "number",
|
|
23328
|
+
"minimum": 0
|
|
23329
|
+
},
|
|
23330
|
+
"cache_read": {
|
|
23331
|
+
"type": "number",
|
|
23332
|
+
"minimum": 0
|
|
23333
|
+
},
|
|
23334
|
+
"cache_write": {
|
|
23335
|
+
"type": "number",
|
|
23336
|
+
"minimum": 0
|
|
23337
|
+
}
|
|
23338
|
+
}
|
|
23339
|
+
},
|
|
23340
|
+
"status": {
|
|
23341
|
+
"type": [
|
|
23342
|
+
"string",
|
|
23343
|
+
"null"
|
|
23344
|
+
]
|
|
23345
|
+
},
|
|
23346
|
+
"reason": {
|
|
23347
|
+
"type": "string",
|
|
23348
|
+
"minLength": 1
|
|
23349
|
+
},
|
|
23350
|
+
"verifiedBy": {
|
|
23351
|
+
"type": [
|
|
23352
|
+
"string",
|
|
23353
|
+
"null"
|
|
23354
|
+
]
|
|
23355
|
+
},
|
|
23356
|
+
"expiresWhenUpstreamMatches": {
|
|
23357
|
+
"type": "boolean"
|
|
23358
|
+
},
|
|
23359
|
+
"createdAt": {
|
|
23360
|
+
"type": "number"
|
|
23361
|
+
},
|
|
23362
|
+
"updatedAt": {
|
|
23363
|
+
"type": "number"
|
|
23364
|
+
}
|
|
23365
|
+
},
|
|
23366
|
+
"required": [
|
|
23367
|
+
"provider",
|
|
23368
|
+
"modelId",
|
|
23369
|
+
"reason",
|
|
23370
|
+
"expiresWhenUpstreamMatches",
|
|
23371
|
+
"createdAt",
|
|
23372
|
+
"updatedAt"
|
|
23373
|
+
]
|
|
23374
|
+
}
|
|
23375
|
+
}
|
|
23376
|
+
}
|
|
23377
|
+
},
|
|
23378
|
+
"403": {
|
|
23379
|
+
"description": "Forbidden",
|
|
23380
|
+
"content": {
|
|
23381
|
+
"application/json": {
|
|
23382
|
+
"schema": {
|
|
23383
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
23384
|
+
}
|
|
23385
|
+
}
|
|
23386
|
+
}
|
|
23387
|
+
}
|
|
23388
|
+
}
|
|
23389
|
+
},
|
|
23390
|
+
"delete": {
|
|
23391
|
+
"summary": "Delete one model-catalog overlay row",
|
|
23392
|
+
"tags": [
|
|
23393
|
+
"Pricing"
|
|
23394
|
+
],
|
|
23395
|
+
"security": [
|
|
23396
|
+
{
|
|
23397
|
+
"bearerAuth": []
|
|
23398
|
+
}
|
|
23399
|
+
],
|
|
23400
|
+
"requestBody": {
|
|
23401
|
+
"content": {
|
|
23402
|
+
"application/json": {
|
|
23403
|
+
"schema": {
|
|
23404
|
+
"type": "object",
|
|
23405
|
+
"properties": {
|
|
23406
|
+
"provider": {
|
|
23407
|
+
"type": "string",
|
|
23408
|
+
"minLength": 1
|
|
23409
|
+
},
|
|
23410
|
+
"modelId": {
|
|
23411
|
+
"type": "string",
|
|
23412
|
+
"minLength": 1
|
|
23413
|
+
}
|
|
23414
|
+
},
|
|
23415
|
+
"required": [
|
|
23416
|
+
"provider",
|
|
23417
|
+
"modelId"
|
|
23418
|
+
]
|
|
23419
|
+
}
|
|
23420
|
+
}
|
|
23421
|
+
}
|
|
23422
|
+
},
|
|
23423
|
+
"responses": {
|
|
23424
|
+
"200": {
|
|
23425
|
+
"description": "Overlay row deleted",
|
|
23426
|
+
"content": {
|
|
23427
|
+
"application/json": {
|
|
23428
|
+
"schema": {
|
|
23429
|
+
"type": "object",
|
|
23430
|
+
"properties": {
|
|
23431
|
+
"deleted": {
|
|
23432
|
+
"type": "boolean"
|
|
23433
|
+
}
|
|
23434
|
+
},
|
|
23435
|
+
"required": [
|
|
23436
|
+
"deleted"
|
|
23437
|
+
]
|
|
23438
|
+
}
|
|
23439
|
+
}
|
|
23440
|
+
}
|
|
23441
|
+
},
|
|
23442
|
+
"403": {
|
|
23443
|
+
"description": "Forbidden",
|
|
23444
|
+
"content": {
|
|
23445
|
+
"application/json": {
|
|
23446
|
+
"schema": {
|
|
23447
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
23448
|
+
}
|
|
23449
|
+
}
|
|
23450
|
+
}
|
|
23451
|
+
}
|
|
23452
|
+
}
|
|
23453
|
+
}
|
|
23454
|
+
},
|
|
23455
|
+
"/api/models-catalog/harness-support": {
|
|
23456
|
+
"get": {
|
|
23457
|
+
"summary": "List harness CLI model support rows",
|
|
23458
|
+
"description": "Whether a catalog model runs on a given `claude` / `codex` CLI version, as recorded by workers after a model's first run. No row means unknown (allowed at claim).",
|
|
23459
|
+
"tags": [
|
|
23460
|
+
"Pricing"
|
|
23461
|
+
],
|
|
23462
|
+
"security": [
|
|
23463
|
+
{
|
|
23464
|
+
"bearerAuth": []
|
|
23465
|
+
}
|
|
23466
|
+
],
|
|
23467
|
+
"parameters": [
|
|
23468
|
+
{
|
|
23469
|
+
"schema": {
|
|
23470
|
+
"type": "string"
|
|
23471
|
+
},
|
|
23472
|
+
"required": false,
|
|
23473
|
+
"name": "harness",
|
|
23474
|
+
"in": "query"
|
|
23475
|
+
},
|
|
23476
|
+
{
|
|
23477
|
+
"schema": {
|
|
23478
|
+
"type": "string"
|
|
23479
|
+
},
|
|
23480
|
+
"required": false,
|
|
23481
|
+
"name": "cliVersion",
|
|
23482
|
+
"in": "query"
|
|
23483
|
+
}
|
|
23484
|
+
],
|
|
23485
|
+
"responses": {
|
|
23486
|
+
"200": {
|
|
23487
|
+
"description": "Support rows, newest first",
|
|
23488
|
+
"content": {
|
|
23489
|
+
"application/json": {
|
|
23490
|
+
"schema": {
|
|
23491
|
+
"type": "object",
|
|
23492
|
+
"properties": {
|
|
23493
|
+
"rows": {
|
|
23494
|
+
"type": "array",
|
|
23495
|
+
"items": {
|
|
23496
|
+
"type": "object",
|
|
23497
|
+
"properties": {
|
|
23498
|
+
"harness": {
|
|
23499
|
+
"type": "string"
|
|
23500
|
+
},
|
|
23501
|
+
"cliVersion": {
|
|
23502
|
+
"type": "string"
|
|
23503
|
+
},
|
|
23504
|
+
"modelId": {
|
|
23505
|
+
"type": "string"
|
|
23506
|
+
},
|
|
23507
|
+
"status": {
|
|
23508
|
+
"type": "string",
|
|
23509
|
+
"enum": [
|
|
23510
|
+
"ok",
|
|
23511
|
+
"unsupported",
|
|
23512
|
+
"unknown"
|
|
23513
|
+
]
|
|
23514
|
+
},
|
|
23515
|
+
"checkedAt": {
|
|
23516
|
+
"type": "number"
|
|
23517
|
+
},
|
|
23518
|
+
"error": {
|
|
23519
|
+
"type": [
|
|
23520
|
+
"string",
|
|
23521
|
+
"null"
|
|
23522
|
+
]
|
|
23523
|
+
}
|
|
23524
|
+
},
|
|
23525
|
+
"required": [
|
|
23526
|
+
"harness",
|
|
23527
|
+
"cliVersion",
|
|
23528
|
+
"modelId",
|
|
23529
|
+
"status",
|
|
23530
|
+
"checkedAt",
|
|
23531
|
+
"error"
|
|
23532
|
+
]
|
|
23533
|
+
}
|
|
23534
|
+
}
|
|
23535
|
+
},
|
|
23536
|
+
"required": [
|
|
23537
|
+
"rows"
|
|
23538
|
+
]
|
|
23539
|
+
}
|
|
23540
|
+
}
|
|
23541
|
+
}
|
|
23542
|
+
}
|
|
23543
|
+
}
|
|
23544
|
+
},
|
|
23545
|
+
"put": {
|
|
23546
|
+
"summary": "Record whether a harness CLI version accepts a model",
|
|
23547
|
+
"description": "Written by workers: `ok` after a model's first successful run, `unsupported` when the CLI rejects the model id. Claim-time resolution falls back (alias/tier) or fails fast (explicit model) on `unsupported`.",
|
|
23548
|
+
"tags": [
|
|
23549
|
+
"Pricing"
|
|
23550
|
+
],
|
|
23551
|
+
"security": [
|
|
23552
|
+
{
|
|
23553
|
+
"bearerAuth": []
|
|
23554
|
+
}
|
|
23555
|
+
],
|
|
23556
|
+
"requestBody": {
|
|
23557
|
+
"content": {
|
|
23558
|
+
"application/json": {
|
|
23559
|
+
"schema": {
|
|
23560
|
+
"type": "object",
|
|
23561
|
+
"properties": {
|
|
23562
|
+
"harness": {
|
|
23563
|
+
"type": "string",
|
|
23564
|
+
"minLength": 1,
|
|
23565
|
+
"maxLength": 32
|
|
23566
|
+
},
|
|
23567
|
+
"cliVersion": {
|
|
23568
|
+
"type": "string",
|
|
23569
|
+
"minLength": 1,
|
|
23570
|
+
"maxLength": 64
|
|
23571
|
+
},
|
|
23572
|
+
"modelId": {
|
|
23573
|
+
"type": "string",
|
|
23574
|
+
"minLength": 1,
|
|
23575
|
+
"maxLength": 200
|
|
23576
|
+
},
|
|
23577
|
+
"status": {
|
|
23578
|
+
"type": "string",
|
|
23579
|
+
"enum": [
|
|
23580
|
+
"ok",
|
|
23581
|
+
"unsupported",
|
|
23582
|
+
"unknown"
|
|
23583
|
+
]
|
|
23584
|
+
},
|
|
23585
|
+
"error": {
|
|
23586
|
+
"type": "string",
|
|
23587
|
+
"maxLength": 4000
|
|
23588
|
+
}
|
|
23589
|
+
},
|
|
23590
|
+
"required": [
|
|
23591
|
+
"harness",
|
|
23592
|
+
"cliVersion",
|
|
23593
|
+
"modelId",
|
|
23594
|
+
"status"
|
|
23595
|
+
]
|
|
23596
|
+
}
|
|
23597
|
+
}
|
|
23598
|
+
}
|
|
23599
|
+
},
|
|
23600
|
+
"responses": {
|
|
23601
|
+
"200": {
|
|
23602
|
+
"description": "Support row upserted",
|
|
23603
|
+
"content": {
|
|
23604
|
+
"application/json": {
|
|
23605
|
+
"schema": {
|
|
23606
|
+
"type": "object",
|
|
23607
|
+
"properties": {
|
|
23608
|
+
"harness": {
|
|
23609
|
+
"type": "string"
|
|
23610
|
+
},
|
|
23611
|
+
"cliVersion": {
|
|
23612
|
+
"type": "string"
|
|
23613
|
+
},
|
|
23614
|
+
"modelId": {
|
|
23615
|
+
"type": "string"
|
|
23616
|
+
},
|
|
23617
|
+
"status": {
|
|
23618
|
+
"type": "string",
|
|
23619
|
+
"enum": [
|
|
23620
|
+
"ok",
|
|
23621
|
+
"unsupported",
|
|
23622
|
+
"unknown"
|
|
23623
|
+
]
|
|
23624
|
+
},
|
|
23625
|
+
"checkedAt": {
|
|
23626
|
+
"type": "number"
|
|
23627
|
+
},
|
|
23628
|
+
"error": {
|
|
23629
|
+
"type": [
|
|
23630
|
+
"string",
|
|
23631
|
+
"null"
|
|
23632
|
+
]
|
|
23633
|
+
}
|
|
23634
|
+
},
|
|
23635
|
+
"required": [
|
|
23636
|
+
"harness",
|
|
23637
|
+
"cliVersion",
|
|
23638
|
+
"modelId",
|
|
23639
|
+
"status",
|
|
23640
|
+
"checkedAt",
|
|
23641
|
+
"error"
|
|
23642
|
+
]
|
|
23643
|
+
}
|
|
23644
|
+
}
|
|
23645
|
+
}
|
|
23646
|
+
},
|
|
23647
|
+
"403": {
|
|
23648
|
+
"description": "Forbidden",
|
|
23649
|
+
"content": {
|
|
23650
|
+
"application/json": {
|
|
23651
|
+
"schema": {
|
|
23652
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
23653
|
+
}
|
|
23654
|
+
}
|
|
23655
|
+
}
|
|
23656
|
+
}
|
|
23657
|
+
}
|
|
23658
|
+
}
|
|
23659
|
+
},
|
|
22906
23660
|
"/api/oauth/refresh-locks/{key}": {
|
|
22907
23661
|
"post": {
|
|
22908
23662
|
"summary": "Acquire a cross-process OAuth refresh lock",
|
|
@@ -28276,6 +29030,16 @@
|
|
|
28276
29030
|
"description": "Identifies the concrete runtime instance (worker process) making the call, as generated at its boot. Required to poll for work when multi-runtime mode (MULTI_RUNTIME_ENABLED) is on; ignored otherwise.",
|
|
28277
29031
|
"name": "X-Runtime-Instance-ID",
|
|
28278
29032
|
"in": "header"
|
|
29033
|
+
},
|
|
29034
|
+
{
|
|
29035
|
+
"schema": {
|
|
29036
|
+
"type": "string",
|
|
29037
|
+
"description": "URL-encoded JSON {provider: {tier: model}} of the worker's MODEL_TIER_* env overrides. Stored on the agent row and applied at claim time (modelSource=worker-env)."
|
|
29038
|
+
},
|
|
29039
|
+
"required": false,
|
|
29040
|
+
"description": "URL-encoded JSON {provider: {tier: model}} of the worker's MODEL_TIER_* env overrides. Stored on the agent row and applied at claim time (modelSource=worker-env).",
|
|
29041
|
+
"name": "X-Model-Tier-Overrides",
|
|
29042
|
+
"in": "header"
|
|
28279
29043
|
}
|
|
28280
29044
|
],
|
|
28281
29045
|
"responses": {
|
|
@@ -30297,6 +31061,9 @@
|
|
|
30297
31061
|
"ultra"
|
|
30298
31062
|
]
|
|
30299
31063
|
},
|
|
31064
|
+
"allowCustomModel": {
|
|
31065
|
+
"type": "boolean"
|
|
31066
|
+
},
|
|
30300
31067
|
"scheduleType": {
|
|
30301
31068
|
"type": "string",
|
|
30302
31069
|
"enum": [
|
|
@@ -31707,6 +32474,9 @@
|
|
|
31707
32474
|
null
|
|
31708
32475
|
]
|
|
31709
32476
|
},
|
|
32477
|
+
"allowCustomModel": {
|
|
32478
|
+
"type": "boolean"
|
|
32479
|
+
},
|
|
31710
32480
|
"nextRunAt": {
|
|
31711
32481
|
"type": [
|
|
31712
32482
|
"string",
|
|
@@ -32098,6 +32868,9 @@
|
|
|
32098
32868
|
null
|
|
32099
32869
|
]
|
|
32100
32870
|
},
|
|
32871
|
+
"allowCustomModel": {
|
|
32872
|
+
"type": "boolean"
|
|
32873
|
+
},
|
|
32101
32874
|
"nextRunAt": {
|
|
32102
32875
|
"type": [
|
|
32103
32876
|
"string",
|
|
@@ -43609,13 +44382,17 @@
|
|
|
43609
44382
|
},
|
|
43610
44383
|
"multiRuntimeEnabled": {
|
|
43611
44384
|
"type": "boolean"
|
|
44385
|
+
},
|
|
44386
|
+
"devMode": {
|
|
44387
|
+
"type": "boolean"
|
|
43612
44388
|
}
|
|
43613
44389
|
},
|
|
43614
44390
|
"required": [
|
|
43615
44391
|
"agents",
|
|
43616
44392
|
"tasks",
|
|
43617
44393
|
"steeringEnabled",
|
|
43618
|
-
"multiRuntimeEnabled"
|
|
44394
|
+
"multiRuntimeEnabled",
|
|
44395
|
+
"devMode"
|
|
43619
44396
|
]
|
|
43620
44397
|
}
|
|
43621
44398
|
}
|
|
@@ -44979,6 +45756,15 @@
|
|
|
44979
45756
|
"ultra"
|
|
44980
45757
|
]
|
|
44981
45758
|
},
|
|
45759
|
+
"resolvedModel": {
|
|
45760
|
+
"type": "string"
|
|
45761
|
+
},
|
|
45762
|
+
"modelSource": {
|
|
45763
|
+
"type": "string"
|
|
45764
|
+
},
|
|
45765
|
+
"modelAlias": {
|
|
45766
|
+
"type": "string"
|
|
45767
|
+
},
|
|
44982
45768
|
"effort": {
|
|
44983
45769
|
"type": "string",
|
|
44984
45770
|
"enum": [
|
|
@@ -45251,6 +46037,9 @@
|
|
|
45251
46037
|
"ultra"
|
|
45252
46038
|
]
|
|
45253
46039
|
},
|
|
46040
|
+
"allowCustomModel": {
|
|
46041
|
+
"type": "boolean"
|
|
46042
|
+
},
|
|
45254
46043
|
"effort": {
|
|
45255
46044
|
"type": "string",
|
|
45256
46045
|
"enum": [
|
|
@@ -45285,7 +46074,7 @@
|
|
|
45285
46074
|
}
|
|
45286
46075
|
},
|
|
45287
46076
|
"400": {
|
|
45288
|
-
"description": "Validation error, or agentId/offeredTo targets an extension identity",
|
|
46077
|
+
"description": "Validation error, an unknown `model` (set `allowCustomModel` to store a custom id), or agentId/offeredTo targets an extension identity",
|
|
45289
46078
|
"content": {
|
|
45290
46079
|
"application/json": {
|
|
45291
46080
|
"schema": {
|
|
@@ -51320,7 +52109,22 @@
|
|
|
51320
52109
|
"content": {
|
|
51321
52110
|
"application/json": {
|
|
51322
52111
|
"schema": {
|
|
51323
|
-
"
|
|
52112
|
+
"allOf": [
|
|
52113
|
+
{
|
|
52114
|
+
"$ref": "#/components/schemas/Workflow"
|
|
52115
|
+
},
|
|
52116
|
+
{
|
|
52117
|
+
"type": "object",
|
|
52118
|
+
"properties": {
|
|
52119
|
+
"warnings": {
|
|
52120
|
+
"type": "array",
|
|
52121
|
+
"items": {
|
|
52122
|
+
"type": "string"
|
|
52123
|
+
}
|
|
52124
|
+
}
|
|
52125
|
+
}
|
|
52126
|
+
}
|
|
52127
|
+
]
|
|
51324
52128
|
}
|
|
51325
52129
|
}
|
|
51326
52130
|
}
|
|
@@ -51691,7 +52495,22 @@
|
|
|
51691
52495
|
"content": {
|
|
51692
52496
|
"application/json": {
|
|
51693
52497
|
"schema": {
|
|
51694
|
-
"
|
|
52498
|
+
"allOf": [
|
|
52499
|
+
{
|
|
52500
|
+
"$ref": "#/components/schemas/Workflow"
|
|
52501
|
+
},
|
|
52502
|
+
{
|
|
52503
|
+
"type": "object",
|
|
52504
|
+
"properties": {
|
|
52505
|
+
"warnings": {
|
|
52506
|
+
"type": "array",
|
|
52507
|
+
"items": {
|
|
52508
|
+
"type": "string"
|
|
52509
|
+
}
|
|
52510
|
+
}
|
|
52511
|
+
}
|
|
52512
|
+
}
|
|
52513
|
+
]
|
|
51695
52514
|
}
|
|
51696
52515
|
}
|
|
51697
52516
|
}
|
|
@@ -51768,7 +52587,22 @@
|
|
|
51768
52587
|
"content": {
|
|
51769
52588
|
"application/json": {
|
|
51770
52589
|
"schema": {
|
|
51771
|
-
"
|
|
52590
|
+
"allOf": [
|
|
52591
|
+
{
|
|
52592
|
+
"$ref": "#/components/schemas/Workflow"
|
|
52593
|
+
},
|
|
52594
|
+
{
|
|
52595
|
+
"type": "object",
|
|
52596
|
+
"properties": {
|
|
52597
|
+
"warnings": {
|
|
52598
|
+
"type": "array",
|
|
52599
|
+
"items": {
|
|
52600
|
+
"type": "string"
|
|
52601
|
+
}
|
|
52602
|
+
}
|
|
52603
|
+
}
|
|
52604
|
+
}
|
|
52605
|
+
]
|
|
51772
52606
|
}
|
|
51773
52607
|
}
|
|
51774
52608
|
}
|
|
@@ -51869,7 +52703,7 @@
|
|
|
51869
52703
|
"properties": {
|
|
51870
52704
|
"type": {
|
|
51871
52705
|
"type": "string",
|
|
51872
|
-
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'validate', 'property-match'"
|
|
52706
|
+
"description": "Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'system-one-decision', 'validate', 'property-match'"
|
|
51873
52707
|
},
|
|
51874
52708
|
"label": {
|
|
51875
52709
|
"type": "string",
|
|
@@ -51878,7 +52712,7 @@
|
|
|
51878
52712
|
"config": {
|
|
51879
52713
|
"type": "object",
|
|
51880
52714
|
"additionalProperties": {},
|
|
51881
|
-
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
52715
|
+
"description": "Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. For script: { runtime, script, args?, timeout? }. For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. For system-one-decision (typed decisions, Jev by default): { provider? ('typesafe' default | 'openrouter' | 'laya'; a literal, never a {{token}}), state, questions: { <id>: { type: 'noul'|'choice'|'score', instructions, criteria? } }, returns: { <id>: { type } }, model? (provider-specific; unset = the provider's default, and laya has none so it sends no model and picks its own checkpoint), timeoutMs?, maxRetries? (0-3), humanReview? { band: { min, max } (0-1, inclusive), approvers: { users?, roles?, policy }, title?, timeout?, notifications? } }; each provider needs its own global secret (TYPESAFE_API_KEY, OPENROUTER_API_KEY, or LAYA_API_KEY; laya also needs the global config LAYA_URL), and a save warns and a run fails before any node executes when one is missing; system-one-decision nodes must not set retry or validation.retry. With humanReview, an answer whose confidence is inside the band waits for a person (human-in-the-loop approval), and next must map ports { approved, rejected?, timeout? }. Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."
|
|
51882
52716
|
},
|
|
51883
52717
|
"next": {
|
|
51884
52718
|
"anyOf": [
|
|
@@ -51934,7 +52768,22 @@
|
|
|
51934
52768
|
"content": {
|
|
51935
52769
|
"application/json": {
|
|
51936
52770
|
"schema": {
|
|
51937
|
-
"
|
|
52771
|
+
"allOf": [
|
|
52772
|
+
{
|
|
52773
|
+
"$ref": "#/components/schemas/Workflow"
|
|
52774
|
+
},
|
|
52775
|
+
{
|
|
52776
|
+
"type": "object",
|
|
52777
|
+
"properties": {
|
|
52778
|
+
"warnings": {
|
|
52779
|
+
"type": "array",
|
|
52780
|
+
"items": {
|
|
52781
|
+
"type": "string"
|
|
52782
|
+
}
|
|
52783
|
+
}
|
|
52784
|
+
}
|
|
52785
|
+
}
|
|
52786
|
+
]
|
|
51938
52787
|
}
|
|
51939
52788
|
}
|
|
51940
52789
|
}
|