@desplega.ai/agent-swarm 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +1 -0
  2. package/dist/{acp-adapter-v85a2bqy.js → acp-adapter-kedstxx6.js} +6 -6
  3. package/dist/{actions-zgcxfspj.js → actions-vget6r1k.js} +18 -16
  4. package/dist/{amp-adapter-jw9xfz42.js → amp-adapter-xeb5mktv.js} +2 -2
  5. package/dist/{app-4e1s4675.js → app-mqap8t8m.js} +3 -3
  6. package/dist/{assistant-v238n9dk.js → assistant-h0gv97mv.js} +20 -18
  7. package/dist/{boot-reembed-p666cw5n.js → boot-reembed-qr8a894z.js} +1 -1
  8. package/dist/{boot-reembed-w6pm64j4.js → boot-reembed-rj85jjhw.js} +1 -1
  9. package/dist/{boot-scrub-sweep-jcyjagn3.js → boot-scrub-sweep-eyfvn6v9.js} +3 -3
  10. package/dist/{boot-seeds-gbedmamp.js → boot-seeds-xs9a8dx1.js} +4 -4
  11. package/dist/{claude-adapter-q7wspzt8.js → claude-adapter-bm23cye7.js} +5 -5
  12. package/dist/{claude-managed-adapter-n7ahjyx6.js → claude-managed-adapter-1mwrsm9d.js} +2 -2
  13. package/dist/{claude-managed-setup-wza784fb.js → claude-managed-setup-gkfgks4j.js} +1 -1
  14. package/dist/{claude-sdk-session-yf400ptr.js → claude-sdk-session-apb4ypz3.js} +5 -5
  15. package/dist/cli-02vhhssk.js +848 -0
  16. package/dist/{cli-4ync7m60.js → cli-0ebey9hg.js} +1 -1
  17. package/dist/{cli-665j3feb.js → cli-0xk505e8.js} +1 -1
  18. package/dist/{cli-30m5q8mc.js → cli-1cevz46c.js} +5 -5
  19. package/dist/{cli-gzvb3d4a.js → cli-1jx0srjt.js} +3 -3
  20. package/dist/{cli-zj4d6afs.js → cli-1pa3rz69.js} +21 -6
  21. package/dist/{cli-fhvqt2fp.js → cli-2rwet3r7.js} +1 -1
  22. package/dist/{cli-azs9bhc5.js → cli-3wjs22x3.js} +2 -2
  23. package/dist/{cli-dxwh4j32.js → cli-4fhyq711.js} +45 -36
  24. package/dist/{cli-yv3n83x8.js → cli-5ff2sjyt.js} +1 -1
  25. package/dist/{cli-6vcyw6v7.js → cli-5s5hx57y.js} +5 -3
  26. package/dist/{cli-hz64bcnj.js → cli-6ftrrwm1.js} +9 -371
  27. package/dist/{cli-zes4tsbb.js → cli-8b9wvjps.js} +1 -1
  28. package/dist/cli-8cxkw1f5.js +382 -0
  29. package/dist/{cli-4s1kqrqg.js → cli-8rwvksbc.js} +2 -2
  30. package/dist/{cli-e09hj50q.js → cli-8wkb09q5.js} +11 -11
  31. package/dist/{cli-yv0vgscc.js → cli-a1esmmee.js} +13 -2
  32. package/dist/{cli-4hmaheb6.js → cli-avmqhatn.js} +7 -7
  33. package/dist/{cli-g6p7c2my.js → cli-b80a1100.js} +1 -1
  34. package/dist/{cli-tr24eeny.js → cli-bfc3k1x5.js} +3 -3
  35. package/dist/{cli-ka01m5rb.js → cli-bhwa8rzc.js} +13 -11
  36. package/dist/{cli-8cvvytad.js → cli-bn26xbcs.js} +2 -2
  37. package/dist/{cli-k28p6xh7.js → cli-c8fwpgqb.js} +1 -1
  38. package/dist/{cli-rc3r0bnh.js → cli-ccn0eybf.js} +1 -1
  39. package/dist/{cli-9td5ss65.js → cli-dsgj3e7a.js} +2 -2
  40. package/dist/{cli-a17tzmn0.js → cli-ecshf504.js} +2 -2
  41. package/dist/{cli-d43xqzbe.js → cli-eqgfs202.js} +1 -1
  42. package/dist/{cli-ppapy34w.js → cli-f3nx1h8z.js} +2 -2
  43. package/dist/{cli-ea7chd26.js → cli-ffbrkh1r.js} +74 -35
  44. package/dist/{cli-xgn4rwyv.js → cli-kk2r80n5.js} +4 -4
  45. package/dist/{cli-hn3pftj2.js → cli-kz116kvw.js} +3 -3
  46. package/dist/{cli-1v8w782f.js → cli-mvg2hf8p.js} +4 -4
  47. package/dist/{cli-5d1m1qca.js → cli-mz1ezzzh.js} +1 -1
  48. package/dist/{cli-jhmjwqcg.js → cli-nme7wery.js} +6 -6
  49. package/dist/{cli-65q70v2v.js → cli-nrrg0fvy.js} +18 -4
  50. package/dist/{cli-8jtrekpy.js → cli-p1m2b6gc.js} +7 -7
  51. package/dist/{cli-re4wkbzx.js → cli-rg7ntypm.js} +328 -47
  52. package/dist/{cli-fp4xbw07.js → cli-rsd7ga7v.js} +10 -8
  53. package/dist/{cli-etvn5ej2.js → cli-sppc0cmw.js} +1 -1
  54. package/dist/{cli-qrwp40st.js → cli-tg9ksbn8.js} +1 -1
  55. package/dist/{cli-6p7ddg72.js → cli-tgvpmnwz.js} +2 -2
  56. package/dist/{cli-q1812jbw.js → cli-tj4j2ts4.js} +6 -6
  57. package/dist/{cli-kqypty34.js → cli-ttaz6c7m.js} +2 -2
  58. package/dist/{cli-w7z94e6c.js → cli-tx00c0h6.js} +4 -2
  59. package/dist/{cli-4g629sgr.js → cli-wrv09v7q.js} +20 -1
  60. package/dist/{cli-cby329ny.js → cli-wyrr38xm.js} +2 -2
  61. package/dist/{cli-y3dvz6ge.js → cli-x1p5dhq2.js} +3 -3
  62. package/dist/{cli-8qsx817b.js → cli-x719j3vs.js} +219 -629
  63. package/dist/{cli-9e9kjqsj.js → cli-xfe63zx3.js} +1 -1
  64. package/dist/{cli-wtg6edvd.js → cli-ywyrffff.js} +1 -1
  65. package/dist/{cli-0rh20bp3.js → cli-zvze9rbm.js} +1 -1
  66. package/dist/cli.js +14 -14
  67. package/dist/{codex-adapter-nhjj2veb.js → codex-adapter-pp2gq8gr.js} +3 -3
  68. package/dist/{codex-hook-x6tm6y5m.js → codex-hook-qwzccd64.js} +1 -1
  69. package/dist/{codex-session-runner-6hggrjbx.js → codex-session-runner-0vzn09t8.js} +3 -3
  70. package/dist/{commands-mrw1ph2w.js → commands-psqhkttb.js} +2 -2
  71. package/dist/{controller-pt1zam5w.js → controller-t20vz2k8.js} +2 -2
  72. package/dist/{controllers-connect-ymw5541d.js → controllers-connect-gkxmqw9d.js} +24 -20
  73. package/dist/{cursor-adapter-cf4zh5x0.js → cursor-adapter-3v542qe5.js} +1 -1
  74. package/dist/{db-hy80219q.js → db-2xbyenjr.js} +2 -2
  75. package/dist/{db-hhpy6m4x.js → db-nc1rd869.js} +3 -2
  76. package/dist/{dispatcher-6pdjtkr1.js → dispatcher-ewceb8ts.js} +17 -15
  77. package/dist/{dsh-adapter-fbx06re2.js → dsh-adapter-75xwh78t.js} +1 -1
  78. package/dist/{easter-egg-3d-6hg2r942.js → easter-egg-3d-xsc47jwf.js} +1 -1
  79. package/dist/{execute-bcqc69a5.js → execute-gzmw1mnw.js} +1 -1
  80. package/dist/{external-channel-j6vb6ya1.js → external-channel-a5dsmxn4.js} +2 -2
  81. package/dist/{google-generative-ai-phpmwxvg.js → google-generative-ai-bmq8gkf3.js} +1 -1
  82. package/dist/{google-vertex-es9ybgdy.js → google-vertex-b1rvp52s.js} +1 -1
  83. package/dist/{grok-adapter-1193sprp.js → grok-adapter-vj88xr23.js} +7 -7
  84. package/dist/handlers-zbs90bny.js +39 -0
  85. package/dist/{heartbeat-h1w1ktce.js → heartbeat-t2m9r3wa.js} +20 -18
  86. package/dist/{hook-skrbja18.js → hook-8femx1bg.js} +4 -4
  87. package/dist/{hook-ejja4bpe.js → hook-xa677f8r.js} +5 -5
  88. package/dist/{http-mzh41mfj.js → http-xpmmq028.js} +868 -253
  89. package/dist/{index-vjn3wbzf.js → index-8pwc1jc8.js} +17 -15
  90. package/dist/{index-epr2gnbw.js → index-cdzyfrsp.js} +1 -1
  91. package/dist/{index-xmmkyx82.js → index-dg2tmj99.js} +17 -15
  92. package/dist/index-nxa6me0q.js +41 -0
  93. package/dist/{index-6rmnn89d.js → index-s7ckdajq.js} +9 -9
  94. package/dist/{index-wgsw9xcz.js → index-syztqdt6.js} +1 -1
  95. package/dist/{index-x0q2a4f9.js → index-ysd45kgc.js} +1 -1
  96. package/dist/{index-g909y089.js → index-zgvqzjsw.js} +8 -8
  97. package/dist/{keepalive-4djvbm2j.js → keepalive-3nr4st3r.js} +3 -3
  98. package/dist/{lead-61kqp604.js → lead-td8h2sfn.js} +33 -31
  99. package/dist/{maintenance-f3xhnjsm.js → maintenance-verwpe2c.js} +1 -1
  100. package/dist/{oauth-refresh-sweep-fpd6x6rw.js → oauth-refresh-sweep-9q2t0y3q.js} +2 -2
  101. package/dist/{onboard-196tjgyn.js → onboard-aytqedmq.js} +2 -2
  102. package/dist/{opencode-adapter-eeesgfqk.js → opencode-adapter-f4hryjny.js} +4 -4
  103. package/dist/{otel-impl-g8fh4c21.js → otel-impl-hckw4wt1.js} +1 -1
  104. package/dist/{pi-mono-adapter-zasp3ze3.js → pi-mono-adapter-hxby0ce1.js} +6 -6
  105. package/dist/{pricing-refresh-sdcf5yaz.js → pricing-refresh-5nvme3sm.js} +3 -3
  106. package/dist/{rbac-roles-bsp5657v.js → rbac-roles-pd8c26m1.js} +5 -3
  107. package/dist/{rbac-roles-2x4g1wb5.js → rbac-roles-vbpy21mg.js} +2 -2
  108. package/dist/{render-v2-0pyb39bb.js → render-v2-7nqgvk2q.js} +3 -3
  109. package/dist/{resume-a86tkj6r.js → resume-b6djcj3c.js} +6 -6
  110. package/dist/{runtime-ar8310ba.js → runtime-txrxc9za.js} +1 -1
  111. package/dist/session-access-fc3f9y12.js +25 -0
  112. package/dist/{setup-ypbzcapd.js → setup-n39szm6b.js} +1 -1
  113. package/dist/{virtual-modules-wzk6jf3a.js → virtual-modules-wyp2k6z3.js} +2 -2
  114. package/dist/{work-objects-yjp8de12.js → work-objects-jem2fre0.js} +20 -18
  115. package/dist/{worker-4ptnn1ge.js → worker-wr6xgfr2.js} +33 -31
  116. package/openapi.json +844 -110
  117. package/package.json +1 -1
  118. package/src/apps/action-caller.ts +6 -0
  119. package/src/apps/script-types.ts +16 -3
  120. package/src/be/db/active-sessions.ts +5 -0
  121. package/src/be/db/session-visibility.ts +29 -0
  122. package/src/be/db/tasks/read.ts +61 -3
  123. package/src/be/db/tasks/write.ts +15 -6
  124. package/src/be/db.ts +92 -33
  125. package/src/be/events.ts +11 -0
  126. package/src/be/migrations/230_session_shares.sql +23 -0
  127. package/src/be/rbac-roles.ts +2 -0
  128. package/src/be/session-shares.ts +244 -0
  129. package/src/be/swarm-config-guard.ts +23 -2
  130. package/src/commands/runner.ts +11 -0
  131. package/src/http/active-sessions.ts +13 -2
  132. package/src/http/agents.ts +10 -3
  133. package/src/http/all-routes.ts +1 -0
  134. package/src/http/api-keys.ts +3 -1
  135. package/src/http/approval-requests.ts +2 -1
  136. package/src/http/apps.ts +36 -11
  137. package/src/http/config.ts +3 -0
  138. package/src/http/context.ts +2 -0
  139. package/src/http/core.ts +39 -2
  140. package/src/http/events.ts +6 -2
  141. package/src/http/favorite-owner.ts +1 -1
  142. package/src/http/fs.ts +38 -3
  143. package/src/http/index.ts +3 -1
  144. package/src/http/memory.ts +3 -1
  145. package/src/http/ranking.ts +367 -0
  146. package/src/http/realtime.ts +26 -21
  147. package/src/http/route-def.ts +77 -11
  148. package/src/http/script-runs.ts +2 -1
  149. package/src/http/scripts.ts +8 -0
  150. package/src/http/session-access.ts +179 -0
  151. package/src/http/session-data.ts +10 -2
  152. package/src/http/sessions.ts +212 -12
  153. package/src/http/stats.ts +7 -3
  154. package/src/http/tasks.ts +83 -7
  155. package/src/http/used-by.ts +11 -3
  156. package/src/prompts/session-templates.ts +3 -1
  157. package/src/providers/amp-adapter.ts +1 -1
  158. package/src/ranking/telemetry-ranking.ts +147 -0
  159. package/src/ranking/usage.ts +57 -0
  160. package/src/rbac/admission.ts +22 -7
  161. package/src/rbac/legacy-policy.ts +2 -0
  162. package/src/rbac/permissions.ts +9 -0
  163. package/src/realtime/auth.ts +69 -0
  164. package/src/realtime/tickets.ts +4 -1
  165. package/src/realtime/transport.ts +77 -9
  166. package/src/slack/blocks.ts +18 -0
  167. package/src/slack/dm.ts +29 -0
  168. package/src/telemetry-contract/EVENTS.md +3 -0
  169. package/src/telemetry-contract/SOURCE.json +37 -4
  170. package/src/telemetry-contract/catalog.json +69 -0
  171. package/src/telemetry-contract/ranking/fixtures/expected.json +30 -0
  172. package/src/telemetry-contract/ranking/fixtures/invalid/bad-category.json +11 -0
  173. package/src/telemetry-contract/ranking/fixtures/invalid/bad-claim.json +11 -0
  174. package/src/telemetry-contract/ranking/fixtures/invalid/blank-description.json +11 -0
  175. package/src/telemetry-contract/ranking/fixtures/invalid/blank-name.json +11 -0
  176. package/src/telemetry-contract/ranking/fixtures/invalid/description-too-long.json +11 -0
  177. package/src/telemetry-contract/ranking/fixtures/invalid/domain-uppercase.json +11 -0
  178. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-scheme.json +11 -0
  179. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-www.json +11 -0
  180. package/src/telemetry-contract/ranking/fixtures/invalid/http-source-url.json +11 -0
  181. package/src/telemetry-contract/ranking/fixtures/invalid/missing-description.json +10 -0
  182. package/src/telemetry-contract/ranking/fixtures/invalid/missing-version.json +10 -0
  183. package/src/telemetry-contract/ranking/fixtures/invalid/name-not-string.json +11 -0
  184. package/src/telemetry-contract/ranking/fixtures/invalid/name-too-long.json +11 -0
  185. package/src/telemetry-contract/ranking/fixtures/invalid/not-object.json +1 -0
  186. package/src/telemetry-contract/ranking/fixtures/invalid/null.json +1 -0
  187. package/src/telemetry-contract/ranking/fixtures/invalid/other-with-subcategory.json +11 -0
  188. package/src/telemetry-contract/ranking/fixtures/invalid/oversize.json +1 -0
  189. package/src/telemetry-contract/ranking/fixtures/invalid/short-claim.json +11 -0
  190. package/src/telemetry-contract/ranking/fixtures/invalid/subcategory-other-category.json +11 -0
  191. package/src/telemetry-contract/ranking/fixtures/invalid/trailing-data.json +1 -0
  192. package/src/telemetry-contract/ranking/fixtures/invalid/unknown-field.json +12 -0
  193. package/src/telemetry-contract/ranking/fixtures/invalid/unsupported-version.json +11 -0
  194. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-not-date.json +11 -0
  195. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-offset.json +11 -0
  196. package/src/telemetry-contract/ranking/fixtures/invalid/wrong-case-field.json +11 -0
  197. package/src/telemetry-contract/ranking/fixtures/valid/category-without-subcategory.json +11 -0
  198. package/src/telemetry-contract/ranking/fixtures/valid/full.json +11 -0
  199. package/src/telemetry-contract/ranking/fixtures/valid/minimal.json +11 -0
  200. package/src/telemetry-contract/ranking/fixtures/valid/padded-text.json +11 -0
  201. package/src/telemetry-contract/ranking/fixtures/valid/unicode-name.json +11 -0
  202. package/src/telemetry-contract/ranking/listing.v1.schema.json +61 -0
  203. package/src/telemetry-contract/ranking/taxonomy.json +8 -0
  204. package/src/telemetry-contract/ranking-taxonomy.gen.ts +11 -0
  205. package/src/telemetry-contract/types.gen.ts +708 -1
  206. package/src/telemetry.ts +26 -2
  207. package/src/tests/apps-rbac.test.ts +189 -2
  208. package/src/tests/apps-script-types.test.ts +16 -3
  209. package/src/tests/check-pr-body.test.ts +23 -0
  210. package/src/tests/check-ranking-entry.test.ts +146 -0
  211. package/src/tests/db-extraction-contract.test.ts +1 -0
  212. package/src/tests/db-task-read-contract.test.ts +1 -0
  213. package/src/tests/docs-index-footprint.test.js +2 -2
  214. package/src/tests/org-identity.test.ts +44 -0
  215. package/src/tests/ranking-listing.test.ts +112 -0
  216. package/src/tests/ranking-route.test.ts +319 -0
  217. package/src/tests/ranking-usage.test.ts +50 -0
  218. package/src/tests/rbac-admission-e2e.test.ts +8 -0
  219. package/src/tests/rbac-admission.test.ts +38 -0
  220. package/src/tests/rbac-charact-http.test.ts +4 -3
  221. package/src/tests/rbac-engine.test.ts +2 -0
  222. package/src/tests/rbac-roles.test.ts +2 -0
  223. package/src/tests/realtime-room-surfaces.test.ts +3 -1
  224. package/src/tests/realtime-session-join-race.test.ts +142 -0
  225. package/src/tests/realtime-tickets.test.ts +24 -17
  226. package/src/tests/realtime-transport.test.ts +91 -0
  227. package/src/tests/session-route-posture.test.ts +639 -0
  228. package/src/tests/session-sharing-routes.test.ts +282 -0
  229. package/src/tests/session-sharing.test.ts +526 -0
  230. package/src/tests/sessions-detail-batch.test.ts +7 -1
  231. package/src/tests/slack-tool-blocks.test.ts +101 -0
  232. package/src/tests/slack-update.test.ts +55 -0
  233. package/src/tests/slack-user-dm.test.ts +177 -0
  234. package/src/tests/used-by-route.test.ts +10 -0
  235. package/src/tools/slack-post.ts +18 -12
  236. package/src/tools/slack-read.ts +13 -1
  237. package/src/tools/slack-reply.ts +7 -10
  238. package/src/tools/slack-start-thread.ts +18 -11
  239. package/src/tools/slack-update.ts +2 -9
  240. package/src/types.ts +35 -0
  241. package/src/utils/org-identity.ts +33 -0
  242. package/templates/skills/apps/SKILL.md +17 -0
  243. package/templates/skills/apps/content.md +17 -0
  244. package/dist/handlers-tb3xgjnm.js +0 -37
  245. package/dist/index-nyfcdpky.js +0 -39
  246. package/dist/{cli-n5mrsg0f.js → cli-60cgh1rv.js} +3 -3
  247. /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-yv0vgscc.js";
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-cby329ny.js";
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-4ync7m60.js";
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-w7z94e6c.js";
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-5d1m1qca.js";
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
  },
