@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.
Files changed (266) hide show
  1. package/README.md +1 -0
  2. package/dist/{acp-adapter-k0vwfyvn.js → acp-adapter-kedstxx6.js} +6 -6
  3. package/dist/{actions-w4pnb8vz.js → actions-vget6r1k.js} +18 -16
  4. package/dist/{amp-adapter-0cmxb2t5.js → amp-adapter-xeb5mktv.js} +2 -2
  5. package/dist/{app-zneem7g9.js → app-mqap8t8m.js} +3 -3
  6. package/dist/{assistant-wbzd2rnr.js → assistant-h0gv97mv.js} +20 -18
  7. package/dist/{boot-reembed-4kx69j3g.js → boot-reembed-qr8a894z.js} +1 -1
  8. package/dist/{boot-reembed-db0wwgy1.js → boot-reembed-rj85jjhw.js} +1 -1
  9. package/dist/{boot-scrub-sweep-tfv4d3mm.js → boot-scrub-sweep-eyfvn6v9.js} +3 -3
  10. package/dist/{boot-seeds-w2hmkxn5.js → boot-seeds-xs9a8dx1.js} +4 -4
  11. package/dist/{claude-adapter-5qrc2paq.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-7ra32em4.js → claude-managed-setup-gkfgks4j.js} +1 -1
  14. package/dist/{claude-sdk-session-cd02gc76.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-8c1m9mhy.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-vmbakbq0.js → cli-2rwet3r7.js} +1 -1
  22. package/dist/{cli-azs9bhc5.js → cli-3wjs22x3.js} +2 -2
  23. package/dist/{cli-tba8fxf9.js → cli-4fhyq711.js} +45 -36
  24. package/dist/{cli-ak4c12mh.js → cli-5ff2sjyt.js} +1 -1
  25. package/dist/{cli-6q7pyd3k.js → cli-5s5hx57y.js} +5 -3
  26. package/dist/{cli-h23mr2s6.js → cli-6ftrrwm1.js} +9 -371
  27. package/dist/{cli-9ac0mkg5.js → cli-8b9wvjps.js} +1 -1
  28. package/dist/cli-8cxkw1f5.js +382 -0
  29. package/dist/{cli-xhgtay7w.js → cli-8rwvksbc.js} +2 -2
  30. package/dist/{cli-e09hj50q.js → cli-8wkb09q5.js} +11 -11
  31. package/dist/{cli-ksrphveb.js → cli-a1esmmee.js} +14 -2
  32. package/dist/{cli-xnp2vkx7.js → cli-avmqhatn.js} +7 -7
  33. package/dist/{cli-xx13gqf3.js → cli-b80a1100.js} +1 -1
  34. package/dist/{cli-z1hh99j0.js → cli-bfc3k1x5.js} +3 -3
  35. package/dist/{cli-0k9rcwfy.js → cli-bhwa8rzc.js} +33 -15
  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-jrk8mj0t.js → cli-ecshf504.js} +2 -2
  41. package/dist/{cli-raejy0mp.js → cli-eqgfs202.js} +1 -1
  42. package/dist/{cli-ppapy34w.js → cli-f3nx1h8z.js} +2 -2
  43. package/dist/{cli-c9vrwcpb.js → cli-ffbrkh1r.js} +74 -35
  44. package/dist/{cli-mnry16kh.js → cli-kk2r80n5.js} +4 -4
  45. package/dist/{cli-c0dpzwnx.js → cli-kz116kvw.js} +3 -3
  46. package/dist/{cli-e5y285rg.js → cli-mvg2hf8p.js} +4 -4
  47. package/dist/{cli-2jm992rm.js → cli-mz1ezzzh.js} +2 -2
  48. package/dist/{cli-dw0njd9q.js → cli-nme7wery.js} +6 -6
  49. package/dist/{cli-mvsfbbgq.js → cli-nrrg0fvy.js} +18 -4
  50. package/dist/{cli-8jtrekpy.js → cli-p1m2b6gc.js} +7 -7
  51. package/dist/{cli-4c7k75rq.js → cli-rg7ntypm.js} +378 -84
  52. package/dist/{cli-z3dk189k.js → cli-rsd7ga7v.js} +10 -8
  53. package/dist/{cli-etvn5ej2.js → cli-sppc0cmw.js} +1 -1
  54. package/dist/{cli-8w65vwee.js → cli-tg9ksbn8.js} +1 -1
  55. package/dist/{cli-th8krqbf.js → cli-tgvpmnwz.js} +2 -2
  56. package/dist/{cli-hwc4a9xm.js → cli-tj4j2ts4.js} +6 -6
  57. package/dist/{cli-jhhb2v9n.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-5ks6x36q.js → cli-x1p5dhq2.js} +3 -3
  62. package/dist/{cli-bddxamg7.js → cli-x719j3vs.js} +220 -629
  63. package/dist/{cli-ztcxv5nv.js → cli-xfe63zx3.js} +1 -1
  64. package/dist/{cli-q6gw45wj.js → cli-ywyrffff.js} +1 -1
  65. package/dist/{cli-p46xdr1m.js → cli-zvze9rbm.js} +1 -1
  66. package/dist/cli.js +15 -15
  67. package/dist/{codex-adapter-m0fx3v3s.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-j9m2gfyy.js → codex-session-runner-0vzn09t8.js} +3 -3
  70. package/dist/{commands-ktnqwrv4.js → commands-psqhkttb.js} +2 -2
  71. package/dist/{controller-nex2he8v.js → controller-t20vz2k8.js} +2 -2
  72. package/dist/{controllers-connect-6yhwqv9v.js → controllers-connect-gkxmqw9d.js} +24 -20
  73. package/dist/{cursor-adapter-02s5ekva.js → cursor-adapter-3v542qe5.js} +1 -1
  74. package/dist/{db-jvr86v7f.js → db-2xbyenjr.js} +2 -2
  75. package/dist/{db-19tw9r5s.js → db-nc1rd869.js} +3 -2
  76. package/dist/{dispatcher-d3mnsg2y.js → dispatcher-ewceb8ts.js} +17 -15
  77. package/dist/{dsh-adapter-63rvej88.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-44cwer32.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-ysp907f6.js → grok-adapter-vj88xr23.js} +7 -7
  84. package/dist/handlers-zbs90bny.js +39 -0
  85. package/dist/{heartbeat-2etacsqq.js → heartbeat-t2m9r3wa.js} +20 -18
  86. package/dist/{hook-mzxxs5n2.js → hook-8femx1bg.js} +4 -4
  87. package/dist/{hook-3kvmax6d.js → hook-xa677f8r.js} +5 -5
  88. package/dist/{http-fn978m0g.js → http-xpmmq028.js} +940 -269
  89. package/dist/{index-e4tsa1h7.js → index-8pwc1jc8.js} +17 -15
  90. package/dist/{index-w2wr89xd.js → index-cdzyfrsp.js} +1 -1
  91. package/dist/{index-1r8hw4vd.js → index-dg2tmj99.js} +17 -15
  92. package/dist/index-nxa6me0q.js +41 -0
  93. package/dist/{index-039x2sag.js → index-s7ckdajq.js} +42 -14
  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-d4nzs76x.js → keepalive-3nr4st3r.js} +3 -3
  98. package/dist/{lead-8h5n9k5f.js → lead-td8h2sfn.js} +33 -31
  99. package/dist/{maintenance-ea6jfw42.js → maintenance-verwpe2c.js} +1 -1
  100. package/dist/{oauth-refresh-sweep-3f25djq3.js → oauth-refresh-sweep-9q2t0y3q.js} +2 -2
  101. package/dist/{onboard-pvk7hdb2.js → onboard-aytqedmq.js} +2 -2
  102. package/dist/{opencode-adapter-eeesgfqk.js → opencode-adapter-f4hryjny.js} +4 -4
  103. package/dist/{otel-impl-qb7nhgdp.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-6ehwkcmp.js → pricing-refresh-5nvme3sm.js} +3 -3
  106. package/dist/{rbac-roles-km0f9cmm.js → rbac-roles-pd8c26m1.js} +5 -3
  107. package/dist/{rbac-roles-9648nh00.js → rbac-roles-vbpy21mg.js} +2 -2
  108. package/dist/{render-v2-xkze1wef.js → render-v2-7nqgvk2q.js} +3 -3
  109. package/dist/{resume-tq0bbvt5.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-rnrazxvd.js → setup-n39szm6b.js} +1 -1
  113. package/dist/{virtual-modules-wzk6jf3a.js → virtual-modules-wyp2k6z3.js} +2 -2
  114. package/dist/{work-objects-e75q2rqs.js → work-objects-jem2fre0.js} +20 -18
  115. package/dist/{worker-4ww4hjef.js → worker-wr6xgfr2.js} +33 -31
  116. package/openapi.json +1011 -115
  117. package/package.json +2 -2
  118. package/src/apps/action-caller.ts +6 -0
  119. package/src/apps/script-types.ts +16 -3
  120. package/src/be/asset-key-audit.ts +4 -13
  121. package/src/be/db/active-sessions.ts +5 -0
  122. package/src/be/db/session-visibility.ts +29 -0
  123. package/src/be/db/tasks/read.ts +61 -3
  124. package/src/be/db/tasks/write.ts +15 -6
  125. package/src/be/db.ts +149 -66
  126. package/src/be/events.ts +11 -0
  127. package/src/be/migrations/227_inbox_item_state_last_read_at.sql +1 -0
  128. package/src/be/migrations/230_session_shares.sql +23 -0
  129. package/src/be/rbac-roles.ts +2 -0
  130. package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +22 -4
  131. package/src/be/session-shares.ts +244 -0
  132. package/src/be/swarm-config-guard.ts +23 -2
  133. package/src/commands/runner.ts +11 -0
  134. package/src/heartbeat/heartbeat.ts +25 -7
  135. package/src/http/active-sessions.ts +13 -2
  136. package/src/http/agents.ts +10 -3
  137. package/src/http/all-routes.ts +1 -0
  138. package/src/http/api-keys.ts +3 -1
  139. package/src/http/approval-requests.ts +2 -1
  140. package/src/http/apps.ts +36 -11
  141. package/src/http/assets.ts +26 -4
  142. package/src/http/config.ts +3 -0
  143. package/src/http/context.ts +2 -0
  144. package/src/http/core.ts +39 -2
  145. package/src/http/events.ts +6 -2
  146. package/src/http/favorite-owner.ts +1 -1
  147. package/src/http/fs.ts +38 -3
  148. package/src/http/inbox-state.ts +58 -8
  149. package/src/http/index.ts +3 -1
  150. package/src/http/memory.ts +3 -1
  151. package/src/http/ranking.ts +367 -0
  152. package/src/http/realtime.ts +26 -21
  153. package/src/http/route-def.ts +77 -11
  154. package/src/http/script-runs.ts +2 -1
  155. package/src/http/scripts.ts +8 -0
  156. package/src/http/session-access.ts +179 -0
  157. package/src/http/session-data.ts +10 -2
  158. package/src/http/sessions.ts +212 -12
  159. package/src/http/stats.ts +7 -3
  160. package/src/http/tasks.ts +83 -7
  161. package/src/http/used-by.ts +11 -3
  162. package/src/kv-reserved-namespaces.ts +1 -0
  163. package/src/prompts/session-templates.ts +3 -1
  164. package/src/providers/amp-adapter.ts +1 -1
  165. package/src/ranking/telemetry-ranking.ts +147 -0
  166. package/src/ranking/usage.ts +57 -0
  167. package/src/rbac/admission.ts +22 -7
  168. package/src/rbac/legacy-policy.ts +2 -0
  169. package/src/rbac/permissions.ts +9 -0
  170. package/src/realtime/auth.ts +69 -0
  171. package/src/realtime/tickets.ts +4 -1
  172. package/src/realtime/transport.ts +77 -9
  173. package/src/slack/blocks.ts +18 -0
  174. package/src/slack/dm.ts +29 -0
  175. package/src/telemetry-contract/EVENTS.md +3 -0
  176. package/src/telemetry-contract/SOURCE.json +37 -4
  177. package/src/telemetry-contract/catalog.json +69 -0
  178. package/src/telemetry-contract/ranking/fixtures/expected.json +30 -0
  179. package/src/telemetry-contract/ranking/fixtures/invalid/bad-category.json +11 -0
  180. package/src/telemetry-contract/ranking/fixtures/invalid/bad-claim.json +11 -0
  181. package/src/telemetry-contract/ranking/fixtures/invalid/blank-description.json +11 -0
  182. package/src/telemetry-contract/ranking/fixtures/invalid/blank-name.json +11 -0
  183. package/src/telemetry-contract/ranking/fixtures/invalid/description-too-long.json +11 -0
  184. package/src/telemetry-contract/ranking/fixtures/invalid/domain-uppercase.json +11 -0
  185. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-scheme.json +11 -0
  186. package/src/telemetry-contract/ranking/fixtures/invalid/domain-with-www.json +11 -0
  187. package/src/telemetry-contract/ranking/fixtures/invalid/http-source-url.json +11 -0
  188. package/src/telemetry-contract/ranking/fixtures/invalid/missing-description.json +10 -0
  189. package/src/telemetry-contract/ranking/fixtures/invalid/missing-version.json +10 -0
  190. package/src/telemetry-contract/ranking/fixtures/invalid/name-not-string.json +11 -0
  191. package/src/telemetry-contract/ranking/fixtures/invalid/name-too-long.json +11 -0
  192. package/src/telemetry-contract/ranking/fixtures/invalid/not-object.json +1 -0
  193. package/src/telemetry-contract/ranking/fixtures/invalid/null.json +1 -0
  194. package/src/telemetry-contract/ranking/fixtures/invalid/other-with-subcategory.json +11 -0
  195. package/src/telemetry-contract/ranking/fixtures/invalid/oversize.json +1 -0
  196. package/src/telemetry-contract/ranking/fixtures/invalid/short-claim.json +11 -0
  197. package/src/telemetry-contract/ranking/fixtures/invalid/subcategory-other-category.json +11 -0
  198. package/src/telemetry-contract/ranking/fixtures/invalid/trailing-data.json +1 -0
  199. package/src/telemetry-contract/ranking/fixtures/invalid/unknown-field.json +12 -0
  200. package/src/telemetry-contract/ranking/fixtures/invalid/unsupported-version.json +11 -0
  201. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-not-date.json +11 -0
  202. package/src/telemetry-contract/ranking/fixtures/invalid/updated-at-offset.json +11 -0
  203. package/src/telemetry-contract/ranking/fixtures/invalid/wrong-case-field.json +11 -0
  204. package/src/telemetry-contract/ranking/fixtures/valid/category-without-subcategory.json +11 -0
  205. package/src/telemetry-contract/ranking/fixtures/valid/full.json +11 -0
  206. package/src/telemetry-contract/ranking/fixtures/valid/minimal.json +11 -0
  207. package/src/telemetry-contract/ranking/fixtures/valid/padded-text.json +11 -0
  208. package/src/telemetry-contract/ranking/fixtures/valid/unicode-name.json +11 -0
  209. package/src/telemetry-contract/ranking/listing.v1.schema.json +61 -0
  210. package/src/telemetry-contract/ranking/taxonomy.json +8 -0
  211. package/src/telemetry-contract/ranking-taxonomy.gen.ts +11 -0
  212. package/src/telemetry-contract/types.gen.ts +708 -1
  213. package/src/telemetry.ts +26 -2
  214. package/src/tests/apps-rbac.test.ts +189 -2
  215. package/src/tests/apps-script-types.test.ts +16 -3
  216. package/src/tests/asset-key-api.test.ts +128 -0
  217. package/src/tests/asset-key-invariants.test.ts +179 -3
  218. package/src/tests/asset-key-migration.test.ts +35 -0
  219. package/src/tests/check-pr-body.test.ts +23 -0
  220. package/src/tests/check-ranking-entry.test.ts +146 -0
  221. package/src/tests/db-extraction-contract.test.ts +1 -0
  222. package/src/tests/db-task-read-contract.test.ts +1 -0
  223. package/src/tests/docs-index-footprint.test.js +2 -2
  224. package/src/tests/heartbeat-checklist.test.ts +88 -0
  225. package/src/tests/heartbeat-jev-gate.test.ts +394 -10
  226. package/src/tests/inbox-state.test.ts +167 -0
  227. package/src/tests/kv-tool.test.ts +15 -0
  228. package/src/tests/org-identity.test.ts +44 -0
  229. package/src/tests/ranking-listing.test.ts +112 -0
  230. package/src/tests/ranking-route.test.ts +319 -0
  231. package/src/tests/ranking-usage.test.ts +50 -0
  232. package/src/tests/rbac-admission-e2e.test.ts +8 -0
  233. package/src/tests/rbac-admission.test.ts +38 -0
  234. package/src/tests/rbac-charact-http.test.ts +4 -3
  235. package/src/tests/rbac-engine.test.ts +2 -0
  236. package/src/tests/rbac-roles.test.ts +2 -0
  237. package/src/tests/realtime-room-surfaces.test.ts +3 -1
  238. package/src/tests/realtime-session-join-race.test.ts +142 -0
  239. package/src/tests/realtime-tickets.test.ts +24 -17
  240. package/src/tests/realtime-transport.test.ts +91 -0
  241. package/src/tests/script-connections.test.ts +2 -0
  242. package/src/tests/session-route-posture.test.ts +639 -0
  243. package/src/tests/session-sharing-routes.test.ts +282 -0
  244. package/src/tests/session-sharing.test.ts +526 -0
  245. package/src/tests/sessions-detail-batch.test.ts +7 -1
  246. package/src/tests/slack-tool-blocks.test.ts +101 -0
  247. package/src/tests/slack-update.test.ts +55 -0
  248. package/src/tests/slack-user-dm.test.ts +177 -0
  249. package/src/tests/used-by-route.test.ts +10 -0
  250. package/src/tools/slack-post.ts +18 -12
  251. package/src/tools/slack-read.ts +13 -1
  252. package/src/tools/slack-reply.ts +7 -10
  253. package/src/tools/slack-start-thread.ts +18 -11
  254. package/src/tools/slack-update.ts +2 -9
  255. package/src/types.ts +37 -0
  256. package/src/utils/org-identity.ts +33 -0
  257. package/templates/skills/apps/SKILL.md +17 -0
  258. package/templates/skills/apps/content.md +17 -0
  259. package/templates/skills/code-quality/content.md +2 -2
  260. package/templates/skills/pages/content.md +4 -0
  261. package/templates/skills/swarm-scripts/SKILL.md +6 -0
  262. package/templates/skills/swarm-scripts/content.md +6 -0
  263. package/dist/handlers-t5pbabwf.js +0 -37
  264. package/dist/index-qyjbb7br.js +0 -39
  265. package/dist/{cli-n5mrsg0f.js → cli-60cgh1rv.js} +3 -3
  266. /package/dist/{cli-j0v75y13.js → cli-y83zk5sb.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  registerTemplate,
3
3
  init_registry
4
- } from "./cli-w7z94e6c.js";
4
+ } from "./cli-tx00c0h6.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-242037k3.js";
@@ -2,7 +2,7 @@ import {
2
2
  resolveTemplateAsync,
3
3
  init_resolver,
4
4
  init_session_templates
5
- } from "./cli-w7z94e6c.js";
5
+ } from "./cli-tx00c0h6.js";
6
6
 
