botmancers 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (993) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +17 -12
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +9 -2
  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 +4 -4
  11. package/app/.next/required-server-files.json +8 -3
  12. package/app/.next/routes-manifest.json +67 -12
  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/bots/[id]/config/route.js +3 -3
  29. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  30. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +5 -6
  31. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
  32. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +3 -3
  33. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +11 -0
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -0
  37. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  38. package/app/.next/server/app/api/bots/[id]/sessions/route.js +5 -6
  39. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
  40. package/app/.next/server/app/api/bots/[id]/share-policy/route/app-paths-manifest.json +3 -0
  41. package/app/.next/server/app/api/bots/[id]/share-policy/route.js +11 -0
  42. package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -0
  43. package/app/.next/server/app/api/bots/[id]/share-policy/route_client-reference-manifest.js +3 -0
  44. package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
  45. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  46. package/app/.next/server/app/api/bots/availability/route.js +3 -2
  47. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  48. package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
  49. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  50. package/app/.next/server/app/api/bots/import/route.js +3 -3
  51. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  52. package/app/.next/server/app/api/bots/manage/route.js +3 -3
  53. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  54. package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
  55. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  56. package/app/.next/server/app/api/bots/route.js +7 -7
  57. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  58. package/app/.next/server/app/api/conversations/[id]/approve/route.js +4 -4
  59. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/conversations/[id]/deny/route.js +4 -4
  61. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/conversations/[id]/draft/route.js +4 -4
  63. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  64. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
  65. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  66. package/app/.next/server/app/api/conversations/[id]/messages/route.js +7 -7
  67. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  68. package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
  69. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/conversations/[id]/stop/route.js +4 -4
  71. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/conversations/route.js +3 -3
  73. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +4 -4
  75. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/exchanges/[id]/route.js +5 -5
  77. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/exchanges/route.js +6 -6
  79. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/files/[name]/route.js +1 -1
  81. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/groups/route.js +3 -3
  83. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/health/route.js +5 -2
  85. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  86. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  87. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  88. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  89. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  91. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/mcp/route.js +3 -3
  93. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
  95. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/runtime-connections/route.js +3 -3
  97. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/service-grants/route.js +3 -3
  99. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  101. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  102. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  103. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +11 -0
  104. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  105. package/app/.next/server/app/api/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  106. package/app/.next/server/app/api/shares/route/app-paths-manifest.json +3 -0
  107. package/app/.next/server/app/api/shares/route/build-manifest.json +12 -0
  108. package/app/.next/server/app/api/shares/route/server-reference-manifest.json +4 -0
  109. package/app/.next/server/app/api/shares/route.js +11 -0
  110. package/app/.next/server/app/api/shares/route.js.nft.json +1 -0
  111. package/app/.next/server/app/api/shares/route_client-reference-manifest.js +3 -0
  112. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +5 -6
  113. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +5 -6
  115. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -4
  117. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +5 -6
  119. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +5 -6
  121. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +5 -6
  123. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +5 -6
  125. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/v0/agents/route.js +5 -6
  127. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/v0/capabilities/route.js +5 -6
  129. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -4
  131. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +5 -6
  133. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +5 -6
  135. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/v0/exchanges/route.js +5 -6
  137. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/v0/mcp/route.js +6 -7
  139. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +5 -6
  141. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +5 -6
  143. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +5 -6
  145. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -4
  147. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +5 -6
  149. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +5 -6
  151. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  153. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/build-manifest.json +12 -0
  154. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
  155. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +11 -0
  156. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -0
  157. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  158. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  159. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  160. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  161. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +11 -0
  162. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  163. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  164. package/app/.next/server/app/api/v0/shares/[shareRef]/route/app-paths-manifest.json +3 -0
  165. package/app/.next/server/app/api/v0/shares/[shareRef]/route/build-manifest.json +12 -0
  166. package/app/.next/server/app/api/v0/shares/[shareRef]/route/server-reference-manifest.json +4 -0
  167. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +11 -0
  168. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -0
  169. package/app/.next/server/app/api/v0/shares/[shareRef]/route_client-reference-manifest.js +3 -0
  170. package/app/.next/server/app/api/v0/shares/current/route/app-paths-manifest.json +3 -0
  171. package/app/.next/server/app/api/v0/shares/current/route/build-manifest.json +12 -0
  172. package/app/.next/server/app/api/v0/shares/current/route/server-reference-manifest.json +4 -0
  173. package/app/.next/server/app/api/v0/shares/current/route.js +11 -0
  174. package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -0
  175. package/app/.next/server/app/api/v0/shares/current/route_client-reference-manifest.js +3 -0
  176. package/app/.next/server/app/api/v0/shares/route/app-paths-manifest.json +3 -0
  177. package/app/.next/server/app/api/v0/shares/route/build-manifest.json +12 -0
  178. package/app/.next/server/app/api/v0/shares/route/server-reference-manifest.json +4 -0
  179. package/app/.next/server/app/api/v0/shares/route.js +11 -0
  180. package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -0
  181. package/app/.next/server/app/api/v0/shares/route_client-reference-manifest.js +3 -0
  182. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +4 -4
  183. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/wakes/[id]/decision/route.js +4 -4
  185. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/wakes/[id]/retry/route.js +4 -4
  187. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  188. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  189. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  190. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/exchanges/page.js +1 -1
  192. package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
  193. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/exchanges.html +1 -1
  195. package/app/.next/server/app/exchanges.rsc +3 -3
  196. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
  197. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
  198. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
  199. package/app/.next/server/app/index.html +1 -1
  200. package/app/.next/server/app/index.rsc +3 -3
  201. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  202. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  203. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  204. package/app/.next/server/app/page.js +1 -1
  205. package/app/.next/server/app/page.js.nft.json +1 -1
  206. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/settings/page.js +1 -1
  208. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  209. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/settings.html +1 -1
  211. package/app/.next/server/app/settings.rsc +3 -3
  212. package/app/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  213. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  214. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  215. package/app/.next/server/app/threads/[id]/page.js +1 -1
  216. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -1
  217. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app-paths-manifest.json +9 -2
  219. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_shares_route_actions_1jr6f0v.js +3 -0
  220. package/app/.next/server/chunks/[externals]_@slack_0owayck._.js +3 -0
  221. package/app/.next/server/chunks/[externals]__17bolvp._.js +3 -0
  222. package/app/.next/server/chunks/{[externals]__06lqs5i._.js → [externals]__1eaoma8._.js} +1 -1
  223. package/app/.next/server/chunks/[root-of-the-server]__0-vcyi-._.js +3 -0
  224. package/app/.next/server/chunks/[root-of-the-server]__0-w_t2y._.js +3 -0
  225. package/app/.next/server/chunks/{[root-of-the-server]__1_01-13._.js → [root-of-the-server]__029-_9t._.js} +2 -2
  226. package/app/.next/server/chunks/[root-of-the-server]__02vrtib._.js +4 -0
  227. package/app/.next/server/chunks/[root-of-the-server]__04b3ml2._.js +3 -0
  228. package/app/.next/server/chunks/[root-of-the-server]__06w5xhe._.js +3 -0
  229. package/app/.next/server/chunks/[root-of-the-server]__0792yb1._.js +44 -0
  230. package/app/.next/server/chunks/[root-of-the-server]__07q5mnr._.js +3 -0
  231. package/app/.next/server/chunks/[root-of-the-server]__0888o0_._.js +3 -0
  232. package/app/.next/server/chunks/[root-of-the-server]__0aincj4._.js +3 -0
  233. package/app/.next/server/chunks/[root-of-the-server]__0d3fjix._.js +1 -1
  234. package/app/.next/server/chunks/[root-of-the-server]__0e_agq4._.js +3 -0
  235. package/app/.next/server/chunks/[root-of-the-server]__0ey3_2x._.js +3 -0
  236. package/app/.next/server/chunks/[root-of-the-server]__0fku-bw._.js +3 -0
  237. package/app/.next/server/chunks/[root-of-the-server]__0iqh5ta._.js +3 -0
  238. package/app/.next/server/chunks/[root-of-the-server]__0ivjcgs._.js +4 -0
  239. package/app/.next/server/chunks/[root-of-the-server]__0kgnysc._.js +3 -0
  240. package/app/.next/server/chunks/[root-of-the-server]__0mp8bap._.js +3 -0
  241. package/app/.next/server/chunks/[root-of-the-server]__0o9ijih._.js +3 -0
  242. package/app/.next/server/chunks/[root-of-the-server]__0qaiqut._.js +44 -0
  243. package/app/.next/server/chunks/[root-of-the-server]__0zrx1iz._.js +3 -0
  244. package/app/.next/server/chunks/[root-of-the-server]__10b5-i-._.js +3 -0
  245. package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +1 -1
  246. package/app/.next/server/chunks/[root-of-the-server]__17xl_55._.js +3 -0
  247. package/app/.next/server/chunks/[root-of-the-server]__1dxr858._.js +3 -0
  248. package/app/.next/server/chunks/[root-of-the-server]__1eps2a4._.js +3 -0
  249. package/app/.next/server/chunks/[root-of-the-server]__1ggmit0._.js +4 -0
  250. package/app/.next/server/chunks/{[root-of-the-server]__1y_j43n._.js → [root-of-the-server]__1hwy3jx._.js} +1 -1
  251. package/app/.next/server/chunks/[root-of-the-server]__1i8glt4._.js +4 -0
  252. package/app/.next/server/chunks/{[root-of-the-server]__0j0i8xz._.js → [root-of-the-server]__1igzl05._.js} +1 -1
  253. package/app/.next/server/chunks/[root-of-the-server]__1j8fg_n._.js +3 -0
  254. package/app/.next/server/chunks/[root-of-the-server]__1kczttr._.js +3 -0
  255. package/app/.next/server/chunks/{[root-of-the-server]__1c3e2ds._.js → [root-of-the-server]__1kik2zt._.js} +1 -1
  256. package/app/.next/server/chunks/[root-of-the-server]__1v3ikuo._.js +3 -0
  257. package/app/.next/server/chunks/[root-of-the-server]__1x8phwp._.js +44 -0
  258. package/app/.next/server/chunks/{[root-of-the-server]__0-45blq._.js → [root-of-the-server]__1z5l5cg._.js} +2 -2
  259. package/app/.next/server/chunks/[root-of-the-server]__200ep0k._.js +3 -0
  260. package/app/.next/server/chunks/_0061c2q._.js +48 -1
  261. package/app/.next/server/chunks/_04e2bgj._.js +3 -0
  262. package/app/.next/server/chunks/_057h7zr._.js +3 -0
  263. package/app/.next/server/chunks/_05po7b4._.js +3 -0
  264. package/app/.next/server/chunks/_06sxx0e._.js +3 -0
  265. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  266. package/app/.next/server/chunks/_0ar2ooe._.js +3 -0
  267. package/app/.next/server/chunks/_0fmotaz._.js +3 -0
  268. package/app/.next/server/chunks/_0kpfto_._.js +3 -0
  269. package/app/.next/server/chunks/_0lm6uis._.js +3 -0
  270. package/app/.next/server/chunks/_0mpu5tl._.js +3 -0
  271. package/app/.next/server/chunks/_0qv-4by._.js +3 -0
  272. package/app/.next/server/chunks/_0u9cfq9._.js +3 -0
  273. package/app/.next/server/chunks/_0ul8k7g._.js +3 -0
  274. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  275. package/app/.next/server/chunks/_1-60d3o._.js +3 -0
  276. package/app/.next/server/chunks/_133y3b0._.js +3 -0
  277. package/app/.next/server/chunks/_167960a._.js +3 -0
  278. package/app/.next/server/chunks/_17vgjlt._.js +3 -0
  279. package/app/.next/server/chunks/_1amx9_4._.js +3 -0
  280. package/app/.next/server/chunks/_1b01v-_._.js +3 -0
  281. package/app/.next/server/chunks/_1c-g4gq._.js +3 -0
  282. package/app/.next/server/chunks/_1ey6l4p._.js +3 -0
  283. package/app/.next/server/chunks/_1nlg4x_._.js +3 -0
  284. package/app/.next/server/chunks/_1x4dqzv._.js +3 -0
  285. package/app/.next/server/chunks/_1z0qbzc._.js +3 -0
  286. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_share-policy_route_actions_0x-p250.js +3 -0
  287. package/app/.next/server/chunks/_next-internal_server_app_api_shares_[shareRef]_revoke_route_actions_1cu5kah.js +3 -0
  288. package/app/.next/server/chunks/_next-internal_server_app_api_shares_route_actions_0wk7x1r.js +3 -0
  289. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_shares_route_actions_11fh--7.js +3 -0
  290. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_revoke_route_actions_00rzyj9.js +3 -0
  291. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_route_actions_0i1t5qb.js +3 -0
  292. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_current_route_actions_1w_bpas.js +3 -0
  293. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_route_actions_1b38was.js +3 -0
  294. package/app/.next/server/chunks/lib_0-opbv7._.js +316 -0
  295. package/app/.next/server/chunks/lib_0aejojj._.js +316 -0
  296. package/app/.next/server/chunks/lib_0il0ml1._.js +316 -0
  297. package/app/.next/server/chunks/lib_0iujsdg._.js +316 -0
  298. package/app/.next/server/chunks/lib_0kik6bx._.js +20 -20
  299. package/app/.next/server/chunks/lib_0pe3tiv._.js +20 -20
  300. package/app/.next/server/chunks/lib_15adnlz._.js +2172 -0
  301. package/app/.next/server/chunks/lib_1dehbst._.js +316 -0
  302. package/app/.next/server/chunks/lib_1z4vnh4._.js +316 -0
  303. package/app/.next/server/chunks/lib_1zc7-gl._.js +2172 -0
  304. package/app/.next/server/chunks/lib_agent-api_ts_0iv52-o._.js +3 -0
  305. package/app/.next/server/chunks/{[root-of-the-server]__0izjfmr._.js → lib_db_ts_1ttuckb._.js} +59 -57
  306. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +5 -5
  307. package/app/.next/server/chunks/lib_slack-runtime_ts_0fgsejy._.js +63 -0
  308. package/app/.next/server/chunks/ssr/{[root-of-the-server]__03186rx._.js → [root-of-the-server]__1smmfpx._.js} +1 -1
  309. package/app/.next/server/chunks/ssr/_0_fa0na._.js +3 -0
  310. package/app/.next/server/chunks/ssr/_0a6r_bx._.js +3 -0
  311. package/app/.next/server/chunks/ssr/_14d-lxn._.js +3 -0
  312. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +1 -1
  313. package/app/.next/server/chunks/ssr/_1is_iwu._.js +3 -0
  314. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +1 -1
  315. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  316. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +1 -1
  317. package/app/.next/server/instrumentation.js +4 -0
  318. package/app/.next/server/middleware-build-manifest.js +3 -3
  319. package/app/.next/server/middleware.js +1 -1
  320. package/app/.next/server/pages/404.html +1 -1
  321. package/app/.next/server/pages/500.html +1 -1
  322. package/app/.next/server/server-reference-manifest.js +1 -1
  323. package/app/.next/server/server-reference-manifest.json +1 -1
  324. package/app/.next/static/chunks/1ouuczm-gmvxs.js +1 -0
  325. package/app/.next/static/chunks/1w72fds3-utrx.js +1 -0
  326. package/app/.next/static/chunks/2095-o17ji0fs.css +3 -0
  327. package/app/.next/static/chunks/2q-tgwkalrnms.js +1 -0
  328. package/app/.next/static/chunks/34bv9o9bjkwk0.js +3 -0
  329. package/app/.next/static/chunks/3rwwunh5sdjzg.js +1 -0
  330. package/app/.next/static/chunks/3whw2-l4a2sli.js +1 -0
  331. package/app/.next/static/chunks/3z3mn526_3fwd.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.d.ts +1 -1
  909. package/dist/cli.js +7 -4
  910. package/dist/product.d.ts +8 -1
  911. package/dist/product.js +79 -23
  912. package/dist/setup.js +9 -9
  913. package/package.json +2 -3
  914. package/schemas/botmancers.mcp.v2.tools.json +770 -5
  915. package/skills/botmancers-collaboration/SKILL.md +5 -1
  916. package/skills/botmancers-collaboration/references/workflows.md +21 -0
  917. package/app/.next/server/app/api/agent-deck/decks/route/app-paths-manifest.json +0 -3
  918. package/app/.next/server/app/api/agent-deck/decks/route.js +0 -9
  919. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +0 -1
  920. package/app/.next/server/app/api/agent-deck/decks/route_client-reference-manifest.js +0 -3
  921. package/app/.next/server/app/api/agent-deck/settings/route/app-paths-manifest.json +0 -3
  922. package/app/.next/server/app/api/agent-deck/settings/route.js +0 -9
  923. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +0 -1
  924. package/app/.next/server/app/api/agent-deck/settings/route_client-reference-manifest.js +0 -3
  925. package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +0 -3
  926. package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +0 -3
  927. package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +0 -3
  928. package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +0 -3
  929. package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +0 -3
  930. package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +0 -3
  931. package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +0 -44
  932. package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +0 -3
  933. package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +0 -3
  934. package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +0 -3
  935. package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +0 -44
  936. package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +0 -3
  937. package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +0 -3
  938. package/app/.next/server/chunks/[root-of-the-server]__1bhzfu_._.js +0 -7
  939. package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +0 -44
  940. package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +0 -3
  941. package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +0 -44
  942. package/app/.next/server/chunks/[root-of-the-server]__1kvvs4u._.js +0 -3
  943. package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +0 -3
  944. package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +0 -3
  945. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +0 -7
  946. package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +0 -3
  947. package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +0 -44
  948. package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +0 -3
  949. package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +0 -3
  950. package/app/.next/server/chunks/_023se5j._.js +0 -44
  951. package/app/.next/server/chunks/_02pb_qv._.js +0 -44
  952. package/app/.next/server/chunks/_05ro-21._.js +0 -44
  953. package/app/.next/server/chunks/_07on0dc._.js +0 -44
  954. package/app/.next/server/chunks/_08208nz._.js +0 -44
  955. package/app/.next/server/chunks/_0fe5qz5._.js +0 -44
  956. package/app/.next/server/chunks/_0qoji5a._.js +0 -44
  957. package/app/.next/server/chunks/_0uv2pi5._.js +0 -44
  958. package/app/.next/server/chunks/_0wdl90-._.js +0 -44
  959. package/app/.next/server/chunks/_11ijk9k._.js +0 -44
  960. package/app/.next/server/chunks/_198sn69._.js +0 -44
  961. package/app/.next/server/chunks/_1ba_5hd._.js +0 -44
  962. package/app/.next/server/chunks/_1m89jq5._.js +0 -44
  963. package/app/.next/server/chunks/_1n39wr_._.js +0 -44
  964. package/app/.next/server/chunks/_1ryxqo1._.js +0 -44
  965. package/app/.next/server/chunks/_1vemgly._.js +0 -44
  966. package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_decks_route_actions_0yguyfv.js +0 -3
  967. package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_settings_route_actions_0z_nbkb.js +0 -3
  968. package/app/.next/server/chunks/lib_0lqoyb4._.js +0 -217
  969. package/app/.next/server/chunks/lib_0riiofz._.js +0 -44
  970. package/app/.next/server/chunks/lib_16j2293._.js +0 -217
  971. package/app/.next/server/chunks/lib_1nb_61e._.js +0 -217
  972. package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +0 -20
  973. package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +0 -3
  974. package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +0 -3
  975. package/app/.next/server/chunks/ssr/app_settings_page_tsx_1t-rdz-._.js +0 -3
  976. package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +0 -3
  977. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +0 -3
  978. package/app/.next/static/chunks/0bhd8eso48g27.js +0 -1
  979. package/app/.next/static/chunks/1ku9himlsx-hn.js +0 -1
  980. package/app/.next/static/chunks/21aqekm5z0j47.js +0 -1
  981. package/app/.next/static/chunks/2a8bomryx66oj.css +0 -3
  982. package/app/.next/static/chunks/3230ywnpii0s6.js +0 -3
  983. package/app/.next/static/chunks/35l2c95bd-jud.js +0 -1
  984. package/app/.next/static/chunks/3cijpn6vx3yzv.js +0 -1
  985. package/app/.next/static/chunks/3ue9194j59kem.js +0 -1
  986. package/app/.next/static/chunks/44ese2s4gzze_.js +0 -1
  987. /package/app/.next/server/app/api/{agent-deck/decks → bots/[id]/sessions/[ref]/shares}/route/build-manifest.json +0 -0
  988. /package/app/.next/server/app/api/{agent-deck/decks → bots/[id]/sessions/[ref]/shares}/route/server-reference-manifest.json +0 -0
  989. /package/app/.next/server/app/api/{agent-deck/settings → bots/[id]/share-policy}/route/build-manifest.json +0 -0
  990. /package/app/.next/server/app/api/{agent-deck/settings → bots/[id]/share-policy}/route/server-reference-manifest.json +0 -0
  991. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_buildManifest.js +0 -0
  992. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_clientMiddlewareManifest.js +0 -0
  993. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13978,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(22016),s=e.i(18566),r=e.i(15983),i=e.i(24204);function l({agentId:e,agentName:a}){let s=(0,n.useId)(),r=(0,n.useId)(),o=(0,n.useId)(),[c,d]=(0,n.useState)(null),[u,m]=(0,n.useState)(""),[f,h]=(0,n.useState)(0),[p,g]=(0,n.useState)("idle"),[x,b]=(0,n.useState)(""),[v,j]=(0,n.useState)(""),[y,N]=(0,n.useState)(""),[k,_]=(0,n.useState)(""),[w,S]=(0,n.useState)("");(0,n.useEffect)(()=>{let t=!1;return fetch(`/api/bots/${encodeURIComponent(e)}/share-policy`,{cache:"no-store"}).then(async e=>{let n=await e.json().catch(()=>null);t||(e.ok&&n?.policy?(m(""),d(n.policy)):m("Could not load the share policy."))}).catch(()=>{t||m("Could not load the share policy.")}),()=>{t=!0}},[e,f]);let C=()=>{b(""),g("idle"),h(e=>e+1)},$=async(t,n)=>{if(!c)return!1;g("saving"),b(""),j("");try{let a=await fetch(`/api/bots/${encodeURIComponent(e)}/share-policy`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({revision:c.revision,...t})}),s=await a.json().catch(()=>null);if(!a.ok||!s?.policy)return g("error"),b("string"==typeof s?.error?.message?s.error.message:"The share policy could not be saved."),!1;return d(s.policy),g("idle"),j(n("number"==typeof s.revoked_contexts?s.revoked_contexts:0)),!0}catch{return g("error"),b("The share policy could not be saved."),!1}},A=async e=>{if(e.preventDefault(),!c)return;let t=(0,i.audienceInputError)(y,k,c.audiences);if(S(t??""),t)return;let n={kind:"slack",team_id:y.trim(),channel_id:k.trim()};await $({audiences:[...c.audiences,n]},()=>`Added ${(0,i.audienceLabel)(n)}.`)&&(N(""),_(""))},T="saving"===p,E=!!c&&"invalid"!==c.state;return(0,t.jsxs)("section",{className:"cfg-card share-policy",id:"session-sharing","aria-labelledby":"cfg-sharing-title",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{id:"cfg-sharing-title",className:"cfg-title",children:"Session sharing"}),T?(0,t.jsx)("span",{className:"text-sm cfg-faint",role:"status",children:"Saving…"}):null]}),(0,t.jsxs)("p",{className:"text-sm cfg-muted mb-3",children:["A share lets people in one Slack channel ask one of ",a,"’s sessions questions, read-only, until it expires or you revoke it. Create and revoke shares from Sessions."]}),u?(0,t.jsxs)("p",{className:"text-sm cfg-error",role:"alert",children:[u," ",(0,t.jsx)("button",{type:"button",onClick:C,className:"underline hover:no-underline",children:"Retry"})]}):null,c||u?null:(0,t.jsx)("p",{className:"text-sm cfg-faint",role:"status",children:"Loading…"}),c?.state==="invalid"?(0,t.jsxs)("p",{className:"text-sm cfg-error mb-3",role:"alert",children:["The share policy file is invalid, so nothing can be shared: ",c.reason," Fix or remove config/session-shares.json, then"," ",(0,t.jsx)("button",{type:"button",onClick:C,className:"underline hover:no-underline",children:"reload"}),"."]}):null,c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"share-policy-toggle",children:[(0,t.jsx)("input",{id:s,type:"checkbox",role:"switch",checked:c.agent.share_from_turn,"aria-checked":c.agent.share_from_turn,disabled:!E||T||!c.agent.share_current.supported&&!c.agent.share_from_turn,"data-share-policy":"share_from_turn",onChange:e=>{let t=e.target.checked;$({share_from_turn:t},e=>t?"Share from a turn is on.":`Share from a turn is off.${e?` Revoked ${e} live turn context${1===e?"":"s"}.`:""}`)}}),(0,t.jsxs)("label",{htmlFor:s,className:"text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:"Share from a turn"})," (",(0,t.jsx)("code",{className:"cfg-code",children:"share_from_turn"}),")"]})]}),(0,t.jsx)("p",{className:"text-sm cfg-faint share-policy-hint",children:(0,i.shareFromTurnNote)(c)}),c.agent.live_contexts>0?(0,t.jsxs)("p",{className:"text-sm cfg-faint share-policy-hint",children:[c.agent.live_contexts," live turn context",1===c.agent.live_contexts?"":"s"," now."]}):null,(0,t.jsx)("h3",{className:"cfg-title share-policy-sub",children:"Slack channel allowlist"}),(0,t.jsx)("p",{className:"text-sm cfg-faint",children:"Every Agent’s shares use this list. A share can only go to a channel on it."}),0===c.audiences.length?(0,t.jsx)("p",{className:"text-sm cfg-muted share-policy-empty",children:"No channel yet: nothing can be shared to Slack."}):(0,t.jsx)("ul",{className:"share-policy-list","aria-label":"Allowed Slack channels",children:c.audiences.map(e=>(0,t.jsxs)("li",{className:"share-policy-entry",children:[(0,t.jsx)("span",{className:"cfg-code",children:e.channel_id}),(0,t.jsxs)("span",{className:"cfg-faint",children:["workspace ",e.team_id]}),(0,t.jsx)("button",{type:"button",className:"cfg-link text-sm share-policy-remove",disabled:!E||T,"aria-label":`Remove ${(0,i.audienceLabel)(e)}`,onClick:()=>{c&&$({audiences:c.audiences.filter(t=>t.team_id!==e.team_id||t.channel_id!==e.channel_id)},()=>`Removed ${(0,i.audienceLabel)(e)}. Its Slack threads stop being answered.`)},children:"Remove"})]},`${e.team_id}:${e.channel_id}`))}),(0,t.jsxs)("form",{className:"share-policy-add",onSubmit:e=>{A(e)},"aria-label":"Add a Slack channel",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:r,className:"text-sm",children:"Workspace ID"}),(0,t.jsx)("input",{id:r,className:"cfg-input",value:y,placeholder:"T0123ABCD",autoComplete:"off",spellCheck:!1,disabled:!E||T,"aria-invalid":!!w,onChange:e=>{N(e.target.value),S("")}})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:o,className:"text-sm",children:"Channel ID"}),(0,t.jsx)("input",{id:o,className:"cfg-input",value:k,placeholder:"C0123ABCD",autoComplete:"off",spellCheck:!1,disabled:!E||T,"aria-invalid":!!w,onChange:e=>{_(e.target.value),S("")}})]}),(0,t.jsx)("button",{type:"submit",className:"cfg-btn-primary text-sm",disabled:!E||T||!y.trim()||!k.trim(),children:"Add channel"})]}),w?(0,t.jsx)("p",{className:"mt-2 text-sm cfg-error",role:"alert",children:w}):null,"error"===p?(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",role:"alert",children:["Couldn't save: ",x," ",(0,t.jsx)("button",{type:"button",onClick:C,className:"underline hover:no-underline",children:"Reload"})]}):null,(0,t.jsx)("p",{className:"mt-2 text-sm cfg-ok",role:"status",children:v})]}):null]})}var o=e.i(10718),c=e.i(74904),d=e.i(33851),u=e.i(44079),m=e.i(52900),f=e.i(87303);function h({attribute:e,label:a,options:s,current:r,onPick:i,className:l}){let o=(0,n.useId)(),c=`avatar-${e}`;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{id:o,className:"avatar-group-label",children:a}),(0,t.jsx)("div",{className:l?`avatar-opt-grid ${l}`:"avatar-opt-grid",role:"radiogroup","aria-labelledby":o,children:s.map(n=>(0,t.jsxs)("label",{title:n.label,className:"avatar-opt",children:[(0,t.jsx)("input",{type:"radio",name:c,value:n.id,checked:r[e]===n.id,onChange:()=>i({[e]:n.id}),className:"avatar-opt-input"}),(0,t.jsx)("span",{className:"avatar-opt-art","aria-hidden":"true",children:(0,t.jsx)(f.default,{config:{...r,[e]:n.id},size:44})}),(0,t.jsx)("span",{children:n.label})]},n.id))})]})}var p=e.i(68541);function g({phase:e,onImport:n}){let a=(0,p.marketImportView)(e);return(0,t.jsxs)("div",{className:"mt-3","data-field":"marketplace-import",children:[(0,t.jsx)("button",{type:"button",onClick:n,disabled:a.busy,"aria-busy":a.busy,"aria-describedby":"cfg-market-import-status",className:"cfg-btn-ghost text-sm w-full sm:w-auto",children:"Import from Grok Marketplace"}),(0,t.jsx)("p",{id:"cfg-market-import-status",role:"status","aria-live":"polite",className:"error"===a.tone?"mt-2 text-sm cfg-error":"mt-2 text-xs cfg-faint",children:a.message})]})}var x=e.i(37947);let b="Fix the highlighted fields.",v=[{key:"avatar_accessory",label:"Avatar accessory"},{key:"avatar_color",label:"Avatar color"},{key:"avatar_eyes",label:"Avatar eyes"},{key:"avatar_hands",label:"Avatar hands"},{key:"description",label:"Description (rules)"},{key:"import_operation_id",label:"Import operation ID"},{key:"import_schema_version",label:"Import schema version"},{key:"memories",label:"Remembered facts"},{key:"name",label:"Name"},{key:"skill_content",label:"Skill content"},{key:"skill_path",label:"Skill path"},{key:"skill_present",label:"Skill present"},{key:"source_provider",label:"Source provider"},{key:"template_id",label:"Template ID"},{key:"template_url",label:"Template URL"},{key:"title",label:"Title"}];function j(e){return String(e).padStart(2,"0")}function y(e){let t=new Date(e);return`${t.getFullYear()}-${j(t.getMonth()+1)}-${j(t.getDate())} ${j(t.getHours())}:${j(t.getMinutes())}`}function N(e){let t=new Date(e);return`${j(t.getHours())}:${j(t.getMinutes())}:${j(t.getSeconds())}`}async function k(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}e.s(["default",0,function(){var e;let i=String((0,s.useParams)().id??""),j=(0,s.useRouter)(),[_,w]=(0,n.useState)(!1),[S,C]=(0,n.useState)(null),[$,A]=(0,n.useState)(!0),[T,E]=(0,n.useState)(!1),[R,I]=(0,n.useState)(!1),[D,P]=(0,n.useState)(0),[L,O]=(0,n.useState)(null),[U,F]=(0,n.useState)("clean"),[q,M]=(0,n.useState)(""),[H,B]=(0,n.useState)(0),[K,W]=(0,n.useState)(!1),[V,z]=(0,n.useState)(""),[J,Y]=(0,n.useState)("clean"),[G,Q]=(0,n.useState)(""),[X,Z]=(0,n.useState)(0),[ee,et]=(0,n.useState)({}),[en,ea]=(0,n.useState)(""),[es,er]=(0,n.useState)(!1),[ei,el]=(0,n.useState)(null),[eo,ec]=(0,n.useState)(!1),ed=(0,m.useRuntimeConnections)(),[eu,em]=(0,n.useState)(void 0),[ef,eh]=(0,n.useState)("clean"),[ep,eg]=(0,n.useState)(""),[ex,eb]=(0,n.useState)(0),[ev,ej]=(0,n.useState)(null),[ey,eN]=(0,n.useState)("clean"),[ek,e_]=(0,n.useState)(""),[ew,eS]=(0,n.useState)(0),{phase:eC,startImport:e$}=function(e){let[t,a]=(0,n.useState)("idle");return(0,n.useEffect)(()=>{let t=window.location.search;if(null===(0,p.importedBotId)(t))return;let n=new URL(window.location.href);n.searchParams.delete(p.IMPORT_RETURN_QUERY),window.history.replaceState(null,"",n.pathname+n.search);let s=!1;return(0,p.resolveImportReturn)(t,e,async e=>(await fetch(`/api/bots/${encodeURIComponent(e)}/config`,{cache:"no-store"})).ok).then(e=>{s||("open"===e.kind?window.location.replace(e.path):"missing"===e.kind&&a("missing"))}),()=>{s=!0}},[e]),{phase:t,startImport:async function(){a("checking");try{let e=await fetch(p.HANDOFF_STATUS_PATH,{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok)return void a("failed");if(t?.configured!==!0)return void a("unavailable");a("redirecting"),window.location.href=(0,p.handoffStartPath)(window.location.origin,window.location.pathname),setTimeout(()=>a(e=>"redirecting"===e?"idle":e),4e3)}catch{a("failed")}}}}(i);function eA(){A(!0),E(!1),P(e=>e+1)}(0,n.useEffect)(()=>{if(!i)return;let e=!1;return fetch(`/api/bots/${encodeURIComponent(i)}/sessions?status=all`,{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{e||em((t?.sessions??[]).map(e=>({ref:e.ref,title:e.title,status:e.status})))}).catch(()=>{e||em([])}),()=>{e=!0}},[i,D]),(0,n.useEffect)(()=>{if(!i)return;let e=!1;return fetch(`/api/bots/${encodeURIComponent(i)}/config`).then(async t=>{if(e)return;if(404===t.status){I(!0),C(null);return}if(!t.ok)throw Error("request failed");let n=await t.json();e||(C(n),O(n.bot.description??""),I(!1),E(!1))}).catch(()=>{e||E(!0)}).finally(()=>{e||A(!1)}),()=>{e=!0}},[i,D]);let eT=S?.bot.description??"",eE=null!==L&&L!==eT,eR=S?.skill.content??"",eI=K&&V!==eR,eD=S?(0,d.registrationFormFromBot)(S.bot):null,eP=es&&null!==ei&&JSON.stringify(ei)!==JSON.stringify(eD),eL=S?.bot.avatar_config??(0,x.resolveAvatar)(S?.bot??{}),eO=ev??eL,eU=null!==ev&&JSON.stringify(ev)!==JSON.stringify(eL),eF=eE||eI||eP||eU;function eq(e,t){k(t).then(t=>{t&&(ea(e),setTimeout(()=>ea(t=>t===e?"":t),2e3))})}async function eM(){if(S&&null!==L){F("saving"),M("");try{let e=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:S.bot.id,description:L})});if(!e.ok){let t="request failed";try{let n=await e.json();n.error&&(t=n.error)}catch{}throw Error(t)}let t=await fetch(`/api/bots/${encodeURIComponent(i)}/config`);if(!t.ok)throw Error("request failed");C(await t.json()),F("confirmed"),B(Date.now()),setTimeout(()=>{F(e=>"confirmed"===e?"clean":e)},5e3)}catch(e){F("error"),M(e instanceof Error?e.message:"request failed")}}}function eH(){S&&(el((0,d.registrationFormFromBot)(S.bot)),er(!0),ec(!1),eh("clean"),eg(""),ed.retry())}function eB(e){el(t=>t?{...t,...e}:t),eg(""),eh(e=>"error"===e?"clean":e)}function eK(){er(!1),el(null),eh("clean"),eg("")}function eW(e){ej({...ev??eL,...e}),eN("clean"),e_("")}async function eV(){if(S&&ev){eN("saving"),e_("");try{let e=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:S.bot.id,avatar:ev})});if(!e.ok){let t="request failed";try{let n=await e.json();n.error&&(t=n.error)}catch{}throw Error(t)}let t=await fetch(`/api/bots/${encodeURIComponent(i)}/config`);if(!t.ok)throw Error("request failed");C(await t.json()),ej(null),eN("confirmed"),eS(Date.now()),setTimeout(()=>{eN(e=>"confirmed"===e?"clean":e)},5e3)}catch(e){eN("error"),e_(e instanceof Error?e.message:"request failed")}}}async function ez(){if(S&&ei){if((0,d.hasRegistrationErrors)((0,d.registrationFormView)(ei,ed.state))){ec(!0),eh("error"),eg(b);return}eh("saving"),eg("");try{let e=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,d.registrationPatchBody)(S.bot.id,ei))});if(!e.ok){let t="request failed";try{let n=await e.json();n.error&&(t=n.error)}catch{}throw Error(t)}let t=await fetch(`/api/bots/${encodeURIComponent(i)}/config`);if(!t.ok)throw Error("request failed");C(await t.json()),er(!1),el(null),eh("confirmed"),eb(Date.now()),setTimeout(()=>{eh(e=>"confirmed"===e?"clean":e)},5e3)}catch(e){eh("error"),eg(e instanceof Error?e.message:"request failed")}}}function eJ(){z(S?.skill.content??""),W(!0),Y("clean"),Q("")}async function eY(){if(S&&(V.trim()||window.confirm("Delete this skill file?"))){Y("saving"),Q("");try{let e=await fetch(`/api/bots/${encodeURIComponent(i)}/skill`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:V})});if(!e.ok){let t="request failed";try{let n=await e.json();n.error&&(t=n.error)}catch{}throw Error(t)}let t=await e.json();C(e=>e?{...e,skill:t.skill,currentHash:t.currentHash}:e),W(!1),Y("confirmed"),Z(Date.now()),setTimeout(()=>{Y(e=>"confirmed"===e?"clean":e)},5e3)}catch(e){Y("error"),Q(e instanceof Error?e.message:"request failed")}}}if((0,n.useEffect)(()=>{if(!eF)return;let e=e=>{e.preventDefault()};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[eF]),R)return(0,t.jsx)("div",{className:"cfg-page flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"mb-4",children:"Agent not found."}),(0,t.jsx)(a.default,{href:"/",className:"cfg-link",children:"← Back to chat"})]})});if($&&!S)return(0,t.jsx)("div",{className:"cfg-page",children:(0,t.jsxs)("div",{className:"max-w-6xl mx-auto space-y-6",children:[(0,t.jsx)("div",{className:"h-6 w-32 rounded animate-pulse cfg-skel"}),(0,t.jsx)("div",{className:"h-20 rounded-lg animate-pulse cfg-skel"}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsx)("div",{className:"space-y-6",children:[0,1,2].map(e=>(0,t.jsx)("div",{className:"h-48 rounded-lg animate-pulse cfg-skel"},e))}),(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"h-64 rounded-lg animate-pulse cfg-skel"}),(0,t.jsx)("div",{className:"h-80 rounded-lg animate-pulse cfg-skel"})]})]})]})});if(T&&!S)return(0,t.jsx)("div",{className:"cfg-page",children:(0,t.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,t.jsx)(a.default,{href:"/",className:"cfg-link cfg-back text-sm",children:"← Back to chat"}),(0,t.jsxs)("header",{className:"mt-3 mb-6 flex flex-wrap items-center gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h1",{className:"text-xl font-bold truncate",children:"Agent configuration"}),(0,t.jsx)("p",{className:"text-sm cfg-faint truncate",children:"Couldn't load agent details."})]}),(0,t.jsxs)("div",{className:"ml-auto text-right",children:[(0,t.jsxs)("p",{className:"text-sm cfg-muted",children:["Current config hash: ",(0,t.jsx)("code",{className:"cfg-code",children:"—"})]}),(0,t.jsx)("p",{className:"text-sm mt-1",children:(0,t.jsx)("span",{className:"cfg-faint",children:"○ Not loaded"})})]})]}),(0,t.jsx)("div",{className:"grid gap-6 lg:grid-cols-2 items-start",children:[["Skills","Rules","Agent","Template source"],["Launch snapshots","Avatar"]].map(e=>(0,t.jsx)("div",{className:"min-w-0 space-y-6",children:e.map(e=>(0,t.jsxs)("div",{className:"cfg-card",children:[(0,t.jsx)("h2",{className:"cfg-title mb-2",children:e}),(0,t.jsxs)("p",{className:"text-sm cfg-muted",children:["Couldn't load this section."," ",(0,t.jsx)("button",{onClick:eA,className:"cfg-link",children:"Retry"})]})]},e))},e[0]))})]})});if(!S)return null;let{bot:eG,skill:eQ,currentHash:eX,snapshots:eZ}=S,e0=!!(eG.source_provider||eG.template_id||eG.template_url||eG.import_schema_version||eG.import_operation_id),e1="saving"===U?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):eE||"error"===U?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===U?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",N(H)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"}),e3="saving"===J?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):eI||"error"===J?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===J?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",N(X)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"}),e2="saving"===ef?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):eP||"error"===ef?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===ef?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",N(ex)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"}),e4="saving"===ey?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):eU||"error"===ey?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===ey?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",N(ew)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"});return(0,t.jsxs)("div",{className:"cfg-page",children:[(0,t.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,t.jsx)(a.default,{href:"/",onClick:function(e){eF&&!window.confirm("You have unsaved changes. Leave without saving?")&&e.preventDefault()},className:"cfg-link cfg-back text-sm",children:"← Back to chat"}),(0,t.jsxs)("header",{className:"mt-3 mb-6 flex flex-wrap items-center gap-4",children:[(0,t.jsx)(f.default,{bot:eG,size:48,title:`${eG.name} avatar`}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h1",{className:"text-xl font-bold truncate",children:eG.name}),(0,t.jsx)("p",{className:"text-sm cfg-faint truncate",children:eG.title||" "})]}),(0,t.jsxs)("div",{className:"ml-auto text-right",children:[(0,t.jsxs)("p",{className:"text-sm cfg-muted",children:["Current config hash:"," ",(0,t.jsx)("code",{className:"cfg-code",title:eX,children:eX.slice(0,8)})," ",(0,t.jsx)("button",{onClick:()=>eq("header",eX),className:"cfg-link text-sm",children:"header"===en?"Copied":"Copy"})]}),(0,t.jsx)("p",{className:"text-sm mt-1",children:eF?(0,t.jsxs)("span",{className:"cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):(0,t.jsx)("span",{className:"cfg-faint",children:"● Saved"})})]})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2 items-start","data-cfg-layout":"columns",children:[(0,t.jsxs)("div",{className:"min-w-0 space-y-6","data-cfg-column":"primary",children:[(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Skills"}),e3]}),"unsupported"===eQ.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm cfg-muted mb-3",children:"Unsupported name"}),(0,t.jsx)("p",{className:"text-sm cfg-muted",children:"Skill files need an agent name matching /^[A-Za-z0-9_-]+$/ — this name cannot map to a skill path."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-sm cfg-muted mb-3",children:[eQ.path," · ","present"===eQ.status?"Present":"Not present"]}),K?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("textarea",{value:V,onChange:e=>z(e.target.value),rows:8,className:"cfg-input text-sm"}),"error"===J&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",G,"."," ",(0,t.jsx)("button",{onClick:eY,className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)("button",{onClick:eY,disabled:!eI||"saving"===J,className:"flex-1 sm:flex-none cfg-btn-primary text-sm",children:"saving"===J?"Saving…":"Save"}),(0,t.jsx)("button",{onClick:function(){W(!1),Y("clean"),Q("")},disabled:!eI||"saving"===J,className:"flex-1 sm:flex-none cfg-btn-ghost text-sm",children:"Discard"})]})]}):"present"===eQ.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("pre",{className:"text-sm cfg-pre max-h-64 overflow-y-auto",children:eQ.content}),(0,t.jsx)("button",{onClick:eJ,className:"mt-3 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Edit"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm cfg-muted",children:"No skill file yet. Create SKILL.md to give this agent standing instructions."}),(0,t.jsx)("button",{onClick:eJ,className:"mt-3 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Create"})]}),(0,t.jsx)("p",{className:"mt-3 text-xs cfg-faint",children:"Appended verbatim as a system message at launch."})]})]}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Rules"}),e1]}),(0,t.jsx)("textarea",{value:L??"",onChange:e=>O(e.target.value),rows:8,className:"cfg-input cfg-input-sans text-sm"}),(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:"Sent verbatim as the standing-rules system message on every turn. This beats the user's request for detail or length."}),"error"===U&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",q,"."," ",(0,t.jsx)("button",{onClick:eM,className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)("button",{onClick:eM,disabled:!eE||"saving"===U,className:"flex-1 sm:flex-none cfg-btn-primary text-sm",children:"saving"===U?"Saving…":"Save"}),(0,t.jsx)("button",{onClick:function(){O(eT),F("clean"),M("")},disabled:!eE||"saving"===U,className:"flex-1 sm:flex-none cfg-btn-ghost text-sm",children:"Discard"})]})]}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Agent"}),e2]}),(()=>{if(!es||!ei){let e=(0,d.registrationReadView)(eG,eu);return(0,t.jsxs)("div",{"data-field":"runtime-read",children:[(0,t.jsx)("dl",{className:"text-sm",children:e.rows.map(e=>(0,t.jsxs)("div",{"data-row":e.key,className:"flex flex-col sm:flex-row sm:justify-between gap-x-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:e.label}),(0,t.jsx)("dd",{className:"sm:text-right break-words cfg-muted",children:e.value})]},e.key))}),e.notices.map(e=>(0,t.jsx)("p",{className:"text-sm cfg-dirty mt-2",children:e},e)),(0,t.jsx)("button",{onClick:eH,className:"mt-3 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Edit"})]})}let e=(0,d.registrationFormView)(ei,ed.state);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.RegistrationFields,{idPrefix:"cfg",variant:"config",form:ei,onChange:eB,view:e,showErrors:eo,connections:ed.state,onRetryConnections:ed.retry,onAddConnection:ed.add,workspacePlaceholder:(0,c.defaultWorkdirFor)(eG.id),workspaceHint:(0,c.configWorkspaceHint)(eG.id),sessions:eu,includeHomeSession:!0}),"error"===ef&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",role:"alert",children:[ep===b?ep:`Couldn't save: ${ep}.`," ",ep===b?null:(0,t.jsx)("button",{onClick:ez,className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)("button",{onClick:ez,disabled:!eP||"saving"===ef||e.submitDisabled,className:"flex-1 sm:flex-none cfg-btn-primary text-sm",children:"saving"===ef?"Saving…":"Save"}),(0,t.jsx)("button",{onClick:eK,disabled:"saving"===ef,className:"flex-1 sm:flex-none cfg-btn-ghost text-sm",children:eP?"Discard":"Cancel"})]})]})})()]}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsx)("h2",{className:"cfg-title mb-3",children:"Template source"}),!e0&&(0,t.jsx)("p",{className:"text-sm cfg-muted mb-3",children:"Created manually in Botmancers — no template source."}),(0,t.jsxs)("dl",{className:"text-sm",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Source provider"}),(0,t.jsx)("dd",{className:"text-right",children:eG.source_provider??"—"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Template ID"}),(0,t.jsx)("dd",{className:"text-right",children:eG.template_id??"—"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Template URL"}),(0,t.jsx)("dd",{className:"text-right break-all",children:eG.template_url?(e=eG.template_url).startsWith("http://")||e.startsWith("https://")?(0,t.jsx)("a",{href:eG.template_url,className:"cfg-link",children:eG.template_url}):eG.template_url:"—"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Import schema version"}),(0,t.jsx)("dd",{className:"text-right",children:eG.import_schema_version??"—"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Import operation ID"}),(0,t.jsx)("dd",{className:"text-right break-all",children:eG.import_operation_id??"—"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-4 py-1 border-y cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:"Imported at"}),(0,t.jsx)("dd",{className:"text-right",children:eG.import_timestamp?y(eG.import_timestamp):"—"})]})]}),(0,t.jsx)(g,{phase:eC,onImport:()=>{e$()}})]})]}),(0,t.jsxs)("div",{className:"min-w-0 space-y-6","data-cfg-column":"secondary",children:[(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsx)("h2",{className:"cfg-title mb-3",children:"Launch snapshots"}),0===eZ.length?(0,t.jsx)("p",{className:"text-sm cfg-muted",children:"No launches recorded yet."}):(0,t.jsx)("ul",{className:"space-y-3",children:eZ.map(e=>{let n=e.hash===eX,a=!!ee[e.id];return(0,t.jsxs)("li",{className:"cfg-row",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("p",{className:"text-sm",children:[y(e.created_at)," · ",e.id.slice(0,4),e.transport?` \xb7 ${e.transport}`:null]}),(0,t.jsx)("button",{onClick:()=>et(t=>({...t,[e.id]:!t[e.id]})),"aria-label":a?"Collapse snapshot detail":"Expand snapshot detail",className:"cfg-chevron px-1",children:a?"▾":"▸"})]}),(0,t.jsxs)("p",{className:"mt-1 text-sm",children:[(0,t.jsx)("code",{className:"cfg-code",children:e.hash.slice(0,12)})," ",(0,t.jsx)("button",{onClick:()=>eq(e.id,e.hash),className:"cfg-link text-sm",children:en===e.id?"Copied":"Copy"})]}),(0,t.jsx)("p",{className:"mt-1 text-sm",children:n?(0,t.jsx)("span",{className:"cfg-ok",children:"● Matches current config"}):(0,t.jsx)("span",{className:"cfg-faint",children:"○ Config changed since"})}),a&&(0,t.jsxs)("div",{className:"mt-3 pt-3 border-t cfg-line text-sm",children:[(0,t.jsxs)("p",{className:"cfg-muted break-all",children:[(0,t.jsx)("span",{className:"font-medium",children:"Launch ID:"})," ",e.id]}),(0,t.jsxs)("p",{className:"mt-1 cfg-muted break-all",children:[(0,t.jsx)("span",{className:"font-medium",children:"Hash:"})," ",(0,t.jsx)("code",{className:"cfg-code",children:e.hash})]}),(0,t.jsx)("dl",{className:"mt-2",children:v.map(n=>{let a=e.snapshot[n.key];return(0,t.jsxs)("div",{className:"py-1 border-t cfg-line",children:[(0,t.jsx)("dt",{className:"cfg-faint",children:n.label}),(0,t.jsx)("dd",{className:"whitespace-pre-wrap break-words",children:null==a?(0,t.jsx)("span",{className:"cfg-faint",children:"null"}):Array.isArray(a)?0===a.length?(0,t.jsx)("span",{className:"cfg-faint",children:"(none)"}):(0,t.jsx)("span",{className:"block max-h-32 overflow-y-auto",children:a.map(e=>`- ${e}`).join("\n")}):"boolean"==typeof a?String(a):""===a?(0,t.jsx)("span",{className:"cfg-faint",children:"(empty)"}):(0,t.jsx)("span",{className:"block max-h-32 overflow-y-auto",children:a})})]},n.key)})})]})]},e.id)})})]}),(0,t.jsx)(l,{agentId:eG.id,agentName:eG.name}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Avatar"}),e4]}),(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-4",children:[(0,t.jsx)(f.default,{config:eO,size:96,title:"Avatar live preview"}),(0,t.jsx)("p",{className:"text-sm cfg-muted",children:"Outline style: the color is the line color, nothing is filled. Pick an option to preview, then Save."})]}),(0,t.jsx)(h,{attribute:"color",label:"Color",options:x.AVATAR_COLORS,current:eO,onPick:eW,className:"mb-3"}),(0,t.jsx)(h,{attribute:"eyes",label:"Eyes",options:x.AVATAR_EYES,current:eO,onPick:eW,className:"mb-3"}),(0,t.jsx)(h,{attribute:"hands",label:"Hands",options:x.AVATAR_HANDS,current:eO,onPick:eW,className:"mb-3"}),(0,t.jsx)(h,{attribute:"accessory",label:"Accessory",options:x.AVATAR_ACCESSORIES,current:eO,onPick:eW}),"error"===ey&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",ek,"."," ",(0,t.jsx)("button",{onClick:eV,className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)("button",{onClick:eV,disabled:!eU||"saving"===ey,className:"flex-1 sm:flex-none cfg-btn-primary text-sm",children:"saving"===ey?"Saving…":"Save"}),(0,t.jsx)("button",{onClick:function(){ej(null),eN("clean"),e_("")},disabled:!eU||"saving"===ey,className:"flex-1 sm:flex-none cfg-btn-ghost text-sm",children:"Discard"})]})]}),(0,t.jsxs)("section",{className:"cfg-card cfg-danger","aria-labelledby":"cfg-danger-title",children:[(0,t.jsx)("h2",{id:"cfg-danger-title",className:"cfg-title mb-3",children:"Danger zone"}),(0,t.jsx)("p",{className:"text-sm cfg-muted",children:o.DELETE_REMOVES_COPY}),(0,t.jsx)("p",{className:"text-sm cfg-faint mt-2",children:o.DELETE_KEEPS_COPY}),(0,t.jsx)("button",{type:"button",onClick:()=>w(!0),className:"mt-3 delete-btn text-sm w-full sm:w-auto",children:"Delete agent"})]})]})]})]}),_?(0,t.jsx)(r.default,{ids:[eG.id],onCancel:()=>w(!1),onDeleted:e=>j.push(`/?deleted=${Math.max(e.length,1)}`)}):null]})}],13978)},74904,3136,e=>{"use strict";let t=["hermes","cursor","claude","codex","muse"],n={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},a="hermes";function s(e){return t.includes(String(e))?n[e]:String(e??"")}t.join("|"),e.s(["AGENTS",0,t,"AGENT_LABELS",0,n,"DEFAULT_AGENT",0,a,"agentLabel",0,s],3136);let r=t.map(e=>({value:e,label:n[e]}));function i(e){return s((e.agent??"").trim()||a)}function l(e){let t=e.runtime_connection;return t&&t.label.trim()?t.label.trim():(e.runtime_connection_id??"").trim()?(e.runtime_connection_id??"").trim():null}function o(e){return`~/.botmancers/${e}`}let c="~/.botmancers/{agentID}",d=`Default: ${c} — {agentID} is this agent's ID, assigned at creation.`;function u(e){return String(e).padStart(2,"0")}let m=[{prefix:"[Agent failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck handoff]",kind:"handoff",label:"Agent launch"},{prefix:"[Deck run]",kind:"run",label:"Agent run"},{prefix:"[Deck review]",kind:"review",label:"Agent review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent resume"},{prefix:"[Deck result]",kind:"result",label:"Agent result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent needs setup"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent needs setup"}];e.s(["AGENT_OPTIONS",0,r,"NEW_AGENT_WORKSPACE_HINT",0,d,"WORKSPACE_TEMPLATE",0,c,"agentEventDisplay",0,function(e){let t=String(e??"").trimStart(),n=m.find(e=>t.startsWith(e.prefix));return n?{label:n.label,detail:t.slice(n.prefix.length).trim()}:null},"botAgentLabel",0,i,"botConnectionLabel",0,l,"configWorkspaceHint",0,function(e){return`Default: ${o(e)} — leave blank to use it.`},"defaultWorkdirFor",0,o,"formatClock",0,function(e){let t=new Date(e);return`${u(t.getHours())}:${u(t.getMinutes())}:${u(t.getSeconds())}`},"rosterRuntimeLine",0,function(e){let t=`Agent: ${i(e)} \xb7 `+(l(e)??"No connection");return!1===e.launchable?t+" — see Config":t}],74904)},50814,63352,e=>{"use strict";function t(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}let n="Not reported";function a(e){return e.toFixed(1).replace(/\.0$/,"")}function s(e){return e.toLocaleString("en-US")}function r(e){return 0===e?"$0.00":e>=.01?`$${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:e<1e-4?"<$0.0001":`$${e.toFixed(4)}`}let i={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function l(e,t,n){return"cost_usd"===e?r(t):n?s(t):t<1e3?String(t):t<999950?`${a(t/1e3)}k`:t<99995e4?`${a(t/1e6)}M`:`${a(t/1e9)}B`}function o(e){return`${e} ${1===e?"run":"runs"}`}function c(e,t,a=!1){let s=i[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:s,text:n,quality:"unavailable",coverage:t&&t.total>0?`0 of ${o(t.total)} reported`:"No runs recorded",label:`${s}: not reported`};let r=l(e,t.sum,a),d=l(e,t.sum,!0);return"partial"===t.quality?{name:s,text:r,quality:"partial",coverage:`Partial: ${t.known} of ${o(t.total)} reported`,label:`${s}: at least ${d}, partial, reported by ${t.known} of ${o(t.total)}`}:{name:s,text:r,quality:"complete",coverage:`All ${o(t.total)} reported`,label:`${s}: ${d}, reported by all ${o(t.total)}`}}e.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(e){let t="source"===e.role?"Started the session":"Resumed the session";return`${t} \xb7 ${e.outcome??"running"}`},"emptySessionsCopy",0,function(e,t){return"active"===e?`${t} has no active sessions.`:"ended"===e?`${t} has no ended sessions.`:`${t} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,t,"runtimeLabel",0,function(e){return e.agent.transport?`${e.agent.adapter} \xb7 ${e.agent.transport}`:e.agent.adapter},"sessionStateTags",0,function(e){let t=[];return(e.home&&t.push("Home"),e.state?.availability==="missing")?[...t,"Missing"]:(e.state?.lifecycle==="archived"&&t.push("Archived"),e.state?.busy&&t.push("Busy"),(e.resumable||e.state?.resumable===!0)&&t.push("Resumable"),t)},"sessionUsageLine",0,function(e){let t=c("input_tokens",e?.input_tokens),a=c("output_tokens",e?.output_tokens),s=c("cost_usd",e?.cost_usd),r=[t,a,s];if(r.every(e=>"unavailable"===e.quality))return{text:n,label:"Usage: not reported",quality:"unavailable",partial:!1};let i=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===a.quality?"output not reported":`${a.text} out`,"unavailable"===s.quality?"cost not reported":s.text].join(" · "),l=r.some(e=>"partial"===e.quality),o=l||r.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:i,label:`Reported usage: ${r.map(e=>e.label).join("; ")}`,quality:o,partial:l}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,c,"usageSampleLabel",0,function(e,t){let n="turn"===e.kind?"start"===e.turn_kind?"provider turn, started":"provider turn":"resume"===e.turn_kind?"resumed":"started";return`Run ${t+1} \xb7 ${n}`},"usageSampleValues",0,function(e){return{input:null===e.input_tokens?n:s(e.input_tokens),output:null===e.output_tokens?n:s(e.output_tokens),cost:null===e.cost_usd?n:r(e.cost_usd)}},"workRequestLabel",0,function(e){var t;let n=e.origin.work_request;return n?`${(t=n.execution_kind)?t[0].toUpperCase()+t.slice(1):t} \xb7 ${n.state}`:null}],63352);let d={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},u=["queued","extracting","delivering","completed","failed","cancelled"],m=["completed","failed","cancelled"];function f(e,t){switch(t){case"queued":return"Queued";case"extracting":return"ask"===e?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===e?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function h(e,t=140){let n=String(e??"").split("\n").map(e=>e.trim()).filter(e=>e.length>0).join(" ");return n.length>t?`${n.slice(0,t-1).trimEnd()}…`:n}function p(e,t){return t.updated_at-e.updated_at||t.created_at-e.created_at||(e.id<t.id?-1:+(e.id>t.id))}e.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(e){return`/exchanges?id=${encodeURIComponent(e)}`},"eventLabel",0,function(e,t){let n=e.data??{},a=t.source.agent_name,s=t.destination?.agent_name??"the destination Agent",r="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${a}'s session a question`:`You handed ${a}'s session to ${s}`;case"hop_queued":if("deliver"===r)return`Handoff queued for ${s}'s new session`;return"extract"===r?`Handoff extraction queued in ${a}'s session`:`Question queued for ${a}'s session`;case"hop_started":if("deliver"===r)return`${s} started a new session`;return"extract"===r?`${a}'s session started extracting the handoff`:`${a}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&u.includes(n.to)?n.to:null;return e?`Now ${f(t.mode,e).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${t.origin?.label??"the origin thread"}${n.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof n.reason?`: ${n.reason}`:""}`;case"destination_replied":return`${s} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${s}'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 e.type.replace(/_/g," ")}},"excerpt",0,h,"exchangeRequestBody",0,function(e,t,n){let a={mode:e.mode,idempotency_key:n,origin_conversation_id:e.originConversationId,source:{agent_id:t.agentId,session_ref:t.sessionRef},instruction:e.instruction.trim()};return"continue"===e.mode&&(a.destination={agent_id:e.destinationAgentId}),a},"failureAdvice",0,function(e){if("failed"!==e.state)return null;switch(e.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(e){return t(e)},"instructionHeading",0,function(e){return"ask"===e?"Question":"Objective"},"ledgerAgents",0,function(e){let t=new Map;for(let n of e)t.set(n.source.agent_id,n.source.agent_name),n.destination&&t.set(n.destination.agent_id,n.destination.agent_name);return[...t.entries()].map(([e,t])=>({id:e,name:t})).sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))},"ledgerRows",0,function(e,t){return e.filter(e=>("all"===t.mode||e.mode===t.mode)&&("active"!==t.state||!e.terminal)&&("all"===t.state||"active"===t.state||e.state===t.state)&&(!t.agentId||e.source.agent_id===t.agentId||e.destination?.agent_id===t.agentId)).sort(p)},"ledgerView",0,function(e,t,n){return null===e?t?"error":"loading":0===e.length?"empty":0===n.length?"filtered-out":"rows"},"linkRoleLabel",0,function(e){let t={origin:"Started here",source:"Source session",destination:"Destination"};return e.map(e=>t[e]).join(" · ")},"liveStateLabel",0,function(e){var t;return e.cancel_requested&&(t=e.state,!m.includes(t))?"Cancelling…":f(e.mode,e.state)},"modeLabel",0,function(e){return"ask"===e?"Ask":"Continue"},"outcomeLine",0,function(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${h(e.outcome.answer,200)}`:`Answered in ${t}.`}let t=e.destination?.agent_name??"The destination Agent";return e.outcome.reply?`${t} picked it up in a new session: ${h(e.outcome.reply,200)}`:`${t} picked it up in a new session.`}return"failed"===e.state?e.failure?.message||"The exchange failed.":"cancelled"===e.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(e,t,n,a,s){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:s,..."resume"===e?{approve_write:a}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return d["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,function(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`},"sessionRowActions",0,function(e){let t;if(e.actions)t=e.actions;else{let n="ended"===e.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:e.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${e.agent.name}’s current runtime.`},a=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:a,resume:{available:!1,code:"action_unavailable",reason:`${d.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:a}}return["ask","resume","handoff"].map(e=>({action:e,label:d[e],availability:t[e]}))},"stateTone",0,function(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"},"submitErrorMessage",0,function(e,t){switch(e){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 t||"That Agent can’t launch yet. Choose its runtime connection and session scope in Config.";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 t||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return t||"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 t||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(e,t){let n=new URLSearchParams;if(e.thread_agent_id)return n.set("agent",e.thread_agent_id),t&&n.set("exchange",t),`/?${n.toString()}`;if("group"!==e.kind)return null;t&&n.set("exchange",t);let a=n.toString();return`/threads/${encodeURIComponent(e.id)}${a?`?${a}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),a="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${a}.`,e.originConversationId||(t.origin="Choose the thread that follows this exchange."),"continue"!==e.mode||e.destinationAgentId||(t.destination="Choose the Agent who continues the work."),t},"validateResumeDraft",0,function(e,t){let n={};return e.trim()?e.length>4e3&&(n.instruction="Keep it under 4000 characters."):n.instruction="Enter what to work on.",t||(n.approval="Approve edits in this session to resume work here."),n}],50814)},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return x},useLinkStatus:function(){return v}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=e.r(90809),i=e.r(43476),l=r._(e.r(71645)),o=e.r(95057),c=e.r(8372),d=e.r(18581),u=e.r(18967),m=e.r(5550),f=e.r(88540),h=e.r(91949),p=e.r(73668),g=e.r(9396);function x(t){var n;let a,s,r,[x,v]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,l.useRef)(null),{href:y,as:N,children:k,prefetch:_=null,passHref:w,replace:S,shallow:C,scroll:$,onClick:A,onMouseEnter:T,onTouchStart:E,legacyBehavior:R=!1,onNavigate:I,transitionTypes:D,ref:P,unstable_dynamicOnHover:L,...O}=t;a=k,R&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let U=l.default.useContext(c.AppRouterContext),F=!1!==_,q=!1===_?"none":!0===_?"full":"auto",M="none"!==q?"auto"===q?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,H="string"==typeof(n=N||y)?n:(0,o.formatUrl)(n);if(R){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=l.default.Children.only(a)}let B=R?s&&"object"==typeof s&&s.ref:P,K,W=l.default.useCallback(e=>(null!==U&&(j.current=(0,h.mountLinkInstance)(e,H,U,M,F,v,K)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,H,U,M,v,K]),V={ref:(0,d.useMergedRef)(W,B),onClick(t){R||"function"!=typeof A||A(t),R&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!U||t.defaultPrevented||function(t,n,a,s,r,i,o,c="none"){if("u">typeof window){let d,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,p.isLocalURL)(n)){s&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:m}=e.r(99781);l.default.startTransition(()=>{m(n,s?"replace":"push",!1===r?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,a.current,o,c)})}}(t,H,j,S,$,I,D,q)},onMouseEnter(e){R||"function"!=typeof T||T(e),R&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),U&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof E||E(e),R&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),U&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,u.isAbsoluteUrl)(H)?V.href=H:R&&!w&&("a"!==s.type||"href"in s.props)||(V.href=(0,m.addBasePath)(H)),r=R?l.default.cloneElement(s,V):(0,i.jsx)("a",{...O,...V,children:a}),(0,i.jsx)(b.Provider,{value:x,children:r})}let b=(0,l.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,l.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return s}});let a=e.r(71645);function s(e,t){let n=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=n.current;e&&(n.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(n.current=r(e,a)),t&&(s.current=r(t,a))},[e,t])}function r(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return r}});let a=e.r(18967),s=e.r(52817);function r(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,s.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={assign:function(){return o},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return l}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});function r(e){let t={};for(let[n,a]of e.entries()){let e=t[n];void 0===e?t[n]=a:Array.isArray(e)?e.push(a):t[n]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[n,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(n,i(e));else t.set(n,i(a));return t}function o(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,a]of n.entries())e.append(t,a)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return c},urlObjectKeys:function(){return o}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:n}=e,a=e.protocol||"",s=e.pathname||"",l=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:n&&(c=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(r.urlQueryToSearchParams(o)));let d=e.search||o&&`?${o}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==c?(c="//"+(c||""),s&&"/"!==s[0]&&(s="/"+s)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),s=s.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${c}${s}${d}${l}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return l(e)}},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={DecodeError:function(){return x},MiddlewareNotFoundError:function(){return y},MissingStaticPage:function(){return j},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return p},ST:function(){return g},WEB_VITALS:function(){return r},execOnce:function(){return i},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return o},isResSent:function(){return m},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return N}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,n=!1;return(...a)=>(n||(n=!0,t=e(...a)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&l.test(e)};function c(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function m(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(n&&m(n))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}let p="u">typeof performance,g=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class x extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class y extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function N(e){return JSON.stringify({message:e.message,stack:e.stack})}},18566,(e,t,n)=>{t.exports=e.r(76562)}]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "botmancers",
3
- "version": "0.5.0",
4
- "commit": "47984e52c3b4b718ad944d03532e9b80efc95529",
3
+ "version": "0.7.0",
4
+ "commit": "60fab8ad681e26b6a810aa2527805bc27a92f97e",
5
5
  "dirty": false,
6
6
  "next": "16.3.8"
7
7
  }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsoleLogger = exports.LogLevel = void 0;
4
+ /**
5
+ * Severity levels for log entries
6
+ */
7
+ var LogLevel;
8
+ (function (LogLevel) {
9
+ LogLevel["ERROR"] = "error";
10
+ LogLevel["WARN"] = "warn";
11
+ LogLevel["INFO"] = "info";
12
+ LogLevel["DEBUG"] = "debug";
13
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
14
+ /**
15
+ * Default logger which logs to stdout and stderr
16
+ */
17
+ class ConsoleLogger {
18
+ constructor() {
19
+ this.level = LogLevel.INFO;
20
+ this.name = '';
21
+ }
22
+ getLevel() {
23
+ return this.level;
24
+ }
25
+ /**
26
+ * Sets the instance's log level so that only messages which are equal or more severe are output to the console.
27
+ */
28
+ setLevel(level) {
29
+ this.level = level;
30
+ }
31
+ /**
32
+ * Set the instance's name, which will appear on each log line before the message.
33
+ */
34
+ setName(name) {
35
+ this.name = name;
36
+ }
37
+ /**
38
+ * Log a debug message
39
+ */
40
+ // biome-ignore lint/suspicious/noExplicitAny: can log anything
41
+ debug(...msg) {
42
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.DEBUG, this.level)) {
43
+ console.debug(ConsoleLogger.labels.get(LogLevel.DEBUG), this.name, ...msg);
44
+ }
45
+ }
46
+ /**
47
+ * Log an info message
48
+ */
49
+ // biome-ignore lint/suspicious/noExplicitAny: can log anything
50
+ info(...msg) {
51
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.INFO, this.level)) {
52
+ console.info(ConsoleLogger.labels.get(LogLevel.INFO), this.name, ...msg);
53
+ }
54
+ }
55
+ /**
56
+ * Log a warning message
57
+ */
58
+ // biome-ignore lint/suspicious/noExplicitAny: can log anything
59
+ warn(...msg) {
60
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.WARN, this.level)) {
61
+ console.warn(ConsoleLogger.labels.get(LogLevel.WARN), this.name, ...msg);
62
+ }
63
+ }
64
+ /**
65
+ * Log an error message
66
+ */
67
+ // biome-ignore lint/suspicious/noExplicitAny: can log anything
68
+ error(...msg) {
69
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.ERROR, this.level)) {
70
+ console.error(ConsoleLogger.labels.get(LogLevel.ERROR), this.name, ...msg);
71
+ }
72
+ }
73
+ /**
74
+ * Helper to compare two log levels and determine if a is equal or more severe than b
75
+ */
76
+ static isMoreOrEqualSevere(a, b) {
77
+ return ConsoleLogger.severity[a] >= ConsoleLogger.severity[b];
78
+ }
79
+ }
80
+ exports.ConsoleLogger = ConsoleLogger;
81
+ /** Map of labels for each log level */
82
+ ConsoleLogger.labels = (() => {
83
+ const entries = Object.entries(LogLevel);
84
+ const map = entries.map(([key, value]) => [value, `[${key}] `]);
85
+ return new Map(map);
86
+ })();
87
+ /** Map of severity as comparable numbers for each log level */
88
+ ConsoleLogger.severity = {
89
+ [LogLevel.ERROR]: 400,
90
+ [LogLevel.WARN]: 300,
91
+ [LogLevel.INFO]: 200,
92
+ [LogLevel.DEBUG]: 100,
93
+ };
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@slack/logger",
3
+ "version": "4.0.1",
4
+ "description": "Logging utility used by Node Slack SDK",
5
+ "author": "Slack Technologies, LLC",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "slack",
9
+ "logging"
10
+ ],
11
+ "main": "dist/index.js",
12
+ "types": "dist/index.d.ts",
13
+ "files": [
14
+ "dist/**/*"
15
+ ],
16
+ "engines": {
17
+ "node": ">= 18",
18
+ "npm": ">= 8.6.0"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/slackapi/node-slack-sdk.git"
23
+ },
24
+ "homepage": "https://docs.slack.dev/tools/node-slack-sdk/",
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/slackapi/node-slack-sdk/issues"
30
+ },
31
+ "scripts": {
32
+ "build": "npm run build:clean && tsc",
33
+ "build:clean": "shx rm -rf ./dist",
34
+ "docs": "npx typedoc --plugin typedoc-plugin-markdown",
35
+ "prepack": "npm run build",
36
+ "test": "npm run test:unit",
37
+ "test:node18": "npm run build && node --test --test-reporter=spec --import tsx --test src/index.test.ts",
38
+ "test:unit": "npm run build && node --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=junit --test-reporter-destination=test-results.xml --import tsx --test src/index.test.ts"
39
+ },
40
+ "dependencies": {
41
+ "@types/node": ">=18"
42
+ }
43
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@slack/socket-mode",
3
+ "version": "2.0.7",
4
+ "description": "Official library for using the Slack Platform's Socket Mode API",
5
+ "author": "Slack Technologies, LLC",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "slack",
9
+ "socket",
10
+ "websocket",
11
+ "firewall",
12
+ "bot",
13
+ "client",
14
+ "http",
15
+ "websocket",
16
+ "api",
17
+ "proxy",
18
+ "state",
19
+ "connection"
20
+ ],
21
+ "main": "dist/src/index.js",
22
+ "types": "./dist/src/index.d.ts",
23
+ "files": [
24
+ "dist/**/*"
25
+ ],
26
+ "engines": {
27
+ "node": ">= 18",
28
+ "npm": ">= 8.6.0"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/slackapi/node-slack-sdk.git"
33
+ },
34
+ "homepage": "https://docs.slack.dev/tools/node-slack-sdk/socket-mode/",
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/slackapi/node-slack-sdk/issues"
40
+ },
41
+ "scripts": {
42
+ "build": "npm run build:clean && tsc",
43
+ "build:clean": "shx rm -rf ./dist",
44
+ "docs": "npx typedoc --plugin typedoc-plugin-markdown",
45
+ "prepack": "npm run build",
46
+ "test": "npm run test:unit && npm run test:integration",
47
+ "test:node18": "npm run build && bash -c 'node --test --test-reporter=spec --import tsx src/*.test.ts' && npm run test:integration",
48
+ "test:integration": "npm run build && node --import tsx --test test/integration.test.js",
49
+ "test:unit": "npm run build && node --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=junit --test-reporter-destination=test-results.xml --import tsx --test src/*.test.ts",
50
+ "watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm test"
51
+ },
52
+ "dependencies": {
53
+ "@slack/logger": "^4.0.1",
54
+ "@slack/web-api": "^7.15.0",
55
+ "@types/node": ">=18",
56
+ "@types/ws": "^8",
57
+ "eventemitter3": "^5",
58
+ "ws": "^8"
59
+ },
60
+ "devDependencies": {
61
+ "@types/proxyquire": "^1.3.31",
62
+ "@types/sinon": "^21",
63
+ "nodemon": "^3.1.0",
64
+ "proxyquire": "^2.1.3",
65
+ "sinon": "^21"
66
+ }
67
+ }
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SlackWebSocket = exports.WS_READY_STATES = void 0;
37
+ const ws_1 = require("ws");
38
+ const errors_1 = require("./errors");
39
+ const logger_1 = __importStar(require("./logger"));
40
+ // Maps ws `readyState` to human readable labels https://github.com/websockets/ws/blob/HEAD/doc/ws.md#ready-state-constants
41
+ exports.WS_READY_STATES = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];
42
+ /**
43
+ * Encapsulates the Slack-specific details around establishing a WebSocket connection with the Slack backend.
44
+ * Manages the ping/pong heartbeat of the connection.
45
+ */
46
+ class SlackWebSocket {
47
+ constructor({ url, client, httpAgent, logger, logLevel = logger_1.LogLevel.INFO, pingInterval = 5000, pingPongLoggingEnabled = false, serverPingTimeoutMS = 30000, clientPingTimeoutMS = 5000, }) {
48
+ this.options = {
49
+ url,
50
+ client,
51
+ httpAgent,
52
+ logLevel,
53
+ pingInterval,
54
+ pingPongLoggingEnabled,
55
+ serverPingTimeoutMS,
56
+ clientPingTimeoutMS,
57
+ };
58
+ if (logger) {
59
+ this.logger = logger;
60
+ }
61
+ else {
62
+ this.logger = logger_1.default.getLogger(SlackWebSocket.loggerName, logLevel);
63
+ }
64
+ this.websocket = null;
65
+ this.closeFrameReceived = false;
66
+ }
67
+ /**
68
+ * Establishes a connection with the Slack backend
69
+ */
70
+ connect() {
71
+ this.logger.debug('Initiating new WebSocket connection.');
72
+ const options = {
73
+ perMessageDeflate: false,
74
+ agent: this.options.httpAgent,
75
+ };
76
+ this.websocket = new ws_1.WebSocket(this.options.url, options);
77
+ this.websocket.addEventListener('open', (_event) => {
78
+ this.logger.debug('WebSocket open event received (connection established)!');
79
+ this.monitorPingToSlack();
80
+ });
81
+ this.websocket.addEventListener('error', (event) => {
82
+ this.logger.error(`WebSocket error occurred: ${event.message}`);
83
+ this.disconnect();
84
+ this.options.client.emit('error', (0, errors_1.websocketErrorWithOriginal)(event.error));
85
+ });
86
+ this.websocket.on('message', (msg, isBinary) => {
87
+ this.options.client.emit('ws_message', msg, isBinary);
88
+ });
89
+ this.websocket.on('close', (code, data) => {
90
+ this.logger.debug(`WebSocket close frame received (code: ${code}, reason: ${data.toString()})`);
91
+ this.closeFrameReceived = true;
92
+ this.disconnect();
93
+ });
94
+ // Confirm WebSocket connection is still active
95
+ this.websocket.on('ping', (data) => {
96
+ // Note that ws' `autoPong` option is true by default, so no need to respond to ping.
97
+ // see https://github.com/websockets/ws/blob/2aa0405a5e96754b296fef6bd6ebdfb2f11967fc/doc/ws.md#new-websocketaddress-protocols-options
98
+ if (this.options.pingPongLoggingEnabled) {
99
+ this.logger.debug(`WebSocket received ping from Slack server (data: ${data.toString()})`);
100
+ }
101
+ this.monitorPingFromSlack();
102
+ });
103
+ this.websocket.on('pong', (data) => {
104
+ if (this.options.pingPongLoggingEnabled) {
105
+ this.logger.debug(`WebSocket received pong from Slack server (data: ${data.toString()})`);
106
+ }
107
+ this.lastPongReceivedTimestamp = Date.now();
108
+ });
109
+ }
110
+ /**
111
+ * Disconnects the WebSocket connection with Slack, if connected.
112
+ */
113
+ disconnect() {
114
+ if (this.websocket) {
115
+ // Disconnecting a WebSocket involves a close frame handshake so we check if we've already received a close frame.
116
+ // If so, we can terminate the underlying socket connection and let the client know.
117
+ if (this.closeFrameReceived) {
118
+ this.logger.debug('Terminating WebSocket (close frame received).');
119
+ this.terminate();
120
+ }
121
+ else if (this.websocket.readyState === ws_1.WebSocket.CLOSING) {
122
+ // A close frame was already sent but the peer hasn't responded. Force-terminate rather than
123
+ // waiting for the ws library's closeTimeout (~30s) while the ping monitor logs repeated warnings.
124
+ this.logger.debug('Terminating WebSocket (close frame sent but no response, force-terminating).');
125
+ this.terminate();
126
+ }
127
+ else {
128
+ // If we haven't received a close frame yet, then we send one to the peer, expecting to receive a close frame
129
+ // in response.
130
+ this.logger.debug('Sending close frame (status=1000).');
131
+ this.websocket.close(1000); // 1000 = Normal Closure
132
+ }
133
+ }
134
+ else {
135
+ this.logger.debug('WebSocket already disconnected, flushing remainder.');
136
+ this.terminate();
137
+ }
138
+ }
139
+ /**
140
+ * Clean up any underlying intervals, timeouts and the WebSocket.
141
+ */
142
+ terminate() {
143
+ var _a, _b;
144
+ (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
145
+ (_b = this.websocket) === null || _b === void 0 ? void 0 : _b.terminate();
146
+ this.websocket = null;
147
+ clearTimeout(this.serverPingTimeout);
148
+ clearInterval(this.clientPingTimeout);
149
+ // Emit event back to client letting it know connection has closed (in case it needs to reconnect if
150
+ // reconnecting is enabled)
151
+ this.options.client.emit('close');
152
+ }
153
+ /**
154
+ * Returns true if the underlying WebSocket connection is active, meaning the underlying
155
+ * {@link https://github.com/websockets/ws/blob/master/doc/ws.md#ready-state-constants WebSocket ready state is "OPEN"}.
156
+ */
157
+ isActive() {
158
+ // python equiv: SocketModeClient.is_connected
159
+ if (!this.websocket) {
160
+ this.logger.debug('isActive(): websocket not instantiated!');
161
+ return false;
162
+ }
163
+ this.logger.debug(`isActive(): websocket ready state is ${exports.WS_READY_STATES[this.websocket.readyState]}`);
164
+ return this.websocket.readyState === 1; // readyState=1 is "OPEN"
165
+ }
166
+ /**
167
+ * Retrieve the underlying WebSocket readyState. Returns `undefined` if the WebSocket has not been instantiated,
168
+ * otherwise will return a number between 0 and 3 inclusive representing the ready states.
169
+ * The ready state constants are documented in the {@link https://github.com/websockets/ws/blob/master/doc/ws.md#ready-state-constants `ws` API docs }
170
+ */
171
+ get readyState() {
172
+ var _a;
173
+ return (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.readyState;
174
+ }
175
+ /**
176
+ * Sends data via the underlying WebSocket. Accepts an errorback argument.
177
+ */
178
+ send(data, cb) {
179
+ var _a;
180
+ (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.send(data, cb);
181
+ }
182
+ /**
183
+ * Confirms WebSocket connection is still active; fires whenever a ping event is received
184
+ * If we don't receive another ping from the peer before the timeout, we initiate closing the connection.
185
+ */
186
+ monitorPingFromSlack() {
187
+ clearTimeout(this.serverPingTimeout);
188
+ this.serverPingTimeout = setTimeout(() => {
189
+ this.logger.warn(`A ping wasn't received from the server before the timeout of ${this.options.serverPingTimeoutMS}ms!`);
190
+ this.disconnect();
191
+ }, this.options.serverPingTimeoutMS);
192
+ }
193
+ /**
194
+ * Monitors WebSocket connection health; sends a ping to peer, and expects a pong within a certain timeframe.
195
+ * If that expectation is not met, we disconnect the websocket.
196
+ */
197
+ monitorPingToSlack() {
198
+ this.lastPongReceivedTimestamp = undefined;
199
+ let pingAttemptCount = 0;
200
+ clearInterval(this.clientPingTimeout);
201
+ this.clientPingTimeout = setInterval(() => {
202
+ var _a;
203
+ const now = Date.now();
204
+ try {
205
+ const pingMessage = `Ping from client (${now})`;
206
+ (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.ping(pingMessage);
207
+ if (this.lastPongReceivedTimestamp === undefined) {
208
+ pingAttemptCount += 1;
209
+ }
210
+ else {
211
+ // if lastPongReceivedTimestamp is defined, then the server has responded to pings at some point in the past
212
+ pingAttemptCount = 0;
213
+ }
214
+ if (this.options.pingPongLoggingEnabled) {
215
+ this.logger.debug(`Sent ping to Slack: ${pingMessage}`);
216
+ }
217
+ }
218
+ catch (e) {
219
+ this.logger.error(`Failed to send ping to Slack (error: ${e})`);
220
+ this.disconnect();
221
+ return;
222
+ }
223
+ // default invalid state is: sent > 3 pings to the server and it never responded with a pong
224
+ let isInvalid = pingAttemptCount > 3;
225
+ if (this.lastPongReceivedTimestamp !== undefined) {
226
+ // secondary invalid state is: if we did receive a pong from the server,
227
+ // has the elapsed time since the last pong exceeded the client ping timeout
228
+ const millis = now - this.lastPongReceivedTimestamp;
229
+ isInvalid = millis > this.options.clientPingTimeoutMS;
230
+ }
231
+ if (isInvalid) {
232
+ this.logger.warn(`A pong wasn't received from the server before the timeout of ${this.options.clientPingTimeoutMS}ms!`);
233
+ this.disconnect();
234
+ }
235
+ }, this.options.clientPingTimeoutMS / 3);
236
+ this.logger.debug('Started monitoring pings to and pongs from Slack.');
237
+ }
238
+ }
239
+ exports.SlackWebSocket = SlackWebSocket;
240
+ // python equiv: Connection
241
+ SlackWebSocket.loggerName = 'SlackWebSocket';
242
+ //# sourceMappingURL=SlackWebSocket.js.map