@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/src/slack/dm.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { WebClient } from "@slack/web-api";
|
|
2
|
+
|
|
3
|
+
/** Slack user ids start with U (or W on Enterprise Grid); conversation ids start with C, G or D. */
|
|
4
|
+
export function isSlackUserId(id: string): boolean {
|
|
5
|
+
return /^[UW][A-Z0-9]+$/.test(id);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Resolves a user id to the bot's own DM with that user; returns any other id unchanged.
|
|
10
|
+
*
|
|
11
|
+
* chat.postMessage accepts a user id as `channel`, but Slack documents that the
|
|
12
|
+
* message then lands in the user's DM with Slackbot (USLACK), which the bot is
|
|
13
|
+
* not a member of. conversations.replies and chat.postMessage on the returned
|
|
14
|
+
* D id fail with channel_not_found, and human replies never reach the bot as
|
|
15
|
+
* message.im events. conversations.open returns the bot's own IM, which it can
|
|
16
|
+
* read, write, and receives events for.
|
|
17
|
+
*/
|
|
18
|
+
export async function resolveSlackConversationId(
|
|
19
|
+
client: WebClient,
|
|
20
|
+
channelId: string,
|
|
21
|
+
): Promise<string> {
|
|
22
|
+
if (!isSlackUserId(channelId)) return channelId;
|
|
23
|
+
const result = await client.conversations.open({ users: channelId });
|
|
24
|
+
const dmId = result.channel?.id;
|
|
25
|
+
if (!dmId) {
|
|
26
|
+
throw new Error(`conversations.open returned no DM channel for user ${channelId}`);
|
|
27
|
+
}
|
|
28
|
+
return dmId;
|
|
29
|
+
}
|
|
@@ -64,6 +64,9 @@ Common properties, allowed on every event of this product:
|
|
|
64
64
|
| `popup.dismissed` | ui | 2026-10-12 | A dashboard pop-up was closed without submitting. | `method` (later \| close \| escape, required)<br>`popup` (feedback \| org_name \| used_by, required) |
|
|
65
65
|
| `popup.shown` | ui | 2026-10-12 | A dashboard pop-up was shown. Telemetry-gated: never sent while telemetry is off. | `popup` (feedback \| org_name \| used_by, required)<br>`trigger` (task_failed \| tasks_completed \| workflow_completed \| quarterly \| missing_org_name, required) |
|
|
66
66
|
| `popup.submitted` | ui | 2026-10-12 | A dashboard pop-up was submitted. Content stays out of telemetry: only flags for what was filled. | `has_contact` (boolean, required)<br>`has_message` (boolean, required)<br>`popup` (feedback \| org_name \| used_by, required)<br>`score` (integer ≥0) |
|
|
67
|
+
| `ranking.opted_in` | api-server | 2026-10-18 | An admin opted the install into the public ranking, or the API rebuilt its listing after an org identity change. | `listing` (string, required) |
|
|
68
|
+
| `ranking.opted_out` | api-server | 2026-10-18 | The install left the public ranking: the admin turned it off, or the org name or website was cleared or changed. | `domain` (string, required) |
|
|
69
|
+
| `ranking.usage` | worker | 2026-10-18 | Token usage of one session on an install opted into the public ranking. Sent next to session.cost. | `cacheReadTokens` (integer ≥0)<br>`cacheWriteTokens` (integer ≥0)<br>`inputTokens` (integer ≥0, required)<br>`model` (string)<br>`outputTokens` (integer ≥0, required)<br>`provider` (string)<br>`totalTokens` (integer ≥0, required) |
|
|
67
70
|
| `schedule.error` | api-server | 2026-09-30 | A schedule failed to fire. | `consecutiveErrors` (integer, required)<br>`scheduleType` (string, required)<br>`triggeredWorkflows` (boolean, required)<br>`wasRecovered` (boolean, required) |
|
|
68
71
|
| `schedule.executed` | api-server | 2026-09-30 | A schedule fired. | `scheduleType` (string, required)<br>`triggeredWorkflows` (boolean, required)<br>`wasRecovered` (boolean, required) |
|
|
69
72
|
| `server.shutdown` | api-server | 2026-09-30 | The API server shut down. | `sessionsProcessed` (integer, required)<br>`signal` (string, required)<br>`uptimeMs` (integer, required) |
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"repo": "desplega-ai/proxy",
|
|
3
|
-
"commit": "
|
|
3
|
+
"commit": "6260f39827fc57784642b1adc88a43f61d882a6f",
|
|
4
4
|
"files": {
|
|
5
|
-
"types.gen.ts": "
|
|
6
|
-
"catalog.json": "
|
|
7
|
-
"EVENTS.md": "
|
|
5
|
+
"types.gen.ts": "192c6769164a65b6e804ea088b38de6827d34fac26a7ecaccce881a46e98b1a7",
|
|
6
|
+
"catalog.json": "1b2b052f8e43f082e9d6efc2768752d6f194c0cbf0d26ae9c35643cce0e6486c",
|
|
7
|
+
"EVENTS.md": "9451da995ef04a049888715f960a1641bbc52fecb3dce97610c3c391bead1faf",
|
|
8
|
+
"ranking/fixtures/expected.json": "6d506546f48d99a089666bed2a4c08752ebb63a029392c76ffd057e9520adc70",
|
|
9
|
+
"ranking/fixtures/invalid/bad-category.json": "a4c36da6079c36d15e5e8c8e6322fc97b172de015a80a26cee8cab699f666236",
|
|
10
|
+
"ranking/fixtures/invalid/bad-claim.json": "cee14d465545d057cfb61922301a5119187ba17d70efabb16528a5e305d7b065",
|
|
11
|
+
"ranking/fixtures/invalid/blank-description.json": "bf1ae1a834613b67b59f42c158e892448f23268b41f1c851653f25e4843a20b0",
|
|
12
|
+
"ranking/fixtures/invalid/blank-name.json": "7e2cc0156ac5f5d42342a99c38fe0f822b893784f17cdcfa371277c847d83a2e",
|
|
13
|
+
"ranking/fixtures/invalid/description-too-long.json": "c96ed93d014fbdac8c674ab8266d41bca83547d42a0d6dec53f275a0258d1adf",
|
|
14
|
+
"ranking/fixtures/invalid/domain-uppercase.json": "5a3cefdceddf7716d0b6300453a928e122e3ca8fa55493d48666701ca9853ebb",
|
|
15
|
+
"ranking/fixtures/invalid/domain-with-scheme.json": "389f6216e350c8b13f472658b15bc485693a0064cf837a5a66a3f74cef8f26c3",
|
|
16
|
+
"ranking/fixtures/invalid/domain-with-www.json": "b936fd61b21ad5f0219e739686372b16e4e97c2101f239ed3497bb73b0307205",
|
|
17
|
+
"ranking/fixtures/invalid/http-source-url.json": "dcab46205d9113864f31966affe74edb9a9ffe1b2fc9bfb3923997daa30cf651",
|
|
18
|
+
"ranking/fixtures/invalid/missing-description.json": "9a3a3a1104c9e1c3dea17d3a81be87dcd96188d64729e601ecc94848215aea49",
|
|
19
|
+
"ranking/fixtures/invalid/missing-version.json": "81b54c7cae034bd6327b981ec17609e926f5ee03465b589bc997c5ec9ddfc60b",
|
|
20
|
+
"ranking/fixtures/invalid/name-not-string.json": "46af1d97dbe77735a8020dd3c7ea1b67f71d8310cc065341b82173229d6f9487",
|
|
21
|
+
"ranking/fixtures/invalid/name-too-long.json": "8c07bce282182b8e0d9476a70a78863c708ce25d6cce3c994e29c0ec10972255",
|
|
22
|
+
"ranking/fixtures/invalid/not-object.json": "53bd6a73a22019f092e9e6e454936e8ba172201553f897f43f478f4946effaea",
|
|
23
|
+
"ranking/fixtures/invalid/null.json": "38e0b9de817f645c4bec37c0d4a3e58baecccb040f5718dc069a72c7385a0bed",
|
|
24
|
+
"ranking/fixtures/invalid/other-with-subcategory.json": "e5bdaf6982b5bf8fedf08b31c40232808f91884177a88cae5c6ab45489aec892",
|
|
25
|
+
"ranking/fixtures/invalid/oversize.json": "e57b2d8030a3b62b6621fcd81eb90959c22d190d4bfb5ee834086808249ddbe2",
|
|
26
|
+
"ranking/fixtures/invalid/short-claim.json": "051e789f8989b052173ab90a21d6358200f45cadfb729f36081c462ba9a8096b",
|
|
27
|
+
"ranking/fixtures/invalid/subcategory-other-category.json": "3d4ca6ce612ace116e382b08579ee451b2c1cbf93716cb01ad61489b7cecbcd8",
|
|
28
|
+
"ranking/fixtures/invalid/trailing-data.json": "ffb822a83c7a2bfb41c6fdfab375c11232db70e5063ace529a1e4cc7b6be44ff",
|
|
29
|
+
"ranking/fixtures/invalid/unknown-field.json": "c24c57f208523d4de535057a636de1fc5abcad329d514baabb180cbcfdd6a5b9",
|
|
30
|
+
"ranking/fixtures/invalid/unsupported-version.json": "32e5c26b9c646090a3e94822594b208d629e60796c00f964216859ee8d086dc7",
|
|
31
|
+
"ranking/fixtures/invalid/updated-at-not-date.json": "a03111ddc50bcfc818b30e977a4b94c566884b04322e1600e7f70a04c120d5c1",
|
|
32
|
+
"ranking/fixtures/invalid/updated-at-offset.json": "91b78160eb83da274bb3d93fbd812b72f2e648935a31fb5685b32037391e63fc",
|
|
33
|
+
"ranking/fixtures/invalid/wrong-case-field.json": "76c8a019d0aabdd1ca394f3ea552511a98b2458e7b850b75289f88a665682087",
|
|
34
|
+
"ranking/fixtures/valid/category-without-subcategory.json": "45c5b872aec232bdcba791e6ba1a7aba698c825f389e194a38e96ad141f56e5a",
|
|
35
|
+
"ranking/fixtures/valid/full.json": "d6d93c4a6159e814c3f089c69083df700fb19359f127ccd2b71529a058dfe5e9",
|
|
36
|
+
"ranking/fixtures/valid/minimal.json": "de6629d6ee2c4b67598abfc5ec7f6470a93dd9893b07e6e7c93d018cf5445593",
|
|
37
|
+
"ranking/fixtures/valid/padded-text.json": "db71248bf83bb1ffb639208ec467a0228e5c37f604299d09838ab25dc61986a3",
|
|
38
|
+
"ranking/fixtures/valid/unicode-name.json": "01a9d2cc8c5fec128af3eef35bf16696286f28636dac21b9dec107b28fddf743",
|
|
39
|
+
"ranking/listing.v1.schema.json": "1895c57075bbb4b0945e1c5daf813d6c4eaccf1f4480cabd6dc0ce2f0d146776",
|
|
40
|
+
"ranking/taxonomy.json": "c6abe7e437635c9a3c1a82a3477a8757ba6c0cb7cbeae86c8c3d175fb37f402c"
|
|
8
41
|
}
|
|
9
42
|
}
|
|
@@ -1376,6 +1376,75 @@
|
|
|
1376
1376
|
}
|
|
1377
1377
|
}
|
|
1378
1378
|
},
|
|
1379
|
+
{
|
|
1380
|
+
"product": "agent-swarm",
|
|
1381
|
+
"event": "ranking.opted_in",
|
|
1382
|
+
"description": "An admin opted the install into the public ranking, or the API rebuilt its listing after an org identity change.",
|
|
1383
|
+
"since": "2026-10-18",
|
|
1384
|
+
"source": "api-server",
|
|
1385
|
+
"properties": {
|
|
1386
|
+
"listing": {
|
|
1387
|
+
"type": "string",
|
|
1388
|
+
"required": true,
|
|
1389
|
+
"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."
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
"product": "agent-swarm",
|
|
1395
|
+
"event": "ranking.opted_out",
|
|
1396
|
+
"description": "The install left the public ranking: the admin turned it off, or the org name or website was cleared or changed.",
|
|
1397
|
+
"since": "2026-10-18",
|
|
1398
|
+
"source": "api-server",
|
|
1399
|
+
"properties": {
|
|
1400
|
+
"domain": {
|
|
1401
|
+
"type": "string",
|
|
1402
|
+
"required": true,
|
|
1403
|
+
"description": "The listing domain that leaves the ranking: a lowercase hostname."
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
"product": "agent-swarm",
|
|
1409
|
+
"event": "ranking.usage",
|
|
1410
|
+
"description": "Token usage of one session on an install opted into the public ranking. Sent next to session.cost.",
|
|
1411
|
+
"since": "2026-10-18",
|
|
1412
|
+
"source": "worker",
|
|
1413
|
+
"properties": {
|
|
1414
|
+
"totalTokens": {
|
|
1415
|
+
"type": "integer",
|
|
1416
|
+
"required": true,
|
|
1417
|
+
"minimum": 0,
|
|
1418
|
+
"description": "inputTokens + cacheReadTokens + cacheWriteTokens + outputTokens. The ranking sums this."
|
|
1419
|
+
},
|
|
1420
|
+
"inputTokens": {
|
|
1421
|
+
"type": "integer",
|
|
1422
|
+
"required": true,
|
|
1423
|
+
"minimum": 0
|
|
1424
|
+
},
|
|
1425
|
+
"outputTokens": {
|
|
1426
|
+
"type": "integer",
|
|
1427
|
+
"required": true,
|
|
1428
|
+
"minimum": 0
|
|
1429
|
+
},
|
|
1430
|
+
"cacheReadTokens": {
|
|
1431
|
+
"type": "integer",
|
|
1432
|
+
"minimum": 0
|
|
1433
|
+
},
|
|
1434
|
+
"cacheWriteTokens": {
|
|
1435
|
+
"type": "integer",
|
|
1436
|
+
"minimum": 0
|
|
1437
|
+
},
|
|
1438
|
+
"model": {
|
|
1439
|
+
"type": "string",
|
|
1440
|
+
"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."
|
|
1441
|
+
},
|
|
1442
|
+
"provider": {
|
|
1443
|
+
"type": "string",
|
|
1444
|
+
"description": "The session's provider, the same value as session.cost.provider. Missing means unknown."
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
},
|
|
1379
1448
|
{
|
|
1380
1449
|
"product": "agent-fs",
|
|
1381
1450
|
"event": "server.started",
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Every file in valid/ must parse in the proxy (ParseListing) and in agent-swarm (parseTelemetryRanking). Every file in invalid/ must fail in both; the value is the field the proxy names in its invalid_property message. A file's exact bytes are the listing string.",
|
|
3
|
+
"invalid": {
|
|
4
|
+
"bad-claim.json": "listing.claim",
|
|
5
|
+
"short-claim.json": "listing.claim",
|
|
6
|
+
"missing-description.json": "listing.description",
|
|
7
|
+
"unknown-field.json": "listing.logo",
|
|
8
|
+
"wrong-case-field.json": "listing.Claim",
|
|
9
|
+
"unsupported-version.json": "listing.v",
|
|
10
|
+
"missing-version.json": "listing.v",
|
|
11
|
+
"bad-category.json": "listing.category",
|
|
12
|
+
"subcategory-other-category.json": "listing.subcategory",
|
|
13
|
+
"other-with-subcategory.json": "listing.subcategory",
|
|
14
|
+
"http-source-url.json": "listing.sourceCodeUrl",
|
|
15
|
+
"domain-with-scheme.json": "listing.domain",
|
|
16
|
+
"domain-with-www.json": "listing.domain",
|
|
17
|
+
"domain-uppercase.json": "listing.domain",
|
|
18
|
+
"name-too-long.json": "listing.name",
|
|
19
|
+
"blank-name.json": "listing.name",
|
|
20
|
+
"blank-description.json": "listing.description",
|
|
21
|
+
"description-too-long.json": "listing.description",
|
|
22
|
+
"name-not-string.json": "listing.name",
|
|
23
|
+
"updated-at-offset.json": "listing.updatedAt",
|
|
24
|
+
"updated-at-not-date.json": "listing.updatedAt",
|
|
25
|
+
"not-object.json": "listing",
|
|
26
|
+
"null.json": "listing",
|
|
27
|
+
"trailing-data.json": "listing",
|
|
28
|
+
"oversize.json": "listing"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "games",
|
|
7
|
+
"subcategory": null,
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3F9A1C0E7B2D4A6F8E1C3B5D7F9A2C4E",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": " ",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": " ",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "Example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "https://example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "www.example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "http://github.com/example/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
9
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
3
|
+
"name": "Example Org",
|
|
4
|
+
"domain": "example.com",
|
|
5
|
+
"category": "engineering",
|
|
6
|
+
"subcategory": "qa-testing",
|
|
7
|
+
"description": "QA and release automation for our web apps",
|
|
8
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
9
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": 42,
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"v":1,"claim":"rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e","name":"Example Org","domain":"example.com","category":"engineering","subcategory":"qa-testing","description":"QA and release automation for our web apps","sourceCodeUrl":"https://example.org/agents","updatedAt":"2026-10-18T10:00:00.000Z"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
null
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "other",
|
|
7
|
+
"subcategory": "coding-agents",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "v":1,"claim":"rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e","name":"Example Org","domain":"example.com","category":"engineering","subcategory":"qa-testing","description":"QA and release automation for our web apps","sourceCodeUrl":"https://example.org/agents","updatedAt":"2026-10-18T10:00:00.000Z"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_1234",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "seo",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"v":1,"claim":"rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e","name":"Example Org","domain":"example.com","category":"engineering","subcategory":"qa-testing","description":"QA and release automation for our web apps","sourceCodeUrl":"https://example.org/agents","updatedAt":"2026-10-18T10:00:00.000Z"} {}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z",
|
|
11
|
+
"logo": "https://example.com/logo.png"
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 2,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "yesterday"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T12:00:00+02:00"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"name": "Example Org",
|
|
4
|
+
"domain": "example.com",
|
|
5
|
+
"category": "engineering",
|
|
6
|
+
"subcategory": "qa-testing",
|
|
7
|
+
"description": "QA and release automation for our web apps",
|
|
8
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
9
|
+
"updatedAt": "2026-10-18T10:00:00.000Z",
|
|
10
|
+
"Claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "marketing",
|
|
7
|
+
"subcategory": null,
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Example Org",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": " Example Org ",
|
|
5
|
+
"domain": "example.com",
|
|
6
|
+
"category": "engineering",
|
|
7
|
+
"subcategory": "qa-testing",
|
|
8
|
+
"description": " QA automation ",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"claim": "rk_3f9a1c0e7b2d4a6f8e1c3b5d7f9a2c4e",
|
|
4
|
+
"name": "Ñandú Labs · 日本",
|
|
5
|
+
"domain": "nandu-labs.com",
|
|
6
|
+
"category": "product",
|
|
7
|
+
"subcategory": "research",
|
|
8
|
+
"description": "QA and release automation for our web apps",
|
|
9
|
+
"sourceCodeUrl": "https://example.org/agents",
|
|
10
|
+
"updatedAt": "2026-10-18T10:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://proxy.desplega.sh/contracts/telemetry/ranking/listing.v1.schema.json",
|
|
4
|
+
"title": "TelemetryRankingV1",
|
|
5
|
+
"description": "The telemetry_ranking listing, version 1. agent-swarm stores it stringified in the global swarm_config key telemetry_ranking and sends the same string as the listing property of ranking.opted_in. The string must not exceed 2048 bytes. The ingest also requires name to equal context.org_name and domain to equal context.org_website. Text fields are trimmed before their length is checked; lengths count UTF-16 code units, as JavaScript does.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["v", "claim", "name", "domain", "category", "subcategory", "description", "sourceCodeUrl", "updatedAt"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"v": {
|
|
11
|
+
"const": 1,
|
|
12
|
+
"description": "Listing version. A new version is a new schema file, never an edit to this one."
|
|
13
|
+
},
|
|
14
|
+
"claim": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^rk_[0-9a-f]{32}$",
|
|
17
|
+
"description": "Claim minted by the install. The ranking PR carries it, and the proxy binds it to the first install that sent it. Never served publicly."
|
|
18
|
+
},
|
|
19
|
+
"name": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 1,
|
|
22
|
+
"maxLength": 60,
|
|
23
|
+
"description": "Copied from SWARM_ORG_NAME. Served as app.title."
|
|
24
|
+
},
|
|
25
|
+
"domain": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"maxLength": 253,
|
|
28
|
+
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$",
|
|
29
|
+
"description": "Copied from SWARM_ORG_WEBSITE: a lowercase hostname without scheme, path or port. Served as app.slug."
|
|
30
|
+
},
|
|
31
|
+
"category": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": ["engineering", "product", "marketing", "support", "operations", "other"],
|
|
34
|
+
"description": "A key of taxonomy.json. Served as the group filter."
|
|
35
|
+
},
|
|
36
|
+
"subcategory": {
|
|
37
|
+
"type": ["string", "null"],
|
|
38
|
+
"maxLength": 40,
|
|
39
|
+
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
|
|
40
|
+
"description": "One of taxonomy.json's subcategories for category, or null. Served as app.categories."
|
|
41
|
+
},
|
|
42
|
+
"description": {
|
|
43
|
+
"type": ["string", "null"],
|
|
44
|
+
"minLength": 1,
|
|
45
|
+
"maxLength": 160,
|
|
46
|
+
"description": "Optional one-line description. Served as app.description."
|
|
47
|
+
},
|
|
48
|
+
"sourceCodeUrl": {
|
|
49
|
+
"type": ["string", "null"],
|
|
50
|
+
"maxLength": 200,
|
|
51
|
+
"pattern": "^https://",
|
|
52
|
+
"description": "Optional https URL. Served as app.source_code_url."
|
|
53
|
+
},
|
|
54
|
+
"updatedAt": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"format": "date-time",
|
|
57
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?Z$",
|
|
58
|
+
"description": "When the install built this listing, in UTC with a Z suffix."
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engineering": ["coding-agents", "qa-testing", "devops", "code-review"],
|
|
3
|
+
"product": ["research", "design", "analytics"],
|
|
4
|
+
"marketing": ["content", "seo", "social"],
|
|
5
|
+
"support": ["customer-support", "docs"],
|
|
6
|
+
"operations": ["back-office", "sales-ops", "finance"],
|
|
7
|
+
"other": []
|
|
8
|
+
}
|