7
7
  // src/prompts/steering-delivery.ts
8
8
  init_session_templates();
@@ -10,7 +10,7 @@ import {
10
10
  init_steering,
11
11
  createLogEntry2,
12
12
  init_db3
13
- } from "./cli-4c7k75rq.js";
13
+ } from "./cli-rg7ntypm.js";
14
14
  import {
15
15
  ackSlackMessage,
16
16
  buildBufferFlushBlocks,
@@ -20,7 +20,7 @@ import {
20
20
  ensureSlackThreadTree2,
21
21
  registerTreeMessage,
22
22
  getSlackApp2
23
- } from "./cli-tba8fxf9.js";
23
+ } from "./cli-4fhyq711.js";
24
24
  import {
25
25
  createAdditiveBuffer,
26
26
  TaskCreationBlockedError,
@@ -30,15 +30,15 @@ import {
30
30
  createSlackTaskWithFiles,
31
31
  notifySlackFileFailures,
32
32
  extractSlackMessageText
33
- } from "./cli-bddxamg7.js";
33
+ } from "./cli-x719j3vs.js";
34
34
  import {
35
35
  resolveSlackUserId,
36
36
  rewriteSlackMentions
37
- } from "./cli-5ks6x36q.js";
37
+ } from "./cli-x1p5dhq2.js";
38
38
  import {
39
39
  findUserByExternalId,
40
40
  init_users
41
- } from "./cli-h23mr2s6.js";
41
+ } from "./cli-8cxkw1f5.js";
42
42
  import {
43
43
  isSteeringEnabled2,
44
44
  init_steering_enabled
@@ -1037,7 +1037,7 @@ var require_jsonwebtoken = __commonJS(function(exports, module) {
1037
1037
  });
1038
1038
 
1039
1039
  // node_modules/path-to-regexp/dist/index.js
1040
- var require_dist5 = __commonJS(function(exports) {
1040
+ var require_dist9 = __commonJS(function(exports) {
1041
1041
  Object.defineProperty(exports, "__esModule", { value: true });
1042
1042
  exports.PathError = exports.TokenData = undefined;
1043
1043
  exports.parse = parse;
@@ -19820,7 +19820,7 @@ var require_layer = __commonJS(function(exports, module) {
19820
19820
  * MIT Licensed
19821
19821
  */
19822
19822
  var isPromise = require_is_promise();
19823
- var pathRegexp = require_dist5();
19823
+ var pathRegexp = require_dist9();
19824
19824
  var debug = require_src3()("router:layer");
19825
19825
  var deprecate = require_depd()("router");
19826
19826
  var TRAILING_SLASH_REGEXP = /\/+$/;
@@ -23251,4 +23251,4 @@ var require_express = __commonJS(function(exports, module) {
23251
23251
  exports.urlencoded = bodyParser.urlencoded;
23252
23252
  });
23253
23253
 
23254
- export { require_jsonwebtoken, require_dist5, require_raw_body, require_content_type, require_lib, require_vary, require_express };
23254
+ export { require_jsonwebtoken, require_dist9, require_raw_body, require_content_type, require_lib, require_vary, require_express };
@@ -13,6 +13,9 @@ import {
13
13
  } from "./cli-242037k3.js";
14
14
 
15
15
  // src/rbac/admission.ts
16
+ function grantedVerb(rbac, grant) {
17
+ return [rbac.permission, ...rbac.alsoAdmits ?? []].find((verb) => grant.verbs.has(verb));
18
+ }
16
19
  function isRbacEnabled() {
17
20
  return isEnvFlagEnabled("RBAC_ENABLED", true);
18
21
  }
@@ -21,10 +24,11 @@ function decideAdmission(input) {
21
24
  return { allow: true };
22
25
  }
23
26
  if (input.rbac && "permission" in input.rbac) {
24
- const verb = input.rbac.permission;
25
- if (input.grant.verbs.has(verb)) {
26
- return { allow: true, verb };
27
+ const granted = grantedVerb(input.rbac, input.grant);
28
+ if (granted) {
29
+ return { allow: true, verb: granted };
27
30
  }
31
+ const verb = input.rbac.permission;
28
32
  return { allow: false, reason: `admission: missing permission '${verb}'`, verb };
29
33
  }
30
34
  const method = input.method.toUpperCase();
@@ -38,10 +42,11 @@ function decideToolAdmission(input) {
38
42
  return { allow: true };
39
43
  }
40
44
  if (input.rbac && "permission" in input.rbac) {
41
- const verb = input.rbac.permission;
42
- if (input.grant.verbs.has(verb)) {
43
- return { allow: true, verb };
45
+ const granted = grantedVerb(input.rbac, input.grant);
46
+ if (granted) {
47
+ return { allow: true, verb: granted };
44
48
  }
49
+ const verb = input.rbac.permission;
45
50
  return { allow: false, reason: `admission: missing permission '${verb}'`, verb };
46
51
  }
47
52
  if (input.readOnly) {
@@ -248,6 +253,8 @@ var init_legacy_policy = __esm(() => {
248
253
  "task.action.own": requesterOwnsTask,
249
254
  "task.fs.mutate": taskFsMutate,
250
255
  "task.parent.attach": taskFsMutate,
256
+ "session.share": operatorOrUser,
257
+ "session.presence": operatorOrUser,
251
258
  "task.progress.write": taskProgressWrite,
252
259
  "favorite.write.own": anyAuthenticated,
253
260
  "memory.learning.inject": leadOnly,
@@ -414,6 +421,14 @@ var init_permissions = __esm(() => {
414
421
  description: "Write a task's progress, status, or output (its assignee, a lead, a human, or anyone while unassigned).",
415
422
  namespace: "task"
416
423
  },
424
+ "session.share": {
425
+ description: "Change who can view or edit a session the principal owns (the owner check runs in the handler).",
426
+ namespace: "task"
427
+ },
428
+ "session.presence": {
429
+ description: "Join the presence room of a session the principal can view.",
430
+ namespace: "task"
431
+ },
417
432
  "favorite.write.own": {
418
433
  description: "Set a favorite the caller owns.",
419
434
  namespace: "favorite"
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_MODEL_TIER_MAP,
3
3
  init_types
4
- } from "./cli-ksrphveb.js";
4
+ } from "./cli-a1esmmee.js";
5
5
 
6
6
  // src/utils/amp-models.ts
7
7
  init_types();
@@ -9,7 +9,7 @@ import {
9
9
  loadMcpConfig,
10
10
  addMcpServerConfig,
11
11
  removeMcpServerConfig
12
- } from "./cli-8jtrekpy.js";
12
+ } from "./cli-p1m2b6gc.js";
13
13
  import {
14
14
  McpOAuthCredentialStore2,
15
15
  McpSignInCancelledError2,
@@ -17,7 +17,7 @@ import {
17
17
  McpServerLog2,
18
18
  createDefaultTransport2,
19
19
  McpServerConnection2
20
- } from "./cli-ppapy34w.js";
20
+ } from "./cli-f3nx1h8z.js";
21
21
 
22
22
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/cli.js
23
23
  import { existsSync } from "node:fs";
@@ -47,31 +47,31 @@ import {
47
47
  checkDependencies2,
48
48
  emitBuiltInIntegrationConnectedOnce2,
49
49
  init_db3
50
- } from "./cli-4c7k75rq.js";
50
+ } from "./cli-rg7ntypm.js";
51
51
  import {
52
52
  getChannelBlockReason2
53
- } from "./cli-ztcxv5nv.js";
53
+ } from "./cli-xfe63zx3.js";
54
54
  import {
55
- require_jsonwebtoken,
56
55
  require_dist5,
57
- require_raw_body,
58
- require_express
59
- } from "./cli-gzvb3d4a.js";
60
- import {
61
- require_dist6,
62
56
  require_axios,
57
+ require_dist7,
63
58
  require_dist8,
64
- require_dist9,
65
59
  require_src2
66
- } from "./cli-e09hj50q.js";
60
+ } from "./cli-8wkb09q5.js";
61
+ import {
62
+ require_jsonwebtoken,
63
+ require_dist9,
64
+ require_raw_body,
65
+ require_express
66
+ } from "./cli-1jx0srjt.js";
67
67
  import {
68
68
  isTerminalTaskStatus,
69
69
  init_types
70
- } from "./cli-ksrphveb.js";
70
+ } from "./cli-a1esmmee.js";
71
71
  import {
72
72
  taskAttachmentDisplayUrl,
73
73
  init_task_attachment_links
74
- } from "./cli-cby329ny.js";
74
+ } from "./cli-wyrr38xm.js";
75
75
  import {
76
76
  getSlackConfiguration,
77
77
  init_config
@@ -1465,8 +1465,8 @@ var require_logger = __commonJS(function(exports) {
1465
1465
  Object.defineProperty(exports, "__esModule", { value: true });
1466
1466
  exports.LogLevel = undefined;
1467
1467
  exports.getLogger = getLogger;
1468
- var logger_1 = require_dist6();
1469
- var logger_2 = require_dist6();
1468
+ var logger_1 = require_dist5();
1469
+ var logger_2 = require_dist5();
1470
1470
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function() {
1471
1471
  return logger_2.LogLevel;
1472
1472
  } });
@@ -1754,7 +1754,7 @@ var require_file_state_store = __commonJS(function(exports) {
1754
1754
  var node_fs_1 = __importDefault(__require("node:fs"));
1755
1755
  var node_os_1 = __require("node:os");
1756
1756
  var node_path_1 = __importDefault(__require("node:path"));
1757
- var logger_1 = require_dist6();
1757
+ var logger_1 = require_dist5();
1758
1758
  var errors_1 = require_errors2();
1759
1759
  var FileStateStore = function() {
1760
1760
  function FileStateStore(args) {
@@ -1988,7 +1988,7 @@ var require_install_provider = __commonJS(function(exports) {
1988
1988
  Object.defineProperty(exports, "__esModule", { value: true });
1989
1989
  exports.InstallProvider = undefined;
1990
1990
  var node_url_1 = __require("node:url");
1991
- var web_api_1 = require_dist9();
1991
+ var web_api_1 = require_dist8();
1992
1992
  var callback_options_1 = require_callback_options();
1993
1993
  var default_render_html_for_install_path_1 = __importDefault(require_default_render_html_for_install_path());
1994
1994
  var errors_1 = require_errors2();
@@ -3154,9 +3154,9 @@ var require_HTTPReceiver = __commonJS(function(exports) {
3154
3154
  var node_http_1 = __require("node:http");
3155
3155
  var node_https_1 = __require("node:https");
3156
3156
  var node_url_1 = __require("node:url");
3157
- var logger_1 = require_dist6();
3157
+ var logger_1 = require_dist5();
3158
3158
  var oauth_1 = require_dist();
3159
- var path_to_regexp_1 = require_dist5();
3159
+ var path_to_regexp_1 = require_dist9();
3160
3160
  var errors_1 = require_errors();
3161
3161
  var httpFunc = __importStar(require_HTTPModuleFunctions());
3162
3162
  var HTTPResponseAck_1 = require_HTTPResponseAck();
@@ -3521,10 +3521,10 @@ var require_SocketModeReceiver = __commonJS(function(exports) {
3521
3521
  Object.defineProperty(exports, "__esModule", { value: true });
3522
3522
  var node_http_1 = __require("node:http");
3523
3523
  var node_url_1 = __require("node:url");
3524
- var logger_1 = require_dist6();
3524
+ var logger_1 = require_dist5();
3525
3525
  var oauth_1 = require_dist();
3526
3526
  var socket_mode_1 = require_src2();
3527
- var path_to_regexp_1 = require_dist5();
3527
+ var path_to_regexp_1 = require_dist9();
3528
3528
  var SocketModeFunctions_1 = require_SocketModeFunctions();
3529
3529
  var SocketModeResponseAck_1 = require_SocketModeResponseAck();
3530
3530
  var custom_routes_1 = require_custom_routes();
@@ -3944,8 +3944,8 @@ var require_App = __commonJS(function(exports) {
3944
3944
  Object.defineProperty(exports, "__esModule", { value: true });
3945
3945
  exports.LogLevel = undefined;
3946
3946
  var node_util_1 = __importDefault(__require("node:util"));
3947
- var logger_1 = require_dist6();
3948
- var web_api_1 = require_dist9();
3947
+ var logger_1 = require_dist5();
3948
+ var web_api_1 = require_dist8();
3949
3949
  var axios_1 = __importDefault(require_axios());
3950
3950
  var CustomFunction_1 = require_CustomFunction();
3951
3951
  var conversation_store_1 = require_conversation_store();
@@ -3960,7 +3960,7 @@ var require_App = __commonJS(function(exports) {
3960
3960
  var packageJson = require_package();
3961
3961
  var validViewTypes = ["view_closed", "view_submission"];
3962
3962
  var tokenUsage = "Apps used in a single workspace can be initialized with a token. Apps used in many workspaces " + "should be initialized with oauth installer options or authorize.";
3963
- var logger_2 = require_dist6();
3963
+ var logger_2 = require_dist5();
3964
3964
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function() {
3965
3965
  return logger_2.LogLevel;
3966
3966
  } });
@@ -4754,7 +4754,7 @@ var require_ExpressReceiver = __commonJS(function(exports) {
4754
4754
  var node_http_1 = __require("node:http");
4755
4755
  var node_https_1 = __require("node:https");
4756
4756
  var node_querystring_1 = __importDefault(__require("node:querystring"));
4757
- var logger_1 = require_dist6();
4757
+ var logger_1 = require_dist5();
4758
4758
  var oauth_1 = require_dist();
4759
4759
  var express_1 = __importStar(require_express());
4760
4760
  var raw_body_1 = __importDefault(require_raw_body());
@@ -5105,7 +5105,7 @@ var require_AwsLambdaReceiver = __commonJS(function(exports) {
5105
5105
  Object.defineProperty(exports, "__esModule", { value: true });
5106
5106
  var node_crypto_1 = __importDefault(__require("node:crypto"));
5107
5107
  var node_querystring_1 = __importDefault(__require("node:querystring"));
5108
- var logger_1 = require_dist6();
5108
+ var logger_1 = require_dist5();
5109
5109
  var tsscmp_1 = __importDefault(require_lib());
5110
5110
  var errors_1 = require_errors();
5111
5111
 
@@ -5857,8 +5857,8 @@ var require_dist4 = __commonJS(function(exports) {
5857
5857
  Object.defineProperty(exports, "FileInstallationStore", { enumerable: true, get: function() {
5858
5858
  return oauth_1.FileInstallationStore;
5859
5859
  } });
5860
- exports.types = __importStar(require_dist8());
5861
- exports.webApi = __importStar(require_dist9());
5860
+ exports.types = __importStar(require_dist7());
5861
+ exports.webApi = __importStar(require_dist8());
5862
5862
  });
5863
5863
 
5864
5864
  // src/slack/app.ts
@@ -6235,7 +6235,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
6235
6235
  return;
6236
6236
  initialized = true;
6237
6237
  try {
6238
- const impl = await import("./otel-impl-qb7nhgdp.js");
6238
+ const impl = await import("./otel-impl-hckw4wt1.js");
6239
6239
  await impl.boot(serviceRole, {
6240
6240
  exportConsoleLogs: serviceRole === "api" && isApiLogExportEnabled()
6241
6241
  });
@@ -6496,12 +6496,21 @@ function splitSlackSectionText(text) {
6496
6496
  }
6497
6497
  if (splitIdx < MAX_SECTION_LENGTH / 2) {
6498
6498
  splitIdx = MAX_SECTION_LENGTH;
6499
+ const prev = remaining.charCodeAt(splitIdx - 1);
6500
+ if (prev >= 55296 && prev <= 56319)
6501
+ splitIdx -= 1;
6499
6502
  }
6500
6503
  chunks.push(remaining.slice(0, splitIdx));
6501
6504
  remaining = remaining.slice(splitIdx).trimStart();
6502
6505
  }
6503
6506
  return chunks;
6504
6507
  }
6508
+ var SLACK_SECTION_TEXT_LIMIT = 3000;
6509
+ function buildMrkdwnSectionBlocks(text) {
6510
+ if (text.length <= SLACK_SECTION_TEXT_LIMIT)
6511
+ return [sectionBlock(text)];
6512
+ return splitSlackSectionText(text).map((chunk) => sectionBlock(chunk));
6513
+ }
6505
6514
  function contextBlock(...elements) {
6506
6515
  return {
6507
6516
  type: "context",
@@ -10071,17 +10080,17 @@ async function initSlackApp2() {
10071
10080
  });
10072
10081
  initialized2 = true;
10073
10082
  app.use(slackInboundOutcomeMiddleware());
10074
- const { registerMessageHandler } = await import("./handlers-t5pbabwf.js");
10075
- const { registerCommandHandler } = await import("./commands-ktnqwrv4.js");
10076
- const { registerActionHandlers } = await import("./actions-w4pnb8vz.js");
10077
- const { registerWorkObjectHandlers } = await import("./work-objects-e75q2rqs.js");
10083
+ const { registerMessageHandler } = await import("./handlers-zbs90bny.js");
10084
+ const { registerCommandHandler } = await import("./commands-psqhkttb.js");
10085
+ const { registerActionHandlers } = await import("./actions-vget6r1k.js");
10086
+ const { registerWorkObjectHandlers } = await import("./work-objects-jem2fre0.js");
10078
10087
  registerMessageHandler(app);
10079
10088
  registerCommandHandler(app);
10080
10089
  registerActionHandlers(app);
10081
10090
  registerWorkObjectHandlers(app);
10082
- const { createAssistant } = await import("./assistant-wbzd2rnr.js");
10091
+ const { createAssistant } = await import("./assistant-h0gv97mv.js");
10083
10092
  app.assistant(createAssistant());
10084
- const { isBlockExternalEnabled, scanExternalChannelsOnBoot } = await import("./external-channel-44cwer32.js");
10093
+ const { isBlockExternalEnabled, scanExternalChannelsOnBoot } = await import("./external-channel-a5dsmxn4.js");
10085
10094
  if (isBlockExternalEnabled()) {
10086
10095
  scanExternalChannelsOnBoot(app.client).catch((error) => {
10087
10096
  console.error("[Slack] External channel boot scan failed:", error);
@@ -10094,7 +10103,7 @@ async function startSlackApp2() {
10094
10103
  await initSlackApp2();
10095
10104
  }
10096
10105
  if (app) {
10097
- const { isSlackRenderV2Enabled } = await import("./render-v2-xkze1wef.js");
10106
+ const { isSlackRenderV2Enabled } = await import("./render-v2-7nqgvk2q.js");
10098
10107
  if (isSlackRenderV2Enabled())
10099
10108
  await ensureSlackRenderV2Activation2();
10100
10109
  await app.start();
@@ -10117,4 +10126,4 @@ async function stopSlackApp2() {
10117
10126
  initialized2 = false;
10118
10127
  }
10119
10128
 
10120
- export { require_dist4, getSlackConnectionState, noteSlackInboundSideEffect, ignoreSlackInbound, reportSlackInboundFailure, isAdmittedSlackDelivery, getSlackInboundDiagnostics, isPollTracingEnabled, initOtel, withSpan2, startSpan2, withSpanContext2, withRemoteContext2, injectTraceContext2, recordSessionCost2, recordDbRetentionSweep2, recordDbRetentionStatement2, slackTaskOutput, ackSlackMessage, getTaskLink, getTaskUrl, markdownToSlack, buildCaptionBlock, buildCancelledBlocks, buildBufferFlushBlocks, buildTreeBlocks, taskCitationIssues, stripInvalidTaskCitations, taskCitationSourceGroups, renderTaskCitations, taskCitationWarnings, MAX_TASK_CITATIONS, CitationInputSchema, TaskCitationSchema, upsertTaskCitations, getTaskCitations, getTaskCitationsForTasks, hasTaskCitationCheckRefusal, initialize, ensure, getAgentDisplayName, getAgentEmoji, markSlackSessionProcessing, isSlackRenderV2Enabled2, ensureSlackThreadTree2, processSlackRenderV22, registerTreeMessage, getSlackApp2, initSlackApp2, startSlackApp2, stopSlackApp2 };
10129
+ export { require_dist4, getSlackConnectionState, noteSlackInboundSideEffect, ignoreSlackInbound, reportSlackInboundFailure, isAdmittedSlackDelivery, getSlackInboundDiagnostics, isPollTracingEnabled, initOtel, withSpan2, startSpan2, withSpanContext2, withRemoteContext2, injectTraceContext2, recordSessionCost2, recordDbRetentionSweep2, recordDbRetentionStatement2, slackTaskOutput, ackSlackMessage, getTaskLink, getTaskUrl, markdownToSlack, buildMrkdwnSectionBlocks, buildCaptionBlock, buildCancelledBlocks, buildBufferFlushBlocks, buildTreeBlocks, taskCitationIssues, stripInvalidTaskCitations, taskCitationSourceGroups, renderTaskCitations, taskCitationWarnings, MAX_TASK_CITATIONS, CitationInputSchema, TaskCitationSchema, upsertTaskCitations, getTaskCitations, getTaskCitationsForTasks, hasTaskCitationCheckRefusal, initialize, ensure, getAgentDisplayName, getAgentEmoji, markSlackSessionProcessing, isSlackRenderV2Enabled2, ensureSlackThreadTree2, processSlackRenderV22, registerTreeMessage, getSlackApp2, initSlackApp2, startSlackApp2, stopSlackApp2 };
@@ -6,7 +6,7 @@ import {
6
6
  getResolvedConfig2,
7
7
  getAllUsers2,
8
8
  init_db3
9
- } from "./cli-4c7k75rq.js";
9
+ } from "./cli-rg7ntypm.js";
10
10
  import {
11
11
  scrubSecrets,
12
12
  init_secret_scrubber
@@ -2,11 +2,11 @@ import {
2
2
  getDb2,
3
3
  getDbClient2,
4
4
  init_db3
5
- } from "./cli-4c7k75rq.js";
5
+ } from "./cli-rg7ntypm.js";
6
6
  import {
7
7
  PermissionVerbSchema,
8
8
  init_rbac
9
- } from "./cli-zj4d6afs.js";
9
+ } from "./cli-1pa3rz69.js";
10
10
  import {
11
11
  init_env_flag
12
12
  } from "./cli-0hyhdkdk.js";
@@ -179,7 +179,9 @@ var init_rbac_roles = __esm(() => {
179
179
  "task.cancel.own",
180
180
  "task.action.own",
181
181
  "task.fs.mutate",
182
- "favorite.write.own"
182
+ "favorite.write.own",
183
+ "session.share",
184
+ "session.presence"
183
185
  ]
184
186
  }
185
187
  ];