botmancers 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (969) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +9 -5
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +9 -0
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/index.js +1 -0
  7. package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/package.json +1 -0
  8. package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/index.js +1 -0
  9. package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/package.json +1 -0
  10. package/app/.next/prerender-manifest.json +3 -3
  11. package/app/.next/required-server-files.json +8 -3
  12. package/app/.next/routes-manifest.json +67 -0
  13. package/app/.next/server/app/_global-error/page.js +1 -1
  14. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/app/.next/server/app/_global-error.html +1 -1
  16. package/app/.next/server/app/_global-error.rsc +1 -1
  17. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  18. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/app/.next/server/app/_not-found/page.js +1 -1
  21. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/_not-found.html +1 -1
  24. package/app/.next/server/app/_not-found.rsc +2 -2
  25. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  26. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/app/.next/server/app/api/agent-deck/decks/route.js +3 -3
  29. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
  30. package/app/.next/server/app/api/agent-deck/settings/route.js +3 -3
  31. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
  32. package/app/.next/server/app/api/bots/[id]/config/route.js +3 -3
  33. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +5 -6
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +3 -3
  37. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
  38. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  39. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/build-manifest.json +12 -0
  40. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
  41. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +11 -0
  42. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -0
  43. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  44. package/app/.next/server/app/api/bots/[id]/sessions/route.js +5 -6
  45. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
  46. package/app/.next/server/app/api/bots/[id]/share-policy/route/app-paths-manifest.json +3 -0
  47. package/app/.next/server/app/api/bots/[id]/share-policy/route/build-manifest.json +12 -0
  48. package/app/.next/server/app/api/bots/[id]/share-policy/route/server-reference-manifest.json +4 -0
  49. package/app/.next/server/app/api/bots/[id]/share-policy/route.js +11 -0
  50. package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -0
  51. package/app/.next/server/app/api/bots/[id]/share-policy/route_client-reference-manifest.js +3 -0
  52. package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
  53. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  54. package/app/.next/server/app/api/bots/availability/route.js +1 -1
  55. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  56. package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
  57. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  58. package/app/.next/server/app/api/bots/import/route.js +3 -3
  59. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/bots/manage/route.js +3 -3
  61. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
  63. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  64. package/app/.next/server/app/api/bots/route.js +6 -6
  65. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  66. package/app/.next/server/app/api/conversations/[id]/approve/route.js +4 -4
  67. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  68. package/app/.next/server/app/api/conversations/[id]/deny/route.js +4 -4
  69. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/conversations/[id]/draft/route.js +4 -4
  71. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
  73. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/conversations/[id]/messages/route.js +5 -5
  75. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
  77. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/conversations/[id]/stop/route.js +7 -7
  79. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/conversations/route.js +3 -3
  81. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +4 -4
  83. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/exchanges/[id]/route.js +5 -5
  85. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
  86. package/app/.next/server/app/api/exchanges/route.js +5 -5
  87. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
  88. package/app/.next/server/app/api/files/[name]/route.js +1 -1
  89. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/groups/route.js +3 -3
  91. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/health/route.js +5 -2
  93. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  95. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  97. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  99. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/mcp/route.js +3 -3
  101. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
  103. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/runtime-connections/route.js +3 -3
  105. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/service-grants/route.js +3 -3
  107. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  109. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  110. package/app/.next/server/app/api/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  111. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +11 -0
  112. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  113. package/app/.next/server/app/api/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  114. package/app/.next/server/app/api/shares/route/app-paths-manifest.json +3 -0
  115. package/app/.next/server/app/api/shares/route/build-manifest.json +12 -0
  116. package/app/.next/server/app/api/shares/route/server-reference-manifest.json +4 -0
  117. package/app/.next/server/app/api/shares/route.js +11 -0
  118. package/app/.next/server/app/api/shares/route.js.nft.json +1 -0
  119. package/app/.next/server/app/api/shares/route_client-reference-manifest.js +3 -0
  120. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +5 -6
  121. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +5 -6
  123. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -4
  125. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +5 -6
  127. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +5 -6
  129. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +5 -6
  131. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +5 -6
  133. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/v0/agents/route.js +5 -6
  135. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/v0/capabilities/route.js +5 -6
  137. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -4
  139. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +5 -6
  141. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +5 -6
  143. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/v0/exchanges/route.js +5 -6
  145. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/v0/mcp/route.js +6 -7
  147. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +5 -6
  149. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +5 -6
  151. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +5 -6
  153. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -4
  155. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +5 -6
  157. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +5 -6
  159. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
  161. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/build-manifest.json +12 -0
  162. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
  163. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +11 -0
  164. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -0
  165. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
  166. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
  167. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
  168. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
  169. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +11 -0
  170. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -0
  171. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
  172. package/app/.next/server/app/api/v0/shares/[shareRef]/route/app-paths-manifest.json +3 -0
  173. package/app/.next/server/app/api/v0/shares/[shareRef]/route/build-manifest.json +12 -0
  174. package/app/.next/server/app/api/v0/shares/[shareRef]/route/server-reference-manifest.json +4 -0
  175. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +11 -0
  176. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -0
  177. package/app/.next/server/app/api/v0/shares/[shareRef]/route_client-reference-manifest.js +3 -0
  178. package/app/.next/server/app/api/v0/shares/current/route/app-paths-manifest.json +3 -0
  179. package/app/.next/server/app/api/v0/shares/current/route/build-manifest.json +12 -0
  180. package/app/.next/server/app/api/v0/shares/current/route/server-reference-manifest.json +4 -0
  181. package/app/.next/server/app/api/v0/shares/current/route.js +11 -0
  182. package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -0
  183. package/app/.next/server/app/api/v0/shares/current/route_client-reference-manifest.js +3 -0
  184. package/app/.next/server/app/api/v0/shares/route/app-paths-manifest.json +3 -0
  185. package/app/.next/server/app/api/v0/shares/route/build-manifest.json +12 -0
  186. package/app/.next/server/app/api/v0/shares/route/server-reference-manifest.json +4 -0
  187. package/app/.next/server/app/api/v0/shares/route.js +11 -0
  188. package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -0
  189. package/app/.next/server/app/api/v0/shares/route_client-reference-manifest.js +3 -0
  190. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +4 -4
  191. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/wakes/[id]/decision/route.js +4 -4
  193. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/wakes/[id]/retry/route.js +4 -4
  195. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  196. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  197. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  198. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/exchanges/page.js +1 -1
  200. package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
  201. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/exchanges.html +1 -1
  203. package/app/.next/server/app/exchanges.rsc +3 -3
  204. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
  205. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
  206. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
  207. package/app/.next/server/app/index.html +1 -1
  208. package/app/.next/server/app/index.rsc +3 -3
  209. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  210. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  211. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  212. package/app/.next/server/app/page.js +1 -1
  213. package/app/.next/server/app/page.js.nft.json +1 -1
  214. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/settings/page.js +1 -1
  216. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  217. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/settings.html +1 -1
  219. package/app/.next/server/app/settings.rsc +2 -2
  220. package/app/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  221. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  222. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  223. package/app/.next/server/app/threads/[id]/page.js +1 -1
  224. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -1
  225. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app-paths-manifest.json +9 -0
  227. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_shares_route_actions_1jr6f0v.js +3 -0
  228. package/app/.next/server/chunks/[externals]_@slack_0owayck._.js +3 -0
  229. package/app/.next/server/chunks/[externals]__17bolvp._.js +3 -0
  230. package/app/.next/server/chunks/{[externals]__06lqs5i._.js → [externals]__1eaoma8._.js} +1 -1
  231. package/app/.next/server/chunks/[root-of-the-server]__0-vcyi-._.js +3 -0
  232. package/app/.next/server/chunks/[root-of-the-server]__0-w_t2y._.js +3 -0
  233. package/app/.next/server/chunks/{[root-of-the-server]__1_01-13._.js → [root-of-the-server]__029-_9t._.js} +2 -2
  234. package/app/.next/server/chunks/[root-of-the-server]__02vrtib._.js +4 -0
  235. package/app/.next/server/chunks/[root-of-the-server]__04b3ml2._.js +3 -0
  236. package/app/.next/server/chunks/[root-of-the-server]__06w5xhe._.js +3 -0
  237. package/app/.next/server/chunks/[root-of-the-server]__07q5mnr._.js +3 -0
  238. package/app/.next/server/chunks/[root-of-the-server]__0888o0_._.js +3 -0
  239. package/app/.next/server/chunks/[root-of-the-server]__0aincj4._.js +3 -0
  240. package/app/.next/server/chunks/[root-of-the-server]__0e_agq4._.js +3 -0
  241. package/app/.next/server/chunks/[root-of-the-server]__0ey3_2x._.js +3 -0
  242. package/app/.next/server/chunks/[root-of-the-server]__0fku-bw._.js +3 -0
  243. package/app/.next/server/chunks/[root-of-the-server]__0iqh5ta._.js +3 -0
  244. package/app/.next/server/chunks/[root-of-the-server]__0ivjcgs._.js +4 -0
  245. package/app/.next/server/chunks/[root-of-the-server]__0j4pjyg._.js +3 -0
  246. package/app/.next/server/chunks/[root-of-the-server]__0kgnysc._.js +3 -0
  247. package/app/.next/server/chunks/[root-of-the-server]__0mo_kn3._.js +48 -0
  248. package/app/.next/server/chunks/[root-of-the-server]__0mp8bap._.js +3 -0
  249. package/app/.next/server/chunks/[root-of-the-server]__0o9ijih._.js +3 -0
  250. package/app/.next/server/chunks/[root-of-the-server]__0qaiqut._.js +44 -0
  251. package/app/.next/server/chunks/{[root-of-the-server]__1kvvs4u._.js → [root-of-the-server]__0zrx1iz._.js} +1 -1
  252. package/app/.next/server/chunks/[root-of-the-server]__10b5-i-._.js +3 -0
  253. package/app/.next/server/chunks/[root-of-the-server]__17xl_55._.js +3 -0
  254. package/app/.next/server/chunks/[root-of-the-server]__1dxr858._.js +3 -0
  255. package/app/.next/server/chunks/[root-of-the-server]__1eps2a4._.js +3 -0
  256. package/app/.next/server/chunks/[root-of-the-server]__1g_n99l._.js +3 -0
  257. package/app/.next/server/chunks/[root-of-the-server]__1ggmit0._.js +4 -0
  258. package/app/.next/server/chunks/{[root-of-the-server]__1y_j43n._.js → [root-of-the-server]__1hwy3jx._.js} +1 -1
  259. package/app/.next/server/chunks/[root-of-the-server]__1i8glt4._.js +4 -0
  260. package/app/.next/server/chunks/{[root-of-the-server]__0j0i8xz._.js → [root-of-the-server]__1igzl05._.js} +1 -1
  261. package/app/.next/server/chunks/[root-of-the-server]__1kczttr._.js +3 -0
  262. package/app/.next/server/chunks/{[root-of-the-server]__1c3e2ds._.js → [root-of-the-server]__1kik2zt._.js} +1 -1
  263. package/app/.next/server/chunks/[root-of-the-server]__1t4ybp2._.js +48 -0
  264. package/app/.next/server/chunks/[root-of-the-server]__1v3ikuo._.js +3 -0
  265. package/app/.next/server/chunks/{[root-of-the-server]__0-45blq._.js → [root-of-the-server]__1z5l5cg._.js} +2 -2
  266. package/app/.next/server/chunks/[root-of-the-server]__200ep0k._.js +3 -0
  267. package/app/.next/server/chunks/_0061c2q._.js +48 -1
  268. package/app/.next/server/chunks/_04e2bgj._.js +3 -0
  269. package/app/.next/server/chunks/_05po7b4._.js +3 -0
  270. package/app/.next/server/chunks/_06sxx0e._.js +3 -0
  271. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  272. package/app/.next/server/chunks/_0ar2ooe._.js +3 -0
  273. package/app/.next/server/chunks/_0fmotaz._.js +3 -0
  274. package/app/.next/server/chunks/_0kpfto_._.js +3 -0
  275. package/app/.next/server/chunks/_0lm6uis._.js +3 -0
  276. package/app/.next/server/chunks/_0mpu5tl._.js +3 -0
  277. package/app/.next/server/chunks/_0qv-4by._.js +3 -0
  278. package/app/.next/server/chunks/_0u9cfq9._.js +3 -0
  279. package/app/.next/server/chunks/_0ul8k7g._.js +3 -0
  280. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  281. package/app/.next/server/chunks/_1-60d3o._.js +3 -0
  282. package/app/.next/server/chunks/_133y3b0._.js +3 -0
  283. package/app/.next/server/chunks/_167960a._.js +3 -0
  284. package/app/.next/server/chunks/_17vgjlt._.js +3 -0
  285. package/app/.next/server/chunks/_1amx9_4._.js +3 -0
  286. package/app/.next/server/chunks/_1b01v-_._.js +3 -0
  287. package/app/.next/server/chunks/_1c-g4gq._.js +3 -0
  288. package/app/.next/server/chunks/_1ey6l4p._.js +3 -0
  289. package/app/.next/server/chunks/_1nlg4x_._.js +3 -0
  290. package/app/.next/server/chunks/_1x4dqzv._.js +3 -0
  291. package/app/.next/server/chunks/_1z0qbzc._.js +3 -0
  292. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_share-policy_route_actions_0x-p250.js +3 -0
  293. package/app/.next/server/chunks/_next-internal_server_app_api_shares_[shareRef]_revoke_route_actions_1cu5kah.js +3 -0
  294. package/app/.next/server/chunks/_next-internal_server_app_api_shares_route_actions_0wk7x1r.js +3 -0
  295. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_shares_route_actions_11fh--7.js +3 -0
  296. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_revoke_route_actions_00rzyj9.js +3 -0
  297. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_route_actions_0i1t5qb.js +3 -0
  298. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_current_route_actions_1w_bpas.js +3 -0
  299. package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_route_actions_1b38was.js +3 -0
  300. package/app/.next/server/chunks/lib_0v4d9w0._.js +339 -0
  301. package/app/.next/server/chunks/lib_0zzo6zb._.js +339 -0
  302. package/app/.next/server/chunks/lib_15adnlz._.js +2189 -0
  303. package/app/.next/server/chunks/lib_1_u7n-u._.js +339 -0
  304. package/app/.next/server/chunks/lib_1muhwn7._.js +339 -0
  305. package/app/.next/server/chunks/lib_1xnxg-q._.js +339 -0
  306. package/app/.next/server/chunks/lib_1zc7-gl._.js +2189 -0
  307. package/app/.next/server/chunks/lib_agent-api_ts_0iv52-o._.js +3 -0
  308. package/app/.next/server/chunks/{[root-of-the-server]__0izjfmr._.js → lib_db_ts_1ttuckb._.js} +3 -3
  309. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +5 -5
  310. package/app/.next/server/chunks/lib_slack-runtime_ts_0fgsejy._.js +63 -0
  311. package/app/.next/server/chunks/ssr/{[root-of-the-server]__03186rx._.js → [root-of-the-server]__1smmfpx._.js} +1 -1
  312. package/app/.next/server/chunks/ssr/_0_fa0na._.js +3 -0
  313. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +1 -1
  314. package/app/.next/server/chunks/ssr/_1i02yyi._.js +3 -0
  315. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +1 -1
  316. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  317. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +1 -1
  318. package/app/.next/server/instrumentation.js +4 -0
  319. package/app/.next/server/middleware-build-manifest.js +3 -3
  320. package/app/.next/server/middleware.js +1 -1
  321. package/app/.next/server/pages/404.html +1 -1
  322. package/app/.next/server/pages/500.html +1 -1
  323. package/app/.next/server/server-reference-manifest.js +1 -1
  324. package/app/.next/server/server-reference-manifest.json +1 -1
  325. package/app/.next/static/chunks/{2a8bomryx66oj.css → 0jon21u-9j2aw.css} +1 -1
  326. package/app/.next/static/chunks/14k6cvywgknx2.js +3 -0
  327. package/app/.next/static/chunks/1r5tqd-7h1xjn.js +1 -0
  328. package/app/.next/static/chunks/22xbkclbkct3s.js +1 -0
  329. package/app/.next/static/chunks/2c953okoei6ip.js +1 -0
  330. package/app/.next/static/chunks/2t_2gf3xoxz_m.js +1 -0
  331. package/app/.next/static/chunks/34vnvo1qssbaj.js +1 -0
  332. package/app/BUILD_INFO.json +2 -2
  333. package/app/node_modules/@slack/logger/dist/index.js +94 -0
  334. package/app/node_modules/@slack/logger/package.json +43 -0
  335. package/app/node_modules/@slack/socket-mode/dist/package.json +67 -0
  336. package/app/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +242 -0
  337. package/app/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js +363 -0
  338. package/app/node_modules/@slack/socket-mode/dist/src/UnrecoverableSocketModeStartError.js +14 -0
  339. package/app/node_modules/@slack/socket-mode/dist/src/errors.js +68 -0
  340. package/app/node_modules/@slack/socket-mode/dist/src/index.js +13 -0
  341. package/app/node_modules/@slack/socket-mode/dist/src/logger.js +26 -0
  342. package/app/node_modules/@slack/socket-mode/package.json +67 -0
  343. package/app/node_modules/@slack/types/dist/block-kit/block-elements.js +4 -0
  344. package/app/node_modules/@slack/types/dist/block-kit/blocks.js +3 -0
  345. package/app/node_modules/@slack/types/dist/block-kit/composition-objects.js +4 -0
  346. package/app/node_modules/@slack/types/dist/block-kit/extensions.js +3 -0
  347. package/app/node_modules/@slack/types/dist/calls.js +6 -0
  348. package/app/node_modules/@slack/types/dist/chunk.js +3 -0
  349. package/app/node_modules/@slack/types/dist/dialog.js +3 -0
  350. package/app/node_modules/@slack/types/dist/events/app.js +3 -0
  351. package/app/node_modules/@slack/types/dist/events/assistant.js +3 -0
  352. package/app/node_modules/@slack/types/dist/events/call.js +3 -0
  353. package/app/node_modules/@slack/types/dist/events/channel.js +3 -0
  354. package/app/node_modules/@slack/types/dist/events/dnd.js +3 -0
  355. package/app/node_modules/@slack/types/dist/events/email.js +3 -0
  356. package/app/node_modules/@slack/types/dist/events/emoji.js +3 -0
  357. package/app/node_modules/@slack/types/dist/events/file.js +4 -0
  358. package/app/node_modules/@slack/types/dist/events/function.js +3 -0
  359. package/app/node_modules/@slack/types/dist/events/grid-migration.js +3 -0
  360. package/app/node_modules/@slack/types/dist/events/group.js +3 -0
  361. package/app/node_modules/@slack/types/dist/events/im.js +3 -0
  362. package/app/node_modules/@slack/types/dist/events/index.js +43 -0
  363. package/app/node_modules/@slack/types/dist/events/invite.js +3 -0
  364. package/app/node_modules/@slack/types/dist/events/link-shared.js +3 -0
  365. package/app/node_modules/@slack/types/dist/events/member.js +3 -0
  366. package/app/node_modules/@slack/types/dist/events/message-metadata.js +3 -0
  367. package/app/node_modules/@slack/types/dist/events/message.js +3 -0
  368. package/app/node_modules/@slack/types/dist/events/pin.js +3 -0
  369. package/app/node_modules/@slack/types/dist/events/reaction.js +3 -0
  370. package/app/node_modules/@slack/types/dist/events/shared-channel.js +3 -0
  371. package/app/node_modules/@slack/types/dist/events/star.js +3 -0
  372. package/app/node_modules/@slack/types/dist/events/steps-from-apps.js +3 -0
  373. package/app/node_modules/@slack/types/dist/events/subteam.js +3 -0
  374. package/app/node_modules/@slack/types/dist/events/team.js +3 -0
  375. package/app/node_modules/@slack/types/dist/events/token.js +3 -0
  376. package/app/node_modules/@slack/types/dist/events/user.js +3 -0
  377. package/app/node_modules/@slack/types/dist/index.js +28 -0
  378. package/app/node_modules/@slack/types/dist/message-attachments.js +3 -0
  379. package/app/node_modules/@slack/types/dist/message-metadata.js +27 -0
  380. package/app/node_modules/@slack/types/dist/views.js +3 -0
  381. package/app/node_modules/@slack/types/package.json +47 -0
  382. package/app/node_modules/@slack/web-api/dist/WebClient.js +818 -0
  383. package/app/node_modules/@slack/web-api/dist/chat-stream.js +178 -0
  384. package/app/node_modules/@slack/web-api/dist/errors.js +80 -0
  385. package/app/node_modules/@slack/web-api/dist/file-upload.js +360 -0
  386. package/app/node_modules/@slack/web-api/dist/helpers.js +14 -0
  387. package/app/node_modules/@slack/web-api/dist/index.js +39 -0
  388. package/app/node_modules/@slack/web-api/dist/instrument.js +87 -0
  389. package/app/node_modules/@slack/web-api/dist/logger.js +29 -0
  390. package/app/node_modules/@slack/web-api/dist/methods.js +1647 -0
  391. package/app/node_modules/@slack/web-api/dist/retry-policies.js +34 -0
  392. package/app/node_modules/@slack/web-api/dist/types/helpers.js +3 -0
  393. package/app/node_modules/@slack/web-api/dist/types/request/admin/analytics.js +3 -0
  394. package/app/node_modules/@slack/web-api/dist/types/request/admin/apps.js +3 -0
  395. package/app/node_modules/@slack/web-api/dist/types/request/admin/auth.js +3 -0
  396. package/app/node_modules/@slack/web-api/dist/types/request/admin/barriers.js +3 -0
  397. package/app/node_modules/@slack/web-api/dist/types/request/admin/conversations.js +3 -0
  398. package/app/node_modules/@slack/web-api/dist/types/request/admin/emoji.js +3 -0
  399. package/app/node_modules/@slack/web-api/dist/types/request/admin/functions.js +3 -0
  400. package/app/node_modules/@slack/web-api/dist/types/request/admin/inviteRequests.js +3 -0
  401. package/app/node_modules/@slack/web-api/dist/types/request/admin/roles.js +3 -0
  402. package/app/node_modules/@slack/web-api/dist/types/request/admin/teams.js +3 -0
  403. package/app/node_modules/@slack/web-api/dist/types/request/admin/usergroups.js +3 -0
  404. package/app/node_modules/@slack/web-api/dist/types/request/admin/users.js +3 -0
  405. package/app/node_modules/@slack/web-api/dist/types/request/admin/workflows.js +3 -0
  406. package/app/node_modules/@slack/web-api/dist/types/request/api.js +3 -0
  407. package/app/node_modules/@slack/web-api/dist/types/request/apps.js +3 -0
  408. package/app/node_modules/@slack/web-api/dist/types/request/assistant.js +3 -0
  409. package/app/node_modules/@slack/web-api/dist/types/request/auth.js +3 -0
  410. package/app/node_modules/@slack/web-api/dist/types/request/bookmarks.js +3 -0
  411. package/app/node_modules/@slack/web-api/dist/types/request/bots.js +3 -0
  412. package/app/node_modules/@slack/web-api/dist/types/request/calls.js +3 -0
  413. package/app/node_modules/@slack/web-api/dist/types/request/canvas.js +3 -0
  414. package/app/node_modules/@slack/web-api/dist/types/request/chat.js +3 -0
  415. package/app/node_modules/@slack/web-api/dist/types/request/common.js +4 -0
  416. package/app/node_modules/@slack/web-api/dist/types/request/conversations.js +3 -0
  417. package/app/node_modules/@slack/web-api/dist/types/request/dialog.js +3 -0
  418. package/app/node_modules/@slack/web-api/dist/types/request/dnd.js +3 -0
  419. package/app/node_modules/@slack/web-api/dist/types/request/emoji.js +3 -0
  420. package/app/node_modules/@slack/web-api/dist/types/request/entity.js +3 -0
  421. package/app/node_modules/@slack/web-api/dist/types/request/files.js +3 -0
  422. package/app/node_modules/@slack/web-api/dist/types/request/functions.js +3 -0
  423. package/app/node_modules/@slack/web-api/dist/types/request/index.js +3 -0
  424. package/app/node_modules/@slack/web-api/dist/types/request/manifest.js +3 -0
  425. package/app/node_modules/@slack/web-api/dist/types/request/migration.js +3 -0
  426. package/app/node_modules/@slack/web-api/dist/types/request/oauth.js +3 -0
  427. package/app/node_modules/@slack/web-api/dist/types/request/openid.js +3 -0
  428. package/app/node_modules/@slack/web-api/dist/types/request/pins.js +3 -0
  429. package/app/node_modules/@slack/web-api/dist/types/request/reactions.js +3 -0
  430. package/app/node_modules/@slack/web-api/dist/types/request/reminders.js +3 -0
  431. package/app/node_modules/@slack/web-api/dist/types/request/rtm.js +3 -0
  432. package/app/node_modules/@slack/web-api/dist/types/request/search.js +3 -0
  433. package/app/node_modules/@slack/web-api/dist/types/request/slackLists.js +3 -0
  434. package/app/node_modules/@slack/web-api/dist/types/request/stars.js +3 -0
  435. package/app/node_modules/@slack/web-api/dist/types/request/team.js +3 -0
  436. package/app/node_modules/@slack/web-api/dist/types/request/tooling.js +3 -0
  437. package/app/node_modules/@slack/web-api/dist/types/request/usergroups.js +3 -0
  438. package/app/node_modules/@slack/web-api/dist/types/request/users.js +3 -0
  439. package/app/node_modules/@slack/web-api/dist/types/request/views.js +3 -0
  440. package/app/node_modules/@slack/web-api/dist/types/request/workflows.js +3 -0
  441. package/app/node_modules/@slack/web-api/dist/types/response/AdminAnalyticsGetFileResponse.js +3 -0
  442. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsActivitiesListResponse.js +11 -0
  443. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApproveResponse.js +11 -0
  444. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApprovedListResponse.js +11 -0
  445. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsClearResolutionResponse.js +11 -0
  446. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigLookupResponse.js +11 -0
  447. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigSetResponse.js +11 -0
  448. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsCancelResponse.js +11 -0
  449. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsListResponse.js +11 -0
  450. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictResponse.js +11 -0
  451. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictedListResponse.js +11 -0
  452. package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsUninstallResponse.js +11 -0
  453. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyAssignEntitiesResponse.js +11 -0
  454. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyGetEntitiesResponse.js +11 -0
  455. package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyRemoveEntitiesResponse.js +11 -0
  456. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersCreateResponse.js +11 -0
  457. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersDeleteResponse.js +11 -0
  458. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersListResponse.js +11 -0
  459. package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersUpdateResponse.js +11 -0
  460. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsArchiveResponse.js +11 -0
  461. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkArchiveResponse.js +11 -0
  462. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkDeleteResponse.js +11 -0
  463. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkMoveResponse.js +11 -0
  464. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPrivateResponse.js +11 -0
  465. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPublicResponse.js +11 -0
  466. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsCreateResponse.js +11 -0
  467. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDeleteResponse.js +11 -0
  468. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDisconnectSharedResponse.js +11 -0
  469. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsEkmListOriginalConnectedChannelInfoResponse.js +11 -0
  470. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetConversationPrefsResponse.js +11 -0
  471. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetCustomRetentionResponse.js +11 -0
  472. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetTeamsResponse.js +11 -0
  473. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsInviteResponse.js +11 -0
  474. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsLookupResponse.js +11 -0
  475. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRemoveCustomRetentionResponse.js +11 -0
  476. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRenameResponse.js +11 -0
  477. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessAddGroupResponse.js +11 -0
  478. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessListGroupsResponse.js +11 -0
  479. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessRemoveGroupResponse.js +11 -0
  480. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSearchResponse.js +11 -0
  481. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetConversationPrefsResponse.js +11 -0
  482. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetCustomRetentionResponse.js +11 -0
  483. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetTeamsResponse.js +11 -0
  484. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsUnarchiveResponse.js +11 -0
  485. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistAddResponse.js +11 -0
  486. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistListGroupsLinkedToChannelResponse.js +11 -0
  487. package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistRemoveResponse.js +11 -0
  488. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddAliasResponse.js +11 -0
  489. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddResponse.js +11 -0
  490. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiListResponse.js +11 -0
  491. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRemoveResponse.js +11 -0
  492. package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRenameResponse.js +11 -0
  493. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsListResponse.js +11 -0
  494. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsLookupResponse.js +11 -0
  495. package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsSetResponse.js +11 -0
  496. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApproveResponse.js +11 -0
  497. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApprovedListResponse.js +11 -0
  498. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDeniedListResponse.js +11 -0
  499. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDenyResponse.js +11 -0
  500. package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsListResponse.js +11 -0
  501. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesAddAssignmentsResponse.js +11 -0
  502. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesListAssignmentsResponse.js +11 -0
  503. package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesRemoveAssignmentsResponse.js +11 -0
  504. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsAdminsListResponse.js +11 -0
  505. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsCreateResponse.js +11 -0
  506. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsListResponse.js +11 -0
  507. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsOwnersListResponse.js +11 -0
  508. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsInfoResponse.js +11 -0
  509. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDefaultChannelsResponse.js +11 -0
  510. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDescriptionResponse.js +11 -0
  511. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDiscoverabilityResponse.js +11 -0
  512. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetIconResponse.js +11 -0
  513. package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetNameResponse.js +11 -0
  514. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddChannelsResponse.js +11 -0
  515. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddTeamsResponse.js +11 -0
  516. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsListChannelsResponse.js +11 -0
  517. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsRemoveChannelsResponse.js +11 -0
  518. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersAssignResponse.js +11 -0
  519. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersInviteResponse.js +11 -0
  520. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersListResponse.js +11 -0
  521. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersRemoveResponse.js +11 -0
  522. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionClearSettingsResponse.js +11 -0
  523. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionGetSettingsResponse.js +11 -0
  524. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionInvalidateResponse.js +11 -0
  525. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionListResponse.js +11 -0
  526. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetBulkResponse.js +11 -0
  527. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetResponse.js +11 -0
  528. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionSetSettingsResponse.js +11 -0
  529. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetAdminResponse.js +11 -0
  530. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetExpirationResponse.js +11 -0
  531. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetOwnerResponse.js +11 -0
  532. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetRegularResponse.js +11 -0
  533. package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersUnsupportedVersionsExportResponse.js +11 -0
  534. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsAddResponse.js +11 -0
  535. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsRemoveResponse.js +11 -0
  536. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsPermissionsLookupResponse.js +11 -0
  537. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsSearchResponse.js +11 -0
  538. package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsUnpublishResponse.js +11 -0
  539. package/app/node_modules/@slack/web-api/dist/types/response/ApiTestResponse.js +11 -0
  540. package/app/node_modules/@slack/web-api/dist/types/response/AppsConnectionsOpenResponse.js +11 -0
  541. package/app/node_modules/@slack/web-api/dist/types/response/AppsEventAuthorizationsListResponse.js +11 -0
  542. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestCreateResponse.js +11 -0
  543. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestDeleteResponse.js +11 -0
  544. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestExportResponse.js +11 -0
  545. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestUpdateResponse.js +11 -0
  546. package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestValidateResponse.js +11 -0
  547. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsInfoResponse.js +11 -0
  548. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsRequestResponse.js +11 -0
  549. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsResourcesListResponse.js +11 -0
  550. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsScopesListResponse.js +11 -0
  551. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersListResponse.js +11 -0
  552. package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersRequestResponse.js +11 -0
  553. package/app/node_modules/@slack/web-api/dist/types/response/AppsUninstallResponse.js +11 -0
  554. package/app/node_modules/@slack/web-api/dist/types/response/AppsUserConnectionUpdateResponse.js +11 -0
  555. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetStatusResponse.js +11 -0
  556. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetSuggestedPromptsResponse.js +11 -0
  557. package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetTitleResponse.js +11 -0
  558. package/app/node_modules/@slack/web-api/dist/types/response/AuthRevokeResponse.js +11 -0
  559. package/app/node_modules/@slack/web-api/dist/types/response/AuthTeamsListResponse.js +11 -0
  560. package/app/node_modules/@slack/web-api/dist/types/response/AuthTestResponse.js +11 -0
  561. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksAddResponse.js +11 -0
  562. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksEditResponse.js +11 -0
  563. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksListResponse.js +11 -0
  564. package/app/node_modules/@slack/web-api/dist/types/response/BookmarksRemoveResponse.js +11 -0
  565. package/app/node_modules/@slack/web-api/dist/types/response/BotsInfoResponse.js +11 -0
  566. package/app/node_modules/@slack/web-api/dist/types/response/CallsAddResponse.js +11 -0
  567. package/app/node_modules/@slack/web-api/dist/types/response/CallsEndResponse.js +11 -0
  568. package/app/node_modules/@slack/web-api/dist/types/response/CallsInfoResponse.js +11 -0
  569. package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsAddResponse.js +11 -0
  570. package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsRemoveResponse.js +11 -0
  571. package/app/node_modules/@slack/web-api/dist/types/response/CallsUpdateResponse.js +11 -0
  572. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessDeleteResponse.js +11 -0
  573. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessSetResponse.js +11 -0
  574. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesCreateResponse.js +11 -0
  575. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesDeleteResponse.js +11 -0
  576. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesEditResponse.js +11 -0
  577. package/app/node_modules/@slack/web-api/dist/types/response/CanvasesSectionsLookupResponse.js +11 -0
  578. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsArchiveResponse.js +11 -0
  579. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsCreateResponse.js +11 -0
  580. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsHistoryResponse.js +11 -0
  581. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInfoResponse.js +11 -0
  582. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInviteResponse.js +11 -0
  583. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsJoinResponse.js +11 -0
  584. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsKickResponse.js +11 -0
  585. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsLeaveResponse.js +11 -0
  586. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsListResponse.js +11 -0
  587. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsMarkResponse.js +11 -0
  588. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRenameResponse.js +11 -0
  589. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRepliesResponse.js +11 -0
  590. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetPurposeResponse.js +11 -0
  591. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetTopicResponse.js +11 -0
  592. package/app/node_modules/@slack/web-api/dist/types/response/ChannelsUnarchiveResponse.js +11 -0
  593. package/app/node_modules/@slack/web-api/dist/types/response/ChatAppendStreamResponse.js +3 -0
  594. package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteResponse.js +11 -0
  595. package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteScheduledMessageResponse.js +11 -0
  596. package/app/node_modules/@slack/web-api/dist/types/response/ChatGetPermalinkResponse.js +11 -0
  597. package/app/node_modules/@slack/web-api/dist/types/response/ChatMeMessageResponse.js +11 -0
  598. package/app/node_modules/@slack/web-api/dist/types/response/ChatPostEphemeralResponse.js +11 -0
  599. package/app/node_modules/@slack/web-api/dist/types/response/ChatPostMessageResponse.js +67 -0
  600. package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduleMessageResponse.js +48 -0
  601. package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduledMessagesListResponse.js +11 -0
  602. package/app/node_modules/@slack/web-api/dist/types/response/ChatStartStreamResponse.js +3 -0
  603. package/app/node_modules/@slack/web-api/dist/types/response/ChatStopStreamResponse.js +3 -0
  604. package/app/node_modules/@slack/web-api/dist/types/response/ChatUnfurlResponse.js +11 -0
  605. package/app/node_modules/@slack/web-api/dist/types/response/ChatUpdateResponse.js +48 -0
  606. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsAcceptSharedInviteResponse.js +11 -0
  607. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsApproveSharedInviteResponse.js +11 -0
  608. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsArchiveResponse.js +11 -0
  609. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCanvasesCreateResponse.js +11 -0
  610. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCloseResponse.js +11 -0
  611. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCreateResponse.js +11 -0
  612. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsDeclineSharedInviteResponse.js +11 -0
  613. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsExternalInvitePermissionsSetResponse.js +11 -0
  614. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsHistoryResponse.js +67 -0
  615. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInfoResponse.js +11 -0
  616. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteResponse.js +11 -0
  617. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteSharedResponse.js +11 -0
  618. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsJoinResponse.js +11 -0
  619. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsKickResponse.js +11 -0
  620. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsLeaveResponse.js +11 -0
  621. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListConnectInvitesResponse.js +11 -0
  622. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListResponse.js +11 -0
  623. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMarkResponse.js +11 -0
  624. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMembersResponse.js +11 -0
  625. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsOpenResponse.js +48 -0
  626. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRenameResponse.js +11 -0
  627. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRepliesResponse.js +67 -0
  628. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteApproveResponse.js +11 -0
  629. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteDenyResponse.js +11 -0
  630. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteListResponse.js +11 -0
  631. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetPurposeResponse.js +11 -0
  632. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetTopicResponse.js +11 -0
  633. package/app/node_modules/@slack/web-api/dist/types/response/ConversationsUnarchiveResponse.js +11 -0
  634. package/app/node_modules/@slack/web-api/dist/types/response/DialogOpenResponse.js +11 -0
  635. package/app/node_modules/@slack/web-api/dist/types/response/DndEndDndResponse.js +11 -0
  636. package/app/node_modules/@slack/web-api/dist/types/response/DndEndSnoozeResponse.js +11 -0
  637. package/app/node_modules/@slack/web-api/dist/types/response/DndInfoResponse.js +11 -0
  638. package/app/node_modules/@slack/web-api/dist/types/response/DndSetSnoozeResponse.js +11 -0
  639. package/app/node_modules/@slack/web-api/dist/types/response/DndTeamInfoResponse.js +11 -0
  640. package/app/node_modules/@slack/web-api/dist/types/response/EmojiListResponse.js +11 -0
  641. package/app/node_modules/@slack/web-api/dist/types/response/EntityPresentDetailsResponse.js +11 -0
  642. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsAddResponse.js +11 -0
  643. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsDeleteResponse.js +11 -0
  644. package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsEditResponse.js +11 -0
  645. package/app/node_modules/@slack/web-api/dist/types/response/FilesCompleteUploadExternalResponse.js +11 -0
  646. package/app/node_modules/@slack/web-api/dist/types/response/FilesDeleteResponse.js +11 -0
  647. package/app/node_modules/@slack/web-api/dist/types/response/FilesGetUploadURLExternalResponse.js +11 -0
  648. package/app/node_modules/@slack/web-api/dist/types/response/FilesInfoResponse.js +37 -0
  649. package/app/node_modules/@slack/web-api/dist/types/response/FilesListResponse.js +37 -0
  650. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteAddResponse.js +37 -0
  651. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteInfoResponse.js +37 -0
  652. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteListResponse.js +37 -0
  653. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteRemoveResponse.js +11 -0
  654. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteShareResponse.js +37 -0
  655. package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteUpdateResponse.js +37 -0
  656. package/app/node_modules/@slack/web-api/dist/types/response/FilesRevokePublicURLResponse.js +37 -0
  657. package/app/node_modules/@slack/web-api/dist/types/response/FilesSharedPublicURLResponse.js +37 -0
  658. package/app/node_modules/@slack/web-api/dist/types/response/FilesUploadResponse.js +37 -0
  659. package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteErrorResponse.js +11 -0
  660. package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteSuccessResponse.js +11 -0
  661. package/app/node_modules/@slack/web-api/dist/types/response/GroupsArchiveResponse.js +11 -0
  662. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCloseResponse.js +11 -0
  663. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateChildResponse.js +11 -0
  664. package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateResponse.js +11 -0
  665. package/app/node_modules/@slack/web-api/dist/types/response/GroupsHistoryResponse.js +11 -0
  666. package/app/node_modules/@slack/web-api/dist/types/response/GroupsInfoResponse.js +11 -0
  667. package/app/node_modules/@slack/web-api/dist/types/response/GroupsInviteResponse.js +11 -0
  668. package/app/node_modules/@slack/web-api/dist/types/response/GroupsKickResponse.js +11 -0
  669. package/app/node_modules/@slack/web-api/dist/types/response/GroupsLeaveResponse.js +11 -0
  670. package/app/node_modules/@slack/web-api/dist/types/response/GroupsListResponse.js +11 -0
  671. package/app/node_modules/@slack/web-api/dist/types/response/GroupsMarkResponse.js +11 -0
  672. package/app/node_modules/@slack/web-api/dist/types/response/GroupsOpenResponse.js +11 -0
  673. package/app/node_modules/@slack/web-api/dist/types/response/GroupsRenameResponse.js +11 -0
  674. package/app/node_modules/@slack/web-api/dist/types/response/GroupsRepliesResponse.js +11 -0
  675. package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetPurposeResponse.js +11 -0
  676. package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetTopicResponse.js +11 -0
  677. package/app/node_modules/@slack/web-api/dist/types/response/GroupsUnarchiveResponse.js +11 -0
  678. package/app/node_modules/@slack/web-api/dist/types/response/ImCloseResponse.js +11 -0
  679. package/app/node_modules/@slack/web-api/dist/types/response/ImHistoryResponse.js +11 -0
  680. package/app/node_modules/@slack/web-api/dist/types/response/ImListResponse.js +11 -0
  681. package/app/node_modules/@slack/web-api/dist/types/response/ImMarkResponse.js +11 -0
  682. package/app/node_modules/@slack/web-api/dist/types/response/ImOpenResponse.js +11 -0
  683. package/app/node_modules/@slack/web-api/dist/types/response/ImRepliesResponse.js +11 -0
  684. package/app/node_modules/@slack/web-api/dist/types/response/MigrationExchangeResponse.js +11 -0
  685. package/app/node_modules/@slack/web-api/dist/types/response/MpimCloseResponse.js +11 -0
  686. package/app/node_modules/@slack/web-api/dist/types/response/MpimHistoryResponse.js +11 -0
  687. package/app/node_modules/@slack/web-api/dist/types/response/MpimListResponse.js +11 -0
  688. package/app/node_modules/@slack/web-api/dist/types/response/MpimMarkResponse.js +11 -0
  689. package/app/node_modules/@slack/web-api/dist/types/response/MpimOpenResponse.js +11 -0
  690. package/app/node_modules/@slack/web-api/dist/types/response/MpimRepliesResponse.js +11 -0
  691. package/app/node_modules/@slack/web-api/dist/types/response/OauthAccessResponse.js +11 -0
  692. package/app/node_modules/@slack/web-api/dist/types/response/OauthTokenResponse.js +11 -0
  693. package/app/node_modules/@slack/web-api/dist/types/response/OauthV2AccessResponse.js +11 -0
  694. package/app/node_modules/@slack/web-api/dist/types/response/OauthV2ExchangeResponse.js +11 -0
  695. package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectTokenResponse.js +11 -0
  696. package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectUserInfoResponse.js +11 -0
  697. package/app/node_modules/@slack/web-api/dist/types/response/PinsAddResponse.js +11 -0
  698. package/app/node_modules/@slack/web-api/dist/types/response/PinsListResponse.js +37 -0
  699. package/app/node_modules/@slack/web-api/dist/types/response/PinsRemoveResponse.js +11 -0
  700. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsAddResponse.js +11 -0
  701. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsGetResponse.js +48 -0
  702. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsListResponse.js +67 -0
  703. package/app/node_modules/@slack/web-api/dist/types/response/ReactionsRemoveResponse.js +11 -0
  704. package/app/node_modules/@slack/web-api/dist/types/response/RemindersAddResponse.js +11 -0
  705. package/app/node_modules/@slack/web-api/dist/types/response/RemindersCompleteResponse.js +11 -0
  706. package/app/node_modules/@slack/web-api/dist/types/response/RemindersDeleteResponse.js +11 -0
  707. package/app/node_modules/@slack/web-api/dist/types/response/RemindersInfoResponse.js +11 -0
  708. package/app/node_modules/@slack/web-api/dist/types/response/RemindersListResponse.js +11 -0
  709. package/app/node_modules/@slack/web-api/dist/types/response/RtmConnectResponse.js +11 -0
  710. package/app/node_modules/@slack/web-api/dist/types/response/RtmStartResponse.js +77 -0
  711. package/app/node_modules/@slack/web-api/dist/types/response/SearchAllResponse.js +82 -0
  712. package/app/node_modules/@slack/web-api/dist/types/response/SearchFilesResponse.js +63 -0
  713. package/app/node_modules/@slack/web-api/dist/types/response/SearchMessagesResponse.js +67 -0
  714. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessDeleteResponse.js +3 -0
  715. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessSetResponse.js +3 -0
  716. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsCreateResponse.js +3 -0
  717. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadGetResponse.js +3 -0
  718. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadStartResponse.js +3 -0
  719. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsCreateResponse.js +3 -0
  720. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteMultipleResponse.js +3 -0
  721. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteResponse.js +3 -0
  722. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsInfoResponse.js +3 -0
  723. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsListResponse.js +3 -0
  724. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsUpdateResponse.js +3 -0
  725. package/app/node_modules/@slack/web-api/dist/types/response/SlackListsUpdateResponse.js +3 -0
  726. package/app/node_modules/@slack/web-api/dist/types/response/StarsAddResponse.js +11 -0
  727. package/app/node_modules/@slack/web-api/dist/types/response/StarsListResponse.js +11 -0
  728. package/app/node_modules/@slack/web-api/dist/types/response/StarsRemoveResponse.js +11 -0
  729. package/app/node_modules/@slack/web-api/dist/types/response/TeamAccessLogsResponse.js +11 -0
  730. package/app/node_modules/@slack/web-api/dist/types/response/TeamBillableInfoResponse.js +11 -0
  731. package/app/node_modules/@slack/web-api/dist/types/response/TeamBillingInfoResponse.js +11 -0
  732. package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsDisconnectResponse.js +11 -0
  733. package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsListResponse.js +11 -0
  734. package/app/node_modules/@slack/web-api/dist/types/response/TeamInfoResponse.js +11 -0
  735. package/app/node_modules/@slack/web-api/dist/types/response/TeamIntegrationLogsResponse.js +11 -0
  736. package/app/node_modules/@slack/web-api/dist/types/response/TeamPreferencesListResponse.js +11 -0
  737. package/app/node_modules/@slack/web-api/dist/types/response/TeamProfileGetResponse.js +11 -0
  738. package/app/node_modules/@slack/web-api/dist/types/response/ToolingTokensRotateResponse.js +11 -0
  739. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsCreateResponse.js +11 -0
  740. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsDisableResponse.js +11 -0
  741. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsEnableResponse.js +11 -0
  742. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsListResponse.js +11 -0
  743. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUpdateResponse.js +11 -0
  744. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersListResponse.js +11 -0
  745. package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersUpdateResponse.js +11 -0
  746. package/app/node_modules/@slack/web-api/dist/types/response/UsersConversationsResponse.js +11 -0
  747. package/app/node_modules/@slack/web-api/dist/types/response/UsersDeletePhotoResponse.js +11 -0
  748. package/app/node_modules/@slack/web-api/dist/types/response/UsersDiscoverableContactsLookupResponse.js +11 -0
  749. package/app/node_modules/@slack/web-api/dist/types/response/UsersGetPresenceResponse.js +11 -0
  750. package/app/node_modules/@slack/web-api/dist/types/response/UsersIdentityResponse.js +11 -0
  751. package/app/node_modules/@slack/web-api/dist/types/response/UsersInfoResponse.js +11 -0
  752. package/app/node_modules/@slack/web-api/dist/types/response/UsersListResponse.js +11 -0
  753. package/app/node_modules/@slack/web-api/dist/types/response/UsersLookupByEmailResponse.js +11 -0
  754. package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileGetResponse.js +11 -0
  755. package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileSetResponse.js +11 -0
  756. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetActiveResponse.js +11 -0
  757. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPhotoResponse.js +11 -0
  758. package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPresenceResponse.js +11 -0
  759. package/app/node_modules/@slack/web-api/dist/types/response/ViewsOpenResponse.js +31 -0
  760. package/app/node_modules/@slack/web-api/dist/types/response/ViewsPublishResponse.js +31 -0
  761. package/app/node_modules/@slack/web-api/dist/types/response/ViewsPushResponse.js +31 -0
  762. package/app/node_modules/@slack/web-api/dist/types/response/ViewsUpdateResponse.js +31 -0
  763. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedAddResponse.js +3 -0
  764. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedListResponse.js +3 -0
  765. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedRemoveResponse.js +3 -0
  766. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedSetResponse.js +3 -0
  767. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepCompletedResponse.js +11 -0
  768. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepFailedResponse.js +11 -0
  769. package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsUpdateStepResponse.js +11 -0
  770. package/app/node_modules/@slack/web-api/dist/types/response/index.js +3 -0
  771. package/app/node_modules/@slack/web-api/package.json +75 -0
  772. package/app/node_modules/agent-base/dist/src/index.js +203 -0
  773. package/app/node_modules/agent-base/dist/src/promisify.js +18 -0
  774. package/app/node_modules/agent-base/package.json +64 -0
  775. package/app/node_modules/asynckit/index.js +6 -0
  776. package/app/node_modules/asynckit/lib/abort.js +29 -0
  777. package/app/node_modules/asynckit/lib/async.js +34 -0
  778. package/app/node_modules/asynckit/lib/defer.js +26 -0
  779. package/app/node_modules/asynckit/lib/iterate.js +75 -0
  780. package/app/node_modules/asynckit/lib/state.js +37 -0
  781. package/app/node_modules/asynckit/lib/terminator.js +29 -0
  782. package/app/node_modules/asynckit/package.json +63 -0
  783. package/app/node_modules/asynckit/parallel.js +43 -0
  784. package/app/node_modules/asynckit/serial.js +17 -0
  785. package/app/node_modules/asynckit/serialOrdered.js +75 -0
  786. package/app/node_modules/axios/dist/node/axios.cjs +6808 -0
  787. package/app/node_modules/axios/package.json +203 -0
  788. package/app/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  789. package/app/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  790. package/app/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  791. package/app/node_modules/call-bind-apply-helpers/index.js +15 -0
  792. package/app/node_modules/call-bind-apply-helpers/package.json +85 -0
  793. package/app/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  794. package/app/node_modules/combined-stream/lib/combined_stream.js +208 -0
  795. package/app/node_modules/combined-stream/package.json +25 -0
  796. package/app/node_modules/debug/package.json +64 -0
  797. package/app/node_modules/debug/src/browser.js +272 -0
  798. package/app/node_modules/debug/src/common.js +292 -0
  799. package/app/node_modules/debug/src/index.js +10 -0
  800. package/app/node_modules/debug/src/node.js +263 -0
  801. package/app/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  802. package/app/node_modules/delayed-stream/package.json +27 -0
  803. package/app/node_modules/dunder-proto/get.js +30 -0
  804. package/app/node_modules/dunder-proto/package.json +76 -0
  805. package/app/node_modules/es-define-property/index.js +14 -0
  806. package/app/node_modules/es-define-property/package.json +81 -0
  807. package/app/node_modules/es-errors/eval.js +4 -0
  808. package/app/node_modules/es-errors/index.js +4 -0
  809. package/app/node_modules/es-errors/package.json +80 -0
  810. package/app/node_modules/es-errors/range.js +4 -0
  811. package/app/node_modules/es-errors/ref.js +4 -0
  812. package/app/node_modules/es-errors/syntax.js +4 -0
  813. package/app/node_modules/es-errors/type.js +4 -0
  814. package/app/node_modules/es-errors/uri.js +4 -0
  815. package/app/node_modules/es-object-atoms/index.js +4 -0
  816. package/app/node_modules/es-object-atoms/package.json +79 -0
  817. package/app/node_modules/es-set-tostringtag/index.js +35 -0
  818. package/app/node_modules/es-set-tostringtag/package.json +78 -0
  819. package/app/node_modules/eventemitter3/index.js +336 -0
  820. package/app/node_modules/eventemitter3/package.json +62 -0
  821. package/app/node_modules/follow-redirects/debug.js +15 -0
  822. package/app/node_modules/follow-redirects/index.js +709 -0
  823. package/app/node_modules/follow-redirects/package.json +58 -0
  824. package/app/node_modules/form-data/lib/browser.js +4 -0
  825. package/app/node_modules/form-data/lib/form_data.js +506 -0
  826. package/app/node_modules/form-data/lib/populate.js +10 -0
  827. package/app/node_modules/form-data/package.json +82 -0
  828. package/app/node_modules/function-bind/implementation.js +84 -0
  829. package/app/node_modules/function-bind/index.js +5 -0
  830. package/app/node_modules/function-bind/package.json +87 -0
  831. package/app/node_modules/get-intrinsic/index.js +378 -0
  832. package/app/node_modules/get-intrinsic/package.json +97 -0
  833. package/app/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  834. package/app/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  835. package/app/node_modules/get-proto/index.js +27 -0
  836. package/app/node_modules/get-proto/package.json +81 -0
  837. package/app/node_modules/gopd/gOPD.js +4 -0
  838. package/app/node_modules/gopd/index.js +15 -0
  839. package/app/node_modules/gopd/package.json +77 -0
  840. package/app/node_modules/has-flag/index.js +8 -0
  841. package/app/node_modules/has-flag/package.json +46 -0
  842. package/app/node_modules/has-symbols/index.js +14 -0
  843. package/app/node_modules/has-symbols/package.json +111 -0
  844. package/app/node_modules/has-symbols/shams.js +45 -0
  845. package/app/node_modules/has-tostringtag/package.json +108 -0
  846. package/app/node_modules/has-tostringtag/shams.js +8 -0
  847. package/app/node_modules/hasown/index.js +8 -0
  848. package/app/node_modules/hasown/package.json +91 -0
  849. package/app/node_modules/https-proxy-agent/dist/agent.js +177 -0
  850. package/app/node_modules/https-proxy-agent/dist/index.js +14 -0
  851. package/app/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
  852. package/app/node_modules/https-proxy-agent/package.json +56 -0
  853. package/app/node_modules/is-electron/index.js +21 -0
  854. package/app/node_modules/is-electron/package.json +34 -0
  855. package/app/node_modules/is-stream/index.js +28 -0
  856. package/app/node_modules/is-stream/package.json +42 -0
  857. package/app/node_modules/math-intrinsics/abs.js +4 -0
  858. package/app/node_modules/math-intrinsics/floor.js +4 -0
  859. package/app/node_modules/math-intrinsics/isNaN.js +6 -0
  860. package/app/node_modules/math-intrinsics/max.js +4 -0
  861. package/app/node_modules/math-intrinsics/min.js +4 -0
  862. package/app/node_modules/math-intrinsics/package.json +86 -0
  863. package/app/node_modules/math-intrinsics/pow.js +4 -0
  864. package/app/node_modules/math-intrinsics/round.js +4 -0
  865. package/app/node_modules/math-intrinsics/sign.js +11 -0
  866. package/app/node_modules/mime-db/db.json +8519 -0
  867. package/app/node_modules/mime-db/index.js +12 -0
  868. package/app/node_modules/mime-db/package.json +60 -0
  869. package/app/node_modules/mime-types/index.js +188 -0
  870. package/app/node_modules/mime-types/package.json +44 -0
  871. package/app/node_modules/ms/index.js +162 -0
  872. package/app/node_modules/ms/package.json +38 -0
  873. package/app/node_modules/p-finally/index.js +15 -0
  874. package/app/node_modules/p-finally/package.json +42 -0
  875. package/app/node_modules/p-queue/dist/index.js +279 -0
  876. package/app/node_modules/p-queue/dist/lower-bound.js +21 -0
  877. package/app/node_modules/p-queue/dist/priority-queue.js +32 -0
  878. package/app/node_modules/p-queue/node_modules/eventemitter3/index.js +336 -0
  879. package/app/node_modules/p-queue/node_modules/eventemitter3/package.json +56 -0
  880. package/app/node_modules/p-queue/package.json +92 -0
  881. package/app/node_modules/p-retry/index.js +85 -0
  882. package/app/node_modules/p-retry/package.json +51 -0
  883. package/app/node_modules/p-timeout/index.js +57 -0
  884. package/app/node_modules/p-timeout/package.json +45 -0
  885. package/app/node_modules/retry/index.js +1 -0
  886. package/app/node_modules/retry/lib/retry.js +100 -0
  887. package/app/node_modules/retry/lib/retry_operation.js +162 -0
  888. package/app/node_modules/retry/package.json +36 -0
  889. package/app/node_modules/supports-color/index.js +135 -0
  890. package/app/node_modules/supports-color/package.json +53 -0
  891. package/app/node_modules/ws/index.js +22 -0
  892. package/app/node_modules/ws/lib/buffer-util.js +131 -0
  893. package/app/node_modules/ws/lib/constants.js +19 -0
  894. package/app/node_modules/ws/lib/event-target.js +292 -0
  895. package/app/node_modules/ws/lib/extension.js +203 -0
  896. package/app/node_modules/ws/lib/limiter.js +55 -0
  897. package/app/node_modules/ws/lib/permessage-deflate.js +530 -0
  898. package/app/node_modules/ws/lib/receiver.js +743 -0
  899. package/app/node_modules/ws/lib/sender.js +607 -0
  900. package/app/node_modules/ws/lib/stream.js +161 -0
  901. package/app/node_modules/ws/lib/subprotocol.js +62 -0
  902. package/app/node_modules/ws/lib/validation.js +152 -0
  903. package/app/node_modules/ws/lib/websocket-server.js +562 -0
  904. package/app/node_modules/ws/lib/websocket.js +1421 -0
  905. package/app/node_modules/ws/package.json +74 -0
  906. package/app/package.json +1 -1
  907. package/app/server.js +1 -1
  908. package/dist/cli.js +5 -2
  909. package/dist/product.d.ts +8 -0
  910. package/dist/product.js +69 -3
  911. package/package.json +2 -2
  912. package/schemas/botmancers.mcp.v2.tools.json +767 -2
  913. package/skills/botmancers-collaboration/SKILL.md +5 -1
  914. package/skills/botmancers-collaboration/references/workflows.md +21 -0
  915. package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +0 -3
  916. package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +0 -3
  917. package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +0 -3
  918. package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +0 -3
  919. package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +0 -3
  920. package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +0 -3
  921. package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +0 -44
  922. package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +0 -3
  923. package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +0 -3
  924. package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +0 -3
  925. package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +0 -44
  926. package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +0 -3
  927. package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +0 -3
  928. package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +0 -44
  929. package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +0 -3
  930. package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +0 -44
  931. package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +0 -3
  932. package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +0 -3
  933. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +0 -7
  934. package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +0 -3
  935. package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +0 -44
  936. package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +0 -3
  937. package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +0 -3
  938. package/app/.next/server/chunks/_023se5j._.js +0 -44
  939. package/app/.next/server/chunks/_02pb_qv._.js +0 -44
  940. package/app/.next/server/chunks/_05ro-21._.js +0 -44
  941. package/app/.next/server/chunks/_07on0dc._.js +0 -44
  942. package/app/.next/server/chunks/_08208nz._.js +0 -44
  943. package/app/.next/server/chunks/_0fe5qz5._.js +0 -44
  944. package/app/.next/server/chunks/_0qoji5a._.js +0 -44
  945. package/app/.next/server/chunks/_0uv2pi5._.js +0 -44
  946. package/app/.next/server/chunks/_0wdl90-._.js +0 -44
  947. package/app/.next/server/chunks/_11ijk9k._.js +0 -44
  948. package/app/.next/server/chunks/_198sn69._.js +0 -44
  949. package/app/.next/server/chunks/_1ba_5hd._.js +0 -44
  950. package/app/.next/server/chunks/_1m89jq5._.js +0 -44
  951. package/app/.next/server/chunks/_1n39wr_._.js +0 -44
  952. package/app/.next/server/chunks/_1ryxqo1._.js +0 -44
  953. package/app/.next/server/chunks/_1vemgly._.js +0 -44
  954. package/app/.next/server/chunks/lib_0lqoyb4._.js +0 -217
  955. package/app/.next/server/chunks/lib_0riiofz._.js +0 -44
  956. package/app/.next/server/chunks/lib_16j2293._.js +0 -217
  957. package/app/.next/server/chunks/lib_1nb_61e._.js +0 -217
  958. package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +0 -20
  959. package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +0 -3
  960. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +0 -3
  961. package/app/.next/static/chunks/0bhd8eso48g27.js +0 -1
  962. package/app/.next/static/chunks/3230ywnpii0s6.js +0 -3
  963. package/app/.next/static/chunks/35l2c95bd-jud.js +0 -1
  964. package/app/.next/static/chunks/3cijpn6vx3yzv.js +0 -1
  965. package/app/.next/static/chunks/3ue9194j59kem.js +0 -1
  966. package/app/.next/static/chunks/44ese2s4gzze_.js +0 -1
  967. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_buildManifest.js +0 -0
  968. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_clientMiddlewareManifest.js +0 -0
  969. /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → _yrIZIFsIbXA0Gaxkytjd}/_ssgManifest.js +0 -0