@@ -4476,7 +4552,7 @@ var init_runtime = __esm(() => {
4476
4552
  // src/telemetry-identity.ts
4477
4553
  async function loadUserRole(userId) {
4478
4554
  try {
4479
- const { getUserGrant } = await import("./rbac-roles-2x4g1wb5.js");
4555
+ const { getUserGrant } = await import("./rbac-roles-vbpy21mg.js");
4480
4556
  const grant = await getUserGrant(userId);
4481
4557
  const role = grant.grantsAll ? "admin" : "member";
4482
4558
  if (roleCache.size >= ROLE_CACHE_LIMIT) {
@@ -5524,8 +5600,9 @@ async function hasNonTerminalRerouteDecisionChild2(parentId) {
5524
5600
  LIMIT 1`, [parentId]);
5525
5601
  return row !== undefined && row !== null;
5526
5602
  }
5527
- async function getTasksByAgentId2(agentId) {
5528
- const rows = await getDbClient2().query("SELECT * FROM agent_tasks WHERE agentId = ? ORDER BY createdAt DESC", [agentId]);
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 ?? []]);
5529
5606
  return rows.map(rowToAgentTask);
5530
5607
  }
5531
5608
  async function getAgentCurrentTask2(agentId) {
@@ -5544,6 +5621,27 @@ async function findTaskByVcs2(vcsRepo, vcsNumber) {
5544
5621
  LIMIT 1`, [vcsRepo, vcsNumber]);
5545
5622
  return row ? rowToAgentTask(row) : null;
5546
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
+ }
5547
5645
  async function getAllTasks2(filters, opts) {
5548
5646
  const conditions = [];
5549
5647
  const params = [];
@@ -5623,6 +5721,11 @@ async function getAllTasks2(filters, opts) {
5623
5721
  if (!filters?.includeHeartbeat) {
5624
5722
  conditions.push(`(IFNULL(taskType, '') NOT IN ('heartbeat', 'heartbeat-checklist', 'boot-triage') AND tags NOT LIKE '%"heartbeat"%')`);
5625
5723
  }
5724
+ if (filters?.readableBy) {
5725
+ const readable = readableSessionCondition(filters.readableBy.userId);
5726
+ conditions.push(readable.sql);
5727
+ params.push(...readable.params);
5728
+ }
5626
5729
  const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
5627
5730
  const limit = filters?.limit ?? 25;
5628
5731
  const offset = filters?.offset ?? 0;
@@ -5740,6 +5843,11 @@ async function getTasksCount2(filters) {
5740
5843
  if (!filters?.includeHeartbeat) {
5741
5844
  conditions.push(`(IFNULL(taskType, '') NOT IN ('heartbeat', 'heartbeat-checklist', 'boot-triage') AND tags NOT LIKE '%"heartbeat"%')`);
5742
5845
  }
5846
+ if (filters?.readableBy) {
5847
+ const readable = readableSessionCondition(filters.readableBy.userId);
5848
+ conditions.push(readable.sql);
5849
+ params.push(...readable.params);
5850
+ }
5743
5851
  const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
5744
5852
  const query = `SELECT COUNT(*) as count FROM agent_tasks ${whereClause}`;
5745
5853
  const result = await getDbClient2().get(query, params);
@@ -6329,6 +6437,26 @@ var init_model_profiles = __esm(() => {
6329
6437
  init_read();
6330
6438
  });
6331
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
+
6332
6460
  // src/be/db/tasks/human-free.ts
6333
6461
  function humanFreeCase(parentFlag) {
6334
6462
  return `CASE
@@ -7168,10 +7296,11 @@ async function resumeTask2(taskId) {
7168
7296
  }
7169
7297
  return row ? rowToAgentTask(row) : null;
7170
7298
  }
7171
- async function getPausedTasksForAgent2(agentId) {
7299
+ async function getPausedTasksForAgent2(agentId, readableBy) {
7300
+ const readable = readableBy ? readableSessionCondition(readableBy.userId) : undefined;
7172
7301
  const rows = await getDbClient2().query(`SELECT * FROM agent_tasks
7173
- WHERE agentId = ? AND status = 'paused'
7174
- 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 ?? []]);
7175
7304
  return rows.map(rowToAgentTask);
7176
7305
  }
7177
7306
  async function getOrphanedInProgressTasksForAgent2(agentId, minAgeSeconds = 60) {
@@ -7217,13 +7346,14 @@ async function resetOrphanedInProgressTasksForAgent2(agentId, minAgeSeconds = 60
7217
7346
  }
7218
7347
  return rows.map(rowToAgentTask);
7219
7348
  }
7220
- async function getRecentlyCancelledTasksForAgent2(agentId) {
7349
+ async function getRecentlyCancelledTasksForAgent2(agentId, readableBy) {
7221
7350
  const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000).toISOString();
7351
+ const readable = readableBy ? readableSessionCondition(readableBy.userId) : undefined;
7222
7352
  const rows = await getDbClient2().query(`SELECT * FROM agent_tasks
7223
7353
  WHERE agentId = ?
7224
7354
  AND status = 'cancelled'
7225
- AND finishedAt > ?
7226
- ORDER BY finishedAt DESC`, [agentId, fiveMinutesAgo]);
7355
+ AND finishedAt > ?${readable ? ` AND ${readable.sql}` : ""}
7356
+ ORDER BY finishedAt DESC`, [agentId, fiveMinutesAgo, ...readable?.params ?? []]);
7227
7357
  return rows.map(rowToAgentTask);
7228
7358
  }
7229
7359
  async function deleteTask2(id) {
@@ -7496,6 +7626,108 @@ var init_schema = __esm(() => {
7496
7626
  };
7497
7627
  });
7498
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
+
7499
7731
  // src/scripts-runtime/executors/quickjs-pool-config.ts
7500
7732
  function validateQuickJSPoolSize(value) {
7501
7733
  const error = `Invalid SCRIPT_QUICKJS_POOL_SIZE (must be an integer between 1 and ${MAX_QUICKJS_POOL_SIZE})`;
@@ -7660,7 +7892,8 @@ function isInternalConfigKey(key) {
7660
7892
  return INTERNAL_CONFIG_KEYS.has(key.toLowerCase());
7661
7893
  }
7662
7894
  function internalConfigKeyError(key) {
7663
- const owner = key.toLowerCase() === "runtime_owner_id" ? "the runtime supervisor" : "/api/onboarding";
7895
+ const lower = key.toLowerCase();
7896
+ const owner = lower === "runtime_owner_id" ? "the runtime supervisor" : lower === TELEMETRY_RANKING_KEY ? "/api/ranking" : "/api/onboarding";
7664
7897
  return new Error(`Key '${key}' is managed by ${owner}`);
7665
7898
  }
7666
7899
  function isReservedConfigKey(key) {
@@ -7769,6 +8002,7 @@ function validateExportToEnv(key, exportToEnv) {
7769
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;
7770
8003
  var init_swarm_config_guard = __esm(() => {
7771
8004
  init_schema();
8005
+ init_telemetry_ranking();
7772
8006
  init_quickjs_pool_config();
7773
8007
  init_reaction_shortcode();
7774
8008
  init_types();
@@ -7795,7 +8029,11 @@ var init_swarm_config_guard = __esm(() => {
7795
8029
  "CHAT_SDK_API_URL_OVERRIDES"
7796
8030
  ]);
7797
8031
  API_ONLY_CONFIG_KEYS = new Set(["API_AGENT_FS_API_KEY", "SLACK_SIGNING_SECRET"]);
7798
- INTERNAL_CONFIG_KEYS = new Set(["onboarding_state", "runtime_owner_id"]);
8032
+ INTERNAL_CONFIG_KEYS = new Set([
8033
+ "onboarding_state",
8034
+ "runtime_owner_id",
8035
+ TELEMETRY_RANKING_KEY
8036
+ ]);
7799
8037
  BOOLEAN_LITERALS = ["true", "false", "1", "0"];
7800
8038
  DB_RETENTION_TUNING_BOUNDS = {
7801
8039
  DB_RETENTION_TICK_BUDGET_MS: { min: 1000, max: 300000 },
@@ -7837,6 +8075,16 @@ var init_swarm_config_guard = __esm(() => {
7837
8075
  return "Invalid TASK_TOOL_MANIFESTS (expected JSON with taskTypes and/or schedules maps, each selecting at most 16 known swarm tools)";
7838
8076
  }
7839
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
+ },
7840
8088
  SWARM_ENABLED_TOOLS: (value) => {
7841
8089
  try {
7842
8090
  if (typeof value !== "string")
@@ -7910,6 +8158,7 @@ var init_swarm_config_guard = __esm(() => {
7910
8158
  },
7911
8159
  ...booleanValidators([
7912
8160
  "SWARM_USED_BY_CONSENT",
8161
+ "PUBLIC_RANKING_ENABLED",
7913
8162
  "SWARM_DEV_MODE",
7914
8163
  "MULTI_RUNTIME_ENABLED",
7915
8164
  "STEERING_ENABLED",
@@ -18484,7 +18733,7 @@ async function loadSecretRegistry() {
18484
18733
  result.failed += 1;
18485
18734
  }
18486
18735
  try {
18487
- const { loadRuntimeControllerSecrets } = await import("./db-hhpy6m4x.js");
18736
+ const { loadRuntimeControllerSecrets } = await import("./db-nc1rd869.js");
18488
18737
  const loaded = await loadRuntimeControllerSecrets();
18489
18738
  result.runtimeController = loaded.count;
18490
18739
  result.failed += loaded.failed;
@@ -18741,6 +18990,9 @@ async function refreshActiveSessionOnActivity2(taskId, minIntervalMs = SESSION_A
18741
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()]);
18742
18991
  return result.changes > 0;
18743
18992
  }
18993
+ async function getActiveSessionById(id) {
18994
+ return getDbClient2().get("SELECT * FROM active_sessions WHERE id = ?", [id]);
18995
+ }
18744
18996
  var SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS2 = 30000;
18745
18997
  var init_active_sessions = __esm(() => {
18746
18998
  init_runtime();
@@ -20329,11 +20581,12 @@ async function getSteeringMessageById2(id) {
20329
20581
  async function getPendingSteeringForTask2(taskId) {
20330
20582
  return await getSteeringMessagesForTask2(taskId, { status: "pending" });
20331
20583
  }
20332
- async function getPendingSteeringForAgent2(agentId) {
20584
+ async function getPendingSteeringForAgent2(agentId, readableBy) {
20585
+ const readable = readableBy ? readableSessionCondition(readableBy.userId, "t.id") : undefined;
20333
20586
  const rows = await getDbClient2().query(`${STEERING_MESSAGE_SELECT}
20334
20587
  JOIN agent_tasks t ON t.id = m.task_id
20335
- WHERE t.agentId = ? AND m.status = 'pending'
20336
- 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 ?? []]);
20337
20590
  return rows.map(rowToSteeringMessage);
20338
20591
  }
20339
20592
  async function markSteeringDelivered2(id, deliveredMode, expectedTaskId) {
@@ -20389,12 +20642,12 @@ async function hasPendingSteering2(taskId) {
20389
20642
  LIMIT 1`, [taskId]);
20390
20643
  return row !== null;
20391
20644
  }
20392
- async function getAgentWithTasks2(id) {
20645
+ async function getAgentWithTasks2(id, readableBy) {
20393
20646
  return await getDbClient2().transaction(async () => {
20394
20647
  const agent = await getAgentById2(id);
20395
20648
  if (!agent)
20396
20649
  return null;
20397
- const tasks = await getTasksByAgentId2(id);
20650
+ const tasks = await getTasksByAgentId2(id, readableBy);
20398
20651
  return { ...agent, tasks };
20399
20652
  }, { readOnly: true });
20400
20653
  }
@@ -20403,7 +20656,7 @@ async function getAllAgentsWithTasks2(opts) {
20403
20656
  const agents = await getAllAgents2({ slim: opts?.slim ?? false });
20404
20657
  return await Promise.all(agents.map(async (agent) => ({
20405
20658
  ...agent,
20406
- tasks: await getTasksByAgentId2(agent.id)
20659
+ tasks: await getTasksByAgentId2(agent.id, opts?.readableBy)
20407
20660
  })));
20408
20661
  }, { readOnly: true });
20409
20662
  }
@@ -20436,8 +20689,9 @@ async function createLogEntry2(entry) {
20436
20689
  throw new Error("Failed to create log entry");
20437
20690
  return rowToAgentLog(row);
20438
20691
  }
20439
- async function getLogsByAgentId2(agentId) {
20440
- const rows = await getDbClient2().query("SELECT * FROM agent_log WHERE agentId = ? ORDER BY createdAt DESC", [agentId]);
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 ?? []]);
20441
20695
  return rows.map(rowToAgentLog);
20442
20696
  }
20443
20697
  async function getLogsByTaskId2(taskId, limit = 200) {
@@ -20456,12 +20710,14 @@ async function getLogsByEventType2(eventType) {
20456
20710
  const rows = await getDbClient2().query("SELECT * FROM agent_log WHERE eventType = ? ORDER BY createdAt DESC", [eventType]);
20457
20711
  return rows.map(rowToAgentLog);
20458
20712
  }
20459
- 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 ?? [];
20460
20716
  if (limit) {
20461
- const rows = await getDbClient2().query("SELECT * FROM agent_log WHERE eventType != 'agent_status_change' ORDER BY createdAt DESC LIMIT ?", [limit]);
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]);
20462
20718
  return rows.map(rowToAgentLog);
20463
20719
  }
20464
- const rows = await getDbClient2().query("SELECT * FROM agent_log ORDER BY createdAt DESC");
20720
+ const rows = await getDbClient2().query(`SELECT * FROM agent_log${readable ? ` WHERE ${readable.sql}` : ""} ORDER BY createdAt DESC`, readableParams);
20465
20721
  return rows.map(rowToAgentLog);
20466
20722
  }
20467
20723
  async function findRecentSimilarTasks2(opts) {
@@ -22336,21 +22592,24 @@ async function releaseStaleProcessingInbox2(timeoutMinutes = 30) {
22336
22592
  WHERE status = 'processing' AND lastUpdatedAt < ?`, [now, cutoffTime]);
22337
22593
  return result.changes;
22338
22594
  }
22339
- async function getConcurrentContext2() {
22595
+ async function getConcurrentContext2(readableBy) {
22340
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 ?? [];
22341
22600
  const processingInboxMessages = await client.query("SELECT id, content, source, slackChannelId, slackThreadTs, createdAt FROM inbox_messages WHERE status = 'processing' ORDER BY createdAt DESC");
22342
22601
  const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000).toISOString();
22343
22602
  const recentTaskDelegations = await client.query(`SELECT t.id, t.task, t.agentId, a.name as agentName, t.creatorAgentId, t.status, t.createdAt
22344
22603
  FROM agent_tasks t
22345
22604
  LEFT JOIN agents a ON t.agentId = a.id
22346
22605
  WHERE t.createdAt > ?
22347
- AND t.creatorAgentId IN (SELECT id FROM agents WHERE isLead = 1)
22348
- 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]);
22349
22608
  const activeSwarmTasks = await client.query(`SELECT t.id, t.task, t.agentId, a.name as agentName, t.status, t.createdAt, t.progress
22350
22609
  FROM agent_tasks t
22351
22610
  LEFT JOIN agents a ON t.agentId = a.id
22352
- WHERE t.status = 'in_progress'
22353
- ORDER BY t.createdAt DESC`);
22611
+ WHERE t.status = 'in_progress'${readableSql}
22612
+ ORDER BY t.createdAt DESC`, readableParams);
22354
22613
  return {
22355
22614
  processingInboxMessages,
22356
22615
  recentTaskDelegations,
@@ -23094,11 +23353,22 @@ async function deleteActiveSessionById2(id) {
23094
23353
  const result = await getDbClient2().run("DELETE FROM active_sessions WHERE id = ?", [id]);
23095
23354
  return result.changes > 0;
23096
23355
  }
23097
- async function getActiveSessions2(agentId) {
23356
+ async function getActiveSessions2(agentId, readableBy) {
23357
+ const conditions = [];
23358
+ const params = [];
23098
23359
  if (agentId) {
23099
- return await getDbClient2().query("SELECT * FROM active_sessions WHERE agentId = ? ORDER BY startedAt DESC", [agentId]);
23360
+ conditions.push("agentId = ?");
23361
+ params.push(agentId);
23100
23362
  }
23101
- return await getDbClient2().query("SELECT * FROM active_sessions ORDER BY startedAt DESC");
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);
23102
23372
  }
23103
23373
  async function heartbeatActiveSession2(taskId) {
23104
23374
  const now = new Date().toISOString();
@@ -26153,6 +26423,11 @@ async function listRecentSessions2(opts) {
26153
26423
  conditions.push(`r.contextKey LIKE ? ESCAPE '\\'`);
26154
26424
  params.push(literalPrefixPattern(opts.contextKeyPrefix));
26155
26425
  }
26426
+ if (opts?.viewer) {
26427
+ const viewer = sessionViewerCondition(opts.viewer);
26428
+ conditions.push(viewer.sql);
26429
+ params.push(...viewer.params);
26430
+ }
26156
26431
  params.push(limit, offset);
26157
26432
  const rootRows = await getDbClient2().query(`WITH RECURSIVE chain(root_id, id, lastUpdatedAt, status) AS (
26158
26433
  SELECT r.id, r.id, r.lastUpdatedAt, r.status
@@ -26212,26 +26487,31 @@ async function countSessions2(opts) {
26212
26487
  const sources = opts?.source?.filter((s) => s.length > 0) ?? [];
26213
26488
  const q = opts?.q?.trim();
26214
26489
  const requestedByUserId = opts?.requestedByUserId?.trim() || undefined;
26215
- const conditions = ["parentTaskId IS NULL"];
26490
+ const conditions = ["r.parentTaskId IS NULL"];
26216
26491
  const params = [];
26217
26492
  if (sources.length > 0) {
26218
- conditions.push(`source IN (${sources.map(() => "?").join(", ")})`);
26493
+ conditions.push(`r.source IN (${sources.map(() => "?").join(", ")})`);
26219
26494
  params.push(...sources);
26220
26495
  }
26221
26496
  if (q && q.length > 0) {
26222
- conditions.push("(lower(task) LIKE ? OR lower(COALESCE(title, '')) LIKE ?)");
26497
+ conditions.push("(lower(r.task) LIKE ? OR lower(COALESCE(r.title, '')) LIKE ?)");
26223
26498
  const like = `%${q.toLowerCase()}%`;
26224
26499
  params.push(like, like);
26225
26500
  }
26226
26501
  if (requestedByUserId) {
26227
- conditions.push("requestedByUserId = ?");
26502
+ conditions.push("r.requestedByUserId = ?");
26228
26503
  params.push(requestedByUserId);
26229
26504
  }
26230
26505
  if (opts?.contextKeyPrefix) {
26231
- conditions.push(`contextKey LIKE ? ESCAPE '\\'`);
26506
+ conditions.push(`r.contextKey LIKE ? ESCAPE '\\'`);
26232
26507
  params.push(literalPrefixPattern(opts.contextKeyPrefix));
26233
26508
  }
26234
- const row = await getDbClient2().get(`SELECT COUNT(*) AS count FROM agent_tasks WHERE ${conditions.join(" AND ")}`, params);
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);
26235
26515
  return row?.count ?? 0;
26236
26516
  }
26237
26517
  function rowToBudget(row) {
@@ -26960,6 +27240,7 @@ var init_db3 = __esm(() => {
26960
27240
  init_context_versions();
26961
27241
  init_model_profiles();
26962
27242
  init_runtime();
27243
+ init_session_visibility();
26963
27244
  init_human_free();
26964
27245
  init_read();
26965
27246
  init_write();
@@ -27032,4 +27313,4 @@ var init_db3 = __esm(() => {
27032
27313
  };
27033
27314
  });
27034
27315
 
27035
- 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 };