@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
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
VersionableFieldSchema,
|
|
23
23
|
SessionCostModelBreakdownSchema,
|
|
24
24
|
init_types
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-a1esmmee.js";
|
|
26
26
|
import {
|
|
27
27
|
generateDefaultClaudeMd2,
|
|
28
28
|
generateDefaultSoulMd2,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
init_identity_field_budget,
|
|
37
37
|
contentSha256,
|
|
38
38
|
init_profile_sync
|
|
39
|
-
} from "./cli-
|
|
39
|
+
} from "./cli-wyrr38xm.js";
|
|
40
40
|
import {
|
|
41
41
|
isSlackConfigured,
|
|
42
42
|
init_config
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
} from "./cli-yxqag76b.js";
|
|
52
52
|
import {
|
|
53
53
|
init_templates3
|
|
54
|
-
} from "./cli-
|
|
54
|
+
} from "./cli-0ebey9hg.js";
|
|
55
55
|
import {
|
|
56
56
|
registerTemplate,
|
|
57
57
|
getAllTemplateDefinitions,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
configureDbResolver,
|
|
60
60
|
init_resolver,
|
|
61
61
|
init_session_templates
|
|
62
|
-
} from "./cli-
|
|
62
|
+
} from "./cli-tx00c0h6.js";
|
|
63
63
|
import {
|
|
64
64
|
activeModelBlock,
|
|
65
65
|
init_model_rate_limit_windows
|
|
@@ -82,8 +82,10 @@ import {
|
|
|
82
82
|
init_zod
|
|
83
83
|
} from "./cli-4chz1hye.js";
|
|
84
84
|
import {
|
|
85
|
+
exports_iso,
|
|
85
86
|
string2,
|
|
86
87
|
uuid,
|
|
88
|
+
url,
|
|
87
89
|
number2,
|
|
88
90
|
boolean,
|
|
89
91
|
array2,
|
|
@@ -91,8 +93,10 @@ import {
|
|
|
91
93
|
strictObject2,
|
|
92
94
|
looseObject,
|
|
93
95
|
union2,
|
|
96
|
+
discriminatedUnion,
|
|
94
97
|
record2,
|
|
95
|
-
_enum2
|
|
98
|
+
_enum2,
|
|
99
|
+
literal2
|
|
96
100
|
} from "./cli-d9f7gzeq.js";
|
|
97
101
|
import {
|
|
98
102
|
getNodeEnv,
|
|
@@ -101,7 +105,7 @@ import {
|
|
|
101
105
|
import {
|
|
102
106
|
init_package,
|
|
103
107
|
package_default
|
|
104
|
-
} from "./cli-
|
|
108
|
+
} from "./cli-mz1ezzzh.js";
|
|
105
109
|
import {
|
|
106
110
|
realtimeBus,
|
|
107
111
|
init_bus
|
|
@@ -1865,6 +1869,75 @@ var init_catalog = __esm(() => {
|
|
|
1865
1869
|
}
|
|
1866
1870
|
}
|
|
1867
1871
|
},
|
|
1872
|
+
{
|
|
1873
|
+
product: "agent-swarm",
|
|
1874
|
+
event: "ranking.opted_in",
|
|
1875
|
+
description: "An admin opted the install into the public ranking, or the API rebuilt its listing after an org identity change.",
|
|
1876
|
+
since: "2026-10-18",
|
|
1877
|
+
source: "api-server",
|
|
1878
|
+
properties: {
|
|
1879
|
+
listing: {
|
|
1880
|
+
type: "string",
|
|
1881
|
+
required: true,
|
|
1882
|
+
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."
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
{
|
|
1887
|
+
product: "agent-swarm",
|
|
1888
|
+
event: "ranking.opted_out",
|
|
1889
|
+
description: "The install left the public ranking: the admin turned it off, or the org name or website was cleared or changed.",
|
|
1890
|
+
since: "2026-10-18",
|
|
1891
|
+
source: "api-server",
|
|
1892
|
+
properties: {
|
|
1893
|
+
domain: {
|
|
1894
|
+
type: "string",
|
|
1895
|
+
required: true,
|
|
1896
|
+
description: "The listing domain that leaves the ranking: a lowercase hostname."
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
},
|
|
1900
|
+
{
|
|
1901
|
+
product: "agent-swarm",
|
|
1902
|
+
event: "ranking.usage",
|
|
1903
|
+
description: "Token usage of one session on an install opted into the public ranking. Sent next to session.cost.",
|
|
1904
|
+
since: "2026-10-18",
|
|
1905
|
+
source: "worker",
|
|
1906
|
+
properties: {
|
|
1907
|
+
totalTokens: {
|
|
1908
|
+
type: "integer",
|
|
1909
|
+
required: true,
|
|
1910
|
+
minimum: 0,
|
|
1911
|
+
description: "inputTokens + cacheReadTokens + cacheWriteTokens + outputTokens. The ranking sums this."
|
|
1912
|
+
},
|
|
1913
|
+
inputTokens: {
|
|
1914
|
+
type: "integer",
|
|
1915
|
+
required: true,
|
|
1916
|
+
minimum: 0
|
|
1917
|
+
},
|
|
1918
|
+
outputTokens: {
|
|
1919
|
+
type: "integer",
|
|
1920
|
+
required: true,
|
|
1921
|
+
minimum: 0
|
|
1922
|
+
},
|
|
1923
|
+
cacheReadTokens: {
|
|
1924
|
+
type: "integer",
|
|
1925
|
+
minimum: 0
|
|
1926
|
+
},
|
|
1927
|
+
cacheWriteTokens: {
|
|
1928
|
+
type: "integer",
|
|
1929
|
+
minimum: 0
|
|
1930
|
+
},
|
|
1931
|
+
model: {
|
|
1932
|
+
type: "string",
|
|
1933
|
+
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."
|
|
1934
|
+
},
|
|
1935
|
+
provider: {
|
|
1936
|
+
type: "string",
|
|
1937
|
+
description: "The session's provider, the same value as session.cost.provider. Missing means unknown."
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
},
|
|
1868
1941
|
{
|
|
1869
1942
|
product: "agent-fs",
|
|
1870
1943
|
event: "server.started",
|
|
@@ -2385,7 +2458,7 @@ function track(options) {
|
|
|
2385
2458
|
function trackRelayed(event, properties, options) {
|
|
2386
2459
|
emit(event, properties, undefined, options.actor, options.emitter);
|
|
2387
2460
|
}
|
|
2388
|
-
function emit(event, properties, metadata, actor, emitter = source) {
|
|
2461
|
+
function emit(event, properties, metadata, actor, emitter = source, identity) {
|
|
2389
2462
|
if (!isTelemetryEnabled() || !installationId)
|
|
2390
2463
|
return;
|
|
2391
2464
|
maybeRefreshOrgIdentity();
|
|
@@ -2396,7 +2469,7 @@ function emit(event, properties, metadata, actor, emitter = source) {
|
|
|
2396
2469
|
const occurredAt = new Date().toISOString();
|
|
2397
2470
|
const sentFor = installationId;
|
|
2398
2471
|
const isCloud = cachedIsCloud || isCloudDeployment();
|
|
2399
|
-
const orgIdentity = getOrgIdentity();
|
|
2472
|
+
const orgIdentity = identity ? { ...getOrgIdentity(), organization_name: identity.orgName } : getOrgIdentity();
|
|
2400
2473
|
const userId = actor?.userId?.trim() || undefined;
|
|
2401
2474
|
const payload = {
|
|
2402
2475
|
schema_version: 2,
|
|
@@ -2410,7 +2483,7 @@ function emit(event, properties, metadata, actor, emitter = source) {
|
|
|
2410
2483
|
orgId,
|
|
2411
2484
|
orgName: orgIdentity.organization_name,
|
|
2412
2485
|
orgDomain: cachedOrgDomain,
|
|
2413
|
-
orgWebsite: normalizeOrgWebsite(process.env.SWARM_ORG_WEBSITE),
|
|
2486
|
+
orgWebsite: identity?.orgWebsite ?? normalizeOrgWebsite(process.env.SWARM_ORG_WEBSITE),
|
|
2414
2487
|
installationId,
|
|
2415
2488
|
actor: userId ? { userId, role: actor?.role ?? roleResolver?.(userId) ?? null } : undefined,
|
|
2416
2489
|
isCloud,
|
|
@@ -2559,6 +2632,9 @@ var init_telemetry = __esm(() => {
|
|
|
2559
2632
|
...secondsSinceInstall !== undefined ? { seconds_since_install: secondsSinceInstall } : {}
|
|
2560
2633
|
}, undefined, actor);
|
|
2561
2634
|
},
|
|
2635
|
+
ranking(event, props, identity) {
|
|
2636
|
+
emit(`ranking.${event}`, props, undefined, undefined, source, identity);
|
|
2637
|
+
},
|
|
2562
2638
|
org(event, props) {
|
|
2563
2639
|
emit(`org.${event}`, props, undefined);
|
|
2564
2640
|
},
|
|
@@ -2625,9 +2701,7 @@ function auditAssetKeys(db) {
|
|
|
2625
2701
|
}
|
|
2626
2702
|
const attachmentMappings = db.prepare(`SELECT
|
|
2627
2703
|
a.id AS attachment_id,
|
|
2628
|
-
|
|
2629
|
-
m.id AS mapping_id,
|
|
2630
|
-
m."key" AS mapping_key
|
|
2704
|
+
m.id AS mapping_id
|
|
2631
2705
|
FROM task_attachments a
|
|
2632
2706
|
JOIN agent_tasks t ON t.id = a.task_id
|
|
2633
2707
|
LEFT JOIN asset_key_mappings m
|
|
@@ -2646,14 +2720,6 @@ function auditAssetKeys(db) {
|
|
|
2646
2720
|
entityId: row.attachment_id,
|
|
2647
2721
|
message: "Agent-fs attachment has no logical namespace mapping."
|
|
2648
2722
|
});
|
|
2649
|
-
} else if (row.mapping_key !== row.task_key) {
|
|
2650
|
-
issues.push({
|
|
2651
|
-
severity: "warning",
|
|
2652
|
-
code: "provider-mapping-drift",
|
|
2653
|
-
entityType: "file",
|
|
2654
|
-
entityId: row.mapping_id,
|
|
2655
|
-
message: "Provider mapping namespace differs from its parent task namespace."
|
|
2656
|
-
});
|
|
2657
2723
|
}
|
|
2658
2724
|
}
|
|
2659
2725
|
const sourcedMappings = db.prepare(`SELECT
|
|
@@ -4486,7 +4552,7 @@ var init_runtime = __esm(() => {
|
|
|
4486
4552
|
// src/telemetry-identity.ts
|
|
4487
4553
|
async function loadUserRole(userId) {
|
|
4488
4554
|
try {
|
|
4489
|
-
const { getUserGrant } = await import("./rbac-roles-
|
|
4555
|
+
const { getUserGrant } = await import("./rbac-roles-vbpy21mg.js");
|
|
4490
4556
|
const grant = await getUserGrant(userId);
|
|
4491
4557
|
const role = grant.grantsAll ? "admin" : "member";
|
|
4492
4558
|
if (roleCache.size >= ROLE_CACHE_LIMIT) {
|
|
@@ -5534,8 +5600,9 @@ async function hasNonTerminalRerouteDecisionChild2(parentId) {
|
|
|
5534
5600
|
LIMIT 1`, [parentId]);
|
|
5535
5601
|
return row !== undefined && row !== null;
|
|
5536
5602
|
}
|
|
5537
|
-
async function getTasksByAgentId2(agentId) {
|
|
5538
|
-
const
|
|
5603
|
+
async function getTasksByAgentId2(agentId, readableBy) {
|
|
5604
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId) : undefined;
|
|
5605
|
+
const rows = await getDbClient2().query(`SELECT * FROM agent_tasks WHERE agentId = ?${readable ? ` AND ${readable.sql}` : ""} ORDER BY createdAt DESC`, [agentId, ...readable?.params ?? []]);
|
|
5539
5606
|
return rows.map(rowToAgentTask);
|
|
5540
5607
|
}
|
|
5541
5608
|
async function getAgentCurrentTask2(agentId) {
|
|
@@ -5554,6 +5621,27 @@ async function findTaskByVcs2(vcsRepo, vcsNumber) {
|
|
|
5554
5621
|
LIMIT 1`, [vcsRepo, vcsNumber]);
|
|
5555
5622
|
return row ? rowToAgentTask(row) : null;
|
|
5556
5623
|
}
|
|
5624
|
+
function readableSessionCondition(userId, taskIdColumn = "agent_tasks.id", opts = {}) {
|
|
5625
|
+
const otherOwner = userId ? "r.requestedByUserId IS NOT NULL AND r.requestedByUserId != ?" : "r.requestedByUserId IS NOT NULL";
|
|
5626
|
+
const shareMatch = userId ? "(s.userId IS NULL OR s.userId = ?)" : "s.userId IS NULL";
|
|
5627
|
+
const notHidden = `${taskIdColumn} NOT IN (
|
|
5628
|
+
WITH RECURSIVE hidden(id) AS (
|
|
5629
|
+
SELECT r.id FROM agent_tasks r
|
|
5630
|
+
WHERE (r.parentTaskId IS NULL
|
|
5631
|
+
OR NOT EXISTS (SELECT 1 FROM agent_tasks p WHERE p.id = r.parentTaskId))
|
|
5632
|
+
AND ${otherOwner}
|
|
5633
|
+
AND NOT EXISTS (SELECT 1 FROM session_shares s
|
|
5634
|
+
WHERE s.rootTaskId = r.id AND s.revokedAt IS NULL AND ${shareMatch})
|
|
5635
|
+
UNION ALL
|
|
5636
|
+
SELECT c.id FROM agent_tasks c JOIN hidden ON c.parentTaskId = hidden.id
|
|
5637
|
+
)
|
|
5638
|
+
SELECT id FROM hidden
|
|
5639
|
+
)`;
|
|
5640
|
+
return {
|
|
5641
|
+
sql: opts.nullable ? `(${taskIdColumn} IS NULL OR ${notHidden})` : notHidden,
|
|
5642
|
+
params: userId ? [userId, userId] : []
|
|
5643
|
+
};
|
|
5644
|
+
}
|
|
5557
5645
|
async function getAllTasks2(filters, opts) {
|
|
5558
5646
|
const conditions = [];
|
|
5559
5647
|
const params = [];
|
|
@@ -5633,6 +5721,11 @@ async function getAllTasks2(filters, opts) {
|
|
|
5633
5721
|
if (!filters?.includeHeartbeat) {
|
|
5634
5722
|
conditions.push(`(IFNULL(taskType, '') NOT IN ('heartbeat', 'heartbeat-checklist', 'boot-triage') AND tags NOT LIKE '%"heartbeat"%')`);
|
|
5635
5723
|
}
|
|
5724
|
+
if (filters?.readableBy) {
|
|
5725
|
+
const readable = readableSessionCondition(filters.readableBy.userId);
|
|
5726
|
+
conditions.push(readable.sql);
|
|
5727
|
+
params.push(...readable.params);
|
|
5728
|
+
}
|
|
5636
5729
|
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
5637
5730
|
const limit = filters?.limit ?? 25;
|
|
5638
5731
|
const offset = filters?.offset ?? 0;
|
|
@@ -5750,6 +5843,11 @@ async function getTasksCount2(filters) {
|
|
|
5750
5843
|
if (!filters?.includeHeartbeat) {
|
|
5751
5844
|
conditions.push(`(IFNULL(taskType, '') NOT IN ('heartbeat', 'heartbeat-checklist', 'boot-triage') AND tags NOT LIKE '%"heartbeat"%')`);
|
|
5752
5845
|
}
|
|
5846
|
+
if (filters?.readableBy) {
|
|
5847
|
+
const readable = readableSessionCondition(filters.readableBy.userId);
|
|
5848
|
+
conditions.push(readable.sql);
|
|
5849
|
+
params.push(...readable.params);
|
|
5850
|
+
}
|
|
5753
5851
|
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
5754
5852
|
const query = `SELECT COUNT(*) as count FROM agent_tasks ${whereClause}`;
|
|
5755
5853
|
const result = await getDbClient2().get(query, params);
|
|
@@ -6339,6 +6437,26 @@ var init_model_profiles = __esm(() => {
|
|
|
6339
6437
|
init_read();
|
|
6340
6438
|
});
|
|
6341
6439
|
|
|
6440
|
+
// src/be/db/session-visibility.ts
|
|
6441
|
+
function sessionViewerCondition(viewer) {
|
|
6442
|
+
const shared = `EXISTS (SELECT 1 FROM session_shares s
|
|
6443
|
+
WHERE s.rootTaskId = r.id AND s.revokedAt IS NULL AND (s.userId IS NULL OR s.userId = ?))`;
|
|
6444
|
+
if (viewer.scope === "mine") {
|
|
6445
|
+
return { sql: "r.requestedByUserId = ?", params: [viewer.userId] };
|
|
6446
|
+
}
|
|
6447
|
+
if (viewer.scope === "shared") {
|
|
6448
|
+
return {
|
|
6449
|
+
sql: `(r.requestedByUserId IS NOT NULL AND r.requestedByUserId IS NOT ? AND ${shared})`,
|
|
6450
|
+
params: [viewer.userId, viewer.userId]
|
|
6451
|
+
};
|
|
6452
|
+
}
|
|
6453
|
+
return {
|
|
6454
|
+
sql: `(r.requestedByUserId IS NULL OR r.requestedByUserId = ? OR ${shared})`,
|
|
6455
|
+
params: [viewer.userId, viewer.userId]
|
|
6456
|
+
};
|
|
6457
|
+
}
|
|
6458
|
+
var init_session_visibility = () => {};
|
|
6459
|
+
|
|
6342
6460
|
// src/be/db/tasks/human-free.ts
|
|
6343
6461
|
function humanFreeCase(parentFlag) {
|
|
6344
6462
|
return `CASE
|
|
@@ -7178,10 +7296,11 @@ async function resumeTask2(taskId) {
|
|
|
7178
7296
|
}
|
|
7179
7297
|
return row ? rowToAgentTask(row) : null;
|
|
7180
7298
|
}
|
|
7181
|
-
async function getPausedTasksForAgent2(agentId) {
|
|
7299
|
+
async function getPausedTasksForAgent2(agentId, readableBy) {
|
|
7300
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId) : undefined;
|
|
7182
7301
|
const rows = await getDbClient2().query(`SELECT * FROM agent_tasks
|
|
7183
|
-
WHERE agentId = ? AND status = 'paused'
|
|
7184
|
-
ORDER BY createdAt ASC, rowid ASC`, [agentId]);
|
|
7302
|
+
WHERE agentId = ? AND status = 'paused'${readable ? ` AND ${readable.sql}` : ""}
|
|
7303
|
+
ORDER BY createdAt ASC, rowid ASC`, [agentId, ...readable?.params ?? []]);
|
|
7185
7304
|
return rows.map(rowToAgentTask);
|
|
7186
7305
|
}
|
|
7187
7306
|
async function getOrphanedInProgressTasksForAgent2(agentId, minAgeSeconds = 60) {
|
|
@@ -7227,13 +7346,14 @@ async function resetOrphanedInProgressTasksForAgent2(agentId, minAgeSeconds = 60
|
|
|
7227
7346
|
}
|
|
7228
7347
|
return rows.map(rowToAgentTask);
|
|
7229
7348
|
}
|
|
7230
|
-
async function getRecentlyCancelledTasksForAgent2(agentId) {
|
|
7349
|
+
async function getRecentlyCancelledTasksForAgent2(agentId, readableBy) {
|
|
7231
7350
|
const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000).toISOString();
|
|
7351
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId) : undefined;
|
|
7232
7352
|
const rows = await getDbClient2().query(`SELECT * FROM agent_tasks
|
|
7233
7353
|
WHERE agentId = ?
|
|
7234
7354
|
AND status = 'cancelled'
|
|
7235
|
-
AND finishedAt > ?
|
|
7236
|
-
ORDER BY finishedAt DESC`, [agentId, fiveMinutesAgo]);
|
|
7355
|
+
AND finishedAt > ?${readable ? ` AND ${readable.sql}` : ""}
|
|
7356
|
+
ORDER BY finishedAt DESC`, [agentId, fiveMinutesAgo, ...readable?.params ?? []]);
|
|
7237
7357
|
return rows.map(rowToAgentTask);
|
|
7238
7358
|
}
|
|
7239
7359
|
async function deleteTask2(id) {
|
|
@@ -7506,6 +7626,108 @@ var init_schema = __esm(() => {
|
|
|
7506
7626
|
};
|
|
7507
7627
|
});
|
|
7508
7628
|
|
|
7629
|
+
// src/telemetry-contract/ranking-taxonomy.gen.ts
|
|
7630
|
+
var RANKING_TAXONOMY;
|
|
7631
|
+
var init_ranking_taxonomy_gen = __esm(() => {
|
|
7632
|
+
RANKING_TAXONOMY = {
|
|
7633
|
+
engineering: ["coding-agents", "qa-testing", "devops", "code-review"],
|
|
7634
|
+
product: ["research", "design", "analytics"],
|
|
7635
|
+
marketing: ["content", "seo", "social"],
|
|
7636
|
+
support: ["customer-support", "docs"],
|
|
7637
|
+
operations: ["back-office", "sales-ops", "finance"],
|
|
7638
|
+
other: []
|
|
7639
|
+
};
|
|
7640
|
+
});
|
|
7641
|
+
|
|
7642
|
+
// src/ranking/telemetry-ranking.ts
|
|
7643
|
+
function inCategory(category, subcategory) {
|
|
7644
|
+
if (subcategory === null)
|
|
7645
|
+
return true;
|
|
7646
|
+
const subs = RANKING_TAXONOMY[category];
|
|
7647
|
+
return subs?.includes(subcategory) ?? false;
|
|
7648
|
+
}
|
|
7649
|
+
function parseTelemetryRanking(raw) {
|
|
7650
|
+
if (new TextEncoder().encode(raw).length > TELEMETRY_RANKING_MAX_BYTES) {
|
|
7651
|
+
throw new Error(`telemetry_ranking exceeds ${TELEMETRY_RANKING_MAX_BYTES} bytes`);
|
|
7652
|
+
}
|
|
7653
|
+
return telemetryRankingSchema.parse(JSON.parse(raw));
|
|
7654
|
+
}
|
|
7655
|
+
function readTelemetryRanking(raw) {
|
|
7656
|
+
if (!raw?.trim())
|
|
7657
|
+
return null;
|
|
7658
|
+
try {
|
|
7659
|
+
return parseTelemetryRanking(raw);
|
|
7660
|
+
} catch {
|
|
7661
|
+
return null;
|
|
7662
|
+
}
|
|
7663
|
+
}
|
|
7664
|
+
function mintRankingClaim() {
|
|
7665
|
+
const bytes = crypto.getRandomValues(new Uint8Array(16));
|
|
7666
|
+
return `rk_${Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("")}`;
|
|
7667
|
+
}
|
|
7668
|
+
function buildListing(identity, form, claim, now = new Date) {
|
|
7669
|
+
if (!identity.ok || !identity.name || !identity.website) {
|
|
7670
|
+
throw new Error(`Org identity is missing: ${identity.missing.join(", ")}`);
|
|
7671
|
+
}
|
|
7672
|
+
const listing = {
|
|
7673
|
+
v: 1,
|
|
7674
|
+
claim,
|
|
7675
|
+
name: identity.name,
|
|
7676
|
+
domain: identity.website,
|
|
7677
|
+
category: form.category,
|
|
7678
|
+
subcategory: blankToNull(form.subcategory),
|
|
7679
|
+
description: blankToNull(form.description),
|
|
7680
|
+
sourceCodeUrl: blankToNull(form.sourceCodeUrl),
|
|
7681
|
+
updatedAt: now.toISOString()
|
|
7682
|
+
};
|
|
7683
|
+
return parseTelemetryRanking(JSON.stringify(listing));
|
|
7684
|
+
}
|
|
7685
|
+
function rankingEntryFile(listing) {
|
|
7686
|
+
return `${JSON.stringify({ $schema: "./schema.json", domain: listing.domain, claim: listing.claim }, null, 2)}
|
|
7687
|
+
`;
|
|
7688
|
+
}
|
|
7689
|
+
function rankingPrUrl(listing) {
|
|
7690
|
+
const params = new URLSearchParams({
|
|
7691
|
+
filename: `community/ranking/${listing.domain}.json`,
|
|
7692
|
+
value: rankingEntryFile(listing),
|
|
7693
|
+
message: `chore(ranking): add ${listing.domain}`
|
|
7694
|
+
});
|
|
7695
|
+
return `https://github.com/${RANKING_REPO}/new/main?${params.toString()}`;
|
|
7696
|
+
}
|
|
7697
|
+
function rankingLeaveUrl(domain) {
|
|
7698
|
+
return `https://github.com/${RANKING_REPO}/delete/main/community/ranking/${domain}.json`;
|
|
7699
|
+
}
|
|
7700
|
+
var TELEMETRY_RANKING_KEY = "telemetry_ranking", PUBLIC_RANKING_ENABLED_KEY = "PUBLIC_RANKING_ENABLED", TELEMETRY_RANKING_MAX_BYTES = 2048, RANKING_CATEGORIES, RANKING_CLAIM_PATTERN, hostname, nullableText = (max) => string2().trim().min(1).max(max).nullable(), telemetryRankingV1, telemetryRankingSchema, rankingFormSchema, blankToNull = (value) => value?.trim() || null, RANKING_REPO = "desplega-ai/agent-swarm";
|
|
7701
|
+
var init_telemetry_ranking = __esm(() => {
|
|
7702
|
+
init_zod();
|
|
7703
|
+
init_ranking_taxonomy_gen();
|
|
7704
|
+
init_org_website();
|
|
7705
|
+
RANKING_CATEGORIES = Object.keys(RANKING_TAXONOMY);
|
|
7706
|
+
RANKING_CLAIM_PATTERN = /^rk_[0-9a-f]{32}$/;
|
|
7707
|
+
hostname = string2().refine((v) => normalizeOrgWebsite(v) === v, "bare hostname");
|
|
7708
|
+
telemetryRankingV1 = strictObject2({
|
|
7709
|
+
v: literal2(1),
|
|
7710
|
+
claim: string2().regex(RANKING_CLAIM_PATTERN),
|
|
7711
|
+
name: string2().trim().min(1).max(60),
|
|
7712
|
+
domain: hostname,
|
|
7713
|
+
category: _enum2(RANKING_CATEGORIES),
|
|
7714
|
+
subcategory: string2().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).max(40).nullable(),
|
|
7715
|
+
description: nullableText(160),
|
|
7716
|
+
sourceCodeUrl: url({ protocol: /^https$/ }).max(200).nullable(),
|
|
7717
|
+
updatedAt: exports_iso.datetime()
|
|
7718
|
+
}).refine((l) => inCategory(l.category, l.subcategory), {
|
|
7719
|
+
path: ["subcategory"],
|
|
7720
|
+
message: "not in this category"
|
|
7721
|
+
});
|
|
7722
|
+
telemetryRankingSchema = discriminatedUnion("v", [telemetryRankingV1]);
|
|
7723
|
+
rankingFormSchema = object2({
|
|
7724
|
+
category: _enum2(RANKING_CATEGORIES),
|
|
7725
|
+
subcategory: string2().nullable().optional(),
|
|
7726
|
+
description: string2().nullable().optional(),
|
|
7727
|
+
sourceCodeUrl: string2().nullable().optional()
|
|
7728
|
+
});
|
|
7729
|
+
});
|
|
7730
|
+
|
|
7509
7731
|
// src/scripts-runtime/executors/quickjs-pool-config.ts
|
|
7510
7732
|
function validateQuickJSPoolSize(value) {
|
|
7511
7733
|
const error = `Invalid SCRIPT_QUICKJS_POOL_SIZE (must be an integer between 1 and ${MAX_QUICKJS_POOL_SIZE})`;
|
|
@@ -7670,7 +7892,8 @@ function isInternalConfigKey(key) {
|
|
|
7670
7892
|
return INTERNAL_CONFIG_KEYS.has(key.toLowerCase());
|
|
7671
7893
|
}
|
|
7672
7894
|
function internalConfigKeyError(key) {
|
|
7673
|
-
const
|
|
7895
|
+
const lower = key.toLowerCase();
|
|
7896
|
+
const owner = lower === "runtime_owner_id" ? "the runtime supervisor" : lower === TELEMETRY_RANKING_KEY ? "/api/ranking" : "/api/onboarding";
|
|
7674
7897
|
return new Error(`Key '${key}' is managed by ${owner}`);
|
|
7675
7898
|
}
|
|
7676
7899
|
function isReservedConfigKey(key) {
|
|
@@ -7779,6 +8002,7 @@ function validateExportToEnv(key, exportToEnv) {
|
|
|
7779
8002
|
var TEAMS_SDK_ENV_KEYS, RESERVED_KEYS, API_ONLY_CONFIG_KEYS, INTERNAL_CONFIG_KEYS, BOOLEAN_LITERALS, MAX_DB_RETENTION_DAYS = 1e6, DB_RETENTION_TUNING_BOUNDS, validateControllerTokenTtlDays, validateControllerGraceSec, VALIDATED_KEYS;
|
|
7780
8003
|
var init_swarm_config_guard = __esm(() => {
|
|
7781
8004
|
init_schema();
|
|
8005
|
+
init_telemetry_ranking();
|
|
7782
8006
|
init_quickjs_pool_config();
|
|
7783
8007
|
init_reaction_shortcode();
|
|
7784
8008
|
init_types();
|
|
@@ -7805,7 +8029,11 @@ var init_swarm_config_guard = __esm(() => {
|
|
|
7805
8029
|
"CHAT_SDK_API_URL_OVERRIDES"
|
|
7806
8030
|
]);
|
|
7807
8031
|
API_ONLY_CONFIG_KEYS = new Set(["API_AGENT_FS_API_KEY", "SLACK_SIGNING_SECRET"]);
|
|
7808
|
-
INTERNAL_CONFIG_KEYS = new Set([
|
|
8032
|
+
INTERNAL_CONFIG_KEYS = new Set([
|
|
8033
|
+
"onboarding_state",
|
|
8034
|
+
"runtime_owner_id",
|
|
8035
|
+
TELEMETRY_RANKING_KEY
|
|
8036
|
+
]);
|
|
7809
8037
|
BOOLEAN_LITERALS = ["true", "false", "1", "0"];
|
|
7810
8038
|
DB_RETENTION_TUNING_BOUNDS = {
|
|
7811
8039
|
DB_RETENTION_TICK_BUDGET_MS: { min: 1000, max: 300000 },
|
|
@@ -7847,6 +8075,16 @@ var init_swarm_config_guard = __esm(() => {
|
|
|
7847
8075
|
return "Invalid TASK_TOOL_MANIFESTS (expected JSON with taskTypes and/or schedules maps, each selecting at most 16 known swarm tools)";
|
|
7848
8076
|
}
|
|
7849
8077
|
},
|
|
8078
|
+
[TELEMETRY_RANKING_KEY.toUpperCase()]: (value) => {
|
|
8079
|
+
try {
|
|
8080
|
+
if (typeof value !== "string")
|
|
8081
|
+
throw new Error("Expected JSON string");
|
|
8082
|
+
parseTelemetryRanking(value);
|
|
8083
|
+
return null;
|
|
8084
|
+
} catch {
|
|
8085
|
+
return "Invalid telemetry_ranking (expected the v1 ranking listing JSON)";
|
|
8086
|
+
}
|
|
8087
|
+
},
|
|
7850
8088
|
SWARM_ENABLED_TOOLS: (value) => {
|
|
7851
8089
|
try {
|
|
7852
8090
|
if (typeof value !== "string")
|
|
@@ -7920,6 +8158,7 @@ var init_swarm_config_guard = __esm(() => {
|
|
|
7920
8158
|
},
|
|
7921
8159
|
...booleanValidators([
|
|
7922
8160
|
"SWARM_USED_BY_CONSENT",
|
|
8161
|
+
"PUBLIC_RANKING_ENABLED",
|
|
7923
8162
|
"SWARM_DEV_MODE",
|
|
7924
8163
|
"MULTI_RUNTIME_ENABLED",
|
|
7925
8164
|
"STEERING_ENABLED",
|
|
@@ -18494,7 +18733,7 @@ async function loadSecretRegistry() {
|
|
|
18494
18733
|
result.failed += 1;
|
|
18495
18734
|
}
|
|
18496
18735
|
try {
|
|
18497
|
-
const { loadRuntimeControllerSecrets } = await import("./db-
|
|
18736
|
+
const { loadRuntimeControllerSecrets } = await import("./db-nc1rd869.js");
|
|
18498
18737
|
const loaded = await loadRuntimeControllerSecrets();
|
|
18499
18738
|
result.runtimeController = loaded.count;
|
|
18500
18739
|
result.failed += loaded.failed;
|
|
@@ -18751,6 +18990,9 @@ async function refreshActiveSessionOnActivity2(taskId, minIntervalMs = SESSION_A
|
|
|
18751
18990
|
const result = await getDbClient2().run("UPDATE active_sessions SET lastHeartbeatAt = ? WHERE taskId = ? AND lastHeartbeatAt < ?", [new Date(nowMs).toISOString(), taskId, new Date(nowMs - minIntervalMs).toISOString()]);
|
|
18752
18991
|
return result.changes > 0;
|
|
18753
18992
|
}
|
|
18993
|
+
async function getActiveSessionById(id) {
|
|
18994
|
+
return getDbClient2().get("SELECT * FROM active_sessions WHERE id = ?", [id]);
|
|
18995
|
+
}
|
|
18754
18996
|
var SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS2 = 30000;
|
|
18755
18997
|
var init_active_sessions = __esm(() => {
|
|
18756
18998
|
init_runtime();
|
|
@@ -20105,8 +20347,8 @@ async function moveAssetKey2(input) {
|
|
|
20105
20347
|
const previousKey = await currentAssetKey(input.entityType, input.id);
|
|
20106
20348
|
if (!previousKey)
|
|
20107
20349
|
return false;
|
|
20108
|
-
if (previousKey === key)
|
|
20109
|
-
return
|
|
20350
|
+
if (previousKey === key && input.entityType !== "task")
|
|
20351
|
+
return {};
|
|
20110
20352
|
if (input.entityType === "file") {
|
|
20111
20353
|
const mapping = await getAssetKeyMapping2(input.id);
|
|
20112
20354
|
if (mapping?.sourceEntityType === "task-attachment") {
|
|
@@ -20114,40 +20356,59 @@ async function moveAssetKey2(input) {
|
|
|
20114
20356
|
}
|
|
20115
20357
|
}
|
|
20116
20358
|
const now = new Date().toISOString();
|
|
20117
|
-
|
|
20359
|
+
return getDbClient2().transaction(async (tx) => {
|
|
20118
20360
|
switch (input.entityType) {
|
|
20119
20361
|
case "task": {
|
|
20120
|
-
const
|
|
20362
|
+
const root = await getTaskById2(input.id);
|
|
20363
|
+
if (!root)
|
|
20364
|
+
return false;
|
|
20365
|
+
const tasks = [root];
|
|
20366
|
+
for (const id of input.descendantTaskIds ?? []) {
|
|
20367
|
+
const task = id === root.id ? null : await getTaskById2(id);
|
|
20368
|
+
if (task)
|
|
20369
|
+
tasks.push(task);
|
|
20370
|
+
}
|
|
20371
|
+
const movedTaskIds = [];
|
|
20372
|
+
for (const task of tasks) {
|
|
20373
|
+
if (task.key === key)
|
|
20374
|
+
continue;
|
|
20375
|
+
const mappedFiles = await tx.query(`SELECT DISTINCT m.id, m."key" AS key
|
|
20121
20376
|
FROM asset_key_mappings m
|
|
20122
20377
|
JOIN task_attachments a
|
|
20123
20378
|
ON m.provider_id = COALESCE(NULLIF(a.provider_id, ''), 'agent-fs')
|
|
20124
20379
|
AND m.provider_org_id = COALESCE(a.agent_fs_org_id, '')
|
|
20125
20380
|
AND m.provider_drive_id = COALESCE(a.agent_fs_drive_id, '')
|
|
20126
20381
|
AND m.provider_key = COALESCE(NULLIF(a.provider_key, ''), a.path)
|
|
20127
|
-
WHERE a.task_id = ?`, [input.id]);
|
|
20128
|
-
await tx.run('UPDATE agent_tasks SET "key" = ?, lastUpdatedAt = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, input.id]);
|
|
20129
|
-
await tx.run(`UPDATE asset_key_mappings
|
|
20130
|
-
SET "key" = ?, updated_at = ?, updated_by = ?
|
|
20131
|
-
WHERE EXISTS (
|
|
20132
|
-
SELECT 1 FROM task_attachments a
|
|
20133
20382
|
WHERE a.task_id = ?
|
|
20134
|
-
AND
|
|
20135
|
-
|
|
20136
|
-
|
|
20137
|
-
|
|
20138
|
-
|
|
20139
|
-
|
|
20140
|
-
|
|
20141
|
-
|
|
20383
|
+
AND (m.source_entity_type IS NOT 'task-attachment'
|
|
20384
|
+
OR m.source_entity_id IN (SELECT id FROM task_attachments WHERE task_id = ?))`, [task.id, task.id]);
|
|
20385
|
+
await tx.run('UPDATE agent_tasks SET "key" = ?, updated_by = ? WHERE id = ?', [
|
|
20386
|
+
key,
|
|
20387
|
+
input.changedBy ?? null,
|
|
20388
|
+
task.id
|
|
20389
|
+
]);
|
|
20390
|
+
for (const mapping of mappedFiles) {
|
|
20391
|
+
if (mapping.key === key)
|
|
20392
|
+
continue;
|
|
20393
|
+
await tx.run('UPDATE asset_key_mappings SET "key" = ?, updated_at = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, mapping.id]);
|
|
20394
|
+
await insertAssetKeyHistory({
|
|
20395
|
+
entityType: "file",
|
|
20396
|
+
entityId: mapping.id,
|
|
20397
|
+
previousKey: mapping.key,
|
|
20398
|
+
newKey: key,
|
|
20399
|
+
changedBy: input.changedBy
|
|
20400
|
+
});
|
|
20401
|
+
}
|
|
20142
20402
|
await insertAssetKeyHistory({
|
|
20143
|
-
entityType: "
|
|
20144
|
-
entityId:
|
|
20145
|
-
previousKey:
|
|
20403
|
+
entityType: "task",
|
|
20404
|
+
entityId: task.id,
|
|
20405
|
+
previousKey: task.key,
|
|
20146
20406
|
newKey: key,
|
|
20147
20407
|
changedBy: input.changedBy
|
|
20148
20408
|
});
|
|
20409
|
+
movedTaskIds.push(task.id);
|
|
20149
20410
|
}
|
|
20150
|
-
|
|
20411
|
+
return { movedTaskIds };
|
|
20151
20412
|
}
|
|
20152
20413
|
case "workflow":
|
|
20153
20414
|
await tx.run('UPDATE workflows SET "key" = ?, lastUpdatedAt = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, input.id]);
|
|
@@ -20189,8 +20450,8 @@ async function moveAssetKey2(input) {
|
|
|
20189
20450
|
newKey: key,
|
|
20190
20451
|
changedBy: input.changedBy
|
|
20191
20452
|
});
|
|
20453
|
+
return {};
|
|
20192
20454
|
});
|
|
20193
|
-
return true;
|
|
20194
20455
|
}
|
|
20195
20456
|
async function deleteTaskAttachment2(id) {
|
|
20196
20457
|
const result = await getDbClient2().run("DELETE FROM task_attachments WHERE id = ?", [id]);
|
|
@@ -20320,11 +20581,12 @@ async function getSteeringMessageById2(id) {
|
|
|
20320
20581
|
async function getPendingSteeringForTask2(taskId) {
|
|
20321
20582
|
return await getSteeringMessagesForTask2(taskId, { status: "pending" });
|
|
20322
20583
|
}
|
|
20323
|
-
async function getPendingSteeringForAgent2(agentId) {
|
|
20584
|
+
async function getPendingSteeringForAgent2(agentId, readableBy) {
|
|
20585
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId, "t.id") : undefined;
|
|
20324
20586
|
const rows = await getDbClient2().query(`${STEERING_MESSAGE_SELECT}
|
|
20325
20587
|
JOIN agent_tasks t ON t.id = m.task_id
|
|
20326
|
-
WHERE t.agentId = ? AND m.status = 'pending'
|
|
20327
|
-
ORDER BY m.created_at ASC, m.rowid ASC`, [agentId]);
|
|
20588
|
+
WHERE t.agentId = ? AND m.status = 'pending'${readable ? ` AND ${readable.sql}` : ""}
|
|
20589
|
+
ORDER BY m.created_at ASC, m.rowid ASC`, [agentId, ...readable?.params ?? []]);
|
|
20328
20590
|
return rows.map(rowToSteeringMessage);
|
|
20329
20591
|
}
|
|
20330
20592
|
async function markSteeringDelivered2(id, deliveredMode, expectedTaskId) {
|
|
@@ -20380,12 +20642,12 @@ async function hasPendingSteering2(taskId) {
|
|
|
20380
20642
|
LIMIT 1`, [taskId]);
|
|
20381
20643
|
return row !== null;
|
|
20382
20644
|
}
|
|
20383
|
-
async function getAgentWithTasks2(id) {
|
|
20645
|
+
async function getAgentWithTasks2(id, readableBy) {
|
|
20384
20646
|
return await getDbClient2().transaction(async () => {
|
|
20385
20647
|
const agent = await getAgentById2(id);
|
|
20386
20648
|
if (!agent)
|
|
20387
20649
|
return null;
|
|
20388
|
-
const tasks = await getTasksByAgentId2(id);
|
|
20650
|
+
const tasks = await getTasksByAgentId2(id, readableBy);
|
|
20389
20651
|
return { ...agent, tasks };
|
|
20390
20652
|
}, { readOnly: true });
|
|
20391
20653
|
}
|
|
@@ -20394,7 +20656,7 @@ async function getAllAgentsWithTasks2(opts) {
|
|
|
20394
20656
|
const agents = await getAllAgents2({ slim: opts?.slim ?? false });
|
|
20395
20657
|
return await Promise.all(agents.map(async (agent) => ({
|
|
20396
20658
|
...agent,
|
|
20397
|
-
tasks: await getTasksByAgentId2(agent.id)
|
|
20659
|
+
tasks: await getTasksByAgentId2(agent.id, opts?.readableBy)
|
|
20398
20660
|
})));
|
|
20399
20661
|
}, { readOnly: true });
|
|
20400
20662
|
}
|
|
@@ -20427,8 +20689,9 @@ async function createLogEntry2(entry) {
|
|
|
20427
20689
|
throw new Error("Failed to create log entry");
|
|
20428
20690
|
return rowToAgentLog(row);
|
|
20429
20691
|
}
|
|
20430
|
-
async function getLogsByAgentId2(agentId) {
|
|
20431
|
-
const
|
|
20692
|
+
async function getLogsByAgentId2(agentId, readableBy) {
|
|
20693
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId, "agent_log.taskId", { nullable: true }) : undefined;
|
|
20694
|
+
const rows = await getDbClient2().query(`SELECT * FROM agent_log WHERE agentId = ?${readable ? ` AND ${readable.sql}` : ""} ORDER BY createdAt DESC`, [agentId, ...readable?.params ?? []]);
|
|
20432
20695
|
return rows.map(rowToAgentLog);
|
|
20433
20696
|
}
|
|
20434
20697
|
async function getLogsByTaskId2(taskId, limit = 200) {
|
|
@@ -20447,12 +20710,14 @@ async function getLogsByEventType2(eventType) {
|
|
|
20447
20710
|
const rows = await getDbClient2().query("SELECT * FROM agent_log WHERE eventType = ? ORDER BY createdAt DESC", [eventType]);
|
|
20448
20711
|
return rows.map(rowToAgentLog);
|
|
20449
20712
|
}
|
|
20450
|
-
async function getAllLogs2(limit) {
|
|
20713
|
+
async function getAllLogs2(limit, readableBy) {
|
|
20714
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId, "agent_log.taskId", { nullable: true }) : undefined;
|
|
20715
|
+
const readableParams = readable?.params ?? [];
|
|
20451
20716
|
if (limit) {
|
|
20452
|
-
const rows = await getDbClient2().query(
|
|
20717
|
+
const rows = await getDbClient2().query(`SELECT * FROM agent_log WHERE eventType != 'agent_status_change'${readable ? ` AND ${readable.sql}` : ""} ORDER BY createdAt DESC LIMIT ?`, [...readableParams, limit]);
|
|
20453
20718
|
return rows.map(rowToAgentLog);
|
|
20454
20719
|
}
|
|
20455
|
-
const rows = await getDbClient2().query(
|
|
20720
|
+
const rows = await getDbClient2().query(`SELECT * FROM agent_log${readable ? ` WHERE ${readable.sql}` : ""} ORDER BY createdAt DESC`, readableParams);
|
|
20456
20721
|
return rows.map(rowToAgentLog);
|
|
20457
20722
|
}
|
|
20458
20723
|
async function findRecentSimilarTasks2(opts) {
|
|
@@ -22327,21 +22592,24 @@ async function releaseStaleProcessingInbox2(timeoutMinutes = 30) {
|
|
|
22327
22592
|
WHERE status = 'processing' AND lastUpdatedAt < ?`, [now, cutoffTime]);
|
|
22328
22593
|
return result.changes;
|
|
22329
22594
|
}
|
|
22330
|
-
async function getConcurrentContext2() {
|
|
22595
|
+
async function getConcurrentContext2(readableBy) {
|
|
22331
22596
|
const client = getDbClient2();
|
|
22597
|
+
const readable = readableBy ? readableSessionCondition(readableBy.userId, "t.id") : undefined;
|
|
22598
|
+
const readableSql = readable ? ` AND ${readable.sql}` : "";
|
|
22599
|
+
const readableParams = readable?.params ?? [];
|
|
22332
22600
|
const processingInboxMessages = await client.query("SELECT id, content, source, slackChannelId, slackThreadTs, createdAt FROM inbox_messages WHERE status = 'processing' ORDER BY createdAt DESC");
|
|
22333
22601
|
const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000).toISOString();
|
|
22334
22602
|
const recentTaskDelegations = await client.query(`SELECT t.id, t.task, t.agentId, a.name as agentName, t.creatorAgentId, t.status, t.createdAt
|
|
22335
22603
|
FROM agent_tasks t
|
|
22336
22604
|
LEFT JOIN agents a ON t.agentId = a.id
|
|
22337
22605
|
WHERE t.createdAt > ?
|
|
22338
|
-
AND t.creatorAgentId IN (SELECT id FROM agents WHERE isLead = 1)
|
|
22339
|
-
ORDER BY t.createdAt DESC`, [fiveMinutesAgo]);
|
|
22606
|
+
AND t.creatorAgentId IN (SELECT id FROM agents WHERE isLead = 1)${readableSql}
|
|
22607
|
+
ORDER BY t.createdAt DESC`, [fiveMinutesAgo, ...readableParams]);
|
|
22340
22608
|
const activeSwarmTasks = await client.query(`SELECT t.id, t.task, t.agentId, a.name as agentName, t.status, t.createdAt, t.progress
|
|
22341
22609
|
FROM agent_tasks t
|
|
22342
22610
|
LEFT JOIN agents a ON t.agentId = a.id
|
|
22343
|
-
WHERE t.status = 'in_progress'
|
|
22344
|
-
ORDER BY t.createdAt DESC
|
|
22611
|
+
WHERE t.status = 'in_progress'${readableSql}
|
|
22612
|
+
ORDER BY t.createdAt DESC`, readableParams);
|
|
22345
22613
|
return {
|
|
22346
22614
|
processingInboxMessages,
|
|
22347
22615
|
recentTaskDelegations,
|
|
@@ -23085,11 +23353,22 @@ async function deleteActiveSessionById2(id) {
|
|
|
23085
23353
|
const result = await getDbClient2().run("DELETE FROM active_sessions WHERE id = ?", [id]);
|
|
23086
23354
|
return result.changes > 0;
|
|
23087
23355
|
}
|
|
23088
|
-
async function getActiveSessions2(agentId) {
|
|
23356
|
+
async function getActiveSessions2(agentId, readableBy) {
|
|
23357
|
+
const conditions = [];
|
|
23358
|
+
const params = [];
|
|
23089
23359
|
if (agentId) {
|
|
23090
|
-
|
|
23360
|
+
conditions.push("agentId = ?");
|
|
23361
|
+
params.push(agentId);
|
|
23091
23362
|
}
|
|
23092
|
-
|
|
23363
|
+
if (readableBy) {
|
|
23364
|
+
const readable = readableSessionCondition(readableBy.userId, "active_sessions.taskId", {
|
|
23365
|
+
nullable: true
|
|
23366
|
+
});
|
|
23367
|
+
conditions.push(readable.sql);
|
|
23368
|
+
params.push(...readable.params);
|
|
23369
|
+
}
|
|
23370
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
23371
|
+
return await getDbClient2().query(`SELECT * FROM active_sessions ${where} ORDER BY startedAt DESC`, params);
|
|
23093
23372
|
}
|
|
23094
23373
|
async function heartbeatActiveSession2(taskId) {
|
|
23095
23374
|
const now = new Date().toISOString();
|
|
@@ -25942,6 +26221,7 @@ function rowToInboxItemState(row) {
|
|
|
25942
26221
|
dismissedAt: row.dismissedAt ?? undefined,
|
|
25943
26222
|
doneAt: row.doneAt ?? undefined,
|
|
25944
26223
|
readAt: row.readAt ?? undefined,
|
|
26224
|
+
lastReadAt: row.lastReadAt ?? undefined,
|
|
25945
26225
|
createdAt: row.createdAt,
|
|
25946
26226
|
lastUpdatedAt: row.lastUpdatedAt
|
|
25947
26227
|
};
|
|
@@ -25967,14 +26247,15 @@ async function upsertInboxState2(opts) {
|
|
|
25967
26247
|
const doneAt = opts.doneAt ?? (opts.status === "done" ? now : null);
|
|
25968
26248
|
const snoozeUntil = opts.snoozeUntil ?? null;
|
|
25969
26249
|
const readAt = opts.readAt ?? null;
|
|
25970
|
-
const row = await getDbClient2().get(`INSERT INTO inbox_item_state (userId, itemType, itemId, status, snoozeUntil, dismissedAt, doneAt, readAt, createdAt, lastUpdatedAt)
|
|
25971
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
26250
|
+
const row = await getDbClient2().get(`INSERT INTO inbox_item_state (userId, itemType, itemId, status, snoozeUntil, dismissedAt, doneAt, readAt, lastReadAt, createdAt, lastUpdatedAt)
|
|
26251
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
25972
26252
|
ON CONFLICT(userId, itemType, itemId) DO UPDATE SET
|
|
25973
26253
|
status = excluded.status,
|
|
25974
26254
|
snoozeUntil = excluded.snoozeUntil,
|
|
25975
26255
|
dismissedAt = excluded.dismissedAt,
|
|
25976
26256
|
doneAt = excluded.doneAt,
|
|
25977
26257
|
readAt = COALESCE(inbox_item_state.readAt, excluded.readAt),
|
|
26258
|
+
lastReadAt = CASE WHEN ? THEN excluded.lastReadAt ELSE inbox_item_state.lastReadAt END,
|
|
25978
26259
|
lastUpdatedAt = excluded.lastUpdatedAt
|
|
25979
26260
|
RETURNING *`, [
|
|
25980
26261
|
opts.userId,
|
|
@@ -25985,8 +26266,10 @@ async function upsertInboxState2(opts) {
|
|
|
25985
26266
|
dismissedAt,
|
|
25986
26267
|
doneAt,
|
|
25987
26268
|
readAt,
|
|
26269
|
+
opts.lastReadAt ?? null,
|
|
25988
26270
|
now,
|
|
25989
|
-
now
|
|
26271
|
+
now,
|
|
26272
|
+
opts.lastReadAt !== undefined ? 1 : 0
|
|
25990
26273
|
]);
|
|
25991
26274
|
if (!row)
|
|
25992
26275
|
throw new Error("Failed to upsert inbox state");
|
|
@@ -26140,6 +26423,11 @@ async function listRecentSessions2(opts) {
|
|
|
26140
26423
|
conditions.push(`r.contextKey LIKE ? ESCAPE '\\'`);
|
|
26141
26424
|
params.push(literalPrefixPattern(opts.contextKeyPrefix));
|
|
26142
26425
|
}
|
|
26426
|
+
if (opts?.viewer) {
|
|
26427
|
+
const viewer = sessionViewerCondition(opts.viewer);
|
|
26428
|
+
conditions.push(viewer.sql);
|
|
26429
|
+
params.push(...viewer.params);
|
|
26430
|
+
}
|
|
26143
26431
|
params.push(limit, offset);
|
|
26144
26432
|
const rootRows = await getDbClient2().query(`WITH RECURSIVE chain(root_id, id, lastUpdatedAt, status) AS (
|
|
26145
26433
|
SELECT r.id, r.id, r.lastUpdatedAt, r.status
|
|
@@ -26199,26 +26487,31 @@ async function countSessions2(opts) {
|
|
|
26199
26487
|
const sources = opts?.source?.filter((s) => s.length > 0) ?? [];
|
|
26200
26488
|
const q = opts?.q?.trim();
|
|
26201
26489
|
const requestedByUserId = opts?.requestedByUserId?.trim() || undefined;
|
|
26202
|
-
const conditions = ["parentTaskId IS NULL"];
|
|
26490
|
+
const conditions = ["r.parentTaskId IS NULL"];
|
|
26203
26491
|
const params = [];
|
|
26204
26492
|
if (sources.length > 0) {
|
|
26205
|
-
conditions.push(`source IN (${sources.map(() => "?").join(", ")})`);
|
|
26493
|
+
conditions.push(`r.source IN (${sources.map(() => "?").join(", ")})`);
|
|
26206
26494
|
params.push(...sources);
|
|
26207
26495
|
}
|
|
26208
26496
|
if (q && q.length > 0) {
|
|
26209
|
-
conditions.push("(lower(task) LIKE ? OR lower(COALESCE(title, '')) LIKE ?)");
|
|
26497
|
+
conditions.push("(lower(r.task) LIKE ? OR lower(COALESCE(r.title, '')) LIKE ?)");
|
|
26210
26498
|
const like = `%${q.toLowerCase()}%`;
|
|
26211
26499
|
params.push(like, like);
|
|
26212
26500
|
}
|
|
26213
26501
|
if (requestedByUserId) {
|
|
26214
|
-
conditions.push("requestedByUserId = ?");
|
|
26502
|
+
conditions.push("r.requestedByUserId = ?");
|
|
26215
26503
|
params.push(requestedByUserId);
|
|
26216
26504
|
}
|
|
26217
26505
|
if (opts?.contextKeyPrefix) {
|
|
26218
|
-
conditions.push(`contextKey LIKE ? ESCAPE '\\'`);
|
|
26506
|
+
conditions.push(`r.contextKey LIKE ? ESCAPE '\\'`);
|
|
26219
26507
|
params.push(literalPrefixPattern(opts.contextKeyPrefix));
|
|
26220
26508
|
}
|
|
26221
|
-
|
|
26509
|
+
if (opts?.viewer) {
|
|
26510
|
+
const viewer = sessionViewerCondition(opts.viewer);
|
|
26511
|
+
conditions.push(viewer.sql);
|
|
26512
|
+
params.push(...viewer.params);
|
|
26513
|
+
}
|
|
26514
|
+
const row = await getDbClient2().get(`SELECT COUNT(*) AS count FROM agent_tasks r WHERE ${conditions.join(" AND ")}`, params);
|
|
26222
26515
|
return row?.count ?? 0;
|
|
26223
26516
|
}
|
|
26224
26517
|
function rowToBudget(row) {
|
|
@@ -26947,6 +27240,7 @@ var init_db3 = __esm(() => {
|
|
|
26947
27240
|
init_context_versions();
|
|
26948
27241
|
init_model_profiles();
|
|
26949
27242
|
init_runtime();
|
|
27243
|
+
init_session_visibility();
|
|
26950
27244
|
init_human_free();
|
|
26951
27245
|
init_read();
|
|
26952
27246
|
init_write();
|
|
@@ -27019,4 +27313,4 @@ var init_db3 = __esm(() => {
|
|
|
27019
27313
|
};
|
|
27020
27314
|
});
|
|
27021
27315
|
|
|
27022
|
-
export { slackContextKey, chatSdkContextKey, chatThreadOfContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, azureDevOpsContextKey, azureDevOpsWorkItemContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, init_catalog, catalog_default, mapTriggerSurface, init_telemetry_context, TELEMETRY_PROXY_ORIGIN, normalizeOrgWebsite, orgLogoUrl, isFilledOrgLogoUrl, init_org_website, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, getCurrentRequestUserId, init_request_auth_context, setTelemetryIngestObserver, isTelemetryEnabled, _resolveIntegrationType, _resolveIntegrationProvider, initTelemetry, setTelemetryRoleResolver, isTelemetryReady, track, trackRelayed, telemetry, emitIntegrationConnected, init_telemetry, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, assertUrlSafe, parseEgressAllowlist, init_egress_guard, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, isInTransaction, init_db_client, breaksJsonValidity, scrubJsonValue, init_scrub_json, sealJson, init_sealed_json, getPromptTemplateDefaultDrift, init_default_drift, init_templates, init_templates2, isSqliteVecAvailable2, resolveSqliteVecExtensionPath2, __resetSqliteVecExtensionPathCacheForTests2, initDb2, getDb2, closeDb2, getDbClient2, init_runtime, cachedUserRole, configureOrgDomainPersistence, recomputeOrgDomain, scheduleOrgDomainRecompute, init_telemetry_identity, resolveTriggerSurface, emitTaskTelemetry, init_telemetry_trigger, CODEX_AUTH_WATCH_NAMESPACE, codexAuthBenchMarkerKey, isCodexAuthFailureReason, init_codex_auth_failure, isEnvExportRestrictedKey, init_config_env_export, MASKED_SECRET_VALUE, init_config_secrets, HeartbeatExpiryError, init_heartbeat_expiry, isRuntimePoolsEnabled, init_runtime_pools_flag, normalizeDate, normalizeDateRequired, init_date_utils, rowToAgent, updateAgentCredentialState2, updateAgentCredentialMissing2, createAgent2, getAgentById2, EXTENSION_AGENT_ROLE2, NOT_EXTENSION_AGENT_SQL2, isExtensionAgent2, extensionAgentAssignmentError2, ReservedAgentRoleError2, reservedRoleViolation2, ExtensionAgentAssignmentError2, getAllAgents2, getAgentStatusCounts2, getLeadAgent2, updateAgentStatus2, updateAgentMaxTasks2, updateAgentProvider2, setAgentHarnessProvider2, updateAgentCredStatus2, listAgentsWithCredStatusByProvider2, getAgentHarnessProviders2, updateAgentActivity2, MAX_EMPTY_POLLS2, incrementEmptyPollCount2, resetEmptyPollCount2, shouldBlockPolling2, deleteAgent2, getActiveTaskCount2, hasCapacity2, getRemainingCapacity2, updateAgentStatusFromCapacity2, isPoolAffinityEnforcementEnabled2, buildRoutingAffinityFromAgent2, isAgentEligibleForTask2, getAgentDailyTaskCounts2, init_agents, listApprovalRequestSummaries2, getPendingApprovalVoteState2, recordApprovalVotes2, computeContentHash2, createContextVersion2, getLatestContextVersion2, getContextVersion2, getContextVersionHistory2, vcsRepoName, vcsRepoUrlMatches, init_vcs_repo_match, rowToAgentTask, getTaskById2, getChildTasks2, hasNonTerminalResumeChild2, SUPERSEDED_RESUME_REPAIR_WINDOW_MS2, getSupersededTasksWithoutResume2, getSupersededTasksWithUnsettledDependents2, hasNonTerminalRerouteDecisionChild2, getTasksByAgentId2, getAgentCurrentTask2, getTasksByStatus2, findTaskByVcs2, findTaskByGitHub2, getAllTasks2, getTasksCount2, getTaskStats2, getCompletedSlackTasks2, getPendingSlackRelayTasks2, markSlackRelayAttempted2, markSlackRelayDelivered2, markFinalizedSlackRelaysDelivered2, getPendingChatRelayTasks2, giveUpStaleChatRelays2, markChatRelayAttempted2, recordChatRelayError2, markChatRelayDelivered2, markChatRelayGivenUp2, getRecentlyFinishedWorkerTasks2, markTasksNotified2, resetTasksNotified2, getInProgressSlackTasks2, getSlackTasksMissingTree2, getInProgressTasksByContextKey2, isLinearTrackerContextKey2, findExistingLinearTrackerContextWork2, getLatestTaskByContextKey2, getLatestScriptRunStepTaskByContextKey2, getAgentWorkingOnThread2, getLatestActiveTaskInThread2, getLatestLeadTaskInThread2, getAgentWorkingOnContextKey2, getLatestActiveTaskByContextKey2, getLatestLeadTaskByContextKey2, getMostRecentTaskInThread2, findCompletedTaskInThread2, findRecentCancelledTaskInThread2, init_read, MODEL_PROFILE_CONFIG_KEY, listModelProfiles, getModelProfileByName, createModelProfile, updateModelProfile, modelProfileReferences, modelProfileRefError, deleteModelProfile, getAgentDefaultProfileName, repoModelOverrideKeys, taskProfileError, init_model_profiles, setHumanFreeQueueListener, drainHumanFreeReclassifyQueue, init_human_free, onTaskStarted, init_task_lifecycle_events, channelTopic, addWorkerSubscription, removeWorkerSubscription, listSubscribedWorkerAgents, init_channels, publishWorkerNudge, init_worker_nudges, createTask2, getPendingTaskForAgent2, assignUnassignedTaskPending2, startTask2, updateTaskClaudeSessionId2, recordTaskProviderIfUnset2, updateTaskTitle2, completeTask2, failTask2, overwriteTerminalTaskResultText2, cancelTask2, supersedeTask2, settleSupersededTaskDependents2, backfillSupersedeTaskResumeTaskId2, pauseTask2, resumeTask2, getPausedTasksForAgent2, getOrphanedInProgressTasksForAgent2, resetOrphanedInProgressTasksForAgent2, getRecentlyCancelledTasksForAgent2, deleteTask2, updateTaskProgress2, getChildWorkflowRunId, getWorkflowRunParent, getWorkflowRunLineage, getSettledChildRunParentSteps, init_workflow_runs, CHAT_SDK_ADAPTER_NAMES, CHAT_SDK_ADAPTER_SCHEMAS, ChatSdkAdaptersDraftSchema, firstIssueText, isAdapterEntryEnabled, init_schema, resolveQuickJSPoolSize, init_quickjs_pool_config, SLACK_REACTION_DEFAULTS, SLACK_REACTION_CONFIG_KEYS, reactionName, completedStatusIcon, init_reaction_shortcode, API_DRAINING_HEADER, API_DRAIN_MAX_MS_LIMIT, isApiDrainingResponse, init_api_drain, parseEnabledTools, init_enabled_tools, parseTaskToolManifest, CHAT_TASK_ONLY_TOOLS, isChatSdkTask, selectTaskTools, init_task_tool_manifest, tierConfigKey, init_model_tier_keys, isApiOnlyConfigKey, isInternalConfigKey, internalConfigKeyError, isReservedConfigKey, reservedKeyError, MAX_DB_RETENTION_DAYS, DB_RETENTION_TUNING_BOUNDS, validateRuntimeTokenTtlHours, validateControllerTokenTtlDays, validateControllerGraceSec, validateConfigValue, validateExportToEnv, init_swarm_config_guard, getDefaultAuthorizationIdForProvider, getOAuthApp, getOAuthAppById, getOAuthAppIdByProvider, createOAuthApp, updateOAuthAppById, upsertOAuthApp, listAuthorizationsForApp, getAuthorizationById, upsertAuthorization, updateAuthorizationTokens, updateAuthorizationIdentity, deleteAuthorizationById, deleteAuthorizationsForApp, createOAuthPending, consumeOAuthPending, gcOAuthPending, markAuthorizationRefreshFailed, getOAuthTokens, listAuthorizationSweepRows, listKeepAliveAuthorizations, deleteOAuthTokens, acquireOAuthRefreshLock, releaseOAuthRefreshLock, init_oauth, OpenAI2, init_openai, CANDIDATE_SET_MULTIPLIER, isGraphExpansionEnabled, EMBEDDING_DIMENSIONS, init_constants, LONGTERM_ROOT, MEMORY_KEY_PATTERN, MEMORY_KEY_PATTERN_MESSAGE, MEMORY_KEY_MAX_LENGTH, isLongtermKey, longtermKeyError, isConsolidatedKey, consolidatedKeyMessage, resolveStoreKey, init_key_paths, computeScore, rerank, init_reranker, rowToCandidate, init_sqlite_store, getEmbeddingProvider2, resetEmbeddingProvider2, getMemoryStore2, init_memory, embeddingProvider, embedScript, searchScripts, reembedAllScripts, init_embeddings, upsertScriptByName, getScript, getScriptById, getScriptVersion, listScripts, listScriptVersions, deleteScript, touchScratchScriptLastUsed, restoreScratchScriptLastUsedIfUnchanged, createScriptApi, listScriptApisForScript, getScriptApiById, getScriptApiSecret, updateScriptApi, rotateScriptApiSecret, deleteScriptApi, recordScriptApiUsage, init_db2, oauthSecretName, registerStoredSecret, loadSecretRegistry, init_secret_registry, STEERING_MOVED_ERROR, SteeringRequestError, isSteeringEnabled, getTaskSteeringFields, getTaskSteeringFieldsForTasks, promotePendingSteeringForTask, markSteeringUndeliverable, carryUnhandledSteering, requestSteering, init_steering, WorkflowReplayStateError, init_workflow_replay, SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS2, refreshActiveSessionOnActivity2, recordKeySeatMismatch2, getScriptRunExecutionArgs2, getSlackRenderV2ActivatedAt2, ensureSlackRenderV2Activation2, getSlackDelegationActivatedAt2, ensureSlackDelegationActivation2, isPendingSlackMessage2, isSettledSlackMessage2, recordSlackMessage2, reserveSlackMessage2, bindSlackMessageTimestamp2, updateSlackMessageRecord2, markSlackTreeRendered2, deleteSlackMessageRecord2, getSlackTreeMessage2, getSlackTreeMessageByThread2, getSlackOutcomeMessage2, getResolvableDeferralOutcomes2, markSlackDeferralResolved2, noteSlackOutcomeDeliveryFailure2, abandonSlackOutcomeDelivery2, getSlackTreeMessages2, getSlackMessageByChannelTs2, getSlackTasksInThread2, listSlackThreadsAwaitingHuman2, isSlackThreadAwaitingHuman2, markTaskSlackReplySent2, setSlackMessageTracking2, updateTaskVcs2, insertTaskAttachment2, recordTaskPullRequestAttachments2, getAssetKeyMappingByProvider2, upsertAssetKeyMapping2, getAssetKeyMapping2, listAssetSummaries2, moveAssetKey2, deleteTaskAttachment2, replaceTaskAttachment2, getTaskAttachments2, createSteeringMessage2, getSteeringMessagesForTask2, getSteeringMessageById2, getPendingSteeringForTask2, getPendingSteeringForAgent2, markSteeringDelivered2, markSteeringHandled2, markSteeringPromoted2, cancelPendingSteeringForTask2, hasPendingSteering2, getAgentWithTasks2, getAllAgentsWithTasks2, createLogEntry2, getLogsByAgentId2, getLogsByTaskId2, getLogsByTaskIdAndEventType2, getLogsByTaskIdChronological2, getLogsByEventType2, getAllLogs2, findRecentSimilarTasks2, createTaskExtended2, claimTask2, releaseTask2, acceptTask2, rejectTask2, moveTaskToBacklog2, moveTaskFromBacklog2, promoteDraftTask2, refreshDraftTaskLease2, promoteAbandonedDraftTasks2, releaseStaleReviewingTasks2, releaseStaleOfferedTasksForOfflineAgents2, getOfferedTasksForAgent2, claimOfferedTask2, getUnassignedTasksCount2, getUnassignedTaskIds2, getUnassignedTaskIdsForAgent2, checkDependencies2, getDependentTasks2, cascadeFailDependents2, updateAgentProfile2, updateAgentName2, createChannel2, getMessageById2, getChannelById2, getChannelByName2, getAllChannels2, deleteChannel2, postMessage2, getChannelMessages2, updateReadState2, getLastReadAt2, getUnreadMessages2, getMentionsForAgent2, getInboxSummary2, claimMentions2, releaseMentionProcessing2, releaseStaleMentionProcessing2, createService2, getServiceById2, getServiceByAgentAndName2, getServicesByAgentId2, getAllServices2, updateServiceStatus2, deleteService2, upsertService2, deleteServicesByAgentId2, createSessionLogs2, getSessionLogsByTaskId2, getSessionLogsBySession2, createSessionCost2, getSessionCostsByTaskId2, getSessionCostsByAgentId2, getAllSessionCosts2, getSessionCostsFiltered2, UNATTRIBUTED_USER_ID2, getSessionCostSummary2, getAttributionByPerson2, getDashboardCostSummary2, createInboxMessage2, getInboxMessageById2, getUnreadInboxMessages2, claimInboxMessages2, markInboxMessageRead2, markInboxMessageResponded2, markInboxMessageDelegated2, releaseStaleProcessingInbox2, getConcurrentContext2, getScheduledTasks2, getScheduledTaskById2, getScheduledTaskByName2, createScheduledTask2, updateScheduledTask2, deleteScheduledTask2, getDueScheduledTasks2, autoEncryptLegacyPlaintextSecrets2, maskSecrets2, getSwarmConfigs2, getInjectableGlobalConfigs2, getSwarmConfigById2, getSwarmConfigLookupById2, upsertSwarmConfig2, emitBuiltInIntegrationConnectedOnce2, deleteSwarmConfig2, deleteSwarmConfigByKey2, getResolvedConfig2, getSwarmRepos2, getSwarmRepoById2, getSwarmRepoByName2, getSwarmRepoByUrl2, createSwarmRepo2, updateSwarmRepo2, deleteSwarmRepo2, getAgentMailInboxMapping2, getAgentMailInboxMappingsByAgent2, getAllAgentMailInboxMappings2, createAgentMailInboxMapping2, deleteAgentMailInboxMapping2, findTaskByAgentMailThread2, insertActiveSession2, deleteActiveSession2, deleteActiveSessionById2, getActiveSessions2, heartbeatActiveSession2, cleanupStaleSessions2, cleanupAgentSessions2, updateActiveSessionProviderSessionId2, getActiveSessionForTask2, reassociateSessionLogs2, getStalledInProgressTasks2, getStalePinnedResumes2, failPendingResumeIfUnclaimed2, getIdleWorkersWithCapacity2, getUnassignedPoolTasks2, getStaleUnassignedAffinityTasks2, getRecentFailedTasks2, getRecentCompletedCount2, getRecentFailedCount2, createWorkflow2, getWorkflow2, listWorkflows2, updateWorkflow2, deleteWorkflow2, getWorkflowsByScheduleId2, createWorkflowRun2, getWorkflowRun2, updateWorkflowRun2, listWorkflowRuns2, countWorkflowRuns2, listWorkflowRunsPage2, createWorkflowRunStep2, getWorkflowRunStep2, updateWorkflowRunStep2, getWorkflowRunStepsByRunId2, getStuckWorkflowRuns2, getLastSuccessfulRun2, getLastRunStart2, getRetryableSteps2, getCompletedStepNodeIds2, getTaskByWorkflowRunStepId2, detachTaskFromWorkflowRunStep2, getStepByIdempotencyKey2, getStepCountForNode2, getLatestStepForNode2, getCurrentStepForNode2, createWorkflowVersion2, getWorkflowVersions2, getWorkflowVersion2, createAppVersion2, getAppVersions2, getAppVersion2, createPage2, getPage2, getPageBySlug2, getLatestPageBySlug2, listPagesByAgent2, listAllPages2, countAllPages2, countPagesByAgent2, updatePage2, deletePage2, incrementPageViewCount2, createPageVersion2, getPageVersions2, getPageVersion2, createMetric2, getMetric2, getMetricBySlug2, listMetricsByAgent2, listAllMetrics2, countAllMetrics2, countMetricsByAgent2, updateMetric2, deleteMetric2, createMetricVersion2, getMetricVersions2, getMetricVersion2, getPromptTemplates2, getPromptTemplateById2, upsertPromptTemplate2, deletePromptTemplate2, resetPromptTemplateToDefault2, getPromptTemplateHistory2, resolvePromptTemplate2, checkoutPromptTemplate2, getAllChannelActivityCursors2, getChannelActivityCursor2, upsertChannelActivityCursor2, createApprovalRequest2, getApprovalRequestById2, resolveApprovalRequest2, cancelApprovalRequestById2, cancelPendingApprovalRequestsForRun2, listCancelledApprovalRequestsForRun2, listCancelledApprovalRequestsForStep2, claimApprovalCancellationNotification2, completeApprovalCancellationNotificationClaim2, releaseApprovalCancellationNotificationClaim2, updateApprovalRequestNotifications2, listApprovalRequests2, getStuckApprovalRuns2, getApprovalRequestByStepId2, getExpiredPendingApprovals2, getStaleApprovalRequests2, createWaitState2, getWaitStateById2, getWaitStateByStepId2, getDueWaitStates2, getPendingEventWaitNames2, getPendingWaitsByEvent2, resolveWaitState2, getStuckWaitRuns2, SKILL_FILE_LIMITS2, normalizeSkillFilePath2, createSkill2, updateSkill2, listSkillFileManifest2, getSkillFiles2, getSkillFile2, upsertSkillFile2, upsertSkillFiles2, deleteSkillFile2, deleteSkill2, getSkillById2, getSkillByName2, listSkills2, searchSkills2, installSkill2, getSystemDefaultSkills2, installSystemDefaultSkillsForAgent2, uninstallSkill2, getAgentSkills2, toggleAgentSkill2, createMcpServer2, emitMcpServerConnectedTelemetry2, updateMcpServer2, deleteMcpServer2, getMcpServerById2, getMcpServerByName2, listMcpServers2, installMcpServer2, uninstallMcpServer2, getAgentMcpServers2, createContextSnapshot2, getContextSnapshotsByTaskId2, getContextSnapshotsBySessionId2, getContextSummaryByTaskId2, getAvailableKeyIndices2, recordKeyUsage2, setApiKeyPlan2, markKeyRateLimited2, recordKeyAuthFailure2, recordKeyRateLimitWindows2, setApiKeyName2, clearKeyRateLimit2, getKeyStatuses2, getKeyCostSummary2, getUserById2, getAllUsers2, createUser2, updateUser2, deleteUser2, listInboxState2, upsertInboxState2, listFavorites2, listUserFavorites2, getFavoriteItemIdSet2, setFavorite2, setUserFavorite2, withFavoriteFlags2, listTaskTemplates2, getRootTaskChain2, listRecentSessions2, countSessions2, getBudget2, getBudgets2, upsertBudget2, deleteBudget2, getAllPricingRows2, getPricingRows2, getActivePricingRow2, insertPricingRow2, deletePricingRow2, getDailySpendForAgent2, getDailySpendGlobal2, getDailySpendForUser2, recordBudgetRefusalNotification2, getBudgetRefusalNotification2, getRecentBudgetRefusalNotifications2, hasBudgetRefusalNotificationToday2, setBudgetRefusalFollowUpTaskId2, getLiveAgentCounts2, getReadyAgentCounts2, getInstanceActivity2, getSwarmMetrics2, hasFirstCompletedTask2, getKv2, sweepExpiredKv2, sweepExpiredKvPrefix2, upsertKv2, claimKv2, deleteKv2, KvTypeCollisionError2, incrKv2, kvPrefixUpperBound2, listKv2, countKv2, createScriptRun2, recordInlineScriptRun2, getScriptRun2, getScriptRunByIdempotencyKey2, listScriptRuns2, countScriptRuns2, countActiveScriptRuns2, updateScriptRun2, updateScriptRunIfNotTerminal2, updateScriptRunIfRunning2, getRunningScriptRuns2, getScriptRunJournalStep2, upsertScriptRunJournalStep2, listScriptRunJournalSteps2, countScriptRunJournalSteps2, countScriptRunJournalAgentTaskSteps2, exports_db, init_db3 };
|
|
27316
|
+
export { slackContextKey, chatSdkContextKey, chatThreadOfContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, azureDevOpsContextKey, azureDevOpsWorkItemContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, init_catalog, catalog_default, mapTriggerSurface, init_telemetry_context, TELEMETRY_PROXY_ORIGIN, normalizeOrgWebsite, orgLogoUrl, isFilledOrgLogoUrl, init_org_website, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, getCurrentRequestUserId, init_request_auth_context, setTelemetryIngestObserver, isTelemetryEnabled, _resolveIntegrationType, _resolveIntegrationProvider, initTelemetry, setTelemetryRoleResolver, isTelemetryReady, track, trackRelayed, telemetry, emitIntegrationConnected, init_telemetry, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, assertUrlSafe, parseEgressAllowlist, init_egress_guard, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, isInTransaction, init_db_client, breaksJsonValidity, scrubJsonValue, init_scrub_json, sealJson, init_sealed_json, getPromptTemplateDefaultDrift, init_default_drift, init_templates, init_templates2, isSqliteVecAvailable2, resolveSqliteVecExtensionPath2, __resetSqliteVecExtensionPathCacheForTests2, initDb2, getDb2, closeDb2, getDbClient2, init_runtime, cachedUserRole, configureOrgDomainPersistence, recomputeOrgDomain, scheduleOrgDomainRecompute, init_telemetry_identity, resolveTriggerSurface, emitTaskTelemetry, init_telemetry_trigger, CODEX_AUTH_WATCH_NAMESPACE, codexAuthBenchMarkerKey, isCodexAuthFailureReason, init_codex_auth_failure, isEnvExportRestrictedKey, init_config_env_export, MASKED_SECRET_VALUE, init_config_secrets, HeartbeatExpiryError, init_heartbeat_expiry, isRuntimePoolsEnabled, init_runtime_pools_flag, normalizeDate, normalizeDateRequired, init_date_utils, rowToAgent, updateAgentCredentialState2, updateAgentCredentialMissing2, createAgent2, getAgentById2, EXTENSION_AGENT_ROLE2, NOT_EXTENSION_AGENT_SQL2, isExtensionAgent2, extensionAgentAssignmentError2, ReservedAgentRoleError2, reservedRoleViolation2, ExtensionAgentAssignmentError2, getAllAgents2, getAgentStatusCounts2, getLeadAgent2, updateAgentStatus2, updateAgentMaxTasks2, updateAgentProvider2, setAgentHarnessProvider2, updateAgentCredStatus2, listAgentsWithCredStatusByProvider2, getAgentHarnessProviders2, updateAgentActivity2, MAX_EMPTY_POLLS2, incrementEmptyPollCount2, resetEmptyPollCount2, shouldBlockPolling2, deleteAgent2, getActiveTaskCount2, hasCapacity2, getRemainingCapacity2, updateAgentStatusFromCapacity2, isPoolAffinityEnforcementEnabled2, buildRoutingAffinityFromAgent2, isAgentEligibleForTask2, getAgentDailyTaskCounts2, init_agents, listApprovalRequestSummaries2, getPendingApprovalVoteState2, recordApprovalVotes2, computeContentHash2, createContextVersion2, getLatestContextVersion2, getContextVersion2, getContextVersionHistory2, vcsRepoName, vcsRepoUrlMatches, init_vcs_repo_match, rowToAgentTask, getTaskById2, getChildTasks2, hasNonTerminalResumeChild2, SUPERSEDED_RESUME_REPAIR_WINDOW_MS2, getSupersededTasksWithoutResume2, getSupersededTasksWithUnsettledDependents2, hasNonTerminalRerouteDecisionChild2, getTasksByAgentId2, getAgentCurrentTask2, getTasksByStatus2, findTaskByVcs2, findTaskByGitHub2, readableSessionCondition, getAllTasks2, getTasksCount2, getTaskStats2, getCompletedSlackTasks2, getPendingSlackRelayTasks2, markSlackRelayAttempted2, markSlackRelayDelivered2, markFinalizedSlackRelaysDelivered2, getPendingChatRelayTasks2, giveUpStaleChatRelays2, markChatRelayAttempted2, recordChatRelayError2, markChatRelayDelivered2, markChatRelayGivenUp2, getRecentlyFinishedWorkerTasks2, markTasksNotified2, resetTasksNotified2, getInProgressSlackTasks2, getSlackTasksMissingTree2, getInProgressTasksByContextKey2, isLinearTrackerContextKey2, findExistingLinearTrackerContextWork2, getLatestTaskByContextKey2, getLatestScriptRunStepTaskByContextKey2, getAgentWorkingOnThread2, getLatestActiveTaskInThread2, getLatestLeadTaskInThread2, getAgentWorkingOnContextKey2, getLatestActiveTaskByContextKey2, getLatestLeadTaskByContextKey2, getMostRecentTaskInThread2, findCompletedTaskInThread2, findRecentCancelledTaskInThread2, init_read, MODEL_PROFILE_CONFIG_KEY, listModelProfiles, getModelProfileByName, createModelProfile, updateModelProfile, modelProfileReferences, modelProfileRefError, deleteModelProfile, getAgentDefaultProfileName, repoModelOverrideKeys, taskProfileError, init_model_profiles, setHumanFreeQueueListener, drainHumanFreeReclassifyQueue, init_human_free, onTaskStarted, init_task_lifecycle_events, channelTopic, addWorkerSubscription, removeWorkerSubscription, listSubscribedWorkerAgents, init_channels, publishWorkerNudge, init_worker_nudges, createTask2, getPendingTaskForAgent2, assignUnassignedTaskPending2, startTask2, updateTaskClaudeSessionId2, recordTaskProviderIfUnset2, updateTaskTitle2, completeTask2, failTask2, overwriteTerminalTaskResultText2, cancelTask2, supersedeTask2, settleSupersededTaskDependents2, backfillSupersedeTaskResumeTaskId2, pauseTask2, resumeTask2, getPausedTasksForAgent2, getOrphanedInProgressTasksForAgent2, resetOrphanedInProgressTasksForAgent2, getRecentlyCancelledTasksForAgent2, deleteTask2, updateTaskProgress2, getChildWorkflowRunId, getWorkflowRunParent, getWorkflowRunLineage, getSettledChildRunParentSteps, init_workflow_runs, CHAT_SDK_ADAPTER_NAMES, CHAT_SDK_ADAPTER_SCHEMAS, ChatSdkAdaptersDraftSchema, firstIssueText, isAdapterEntryEnabled, init_schema, TELEMETRY_RANKING_KEY, PUBLIC_RANKING_ENABLED_KEY, RANKING_CATEGORIES, readTelemetryRanking, rankingFormSchema, mintRankingClaim, buildListing, rankingEntryFile, rankingPrUrl, rankingLeaveUrl, init_telemetry_ranking, resolveQuickJSPoolSize, init_quickjs_pool_config, SLACK_REACTION_DEFAULTS, SLACK_REACTION_CONFIG_KEYS, reactionName, completedStatusIcon, init_reaction_shortcode, API_DRAINING_HEADER, API_DRAIN_MAX_MS_LIMIT, isApiDrainingResponse, init_api_drain, parseEnabledTools, init_enabled_tools, parseTaskToolManifest, CHAT_TASK_ONLY_TOOLS, isChatSdkTask, selectTaskTools, init_task_tool_manifest, tierConfigKey, init_model_tier_keys, isApiOnlyConfigKey, isInternalConfigKey, internalConfigKeyError, isReservedConfigKey, reservedKeyError, MAX_DB_RETENTION_DAYS, DB_RETENTION_TUNING_BOUNDS, validateRuntimeTokenTtlHours, validateControllerTokenTtlDays, validateControllerGraceSec, validateConfigValue, validateExportToEnv, init_swarm_config_guard, getDefaultAuthorizationIdForProvider, getOAuthApp, getOAuthAppById, getOAuthAppIdByProvider, createOAuthApp, updateOAuthAppById, upsertOAuthApp, listAuthorizationsForApp, getAuthorizationById, upsertAuthorization, updateAuthorizationTokens, updateAuthorizationIdentity, deleteAuthorizationById, deleteAuthorizationsForApp, createOAuthPending, consumeOAuthPending, gcOAuthPending, markAuthorizationRefreshFailed, getOAuthTokens, listAuthorizationSweepRows, listKeepAliveAuthorizations, deleteOAuthTokens, acquireOAuthRefreshLock, releaseOAuthRefreshLock, init_oauth, OpenAI2, init_openai, CANDIDATE_SET_MULTIPLIER, isGraphExpansionEnabled, EMBEDDING_DIMENSIONS, init_constants, LONGTERM_ROOT, MEMORY_KEY_PATTERN, MEMORY_KEY_PATTERN_MESSAGE, MEMORY_KEY_MAX_LENGTH, isLongtermKey, longtermKeyError, isConsolidatedKey, consolidatedKeyMessage, resolveStoreKey, init_key_paths, computeScore, rerank, init_reranker, rowToCandidate, init_sqlite_store, getEmbeddingProvider2, resetEmbeddingProvider2, getMemoryStore2, init_memory, embeddingProvider, embedScript, searchScripts, reembedAllScripts, init_embeddings, upsertScriptByName, getScript, getScriptById, getScriptVersion, listScripts, listScriptVersions, deleteScript, touchScratchScriptLastUsed, restoreScratchScriptLastUsedIfUnchanged, createScriptApi, listScriptApisForScript, getScriptApiById, getScriptApiSecret, updateScriptApi, rotateScriptApiSecret, deleteScriptApi, recordScriptApiUsage, init_db2, oauthSecretName, registerStoredSecret, loadSecretRegistry, init_secret_registry, STEERING_MOVED_ERROR, SteeringRequestError, isSteeringEnabled, getTaskSteeringFields, getTaskSteeringFieldsForTasks, promotePendingSteeringForTask, markSteeringUndeliverable, carryUnhandledSteering, requestSteering, init_steering, WorkflowReplayStateError, init_workflow_replay, SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS2, refreshActiveSessionOnActivity2, getActiveSessionById, init_active_sessions, recordKeySeatMismatch2, getScriptRunExecutionArgs2, getSlackRenderV2ActivatedAt2, ensureSlackRenderV2Activation2, getSlackDelegationActivatedAt2, ensureSlackDelegationActivation2, isPendingSlackMessage2, isSettledSlackMessage2, recordSlackMessage2, reserveSlackMessage2, bindSlackMessageTimestamp2, updateSlackMessageRecord2, markSlackTreeRendered2, deleteSlackMessageRecord2, getSlackTreeMessage2, getSlackTreeMessageByThread2, getSlackOutcomeMessage2, getResolvableDeferralOutcomes2, markSlackDeferralResolved2, noteSlackOutcomeDeliveryFailure2, abandonSlackOutcomeDelivery2, getSlackTreeMessages2, getSlackMessageByChannelTs2, getSlackTasksInThread2, listSlackThreadsAwaitingHuman2, isSlackThreadAwaitingHuman2, markTaskSlackReplySent2, setSlackMessageTracking2, updateTaskVcs2, insertTaskAttachment2, recordTaskPullRequestAttachments2, getAssetKeyMappingByProvider2, upsertAssetKeyMapping2, getAssetKeyMapping2, listAssetSummaries2, moveAssetKey2, deleteTaskAttachment2, replaceTaskAttachment2, getTaskAttachments2, createSteeringMessage2, getSteeringMessagesForTask2, getSteeringMessageById2, getPendingSteeringForTask2, getPendingSteeringForAgent2, markSteeringDelivered2, markSteeringHandled2, markSteeringPromoted2, cancelPendingSteeringForTask2, hasPendingSteering2, getAgentWithTasks2, getAllAgentsWithTasks2, createLogEntry2, getLogsByAgentId2, getLogsByTaskId2, getLogsByTaskIdAndEventType2, getLogsByTaskIdChronological2, getLogsByEventType2, getAllLogs2, findRecentSimilarTasks2, createTaskExtended2, claimTask2, releaseTask2, acceptTask2, rejectTask2, moveTaskToBacklog2, moveTaskFromBacklog2, promoteDraftTask2, refreshDraftTaskLease2, promoteAbandonedDraftTasks2, releaseStaleReviewingTasks2, releaseStaleOfferedTasksForOfflineAgents2, getOfferedTasksForAgent2, claimOfferedTask2, getUnassignedTasksCount2, getUnassignedTaskIds2, getUnassignedTaskIdsForAgent2, checkDependencies2, getDependentTasks2, cascadeFailDependents2, updateAgentProfile2, updateAgentName2, createChannel2, getMessageById2, getChannelById2, getChannelByName2, getAllChannels2, deleteChannel2, postMessage2, getChannelMessages2, updateReadState2, getLastReadAt2, getUnreadMessages2, getMentionsForAgent2, getInboxSummary2, claimMentions2, releaseMentionProcessing2, releaseStaleMentionProcessing2, createService2, getServiceById2, getServiceByAgentAndName2, getServicesByAgentId2, getAllServices2, updateServiceStatus2, deleteService2, upsertService2, deleteServicesByAgentId2, createSessionLogs2, getSessionLogsByTaskId2, getSessionLogsBySession2, createSessionCost2, getSessionCostsByTaskId2, getSessionCostsByAgentId2, getAllSessionCosts2, getSessionCostsFiltered2, UNATTRIBUTED_USER_ID2, getSessionCostSummary2, getAttributionByPerson2, getDashboardCostSummary2, createInboxMessage2, getInboxMessageById2, getUnreadInboxMessages2, claimInboxMessages2, markInboxMessageRead2, markInboxMessageResponded2, markInboxMessageDelegated2, releaseStaleProcessingInbox2, getConcurrentContext2, getScheduledTasks2, getScheduledTaskById2, getScheduledTaskByName2, createScheduledTask2, updateScheduledTask2, deleteScheduledTask2, getDueScheduledTasks2, autoEncryptLegacyPlaintextSecrets2, maskSecrets2, getSwarmConfigs2, getInjectableGlobalConfigs2, getSwarmConfigById2, getSwarmConfigLookupById2, upsertSwarmConfig2, emitBuiltInIntegrationConnectedOnce2, deleteSwarmConfig2, deleteSwarmConfigByKey2, getResolvedConfig2, getSwarmRepos2, getSwarmRepoById2, getSwarmRepoByName2, getSwarmRepoByUrl2, createSwarmRepo2, updateSwarmRepo2, deleteSwarmRepo2, getAgentMailInboxMapping2, getAgentMailInboxMappingsByAgent2, getAllAgentMailInboxMappings2, createAgentMailInboxMapping2, deleteAgentMailInboxMapping2, findTaskByAgentMailThread2, insertActiveSession2, deleteActiveSession2, deleteActiveSessionById2, getActiveSessions2, heartbeatActiveSession2, cleanupStaleSessions2, cleanupAgentSessions2, updateActiveSessionProviderSessionId2, getActiveSessionForTask2, reassociateSessionLogs2, getStalledInProgressTasks2, getStalePinnedResumes2, failPendingResumeIfUnclaimed2, getIdleWorkersWithCapacity2, getUnassignedPoolTasks2, getStaleUnassignedAffinityTasks2, getRecentFailedTasks2, getRecentCompletedCount2, getRecentFailedCount2, createWorkflow2, getWorkflow2, listWorkflows2, updateWorkflow2, deleteWorkflow2, getWorkflowsByScheduleId2, createWorkflowRun2, getWorkflowRun2, updateWorkflowRun2, listWorkflowRuns2, countWorkflowRuns2, listWorkflowRunsPage2, createWorkflowRunStep2, getWorkflowRunStep2, updateWorkflowRunStep2, getWorkflowRunStepsByRunId2, getStuckWorkflowRuns2, getLastSuccessfulRun2, getLastRunStart2, getRetryableSteps2, getCompletedStepNodeIds2, getTaskByWorkflowRunStepId2, detachTaskFromWorkflowRunStep2, getStepByIdempotencyKey2, getStepCountForNode2, getLatestStepForNode2, getCurrentStepForNode2, createWorkflowVersion2, getWorkflowVersions2, getWorkflowVersion2, createAppVersion2, getAppVersions2, getAppVersion2, createPage2, getPage2, getPageBySlug2, getLatestPageBySlug2, listPagesByAgent2, listAllPages2, countAllPages2, countPagesByAgent2, updatePage2, deletePage2, incrementPageViewCount2, createPageVersion2, getPageVersions2, getPageVersion2, createMetric2, getMetric2, getMetricBySlug2, listMetricsByAgent2, listAllMetrics2, countAllMetrics2, countMetricsByAgent2, updateMetric2, deleteMetric2, createMetricVersion2, getMetricVersions2, getMetricVersion2, getPromptTemplates2, getPromptTemplateById2, upsertPromptTemplate2, deletePromptTemplate2, resetPromptTemplateToDefault2, getPromptTemplateHistory2, resolvePromptTemplate2, checkoutPromptTemplate2, getAllChannelActivityCursors2, getChannelActivityCursor2, upsertChannelActivityCursor2, createApprovalRequest2, getApprovalRequestById2, resolveApprovalRequest2, cancelApprovalRequestById2, cancelPendingApprovalRequestsForRun2, listCancelledApprovalRequestsForRun2, listCancelledApprovalRequestsForStep2, claimApprovalCancellationNotification2, completeApprovalCancellationNotificationClaim2, releaseApprovalCancellationNotificationClaim2, updateApprovalRequestNotifications2, listApprovalRequests2, getStuckApprovalRuns2, getApprovalRequestByStepId2, getExpiredPendingApprovals2, getStaleApprovalRequests2, createWaitState2, getWaitStateById2, getWaitStateByStepId2, getDueWaitStates2, getPendingEventWaitNames2, getPendingWaitsByEvent2, resolveWaitState2, getStuckWaitRuns2, SKILL_FILE_LIMITS2, normalizeSkillFilePath2, createSkill2, updateSkill2, listSkillFileManifest2, getSkillFiles2, getSkillFile2, upsertSkillFile2, upsertSkillFiles2, deleteSkillFile2, deleteSkill2, getSkillById2, getSkillByName2, listSkills2, searchSkills2, installSkill2, getSystemDefaultSkills2, installSystemDefaultSkillsForAgent2, uninstallSkill2, getAgentSkills2, toggleAgentSkill2, createMcpServer2, emitMcpServerConnectedTelemetry2, updateMcpServer2, deleteMcpServer2, getMcpServerById2, getMcpServerByName2, listMcpServers2, installMcpServer2, uninstallMcpServer2, getAgentMcpServers2, createContextSnapshot2, getContextSnapshotsByTaskId2, getContextSnapshotsBySessionId2, getContextSummaryByTaskId2, getAvailableKeyIndices2, recordKeyUsage2, setApiKeyPlan2, markKeyRateLimited2, recordKeyAuthFailure2, recordKeyRateLimitWindows2, setApiKeyName2, clearKeyRateLimit2, getKeyStatuses2, getKeyCostSummary2, getUserById2, getAllUsers2, createUser2, updateUser2, deleteUser2, listInboxState2, upsertInboxState2, listFavorites2, listUserFavorites2, getFavoriteItemIdSet2, setFavorite2, setUserFavorite2, withFavoriteFlags2, listTaskTemplates2, getRootTaskChain2, listRecentSessions2, countSessions2, getBudget2, getBudgets2, upsertBudget2, deleteBudget2, getAllPricingRows2, getPricingRows2, getActivePricingRow2, insertPricingRow2, deletePricingRow2, getDailySpendForAgent2, getDailySpendGlobal2, getDailySpendForUser2, recordBudgetRefusalNotification2, getBudgetRefusalNotification2, getRecentBudgetRefusalNotifications2, hasBudgetRefusalNotificationToday2, setBudgetRefusalFollowUpTaskId2, getLiveAgentCounts2, getReadyAgentCounts2, getInstanceActivity2, getSwarmMetrics2, hasFirstCompletedTask2, getKv2, sweepExpiredKv2, sweepExpiredKvPrefix2, upsertKv2, claimKv2, deleteKv2, KvTypeCollisionError2, incrKv2, kvPrefixUpperBound2, listKv2, countKv2, createScriptRun2, recordInlineScriptRun2, getScriptRun2, getScriptRunByIdempotencyKey2, listScriptRuns2, countScriptRuns2, countActiveScriptRuns2, updateScriptRun2, updateScriptRunIfNotTerminal2, updateScriptRunIfRunning2, getRunningScriptRuns2, getScriptRunJournalStep2, upsertScriptRunJournalStep2, listScriptRunJournalSteps2, countScriptRunJournalSteps2, countScriptRunJournalAgentTaskSteps2, exports_db, init_db3 };
|