botmancers 0.5.0 → 0.6.1

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 (969) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +9 -5
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +9 -0
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/index.js +1 -0
  7. package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/package.json +1 -0
  8. package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/index.js +1 -0
  9. package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/package.json +1 -0
  10. package/app/.next/prerender-manifest.json +3 -3
  11. package/app/.next/required-server-files.json +8 -3
  12. package/app/.next/routes-manifest.json +67 -0
  13. package/app/.next/server/app/_global-error/page.js +1 -1
  14. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/app/.next/server/app/_global-error.html +1 -1
  16. package/app/.next/server/app/_global-error.rsc +1 -1
  17. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  18. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/app/.next/server/app/_not-found/page.js +1 -1
  21. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/_not-found.html +1 -1
  24. package/app/.next/server/app/_not-found.rsc +2 -2
  25. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  26. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/app/.next/server/app/api/agent-deck/decks/route.js +3 -3
  29. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
  30. package/app/.next/server/app/api/agent-deck/settings/route.js +3 -3
  31. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
  32. package/app/.next/server/app/api/bots/[id]/config/route.js +3 -3
  33. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +5 -6
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +3 -3
  37. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
  38. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  39. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/build-manifest.json +12 -0
  40. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
  41. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +11 -0
  42. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -0
  43. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  44. package/app/.next/server/app/api/bots/[id]/sessions/route.js +5 -6
  45. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
  46. package/app/.next/server/app/api/bots/[id]/share-policy/route/app-paths-manifest.json +3 -0
  47. package/app/.next/server/app/api/bots/[id]/share-policy/route/build-manifest.json +12 -0
  48. package/app/.next/server/app/api/bots/[id]/share-policy/route/server-reference-manifest.json +4 -0
  49. package/app/.next/server/app/api/bots/[id]/share-policy/route.js +11 -0
  50. package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -0
  51. package/app/.next/server/app/api/bots/[id]/share-policy/route_client-reference-manifest.js +3 -0
  52. package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
  53. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  54. package/app/.next/server/app/api/bots/availability/route.js +1 -1
  55. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  56. package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
  57. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  58. package/app/.next/server/app/api/bots/import/route.js +3 -3
  59. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/bots/manage/route.js +3 -3
  61. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
  63. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  64. package/app/.next/server/app/api/bots/route.js +6 -6
  65. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  66. package/app/.next/server/app/api/conversations/[id]/approve/route.js +4 -4
  67. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  68. package/app/.next/server/app/api/conversations/[id]/deny/route.js +4 -4
  69. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/conversations/[id]/draft/route.js +4 -4
  71. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
  73. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/conversations/[id]/messages/route.js +5 -5
  75. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
  77. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/conversations/[id]/stop/route.js +7 -7
  79. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/conversations/route.js +3 -3
  81. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +4 -4
  83. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/exchanges/[id]/route.js +5 -5
  85. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
  86. package/app/.next/server/app/api/exchanges/route.js +5 -5
  87. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
  88. package/app/.next/server/app/api/files/[name]/route.js +1 -1
  89. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/groups/route.js +3 -3
  91. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/health/route.js +5 -2
  93. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  95. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  97. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  99. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/mcp/route.js +3 -3
  101. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
  103. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/runtime-connections/route.js +3 -3
  105. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/service-grants/route.js +3 -3
  107. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  109. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  110. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  111. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +11 -0
  112. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  113. package/app/.next/server/app/api/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  114. package/app/.next/server/app/api/shares/route/app-paths-manifest.json +3 -0
  115. package/app/.next/server/app/api/shares/route/build-manifest.json +12 -0
  116. package/app/.next/server/app/api/shares/route/server-reference-manifest.json +4 -0
  117. package/app/.next/server/app/api/shares/route.js +11 -0
  118. package/app/.next/server/app/api/shares/route.js.nft.json +1 -0
  119. package/app/.next/server/app/api/shares/route_client-reference-manifest.js +3 -0
  120. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +5 -6
  121. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +5 -6
  123. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -4
  125. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +5 -6
  127. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +5 -6
  129. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +5 -6
  131. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +5 -6
  133. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/v0/agents/route.js +5 -6
  135. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/v0/capabilities/route.js +5 -6
  137. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -4
  139. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +5 -6
  141. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +5 -6
  143. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/v0/exchanges/route.js +5 -6
  145. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/v0/mcp/route.js +6 -7
  147. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +5 -6
  149. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +5 -6
  151. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +5 -6
  153. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -4
  155. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +5 -6
  157. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +5 -6
  159. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  161. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/build-manifest.json +12 -0
  162. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
  163. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +11 -0
  164. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -0
  165. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  166. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  167. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  168. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  169. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +11 -0
  170. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  171. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  172. package/app/.next/server/app/api/v0/shares/[shareRef]/route/app-paths-manifest.json +3 -0
  173. package/app/.next/server/app/api/v0/shares/[shareRef]/route/build-manifest.json +12 -0
  174. package/app/.next/server/app/api/v0/shares/[shareRef]/route/server-reference-manifest.json +4 -0
  175. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +11 -0
  176. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -0
  177. package/app/.next/server/app/api/v0/shares/[shareRef]/route_client-reference-manifest.js +3 -0
  178. package/app/.next/server/app/api/v0/shares/current/route/app-paths-manifest.json +3 -0
  179. package/app/.next/server/app/api/v0/shares/current/route/build-manifest.json +12 -0
  180. package/app/.next/server/app/api/v0/shares/current/route/server-reference-manifest.json +4 -0
  181. package/app/.next/server/app/api/v0/shares/current/route.js +11 -0
  182. package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -0
  183. package/app/.next/server/app/api/v0/shares/current/route_client-reference-manifest.js +3 -0
  184. package/app/.next/server/app/api/v0/shares/route/app-paths-manifest.json +3 -0
  185. package/app/.next/server/app/api/v0/shares/route/build-manifest.json +12 -0
  186. package/app/.next/server/app/api/v0/shares/route/server-reference-manifest.json +4 -0
  187. package/app/.next/server/app/api/v0/shares/route.js +11 -0
  188. package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -0
  189. package/app/.next/server/app/api/v0/shares/route_client-reference-manifest.js +3 -0
  190. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +4 -4
  191. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/wakes/[id]/decision/route.js +4 -4
  193. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/wakes/[id]/retry/route.js +4 -4
  195. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  196. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  197. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  198. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/exchanges/page.js +1 -1
  200. package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
  201. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/exchanges.html +1 -1
  203. package/app/.next/server/app/exchanges.rsc +3 -3
  204. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
  205. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
  206. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
  207. package/app/.next/server/app/index.html +1 -1
  208. package/app/.next/server/app/index.rsc +3 -3
  209. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  210. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  211. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  212. package/app/.next/server/app/page.js +1 -1
  213. package/app/.next/server/app/page.js.nft.json +1 -1
  214. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/settings/page.js +1 -1
  216. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  217. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/settings.html +1 -1
  219. package/app/.next/server/app/settings.rsc +2 -2
  220. package/app/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  221. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  222. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  223. package/app/.next/server/app/threads/[id]/page.js +1 -1
  224. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -1
  225. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app-paths-manifest.json +9 -0
  227. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_shares_route_actions_1jr6f0v.js +3 -0
  228. package/app/.next/server/chunks/[externals]_@slack_0owayck._.js +3 -0
  229. package/app/.next/server/chunks/[externals]__17bolvp._.js +3 -0
  230. package/app/.next/server/chunks/{[externals]__06lqs5i._.js → [externals]__1eaoma8._.js} +1 -1
  231. package/app/.next/server/chunks/[root-of-the-server]__0-vcyi-._.js +3 -0
  232. package/app/.next/server/chunks/[root-of-the-server]__0-w_t2y._.js +3 -0
  233. package/app/.next/server/chunks/{[root-of-the-server]__1_01-13._.js → [root-of-the-server]__029-_9t._.js} +2 -2
  234. package/app/.next/server/chunks/[root-of-the-server]__02vrtib._.js +4 -0
  235. package/app/.next/server/chunks/[root-of-the-server]__04b3ml2._.js +3 -0
  236. package/app/.next/server/chunks/[root-of-the-server]__06w5xhe._.js +3 -0
  237. package/app/.next/server/chunks/[root-of-the-server]__07q5mnr._.js +3 -0
  238. package/app/.next/server/chunks/[root-of-the-server]__0888o0_._.js +3 -0
  239. package/app/.next/server/chunks/[root-of-the-server]__0aincj4._.js +3 -0
  240. package/app/.next/server/chunks/[root-of-the-server]__0e_agq4._.js +3 -0
  241. package/app/.next/server/chunks/[root-of-the-server]__0ey3_2x._.js +3 -0
  242. package/app/.next/server/chunks/[root-of-the-server]__0fku-bw._.js +3 -0
  243. package/app/.next/server/chunks/[root-of-the-server]__0iqh5ta._.js +3 -0
  244. package/app/.next/server/chunks/[root-of-the-server]__0ivjcgs._.js +4 -0
  245. package/app/.next/server/chunks/[root-of-the-server]__0j4pjyg._.js +3 -0
  246. package/app/.next/server/chunks/[root-of-the-server]__0kgnysc._.js +3 -0
  247. package/app/.next/server/chunks/[root-of-the-server]__0mo_kn3._.js +48 -0
  248. package/app/.next/server/chunks/[root-of-the-server]__0mp8bap._.js +3 -0
  249. package/app/.next/server/chunks/[root-of-the-server]__0o9ijih._.js +3 -0
  250. package/app/.next/server/chunks/[root-of-the-server]__0qaiqut._.js +44 -0
  251. package/app/.next/server/chunks/{[root-of-the-server]__1kvvs4u._.js → [root-of-the-server]__0zrx1iz._.js} +1 -1
  252. package/app/.next/server/chunks/[root-of-the-server]__10b5-i-._.js +3 -0
  253. package/app/.next/server/chunks/[root-of-the-server]__17xl_55._.js +3 -0
  254. package/app/.next/server/chunks/[root-of-the-server]__1dxr858._.js +3 -0
  255. package/app/.next/server/chunks/[root-of-the-server]__1eps2a4._.js +3 -0
  256. package/app/.next/server/chunks/[root-of-the-server]__1g_n99l._.js +3 -0
  257. package/app/.next/server/chunks/[root-of-the-server]__1ggmit0._.js +4 -0
  258. package/app/.next/server/chunks/{[root-of-the-server]__1y_j43n._.js → [root-of-the-server]__1hwy3jx._.js} +1 -1
  259. package/app/.next/server/chunks/[root-of-the-server]__1i8glt4._.js +4 -0
  260. package/app/.next/server/chunks/{[root-of-the-server]__0j0i8xz._.js → [root-of-the-server]__1igzl05._.js} +1 -1
  261. package/app/.next/server/chunks/[root-of-the-server]__1kczttr._.js +3 -0
  262. package/app/.next/server/chunks/{[root-of-the-server]__1c3e2ds._.js → [root-of-the-server]__1kik2zt._.js} +1 -1
  263. package/app/.next/server/chunks/[root-of-the-server]__1t4ybp2._.js +48 -0
  264. package/app/.next/server/chunks/[root-of-the-server]__1v3ikuo._.js +3 -0
  265. package/app/.next/server/chunks/{[root-of-the-server]__0-45blq._.js → [root-of-the-server]__1z5l5cg._.js} +2 -2
  266. package/app/.next/server/chunks/[root-of-the-server]__200ep0k._.js +3 -0
  267. package/app/.next/server/chunks/_0061c2q._.js +48 -1
  268. package/app/.next/server/chunks/_04e2bgj._.js +3 -0
  269. package/app/.next/server/chunks/_05po7b4._.js +3 -0
  270. package/app/.next/server/chunks/_06sxx0e._.js +3 -0
  271. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  272. package/app/.next/server/chunks/_0ar2ooe._.js +3 -0
  273. package/app/.next/server/chunks/_0fmotaz._.js +3 -0
  274. package/app/.next/server/chunks/_0kpfto_._.js +3 -0
  275. package/app/.next/server/chunks/_0lm6uis._.js +3 -0
  276. package/app/.next/server/chunks/_0mpu5tl._.js +3 -0
  277. package/app/.next/server/chunks/_0qv-4by._.js +3 -0
  278. package/app/.next/server/chunks/_0u9cfq9._.js +3 -0
  279. package/app/.next/server/chunks/_0ul8k7g._.js +3 -0
  280. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  281. package/app/.next/server/chunks/_1-60d3o._.js +3 -0
  282. package/app/.next/server/chunks/_133y3b0._.js +3 -0
  283. package/app/.next/server/chunks/_167960a._.js +3 -0
  284. package/app/.next/server/chunks/_17vgjlt._.js +3 -0
  285. package/app/.next/server/chunks/_1amx9_4._.js +3 -0
  286. package/app/.next/server/chunks/_1b01v-_._.js +3 -0
  287. package/app/.next/server/chunks/_1c-g4gq._.js +3 -0
  288. package/app/.next/server/chunks/_1ey6l4p._.js +3 -0
  289. package/app/.next/server/chunks/_1nlg4x_._.js +3 -0
  290. package/app/.next/server/chunks/_1x4dqzv._.js +3 -0
  291. package/app/.next/server/chunks/_1z0qbzc._.js +3 -0
  292. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_share-policy_route_actions_0x-p250.js +3 -0
  293. package/app/.next/server/chunks/_next-internal_server_app_api_shares_[shareRef]_revoke_route_actions_1cu5kah.js +3 -0
  294. package/app/.next/server/chunks/_next-internal_server_app_api_shares_route_actions_0wk7x1r.js +3 -0
  295. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_shares_route_actions_11fh--7.js +3 -0
  296. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_revoke_route_actions_00rzyj9.js +3 -0
  297. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_route_actions_0i1t5qb.js +3 -0
  298. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_current_route_actions_1w_bpas.js +3 -0
  299. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_route_actions_1b38was.js +3 -0
  300. package/app/.next/server/chunks/lib_0v4d9w0._.js +339 -0
  301. package/app/.next/server/chunks/lib_0zzo6zb._.js +339 -0
  302. package/app/.next/server/chunks/lib_15adnlz._.js +2189 -0
  303. package/app/.next/server/chunks/lib_1_u7n-u._.js +339 -0
  304. package/app/.next/server/chunks/lib_1muhwn7._.js +339 -0
  305. package/app/.next/server/chunks/lib_1xnxg-q._.js +339 -0
  306. package/app/.next/server/chunks/lib_1zc7-gl._.js +2189 -0
  307. package/app/.next/server/chunks/lib_agent-api_ts_0iv52-o._.js +3 -0
  308. package/app/.next/server/chunks/{[root-of-the-server]__0izjfmr._.js → lib_db_ts_1ttuckb._.js} +3 -3
  309. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +5 -5
  310. package/app/.next/server/chunks/lib_slack-runtime_ts_0fgsejy._.js +63 -0
  311. package/app/.next/server/chunks/ssr/{[root-of-the-server]__03186rx._.js → [root-of-the-server]__1smmfpx._.js} +1 -1
  312. package/app/.next/server/chunks/ssr/_0_fa0na._.js +3 -0
  313. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +1 -1
  314. package/app/.next/server/chunks/ssr/_1i02yyi._.js +3 -0
  315. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +1 -1
  316. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  317. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +1 -1
  318. package/app/.next/server/instrumentation.js +4 -0
  319. package/app/.next/server/middleware-build-manifest.js +3 -3
  320. package/app/.next/server/middleware.js +1 -1
  321. package/app/.next/server/pages/404.html +1 -1
  322. package/app/.next/server/pages/500.html +1 -1
  323. package/app/.next/server/server-reference-manifest.js +1 -1
  324. package/app/.next/server/server-reference-manifest.json +1 -1
  325. package/app/.next/static/chunks/{2a8bomryx66oj.css → 0jon21u-9j2aw.css} +1 -1
  326. package/app/.next/static/chunks/14k6cvywgknx2.js +3 -0
  327. package/app/.next/static/chunks/1r5tqd-7h1xjn.js +1 -0
  328. package/app/.next/static/chunks/22xbkclbkct3s.js +1 -0
  329. package/app/.next/static/chunks/2c953okoei6ip.js +1 -0
  330. package/app/.next/static/chunks/2t_2gf3xoxz_m.js +1 -0
  331. package/app/.next/static/chunks/34vnvo1qssbaj.js +1 -0
  332. package/app/BUILD_INFO.json +2 -2
  333. package/app/node_modules/@slack/logger/dist/index.js +94 -0
  334. package/app/node_modules/@slack/logger/package.json +43 -0
  335. package/app/node_modules/@slack/socket-mode/dist/package.json +67 -0
  336. package/app/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +242 -0
  337. package/app/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js +363 -0
  338. package/app/node_modules/@slack/socket-mode/dist/src/UnrecoverableSocketModeStartError.js +14 -0
  339. package/app/node_modules/@slack/socket-mode/dist/src/errors.js +68 -0
  340. package/app/node_modules/@slack/socket-mode/dist/src/index.js +13 -0
  341. package/app/node_modules/@slack/socket-mode/dist/src/logger.js +26 -0
  342. package/app/node_modules/@slack/socket-mode/package.json +67 -0
  343. package/app/node_modules/@slack/types/dist/block-kit/block-elements.js +4 -0
  344. package/app/node_modules/@slack/types/dist/block-kit/blocks.js +3 -0
  345. package/app/node_modules/@slack/types/dist/block-kit/composition-objects.js +4 -0
  346. package/app/node_modules/@slack/types/dist/block-kit/extensions.js +3 -0
  347. package/app/node_modules/@slack/types/dist/calls.js +6 -0
  348. package/app/node_modules/@slack/types/dist/chunk.js +3 -0
  349. package/app/node_modules/@slack/types/dist/dialog.js +3 -0
  350. package/app/node_modules/@slack/types/dist/events/app.js +3 -0
  351. package/app/node_modules/@slack/types/dist/events/assistant.js +3 -0
  352. package/app/node_modules/@slack/types/dist/events/call.js +3 -0
  353. package/app/node_modules/@slack/types/dist/events/channel.js +3 -0
  354. package/app/node_modules/@slack/types/dist/events/dnd.js +3 -0
  355. package/app/node_modules/@slack/types/dist/events/email.js +3 -0
  356. package/app/node_modules/@slack/types/dist/events/emoji.js +3 -0
  357. package/app/node_modules/@slack/types/dist/events/file.js +4 -0
  358. package/app/node_modules/@slack/types/dist/events/function.js +3 -0
  359. package/app/node_modules/@slack/types/dist/events/grid-migration.js +3 -0
  360. package/app/node_modules/@slack/types/dist/events/group.js +3 -0
  361. package/app/node_modules/@slack/types/dist/events/im.js +3 -0
  362. package/app/node_modules/@slack/types/dist/events/index.js +43 -0
  363. package/app/node_modules/@slack/types/dist/events/invite.js +3 -0
  364. package/app/node_modules/@slack/types/dist/events/link-shared.js +3 -0
  365. package/app/node_modules/@slack/types/dist/events/member.js +3 -0
  366. package/app/node_modules/@slack/types/dist/events/message-metadata.js +3 -0
  367. package/app/node_modules/@slack/types/dist/events/message.js +3 -0
  368. package/app/node_modules/@slack/types/dist/events/pin.js +3 -0
  369. package/app/node_modules/@slack/types/dist/events/reaction.js +3 -0
  370. package/app/node_modules/@slack/types/dist/events/shared-channel.js +3 -0
  371. package/app/node_modules/@slack/types/dist/events/star.js +3 -0
  372. package/app/node_modules/@slack/types/dist/events/steps-from-apps.js +3 -0
  373. package/app/node_modules/@slack/types/dist/events/subteam.js +3 -0
  374. package/app/node_modules/@slack/types/dist/events/team.js +3 -0
  375. package/app/node_modules/@slack/types/dist/events/token.js +3 -0
  376. package/app/node_modules/@slack/types/dist/events/user.js +3 -0
  377. package/app/node_modules/@slack/types/dist/index.js +28 -0
  378. package/app/node_modules/@slack/types/dist/message-attachments.js +3 -0
  379. package/app/node_modules/@slack/types/dist/message-metadata.js +27 -0
  380. package/app/node_modules/@slack/types/dist/views.js +3 -0
  381. package/app/node_modules/@slack/types/package.json +47 -0
  382. package/app/node_modules/@slack/web-api/dist/WebClient.js +818 -0
  383. package/app/node_modules/@slack/web-api/dist/chat-stream.js +178 -0
  384. package/app/node_modules/@slack/web-api/dist/errors.js +80 -0
  385. package/app/node_modules/@slack/web-api/dist/file-upload.js +360 -0
  386. package/app/node_modules/@slack/web-api/dist/helpers.js +14 -0
  387. package/app/node_modules/@slack/web-api/dist/index.js +39 -0
  388. package/app/node_modules/@slack/web-api/dist/instrument.js +87 -0
  389. package/app/node_modules/@slack/web-api/dist/logger.js +29 -0
  390. package/app/node_modules/@slack/web-api/dist/methods.js +1647 -0
  391. package/app/node_modules/@slack/web-api/dist/retry-policies.js +34 -0
  392. package/app/node_modules/@slack/web-api/dist/types/helpers.js +3 -0
  393. package/app/node_modules/@slack/web-api/dist/types/request/admin/analytics.js +3 -0
  394. package/app/node_modules/@slack/web-api/dist/types/request/admin/apps.js +3 -0
  395. package/app/node_modules/@slack/web-api/dist/types/request/admin/auth.js +3 -0
  396. package/app/node_modules/@slack/web-api/dist/types/request/admin/barriers.js +3 -0
  397. package/app/node_modules/@slack/web-api/dist/types/request/admin/conversations.js +3 -0
  398. package/app/node_modules/@slack/web-api/dist/types/request/admin/emoji.js +3 -0
  399. package/app/node_modules/@slack/web-api/dist/types/request/admin/functions.js +3 -0
  400. package/app/node_modules/@slack/web-api/dist/types/request/admin/inviteRequests.js +3 -0
  401. package/app/node_modules/@slack/web-api/dist/types/request/admin/roles.js +3 -0
  402. package/app/node_modules/@slack/web-api/dist/types/request/admin/teams.js +3 -0
  403. package/app/node_modules/@slack/web-api/dist/types/request/admin/usergroups.js +3 -0
  404. package/app/node_modules/@slack/web-api/dist/types/request/admin/users.js +3 -0
  405. package/app/node_modules/@slack/web-api/dist/types/request/admin/workflows.js +3 -0
  406. package/app/node_modules/@slack/web-api/dist/types/request/api.js +3 -0
  407. package/app/node_modules/@slack/web-api/dist/types/request/apps.js +3 -0
  408. package/app/node_modules/@slack/web-api/dist/types/request/assistant.js +3 -0
  409. package/app/node_modules/@slack/web-api/dist/types/request/auth.js +3 -0
  410. package/app/node_modules/@slack/web-api/dist/types/request/bookmarks.js +3 -0
  411. package/app/node_modules/@slack/web-api/dist/types/request/bots.js +3 -0
  412. package/app/node_modules/@slack/web-api/dist/types/request/calls.js +3 -0
  413. package/app/node_modules/@slack/web-api/dist/types/request/canvas.js +3 -0
  414. package/app/node_modules/@slack/web-api/dist/types/request/chat.js +3 -0
  415. package/app/node_modules/@slack/web-api/dist/types/request/common.js +4 -0
  416. package/app/node_modules/@slack/web-api/dist/types/request/conversations.js +3 -0
  417. package/app/node_modules/@slack/web-api/dist/types/request/dialog.js +3 -0
  418. package/app/node_modules/@slack/web-api/dist/types/request/dnd.js +3 -0
  419. package/app/node_modules/@slack/web-api/dist/types/request/emoji.js +3 -0
  420. package/app/node_modules/@slack/web-api/dist/types/request/entity.js +3 -0
  421. package/app/node_modules/@slack/web-api/dist/types/request/files.js +3 -0
  422. package/app/node_modules/@slack/web-api/dist/types/request/functions.js +3 -0
  423. package/app/node_modules/@slack/web-api/dist/types/request/index.js +3 -0
  424. package/app/node_modules/@slack/web-api/dist/types/request/manifest.js +3 -0
  425. package/app/node_modules/@slack/web-api/dist/types/request/migration.js +3 -0
  426. package/app/node_modules/@slack/web-api/dist/types/request/oauth.js +3 -0
  427. package/app/node_modules/@slack/web-api/dist/types/request/openid.js +3 -0
  428. package/app/node_modules/@slack/web-api/dist/types/request/pins.js +3 -0
  429. package/app/node_modules/@slack/web-api/dist/types/request/reactions.js +3 -0
  430. package/app/node_modules/@slack/web-api/dist/types/request/reminders.js +3 -0
  431. package/app/node_modules/@slack/web-api/dist/types/request/rtm.js +3 -0
  432. package/app/node_modules/@slack/web-api/dist/types/request/search.js +3 -0
  433. package/app/node_modules/@slack/web-api/dist/types/request/slackLists.js +3 -0
  434. package/app/node_modules/@slack/web-api/dist/types/request/stars.js +3 -0
  435. package/app/node_modules/@slack/web-api/dist/types/request/team.js +3 -0
  436. package/app/node_modules/@slack/web-api/dist/types/request/tooling.js +3 -0
  437. package/app/node_modules/@slack/web-api/dist/types/request/usergroups.js +3 -0
  438. package/app/node_modules/@slack/web-api/dist/types/request/users.js +3 -0
  439. package/app/node_modules/@slack/web-api/dist/types/request/views.js +3 -0
  440. package/app/node_modules/@slack/web-api/dist/types/request/workflows.js +3 -0
  441. package/app/node_modules/@slack/web-api/dist/types/response/AdminAnalyticsGetFileResponse.js +3 -0
  442. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsActivitiesListResponse.js +11 -0
  443. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApproveResponse.js +11 -0
  444. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApprovedListResponse.js +11 -0
  445. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsClearResolutionResponse.js +11 -0
  446. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigLookupResponse.js +11 -0
  447. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigSetResponse.js +11 -0
  448. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsCancelResponse.js +11 -0
  449. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsListResponse.js +11 -0
  450. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictResponse.js +11 -0
  451. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictedListResponse.js +11 -0
  452. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsUninstallResponse.js +11 -0
  453. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyAssignEntitiesResponse.js +11 -0
  454. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyGetEntitiesResponse.js +11 -0
  455. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyRemoveEntitiesResponse.js +11 -0
  456. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersCreateResponse.js +11 -0
  457. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersDeleteResponse.js +11 -0
  458. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersListResponse.js +11 -0
  459. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersUpdateResponse.js +11 -0
  460. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsArchiveResponse.js +11 -0
  461. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkArchiveResponse.js +11 -0
  462. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkDeleteResponse.js +11 -0
  463. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkMoveResponse.js +11 -0
  464. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPrivateResponse.js +11 -0
  465. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPublicResponse.js +11 -0
  466. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsCreateResponse.js +11 -0
  467. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDeleteResponse.js +11 -0
  468. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDisconnectSharedResponse.js +11 -0
  469. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsEkmListOriginalConnectedChannelInfoResponse.js +11 -0
  470. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetConversationPrefsResponse.js +11 -0
  471. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetCustomRetentionResponse.js +11 -0
  472. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetTeamsResponse.js +11 -0
  473. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsInviteResponse.js +11 -0
  474. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsLookupResponse.js +11 -0
  475. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRemoveCustomRetentionResponse.js +11 -0
  476. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRenameResponse.js +11 -0
  477. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessAddGroupResponse.js +11 -0
  478. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessListGroupsResponse.js +11 -0
  479. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessRemoveGroupResponse.js +11 -0
  480. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSearchResponse.js +11 -0
  481. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetConversationPrefsResponse.js +11 -0
  482. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetCustomRetentionResponse.js +11 -0
  483. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetTeamsResponse.js +11 -0
  484. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsUnarchiveResponse.js +11 -0
  485. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistAddResponse.js +11 -0
  486. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistListGroupsLinkedToChannelResponse.js +11 -0
  487. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistRemoveResponse.js +11 -0
  488. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddAliasResponse.js +11 -0
  489. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddResponse.js +11 -0
  490. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiListResponse.js +11 -0
  491. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRemoveResponse.js +11 -0
  492. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRenameResponse.js +11 -0
  493. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsListResponse.js +11 -0
  494. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsLookupResponse.js +11 -0
  495. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsSetResponse.js +11 -0
  496. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApproveResponse.js +11 -0
  497. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApprovedListResponse.js +11 -0
  498. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDeniedListResponse.js +11 -0
  499. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDenyResponse.js +11 -0
  500. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsListResponse.js +11 -0
  501. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesAddAssignmentsResponse.js +11 -0
  502. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesListAssignmentsResponse.js +11 -0
  503. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesRemoveAssignmentsResponse.js +11 -0
  504. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsAdminsListResponse.js +11 -0
  505. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsCreateResponse.js +11 -0
  506. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsListResponse.js +11 -0
  507. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsOwnersListResponse.js +11 -0
  508. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsInfoResponse.js +11 -0
  509. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDefaultChannelsResponse.js +11 -0
  510. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDescriptionResponse.js +11 -0
  511. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDiscoverabilityResponse.js +11 -0
  512. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetIconResponse.js +11 -0
  513. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetNameResponse.js +11 -0
  514. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddChannelsResponse.js +11 -0
  515. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddTeamsResponse.js +11 -0
  516. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsListChannelsResponse.js +11 -0
  517. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsRemoveChannelsResponse.js +11 -0
  518. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersAssignResponse.js +11 -0
  519. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersInviteResponse.js +11 -0
  520. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersListResponse.js +11 -0
  521. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersRemoveResponse.js +11 -0
  522. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionClearSettingsResponse.js +11 -0
  523. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionGetSettingsResponse.js +11 -0
  524. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionInvalidateResponse.js +11 -0
  525. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionListResponse.js +11 -0
  526. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetBulkResponse.js +11 -0
  527. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetResponse.js +11 -0
  528. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionSetSettingsResponse.js +11 -0
  529. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetAdminResponse.js +11 -0
  530. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetExpirationResponse.js +11 -0
  531. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetOwnerResponse.js +11 -0
  532. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetRegularResponse.js +11 -0
  533. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersUnsupportedVersionsExportResponse.js +11 -0
  534. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsAddResponse.js +11 -0
  535. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsRemoveResponse.js +11 -0
  536. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsPermissionsLookupResponse.js +11 -0
  537. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsSearchResponse.js +11 -0
  538. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsUnpublishResponse.js +11 -0
  539. package/app/node_modules/@slack/web-api/dist/types/response/ApiTestResponse.js +11 -0
  540. package/app/node_modules/@slack/web-api/dist/types/response/AppsConnectionsOpenResponse.js +11 -0
  541. package/app/node_modules/@slack/web-api/dist/types/response/AppsEventAuthorizationsListResponse.js +11 -0
  542. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestCreateResponse.js +11 -0
  543. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestDeleteResponse.js +11 -0
  544. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestExportResponse.js +11 -0
  545. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestUpdateResponse.js +11 -0
  546. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestValidateResponse.js +11 -0
  547. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsInfoResponse.js +11 -0
  548. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsRequestResponse.js +11 -0
  549. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsResourcesListResponse.js +11 -0
  550. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsScopesListResponse.js +11 -0
  551. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersListResponse.js +11 -0
  552. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersRequestResponse.js +11 -0
  553. package/app/node_modules/@slack/web-api/dist/types/response/AppsUninstallResponse.js +11 -0
  554. package/app/node_modules/@slack/web-api/dist/types/response/AppsUserConnectionUpdateResponse.js +11 -0
  555. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetStatusResponse.js +11 -0
  556. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetSuggestedPromptsResponse.js +11 -0
  557. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetTitleResponse.js +11 -0
  558. package/app/node_modules/@slack/web-api/dist/types/response/AuthRevokeResponse.js +11 -0
  559. package/app/node_modules/@slack/web-api/dist/types/response/AuthTeamsListResponse.js +11 -0
  560. package/app/node_modules/@slack/web-api/dist/types/response/AuthTestResponse.js +11 -0
  561. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksAddResponse.js +11 -0
  562. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksEditResponse.js +11 -0
  563. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksListResponse.js +11 -0
  564. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksRemoveResponse.js +11 -0
  565. package/app/node_modules/@slack/web-api/dist/types/response/BotsInfoResponse.js +11 -0
  566. package/app/node_modules/@slack/web-api/dist/types/response/CallsAddResponse.js +11 -0
  567. package/app/node_modules/@slack/web-api/dist/types/response/CallsEndResponse.js +11 -0
  568. package/app/node_modules/@slack/web-api/dist/types/response/CallsInfoResponse.js +11 -0
  569. package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsAddResponse.js +11 -0
  570. package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsRemoveResponse.js +11 -0
  571. package/app/node_modules/@slack/web-api/dist/types/response/CallsUpdateResponse.js +11 -0
  572. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessDeleteResponse.js +11 -0
  573. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessSetResponse.js +11 -0
  574. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesCreateResponse.js +11 -0
  575. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesDeleteResponse.js +11 -0
  576. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesEditResponse.js +11 -0
  577. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesSectionsLookupResponse.js +11 -0
  578. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsArchiveResponse.js +11 -0
  579. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsCreateResponse.js +11 -0
  580. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsHistoryResponse.js +11 -0
  581. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInfoResponse.js +11 -0
  582. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInviteResponse.js +11 -0
  583. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsJoinResponse.js +11 -0
  584. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsKickResponse.js +11 -0
  585. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsLeaveResponse.js +11 -0
  586. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsListResponse.js +11 -0
  587. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsMarkResponse.js +11 -0
  588. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRenameResponse.js +11 -0
  589. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRepliesResponse.js +11 -0
  590. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetPurposeResponse.js +11 -0
  591. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetTopicResponse.js +11 -0
  592. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsUnarchiveResponse.js +11 -0
  593. package/app/node_modules/@slack/web-api/dist/types/response/ChatAppendStreamResponse.js +3 -0
  594. package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteResponse.js +11 -0
  595. package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteScheduledMessageResponse.js +11 -0
  596. package/app/node_modules/@slack/web-api/dist/types/response/ChatGetPermalinkResponse.js +11 -0
  597. package/app/node_modules/@slack/web-api/dist/types/response/ChatMeMessageResponse.js +11 -0
  598. package/app/node_modules/@slack/web-api/dist/types/response/ChatPostEphemeralResponse.js +11 -0
  599. package/app/node_modules/@slack/web-api/dist/types/response/ChatPostMessageResponse.js +67 -0
  600. package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduleMessageResponse.js +48 -0
  601. package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduledMessagesListResponse.js +11 -0
  602. package/app/node_modules/@slack/web-api/dist/types/response/ChatStartStreamResponse.js +3 -0
  603. package/app/node_modules/@slack/web-api/dist/types/response/ChatStopStreamResponse.js +3 -0
  604. package/app/node_modules/@slack/web-api/dist/types/response/ChatUnfurlResponse.js +11 -0
  605. package/app/node_modules/@slack/web-api/dist/types/response/ChatUpdateResponse.js +48 -0
  606. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsAcceptSharedInviteResponse.js +11 -0
  607. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsApproveSharedInviteResponse.js +11 -0
  608. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsArchiveResponse.js +11 -0
  609. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCanvasesCreateResponse.js +11 -0
  610. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCloseResponse.js +11 -0
  611. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCreateResponse.js +11 -0
  612. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsDeclineSharedInviteResponse.js +11 -0
  613. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsExternalInvitePermissionsSetResponse.js +11 -0
  614. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsHistoryResponse.js +67 -0
  615. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInfoResponse.js +11 -0
  616. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteResponse.js +11 -0
  617. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteSharedResponse.js +11 -0
  618. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsJoinResponse.js +11 -0
  619. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsKickResponse.js +11 -0
  620. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsLeaveResponse.js +11 -0
  621. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListConnectInvitesResponse.js +11 -0
  622. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListResponse.js +11 -0
  623. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMarkResponse.js +11 -0
  624. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMembersResponse.js +11 -0
  625. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsOpenResponse.js +48 -0
  626. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRenameResponse.js +11 -0
  627. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRepliesResponse.js +67 -0
  628. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteApproveResponse.js +11 -0
  629. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteDenyResponse.js +11 -0
  630. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteListResponse.js +11 -0
  631. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetPurposeResponse.js +11 -0
  632. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetTopicResponse.js +11 -0
  633. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsUnarchiveResponse.js +11 -0
  634. package/app/node_modules/@slack/web-api/dist/types/response/DialogOpenResponse.js +11 -0
  635. package/app/node_modules/@slack/web-api/dist/types/response/DndEndDndResponse.js +11 -0
  636. package/app/node_modules/@slack/web-api/dist/types/response/DndEndSnoozeResponse.js +11 -0
  637. package/app/node_modules/@slack/web-api/dist/types/response/DndInfoResponse.js +11 -0
  638. package/app/node_modules/@slack/web-api/dist/types/response/DndSetSnoozeResponse.js +11 -0
  639. package/app/node_modules/@slack/web-api/dist/types/response/DndTeamInfoResponse.js +11 -0
  640. package/app/node_modules/@slack/web-api/dist/types/response/EmojiListResponse.js +11 -0
  641. package/app/node_modules/@slack/web-api/dist/types/response/EntityPresentDetailsResponse.js +11 -0
  642. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsAddResponse.js +11 -0
  643. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsDeleteResponse.js +11 -0
  644. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsEditResponse.js +11 -0
  645. package/app/node_modules/@slack/web-api/dist/types/response/FilesCompleteUploadExternalResponse.js +11 -0
  646. package/app/node_modules/@slack/web-api/dist/types/response/FilesDeleteResponse.js +11 -0
  647. package/app/node_modules/@slack/web-api/dist/types/response/FilesGetUploadURLExternalResponse.js +11 -0
  648. package/app/node_modules/@slack/web-api/dist/types/response/FilesInfoResponse.js +37 -0
  649. package/app/node_modules/@slack/web-api/dist/types/response/FilesListResponse.js +37 -0
  650. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteAddResponse.js +37 -0
  651. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteInfoResponse.js +37 -0
  652. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteListResponse.js +37 -0
  653. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteRemoveResponse.js +11 -0
  654. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteShareResponse.js +37 -0
  655. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteUpdateResponse.js +37 -0
  656. package/app/node_modules/@slack/web-api/dist/types/response/FilesRevokePublicURLResponse.js +37 -0
  657. package/app/node_modules/@slack/web-api/dist/types/response/FilesSharedPublicURLResponse.js +37 -0
  658. package/app/node_modules/@slack/web-api/dist/types/response/FilesUploadResponse.js +37 -0
  659. package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteErrorResponse.js +11 -0
  660. package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteSuccessResponse.js +11 -0
  661. package/app/node_modules/@slack/web-api/dist/types/response/GroupsArchiveResponse.js +11 -0
  662. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCloseResponse.js +11 -0
  663. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateChildResponse.js +11 -0
  664. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateResponse.js +11 -0
  665. package/app/node_modules/@slack/web-api/dist/types/response/GroupsHistoryResponse.js +11 -0
  666. package/app/node_modules/@slack/web-api/dist/types/response/GroupsInfoResponse.js +11 -0
  667. package/app/node_modules/@slack/web-api/dist/types/response/GroupsInviteResponse.js +11 -0
  668. package/app/node_modules/@slack/web-api/dist/types/response/GroupsKickResponse.js +11 -0
  669. package/app/node_modules/@slack/web-api/dist/types/response/GroupsLeaveResponse.js +11 -0
  670. package/app/node_modules/@slack/web-api/dist/types/response/GroupsListResponse.js +11 -0
  671. package/app/node_modules/@slack/web-api/dist/types/response/GroupsMarkResponse.js +11 -0
  672. package/app/node_modules/@slack/web-api/dist/types/response/GroupsOpenResponse.js +11 -0
  673. package/app/node_modules/@slack/web-api/dist/types/response/GroupsRenameResponse.js +11 -0
  674. package/app/node_modules/@slack/web-api/dist/types/response/GroupsRepliesResponse.js +11 -0
  675. package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetPurposeResponse.js +11 -0
  676. package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetTopicResponse.js +11 -0
  677. package/app/node_modules/@slack/web-api/dist/types/response/GroupsUnarchiveResponse.js +11 -0
  678. package/app/node_modules/@slack/web-api/dist/types/response/ImCloseResponse.js +11 -0
  679. package/app/node_modules/@slack/web-api/dist/types/response/ImHistoryResponse.js +11 -0
  680. package/app/node_modules/@slack/web-api/dist/types/response/ImListResponse.js +11 -0
  681. package/app/node_modules/@slack/web-api/dist/types/response/ImMarkResponse.js +11 -0
  682. package/app/node_modules/@slack/web-api/dist/types/response/ImOpenResponse.js +11 -0
  683. package/app/node_modules/@slack/web-api/dist/types/response/ImRepliesResponse.js +11 -0
  684. package/app/node_modules/@slack/web-api/dist/types/response/MigrationExchangeResponse.js +11 -0
  685. package/app/node_modules/@slack/web-api/dist/types/response/MpimCloseResponse.js +11 -0
  686. package/app/node_modules/@slack/web-api/dist/types/response/MpimHistoryResponse.js +11 -0
  687. package/app/node_modules/@slack/web-api/dist/types/response/MpimListResponse.js +11 -0
  688. package/app/node_modules/@slack/web-api/dist/types/response/MpimMarkResponse.js +11 -0
  689. package/app/node_modules/@slack/web-api/dist/types/response/MpimOpenResponse.js +11 -0
  690. package/app/node_modules/@slack/web-api/dist/types/response/MpimRepliesResponse.js +11 -0
  691. package/app/node_modules/@slack/web-api/dist/types/response/OauthAccessResponse.js +11 -0
  692. package/app/node_modules/@slack/web-api/dist/types/response/OauthTokenResponse.js +11 -0
  693. package/app/node_modules/@slack/web-api/dist/types/response/OauthV2AccessResponse.js +11 -0
  694. package/app/node_modules/@slack/web-api/dist/types/response/OauthV2ExchangeResponse.js +11 -0
  695. package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectTokenResponse.js +11 -0
  696. package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectUserInfoResponse.js +11 -0
  697. package/app/node_modules/@slack/web-api/dist/types/response/PinsAddResponse.js +11 -0
  698. package/app/node_modules/@slack/web-api/dist/types/response/PinsListResponse.js +37 -0
  699. package/app/node_modules/@slack/web-api/dist/types/response/PinsRemoveResponse.js +11 -0
  700. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsAddResponse.js +11 -0
  701. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsGetResponse.js +48 -0
  702. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsListResponse.js +67 -0
  703. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsRemoveResponse.js +11 -0
  704. package/app/node_modules/@slack/web-api/dist/types/response/RemindersAddResponse.js +11 -0
  705. package/app/node_modules/@slack/web-api/dist/types/response/RemindersCompleteResponse.js +11 -0
  706. package/app/node_modules/@slack/web-api/dist/types/response/RemindersDeleteResponse.js +11 -0
  707. package/app/node_modules/@slack/web-api/dist/types/response/RemindersInfoResponse.js +11 -0
  708. package/app/node_modules/@slack/web-api/dist/types/response/RemindersListResponse.js +11 -0
  709. package/app/node_modules/@slack/web-api/dist/types/response/RtmConnectResponse.js +11 -0
  710. package/app/node_modules/@slack/web-api/dist/types/response/RtmStartResponse.js +77 -0
  711. package/app/node_modules/@slack/web-api/dist/types/response/SearchAllResponse.js +82 -0
  712. package/app/node_modules/@slack/web-api/dist/types/response/SearchFilesResponse.js +63 -0
  713. package/app/node_modules/@slack/web-api/dist/types/response/SearchMessagesResponse.js +67 -0
  714. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessDeleteResponse.js +3 -0
  715. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessSetResponse.js +3 -0
  716. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsCreateResponse.js +3 -0
  717. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadGetResponse.js +3 -0
  718. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadStartResponse.js +3 -0
  719. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsCreateResponse.js +3 -0
  720. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteMultipleResponse.js +3 -0
  721. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteResponse.js +3 -0
  722. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsInfoResponse.js +3 -0
  723. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsListResponse.js +3 -0
  724. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsUpdateResponse.js +3 -0
  725. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsUpdateResponse.js +3 -0
  726. package/app/node_modules/@slack/web-api/dist/types/response/StarsAddResponse.js +11 -0
  727. package/app/node_modules/@slack/web-api/dist/types/response/StarsListResponse.js +11 -0
  728. package/app/node_modules/@slack/web-api/dist/types/response/StarsRemoveResponse.js +11 -0
  729. package/app/node_modules/@slack/web-api/dist/types/response/TeamAccessLogsResponse.js +11 -0
  730. package/app/node_modules/@slack/web-api/dist/types/response/TeamBillableInfoResponse.js +11 -0
  731. package/app/node_modules/@slack/web-api/dist/types/response/TeamBillingInfoResponse.js +11 -0
  732. package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsDisconnectResponse.js +11 -0
  733. package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsListResponse.js +11 -0
  734. package/app/node_modules/@slack/web-api/dist/types/response/TeamInfoResponse.js +11 -0
  735. package/app/node_modules/@slack/web-api/dist/types/response/TeamIntegrationLogsResponse.js +11 -0
  736. package/app/node_modules/@slack/web-api/dist/types/response/TeamPreferencesListResponse.js +11 -0
  737. package/app/node_modules/@slack/web-api/dist/types/response/TeamProfileGetResponse.js +11 -0
  738. package/app/node_modules/@slack/web-api/dist/types/response/ToolingTokensRotateResponse.js +11 -0
  739. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsCreateResponse.js +11 -0
  740. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsDisableResponse.js +11 -0
  741. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsEnableResponse.js +11 -0
  742. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsListResponse.js +11 -0
  743. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUpdateResponse.js +11 -0
  744. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersListResponse.js +11 -0
  745. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersUpdateResponse.js +11 -0
  746. package/app/node_modules/@slack/web-api/dist/types/response/UsersConversationsResponse.js +11 -0
  747. package/app/node_modules/@slack/web-api/dist/types/response/UsersDeletePhotoResponse.js +11 -0
  748. package/app/node_modules/@slack/web-api/dist/types/response/UsersDiscoverableContactsLookupResponse.js +11 -0
  749. package/app/node_modules/@slack/web-api/dist/types/response/UsersGetPresenceResponse.js +11 -0
  750. package/app/node_modules/@slack/web-api/dist/types/response/UsersIdentityResponse.js +11 -0
  751. package/app/node_modules/@slack/web-api/dist/types/response/UsersInfoResponse.js +11 -0
  752. package/app/node_modules/@slack/web-api/dist/types/response/UsersListResponse.js +11 -0
  753. package/app/node_modules/@slack/web-api/dist/types/response/UsersLookupByEmailResponse.js +11 -0
  754. package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileGetResponse.js +11 -0
  755. package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileSetResponse.js +11 -0
  756. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetActiveResponse.js +11 -0
  757. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPhotoResponse.js +11 -0
  758. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPresenceResponse.js +11 -0
  759. package/app/node_modules/@slack/web-api/dist/types/response/ViewsOpenResponse.js +31 -0
  760. package/app/node_modules/@slack/web-api/dist/types/response/ViewsPublishResponse.js +31 -0
  761. package/app/node_modules/@slack/web-api/dist/types/response/ViewsPushResponse.js +31 -0
  762. package/app/node_modules/@slack/web-api/dist/types/response/ViewsUpdateResponse.js +31 -0
  763. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedAddResponse.js +3 -0
  764. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedListResponse.js +3 -0
  765. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedRemoveResponse.js +3 -0
  766. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedSetResponse.js +3 -0
  767. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepCompletedResponse.js +11 -0
  768. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepFailedResponse.js +11 -0
  769. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsUpdateStepResponse.js +11 -0
  770. package/app/node_modules/@slack/web-api/dist/types/response/index.js +3 -0
  771. package/app/node_modules/@slack/web-api/package.json +75 -0
  772. package/app/node_modules/agent-base/dist/src/index.js +203 -0
  773. package/app/node_modules/agent-base/dist/src/promisify.js +18 -0
  774. package/app/node_modules/agent-base/package.json +64 -0
  775. package/app/node_modules/asynckit/index.js +6 -0
  776. package/app/node_modules/asynckit/lib/abort.js +29 -0
  777. package/app/node_modules/asynckit/lib/async.js +34 -0
  778. package/app/node_modules/asynckit/lib/defer.js +26 -0
  779. package/app/node_modules/asynckit/lib/iterate.js +75 -0
  780. package/app/node_modules/asynckit/lib/state.js +37 -0
  781. package/app/node_modules/asynckit/lib/terminator.js +29 -0
  782. package/app/node_modules/asynckit/package.json +63 -0
  783. package/app/node_modules/asynckit/parallel.js +43 -0
  784. package/app/node_modules/asynckit/serial.js +17 -0
  785. package/app/node_modules/asynckit/serialOrdered.js +75 -0
  786. package/app/node_modules/axios/dist/node/axios.cjs +6808 -0
  787. package/app/node_modules/axios/package.json +203 -0
  788. package/app/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  789. package/app/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  790. package/app/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  791. package/app/node_modules/call-bind-apply-helpers/index.js +15 -0
  792. package/app/node_modules/call-bind-apply-helpers/package.json +85 -0
  793. package/app/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  794. package/app/node_modules/combined-stream/lib/combined_stream.js +208 -0
  795. package/app/node_modules/combined-stream/package.json +25 -0
  796. package/app/node_modules/debug/package.json +64 -0
  797. package/app/node_modules/debug/src/browser.js +272 -0
  798. package/app/node_modules/debug/src/common.js +292 -0
  799. package/app/node_modules/debug/src/index.js +10 -0
  800. package/app/node_modules/debug/src/node.js +263 -0
  801. package/app/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  802. package/app/node_modules/delayed-stream/package.json +27 -0
  803. package/app/node_modules/dunder-proto/get.js +30 -0
  804. package/app/node_modules/dunder-proto/package.json +76 -0
  805. package/app/node_modules/es-define-property/index.js +14 -0
  806. package/app/node_modules/es-define-property/package.json +81 -0
  807. package/app/node_modules/es-errors/eval.js +4 -0
  808. package/app/node_modules/es-errors/index.js +4 -0
  809. package/app/node_modules/es-errors/package.json +80 -0
  810. package/app/node_modules/es-errors/range.js +4 -0
  811. package/app/node_modules/es-errors/ref.js +4 -0
  812. package/app/node_modules/es-errors/syntax.js +4 -0
  813. package/app/node_modules/es-errors/type.js +4 -0
  814. package/app/node_modules/es-errors/uri.js +4 -0
  815. package/app/node_modules/es-object-atoms/index.js +4 -0
  816. package/app/node_modules/es-object-atoms/package.json +79 -0
  817. package/app/node_modules/es-set-tostringtag/index.js +35 -0
  818. package/app/node_modules/es-set-tostringtag/package.json +78 -0
  819. package/app/node_modules/eventemitter3/index.js +336 -0
  820. package/app/node_modules/eventemitter3/package.json +62 -0
  821. package/app/node_modules/follow-redirects/debug.js +15 -0
  822. package/app/node_modules/follow-redirects/index.js +709 -0
  823. package/app/node_modules/follow-redirects/package.json +58 -0
  824. package/app/node_modules/form-data/lib/browser.js +4 -0
  825. package/app/node_modules/form-data/lib/form_data.js +506 -0
  826. package/app/node_modules/form-data/lib/populate.js +10 -0
  827. package/app/node_modules/form-data/package.json +82 -0
  828. package/app/node_modules/function-bind/implementation.js +84 -0
  829. package/app/node_modules/function-bind/index.js +5 -0
  830. package/app/node_modules/function-bind/package.json +87 -0
  831. package/app/node_modules/get-intrinsic/index.js +378 -0
  832. package/app/node_modules/get-intrinsic/package.json +97 -0
  833. package/app/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  834. package/app/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  835. package/app/node_modules/get-proto/index.js +27 -0
  836. package/app/node_modules/get-proto/package.json +81 -0
  837. package/app/node_modules/gopd/gOPD.js +4 -0
  838. package/app/node_modules/gopd/index.js +15 -0
  839. package/app/node_modules/gopd/package.json +77 -0
  840. package/app/node_modules/has-flag/index.js +8 -0
  841. package/app/node_modules/has-flag/package.json +46 -0
  842. package/app/node_modules/has-symbols/index.js +14 -0
  843. package/app/node_modules/has-symbols/package.json +111 -0
  844. package/app/node_modules/has-symbols/shams.js +45 -0
  845. package/app/node_modules/has-tostringtag/package.json +108 -0
  846. package/app/node_modules/has-tostringtag/shams.js +8 -0
  847. package/app/node_modules/hasown/index.js +8 -0
  848. package/app/node_modules/hasown/package.json +91 -0
  849. package/app/node_modules/https-proxy-agent/dist/agent.js +177 -0
  850. package/app/node_modules/https-proxy-agent/dist/index.js +14 -0
  851. package/app/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
  852. package/app/node_modules/https-proxy-agent/package.json +56 -0
  853. package/app/node_modules/is-electron/index.js +21 -0
  854. package/app/node_modules/is-electron/package.json +34 -0
  855. package/app/node_modules/is-stream/index.js +28 -0
  856. package/app/node_modules/is-stream/package.json +42 -0
  857. package/app/node_modules/math-intrinsics/abs.js +4 -0
  858. package/app/node_modules/math-intrinsics/floor.js +4 -0
  859. package/app/node_modules/math-intrinsics/isNaN.js +6 -0
  860. package/app/node_modules/math-intrinsics/max.js +4 -0
  861. package/app/node_modules/math-intrinsics/min.js +4 -0
  862. package/app/node_modules/math-intrinsics/package.json +86 -0
  863. package/app/node_modules/math-intrinsics/pow.js +4 -0
  864. package/app/node_modules/math-intrinsics/round.js +4 -0
  865. package/app/node_modules/math-intrinsics/sign.js +11 -0
  866. package/app/node_modules/mime-db/db.json +8519 -0
  867. package/app/node_modules/mime-db/index.js +12 -0
  868. package/app/node_modules/mime-db/package.json +60 -0
  869. package/app/node_modules/mime-types/index.js +188 -0
  870. package/app/node_modules/mime-types/package.json +44 -0
  871. package/app/node_modules/ms/index.js +162 -0
  872. package/app/node_modules/ms/package.json +38 -0
  873. package/app/node_modules/p-finally/index.js +15 -0
  874. package/app/node_modules/p-finally/package.json +42 -0
  875. package/app/node_modules/p-queue/dist/index.js +279 -0
  876. package/app/node_modules/p-queue/dist/lower-bound.js +21 -0
  877. package/app/node_modules/p-queue/dist/priority-queue.js +32 -0
  878. package/app/node_modules/p-queue/node_modules/eventemitter3/index.js +336 -0
  879. package/app/node_modules/p-queue/node_modules/eventemitter3/package.json +56 -0
  880. package/app/node_modules/p-queue/package.json +92 -0
  881. package/app/node_modules/p-retry/index.js +85 -0
  882. package/app/node_modules/p-retry/package.json +51 -0
  883. package/app/node_modules/p-timeout/index.js +57 -0
  884. package/app/node_modules/p-timeout/package.json +45 -0
  885. package/app/node_modules/retry/index.js +1 -0
  886. package/app/node_modules/retry/lib/retry.js +100 -0
  887. package/app/node_modules/retry/lib/retry_operation.js +162 -0
  888. package/app/node_modules/retry/package.json +36 -0
  889. package/app/node_modules/supports-color/index.js +135 -0
  890. package/app/node_modules/supports-color/package.json +53 -0
  891. package/app/node_modules/ws/index.js +22 -0
  892. package/app/node_modules/ws/lib/buffer-util.js +131 -0
  893. package/app/node_modules/ws/lib/constants.js +19 -0
  894. package/app/node_modules/ws/lib/event-target.js +292 -0
  895. package/app/node_modules/ws/lib/extension.js +203 -0
  896. package/app/node_modules/ws/lib/limiter.js +55 -0
  897. package/app/node_modules/ws/lib/permessage-deflate.js +530 -0
  898. package/app/node_modules/ws/lib/receiver.js +743 -0
  899. package/app/node_modules/ws/lib/sender.js +607 -0
  900. package/app/node_modules/ws/lib/stream.js +161 -0
  901. package/app/node_modules/ws/lib/subprotocol.js +62 -0
  902. package/app/node_modules/ws/lib/validation.js +152 -0
  903. package/app/node_modules/ws/lib/websocket-server.js +562 -0
  904. package/app/node_modules/ws/lib/websocket.js +1421 -0
  905. package/app/node_modules/ws/package.json +74 -0
  906. package/app/package.json +1 -1
  907. package/app/server.js +1 -1
  908. package/dist/cli.js +5 -2
  909. package/dist/product.d.ts +8 -0
  910. package/dist/product.js +69 -3
  911. package/package.json +2 -2
  912. package/schemas/botmancers.mcp.v2.tools.json +767 -2
  913. package/skills/botmancers-collaboration/SKILL.md +5 -1
  914. package/skills/botmancers-collaboration/references/workflows.md +21 -0
  915. package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +0 -3
  916. package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +0 -3
  917. package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +0 -3
  918. package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +0 -3
  919. package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +0 -3
  920. package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +0 -3
  921. package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +0 -44
  922. package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +0 -3
  923. package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +0 -3
  924. package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +0 -3
  925. package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +0 -44
  926. package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +0 -3
  927. package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +0 -3
  928. package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +0 -44
  929. package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +0 -3
  930. package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +0 -44
  931. package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +0 -3
  932. package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +0 -3
  933. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +0 -7
  934. package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +0 -3
  935. package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +0 -44
  936. package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +0 -3
  937. package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +0 -3
  938. package/app/.next/server/chunks/_023se5j._.js +0 -44
  939. package/app/.next/server/chunks/_02pb_qv._.js +0 -44
  940. package/app/.next/server/chunks/_05ro-21._.js +0 -44
  941. package/app/.next/server/chunks/_07on0dc._.js +0 -44
  942. package/app/.next/server/chunks/_08208nz._.js +0 -44
  943. package/app/.next/server/chunks/_0fe5qz5._.js +0 -44
  944. package/app/.next/server/chunks/_0qoji5a._.js +0 -44
  945. package/app/.next/server/chunks/_0uv2pi5._.js +0 -44
  946. package/app/.next/server/chunks/_0wdl90-._.js +0 -44
  947. package/app/.next/server/chunks/_11ijk9k._.js +0 -44
  948. package/app/.next/server/chunks/_198sn69._.js +0 -44
  949. package/app/.next/server/chunks/_1ba_5hd._.js +0 -44
  950. package/app/.next/server/chunks/_1m89jq5._.js +0 -44
  951. package/app/.next/server/chunks/_1n39wr_._.js +0 -44
  952. package/app/.next/server/chunks/_1ryxqo1._.js +0 -44
  953. package/app/.next/server/chunks/_1vemgly._.js +0 -44
  954. package/app/.next/server/chunks/lib_0lqoyb4._.js +0 -217
  955. package/app/.next/server/chunks/lib_0riiofz._.js +0 -44
  956. package/app/.next/server/chunks/lib_16j2293._.js +0 -217
  957. package/app/.next/server/chunks/lib_1nb_61e._.js +0 -217
  958. package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +0 -20
  959. package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +0 -3
  960. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +0 -3
  961. package/app/.next/static/chunks/0bhd8eso48g27.js +0 -1
  962. package/app/.next/static/chunks/3230ywnpii0s6.js +0 -3
  963. package/app/.next/static/chunks/35l2c95bd-jud.js +0 -1
  964. package/app/.next/static/chunks/3cijpn6vx3yzv.js +0 -1
  965. package/app/.next/static/chunks/3ue9194j59kem.js +0 -1
  966. package/app/.next/static/chunks/44ese2s4gzze_.js +0 -1
  967. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_buildManifest.js +0 -0
  968. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_clientMiddlewareManifest.js +0 -0
  969. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[43345,e=>{"use strict";var t=e.i(62294),n=e.i(26571),r=e.i(45383);let i=["authentication_unavailable","unauthenticated","principal_mismatch","agent_not_found","conversation_not_found","request_not_found"];async function a(e,n){let a,o=null,s=!1,c=null;try{a=await e(e=>{o=e},()=>{let e=o;n&&e&&"service"===e.kind&&t.serviceAudit.append({principal:e,operation:n.operation,capability:"participant",targetKind:n.targetKind,targetRef:n.targetRef,outcome:"allowed",code:null}),s=!0})}catch(e){if(e instanceof r.AgentApiError)c=e.code,a=Response.json({error:{code:e.code,message:e.message}},{status:e.status});else console.error("Agent conversation API error:",e),c="internal_error",a=Response.json({error:{code:"internal_error",message:"The request could not be processed."}},{status:500})}let d=o;if(s&&null===c)return a;if(n&&d&&"service"===d.kind)try{t.serviceAudit.append({principal:d,operation:n.operation,capability:"participant",targetKind:n.targetKind,targetRef:n.targetRef,outcome:null===c?"allowed":"internal_error"===c?"error":i.includes(c)?"denied":"rejected",code:c})}catch(e){return console.error("Service audit append failed:",e instanceof Error?e.message:"unknown error"),Response.json({error:{code:"internal_error",message:"The request could not be processed."}},{status:500})}return a}async function o(e){let t,i=function(){try{return(0,n.serviceTokenAuthenticatorFromEnv)()}catch(e){if(e instanceof n.ServiceTokenConfigError)return console.error(`Agent API authentication disabled: ${e.message}`),null;throw e}}();if(!i)throw new r.AgentApiError("authentication_unavailable","No authenticator is configured for the agent conversation API.");try{t=await i(e)}catch{t=null}if(!t||!(0,r.isPrincipalKind)(t.kind)||"string"!=typeof t.id||!t.id.trim())throw new r.AgentApiError("unauthenticated","Authentication failed.");return{kind:t.kind,id:t.id}}async function s(e,t){return a(async(n,i)=>{var a;let s,c=await o(e);n(c);try{let t=await e.json();if(!t||"object"!=typeof t||Array.isArray(t))throw Error("not an object");s=t}catch{throw new r.AgentApiError("invalid_request","The request body must be a JSON object.")}let d=null==(a=s.principal)?null:{kind:a.kind,id:String(a.id??"")};if(d&&!(0,r.samePrincipal)(d,c))throw new r.AgentApiError("principal_mismatch","The declared principal does not match the authenticated principal.");let l=e.headers.get("idempotency-key"),u="string"==typeof s.idempotencyKey?s.idempotencyKey:null;if(l&&u&&l!==u)throw new r.AgentApiError("invalid_request","Idempotency-Key header and body idempotencyKey differ.");let p=l??u??"";if(p.toLowerCase().startsWith(r.MCP_IDEMPOTENCY_PREFIX))throw new r.AgentApiError("invalid_request",`Idempotency keys starting with "${r.MCP_IDEMPOTENCY_PREFIX}" are reserved for the MCP bridge.`);let{accepted:g,dispatched:f}=(0,r.acceptAgentMessage)(c,{agentId:t,content:"string"==typeof s.content?s.content:"",idempotencyKey:p,conversationId:"string"==typeof s.conversationId?s.conversationId:null==s.conversationId?null:""},i);return!0===s.wait?(await f,Response.json({...(0,r.getAgentRequest)(c,g.requestId),replayed:g.replayed})):Response.json(g,{status:g.replayed?200:202})},{operation:"agents.message",targetKind:"agent",targetRef:t})}async function c(e,t){return a(async n=>{let i=await o(e);return n(i),Response.json((0,r.getConversation)(i,t))},{operation:"conversations.read",targetKind:"conversation",targetRef:t})}async function d(e,t){return a(async n=>{let i=await o(e);return n(i),Response.json((0,r.getAgentRequest)(i,t))},{operation:"requests.read",targetKind:"request",targetRef:t})}e.s(["authenticate",0,o,"handleGetAgentRequest",0,d,"handleGetConversation",0,c,"handleSendAgentMessage",0,s])}];
