@desplega.ai/agent-swarm 2.3.0 → 2.4.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 +1 -0
- package/dist/{acp-adapter-v85a2bqy.js → acp-adapter-kedstxx6.js} +6 -6
- package/dist/{actions-zgcxfspj.js → actions-vget6r1k.js} +18 -16
- package/dist/{amp-adapter-jw9xfz42.js → amp-adapter-xeb5mktv.js} +2 -2
- package/dist/{app-4e1s4675.js → app-mqap8t8m.js} +3 -3
- package/dist/{assistant-v238n9dk.js → assistant-h0gv97mv.js} +20 -18
- package/dist/{boot-reembed-p666cw5n.js → boot-reembed-qr8a894z.js} +1 -1
- package/dist/{boot-reembed-w6pm64j4.js → boot-reembed-rj85jjhw.js} +1 -1
- package/dist/{boot-scrub-sweep-jcyjagn3.js → boot-scrub-sweep-eyfvn6v9.js} +3 -3
- package/dist/{boot-seeds-gbedmamp.js → boot-seeds-xs9a8dx1.js} +4 -4
- package/dist/{claude-adapter-q7wspzt8.js → claude-adapter-bm23cye7.js} +5 -5
- package/dist/{claude-managed-adapter-n7ahjyx6.js → claude-managed-adapter-1mwrsm9d.js} +2 -2
- package/dist/{claude-managed-setup-wza784fb.js → claude-managed-setup-gkfgks4j.js} +1 -1
- package/dist/{claude-sdk-session-yf400ptr.js → claude-sdk-session-apb4ypz3.js} +5 -5
- package/dist/cli-02vhhssk.js +848 -0
- package/dist/{cli-4ync7m60.js → cli-0ebey9hg.js} +1 -1
- package/dist/{cli-665j3feb.js → cli-0xk505e8.js} +1 -1
- package/dist/{cli-30m5q8mc.js → cli-1cevz46c.js} +5 -5
- package/dist/{cli-gzvb3d4a.js → cli-1jx0srjt.js} +3 -3
- package/dist/{cli-zj4d6afs.js → cli-1pa3rz69.js} +21 -6
- package/dist/{cli-fhvqt2fp.js → cli-2rwet3r7.js} +1 -1
- package/dist/{cli-azs9bhc5.js → cli-3wjs22x3.js} +2 -2
- package/dist/{cli-dxwh4j32.js → cli-4fhyq711.js} +45 -36
- package/dist/{cli-yv3n83x8.js → cli-5ff2sjyt.js} +1 -1
- package/dist/{cli-6vcyw6v7.js → cli-5s5hx57y.js} +5 -3
- package/dist/{cli-hz64bcnj.js → cli-6ftrrwm1.js} +9 -371
- package/dist/{cli-zes4tsbb.js → cli-8b9wvjps.js} +1 -1
- package/dist/cli-8cxkw1f5.js +382 -0
- package/dist/{cli-4s1kqrqg.js → cli-8rwvksbc.js} +2 -2
- package/dist/{cli-e09hj50q.js → cli-8wkb09q5.js} +11 -11
- package/dist/{cli-yv0vgscc.js → cli-a1esmmee.js} +13 -2
- package/dist/{cli-4hmaheb6.js → cli-avmqhatn.js} +7 -7
- package/dist/{cli-g6p7c2my.js → cli-b80a1100.js} +1 -1
- package/dist/{cli-tr24eeny.js → cli-bfc3k1x5.js} +3 -3
- package/dist/{cli-ka01m5rb.js → cli-bhwa8rzc.js} +13 -11
- package/dist/{cli-8cvvytad.js → cli-bn26xbcs.js} +2 -2
- package/dist/{cli-k28p6xh7.js → cli-c8fwpgqb.js} +1 -1
- package/dist/{cli-rc3r0bnh.js → cli-ccn0eybf.js} +1 -1
- package/dist/{cli-9td5ss65.js → cli-dsgj3e7a.js} +2 -2
- package/dist/{cli-a17tzmn0.js → cli-ecshf504.js} +2 -2
- package/dist/{cli-d43xqzbe.js → cli-eqgfs202.js} +1 -1
- package/dist/{cli-ppapy34w.js → cli-f3nx1h8z.js} +2 -2
- package/dist/{cli-ea7chd26.js → cli-ffbrkh1r.js} +74 -35
- package/dist/{cli-xgn4rwyv.js → cli-kk2r80n5.js} +4 -4
- package/dist/{cli-hn3pftj2.js → cli-kz116kvw.js} +3 -3
- package/dist/{cli-1v8w782f.js → cli-mvg2hf8p.js} +4 -4
- package/dist/{cli-5d1m1qca.js → cli-mz1ezzzh.js} +1 -1
- package/dist/{cli-jhmjwqcg.js → cli-nme7wery.js} +6 -6
- package/dist/{cli-65q70v2v.js → cli-nrrg0fvy.js} +18 -4
- package/dist/{cli-8jtrekpy.js → cli-p1m2b6gc.js} +7 -7
- package/dist/{cli-re4wkbzx.js → cli-rg7ntypm.js} +328 -47
- package/dist/{cli-fp4xbw07.js → cli-rsd7ga7v.js} +10 -8
- package/dist/{cli-etvn5ej2.js → cli-sppc0cmw.js} +1 -1
- package/dist/{cli-qrwp40st.js → cli-tg9ksbn8.js} +1 -1
- package/dist/{cli-6p7ddg72.js → cli-tgvpmnwz.js} +2 -2
- package/dist/{cli-q1812jbw.js → cli-tj4j2ts4.js} +6 -6
- package/dist/{cli-kqypty34.js → cli-ttaz6c7m.js} +2 -2
- package/dist/{cli-w7z94e6c.js → cli-tx00c0h6.js} +4 -2
- package/dist/{cli-4g629sgr.js → cli-wrv09v7q.js} +20 -1
- package/dist/{cli-cby329ny.js → cli-wyrr38xm.js} +2 -2
- package/dist/{cli-y3dvz6ge.js → cli-x1p5dhq2.js} +3 -3
- package/dist/{cli-8qsx817b.js → cli-x719j3vs.js} +219 -629
- package/dist/{cli-9e9kjqsj.js → cli-xfe63zx3.js} +1 -1
- package/dist/{cli-wtg6edvd.js → cli-ywyrffff.js} +1 -1
- package/dist/{cli-0rh20bp3.js → cli-zvze9rbm.js} +1 -1
- package/dist/cli.js +14 -14
- package/dist/{codex-adapter-nhjj2veb.js → codex-adapter-pp2gq8gr.js} +3 -3
- package/dist/{codex-hook-x6tm6y5m.js → codex-hook-qwzccd64.js} +1 -1
- package/dist/{codex-session-runner-6hggrjbx.js → codex-session-runner-0vzn09t8.js} +3 -3
- package/dist/{commands-mrw1ph2w.js → commands-psqhkttb.js} +2 -2
- package/dist/{controller-pt1zam5w.js → controller-t20vz2k8.js} +2 -2
- package/dist/{controllers-connect-ymw5541d.js → controllers-connect-gkxmqw9d.js} +24 -20
- package/dist/{cursor-adapter-cf4zh5x0.js → cursor-adapter-3v542qe5.js} +1 -1
- package/dist/{db-hy80219q.js → db-2xbyenjr.js} +2 -2
- package/dist/{db-hhpy6m4x.js → db-nc1rd869.js} +3 -2
- package/dist/{dispatcher-6pdjtkr1.js → dispatcher-ewceb8ts.js} +17 -15
- package/dist/{dsh-adapter-fbx06re2.js → dsh-adapter-75xwh78t.js} +1 -1
- package/dist/{easter-egg-3d-6hg2r942.js → easter-egg-3d-xsc47jwf.js} +1 -1
- package/dist/{execute-bcqc69a5.js → execute-gzmw1mnw.js} +1 -1
- package/dist/{external-channel-j6vb6ya1.js → external-channel-a5dsmxn4.js} +2 -2
- package/dist/{google-generative-ai-phpmwxvg.js → google-generative-ai-bmq8gkf3.js} +1 -1
- package/dist/{google-vertex-es9ybgdy.js → google-vertex-b1rvp52s.js} +1 -1
- package/dist/{grok-adapter-1193sprp.js → grok-adapter-vj88xr23.js} +7 -7
- package/dist/handlers-zbs90bny.js +39 -0
- package/dist/{heartbeat-h1w1ktce.js → heartbeat-t2m9r3wa.js} +20 -18
- package/dist/{hook-skrbja18.js → hook-8femx1bg.js} +4 -4
- package/dist/{hook-ejja4bpe.js → hook-xa677f8r.js} +5 -5
- package/dist/{http-mzh41mfj.js → http-xpmmq028.js} +868 -253
- package/dist/{index-vjn3wbzf.js → index-8pwc1jc8.js} +17 -15
- package/dist/{index-epr2gnbw.js → index-cdzyfrsp.js} +1 -1
- package/dist/{index-xmmkyx82.js → index-dg2tmj99.js} +17 -15
- package/dist/index-nxa6me0q.js +41 -0
- package/dist/{index-6rmnn89d.js → index-s7ckdajq.js} +9 -9
- package/dist/{index-wgsw9xcz.js → index-syztqdt6.js} +1 -1
- package/dist/{index-x0q2a4f9.js → index-ysd45kgc.js} +1 -1
- package/dist/{index-g909y089.js → index-zgvqzjsw.js} +8 -8
- package/dist/{keepalive-4djvbm2j.js → keepalive-3nr4st3r.js} +3 -3
- package/dist/{lead-61kqp604.js → lead-td8h2sfn.js} +33 -31
- package/dist/{maintenance-f3xhnjsm.js → maintenance-verwpe2c.js} +1 -1
- package/dist/{oauth-refresh-sweep-fpd6x6rw.js → oauth-refresh-sweep-9q2t0y3q.js} +2 -2
- package/dist/{onboard-196tjgyn.js → onboard-aytqedmq.js} +2 -2
- package/dist/{opencode-adapter-eeesgfqk.js → opencode-adapter-f4hryjny.js} +4 -4
- package/dist/{otel-impl-g8fh4c21.js → otel-impl-hckw4wt1.js} +1 -1
- package/dist/{pi-mono-adapter-zasp3ze3.js → pi-mono-adapter-hxby0ce1.js} +6 -6
- package/dist/{pricing-refresh-sdcf5yaz.js → pricing-refresh-5nvme3sm.js} +3 -3
- package/dist/{rbac-roles-bsp5657v.js → rbac-roles-pd8c26m1.js} +5 -3
- package/dist/{rbac-roles-2x4g1wb5.js → rbac-roles-vbpy21mg.js} +2 -2
- package/dist/{render-v2-0pyb39bb.js → render-v2-7nqgvk2q.js} +3 -3
- package/dist/{resume-a86tkj6r.js → resume-b6djcj3c.js} +6 -6
- package/dist/{runtime-ar8310ba.js → runtime-txrxc9za.js} +1 -1
- package/dist/session-access-fc3f9y12.js +25 -0
- package/dist/{setup-ypbzcapd.js → setup-n39szm6b.js} +1 -1
- package/dist/{virtual-modules-wzk6jf3a.js → virtual-modules-wyp2k6z3.js} +2 -2
- package/dist/{work-objects-yjp8de12.js → work-objects-jem2fre0.js} +20 -18
- package/dist/{worker-4ptnn1ge.js → worker-wr6xgfr2.js} +33 -31
- package/openapi.json +844 -110
- package/package.json +1 -1
- package/src/apps/action-caller.ts +6 -0
- package/src/apps/script-types.ts +16 -3
- package/src/be/db/active-sessions.ts +5 -0
- package/src/be/db/session-visibility.ts +29 -0
- package/src/be/db/tasks/read.ts +61 -3
- package/src/be/db/tasks/write.ts +15 -6
- package/src/be/db.ts +92 -33
- package/src/be/events.ts +11 -0
- package/src/be/migrations/230_session_shares.sql +23 -0
- package/src/be/rbac-roles.ts +2 -0
- package/src/be/session-shares.ts +244 -0
- package/src/be/swarm-config-guard.ts +23 -2
- package/src/commands/runner.ts +11 -0
- package/src/http/active-sessions.ts +13 -2
- package/src/http/agents.ts +10 -3
- package/src/http/all-routes.ts +1 -0
- package/src/http/api-keys.ts +3 -1
- package/src/http/approval-requests.ts +2 -1
- package/src/http/apps.ts +36 -11
- package/src/http/config.ts +3 -0
- package/src/http/context.ts +2 -0
- package/src/http/core.ts +39 -2
- package/src/http/events.ts +6 -2
- package/src/http/favorite-owner.ts +1 -1
- package/src/http/fs.ts +38 -3
- package/src/http/index.ts +3 -1
- package/src/http/memory.ts +3 -1
- package/src/http/ranking.ts +367 -0
- package/src/http/realtime.ts +26 -21
- package/src/http/route-def.ts +77 -11
- package/src/http/script-runs.ts +2 -1
- package/src/http/scripts.ts +8 -0
- package/src/http/session-access.ts +179 -0
- package/src/http/session-data.ts +10 -2
- package/src/http/sessions.ts +212 -12
- package/src/http/stats.ts +7 -3
- package/src/http/tasks.ts +83 -7
- package/src/http/used-by.ts +11 -3
- package/src/prompts/session-templates.ts +3 -1
- package/src/providers/amp-adapter.ts +1 -1
- package/src/ranking/telemetry-ranking.ts +147 -0
- package/src/ranking/usage.ts +57 -0
- package/src/rbac/admission.ts +22 -7
- package/src/rbac/legacy-policy.ts +2 -0
- package/src/rbac/permissions.ts +9 -0
- package/src/realtime/auth.ts +69 -0
- package/src/realtime/tickets.ts +4 -1
- package/src/realtime/transport.ts +77 -9
- package/src/slack/blocks.ts +18 -0
- package/src/slack/dm.ts +29 -0
- package/src/telemetry-contract/EVENTS.md +3 -0
- package/src/telemetry-contract/SOURCE.json +37 -4
- package/src/telemetry-contract/catalog.json +69 -0
- package/src/telemetry-contract/ranking/fixtures/expected.json +30 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/bad-category.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/bad-claim.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/blank-description.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/blank-name.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/description-too-long.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/domain-uppercase.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-scheme.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-www.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/http-source-url.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/missing-description.json +10 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/missing-version.json +10 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/name-not-string.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/name-too-long.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/not-object.json +1 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/null.json +1 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/other-with-subcategory.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/oversize.json +1 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/short-claim.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/subcategory-other-category.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/trailing-data.json +1 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/unknown-field.json +12 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/unsupported-version.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-not-date.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-offset.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/invalid/wrong-case-field.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/valid/category-without-subcategory.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/valid/full.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/valid/minimal.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/valid/padded-text.json +11 -0
- package/src/telemetry-contract/ranking/fixtures/valid/unicode-name.json +11 -0
- package/src/telemetry-contract/ranking/listing.v1.schema.json +61 -0
- package/src/telemetry-contract/ranking/taxonomy.json +8 -0
- package/src/telemetry-contract/ranking-taxonomy.gen.ts +11 -0
- package/src/telemetry-contract/types.gen.ts +708 -1
- package/src/telemetry.ts +26 -2
- package/src/tests/apps-rbac.test.ts +189 -2
- package/src/tests/apps-script-types.test.ts +16 -3
- package/src/tests/check-pr-body.test.ts +23 -0
- package/src/tests/check-ranking-entry.test.ts +146 -0
- package/src/tests/db-extraction-contract.test.ts +1 -0
- package/src/tests/db-task-read-contract.test.ts +1 -0
- package/src/tests/docs-index-footprint.test.js +2 -2
- package/src/tests/org-identity.test.ts +44 -0
- package/src/tests/ranking-listing.test.ts +112 -0
- package/src/tests/ranking-route.test.ts +319 -0
- package/src/tests/ranking-usage.test.ts +50 -0
- package/src/tests/rbac-admission-e2e.test.ts +8 -0
- package/src/tests/rbac-admission.test.ts +38 -0
- package/src/tests/rbac-charact-http.test.ts +4 -3
- package/src/tests/rbac-engine.test.ts +2 -0
- package/src/tests/rbac-roles.test.ts +2 -0
- package/src/tests/realtime-room-surfaces.test.ts +3 -1
- package/src/tests/realtime-session-join-race.test.ts +142 -0
- package/src/tests/realtime-tickets.test.ts +24 -17
- package/src/tests/realtime-transport.test.ts +91 -0
- package/src/tests/session-route-posture.test.ts +639 -0
- package/src/tests/session-sharing-routes.test.ts +282 -0
- package/src/tests/session-sharing.test.ts +526 -0
- package/src/tests/sessions-detail-batch.test.ts +7 -1
- package/src/tests/slack-tool-blocks.test.ts +101 -0
- package/src/tests/slack-update.test.ts +55 -0
- package/src/tests/slack-user-dm.test.ts +177 -0
- package/src/tests/used-by-route.test.ts +10 -0
- package/src/tools/slack-post.ts +18 -12
- package/src/tools/slack-read.ts +13 -1
- package/src/tools/slack-reply.ts +7 -10
- package/src/tools/slack-start-thread.ts +18 -11
- package/src/tools/slack-update.ts +2 -9
- package/src/types.ts +35 -0
- package/src/utils/org-identity.ts +33 -0
- package/templates/skills/apps/SKILL.md +17 -0
- package/templates/skills/apps/content.md +17 -0
- package/dist/handlers-tb3xgjnm.js +0 -37
- package/dist/index-nyfcdpky.js +0 -39
- package/dist/{cli-n5mrsg0f.js → cli-60cgh1rv.js} +3 -3
- /package/dist/{cli-j0v75y13.js → cli-y83zk5sb.js} +0 -0
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.4.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": [
|
|
@@ -3945,6 +3945,67 @@
|
|
|
3945
3945
|
"cacheWriteTokens"
|
|
3946
3946
|
]
|
|
3947
3947
|
},
|
|
3948
|
+
"SessionOwner": {
|
|
3949
|
+
"type": [
|
|
3950
|
+
"object",
|
|
3951
|
+
"null"
|
|
3952
|
+
],
|
|
3953
|
+
"properties": {
|
|
3954
|
+
"id": {
|
|
3955
|
+
"type": "string"
|
|
3956
|
+
},
|
|
3957
|
+
"name": {
|
|
3958
|
+
"type": "string"
|
|
3959
|
+
}
|
|
3960
|
+
},
|
|
3961
|
+
"required": [
|
|
3962
|
+
"id",
|
|
3963
|
+
"name"
|
|
3964
|
+
]
|
|
3965
|
+
},
|
|
3966
|
+
"SessionShares": {
|
|
3967
|
+
"type": "object",
|
|
3968
|
+
"properties": {
|
|
3969
|
+
"everyone": {
|
|
3970
|
+
"type": "string",
|
|
3971
|
+
"enum": [
|
|
3972
|
+
"none",
|
|
3973
|
+
"read",
|
|
3974
|
+
"write"
|
|
3975
|
+
]
|
|
3976
|
+
},
|
|
3977
|
+
"users": {
|
|
3978
|
+
"type": "array",
|
|
3979
|
+
"items": {
|
|
3980
|
+
"type": "object",
|
|
3981
|
+
"properties": {
|
|
3982
|
+
"userId": {
|
|
3983
|
+
"type": "string"
|
|
3984
|
+
},
|
|
3985
|
+
"access": {
|
|
3986
|
+
"type": "string",
|
|
3987
|
+
"enum": [
|
|
3988
|
+
"read",
|
|
3989
|
+
"write"
|
|
3990
|
+
]
|
|
3991
|
+
},
|
|
3992
|
+
"createdAt": {
|
|
3993
|
+
"type": "string"
|
|
3994
|
+
}
|
|
3995
|
+
},
|
|
3996
|
+
"required": [
|
|
3997
|
+
"userId",
|
|
3998
|
+
"access",
|
|
3999
|
+
"createdAt"
|
|
4000
|
+
]
|
|
4001
|
+
}
|
|
4002
|
+
}
|
|
4003
|
+
},
|
|
4004
|
+
"required": [
|
|
4005
|
+
"everyone",
|
|
4006
|
+
"users"
|
|
4007
|
+
]
|
|
4008
|
+
},
|
|
3948
4009
|
"Skill": {
|
|
3949
4010
|
"type": "object",
|
|
3950
4011
|
"properties": {
|
|
@@ -15272,6 +15333,541 @@
|
|
|
15272
15333
|
}
|
|
15273
15334
|
}
|
|
15274
15335
|
},
|
|
15336
|
+
"/api/used-by": {
|
|
15337
|
+
"post": {
|
|
15338
|
+
"summary": "Grant or revoke the 'used by' logo consent",
|
|
15339
|
+
"description": "Records whether agent-swarm.dev may show this organization's logo as a company that uses Agent Swarm. Sends the organization name and website to the telemetry proxy, where a person approves each logo by hand. An explicit admin action, so it is not gated by the telemetry opt-out.",
|
|
15340
|
+
"tags": [
|
|
15341
|
+
"Telemetry"
|
|
15342
|
+
],
|
|
15343
|
+
"security": [
|
|
15344
|
+
{
|
|
15345
|
+
"bearerAuth": []
|
|
15346
|
+
}
|
|
15347
|
+
],
|
|
15348
|
+
"requestBody": {
|
|
15349
|
+
"content": {
|
|
15350
|
+
"application/json": {
|
|
15351
|
+
"schema": {
|
|
15352
|
+
"type": "object",
|
|
15353
|
+
"properties": {
|
|
15354
|
+
"granted": {
|
|
15355
|
+
"type": "boolean"
|
|
15356
|
+
}
|
|
15357
|
+
},
|
|
15358
|
+
"required": [
|
|
15359
|
+
"granted"
|
|
15360
|
+
]
|
|
15361
|
+
}
|
|
15362
|
+
}
|
|
15363
|
+
}
|
|
15364
|
+
},
|
|
15365
|
+
"responses": {
|
|
15366
|
+
"200": {
|
|
15367
|
+
"description": "Consent recorded",
|
|
15368
|
+
"content": {
|
|
15369
|
+
"application/json": {
|
|
15370
|
+
"schema": {
|
|
15371
|
+
"type": "object",
|
|
15372
|
+
"properties": {
|
|
15373
|
+
"granted": {
|
|
15374
|
+
"type": "boolean"
|
|
15375
|
+
},
|
|
15376
|
+
"changedAt": {
|
|
15377
|
+
"type": "string"
|
|
15378
|
+
}
|
|
15379
|
+
},
|
|
15380
|
+
"required": [
|
|
15381
|
+
"granted",
|
|
15382
|
+
"changedAt"
|
|
15383
|
+
]
|
|
15384
|
+
}
|
|
15385
|
+
}
|
|
15386
|
+
}
|
|
15387
|
+
},
|
|
15388
|
+
"400": {
|
|
15389
|
+
"description": "Organization name or website is not set (a revoke falls back to the identity of the last grant)",
|
|
15390
|
+
"content": {
|
|
15391
|
+
"application/json": {
|
|
15392
|
+
"schema": {
|
|
15393
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15394
|
+
}
|
|
15395
|
+
}
|
|
15396
|
+
}
|
|
15397
|
+
},
|
|
15398
|
+
"401": {
|
|
15399
|
+
"description": "Unauthorized",
|
|
15400
|
+
"content": {
|
|
15401
|
+
"application/json": {
|
|
15402
|
+
"schema": {
|
|
15403
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15404
|
+
}
|
|
15405
|
+
}
|
|
15406
|
+
}
|
|
15407
|
+
},
|
|
15408
|
+
"403": {
|
|
15409
|
+
"description": "Only a config admin can change the consent",
|
|
15410
|
+
"content": {
|
|
15411
|
+
"application/json": {
|
|
15412
|
+
"schema": {
|
|
15413
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15414
|
+
}
|
|
15415
|
+
}
|
|
15416
|
+
}
|
|
15417
|
+
},
|
|
15418
|
+
"502": {
|
|
15419
|
+
"description": "The telemetry proxy did not accept the consent",
|
|
15420
|
+
"content": {
|
|
15421
|
+
"application/json": {
|
|
15422
|
+
"schema": {
|
|
15423
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15424
|
+
}
|
|
15425
|
+
}
|
|
15426
|
+
}
|
|
15427
|
+
}
|
|
15428
|
+
}
|
|
15429
|
+
}
|
|
15430
|
+
},
|
|
15431
|
+
"/api/ranking": {
|
|
15432
|
+
"get": {
|
|
15433
|
+
"summary": "Public ranking state",
|
|
15434
|
+
"description": "Whether this install can join the public agent-swarm.dev ranking (telemetry on, organization name and website set), whether it is opted in, and its stored listing. The listing carries the private ranking claim, so only a config admin can read it.",
|
|
15435
|
+
"tags": [
|
|
15436
|
+
"Telemetry"
|
|
15437
|
+
],
|
|
15438
|
+
"security": [
|
|
15439
|
+
{
|
|
15440
|
+
"bearerAuth": []
|
|
15441
|
+
}
|
|
15442
|
+
],
|
|
15443
|
+
"responses": {
|
|
15444
|
+
"200": {
|
|
15445
|
+
"description": "Ranking state",
|
|
15446
|
+
"content": {
|
|
15447
|
+
"application/json": {
|
|
15448
|
+
"schema": {
|
|
15449
|
+
"type": "object",
|
|
15450
|
+
"properties": {
|
|
15451
|
+
"eligible": {
|
|
15452
|
+
"type": "boolean"
|
|
15453
|
+
},
|
|
15454
|
+
"missing": {
|
|
15455
|
+
"type": "array",
|
|
15456
|
+
"items": {
|
|
15457
|
+
"type": "string",
|
|
15458
|
+
"enum": [
|
|
15459
|
+
"SWARM_ORG_NAME",
|
|
15460
|
+
"SWARM_ORG_WEBSITE"
|
|
15461
|
+
]
|
|
15462
|
+
}
|
|
15463
|
+
},
|
|
15464
|
+
"telemetryOn": {
|
|
15465
|
+
"type": "boolean"
|
|
15466
|
+
},
|
|
15467
|
+
"enabled": {
|
|
15468
|
+
"type": "boolean"
|
|
15469
|
+
},
|
|
15470
|
+
"name": {
|
|
15471
|
+
"type": [
|
|
15472
|
+
"string",
|
|
15473
|
+
"null"
|
|
15474
|
+
]
|
|
15475
|
+
},
|
|
15476
|
+
"domain": {
|
|
15477
|
+
"type": [
|
|
15478
|
+
"string",
|
|
15479
|
+
"null"
|
|
15480
|
+
]
|
|
15481
|
+
},
|
|
15482
|
+
"listing": {
|
|
15483
|
+
"type": [
|
|
15484
|
+
"object",
|
|
15485
|
+
"null"
|
|
15486
|
+
],
|
|
15487
|
+
"properties": {
|
|
15488
|
+
"v": {
|
|
15489
|
+
"type": "number",
|
|
15490
|
+
"enum": [
|
|
15491
|
+
1
|
|
15492
|
+
]
|
|
15493
|
+
},
|
|
15494
|
+
"claim": {
|
|
15495
|
+
"type": "string"
|
|
15496
|
+
},
|
|
15497
|
+
"name": {
|
|
15498
|
+
"type": "string"
|
|
15499
|
+
},
|
|
15500
|
+
"domain": {
|
|
15501
|
+
"type": "string"
|
|
15502
|
+
},
|
|
15503
|
+
"category": {
|
|
15504
|
+
"type": "string",
|
|
15505
|
+
"enum": [
|
|
15506
|
+
"engineering",
|
|
15507
|
+
"product",
|
|
15508
|
+
"marketing",
|
|
15509
|
+
"support",
|
|
15510
|
+
"operations",
|
|
15511
|
+
"other"
|
|
15512
|
+
]
|
|
15513
|
+
},
|
|
15514
|
+
"subcategory": {
|
|
15515
|
+
"type": [
|
|
15516
|
+
"string",
|
|
15517
|
+
"null"
|
|
15518
|
+
]
|
|
15519
|
+
},
|
|
15520
|
+
"description": {
|
|
15521
|
+
"type": [
|
|
15522
|
+
"string",
|
|
15523
|
+
"null"
|
|
15524
|
+
]
|
|
15525
|
+
},
|
|
15526
|
+
"sourceCodeUrl": {
|
|
15527
|
+
"type": [
|
|
15528
|
+
"string",
|
|
15529
|
+
"null"
|
|
15530
|
+
]
|
|
15531
|
+
},
|
|
15532
|
+
"updatedAt": {
|
|
15533
|
+
"type": "string"
|
|
15534
|
+
}
|
|
15535
|
+
},
|
|
15536
|
+
"required": [
|
|
15537
|
+
"v",
|
|
15538
|
+
"claim",
|
|
15539
|
+
"name",
|
|
15540
|
+
"domain",
|
|
15541
|
+
"category",
|
|
15542
|
+
"subcategory",
|
|
15543
|
+
"description",
|
|
15544
|
+
"sourceCodeUrl",
|
|
15545
|
+
"updatedAt"
|
|
15546
|
+
]
|
|
15547
|
+
},
|
|
15548
|
+
"listingMatchesDomain": {
|
|
15549
|
+
"type": "boolean"
|
|
15550
|
+
},
|
|
15551
|
+
"fileJson": {
|
|
15552
|
+
"type": [
|
|
15553
|
+
"string",
|
|
15554
|
+
"null"
|
|
15555
|
+
]
|
|
15556
|
+
},
|
|
15557
|
+
"prUrl": {
|
|
15558
|
+
"type": [
|
|
15559
|
+
"string",
|
|
15560
|
+
"null"
|
|
15561
|
+
]
|
|
15562
|
+
},
|
|
15563
|
+
"verifyUrl": {
|
|
15564
|
+
"type": [
|
|
15565
|
+
"string",
|
|
15566
|
+
"null"
|
|
15567
|
+
]
|
|
15568
|
+
}
|
|
15569
|
+
},
|
|
15570
|
+
"required": [
|
|
15571
|
+
"eligible",
|
|
15572
|
+
"missing",
|
|
15573
|
+
"telemetryOn",
|
|
15574
|
+
"enabled",
|
|
15575
|
+
"name",
|
|
15576
|
+
"domain",
|
|
15577
|
+
"listing",
|
|
15578
|
+
"listingMatchesDomain",
|
|
15579
|
+
"fileJson",
|
|
15580
|
+
"prUrl",
|
|
15581
|
+
"verifyUrl"
|
|
15582
|
+
]
|
|
15583
|
+
}
|
|
15584
|
+
}
|
|
15585
|
+
}
|
|
15586
|
+
},
|
|
15587
|
+
"401": {
|
|
15588
|
+
"description": "Unauthorized",
|
|
15589
|
+
"content": {
|
|
15590
|
+
"application/json": {
|
|
15591
|
+
"schema": {
|
|
15592
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15593
|
+
}
|
|
15594
|
+
}
|
|
15595
|
+
}
|
|
15596
|
+
},
|
|
15597
|
+
"403": {
|
|
15598
|
+
"description": "Only a config admin can read the ranking state",
|
|
15599
|
+
"content": {
|
|
15600
|
+
"application/json": {
|
|
15601
|
+
"schema": {
|
|
15602
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15603
|
+
}
|
|
15604
|
+
}
|
|
15605
|
+
}
|
|
15606
|
+
}
|
|
15607
|
+
}
|
|
15608
|
+
}
|
|
15609
|
+
},
|
|
15610
|
+
"/api/ranking/opt-in": {
|
|
15611
|
+
"post": {
|
|
15612
|
+
"summary": "Opt this install into the public ranking",
|
|
15613
|
+
"description": "Builds the telemetry_ranking listing from the organization name and website plus the chosen category, stores it, turns PUBLIC_RANKING_ENABLED on and sends ranking.opted_in. The install is ranked only after a ranking PR with the returned file is merged into desplega-ai/agent-swarm.",
|
|
15614
|
+
"tags": [
|
|
15615
|
+
"Telemetry"
|
|
15616
|
+
],
|
|
15617
|
+
"security": [
|
|
15618
|
+
{
|
|
15619
|
+
"bearerAuth": []
|
|
15620
|
+
}
|
|
15621
|
+
],
|
|
15622
|
+
"requestBody": {
|
|
15623
|
+
"content": {
|
|
15624
|
+
"application/json": {
|
|
15625
|
+
"schema": {
|
|
15626
|
+
"type": "object",
|
|
15627
|
+
"properties": {
|
|
15628
|
+
"category": {
|
|
15629
|
+
"type": "string",
|
|
15630
|
+
"enum": [
|
|
15631
|
+
"engineering",
|
|
15632
|
+
"product",
|
|
15633
|
+
"marketing",
|
|
15634
|
+
"support",
|
|
15635
|
+
"operations",
|
|
15636
|
+
"other"
|
|
15637
|
+
]
|
|
15638
|
+
},
|
|
15639
|
+
"subcategory": {
|
|
15640
|
+
"type": [
|
|
15641
|
+
"string",
|
|
15642
|
+
"null"
|
|
15643
|
+
]
|
|
15644
|
+
},
|
|
15645
|
+
"description": {
|
|
15646
|
+
"type": [
|
|
15647
|
+
"string",
|
|
15648
|
+
"null"
|
|
15649
|
+
]
|
|
15650
|
+
},
|
|
15651
|
+
"sourceCodeUrl": {
|
|
15652
|
+
"type": [
|
|
15653
|
+
"string",
|
|
15654
|
+
"null"
|
|
15655
|
+
]
|
|
15656
|
+
}
|
|
15657
|
+
},
|
|
15658
|
+
"required": [
|
|
15659
|
+
"category"
|
|
15660
|
+
]
|
|
15661
|
+
}
|
|
15662
|
+
}
|
|
15663
|
+
}
|
|
15664
|
+
},
|
|
15665
|
+
"responses": {
|
|
15666
|
+
"200": {
|
|
15667
|
+
"description": "Opted in",
|
|
15668
|
+
"content": {
|
|
15669
|
+
"application/json": {
|
|
15670
|
+
"schema": {
|
|
15671
|
+
"type": "object",
|
|
15672
|
+
"properties": {
|
|
15673
|
+
"domain": {
|
|
15674
|
+
"type": "string"
|
|
15675
|
+
},
|
|
15676
|
+
"claim": {
|
|
15677
|
+
"type": "string"
|
|
15678
|
+
},
|
|
15679
|
+
"listing": {
|
|
15680
|
+
"type": "object",
|
|
15681
|
+
"properties": {
|
|
15682
|
+
"v": {
|
|
15683
|
+
"type": "number",
|
|
15684
|
+
"enum": [
|
|
15685
|
+
1
|
|
15686
|
+
]
|
|
15687
|
+
},
|
|
15688
|
+
"claim": {
|
|
15689
|
+
"type": "string"
|
|
15690
|
+
},
|
|
15691
|
+
"name": {
|
|
15692
|
+
"type": "string"
|
|
15693
|
+
},
|
|
15694
|
+
"domain": {
|
|
15695
|
+
"type": "string"
|
|
15696
|
+
},
|
|
15697
|
+
"category": {
|
|
15698
|
+
"type": "string",
|
|
15699
|
+
"enum": [
|
|
15700
|
+
"engineering",
|
|
15701
|
+
"product",
|
|
15702
|
+
"marketing",
|
|
15703
|
+
"support",
|
|
15704
|
+
"operations",
|
|
15705
|
+
"other"
|
|
15706
|
+
]
|
|
15707
|
+
},
|
|
15708
|
+
"subcategory": {
|
|
15709
|
+
"type": [
|
|
15710
|
+
"string",
|
|
15711
|
+
"null"
|
|
15712
|
+
]
|
|
15713
|
+
},
|
|
15714
|
+
"description": {
|
|
15715
|
+
"type": [
|
|
15716
|
+
"string",
|
|
15717
|
+
"null"
|
|
15718
|
+
]
|
|
15719
|
+
},
|
|
15720
|
+
"sourceCodeUrl": {
|
|
15721
|
+
"type": [
|
|
15722
|
+
"string",
|
|
15723
|
+
"null"
|
|
15724
|
+
]
|
|
15725
|
+
},
|
|
15726
|
+
"updatedAt": {
|
|
15727
|
+
"type": "string"
|
|
15728
|
+
}
|
|
15729
|
+
},
|
|
15730
|
+
"required": [
|
|
15731
|
+
"v",
|
|
15732
|
+
"claim",
|
|
15733
|
+
"name",
|
|
15734
|
+
"domain",
|
|
15735
|
+
"category",
|
|
15736
|
+
"subcategory",
|
|
15737
|
+
"description",
|
|
15738
|
+
"sourceCodeUrl",
|
|
15739
|
+
"updatedAt"
|
|
15740
|
+
]
|
|
15741
|
+
},
|
|
15742
|
+
"fileJson": {
|
|
15743
|
+
"type": "string"
|
|
15744
|
+
},
|
|
15745
|
+
"prUrl": {
|
|
15746
|
+
"type": "string"
|
|
15747
|
+
},
|
|
15748
|
+
"verifyUrl": {
|
|
15749
|
+
"type": "string"
|
|
15750
|
+
}
|
|
15751
|
+
},
|
|
15752
|
+
"required": [
|
|
15753
|
+
"domain",
|
|
15754
|
+
"claim",
|
|
15755
|
+
"listing",
|
|
15756
|
+
"fileJson",
|
|
15757
|
+
"prUrl",
|
|
15758
|
+
"verifyUrl"
|
|
15759
|
+
]
|
|
15760
|
+
}
|
|
15761
|
+
}
|
|
15762
|
+
}
|
|
15763
|
+
},
|
|
15764
|
+
"400": {
|
|
15765
|
+
"description": "A listing field is invalid",
|
|
15766
|
+
"content": {
|
|
15767
|
+
"application/json": {
|
|
15768
|
+
"schema": {
|
|
15769
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15770
|
+
}
|
|
15771
|
+
}
|
|
15772
|
+
}
|
|
15773
|
+
},
|
|
15774
|
+
"401": {
|
|
15775
|
+
"description": "Unauthorized",
|
|
15776
|
+
"content": {
|
|
15777
|
+
"application/json": {
|
|
15778
|
+
"schema": {
|
|
15779
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15780
|
+
}
|
|
15781
|
+
}
|
|
15782
|
+
}
|
|
15783
|
+
},
|
|
15784
|
+
"403": {
|
|
15785
|
+
"description": "Only a config admin can opt in",
|
|
15786
|
+
"content": {
|
|
15787
|
+
"application/json": {
|
|
15788
|
+
"schema": {
|
|
15789
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15790
|
+
}
|
|
15791
|
+
}
|
|
15792
|
+
}
|
|
15793
|
+
},
|
|
15794
|
+
"409": {
|
|
15795
|
+
"description": "telemetry_off: telemetry is off or the install has no ID. org_identity_missing: the organization name or website is not set (`missing` lists which).",
|
|
15796
|
+
"content": {
|
|
15797
|
+
"application/json": {
|
|
15798
|
+
"schema": {
|
|
15799
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15800
|
+
}
|
|
15801
|
+
}
|
|
15802
|
+
}
|
|
15803
|
+
}
|
|
15804
|
+
}
|
|
15805
|
+
}
|
|
15806
|
+
},
|
|
15807
|
+
"/api/ranking/opt-out": {
|
|
15808
|
+
"post": {
|
|
15809
|
+
"summary": "Leave the public ranking",
|
|
15810
|
+
"description": "Turns PUBLIC_RANKING_ENABLED off and sends ranking.opted_out, so workers stop sending ranking.usage. Returns the GitHub page that deletes the ranking entry.",
|
|
15811
|
+
"tags": [
|
|
15812
|
+
"Telemetry"
|
|
15813
|
+
],
|
|
15814
|
+
"security": [
|
|
15815
|
+
{
|
|
15816
|
+
"bearerAuth": []
|
|
15817
|
+
}
|
|
15818
|
+
],
|
|
15819
|
+
"responses": {
|
|
15820
|
+
"200": {
|
|
15821
|
+
"description": "Opted out",
|
|
15822
|
+
"content": {
|
|
15823
|
+
"application/json": {
|
|
15824
|
+
"schema": {
|
|
15825
|
+
"type": "object",
|
|
15826
|
+
"properties": {
|
|
15827
|
+
"enabled": {
|
|
15828
|
+
"type": "boolean",
|
|
15829
|
+
"enum": [
|
|
15830
|
+
false
|
|
15831
|
+
]
|
|
15832
|
+
},
|
|
15833
|
+
"leaveUrl": {
|
|
15834
|
+
"type": [
|
|
15835
|
+
"string",
|
|
15836
|
+
"null"
|
|
15837
|
+
]
|
|
15838
|
+
}
|
|
15839
|
+
},
|
|
15840
|
+
"required": [
|
|
15841
|
+
"enabled",
|
|
15842
|
+
"leaveUrl"
|
|
15843
|
+
]
|
|
15844
|
+
}
|
|
15845
|
+
}
|
|
15846
|
+
}
|
|
15847
|
+
},
|
|
15848
|
+
"401": {
|
|
15849
|
+
"description": "Unauthorized",
|
|
15850
|
+
"content": {
|
|
15851
|
+
"application/json": {
|
|
15852
|
+
"schema": {
|
|
15853
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15854
|
+
}
|
|
15855
|
+
}
|
|
15856
|
+
}
|
|
15857
|
+
},
|
|
15858
|
+
"403": {
|
|
15859
|
+
"description": "Only a config admin can opt out",
|
|
15860
|
+
"content": {
|
|
15861
|
+
"application/json": {
|
|
15862
|
+
"schema": {
|
|
15863
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
15864
|
+
}
|
|
15865
|
+
}
|
|
15866
|
+
}
|
|
15867
|
+
}
|
|
15868
|
+
}
|
|
15869
|
+
}
|
|
15870
|
+
},
|
|
15275
15871
|
"/api/config/resolved": {
|
|
15276
15872
|
"get": {
|
|
15277
15873
|
"summary": "Get resolved config (merged global + agent + repo scopes)",
|
|
@@ -30613,7 +31209,7 @@
|
|
|
30613
31209
|
"/api/tasks": {
|
|
30614
31210
|
"get": {
|
|
30615
31211
|
"summary": "List tasks with filters",
|
|
30616
|
-
"description": "Returns tasks with the full `task` text replaced by a bounded `taskPreview` and completion/integration blobs dropped by default — list views only need the preview. Pass `fields=full` to restore the full `AgentTask`, or `fields=timeline` for the narrow shape the dashboard timeline draws. Fetch a single task in full via `GET /api/tasks/{id}`. `total` (the filtered row count, ignoring limit/offset) is computed only with `includeTotal=true`.",
|
|
31212
|
+
"description": "Returns tasks with the full `task` text replaced by a bounded `taskPreview` and completion/integration blobs dropped by default — list views only need the preview. Pass `fields=full` to restore the full `AgentTask`, or `fields=timeline` for the narrow shape the dashboard timeline draws. Every shape gives a user caller only tasks of sessions they can read. Fetch a single task in full via `GET /api/tasks/{id}`. `total` (the filtered row count, ignoring limit/offset) is computed only with `includeTotal=true`.",
|
|
30617
31213
|
"tags": [
|
|
30618
31214
|
"Tasks"
|
|
30619
31215
|
],
|
|
@@ -32293,6 +32889,16 @@
|
|
|
32293
32889
|
}
|
|
32294
32890
|
}
|
|
32295
32891
|
},
|
|
32892
|
+
"403": {
|
|
32893
|
+
"description": "A user caller cannot read the task's session",
|
|
32894
|
+
"content": {
|
|
32895
|
+
"application/json": {
|
|
32896
|
+
"schema": {
|
|
32897
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
32898
|
+
}
|
|
32899
|
+
}
|
|
32900
|
+
}
|
|
32901
|
+
},
|
|
32296
32902
|
"404": {
|
|
32297
32903
|
"description": "Task not found",
|
|
32298
32904
|
"content": {
|
|
@@ -36389,6 +36995,7 @@
|
|
|
36389
36995
|
"/api/realtime/ticket": {
|
|
36390
36996
|
"post": {
|
|
36391
36997
|
"summary": "Issue a one-shot dashboard realtime ticket",
|
|
36998
|
+
"description": "The ticket authorizes one dashboard socket for presence rooms: Comb drives (`comb.presence`) and sessions (`session.presence`). An operator-key tab's picked user (`X-Swarm-User-Id`) rides on the ticket so session presence can check that user's access.",
|
|
36392
36999
|
"tags": [
|
|
36393
37000
|
"Rooms"
|
|
36394
37001
|
],
|
|
@@ -36421,17 +37028,7 @@
|
|
|
36421
37028
|
}
|
|
36422
37029
|
},
|
|
36423
37030
|
"403": {
|
|
36424
|
-
"description": "
|
|
36425
|
-
"content": {
|
|
36426
|
-
"application/json": {
|
|
36427
|
-
"schema": {
|
|
36428
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
36429
|
-
}
|
|
36430
|
-
}
|
|
36431
|
-
}
|
|
36432
|
-
},
|
|
36433
|
-
"404": {
|
|
36434
|
-
"description": "Comb is not enabled",
|
|
37031
|
+
"description": "Presence is not allowed",
|
|
36435
37032
|
"content": {
|
|
36436
37033
|
"application/json": {
|
|
36437
37034
|
"schema": {
|
|
@@ -47134,6 +47731,18 @@
|
|
|
47134
47731
|
"required": false,
|
|
47135
47732
|
"name": "fields",
|
|
47136
47733
|
"in": "query"
|
|
47734
|
+
},
|
|
47735
|
+
{
|
|
47736
|
+
"schema": {
|
|
47737
|
+
"type": "string",
|
|
47738
|
+
"enum": [
|
|
47739
|
+
"mine",
|
|
47740
|
+
"shared"
|
|
47741
|
+
]
|
|
47742
|
+
},
|
|
47743
|
+
"required": false,
|
|
47744
|
+
"name": "scope",
|
|
47745
|
+
"in": "query"
|
|
47137
47746
|
}
|
|
47138
47747
|
],
|
|
47139
47748
|
"responses": {
|
|
@@ -47425,7 +48034,7 @@
|
|
|
47425
48034
|
],
|
|
47426
48035
|
"responses": {
|
|
47427
48036
|
"200": {
|
|
47428
|
-
"description": "Root task + chain (ordered by createdAt)",
|
|
48037
|
+
"description": "Root task + chain (ordered by createdAt), plus the caller's `access` and the session `owner`",
|
|
47429
48038
|
"content": {
|
|
47430
48039
|
"application/json": {
|
|
47431
48040
|
"schema": {
|
|
@@ -47623,11 +48232,24 @@
|
|
|
47623
48232
|
}
|
|
47624
48233
|
]
|
|
47625
48234
|
}
|
|
48235
|
+
},
|
|
48236
|
+
"access": {
|
|
48237
|
+
"type": "string",
|
|
48238
|
+
"enum": [
|
|
48239
|
+
"owner",
|
|
48240
|
+
"write",
|
|
48241
|
+
"read"
|
|
48242
|
+
]
|
|
48243
|
+
},
|
|
48244
|
+
"owner": {
|
|
48245
|
+
"$ref": "#/components/schemas/SessionOwner"
|
|
47626
48246
|
}
|
|
47627
48247
|
},
|
|
47628
48248
|
"required": [
|
|
47629
48249
|
"root",
|
|
47630
|
-
"chain"
|
|
48250
|
+
"chain",
|
|
48251
|
+
"access",
|
|
48252
|
+
"owner"
|
|
47631
48253
|
]
|
|
47632
48254
|
}
|
|
47633
48255
|
}
|
|
@@ -47643,6 +48265,16 @@
|
|
|
47643
48265
|
}
|
|
47644
48266
|
}
|
|
47645
48267
|
},
|
|
48268
|
+
"403": {
|
|
48269
|
+
"description": "The caller has no access to this session",
|
|
48270
|
+
"content": {
|
|
48271
|
+
"application/json": {
|
|
48272
|
+
"schema": {
|
|
48273
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48274
|
+
}
|
|
48275
|
+
}
|
|
48276
|
+
}
|
|
48277
|
+
},
|
|
47646
48278
|
"404": {
|
|
47647
48279
|
"description": "Root task not found",
|
|
47648
48280
|
"content": {
|
|
@@ -47656,6 +48288,203 @@
|
|
|
47656
48288
|
}
|
|
47657
48289
|
}
|
|
47658
48290
|
},
|
|
48291
|
+
"/api/sessions/{rootTaskId}/shares": {
|
|
48292
|
+
"get": {
|
|
48293
|
+
"summary": "List a session's active shares",
|
|
48294
|
+
"description": "Active shares only. `everyone` is the access every user has; `users` are per-person shares. A session with no shares is private to its owner.",
|
|
48295
|
+
"tags": [
|
|
48296
|
+
"Sessions"
|
|
48297
|
+
],
|
|
48298
|
+
"security": [
|
|
48299
|
+
{
|
|
48300
|
+
"bearerAuth": []
|
|
48301
|
+
}
|
|
48302
|
+
],
|
|
48303
|
+
"parameters": [
|
|
48304
|
+
{
|
|
48305
|
+
"schema": {
|
|
48306
|
+
"type": "string"
|
|
48307
|
+
},
|
|
48308
|
+
"required": true,
|
|
48309
|
+
"name": "rootTaskId",
|
|
48310
|
+
"in": "path"
|
|
48311
|
+
}
|
|
48312
|
+
],
|
|
48313
|
+
"responses": {
|
|
48314
|
+
"200": {
|
|
48315
|
+
"description": "Active shares",
|
|
48316
|
+
"content": {
|
|
48317
|
+
"application/json": {
|
|
48318
|
+
"schema": {
|
|
48319
|
+
"$ref": "#/components/schemas/SessionShares"
|
|
48320
|
+
}
|
|
48321
|
+
}
|
|
48322
|
+
}
|
|
48323
|
+
},
|
|
48324
|
+
"401": {
|
|
48325
|
+
"description": "Unauthorized",
|
|
48326
|
+
"content": {
|
|
48327
|
+
"application/json": {
|
|
48328
|
+
"schema": {
|
|
48329
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48330
|
+
}
|
|
48331
|
+
}
|
|
48332
|
+
}
|
|
48333
|
+
},
|
|
48334
|
+
"403": {
|
|
48335
|
+
"description": "The caller has no access to this session",
|
|
48336
|
+
"content": {
|
|
48337
|
+
"application/json": {
|
|
48338
|
+
"schema": {
|
|
48339
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48340
|
+
}
|
|
48341
|
+
}
|
|
48342
|
+
}
|
|
48343
|
+
},
|
|
48344
|
+
"404": {
|
|
48345
|
+
"description": "Root task not found",
|
|
48346
|
+
"content": {
|
|
48347
|
+
"application/json": {
|
|
48348
|
+
"schema": {
|
|
48349
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48350
|
+
}
|
|
48351
|
+
}
|
|
48352
|
+
}
|
|
48353
|
+
}
|
|
48354
|
+
}
|
|
48355
|
+
},
|
|
48356
|
+
"put": {
|
|
48357
|
+
"summary": "Set who can view or edit a session",
|
|
48358
|
+
"description": "Owner only. The body is the full desired state: users left out lose access. Changed targets have their active share revoked and a new one inserted in one transaction; shares are never deleted.",
|
|
48359
|
+
"tags": [
|
|
48360
|
+
"Sessions"
|
|
48361
|
+
],
|
|
48362
|
+
"security": [
|
|
48363
|
+
{
|
|
48364
|
+
"bearerAuth": []
|
|
48365
|
+
}
|
|
48366
|
+
],
|
|
48367
|
+
"parameters": [
|
|
48368
|
+
{
|
|
48369
|
+
"schema": {
|
|
48370
|
+
"type": "string"
|
|
48371
|
+
},
|
|
48372
|
+
"required": true,
|
|
48373
|
+
"name": "rootTaskId",
|
|
48374
|
+
"in": "path"
|
|
48375
|
+
}
|
|
48376
|
+
],
|
|
48377
|
+
"requestBody": {
|
|
48378
|
+
"content": {
|
|
48379
|
+
"application/json": {
|
|
48380
|
+
"schema": {
|
|
48381
|
+
"type": "object",
|
|
48382
|
+
"properties": {
|
|
48383
|
+
"everyone": {
|
|
48384
|
+
"type": "string",
|
|
48385
|
+
"enum": [
|
|
48386
|
+
"none",
|
|
48387
|
+
"read",
|
|
48388
|
+
"write"
|
|
48389
|
+
]
|
|
48390
|
+
},
|
|
48391
|
+
"users": {
|
|
48392
|
+
"type": "array",
|
|
48393
|
+
"items": {
|
|
48394
|
+
"type": "object",
|
|
48395
|
+
"properties": {
|
|
48396
|
+
"userId": {
|
|
48397
|
+
"type": "string",
|
|
48398
|
+
"minLength": 1
|
|
48399
|
+
},
|
|
48400
|
+
"access": {
|
|
48401
|
+
"type": "string",
|
|
48402
|
+
"enum": [
|
|
48403
|
+
"read",
|
|
48404
|
+
"write"
|
|
48405
|
+
]
|
|
48406
|
+
}
|
|
48407
|
+
},
|
|
48408
|
+
"required": [
|
|
48409
|
+
"userId",
|
|
48410
|
+
"access"
|
|
48411
|
+
]
|
|
48412
|
+
},
|
|
48413
|
+
"maxItems": 500
|
|
48414
|
+
}
|
|
48415
|
+
},
|
|
48416
|
+
"required": [
|
|
48417
|
+
"everyone",
|
|
48418
|
+
"users"
|
|
48419
|
+
]
|
|
48420
|
+
}
|
|
48421
|
+
}
|
|
48422
|
+
}
|
|
48423
|
+
},
|
|
48424
|
+
"responses": {
|
|
48425
|
+
"200": {
|
|
48426
|
+
"description": "Active shares after the change",
|
|
48427
|
+
"content": {
|
|
48428
|
+
"application/json": {
|
|
48429
|
+
"schema": {
|
|
48430
|
+
"$ref": "#/components/schemas/SessionShares"
|
|
48431
|
+
}
|
|
48432
|
+
}
|
|
48433
|
+
}
|
|
48434
|
+
},
|
|
48435
|
+
"400": {
|
|
48436
|
+
"description": "Validation error or unknown user",
|
|
48437
|
+
"content": {
|
|
48438
|
+
"application/json": {
|
|
48439
|
+
"schema": {
|
|
48440
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48441
|
+
}
|
|
48442
|
+
}
|
|
48443
|
+
}
|
|
48444
|
+
},
|
|
48445
|
+
"401": {
|
|
48446
|
+
"description": "Unauthorized",
|
|
48447
|
+
"content": {
|
|
48448
|
+
"application/json": {
|
|
48449
|
+
"schema": {
|
|
48450
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48451
|
+
}
|
|
48452
|
+
}
|
|
48453
|
+
}
|
|
48454
|
+
},
|
|
48455
|
+
"403": {
|
|
48456
|
+
"description": "Only the session owner can share it",
|
|
48457
|
+
"content": {
|
|
48458
|
+
"application/json": {
|
|
48459
|
+
"schema": {
|
|
48460
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48461
|
+
}
|
|
48462
|
+
}
|
|
48463
|
+
}
|
|
48464
|
+
},
|
|
48465
|
+
"404": {
|
|
48466
|
+
"description": "Root task not found",
|
|
48467
|
+
"content": {
|
|
48468
|
+
"application/json": {
|
|
48469
|
+
"schema": {
|
|
48470
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48471
|
+
}
|
|
48472
|
+
}
|
|
48473
|
+
}
|
|
48474
|
+
},
|
|
48475
|
+
"409": {
|
|
48476
|
+
"description": "The session has no owner, so it is already open to everyone",
|
|
48477
|
+
"content": {
|
|
48478
|
+
"application/json": {
|
|
48479
|
+
"schema": {
|
|
48480
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
48481
|
+
}
|
|
48482
|
+
}
|
|
48483
|
+
}
|
|
48484
|
+
}
|
|
48485
|
+
}
|
|
48486
|
+
}
|
|
48487
|
+
},
|
|
47659
48488
|
"/api/skills": {
|
|
47660
48489
|
"get": {
|
|
47661
48490
|
"summary": "List skills with optional filters",
|
|
@@ -54491,101 +55320,6 @@
|
|
|
54491
55320
|
}
|
|
54492
55321
|
}
|
|
54493
55322
|
},
|
|
54494
|
-
"/api/used-by": {
|
|
54495
|
-
"post": {
|
|
54496
|
-
"summary": "Grant or revoke the 'used by' logo consent",
|
|
54497
|
-
"description": "Records whether agent-swarm.dev may show this organization's logo as a company that uses Agent Swarm. Sends the organization name and website to the telemetry proxy, where a person approves each logo by hand. An explicit admin action, so it is not gated by the telemetry opt-out.",
|
|
54498
|
-
"tags": [
|
|
54499
|
-
"Telemetry"
|
|
54500
|
-
],
|
|
54501
|
-
"security": [
|
|
54502
|
-
{
|
|
54503
|
-
"bearerAuth": []
|
|
54504
|
-
}
|
|
54505
|
-
],
|
|
54506
|
-
"requestBody": {
|
|
54507
|
-
"content": {
|
|
54508
|
-
"application/json": {
|
|
54509
|
-
"schema": {
|
|
54510
|
-
"type": "object",
|
|
54511
|
-
"properties": {
|
|
54512
|
-
"granted": {
|
|
54513
|
-
"type": "boolean"
|
|
54514
|
-
}
|
|
54515
|
-
},
|
|
54516
|
-
"required": [
|
|
54517
|
-
"granted"
|
|
54518
|
-
]
|
|
54519
|
-
}
|
|
54520
|
-
}
|
|
54521
|
-
}
|
|
54522
|
-
},
|
|
54523
|
-
"responses": {
|
|
54524
|
-
"200": {
|
|
54525
|
-
"description": "Consent recorded",
|
|
54526
|
-
"content": {
|
|
54527
|
-
"application/json": {
|
|
54528
|
-
"schema": {
|
|
54529
|
-
"type": "object",
|
|
54530
|
-
"properties": {
|
|
54531
|
-
"granted": {
|
|
54532
|
-
"type": "boolean"
|
|
54533
|
-
},
|
|
54534
|
-
"changedAt": {
|
|
54535
|
-
"type": "string"
|
|
54536
|
-
}
|
|
54537
|
-
},
|
|
54538
|
-
"required": [
|
|
54539
|
-
"granted",
|
|
54540
|
-
"changedAt"
|
|
54541
|
-
]
|
|
54542
|
-
}
|
|
54543
|
-
}
|
|
54544
|
-
}
|
|
54545
|
-
},
|
|
54546
|
-
"400": {
|
|
54547
|
-
"description": "Organization name or website is not set (a revoke falls back to the identity of the last grant)",
|
|
54548
|
-
"content": {
|
|
54549
|
-
"application/json": {
|
|
54550
|
-
"schema": {
|
|
54551
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
54552
|
-
}
|
|
54553
|
-
}
|
|
54554
|
-
}
|
|
54555
|
-
},
|
|
54556
|
-
"401": {
|
|
54557
|
-
"description": "Unauthorized",
|
|
54558
|
-
"content": {
|
|
54559
|
-
"application/json": {
|
|
54560
|
-
"schema": {
|
|
54561
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
54562
|
-
}
|
|
54563
|
-
}
|
|
54564
|
-
}
|
|
54565
|
-
},
|
|
54566
|
-
"403": {
|
|
54567
|
-
"description": "Only a config admin can change the consent",
|
|
54568
|
-
"content": {
|
|
54569
|
-
"application/json": {
|
|
54570
|
-
"schema": {
|
|
54571
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
54572
|
-
}
|
|
54573
|
-
}
|
|
54574
|
-
}
|
|
54575
|
-
},
|
|
54576
|
-
"502": {
|
|
54577
|
-
"description": "The telemetry proxy did not accept the consent",
|
|
54578
|
-
"content": {
|
|
54579
|
-
"application/json": {
|
|
54580
|
-
"schema": {
|
|
54581
|
-
"$ref": "#/components/schemas/ErrorResponse"
|
|
54582
|
-
}
|
|
54583
|
-
}
|
|
54584
|
-
}
|
|
54585
|
-
}
|
|
54586
|
-
}
|
|
54587
|
-
}
|
|
54588
|
-
},
|
|
54589
55323
|
"/api/fleet-benchmark": {
|
|
54590
55324
|
"get": {
|
|
54591
55325
|
"summary": "Compare this swarm with similar swarms",
|