@@ -1,20 +0,0 @@
1
- module.exports=[674,50081,e=>{"use strict";var n=e.i(46786),t=e.i(54799),s=e.i(62294),r=e.i(18966),i=e.i(35613),o=e.i(90027),a=e.i(16789),d=e.i(63020),u=e.i(45383);let l={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},c={session_missing:"choose_session",session_ended:"choose_session",session_not_resumable:"choose_session",source_session_busy:"retry_later",action_unavailable:"choose_action",authority_not_allowed:"ask_owner"},_={...c,workspace_required:"ask_owner",no_eligible_session:"ask_owner",grant_required:"ask_owner",agent_unavailable:"ask_owner",approval_required:"approve_write",pin_not_found:"pin_again",pin_detached:"pin_again",provider_failed:"retry_later",rate_limited:"retry_later"};function f(e){return Object.prototype.hasOwnProperty.call(_,e)?_[e]:null}function h(e,n,t){return{available:!1,code:n,reason:`${l[e]} is unavailable: ${t}`,recovery:c[n]}}function p(e,n,t){if(null===t)return h(e,"session_not_resumable",`nothing can reach this session under ${n.agent.name}’s current runtime. Its history stays here.`);if("provider"===t){if("missing"===n.state.availability)return h(e,"session_missing","the runtime no longer has this session. Its history stays here; choose another session.");if(!1===n.state.resumable)return h(e,"session_not_resumable","the runtime says this session can’t be resumed. Choose another session.")}else{if("ended"===n.status)return h(e,"session_ended","this session has ended. Its history stays here.");if(!n.resumable)return h(e,"session_not_resumable",`Botmancers can’t resume this session under ${n.agent.name}’s current runtime.`)}return n.state.busy?h(e,"source_session_busy","a turn is running in this session. Try again when it finishes."):{available:!0}}function w(e,n){let t=p("ask",e,n.route),s=p("resume",e,n.route);return s.available&&("provider"!==n.route?s=h("resume","action_unavailable","this runtime can’t resume a session with edits. Ask from this context, or hand off to another Agent."):n.provider?.authorities.includes("workspace_write")?n.policy&&"workspace_write"===n.policy.mode?n.policy.allow_resume_with_edits||(s=h("resume","authority_not_allowed",`${e.agent.name}’s policy doesn’t allow resuming with edits. The owner can allow it in Config.`)):s=h("resume","authority_not_allowed",`${e.agent.name}’s policy is read only. The owner can allow workspace write in Config.`):s=h("resume","action_unavailable","this runtime can’t enforce edit access in a resumed session. Ask from this context instead.")),{ask:t,resume:s,handoff:"botmancers"!==e.source?h("handoff","action_unavailable","hand off starts from a Botmancers-launched session. Ask from this context or resume this one instead."):p("handoff",e,"engine")}}e.s(["recoveryFor",0,f,"sessionActions",0,w],50081);let g={invalid_request:400,agent_not_found:404,session_not_found:404,conversation_not_found:404,pin_not_found:404,pin_detached:409,workspace_required:409,no_eligible_session:409,session_missing:410,session_ended:409,session_not_resumable:409,source_session_busy:409,action_unavailable:409,approval_required:403,authority_not_allowed:403,agent_unavailable:409,grant_required:403,provider_failed:502,idempotency_conflict:409};class m extends Error{code;recovery;constructor(e,n){super(n),this.name="PinError",this.code=e,this.recovery=f(e)}get status(){return g[this.code]}}function y(e){return(0,t.createHash)("sha256").update(JSON.stringify(e)).digest("hex")}function v(e){return"string"==typeof e&&e.trim().length>0}function E(e){if(!v(e)||e.length>200)throw new m("invalid_request","An idempotency key (1-200 characters) is required.");return e}function k(e){if(!v(e))throw new m("invalid_request","content is required.");if(e.length>i.EXCHANGE_LIMITS.instructionChars)throw new m("invalid_request",`content exceeds ${i.EXCHANGE_LIMITS.instructionChars} characters.`);return e}function b(e){if(e instanceof m)throw e;if(e instanceof a.ProviderSessionError)throw function(e){switch(e.code){case"agent_not_found":return new m("agent_not_found","No such Agent.");case"session_not_found":return new m("session_not_found","No session with that reference.");case"session_missing":return new m("session_missing","The runtime no longer has this session. The pin stays on it; detach it or switch to another session.");case"not_resumable":return new m("session_not_resumable","The runtime cannot resume this session now. The pin stays on it; detach it or switch to another session.");case"out_of_scope":return new m("session_not_resumable","The session is outside the Agent’s session scope.");case"busy":return new m("source_session_busy","A turn is already running in this session; wait for it, then send again.");case"authority_not_allowed":return new m("authority_not_allowed",`The Agent’s policy or runtime refused this authority: ${e.message}`);case"new_sessions_not_allowed":return new m("no_eligible_session","The Agent’s policy does not allow new sessions.");case"unsupported":return new m("action_unavailable","The Agent’s runtime does not support this action.");case"scope_missing":return new m("agent_unavailable","The Agent has no session scope; the owner must choose one.");case"provider_unavailable":return new m("agent_unavailable","The Agent’s runtime connection is not available.");case"idempotency_conflict":return new m("idempotency_conflict","That idempotency key was used for a different turn.");case"invalid_input":return new m("invalid_request",e.message);default:return new m("provider_failed","The runtime failed this turn. The pin stays on the same session; retry later.")}}(e);if(e instanceof d.ExchangeError)throw function(e){switch(e.code){case"session_not_found":return new m("session_not_found","No session with that reference.");case"agent_not_found":return new m("agent_not_found","No such Agent.");case"conversation_not_found":return new m("conversation_not_found","No conversation with that id is visible.");case"session_ended":return new m("session_ended","This session has ended. The pin stays on it; detach it or switch to another session.");case"session_not_resumable":return new m("session_not_resumable","Botmancers cannot resume this session under the Agent’s current runtime.");case"source_session_busy":return new m("source_session_busy","This session already has a turn in progress; wait for it, then send again.");case"agent_unavailable":return new m("agent_unavailable",e.message);case"idempotency_conflict":return new m("idempotency_conflict","That idempotency key was used for a different turn.");default:return new m("invalid_request",e.message)}}(e);throw e}function q(e,n,r,i){s.default.prepare(`
2
- INSERT INTO session_pin_events (id, pin_id, sequence, type, data, created_at)
3
- SELECT ?, ?, COALESCE(MAX(sequence), 0) + 1, ?, ?, ? FROM session_pin_events WHERE pin_id = ?
4
- `).run((0,t.randomUUID)(),e,n,JSON.stringify(r),i,e)}function I(e){return s.default.prepare("SELECT * FROM session_pins WHERE id = ?").get(e)}function T(e,n){return s.default.prepare("SELECT * FROM session_pins WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function R(e,n){return s.default.prepare("SELECT * FROM session_pin_turns WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function A(e,n){let t="string"==typeof n&&n.length<=200?I(n):void 0;if(!t||t.requester_kind!==e.kind||t.requester_id!==e.id)throw new m("pin_not_found","No pin with that reference is visible to this requester.");return t}function S(e){if("string"!=typeof e||0===e.length||e.length>200)return null;let n=s.default.prepare("SELECT agent_id FROM session_bindings WHERE id = ?").get(e);if(n)return n.agent_id;let t=s.default.prepare("SELECT agent_id FROM provider_sessions WHERE id = ?").get(e);return t?.agent_id??null}function N(e){return e?"~"===e?n.default.homedir():e.startsWith("~/")?`${n.default.homedir()}/${e.slice(2)}`:e.startsWith("/")?e:null:null}function C(e){let n=s.bots.getById(e);if(!n)throw new m("agent_not_found","No such Agent.");return{bot:n,provider:(0,a.agentProviderCapabilities)(s.default,e),connectionId:n.runtime_connection_id??null,policy:(0,r.readStoredPolicy)(n)}}function O(e,n){if(e.provider?.resume){let t=(0,a.getProviderSessionRow)(s.default,e.bot.id,n.ref);if(t&&t.runtime_connection_id===e.connectionId)return"provider"}return"botmancers"===n.source?"engine":null}function P(e,n){return{route:O(e,n),provider:e.provider?{resume:e.provider.resume,authorities:[...e.provider.authorities]}:null,policy:e.policy?{mode:e.policy.mode,allow_resume_with_edits:e.policy.allow_resume_with_edits}:null}}async function L(e,n){let t=(0,o.getAgentSession)(s.default,e.bot.id,n);if(!t||"provider"!==O(e,t))return t;try{await (0,a.refreshProviderSession)(s.default,e.bot.id,n)}catch(e){b(e)}return(0,o.getAgentSession)(s.default,e.bot.id,n)}function D(e,n,r){let i=(0,t.randomUUID)();s.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(i,"agent",e.kind,e.id,r);let o=s.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)");return o.run(i,e.kind,e.id,r),o.run(i,"bot",n,r),i}function U(e,n){if(!s.default.prepare(`
5
- SELECT 1 FROM conversations c JOIN conversation_participants p ON p.conversation_id = c.id
6
- WHERE c.id = ? AND p.participant_kind = ? AND p.participant_id = ?
7
- `).get(n,e.kind,e.id))throw new m("conversation_not_found","No conversation with that id is visible to this requester.")}function W(e,n,r,i){let o=(0,t.randomUUID)();return s.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(o,e,n.type,n.id,n.kind,null,r,i),o}function x(e){if(e.provider_turn_ref){let n=I(e.pin_id),t=(0,a.getProviderTurn)(s.default,n.agent_id,e.provider_turn_ref);return t?{state:t.state,answer:"completed"===t.state?t.output:null,failure:"failed"===t.state||"cancelled"===t.state?{code:t.failure_code??t.state}:null,finished_at:t.finished_at}:{state:"failed",answer:null,failure:{code:"turn_missing"},finished_at:null}}let n=u.exchanges.get(e.exchange_id);if(!n)return{state:"failed",answer:null,failure:{code:"turn_missing"},finished_at:null};let t="completed"===n.state?"completed":"failed"===n.state?"failed":"cancelled"===n.state?"cancelled":"running",r=n.answer_message_id?s.default.prepare("SELECT content FROM messages WHERE id = ?").get(n.answer_message_id)?.content??null:null;return{state:t,answer:"completed"===t?r:null,failure:"failed"===t?{code:n.failure_code??"failed"}:"cancelled"===t?{code:"cancelled"}:null,finished_at:n.terminal_at}}function H(e,n){let t=x(n);return{turn_ref:n.id,seq:n.seq,state:t.state,authority:e.authority,content:n.content,answer:t.answer,failure:t.failure,exchange_id:n.exchange_id,created_at:n.created_at,finished_at:t.finished_at}}function M(e){let n=(0,t.randomUUID)();return s.default.prepare(`
8
- INSERT INTO session_pins (
9
- id, requester_kind, requester_id, idempotency_key, request_hash, agent_id, session_ref, action, authority, resolution, route,
10
- conversation_id, approved_at, state, created_at, updated_at
11
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'attached', ?, ?)
12
- `).run(n,e.requester.kind,e.requester.id,e.key,e.hash,e.agentId,e.sessionRef,e.action,"ask"===e.action?"read_only":"workspace_write",e.resolution,e.route,e.conversationId,e.approved?e.now:null,e.now,e.now),q(n,"created",{agent_id:e.agentId,session_ref:e.sessionRef,action:e.action,resolution:e.resolution,route:e.route,authority:"ask"===e.action?"read_only":"workspace_write",approved:e.approved},e.now),I(n)}function $(e,n,t,r){s.default.prepare("UPDATE session_pins SET state = 'detached', detach_reason = ?, replaced_by = ?, detached_at = ?, updated_at = ? WHERE id = ? AND state = 'attached'").run(n,t,r,r,e.id),q(e.id,n,t?{replaced_by:t}:{},r)}async function F(e){let n=`pin:${E(e.idempotencyKey)}`;if("ask"!==e.action&&"resume"!==e.action)throw new m("invalid_request",'action must be "ask" or "resume".');let t=y(["pin",e.sessionRef,e.agentId??null,e.action,!0===e.approveWrite,e.conversationId??null,e.replacePinRef??null]),r=T(e.requester,n);if(r){if(r.request_hash!==t)throw new m("idempotency_conflict","That idempotency key was used for a different pin.");return{pin:r,created:!1,replaced:null}}let i=S(e.sessionRef);if(!i||e.agentId&&e.agentId!==i)throw new m("session_not_found","No session with that reference.");await (0,a.warmAgentProvider)(s.default,i,{onlyWithSessions:!0});let o=C(i),d=await L(o,e.sessionRef);if(!d)throw new m("session_not_found","No session with that reference.");let u=function(e,n,t){let s=P(e,n),r=w(n,s)[t];if(!r.available&&"source_session_busy"!==r.code)throw new m(r.code,r.reason);return s.route}(o,d,e.action);if("resume"===e.action&&!0!==e.approveWrite)throw new m("approval_required","Resume work here runs with workspace-write authority. Ask the person you act for to approve edits, then pin again with approve_write: true.");let l=e.replacePinRef?A(e.requester,e.replacePinRef):null;if(l&&"attached"!==l.state)throw new m("pin_detached","The pin to replace is already detached.");if(e.conversationId)U(e.requester,e.conversationId);else if("service"!==e.requester.kind)throw new m("invalid_request","conversation_id is required: the thread that holds this conversation.");return s.default.transaction(()=>{let s=T(e.requester,n);if(s)return{pin:s,created:!1,replaced:null};let r=e.now??Date.now(),o=M({requester:e.requester,key:n,hash:t,agentId:i,sessionRef:d.ref,action:e.action,resolution:"exact",route:u,conversationId:e.conversationId??D(e.requester,i,r),approved:"resume"===e.action,now:r});return l&&$(l,"switched",o.id,r),e.onCommit?.(o),{pin:o,created:!0,replaced:l?I(l.id):null}}).immediate()}function B(e,n,t){let r=n;try{b(n)}catch(e){r=e}if(r instanceof m){let n=r.code;s.default.transaction(()=>q(e.id,"turn_refused",{code:n,session_ref:e.session_ref},t)).immediate()}throw r}function V(e,n){return`pin-${(0,t.createHash)("sha256").update(`${e}
13
- ${n}`).digest("hex").slice(0,40)}`}function K(e,n,r,i,o,a,d){var u;let l=(0,t.randomUUID)(),c=a.exchangeId?null:W(e.conversation_id,{type:"user",id:n.id,kind:n.kind},o,d);return s.default.prepare(`
14
- INSERT INTO session_pin_turns (
15
- id, pin_id, seq, requester_kind, requester_id, idempotency_key, request_hash, content, exchange_id, provider_turn_ref,
16
- question_message_id, answer_message_id, created_at
17
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?)
18
- `).run(l,e.id,(u=e.id,(s.default.prepare("SELECT MAX(seq) AS n FROM session_pin_turns WHERE pin_id = ?").get(u).n??0)+1),n.kind,n.id,r,i,o,a.exchangeId??null,a.providerTurnRef??null,c,d),s.default.prepare("UPDATE session_pins SET updated_at = ? WHERE id = ?").run(d,e.id),q(e.id,"turn_sent",{turn_ref:l,session_ref:e.session_ref,authority:e.authority,route:e.route},d),s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(l)}function G(e){s.default.transaction(()=>{let n=s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(e);if(!n||!n.provider_turn_ref||n.answer_message_id)return;let t=I(n.pin_id),r=(0,a.getProviderTurn)(s.default,t.agent_id,n.provider_turn_ref);if(r&&"running"!==r.state&&"completed"===r.state&&null!==r.output){let e=Date.now(),i=W(t.conversation_id,{type:"bot",id:t.agent_id,kind:"bot"},r.output,e);s.default.prepare("UPDATE session_pin_turns SET answer_message_id = ? WHERE id = ? AND answer_message_id IS NULL").run(i,n.id),q(t.id,"turn_answered",{turn_ref:n.id},e)}}).immediate()}async function X(e,n,t){if(n.provider_turn_ref)try{let r=await (0,a.observeProviderTurn)(s.default,e.agent_id,n.provider_turn_ref,null===t?{}:{deadlineAt:Date.now()+t});"running"!==r.state&&G(n.id)}catch(e){console.error("Pin turn observe failed:",e instanceof Error?e.message:"unknown error")}}async function J(e,n,r,i,o,d,l){let c;if("provider"===e.route){let t;try{t=await (0,a.sendProviderTurn)(s.default,e.agent_id,e.session_ref,{prompt:o,authority:e.authority,idempotencyKey:V(e.id,r),requester:n})}catch(n){B(e,n,d)}let u=s.default.transaction(()=>{let s=R(n,r);if(s)return s;let a=K(e,n,r,i,o,{providerTurnRef:t.turn.turn_ref},d);return l?.(e,a),a}).immediate();return{pin:I(e.id),turn:H(e,u),replayed:!1,settled:X(e,u,null)}}try{c=s.default.transaction(()=>{let a=R(n,r);if(a)return a;let{exchange:c}=u.exchanges.create({requester:n,serviceGrant:"service"===n.kind,idempotencyKey:V(e.id,r),mode:"ask",originConversationId:e.conversation_id,sourceAgentId:e.agent_id,sessionRef:e.session_ref,instruction:o,now:d});s.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run((0,t.randomUUID)(),e.conversation_id,"user",n.id,n.kind,c.source_request_id,o,d);let _=K(e,n,r,i,o,{exchangeId:c.id},d);return l?.(e,_),_}).immediate()}catch(n){B(e,n,d)}return{pin:I(e.id),turn:H(e,c),replayed:!1,settled:(0,u.dispatchExchange)(c.exchange_id)}}async function j(e){let n=`turn:${E(e.idempotencyKey)}`,t=k(e.content),s=A(e.requester,e.pinRef),r=y(["turn",s.id,t]),i=R(e.requester,n);if(i){if(i.request_hash!==r)throw new m("idempotency_conflict","That idempotency key was used for a different turn.");return{pin:s,turn:H(s,i),replayed:!0,settled:Promise.resolve()}}if("attached"!==s.state)throw new m("pin_detached",`This pin was ${"switched"===s.detach_reason?"switched to another pin":"detached"}; it no longer sends. Pin a session again.`);return J(s,e.requester,n,r,t,e.now??Date.now(),e.onCommit)}async function Y(e,n){let t=e.bot.id,i=!1,a=async n=>{let t=await L(e,n);if(!t)return null;let s=P(e,t),r=w(t,s).ask;return r.available?{summary:t,route:s.route}:"source_session_busy"===r.code?"busy":null},d=e.bot.home_session_id;if(d&&(0,o.getAgentSession)(s.default,t,d)){let e=await a(d);if("busy"===e)throw new m("source_session_busy","The Agent’s home session has a turn in progress; send again when it finishes.");if(e)return{kind:"session",...e,resolution:"home"}}for(let n of(0,o.listAgentSessions)(s.default,t,"all").filter(e=>e.ref!==d).filter(n=>{let t=P(e,n),s=w(n,t).ask;return s.available||"source_session_busy"===s.code||"provider"===t.route&&null===n.state.resumable}).slice(0,10)){let e=await a(n.ref);if("busy"===e)i=!0;else if(e)return{kind:"session",...e,resolution:"newest"}}if(i)throw new m("source_session_busy","Every eligible session of this Agent has a turn in progress; send again when one finishes.");if(!e.policy?.allow_new_sessions)throw new m("no_eligible_session","This Agent has no session that can take a message, and its policy does not allow new sessions. Pin one of its sessions, or ask the owner to allow new sessions.");if(!e.provider?.start)throw new m("no_eligible_session","This Agent has no session that can take a message, and its runtime cannot start a new one from here.");let u=(0,r.readStoredScope)(e.bot);if(!u)throw new m("agent_unavailable","The Agent has no session scope; the owner must choose one.");if("sessions"===u.kind)throw new m("no_eligible_session","This Agent is limited to selected sessions and none can take a message now; it cannot start a new one.");let l=N(e.bot.default_workspace)??("workspaces"===u.kind&&1===u.workspaces.length?N(u.workspaces[0]):null);if(!l)throw new m("workspace_required","This Agent has no session that can take a message, and no default workspace for a new one. Ask the owner to set a default workspace, or pin one of its sessions.");if(!n)throw new m("grant_required","Starting a new session for this Agent needs the sessions:start grant, which only the Botmancers owner can give. Pin one of its sessions instead.");return{kind:"start",workspace:l}}async function z(e){let n,t=E(e.idempotencyKey),r=`agent:${t}`,i=`agent:${t}`,o=k(e.content),d=y(["agent",e.agentId,o,e.conversationId??null]),u=T(e.requester,r);if(u){if(u.request_hash!==d)throw new m("idempotency_conflict","That idempotency key was used for a different message.");e.onResolved?.({agentId:u.agent_id,sessionRef:u.session_ref,resolution:u.resolution});let n=R(e.requester,i);if(n)return{pin:u,turn:H(u,n),replayed:!0,resolution:u.resolution,settled:Promise.resolve()};if("attached"!==u.state)throw new m("pin_detached","This pin was detached before its first turn ran. Message the Agent again with a new key.");return{...await J(u,e.requester,i,y(["turn",u.id,o]),o,e.now??Date.now()),resolution:u.resolution}}if(e.conversationId)U(e.requester,e.conversationId);else if("service"!==e.requester.kind)throw new m("invalid_request","conversation_id is required: the thread that holds this conversation.");s.bots.getById(e.agentId)&&await (0,a.warmAgentProvider)(s.default,e.agentId);let l=C(e.agentId),c=await Y(l,e.mayStart),_=e.now??Date.now();if("session"===c.kind){e.onResolved?.({agentId:e.agentId,sessionRef:c.summary.ref,resolution:c.resolution});let n=s.default.transaction(()=>{let n=T(e.requester,r);if(n)return n;let t=M({requester:e.requester,key:r,hash:d,agentId:e.agentId,sessionRef:c.summary.ref,action:"ask",resolution:c.resolution,route:c.route,conversationId:e.conversationId??D(e.requester,e.agentId,_),approved:!1,now:_});return e.onCommit?.(t),t}).immediate();return{...await J(n,e.requester,i,y(["turn",n.id,o]),o,_),resolution:c.resolution}}e.onResolved?.({agentId:e.agentId,sessionRef:null,resolution:"started"});try{n=await (0,a.startProviderSession)(s.default,e.agentId,{workspace:c.workspace,prompt:o,authority:"read_only",idempotencyKey:V(e.agentId,i),requester:e.requester})}catch(e){b(e)}e.onResolved?.({agentId:e.agentId,sessionRef:n.turn.session_ref,resolution:"started"});let{pin:f,turn:h}=s.default.transaction(()=>{let t=T(e.requester,r);if(t)return{pin:t,turn:R(e.requester,i)};let s=M({requester:e.requester,key:r,hash:d,agentId:e.agentId,sessionRef:n.turn.session_ref,action:"ask",resolution:"started",route:"provider",conversationId:e.conversationId??D(e.requester,e.agentId,_),approved:!1,now:_}),a=K(s,e.requester,i,y(["turn",s.id,o]),o,{providerTurnRef:n.turn.turn_ref},_);return e.onCommit?.(s),{pin:s,turn:a}}).immediate();return{pin:f,turn:H(f,h),replayed:!1,resolution:"started",settled:X(f,h,null)}}async function Q(e,n){let t=A(e,n),r=s.default.prepare("SELECT * FROM session_pin_turns WHERE pin_id = ? ORDER BY seq DESC LIMIT ?").all(t.id,20).reverse();for(let e of r)e.provider_turn_ref&&!e.answer_message_id&&("running"===x(e).state?await X(t,e,25):G(e.id));return{pin:t,turns:r.map(e=>H(t,s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(e.id)))}}e.s(["PinError",0,m,"createPin",0,F,"detachPin",0,function(e,n,t={}){return s.default.transaction(()=>{let s=A(e,n);if("detached"===s.state)return t.onCommit?.(s),{pin:s,replayed:!0};$(s,"detached",null,t.now??Date.now());let r=I(s.id);return t.onCommit?.(r),{pin:r,replayed:!1}}).immediate()},"messageAgent",0,z,"pinErrorBody",0,function(e){return{error:{code:e.code,message:e.message,...e.recovery?{recovery:e.recovery}:{}}}},"pinView",0,function(e){let n=(0,o.getAgentSession)(s.default,e.agent_id,e.session_ref),t=s.default.prepare("SELECT COUNT(*) AS n FROM session_pin_turns WHERE pin_id = ?").get(e.id).n;return{pin_ref:e.id,agent:{id:e.agent_id,name:s.bots.getById(e.agent_id)?.name??null},session:{ref:e.session_ref,title:n?.title??null},action:e.action,authority:e.authority,resolution:e.resolution,state:e.state,conversation_id:e.conversation_id,approved:null!==e.approved_at,replaced_by:e.replaced_by,turn_count:t,created_at:e.created_at,updated_at:e.updated_at,detached_at:e.detached_at}},"readPin",0,Q,"requirePin",0,A,"sendPinTurn",0,j,"sessionOwner",0,S,"sessionsWithActions",0,function(e,n){let t=C(e);return n.map(e=>{let n=P(t,e);return{...e,route:n.route,home:t.bot.home_session_id===e.ref,actions:w(e,n)}})}],674)}];
19
-
20
- //# sourceMappingURL=lib_session-pins_ts_0lmxnwj._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[27828,65221,35099,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246);function e(a){return`${new Date(a).toISOString().slice(0,16).replace("T"," ")} UTC`}let f="Not reported";function g(a){return a.toFixed(1).replace(/\.0$/,"")}function h(a){return a.toLocaleString("en-US")}function i(a){return 0===a?"$0.00":a>=.01?`$${a.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:a<1e-4?"<$0.0001":`$${a.toFixed(4)}`}let j={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function k(a,b,c){return"cost_usd"===a?i(b):c?h(b):b<1e3?String(b):b<999950?`${g(b/1e3)}k`:b<99995e4?`${g(b/1e6)}M`:`${g(b/1e9)}B`}function l(a){return`${a} ${1===a?"run":"runs"}`}function m(a,b,c=!1){let d=j[a];if(!b||"unavailable"===b.quality||null===b.sum)return{name:d,text:f,quality:"unavailable",coverage:b&&b.total>0?`0 of ${l(b.total)} reported`:"No runs recorded",label:`${d}: not reported`};let e=k(a,b.sum,c),g=k(a,b.sum,!0);return"partial"===b.quality?{name:d,text:e,quality:"partial",coverage:`Partial: ${b.known} of ${l(b.total)} reported`,label:`${d}: at least ${g}, partial, reported by ${b.known} of ${l(b.total)}`}:{name:d,text:e,quality:"complete",coverage:`All ${l(b.total)} reported`,label:`${d}: ${g}, reported by all ${l(b.total)}`}}a.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(a){let b="source"===a.role?"Started the session":"Resumed the session";return`${b} \xb7 ${a.outcome??"running"}`},"emptySessionsCopy",0,function(a,b){return"active"===a?`${b} has no active sessions.`:"ended"===a?`${b} has no ended sessions.`:`${b} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,e,"runtimeLabel",0,function(a){return a.agent.transport?`${a.agent.adapter} \xb7 ${a.agent.transport}`:a.agent.adapter},"sessionStateTags",0,function(a){let b=[];return(a.home&&b.push("Home"),a.state?.availability==="missing")?[...b,"Missing"]:(a.state?.lifecycle==="archived"&&b.push("Archived"),a.state?.busy&&b.push("Busy"),(a.resumable||a.state?.resumable===!0)&&b.push("Resumable"),b)},"sessionUsageLine",0,function(a){let b=m("input_tokens",a?.input_tokens),c=m("output_tokens",a?.output_tokens),d=m("cost_usd",a?.cost_usd),e=[b,c,d];if(e.every(a=>"unavailable"===a.quality))return{text:f,label:"Usage: not reported",quality:"unavailable",partial:!1};let g=["unavailable"===b.quality?"input not reported":`${b.text} in`,"unavailable"===c.quality?"output not reported":`${c.text} out`,"unavailable"===d.quality?"cost not reported":d.text].join(" · "),h=e.some(a=>"partial"===a.quality),i=h||e.some(a=>"unavailable"===a.quality)?"partial":"complete";return{text:g,label:`Reported usage: ${e.map(a=>a.label).join("; ")}`,quality:i,partial:h}},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"usageMetricView",0,m,"usageSampleLabel",0,function(a,b){let c="turn"===a.kind?"start"===a.turn_kind?"provider turn, started":"provider turn":"resume"===a.turn_kind?"resumed":"started";return`Run ${b+1} \xb7 ${c}`},"usageSampleValues",0,function(a){return{input:null===a.input_tokens?f:h(a.input_tokens),output:null===a.output_tokens?f:h(a.output_tokens),cost:null===a.cost_usd?f:i(a.cost_usd)}},"workRequestLabel",0,function(a){var b;let c=a.origin.work_request;return c?`${(b=c.execution_kind)?b[0].toUpperCase()+b.slice(1):b} \xb7 ${c.state}`:null}],65221);let n={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},o=["queued","extracting","delivering","completed","failed","cancelled"],p=["completed","failed","cancelled"];function q(a){return"ask"===a?"Ask":"Continue"}function r(a,b){switch(b){case"queued":return"Queued";case"extracting":return"ask"===a?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===a?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function s(a){var b;return a.cancel_requested&&(b=a.state,!p.includes(b))?"Cancelling…":r(a.mode,a.state)}function t(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"}function u(a,b=140){let c=String(a??"").split("\n").map(a=>a.trim()).filter(a=>a.length>0).join(" ");return c.length>b?`${c.slice(0,b-1).trimEnd()}…`:c}function v(a){return e(a)}function w(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`}function x(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`}function y(a){return"ask"===a?"Question":"Objective"}function z(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${u(a.outcome.answer,200)}`:`Answered in ${b}.`}let b=a.destination?.agent_name??"The destination Agent";return a.outcome.reply?`${b} picked it up in a new session: ${u(a.outcome.reply,200)}`:`${b} picked it up in a new session.`}return"failed"===a.state?a.failure?.message||"The exchange failed.":"cancelled"===a.state?"Cancelled before it finished. Nothing more will run.":null}function A(a){if("failed"!==a.state)return null;switch(a.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}}function B(a){return`/exchanges?id=${encodeURIComponent(a)}`}function C(a,b){return b.updated_at-a.updated_at||b.created_at-a.created_at||(a.id<b.id?-1:+(a.id>b.id))}a.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,B,"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",f="string"==typeof c.hop?c.hop:null;switch(a.type){case"created":return"ask"===b.mode?`You asked ${d}'s session a question`:`You handed ${d}'s session to ${e}`;case"hop_queued":if("deliver"===f)return`Handoff queued for ${e}'s new session`;return"extract"===f?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===f)return`${e} started a new session`;return"extract"===f?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&o.includes(c.to)?c.to:null;return a?`Now ${r(b.mode,a).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${b.origin?.label??"the origin thread"}${c.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof c.reason?`: ${c.reason}`:""}`;case"destination_replied":return`${e} replied in ${b.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${e}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return a.type.replace(/_/g," ")}},"excerpt",0,u,"exchangeRequestBody",0,function(a,b,c){let d={mode:a.mode,idempotency_key:c,origin_conversation_id:a.originConversationId,source:{agent_id:b.agentId,session_ref:b.sessionRef},instruction:a.instruction.trim()};return"continue"===a.mode&&(d.destination={agent_id:a.destinationAgentId}),d},"failureAdvice",0,A,"formatExchangeTime",0,v,"instructionHeading",0,y,"ledgerAgents",0,function(a){let b=new Map;for(let c of a)b.set(c.source.agent_id,c.source.agent_name),c.destination&&b.set(c.destination.agent_id,c.destination.agent_name);return[...b.entries()].map(([a,b])=>({id:a,name:b})).sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id))},"ledgerRows",0,function(a,b){return a.filter(a=>("all"===b.mode||a.mode===b.mode)&&("active"!==b.state||!a.terminal)&&("all"===b.state||"active"===b.state||a.state===b.state)&&(!b.agentId||a.source.agent_id===b.agentId||a.destination?.agent_id===b.agentId)).sort(C)},"ledgerView",0,function(a,b,c){return null===a?b?"error":"loading":0===a.length?"empty":0===c.length?"filtered-out":"rows"},"linkRoleLabel",0,function(a){let b={origin:"Started here",source:"Source session",destination:"Destination"};return a.map(a=>b[a]).join(" · ")},"liveStateLabel",0,s,"modeLabel",0,q,"outcomeLine",0,z,"participantsLabel",0,x,"pinRequestBody",0,function(a,b,c,d,e){return{action:a,content:b.trim(),conversation_id:c,idempotency_key:e,..."resume"===a?{approve_write:d}:{}}},"sessionDialogMode",0,function(a){return"handoff"===a?"continue":a},"sessionDialogTitle",0,function(a){return n["continue"===a?"handoff":a]},"sessionDialogUsesPin",0,function(a,b){return"resume"===a||"ask"===a&&"provider"===b},"sessionLabel",0,w,"sessionRowActions",0,function(a){let b;if(a.actions)b=a.actions;else{let c="ended"===a.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`},d=c.available?{available:!0}:{available:!1,code:"ended"===a.status?"session_ended":"session_not_resumable",reason:c.reason,recovery:"choose_session"};b={ask:d,resume:{available:!1,code:"action_unavailable",reason:`${n.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:d}}return["ask","resume","handoff"].map(a=>({action:a,label:n[a],availability:b[a]}))},"stateTone",0,t,"submitErrorMessage",0,function(a,b){switch(a){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return b||"That Agent has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return b||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return b||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return b||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(a,b){let c=new URLSearchParams;if(a.thread_agent_id)return c.set("agent",a.thread_agent_id),b&&c.set("exchange",b),`/?${c.toString()}`;if("group"!==a.kind)return null;b&&c.set("exchange",b);let d=c.toString();return`/threads/${encodeURIComponent(a.id)}${d?`?${d}`:""}`},"validateDraft",0,function(a){let b={},c=a.instruction.trim(),d="ask"===a.mode?"a question":"an objective";return c?a.instruction.length>4e3&&(b.instruction="Keep it under 4000 characters."):b.instruction=`Enter ${d}.`,a.originConversationId||(b.origin="Choose the thread that follows this exchange."),"continue"!==a.mode||a.destinationAgentId||(b.destination="Choose the Agent who continues the work."),b},"validateResumeDraft",0,function(a,b){let c={};return a.trim()?a.length>4e3&&(c.instruction="Keep it under 4000 characters."):c.instruction="Enter what to work on.",b||(c.approval="Approve edits in this session to resume work here."),c}],35099),a.s(["default",0,function({summary:a,onChanged:e}){let[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(""),j=t(a.state),k=z(a),l=A(a),m=`exchange-${a.id}-title`,n=async()=>{if(!f){g(!0),i("");try{let b=await fetch(`/api/exchanges/${encodeURIComponent(a.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!b.ok){let a=await b.json().catch(()=>null);i("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{i("Could not cancel. Try again.")}finally{g(!1),e?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${j} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":m,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:q(a.mode)}),(0,b.jsx)("span",{id:m,className:"exchange-card-title",children:x(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:s(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:w(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:y(a.mode)})," ",u(a.instruction,220)]}),k?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:k}):null,l?(0,b.jsx)("p",{className:"exchange-card-advice",children:l}):null,h?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:h}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",v(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:B(a.id),"aria-label":`Details: ${q(a.mode)} ${x(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:f,onClick:()=>{n()},children:f?"Cancelling…":"Cancel"}):null]})]})}],27828)}];
2
-
3
- //# sourceMappingURL=app_components_ExchangeCard_tsx_1shfcgn._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[69789,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
-
3
- //# sourceMappingURL=node_modules_next_dist_client_components_server-async-storage_0t1dato.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10331,3136,74904,4335,e=>{"use strict";var t=e.i(43476);let n=["hermes","cursor","claude","codex","muse"],r={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},a="hermes";function s(e){return n.includes(String(e))?r[e]:String(e??"")}n.join("|"),e.s(["AGENTS",0,n,"AGENT_LABELS",0,r,"DEFAULT_AGENT",0,a,"agentLabel",0,s],3136);let i=n.map(e=>({value:e,label:r[e]})),o="/settings",l="Select an Agent Deck…",u="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",c="Runs use the server above. Remote execution is unconfirmed.",d="Configure the Agent Deck server in Settings",f="Saved Agent Deck not on this server — saving keeps it unless you pick another.",h={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function p(e=null){return{status:"loading",decks:[],cachedDecks:e,serverUrl:"",checkedAt:0,error:""}}function g(e){return String(e).padStart(2,"0")}function m(e){let t=new Date(e);return`${g(t.getHours())}:${g(t.getMinutes())}:${g(t.getSeconds())}`}function k(e){switch(e.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${e.decks.length} ${1===e.decks.length?"deck":"decks"} \xb7 checked ${m(e.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function b(e){return"connected"===e.status?null:h[e.status]}function v(e){return"empty"===e.status||"malformed"===e.status||"unreachable"===e.status}async function y(e,t,n=Date.now){let r,a;try{r=await e("/api/agent-deck/decks",{cache:"no-store"})}catch(e){return{status:"unreachable",decks:[],cachedDecks:t.cachedDecks,serverUrl:t.serverUrl,checkedAt:n(),error:e instanceof Error?e.message:String(e)}}try{a=await r.json()}catch{a=void 0}return function(e,t,n){let r="object"==typeof e.body&&null!==e.body?e.body:{},a="string"==typeof r.server_url?r.server_url:t.serverUrl,s={cachedDecks:t.cachedDecks,serverUrl:a,checkedAt:n};if("string"==typeof r.server_url&&!r.server_url.trim())return{...s,status:"unconfigured",decks:[],error:""};if(e.ok){let t=function(e){if("object"!=typeof e||null===e)return null;let t=e.decks;if(!Array.isArray(t))return null;let n=[];for(let e of t){if("object"!=typeof e||null===e)return null;let t=e.id,r=e.name;if("string"!=typeof t||!t.trim()||"string"!=typeof r||!r.trim())return null;n.push({id:t,name:r})}return n}(e.body);return t?{...s,cachedDecks:t,status:t.length>0?"connected":"empty",decks:t,error:""}:{...s,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let i="string"==typeof r.error?r.error:`HTTP ${e.status}`,o="invalid-payload"===r.code||/unexpected deck payload/i.test(i);return{...s,status:o?"malformed":"unreachable",decks:[],error:i}}({ok:r.ok,status:r.status,body:a},t,n())}function x(e,t){let n=String(e??"").trim(),r=t?t.decks.length>0?t.decks:t.cachedDecks??[]:[];return r.find(e=>e.id===n)?.name??n}function _(e){return s((e.agent??"").trim()||a)}function $(e){return!S(e)&&(function(e){let t=e.needs_deck_selection;if(!0===t||1===t)return!0;if("string"==typeof t){let e=t.trim().toLowerCase();return"1"===e||"true"===e}return!1}(e)||!(e.deck_id??"").trim())}function S(e){return"direct"===e.launch_profile}function w(e,t){if($(e)||S(e))return!1;let n=t?"connected"===t.status||"empty"===t.status?t.decks.map(e=>e.id):"unconfigured"===t.status?null:t.cachedDecks?t.cachedDecks.map(e=>e.id):null:null;return!!n&&!n.includes((e.deck_id??"").trim())}function A(e){return`Agent: ${_(e)} \xb7 Agent Deck: `}function C(e,t){let n,r=(n=S(e)?`Agent: ${_(e)} \xb7 Launch: Direct`:$(e)?`${A(e)}not selected`:A(e)+x(e.deck_id??"",t),$(e)?`${n} — select in Config`:w(e,t)?n+" (deck unavailable — see Config)":n);if($(e)||S(e))return{prefix:r,deck:"",suffix:""};let a=A(e),s=x(e.deck_id??"",t);return{prefix:a,deck:s,suffix:r.slice(a.length+s.length)}}function T(e){return`~/.botmancers/${e}`}let N=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];e.s(["AGENT_OPTIONS",0,i,"DECK_PLACEHOLDER",0,l,"DECK_SLOT_COPY",0,h,"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,u,"SAVED_DECK_MISSING_NOTE",0,f,"SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,d,"SETTINGS_NON_LOCAL_NOTE",0,c,"SETTINGS_PATH",0,o,"botAgentLabel",0,_,"configWorkdirHint",0,function(e){return`Default: ${T(e)} — leave blank to use it.`},"deckEventDisplay",0,function(e){let t=String(e??"").trimStart(),n=N.find(e=>t.startsWith(e.prefix));return n?{label:n.label,detail:t.slice(n.prefix.length).trim()}:null},"deckLabel",0,x,"deckSlotCopy",0,b,"deckStateShowsRetry",0,v,"defaultWorkdirFor",0,T,"fetchDeckList",0,y,"formatClock",0,m,"initialDeckListState",0,p,"isDeckUnavailable",0,w,"isMigratedPending",0,$,"rosterRuntimeParts",0,C,"settingsStatusLine",0,k],74904);let D={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function j({id:e,labelId:n,state:r,value:a,onChange:s,onRetry:i,savedDeckId:o,variant:u}){let c=D[u],d=b(r),h=(o??"").trim();if(null===d){let n=!!h&&!r.decks.some(e=>e.id===h);return(0,t.jsxs)("div",{"data-field":"deck","data-state":r.status,children:[(0,t.jsxs)("select",{id:e,className:c.control,"aria-required":"true","aria-describedby":n&&a===h?`${e}-saved-note`:void 0,value:a,title:a||void 0,onChange:e=>s(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:l}),n?(0,t.jsxs)("option",{value:h,title:h,children:[h," (saved)"]}):null,r.decks.map(e=>(0,t.jsx)("option",{value:e.id,title:e.id,children:e.name},e.id))]}),n&&a===h?(0,t.jsx)("p",{id:`${e}-saved-note`,className:c.note,children:f}):null]})}return(0,t.jsxs)("div",{"data-field":"deck","data-state":r.status,role:"group","aria-labelledby":n,children:[h?(0,t.jsxs)("p",{className:c.note,children:["Saved Agent Deck: ",(0,t.jsx)("span",{title:h,children:h})]}):null,(0,t.jsxs)("p",{id:e,className:`${c.note} deck-slot`,role:"status",children:[(0,t.jsx)("span",{id:`${e}-copy`,children:d}),v(r)?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:c.retry,onClick:i,children:"Retry"})]}):null]})]})}e.s(["AgentDeckFields",0,function({idPrefix:e,variant:n,deckId:r,onDeckId:a,deckState:s,onRetry:i,savedDeckId:l,workingDirectory:c,onWorkingDirectory:f,workdirPlaceholder:h,workdirHint:p}){let g=D[n],m=null===b(s);return(0,t.jsxs)("div",{className:"agent-deck-fields",children:[(0,t.jsx)("label",{className:g.label,id:`${e}-deck-label`,htmlFor:m?`${e}-deck`:void 0,children:"Agent Deck"}),(0,t.jsx)(j,{id:`${e}-deck`,labelId:`${e}-deck-label`,state:s,value:r,onChange:a,onRetry:i,savedDeckId:l,variant:n}),(0,t.jsx)("a",{href:o,className:g.link,children:d}),(0,t.jsx)("label",{className:g.label,htmlFor:`${e}-workdir`,children:"Working directory (optional)"}),(0,t.jsx)("input",{id:`${e}-workdir`,type:"text",className:"config"===n?g.control:void 0,"data-field":"workdir","aria-describedby":`${e}-workdir-hint ${e}-workdir-note`,value:c,placeholder:h,onChange:e=>f(e.target.value)}),(0,t.jsx)("p",{id:`${e}-workdir-hint`,className:g.hint,children:p}),(0,t.jsx)("p",{id:`${e}-workdir-note`,className:g.hint,children:u})]})},"RosterRuntimeLine",0,function({bot:e,state:n}){let{prefix:r,deck:a,suffix:s}=C(e,n);return(0,t.jsxs)("div",{className:"bot-runtime",title:r+a+s,children:[r,a?(0,t.jsx)("span",{className:"bot-runtime-deck",children:a}):null,s]})},"SettingsStatus",0,function({state:e,onRetry:n}){return(0,t.jsxs)("div",{"data-field":"status","data-state":e.status,children:[(0,t.jsx)("p",{className:"connected"===e.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:k(e)}),v(e)?(0,t.jsx)("button",{type:"button",onClick:n,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===e.status?(0,t.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:e.decks.map(e=>e.name).join(" · ")}):null,(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:c})]})}],10331);var E=e.i(71645);let L="botmancers.agentDeck.lastDecks";function O(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.name}let R=(e,t)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),1e4);return fetch(e,{cache:"no-store",signal:n.signal,...t}).finally(()=>clearTimeout(r))};e.s(["useDeckList",0,function(e=!0){let[t,n]=(0,E.useState)(()=>p()),[r,a]=(0,E.useState)(0),s=(0,E.useRef)(null);return(0,E.useEffect)(()=>{if(!e)return;let t=!1;return y(R,p(s.current??function(){try{let e=window.localStorage.getItem(L);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)&&t.every(O)?t:null}catch{return null}}())).then(e=>{if(!t){s.current=e.cachedDecks;var r=e.cachedDecks;if(r)try{window.localStorage.setItem(L,JSON.stringify(r))}catch{}n(e)}}),()=>{t=!0}},[r,e]),{state:t,retry:(0,E.useCallback)(()=>{n(e=>({...e,status:"loading",decks:[],error:""})),a(e=>e+1)},[])}}],4335)},13255,63352,50814,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(22016);function a(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}let s="Not reported";function i(e){return e.toFixed(1).replace(/\.0$/,"")}function o(e){return e.toLocaleString("en-US")}function l(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 u={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function c(e,t,n){return"cost_usd"===e?l(t):n?o(t):t<1e3?String(t):t<999950?`${i(t/1e3)}k`:t<99995e4?`${i(t/1e6)}M`:`${i(t/1e9)}B`}function d(e){return`${e} ${1===e?"run":"runs"}`}function f(e,t,n=!1){let r=u[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:r,text:s,quality:"unavailable",coverage:t&&t.total>0?`0 of ${d(t.total)} reported`:"No runs recorded",label:`${r}: not reported`};let a=c(e,t.sum,n),i=c(e,t.sum,!0);return"partial"===t.quality?{name:r,text:a,quality:"partial",coverage:`Partial: ${t.known} of ${d(t.total)} reported`,label:`${r}: at least ${i}, partial, reported by ${t.known} of ${d(t.total)}`}:{name:r,text:a,quality:"complete",coverage:`All ${d(t.total)} reported`,label:`${r}: ${i}, reported by all ${d(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,a,"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=f("input_tokens",e?.input_tokens),n=f("output_tokens",e?.output_tokens),r=f("cost_usd",e?.cost_usd),a=[t,n,r];if(a.every(e=>"unavailable"===e.quality))return{text:s,label:"Usage: not reported",quality:"unavailable",partial:!1};let i=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===n.quality?"output not reported":`${n.text} out`,"unavailable"===r.quality?"cost not reported":r.text].join(" · "),o=a.some(e=>"partial"===e.quality),l=o||a.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:i,label:`Reported usage: ${a.map(e=>e.label).join("; ")}`,quality:l,partial:o}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,f,"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?s:o(e.input_tokens),output:null===e.output_tokens?s:o(e.output_tokens),cost:null===e.cost_usd?s:l(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 h={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},p=["queued","extracting","delivering","completed","failed","cancelled"],g=["completed","failed","cancelled"];function m(e){return"ask"===e?"Ask":"Continue"}function k(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 b(e){var t;return e.cancel_requested&&(t=e.state,!g.includes(t))?"Cancelling…":k(e.mode,e.state)}function v(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"}function y(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 x(e){return a(e)}function _(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`}function $(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`}function S(e){return"ask"===e?"Question":"Objective"}function w(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${y(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: ${y(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}function A(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."}}function C(e){return`/exchanges?id=${encodeURIComponent(e)}`}function T(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,C,"eventLabel",0,function(e,t){let n=e.data??{},r=t.source.agent_name,a=t.destination?.agent_name??"the destination Agent",s="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${r}'s session a question`:`You handed ${r}'s session to ${a}`;case"hop_queued":if("deliver"===s)return`Handoff queued for ${a}'s new session`;return"extract"===s?`Handoff extraction queued in ${r}'s session`:`Question queued for ${r}'s session`;case"hop_started":if("deliver"===s)return`${a} started a new session`;return"extract"===s?`${r}'s session started extracting the handoff`:`${r}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&p.includes(n.to)?n.to:null;return e?`Now ${k(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`${a} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${a}'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,y,"exchangeRequestBody",0,function(e,t,n){let r={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&&(r.destination={agent_id:e.destinationAgentId}),r},"failureAdvice",0,A,"formatExchangeTime",0,x,"instructionHeading",0,S,"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(T)},"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,b,"modeLabel",0,m,"outcomeLine",0,w,"participantsLabel",0,$,"pinRequestBody",0,function(e,t,n,r,a){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:a,..."resume"===e?{approve_write:r}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return h["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,_,"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.`},r=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:r,resume:{available:!1,code:"action_unavailable",reason:`${h.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:r}}return["ask","resume","handoff"].map(e=>({action:e,label:h[e],availability:t[e]}))},"stateTone",0,v,"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 has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return 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 r=n.toString();return`/threads/${encodeURIComponent(e.id)}${r?`?${r}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),r="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${r}.`,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),e.s(["default",0,function({summary:e,onChanged:a}){let[s,i]=(0,n.useState)(!1),[o,l]=(0,n.useState)(""),u=v(e.state),c=w(e),d=A(e),f=`exchange-${e.id}-title`,h=async()=>{if(!s){i(!0),l("");try{let t=await fetch(`/api/exchanges/${encodeURIComponent(e.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok){let e=await t.json().catch(()=>null);l("string"==typeof e?.error?.message?e.error.message:"Could not cancel. Try again.")}}catch{l("Could not cancel. Try again.")}finally{i(!1),a?.()}}};return(0,t.jsxs)("article",{id:`exchange-${e.id}`,className:`exchange-card is-${u} is-${e.state}`,"data-exchange-id":e.id,"data-exchange-state":e.state,"aria-labelledby":f,tabIndex:-1,children:[(0,t.jsxs)("p",{className:"exchange-card-line",children:[(0,t.jsx)("span",{className:"exchange-card-mode",children:m(e.mode)}),(0,t.jsx)("span",{id:f,className:"exchange-card-title",children:$(e)}),(0,t.jsx)("span",{className:"exchange-card-state",role:"status",children:b(e)})]}),(0,t.jsx)("p",{className:"exchange-card-session",children:_(e)}),(0,t.jsxs)("p",{className:"exchange-card-instruction",children:[(0,t.jsx)("span",{className:"exchange-card-key",children:S(e.mode)})," ",y(e.instruction,220)]}),c?(0,t.jsx)("p",{className:"failed"===e.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:c}):null,d?(0,t.jsx)("p",{className:"exchange-card-advice",children:d}):null,o?(0,t.jsx)("p",{className:"exchange-card-error",role:"alert",children:o}):null,(0,t.jsxs)("p",{className:"exchange-card-foot",children:[(0,t.jsxs)("span",{className:"exchange-card-time",children:["Updated ",x(e.updated_at)]}),(0,t.jsx)(r.default,{className:"exchange-card-link",href:C(e.id),"aria-label":`Details: ${m(e.mode)} ${$(e)}`,children:"Details"}),e.can_cancel?(0,t.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:s,onClick:()=>{h()},children:s?"Cancelling…":"Cancel"}):null]})]})}],13255)},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return k},useLinkStatus:function(){return v}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809),i=e.r(43476),o=s._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function k(t){var n;let r,a,s,[k,v]=(0,o.useOptimistic)(p.IDLE_LINK_STATUS),y=(0,o.useRef)(null),{href:x,as:_,children:$,prefetch:S=null,passHref:w,replace:A,shallow:C,scroll:T,onClick:N,onMouseEnter:D,onTouchStart:j,legacyBehavior:E=!1,onNavigate:L,transitionTypes:O,ref:R,unstable_dynamicOnHover:I,...P}=t;r=$,E&&("string"==typeof r||"number"==typeof r)&&(r=(0,i.jsx)("a",{children:r}));let U=o.default.useContext(u.AppRouterContext),q=!1!==S,M=!1===S?"none":!0===S?"full":"auto",F="none"!==M?"auto"===M?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,B="string"==typeof(n=_||x)?n:(0,l.formatUrl)(n);if(E){if(r?.$$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});a=o.default.Children.only(r)}let H=E?a&&"object"==typeof a&&a.ref:R,K,G=o.default.useCallback(e=>(null!==U&&(y.current=(0,p.mountLinkInstance)(e,B,U,F,q,v,K)),()=>{y.current&&((0,p.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,p.unmountPrefetchableInstance)(e)}),[q,B,U,F,v,K]),W={ref:(0,c.useMergedRef)(G,H),onClick(t){E||"function"!=typeof N||N(t),E&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!U||t.defaultPrevented||function(t,n,r,a,s,i,l,u="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);o.default.startTransition(()=>{f(n,a?"replace":"push",!1===s?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l,u)})}}(t,B,y,A,T,L,O,M)},onMouseEnter(e){E||"function"!=typeof D||D(e),E&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),U&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){E||"function"!=typeof j||j(e),E&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),U&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,d.isAbsoluteUrl)(B)?W.href=B:E&&!w&&("a"!==a.type||"href"in a.props)||(W.href=(0,f.addBasePath)(B)),s=E?o.default.cloneElement(a,W):(0,i.jsx)("a",{...P,...W,children:r}),(0,i.jsx)(b.Provider,{value:k,children:s})}let b=(0,o.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,o.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 a}});let r=e.r(71645);function a(e,t){let n=(0,r.useRef)(null),a=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(n.current=s(e,r)),t&&(a.current=s(t,r))},[e,t])}function s(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 s}});let r=e.r(18967),a=e.r(52817);function s(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return o}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});function s(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,i(e));else t.set(n,i(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return o},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",o=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||i.test(r))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),o&&"#"!==o[0]&&(o="#"+o),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${a}${c}${o}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return o(e)}},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return k},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return y},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return s},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return _}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&o.test(e)};function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class k 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 y extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31713,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(22016),s=e.i(57688);function r(e){let t,n=e.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!n)return null;try{t=JSON.parse(n[1])}catch{return null}if(!t||"object"!=typeof t)return null;let a=t,s="string"==typeof a.page?a.page:"string"==typeof a.html?a.html:void 0,r=void 0===s?{}:{page:s,html:s};return"running"===a.state||"stopped"===a.state?{state:a.state,...r}:"done"===a.state&&"string"==typeof a.output?{state:"done",output:a.output,...r}:null}function i(e){return"done"===e.state?e.output??"":"stopped"===e.state?"The command was stopped.":"The command is running"}var l=e.i(87303);function o(e){let t,n=e.match(/^\s*\[draft\]\s*([\s\S]*)$/);if(!n)return null;try{t=JSON.parse(n[1])}catch{return null}if(!t||"object"!=typeof t)return null;let a=t;return"email"!==a.channel&&"slack"!==a.channel||"open"!==a.state&&"sent"!==a.state&&"discarded"!==a.state||"string"!=typeof a.recipient||"string"!=typeof a.body?null:{channel:a.channel,recipient:a.recipient,body:a.body,state:a.state}}function d(e){let t=e.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return t?t[1]:null}var c=e.i(74904),u=e.i(33851),m=e.i(10331),h=e.i(44079),p=e.i(4335),f=e.i(52900),g=e.i(68541),x=e.i(15983),y=e.i(10718);function b(e){return String(e).padStart(2,"0")}function v(e){let t=new Date(e);return`${t.getFullYear()}-${b(t.getMonth()+1)}-${b(t.getDate())} ${b(t.getHours())}:${b(t.getMinutes())}`}function j({deckState:e,onClose:a,onDeleted:s}){let r=(0,n.useId)(),[i,l]=(0,n.useState)(null),[o,d]=(0,n.useState)(""),[u,m]=(0,n.useState)(""),[h,p]=(0,n.useState)([]),[f,g]=(0,n.useState)(!1),b=(0,n.useRef)(null),w=(0,n.useRef)(null),N=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=!1;return fetch("/api/bots/manage",{cache:"no-store"}).then(async t=>{let n=await t.json().catch(()=>null);if(!e){if(!t.ok||!Array.isArray(n))return void d("string"==typeof n?.error?n.error:"Could not load agents.");l(n)}}).catch(()=>{e||d("Could not load agents.")}),b.current?.focus(),()=>{e=!0}},[]);let k=u.trim().toLowerCase(),S=(i??[]).filter(e=>e.name.toLowerCase().includes(k)),C=S.filter(e=>!e.blocked);return(0,n.useEffect)(()=>{if(f)return;let e=e=>{"Escape"===e.key&&a()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[f,a]),(0,t.jsxs)("div",{className:"modal-scrim manage-scrim",children:[(0,t.jsxs)("div",{ref:N,className:"manage-card",role:"dialog","aria-modal":"true","aria-labelledby":r,onKeyDown:e=>{if("Tab"!==e.key||!N.current)return;let t=Array.from(N.current.querySelectorAll("button:not(:disabled), input:not(:disabled)"));if(0===t.length)return;let n=t[0],a=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),a.focus()):e.shiftKey||document.activeElement!==a||(e.preventDefault(),n.focus())},children:[(0,t.jsxs)("div",{className:"manage-head",children:[(0,t.jsx)("h2",{id:r,className:"delete-title",children:"Manage agents"}),(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:a,children:"Close"})]}),(0,t.jsx)("label",{className:"manage-search-label",htmlFor:`${r}-search`,children:"Filter by name"}),(0,t.jsx)("input",{id:`${r}-search`,ref:b,className:"manage-search",type:"search",value:u,onChange:e=>m(e.target.value),placeholder:"Name contains…"}),(0,t.jsxs)("div",{className:"manage-tools",children:[(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{p(e=>Array.from(new Set([...e,...C.map(e=>e.id)])))},disabled:0===C.length,children:"Select all shown"}),(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{p([]),b.current?.focus()},disabled:0===h.length,children:"Clear selection"}),(0,t.jsxs)("span",{className:"manage-count","aria-live":"polite",children:[h.length," selected · ",S.length," shown of ",i?.length??0]})]}),o?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:o}):null,i||o?null:(0,t.jsx)("p",{className:"delete-copy",children:"Loading agents…"}),i?(0,t.jsxs)("ul",{className:"manage-list","aria-label":"Agents",children:[0===S.length?(0,t.jsx)("li",{className:"delete-copy",children:"No agents match."}):null,S.map(n=>{let a=`${r}-row-${n.id}`,s=(0,c.isMigratedPending)(n)?"Not selected":(0,c.deckLabel)(n.deck_id??"",e);return(0,t.jsxs)("li",{className:n.blocked?"manage-row is-blocked":"manage-row","data-agent-id":n.id,children:[(0,t.jsx)("input",{id:a,type:"checkbox",checked:h.includes(n.id),disabled:!!n.blocked,onChange:()=>{var e;return e=n.id,void p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-describedby":n.blocked?`${a}-reason`:void 0}),(0,t.jsxs)("div",{className:"manage-copy",children:[(0,t.jsxs)("label",{htmlFor:a,className:"manage-name",children:[n.name,n.hidden?(0,t.jsx)("span",{className:"manage-tag",children:"Hidden"}):null]}),(0,t.jsxs)("dl",{className:"manage-meta",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Agent"}),(0,t.jsx)("dd",{children:(0,c.botAgentLabel)(n)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Agent Deck"}),(0,t.jsx)("dd",{children:s})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Source"}),(0,t.jsx)("dd",{children:n.source_provider||"Created here"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Created"}),(0,t.jsx)("dd",{children:v(n.created_at)})]}),n.last_activity?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Last activity"}),(0,t.jsx)("dd",{children:v(n.last_activity)})]}):null]}),n.blocked?(0,t.jsx)("p",{id:`${a}-reason`,className:"manage-reason",children:(0,y.blockedReasonCopy)(n.blocked)}):null]})]},n.id)})]}):null,(0,t.jsxs)("div",{className:"form-actions manage-actions",children:[(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:a,children:"Cancel"}),(0,t.jsxs)("button",{ref:w,type:"button",className:"delete-btn",disabled:0===h.length,onClick:()=>g(!0),children:["Delete selected",h.length>0?` (${h.length})`:""]})]})]}),f?(0,t.jsx)(x.default,{ids:h,onCancel:()=>{g(!1),requestAnimationFrame(()=>w.current?.focus())},onDeleted:s}):null]})}var w=e.i(63352);function N(e,t,n){if(0===e.length)return null;let a=e[0],s=e[e.length-1],r=null!==t&&e.includes(t);return n?r&&t!==a?null:s:r&&t!==s?null:a}let k='a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';var S=e.i(50814);function C({mode:e,session:a,agents:s,origin:r,onClose:i,onStarted:l}){let o=(0,n.useId)(),d=(0,n.useId)(),c=(0,n.useId)(),u=(0,n.useId)(),[m,h]=(0,n.useState)(""),[p,f]=(0,n.useState)(""),[g,x]=(0,n.useState)(!1),[y,b]=(0,n.useState)({}),[v,j]=(0,n.useState)(""),[_,R]=(0,n.useState)(!1),E=(0,n.useRef)(!1),I=(0,n.useRef)(null),$=(0,n.useRef)(null),A=(0,n.useRef)(null),D=(0,n.useRef)(null),P=(0,n.useRef)(null),O=(0,S.sessionDialogUsesPin)(e,a.route),T=s.filter(e=>e.id!==a.agent.id);(0,n.useEffect)(()=>{("continue"===e?D.current:A.current)?.focus()},[e]),(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.stopPropagation(),i())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[i]);let L=async t=>{if(t.preventDefault(),E.current)return;let n={mode:"resume"===e?"ask":e,instruction:m,originConversationId:r.conversationId,destinationAgentId:p},s="resume"===e?(0,S.validateResumeDraft)(m,g):(0,S.validateDraft)(n);if(b(s),Object.keys(s).length>0)return void(s.destination?D.current?.focus():s.instruction?A.current?.focus():P.current?.focus());let i="resume"===e?"resume":"ask",o=e=>O?(0,S.pinRequestBody)(i,m,r.conversationId,g,e):(0,S.exchangeRequestBody)(n,{agentId:a.agent.id,sessionRef:a.ref},e),d=JSON.stringify(o(""));I.current&&I.current.payload===d||(I.current={payload:d,key:crypto.randomUUID()}),E.current=!0,R(!0),j("");try{let e=O?`/api/bots/${encodeURIComponent(a.agent.id)}/sessions/${encodeURIComponent(a.ref)}/pins`:"/api/exchanges",t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(I.current.key))}),n=await t.json().catch(()=>null);if(!t.ok){let e="string"==typeof n?.error?.code?n.error.code:null;"idempotency_conflict"===e&&(I.current=null),j((0,S.submitErrorMessage)(e,"string"==typeof n?.error?.message?n.error.message:null));return}let s=O?n?.turn?.exchange_id:n?.exchange?.id;l("string"==typeof s?s:null)}catch{j((0,S.submitErrorMessage)(null,"Botmancers could not be reached. Your draft is kept; try again."))}finally{E.current=!1,R(!1)}},M=T.find(e=>e.id===p)?.name,F="ask"===e,q="resume"===e;return(0,t.jsx)("div",{className:"modal-scrim exchange-scrim",onMouseDown:e=>{e.target===e.currentTarget&&i()},onKeyDown:e=>{if("Tab"!==e.key||!$.current)return;let t=N(Array.from($.current.querySelectorAll(k)),document.activeElement,e.shiftKey);t&&(e.preventDefault(),t.focus())},children:(0,t.jsxs)("div",{ref:$,className:"form-card exchange-dialog",role:"dialog","aria-modal":"true","aria-labelledby":o,"data-exchange-mode":e,children:[(0,t.jsx)("h2",{id:o,className:"delete-title",children:(0,S.sessionDialogTitle)(e)}),(0,t.jsxs)("section",{className:"exchange-source","aria-label":"Source session",children:[(0,t.jsx)("p",{className:"exchange-source-agent",children:a.agent.name}),(0,t.jsx)("p",{className:"exchange-source-title",children:a.title}),(0,t.jsxs)("p",{className:"exchange-source-meta",children:["Last activity ",(0,w.formatSessionDate)(a.last_activity_at),a.origin.conversation?` \xb7 from ${a.origin.conversation.label}`:""]})]}),(0,t.jsxs)("form",{onSubmit:L,noValidate:!0,className:"exchange-form",children:[F||q?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("label",{htmlFor:c,children:"Hand off to"}),(0,t.jsxs)("select",{ref:D,id:c,className:"exchange-select",value:p,"aria-invalid":!!y.destination||void 0,"aria-describedby":y.destination?`${c}-error`:void 0,disabled:_,onChange:e=>{f(e.target.value),b(e=>({...e,destination:void 0}))},children:[(0,t.jsx)("option",{value:"",children:"Choose an Agent"}),T.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),y.destination?(0,t.jsx)("p",{id:`${c}-error`,className:"exchange-field-error",children:y.destination}):null]}),(0,t.jsx)("label",{htmlFor:d,children:F?"Question":q?"Instruction":"Objective"}),(0,t.jsx)("textarea",{ref:A,id:d,rows:4,maxLength:S.INSTRUCTION_LIMIT,value:m,readOnly:_,"aria-invalid":!!y.instruction||void 0,"aria-describedby":`${d}-hint${y.instruction?` ${d}-error`:""}`,onChange:e=>{h(e.target.value),b(e=>({...e,instruction:void 0}))}}),y.instruction?(0,t.jsx)("p",{id:`${d}-error`,className:"exchange-field-error",children:y.instruction}):null,(0,t.jsx)("p",{id:`${d}-hint`,className:"exchange-hint",children:F?`${a.agent.name} answers from this exact session, read-only. The answer arrives in ${r.label}.`:q?`${a.agent.name} resumes work in this exact session and may edit its workspace. The turn never moves to another session. Progress shows in ${r.label}.`:`${M??"The Agent you choose"} receives an extracted handoff (objective, decisions, constraints, references, open questions) and starts a new session of its own. ${a.agent.name}’s session is not shared and is not changed. Progress shows in ${r.label}.`}),q?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"exchange-approval",htmlFor:u,children:[(0,t.jsx)("input",{ref:P,id:u,type:"checkbox",checked:g,disabled:_,"aria-invalid":!!y.approval||void 0,"aria-describedby":y.approval?`${u}-error`:void 0,onChange:e=>{x(e.target.checked),b(e=>({...e,approval:void 0}))}})," ","I approve edits by ",a.agent.name," in this session"]}),y.approval?(0,t.jsx)("p",{id:`${u}-error`,className:"exchange-field-error",children:y.approval}):null]}):null,v?(0,t.jsx)("p",{className:"exchange-server-error",role:"alert",children:v}):null,(0,t.jsx)("p",{className:"exchange-sending",role:"status",children:_?"Sending…":""}),(0,t.jsxs)("div",{className:"form-actions",children:[(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:i,children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"create-btn",disabled:_,"aria-disabled":_,children:v?"Try again":"Send"})]})]})]})})}function _({agentId:e,agentName:s,agents:r,origin:i,onClose:l,onOpenThread:o,onExchangeStarted:d}){let c=(0,n.useId)(),[u,m]=(0,n.useState)("all"),[h,p]=(0,n.useState)(null),[f,g]=(0,n.useState)(""),[x,y]=(0,n.useState)(0),[b,v]=(0,n.useState)(null),j=(0,n.useRef)(null),N=(0,n.useRef)(null),[k,E]=(0,n.useState)(null),[I,$]=(0,n.useState)(null),A=(0,n.useRef)(null),D=()=>{A.current=k?.returnTo??null,E(null)};(0,n.useEffect)(()=>{if(k||!A.current)return;let e=A.current;A.current=null,e.isConnected&&e.focus()},[k]),(0,n.useEffect)(()=>{N.current?.focus()},[]),(0,n.useEffect)(()=>{let t=!1;return fetch(`/api/bots/${encodeURIComponent(e)}/sessions?status=${u}`,{cache:"no-store"}).then(async e=>{let n=await e.json().catch(()=>null);if(!t){if(!e.ok||!Array.isArray(n?.sessions))return void g("string"==typeof n?.error?n.error:"Could not load sessions.");p(n.sessions)}}).catch(()=>{t||g("Could not load sessions.")}),()=>{t=!0}},[e,u,x]);let P=(e=u)=>{p(null),g(""),m(e),y(e=>e+1)};return(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&l()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[l]),(0,t.jsxs)("div",{className:"modal-scrim sessions-scrim",onMouseDown:e=>{e.target!==e.currentTarget||k||l()},children:[(0,t.jsxs)("div",{ref:j,className:"sessions-drawer",role:"dialog","aria-modal":"true","aria-labelledby":c,onKeyDown:e=>{if("Tab"!==e.key||!j.current)return;let t=Array.from(j.current.querySelectorAll("button:not(:disabled), summary"));if(0===t.length)return;let n=t[0],a=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),a.focus()):e.shiftKey||document.activeElement!==a||(e.preventDefault(),n.focus())},inert:!!k,children:[(0,t.jsxs)("div",{className:"manage-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{id:c,className:"delete-title sessions-title",children:"Sessions"}),(0,t.jsx)("p",{className:"sessions-sub",children:s})]}),(0,t.jsx)("button",{ref:N,type:"button",className:"cancel-btn",onClick:l,children:"Close"})]}),(0,t.jsxs)("div",{className:"sessions-filter",role:"group","aria-label":"Show sessions",children:[w.SESSION_FILTER_OPTIONS.map(e=>(0,t.jsx)("button",{type:"button",className:"sessions-filter-btn","aria-pressed":u===e.value,onClick:()=>{u!==e.value&&P(e.value)},children:e.label},e.value)),(0,t.jsx)("span",{className:"manage-count","aria-live":"polite",children:h?`${h.length} shown`:""})]}),(0,t.jsx)("div",{className:"exchange-started",role:"status",children:I?(0,t.jsxs)(t.Fragment,{children:[I.text," ",I.id?(0,t.jsx)(a.default,{className:"session-link",href:(0,S.detailsHref)(I.id),children:"View in Exchanges"}):null]}):null}),f?(0,t.jsxs)("div",{className:"sessions-state",role:"alert",children:[(0,t.jsx)("p",{className:"delete-error",children:f}),(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>P(),children:"Retry"})]}):null,h||f?null:(0,t.jsx)("p",{className:"delete-copy sessions-state",role:"status",children:"Loading sessions…"}),h?(0,t.jsxs)("ul",{className:"manage-list sessions-list","aria-label":`Sessions for ${s}`,children:[0===h.length?(0,t.jsx)("li",{className:"delete-copy sessions-state",children:(0,w.emptySessionsCopy)(u,s)}):null,h.map(n=>(0,t.jsx)(R,{agentId:e,row:n,open:b===n.ref,onToggle:()=>v(e=>e===n.ref?null:n.ref),onOpenThread:o,onAction:(e,t)=>{$(null),E({mode:e,row:n,returnTo:t})}},n.ref))]}):null]}),k?(0,t.jsx)(C,{mode:k.mode,session:k.row,agents:r,origin:i,onClose:D,onStarted:e=>{$({id:e,text:"ask"===k.mode?`Asked ${k.row.agent.name}’s session. The answer arrives in ${i.label}.`:"resume"===k.mode?`Resumed work in ${k.row.agent.name}’s session. Progress shows in ${i.label}.`:`Handoff started from ${k.row.agent.name}’s session. Progress shows in ${i.label}.`}),D(),d(e)}}):null]})}function R({agentId:e,row:a,open:s,onToggle:r,onOpenThread:i,onAction:l}){let o=(0,n.useId)(),d=(0,S.sessionRowActions)(a),c=d.filter(e=>e.availability.available),u=d.flatMap(e=>e.availability.available?[]:[e.availability.reason]),m=a.origin.conversation,h=(0,w.workRequestLabel)(a),p=(0,w.sessionUsageLine)(a.usage);return(0,t.jsx)("li",{className:`manage-row session-row is-${a.status}`,"data-session-ref":a.ref,children:(0,t.jsxs)("div",{className:"manage-copy",children:[(0,t.jsxs)("div",{className:"session-head",children:[(0,t.jsx)("span",{className:"session-title",children:a.title}),(0,t.jsx)("span",{className:`manage-tag session-status is-${a.status}`,children:(0,w.statusLabel)(a)}),(0,w.sessionStateTags)(a).map(e=>(0,t.jsx)("span",{className:`manage-tag session-state-tag is-${e.toLowerCase()}`,children:e},e))]}),(0,t.jsxs)("dl",{className:"manage-meta",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Last activity"}),(0,t.jsx)("dd",{children:(0,w.formatSessionDate)(a.last_activity_at)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Started"}),(0,t.jsx)("dd",{children:(0,w.formatSessionDate)(a.created_at)})]}),null!==a.ended_at?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Ended"}),(0,t.jsx)("dd",{children:(0,w.formatSessionDate)(a.ended_at)})]}):null,(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Runtime"}),(0,t.jsx)("dd",{children:(0,w.runtimeLabel)(a)})]}),(0,t.jsxs)("div",{className:"session-usage-meta",children:[(0,t.jsx)("dt",{children:"Reported usage"}),(0,t.jsxs)("dd",{children:[(0,t.jsx)("span",{className:`session-usage is-${p.quality}`,"aria-hidden":"true",children:p.text}),(0,t.jsx)("span",{className:"session-sr",children:p.label}),p.partial?(0,t.jsx)("span",{className:"manage-tag session-usage-tag",children:"Partial"}):null]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Origin"}),(0,t.jsx)("dd",{children:m?.thread_agent_id?(0,t.jsx)("button",{type:"button",className:"session-link",onClick:()=>i(m.thread_agent_id),children:m.label}):m?.label??"Not recorded"})]}),h?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Work request"}),(0,t.jsx)("dd",{children:h})]}):null,a.context.workspace?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Workspace"}),(0,t.jsx)("dd",{children:a.context.workspace})]}):null,a.context.deck?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Deck"}),(0,t.jsx)("dd",{children:a.context.deck})]}):null]}),c.length>0?(0,t.jsx)("div",{className:"session-actions",role:"group","aria-label":`Actions for ${a.title}`,children:c.map(e=>(0,t.jsx)("button",{type:"button",className:"session-action","data-session-action":e.action,"aria-haspopup":"dialog",onClick:t=>l((0,S.sessionDialogMode)(e.action),t.currentTarget),children:e.label},e.action))}):null,u.length>0?(0,t.jsx)("ul",{className:"session-unavailable","aria-label":`Unavailable actions for ${a.title}`,children:u.map(e=>(0,t.jsx)("li",{children:e},e))}):null,(0,t.jsx)("button",{type:"button",className:"pin-word session-toggle","aria-expanded":s,"aria-controls":o,onClick:r,children:s?"Hide details":"Details"}),s?(0,t.jsx)(E,{id:o,agentId:e,sessionRef:a.ref}):null]})})}function E({id:e,agentId:a,sessionRef:s}){let[r,i]=(0,n.useState)(null),[l,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(""),[u,m]=(0,n.useState)(null),[h,p]=(0,n.useState)(""),[f,g]=(0,n.useState)(!1),x=`/api/bots/${encodeURIComponent(a)}/sessions/${encodeURIComponent(s)}`;(0,n.useEffect)(()=>{let e=!1;return fetch(x,{cache:"no-store"}).then(async t=>{let n=await t.json().catch(()=>null);e||(t.ok&&Array.isArray(n?.session?.attempts)?(i(n.session.attempts),o({totals:n.session.usage,samples:Array.isArray(n.session.usage_samples)?n.session.usage_samples:[]})):c("Could not load session details."))}).catch(()=>{e||c("Could not load session details.")}),()=>{e=!0}},[x]);let y=(0,n.useCallback)(async()=>{if(null===u)try{let e=await fetch(`${x}?debug=external_session_id`,{cache:"no-store"}),t=await e.json().catch(()=>null),n=t?.debug?.external_session_id;e.ok&&"string"==typeof n?m(n):p("Not available.")}catch{p("Not available.")}},[x,u]),b=async()=>{if(u)try{await navigator.clipboard.writeText(u),g(!0)}catch{g(!1)}};return(0,t.jsxs)("div",{id:e,className:"session-detail",children:[d?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:d}):null,r||d?null:(0,t.jsx)("p",{className:"delete-copy",role:"status",children:"Loading details…"}),r?(0,t.jsxs)("ol",{className:"session-attempts","aria-label":"Runs in this session",children:[0===r.length?(0,t.jsx)("li",{children:"No recorded runs."}):null,r.map(e=>(0,t.jsxs)("li",{children:[(0,w.formatSessionDate)(e.started_at)," · ",(0,w.attemptLabel)(e)]},`${e.request_id}-${e.attempt_number}`))]}):null,l?(0,t.jsx)($,{totals:l.totals,samples:l.samples}):null,(0,t.jsxs)("details",{className:"session-debug",onToggle:e=>{e.currentTarget.open&&y()},children:[(0,t.jsx)("summary",{children:"Local debug: provider session ID"}),(0,t.jsx)("p",{className:"session-debug-note",children:"For local troubleshooting only. Botmancers resumes sessions for you; you never need to copy this."}),h?(0,t.jsx)("p",{className:"delete-error",children:h}):null,u?(0,t.jsxs)("div",{className:"session-debug-value",children:[(0,t.jsx)("code",{children:u}),(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{b()},children:f?"Copied":"Copy"})]}):null]})]})}let I=["input_tokens","output_tokens","cost_usd"];function $({totals:e,samples:a}){let s=(0,n.useId)();return(0,t.jsxs)("section",{className:"session-usage-detail","aria-labelledby":s,children:[(0,t.jsx)("h3",{id:s,className:"session-usage-head",children:"Reported usage"}),(0,t.jsx)("dl",{className:"session-usage-totals",children:I.map(n=>{let a=(0,w.usageMetricView)(n,e?.[n],!0);return(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:a.name}),(0,t.jsxs)("dd",{children:[(0,t.jsx)("span",{className:`session-usage is-${a.quality}`,"aria-hidden":"true",children:a.text}),(0,t.jsxs)("span",{className:"session-sr",children:[a.label,"."]}),(0,t.jsx)("span",{className:`session-usage-coverage is-${a.quality}`,children:a.coverage})]})]},n)})}),0===a.length?(0,t.jsx)("p",{className:"session-usage-none",children:"No run in this session reported usage."}):(0,t.jsx)("ol",{className:"session-usage-runs","aria-label":"Reported usage by run",children:a.map((e,n)=>{let a=(0,w.usageSampleValues)(e);return(0,t.jsxs)("li",{children:[(0,t.jsxs)("span",{className:"session-usage-run",children:[(0,w.formatSessionDate)(e.observed_at)," · ",(0,w.usageSampleLabel)(e,n)]}),(0,t.jsxs)("span",{className:"session-usage-values",children:[(0,t.jsxs)("span",{className:null===e.input_tokens?"is-unavailable":void 0,children:["In ",a.input]}),(0,t.jsxs)("span",{className:null===e.output_tokens?"is-unavailable":void 0,children:["Out ",a.output]}),(0,t.jsxs)("span",{className:null===e.cost_usd?"is-unavailable":void 0,children:["Cost ",a.cost]})]})]},`${e.observed_at}-${n}`)})})]})}function A({view:e,agentName:n}){if("loading"===e)return(0,t.jsx)("p",{className:"thread-note",role:"status",children:"Loading messages…"});if("error"===e)return(0,t.jsx)("p",{className:"thread-note thread-note-error",role:"alert",children:"Couldn’t load messages. Trying again…"});if("empty"===e){let e={title:`No messages with ${n} yet.`,hint:"Say something below to start the conversation."};return(0,t.jsxs)("div",{className:"thread-empty","data-thread-empty":"",children:[(0,t.jsx)("p",{className:"thread-empty-title",children:e.title}),(0,t.jsx)("p",{className:"thread-empty-hint",children:e.hint})]})}return null}let D={error:"Error"},P=[{kind:"hermes-config-missing",severity:"error",pattern:/^\[Hermes configuration missing: [^\n]*\]$/,title:"Hermes needs configuration",recovery:"This agent can’t reply until the Hermes API key is set on the Botmancers server. Set it, restart, then send your message again."},{kind:"hermes-turn-failed",severity:"error",pattern:/^\[Hermes turn failed for [\s\S]*\]$/,title:"Hermes couldn’t complete the turn",recovery:"Check that the Hermes gateway is running and reachable, then send your message again."}];function O(e){let t=String(e??"").trim();if(!t)return null;let n=P.find(e=>e.pattern.test(t));return n?{kind:n.kind,severity:n.severity,title:n.title,recovery:n.recovery,detail:t}:null}function T({failure:e}){let[a,s]=(0,n.useState)("idle"),r=D[e.severity],i=(0,n.useId)();async function l(){try{await navigator.clipboard.writeText(e.detail),s("copied")}catch{s("failed")}}return(0,t.jsxs)("div",{className:`runtime-failure runtime-failure-${e.severity}`,role:"status","aria-labelledby":i,"data-runtime-failure":e.kind,children:[(0,t.jsxs)("p",{className:"runtime-failure-title",id:i,children:[(0,t.jsx)("span",{className:"runtime-failure-severity",children:r}),e.title]}),(0,t.jsx)("p",{className:"runtime-failure-recovery",children:e.recovery}),(0,t.jsxs)("details",{className:"runtime-failure-details",children:[(0,t.jsx)("summary",{children:"Details"}),(0,t.jsx)("code",{className:"runtime-failure-detail",children:e.detail}),(0,t.jsx)("button",{type:"button",className:"runtime-failure-copy",onClick:()=>{l()},children:"copied"===a?"Copied":"failed"===a?"Copy failed":"Copy details"})]})]})}function L(e){if(!e)return"";let t=r(e);if(t)return i(t);let n=O(e);if(n)return n.title;let a=(0,c.deckEventDisplay)(e);return a?`${a.label} ${a.detail}`.replace(/\s+/g," ").trim():e.replace(/\s+/g," ").trim()}let M={blocked:"Needs approval",rejected:"Not started",allowed:"Allowed",denied:"Denied",waiting:"Queued",stopped:"Stopped"};function F({notice:e,onDone:a}){let[s,r]=(0,n.useState)(!1),[i,l]=(0,n.useState)(""),o="blocked"!==e.tone||e.actionable?M[e.tone]:"Blocked",d=async t=>{if(!s&&e.wakeId){r(!0),l("");try{let n=await fetch(`/api/wakes/${e.wakeId}/decision`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({decision:t})});if(!n.ok){let e=await n.json().catch(()=>null);l("string"==typeof e?.error?.message?e.error.message:"The decision could not be recorded.")}}catch{l("The decision could not be recorded.")}finally{r(!1),a()}}};return(0,t.jsxs)("div",{className:`wake-notice wake-notice-${e.tone}`,role:"status","data-wake-notice":e.tone,"data-wake-id":e.wakeId??void 0,children:[(0,t.jsxs)("p",{className:"wake-notice-line",children:[(0,t.jsx)("span",{className:"wake-notice-label",children:o}),e.text]}),e.actionable?(0,t.jsxs)("div",{className:"wake-notice-actions",children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:s,onClick:()=>{d("allow")},children:"Allow"}),(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:s,onClick:()=>{d("deny")},children:"Deny"})]}):null,i?(0,t.jsx)("p",{className:"wake-notice-error",role:"alert",children:i}):null]})}var q=e.i(13255);function z(e){return!!e&&"chief-of-staff"===e.name.toLowerCase()}function U(e){return z(e)?0:e.pinned?1:2}function H(e,t,n,a){return e&&t?a-n+(t-e)>15e3?"Stopped":"Heartbeat "+new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(e)):"Stopped"}function B(e){let t=e;for(let e=0;e<2;e++){let e=t.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"");if(e===t)break;t=e}return t.replace(/^\s+/,"")}function W(e){let t=e;for(let e=0;e<4;e++){let e=t.replace(/^\s*\[(?:Message from|From) [^\]]+\]\s*(?:\r?\n)?/,"");if(e===t)break;t=e}return t}function J({message:e,conversationId:a,status:s,onDone:r}){let i=o(W(e.content)),[l,d]=(0,n.useState)(i?.recipient??""),[c,u]=(0,n.useState)(i?.body??""),[m,h]=(0,n.useState)(!1),[p,f]=(0,n.useState)("open"!==s),g=(0,n.useRef)("open"!==s);if(!i)return null;let x="open"!==s||p,y=x?i.recipient:l,b=x?i.body:c,v=async t=>{if(!x&&!g.current&&!m&&("send"!==t||""!==l.trim())){g.current=!0,f(!0),h(!0);try{(await fetch(`/api/conversations/${a}/draft`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:e.id,action:t,recipient:l,body:c})})).ok||(g.current=!1,f(!1))}finally{h(!1),r()}}};return(0,t.jsxs)("div",{className:"draft-card",children:[(0,t.jsx)("div",{className:"draft-title",children:"email"===i.channel?"New Email":"New Slack Message"}),(0,t.jsx)("input",{type:"text","aria-label":"Recipient",value:y,readOnly:x,disabled:m,onChange:e=>{x||d(e.target.value)}}),(0,t.jsx)("textarea",{rows:3,"aria-label":"Draft body",value:b,readOnly:x,disabled:m,onChange:e=>{x||u(e.target.value)}}),"sent"===s?(0,t.jsx)("span",{className:"draft-mark",children:"Sent"}):null,"discarded"===s?(0,t.jsx)("span",{className:"draft-mark",children:"Discarded"}):null,"discarded"!==s?(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:m,onClick:()=>{v("send")},children:"Send"}):null,"open"===s?(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:m,onClick:()=>{v("discard")},children:"Discard"}):null]})}function K({message:e,conversationId:a,status:s,onDone:r}){let i=d(e.content),[l,o]=(0,n.useState)(!1),c=(0,n.useRef)("pending"!==s);if(!i)return null;let u=async t=>{if(!c.current&&!l){c.current=!0,o(!0);try{(await fetch(`/api/conversations/${a}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:i,messageId:e.id})})).ok||(c.current=!1)}finally{o(!1),r()}}};return"pending"!==s?(0,t.jsx)("span",{className:"draft-mark",children:"approved"===s?"Approved":"Denied"}):(0,t.jsxs)("span",{className:"draft-mark",children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:l,onClick:()=>{u("approve")},children:"Approve"}),(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:l,onClick:()=>{u("deny")},children:"Deny"})]})}function G({names:e}){return 0===e.length?null:(0,t.jsx)(t.Fragment,{children:e.map(e=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),(0,t.jsxs)("a",{className:"file-control",href:`/api/files/${encodeURIComponent(e)}`,download:e,children:["Download ",e]})]},e))})}function V({anchorRef:e,deckState:a,onRetryDecks:s,onClose:r,onCreated:i}){let[l,o]=(0,n.useState)(""),[d,m]=(0,n.useState)(u.DEFAULT_REGISTRATION_FORM),[p,g]=(0,n.useState)(""),[x,y]=(0,n.useState)(!1),[b,v]=(0,n.useState)(!1),j=(0,f.useRuntimeConnections)(),[w,S]=(0,n.useState)(null),C=(0,n.useRef)(null),_=(0,n.useRef)(null);(0,n.useLayoutEffect)(()=>{let t=()=>{let t=e.current?.getBoundingClientRect();S(function(e,t){let n=Math.min(358,t.width-32),a=Math.max(16,t.width-16-n),s=16,r=16;if(e){r=Math.min(Math.max(e.left,16),a);let n=e.bottom+8;t.height-n-16>=360&&(s=n)}return{top:s,left:r,maxHeight:Math.max(0,t.height-s-16)}}(t?{left:t.left,bottom:t.bottom}:null,{width:window.innerWidth,height:window.innerHeight}))};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[e]),(0,n.useEffect)(()=>{_.current?.focus()},[]),(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.stopPropagation(),r())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[r]);let R=(0,u.registrationFormView)(d,a,j.state),E=async e=>{if(e.preventDefault(),R.submitDisabled||b)return;if((0,u.hasRegistrationErrors)(R)){y(!0),g("Fix the highlighted fields.");return}g(""),v(!0);let t=await fetch("/api/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,u.registrationCreateBody)(l,d))}).finally(()=>v(!1));if(!t.ok){let e=await t.json().catch(()=>null);g("string"==typeof e?.error&&e.error?e.error:"Failed to create agent");return}i()};return(0,t.jsx)("div",{className:"modal-scrim new-agent-scrim",onKeyDown:e=>{if("Tab"!==e.key||!C.current)return;let t=N(Array.from(C.current.querySelectorAll(k)),document.activeElement,e.shiftKey);t&&(e.preventDefault(),t.focus())},children:(0,t.jsxs)("div",{ref:C,className:"form-card new-agent-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"new-agent-title",style:w??void 0,children:[(0,t.jsx)("div",{className:"kind-row",children:(0,t.jsx)("h2",{id:"new-agent-title",className:"kind-word new-agent-title",children:"New Agent"})}),(0,t.jsxs)("form",{onSubmit:E,className:"bot-form",children:[(0,t.jsxs)("div",{className:"new-agent-body",children:[(0,t.jsx)("label",{htmlFor:"bot-name",children:"Name"}),(0,t.jsx)("input",{ref:_,id:"bot-name",type:"text",value:l,onChange:e=>o(e.target.value),required:!0}),(0,t.jsx)(h.RegistrationFields,{idPrefix:"bot",variant:"modal",form:d,onChange:e=>{g(""),"agent_deck"===e.launchProfile&&"agent_deck"!==d.launchProfile&&s(),m(t=>({...t,...e}))},view:R,showErrors:x,connections:j.state,onRetryConnections:j.retry,onAddConnection:j.add,deckState:a,onRetryDecks:s,workdirPlaceholder:"",workdirHint:c.NEW_BOT_WORKDIR_HINT}),p?(0,t.jsx)("p",{className:"form-error",role:"alert",children:p}):null]}),(0,t.jsxs)("div",{className:"form-actions",children:[(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:r,children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"create-btn",disabled:R.submitDisabled||b,children:b?"Creating…":"Create"})]})]})]})})}e.s(["default",0,function(){var e;let[u,h]=(0,n.useState)([]),[f,b]=(0,n.useState)(!1),[v,w]=(0,n.useState)(null),N=(0,n.useRef)(!1),k=(0,n.useRef)(null),[S,C]=(0,n.useState)([]),[R,E]=(0,n.useState)([]),[I,$]=(0,n.useState)([]),D=(0,n.useRef)(null),[P,M]=(0,n.useState)(null),X=(0,n.useRef)(null),[Y,Q]=(0,n.useState)(""),[Z,ee]=(0,n.useState)(""),[et,en]=(0,n.useState)(!1),[ea,es]=(0,n.useState)([]),[er,ei]=(0,n.useState)(""),el=(0,n.useRef)(null),eo=(0,n.useRef)(null),[ed,ec]=(0,n.useState)(!1),eu=(0,n.useRef)(null),[em,eh]=(0,n.useState)(!1),[ep,ef]=(0,n.useState)(!1),[eg,ex]=(0,n.useState)(null),[ey,eb]=(0,n.useState)(""),[ev,ej]=(0,n.useState)({}),ew=(0,n.useRef)({}),[eN,ek]=(0,n.useState)(null),[eS,eC]=(0,n.useState)(null),e_=(0,n.useRef)(null),eR=(0,n.useRef)(null),[eE,eI]=(0,n.useState)(!1),e$=(0,n.useRef)(null),[eA,eD]=(0,n.useState)(!1),eP=(0,n.useRef)(null),[eO,eT]=(0,n.useState)(""),[eL,eM]=(0,n.useState)(!1),eF=(0,n.useRef)(null),eq=(0,n.useRef)(null),ez=(0,n.useRef)(null),eU=(0,n.useRef)(null),eH=(0,n.useRef)(null),eB=(0,n.useRef)(null),eW=(0,n.useRef)(null),[eJ,eK]=(0,n.useState)([]),[eG,eV]=(0,n.useState)({serverNow:0,fetchedAt:0}),[eX,eY]=(0,n.useState)(()=>Date.now()),eQ=(0,n.useRef)({}),eZ=(0,n.useRef)(!1),[e0,e1]=(0,n.useState)(!1),[e6,e4]=(0,n.useState)(!1),e3=e6||u.some(e=>"agent_deck"===e.launch_profile),{state:e8,retry:e2}=(0,p.useDeckList)(e3);(0,n.useEffect)(()=>{eZ.current||0===u.length||(eZ.current=!0,e1(!0))},[u.length]),(0,n.useEffect)(()=>{let e=(0,g.importedBotId)(window.location.search);if(e)return void window.location.replace((0,g.importedConfigPath)(e));let t=new URLSearchParams(window.location.search),n=Number(t.get("deleted"));n>0&&window.history.replaceState(null,"","/");let a=t.get("agent");a&&(k.current=a,D.current=t.get("exchange"),window.history.replaceState(null,"","/")),te().then(()=>{n>0&&eT((0,y.deletedStatusLine)(n))});let s=setInterval(te,2e3),r=setInterval(()=>eY(Date.now()),1e3);return()=>{clearInterval(s),clearInterval(r)}},[]),(0,n.useEffect)(()=>{if(N.current||0===u.length||v)return;let e=u.find(e=>e.id===k.current)||[...u].filter(e=>!e.hidden).sort((e,t)=>U(e)-U(t))[0]||u[0];N.current=!0,tr(e.id)},[u,v]),(0,n.useEffect)(()=>{if(X.current=v?.id??null,v)return tt(),eW.current&&clearInterval(eW.current),eW.current=setInterval(tt,2e3),()=>{eW.current&&clearInterval(eW.current)}},[v]);let e5=v?u.find(e=>e.id===v.details.id)??v.details:void 0,e7=!!v&&z(e5),e9=e7?function(e){for(let t=e.length-1;t>=0;t--){let n=r(e[t].content);if(n){if("stopped"===n.state)return null;return n.page||n.html||null}}return null}(S):null;async function te(){let e=await fetch("/api/bots",{cache:"no-store"}),t=await e.json(),n=Date.parse(e.headers.get("date")||"");eV({serverNow:Number.isNaN(n)?Date.now():n,fetchedAt:Date.now()}),Array.isArray(t)&&(h(t),b(!0))}async function tt(){if(!v)return;let e=v.id,t=null,n=!1,a=fetch(`/api/conversations/${e}`).then(async e=>{let t=await e.json();return e.ok&&Array.isArray(t?.events)?t.events:null}).catch(()=>null),s=fetch(`/api/exchanges?conversation=${encodeURIComponent(e)}`,{cache:"no-store"}).then(async e=>{let t=await e.json();return e.ok&&Array.isArray(t?.exchanges)?t.exchanges:null}).catch(()=>null);try{let a=await fetch(`/api/conversations/${e}/messages`);t=await a.json(),n=a.ok&&Array.isArray(t)}catch{n=!1}let r=await a,i=await s;if(X.current===e){let a,s;n&&C(t),r&&E((a=[],s=new Map,r.forEach((e,t)=>{let n="string"==typeof e.data.target_name?e.data.target_name:null;e.requestId&&n&&s.set(e.requestId,n);let i=function(e){switch(e.kind){case"wake_blocked":return"blocked";case"wake_rejected":return"rejected";case"lineage_stopped":return"stopped";case"wake_accepted":return"string"==typeof e.data.reason?"allowed":null;case"request_cancelled":return"grant_denied"===e.data.reason?"denied":null;case"request_queued":return"capacity"===e.data.waiting_for?"waiting":null;default:return null}}(e);if(!i)return;let l=Array.isArray(e.data.actions)?e.data.actions:[],o=null!==e.requestId&&r.slice(t+1).some(t=>t.requestId===e.requestId);if("waiting"===i&&o)return;let d=e.requestId?s.get(e.requestId):void 0,c="denied"===i&&d?`Wake denied: ${d} — no work ran`:"waiting"===i&&d?`Queued: ${d} — waiting for capacity`:e.text;a.push({eventId:e.eventId,wakeId:e.wakeId,tone:i,text:c,actionable:"blocked"===i&&!!e.wakeId&&l.includes("allow")&&l.includes("deny")&&!o,createdAt:e.createdAt})}),a)),i&&$(i),M({conversationId:e,status:n?"ready":"error"})}}(0,n.useLayoutEffect)(()=>{let e=ez.current?.parentElement;if(!e)return;let t=eU.current,n=eH.current,a=eB.current;if(e7&&t&&n&&a){let s=s=>{let r=Math.ceil(t.getBoundingClientRect().height);n.style.height=r+16+s+"px";let i=n.getBoundingClientRect().top-e.getBoundingClientRect().top;a.style.height=Math.max(0,e.clientHeight-i)+"px";let l=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop;e.scrollTop=Math.max(0,l-i)};s(0);let r=n.nextElementSibling,i=t.getBoundingClientRect().bottom,l=r?r.getBoundingClientRect().top:n.getBoundingClientRect().bottom;i>=l&&s(Math.max(16,Math.ceil(i-l)));return}a&&(a.style.height="0px"),n&&(n.style.height=""),e.scrollTop=e.scrollHeight},[S,e7]),(0,n.useEffect)(()=>{let e=D.current;if(!e)return;let t=document.getElementById(`exchange-${e}`);t&&(D.current=null,t.scrollIntoView({block:"center"}),t.focus({preventScroll:!0}))},[I]),(0,n.useLayoutEffect)(()=>{eK(e=>{if(0===e.length)return e;let t=e.filter(e=>{let t=eQ.current[e]??0;return S.some(n=>"bot"===n.sender_type&&n.sender_id===e&&n.created_at>t&&!/^\[(mcp|tool call|tool result)\]/i.test(n.content.trim()))});if(0===t.length)return e;for(let e of t)delete eQ.current[e];return e.filter(e=>!t.includes(e))})},[S]);let tn=async e=>{v&&(await fetch(`/api/conversations/${v.id}/messages/${e}/stop`,{method:"POST"}),await tt())},ta=async()=>{v&&(await fetch(`/api/conversations/${v.id}/stop`,{method:"POST"}),await tt())},ts=async(e,t)=>{if(ev[e.id])return void ej(t=>{let n={...t};return delete n[e.id],n});if(ew.current[e.id])return;let n=S.findIndex(t=>t.id===e.id),a=u.find(e=>e.name===t),s=S.slice(n+1).find(e=>"bot"===e.sender_type&&(a?e.sender_id===a.id:e.sender_name===t));if(s){ew.current[e.id]=!0;try{let t=await fetch(`/api/messages/${e.id}/between?other=${encodeURIComponent(s.id)}`),n=await t.json().catch(()=>null);t.ok&&Array.isArray(n)&&n.length>0&&ej(t=>({...t,[e.id]:n}))}finally{delete ew.current[e.id]}}};async function tr(e){let t=u.find(t=>t.id===e);if(!t)return;let n=await fetch(`/api/conversations?botId=${e}`),a=await n.json();eh(!1),ef(!1),a.id!==v?.id&&(C([]),E([]),$([])),X.current=a.id,w({id:a.id,details:t})}let ti=async()=>{if(!v)return;let e=eF.current?.files?.[0];if(!e)return;let t=await new Promise((t,n)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>n(a.error),a.readAsDataURL(e)});if(!t.startsWith("data:image/"))return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:t})});if(!n.ok)return;let a=await n.json();h(e=>e.map(e=>e.id===a.id?{...e,avatar:a.avatar}:e)),w({...v,details:{...v.details,avatar:a.avatar}})},tl=async e=>{if(!e||!v)return;let t=await new Promise((t,n)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>n(a.error),a.readAsDataURL(e)});if(!t.startsWith("data:image/"))return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:t})});if(!n.ok)return;let a=await n.json();h(e=>e.map(e=>e.id===a.id?{...e,avatar:a.avatar}:e)),w({...v,details:{...v.details,avatar:a.avatar}})},to=async()=>{if(!v)return;let e=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:null})});if(!e.ok)return;let t=await e.json();h(e=>e.map(e=>e.id===t.id?{...e,avatar:t.avatar||""}:e)),w({...v,details:{...v.details,avatar:t.avatar||""}})},td=f&&0===u.length,tc=[...u].filter(e=>!e.hidden).sort((e,t)=>U(e)-U(t)),tu=u.filter(e=>e.hidden),tm=async e=>{let t=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,pinned:+!e.pinned})});if(!t.ok)return;let n=await t.json();h(e=>e.map(e=>e.id===n.id?{...e,...n}:e))},th=async(e,t)=>{let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,hidden:+!!t})});if(!n.ok)return;let a=await n.json();h(e=>e.map(e=>e.id===a.id?{...e,...a,hidden:+!!a.hidden}:e)),t?requestAnimationFrame(()=>eR.current?.focus()):tx(e.id)},tp=async e=>{(await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,unread:1})})).ok&&h(t=>t.map(t=>t.id===e.id?{...t,unread:1}:t))};(0,n.useEffect)(()=>{if(!eS)return;let e=e=>{"Escape"===e.key&&(eC(null),eS.returnTo?.focus())},t=e=>{e_.current&&e_.current.contains(e.target)||eC(null)};return document.addEventListener("keydown",e),document.addEventListener("pointerdown",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("pointerdown",t)}},[eS]);let tf=async e=>{let t=ey.trim();if(ex(null),!t||t===e.name)return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,name:t})});if(!n.ok)return;let a=await n.json();h(e=>e.map(e=>e.id===a.id?{...e,...a}:e)),v&&v.details.id===a.id&&w({...v,details:{...v.details,...a}})},tg=async e=>{let t=e.map(e=>e.id);ek(null),eI(!1),eT((0,y.deletedStatusLine)(t.length)),requestAnimationFrame(()=>e$.current?.focus()),h(e=>e.filter(e=>!t.includes(e.id))),v&&t.includes(v.details.id)&&(w(null),C([]),E([])),await te()},tx=(e,t=30)=>{requestAnimationFrame(()=>{let n=document.querySelector(`[data-open-bot="${e}"]`);n?n.focus():t>0&&tx(e,t-1)})},ty=(e=!0)=>{let t=eS?.returnTo;eC(null),e&&t&&requestAnimationFrame(()=>{t.isConnected&&t.focus()})},tb=(e,t)=>{e.preventDefault(),eC({bot:t,x:e.clientX,y:e.clientY,returnTo:e.currentTarget.querySelector("[data-open-bot]")})},tv=(e,n)=>(0,t.jsx)("input",{className:"bot-name","aria-label":`Rename ${e.name}`,value:ey,autoFocus:!0,onChange:e=>eb(e.target.value),onBlur:()=>tf(e),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),t.target.blur(),tx(e.id)),"Escape"===t.key&&(ex(null),tx(e.id))},style:n}),tj=(e,n)=>(0,t.jsx)("button",{type:"button",className:"bot-name row-open","data-open-bot":e.id,"aria-current":v?.details.id===e.id?"true":void 0,onClick:()=>tr(e.id),style:n,children:e.name}),tw=e=>(0,t.jsx)("button",{type:"button",className:"row-actions","aria-haspopup":"menu","aria-expanded":eS?.bot.id===e.id,"aria-label":`Actions for ${e.name}`,title:`Actions for ${e.name}`,onClick:t=>{var n;let a;eC({bot:e,x:(a=(n=t.currentTarget).getBoundingClientRect()).left,y:a.bottom+4,returnTo:n})},children:"⋯"}),tN=e=>(0,t.jsxs)("div",{className:"row-tip",children:[e.unread&&v?.details.id!==e.id?(0,t.jsx)("div",{className:"card-role",children:"Unread"}):null,(0,t.jsx)("div",{className:"card-role",children:H(e.last_seen,eG.serverNow,eG.fetchedAt,eX)})]}),tk=e=>(0,t.jsxs)("div",{className:v?.details.id===e.id?"bot-row is-open":"bot-row",onContextMenu:t=>tb(t,e),children:[(0,t.jsxs)("span",{className:"mark-avatar mark-avatar-sm",children:[(0,t.jsx)(l.default,{bot:e,size:36,title:`${e.name} avatar`}),eJ.includes(e.id)?(0,t.jsx)("span",{className:"mark-dot"}):null]}),(0,t.jsxs)("div",{className:"bot-copy",children:[eg===e.id?tv(e):tj(e),L(e.latest)?(0,t.jsx)("div",{className:"bot-preview",children:L(e.latest)}):null,(0,t.jsx)(m.RosterRuntimeLine,{bot:e,state:e8})]}),tw(e),tN(e)]},e.id),tS=et?u.filter(e=>e.name.toLowerCase().includes(Z.toLowerCase())):[],tC=e=>{let t=el.current,n=t?t.selectionStart:Y.length,a=Y.slice(0,n).lastIndexOf("@");if(a<0)return;Q(Y.slice(0,a)+"@"+e+" "+Y.slice(n)),en(!1);let s=a+e.length+2;requestAnimationFrame(()=>{t?.focus(),t?.setSelectionRange(s,s)})},t_=e=>{if(0===e.length)return;let t=6-ea.length;e.length>t?ei("Up to six attachments."):ei("");let n=e.slice(0,Math.max(t,0));0!==n.length&&es(e=>[...e,...n.map((t,n)=>({id:t.name+"-"+e.length+"-"+n+"-"+t.size,name:t.name}))])},tR=async()=>{let e=ea.map(e=>e.name),t=Y.trim();if(!t&&0===e.length||!v)return;let n=[t,...e].filter(e=>e.length>0).join("\n"),a=[v.details.id],s=S.reduce((e,t)=>Math.max(e,t.created_at||0),0);for(let e of a)eQ.current[e]=s;eK(e=>Array.from(new Set([...e,...a])));let r=[...u].sort((e,t)=>t.name.length-e.name.length).find(e=>(function(e,t){let n="@"+t,a=0;for(;a<e.length;){let t=e.indexOf(n,a);if(t<0)break;let s=e[t+n.length];if(!s||/[\s.,!?:;]/.test(s))return!0;a=t+n.length}return!1})(n,e.name));if(!(await fetch(`/api/conversations/${v.id}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n,mentionedBotId:r?.id,idempotencyKey:crypto.randomUUID()})})).ok){for(let e of a)delete eQ.current[e];eK(e=>e.filter(e=>!a.includes(e)))}Q(""),es([]),ei(""),en(!1),tt()},tE=v?(e=v.id,S.length>0?"messages":P&&P.conversationId===e&&"loading"!==P.status?"error"===P.status?"error":"empty":"loading"):"loading",tI=v?(0,t.jsx)(A,{view:tE,agentName:v.details.name}):null,t$=(v?.details.title||"").trim(),tA=v?.details.color,tD=new Set,tP=e=>(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(F,{notice:e,onDone:()=>{tt()}})},e.eventId),tO=new Set,tT=e=>(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(q.default,{summary:e,onChanged:()=>{tt()}})},`exchange-${e.id}`),tL=e=>{let t=I.filter(t=>!tO.has(t.id)&&t.created_at<e).sort((e,t)=>e.created_at-t.created_at||(e.id<t.id?-1:1));return t.forEach(e=>tO.add(e.id)),t.map(tT)},tM=()=>{ec(!1),requestAnimationFrame(()=>eu.current?.focus())};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"field",inert:ed,children:[(0,t.jsxs)("aside",{className:"rail",children:[(0,t.jsxs)("div",{className:"brand",children:[(0,t.jsx)("div",{className:e0?"logo-shape is-settling":"logo-shape",children:(0,t.jsx)(s.default,{src:"/brand/botmancers-logo-filled-256.png",alt:"",width:40,height:40})}),(0,t.jsx)("div",{className:"logo-word",children:"botmancers"})]}),(0,t.jsxs)("div",{className:"bar",children:[(0,t.jsx)("button",{ref:eu,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>ec(!0),children:"New"}),td?null:(0,t.jsx)("button",{ref:e$,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>{eT(""),eI(!0)},children:"Manage agents"}),(0,t.jsx)(a.default,{href:"/settings",className:"add-btn settings-link",children:"Settings"})]}),td?null:(0,t.jsx)("nav",{className:"rail-nav","aria-label":"Workspace",children:(0,t.jsx)(a.default,{href:"/exchanges",className:"add-btn rail-nav-link",children:"Exchanges"})}),(0,t.jsx)("p",{className:"roster-status",role:"status",children:eO}),td?null:(0,t.jsx)("div",{className:eS?"roster menu-open":"roster",children:tc.map(e=>z(e)?(0,t.jsxs)("div",{className:"card",onContextMenu:t=>tb(t,e),children:[(0,t.jsxs)("div",{className:"row-head",children:[(0,t.jsxs)("span",{className:"mark-avatar",children:[(0,t.jsx)(l.default,{bot:e,size:44,title:`${e.name} avatar`}),eJ.includes(e.id)?(0,t.jsx)("span",{className:"mark-dot"}):null]}),eg===e.id?tv(e,{color:"#D5D0C3",fontSize:26}):tj(e,{fontSize:26}),tw(e)]}),L(e.latest)?(0,t.jsx)("div",{className:"bot-preview",children:L(e.latest)}):null,(0,t.jsx)(m.RosterRuntimeLine,{bot:e,state:e8}),tN(e)]},e.id):tk(e))}),tu.length>0?(0,t.jsxs)("div",{className:eS?"roster menu-open":"roster",children:[(0,t.jsx)("button",{ref:eR,type:"button",className:"pin-word","aria-expanded":eL,onClick:()=>eM(e=>!e),children:"Hidden"}),eL?tu.map(tk):null]}):null]}),(0,t.jsx)("section",{className:"pane",children:v?(0,t.jsxs)("div",{className:"thread",children:[(0,t.jsxs)("div",{className:"thread-bar",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",className:"thread-name",style:tA?{color:tA}:void 0,onClick:()=>{eh(!0),ef(!1)},children:v.details.name}),t$?(0,t.jsx)("div",{className:"thread-role",children:t$}):null,(0,t.jsx)("div",{className:"thread-role",children:eJ.includes(v.details.id)?"Working":"Not working"}),(0,t.jsx)("div",{className:"thread-role",children:H((e5??v.details).last_seen,eG.serverNow,eG.fetchedAt,eX)}),em?(0,t.jsx)("button",{type:"button",className:"avatar-pic",onClick:()=>ef(!0),"aria-label":"Picture",children:v.details.avatar?(0,t.jsx)("img",{src:v.details.avatar,alt:""}):(0,t.jsx)(l.default,{bot:v.details,size:46})}):null]}),(0,t.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:16,alignItems:"flex-start"},children:[(0,t.jsx)(a.default,{href:`/bots/${v.details.id}/config`,className:"attach-word",style:{textDecoration:"none"},children:"Config"}),(0,t.jsx)("button",{ref:eP,type:"button",className:"attach-word","aria-haspopup":"dialog","aria-expanded":eA,onClick:()=>eD(!0),children:"Sessions"}),(0,t.jsx)("button",{type:"button",className:"attach-word",title:"Stop delegated turns in this thread",onClick:()=>{ta()},children:"Stop"})]})]}),ep?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"avatar-step avatar-desk",children:[(0,t.jsx)("span",{className:"kind-word",children:"Agent"}),(0,t.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,t.jsxs)("label",{className:"kind-word",children:["Upload",(0,t.jsx)("input",{ref:eF,type:"file",accept:"image/*,.svg"})]}),(0,t.jsx)("button",{type:"button",className:"create-btn",onClick:ti,children:"Set avatar"})]}),(0,t.jsxs)("div",{className:"avatar-step avatar-phone",children:[(0,t.jsx)("button",{type:"button",className:"kind-word",onClick:()=>eq.current?.click(),children:"Gallery"}),(0,t.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,t.jsx)("button",{type:"button",className:"kind-word",onClick:to,children:"Remove Photo"}),(0,t.jsx)("input",{ref:eq,type:"file",accept:"image/*,.svg",onChange:e=>{let t=e.target.files?.[0];e.target.value="",tl(t)}})]})]}):null,(0,t.jsxs)("div",{className:"messages-wrap",children:[(0,t.jsxs)("div",{className:"messages",children:[e7?null:tI,S.map(e=>{var a;let s,l,u=R.filter(t=>!tD.has(t.eventId)&&t.createdAt<e.created_at);u.forEach(e=>tD.add(e.eventId));let m=tL(e.created_at),h="user"===e.sender_type,p=h?null:O(W(e.content));if(p)return(0,t.jsxs)(n.Fragment,{children:[u.map(tP),m,(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(T,{failure:p})})]},e.id);let f=(a=W(e.content),s=[],{text:B(a.replace(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g,e=>(s.push(e.replace(/\s/g,"")),""))),images:s}),g=f.images.map(e=>(0,t.jsx)("img",{src:e,alt:"",style:{display:"block",width:64,height:64}},e.slice(0,48))),x=h?void 0:v.details.color,y=h?null:r(e.content),b=h||y?null:o(W(e.content)),j=h||y?null:d(e.content),w=h||y?[]:function(e){let t=[];for(let n of e.split("\n")){let e=n.match(/^\s*\[file\]\s*(\S+)\s*$/i);e&&!t.includes(e[1])&&t.push(e[1])}return t}(e.content),N=h||y?null:(l=f.text.match(/^\s*\[Handing off to ([^\]]+)\]/))&&l[1].trim()||null,k=e.draftStatus??(b?"open":null),S=e.approvalStatus??(j?"pending":null);return(0,t.jsxs)(n.Fragment,{children:[u.map(tP),m,(0,t.jsxs)("div",{className:h?"msg-you":"msg-bot",ref:y&&"running"===y.state?eU:void 0,children:[(0,t.jsx)("div",{className:h?"msg-name msg-name-you":"msg-name",style:x?{color:x}:void 0,children:h?"You":e.sender_name||v.details.name}),y?(0,t.jsxs)("div",{className:"msg-body",children:[i(y),"running"===y.state?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:"attach-word",style:{font:"inherit"},onClick:t=>{t.preventDefault(),t.stopPropagation(),tn(e.id)},children:"Stop"})]}):null]}):b&&k?(0,t.jsx)("div",{className:"msg-body",children:(0,t.jsx)(J,{message:e,conversationId:v.id,status:k,onDone:()=>{tt()}},e.id+k)}):(0,t.jsxs)("div",{className:"msg-body",onClick:N?()=>{ts(e,N)}:void 0,title:N?"Show the replies between this handoff and the reply":void 0,style:N?{cursor:"pointer"}:void 0,children:[function(e,n){let a=String(e??"").split("\n");if(!a.some(e=>null!==(0,c.deckEventDisplay)(e)))return e;let s=[];return a.forEach((e,a)=>{a>0&&s.push((0,t.jsx)("br",{},n+"-br-"+a));let r=(0,c.deckEventDisplay)(e);r?s.push((0,t.jsxs)("span",{className:"deck-event",children:[(0,t.jsx)("span",{className:"deck-event-label",children:r.label}),r.detail?" "+r.detail:""]},n+"-"+a)):s.push((0,t.jsx)("span",{children:e},n+"-"+a))}),s}(f.text,e.id),g,j&&S?(0,t.jsx)(K,{message:e,conversationId:v.id,status:S,onDone:()=>{tt()}},e.id+S):null,(0,t.jsx)(G,{names:w})]}),ev[e.id]?(0,t.jsx)("div",{className:"msg-body",children:ev[e.id].map(e=>(0,t.jsx)("div",{children:(e.sender_name||"Agent")+": "+B(e.content)},e.id))}):null]})]},e.id)}),R.filter(e=>!tD.has(e.eventId)).map(tP),tL(1/0),(0,t.jsx)("div",{ref:eB}),(0,t.jsx)("div",{ref:ez})]}),e7?(0,t.jsxs)("div",{className:"computer-float",children:[(0,t.jsxs)("div",{className:"computer-top",children:[(0,t.jsxs)("span",{className:"computer-lights","aria-hidden":"true",children:[(0,t.jsx)("span",{className:"computer-light computer-light-red"}),(0,t.jsx)("span",{className:"computer-light computer-light-yellow"}),(0,t.jsx)("span",{className:"computer-light computer-light-green"})]}),(0,t.jsxs)("span",{className:"computer-teach",children:[(0,t.jsxs)("span",{className:"computer-teach-pill",children:[(0,t.jsx)("span",{className:"computer-teach-mark","aria-hidden":"true"}),"Teach a task"]}),(0,t.jsx)("span",{className:"computer-expand","aria-hidden":"true",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",children:(0,t.jsx)("path",{d:"M9.2 2.6H13.4V6.8M6.8 13.4H2.6V9.2M13.1 2.9L9.4 6.6M2.9 13.1L6.6 9.4",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,t.jsx)("div",{className:"messages"===tE?"computer-band":"computer-band computer-band-note",ref:eH,children:tI}),(0,t.jsxs)("div",{className:"computer-desk",children:[e9?(0,t.jsx)("iframe",{className:"computer-page",sandbox:"",srcDoc:e9,tabIndex:-1}):null,(0,t.jsxs)("div",{className:"computer-dock",children:[(0,t.jsx)("img",{src:"/computer/dock-chrome.png",alt:""}),(0,t.jsx)("img",{src:"/computer/dock-gray.png",alt:""}),(0,t.jsx)("img",{src:"/computer/dock-terminal.png",alt:""})]})]})]}):null]}),(0,t.jsxs)("div",{className:"composer",onPaste:e=>{let t=[],n=e.clipboardData.files;if(n&&n.length>0)t.push(...Array.from(n));else for(let n of Array.from(e.clipboardData.items)){if("file"!==n.kind)continue;let e=n.getAsFile();e&&t.push(e)}0!==t.length&&(e.preventDefault(),t_(t))},children:[et&&tS.length>0?(0,t.jsx)("div",{className:"mention-list",children:tS.map(e=>(0,t.jsxs)("button",{type:"button",onMouseDown:t=>{t.preventDefault(),tC(e.name)},children:["@",e.name]},e.id))}):null,(0,t.jsxs)("div",{className:"composer-box",children:[er?(0,t.jsx)("p",{className:"attach-error",children:er}):null,ea.length>0?(0,t.jsx)("div",{className:"attach-names",children:ea.map(e=>(0,t.jsx)("span",{children:e.name},e.id))}):null,(0,t.jsx)("textarea",{ref:el,rows:2,value:Y,onChange:e=>{var t,n;let a,s;Q(e.target.value),t=e.target.value,n=e.target.selectionStart,(s=(a=t.slice(0,n)).lastIndexOf("@"))<0||/\s/.test(a.slice(s+1))?en(!1):(ee(a.slice(s+1)),en(!0))},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){if(e.preventDefault(),et&&tS.length>0)return void tC(tS[0].name);tR()}},placeholder:"Say something"})]}),(0,t.jsx)("input",{ref:eo,className:"attach-input",type:"file",multiple:!0,onChange:e=>{t_(Array.from(e.target.files||[])),e.target.value=""}}),(0,t.jsx)("button",{type:"button",className:"attach-word",onClick:()=>eo.current?.click(),children:"Attach"}),(0,t.jsx)("button",{type:"button",className:"send-btn",onClick:tR,children:"Send"})]})]}):td?(0,t.jsxs)("div",{className:"welcome",children:[(0,t.jsx)(s.default,{className:"welcome-mark",src:"/brand/botmancers-logo-outline-256.png",alt:"Botmancers",width:144,height:144,priority:!0}),(0,t.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})]}):(0,t.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})}),eN?(0,t.jsx)(x.default,{ids:[eN.id],onCancel:()=>{tx(eN.id),ek(null)},onDeleted:e=>{tg(e)}}):null,eA&&v?(0,t.jsx)(_,{agentId:v.details.id,agentName:v.details.name,agents:u.map(e=>({id:e.id,name:e.name})),origin:{conversationId:v.id,label:`${v.details.name} thread`},onExchangeStarted:()=>{tt()},onClose:()=>{eD(!1),requestAnimationFrame(()=>eP.current?.focus())},onOpenThread:e=>{eD(!1),tr(e).then(()=>requestAnimationFrame(()=>eP.current?.focus()))}},v.details.id):null,eE?(0,t.jsx)(j,{deckState:e8,onClose:()=>{eI(!1),requestAnimationFrame(()=>e$.current?.focus())},onDeleted:e=>{tg(e)}}):null,eS?(0,t.jsxs)("div",{ref:e_,className:"row-menu",role:"menu","aria-label":`Actions for ${eS.bot.name}`,style:{left:eS.x,top:eS.y},onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),onKeyDown:e=>{let t=Array.from(e.currentTarget.querySelectorAll("[role=menuitem]")),n=t.indexOf(document.activeElement),a=n=>{e.preventDefault(),t[(n+t.length)%t.length]?.focus()};"ArrowDown"===e.key?a(n+1):"ArrowUp"===e.key?a(n-1):"Home"===e.key?a(0):"End"===e.key?a(t.length-1):"Tab"===e.key&&(e.preventDefault(),ty())},children:[(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,autoFocus:!0,onClick:e=>{e.stopPropagation(),ty(),tm(eS.bot)},children:eS.bot.pinned?"Unpin":"Pin"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ty(),tp(eS.bot)},children:"Mark as Unread"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ty(!1),ex(eS.bot.id),eb(eS.bot.name)},children:"Rename Agent"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ty(!1),th(eS.bot,!eS.bot.hidden)},children:eS.bot.hidden?"Unhide":"Hide from sidebar"}),(0,t.jsx)(a.default,{role:"menuitem",tabIndex:-1,href:`/bots/${eS.bot.id}/config`,onClick:()=>eC(null),children:"Config"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ty(!1),ek(eS.bot)},children:"Delete agent…"})]}):null]}),ed&&(0,t.jsx)(V,{anchorRef:eu,deckState:e8,onRetryDecks:()=>{e4(!0),e2()},onClose:tM,onCreated:()=>{te(),tM()}})]})}],31713)},5500,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"Image",{enumerable:!0,get:function(){return j}});let a=e.r(55682),s=e.r(90809),r=e.r(43476),i=s._(e.r(71645)),l=a._(e.r(74080)),o=a._(e.r(25633)),d=e.r(8927),c=e.r(87690),u=e.r(18556),m=e.r(65856),h=a._(e.r(1948)),p=e.r(18581),f={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function g(e,t,n,a,s,r,i){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&s(!0),n?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let a=!1,s=!1;n.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>a,isPropagationStopped:()=>s,persist:()=>{},preventDefault:()=>{a=!0,t.preventDefault()},stopPropagation:()=>{s=!0,t.stopPropagation()}})}a?.current&&a.current(e)}}))}function x(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y="u"<typeof window?i.useEffect:i.useLayoutEffect,b=(0,i.forwardRef)(({src:e,srcSet:t,sizes:n,height:a,width:s,decoding:l,className:o,style:d,fetchPriority:c,placeholder:u,loading:m,unoptimized:h,fill:f,onLoadRef:b,onLoadingCompleteRef:v,setBlurComplete:j,setShowAltText:w,sizesInput:N,onLoad:k,onError:S,...C},_)=>{let R=(0,i.useRef)(!1),E=(0,i.useRef)(null);y(()=>{let{current:e}=R,{current:t}=E;e||null===t||(S&&(t.src=t.src),t.complete&&g(t,u,b,v,j,h,N),R.current=!0)},[e,u,b,v,S,h,N]);let I=(0,p.useMergedRef)(_,E);return(0,r.jsx)("img",{...C,...x(c),loading:m,width:s,height:a,decoding:l,"data-nimg":f?"fill":"1",className:o,style:d,sizes:n,srcSet:t,src:e,ref:I,onLoad:e=>{g(e.currentTarget,u,b,v,j,h,N)},onError:e=>{w(!0),"empty"!==u&&j(!0),S&&S(e)}})});function v({isAppRouter:e,imgAttributes:t}){let n={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...x(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,n),null):(0,r.jsx)(o.default,{children:(0,r.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...n},"__nimg-"+t.src+t.srcSet+t.sizes)})}let j=(0,i.forwardRef)((e,t)=>{let n=(0,i.useContext)(m.RouterContext),a=(0,i.useContext)(u.ImageConfigContext),s=(0,i.useMemo)(()=>{let e=f||a||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),n=e.deviceSizes.sort((e,t)=>e-t),s=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:n,qualities:s,localPatterns:"u"<typeof window?a?.localPatterns:e.localPatterns}},[a]),{onLoad:l,onLoadingComplete:o}=e,p=(0,i.useRef)(l);(0,i.useEffect)(()=>{p.current=l},[l]);let g=(0,i.useRef)(o);(0,i.useEffect)(()=>{g.current=o},[o]);let[x,y]=(0,i.useState)(!1),[j,w]=(0,i.useState)(!1),{props:N,meta:k}=(0,d.getImgProps)(e,{defaultLoader:h.default,imgConf:s,blurComplete:x,showAltText:j});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b,{...N,unoptimized:k.unoptimized,placeholder:k.placeholder,fill:k.fill,onLoadRef:p,onLoadingCompleteRef:g,setBlurComplete:y,setShowAltText:w,sizesInput:e.sizes,ref:t}),k.preload?(0,r.jsx)(v,{isAppRouter:!n,imgAttributes:N}):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)},94909,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return c},getImageProps:function(){return d}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=e.r(55682),i=e.r(8927),l=e.r(5500),o=r._(e.r(1948));function d(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,n]of Object.entries(t))void 0===n&&delete t[e];return{props:t}}let c=l.Image},57688,(e,t,n)=>{t.exports=e.r(94909)},25633,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return f},defaultHead:function(){return u}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=e.r(55682),i=e.r(90809),l=e.r(43476),o=i._(e.r(71645)),d=r._(e.r(98879)),c=e.r(42732);function u(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}let h=["name","httpEquiv","charSet","itemProp"];function p(e){let t,n,a,s;return e.reduce(m,[]).reverse().concat(u().reverse()).filter((t=new Set,n=new Set,a=new Set,s={},e=>{let r=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let n=e.key.slice(e.key.indexOf("$")+1);t.has(n)?r=!1:t.add(n)}switch(e.type){case"title":case"base":n.has(e.type)?r=!1:n.add(e.type);break;case"meta":for(let t=0,n=h.length;t<n;t++){let n=h[t];if(e.props.hasOwnProperty(n))if("charSet"===n)a.has(n)?r=!1:a.add(n);else{let t=e.props[n],a=s[n]||new Set;("name"!==n||!i)&&a.has(t)?r=!1:(a.add(t),s[n]=a)}}}return r})).reverse().map((e,t)=>{let n=e.key||t;return o.default.cloneElement(e,{key:n})})}let f=function({children:e}){let t=(0,o.useContext)(c.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:p,headManager:t,children:e})};("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)},18556,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ImageConfigContext",{enumerable:!0,get:function(){return r}});let a=e.r(55682)._(e.r(71645)),s=e.r(87690),r=a.default.createContext(s.imageConfigDefault)},65856,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"RouterContext",{enumerable:!0,get:function(){return a}});let a=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,n)=>{"use strict";function a(e,t){let n=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-n)<Math.abs(e-n)?t:e,t.qualities[0]):n}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findClosestQuality",{enumerable:!0,get:function(){return a}})},1948,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return i}});let a=e.r(70965),s=e.r(43369);function r({config:e,src:t,width:n,quality:i}){let l=(0,s.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//"))if(t.includes("/_next/static/immutable")&&!(0,s.getAssetToken)())l=void 0;else{let e=t.indexOf("?");if(-1!==e){let n=new URLSearchParams(t.slice(e+1)),a=n.get("dpl");if(a){l=a,n.delete("dpl");let s=n.toString();t=t.slice(0,e)+(s?"?"+s:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
2
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,a.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${n}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}r.__next_img_default=!0;let i=r},88143,(e,t,n)=>{"use strict";function a({widthInt:e,heightInt:t,blurWidth:n,blurHeight:s,blurDataURL:r,objectFit:i}){let l=n?40*n:e,o=s?40*s:t,d=l&&o?`viewBox='0 0 ${l} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${r}'/%3E%3C/svg%3E`}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getImageBlurSvg",{enumerable:!0,get:function(){return a}})},87690,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={VALID_LOADERS:function(){return r},imageConfigDefault:function(){return i}};for(var s in a)Object.defineProperty(n,s,{enumerable:!0,get:a[s]});let r=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getImgProps",{enumerable:!0,get:function(){return d}});let a=e.r(43369),s=e.r(88143),r=e.r(87690),i=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:n=!1,priority:c=!1,preload:u=!1,loading:m,className:h,quality:p,width:f,height:g,fill:x=!1,style:y,overrideSrc:b,onLoad:v,onLoadingComplete:j,placeholder:w="empty",blurDataURL:N,fetchPriority:k,decoding:S="async",layout:C,objectFit:_,objectPosition:R,lazyBoundary:E,lazyRoot:I,...$},A){var D;let P,O,T,{imgConf:L,showAltText:M,blurComplete:F,defaultLoader:q}=A,z=L||r.imageConfigDefault;if("allSizes"in z)P=z;else{let e=[...z.deviceSizes,...z.imageSizes].sort((e,t)=>e-t),t=z.deviceSizes.sort((e,t)=>e-t),n=z.qualities?.sort((e,t)=>e-t);P={...z,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===q)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let U=$.loader||q;delete $.loader,delete $.srcSet;let H="__next_img_default"in U;if(H){if("custom"===P.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
3
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=U;U=t=>{let{config:n,...a}=t;return e(a)}}if(C){"fill"===C&&(x=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[C];e&&(y={...y,...e});let n={responsive:"100vw",fill:"100vw"}[C];n&&!t&&(t=n)}let B="",W=o(f),J=o(g);if((D=e)&&"object"==typeof D&&(l(D)||void 0!==D.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(O=t.blurWidth,T=t.blurHeight,N=N||t.blurDataURL,B=t.src,!x)if(W||J){if(W&&!J){let e=W/t.width;J=Math.round(t.height*e)}else if(!W&&J){let e=J/t.height;W=Math.round(t.width*e)}}else W=t.width,J=t.height}let K=!c&&!u&&("lazy"===m||void 0===m);(!(e="string"==typeof e?e:B)||e.startsWith("data:")||e.startsWith("blob:"))&&(n=!0,K=!1),P.unoptimized&&(n=!0),H&&!P.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(n=!0);let G=o(p),V=Object.assign(x?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:_,objectPosition:R}:{},M?{}:{color:"transparent"},y),X=F||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,s.getImageBlurSvg)({widthInt:W,heightInt:J,blurWidth:O,blurHeight:T,blurDataURL:N||"",objectFit:V.objectFit})}")`:`url("${w}")`,Y=i.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Q=X?{backgroundSize:Y,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Z=function({config:e,src:t,unoptimized:n,width:s,quality:r,sizes:i,loader:l}){if(n){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,a.getDeploymentId)();if(t.includes("/_next/static/immutable")&&!(0,a.getAssetToken)())e=void 0;else if(e){let n=t.indexOf("?");if(-1!==n){let a=new URLSearchParams(t.slice(n+1));a.get("dpl")||(a.append("dpl",e),t=t.slice(0,n)+"?"+a.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:o,kind:d}=function({deviceSizes:e,allSizes:t},n,a){if(a){let n=/(^|\s)(1?\d?\d)vw/g,s=[];for(let e;e=n.exec(a);)s.push(parseInt(e[2]));if(s.length){let n=.01*Math.min(...s);return{widths:t.filter(t=>t>=e[0]*n),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof n?{widths:e,kind:"w"}:{widths:[...new Set([n,2*n].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,s,i),c=o.length-1;return{sizes:i||"w"!==d?i:"100vw",srcSet:o.map((n,a)=>`${l({config:e,src:t,quality:r,width:n})} ${"w"===d?n:a+1}${d}`).join(", "),src:l({config:e,src:t,quality:r,width:o[c]})}}({config:P,src:e,unoptimized:n,width:W,quality:G,sizes:t,loader:U}),ee=K?"lazy":m;return{props:{...$,loading:ee,fetchPriority:k,width:W,height:J,decoding:S,className:h,style:{...V,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:b||Z.src},meta:{unoptimized:n,preload:u||c,placeholder:w,fill:x}}}},98879,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return l}});let a=e.r(71645),s="u"<typeof window,r=s?()=>{}:a.useLayoutEffect,i=s?()=>{}:a.useEffect;function l(e){let{headManager:t,reduceComponentsToState:n}=e;function l(){if(t&&t.mountedInstances){let e=a.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(e))}}return s&&(t?.mountedInstances?.add(e.children),l()),r(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),r(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13255,63352,50814,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(22016);function a(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}let s="Not reported";function o(e){return e.toFixed(1).replace(/\.0$/,"")}function i(e){return e.toLocaleString("en-US")}function l(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 u={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function c(e,t,n){return"cost_usd"===e?l(t):n?i(t):t<1e3?String(t):t<999950?`${o(t/1e3)}k`:t<99995e4?`${o(t/1e6)}M`:`${o(t/1e9)}B`}function d(e){return`${e} ${1===e?"run":"runs"}`}function f(e,t,n=!1){let r=u[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:r,text:s,quality:"unavailable",coverage:t&&t.total>0?`0 of ${d(t.total)} reported`:"No runs recorded",label:`${r}: not reported`};let a=c(e,t.sum,n),o=c(e,t.sum,!0);return"partial"===t.quality?{name:r,text:a,quality:"partial",coverage:`Partial: ${t.known} of ${d(t.total)} reported`,label:`${r}: at least ${o}, partial, reported by ${t.known} of ${d(t.total)}`}:{name:r,text:a,quality:"complete",coverage:`All ${d(t.total)} reported`,label:`${r}: ${o}, reported by all ${d(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,a,"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=f("input_tokens",e?.input_tokens),n=f("output_tokens",e?.output_tokens),r=f("cost_usd",e?.cost_usd),a=[t,n,r];if(a.every(e=>"unavailable"===e.quality))return{text:s,label:"Usage: not reported",quality:"unavailable",partial:!1};let o=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===n.quality?"output not reported":`${n.text} out`,"unavailable"===r.quality?"cost not reported":r.text].join(" · "),i=a.some(e=>"partial"===e.quality),l=i||a.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:o,label:`Reported usage: ${a.map(e=>e.label).join("; ")}`,quality:l,partial:i}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,f,"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?s:i(e.input_tokens),output:null===e.output_tokens?s:i(e.output_tokens),cost:null===e.cost_usd?s:l(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 h={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},p=["queued","extracting","delivering","completed","failed","cancelled"],g=["completed","failed","cancelled"];function m(e){return"ask"===e?"Ask":"Continue"}function y(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 b(e){var t;return e.cancel_requested&&(t=e.state,!g.includes(t))?"Cancelling…":y(e.mode,e.state)}function v(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"}function _(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 x(e){return a(e)}function $(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`}function k(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`}function w(e){return"ask"===e?"Question":"Objective"}function j(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${_(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: ${_(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}function S(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."}}function C(e){return`/exchanges?id=${encodeURIComponent(e)}`}function T(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,C,"eventLabel",0,function(e,t){let n=e.data??{},r=t.source.agent_name,a=t.destination?.agent_name??"the destination Agent",s="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${r}'s session a question`:`You handed ${r}'s session to ${a}`;case"hop_queued":if("deliver"===s)return`Handoff queued for ${a}'s new session`;return"extract"===s?`Handoff extraction queued in ${r}'s session`:`Question queued for ${r}'s session`;case"hop_started":if("deliver"===s)return`${a} started a new session`;return"extract"===s?`${r}'s session started extracting the handoff`:`${r}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&p.includes(n.to)?n.to:null;return e?`Now ${y(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`${a} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${a}'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,_,"exchangeRequestBody",0,function(e,t,n){let r={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&&(r.destination={agent_id:e.destinationAgentId}),r},"failureAdvice",0,S,"formatExchangeTime",0,x,"instructionHeading",0,w,"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(T)},"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,b,"modeLabel",0,m,"outcomeLine",0,j,"participantsLabel",0,k,"pinRequestBody",0,function(e,t,n,r,a){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:a,..."resume"===e?{approve_write:r}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return h["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,$,"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.`},r=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:r,resume:{available:!1,code:"action_unavailable",reason:`${h.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:r}}return["ask","resume","handoff"].map(e=>({action:e,label:h[e],availability:t[e]}))},"stateTone",0,v,"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 has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return 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 r=n.toString();return`/threads/${encodeURIComponent(e.id)}${r?`?${r}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),r="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${r}.`,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),e.s(["default",0,function({summary:e,onChanged:a}){let[s,o]=(0,n.useState)(!1),[i,l]=(0,n.useState)(""),u=v(e.state),c=j(e),d=S(e),f=`exchange-${e.id}-title`,h=async()=>{if(!s){o(!0),l("");try{let t=await fetch(`/api/exchanges/${encodeURIComponent(e.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok){let e=await t.json().catch(()=>null);l("string"==typeof e?.error?.message?e.error.message:"Could not cancel. Try again.")}}catch{l("Could not cancel. Try again.")}finally{o(!1),a?.()}}};return(0,t.jsxs)("article",{id:`exchange-${e.id}`,className:`exchange-card is-${u} is-${e.state}`,"data-exchange-id":e.id,"data-exchange-state":e.state,"aria-labelledby":f,tabIndex:-1,children:[(0,t.jsxs)("p",{className:"exchange-card-line",children:[(0,t.jsx)("span",{className:"exchange-card-mode",children:m(e.mode)}),(0,t.jsx)("span",{id:f,className:"exchange-card-title",children:k(e)}),(0,t.jsx)("span",{className:"exchange-card-state",role:"status",children:b(e)})]}),(0,t.jsx)("p",{className:"exchange-card-session",children:$(e)}),(0,t.jsxs)("p",{className:"exchange-card-instruction",children:[(0,t.jsx)("span",{className:"exchange-card-key",children:w(e.mode)})," ",_(e.instruction,220)]}),c?(0,t.jsx)("p",{className:"failed"===e.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:c}):null,d?(0,t.jsx)("p",{className:"exchange-card-advice",children:d}):null,i?(0,t.jsx)("p",{className:"exchange-card-error",role:"alert",children:i}):null,(0,t.jsxs)("p",{className:"exchange-card-foot",children:[(0,t.jsxs)("span",{className:"exchange-card-time",children:["Updated ",x(e.updated_at)]}),(0,t.jsx)(r.default,{className:"exchange-card-link",href:C(e.id),"aria-label":`Details: ${m(e.mode)} ${k(e)}`,children:"Details"}),e.can_cancel?(0,t.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:s,onClick:()=>{h()},children:s?"Cancelling…":"Cancel"}):null]})]})}],13255)},61138,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(22016),a=e.i(18566),s=e.i(13255);e.s(["default",0,function(){let e=String((0,a.useParams)().id??""),[o,i]=(0,n.useState)(null),[l,u]=(0,n.useState)([]),[c,d]=(0,n.useState)([]),[f,h]=(0,n.useState)(""),[p,g]=(0,n.useState)(0),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{m.current=new URLSearchParams(window.location.search).get("exchange")},[]),(0,n.useEffect)(()=>{if(!e)return;let t=!1,n=async()=>{try{let[n,r,a]=await Promise.all([fetch(`/api/conversations/${encodeURIComponent(e)}`,{cache:"no-store"}),fetch(`/api/conversations/${encodeURIComponent(e)}/messages`,{cache:"no-store"}),fetch(`/api/exchanges?conversation=${encodeURIComponent(e)}`,{cache:"no-store"})]);if(t)return;if(!n.ok)return void h(404===n.status?"This thread no longer exists.":"Could not load this thread.");let s=await n.json(),o=await r.json().catch(()=>null),l=await a.json().catch(()=>null);if(t)return;let c=s?.details??null,f=Array.isArray(c?.members)?c.members.map(e=>e?.name).filter(Boolean):[];i({label:c?.name?`Group ${c.name}`:"Group thread",members:f}),r.ok&&Array.isArray(o)&&u(o),a.ok&&Array.isArray(l?.exchanges)&&d(l.exchanges),h("")}catch{t||h("Could not load this thread.")}};n();let r=setInterval(n,2e3);return()=>{t=!0,clearInterval(r)}},[e,p]),(0,n.useEffect)(()=>{let e=m.current;if(!e)return;let t=document.getElementById(`exchange-${e}`);t&&(m.current=null,t.scrollIntoView({block:"center"}),t.focus({preventScroll:!0}))},[c]);let y=new Set,b=e=>(0,t.jsx)("li",{className:"msg-status",children:(0,t.jsx)(s.default,{summary:e,onChanged:()=>g(e=>e+1)})},`exchange-${e.id}`),v=e=>{let t=c.filter(t=>!y.has(t.id)&&t.created_at<e).sort((e,t)=>e.created_at-t.created_at||(e.id<t.id?-1:1));return t.forEach(e=>y.add(e.id)),t.map(b)};return(0,t.jsxs)("div",{className:"ledger-page group-thread-page",children:[(0,t.jsxs)("header",{className:"ledger-head",children:[(0,t.jsxs)("nav",{className:"group-thread-nav","aria-label":"Thread navigation",children:[(0,t.jsx)(r.default,{href:"/",className:"cfg-link ledger-back",children:"← Back to chat"}),(0,t.jsx)(r.default,{href:"/exchanges",className:"cfg-link ledger-back",children:"Agent Exchanges"})]}),(0,t.jsx)("h1",{className:"ledger-title",children:o?.label??"Group thread"}),o&&o.members.length>0?(0,t.jsxs)("p",{className:"ledger-sub",children:["With ",o.members.join(", ")]}):null]}),(0,t.jsx)("main",{className:"group-thread-main","aria-label":"Thread",children:f?(0,t.jsxs)("div",{className:"ledger-state",role:"alert",children:[(0,t.jsx)("p",{className:"delete-error",children:f}),(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>g(e=>e+1),children:"Retry"})]}):o?(0,t.jsxs)("ol",{className:"group-thread-list","aria-label":"Messages and exchanges",children:[l.map(e=>(0,t.jsxs)(n.Fragment,{children:[v(e.created_at),(0,t.jsxs)("li",{className:"user"===e.sender_type?"msg-you":"msg-bot",children:[(0,t.jsx)("div",{className:"user"===e.sender_type?"msg-name msg-name-you":"msg-name",children:"user"===e.sender_type?"You":e.sender_name||"Agent"}),(0,t.jsx)("div",{className:"msg-body group-thread-body",children:e.content.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"").replace(/^\s+/,"")})]})]},e.id)),v(1/0),0===l.length&&0===c.length?(0,t.jsx)("li",{className:"ledger-state",children:"No messages in this thread yet."}):null]}):(0,t.jsx)("p",{className:"ledger-state",role:"status",children:"Loading thread…"})})]})}])},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return v}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809),o=e.r(43476),i=s._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function y(t){var n;let r,a,s,[y,v]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),_=(0,i.useRef)(null),{href:x,as:$,children:k,prefetch:w=null,passHref:j,replace:S,shallow:C,scroll:T,onClick:N,onMouseEnter:A,onTouchStart:E,legacyBehavior:R=!1,onNavigate:I,transitionTypes:P,ref:O,unstable_dynamicOnHover:L,...U}=t;r=k,R&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let q=i.default.useContext(u.AppRouterContext),D=!1!==w,M=!1===w?"none":!0===w?"full":"auto",F="none"!==M?"auto"===M?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,B="string"==typeof(n=$||x)?n:(0,l.formatUrl)(n);if(R){if(r?.$$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});a=i.default.Children.only(r)}let H=R?a&&"object"==typeof a&&a.ref:O,K,Q=i.default.useCallback(e=>(null!==q&&(_.current=(0,p.mountLinkInstance)(e,B,q,F,D,v,K)),()=>{_.current&&((0,p.unmountLinkForCurrentNavigation)(_.current),_.current=null),(0,p.unmountPrefetchableInstance)(e)}),[D,B,q,F,v,K]),z={ref:(0,c.useMergedRef)(Q,H),onClick(t){R||"function"!=typeof N||N(t),R&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!q||t.defaultPrevented||function(t,n,r,a,s,o,l,u="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);i.default.startTransition(()=>{f(n,a?"replace":"push",!1===s?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l,u)})}}(t,B,_,S,T,I,P,M)},onMouseEnter(e){R||"function"!=typeof A||A(e),R&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),q&&D&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof E||E(e),R&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),q&&D&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,d.isAbsoluteUrl)(B)?z.href=B:R&&!j&&("a"!==a.type||"href"in a.props)||(z.href=(0,f.addBasePath)(B)),s=R?i.default.cloneElement(a,z):(0,o.jsx)("a",{...U,...z,children:r}),(0,o.jsx)(b.Provider,{value:y,children:s})}let b=(0,i.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,i.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 a}});let r=e.r(71645);function a(e,t){let n=(0,r.useRef)(null),a=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(n.current=s(e,r)),t&&(a.current=s(t,r))},[e,t])}function s(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 s}});let r=e.r(18967),a=e.r(52817);function s(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return i}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});function s(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,o(e));else t.set(n,o(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||o.test(r))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${a}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return _},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return s},execOnce:function(){return o},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return $}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y 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 _ extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function $(e){return JSON.stringify({message:e.message,stack:e.stack})}},18566,(e,t,n)=>{t.exports=e.r(76562)}]);