2
+
3
+ //# sourceMappingURL=lib_agent-api_ts_0iv52-o._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[85148,(e,t,n)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},62294,18966,64974,11626,40596,28420,35613,30098,e=>{"use strict";let t;var n=e.i(85148),i=e.i(22734),r=e.i(14747),s=e.i(54799),a=e.i(62349);let o=["direct","agent_deck"],_=["read_only","workspace_write"],d=["workspaces","sessions","all_provider_sessions"],E="This computer",u={mode:"read_only",allow_new_sessions:!0,allow_resume_with_edits:!1},c="Runtime connection is required. Pick the runtime this Agent uses.",l="Runtime connection not found.",T="Launch profile is required. Choose direct or agent_deck.",p="Invalid launch profile. Expected direct or agent_deck.",N="A direct launch profile does not use Agent Deck. Remove deck_id or choose agent_deck.",R="working_directory is an Agent Deck setting. Use default_workspace for a direct launch profile.",m="Session scope is required. Select workspaces, select sessions, or explicitly choose all_provider_sessions.",L="A session scope selects workspaces or sessions, not both.",g="Workspaces must be absolute paths (or start with ~/).",O="Launch policy is required. Choose read_only or workspace_write.",I=`Provider is required. Expected one of ${a.AGENTS.join("|")}.`;function A(e){return"string"==typeof e&&o.includes(e)}function S(e){return"string"==typeof e&&d.includes(e)}function k(e){return"string"==typeof e&&_.includes(e)}function f(e){return null==e?null:String(e).trim()||null}function v(e){return`rc-local-${e}`}function h(e){return`${a.AGENT_LABELS[e]} on ${E.toLowerCase()}`}function w(e){return e.startsWith("/")||"~"===e||e.startsWith("~/")}function C(e){return e.length>1?e.replace(/\/+$/,""):e}function q(e,t){let n=C(e),i=C(t);return n===i||i.startsWith("/"===n?"/":`${n}/`)}function y(e){if(null==e)return[];if(!Array.isArray(e))return null;let t=[];for(let n of e){if("string"!=typeof n)return null;let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function b(e){let t=e.session_scope_kind;if(!S(t))return null;let n=[];if(e.session_scope_items)try{let t=y(JSON.parse(e.session_scope_items));if(null===t)return null;n=t}catch{return null}return"all_provider_sessions"===t?0===n.length?{kind:t,workspaces:[],sessions:[]}:null:0===n.length?null:"workspaces"===t?{kind:t,workspaces:n,sessions:[]}:{kind:t,workspaces:[],sessions:n}}function D(e){return!0===e||1===e||"1"===e}function U(e){return k(e.policy_mode)?{mode:e.policy_mode,allow_new_sessions:D(e.allow_new_sessions),allow_resume_with_edits:D(e.allow_resume_with_edits)}:null}function F(e){return A(e.launch_profile)?e.launch_profile:null}function W(e){var t;return{runtime_connection_id:e.runtime_connection_id,launch_profile:e.launch_profile,deck_id:"agent_deck"===e.launch_profile?e.deck_id:null,working_directory:"agent_deck"===e.launch_profile?e.working_directory:null,session_scope_kind:e.session_scope.kind,session_scope_items:JSON.stringify("workspaces"===(t=e.session_scope).kind?t.workspaces:"sessions"===t.kind?t.sessions:[]),default_workspace:e.default_workspace,policy_mode:e.policy.mode,allow_new_sessions:+!!e.policy.allow_new_sessions,allow_resume_with_edits:+!!e.policy.allow_resume_with_edits,home_session_id:e.home_session_id,needs_deck_selection:0}}function X(e){let t="hermes";try{t=(0,a.normalizeAgent)(e.agent)??"hermes"}catch{t="hermes"}let n=f(e.deck_id),i=D(e.needs_deck_selection),r=f(e.working_directory)??`~/.botmancers/${e.id}`;return{runtime_connection_id:v(t),provider:t,launch_profile:n&&!i?"agent_deck":null,session_scope_kind:"workspaces",session_scope_items:JSON.stringify([r]),policy_mode:u.mode,allow_new_sessions:+!!u.allow_new_sessions,allow_resume_with_edits:+!!u.allow_resume_with_edits}}let x=["runtime_connection_id","launch_profile","session_scope","default_workspace","policy","home_session_id"];function G(e){return x.some(t=>void 0!==e[t])}function H(e,t){if(null==e||"object"!=typeof e||Array.isArray(e)||void 0===e.kind||null===e.kind||""===e.kind)return t.push(m),null;if(!S(e.kind))return t.push("Invalid session scope kind. Expected workspaces, sessions, or all_provider_sessions."),null;let n=y(e.workspaces),i=y(e.sessions);if(null===n||null===i)return t.push("session_scope.workspaces and session_scope.sessions must be lists of strings."),null;let r=e.kind;return"all_provider_sessions"===r?n.length>0||i.length>0?(t.push("all_provider_sessions takes no workspace or session list."),null):{kind:r,workspaces:[],sessions:[]}:n.length>0&&i.length>0?(t.push(L),null):"workspaces"===r?i.length>0?(t.push(L),null):0===n.length?(t.push("Select at least one workspace. An empty scope is never unrestricted."),null):n.every(w)?{kind:r,workspaces:n,sessions:[]}:(t.push(g),null):n.length>0?(t.push(L),null):0===i.length?(t.push("Select at least one session. An empty scope is never unrestricted."),null):{kind:r,workspaces:[],sessions:i}}function B(e,t){if(null==e||"object"!=typeof e||Array.isArray(e)||void 0===e.mode||null===e.mode||""===e.mode)return t.push(O),null;if(!k(e.mode))return t.push("Invalid policy mode. Expected read_only or workspace_write."),null;let n=[];for(let i of["allow_new_sessions","allow_resume_with_edits"]){let r=e[i];if(void 0===r)n.push(!1);else{if("boolean"!=typeof r)return t.push("Policy flags allow_new_sessions and allow_resume_with_edits must be true or false."),null;n.push(r)}}let i={mode:e.mode,allow_new_sessions:n[0],allow_resume_with_edits:n[1]};return i.allow_resume_with_edits&&"workspace_write"!==i.mode?(t.push("allow_resume_with_edits requires the workspace_write policy mode."),null):i}function M(e,t){if(null==e)return null;if("string"!=typeof e)return t.push(g),null;let n=e.trim();return n?w(n)?n:(t.push(g),null):null}function K(e,t,n,i){"agent_deck"!==e.launch_profile||e.deck_id||i.push(a.DECK_REQUIRED_ERROR);let r=e.session_scope;"sessions"!==r.kind||r.sessions.every(e=>n.sessionBelongsTo(t,e))||i.push("A selected session does not belong to this Agent."),e.default_workspace&&"workspaces"===r.kind&&!r.workspaces.some(t=>q(t,e.default_workspace))&&i.push("default_workspace must be inside one of the selected workspaces."),e.home_session_id&&(n.sessionBelongsTo(t,e.home_session_id)?"sessions"!==r.kind||r.sessions.includes(e.home_session_id)||i.push("home_session_id must be one of the selected sessions."):i.push("home_session_id must be one of this Agent’s own sessions."))}function Y(e,t,n){let i=f(e.runtime_connection_id);if(!i)return n.push(c),null;let r=t.getConnection(i);return r?void 0!==e.agent&&null!==e.agent&&String(e.agent).trim()&&String(e.agent).trim()!==r.provider?(n.push("agent does not match the runtime connection provider."),null):r:(n.push(l),null)}function P(e,t){try{return(0,a.parseRequestDeckId)(e)}catch(e){return t.push(e instanceof Error?e.message:String(e)),null}}function $(e){return!G(e)&&void 0!==e.deck_id}function z(e){return{runtime_connection_id:f(e.runtime_connection_id),launch_profile:F(e),deck_id:f(e.deck_id),working_directory:f(e.working_directory),session_scope:b(e),default_workspace:f(e.default_workspace),policy:U(e),home_session_id:f(e.home_session_id)}}function j(e,t){let n=z(e);return{runtime_connection_id:n.runtime_connection_id,runtime_connection:t?{id:t.id,provider:t.provider,label:t.label,host:t.host}:null,launch_profile:n.launch_profile,needs_launch_profile:null===n.launch_profile,session_scope:n.session_scope,default_workspace:n.default_workspace,policy:n.policy,home_session_id:n.home_session_id}}e.s(["LOCAL_HOST",0,E,"hasRegistrationUpdate",0,G,"isLegacyCreate",0,$,"localConnectionId",0,v,"localConnectionLabel",0,h,"migrateRegistration",0,X,"readStoredPolicy",0,U,"readStoredScope",0,b,"registrationColumns",0,W,"serializeRegistration",0,j,"storedLaunchProfile",0,F,"validateConnectionInput",0,function(e){let t=[],n=null;try{(n=(0,a.normalizeAgent)(e.provider))||t.push(I)}catch(e){t.push(e instanceof Error?e.message:String(e))}let i=f(e.label);i?i.length>80&&t.push("Connection name must be 80 characters or fewer."):t.push("Connection name is required.");let r=f(e.host)??E;for(let n of(r.length>80&&t.push("Host must be 80 characters or fewer."),["token","api_key","apiKey","credentials","password","secret"]))void 0!==e[n]&&t.push("Runtime credentials stay with the runtime; a connection stores no secrets.");return!(t.length>0)&&n&&i?{errors:t,fields:{provider:n,label:i,host:r}}:{errors:[...new Set(t)],fields:null}},"validateCreateRegistration",0,function(e,t){let n=[];if($(e)){let i="hermes";try{i=(0,a.normalizeAgent)(e.agent)??"hermes"}catch(e){n.push(e instanceof Error?e.message:String(e))}let r=P(e.deck_id,n);r||0!==n.length||n.push(a.DECK_REQUIRED_ERROR);let s=f(e.working_directory);return n.length>0?{errors:n,registration:null,provider:null}:{errors:n,provider:i,registration:{runtime_connection_id:t.localConnectionFor(i),launch_profile:"agent_deck",deck_id:r,working_directory:s,session_scope:{kind:"workspaces",workspaces:s?[s]:[],sessions:[]},default_workspace:null,policy:{...u},home_session_id:null}}}let i=Y(e,t,n),r=null;void 0===e.launch_profile||null===e.launch_profile||""===e.launch_profile?n.push(T):A(e.launch_profile)?r=e.launch_profile:n.push(p);let s=null,o=null;"direct"===r?(f(e.deck_id)&&n.push(N),f(e.working_directory)&&n.push(R)):"agent_deck"===r&&(s=P(e.deck_id,n),o=f(e.working_directory));let _=H(e.session_scope,n),d=M(e.default_workspace,n),E=B(e.policy,n),c=f(e.home_session_id);if(!i||!r||!_||!E||n.length>0)return{errors:n,registration:null,provider:null};let l={runtime_connection_id:i.id,launch_profile:r,deck_id:s,working_directory:o,session_scope:_,default_workspace:d,policy:E,home_session_id:c};return K(l,null,t,n),n.length>0?{errors:n,registration:null,provider:null}:{errors:n,registration:l,provider:i.provider}},"validateUpdateRegistration",0,function(e,t,n,i){let r=[],s=z(t),o=null;if(void 0!==n.runtime_connection_id)o=Y(n,i,r);else if(void 0!==n.agent)try{let e=(0,a.normalizeAgent)(n.agent);if(e){let t=s.runtime_connection_id?i.getConnection(s.runtime_connection_id):void 0;o=t&&t.provider===e?t:i.getConnection(i.localConnectionFor(e))??null}else r.push(`Agent is required. Expected one of ${a.AGENTS.join("|")}.`)}catch(e){r.push(e instanceof Error?e.message:String(e))}else s.runtime_connection_id?(o=i.getConnection(s.runtime_connection_id)??null)||r.push(l):r.push(c);let _=s.launch_profile;void 0!==n.launch_profile?A(n.launch_profile)?_=n.launch_profile:(r.push(null===n.launch_profile||""===n.launch_profile?T:p),_=null):void 0!==n.deck_id&&"direct"!==_&&(_="agent_deck");let d=s.deck_id,E=s.working_directory;"direct"===_?(void 0!==n.deck_id&&f(n.deck_id)&&r.push(N),void 0!==n.working_directory&&f(n.working_directory)&&r.push(R),d=null,E=null):"agent_deck"===_?(void 0!==n.deck_id?d=P(n.deck_id,r):("agent_deck"!==s.launch_profile||D(t.needs_deck_selection))&&(d=null),void 0!==n.working_directory&&(E=f(n.working_directory))):0===r.length&&r.push(T);let u=void 0!==n.session_scope?H(n.session_scope,r):s.session_scope;void 0!==n.session_scope||u||r.push(m);let L=void 0!==n.default_workspace?M(n.default_workspace,r):s.default_workspace,g=void 0!==n.policy?B(n.policy,r):s.policy;void 0!==n.policy||g||r.push(O);let I=void 0!==n.home_session_id?f(n.home_session_id):s.home_session_id;if(!o||!_||!u||!g||r.length>0)return{errors:r,registration:null,provider:null};let S={runtime_connection_id:o.id,launch_profile:_,deck_id:"agent_deck"===_?d:null,working_directory:"agent_deck"===_?E:null,session_scope:u,default_workspace:L,policy:g,home_session_id:I};return K(S,e,i,r),r.length>0?{errors:r,registration:null,provider:null}:{errors:r,registration:S,provider:o.provider}},"workspaceContains",0,q],18966);var J=e.i(16979);let Q=Object.freeze(["conversation","implementation","review","revision"]),V=Object.freeze(["readonly","edit"]);Object.freeze(["ui","api","wake","continuation","exchange"]);let Z=Object.freeze({conversation:"readonly",implementation:"edit",review:"readonly",revision:"edit"});function ee(e){return"string"==typeof e&&Q.includes(e)}function et(e,t){return{ok:!1,code:e,reason:t}}function en(e){var t,n,i,r;if(!ee(e.executionKind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.executionKind))}.`);let s=e.executionKind,a=(t=e.entryPoint,n=s,i=e.wakeSyntax,r=!0===e.resumesWorkRequest,"ui"===t||"api"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A direct message runs as a read-only conversation turn, not ${n}.`}:"direct_message_conversation":"continuation"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A coordinator continuation runs as a read-only conversation turn, not ${n}.`}:"coordinator_continuation":"exchange"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A session exchange runs as a read-only conversation turn, not ${n}.`}:"session_exchange_conversation":"wake"!==t?{code:"unsupported_authority",reason:"Unknown policy entry point."}:"legacy"===i?"conversation"!==n?{code:"unsupported_authority",reason:`A legacy WAKE directive runs as a conversation turn, not ${n}.`}:"legacy_wake_conversation":"structured"!==i?{code:"unsupported_authority",reason:"Unknown Wake syntax."}:"revision"===n!==r?{code:"unsupported_authority",reason:"revision"===n?"A revision names the Work Request it resumes.":"Only a revision resumes a Work Request."}:"structured_wake");return"string"!=typeof a?et(a.code,a.reason):{ok:!0,policy:Object.freeze({policy_version:1,execution_kind:s,tool_profile:Z[s],entry_point:e.entryPoint,rule:a})}}let ei=new Set(["policy_version","execution_kind","tool_profile","entry_point","rule"]);function er(e){if(!e||"object"!=typeof e||Array.isArray(e))return et("malformed_policy","The execution policy snapshot is missing.");let t=Object.keys(e);if(t.length!==ei.size||t.some(e=>!ei.has(e)))return et("malformed_policy","The execution policy snapshot has unexpected fields.");if(1!==e.policy_version)return et("malformed_policy","Unsupported execution policy version.");if(!ee(e.execution_kind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.execution_kind))}.`);if(!V.includes(e.tool_profile))return et("unsupported_authority",`Unsupported tool profile ${JSON.stringify(String(e.tool_profile))}.`);if(Z[e.execution_kind]!==e.tool_profile)return et("unsupported_authority",`Execution kind ${e.execution_kind} requires the ${Z[e.execution_kind]} tool profile.`);let n={direct_message_conversation:{entry:["ui","api"],kinds:["conversation"]},legacy_wake_conversation:{entry:["wake"],kinds:["conversation"]},coordinator_continuation:{entry:["continuation"],kinds:["conversation"]},session_exchange_conversation:{entry:["exchange"],kinds:["conversation"]},structured_wake:{entry:["wake"],kinds:[...Q]}},i="string"==typeof e.rule?n[e.rule]:void 0;return i&&i.entry.includes(e.entry_point)?i.kinds.includes(e.execution_kind)?{ok:!0,policy:Object.freeze({...e})}:et("unsupported_authority",`Rule ${e.rule} does not grant ${e.execution_kind}.`):et("malformed_policy","The execution policy rule does not match its entry point.")}e.s(["TOOL_PROFILE_FOR_KIND",0,Z,"authorizeWorkRequest",0,function(e){let t;if(!ee(e.execution_kind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.execution_kind))}.`);try{t="string"==typeof e.policy_snapshot?JSON.parse(e.policy_snapshot):null}catch{return et("malformed_policy","The policy snapshot is not valid JSON.")}let n=er(t&&"object"==typeof t&&!Array.isArray(t)?t.execution_policy:void 0);return n.ok?n.policy.execution_kind!==e.execution_kind||n.policy.tool_profile!==e.tool_profile?et("unsupported_authority","The Work Request authority does not match its policy snapshot."):t.tool_profile!==e.tool_profile?et("malformed_policy","The policy snapshot tool profile does not match the Work Request."):n:n},"isExecutionKind",0,ee,"selectExecutionPolicy",0,en,"validateExecutionPolicy",0,er],64974);let es=Object.freeze({max_attempts:1,base_delay_ms:1e3,max_delay_ms:6e4,attempt_timeout_ms:null});function ea(e){if(void 0===e||!/^\d+$/.test(e.trim()))return null;let t=Number(e.trim());return Number.isSafeInteger(t)&&t>0?t:null}function eo(e=process.env){let t=ea(e.BOTMANCERS_RETRY_MAX_ATTEMPTS),n=ea(e.BOTMANCERS_RETRY_BASE_DELAY_MS)??es.base_delay_ms,i=ea(e.BOTMANCERS_RETRY_MAX_DELAY_MS)??es.max_delay_ms,r=e_({max_attempts:null===t?es.max_attempts:Math.min(t,10),base_delay_ms:n,max_delay_ms:Math.max(i,n),attempt_timeout_ms:ea(e.BOTMANCERS_ATTEMPT_TIMEOUT_MS)});return{deadlineMs:ea(e.BOTMANCERS_REQUEST_DEADLINE_MS),retryPolicy:r.ok?r.policy:{...es}}}function e_(e){if(!e||"object"!=typeof e||Array.isArray(e))return{ok:!1,reason:"A retry policy is an object."};let t=e=>"number"==typeof e&&Number.isSafeInteger(e);if(!t(e.max_attempts)||e.max_attempts<1||e.max_attempts>10)return{ok:!1,reason:"max_attempts must be an integer from 1 to 10."};if(!t(e.base_delay_ms)||e.base_delay_ms<0)return{ok:!1,reason:"base_delay_ms must be a non-negative integer."};if(!t(e.max_delay_ms)||e.max_delay_ms<e.base_delay_ms)return{ok:!1,reason:"max_delay_ms must be an integer no smaller than base_delay_ms."};let n=e.attempt_timeout_ms??null;return null!==n&&(!t(n)||n<1)?{ok:!1,reason:"attempt_timeout_ms must be a positive integer or null."}:{ok:!0,policy:{max_attempts:e.max_attempts,base_delay_ms:e.base_delay_ms,max_delay_ms:e.max_delay_ms,attempt_timeout_ms:n}}}let ed=["agent_deck_token_missing","agent_deck_unauthorized","agent_deck_forbidden"],eE={unavailable:"retryable",runtime_failed:"retryable",timed_out:"retryable",launch_failed:"terminal",unsupported_authority:"terminal",result_contract:"terminal",cancelled:"terminal",session_mismatch:"manual_attention"};e.s(["DEFAULT_RETRY_POLICY",0,es,"attemptDeadline",0,function(e,t,n){let i=null===e.attempt_timeout_ms?null:n+e.attempt_timeout_ms;return null===i?t:null===t?i:Math.min(i,t)},"classifyFailure",0,function(e,t=null){return t&&ed.includes(t)?"manual_attention":eE[e??"runtime_failed"]??"terminal"},"decideRetry",0,function(e){var t;let n;if("terminal"===e.disposition)return{action:"fail",disposition:"terminal"};let i=e.attemptCount<e.policy.max_attempts;if("manual_attention"===e.disposition)return i?{action:"attention"}:{action:"fail",disposition:"terminal"};if(!i)return{action:"exhausted"};let r=e.attemptCount,s=(t=e.policy,n=Math.max(0,r-1),Math.min(t.max_delay_ms,t.base_delay_ms*2**Math.min(n,30))),a=e.now+s;return null!==e.deadlineAt&&a>=e.deadlineAt?{action:"deadline"}:{action:"retry",nextEligibleAt:a,delayMs:s,retry:r}},"requestControlDefaultsFromEnv",0,eo,"storedRetryPolicy",0,function(e){if(!e)return{...es};try{let t=e_(JSON.parse(e));return t.ok?t.policy:{...es}}catch{return{...es}}},"validateRetryPolicy",0,e_],11626);let eu={cached_input_tokens:"cached_input_tokens",cachedInputTokens:"cached_input_tokens",cache_read_input_tokens:"cache_read_input_tokens",cacheReadInputTokens:"cache_read_input_tokens",cacheReadTokens:"cache_read_input_tokens",cache_creation_input_tokens:"cache_creation_input_tokens",cacheCreationInputTokens:"cache_creation_input_tokens",cacheWriteTokens:"cache_creation_input_tokens",reasoning_output_tokens:"reasoning_output_tokens",reasoningOutputTokens:"reasoning_output_tokens",reasoningTokens:"reasoning_output_tokens"};function ec(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:e}function el(e){return"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=Number.MAX_SAFE_INTEGER?e:null}function eT(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0&&e<1e9?e:null}function ep(e,t,n){for(let i of t)if(i in e){let t=n(e[i]);if(null!==t)return t}return null}function eN(e,t,n){let i=e?ep(e,["input_tokens","inputTokens"],el):null,r=e?ep(e,["output_tokens","outputTokens"],el):null;return null===i&&null===r&&null===t?null:{input_tokens:i,output_tokens:r,cost_usd:t,source:n,breakdown:e?function(e){let t={};for(let[n,i]of Object.entries(eu)){let r=el(e[n]);null!==r&&void 0===t[i]&&(t[i]=r)}return Object.keys(t).length>0?t:null}(e):null}}function eR(e){let t=ec(e);if(!t)return null;let n="string"==typeof t.type?t.type:null,i=ec(t.usage);if("turn.completed"===n)return eN(i,null,"codex.turn_completed");if("result"===n)return eN(i,ep(t,["total_cost_usd","totalCostUsd","cost_usd","costUsd"],eT),"result");if(null===n||"usage"===n){let e=i??t,n=ep(e,["cost_usd","costUsd","total_cost_usd","totalCostUsd"],eT)??(i?ep(t,["cost_usd","costUsd","total_cost_usd","totalCostUsd"],eT):null);return eN(e,n,"normalized")}return null}function em(e,t){return null===e?t:null===t?e:e+t}function eL(e){let t=ec(e);if(!t)return null;let n="codex.turn_completed"===t.source||"result"===t.source||"normalized"===t.source?t.source:"normalized",i=el(t.input_tokens),r=el(t.output_tokens),s=eT(t.cost_usd);if(null===i&&null===r&&null===s)return null;let a=ec(t.breakdown),o={};if(a)for(let e of new Set(Object.values(eu))){let t=el(a[e]);null!==t&&(o[e]=t)}return{input_tokens:i,output_tokens:r,cost_usd:s,source:n,breakdown:Object.keys(o).length>0?o:null}}function eg(e){let t=t=>{var n,i;let r=null,s=0;for(let n of e){let e=n[t];null!=e&&(s++,r=(r??0)+e)}return null!==r&&"cost_usd"===t&&(r=Math.round(1e6*r)/1e6),{sum:r,known:s,total:e.length,quality:(n=s,0===(i=e.length)||0===n?"unavailable":n===i?"complete":"partial")}};return{input_tokens:t("input_tokens"),output_tokens:t("output_tokens"),cost_usd:t("cost_usd")}}function eO(e){return!!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()}function eI(e,t,n,i){if(!eO(e))return;let r=eL(i.usage),a=i.now??Date.now();e.prepare(`
1
+ module.exports=[62294,18966,64974,11626,40596,28420,35613,30098,e=>{"use strict";let t;var n=e.i(85148),i=e.i(22734),r=e.i(14747),s=e.i(54799),a=e.i(62349);let o=["direct","agent_deck"],_=["read_only","workspace_write"],d=["workspaces","sessions","all_provider_sessions"],E="This computer",u={mode:"read_only",allow_new_sessions:!0,allow_resume_with_edits:!1},c="Runtime connection is required. Pick the runtime this Agent uses.",l="Runtime connection not found.",T="Launch profile is required. Choose direct or agent_deck.",p="Invalid launch profile. Expected direct or agent_deck.",N="A direct launch profile does not use Agent Deck. Remove deck_id or choose agent_deck.",R="working_directory is an Agent Deck setting. Use default_workspace for a direct launch profile.",m="Session scope is required. Select workspaces, select sessions, or explicitly choose all_provider_sessions.",L="A session scope selects workspaces or sessions, not both.",g="Workspaces must be absolute paths (or start with ~/).",O="Launch policy is required. Choose read_only or workspace_write.",I=`Provider is required. Expected one of ${a.AGENTS.join("|")}.`;function A(e){return"string"==typeof e&&o.includes(e)}function S(e){return"string"==typeof e&&d.includes(e)}function k(e){return"string"==typeof e&&_.includes(e)}function f(e){return null==e?null:String(e).trim()||null}function v(e){return`rc-local-${e}`}function h(e){return`${a.AGENT_LABELS[e]} on ${E.toLowerCase()}`}function w(e){return e.startsWith("/")||"~"===e||e.startsWith("~/")}function C(e){return e.length>1?e.replace(/\/+$/,""):e}function q(e,t){let n=C(e),i=C(t);return n===i||i.startsWith("/"===n?"/":`${n}/`)}function y(e){if(null==e)return[];if(!Array.isArray(e))return null;let t=[];for(let n of e){if("string"!=typeof n)return null;let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function b(e){let t=e.session_scope_kind;if(!S(t))return null;let n=[];if(e.session_scope_items)try{let t=y(JSON.parse(e.session_scope_items));if(null===t)return null;n=t}catch{return null}return"all_provider_sessions"===t?0===n.length?{kind:t,workspaces:[],sessions:[]}:null:0===n.length?null:"workspaces"===t?{kind:t,workspaces:n,sessions:[]}:{kind:t,workspaces:[],sessions:n}}function D(e){return!0===e||1===e||"1"===e}function U(e){return k(e.policy_mode)?{mode:e.policy_mode,allow_new_sessions:D(e.allow_new_sessions),allow_resume_with_edits:D(e.allow_resume_with_edits)}:null}function F(e){return A(e.launch_profile)?e.launch_profile:null}function W(e){var t;return{runtime_connection_id:e.runtime_connection_id,launch_profile:e.launch_profile,deck_id:"agent_deck"===e.launch_profile?e.deck_id:null,working_directory:"agent_deck"===e.launch_profile?e.working_directory:null,session_scope_kind:e.session_scope.kind,session_scope_items:JSON.stringify("workspaces"===(t=e.session_scope).kind?t.workspaces:"sessions"===t.kind?t.sessions:[]),default_workspace:e.default_workspace,policy_mode:e.policy.mode,allow_new_sessions:+!!e.policy.allow_new_sessions,allow_resume_with_edits:+!!e.policy.allow_resume_with_edits,home_session_id:e.home_session_id,needs_deck_selection:0}}function X(e){let t="hermes";try{t=(0,a.normalizeAgent)(e.agent)??"hermes"}catch{t="hermes"}let n=f(e.deck_id),i=D(e.needs_deck_selection),r=f(e.working_directory)??`~/.botmancers/${e.id}`;return{runtime_connection_id:v(t),provider:t,launch_profile:n&&!i?"agent_deck":null,session_scope_kind:"workspaces",session_scope_items:JSON.stringify([r]),policy_mode:u.mode,allow_new_sessions:+!!u.allow_new_sessions,allow_resume_with_edits:+!!u.allow_resume_with_edits}}let x=["runtime_connection_id","launch_profile","session_scope","default_workspace","policy","home_session_id"];function G(e){return x.some(t=>void 0!==e[t])}function H(e,t){if(null==e||"object"!=typeof e||Array.isArray(e)||void 0===e.kind||null===e.kind||""===e.kind)return t.push(m),null;if(!S(e.kind))return t.push("Invalid session scope kind. Expected workspaces, sessions, or all_provider_sessions."),null;let n=y(e.workspaces),i=y(e.sessions);if(null===n||null===i)return t.push("session_scope.workspaces and session_scope.sessions must be lists of strings."),null;let r=e.kind;return"all_provider_sessions"===r?n.length>0||i.length>0?(t.push("all_provider_sessions takes no workspace or session list."),null):{kind:r,workspaces:[],sessions:[]}:n.length>0&&i.length>0?(t.push(L),null):"workspaces"===r?i.length>0?(t.push(L),null):0===n.length?(t.push("Select at least one workspace. An empty scope is never unrestricted."),null):n.every(w)?{kind:r,workspaces:n,sessions:[]}:(t.push(g),null):n.length>0?(t.push(L),null):0===i.length?(t.push("Select at least one session. An empty scope is never unrestricted."),null):{kind:r,workspaces:[],sessions:i}}function B(e,t){if(null==e||"object"!=typeof e||Array.isArray(e)||void 0===e.mode||null===e.mode||""===e.mode)return t.push(O),null;if(!k(e.mode))return t.push("Invalid policy mode. Expected read_only or workspace_write."),null;let n=[];for(let i of["allow_new_sessions","allow_resume_with_edits"]){let r=e[i];if(void 0===r)n.push(!1);else{if("boolean"!=typeof r)return t.push("Policy flags allow_new_sessions and allow_resume_with_edits must be true or false."),null;n.push(r)}}let i={mode:e.mode,allow_new_sessions:n[0],allow_resume_with_edits:n[1]};return i.allow_resume_with_edits&&"workspace_write"!==i.mode?(t.push("allow_resume_with_edits requires the workspace_write policy mode."),null):i}function M(e,t){if(null==e)return null;if("string"!=typeof e)return t.push(g),null;let n=e.trim();return n?w(n)?n:(t.push(g),null):null}function K(e,t,n,i){"agent_deck"!==e.launch_profile||e.deck_id||i.push(a.DECK_REQUIRED_ERROR);let r=e.session_scope;"sessions"!==r.kind||r.sessions.every(e=>n.sessionBelongsTo(t,e))||i.push("A selected session does not belong to this Agent."),e.default_workspace&&"workspaces"===r.kind&&!r.workspaces.some(t=>q(t,e.default_workspace))&&i.push("default_workspace must be inside one of the selected workspaces."),e.home_session_id&&(n.sessionBelongsTo(t,e.home_session_id)?"sessions"!==r.kind||r.sessions.includes(e.home_session_id)||i.push("home_session_id must be one of the selected sessions."):i.push("home_session_id must be one of this Agent’s own sessions."))}function Y(e,t,n){let i=f(e.runtime_connection_id);if(!i)return n.push(c),null;let r=t.getConnection(i);return r?void 0!==e.agent&&null!==e.agent&&String(e.agent).trim()&&String(e.agent).trim()!==r.provider?(n.push("agent does not match the runtime connection provider."),null):r:(n.push(l),null)}function P(e,t){try{return(0,a.parseRequestDeckId)(e)}catch(e){return t.push(e instanceof Error?e.message:String(e)),null}}function $(e){return!G(e)&&void 0!==e.deck_id}function z(e){return{runtime_connection_id:f(e.runtime_connection_id),launch_profile:F(e),deck_id:f(e.deck_id),working_directory:f(e.working_directory),session_scope:b(e),default_workspace:f(e.default_workspace),policy:U(e),home_session_id:f(e.home_session_id)}}function j(e,t){let n=z(e);return{runtime_connection_id:n.runtime_connection_id,runtime_connection:t?{id:t.id,provider:t.provider,label:t.label,host:t.host}:null,launch_profile:n.launch_profile,needs_launch_profile:null===n.launch_profile,session_scope:n.session_scope,default_workspace:n.default_workspace,policy:n.policy,home_session_id:n.home_session_id}}e.s(["LOCAL_HOST",0,E,"hasRegistrationUpdate",0,G,"isLegacyCreate",0,$,"localConnectionId",0,v,"localConnectionLabel",0,h,"migrateRegistration",0,X,"readStoredPolicy",0,U,"readStoredScope",0,b,"registrationColumns",0,W,"serializeRegistration",0,j,"storedLaunchProfile",0,F,"validateConnectionInput",0,function(e){let t=[],n=null;try{(n=(0,a.normalizeAgent)(e.provider))||t.push(I)}catch(e){t.push(e instanceof Error?e.message:String(e))}let i=f(e.label);i?i.length>80&&t.push("Connection name must be 80 characters or fewer."):t.push("Connection name is required.");let r=f(e.host)??E;for(let n of(r.length>80&&t.push("Host must be 80 characters or fewer."),["token","api_key","apiKey","credentials","password","secret"]))void 0!==e[n]&&t.push("Runtime credentials stay with the runtime; a connection stores no secrets.");return!(t.length>0)&&n&&i?{errors:t,fields:{provider:n,label:i,host:r}}:{errors:[...new Set(t)],fields:null}},"validateCreateRegistration",0,function(e,t){let n=[];if($(e)){let i="hermes";try{i=(0,a.normalizeAgent)(e.agent)??"hermes"}catch(e){n.push(e instanceof Error?e.message:String(e))}let r=P(e.deck_id,n);r||0!==n.length||n.push(a.DECK_REQUIRED_ERROR);let s=f(e.working_directory);return n.length>0?{errors:n,registration:null,provider:null}:{errors:n,provider:i,registration:{runtime_connection_id:t.localConnectionFor(i),launch_profile:"agent_deck",deck_id:r,working_directory:s,session_scope:{kind:"workspaces",workspaces:s?[s]:[],sessions:[]},default_workspace:null,policy:{...u},home_session_id:null}}}let i=Y(e,t,n),r=null;void 0===e.launch_profile||null===e.launch_profile||""===e.launch_profile?n.push(T):A(e.launch_profile)?r=e.launch_profile:n.push(p);let s=null,o=null;"direct"===r?(f(e.deck_id)&&n.push(N),f(e.working_directory)&&n.push(R)):"agent_deck"===r&&(s=P(e.deck_id,n),o=f(e.working_directory));let _=H(e.session_scope,n),d=M(e.default_workspace,n),E=B(e.policy,n),c=f(e.home_session_id);if(!i||!r||!_||!E||n.length>0)return{errors:n,registration:null,provider:null};let l={runtime_connection_id:i.id,launch_profile:r,deck_id:s,working_directory:o,session_scope:_,default_workspace:d,policy:E,home_session_id:c};return K(l,null,t,n),n.length>0?{errors:n,registration:null,provider:null}:{errors:n,registration:l,provider:i.provider}},"validateUpdateRegistration",0,function(e,t,n,i){let r=[],s=z(t),o=null;if(void 0!==n.runtime_connection_id)o=Y(n,i,r);else if(void 0!==n.agent)try{let e=(0,a.normalizeAgent)(n.agent);if(e){let t=s.runtime_connection_id?i.getConnection(s.runtime_connection_id):void 0;o=t&&t.provider===e?t:i.getConnection(i.localConnectionFor(e))??null}else r.push(`Agent is required. Expected one of ${a.AGENTS.join("|")}.`)}catch(e){r.push(e instanceof Error?e.message:String(e))}else s.runtime_connection_id?(o=i.getConnection(s.runtime_connection_id)??null)||r.push(l):r.push(c);let _=s.launch_profile;void 0!==n.launch_profile?A(n.launch_profile)?_=n.launch_profile:(r.push(null===n.launch_profile||""===n.launch_profile?T:p),_=null):void 0!==n.deck_id&&"direct"!==_&&(_="agent_deck");let d=s.deck_id,E=s.working_directory;"direct"===_?(void 0!==n.deck_id&&f(n.deck_id)&&r.push(N),void 0!==n.working_directory&&f(n.working_directory)&&r.push(R),d=null,E=null):"agent_deck"===_?(void 0!==n.deck_id?d=P(n.deck_id,r):("agent_deck"!==s.launch_profile||D(t.needs_deck_selection))&&(d=null),void 0!==n.working_directory&&(E=f(n.working_directory))):0===r.length&&r.push(T);let u=void 0!==n.session_scope?H(n.session_scope,r):s.session_scope;void 0!==n.session_scope||u||r.push(m);let L=void 0!==n.default_workspace?M(n.default_workspace,r):s.default_workspace,g=void 0!==n.policy?B(n.policy,r):s.policy;void 0!==n.policy||g||r.push(O);let I=void 0!==n.home_session_id?f(n.home_session_id):s.home_session_id;if(!o||!_||!u||!g||r.length>0)return{errors:r,registration:null,provider:null};let S={runtime_connection_id:o.id,launch_profile:_,deck_id:"agent_deck"===_?d:null,working_directory:"agent_deck"===_?E:null,session_scope:u,default_workspace:L,policy:g,home_session_id:I};return K(S,e,i,r),r.length>0?{errors:r,registration:null,provider:null}:{errors:r,registration:S,provider:o.provider}},"workspaceContains",0,q],18966);var J=e.i(16979);let Q=Object.freeze(["conversation","implementation","review","revision"]),V=Object.freeze(["readonly","edit"]);Object.freeze(["ui","api","wake","continuation","exchange"]);let Z=Object.freeze({conversation:"readonly",implementation:"edit",review:"readonly",revision:"edit"});function ee(e){return"string"==typeof e&&Q.includes(e)}function et(e,t){return{ok:!1,code:e,reason:t}}function en(e){var t,n,i,r;if(!ee(e.executionKind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.executionKind))}.`);let s=e.executionKind,a=(t=e.entryPoint,n=s,i=e.wakeSyntax,r=!0===e.resumesWorkRequest,"ui"===t||"api"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A direct message runs as a read-only conversation turn, not ${n}.`}:"direct_message_conversation":"continuation"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A coordinator continuation runs as a read-only conversation turn, not ${n}.`}:"coordinator_continuation":"exchange"===t?"conversation"!==n?{code:"unsupported_authority",reason:`A session exchange runs as a read-only conversation turn, not ${n}.`}:"session_exchange_conversation":"wake"!==t?{code:"unsupported_authority",reason:"Unknown policy entry point."}:"legacy"===i?"conversation"!==n?{code:"unsupported_authority",reason:`A legacy WAKE directive runs as a conversation turn, not ${n}.`}:"legacy_wake_conversation":"structured"!==i?{code:"unsupported_authority",reason:"Unknown Wake syntax."}:"revision"===n!==r?{code:"unsupported_authority",reason:"revision"===n?"A revision names the Work Request it resumes.":"Only a revision resumes a Work Request."}:"structured_wake");return"string"!=typeof a?et(a.code,a.reason):{ok:!0,policy:Object.freeze({policy_version:1,execution_kind:s,tool_profile:Z[s],entry_point:e.entryPoint,rule:a})}}let ei=new Set(["policy_version","execution_kind","tool_profile","entry_point","rule"]);function er(e){if(!e||"object"!=typeof e||Array.isArray(e))return et("malformed_policy","The execution policy snapshot is missing.");let t=Object.keys(e);if(t.length!==ei.size||t.some(e=>!ei.has(e)))return et("malformed_policy","The execution policy snapshot has unexpected fields.");if(1!==e.policy_version)return et("malformed_policy","Unsupported execution policy version.");if(!ee(e.execution_kind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.execution_kind))}.`);if(!V.includes(e.tool_profile))return et("unsupported_authority",`Unsupported tool profile ${JSON.stringify(String(e.tool_profile))}.`);if(Z[e.execution_kind]!==e.tool_profile)return et("unsupported_authority",`Execution kind ${e.execution_kind} requires the ${Z[e.execution_kind]} tool profile.`);let n={direct_message_conversation:{entry:["ui","api"],kinds:["conversation"]},legacy_wake_conversation:{entry:["wake"],kinds:["conversation"]},coordinator_continuation:{entry:["continuation"],kinds:["conversation"]},session_exchange_conversation:{entry:["exchange"],kinds:["conversation"]},structured_wake:{entry:["wake"],kinds:[...Q]}},i="string"==typeof e.rule?n[e.rule]:void 0;return i&&i.entry.includes(e.entry_point)?i.kinds.includes(e.execution_kind)?{ok:!0,policy:Object.freeze({...e})}:et("unsupported_authority",`Rule ${e.rule} does not grant ${e.execution_kind}.`):et("malformed_policy","The execution policy rule does not match its entry point.")}e.s(["TOOL_PROFILE_FOR_KIND",0,Z,"authorizeWorkRequest",0,function(e){let t;if(!ee(e.execution_kind))return et("unknown_execution_kind",`Unknown execution kind ${JSON.stringify(String(e.execution_kind))}.`);try{t="string"==typeof e.policy_snapshot?JSON.parse(e.policy_snapshot):null}catch{return et("malformed_policy","The policy snapshot is not valid JSON.")}let n=er(t&&"object"==typeof t&&!Array.isArray(t)?t.execution_policy:void 0);return n.ok?n.policy.execution_kind!==e.execution_kind||n.policy.tool_profile!==e.tool_profile?et("unsupported_authority","The Work Request authority does not match its policy snapshot."):t.tool_profile!==e.tool_profile?et("malformed_policy","The policy snapshot tool profile does not match the Work Request."):n:n},"isExecutionKind",0,ee,"selectExecutionPolicy",0,en,"validateExecutionPolicy",0,er],64974);let es=Object.freeze({max_attempts:1,base_delay_ms:1e3,max_delay_ms:6e4,attempt_timeout_ms:null});function ea(e){if(void 0===e||!/^\d+$/.test(e.trim()))return null;let t=Number(e.trim());return Number.isSafeInteger(t)&&t>0?t:null}function eo(e=process.env){let t=ea(e.BOTMANCERS_RETRY_MAX_ATTEMPTS),n=ea(e.BOTMANCERS_RETRY_BASE_DELAY_MS)??es.base_delay_ms,i=ea(e.BOTMANCERS_RETRY_MAX_DELAY_MS)??es.max_delay_ms,r=e_({max_attempts:null===t?es.max_attempts:Math.min(t,10),base_delay_ms:n,max_delay_ms:Math.max(i,n),attempt_timeout_ms:ea(e.BOTMANCERS_ATTEMPT_TIMEOUT_MS)});return{deadlineMs:ea(e.BOTMANCERS_REQUEST_DEADLINE_MS),retryPolicy:r.ok?r.policy:{...es}}}function e_(e){if(!e||"object"!=typeof e||Array.isArray(e))return{ok:!1,reason:"A retry policy is an object."};let t=e=>"number"==typeof e&&Number.isSafeInteger(e);if(!t(e.max_attempts)||e.max_attempts<1||e.max_attempts>10)return{ok:!1,reason:"max_attempts must be an integer from 1 to 10."};if(!t(e.base_delay_ms)||e.base_delay_ms<0)return{ok:!1,reason:"base_delay_ms must be a non-negative integer."};if(!t(e.max_delay_ms)||e.max_delay_ms<e.base_delay_ms)return{ok:!1,reason:"max_delay_ms must be an integer no smaller than base_delay_ms."};let n=e.attempt_timeout_ms??null;return null!==n&&(!t(n)||n<1)?{ok:!1,reason:"attempt_timeout_ms must be a positive integer or null."}:{ok:!0,policy:{max_attempts:e.max_attempts,base_delay_ms:e.base_delay_ms,max_delay_ms:e.max_delay_ms,attempt_timeout_ms:n}}}let ed=["agent_deck_token_missing","agent_deck_unauthorized","agent_deck_forbidden"],eE={unavailable:"retryable",runtime_failed:"retryable",timed_out:"retryable",launch_failed:"terminal",unsupported_authority:"terminal",result_contract:"terminal",cancelled:"terminal",session_mismatch:"manual_attention"};e.s(["DEFAULT_RETRY_POLICY",0,es,"attemptDeadline",0,function(e,t,n){let i=null===e.attempt_timeout_ms?null:n+e.attempt_timeout_ms;return null===i?t:null===t?i:Math.min(i,t)},"classifyFailure",0,function(e,t=null){return t&&ed.includes(t)?"manual_attention":eE[e??"runtime_failed"]??"terminal"},"decideRetry",0,function(e){var t;let n;if("terminal"===e.disposition)return{action:"fail",disposition:"terminal"};let i=e.attemptCount<e.policy.max_attempts;if("manual_attention"===e.disposition)return i?{action:"attention"}:{action:"fail",disposition:"terminal"};if(!i)return{action:"exhausted"};let r=e.attemptCount,s=(t=e.policy,n=Math.max(0,r-1),Math.min(t.max_delay_ms,t.base_delay_ms*2**Math.min(n,30))),a=e.now+s;return null!==e.deadlineAt&&a>=e.deadlineAt?{action:"deadline"}:{action:"retry",nextEligibleAt:a,delayMs:s,retry:r}},"requestControlDefaultsFromEnv",0,eo,"storedRetryPolicy",0,function(e){if(!e)return{...es};try{let t=e_(JSON.parse(e));return t.ok?t.policy:{...es}}catch{return{...es}}},"validateRetryPolicy",0,e_],11626);let eu={cached_input_tokens:"cached_input_tokens",cachedInputTokens:"cached_input_tokens",cache_read_input_tokens:"cache_read_input_tokens",cacheReadInputTokens:"cache_read_input_tokens",cacheReadTokens:"cache_read_input_tokens",cache_creation_input_tokens:"cache_creation_input_tokens",cacheCreationInputTokens:"cache_creation_input_tokens",cacheWriteTokens:"cache_creation_input_tokens",reasoning_output_tokens:"reasoning_output_tokens",reasoningOutputTokens:"reasoning_output_tokens",reasoningTokens:"reasoning_output_tokens"};function ec(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:e}function el(e){return"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=Number.MAX_SAFE_INTEGER?e:null}function eT(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0&&e<1e9?e:null}function ep(e,t,n){for(let i of t)if(i in e){let t=n(e[i]);if(null!==t)return t}return null}function eN(e,t,n){let i=e?ep(e,["input_tokens","inputTokens"],el):null,r=e?ep(e,["output_tokens","outputTokens"],el):null;return null===i&&null===r&&null===t?null:{input_tokens:i,output_tokens:r,cost_usd:t,source:n,breakdown:e?function(e){let t={};for(let[n,i]of Object.entries(eu)){let r=el(e[n]);null!==r&&void 0===t[i]&&(t[i]=r)}return Object.keys(t).length>0?t:null}(e):null}}function eR(e){let t=ec(e);if(!t)return null;let n="string"==typeof t.type?t.type:null,i=ec(t.usage);if("turn.completed"===n)return eN(i,null,"codex.turn_completed");if("result"===n)return eN(i,ep(t,["total_cost_usd","totalCostUsd","cost_usd","costUsd"],eT),"result");if(null===n||"usage"===n){let e=i??t,n=ep(e,["cost_usd","costUsd","total_cost_usd","totalCostUsd"],eT)??(i?ep(t,["cost_usd","costUsd","total_cost_usd","totalCostUsd"],eT):null);return eN(e,n,"normalized")}return null}function em(e,t){return null===e?t:null===t?e:e+t}function eL(e){let t=ec(e);if(!t)return null;let n="codex.turn_completed"===t.source||"result"===t.source||"normalized"===t.source?t.source:"normalized",i=el(t.input_tokens),r=el(t.output_tokens),s=eT(t.cost_usd);if(null===i&&null===r&&null===s)return null;let a=ec(t.breakdown),o={};if(a)for(let e of new Set(Object.values(eu))){let t=el(a[e]);null!==t&&(o[e]=t)}return{input_tokens:i,output_tokens:r,cost_usd:s,source:n,breakdown:Object.keys(o).length>0?o:null}}function eg(e){let t=t=>{var n,i;let r=null,s=0;for(let n of e){let e=n[t];null!=e&&(s++,r=(r??0)+e)}return null!==r&&"cost_usd"===t&&(r=Math.round(1e6*r)/1e6),{sum:r,known:s,total:e.length,quality:(n=s,0===(i=e.length)||0===n?"unavailable":n===i?"complete":"partial")}};return{input_tokens:t("input_tokens"),output_tokens:t("output_tokens"),cost_usd:t("cost_usd")}}function eO(e){return!!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()}function eI(e,t,n,i){if(!eO(e))return;let r=eL(i.usage),a=i.now??Date.now();e.prepare(`
2
2
  INSERT INTO usage_samples (
3
3
  id, sample_key, agent_id, attempt_id, session_ref, turn_id, provider, source,
4
4
  input_tokens, output_tokens, cost_usd, breakdown, observed_at, created_at, updated_at
@@ -1651,7 +1651,7 @@ module.exports=[85148,(e,t,n)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",
1651
1651
  UNION SELECT destination_request_id AS id FROM session_exchanges WHERE id IN ${d} AND destination_request_id IS NOT NULL`,_(r),_(r))),u=o(i,n(`SELECT id FROM work_requests WHERE parent_request_id IN ${d} OR root_request_id IN ${d}`,_(i),_(i))),c=o(i,n(`SELECT request_id AS id FROM work_attempts WHERE id IN ${d}`,_(a))),l=o(a,n(`SELECT id FROM work_attempts WHERE request_id IN ${d} OR resumed_session_binding_id IN ${d}`,_(i),_(s))),T=o(s,n(`SELECT id FROM session_bindings WHERE request_id IN ${d} OR source_attempt_id IN ${d}`,_(i),_(a)));if(!e&&!E&&!u&&!c&&!l&&!T)break}(function(e,t,...n){let i=e.prepare(`SELECT id FROM session_exchanges WHERE ${t}`).all(...n).map(e=>e.id);if(0===i.length)return;let r=eG(e);for(let e of i)r.add(e);try{e.prepare("DELETE FROM session_exchange_events WHERE exchange_id IN (SELECT value FROM json_each(?))").run(JSON.stringify(i))}finally{r.clear()}e.prepare("DELETE FROM session_exchanges WHERE id IN (SELECT value FROM json_each(?))").run(JSON.stringify(i))})(e,`id IN ${d}`,_(r)),e.prepare(`DELETE FROM conversation_events WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM finalizations WHERE implementation_request_id IN ${d} OR review_request_id IN ${d} OR decision_request_id IN ${d}`).run(_(i),_(i),_(i)),e.prepare(`DELETE FROM candidate_manifests WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM attempt_finalization_baselines WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM conversation_projection_cursors WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM wake_safety_decisions WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM dispatch_leases WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM attempt_launch_intents WHERE request_id IN ${d}`).run(_(i)),e.prepare(`DELETE FROM dispatch_attention WHERE request_id IN ${d}`).run(_(i));let E=eG(e);for(let e of i)E.add(e);try{e.prepare(`DELETE FROM engine_events WHERE request_id IN ${d}`).run(_(i))}finally{E.clear()}for(e0(e,`origin = 'binding' AND binding_id IN ${d}`,_(s)),e.prepare(`UPDATE provider_sessions SET binding_id = NULL WHERE binding_id IN ${d}`).run(_(s)),e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()&&e.prepare(`DELETE FROM usage_samples WHERE attempt_id IN ${d}`).run(_(a));a.size>0||s.size>0;){let t=n(`SELECT id FROM session_bindings WHERE id IN ${d}
1652
1652
  AND NOT EXISTS (SELECT 1 FROM work_attempts a WHERE a.resumed_session_binding_id = session_bindings.id)`,_(s));for(let n of t)e.prepare("DELETE FROM session_bindings WHERE id = ?").run(n),s.delete(n);let i=n(`SELECT id FROM work_attempts WHERE id IN ${d}
1653
1653
  AND NOT EXISTS (SELECT 1 FROM session_bindings b WHERE b.source_attempt_id = work_attempts.id)`,_(a));for(let t of i)e.prepare("DELETE FROM work_attempts WHERE id = ?").run(t),a.delete(t);if(0===t.length&&0===i.length)throw Error("Engine records could not be removed: unexpected attempt/binding reference cycle.")}for(let t of(e.prepare(`DELETE FROM conversation_events WHERE request_id IS NULL AND wake_id IN (SELECT id FROM wakes WHERE work_request_id IN ${d} OR parent_request_id IN ${d} OR root_request_id IN ${d})`).run(_(i),_(i),_(i)),e.prepare(`DELETE FROM wakes WHERE work_request_id IN ${d} OR parent_request_id IN ${d} OR root_request_id IN ${d}`).run(_(i),_(i),_(i)),e.prepare(`DELETE FROM terminal_followups WHERE request_id IN ${d}`).run(_(i)),n(`SELECT id FROM work_requests WHERE id IN ${d} ORDER BY depth DESC`,_(i))))e.prepare("DELETE FROM work_requests WHERE id = ?").run(t)}function e0(e,t,...n){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'provider_sessions'").get())return;let i=JSON.stringify(e.prepare(`SELECT id FROM provider_sessions WHERE ${t}`).all(...n).map(e=>e.id));e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()&&e.prepare("DELETE FROM usage_samples WHERE session_ref IN (SELECT value FROM json_each(?))").run(i),e.prepare("DELETE FROM provider_session_events WHERE session_ref IN (SELECT value FROM json_each(?))").run(i),e.prepare("DELETE FROM provider_session_turns WHERE session_ref IN (SELECT value FROM json_each(?))").run(i),e.prepare("DELETE FROM provider_sessions WHERE id IN (SELECT value FROM json_each(?))").run(i)}function e1(e,t,...n){if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'session_pins'").get())return;let i=JSON.stringify(e.prepare(`SELECT id FROM session_pins WHERE ${t}`).all(...n).map(e=>e.id));e.prepare("DELETE FROM session_pin_events WHERE pin_id IN (SELECT value FROM json_each(?))").run(i),e.prepare("DELETE FROM session_pin_turns WHERE pin_id IN (SELECT value FROM json_each(?))").run(i),e.prepare("DELETE FROM session_pins WHERE id IN (SELECT value FROM json_each(?))").run(i)}function e2(e,t){e.prepare("DELETE FROM conversation_intakes WHERE conversation_id = ?").run(t),e.prepare("DELETE FROM delegation_chains WHERE conversation_id = ?").run(t),e.prepare("DELETE FROM conversation_events WHERE conversation_id = ? AND request_id IS NULL").run(t),e.prepare("DELETE FROM wakes WHERE source_conversation_id = ?").run(t),e1(e,"conversation_id = ?",t),eZ(e,{requests:"SELECT id FROM work_requests WHERE source_conversation_id = ?",bindings:"SELECT id FROM session_bindings WHERE conversation_id = ?",exchanges:"origin_conversation_id = ? OR destination_conversation_id = ?",arg:t})}function e6(e,t){e.prepare(`DELETE FROM conversation_events WHERE request_id IS NULL AND wake_id IN (
1654
- SELECT id FROM wakes WHERE target_agent_id = ? OR (requester_agent_id = ? AND work_request_id IS NULL))`).run(t,t),e.prepare("DELETE FROM wakes WHERE target_agent_id = ? OR (requester_agent_id = ? AND work_request_id IS NULL)").run(t,t),e.prepare("DELETE FROM wake_grants WHERE caller_agent_id = ? OR target_agent_id = ?").run(t,t),e1(e,"agent_id = ?",t),e0(e,"agent_id = ?",t),e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()&&e.prepare("DELETE FROM usage_samples WHERE agent_id = ?").run(t),e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'provider_session_events'").get()&&e.prepare("DELETE FROM provider_session_events WHERE agent_id = ?").run(t),eZ(e,{requests:"SELECT id FROM work_requests WHERE target_agent_id = ?",bindings:"SELECT id FROM session_bindings WHERE agent_id = ?",exchanges:"source_agent_id = ? OR destination_agent_id = ?",arg:t})}function e4(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}function e3(e){return"string"==typeof e&&e.length>0?e:null}function e9(e,t){return t?`${e}: ${t}`:e}function e5(e,t,n,i){let r="grant_required"===t,s=r?"needs your approval for edit work":n;return{kind:"wake_blocked",attemptId:null,text:s?`Wake blocked: ${e} — ${s}`:`Wake blocked: ${e}`,data:{...i,target_name:e,reason_code:t,reason:n,actions:r?["allow","deny"]:[]}}}e.s(["EXCHANGE_LIMITS",0,ew,"EXCHANGE_STATES",0,ef,"EXCHANGE_TERMINAL_STATES",0,ev,"EXCHANGE_TRANSITIONS",0,eh,"EngineStoreError",0,eD,"TERMINAL_STATES",0,eq,"UI_TURN_INTERRUPTED",0,e$,"UI_TURN_INTERRUPTED_MESSAGE",0,ez,"UI_TURN_REQUESTER",0,eY,"createEngineStore",0,eV,"deleteEngineRecordsForAgent",0,e6,"deleteEngineRecordsForConversation",0,e2,"migrateEngineSchema",0,eH,"uiTurnExecutionPolicy",0,eP],35613);let e7=/^[A-Za-z0-9][A-Za-z0-9._:@-]{0,127}$/,e8=/^[a-z][a-z0-9_.:-]{0,63}$/;function te(e){return null==e||""===e?null:e7.test(e)?e:"[invalid]"}function tt(e,t){return e&&e8.test(e)?e:t}let tn="agent_name_conflict";function ti(e){return String(e??"").trim()}function tr(e){return ti(e).normalize("NFC").toLowerCase().normalize("NFC")}function ts(e){return`An Agent named "${ti(e)}" already exists. Agent names must be unique, ignoring case and surrounding spaces.`}class ta extends Error{code=tn;requestedName;conflictingAgentId;constructor(e,t){super(ts(e)),this.name="AgentNameConflictError",this.requestedName=ti(e),this.conflictingAgentId=t}}function to(e){let t=[...e].sort((e,t)=>e.created_at-t.created_at||(e.id<t.id?-1:+(e.id>t.id))),n=new Map,i=[],r=[];for(let e of t){let t=tr(e.name);if(n.has(t)){i.push(e);continue}n.set(t,e.id),e.name_key!==t&&r.push({id:e.id,name:e.name,name_key:t})}let s=[];for(let e of i){let t=tr(e.name),i=ti(e.name)||"Agent",a=2;for(;n.has(tr(`${i}-${a}`));)a++;let o=`${i}-${a}`,_=tr(o);n.set(_,e.id),r.push({id:e.id,name:o,name_key:_}),s.push({bot_id:e.id,previous_name:e.name,new_name:o,name_key:t,kept_bot_id:n.get(t)})}return{updates:r,renames:s}}e.s(["AgentNameConflictError",0,ta,"agentDisplayName",0,ti,"agentNameConflictBody",0,function(e,t="name"){return{error:e.message,code:tn,field:t,name:e.requestedName,conflicting_agent_id:e.conflictingAgentId}},"agentNameConflictMessage",0,ts,"agentNameKey",0,tr,"planNameMigration",0,to],30098);let t_=(0,e.i(52036).dbPath)();":memory:"!==t_&&i.default.mkdirSync(r.default.dirname(r.default.resolve(t_)),{recursive:!0});let td=new n.default(t_);td.pragma("journal_mode = WAL"),td.exec(`
1654
+ SELECT id FROM wakes WHERE target_agent_id = ? OR (requester_agent_id = ? AND work_request_id IS NULL))`).run(t,t),e.prepare("DELETE FROM wakes WHERE target_agent_id = ? OR (requester_agent_id = ? AND work_request_id IS NULL)").run(t,t),e.prepare("DELETE FROM wake_grants WHERE caller_agent_id = ? OR target_agent_id = ?").run(t,t),e1(e,"agent_id = ?",t),e0(e,"agent_id = ?",t),e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'usage_samples'").get()&&e.prepare("DELETE FROM usage_samples WHERE agent_id = ?").run(t),e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'provider_session_events'").get()&&e.prepare("DELETE FROM provider_session_events WHERE agent_id = ?").run(t),eZ(e,{requests:"SELECT id FROM work_requests WHERE target_agent_id = ?",bindings:"SELECT id FROM session_bindings WHERE agent_id = ?",exchanges:"source_agent_id = ? OR destination_agent_id = ?",arg:t})}function e4(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}function e3(e){return"string"==typeof e&&e.length>0?e:null}function e9(e,t){return t?`${e}: ${t}`:e}function e5(e,t,n,i){let r="grant_required"===t,s=r?"needs your approval for edit work":n;return{kind:"wake_blocked",attemptId:null,text:s?`Wake blocked: ${e} — ${s}`:`Wake blocked: ${e}`,data:{...i,target_name:e,reason_code:t,reason:n,actions:r?["allow","deny"]:[]}}}e.s(["EXCHANGE_LIMITS",0,ew,"EXCHANGE_STATES",0,ef,"EXCHANGE_TERMINAL_STATES",0,ev,"EXCHANGE_TRANSITIONS",0,eh,"EngineStoreError",0,eD,"TERMINAL_STATES",0,eq,"UI_TURN_INTERRUPTED",0,e$,"UI_TURN_INTERRUPTED_MESSAGE",0,ez,"UI_TURN_REQUESTER",0,eY,"createEngineStore",0,eV,"deleteEngineRecordsForAgent",0,e6,"deleteEngineRecordsForConversation",0,e2,"migrateEngineSchema",0,eH,"uiTurnExecutionPolicy",0,eP],35613);let e8=/^[A-Za-z0-9][A-Za-z0-9._:@-]{0,127}$/,e7=/^[a-z][a-z0-9_.:-]{0,63}$/;function te(e){return null==e||""===e?null:e8.test(e)?e:"[invalid]"}function tt(e,t){return e&&e7.test(e)?e:t}let tn="agent_name_conflict";function ti(e){return String(e??"").trim()}function tr(e){return ti(e).normalize("NFC").toLowerCase().normalize("NFC")}function ts(e){return`An Agent named "${ti(e)}" already exists. Agent names must be unique, ignoring case and surrounding spaces.`}class ta extends Error{code=tn;requestedName;conflictingAgentId;constructor(e,t){super(ts(e)),this.name="AgentNameConflictError",this.requestedName=ti(e),this.conflictingAgentId=t}}function to(e){let t=[...e].sort((e,t)=>e.created_at-t.created_at||(e.id<t.id?-1:+(e.id>t.id))),n=new Map,i=[],r=[];for(let e of t){let t=tr(e.name);if(n.has(t)){i.push(e);continue}n.set(t,e.id),e.name_key!==t&&r.push({id:e.id,name:e.name,name_key:t})}let s=[];for(let e of i){let t=tr(e.name),i=ti(e.name)||"Agent",a=2;for(;n.has(tr(`${i}-${a}`));)a++;let o=`${i}-${a}`,_=tr(o);n.set(_,e.id),r.push({id:e.id,name:o,name_key:_}),s.push({bot_id:e.id,previous_name:e.name,new_name:o,name_key:t,kept_bot_id:n.get(t)})}return{updates:r,renames:s}}e.s(["AgentNameConflictError",0,ta,"agentDisplayName",0,ti,"agentNameConflictBody",0,function(e,t="name"){return{error:e.message,code:tn,field:t,name:e.requestedName,conflicting_agent_id:e.conflictingAgentId}},"agentNameConflictMessage",0,ts,"agentNameKey",0,tr,"planNameMigration",0,to],30098);let t_=(0,e.i(52036).dbPath)();":memory:"!==t_&&i.default.mkdirSync(r.default.dirname(r.default.resolve(t_)),{recursive:!0});let td=new n.default(t_);td.pragma("journal_mode = WAL"),td.exec(`
1655
1655
  CREATE TABLE IF NOT EXISTS bots (
1656
1656
  id TEXT PRIMARY KEY,
1657
1657
  name TEXT NOT NULL,
@@ -1948,4 +1948,4 @@ module.exports=[85148,(e,t,n)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",
1948
1948
  )
1949
1949
  `).run(e,e,tx)},latestFacts:(e,t=tx)=>{let n=t>0?Math.min(t,tx):tx;return td.prepare("SELECT fact FROM memories WHERE bot_id = ? ORDER BY created_at DESC, rowid DESC LIMIT ?").all(e,n).map(e=>e.fact).reverse()}},"messages",0,tW,"oneShots",0,{create:(e,t,n)=>{let i={id:(0,s.randomUUID)(),conversation_id:e,bot_id:t,due_at:n,fired:0,created_at:Date.now()};return td.prepare("INSERT INTO one_shots (id, conversation_id, bot_id, due_at, fired, created_at) VALUES (?, ?, ?, ?, 0, ?)").run(i.id,i.conversation_id,i.bot_id,i.due_at,i.created_at),i},pending:e=>td.prepare("SELECT * FROM one_shots WHERE conversation_id = ? AND fired = 0 ORDER BY due_at ASC LIMIT 1").get(e),unfired:()=>td.prepare("SELECT * FROM one_shots WHERE fired = 0 ORDER BY due_at ASC").all(),claim:e=>1===td.prepare("UPDATE one_shots SET fired = 1 WHERE id = ? AND fired = 0").run(e).changes},"projector",0,tA,"registrationContext",0,{getConnection:e=>th.getById(e),localConnectionFor:e=>tT(e),sessionBelongsTo:function(e,t){return!!e&&(!!td.prepare("SELECT 1 FROM session_bindings WHERE id = ? AND agent_id = ?").get(t,e)||!!td.prepare("SELECT 1 FROM provider_sessions WHERE id = ? AND agent_id = ?").get(t,e))}},"resolveWakeTarget",0,tG,"routines",0,{create:(e,t,n,i,r)=>{let a={id:(0,s.randomUUID)(),conversation_id:e,bot_id:t,word:n,next_due_at:i,every_ms:r,created_at:Date.now()};return td.prepare("INSERT INTO routines (id, conversation_id, bot_id, word, next_due_at, every_ms, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(a.id,a.conversation_id,a.bot_id,a.word,a.next_due_at,a.every_ms,a.created_at),a},forConversation:e=>td.prepare("SELECT * FROM routines WHERE conversation_id = ? ORDER BY created_at ASC LIMIT 1").get(e),all:()=>td.prepare("SELECT * FROM routines ORDER BY next_due_at ASC").all(),postIfDue:(e,t)=>td.transaction(()=>{let n=td.prepare("SELECT * FROM routines WHERE id = ?").get(e);return!!n&&!(n.next_due_at>t)&&1===td.prepare("UPDATE routines SET next_due_at = next_due_at + every_ms WHERE id = ? AND next_due_at = ?").run(e,n.next_due_at).changes&&(tW.create(n.conversation_id,"bot","[routine]\n"+n.word,n.bot_id),!0)})()},"runtimeConnections",0,th,"serializeAgent",0,function(e){let t=(0,a.serializeBot)(e);for(let e of tw)delete t[e];let n=e.runtime_connection_id?th.getById(e.runtime_connection_id):void 0;return{...t,...j(e,n),launch_profile:F(e)}},"serviceAudit",0,tS,"wakeTargets",0,{accept:e=>{let t=tG(e.requestedTarget);if(!t.ok)return t;let n={id:(0,s.randomUUID)(),conversation_id:e.conversationId,source_bot_id:e.sourceBotId??null,source_message_id:e.sourceMessageId??null,requested_target:e.requestedTarget,target_bot_id:t.agentId,target_name_snapshot:t.displayName,created_at:Date.now()};return td.prepare("INSERT INTO wake_targets (id, conversation_id, source_bot_id, source_message_id, requested_target, target_bot_id, target_name_snapshot, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(n.id,n.conversation_id,n.source_bot_id,n.source_message_id,n.requested_target,n.target_bot_id,n.target_name_snapshot,n.created_at),{ok:!0,wake:n}},listByConversation:e=>td.prepare("SELECT * FROM wake_targets WHERE conversation_id = ? ORDER BY created_at ASC, rowid ASC").all(e)},"workspaceSettings",0,{get:e=>{let t=td.prepare("SELECT value FROM workspace_settings WHERE key = ?").get(e);return t?t.value:null},set:(e,t)=>{td.prepare("INSERT INTO workspace_settings (key, value, updated_at) VALUES (?, ?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at").run(e,t,Date.now())},clearForTests:()=>{td.prepare("DELETE FROM workspace_settings").run()}}],62294)}];
1950
1950
 
1951
- //# sourceMappingURL=%5Broot-of-the-server%5D__0izjfmr._.js.map
1951
+ //# sourceMappingURL=lib_db_ts_1ttuckb._.js.map
@@ -1,7 +1,7 @@
1
- module.exports=[69936,9501,e=>{"use strict";var t=e.i(62294),n=e.i(43345),i=e.i(45383),r=e.i(54799),a=e.i(62349),s=e.i(18966),o=e.i(35613),d=e.i(90027),c=e.i(63020),l=e.i(35631),u=e.i(93399),g=e.i(50081),_=e.i(16789),p=e.i(674);let f={invalid_request:400,unsupported_field:400,authority_not_allowed:403,principal_not_allowed:403,grant_required:403,grants_unavailable:503,agent_not_found:404,session_not_found:404,conversation_not_found:404,exchange_not_found:404,session_ended:409,session_not_resumable:409,source_session_busy:409,agent_unavailable:409,destination_invalid:400,recursive_exchange:403,idempotency_conflict:409,exchange_terminal:409,conflict:409,payload_too_large:413,rate_limited:429,internal_error:500,pin_not_found:404,pin_detached:409,workspace_required:409,no_eligible_session:409,session_missing:410,action_unavailable:409,approval_required:403,provider_failed:502},h=["principal_not_allowed","grant_required","grants_unavailable","agent_not_found","session_not_found","conversation_not_found","exchange_not_found","rate_limited","pin_not_found"];class m extends Error{code;notGranted;fields;recovery;constructor(e,t,n={}){super(t),this.name="ServiceApiError",this.code=e,this.notGranted=!0===n.notGranted,this.fields=n.fields,this.recovery=(0,g.recoveryFor)(e)}get status(){return f[this.code]}get denied(){return h.includes(this.code)}}let y={pin:()=>new m("pin_not_found","No pin with that reference is visible to this principal."),agent:()=>new m("agent_not_found","No Agent with that id is visible to this principal."),session:()=>new m("session_not_found","No session with that reference is visible to this principal."),conversation:()=>new m("conversation_not_found","No conversation with that id is visible to this principal."),exchange:()=>new m("exchange_not_found","No exchange with that id is visible to this principal.")};function v(e){let t=y[e]();return new m(t.code,t.message,{notGranted:!0})}function w(e){switch(e.code){case"exchange_not_found":return y.exchange();case"session_not_found":return y.session();case"agent_not_found":return y.agent();case"conversation_not_found":return y.conversation();case"invalid_transition":return new m("conflict","The exchange changed concurrently; read it and retry.");default:return e.code in f?new m(e.code,e.message):new m("invalid_request",e.message)}}let E=new Map;function b(e){if("service"!==e.kind)throw new m("principal_not_allowed","The granted service API accepts only service principals.");let t=(0,l.loadServiceGrants)();if("invalid"===t.state)throw new m("grants_unavailable","The service grants are not available; the owner must fix the grants document.");return"absent"===t.state?{principal:e,mode:"narrow",agents:E}:{principal:e,mode:"granted",agents:t.grants.get(e.id)??E}}function S(e,n,i){return"string"==typeof n&&!!e.agents.get(n)?.has(i)&&!!t.bots.getById(n)}function A(e,n,i){let r=t.bots.getById(n);if(!r)throw y.agent();if(!S(e,n,i))throw v("agent");return r}let R=Object.freeze({default:20,max:100,messagesDefault:50,messagesMax:200});function I(e,t){return t.at-e.at||t.tie-e.tie||(e.id<t.id?-1:+(e.id>t.id))}function k(e,t){return Buffer.from(JSON.stringify({s:e,a:t.at,t:t.tie,i:t.id}),"utf8").toString("base64url")}function x(e,t){let n;if(null===t||""===t)return null;let i=new m("invalid_request","cursor is not a cursor of this list.");if(t.length>1024)throw i;try{n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"))}catch{throw i}if(!n||n.s!==e||"number"!=typeof n.a||"number"!=typeof n.t||"string"!=typeof n.i)throw i;return{at:n.a,tie:n.t,id:n.i}}function C(e,t=R.default,n=R.max){if(null===e||""===e)return t;if(!/^\d+$/.test(e)||1>Number(e)||Number(e)>n)throw new m("invalid_request",`limit must be an integer from 1 to ${n}.`);return Number(e)}function T(e,t,n,i,r){let a=x(e,i),s=[...t].sort((e,t)=>I(n(e),n(t))),o=a?s.filter(e=>I(n(e),a)>0):s,d=o.slice(0,r),c=o.length>r?k(e,n(d[d.length-1])):null;return{items:d,next_cursor:c}}function q(e){let n=[...e.agents.entries()].filter(([e])=>!!t.bots.getById(e)).map(([e,t])=>({agent_id:e,capabilities:l.SERVICE_CAPABILITIES.filter(e=>t.has(e))})).sort((e,t)=>e.agent_id<t.agent_id?-1:+(e.agent_id>t.agent_id));return{principal:{kind:e.principal.kind,id:e.principal.id},mode:e.mode,vocabulary:l.SERVICE_CAPABILITIES,agents:n,limits:{page:R,content_chars:o.EXCHANGE_LIMITS.instructionChars,message_content_chars:D}}}function N(e,n){let i,r=(0,a.resolveAgent)(n),o=e.agents.get(n.id)??new Set;return{agent_id:n.id,name:n.name,title:n.title,runtime:r.agent,available:r.launchable,capabilities:l.SERVICE_CAPABILITIES.filter(e=>o.has(e)),messaging:{home_session_ref:n.home_session_id??null,new_sessions_allowed:(0,s.readStoredPolicy)(n)?.allow_new_sessions===!0,default_workspace_set:!!n.default_workspace},created_at:n.created_at,last_activity_at:(i=t.default.prepare(`
1
+ module.exports=[69936,9501,e=>{"use strict";var t=e.i(62294),n=e.i(43345),i=e.i(45383),r=e.i(674),s=e.i(81449),a=e.i(54799),o=e.i(62349),d=e.i(18966),c=e.i(35613),l=e.i(90027),u=e.i(63020),_=e.i(91253),g=e.i(93399),p=e.i(50081),h=e.i(16789),f=e.i(35034);let m={invalid_request:400,unsupported_field:400,authority_not_allowed:403,principal_not_allowed:403,grant_required:403,grants_unavailable:503,agent_not_found:404,session_not_found:404,conversation_not_found:404,exchange_not_found:404,session_ended:409,session_not_resumable:409,source_session_busy:409,agent_unavailable:409,destination_invalid:400,recursive_exchange:403,idempotency_conflict:409,exchange_terminal:409,conflict:409,payload_too_large:413,rate_limited:429,internal_error:500,pin_not_found:404,pin_detached:409,workspace_required:409,no_eligible_session:409,session_missing:410,action_unavailable:409,approval_required:403,provider_failed:502,share_not_found:404,share_expired:410,share_revoked:410,share_turn_in_progress:409,share_turn_limit:409,audience_not_allowed:403,session_context_required:409},y=["principal_not_allowed","grant_required","grants_unavailable","agent_not_found","session_not_found","conversation_not_found","exchange_not_found","rate_limited","pin_not_found","share_not_found","audience_not_allowed"];class w extends Error{code;notGranted;fields;recovery;reason;constructor(e,t,n={}){super(t),this.name="ServiceApiError",this.code=e,this.notGranted=!0===n.notGranted,this.fields=n.fields,this.recovery=(0,p.recoveryFor)(e),this.reason=n.reason??null}get status(){return m[this.code]}get denied(){return y.includes(this.code)}}let v={pin:()=>new w("pin_not_found","No pin with that reference is visible to this principal."),share:()=>new w("share_not_found","No share with that reference is visible to this principal."),agent:()=>new w("agent_not_found","No Agent with that id is visible to this principal."),session:()=>new w("session_not_found","No session with that reference is visible to this principal."),conversation:()=>new w("conversation_not_found","No conversation with that id is visible to this principal."),exchange:()=>new w("exchange_not_found","No exchange with that id is visible to this principal.")};function E(e){let t=v[e]();return new w(t.code,t.message,{notGranted:!0})}function S(e){switch(e.code){case"exchange_not_found":return v.exchange();case"session_not_found":return v.session();case"agent_not_found":return v.agent();case"conversation_not_found":return v.conversation();case"invalid_transition":return new w("conflict","The exchange changed concurrently; read it and retry.");default:return e.code in m?new w(e.code,e.message):new w("invalid_request",e.message)}}let b=new Map;function R(e){if("service"!==e.kind)throw new w("principal_not_allowed","The granted service API accepts only service principals.");if(e.id===s.SESSION_CONTEXT_SERVICE_ID)return{principal:e,mode:"narrow",agents:b};let t=(0,_.loadServiceGrants)();if("invalid"===t.state)throw new w("grants_unavailable","The service grants are not available; the owner must fix the grants document.");return"absent"===t.state?{principal:e,mode:"narrow",agents:b}:{principal:e,mode:"granted",agents:t.grants.get(e.id)??b}}function I(e,n,i){return"string"==typeof n&&!!e.agents.get(n)?.has(i)&&!!t.bots.getById(n)}function k(e,n,i){let r=t.bots.getById(n);if(!r)throw v.agent();if(!I(e,n,i))throw E("agent");return r}let x=Object.freeze({default:20,max:100,messagesDefault:50,messagesMax:200});function A(e,t){return t.at-e.at||t.tie-e.tie||(e.id<t.id?-1:+(e.id>t.id))}function C(e,t){return Buffer.from(JSON.stringify({s:e,a:t.at,t:t.tie,i:t.id}),"utf8").toString("base64url")}function T(e,t){let n;if(null===t||""===t)return null;let i=new w("invalid_request","cursor is not a cursor of this list.");if(t.length>1024)throw i;try{n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"))}catch{throw i}if(!n||n.s!==e||"number"!=typeof n.a||"number"!=typeof n.t||"string"!=typeof n.i)throw i;return{at:n.a,tie:n.t,id:n.i}}function q(e,t=x.default,n=x.max){if(null===e||""===e)return t;if(!/^\d+$/.test(e)||1>Number(e)||Number(e)>n)throw new w("invalid_request",`limit must be an integer from 1 to ${n}.`);return Number(e)}function N(e,t,n,i,r){let s=T(e,i),a=[...t].sort((e,t)=>A(n(e),n(t))),o=s?a.filter(e=>A(n(e),s)>0):a,d=o.slice(0,r),c=o.length>r?C(e,n(d[d.length-1])):null;return{items:d,next_cursor:c}}function O(e){let n=[...e.agents.entries()].filter(([e])=>!!t.bots.getById(e)).map(([e,t])=>({agent_id:e,capabilities:_.SERVICE_CAPABILITIES.filter(e=>t.has(e))})).sort((e,t)=>e.agent_id<t.agent_id?-1:+(e.agent_id>t.agent_id));return{principal:{kind:e.principal.kind,id:e.principal.id},mode:e.mode,vocabulary:_.SERVICE_CAPABILITIES,agents:n,limits:{page:x,content_chars:c.EXCHANGE_LIMITS.instructionChars,message_content_chars:B}}}function P(e,n){let i,r=(0,o.resolveAgent)(n),s=e.agents.get(n.id)??new Set;return{agent_id:n.id,name:n.name,title:n.title,runtime:r.agent,available:r.launchable,capabilities:_.SERVICE_CAPABILITIES.filter(e=>s.has(e)),messaging:{home_session_ref:n.home_session_id??null,new_sessions_allowed:(0,d.readStoredPolicy)(n)?.allow_new_sessions===!0,default_workspace_set:!!n.default_workspace},created_at:n.created_at,last_activity_at:(i=t.default.prepare(`
2
2
  SELECT MAX(m.created_at) AS at FROM messages m
3
3
  JOIN conversation_participants p ON p.conversation_id = m.conversation_id AND p.participant_kind = 'bot' AND p.participant_id = ?
4
- `).get(n.id),Math.max(n.created_at,i.at??0))}}function O(e,n){let i=[...e.agents.keys()].filter(t=>S(e,t,"agents:read")).map(n=>N(e,t.bots.getById(n)));return T(`agents:${e.principal.id}`,i,e=>({at:e.last_activity_at,tie:e.created_at,id:e.agent_id}),n.cursor,n.limit)}function M(e,t){return N(e,A(e,t,"agents:read"))}function P(e){let t=e.origin.conversation;return{ref:e.ref,agent:{...e.agent},title:e.title,status:e.status,resumable:e.resumable,source:e.source,state:{...e.state},created_at:e.created_at,ended_at:e.ended_at,last_activity_at:e.last_activity_at,origin:{conversation:t?{id:t.id,kind:t.kind,label:t.label}:null,work_request:e.origin.work_request},usage:{input_tokens:{...e.usage.input_tokens},output_tokens:{...e.usage.output_tokens},cost_usd:{...e.usage.cost_usd}},home:e.home,actions:e.actions}}async function L(e,n){A(e,n,"sessions:read"),await (0,_.warmAgentProvider)(t.default,n,{onlyWithSessions:!0})}function K(e,n,i){A(e,n,"sessions:read");let r=i.status??"all";if(!(0,d.isSessionFilter)(r))throw new m("invalid_request","status must be active, ended, or all.");let a=(0,u.serviceRedactor)(),s=(0,p.sessionsWithActions)(n,(0,d.listAgentSessions)(t.default,n,r)).map(e=>a.deep(P(e)));return T(`sessions:${n}:${r}`,s,e=>({at:e.last_activity_at,tie:e.created_at,id:e.ref}),i.cursor,i.limit)}function F(e,n,i){A(e,n,"sessions:read");let r=(0,d.getAgentSession)(t.default,n,i);if(!r)throw y.session();return(0,u.serviceRedactor)().deep({...P((0,p.sessionsWithActions)(n,[r])[0]),attempts:r.attempts,usage_samples:r.usage_samples.map(e=>({...e}))})}let D=16e3,G=`
4
+ `).get(n.id),Math.max(n.created_at,i.at??0))}}function L(e,n){let i=[...e.agents.keys()].filter(t=>I(e,t,"agents:read")).map(n=>P(e,t.bots.getById(n)));return N(`agents:${e.principal.id}`,i,e=>({at:e.last_activity_at,tie:e.created_at,id:e.agent_id}),n.cursor,n.limit)}function K(e,t){return P(e,k(e,t,"agents:read"))}function M(e){let t=e.origin.conversation;return{ref:e.ref,agent:{...e.agent},title:e.title,status:e.status,resumable:e.resumable,source:e.source,state:{...e.state},created_at:e.created_at,ended_at:e.ended_at,last_activity_at:e.last_activity_at,origin:{conversation:t?{id:t.id,kind:t.kind,label:t.label}:null,work_request:e.origin.work_request},usage:{input_tokens:{...e.usage.input_tokens},output_tokens:{...e.usage.output_tokens},cost_usd:{...e.usage.cost_usd}},home:e.home,actions:e.actions}}async function $(e,n){k(e,n,"sessions:read"),await (0,h.warmAgentProvider)(t.default,n,{onlyWithSessions:!0})}function D(e,n,i){k(e,n,"sessions:read");let s=i.status??"all";if(!(0,l.isSessionFilter)(s))throw new w("invalid_request","status must be active, ended, or all.");let a=(0,g.serviceRedactor)(),o=(0,r.sessionsWithActions)(n,(0,l.listAgentSessions)(t.default,n,s)).map(e=>a.deep(M(e)));return N(`sessions:${n}:${s}`,o,e=>({at:e.last_activity_at,tie:e.created_at,id:e.ref}),i.cursor,i.limit)}function F(e,n,i){k(e,n,"sessions:read");let s=(0,l.getAgentSession)(t.default,n,i);if(!s)throw v.session();return(0,g.serviceRedactor)().deep({...M((0,r.sessionsWithActions)(n,[s])[0]),attempts:s.attempts,usage_samples:s.usage_samples.map(e=>({...e}))})}let B=16e3,G=`
5
5
  SELECT c.id, c.type, c.bot_id, c.group_id, c.origin_kind, c.origin_id, c.created_at,
6
6
  COALESCE((SELECT MAX(m.created_at) FROM messages m WHERE m.conversation_id = c.id), c.created_at) AS last_activity_at,
7
7
  (SELECT COUNT(*) FROM messages m WHERE m.conversation_id = c.id) AS message_count,
@@ -10,16 +10,16 @@ module.exports=[69936,9501,e=>{"use strict";var t=e.i(62294),n=e.i(43345),i=e.i(
10
10
  JOIN conversation_participants p ON p.conversation_id = c.id AND p.participant_kind = 'bot' AND p.participant_id = ?
11
11
  LEFT JOIN bots b ON b.id = c.bot_id
12
12
  LEFT JOIN groups g ON g.id = c.group_id
13
- `;function $(e){return t.default.prepare("SELECT participant_kind AS kind, participant_id AS id FROM conversation_participants WHERE conversation_id = ? ORDER BY joined_at ASC, rowid ASC").all(e)}function B(e,t){return t.every(t=>"bot"===t.kind?S(e,t.id,"conversations:read"):"service"!==t.kind||t.id===e.principal.id)}function W(e,t){let n="bot"===e.type?"direct":"group"===e.type?"group":"agent",i="direct"===n?`${e.bot_name??"Agent"} thread`:"group"===n?e.group_name?`Group ${e.group_name}`:"Group thread":"Agent API conversation";return{conversation_id:e.id,type:n,label:i,participants:t,message_count:e.message_count,created_at:e.created_at,last_activity_at:e.last_activity_at}}function H(e,n,i){A(e,n,"conversations:read");let r=t.default.prepare(G).all(n).flatMap(t=>{let n=$(t.id);return B(e,n)?[W(t,n)]:[]});return T(`conversations:${n}`,r,e=>({at:e.last_activity_at,tie:e.created_at,id:e.conversation_id}),i.cursor,i.limit)}function j(e,n,i,r){A(e,n,"conversations:read");let a=t.default.prepare(`${G} WHERE c.id = ?`).get(n,i);if(!a)throw y.conversation();let s=$(a.id);if(!B(e,s))throw v("conversation");let o=`messages:${a.id}`,d=x(o,r.cursor),c=t.default.prepare(`
13
+ `;function H(e){return t.default.prepare("SELECT participant_kind AS kind, participant_id AS id FROM conversation_participants WHERE conversation_id = ? ORDER BY joined_at ASC, rowid ASC").all(e)}function W(e,t){return t.every(t=>"bot"===t.kind?I(e,t.id,"conversations:read"):"service"!==t.kind||t.id===e.principal.id)}function j(e,t){let n="bot"===e.type?"direct":"group"===e.type?"group":"agent",i="direct"===n?`${e.bot_name??"Agent"} thread`:"group"===n?e.group_name?`Group ${e.group_name}`:"Group thread":"Agent API conversation";return{conversation_id:e.id,type:n,label:i,participants:t,message_count:e.message_count,created_at:e.created_at,last_activity_at:e.last_activity_at}}function X(e,n,i){k(e,n,"conversations:read");let r=t.default.prepare(G).all(n).flatMap(t=>{let n=H(t.id);return W(e,n)?[j(t,n)]:[]});return N(`conversations:${n}`,r,e=>({at:e.last_activity_at,tie:e.created_at,id:e.conversation_id}),i.cursor,i.limit)}function V(e,n,i,r){k(e,n,"conversations:read");let s=t.default.prepare(`${G} WHERE c.id = ?`).get(n,i);if(!s)throw v.conversation();let a=H(s.id);if(!W(e,a))throw E("conversation");let o=`messages:${s.id}`,d=T(o,r.cursor),c=t.default.prepare(`
14
14
  SELECT * FROM (
15
15
  SELECT m.id, m.sender_type, m.sender_id, m.sender_kind, m.request_id, m.content, m.created_at,
16
16
  ROW_NUMBER() OVER (ORDER BY m.rowid ASC) AS seq
17
17
  FROM messages m WHERE m.conversation_id = ?
18
18
  ) WHERE seq < ? ORDER BY seq DESC LIMIT ?
19
- `).all(a.id,d?d.at:Number.MAX_SAFE_INTEGER,r.limit+1),l=c.slice(0,r.limit).reverse(),g=(0,u.serviceRedactor)();return{...W(a,s),messages:l.map(e=>{var t,n;let i,r=g.text(e.content);return{message_id:e.id,seq:e.seq,sender:(t=e,n=a,i=t.sender_kind??("bot"===t.sender_type?"bot":"person"),t.sender_id?{kind:i,id:t.sender_id}:"bot"!==i&&n.origin_kind===i&&n.origin_id?{kind:i,id:n.origin_id}:{kind:i,id:"unknown"}),content:r.length>D?r.slice(0,D):r,truncated:r.length>D,request_id:e.request_id,created_at:e.created_at}}),next_cursor:c.length>r.limit&&l.length>0?k(o,{at:l[0].seq,tie:0,id:l[0].id}):null}}let X=["deck","deck_id","deckId","deck_name","runtime","agent","adapter","transport","model","tool_profile","toolProfile","execution_kind","executionKind","permissions","provider_session_id","external_session_id","externalSessionId","session_id","sessionId","resume","resume_session","fresh_session","external_run_id","run_id","cwd","working_directory","workspace","grant","grants","capability","capabilities","principal","requester","owner"];function U(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function Y(e,t,n){for(let i of Object.keys(e))if(!t.includes(i)){if(X.includes(i))throw new m("authority_not_allowed",`${n}${i} is chosen by Botmancers from the session and the Agent's configuration; a caller cannot set it.`);throw new m("invalid_request",`${n}${i} is not a field of this request.`)}}function V(e,t,n){if("string"!=typeof e||0===e.trim().length)throw new m("invalid_request",`${t} is required.`);if(e.length>n)throw new m("invalid_request",`${t} exceeds ${n} characters.`);return e}function J(e,t){let n=e.idempotency_key;if(void 0!==n&&"string"!=typeof n)throw new m("invalid_request","idempotency_key must be a string.");if(null!==t&&void 0!==n&&t!==n)throw new m("invalid_request","Idempotency-Key header and body idempotency_key differ.");let i=n??t??"";if(0===i.trim().length||i.length>160)throw new m("invalid_request","An idempotency key (1-160 characters) is required.");return i}function z(e,n){return t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function Q(e,n,i){let a=(0,r.randomUUID)();t.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(a,"agent",e.kind,e.id,i);let s=t.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)");return s.run(a,e.kind,e.id,i),s.run(a,"bot",n,i),a}function Z(e){return t.default.prepare("SELECT * FROM session_bindings WHERE id = ?").get(e)}function ee(e,n){try{return t.default.transaction(()=>{let{input:t,afterCreate:r}=e(),a=i.exchanges.create(t);return a.created&&r&&r(a.exchange),n?.(a.exchange),a}).immediate()}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}function et(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");Y(e,["content","idempotency_key"],"");let n=J(e,t);return{content:V(e.content,"content",o.EXCHANGE_LIMITS.instructionChars),idempotencyKey:n}}function en(e,n,a,s){let o=Z(n);if(!o){let i=t.default.prepare("SELECT agent_id FROM provider_sessions WHERE id = ? AND binding_id IS NULL").get(n);if(i&&S(e,i.agent_id,"sessions:message"))throw new m("session_not_resumable","This session is not reachable through session messages.");throw y.session()}if(!S(e,o.agent_id,"sessions:message"))throw v("session");let d=e.principal,c=`${l.MESSAGE_KEY_PREFIX}${a.idempotencyKey}`,{exchange:u,created:g}=ee(()=>{let e=Date.now(),n=z(d,c),i=t.default.prepare(`
19
+ `).all(s.id,d?d.at:Number.MAX_SAFE_INTEGER,r.limit+1),l=c.slice(0,r.limit).reverse(),u=(0,g.serviceRedactor)();return{...j(s,a),messages:l.map(e=>{var t,n;let i,r=u.text(e.content);return{message_id:e.id,seq:e.seq,sender:(t=e,n=s,i=t.sender_kind??("bot"===t.sender_type?"bot":"person"),t.sender_id?{kind:i,id:t.sender_id}:"bot"!==i&&n.origin_kind===i&&n.origin_id?{kind:i,id:n.origin_id}:{kind:i,id:"unknown"}),content:r.length>B?r.slice(0,B):r,truncated:r.length>B,request_id:e.request_id,created_at:e.created_at}}),next_cursor:c.length>r.limit&&l.length>0?C(o,{at:l[0].seq,tie:0,id:l[0].id}):null}}let J=["deck","deck_id","deckId","deck_name","runtime","agent","adapter","transport","model","tool_profile","toolProfile","execution_kind","executionKind","permissions","provider_session_id","external_session_id","externalSessionId","session_id","sessionId","resume","resume_session","fresh_session","external_run_id","run_id","cwd","working_directory","workspace","grant","grants","capability","capabilities","principal","requester","owner"];function U(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function Y(e,t,n){for(let i of Object.keys(e))if(!t.includes(i)){if(J.includes(i))throw new w("authority_not_allowed",`${n}${i} is chosen by Botmancers from the session and the Agent's configuration; a caller cannot set it.`);throw new w("invalid_request",`${n}${i} is not a field of this request.`)}}function z(e,t,n){if("string"!=typeof e||0===e.trim().length)throw new w("invalid_request",`${t} is required.`);if(e.length>n)throw new w("invalid_request",`${t} exceeds ${n} characters.`);return e}function Q(e,t){let n=e.idempotency_key;if(void 0!==n&&"string"!=typeof n)throw new w("invalid_request","idempotency_key must be a string.");if(null!==t&&void 0!==n&&t!==n)throw new w("invalid_request","Idempotency-Key header and body idempotency_key differ.");let i=n??t??"";if(0===i.trim().length||i.length>160)throw new w("invalid_request","An idempotency key (1-160 characters) is required.");return i}function Z(e,n){return t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function ee(e,n,i){let r=(0,a.randomUUID)();t.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(r,"agent",e.kind,e.id,i);let s=t.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)");return s.run(r,e.kind,e.id,i),s.run(r,"bot",n,i),r}function et(e){return t.default.prepare("SELECT * FROM session_bindings WHERE id = ?").get(e)}function en(e,n){try{return t.default.transaction(()=>{let{input:t,afterCreate:r}=e(),s=i.exchanges.create(t);return s.created&&r&&r(s.exchange),n?.(s.exchange),s}).immediate()}catch(e){if(e instanceof u.ExchangeError)throw S(e);throw e}}function ei(e,t){if(!U(e))throw new w("invalid_request","The body must be a JSON object.");Y(e,["content","idempotency_key"],"");let n=Q(e,t);return{content:z(e.content,"content",c.EXCHANGE_LIMITS.instructionChars),idempotencyKey:n}}function er(e,n,r,s){let o=et(n);if(!o){let i=t.default.prepare("SELECT agent_id FROM provider_sessions WHERE id = ? AND binding_id IS NULL").get(n);if(i&&I(e,i.agent_id,"sessions:message"))throw new w("session_not_resumable","This session is not reachable through session messages.");throw v.session()}if(!I(e,o.agent_id,"sessions:message"))throw E("session");let d=e.principal,c=`${_.MESSAGE_KEY_PREFIX}${r.idempotencyKey}`,{exchange:l,created:u}=en(()=>{let e=Date.now(),n=Z(d,c),i=t.default.prepare(`
20
20
  SELECT origin_conversation_id FROM session_exchanges
21
21
  WHERE requester_kind = ? AND requester_id = ? AND source_binding_id = ? AND mode = 'ask' AND idempotency_key LIKE 'message:%'
22
22
  ORDER BY created_at ASC, id ASC LIMIT 1
23
- `).get(d.kind,d.id,o.id),s=n?.origin_conversation_id??i?.origin_conversation_id??Q(d,o.agent_id,e);return{input:{requester:d,serviceGrant:!0,idempotencyKey:c,mode:"ask",originConversationId:s,sourceAgentId:o.agent_id,sessionRef:o.id,instruction:a.content,now:e},afterCreate:n=>{t.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run((0,r.randomUUID)(),n.origin_conversation_id,"user",d.id,d.kind,n.source_request_id,a.content,e)}}},s),_=(0,i.dispatchExchange)(u.id),p=u.source_request_id?t.default.prepare("SELECT state FROM work_requests WHERE id = ?").get(u.source_request_id):void 0,f=t.default.prepare("SELECT id FROM messages WHERE conversation_id = ? AND request_id = ? AND sender_kind = ? ORDER BY rowid ASC LIMIT 1").get(u.origin_conversation_id,u.source_request_id,d.kind);return{accepted:{session_ref:o.id,agent_id:o.agent_id,exchange_id:u.id,request_id:u.source_request_id,conversation_id:u.origin_conversation_id,message_id:f?.id??null,state:p?(0,i.apiStateOf)(p.state):"accepted",replayed:!g},dispatched:_}}function ei(e,t,n){return t.requester_kind===e.principal.kind&&t.requester_id===e.principal.id&&S(e,t.source_agent_id,n)&&(null===t.destination_agent_id||S(e,t.destination_agent_id,n))}function er(e,t,n){let r=i.exchanges.get(t);if(!r)throw y.exchange();if(!ei(e,r,n))throw v("exchange");return r}let ea=e=>e.idempotency_key.startsWith(l.MESSAGE_KEY_PREFIX)?"session_message":"exchange";function es(e,t){let n=t.idempotency_key.startsWith(l.MESSAGE_KEY_PREFIX)?t.idempotency_key.slice(l.MESSAGE_KEY_PREFIX.length):t.idempotency_key.startsWith(l.EXCHANGE_KEY_PREFIX)?t.idempotency_key.slice(l.EXCHANGE_KEY_PREFIX.length):t.idempotency_key;return(0,u.serviceRedactor)().deep({...e,kind:ea(t),idempotency_key:n})}function eo(e){return{id:e.id,kind:ea(e),mode:e.mode,state:e.state,source:{agent_id:e.source_agent_id,session_ref:e.source_binding_id},destination:e.destination_agent_id?{agent_id:e.destination_agent_id,session_ref:e.destination_binding_id}:null,failure:"failed"===e.state?{code:e.failure_code??"failed"}:null,created_at:e.created_at,updated_at:e.updated_at,terminal_at:e.terminal_at}}function ed(e,t){let n=i.exchanges.require(t);return ei(e,n,"exchanges:read")?es((0,i.getExchangeView)(t),n):eo(n)}function ec(e,n){let i=t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ?").all(e.principal.kind,e.principal.id).filter(t=>ei(e,t,"exchanges:read")).map(eo);return T(`exchanges:${e.principal.id}`,i,e=>({at:e.updated_at,tie:e.created_at,id:e.id}),n.cursor,n.limit)}function el(e,t){let n=er(e,t,"exchanges:read");return es((0,i.getExchangeView)(n.id),n)}let eu=["exchange_id","parent_exchange_id"];function eg(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");if(eu.some(t=>t in e))throw new m("recursive_exchange","An exchange cannot be started from another exchange.");if(Y(e,["mode","idempotency_key","origin_conversation_id","source","destination","instruction"],""),"ask"!==e.mode&&"continue"!==e.mode)throw new m("invalid_request",'mode must be "ask" or "continue".');if(!U(e.source))throw new m("invalid_request","source must be one object { session_ref, agent_id? }.");Y(e.source,["session_ref","agent_id"],"source.");let n=null;if(void 0!==e.destination&&null!==e.destination){if(!U(e.destination))throw new m("destination_invalid","destination must be one object { agent_id, conversation_id? }.");Y(e.destination,["agent_id","conversation_id"],"destination."),n=e.destination}let i=(e,t)=>null==e?null:V(e,t,200);return{mode:e.mode,idempotencyKey:J(e,t),originConversationId:i(e.origin_conversation_id,"origin_conversation_id"),sourceAgentId:i(e.source.agent_id,"source.agent_id"),sessionRef:V(e.source.session_ref,"source.session_ref",200),destinationAgentId:n?i(n.agent_id,"destination.agent_id"):null,destinationConversationId:n?i(n.conversation_id,"destination.conversation_id"):null,instruction:V(e.instruction,"instruction",o.EXCHANGE_LIMITS.instructionChars)}}function e_(e,n,r){let a=Z(n.sessionRef);if(!a||null!==n.sourceAgentId&&n.sourceAgentId!==a.agent_id)throw y.session();if(!S(e,a.agent_id,"exchanges:create"))throw v("session");if("ask"===n.mode&&(null!==n.destinationAgentId||null!==n.destinationConversationId))throw new m("destination_invalid","An Ask returns to the origin conversation and takes no destination.");if("continue"===n.mode){if(null===n.destinationAgentId)throw new m("destination_invalid","A Continue names destination.agent_id.");if(!t.bots.getById(n.destinationAgentId))throw y.agent();if(!S(e,n.destinationAgentId,"exchanges:create"))throw v("agent")}let s=e.principal,o=`${l.EXCHANGE_KEY_PREFIX}${n.idempotencyKey}`,{exchange:d,created:c}=ee(()=>{let e=Date.now(),t=z(s,o),i=n.originConversationId??t?.origin_conversation_id??Q(s,a.agent_id,e),r="continue"!==n.mode?null:n.destinationConversationId??t?.destination_conversation_id??Q(s,n.destinationAgentId,e);return{input:{requester:s,serviceGrant:!0,idempotencyKey:o,mode:n.mode,originConversationId:i,sourceAgentId:a.agent_id,sessionRef:a.id,destinationAgentId:n.destinationAgentId,destinationConversationId:r,instruction:n.instruction,now:e}}},r),u=(0,i.dispatchExchange)(d.id);return{exchange:ed(e,d.id),created:c,dispatched:u}}function ep(e){try{return(0,c.cancelReasonFromBody)(e)}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}async function ef(e,t,n,r){let a=er(e,t,"exchanges:create");try{let{replayed:t}=await (0,i.cancelExchangeCommand)(a.id,e.principal,n,r);return{exchange:ed(e,a.id),replayed:t}}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}let eh=e=>"resume"===e?"sessions:resume":"sessions:message";function em(e){if(e instanceof p.PinError){if("session_not_found"===e.code)throw y.session();if("agent_not_found"===e.code)throw y.agent();if("pin_not_found"===e.code)throw y.pin();if("conversation_not_found"===e.code)throw y.conversation();throw new m(e.code,e.message)}if(e instanceof c.ExchangeError)throw w(e);throw e}function ey(e,t){let n;try{n=(0,p.requirePin)(e.principal,t)}catch(e){em(e)}if(!S(e,n.agent_id,eh(n.action)))throw v("pin");return n}function ev(e){return(0,u.serviceRedactor)().deep((0,p.pinView)(e))}function ew(e,t){return et(e,t)}function eE(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");if(Y(e,["action","approve_write","replace_pin_ref","idempotency_key"],""),"ask"!==e.action&&"resume"!==e.action)throw new m("invalid_request",'action must be "ask" or "resume".');if(void 0!==e.approve_write&&"boolean"!=typeof e.approve_write)throw new m("invalid_request","approve_write must be true or false.");return{action:e.action,approveWrite:!0===e.approve_write,replacePinRef:void 0===e.replace_pin_ref||null===e.replace_pin_ref?null:V(e.replace_pin_ref,"replace_pin_ref",200),idempotencyKey:J(e,t)}}async function eb(e,t,n,i){A(e,t,"sessions:message");try{let r=await (0,p.messageAgent)({requester:e.principal,agentId:t,content:n.content,idempotencyKey:n.idempotencyKey,mayStart:S(e,t,"sessions:start"),onResolved:e=>i.onTarget({agentId:e.agentId,sessionRef:e.sessionRef,capability:"started"===e.resolution?"sessions:start":"sessions:message",action:"started"===e.resolution?"agents.message.start":"agents.message"}),onCommit:()=>i.onCommit()});return{body:{pin:ev(r.pin),turn:(0,u.serviceRedactor)().deep(r.turn),resolution:r.resolution,replayed:r.replayed},settled:r.settled}}catch(e){em(e)}}async function eS(e,t,n,i){let r=(0,p.sessionOwner)(t);if(!r)throw y.session();let a=eh(n.action);if(i.onTarget({agentId:r,sessionRef:t,capability:a,action:"resume"===n.action?"pins.resume":"pins.ask"}),!S(e,r,a))throw v("session");n.replacePinRef&&ey(e,n.replacePinRef);try{let{pin:r,created:a,replaced:s}=await (0,p.createPin)({requester:e.principal,sessionRef:t,action:n.action,approveWrite:n.approveWrite,idempotencyKey:n.idempotencyKey,replacePinRef:n.replacePinRef,onCommit:()=>i.onCommit()});return{pin:ev(r),replaced_pin_ref:s?.id??null,replayed:!a}}catch(e){em(e)}}async function eA(e,t,n,i){let r=ey(e,t);i.onTarget({agentId:r.agent_id,sessionRef:r.session_ref,capability:eh(r.action),action:"pins.send"});try{let t=await (0,p.sendPinTurn)({requester:e.principal,pinRef:r.id,content:n.content,idempotencyKey:n.idempotencyKey,onCommit:()=>i.onCommit()});return{body:{pin:ev(t.pin),turn:(0,u.serviceRedactor)().deep(t.turn),replayed:t.replayed},settled:t.settled}}catch(e){em(e)}}async function eR(e,t,n){let i=ey(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:eh(i.action),action:"pins.read"});try{let{pin:t,turns:n}=await (0,p.readPin)(e.principal,i.id);return{pin:ev(t),turns:(0,u.serviceRedactor)().deep(n)}}catch(e){em(e)}}function eI(e,t,n){let i=ey(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:eh(i.action),action:"pins.detach"});try{let{pin:t,replayed:r}=(0,p.detachPin)(e.principal,i.id,{onCommit:()=>n.onCommit()});return{pin:ev(t),replayed:r}}catch(e){em(e)}}e.s(["AUTHORITY_FIELDS",0,X,"MESSAGE_CONTENT_LIMIT",0,D,"PAGE_LIMITS",0,R,"ServiceApiError",0,m,"cancelServiceExchange",0,ef,"capabilitiesView",0,q,"createServiceExchange",0,e_,"detachServicePin",0,eI,"getServiceAgent",0,M,"getServiceConversation",0,j,"getServiceExchange",0,el,"getServiceSession",0,F,"holds",0,S,"listServiceAgents",0,O,"listServiceConversations",0,H,"listServiceExchanges",0,ec,"listServiceSessions",0,K,"messageServiceAgent",0,eb,"parseAgentMessageBody",0,ew,"parseCancelBody",0,ep,"parseLimit",0,C,"parsePinBody",0,eE,"parseServiceExchangeBody",0,eg,"parseSessionMessageBody",0,et,"pinServiceSession",0,eS,"readServicePin",0,eR,"sendServicePinMessage",0,eA,"sendServiceSessionMessage",0,en,"serviceContext",0,b,"warmServiceAgent",0,L],9501);let ek="BOTMANCERS_SERVICE_API_CALLS_PER_MINUTE",ex=new Map;async function eC(e){let t=await eT(e);try{return JSON.parse(t)}catch{throw new m("invalid_request","The body must be a JSON object.")}}async function eT(e){let t=new m("payload_too_large","The request body is too large."),n=e.headers.get("content-length");if(null!==n&&!(/^\d+$/.test(n.trim())&&65536>=Number(n)))throw t;if(!e.body)return"";let i=e.body.getReader(),r=[],a=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if((a+=n.byteLength)>65536)throw await i.cancel().catch(()=>{}),t;r.push(n)}return Buffer.concat(r).toString("utf8")}function eq(e,t,n,i={}){return Response.json({error:{code:t,message:n}},{status:e,headers:i})}let eN=(e,t=200)=>({status:t,body:e});function eO(e,t,n,i={},r,a){return{status:e,body:{error:{code:t,message:n,...r?{fields:r}:{},...a?{recovery:a}:{}}},headers:i}}async function eM(e,n,i,r){let a,s,o={kind:n.targetKind,targetRef:n.targetRef??null,agentId:n.agentId??null},d=(i,r)=>t.serviceAudit.append({principal:e,operation:o.operation??n.operation,capability:o.capability??n.capability,targetKind:o.kind,targetRef:o.targetRef,agentId:o.agentId,outcome:i,code:r}),c=!1,l=null;try{if("service"!==e.kind)throw new m("principal_not_allowed","The granted service API accepts only service principals.");let t=function(e,t=Date.now()){let n=`${e.kind}:${e.id}`,i=(ex.get(n)??[]).filter(e=>e>t-6e4),r=function(){let e=process.env[ek];if(void 0===e||""===e.trim())return 120;let t=Number(e.trim());return Number.isInteger(t)&&t>0?t:(console.error(`${ek} must be a positive integer; using 120.`),120)}();return i.length>=r?(ex.set(n,i),Math.max(1,Math.ceil((i[i.length-r]+6e4-t)/1e3))):(i.push(t),ex.set(n,i),null)}(e);if(null!==t)l="rate_limited",s="denied",a=eO(429,"rate_limited","Too many calls; retry later.",{"Retry-After":String(t)});else{let t=b(e);r?.(t),a=await i(t,o,()=>{d("allowed",null),c=!0}),s="allowed"}}catch(e){e instanceof m?(s=e.denied?"denied":"rejected",l=e.notGranted?"not_granted":e.code,a=eO(e.status,e.code,e.message,{},e.fields,e.recovery)):(console.error("Service API error:",e instanceof Error?e.message:"unknown error"),s="error",l="internal_error",a=eO(500,"internal_error","The request could not be processed."))}if(c&&"allowed"===s)return a;try{d(s,l)}catch(e){return console.error("Service audit append failed:",e instanceof Error?e.message:"unknown error"),eO(500,"internal_error","The request could not be processed.")}return a}async function eP(e,t){let r;try{r=await (0,n.authenticate)(e)}catch(e){if(e instanceof i.AgentApiError)return eq(e.status,e.code,e.message);return console.error("Service API authentication error:",e instanceof Error?e.message:"unknown error"),eq(500,"internal_error","The request could not be processed.")}let a=await t(r);return Response.json(a.body,{status:a.status,headers:a.headers??{}})}function eL(e){let n=t.default.prepare("SELECT agent_id FROM session_bindings WHERE id = ?").get(e);return n?.agent_id??null}function eK(e,t){return{onTarget:t=>{e.kind=t.sessionRef?"session":"agent",e.targetRef=t.sessionRef??t.agentId,e.agentId=t.agentId,e.capability=t.capability,e.operation=t.action},onCommit:t}}function eF(e){if(e.length>200)return null;let n=t.default.prepare("SELECT source_agent_id FROM session_exchanges WHERE id = ?").get(e);return n?.source_agent_id??null}let eD={capabilities:(e,t)=>eM(e,{operation:"capabilities.read",capability:"discovery",targetKind:"grants"},e=>eN(q(e)),t),listAgents:(e,t,n)=>eM(e,{operation:"agents.list",capability:"agents:read",targetKind:"agent"},e=>eN(O(e,{cursor:t.cursor,limit:C(t.limit)})),n),getAgent:(e,t,n)=>eM(e,{operation:"agents.read",capability:"agents:read",targetKind:"agent",targetRef:t,agentId:t},e=>eN(M(e,t)),n),listSessions:(e,t,n,i)=>eM(e,{operation:"sessions.list",capability:"sessions:read",targetKind:"agent",targetRef:t,agentId:t},async e=>(await L(e,t),eN(K(e,t,{cursor:n.cursor,limit:C(n.limit),status:n.status}))),i),getSession:(e,t,n,i)=>eM(e,{operation:"sessions.read",capability:"sessions:read",targetKind:"session",targetRef:n,agentId:t},async e=>(await L(e,t),eN(F(e,t,n))),i),listConversations:(e,t,n,i)=>eM(e,{operation:"conversations.list",capability:"conversations:read",targetKind:"agent",targetRef:t,agentId:t},e=>eN(H(e,t,{cursor:n.cursor,limit:C(n.limit)})),i),getConversation:(e,t,n,i,r)=>eM(e,{operation:"conversations.read",capability:"conversations:read",targetKind:"conversation",targetRef:n,agentId:t},e=>eN(j(e,t,n,{cursor:i.cursor,limit:C(i.limit,R.messagesDefault,R.messagesMax)})),r),sendSessionMessage:(e,t,n,i,r)=>eM(e,{operation:"sessions.message",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,a)=>{t.length<=200&&(r.agentId=eL(t));let{accepted:s}=en(e,t,et(await n(),i),e=>{r.agentId=e.source_agent_id,a()});return eN(s,s.replayed?200:202)},r),listExchanges:(e,t,n)=>eM(e,{operation:"exchanges.list",capability:"exchanges:read",targetKind:"exchange"},e=>eN(ec(e,{cursor:t.cursor,limit:C(t.limit)})),n),createExchange:(e,t,n,i)=>eM(e,{operation:"exchanges.create",capability:"exchanges:create",targetKind:"session"},async(e,i,r)=>{let a,s,o=await t();Object.assign(i,"string"!=typeof(s=(a=o&&"object"==typeof o?o.source:void 0)&&"object"==typeof a?a.session_ref:void 0)||0===s.length?{}:{targetRef:s,agentId:s.length<=200?eL(s):null});let{exchange:d,created:c}=e_(e,eg(o,n),e=>{i.kind="exchange",i.targetRef=e.id,i.agentId=e.source_agent_id,r()});return eN({exchange:d,replayed:!c},c?201:200)},i),getExchange:(e,t,n)=>eM(e,{operation:"exchanges.read",capability:"exchanges:read",targetKind:"exchange",targetRef:t},(e,n)=>{n.agentId=eF(t);let i=el(e,t);return n.agentId=i.source.agent_id,eN(i)},n),cancelExchange:(e,t,n,i)=>eM(e,{operation:"exchanges.cancel",capability:"exchanges:create",targetKind:"exchange",targetRef:t},async(e,i,r)=>{i.agentId=eF(t);let a=await n();return eN(await ef(e,t,a,e=>{i.agentId=e.source_agent_id,r()}))},i),messageAgent:(e,t,n,i,r)=>eM(e,{operation:"agents.message",capability:"sessions:message",targetKind:"agent",targetRef:t,agentId:t},async(e,r,a)=>{let s=ew(await n(),i),{body:o}=await eb(e,t,s,eK(r,a));return eN(o,o.replayed?200:202)},r),pinSession:(e,t,n,i,r)=>eM(e,{operation:"pins.create",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,a)=>{let s=eE(await n(),i),o=await eS(e,t,s,eK(r,a));return eN(o,o.replayed?200:201)},r),readPin:(e,t,n)=>eM(e,{operation:"pins.read",capability:"sessions:message",targetKind:"session"},async(e,n)=>eN(await eR(e,t,eK(n,()=>{}))),n),sendToPin:(e,t,n,i,r)=>eM(e,{operation:"pins.send",capability:"sessions:message",targetKind:"session"},async(e,r,a)=>{let s=ew(await n(),i),{body:o}=await eA(e,t,s,eK(r,a));return eN(o,o.replayed?200:202)},r),detachPin:(e,t,n)=>eM(e,{operation:"pins.detach",capability:"sessions:message",targetKind:"session"},(e,n,i)=>eN(eI(e,t,eK(n,i))),n)};function eG(e){let t=new URL(e.url).searchParams;return{cursor:t.get("cursor"),limit:t.get("limit"),get:e=>t.get(e)}}e.s(["handleCancelExchange",0,function(e,t){return eP(e,n=>eD.cancelExchange(n,t,async()=>ep(await eT(e))))},"handleCreateExchange",0,function(e){return eP(e,t=>eD.createExchange(t,()=>eC(e),e.headers.get("idempotency-key")))},"handleDetachPin",0,function(e,t){return eP(e,e=>eD.detachPin(e,t))},"handleGetAgent",0,function(e,t){return eP(e,e=>eD.getAgent(e,t))},"handleGetCapabilities",0,function(e){return eP(e,e=>eD.capabilities(e))},"handleGetConversation",0,function(e,t,n){return eP(e,i=>eD.getConversation(i,t,n,eG(e)))},"handleGetExchange",0,function(e,t){return eP(e,e=>eD.getExchange(e,t))},"handleGetSession",0,function(e,t,n){return eP(e,e=>eD.getSession(e,t,n))},"handleListAgents",0,function(e){return eP(e,t=>eD.listAgents(t,eG(e)))},"handleListConversations",0,function(e,t){return eP(e,n=>eD.listConversations(n,t,eG(e)))},"handleListExchanges",0,function(e){return eP(e,t=>eD.listExchanges(t,eG(e)))},"handleListSessions",0,function(e,t){let n=eG(e);return eP(e,e=>eD.listSessions(e,t,{cursor:n.cursor,limit:n.limit,status:n.get("status")}))},"handleMessageAgent",0,function(e,t){return eP(e,n=>eD.messageAgent(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handlePinSession",0,function(e,t){return eP(e,n=>eD.pinSession(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handleReadPin",0,function(e,t){return eP(e,e=>eD.readPin(e,t))},"handleSendSessionMessage",0,function(e,t){return eP(e,n=>eD.sendSessionMessage(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handleSendToPin",0,function(e,t){return eP(e,n=>eD.sendToPin(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"serviceOperations",0,eD],69936)}];
23
+ `).get(d.kind,d.id,o.id),s=n?.origin_conversation_id??i?.origin_conversation_id??ee(d,o.agent_id,e);return{input:{requester:d,serviceGrant:!0,idempotencyKey:c,mode:"ask",originConversationId:s,sourceAgentId:o.agent_id,sessionRef:o.id,instruction:r.content,now:e},afterCreate:n=>{t.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run((0,a.randomUUID)(),n.origin_conversation_id,"user",d.id,d.kind,n.source_request_id,r.content,e)}}},s),g=(0,i.dispatchExchange)(l.id),p=l.source_request_id?t.default.prepare("SELECT state FROM work_requests WHERE id = ?").get(l.source_request_id):void 0,h=t.default.prepare("SELECT id FROM messages WHERE conversation_id = ? AND request_id = ? AND sender_kind = ? ORDER BY rowid ASC LIMIT 1").get(l.origin_conversation_id,l.source_request_id,d.kind);return{accepted:{session_ref:o.id,agent_id:o.agent_id,exchange_id:l.id,request_id:l.source_request_id,conversation_id:l.origin_conversation_id,message_id:h?.id??null,state:p?(0,i.apiStateOf)(p.state):"accepted",replayed:!u},dispatched:g}}function es(e,t,n){return t.requester_kind===e.principal.kind&&t.requester_id===e.principal.id&&I(e,t.source_agent_id,n)&&(null===t.destination_agent_id||I(e,t.destination_agent_id,n))}function ea(e,t,n){let r=i.exchanges.get(t);if(!r)throw v.exchange();if(!es(e,r,n))throw E("exchange");return r}let eo=e=>e.idempotency_key.startsWith(_.MESSAGE_KEY_PREFIX)?"session_message":"exchange";function ed(e,t){let n=t.idempotency_key.startsWith(_.MESSAGE_KEY_PREFIX)?t.idempotency_key.slice(_.MESSAGE_KEY_PREFIX.length):t.idempotency_key.startsWith(_.EXCHANGE_KEY_PREFIX)?t.idempotency_key.slice(_.EXCHANGE_KEY_PREFIX.length):t.idempotency_key;return(0,g.serviceRedactor)().deep({...e,kind:eo(t),idempotency_key:n})}function ec(e){return{id:e.id,kind:eo(e),mode:e.mode,state:e.state,source:{agent_id:e.source_agent_id,session_ref:e.source_binding_id},destination:e.destination_agent_id?{agent_id:e.destination_agent_id,session_ref:e.destination_binding_id}:null,failure:"failed"===e.state?{code:e.failure_code??"failed"}:null,created_at:e.created_at,updated_at:e.updated_at,terminal_at:e.terminal_at}}function el(e,t){let n=i.exchanges.require(t);return es(e,n,"exchanges:read")?ed((0,i.getExchangeView)(t),n):ec(n)}function eu(e,n){let i=t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ?").all(e.principal.kind,e.principal.id).filter(t=>es(e,t,"exchanges:read")).map(ec);return N(`exchanges:${e.principal.id}`,i,e=>({at:e.updated_at,tie:e.created_at,id:e.id}),n.cursor,n.limit)}function e_(e,t){let n=ea(e,t,"exchanges:read");return ed((0,i.getExchangeView)(n.id),n)}let eg=["exchange_id","parent_exchange_id"];function ep(e,t){if(!U(e))throw new w("invalid_request","The body must be a JSON object.");if(eg.some(t=>t in e))throw new w("recursive_exchange","An exchange cannot be started from another exchange.");if(Y(e,["mode","idempotency_key","origin_conversation_id","source","destination","instruction"],""),"ask"!==e.mode&&"continue"!==e.mode)throw new w("invalid_request",'mode must be "ask" or "continue".');if(!U(e.source))throw new w("invalid_request","source must be one object { session_ref, agent_id? }.");Y(e.source,["session_ref","agent_id"],"source.");let n=null;if(void 0!==e.destination&&null!==e.destination){if(!U(e.destination))throw new w("destination_invalid","destination must be one object { agent_id, conversation_id? }.");Y(e.destination,["agent_id","conversation_id"],"destination."),n=e.destination}let i=(e,t)=>null==e?null:z(e,t,200);return{mode:e.mode,idempotencyKey:Q(e,t),originConversationId:i(e.origin_conversation_id,"origin_conversation_id"),sourceAgentId:i(e.source.agent_id,"source.agent_id"),sessionRef:z(e.source.session_ref,"source.session_ref",200),destinationAgentId:n?i(n.agent_id,"destination.agent_id"):null,destinationConversationId:n?i(n.conversation_id,"destination.conversation_id"):null,instruction:z(e.instruction,"instruction",c.EXCHANGE_LIMITS.instructionChars)}}function eh(e,n,r){let s=et(n.sessionRef);if(!s||null!==n.sourceAgentId&&n.sourceAgentId!==s.agent_id)throw v.session();if(!I(e,s.agent_id,"exchanges:create"))throw E("session");if("ask"===n.mode&&(null!==n.destinationAgentId||null!==n.destinationConversationId))throw new w("destination_invalid","An Ask returns to the origin conversation and takes no destination.");if("continue"===n.mode){if(null===n.destinationAgentId)throw new w("destination_invalid","A Continue names destination.agent_id.");if(!t.bots.getById(n.destinationAgentId))throw v.agent();if(!I(e,n.destinationAgentId,"exchanges:create"))throw E("agent")}let a=e.principal,o=`${_.EXCHANGE_KEY_PREFIX}${n.idempotencyKey}`,{exchange:d,created:c}=en(()=>{let e=Date.now(),t=Z(a,o),i=n.originConversationId??t?.origin_conversation_id??ee(a,s.agent_id,e),r="continue"!==n.mode?null:n.destinationConversationId??t?.destination_conversation_id??ee(a,n.destinationAgentId,e);return{input:{requester:a,serviceGrant:!0,idempotencyKey:o,mode:n.mode,originConversationId:i,sourceAgentId:s.agent_id,sessionRef:s.id,destinationAgentId:n.destinationAgentId,destinationConversationId:r,instruction:n.instruction,now:e}}},r),l=(0,i.dispatchExchange)(d.id);return{exchange:el(e,d.id),created:c,dispatched:l}}function ef(e){try{return(0,u.cancelReasonFromBody)(e)}catch(e){if(e instanceof u.ExchangeError)throw S(e);throw e}}async function em(e,t,n,r){let s=ea(e,t,"exchanges:create");try{let{replayed:t}=await (0,i.cancelExchangeCommand)(s.id,e.principal,n,r);return{exchange:el(e,s.id),replayed:t}}catch(e){if(e instanceof u.ExchangeError)throw S(e);throw e}}let ey=e=>"resume"===e?"sessions:resume":"sessions:message";function ew(e){if(e instanceof r.PinError){if("session_not_found"===e.code)throw v.session();if("agent_not_found"===e.code)throw v.agent();if("pin_not_found"===e.code)throw v.pin();if("conversation_not_found"===e.code)throw v.conversation();throw new w(e.code,e.message)}if(e instanceof u.ExchangeError)throw S(e);throw e}function ev(e,t){let n;try{n=(0,r.requirePin)(e.principal,t)}catch(e){ew(e)}if(!I(e,n.agent_id,ey(n.action)))throw E("pin");return n}function eE(e){return(0,g.serviceRedactor)().deep((0,r.pinView)(e))}function eS(e,t){return ei(e,t)}function eb(e,t){if(!U(e))throw new w("invalid_request","The body must be a JSON object.");if(Y(e,["action","approve_write","replace_pin_ref","idempotency_key"],""),"ask"!==e.action&&"resume"!==e.action)throw new w("invalid_request",'action must be "ask" or "resume".');if(void 0!==e.approve_write&&"boolean"!=typeof e.approve_write)throw new w("invalid_request","approve_write must be true or false.");return{action:e.action,approveWrite:!0===e.approve_write,replacePinRef:void 0===e.replace_pin_ref||null===e.replace_pin_ref?null:z(e.replace_pin_ref,"replace_pin_ref",200),idempotencyKey:Q(e,t)}}async function eR(e,t,n,i){k(e,t,"sessions:message");try{let s=await (0,r.messageAgent)({requester:e.principal,agentId:t,content:n.content,idempotencyKey:n.idempotencyKey,mayStart:I(e,t,"sessions:start"),onResolved:e=>i.onTarget({agentId:e.agentId,sessionRef:e.sessionRef,capability:"started"===e.resolution?"sessions:start":"sessions:message",action:"started"===e.resolution?"agents.message.start":"agents.message"}),onCommit:()=>i.onCommit()});return{body:{pin:eE(s.pin),turn:(0,g.serviceRedactor)().deep(s.turn),resolution:s.resolution,replayed:s.replayed},settled:s.settled}}catch(e){ew(e)}}async function eI(e,t,n,i){let s=(0,r.sessionOwner)(t);if(!s)throw v.session();let a=ey(n.action);if(i.onTarget({agentId:s,sessionRef:t,capability:a,action:"resume"===n.action?"pins.resume":"pins.ask"}),!I(e,s,a))throw E("session");n.replacePinRef&&ev(e,n.replacePinRef);try{let{pin:s,created:a,replaced:o}=await (0,r.createPin)({requester:e.principal,sessionRef:t,action:n.action,approveWrite:n.approveWrite,idempotencyKey:n.idempotencyKey,replacePinRef:n.replacePinRef,onCommit:()=>i.onCommit()});return{pin:eE(s),replaced_pin_ref:o?.id??null,replayed:!a}}catch(e){ew(e)}}async function ek(e,t,n,i){let s=ev(e,t);i.onTarget({agentId:s.agent_id,sessionRef:s.session_ref,capability:ey(s.action),action:"pins.send"});try{let t=await (0,r.sendPinTurn)({requester:e.principal,pinRef:s.id,content:n.content,idempotencyKey:n.idempotencyKey,onCommit:()=>i.onCommit()});return{body:{pin:eE(t.pin),turn:(0,g.serviceRedactor)().deep(t.turn),replayed:t.replayed},settled:t.settled}}catch(e){ew(e)}}async function ex(e,t,n){let i=ev(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:ey(i.action),action:"pins.read"});try{let{pin:t,turns:n}=await (0,r.readPin)(e.principal,i.id);return{pin:eE(t),turns:(0,g.serviceRedactor)().deep(n)}}catch(e){ew(e)}}function eA(e,t,n){let i=ev(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:ey(i.action),action:"pins.detach"});try{let{pin:t,replayed:s}=(0,r.detachPin)(e.principal,i.id,{onCommit:()=>n.onCommit()});return{pin:eE(t),replayed:s}}catch(e){ew(e)}}let eC=["provider_session_id","external_session_id","claude_session_id","codex_thread_id","cursor_chat_id","thread_id","chat_id","cwd","workspace","latest","most_recent","title","title_match","active_since"],eT=[...new Set([...J,...eC])];function eq(e,t,n){for(let i of Object.keys(e))if(!t.includes(i)){if(eT.includes(i))throw new w("authority_not_allowed",`${n}${i} cannot select or describe a session; name it by session_ref only.`);throw new w("invalid_request",`${n}${i} is not a field of this request.`)}}function eN(e,t){if(null==e)return null;if("number"!=typeof e||!Number.isInteger(e))throw new w("invalid_request",`${t} must be an integer.`);return e}function eO(e,t){if(!U(e))throw new w("invalid_request","The body must be a JSON object.");if(eq(e,["audience","ttl_seconds","max_turns","agent_id","idempotency_key"],""),!U(e.audience))throw new w("invalid_request",'audience must be one object { kind: "slack", team_id, channel_id }.');if(eq(e.audience,["kind","team_id","channel_id"],"audience."),!(0,f.isSlackAudience)(e.audience))throw new w("invalid_request",'audience must be { kind: "slack", team_id: "T…", channel_id: "C…" } with exact Slack ids.');return{audience:{kind:"slack",team_id:e.audience.team_id,channel_id:e.audience.channel_id},ttlSeconds:eN(e.ttl_seconds,"ttl_seconds"),maxTurns:eN(e.max_turns,"max_turns"),agentId:void 0===e.agent_id||null===e.agent_id?null:z(e.agent_id,"agent_id",200),idempotencyKey:Q(e,t)}}function eP(e){let t;if(""!==e.trim()){try{t=JSON.parse(e)}catch{throw new w("invalid_request","The body must be empty or a JSON object.")}if(!U(t))throw new w("invalid_request","The body must be empty or a JSON object.");eq(t,["idempotency_key"],""),void 0!==t.idempotency_key&&z(t.idempotency_key,"idempotency_key",160)}}let eL=["session_ref","state","cursor","limit"],eK=["active","expired","revoked"];function eM(e){for(let t of e)if(!eL.includes(t)){if(eT.includes(t))throw new w("authority_not_allowed",`${t} cannot select a session; filter by session_ref only.`);throw new w("invalid_request",`${t} is not a parameter of this list.`)}}function e$(e){if(e instanceof f.ShareError){if("session_not_found"===e.code)throw v.session();if("share_not_found"===e.code)throw v.share();throw new w(e.code,e.message)}ew(e)}function eD(e,t){let n=(0,f.shareRow)(t);if(!n)throw v.share();if(!(n.creator_kind===e.principal.kind&&n.creator_id===e.principal.id&&I(e,n.agent_id,"shares:create")))throw E("share");return n}function eF(e,t=(0,g.serviceRedactor)()){return t.deep((0,f.shareView)(e))}async function eB(e,t,n,i){let s=(0,r.sessionOwner)(t);if(i.onTarget({agentId:s,sessionRef:t}),!s)throw v.session();if(!I(e,s,"shares:create"))throw E("session");if(null!==n.agentId&&n.agentId!==s)throw v.session();try{let{share:r,created:s}=await (0,f.createShare)({creator:e.principal,sessionRef:t,agentId:n.agentId,audience:n.audience,ttlSeconds:n.ttlSeconds,maxTurns:n.maxTurns,idempotencyKey:n.idempotencyKey,createdVia:"session_ref",onCommit:()=>i.onCommit()});return{share:eF(r),replayed:!s}}catch(e){e$(e)}}function eG(e,t,n){let i=eD(e,t);return n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref}),{share:eF(i)}}function eH(e,t){if(null!==t.sessionRef&&(""===t.sessionRef.trim()||t.sessionRef.length>200))throw new w("invalid_request","session_ref must be one session reference.");if(null!==t.state&&!eK.includes(t.state))throw new w("invalid_request","state must be active, expired, or revoked.");let n=(0,g.serviceRedactor)(),i=(0,f.sharesCreatedBy)(e.principal,{sessionRef:t.sessionRef}).filter(t=>I(e,t.agent_id,"shares:create")).map(e=>eF(e,n)).filter(e=>null===t.state||e.state===t.state);return N(`shares:${e.principal.id}:${t.sessionRef??""}:${t.state??""}`,i,e=>({at:e.created_at,tie:e.created_at,id:e.share_ref}),t.cursor,t.limit)}function eW(e,t,n){let i=eD(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref});try{let{share:e,replayed:t}=(0,f.revokeShare)(i.id,{onCommit:()=>n.onCommit()});return{share:eF(e),replayed:t}}catch(e){e$(e)}}let ej=["audience","ttl_seconds","max_turns","agent_id","idempotency_key"];function eX(e,t){if(U(e)&&Object.prototype.hasOwnProperty.call(e,"session_ref"))throw new w("invalid_request","Share-current takes no session_ref: its session is the one this launch is bound to. To share another session, use its session_ref with create-share.");return U(e)&&eq(e,ej,""),eO(e,t)}function eV(e){if(e.kind!==s.SESSION_CONTEXT_PRINCIPAL.kind||e.id!==s.SESSION_CONTEXT_PRINCIPAL.id)throw new w("invalid_request","Share-current is only available inside a Botmancers-launched session, authenticated by its session context, not a service token. Pass session_ref to create-share instead.")}function eJ(e){return new w("session_context_required","This caller has no exact session context; share a session explicitly by its session_ref (botmancers_list_sessions).",{reason:e.reason})}async function eU(e,t,n,i){if(i.onTarget({agentId:t.agentId,sessionRef:t.sessionRef}),null!==n.agentId&&n.agentId!==t.agentId)throw v.session();try{var r,s;let{share:o,created:d}=await (0,f.createShare)({creator:e.principal,sessionRef:t.sessionRef,agentId:t.agentId,audience:n.audience,ttlSeconds:n.ttlSeconds,maxTurns:n.maxTurns,idempotencyKey:(r=t.sessionRef,s=n.idempotencyKey,`current:${(0,a.createHash)("sha256").update(r).digest("hex").slice(0,24)}:${s}`),createdVia:"current_session",onCommit:()=>i.onCommit()});return{share:eF(o),replayed:!d}}catch(e){e$(e)}}e.s(["AUTHORITY_FIELDS",0,J,"MESSAGE_CONTENT_LIMIT",0,B,"PAGE_LIMITS",0,x,"SHARE_SELECTOR_FIELDS",0,eC,"ServiceApiError",0,w,"cancelServiceExchange",0,em,"capabilitiesView",0,O,"checkShareListParams",0,eM,"createCurrentSessionShare",0,eU,"createServiceExchange",0,eh,"createServiceShare",0,eB,"detachServicePin",0,eA,"getServiceAgent",0,K,"getServiceConversation",0,V,"getServiceExchange",0,e_,"getServiceSession",0,F,"getServiceShare",0,eG,"holds",0,I,"listServiceAgents",0,L,"listServiceConversations",0,X,"listServiceExchanges",0,eu,"listServiceSessions",0,D,"listServiceShares",0,eH,"messageServiceAgent",0,eR,"parseAgentMessageBody",0,eS,"parseCancelBody",0,ef,"parseLimit",0,q,"parsePinBody",0,eb,"parseServiceExchangeBody",0,ep,"parseSessionMessageBody",0,ei,"parseShareCreateBody",0,eO,"parseShareCurrentBody",0,eX,"parseShareRevokeBody",0,eP,"pinServiceSession",0,eI,"readServicePin",0,ex,"requireShareCurrentCaller",0,eV,"revokeServiceShare",0,eW,"sendServicePinMessage",0,ek,"sendServiceSessionMessage",0,er,"serviceContext",0,R,"sessionContextError",0,eJ,"warmServiceAgent",0,$],9501);let eY="BOTMANCERS_SERVICE_API_CALLS_PER_MINUTE",ez=new Map;async function eQ(e){let t=await eZ(e);try{return JSON.parse(t)}catch{throw new w("invalid_request","The body must be a JSON object.")}}async function eZ(e){let t=new w("payload_too_large","The request body is too large."),n=e.headers.get("content-length");if(null!==n&&!(/^\d+$/.test(n.trim())&&65536>=Number(n)))throw t;if(!e.body)return"";let i=e.body.getReader(),r=[],s=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if((s+=n.byteLength)>65536)throw await i.cancel().catch(()=>{}),t;r.push(n)}return Buffer.concat(r).toString("utf8")}function e0(e,t,n,i={}){return Response.json({error:{code:t,message:n}},{status:e,headers:i})}let e4=(e,t=200)=>({status:t,body:e});function e2(e,t,n,i={},r,s,a){return{status:e,body:{error:{code:t,message:n,...r?{fields:r}:{},...a?{reason:a}:{},...s?{recovery:s}:{}}},headers:i}}async function e1(e,n,i,r){let a,o,d={kind:n.targetKind,targetRef:n.targetRef??null,agentId:n.agentId??null},c=(i,r)=>t.serviceAudit.append({principal:e,operation:d.operation??n.operation,capability:d.capability??n.capability,targetKind:d.kind,targetRef:d.targetRef,agentId:d.agentId,outcome:i,code:r}),l=!1,u=null;try{if("service"!==e.kind)throw new w("principal_not_allowed","The granted service API accepts only service principals.");if(e.id===s.SESSION_CONTEXT_SERVICE_ID&&n.capability!==e9)throw new w("principal_not_allowed","A session context can only share its own session (share-current).");let t=function(e,t=Date.now()){let n=`${e.kind}:${e.id}`,i=(ez.get(n)??[]).filter(e=>e>t-6e4),r=function(){let e=process.env[eY];if(void 0===e||""===e.trim())return 120;let t=Number(e.trim());return Number.isInteger(t)&&t>0?t:(console.error(`${eY} must be a positive integer; using 120.`),120)}();return i.length>=r?(ez.set(n,i),Math.max(1,Math.ceil((i[i.length-r]+6e4-t)/1e3))):(i.push(t),ez.set(n,i),null)}(e);if(null!==t)u="rate_limited",o="denied",a=e2(429,"rate_limited","Too many calls; retry later.",{"Retry-After":String(t)});else{let t=R(e);r?.(t),a=await i(t,d,()=>{c("allowed",null),l=!0}),o="allowed"}}catch(e){e instanceof w?(o=e.denied?"denied":"rejected",u=e.notGranted?"not_granted":e.code,a=e2(e.status,e.code,e.message,{},e.fields,e.recovery,e.reason)):(console.error("Service API error:",e instanceof Error?e.message:"unknown error"),o="error",u="internal_error",a=e2(500,"internal_error","The request could not be processed."))}if(l&&"allowed"===o)return a;try{c(o,u)}catch(e){return console.error("Service audit append failed:",e instanceof Error?e.message:"unknown error"),e2(500,"internal_error","The request could not be processed.")}return a}let e9="shares:current";async function e3(e,t){let r;try{r=await (0,n.authenticate)(e)}catch(e){if(e instanceof i.AgentApiError)return e0(e.status,e.code,e.message);return console.error("Service API authentication error:",e instanceof Error?e.message:"unknown error"),e0(500,"internal_error","The request could not be processed.")}let s=await t(r);return Response.json(s.body,{status:s.status,headers:s.headers??{}})}function e6(e){let n=t.default.prepare("SELECT agent_id FROM session_bindings WHERE id = ?").get(e);return n?.agent_id??null}function e5(e,t){return{onTarget:t=>{e.kind=t.sessionRef?"session":"agent",e.targetRef=t.sessionRef??t.agentId,e.agentId=t.agentId,e.capability=t.capability,e.operation=t.action},onCommit:t}}function e8(e,t,n){return{onTarget:t=>{n&&(e.targetRef=t.sessionRef),e.agentId=t.agentId},onCommit:t}}function e7(e){if(e.length>200)return null;let n=t.default.prepare("SELECT source_agent_id FROM session_exchanges WHERE id = ?").get(e);return n?.source_agent_id??null}let te={capabilities:(e,t)=>e1(e,{operation:"capabilities.read",capability:"discovery",targetKind:"grants"},e=>e4(O(e)),t),listAgents:(e,t,n)=>e1(e,{operation:"agents.list",capability:"agents:read",targetKind:"agent"},e=>e4(L(e,{cursor:t.cursor,limit:q(t.limit)})),n),getAgent:(e,t,n)=>e1(e,{operation:"agents.read",capability:"agents:read",targetKind:"agent",targetRef:t,agentId:t},e=>e4(K(e,t)),n),listSessions:(e,t,n,i)=>e1(e,{operation:"sessions.list",capability:"sessions:read",targetKind:"agent",targetRef:t,agentId:t},async e=>(await $(e,t),e4(D(e,t,{cursor:n.cursor,limit:q(n.limit),status:n.status}))),i),getSession:(e,t,n,i)=>e1(e,{operation:"sessions.read",capability:"sessions:read",targetKind:"session",targetRef:n,agentId:t},async e=>(await $(e,t),e4(F(e,t,n))),i),listConversations:(e,t,n,i)=>e1(e,{operation:"conversations.list",capability:"conversations:read",targetKind:"agent",targetRef:t,agentId:t},e=>e4(X(e,t,{cursor:n.cursor,limit:q(n.limit)})),i),getConversation:(e,t,n,i,r)=>e1(e,{operation:"conversations.read",capability:"conversations:read",targetKind:"conversation",targetRef:n,agentId:t},e=>e4(V(e,t,n,{cursor:i.cursor,limit:q(i.limit,x.messagesDefault,x.messagesMax)})),r),sendSessionMessage:(e,t,n,i,r)=>e1(e,{operation:"sessions.message",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,s)=>{t.length<=200&&(r.agentId=e6(t));let{accepted:a}=er(e,t,ei(await n(),i),e=>{r.agentId=e.source_agent_id,s()});return e4(a,a.replayed?200:202)},r),listExchanges:(e,t,n)=>e1(e,{operation:"exchanges.list",capability:"exchanges:read",targetKind:"exchange"},e=>e4(eu(e,{cursor:t.cursor,limit:q(t.limit)})),n),createExchange:(e,t,n,i)=>e1(e,{operation:"exchanges.create",capability:"exchanges:create",targetKind:"session"},async(e,i,r)=>{let s,a,o=await t();Object.assign(i,"string"!=typeof(a=(s=o&&"object"==typeof o?o.source:void 0)&&"object"==typeof s?s.session_ref:void 0)||0===a.length?{}:{targetRef:a,agentId:a.length<=200?e6(a):null});let{exchange:d,created:c}=eh(e,ep(o,n),e=>{i.kind="exchange",i.targetRef=e.id,i.agentId=e.source_agent_id,r()});return e4({exchange:d,replayed:!c},c?201:200)},i),getExchange:(e,t,n)=>e1(e,{operation:"exchanges.read",capability:"exchanges:read",targetKind:"exchange",targetRef:t},(e,n)=>{n.agentId=e7(t);let i=e_(e,t);return n.agentId=i.source.agent_id,e4(i)},n),cancelExchange:(e,t,n,i)=>e1(e,{operation:"exchanges.cancel",capability:"exchanges:create",targetKind:"exchange",targetRef:t},async(e,i,r)=>{i.agentId=e7(t);let s=await n();return e4(await em(e,t,s,e=>{i.agentId=e.source_agent_id,r()}))},i),messageAgent:(e,t,n,i,r)=>e1(e,{operation:"agents.message",capability:"sessions:message",targetKind:"agent",targetRef:t,agentId:t},async(e,r,s)=>{let a=eS(await n(),i),{body:o}=await eR(e,t,a,e5(r,s));return e4(o,o.replayed?200:202)},r),pinSession:(e,t,n,i,r)=>e1(e,{operation:"pins.create",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,s)=>{let a=eb(await n(),i),o=await eI(e,t,a,e5(r,s));return e4(o,o.replayed?200:201)},r),readPin:(e,t,n)=>e1(e,{operation:"pins.read",capability:"sessions:message",targetKind:"session"},async(e,n)=>e4(await ex(e,t,e5(n,()=>{}))),n),sendToPin:(e,t,n,i,r)=>e1(e,{operation:"pins.send",capability:"sessions:message",targetKind:"session"},async(e,r,s)=>{let a=eS(await n(),i),{body:o}=await ek(e,t,a,e5(r,s));return e4(o,o.replayed?200:202)},r),detachPin:(e,t,n)=>e1(e,{operation:"pins.detach",capability:"sessions:message",targetKind:"session"},(e,n,i)=>e4(eA(e,t,e5(n,i))),n),createShare:(e,t,n,i,s)=>e1(e,{operation:"shares.create",capability:"shares:create",targetKind:"session",targetRef:t},async(e,s,a)=>{t.length<=200&&(s.agentId=(0,r.sessionOwner)(t));let o=eO(await n(),i),d=await eB(e,t,o,e8(s,a,!1));return e4(d,d.replayed?200:201)},s),getShare:(e,t,n)=>e1(e,{operation:"shares.read",capability:"shares:create",targetKind:"session",targetRef:t},(e,n)=>e4(eG(e,t,e8(n,()=>{},!1))),n),listShares:(e,t,n)=>e1(e,{operation:"shares.list",capability:"shares:create",targetKind:"session",targetRef:t.sessionRef},(e,n)=>(eM(t.names??[]),t.sessionRef&&t.sessionRef.length<=200&&(n.agentId=(0,r.sessionOwner)(t.sessionRef)),e4(eH(e,{cursor:t.cursor,limit:q(t.limit),sessionRef:t.sessionRef,state:t.state}))),n),revokeShare:(e,t,n,i)=>e1(e,{operation:"shares.revoke",capability:"shares:create",targetKind:"session",targetRef:t},async(e,i,r)=>(eP(await n()),e4(eW(e,t,e8(i,r,!1)))),i),shareCurrent:(e,t,n,i,r)=>e1(e,{operation:"shares.create",capability:e9,targetKind:"session"},async(e,r,a)=>{let o=eX(await n(),i);eV(e.principal);let d=(0,s.resolveSessionContext)(t);if(!d.ok)throw eJ(d);let c=await eU(e,d,o,e8(r,a,!0));return e4(c,c.replayed?200:201)},r)};function tt(e){let t=new URL(e.url).searchParams;return{cursor:t.get("cursor"),limit:t.get("limit"),get:e=>t.get(e),names:[...new Set(t.keys())]}}async function tn(e){let t=(0,s.sessionContextHeader)(e.headers),n=e.headers.get("idempotency-key"),i=i=>te.shareCurrent(i,t,()=>eQ(e),n);if(null===e.headers.get("authorization")){let e=await i(s.SESSION_CONTEXT_PRINCIPAL);return Response.json(e.body,{status:e.status,headers:e.headers??{}})}return e3(e,i)}e.s(["handleCancelExchange",0,function(e,t){return e3(e,n=>te.cancelExchange(n,t,async()=>ef(await eZ(e))))},"handleCreateExchange",0,function(e){return e3(e,t=>te.createExchange(t,()=>eQ(e),e.headers.get("idempotency-key")))},"handleCreateShare",0,function(e,t){return e3(e,n=>te.createShare(n,t,()=>eQ(e),e.headers.get("idempotency-key")))},"handleDetachPin",0,function(e,t){return e3(e,e=>te.detachPin(e,t))},"handleGetAgent",0,function(e,t){return e3(e,e=>te.getAgent(e,t))},"handleGetCapabilities",0,function(e){return e3(e,e=>te.capabilities(e))},"handleGetConversation",0,function(e,t,n){return e3(e,i=>te.getConversation(i,t,n,tt(e)))},"handleGetExchange",0,function(e,t){return e3(e,e=>te.getExchange(e,t))},"handleGetSession",0,function(e,t,n){return e3(e,e=>te.getSession(e,t,n))},"handleGetShare",0,function(e,t){return e3(e,e=>te.getShare(e,t))},"handleListAgents",0,function(e){return e3(e,t=>te.listAgents(t,tt(e)))},"handleListConversations",0,function(e,t){return e3(e,n=>te.listConversations(n,t,tt(e)))},"handleListExchanges",0,function(e){return e3(e,t=>te.listExchanges(t,tt(e)))},"handleListSessions",0,function(e,t){let n=tt(e);return e3(e,e=>te.listSessions(e,t,{cursor:n.cursor,limit:n.limit,status:n.get("status")}))},"handleListShares",0,function(e){let t=tt(e);return e3(e,e=>te.listShares(e,{cursor:t.cursor,limit:t.limit,sessionRef:t.get("session_ref"),state:t.get("state"),names:t.names}))},"handleMessageAgent",0,function(e,t){return e3(e,n=>te.messageAgent(n,t,()=>eQ(e),e.headers.get("idempotency-key")))},"handlePinSession",0,function(e,t){return e3(e,n=>te.pinSession(n,t,()=>eQ(e),e.headers.get("idempotency-key")))},"handleReadPin",0,function(e,t){return e3(e,e=>te.readPin(e,t))},"handleRevokeShare",0,function(e,t){return e3(e,n=>te.revokeShare(n,t,()=>eZ(e)))},"handleSendSessionMessage",0,function(e,t){return e3(e,n=>te.sendSessionMessage(n,t,()=>eQ(e),e.headers.get("idempotency-key")))},"handleSendToPin",0,function(e,t){return e3(e,n=>te.sendToPin(n,t,()=>eQ(e),e.headers.get("idempotency-key")))},"handleShareCurrent",0,tn,"serviceOperations",0,te],69936)}];
24
24
 
25
25
  //# sourceMappingURL=lib_service-api-http_ts_0xzqhny._.js.map
@@ -0,0 +1,63 @@
1
+ module.exports=[15050,e=>{"use strict";var t=e.i(99904),r=e.i(54799),a=e.i(72414),s=e.i(89443);let n="The shared session could not answer this question.",i=Object.freeze({share_expired:"This shared session is no longer available (the share expired).",share_revoked:"This shared session is no longer available (the owner revoked the share).",share_turn_in_progress:"A question is still being answered; ask again when it finishes.",share_turn_limit:"This share has used all of its questions.",source_session_busy:"The session is busy right now; ask again shortly."});t.default.exec(`
2
+ CREATE TABLE IF NOT EXISTS slack_share_threads (
3
+ share_ref TEXT PRIMARY KEY,
4
+ session_ref TEXT NOT NULL,
5
+ team_id TEXT NOT NULL,
6
+ channel_id TEXT NOT NULL,
7
+ thread_ts TEXT NOT NULL,
8
+ created_at INTEGER NOT NULL,
9
+ UNIQUE (team_id, channel_id, thread_ts)
10
+ );
11
+ CREATE TABLE IF NOT EXISTS slack_deliveries (
12
+ envelope_id TEXT NOT NULL,
13
+ retry_attempt INTEGER NOT NULL,
14
+ retry_reason TEXT,
15
+ team_id TEXT,
16
+ event_id TEXT,
17
+ -- 1 on the one delivery that owns its event; NULL on every other one.
18
+ event_owner INTEGER CHECK (event_owner IS NULL OR event_owner = 1),
19
+ message_key TEXT,
20
+ share_ref TEXT,
21
+ disposition TEXT NOT NULL CHECK (disposition IN ('accepted', 'duplicate_event', 'duplicate_question', 'dropped')),
22
+ reason TEXT,
23
+ received_at INTEGER NOT NULL,
24
+ acked_at INTEGER,
25
+ PRIMARY KEY (envelope_id, retry_attempt),
26
+ UNIQUE (team_id, event_id, event_owner)
27
+ );
28
+ CREATE TABLE IF NOT EXISTS slack_questions (
29
+ team_id TEXT NOT NULL,
30
+ channel_id TEXT NOT NULL,
31
+ message_ts TEXT NOT NULL,
32
+ message_key TEXT NOT NULL UNIQUE,
33
+ thread_ts TEXT NOT NULL,
34
+ share_ref TEXT NOT NULL,
35
+ event_id TEXT NOT NULL,
36
+ -- Kept only while pending (needed to re-dispatch after a restart).
37
+ question TEXT,
38
+ state TEXT NOT NULL CHECK (state IN ('pending', 'dispatched', 'refused', 'replied')),
39
+ turn_ref TEXT,
40
+ code TEXT,
41
+ reply_ts TEXT,
42
+ created_at INTEGER NOT NULL,
43
+ updated_at INTEGER NOT NULL,
44
+ PRIMARY KEY (team_id, channel_id, message_ts)
45
+ );
46
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_slack_questions_turn ON slack_questions(share_ref, turn_ref) WHERE turn_ref IS NOT NULL;
47
+ CREATE INDEX IF NOT EXISTS idx_slack_questions_state ON slack_questions(state, created_at);
48
+ `);let o=/^[A-Z0-9]{2,32}$/,l=/^\d{1,12}\.\d{1,9}$/,d=/^[A-Za-z0-9._:-]{1,200}$/,c=/^[A-Za-z0-9]{1,64}$/,_=e=>"string"==typeof e?e:null;function u(e){return e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"")}function p(e,t){if(e.length<=t)return e;let r=t-1,a=e.charCodeAt(r-1);a>=55296&&a<=56319&&(r-=1);let s=e.lastIndexOf("&",r-1);return -1!==s&&s>=r-4&&e.indexOf(";",s)>=r&&(r=s),`${e.slice(0,r)}…`}function h(e){return t.default.prepare("SELECT * FROM slack_share_threads WHERE share_ref = ?").get(e)}function f(e){return t.default.prepare("SELECT * FROM slack_questions WHERE message_key = ?").get(e)}var y=e.i(90440),m=e.i(82554);class E extends Error{code;slackError;constructor(e,t,r=null){super(t),this.name="SlackTransportError",this.code=e,this.slackError=r}}let T=/^[a-z0-9_]{1,64}$/;function k(e){let t=e?.data,r=t&&"string"==typeof t.error?t.error:null;return r&&T.test(r)?r:null}function g(e){let t=[e.appToken,e.botToken].filter(e=>"string"==typeof e&&e.length>=8);return e=>t.reduce((e,t)=>e.split(t).join("[redacted]"),String(e)).replace(/\bx(?:app|ox[abpers])-[A-Za-z0-9-]+/g,"[redacted]")}async function w(e){let t;try{t=await e.auth.test()}catch(t){let e=k(t);throw new E("slack_auth_failed",`Slack auth.test failed${e?` (${e})`:""}.`,e)}if(!t?.ok||"string"!=typeof t.user_id||"string"!=typeof t.team_id)throw new E("slack_auth_failed","Slack auth.test returned no bot identity.","string"==typeof t?.error&&T.test(t.error)?t.error:null);return{user_id:t.user_id,team_id:t.team_id}}let v=/^xapp-[A-Za-z0-9-]{8,250}$/,N=/^xoxb-[A-Za-z0-9-]{8,250}$/,S=Symbol.for("botmancers.slack-runtime"),L=globalThis;function R(){return L[S]||(L[S]={status:{state:"stopped",reason:null,since:Date.now(),connections:0},relay:null,clients:null,stop:null,starting:null}),L[S]}function A(){return{...R().status}}async function I(){let e=R();return e.starting&&await e.starting.catch(()=>{}),e.stop&&await e.stop(),A()}async function O(e,S){let L,R=S.now??(()=>Date.now()),I=function(e=process.env){let t=(e.BOTMANCERS_SLACK_APP_TOKEN??"").trim(),r=(e.BOTMANCERS_SLACK_BOT_TOKEN??"").trim();if(!t&&!r)return{state:"disabled",reason:"slack_tokens_absent"};if(!t)return{state:"misconfigured",reason:"app_token_missing"};if(!r)return{state:"misconfigured",reason:"bot_token_missing"};if(!v.test(t))return{state:"misconfigured",reason:"app_token_invalid"};if(!N.test(r))return{state:"misconfigured",reason:"bot_token_invalid"};let a=(0,s.loadSessionSharesConfig)(e);return"absent"===a.state?{state:"misconfigured",reason:"share_config_absent"}:"invalid"===a.state?{state:"misconfigured",reason:"share_config_invalid"}:0===a.config.audiences.length?{state:"misconfigured",reason:"share_config_no_audience"}:{state:"ready",tokens:{appToken:t,botToken:r},teams:new Set(a.config.audiences.map(e=>e.team_id))}}(S.env??process.env),O="ready"===I.state?g(I.tokens):e=>e,U=e=>(S.log??(e=>console.log(e)))(O(e)),b=0,M=(t,r=null)=>{(e.status.state!==t||e.status.reason!==r)&&U(`Slack relay: ${t}${r?` (${r})`:""}`),e.status={state:t,reason:r,since:R(),connections:b}},C=e=>U(`Slack relay error: ${e instanceof Error?e.message:"unknown error"}`);if("ready"!==I.state)return M(I.state,I.reason),A();M("connecting");let D=(S.clients??(e=>(function(e,t={}){let r=function(e,t=e=>console.warn(e)){let r="slack",a=a=>(...s)=>t(e(`Slack ${r} ${a}: ${s.map(e=>e instanceof Error?e.message:String(e)).join(" ")}`).slice(0,500));return{debug:()=>{},info:()=>{},warn:a("warn"),error:a("error"),setLevel:()=>{},getLevel:()=>"warn",setName:e=>{r=e}}}(g(e),t.log),a=t.slackApiUrl?{slackApiUrl:t.slackApiUrl}:{};return{socket:new y.SocketModeClient({appToken:e.appToken,logger:r,autoReconnectEnabled:!0,...t.clientPingTimeoutMs?{clientPingTimeout:t.clientPingTimeoutMs}:{},...t.serverPingTimeoutMs?{serverPingTimeout:t.serverPingTimeoutMs}:{},clientOptions:{...a}}),web:new m.WebClient(e.botToken,{logger:r,timeout:15e3,retryConfig:{retries:2,factor:2,minTimeout:500,maxTimeout:4e3},...a})}})(e,{log:U,...S.clientOptions})))(I.tokens);try{L=await w(D.web)}catch(e){return C(e),M("failed","slack_auth_failed"),A()}if(!I.teams.has(L.team_id))return M("misconfigured","workspace_not_allowlisted"),A();let q=function(e,t={}){let{socket:r,web:a}=e,n=t.stopGraceMs??5e3,i=t.onError??(e=>console.error("Slack transport:",e instanceof Error?e.message:"unknown error")),o="idle",l=null,d=new Set;return{async start(e){if("idle"!==o)throw new E("started"===o?"slack_transport_started":"slack_transport_stopped","This Slack transport was already started.");o="started",l=t=>{if("started"!==o||t?.type!=="events_api")return;let r={envelope_id:t.envelope_id,type:t.type,accepts_response_payload:t.accepts_response_payload,retry_attempt:t.retry_num,retry_reason:t.retry_reason,payload:t.body},a=Promise.resolve().then(()=>e(r)).catch(i);d.add(a),a.finally(()=>d.delete(a))},r.on("slack_event",l);try{await r.start()}catch(t){r.off("slack_event",l),l=null,o="stopped",await r.disconnect().catch(()=>{});let e=k(t);throw new E("slack_connect_failed",`The Slack Socket Mode connection could not be opened${e?` (${e})`:""}.`,e)}},async ack(e){if("idle"===o||"stopped"===o)throw new E("slack_transport_stopped","The Slack transport is not running.");try{await r.send(e)}catch{throw new E("slack_ack_failed","The Socket Mode acknowledgement could not be sent (not connected).")}},async post(e){let t;if("stopped"===o)throw new E("slack_transport_stopped","The Slack transport is not running.");if("string"!=typeof e.text||e.text.length>s.SHARE_LIMITS.replyChars)throw new E("slack_post_too_long",`A Slack post is at most ${s.SHARE_LIMITS.replyChars} characters.`);try{t=await a.chat.postMessage({channel:e.channel,...null!==e.thread_ts?{thread_ts:e.thread_ts}:{},text:e.text,metadata:{event_type:e.metadata.event_type,event_payload:{...e.metadata.event_payload}},unfurl_links:!1,unfurl_media:!1})}catch(t){let e=k(t);throw new E("slack_post_failed",`Slack chat.postMessage failed${e?` (${e})`:""}.`,e)}if(!t?.ok||"string"!=typeof t.ts)throw new E("slack_post_failed","Slack chat.postMessage returned no message ts.","string"==typeof t?.error&&T.test(t.error)?t.error:null);return{ts:t.ts}},async stop(){if("stopped"===o||"stopping"===o)return;let e="started"===o;if(o="stopping",l&&r.off("slack_event",l),l=null,d.size>0){let e;await Promise.race([Promise.allSettled([...d]),new Promise(t=>{e=setTimeout(t,n)})]),clearTimeout(e)}o="stopped",e&&await r.disconnect().catch(i)}}}(D,{stopGraceMs:S.stopGraceMs,onError:C}),X=function(e){let{transport:y,botUserId:m}=e,E=e.now??(()=>Date.now()),T=e.onError??(e=>console.error("Slack relay:",e instanceof Error?e.message:"unknown error")),k=new Set,g=new Set,w=new Map,v=new Set;async function N(e){let r=h(e);if(r)return{thread:r,created:!1};let a=w.get(e);if(a)return a;let n=(async()=>{let r=(0,s.shareRow)(e);if(!r)throw new s.ShareError("share_not_found","No share with that reference.");let a=(0,s.shareState)(r);if("revoked"===a)throw new s.ShareError("share_revoked","This share was revoked.");if("expired"===a)throw new s.ShareError("share_expired","This share has expired.");let n={kind:"slack",team_id:r.audience_team_id,channel_id:r.audience_channel_id};if(!(0,s.audienceAllowed)(n))throw new s.ShareError("audience_not_allowed","That audience is not on the owner's share allowlist (session-shares.json).");let i=await y.post({channel:n.channel_id,thread_ts:null,text:"A coding-agent session was shared here (read-only). Reply in this thread to ask it a question.",metadata:{event_type:"botmancers_share",event_payload:{share_ref:r.id}}});if("string"!=typeof i?.ts||!l.test(i.ts))throw Error("The transport returned no message ts for the anchor.");return t.default.prepare("INSERT INTO slack_share_threads (share_ref, session_ref, team_id, channel_id, thread_ts, created_at) VALUES (?, ?, ?, ?, ?, ?)").run(r.id,r.session_ref,n.team_id,n.channel_id,i.ts,E()),{thread:h(r.id),created:!0}})();w.set(e,n);try{return await n}finally{w.delete(e)}}let S=t.default.transaction(e=>{var r,a,n;let i=e.delivery;if(t.default.prepare("SELECT 1 FROM slack_deliveries WHERE envelope_id = ? AND retry_attempt = ?").get(i.envelope_id,i.retry_attempt))return{kind:"duplicate_delivery"};let o=E(),l=(r,a)=>{t.default.prepare(`
49
+ INSERT INTO slack_deliveries (envelope_id, retry_attempt, retry_reason, team_id, event_id, event_owner, message_key, share_ref, disposition, reason, received_at)
50
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
51
+ `).run(i.envelope_id,i.retry_attempt,i.retry_reason,e.event?.team_id??null,e.event?.event_id??null,a.owner&&e.event?1:null,a.messageKey??null,a.shareRef??null,r,a.reason??null,o)};if(e.event&&t.default.prepare("SELECT 1 FROM slack_deliveries WHERE team_id = ? AND event_id = ? AND event_owner = 1").get(e.event.team_id,e.event.event_id))return l("duplicate_event",{}),{kind:"duplicate_event"};let d=(e,t=null)=>(l("dropped",{owner:!0,reason:e,shareRef:t}),{kind:"dropped",reason:e});if(e.drop||!e.question)return d(e.drop??"malformed");let c=e.question;if(!(0,s.audienceAllowed)({kind:"slack",team_id:c.team_id,channel_id:c.channel_id}))return d("audience_not_allowed");let _=(r=c.team_id,a=c.channel_id,n=c.thread_ts,t.default.prepare("SELECT * FROM slack_share_threads WHERE team_id = ? AND channel_id = ? AND thread_ts = ?").get(r,a,n));return _?f(c.message_key)?(l("duplicate_question",{owner:!0,messageKey:c.message_key,shareRef:_.share_ref}),{kind:"duplicate_question",share_ref:_.share_ref}):(t.default.prepare(`
52
+ INSERT INTO slack_questions (team_id, channel_id, message_ts, message_key, thread_ts, share_ref, event_id, question, state, created_at, updated_at)
53
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'pending', ?, ?)
54
+ `).run(c.team_id,c.channel_id,c.message_ts,c.message_key,c.thread_ts,_.share_ref,c.event_id,c.text,o,o),l("accepted",{owner:!0,messageKey:c.message_key,shareRef:_.share_ref}),{kind:"accepted",question:f(c.message_key)}):d("share_thread_unknown")});async function L(e){let r=e.code??"unknown",a=await y.post({channel:e.channel_id,thread_ts:e.thread_ts,text:i[r]??"This shared session cannot answer that question right now.",metadata:{event_type:"botmancers_share_notice",event_payload:{share_ref:e.share_ref,code:r}}});t.default.prepare("UPDATE slack_questions SET reply_ts = ?, updated_at = ? WHERE message_key = ? AND reply_ts IS NULL").run(a.ts,E(),e.message_key)}async function R(e){if(g.has(e))return null;g.add(e);try{let i,o=f(e);if(!o||"dispatched"!==o.state||!o.turn_ref||o.reply_ts)return null;try{var r;let e=await (0,s.shareAnswer)(o.share_ref,o.turn_ref);if(!e)return null;i="completed"===e.state&&null!==e.answer?(r=e.answer,p(u((0,a.serviceRedactor)().text(r)).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),s.SHARE_LIMITS.replyChars)):n}catch(e){if(!(e instanceof s.ShareError))throw e;i=n}let l=await y.post({channel:o.channel_id,thread_ts:o.thread_ts,text:i,metadata:{event_type:"botmancers_share_reply",event_payload:{share_ref:o.share_ref,turn_ref:o.turn_ref}}});return t.default.prepare("UPDATE slack_questions SET state = 'replied', reply_ts = ?, updated_at = ? WHERE message_key = ? AND state = 'dispatched'").run(l.ts,E(),e),l}finally{g.delete(e)}}async function A(e,r){if(k.has(e.message_key))return{envelope_id:r,outcome:"pending",share_ref:e.share_ref};k.add(e.message_key);try{var a;let n;try{n=await (0,s.askShare)({shareRef:e.share_ref,question:e.question??"",messageKey:e.message_key})}catch(a){if(!(a instanceof s.ShareAskError))throw a;return t.default.prepare("UPDATE slack_questions SET state = 'refused', code = ?, question = NULL, updated_at = ? WHERE message_key = ? AND state = 'pending'").run(a.code,E(),e.message_key),await L(f(e.message_key)),{envelope_id:r,outcome:"refused",share_ref:e.share_ref,code:a.code}}let i=n.turn.turn_ref;t.default.prepare("UPDATE slack_questions SET state = 'dispatched', turn_ref = ?, question = NULL, updated_at = ? WHERE message_key = ? AND state = 'pending'").run(i,E(),e.message_key);let o=(a=n.settled.then(()=>R(e.message_key)).catch(e=>(T(e),null)),v.add(a),a.finally(()=>v.delete(a)).catch(()=>{}),a);return{envelope_id:r,outcome:n.replayed?"replayed":"dispatched",share_ref:e.share_ref,turn_ref:i,replied:o}}finally{k.delete(e.message_key)}}async function I(e){let a=function(e,t){let a={delivery:null,event:null,question:null,drop:null},n=_(e?.envelope_id);if(!n||!d.test(n))return{...a,drop:"malformed"};let i=e.retry_attempt??0;a.delivery={envelope_id:n,retry_attempt:Number.isInteger(i)&&i>=0?i:0,retry_reason:_(e.retry_reason)||null};let h=e.payload;if("events_api"!==e.type||!h||"event_callback"!==h.type)return{...a,drop:"not_events_api"};let f=_(h.team_id),y=_(h.event_id);if(!f||!o.test(f)||!y||!c.test(y))return{...a,drop:"malformed"};a.event={team_id:f,event_id:y};let m=h.event??{};if("message"!==m.type&&"app_mention"!==m.type)return{...a,drop:"not_message"};let E=_(m.user);if(m.bot_id||m.bot_profile||"bot_message"===m.subtype||!E||E===t.botUserId)return{...a,drop:"not_a_person"};if(void 0!==m.subtype)return{...a,drop:"message_subtype"};let T=_(m.channel),k=_(m.ts),g=void 0===m.thread_ts?null:_(m.thread_ts);if(!T||!o.test(T)||!k||!l.test(k)||null!==g&&!l.test(g))return{...a,drop:"malformed"};if(null===g||g===k)return{...a,drop:"not_in_thread"};let w=p(u(String(m.text??"").replace(/<@[A-Z0-9]+(\|[^>]*)?>/g,"").trim()),s.SHARE_LIMITS.questionChars);return w?(a.question={team_id:f,event_id:y,channel_id:T,thread_ts:g,message_ts:k,text:w,message_key:`slack-${(0,r.createHash)("sha256").update(`${f}
55
+ ${T}
56
+ ${k}`).digest("hex").slice(0,40)}`},a):{...a,drop:"empty"}}(e,{botUserId:m});if(!a.delivery)return{envelope_id:null,outcome:"dropped",reason:"malformed"};let n=a.delivery.envelope_id,i=S.immediate(a);switch(await y.ack(n),"duplicate_delivery"!==i.kind&&t.default.prepare("UPDATE slack_deliveries SET acked_at = ? WHERE envelope_id = ? AND retry_attempt = ? AND acked_at IS NULL").run(E(),n,a.delivery.retry_attempt),i.kind){case"duplicate_delivery":case"duplicate_event":return{envelope_id:n,outcome:i.kind};case"dropped":return{envelope_id:n,outcome:"dropped",reason:i.reason};case"duplicate_question":return{envelope_id:n,outcome:"duplicate_question",share_ref:i.share_ref};case"accepted":return A(i.question,n)}}async function O(){let e=t.default.prepare("SELECT message_key FROM slack_questions WHERE state = 'dispatched' AND reply_ts IS NULL ORDER BY created_at, message_key").all(),r=0;for(let{message_key:t}of e)await R(t)&&r++;return r}async function U(){let e={dispatched:0,refused:0,replied:0};for(let r of t.default.prepare("SELECT * FROM slack_questions WHERE state = 'pending' ORDER BY created_at, message_key").all()){let t=await A(r,null);"dispatched"===t.outcome||"replayed"===t.outcome?e.dispatched++:"refused"===t.outcome&&e.refused++}for(let e of t.default.prepare("SELECT * FROM slack_questions WHERE state = 'refused' AND reply_ts IS NULL ORDER BY created_at, message_key").all())await L(e);return e.replied+=await O(),e}return{start:async function(){let e=await U();return await y.start(async e=>{try{await I(e)}catch(e){T(e)}}),e},stop:()=>y.stop(),bindShare:N,handleEnvelope:I,recover:U,flushReplies:O,idle:async function(){for(;v.size>0;)await Promise.allSettled([...v])}}}({transport:q,botUserId:L.user_id,onError:C,now:R}),x=!1,$=Promise.resolve(),F=e=>{let t=$.then(e);return $=t.catch(()=>{}),t},H=!0,P=()=>F(async()=>{if(!x)try{await X.recover(),H=!1}catch(e){H=!0,C(e)}}),W=new Map,K=S.bindRetryMs??6e4,B=()=>F(async()=>{if(!x){if(H)try{await X.recover(),H=!1}catch(e){C(e)}for(let{id:e}of t.default.prepare(`
57
+ SELECT id FROM session_shares s
58
+ WHERE state = 'active' AND expires_at > ? AND audience_team_id = ?
59
+ AND NOT EXISTS (SELECT 1 FROM slack_share_threads t WHERE t.share_ref = s.id)
60
+ ORDER BY created_at, id LIMIT 50
61
+ `).all(R(),L.team_id)){if(x)return;if(!((W.get(e)??0)>R()))try{await X.bindShare(e),W.delete(e)}catch(t){W.set(e,R()+K),t instanceof s.ShareError||C(t)}}try{await X.flushReplies()}catch(e){C(e)}}}),G=D.socket,Y=()=>{!x&&(b+=1,M("connected"),b>1&&P())},z=()=>{x||M("reconnecting")},Z=()=>{x||"connected"!==e.status.state||M("reconnecting")};G.on("connected",Y),G.on("reconnecting",z),G.on("close",Z);let j=null;e.relay=X,e.clients=D,e.stop=async()=>{x||(x=!0,j&&clearInterval(j),j=null,await X.stop().catch(C),G.off("connected",Y),G.off("reconnecting",z),G.off("close",Z),e.relay=null,e.clients=null,e.stop=null,M("stopped"))},await P();try{await q.start(e=>F(()=>X.handleEnvelope(e)).then(()=>{}))}catch(r){if(x)return A();C(r);let t=e.stop;return await t?.(),M("failed","slack_connect_failed"),A()}return x||("connected"!==e.status.state&&(b=Math.max(b,1),M("connected")),await B(),j=setInterval(()=>{B().catch(C)},S.sweepMs??5e3),j.unref?.()),A()}e.s(["runSlackInServer",0,function(){if("1"===process.env.BOTMANCERS_NO_AUTOPROCESS)return;let e=()=>{I().catch(()=>{})};process.once("SIGTERM",e),process.once("SIGINT",e),(function(e={}){let t=R();return t.starting?t.starting:t.stop?Promise.resolve(A()):(t.starting=O(t,e).finally(()=>{t.starting=null}),t.starting)})().catch(e=>console.error("Slack relay:",e instanceof Error?e.message:"start failed"))}],15050)}];
62
+
63
+ //# sourceMappingURL=lib_slack-runtime_ts_0fgsejy._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__03186rx._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1smmfpx._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[27828,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(35099);a.s(["default",0,function({summary:a,onChanged:f}){let[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(""),k=(0,e.stateTone)(a.state),l=(0,e.outcomeLine)(a),m=(0,e.failureAdvice)(a),n=`exchange-${a.id}-title`,o=async()=>{if(!g){h(!0),j("");try{let b=await fetch(`/api/exchanges/${encodeURIComponent(a.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!b.ok){let a=await b.json().catch(()=>null);j("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{j("Could not cancel. Try again.")}finally{h(!1),f?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${k} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":n,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:(0,e.modeLabel)(a.mode)}),(0,b.jsx)("span",{id:n,className:"exchange-card-title",children:(0,e.participantsLabel)(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:(0,e.liveStateLabel)(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:(0,e.sessionLabel)(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:(0,e.instructionHeading)(a.mode)})," ",(0,e.excerpt)(a.instruction,220)]}),l?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:l}):null,m?(0,b.jsx)("p",{className:"exchange-card-advice",children:m}):null,i?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:i}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",(0,e.formatExchangeTime)(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:(0,e.detailsHref)(a.id),"aria-label":`Details: ${(0,e.modeLabel)(a.mode)} ${(0,e.participantsLabel)(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:g,onClick:()=>{o()},children:g?"Cancelling…":"Cancel"}):null]})]})}])},35099,65221,a=>{"use strict";function b(a){return`${new Date(a).toISOString().slice(0,16).replace("T"," ")} UTC`}let c="Not reported";function d(a){return a.toFixed(1).replace(/\.0$/,"")}function e(a){return a.toLocaleString("en-US")}function f(a){return 0===a?"$0.00":a>=.01?`$${a.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:a<1e-4?"<$0.0001":`$${a.toFixed(4)}`}let g={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function h(a,b,c){return"cost_usd"===a?f(b):c?e(b):b<1e3?String(b):b<999950?`${d(b/1e3)}k`:b<99995e4?`${d(b/1e6)}M`:`${d(b/1e9)}B`}function i(a){return`${a} ${1===a?"run":"runs"}`}function j(a,b,d=!1){let e=g[a];if(!b||"unavailable"===b.quality||null===b.sum)return{name:e,text:c,quality:"unavailable",coverage:b&&b.total>0?`0 of ${i(b.total)} reported`:"No runs recorded",label:`${e}: not reported`};let f=h(a,b.sum,d),k=h(a,b.sum,!0);return"partial"===b.quality?{name:e,text:f,quality:"partial",coverage:`Partial: ${b.known} of ${i(b.total)} reported`,label:`${e}: at least ${k}, partial, reported by ${b.known} of ${i(b.total)}`}:{name:e,text:f,quality:"complete",coverage:`All ${i(b.total)} reported`,label:`${e}: ${k}, reported by all ${i(b.total)}`}}a.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(a){let b="source"===a.role?"Started the session":"Resumed the session";return`${b} \xb7 ${a.outcome??"running"}`},"emptySessionsCopy",0,function(a,b){return"active"===a?`${b} has no active sessions.`:"ended"===a?`${b} has no ended sessions.`:`${b} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,b,"runtimeLabel",0,function(a){return a.agent.transport?`${a.agent.adapter} \xb7 ${a.agent.transport}`:a.agent.adapter},"sessionStateTags",0,function(a){let b=[];return(a.home&&b.push("Home"),a.state?.availability==="missing")?[...b,"Missing"]:(a.state?.lifecycle==="archived"&&b.push("Archived"),a.state?.busy&&b.push("Busy"),(a.resumable||a.state?.resumable===!0)&&b.push("Resumable"),b)},"sessionUsageLine",0,function(a){let b=j("input_tokens",a?.input_tokens),d=j("output_tokens",a?.output_tokens),e=j("cost_usd",a?.cost_usd),f=[b,d,e];if(f.every(a=>"unavailable"===a.quality))return{text:c,label:"Usage: not reported",quality:"unavailable",partial:!1};let g=["unavailable"===b.quality?"input not reported":`${b.text} in`,"unavailable"===d.quality?"output not reported":`${d.text} out`,"unavailable"===e.quality?"cost not reported":e.text].join(" · "),h=f.some(a=>"partial"===a.quality),i=h||f.some(a=>"unavailable"===a.quality)?"partial":"complete";return{text:g,label:`Reported usage: ${f.map(a=>a.label).join("; ")}`,quality:i,partial:h}},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"usageMetricView",0,j,"usageSampleLabel",0,function(a,b){let c="turn"===a.kind?"start"===a.turn_kind?"provider turn, started":"provider turn":"resume"===a.turn_kind?"resumed":"started";return`Run ${b+1} \xb7 ${c}`},"usageSampleValues",0,function(a){return{input:null===a.input_tokens?c:e(a.input_tokens),output:null===a.output_tokens?c:e(a.output_tokens),cost:null===a.cost_usd?c:f(a.cost_usd)}},"workRequestLabel",0,function(a){var b;let c=a.origin.work_request;return c?`${(b=c.execution_kind)?b[0].toUpperCase()+b.slice(1):b} \xb7 ${c.state}`:null}],65221);let k={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},l=["queued","extracting","delivering","completed","failed","cancelled"],m=["completed","failed","cancelled"];function n(a,b){switch(b){case"queued":return"Queued";case"extracting":return"ask"===a?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===a?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function o(a,b=140){let c=String(a??"").split("\n").map(a=>a.trim()).filter(a=>a.length>0).join(" ");return c.length>b?`${c.slice(0,b-1).trimEnd()}…`:c}function p(a,b){return b.updated_at-a.updated_at||b.created_at-a.created_at||(a.id<b.id?-1:+(a.id>b.id))}a.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,function(a){return`/exchanges?id=${encodeURIComponent(a)}`},"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",f="string"==typeof c.hop?c.hop:null;switch(a.type){case"created":return"ask"===b.mode?`You asked ${d}'s session a question`:`You handed ${d}'s session to ${e}`;case"hop_queued":if("deliver"===f)return`Handoff queued for ${e}'s new session`;return"extract"===f?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===f)return`${e} started a new session`;return"extract"===f?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&l.includes(c.to)?c.to:null;return a?`Now ${n(b.mode,a).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${b.origin?.label??"the origin thread"}${c.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof c.reason?`: ${c.reason}`:""}`;case"destination_replied":return`${e} replied in ${b.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${e}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return a.type.replace(/_/g," ")}},"excerpt",0,o,"exchangeRequestBody",0,function(a,b,c){let d={mode:a.mode,idempotency_key:c,origin_conversation_id:a.originConversationId,source:{agent_id:b.agentId,session_ref:b.sessionRef},instruction:a.instruction.trim()};return"continue"===a.mode&&(d.destination={agent_id:a.destinationAgentId}),d},"failureAdvice",0,function(a){if("failed"!==a.state)return null;switch(a.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}},"formatExchangeTime",0,function(a){return b(a)},"instructionHeading",0,function(a){return"ask"===a?"Question":"Objective"},"ledgerAgents",0,function(a){let b=new Map;for(let c of a)b.set(c.source.agent_id,c.source.agent_name),c.destination&&b.set(c.destination.agent_id,c.destination.agent_name);return[...b.entries()].map(([a,b])=>({id:a,name:b})).sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id))},"ledgerRows",0,function(a,b){return a.filter(a=>("all"===b.mode||a.mode===b.mode)&&("active"!==b.state||!a.terminal)&&("all"===b.state||"active"===b.state||a.state===b.state)&&(!b.agentId||a.source.agent_id===b.agentId||a.destination?.agent_id===b.agentId)).sort(p)},"ledgerView",0,function(a,b,c){return null===a?b?"error":"loading":0===a.length?"empty":0===c.length?"filtered-out":"rows"},"linkRoleLabel",0,function(a){let b={origin:"Started here",source:"Source session",destination:"Destination"};return a.map(a=>b[a]).join(" · ")},"liveStateLabel",0,function(a){var b;return a.cancel_requested&&(b=a.state,!m.includes(b))?"Cancelling…":n(a.mode,a.state)},"modeLabel",0,function(a){return"ask"===a?"Ask":"Continue"},"outcomeLine",0,function(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${o(a.outcome.answer,200)}`:`Answered in ${b}.`}let b=a.destination?.agent_name??"The destination Agent";return a.outcome.reply?`${b} picked it up in a new session: ${o(a.outcome.reply,200)}`:`${b} picked it up in a new session.`}return"failed"===a.state?a.failure?.message||"The exchange failed.":"cancelled"===a.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(a,b,c,d,e){return{action:a,content:b.trim(),conversation_id:c,idempotency_key:e,..."resume"===a?{approve_write:d}:{}}},"sessionDialogMode",0,function(a){return"handoff"===a?"continue":a},"sessionDialogTitle",0,function(a){return k["continue"===a?"handoff":a]},"sessionDialogUsesPin",0,function(a,b){return"resume"===a||"ask"===a&&"provider"===b},"sessionLabel",0,function(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`},"sessionRowActions",0,function(a){let b;if(a.actions)b=a.actions;else{let c="ended"===a.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`},d=c.available?{available:!0}:{available:!1,code:"ended"===a.status?"session_ended":"session_not_resumable",reason:c.reason,recovery:"choose_session"};b={ask:d,resume:{available:!1,code:"action_unavailable",reason:`${k.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:d}}return["ask","resume","handoff"].map(a=>({action:a,label:k[a],availability:b[a]}))},"stateTone",0,function(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"},"submitErrorMessage",0,function(a,b){switch(a){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return b||"That Agent has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return b||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return b||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return b||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(a,b){let c=new URLSearchParams;if(a.thread_agent_id)return c.set("agent",a.thread_agent_id),b&&c.set("exchange",b),`/?${c.toString()}`;if("group"!==a.kind)return null;b&&c.set("exchange",b);let d=c.toString();return`/threads/${encodeURIComponent(a.id)}${d?`?${d}`:""}`},"validateDraft",0,function(a){let b={},c=a.instruction.trim(),d="ask"===a.mode?"a question":"an objective";return c?a.instruction.length>4e3&&(b.instruction="Keep it under 4000 characters."):b.instruction=`Enter ${d}.`,a.originConversationId||(b.origin="Choose the thread that follows this exchange."),"continue"!==a.mode||a.destinationAgentId||(b.destination="Choose the Agent who continues the work."),b},"validateResumeDraft",0,function(a,b){let c={};return a.trim()?a.length>4e3&&(c.instruction="Keep it under 4000 characters."):c.instruction="Enter what to work on.",b||(c.approval="Approve edits in this session to resume work here."),c}],35099)}];
2
+
3
+ //# sourceMappingURL=_0_fa0na._.js.map