@desplega.ai/agent-swarm 2.2.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-k0vwfyvn.js → acp-adapter-kedstxx6.js} +6 -6
- package/dist/{actions-w4pnb8vz.js → actions-vget6r1k.js} +18 -16
- package/dist/{amp-adapter-0cmxb2t5.js → amp-adapter-xeb5mktv.js} +2 -2
- package/dist/{app-zneem7g9.js → app-mqap8t8m.js} +3 -3
- package/dist/{assistant-wbzd2rnr.js → assistant-h0gv97mv.js} +20 -18
- package/dist/{boot-reembed-4kx69j3g.js → boot-reembed-qr8a894z.js} +1 -1
- package/dist/{boot-reembed-db0wwgy1.js → boot-reembed-rj85jjhw.js} +1 -1
- package/dist/{boot-scrub-sweep-tfv4d3mm.js → boot-scrub-sweep-eyfvn6v9.js} +3 -3
- package/dist/{boot-seeds-w2hmkxn5.js → boot-seeds-xs9a8dx1.js} +4 -4
- package/dist/{claude-adapter-5qrc2paq.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-7ra32em4.js → claude-managed-setup-gkfgks4j.js} +1 -1
- package/dist/{claude-sdk-session-cd02gc76.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-8c1m9mhy.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-vmbakbq0.js → cli-2rwet3r7.js} +1 -1
- package/dist/{cli-azs9bhc5.js → cli-3wjs22x3.js} +2 -2
- package/dist/{cli-tba8fxf9.js → cli-4fhyq711.js} +45 -36
- package/dist/{cli-ak4c12mh.js → cli-5ff2sjyt.js} +1 -1
- package/dist/{cli-6q7pyd3k.js → cli-5s5hx57y.js} +5 -3
- package/dist/{cli-h23mr2s6.js → cli-6ftrrwm1.js} +9 -371
- package/dist/{cli-9ac0mkg5.js → cli-8b9wvjps.js} +1 -1
- package/dist/cli-8cxkw1f5.js +382 -0
- package/dist/{cli-xhgtay7w.js → cli-8rwvksbc.js} +2 -2
- package/dist/{cli-e09hj50q.js → cli-8wkb09q5.js} +11 -11
- package/dist/{cli-ksrphveb.js → cli-a1esmmee.js} +14 -2
- package/dist/{cli-xnp2vkx7.js → cli-avmqhatn.js} +7 -7
- package/dist/{cli-xx13gqf3.js → cli-b80a1100.js} +1 -1
- package/dist/{cli-z1hh99j0.js → cli-bfc3k1x5.js} +3 -3
- package/dist/{cli-0k9rcwfy.js → cli-bhwa8rzc.js} +33 -15
- 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-jrk8mj0t.js → cli-ecshf504.js} +2 -2
- package/dist/{cli-raejy0mp.js → cli-eqgfs202.js} +1 -1
- package/dist/{cli-ppapy34w.js → cli-f3nx1h8z.js} +2 -2
- package/dist/{cli-c9vrwcpb.js → cli-ffbrkh1r.js} +74 -35
- package/dist/{cli-mnry16kh.js → cli-kk2r80n5.js} +4 -4
- package/dist/{cli-c0dpzwnx.js → cli-kz116kvw.js} +3 -3
- package/dist/{cli-e5y285rg.js → cli-mvg2hf8p.js} +4 -4
- package/dist/{cli-2jm992rm.js → cli-mz1ezzzh.js} +2 -2
- package/dist/{cli-dw0njd9q.js → cli-nme7wery.js} +6 -6
- package/dist/{cli-mvsfbbgq.js → cli-nrrg0fvy.js} +18 -4
- package/dist/{cli-8jtrekpy.js → cli-p1m2b6gc.js} +7 -7
- package/dist/{cli-4c7k75rq.js → cli-rg7ntypm.js} +378 -84
- package/dist/{cli-z3dk189k.js → cli-rsd7ga7v.js} +10 -8
- package/dist/{cli-etvn5ej2.js → cli-sppc0cmw.js} +1 -1
- package/dist/{cli-8w65vwee.js → cli-tg9ksbn8.js} +1 -1
- package/dist/{cli-th8krqbf.js → cli-tgvpmnwz.js} +2 -2
- package/dist/{cli-hwc4a9xm.js → cli-tj4j2ts4.js} +6 -6
- package/dist/{cli-jhhb2v9n.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-5ks6x36q.js → cli-x1p5dhq2.js} +3 -3
- package/dist/{cli-bddxamg7.js → cli-x719j3vs.js} +220 -629
- package/dist/{cli-ztcxv5nv.js → cli-xfe63zx3.js} +1 -1
- package/dist/{cli-q6gw45wj.js → cli-ywyrffff.js} +1 -1
- package/dist/{cli-p46xdr1m.js → cli-zvze9rbm.js} +1 -1
- package/dist/cli.js +15 -15
- package/dist/{codex-adapter-m0fx3v3s.js → codex-adapter-pp2gq8gr.js} +3 -3
- package/dist/{codex-hook-x6tm6y5m.js → codex-hook-qwzccd64.js} +1 -1
- package/dist/{codex-session-runner-j9m2gfyy.js → codex-session-runner-0vzn09t8.js} +3 -3
- package/dist/{commands-ktnqwrv4.js → commands-psqhkttb.js} +2 -2
- package/dist/{controller-nex2he8v.js → controller-t20vz2k8.js} +2 -2
- package/dist/{controllers-connect-6yhwqv9v.js → controllers-connect-gkxmqw9d.js} +24 -20
- package/dist/{cursor-adapter-02s5ekva.js → cursor-adapter-3v542qe5.js} +1 -1
- package/dist/{db-jvr86v7f.js → db-2xbyenjr.js} +2 -2
- package/dist/{db-19tw9r5s.js → db-nc1rd869.js} +3 -2
- package/dist/{dispatcher-d3mnsg2y.js → dispatcher-ewceb8ts.js} +17 -15
- package/dist/{dsh-adapter-63rvej88.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-44cwer32.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-ysp907f6.js → grok-adapter-vj88xr23.js} +7 -7
- package/dist/handlers-zbs90bny.js +39 -0
- package/dist/{heartbeat-2etacsqq.js → heartbeat-t2m9r3wa.js} +20 -18
- package/dist/{hook-mzxxs5n2.js → hook-8femx1bg.js} +4 -4
- package/dist/{hook-3kvmax6d.js → hook-xa677f8r.js} +5 -5
- package/dist/{http-fn978m0g.js → http-xpmmq028.js} +940 -269
- package/dist/{index-e4tsa1h7.js → index-8pwc1jc8.js} +17 -15
- package/dist/{index-w2wr89xd.js → index-cdzyfrsp.js} +1 -1
- package/dist/{index-1r8hw4vd.js → index-dg2tmj99.js} +17 -15
- package/dist/index-nxa6me0q.js +41 -0
- package/dist/{index-039x2sag.js → index-s7ckdajq.js} +42 -14
- 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-d4nzs76x.js → keepalive-3nr4st3r.js} +3 -3
- package/dist/{lead-8h5n9k5f.js → lead-td8h2sfn.js} +33 -31
- package/dist/{maintenance-ea6jfw42.js → maintenance-verwpe2c.js} +1 -1
- package/dist/{oauth-refresh-sweep-3f25djq3.js → oauth-refresh-sweep-9q2t0y3q.js} +2 -2
- package/dist/{onboard-pvk7hdb2.js → onboard-aytqedmq.js} +2 -2
- package/dist/{opencode-adapter-eeesgfqk.js → opencode-adapter-f4hryjny.js} +4 -4
- package/dist/{otel-impl-qb7nhgdp.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-6ehwkcmp.js → pricing-refresh-5nvme3sm.js} +3 -3
- package/dist/{rbac-roles-km0f9cmm.js → rbac-roles-pd8c26m1.js} +5 -3
- package/dist/{rbac-roles-9648nh00.js → rbac-roles-vbpy21mg.js} +2 -2
- package/dist/{render-v2-xkze1wef.js → render-v2-7nqgvk2q.js} +3 -3
- package/dist/{resume-tq0bbvt5.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-rnrazxvd.js → setup-n39szm6b.js} +1 -1
- package/dist/{virtual-modules-wzk6jf3a.js → virtual-modules-wyp2k6z3.js} +2 -2
- package/dist/{work-objects-e75q2rqs.js → work-objects-jem2fre0.js} +20 -18
- package/dist/{worker-4ww4hjef.js → worker-wr6xgfr2.js} +33 -31
- package/openapi.json +1011 -115
- package/package.json +2 -2
- package/src/apps/action-caller.ts +6 -0
- package/src/apps/script-types.ts +16 -3
- package/src/be/asset-key-audit.ts +4 -13
- 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 +149 -66
- package/src/be/events.ts +11 -0
- package/src/be/migrations/227_inbox_item_state_last_read_at.sql +1 -0
- package/src/be/migrations/230_session_shares.sql +23 -0
- package/src/be/rbac-roles.ts +2 -0
- package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +22 -4
- 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/heartbeat/heartbeat.ts +25 -7
- 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/assets.ts +26 -4
- 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/inbox-state.ts +58 -8
- 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/kv-reserved-namespaces.ts +1 -0
- 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/asset-key-api.test.ts +128 -0
- package/src/tests/asset-key-invariants.test.ts +179 -3
- package/src/tests/asset-key-migration.test.ts +35 -0
- 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/heartbeat-checklist.test.ts +88 -0
- package/src/tests/heartbeat-jev-gate.test.ts +394 -10
- package/src/tests/inbox-state.test.ts +167 -0
- package/src/tests/kv-tool.test.ts +15 -0
- 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/script-connections.test.ts +2 -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 +37 -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/templates/skills/code-quality/content.md +2 -2
- package/templates/skills/pages/content.md +4 -0
- package/templates/skills/swarm-scripts/SKILL.md +6 -0
- package/templates/skills/swarm-scripts/content.md +6 -0
- package/dist/handlers-t5pbabwf.js +0 -37
- package/dist/index-qyjbb7br.js +0 -39
- package/dist/{cli-n5mrsg0f.js → cli-60cgh1rv.js} +3 -3
- /package/dist/{cli-j0v75y13.js → cli-y83zk5sb.js} +0 -0
|
@@ -49,6 +49,141 @@ export interface paths {
|
|
|
49
49
|
patch?: never;
|
|
50
50
|
trace?: never;
|
|
51
51
|
};
|
|
52
|
+
"/v1/used-by": {
|
|
53
|
+
parameters: {
|
|
54
|
+
query?: never;
|
|
55
|
+
header?: never;
|
|
56
|
+
path?: never;
|
|
57
|
+
cookie?: never;
|
|
58
|
+
};
|
|
59
|
+
get?: never;
|
|
60
|
+
put?: never;
|
|
61
|
+
/**
|
|
62
|
+
* Record a "used by" logo consent change
|
|
63
|
+
* @description Stores one grant or revoke of an install's consent to show its org's logo
|
|
64
|
+
* on agent-swarm.dev, then posts it to the feedback Slack channel. Nothing is
|
|
65
|
+
* published automatically: a human approves each logo by hand. Called
|
|
66
|
+
* server-to-server by the agent-swarm API; there is no read endpoint. The
|
|
67
|
+
* JSON body must not exceed 4 KB.
|
|
68
|
+
*/
|
|
69
|
+
post: operations["submitUsedByConsent"];
|
|
70
|
+
delete?: never;
|
|
71
|
+
options?: never;
|
|
72
|
+
head?: never;
|
|
73
|
+
patch?: never;
|
|
74
|
+
trace?: never;
|
|
75
|
+
};
|
|
76
|
+
"/v1/logo": {
|
|
77
|
+
parameters: {
|
|
78
|
+
query?: never;
|
|
79
|
+
header?: never;
|
|
80
|
+
path?: never;
|
|
81
|
+
cookie?: never;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Fetch an org logo by website hostname
|
|
85
|
+
* @description Returns a 128 px PNG logo for `domain`, fetched from logo.dev with a key held
|
|
86
|
+
* only by this service, so dashboards (self-hosted included) can show their
|
|
87
|
+
* org's logo without the key reaching their config or UI bundle. Unknown
|
|
88
|
+
* domains get logo.dev's generated monogram. Answers are cached in memory for a
|
|
89
|
+
* day (a 404 for an hour), and browsers may cache the image for a day. Rate
|
|
90
|
+
* limited per IP: a burst of 60, then one per second.
|
|
91
|
+
*/
|
|
92
|
+
get: operations["getOrgLogo"];
|
|
93
|
+
put?: never;
|
|
94
|
+
post?: never;
|
|
95
|
+
delete?: never;
|
|
96
|
+
options?: never;
|
|
97
|
+
head?: never;
|
|
98
|
+
patch?: never;
|
|
99
|
+
trace?: never;
|
|
100
|
+
};
|
|
101
|
+
"/v1/fleet/benchmarks": {
|
|
102
|
+
parameters: {
|
|
103
|
+
query?: never;
|
|
104
|
+
header?: never;
|
|
105
|
+
path?: never;
|
|
106
|
+
cookie?: never;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Fleet percentiles for tasks per week and task success rate
|
|
110
|
+
* @description Percentiles over production agent-swarm installs with at least 10 finished
|
|
111
|
+
* tasks in the last 30 days, overall and by agent count (`1`, `2-5`, `6+`).
|
|
112
|
+
* Internal, QA, test and E2B installs are excluded. Aggregates only: no install
|
|
113
|
+
* ID or org name, and any bucket or metric with fewer than 20 installs is
|
|
114
|
+
* omitted. Recomputed hourly from `raw_events`; the request carries no install
|
|
115
|
+
* ID. Called server to server by agent-swarm API servers, so the response sends
|
|
116
|
+
* no CORS headers. Rate limited per IP: a burst of 10, then 10 per minute.
|
|
117
|
+
*/
|
|
118
|
+
get: operations["getFleetBenchmarks"];
|
|
119
|
+
put?: never;
|
|
120
|
+
post?: never;
|
|
121
|
+
delete?: never;
|
|
122
|
+
options?: never;
|
|
123
|
+
head?: never;
|
|
124
|
+
patch?: never;
|
|
125
|
+
trace?: never;
|
|
126
|
+
};
|
|
127
|
+
"/v1/ranking": {
|
|
128
|
+
parameters: {
|
|
129
|
+
query?: never;
|
|
130
|
+
header?: never;
|
|
131
|
+
path?: never;
|
|
132
|
+
cookie?: never;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Opted-in agent-swarm installs ranked by tokens
|
|
136
|
+
* @description Copies OpenRouter's app-ranking category response
|
|
137
|
+
* (`/api/frontend/v1/apps/marketplace/category`) key for key, so an
|
|
138
|
+
* OpenRouter-style client reads it unchanged, and adds the other OpenRouter
|
|
139
|
+
* app pages' fields under their OpenRouter names. Without `domain`:
|
|
140
|
+
* `chart` and `titleMap` (the category chart, stacked by app) and
|
|
141
|
+
* `trending` (the index page's fastest growing apps). With `domain`: `chart`
|
|
142
|
+
* stacked by model, `totalTokens`, `rank`, `modelsUsed` and
|
|
143
|
+
* `appModelAnalytics` (the app page). Tokens are the only metric served:
|
|
144
|
+
* `total_requests` is always 0. An install is listed when its
|
|
145
|
+
* `community/ranking/<domain>.json` file is merged into agent-swarm `main`, it
|
|
146
|
+
* sent a valid `ranking.opted_in` listing with that file's claim first, it has
|
|
147
|
+
* not opted out since, it is not an internal, test, E2B or non-production
|
|
148
|
+
* install, and its bound `ranking.usage` has tokens in the period. Recomputed
|
|
149
|
+
* hourly. Called server to server by the landing, so the response sends no
|
|
150
|
+
* CORS headers. Rate limited per IP: a burst of 10, then 10 per minute.
|
|
151
|
+
*/
|
|
152
|
+
get: operations["getRanking"];
|
|
153
|
+
put?: never;
|
|
154
|
+
post?: never;
|
|
155
|
+
delete?: never;
|
|
156
|
+
options?: never;
|
|
157
|
+
head?: never;
|
|
158
|
+
patch?: never;
|
|
159
|
+
trace?: never;
|
|
160
|
+
};
|
|
161
|
+
"/v1/ranking/verify": {
|
|
162
|
+
parameters: {
|
|
163
|
+
query?: never;
|
|
164
|
+
header?: never;
|
|
165
|
+
path?: never;
|
|
166
|
+
cookie?: never;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Check a proposed ranking entry for the agent-swarm PR check
|
|
170
|
+
* @description Reads the telemetry store live (no cache) and reports whether an install
|
|
171
|
+
* sent a valid `ranking.opted_in` listing with this claim and domain first,
|
|
172
|
+
* has not opted out since, is not excluded, sent telemetry in the last 7
|
|
173
|
+
* days, and still declares this domain as its website. `listing` shows the
|
|
174
|
+
* reviewer what the ranking would display; it never includes the claim.
|
|
175
|
+
* Sends no CORS headers. Rate limited per IP: a burst of 10, then 10 per
|
|
176
|
+
* minute.
|
|
177
|
+
*/
|
|
178
|
+
get: operations["verifyRankingEntry"];
|
|
179
|
+
put?: never;
|
|
180
|
+
post?: never;
|
|
181
|
+
delete?: never;
|
|
182
|
+
options?: never;
|
|
183
|
+
head?: never;
|
|
184
|
+
patch?: never;
|
|
185
|
+
trace?: never;
|
|
186
|
+
};
|
|
52
187
|
}
|
|
53
188
|
export type webhooks = Record<string, never>;
|
|
54
189
|
export interface components {
|
|
@@ -225,6 +360,26 @@ export interface components {
|
|
|
225
360
|
*/
|
|
226
361
|
submitted_at: string;
|
|
227
362
|
};
|
|
363
|
+
UsedByConsent: {
|
|
364
|
+
/** @description Agent-swarm installation identifier. Omit it when the install has none (telemetry off). */
|
|
365
|
+
install_id?: string | null;
|
|
366
|
+
org_name: string;
|
|
367
|
+
/** @description Lowercase hostname the admin declared, without scheme, `www.`, path or port. */
|
|
368
|
+
org_website: string;
|
|
369
|
+
/** @description The admin's email domain. The Slack post says whether it matches `org_website`. */
|
|
370
|
+
org_domain?: string | null;
|
|
371
|
+
/** @description true grants consent, false revokes it. */
|
|
372
|
+
granted: boolean;
|
|
373
|
+
/**
|
|
374
|
+
* Format: date-time
|
|
375
|
+
* @description When the admin changed the setting (RFC3339).
|
|
376
|
+
*/
|
|
377
|
+
changed_at: string;
|
|
378
|
+
};
|
|
379
|
+
UsedByAcceptedResponse: {
|
|
380
|
+
/** @constant */
|
|
381
|
+
status: "accepted";
|
|
382
|
+
};
|
|
228
383
|
FeedbackAcceptedResponse: {
|
|
229
384
|
/** @constant */
|
|
230
385
|
status: "accepted";
|
|
@@ -242,6 +397,144 @@ export interface components {
|
|
|
242
397
|
/** @description Human-readable detail, such as the offending property name. */
|
|
243
398
|
message: string;
|
|
244
399
|
};
|
|
400
|
+
FleetBenchmarks: {
|
|
401
|
+
/** @enum {string} */
|
|
402
|
+
window: "30d";
|
|
403
|
+
/** Format: date-time */
|
|
404
|
+
generatedAt: string;
|
|
405
|
+
/** @description k-anonymity floor. Buckets and metrics below it are omitted. */
|
|
406
|
+
minInstallsPerBucket: number;
|
|
407
|
+
/** @description An install needs this many completed or failed tasks in the window to count. */
|
|
408
|
+
minFinishedTasks: number;
|
|
409
|
+
overall: components["schemas"]["FleetBenchmarkBlock"];
|
|
410
|
+
/** @description Keyed by `1`, `2-5` or `6+`. A bucket with fewer than `minInstallsPerBucket` installs is absent. */
|
|
411
|
+
byAgentCount: {
|
|
412
|
+
[key: string]: components["schemas"]["FleetBenchmarkBlock"];
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
FleetBenchmarkBlock: {
|
|
416
|
+
installs: number;
|
|
417
|
+
tasksPerWeek: components["schemas"]["FleetMetric"];
|
|
418
|
+
taskSuccessRate: components["schemas"]["FleetMetric"];
|
|
419
|
+
};
|
|
420
|
+
/** @description Linear-interpolated percentiles. Below the floor, only `n` and `omitted` are present. */
|
|
421
|
+
FleetMetric: {
|
|
422
|
+
/** @description Installs contributing to this metric. */
|
|
423
|
+
n: number;
|
|
424
|
+
p25?: number;
|
|
425
|
+
p50?: number;
|
|
426
|
+
p75?: number;
|
|
427
|
+
p90?: number;
|
|
428
|
+
omitted?: string;
|
|
429
|
+
};
|
|
430
|
+
RankingResponse: {
|
|
431
|
+
data: {
|
|
432
|
+
apps: components["schemas"]["RankingRow"][];
|
|
433
|
+
/** @description The `group` query value, or `agent-swarm` for every category. */
|
|
434
|
+
group: string;
|
|
435
|
+
/** @description The `subcategory` query value, or null. */
|
|
436
|
+
subcategory: string | null;
|
|
437
|
+
/** @description Subcategories in the group with 3 or more listed entries in the period, most entries first. */
|
|
438
|
+
subcategories: string[];
|
|
439
|
+
/** @description Subcategories in the group with 1 or 2 listed entries in the period. */
|
|
440
|
+
lowCountSubcategories: string[];
|
|
441
|
+
chart?: components["schemas"]["RankingChart"];
|
|
442
|
+
/** @description Without `domain`. The title of every `app_id` key in `chart`, like OpenRouter's category-chart `titleMap`. */
|
|
443
|
+
titleMap?: {
|
|
444
|
+
[key: string]: string;
|
|
445
|
+
};
|
|
446
|
+
/** @description Without `domain`. Listed apps (within `group` and `subcategory`) whose period tokens grew against the previous period of the same length, most tokens gained first. An app with no tokens in the previous period has no baseline and is left out. */
|
|
447
|
+
trending?: components["schemas"]["RankingTrending"][];
|
|
448
|
+
/** @description With `domain`. Every counted day's tokens (held days excluded). */
|
|
449
|
+
totalTokens?: number;
|
|
450
|
+
/** @description With `domain`. The daily global rank (`period=day`), or null with no tokens today. */
|
|
451
|
+
rank?: number | null;
|
|
452
|
+
/** @description With `domain`. Models with tokens in the last 30 days, `unknown` included; may exceed the length of `appModelAnalytics`. */
|
|
453
|
+
modelsUsed?: number;
|
|
454
|
+
/** @description With `domain`. Tokens per model over the last 30 days, most first. */
|
|
455
|
+
appModelAnalytics?: components["schemas"]["RankingModelAnalytics"][];
|
|
456
|
+
};
|
|
457
|
+
};
|
|
458
|
+
RankingTrending: {
|
|
459
|
+
appAnalytics: components["schemas"]["RankingRow"];
|
|
460
|
+
/** @description Period tokens against the previous period of the same length, as a rounded percent increase. */
|
|
461
|
+
growthPercent: number;
|
|
462
|
+
};
|
|
463
|
+
RankingModelAnalytics: {
|
|
464
|
+
/**
|
|
465
|
+
* Format: date
|
|
466
|
+
* @description Today (UTC), the end of the 30-day window.
|
|
467
|
+
*/
|
|
468
|
+
date: string;
|
|
469
|
+
/** @description The `ranking.usage` model, or `unknown`. */
|
|
470
|
+
model_permaslug: string;
|
|
471
|
+
/** @description Not an OpenRouter field. The provider that carried most of the model's tokens, or `unknown`. */
|
|
472
|
+
provider: string;
|
|
473
|
+
total_tokens: number;
|
|
474
|
+
};
|
|
475
|
+
RankingRow: {
|
|
476
|
+
/** @description Stable entry ID derived from the domain. Never an install or org ID. */
|
|
477
|
+
app_id: number;
|
|
478
|
+
/** @description Sum of `ranking.usage.totalTokens` in the period, as a decimal string like OpenRouter's. */
|
|
479
|
+
total_tokens: string;
|
|
480
|
+
/**
|
|
481
|
+
* @description Always 0. Tokens are the only public metric; the key stays for OpenRouter schema parity.
|
|
482
|
+
* @constant
|
|
483
|
+
*/
|
|
484
|
+
total_requests: 0;
|
|
485
|
+
/** @description Position by tokens among every listed entry in the period, without gaps. A filtered list keeps the global rank. */
|
|
486
|
+
rank: number;
|
|
487
|
+
app: components["schemas"]["RankingApp"];
|
|
488
|
+
};
|
|
489
|
+
RankingApp: {
|
|
490
|
+
id: number;
|
|
491
|
+
/**
|
|
492
|
+
* Format: date-time
|
|
493
|
+
* @description When the entry was first served.
|
|
494
|
+
*/
|
|
495
|
+
created_at: string;
|
|
496
|
+
description: string | null;
|
|
497
|
+
/** @description The listing name (the install's SWARM_ORG_NAME). */
|
|
498
|
+
title: string;
|
|
499
|
+
main_url: string | null;
|
|
500
|
+
origin_url: string | null;
|
|
501
|
+
/** @description The entry's domain. */
|
|
502
|
+
slug: string | null;
|
|
503
|
+
source_code_url: string | null;
|
|
504
|
+
icon_class_name: string;
|
|
505
|
+
/** @description This service's `GET /v1/logo` for the domain. */
|
|
506
|
+
favicon_url: string;
|
|
507
|
+
/** @description The listing subcategory, or empty. */
|
|
508
|
+
categories: string[];
|
|
509
|
+
related_apps: number[];
|
|
510
|
+
};
|
|
511
|
+
/** @description OpenRouter's `{x, ys}` chart, oldest point first. `daily` is today and the 30 days before, with `x` as `YYYY-MM-DD 00:00:00`. `weekly` is Monday-based with `x` as `YYYY-MM-DD`: 52 weeks without `domain`, and from the entry's first week (first served or first counted day) with `domain`, at most 52. With `domain`, `ys` keys are models (the top 10 of the point); without it, `app_id`s as strings (the top 9). The rest sum into `Others`. A series with no tokens is left out, so `ys` can be empty. An unknown or hidden `domain` gets empty `daily` and `weekly`. */
|
|
512
|
+
RankingChart: {
|
|
513
|
+
daily: components["schemas"]["RankingChartPoint"][];
|
|
514
|
+
weekly: components["schemas"]["RankingChartPoint"][];
|
|
515
|
+
};
|
|
516
|
+
RankingChartPoint: {
|
|
517
|
+
x: string;
|
|
518
|
+
ys: {
|
|
519
|
+
[key: string]: number;
|
|
520
|
+
};
|
|
521
|
+
};
|
|
522
|
+
RankingVerification: {
|
|
523
|
+
verified: boolean;
|
|
524
|
+
reasons: ("no_listing" | "opted_out" | "excluded_install" | "telemetry_inactive_7d" | "website_mismatch")[];
|
|
525
|
+
telemetryActive7d: boolean;
|
|
526
|
+
/** @description The install's newest event declares this domain as its org_website. */
|
|
527
|
+
websiteMatchesDomain: boolean;
|
|
528
|
+
listing: components["schemas"]["RankingPublicListing"] | null;
|
|
529
|
+
};
|
|
530
|
+
RankingPublicListing: {
|
|
531
|
+
name: string;
|
|
532
|
+
domain: string;
|
|
533
|
+
category: string;
|
|
534
|
+
subcategory: string | null;
|
|
535
|
+
description: string | null;
|
|
536
|
+
sourceCodeUrl: string | null;
|
|
537
|
+
};
|
|
245
538
|
ProblemResponse: {
|
|
246
539
|
code: string;
|
|
247
540
|
message: string;
|
|
@@ -1075,6 +1368,107 @@ export interface components {
|
|
|
1075
1368
|
product: "agent-swarm";
|
|
1076
1369
|
properties: components["schemas"]["AgentSwarmPopupSubmittedProperties"];
|
|
1077
1370
|
};
|
|
1371
|
+
AgentSwarmRankingOptedInProperties: {
|
|
1372
|
+
/** @description An email channel is configured. */
|
|
1373
|
+
has_email_channel?: boolean;
|
|
1374
|
+
/** @description An embedding API key is configured. */
|
|
1375
|
+
has_embedding_key?: boolean;
|
|
1376
|
+
/** @description A notification channel is configured. */
|
|
1377
|
+
has_notification_channel?: boolean;
|
|
1378
|
+
/** @description A Slack channel is configured. */
|
|
1379
|
+
has_slack_channel?: boolean;
|
|
1380
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.install_method. */
|
|
1381
|
+
install_method?: string;
|
|
1382
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1383
|
+
is_cloud?: boolean;
|
|
1384
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1385
|
+
is_e2b?: boolean;
|
|
1386
|
+
/** @description The stringified telemetry_ranking listing (contracts/telemetry/ranking/listing.v1.schema.json). The ingest also requires its name and domain to equal context.org_name and context.org_website. */
|
|
1387
|
+
listing: string;
|
|
1388
|
+
/** @description agent-swarm version. Legacy key kept during the v1 window; v2 carries context.swarm_version. */
|
|
1389
|
+
swarmVersion?: string;
|
|
1390
|
+
};
|
|
1391
|
+
/** @description An admin opted the install into the public ranking, or the API rebuilt its listing after an org identity change. (emitter: api-server, since 2026-10-18) */
|
|
1392
|
+
AgentSwarmRankingOptedInEvent: {
|
|
1393
|
+
/**
|
|
1394
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1395
|
+
* @enum {string}
|
|
1396
|
+
*/
|
|
1397
|
+
event: "ranking.opted_in";
|
|
1398
|
+
/** @constant */
|
|
1399
|
+
product: "agent-swarm";
|
|
1400
|
+
properties: components["schemas"]["AgentSwarmRankingOptedInProperties"];
|
|
1401
|
+
};
|
|
1402
|
+
AgentSwarmRankingOptedOutProperties: {
|
|
1403
|
+
/** @description The listing domain that leaves the ranking: a lowercase hostname. */
|
|
1404
|
+
domain: string;
|
|
1405
|
+
/** @description An email channel is configured. */
|
|
1406
|
+
has_email_channel?: boolean;
|
|
1407
|
+
/** @description An embedding API key is configured. */
|
|
1408
|
+
has_embedding_key?: boolean;
|
|
1409
|
+
/** @description A notification channel is configured. */
|
|
1410
|
+
has_notification_channel?: boolean;
|
|
1411
|
+
/** @description A Slack channel is configured. */
|
|
1412
|
+
has_slack_channel?: boolean;
|
|
1413
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.install_method. */
|
|
1414
|
+
install_method?: string;
|
|
1415
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1416
|
+
is_cloud?: boolean;
|
|
1417
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1418
|
+
is_e2b?: boolean;
|
|
1419
|
+
/** @description agent-swarm version. Legacy key kept during the v1 window; v2 carries context.swarm_version. */
|
|
1420
|
+
swarmVersion?: string;
|
|
1421
|
+
};
|
|
1422
|
+
/** @description The install left the public ranking: the admin turned it off, or the org name or website was cleared or changed. (emitter: api-server, since 2026-10-18) */
|
|
1423
|
+
AgentSwarmRankingOptedOutEvent: {
|
|
1424
|
+
/**
|
|
1425
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1426
|
+
* @enum {string}
|
|
1427
|
+
*/
|
|
1428
|
+
event: "ranking.opted_out";
|
|
1429
|
+
/** @constant */
|
|
1430
|
+
product: "agent-swarm";
|
|
1431
|
+
properties: components["schemas"]["AgentSwarmRankingOptedOutProperties"];
|
|
1432
|
+
};
|
|
1433
|
+
AgentSwarmRankingUsageProperties: {
|
|
1434
|
+
cacheReadTokens?: number;
|
|
1435
|
+
cacheWriteTokens?: number;
|
|
1436
|
+
/** @description An email channel is configured. */
|
|
1437
|
+
has_email_channel?: boolean;
|
|
1438
|
+
/** @description An embedding API key is configured. */
|
|
1439
|
+
has_embedding_key?: boolean;
|
|
1440
|
+
/** @description A notification channel is configured. */
|
|
1441
|
+
has_notification_channel?: boolean;
|
|
1442
|
+
/** @description A Slack channel is configured. */
|
|
1443
|
+
has_slack_channel?: boolean;
|
|
1444
|
+
inputTokens: number;
|
|
1445
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.install_method. */
|
|
1446
|
+
install_method?: string;
|
|
1447
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1448
|
+
is_cloud?: boolean;
|
|
1449
|
+
/** @description Legacy key kept during the v1 window; v2 carries context.deployment. */
|
|
1450
|
+
is_e2b?: boolean;
|
|
1451
|
+
/** @description The session's model, the same value as session.cost.model. Usage without it, or with a value the ranking does not accept, is shown as the model unknown. */
|
|
1452
|
+
model?: string;
|
|
1453
|
+
outputTokens: number;
|
|
1454
|
+
/** @description The session's provider, the same value as session.cost.provider. Missing means unknown. */
|
|
1455
|
+
provider?: string;
|
|
1456
|
+
/** @description agent-swarm version. Legacy key kept during the v1 window; v2 carries context.swarm_version. */
|
|
1457
|
+
swarmVersion?: string;
|
|
1458
|
+
/** @description inputTokens + cacheReadTokens + cacheWriteTokens + outputTokens. The ranking sums this. */
|
|
1459
|
+
totalTokens: number;
|
|
1460
|
+
};
|
|
1461
|
+
/** @description Token usage of one session on an install opted into the public ranking. Sent next to session.cost. (emitter: worker, since 2026-10-18) */
|
|
1462
|
+
AgentSwarmRankingUsageEvent: {
|
|
1463
|
+
/**
|
|
1464
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1465
|
+
* @enum {string}
|
|
1466
|
+
*/
|
|
1467
|
+
event: "ranking.usage";
|
|
1468
|
+
/** @constant */
|
|
1469
|
+
product: "agent-swarm";
|
|
1470
|
+
properties: components["schemas"]["AgentSwarmRankingUsageProperties"];
|
|
1471
|
+
};
|
|
1078
1472
|
AgentSwarmScheduleErrorProperties: {
|
|
1079
1473
|
consecutiveErrors: number;
|
|
1080
1474
|
/** @description An email channel is configured. */
|
|
@@ -2034,7 +2428,7 @@ export interface components {
|
|
|
2034
2428
|
product: "agent-swarm";
|
|
2035
2429
|
properties: components["schemas"]["AgentSwarmWorkflowStartedProperties"];
|
|
2036
2430
|
};
|
|
2037
|
-
AgentSwarmCatalogEvent: components["schemas"]["AgentSwarmAgentRegisteredEvent"] | components["schemas"]["AgentSwarmCompactionTriggeredEvent"] | components["schemas"]["AgentSwarmFeatureUsedEvent"] | components["schemas"]["AgentSwarmFleetBenchmarkViewedEvent"] | components["schemas"]["AgentSwarmIntegrationConnectedEvent"] | components["schemas"]["AgentSwarmLeadCapturedEvent"] | components["schemas"]["AgentSwarmNotificationDismissedEvent"] | components["schemas"]["AgentSwarmNotificationSubmittedEvent"] | components["schemas"]["AgentSwarmNotificationViewedEvent"] | components["schemas"]["AgentSwarmOnboardingCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingDismissedEvent"] | components["schemas"]["AgentSwarmOnboardingFirstTaskCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingStartedEvent"] | components["schemas"]["AgentSwarmOnboardingStepCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingStepFailedEvent"] | components["schemas"]["AgentSwarmOnboardingStepSkippedEvent"] | components["schemas"]["AgentSwarmOnboardingStepViewedEvent"] | components["schemas"]["AgentSwarmOrgProfileUpdatedEvent"] | components["schemas"]["AgentSwarmOrgSnapshotEvent"] | components["schemas"]["AgentSwarmPageViewedEvent"] | components["schemas"]["AgentSwarmPopupDismissedEvent"] | components["schemas"]["AgentSwarmPopupShownEvent"] | components["schemas"]["AgentSwarmPopupSubmittedEvent"] | components["schemas"]["AgentSwarmScheduleErrorEvent"] | components["schemas"]["AgentSwarmScheduleExecutedEvent"] | components["schemas"]["AgentSwarmServerShutdownEvent"] | components["schemas"]["AgentSwarmServerStartedEvent"] | components["schemas"]["AgentSwarmSessionCancelledEvent"] | components["schemas"]["AgentSwarmSessionCostEvent"] | components["schemas"]["AgentSwarmSessionEndedEvent"] | components["schemas"]["AgentSwarmSessionFailureEvent"] | components["schemas"]["AgentSwarmSessionStartedEvent"] | components["schemas"]["AgentSwarmSessionSteeredEvent"] | components["schemas"]["AgentSwarmSkillInvokedEvent"] | components["schemas"]["AgentSwarmTaskCancelledEvent"] | components["schemas"]["AgentSwarmTaskClaimedEvent"] | components["schemas"]["AgentSwarmTaskCompletedEvent"] | components["schemas"]["AgentSwarmTaskCreatedEvent"] | components["schemas"]["AgentSwarmTaskFailedEvent"] | components["schemas"]["AgentSwarmTaskSessionCompletedEvent"] | components["schemas"]["AgentSwarmTaskStartedEvent"] | components["schemas"]["AgentSwarmTaskSupersededEvent"] | components["schemas"]["AgentSwarmTelemetryEnabledEvent"] | components["schemas"]["AgentSwarmUiSessionStartedEvent"] | components["schemas"]["AgentSwarmUsedByConsentChangedEvent"] | components["schemas"]["AgentSwarmWorkflowCompletedEvent"] | components["schemas"]["AgentSwarmWorkflowCreatedEvent"] | components["schemas"]["AgentSwarmWorkflowDeletedEvent"] | components["schemas"]["AgentSwarmWorkflowFailedEvent"] | components["schemas"]["AgentSwarmWorkflowStartedEvent"];
|
|
2431
|
+
AgentSwarmCatalogEvent: components["schemas"]["AgentSwarmAgentRegisteredEvent"] | components["schemas"]["AgentSwarmCompactionTriggeredEvent"] | components["schemas"]["AgentSwarmFeatureUsedEvent"] | components["schemas"]["AgentSwarmFleetBenchmarkViewedEvent"] | components["schemas"]["AgentSwarmIntegrationConnectedEvent"] | components["schemas"]["AgentSwarmLeadCapturedEvent"] | components["schemas"]["AgentSwarmNotificationDismissedEvent"] | components["schemas"]["AgentSwarmNotificationSubmittedEvent"] | components["schemas"]["AgentSwarmNotificationViewedEvent"] | components["schemas"]["AgentSwarmOnboardingCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingDismissedEvent"] | components["schemas"]["AgentSwarmOnboardingFirstTaskCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingStartedEvent"] | components["schemas"]["AgentSwarmOnboardingStepCompletedEvent"] | components["schemas"]["AgentSwarmOnboardingStepFailedEvent"] | components["schemas"]["AgentSwarmOnboardingStepSkippedEvent"] | components["schemas"]["AgentSwarmOnboardingStepViewedEvent"] | components["schemas"]["AgentSwarmOrgProfileUpdatedEvent"] | components["schemas"]["AgentSwarmOrgSnapshotEvent"] | components["schemas"]["AgentSwarmPageViewedEvent"] | components["schemas"]["AgentSwarmPopupDismissedEvent"] | components["schemas"]["AgentSwarmPopupShownEvent"] | components["schemas"]["AgentSwarmPopupSubmittedEvent"] | components["schemas"]["AgentSwarmRankingOptedInEvent"] | components["schemas"]["AgentSwarmRankingOptedOutEvent"] | components["schemas"]["AgentSwarmRankingUsageEvent"] | components["schemas"]["AgentSwarmScheduleErrorEvent"] | components["schemas"]["AgentSwarmScheduleExecutedEvent"] | components["schemas"]["AgentSwarmServerShutdownEvent"] | components["schemas"]["AgentSwarmServerStartedEvent"] | components["schemas"]["AgentSwarmSessionCancelledEvent"] | components["schemas"]["AgentSwarmSessionCostEvent"] | components["schemas"]["AgentSwarmSessionEndedEvent"] | components["schemas"]["AgentSwarmSessionFailureEvent"] | components["schemas"]["AgentSwarmSessionStartedEvent"] | components["schemas"]["AgentSwarmSessionSteeredEvent"] | components["schemas"]["AgentSwarmSkillInvokedEvent"] | components["schemas"]["AgentSwarmTaskCancelledEvent"] | components["schemas"]["AgentSwarmTaskClaimedEvent"] | components["schemas"]["AgentSwarmTaskCompletedEvent"] | components["schemas"]["AgentSwarmTaskCreatedEvent"] | components["schemas"]["AgentSwarmTaskFailedEvent"] | components["schemas"]["AgentSwarmTaskSessionCompletedEvent"] | components["schemas"]["AgentSwarmTaskStartedEvent"] | components["schemas"]["AgentSwarmTaskSupersededEvent"] | components["schemas"]["AgentSwarmTelemetryEnabledEvent"] | components["schemas"]["AgentSwarmUiSessionStartedEvent"] | components["schemas"]["AgentSwarmUsedByConsentChangedEvent"] | components["schemas"]["AgentSwarmWorkflowCompletedEvent"] | components["schemas"]["AgentSwarmWorkflowCreatedEvent"] | components["schemas"]["AgentSwarmWorkflowDeletedEvent"] | components["schemas"]["AgentSwarmWorkflowFailedEvent"] | components["schemas"]["AgentSwarmWorkflowStartedEvent"];
|
|
2038
2432
|
/** @description Every catalogued (product, event) pair with its property schema. Generated from contracts/telemetry/catalog/events.json. */
|
|
2039
2433
|
CatalogEvent: components["schemas"]["AgentFsCatalogEvent"] | components["schemas"]["AgentSwarmCatalogEvent"];
|
|
2040
2434
|
};
|
|
@@ -2212,4 +2606,317 @@ export interface operations {
|
|
|
2212
2606
|
204: components["responses"]["CORSPreflightResponse"];
|
|
2213
2607
|
};
|
|
2214
2608
|
};
|
|
2609
|
+
submitUsedByConsent: {
|
|
2610
|
+
parameters: {
|
|
2611
|
+
query?: never;
|
|
2612
|
+
header?: never;
|
|
2613
|
+
path?: never;
|
|
2614
|
+
cookie?: never;
|
|
2615
|
+
};
|
|
2616
|
+
requestBody: {
|
|
2617
|
+
content: {
|
|
2618
|
+
"application/json": components["schemas"]["UsedByConsent"];
|
|
2619
|
+
};
|
|
2620
|
+
};
|
|
2621
|
+
responses: {
|
|
2622
|
+
/** @description Consent change persisted; the Slack post is best-effort. */
|
|
2623
|
+
202: {
|
|
2624
|
+
headers: {
|
|
2625
|
+
[name: string]: unknown;
|
|
2626
|
+
};
|
|
2627
|
+
content: {
|
|
2628
|
+
"application/json": components["schemas"]["UsedByAcceptedResponse"];
|
|
2629
|
+
};
|
|
2630
|
+
};
|
|
2631
|
+
/** @description Request body is invalid JSON or failed field validation. */
|
|
2632
|
+
400: {
|
|
2633
|
+
headers: {
|
|
2634
|
+
[name: string]: unknown;
|
|
2635
|
+
};
|
|
2636
|
+
content: {
|
|
2637
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2638
|
+
};
|
|
2639
|
+
};
|
|
2640
|
+
/** @description Request body exceeds 4 KB. */
|
|
2641
|
+
413: {
|
|
2642
|
+
headers: {
|
|
2643
|
+
[name: string]: unknown;
|
|
2644
|
+
};
|
|
2645
|
+
content: {
|
|
2646
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2647
|
+
};
|
|
2648
|
+
};
|
|
2649
|
+
/** @description The source IP exceeded 5 requests per minute. */
|
|
2650
|
+
429: {
|
|
2651
|
+
headers: {
|
|
2652
|
+
/** @description Seconds to wait before retrying. */
|
|
2653
|
+
"Retry-After"?: string;
|
|
2654
|
+
[name: string]: unknown;
|
|
2655
|
+
};
|
|
2656
|
+
content: {
|
|
2657
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2658
|
+
};
|
|
2659
|
+
};
|
|
2660
|
+
/** @description The consent change could not be persisted. */
|
|
2661
|
+
500: {
|
|
2662
|
+
headers: {
|
|
2663
|
+
[name: string]: unknown;
|
|
2664
|
+
};
|
|
2665
|
+
content: {
|
|
2666
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2667
|
+
};
|
|
2668
|
+
};
|
|
2669
|
+
/** @description Used-by storage is not configured. */
|
|
2670
|
+
503: {
|
|
2671
|
+
headers: {
|
|
2672
|
+
[name: string]: unknown;
|
|
2673
|
+
};
|
|
2674
|
+
content: {
|
|
2675
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2676
|
+
};
|
|
2677
|
+
};
|
|
2678
|
+
};
|
|
2679
|
+
};
|
|
2680
|
+
getOrgLogo: {
|
|
2681
|
+
parameters: {
|
|
2682
|
+
query: {
|
|
2683
|
+
/** @description Lowercase website hostname, without scheme, `www.`, path or port. IP literals are refused. */
|
|
2684
|
+
domain: string;
|
|
2685
|
+
};
|
|
2686
|
+
header?: never;
|
|
2687
|
+
path?: never;
|
|
2688
|
+
cookie?: never;
|
|
2689
|
+
};
|
|
2690
|
+
requestBody?: never;
|
|
2691
|
+
responses: {
|
|
2692
|
+
/** @description The logo image. */
|
|
2693
|
+
200: {
|
|
2694
|
+
headers: {
|
|
2695
|
+
/** @description `public, max-age=86400`. */
|
|
2696
|
+
"Cache-Control"?: string;
|
|
2697
|
+
[name: string]: unknown;
|
|
2698
|
+
};
|
|
2699
|
+
content: {
|
|
2700
|
+
"image/png": string;
|
|
2701
|
+
};
|
|
2702
|
+
};
|
|
2703
|
+
/** @description `domain` is missing or not a hostname (code `invalid_domain`). */
|
|
2704
|
+
400: {
|
|
2705
|
+
headers: {
|
|
2706
|
+
[name: string]: unknown;
|
|
2707
|
+
};
|
|
2708
|
+
content: {
|
|
2709
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2710
|
+
};
|
|
2711
|
+
};
|
|
2712
|
+
/** @description logo.dev has no image for this domain (code `logo_not_found`). */
|
|
2713
|
+
404: {
|
|
2714
|
+
headers: {
|
|
2715
|
+
[name: string]: unknown;
|
|
2716
|
+
};
|
|
2717
|
+
content: {
|
|
2718
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2719
|
+
};
|
|
2720
|
+
};
|
|
2721
|
+
/** @description The source IP exceeded the logo rate limit. */
|
|
2722
|
+
429: {
|
|
2723
|
+
headers: {
|
|
2724
|
+
/** @description Seconds to wait before retrying. */
|
|
2725
|
+
"Retry-After"?: string;
|
|
2726
|
+
[name: string]: unknown;
|
|
2727
|
+
};
|
|
2728
|
+
content: {
|
|
2729
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2730
|
+
};
|
|
2731
|
+
};
|
|
2732
|
+
/** @description logo.dev failed or returned something other than a raster image under 256 KB (code `logo_upstream_failed`). Not cached. */
|
|
2733
|
+
502: {
|
|
2734
|
+
headers: {
|
|
2735
|
+
[name: string]: unknown;
|
|
2736
|
+
};
|
|
2737
|
+
content: {
|
|
2738
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2739
|
+
};
|
|
2740
|
+
};
|
|
2741
|
+
/** @description `LOGO_DEV_TOKEN` is not set (code `logo_unavailable`). */
|
|
2742
|
+
503: {
|
|
2743
|
+
headers: {
|
|
2744
|
+
[name: string]: unknown;
|
|
2745
|
+
};
|
|
2746
|
+
content: {
|
|
2747
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2748
|
+
};
|
|
2749
|
+
};
|
|
2750
|
+
};
|
|
2751
|
+
};
|
|
2752
|
+
getFleetBenchmarks: {
|
|
2753
|
+
parameters: {
|
|
2754
|
+
query?: {
|
|
2755
|
+
/** @description Only `30d` is supported. */
|
|
2756
|
+
window?: "30d";
|
|
2757
|
+
};
|
|
2758
|
+
header?: never;
|
|
2759
|
+
path?: never;
|
|
2760
|
+
cookie?: never;
|
|
2761
|
+
};
|
|
2762
|
+
requestBody?: never;
|
|
2763
|
+
responses: {
|
|
2764
|
+
/** @description The latest computed benchmark. */
|
|
2765
|
+
200: {
|
|
2766
|
+
headers: {
|
|
2767
|
+
/** @description `public, max-age=3600`. */
|
|
2768
|
+
"Cache-Control"?: string;
|
|
2769
|
+
[name: string]: unknown;
|
|
2770
|
+
};
|
|
2771
|
+
content: {
|
|
2772
|
+
"application/json": components["schemas"]["FleetBenchmarks"];
|
|
2773
|
+
};
|
|
2774
|
+
};
|
|
2775
|
+
/** @description `window` is not `30d` (code `invalid_window`). */
|
|
2776
|
+
400: {
|
|
2777
|
+
headers: {
|
|
2778
|
+
[name: string]: unknown;
|
|
2779
|
+
};
|
|
2780
|
+
content: {
|
|
2781
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2782
|
+
};
|
|
2783
|
+
};
|
|
2784
|
+
/** @description The source IP exceeded the benchmark rate limit. */
|
|
2785
|
+
429: {
|
|
2786
|
+
headers: {
|
|
2787
|
+
/** @description Seconds to wait before retrying. */
|
|
2788
|
+
"Retry-After"?: string;
|
|
2789
|
+
[name: string]: unknown;
|
|
2790
|
+
};
|
|
2791
|
+
content: {
|
|
2792
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2793
|
+
};
|
|
2794
|
+
};
|
|
2795
|
+
/** @description No benchmark has been computed yet, for example right after boot (code `benchmarks_unavailable`). */
|
|
2796
|
+
503: {
|
|
2797
|
+
headers: {
|
|
2798
|
+
[name: string]: unknown;
|
|
2799
|
+
};
|
|
2800
|
+
content: {
|
|
2801
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2802
|
+
};
|
|
2803
|
+
};
|
|
2804
|
+
};
|
|
2805
|
+
};
|
|
2806
|
+
getRanking: {
|
|
2807
|
+
parameters: {
|
|
2808
|
+
query?: {
|
|
2809
|
+
/** @description The last 1, 7 or 30 UTC days, today included. */
|
|
2810
|
+
period?: "day" | "week" | "month";
|
|
2811
|
+
/** @description A category from `contracts/telemetry/ranking/taxonomy.json`. `agent-swarm` or absent means every category. */
|
|
2812
|
+
group?: string;
|
|
2813
|
+
/** @description A subcategory from the taxonomy, inside `group` when one is given. */
|
|
2814
|
+
subcategory?: string;
|
|
2815
|
+
/** @description Return only this entry and its app page fields. An unknown or hidden domain returns an empty `apps` list, an empty chart, zero totals and a null `rank`. */
|
|
2816
|
+
domain?: string;
|
|
2817
|
+
/** @description Accepted for parity with OpenRouter's collector. Only `tokens` is supported. */
|
|
2818
|
+
sortBy?: "tokens";
|
|
2819
|
+
};
|
|
2820
|
+
header?: never;
|
|
2821
|
+
path?: never;
|
|
2822
|
+
cookie?: never;
|
|
2823
|
+
};
|
|
2824
|
+
requestBody?: never;
|
|
2825
|
+
responses: {
|
|
2826
|
+
/** @description The ranking for the period and filters. */
|
|
2827
|
+
200: {
|
|
2828
|
+
headers: {
|
|
2829
|
+
/** @description `public, max-age=3600`. */
|
|
2830
|
+
"Cache-Control"?: string;
|
|
2831
|
+
[name: string]: unknown;
|
|
2832
|
+
};
|
|
2833
|
+
content: {
|
|
2834
|
+
"application/json": components["schemas"]["RankingResponse"];
|
|
2835
|
+
};
|
|
2836
|
+
};
|
|
2837
|
+
/** @description A query value is not allowed (codes `invalid_period`, `invalid_group`, `invalid_subcategory`, `invalid_domain`, `invalid_sort`). */
|
|
2838
|
+
400: {
|
|
2839
|
+
headers: {
|
|
2840
|
+
[name: string]: unknown;
|
|
2841
|
+
};
|
|
2842
|
+
content: {
|
|
2843
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2844
|
+
};
|
|
2845
|
+
};
|
|
2846
|
+
/** @description The source IP exceeded the ranking rate limit. */
|
|
2847
|
+
429: {
|
|
2848
|
+
headers: {
|
|
2849
|
+
/** @description Seconds to wait before retrying. */
|
|
2850
|
+
"Retry-After"?: string;
|
|
2851
|
+
[name: string]: unknown;
|
|
2852
|
+
};
|
|
2853
|
+
content: {
|
|
2854
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2855
|
+
};
|
|
2856
|
+
};
|
|
2857
|
+
/** @description The ranking has not been computed yet, for example right after boot (code `ranking_unavailable`). */
|
|
2858
|
+
503: {
|
|
2859
|
+
headers: {
|
|
2860
|
+
[name: string]: unknown;
|
|
2861
|
+
};
|
|
2862
|
+
content: {
|
|
2863
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2864
|
+
};
|
|
2865
|
+
};
|
|
2866
|
+
};
|
|
2867
|
+
};
|
|
2868
|
+
verifyRankingEntry: {
|
|
2869
|
+
parameters: {
|
|
2870
|
+
query: {
|
|
2871
|
+
domain: string;
|
|
2872
|
+
claim: string;
|
|
2873
|
+
};
|
|
2874
|
+
header?: never;
|
|
2875
|
+
path?: never;
|
|
2876
|
+
cookie?: never;
|
|
2877
|
+
};
|
|
2878
|
+
requestBody?: never;
|
|
2879
|
+
responses: {
|
|
2880
|
+
/** @description The verification result. A failed check is still a 200 with `verified` false. */
|
|
2881
|
+
200: {
|
|
2882
|
+
headers: {
|
|
2883
|
+
/** @description `no-store`. */
|
|
2884
|
+
"Cache-Control"?: string;
|
|
2885
|
+
[name: string]: unknown;
|
|
2886
|
+
};
|
|
2887
|
+
content: {
|
|
2888
|
+
"application/json": components["schemas"]["RankingVerification"];
|
|
2889
|
+
};
|
|
2890
|
+
};
|
|
2891
|
+
/** @description `domain` or `claim` is malformed (codes `invalid_domain`, `invalid_claim`). */
|
|
2892
|
+
400: {
|
|
2893
|
+
headers: {
|
|
2894
|
+
[name: string]: unknown;
|
|
2895
|
+
};
|
|
2896
|
+
content: {
|
|
2897
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2898
|
+
};
|
|
2899
|
+
};
|
|
2900
|
+
/** @description The source IP exceeded the verify rate limit. */
|
|
2901
|
+
429: {
|
|
2902
|
+
headers: {
|
|
2903
|
+
/** @description Seconds to wait before retrying. */
|
|
2904
|
+
"Retry-After"?: string;
|
|
2905
|
+
[name: string]: unknown;
|
|
2906
|
+
};
|
|
2907
|
+
content: {
|
|
2908
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2909
|
+
};
|
|
2910
|
+
};
|
|
2911
|
+
/** @description The telemetry store could not be read (code `ranking_unavailable`). */
|
|
2912
|
+
503: {
|
|
2913
|
+
headers: {
|
|
2914
|
+
[name: string]: unknown;
|
|
2915
|
+
};
|
|
2916
|
+
content: {
|
|
2917
|
+
"application/json": components["schemas"]["ProblemResponse"];
|
|
2918
|
+
};
|
|
2919
|
+
};
|
|
2920
|
+
};
|
|
2921
|
+
};
|
|
2215
2922
|
}
|