botmancers 0.3.0 → 0.4.2

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 (357) hide show
  1. package/CHANGELOG.md +79 -1
  2. package/README.md +162 -21
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +20 -1
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/prerender-manifest.json +32 -4
  7. package/app/.next/required-server-files.json +2 -2
  8. package/app/.next/routes-manifest.json +143 -0
  9. package/app/.next/server/app/_global-error/page.js +1 -1
  10. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/_global-error.html +1 -1
  13. package/app/.next/server/app/_global-error.rsc +1 -1
  14. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  15. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/app/.next/server/app/_not-found/page.js +1 -1
  18. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/_not-found.html +1 -1
  21. package/app/.next/server/app/_not-found.rsc +2 -2
  22. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/app/.next/server/app/api/agent-deck/decks/route.js +2 -2
  26. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
  27. package/app/.next/server/app/api/agent-deck/settings/route.js +2 -2
  28. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
  29. package/app/.next/server/app/api/bots/[id]/config/route.js +2 -2
  30. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  31. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  32. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/build-manifest.json +12 -0
  33. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +9 -0
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -0
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  37. package/app/.next/server/app/api/bots/[id]/sessions/route/app-paths-manifest.json +3 -0
  38. package/app/.next/server/app/api/bots/[id]/sessions/route/build-manifest.json +12 -0
  39. package/app/.next/server/app/api/bots/[id]/sessions/route/server-reference-manifest.json +4 -0
  40. package/app/.next/server/app/api/bots/[id]/sessions/route.js +9 -0
  41. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -0
  42. package/app/.next/server/app/api/bots/[id]/sessions/route_client-reference-manifest.js +3 -0
  43. package/app/.next/server/app/api/bots/[id]/skill/route.js +2 -2
  44. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  45. package/app/.next/server/app/api/bots/availability/route.js +1 -1
  46. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  47. package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
  48. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  49. package/app/.next/server/app/api/bots/import/route.js +2 -2
  50. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  51. package/app/.next/server/app/api/bots/manage/route.js +2 -2
  52. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/bots/name-migrations/route.js +2 -2
  54. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/bots/route.js +6 -6
  56. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/conversations/[id]/approve/route.js +2 -2
  58. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/conversations/[id]/deny/route.js +2 -2
  60. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/conversations/[id]/draft/route.js +2 -2
  62. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +2 -2
  64. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/conversations/[id]/messages/route.js +6 -6
  66. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/conversations/[id]/route.js +2 -2
  68. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/conversations/[id]/stop/route.js +3 -3
  70. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  71. package/app/.next/server/app/api/conversations/route.js +2 -2
  72. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  73. package/app/.next/server/app/api/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  74. package/app/.next/server/app/api/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  75. package/app/.next/server/app/api/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  76. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +11 -0
  77. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -0
  78. package/app/.next/server/app/api/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  79. package/app/.next/server/app/api/exchanges/[id]/route/app-paths-manifest.json +3 -0
  80. package/app/.next/server/app/api/exchanges/[id]/route/build-manifest.json +12 -0
  81. package/app/.next/server/app/api/exchanges/[id]/route/server-reference-manifest.json +4 -0
  82. package/app/.next/server/app/api/exchanges/[id]/route.js +11 -0
  83. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -0
  84. package/app/.next/server/app/api/exchanges/[id]/route_client-reference-manifest.js +3 -0
  85. package/app/.next/server/app/api/exchanges/route/app-paths-manifest.json +3 -0
  86. package/app/.next/server/app/api/exchanges/route/build-manifest.json +12 -0
  87. package/app/.next/server/app/api/exchanges/route/server-reference-manifest.json +4 -0
  88. package/app/.next/server/app/api/exchanges/route.js +12 -0
  89. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -0
  90. package/app/.next/server/app/api/exchanges/route_client-reference-manifest.js +3 -0
  91. package/app/.next/server/app/api/files/[name]/route.js +1 -1
  92. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/groups/route.js +2 -2
  94. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  97. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  99. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  101. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/mcp/route.js +2 -2
  103. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/messages/[id]/between/route.js +2 -2
  105. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/service-grants/route/app-paths-manifest.json +3 -0
  107. package/app/.next/server/app/api/service-grants/route/build-manifest.json +12 -0
  108. package/app/.next/server/app/api/service-grants/route/server-reference-manifest.json +4 -0
  109. package/app/.next/server/app/api/service-grants/route.js +9 -0
  110. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -0
  111. package/app/.next/server/app/api/service-grants/route_client-reference-manifest.js +3 -0
  112. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
  113. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/build-manifest.json +12 -0
  114. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
  115. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +11 -0
  116. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -0
  117. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
  118. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/app-paths-manifest.json +3 -0
  119. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/build-manifest.json +12 -0
  120. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/server-reference-manifest.json +4 -0
  121. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +11 -0
  122. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -0
  123. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route_client-reference-manifest.js +3 -0
  124. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -3
  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]/route/app-paths-manifest.json +3 -0
  127. package/app/.next/server/app/api/v0/agents/[agentId]/route/build-manifest.json +12 -0
  128. package/app/.next/server/app/api/v0/agents/[agentId]/route/server-reference-manifest.json +4 -0
  129. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +11 -0
  130. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -0
  131. package/app/.next/server/app/api/v0/agents/[agentId]/route_client-reference-manifest.js +3 -0
  132. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  133. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/build-manifest.json +12 -0
  134. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  135. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +11 -0
  136. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -0
  137. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  138. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/app-paths-manifest.json +3 -0
  139. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/build-manifest.json +12 -0
  140. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/server-reference-manifest.json +4 -0
  141. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +11 -0
  142. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -0
  143. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route_client-reference-manifest.js +3 -0
  144. package/app/.next/server/app/api/v0/agents/route/app-paths-manifest.json +3 -0
  145. package/app/.next/server/app/api/v0/agents/route/build-manifest.json +12 -0
  146. package/app/.next/server/app/api/v0/agents/route/server-reference-manifest.json +4 -0
  147. package/app/.next/server/app/api/v0/agents/route.js +11 -0
  148. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -0
  149. package/app/.next/server/app/api/v0/agents/route_client-reference-manifest.js +3 -0
  150. package/app/.next/server/app/api/v0/capabilities/route/app-paths-manifest.json +3 -0
  151. package/app/.next/server/app/api/v0/capabilities/route/build-manifest.json +12 -0
  152. package/app/.next/server/app/api/v0/capabilities/route/server-reference-manifest.json +4 -0
  153. package/app/.next/server/app/api/v0/capabilities/route.js +11 -0
  154. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -0
  155. package/app/.next/server/app/api/v0/capabilities/route_client-reference-manifest.js +3 -0
  156. package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -3
  157. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  159. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  160. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  161. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +11 -0
  162. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -0
  163. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  164. package/app/.next/server/app/api/v0/exchanges/[id]/route/app-paths-manifest.json +3 -0
  165. package/app/.next/server/app/api/v0/exchanges/[id]/route/build-manifest.json +12 -0
  166. package/app/.next/server/app/api/v0/exchanges/[id]/route/server-reference-manifest.json +4 -0
  167. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +11 -0
  168. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -0
  169. package/app/.next/server/app/api/v0/exchanges/[id]/route_client-reference-manifest.js +3 -0
  170. package/app/.next/server/app/api/v0/exchanges/route/app-paths-manifest.json +3 -0
  171. package/app/.next/server/app/api/v0/exchanges/route/build-manifest.json +12 -0
  172. package/app/.next/server/app/api/v0/exchanges/route/server-reference-manifest.json +4 -0
  173. package/app/.next/server/app/api/v0/exchanges/route.js +11 -0
  174. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -0
  175. package/app/.next/server/app/api/v0/exchanges/route_client-reference-manifest.js +3 -0
  176. package/app/.next/server/app/api/v0/mcp/route.js +5 -3
  177. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -3
  179. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/app-paths-manifest.json +3 -0
  181. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/build-manifest.json +12 -0
  182. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/server-reference-manifest.json +4 -0
  183. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +11 -0
  184. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -0
  185. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route_client-reference-manifest.js +3 -0
  186. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +5 -5
  187. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/wakes/[id]/decision/route.js +5 -5
  189. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/wakes/[id]/retry/route.js +5 -5
  191. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  192. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  193. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  194. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/exchanges/page/app-paths-manifest.json +3 -0
  196. package/app/.next/server/app/exchanges/page/build-manifest.json +20 -0
  197. package/app/.next/server/app/exchanges/page/next-font-manifest.json +11 -0
  198. package/app/.next/server/app/exchanges/page/react-loadable-manifest.json +1 -0
  199. package/app/.next/server/app/exchanges/page/server-reference-manifest.json +4 -0
  200. package/app/.next/server/app/exchanges/page.js +13 -0
  201. package/app/.next/server/app/exchanges/page.js.nft.json +1 -0
  202. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +3 -0
  203. package/app/.next/server/app/exchanges.html +1 -0
  204. package/app/.next/server/app/exchanges.meta +34 -0
  205. package/app/.next/server/app/exchanges.rsc +22 -0
  206. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +22 -0
  207. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +4 -0
  208. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +26 -0
  209. package/app/.next/server/app/index.html +1 -1
  210. package/app/.next/server/app/index.rsc +3 -3
  211. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  212. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  213. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  214. package/app/.next/server/app/page.js +1 -1
  215. package/app/.next/server/app/page.js.nft.json +1 -1
  216. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/settings/page.js +1 -1
  218. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  219. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/settings.html +1 -1
  221. package/app/.next/server/app/settings.rsc +2 -2
  222. package/app/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  223. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  224. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  225. package/app/.next/server/app/threads/[id]/page/app-paths-manifest.json +3 -0
  226. package/app/.next/server/app/threads/[id]/page/build-manifest.json +20 -0
  227. package/app/.next/server/app/threads/[id]/page/next-font-manifest.json +11 -0
  228. package/app/.next/server/app/threads/[id]/page/react-loadable-manifest.json +1 -0
  229. package/app/.next/server/app/threads/[id]/page/server-reference-manifest.json +4 -0
  230. package/app/.next/server/app/threads/[id]/page.js +13 -0
  231. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -0
  232. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +3 -0
  233. package/app/.next/server/app-paths-manifest.json +20 -1
  234. package/app/.next/server/chunks/0ivl_api_v0_agents_[agentId]_conversations_[conversationId]_route_actions_0lvijtu.js +3 -0
  235. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_conversations_route_actions_0ko3117.js +3 -0
  236. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_sessions_[ref]_route_actions_0o7q3vt.js +3 -0
  237. package/app/.next/server/chunks/{[externals]__18bqksw._.js → [externals]__06lqs5i._.js} +1 -1
  238. package/app/.next/server/chunks/{[root-of-the-server]__1vxmbdl._.js → [root-of-the-server]__0-45blq._.js} +1 -1
  239. package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +1 -1
  240. package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +285 -53
  241. package/app/.next/server/chunks/{[root-of-the-server]__07l_rgn._.js → [root-of-the-server]__0j0i8xz._.js} +1 -1
  242. package/app/.next/server/chunks/[root-of-the-server]__0wtzcge._.js +3 -0
  243. package/app/.next/server/chunks/{[root-of-the-server]__19hjzs0._.js → [root-of-the-server]__15hknun._.js} +1 -1
  244. package/app/.next/server/chunks/{[root-of-the-server]__08i4wq6._.js → [root-of-the-server]__16ikszu._.js} +1 -1
  245. package/app/.next/server/chunks/{[root-of-the-server]__1khwkvb._.js → [root-of-the-server]__1c3e2ds._.js} +1 -1
  246. package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +2 -2
  247. package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +2 -2
  248. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +7 -0
  249. package/app/.next/server/chunks/_06rti77._.js +30 -0
  250. package/app/.next/server/chunks/_09k38l1._.js +3 -0
  251. package/app/.next/server/chunks/_0dlg5kj._.js +30 -0
  252. package/app/.next/server/chunks/_0dyculb._.js +30 -0
  253. package/app/.next/server/chunks/_0eig2jc._.js +30 -0
  254. package/app/.next/server/chunks/_0ggf7vy._.js +1 -1
  255. package/app/.next/server/chunks/_0kghtb6._.js +3 -0
  256. package/app/.next/server/chunks/_0th2j4w._.js +1 -1
  257. package/app/.next/server/chunks/_0uz7r06._.js +30 -0
  258. package/app/.next/server/chunks/_0x05ts4._.js +3 -0
  259. package/app/.next/server/chunks/_0y3geoj._.js +30 -0
  260. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  261. package/app/.next/server/chunks/_12tq5uv._.js +30 -0
  262. package/app/.next/server/chunks/_147-4gl._.js +3 -0
  263. package/app/.next/server/chunks/_14ky6a2._.js +30 -0
  264. package/app/.next/server/chunks/_16kbxdt._.js +30 -0
  265. package/app/.next/server/chunks/_1963m2f._.js +30 -0
  266. package/app/.next/server/chunks/_1_34_h3._.js +30 -0
  267. package/app/.next/server/chunks/_1cc-2mx._.js +3 -0
  268. package/app/.next/server/chunks/_1inyx08._.js +1 -1
  269. package/app/.next/server/chunks/_1nurj3f._.js +30 -0
  270. package/app/.next/server/chunks/_1p2rf_n._.js +30 -0
  271. package/app/.next/server/chunks/_1u6tw78._.js +30 -0
  272. package/app/.next/server/chunks/_20azcus._.js +3 -0
  273. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_[ref]_route_actions_02gp9-5.js +3 -0
  274. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_route_actions_1s_wxg4.js +3 -0
  275. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_cancel_route_actions_0lh0fl4.js +3 -0
  276. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_route_actions_1w4jhin.js +3 -0
  277. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_route_actions_028wchg.js +3 -0
  278. package/app/.next/server/chunks/_next-internal_server_app_api_service-grants_route_actions_1459xk1.js +3 -0
  279. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_route_actions_127sxvv.js +3 -0
  280. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_sessions_route_actions_0pm6tcu.js +3 -0
  281. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_route_actions_00azkhd.js +3 -0
  282. package/app/.next/server/chunks/_next-internal_server_app_api_v0_capabilities_route_actions_0d-eefd.js +3 -0
  283. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_cancel_route_actions_1hb2q7i.js +3 -0
  284. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_route_actions_098f50-.js +3 -0
  285. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_route_actions_1ftmhhm.js +3 -0
  286. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_messages_route_actions_1-rgf_k.js +3 -0
  287. package/app/.next/server/chunks/lib_0kik6bx._.js +1 -1
  288. package/app/.next/server/chunks/lib_0pe3tiv._.js +1 -1
  289. package/app/.next/server/chunks/lib_0t3s3rj._.js +30 -0
  290. package/app/.next/server/chunks/lib_0zxi6rx._.js +148 -0
  291. package/app/.next/server/chunks/lib_12udr7g._.js +148 -0
  292. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +25 -0
  293. package/app/.next/server/chunks/lib_session-catalog_ts_1i7f38f._.js +30 -0
  294. package/app/.next/server/chunks/ssr/{[root-of-the-server]__0sq4frf._.js → [root-of-the-server]__03186rx._.js} +1 -1
  295. package/app/.next/server/chunks/ssr/[root-of-the-server]__03xw2d9._.js +3 -0
  296. package/app/.next/server/chunks/ssr/{[root-of-the-server]__1x7o-fe._.js → [root-of-the-server]__0zzcbqg._.js} +1 -1
  297. package/app/.next/server/chunks/ssr/{[root-of-the-server]__029oxo_._.js → [root-of-the-server]__1feicqq._.js} +1 -1
  298. package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +3 -0
  299. package/app/.next/server/chunks/ssr/_00ysoah._.js +3 -0
  300. package/app/.next/server/chunks/ssr/_157wnb_._.js +3 -0
  301. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  302. package/app/.next/server/chunks/ssr/_next-internal_server_app_exchanges_page_actions_0hcso2x.js +3 -0
  303. package/app/.next/server/chunks/ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js +3 -0
  304. package/app/.next/server/chunks/ssr/app_1-nwnha._.js +3 -0
  305. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +3 -0
  306. package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +3 -0
  307. package/app/.next/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
  308. package/app/.next/server/chunks/ssr/node_modules_next_0x3i8za._.js +131 -0
  309. package/app/.next/server/middleware-build-manifest.js +3 -3
  310. package/app/.next/server/middleware.js +1 -1
  311. package/app/.next/server/next-font-manifest.js +1 -1
  312. package/app/.next/server/next-font-manifest.json +8 -0
  313. package/app/.next/server/pages/404.html +1 -1
  314. package/app/.next/server/pages/500.html +1 -1
  315. package/app/.next/server/prefetch-hints.json +14 -0
  316. package/app/.next/server/server-reference-manifest.js +1 -1
  317. package/app/.next/server/server-reference-manifest.json +1 -1
  318. package/app/.next/static/chunks/1i5xroz391zkb.js +1 -0
  319. package/app/.next/static/chunks/{3zqbpbm93yqzh.css → 1vz50l951sr9e.css} +1 -1
  320. package/app/.next/static/chunks/24ggj819yt3y6.js +1 -0
  321. package/app/.next/static/chunks/2_8lcalraul5s.js +3 -0
  322. package/app/.next/static/chunks/30i0-l04mmdvk.js +1 -0
  323. package/app/BUILD_INFO.json +2 -2
  324. package/app/package.json +1 -1
  325. package/app/server.js +1 -1
  326. package/dist/cli.d.ts +1 -1
  327. package/dist/cli.js +33 -5
  328. package/dist/clients.d.ts +86 -0
  329. package/dist/clients.js +635 -0
  330. package/dist/config.js +2 -2
  331. package/dist/contract.d.ts +6 -1
  332. package/dist/contract.js +28 -8
  333. package/dist/index.d.ts +1 -1
  334. package/dist/index.js +3 -3
  335. package/dist/managed.js +7 -0
  336. package/dist/product.d.ts +2 -0
  337. package/dist/product.js +6 -0
  338. package/dist/server.js +5 -4
  339. package/dist/upstream.js +21 -7
  340. package/package.json +7 -6
  341. package/schemas/botmancers.mcp.v2.tools.json +2981 -0
  342. package/skills/botmancers-collaboration/SKILL.md +99 -0
  343. package/skills/botmancers-collaboration/references/workflows.md +209 -0
  344. package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +0 -3
  345. package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +0 -7
  346. package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +0 -3
  347. package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +0 -3
  348. package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +0 -3
  349. package/app/.next/server/chunks/lib_051fv4x._.js +0 -111
  350. package/app/.next/server/chunks/lib_07adeq3._.js +0 -111
  351. package/app/.next/server/chunks/ssr/_0k_7i66._.js +0 -131
  352. package/app/.next/server/chunks/ssr/_1flnty7._.js +0 -23
  353. package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +0 -3
  354. package/app/.next/static/chunks/0qbtymorcz-l9.js +0 -3
  355. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_buildManifest.js +0 -0
  356. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_clientMiddlewareManifest.js +0 -0
  357. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_ssgManifest.js +0 -0
@@ -0,0 +1,30 @@
1
+ module.exports=[90027,e=>{"use strict";var t=e.i(62349);let n=["active","ended","all"],a=["implementation","revision"],r=`
2
+ SELECT b.*, bot.name AS agent_name, bot.agent AS agent_runtime, r.id AS origin_request_id, c.id AS origin_conversation_id,
3
+ c.type AS conversation_type, c.bot_id AS conversation_bot_id, tb.name AS thread_agent_name, g.name AS group_name,
4
+ r.intent AS request_intent, r.execution_kind AS request_kind, r.state AS request_state,
5
+ r.source_conversation_id AS request_conversation_id, r.target_agent_id AS request_target_agent_id,
6
+ sa.launch_snapshot AS source_snapshot, sa.finished_at AS source_finished_at,
7
+ (SELECT MAX(COALESCE(ra.finished_at, ra.started_at)) FROM work_attempts ra WHERE ra.resumed_session_binding_id = b.id) AS resumed_last_at
8
+ FROM session_bindings b
9
+ JOIN bots bot ON bot.id = b.agent_id
10
+ LEFT JOIN work_attempts sa ON sa.id = b.source_attempt_id
11
+ LEFT JOIN work_requests r ON r.id = COALESCE(b.request_id, sa.request_id)
12
+ LEFT JOIN conversations c ON c.id = COALESCE(b.conversation_id, r.source_conversation_id)
13
+ LEFT JOIN bots tb ON tb.id = c.bot_id
14
+ LEFT JOIN groups g ON g.id = c.group_id
15
+ `;function i(e,t){let n=e?.[t];return"string"==typeof n&&n.trim().length>0?n:null}function s(e){let t=e.origin_conversation_id;return t?"group"===e.conversation_type?{id:t,kind:"group",label:e.group_name?`Group ${e.group_name}`:"Group thread",thread_agent_id:null}:"bot"===e.conversation_type&&e.conversation_bot_id?{id:t,kind:"direct",label:e.thread_agent_name?`${e.thread_agent_name} thread`:"Agent thread",thread_agent_id:e.thread_agent_name?e.conversation_bot_id:null}:{id:t,kind:"agent_api",label:"Agent API conversation",thread_agent_id:null}:null}function _(e){var n;let r,_=null;try{_=e.source_snapshot?JSON.parse(e.source_snapshot):null}catch{}let o=s(e),d=null===e.released_at?"active":"ended",u=((r=(e.request_intent??"").split("\n").map(e=>e.trim()).find(e=>e.length>0))?r.length>80?`${r.slice(0,79).trimEnd()}…`:r:null)??(o?.kind==="group"?o.label:null)??`${e.agent_name} \xb7 ${n=e.created_at,`${new Date(n).toISOString().slice(0,16).replace("T"," ")} UTC`}`;return{ref:e.id,agent:{id:e.agent_id,name:e.agent_name,adapter:e.adapter,transport:i(_,"transport")},title:u,status:d,resumable:null===e.released_at&&null!==e.request_id&&null!==e.request_kind&&a.includes(e.request_kind)&&e.request_target_agent_id===e.agent_id&&(e.conversation_id??"")===(e.request_conversation_id??"")&&e.adapter===(0,t.resolveAgent)({agent:e.agent_runtime}).agent,created_at:e.created_at,ended_at:e.released_at,last_activity_at:Math.max(e.created_at,e.released_at??0,e.source_finished_at??0,e.resumed_last_at??0),origin:{conversation:o,work_request:e.origin_request_id&&e.request_kind&&e.request_state?{id:e.origin_request_id,execution_kind:e.request_kind,state:e.request_state}:null},context:{workspace:i(_,"cwd"),deck:i(_,"deck")}}}function o(e,t){return t.last_activity_at-e.last_activity_at||t.created_at-e.created_at||(e.ref<t.ref?-1:+(e.ref>t.ref))}function d(e,t,n){return e.prepare(`${r} WHERE b.id = ? AND b.agent_id = ?`).get(n,t)}e.s(["agentExists",0,function(e,t){return!!e.prepare("SELECT 1 FROM bots WHERE id = ?").get(t)},"conversationRef",0,function(e,t){let n=e.prepare(`
16
+ SELECT c.id AS origin_conversation_id, c.type AS conversation_type, c.bot_id AS conversation_bot_id,
17
+ tb.name AS thread_agent_name, g.name AS group_name
18
+ FROM conversations c
19
+ LEFT JOIN bots tb ON tb.id = c.bot_id
20
+ LEFT JOIN groups g ON g.id = c.group_id
21
+ WHERE c.id = ?
22
+ `).get(t);return n?s(n):null},"getAgentSession",0,function(e,t,n){let a=d(e,t,n);if(!a)return;let r=e.prepare(`
23
+ SELECT a.attempt_number, a.kind, a.request_id, a.outcome, a.started_at, a.finished_at,
24
+ CASE WHEN a.id = ? THEN 'source' ELSE 'resume' END AS role
25
+ FROM work_attempts a
26
+ WHERE a.id = ? OR a.resumed_session_binding_id = ?
27
+ ORDER BY a.started_at ASC, a.id ASC
28
+ `).all(a.source_attempt_id,a.source_attempt_id,a.id);return{..._(a),attempts:r}},"isSessionFilter",0,function(e){return"string"==typeof e&&n.includes(e)},"listAgentSessions",0,function(e,t,n="all"){return e.prepare(`${r} WHERE b.agent_id = ? ${"active"===n?"AND b.released_at IS NULL":"ended"===n?"AND b.released_at IS NOT NULL":""}`).all(t).map(_).sort(o)},"sessionDebugExternalId",0,function(e,t,n){return d(e,t,n)?.external_session_id},"sessionTitle",0,function(e,t,n){let a=d(e,t,n);return a?_(a).title:null}])}];
29
+
30
+ //# sourceMappingURL=lib_session-catalog_ts_1i7f38f._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0sq4frf._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__03186rx._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},13199,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/exchanges/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/exchanges/page.tsx","default")},45310,a=>{"use strict";var b=a.i(13199);a.n(b)},38245,function(a){a.n(a.i(45310))},6675,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(43619)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=["",{children:["exchanges",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(38245)),"[project]/app/exchanges/page.tsx"]},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],"not-found":[f,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],k=a.r.bind(a),l=a.l.bind(a),m=(0,c.createAppPageEntrypoint)({tree:j,page:"/exchanges/page",pathname:"/exchanges",require:k,loadChunk:l,interopDefault:d.interopDefault}),n=m.__next_app__,o=m.routeModule,p=m.handler;a.s(["__next_app__",0,n,"handler",0,p,"routeModule",0,o],8469),a.i(8469);var q=a.i(22922);a.s(["ClientPageRoot",()=>q.ClientPageRoot,"ClientSegmentRoot",()=>q.ClientSegmentRoot,"Fragment",()=>q.Fragment,"HTTPAccessFallbackBoundary",()=>q.HTTPAccessFallbackBoundary,"InstantValidation",()=>q.InstantValidation,"LayoutRouter",()=>q.LayoutRouter,"LoadingBoundaryProvider",()=>q.LoadingBoundaryProvider,"Postpone",()=>q.Postpone,"RenderFromTemplateContext",()=>q.RenderFromTemplateContext,"RootLayoutBoundary",()=>q.RootLayoutBoundary,"SegmentViewNode",()=>q.SegmentViewNode,"SegmentViewStateNode",()=>q.SegmentViewStateNode,"__next_app__",0,n,"captureOwnerStack",()=>q.captureOwnerStack,"collectPrefetchHints",()=>q.collectPrefetchHints,"collectSegmentData",()=>q.collectSegmentData,"createElement",()=>q.createElement,"createMetadataComponents",()=>q.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>q.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>q.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>q.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>q.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>q.createTemporaryReferenceSet,"decodeAction",()=>q.decodeAction,"decodeFormState",()=>q.decodeFormState,"decodeReply",()=>q.decodeReply,"handler",0,p,"isEmptyHTMLPrelude",()=>q.isEmptyHTMLPrelude,"patchFetch",()=>q.patchFetch,"preconnect",()=>q.preconnect,"preloadFont",()=>q.preloadFont,"preloadStyle",()=>q.preloadStyle,"prerender",()=>q.prerender,"prerenderToNodeStream",()=>q.prerenderToNodeStream,"renderToPipeableStream",()=>q.renderToPipeableStream,"renderToReadableStream",()=>q.renderToReadableStream,"routeModule",0,o,"serverHooks",()=>q.serverHooks,"taintObjectReference",()=>q.taintObjectReference],6675)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__03xw2d9._.js.map
@@ -30,4 +30,4 @@ module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/ap
30
30
  body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
31
  `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("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)},40622,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(33354);let d=a.r(87924);a.r(72131);let e=a.r(51234),f=a.r(57068),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("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)},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)},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
32
32
 
33
- //# sourceMappingURL=%5Broot-of-the-server%5D__1x7o-fe._.js.map
33
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0zzcbqg._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__029oxo_._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1feicqq._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},76684,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/threads/[id]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/threads/[id]/page.tsx","default")},2102,a=>{"use strict";var b=a.i(76684);a.n(b)},34611,function(a){a.n(a.i(2102))},95091,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(43619)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=["",{children:["threads",{children:["[id]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(34611)),"[project]/app/threads/[id]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],"not-found":[f,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],k=a.r.bind(a),l=a.l.bind(a),m=(0,c.createAppPageEntrypoint)({tree:j,page:"/threads/[id]/page",pathname:"/threads/[id]",require:k,loadChunk:l,interopDefault:d.interopDefault}),n=m.__next_app__,o=m.routeModule,p=m.handler;a.s(["__next_app__",0,n,"handler",0,p,"routeModule",0,o],99638),a.i(99638);var q=a.i(22922);a.s(["ClientPageRoot",()=>q.ClientPageRoot,"ClientSegmentRoot",()=>q.ClientSegmentRoot,"Fragment",()=>q.Fragment,"HTTPAccessFallbackBoundary",()=>q.HTTPAccessFallbackBoundary,"InstantValidation",()=>q.InstantValidation,"LayoutRouter",()=>q.LayoutRouter,"LoadingBoundaryProvider",()=>q.LoadingBoundaryProvider,"Postpone",()=>q.Postpone,"RenderFromTemplateContext",()=>q.RenderFromTemplateContext,"RootLayoutBoundary",()=>q.RootLayoutBoundary,"SegmentViewNode",()=>q.SegmentViewNode,"SegmentViewStateNode",()=>q.SegmentViewStateNode,"__next_app__",0,n,"captureOwnerStack",()=>q.captureOwnerStack,"collectPrefetchHints",()=>q.collectPrefetchHints,"collectSegmentData",()=>q.collectSegmentData,"createElement",()=>q.createElement,"createMetadataComponents",()=>q.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>q.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>q.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>q.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>q.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>q.createTemporaryReferenceSet,"decodeAction",()=>q.decodeAction,"decodeFormState",()=>q.decodeFormState,"decodeReply",()=>q.decodeReply,"handler",0,p,"isEmptyHTMLPrelude",()=>q.isEmptyHTMLPrelude,"patchFetch",()=>q.patchFetch,"preconnect",()=>q.preconnect,"preloadFont",()=>q.preloadFont,"preloadStyle",()=>q.preloadStyle,"prerender",()=>q.prerender,"prerenderToNodeStream",()=>q.prerenderToNodeStream,"renderToPipeableStream",()=>q.renderToPipeableStream,"renderToReadableStream",()=>q.renderToReadableStream,"routeModule",0,o,"serverHooks",()=>q.serverHooks,"taintObjectReference",()=>q.taintObjectReference],95091)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1t063pe._.js.map
@@ -0,0 +1,3 @@
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`}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},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"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 f=["queued","extracting","delivering","completed","failed","cancelled"],g=["completed","failed","cancelled"];function h(a){return"ask"===a?"Ask":"Continue"}function i(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 j(a){var b;return a.cancel_requested&&(b=a.state,!g.includes(b))?"Cancelling…":i(a.mode,a.state)}function k(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"}function l(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 m(a){return e(a)}function n(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`}function o(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`}function p(a){return"ask"===a?"Question":"Objective"}function q(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${l(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: ${l(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 r(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 s(a){return`/exchanges?id=${encodeURIComponent(a)}`}function t(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,s,"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",g="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"===g)return`Handoff queued for ${e}'s new session`;return"extract"===g?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===g)return`${e} started a new session`;return"extract"===g?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&f.includes(c.to)?c.to:null;return a?`Now ${i(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,l,"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,r,"formatExchangeTime",0,m,"instructionHeading",0,p,"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(t)},"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,j,"modeLabel",0,h,"outcomeLine",0,q,"participantsLabel",0,o,"sessionActionAvailability",0,function(a){return"ended"===a.status?{available:!1,reason:"Ask and Continue are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask and Continue are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`}},"sessionLabel",0,n,"stateTone",0,k,"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.";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}],35099),a.s(["default",0,function({summary:a,onChanged:e}){let[f,g]=(0,c.useState)(!1),[i,t]=(0,c.useState)(""),u=k(a.state),v=q(a),w=r(a),x=`exchange-${a.id}-title`,y=async()=>{if(!f){g(!0),t("");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);t("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{t("Could not cancel. Try again.")}finally{g(!1),e?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${u} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":x,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:h(a.mode)}),(0,b.jsx)("span",{id:x,className:"exchange-card-title",children:o(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:j(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:n(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:p(a.mode)})," ",l(a.instruction,220)]}),v?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:v}):null,w?(0,b.jsx)("p",{className:"exchange-card-advice",children:w}):null,i?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:i}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",m(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:s(a.id),"aria-label":`Details: ${h(a.mode)} ${o(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:f,onClick:()=>{y()},children:f?"Cancelling…":"Cancel"}):null]})]})}],27828)},63718,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(50944),f=a.i(27828);a.s(["default",0,function(){let a=String((0,e.useParams)().id??""),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null);(0,c.useEffect)(()=>{q.current=new URLSearchParams(window.location.search).get("exchange")},[]),(0,c.useEffect)(()=>{if(!a)return;let b=!1,c=async()=>{try{let[c,d,e]=await Promise.all([fetch(`/api/conversations/${encodeURIComponent(a)}`,{cache:"no-store"}),fetch(`/api/conversations/${encodeURIComponent(a)}/messages`,{cache:"no-store"}),fetch(`/api/exchanges?conversation=${encodeURIComponent(a)}`,{cache:"no-store"})]);if(b)return;if(!c.ok)return void n(404===c.status?"This thread no longer exists.":"Could not load this thread.");let f=await c.json(),g=await d.json().catch(()=>null),i=await e.json().catch(()=>null);if(b)return;let k=f?.details??null,m=Array.isArray(k?.members)?k.members.map(a=>a?.name).filter(Boolean):[];h({label:k?.name?`Group ${k.name}`:"Group thread",members:m}),d.ok&&Array.isArray(g)&&j(g),e.ok&&Array.isArray(i?.exchanges)&&l(i.exchanges),n("")}catch{b||n("Could not load this thread.")}};c();let d=setInterval(c,2e3);return()=>{b=!0,clearInterval(d)}},[a,o]),(0,c.useEffect)(()=>{let a=q.current;if(!a)return;let b=document.getElementById(`exchange-${a}`);b&&(q.current=null,b.scrollIntoView({block:"center"}),b.focus({preventScroll:!0}))},[k]);let r=new Set,s=a=>(0,b.jsx)("li",{className:"msg-status",children:(0,b.jsx)(f.default,{summary:a,onChanged:()=>p(a=>a+1)})},`exchange-${a.id}`),t=a=>{let b=k.filter(b=>!r.has(b.id)&&b.created_at<a).sort((a,b)=>a.created_at-b.created_at||(a.id<b.id?-1:1));return b.forEach(a=>r.add(a.id)),b.map(s)};return(0,b.jsxs)("div",{className:"ledger-page group-thread-page",children:[(0,b.jsxs)("header",{className:"ledger-head",children:[(0,b.jsxs)("nav",{className:"group-thread-nav","aria-label":"Thread navigation",children:[(0,b.jsx)(d.default,{href:"/",className:"cfg-link ledger-back",children:"← Back to chat"}),(0,b.jsx)(d.default,{href:"/exchanges",className:"cfg-link ledger-back",children:"Agent Exchanges"})]}),(0,b.jsx)("h1",{className:"ledger-title",children:g?.label??"Group thread"}),g&&g.members.length>0?(0,b.jsxs)("p",{className:"ledger-sub",children:["With ",g.members.join(", ")]}):null]}),(0,b.jsx)("main",{className:"group-thread-main","aria-label":"Thread",children:m?(0,b.jsxs)("div",{className:"ledger-state",role:"alert",children:[(0,b.jsx)("p",{className:"delete-error",children:m}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>p(a=>a+1),children:"Retry"})]}):g?(0,b.jsxs)("ol",{className:"group-thread-list","aria-label":"Messages and exchanges",children:[i.map(a=>(0,b.jsxs)(c.Fragment,{children:[t(a.created_at),(0,b.jsxs)("li",{className:"user"===a.sender_type?"msg-you":"msg-bot",children:[(0,b.jsx)("div",{className:"user"===a.sender_type?"msg-name msg-name-you":"msg-name",children:"user"===a.sender_type?"You":a.sender_name||"Agent"}),(0,b.jsx)("div",{className:"msg-body group-thread-body",children:a.content.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"").replace(/^\s+/,"")})]})]},a.id)),t(1/0),0===i.length&&0===k.length?(0,b.jsx)("li",{className:"ledger-state",children:"No messages in this thread yet."}):null]}):(0,b.jsx)("p",{className:"ledger-state",role:"status",children:"Loading thread…"})})]})}])},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=_00ysoah._.js.map
@@ -0,0 +1,3 @@
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`}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},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"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 f=["queued","extracting","delivering","completed","failed","cancelled"],g=["completed","failed","cancelled"];function h(a){return"ask"===a?"Ask":"Continue"}function i(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 j(a){var b;return a.cancel_requested&&(b=a.state,!g.includes(b))?"Cancelling…":i(a.mode,a.state)}function k(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"}function l(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 m(a){return e(a)}function n(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`}function o(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`}function p(a){return"ask"===a?"Question":"Objective"}function q(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${l(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: ${l(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 r(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 s(a){return`/exchanges?id=${encodeURIComponent(a)}`}function t(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,s,"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",g="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"===g)return`Handoff queued for ${e}'s new session`;return"extract"===g?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===g)return`${e} started a new session`;return"extract"===g?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&f.includes(c.to)?c.to:null;return a?`Now ${i(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,l,"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,r,"formatExchangeTime",0,m,"instructionHeading",0,p,"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(t)},"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,j,"modeLabel",0,h,"outcomeLine",0,q,"participantsLabel",0,o,"sessionActionAvailability",0,function(a){return"ended"===a.status?{available:!1,reason:"Ask and Continue are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask and Continue are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`}},"sessionLabel",0,n,"stateTone",0,k,"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.";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}],35099),a.s(["default",0,function({summary:a,onChanged:e}){let[f,g]=(0,c.useState)(!1),[i,t]=(0,c.useState)(""),u=k(a.state),v=q(a),w=r(a),x=`exchange-${a.id}-title`,y=async()=>{if(!f){g(!0),t("");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);t("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{t("Could not cancel. Try again.")}finally{g(!1),e?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${u} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":x,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:h(a.mode)}),(0,b.jsx)("span",{id:x,className:"exchange-card-title",children:o(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:j(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:n(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:p(a.mode)})," ",l(a.instruction,220)]}),v?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:v}):null,w?(0,b.jsx)("p",{className:"exchange-card-advice",children:w}):null,i?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:i}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",m(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:s(a.id),"aria-label":`Details: ${h(a.mode)} ${o(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:f,onClick:()=>{y()},children:f?"Cancelling…":"Cancel"}):null]})]})}],27828)},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}}];
2
+
3
+ //# sourceMappingURL=_157wnb_._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[60350,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(71987);function f(a){let b,c=a.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!c)return null;try{b=JSON.parse(c[1])}catch{return null}if(!b||"object"!=typeof b)return null;let d=b,e="string"==typeof d.page?d.page:"string"==typeof d.html?d.html:void 0,f=void 0===e?{}:{page:e,html:e};return"running"===d.state||"stopped"===d.state?{state:d.state,...f}:"done"===d.state&&"string"==typeof d.output?{state:"done",output:d.output,...f}:null}function g(a){return"done"===a.state?a.output??"":"stopped"===a.state?"The command was stopped.":"The command is running"}var h=a.i(36391);function i(a){let b,c=a.match(/^\s*\[draft\]\s*([\s\S]*)$/);if(!c)return null;try{b=JSON.parse(c[1])}catch{return null}if(!b||"object"!=typeof b)return null;let d=b;return"email"!==d.channel&&"slack"!==d.channel||"open"!==d.state&&"sent"!==d.state&&"discarded"!==d.state||"string"!=typeof d.recipient||"string"!=typeof d.body?null:{channel:d.channel,recipient:d.recipient,body:d.body,state:d.state}}function j(a){let b=a.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return b?b[1]:null}var k=a.i(20851),l=a.i(39228),m=a.i(2296),n=a.i(80219),o=a.i(60193),p=a.i(35832);function q(a){return String(a).padStart(2,"0")}function r(a){let b=new Date(a);return`${b.getFullYear()}-${q(b.getMonth()+1)}-${q(b.getDate())} ${q(b.getHours())}:${q(b.getMinutes())}`}function s({deckState:a,onClose:d,onDeleted:e}){let f=(0,c.useId)(),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,q]=(0,c.useState)([]),[t,u]=(0,c.useState)(!1),v=(0,c.useRef)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=!1;return fetch("/api/bots/manage",{cache:"no-store"}).then(async b=>{let c=await b.json().catch(()=>null);if(!a){if(!b.ok||!Array.isArray(c))return void j("string"==typeof c?.error?c.error:"Could not load agents.");h(c)}}).catch(()=>{a||j("Could not load agents.")}),v.current?.focus(),()=>{a=!0}},[]);let y=l.trim().toLowerCase(),z=(g??[]).filter(a=>a.name.toLowerCase().includes(y)),A=z.filter(a=>!a.blocked);return(0,c.useEffect)(()=>{if(t)return;let a=a=>{"Escape"===a.key&&d()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[t,d]),(0,b.jsxs)("div",{className:"modal-scrim manage-scrim",children:[(0,b.jsxs)("div",{ref:x,className:"manage-card",role:"dialog","aria-modal":"true","aria-labelledby":f,onKeyDown:a=>{if("Tab"!==a.key||!x.current)return;let b=Array.from(x.current.querySelectorAll("button:not(:disabled), input:not(:disabled)"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},children:[(0,b.jsxs)("div",{className:"manage-head",children:[(0,b.jsx)("h2",{id:f,className:"delete-title",children:"Manage agents"}),(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:d,children:"Close"})]}),(0,b.jsx)("label",{className:"manage-search-label",htmlFor:`${f}-search`,children:"Filter by name"}),(0,b.jsx)("input",{id:`${f}-search`,ref:v,className:"manage-search",type:"search",value:l,onChange:a=>m(a.target.value),placeholder:"Name contains…"}),(0,b.jsxs)("div",{className:"manage-tools",children:[(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{q(a=>Array.from(new Set([...a,...A.map(a=>a.id)])))},disabled:0===A.length,children:"Select all shown"}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{q([]),v.current?.focus()},disabled:0===n.length,children:"Clear selection"}),(0,b.jsxs)("span",{className:"manage-count","aria-live":"polite",children:[n.length," selected · ",z.length," shown of ",g?.length??0]})]}),i?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:i}):null,g||i?null:(0,b.jsx)("p",{className:"delete-copy",children:"Loading agents…"}),g?(0,b.jsxs)("ul",{className:"manage-list","aria-label":"Agents",children:[0===z.length?(0,b.jsx)("li",{className:"delete-copy",children:"No agents match."}):null,z.map(c=>{let d=`${f}-row-${c.id}`,e=(0,k.isMigratedPending)(c)?"Not selected":(0,k.deckLabel)(c.deck_id??"",a);return(0,b.jsxs)("li",{className:c.blocked?"manage-row is-blocked":"manage-row","data-agent-id":c.id,children:[(0,b.jsx)("input",{id:d,type:"checkbox",checked:n.includes(c.id),disabled:!!c.blocked,onChange:()=>{var a;return a=c.id,void q(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},"aria-describedby":c.blocked?`${d}-reason`:void 0}),(0,b.jsxs)("div",{className:"manage-copy",children:[(0,b.jsxs)("label",{htmlFor:d,className:"manage-name",children:[c.name,c.hidden?(0,b.jsx)("span",{className:"manage-tag",children:"Hidden"}):null]}),(0,b.jsxs)("dl",{className:"manage-meta",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Agent"}),(0,b.jsx)("dd",{children:(0,k.botAgentLabel)(c)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Agent Deck"}),(0,b.jsx)("dd",{children:e})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Source"}),(0,b.jsx)("dd",{children:c.source_provider||"Created here"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Created"}),(0,b.jsx)("dd",{children:r(c.created_at)})]}),c.last_activity?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Last activity"}),(0,b.jsx)("dd",{children:r(c.last_activity)})]}):null]}),c.blocked?(0,b.jsx)("p",{id:`${d}-reason`,className:"manage-reason",children:(0,p.blockedReasonCopy)(c.blocked)}):null]})]},c.id)})]}):null,(0,b.jsxs)("div",{className:"form-actions manage-actions",children:[(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:d,children:"Cancel"}),(0,b.jsxs)("button",{ref:w,type:"button",className:"delete-btn",disabled:0===n.length,onClick:()=>u(!0),children:["Delete selected",n.length>0?` (${n.length})`:""]})]})]}),t?(0,b.jsx)(o.default,{ids:n,onCancel:()=>{u(!1),requestAnimationFrame(()=>w.current?.focus())},onDeleted:e}):null]})}function t({view:a,agentName:c}){if("loading"===a)return(0,b.jsx)("p",{className:"thread-note",role:"status",children:"Loading messages…"});if("error"===a)return(0,b.jsx)("p",{className:"thread-note thread-note-error",role:"alert",children:"Couldn’t load messages. Trying again…"});if("empty"===a){let a={title:`No messages with ${c} yet.`,hint:"Say something below to start the conversation."};return(0,b.jsxs)("div",{className:"thread-empty","data-thread-empty":"",children:[(0,b.jsx)("p",{className:"thread-empty-title",children:a.title}),(0,b.jsx)("p",{className:"thread-empty-hint",children:a.hint})]})}return null}let u={error:"Error"},v=[{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 w(a){let b=String(a??"").trim();if(!b)return null;let c=v.find(a=>a.pattern.test(b));return c?{kind:c.kind,severity:c.severity,title:c.title,recovery:c.recovery,detail:b}:null}function x({failure:a}){let[d,e]=(0,c.useState)("idle"),f=u[a.severity],g=(0,c.useId)();async function h(){try{await navigator.clipboard.writeText(a.detail),e("copied")}catch{e("failed")}}return(0,b.jsxs)("div",{className:`runtime-failure runtime-failure-${a.severity}`,role:"status","aria-labelledby":g,"data-runtime-failure":a.kind,children:[(0,b.jsxs)("p",{className:"runtime-failure-title",id:g,children:[(0,b.jsx)("span",{className:"runtime-failure-severity",children:f}),a.title]}),(0,b.jsx)("p",{className:"runtime-failure-recovery",children:a.recovery}),(0,b.jsxs)("details",{className:"runtime-failure-details",children:[(0,b.jsx)("summary",{children:"Details"}),(0,b.jsx)("code",{className:"runtime-failure-detail",children:a.detail}),(0,b.jsx)("button",{type:"button",className:"runtime-failure-copy",onClick:()=>{h()},children:"copied"===d?"Copied":"failed"===d?"Copy failed":"Copy details"})]})]})}function y(a){if(!a)return"";let b=f(a);if(b)return g(b);let c=w(a);if(c)return c.title;let d=(0,k.deckEventDisplay)(a);return d?`${d.label} ${d.detail}`.replace(/\s+/g," ").trim():a.replace(/\s+/g," ").trim()}let z={blocked:"Needs approval",rejected:"Not started",allowed:"Allowed",denied:"Denied",waiting:"Queued",stopped:"Stopped"};function A({notice:a,onDone:d}){let[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(""),i="blocked"!==a.tone||a.actionable?z[a.tone]:"Blocked",j=async b=>{if(!e&&a.wakeId){f(!0),h("");try{let c=await fetch(`/api/wakes/${a.wakeId}/decision`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({decision:b})});if(!c.ok){let a=await c.json().catch(()=>null);h("string"==typeof a?.error?.message?a.error.message:"The decision could not be recorded.")}}catch{h("The decision could not be recorded.")}finally{f(!1),d()}}};return(0,b.jsxs)("div",{className:`wake-notice wake-notice-${a.tone}`,role:"status","data-wake-notice":a.tone,"data-wake-id":a.wakeId??void 0,children:[(0,b.jsxs)("p",{className:"wake-notice-line",children:[(0,b.jsx)("span",{className:"wake-notice-label",children:i}),a.text]}),a.actionable?(0,b.jsxs)("div",{className:"wake-notice-actions",children:[(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:e,onClick:()=>{j("allow")},children:"Allow"}),(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:e,onClick:()=>{j("deny")},children:"Deny"})]}):null,g?(0,b.jsx)("p",{className:"wake-notice-error",role:"alert",children:g}):null]})}function B(a){return!!a&&"chief-of-staff"===a.name.toLowerCase()}function C(a){return B(a)?0:a.pinned?1:2}function D(a,b,c,d){return a&&b?d-c+(b-a)>15e3?"Stopped":"Heartbeat "+new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(a)):"Stopped"}function E(a){let b=a;for(let a=0;a<2;a++){let a=b.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"");if(a===b)break;b=a}return b.replace(/^\s+/,"")}function F(a){let b=a;for(let a=0;a<4;a++){let a=b.replace(/^\s*\[(?:Message from|From) [^\]]+\]\s*(?:\r?\n)?/,"");if(a===b)break;b=a}return b}function G({message:a,conversationId:d,status:e,onDone:f}){let g=i(F(a.content)),[h,j]=(0,c.useState)(g?.recipient??""),[k,l]=(0,c.useState)(g?.body??""),[m,n]=(0,c.useState)(!1),[o,p]=(0,c.useState)("open"!==e),q=(0,c.useRef)("open"!==e);if(!g)return null;let r="open"!==e||o,s=r?g.recipient:h,t=r?g.body:k,u=async b=>{if(!r&&!q.current&&!m&&("send"!==b||""!==h.trim())){q.current=!0,p(!0),n(!0);try{(await fetch(`/api/conversations/${d}/draft`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:a.id,action:b,recipient:h,body:k})})).ok||(q.current=!1,p(!1))}finally{n(!1),f()}}};return(0,b.jsxs)("div",{className:"draft-card",children:[(0,b.jsx)("div",{className:"draft-title",children:"email"===g.channel?"New Email":"New Slack Message"}),(0,b.jsx)("input",{type:"text","aria-label":"Recipient",value:s,readOnly:r,disabled:m,onChange:a=>{r||j(a.target.value)}}),(0,b.jsx)("textarea",{rows:3,"aria-label":"Draft body",value:t,readOnly:r,disabled:m,onChange:a=>{r||l(a.target.value)}}),"sent"===e?(0,b.jsx)("span",{className:"draft-mark",children:"Sent"}):null,"discarded"===e?(0,b.jsx)("span",{className:"draft-mark",children:"Discarded"}):null,"discarded"!==e?(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:m,onClick:()=>{u("send")},children:"Send"}):null,"open"===e?(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:m,onClick:()=>{u("discard")},children:"Discard"}):null]})}function H({message:a,conversationId:d,status:e,onDone:f}){let g=j(a.content),[h,i]=(0,c.useState)(!1),k=(0,c.useRef)("pending"!==e);if(!g)return null;let l=async b=>{if(!k.current&&!h){k.current=!0,i(!0);try{(await fetch(`/api/conversations/${d}/${b}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:g,messageId:a.id})})).ok||(k.current=!1)}finally{i(!1),f()}}};return"pending"!==e?(0,b.jsx)("span",{className:"draft-mark",children:"approved"===e?"Approved":"Denied"}):(0,b.jsxs)("span",{className:"draft-mark",children:[(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:h,onClick:()=>{l("approve")},children:"Approve"}),(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:h,onClick:()=>{l("deny")},children:"Deny"})]})}function I({names:a}){return 0===a.length?null:(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsxs)("span",{children:[(0,b.jsx)("br",{}),(0,b.jsxs)("a",{className:"file-control",href:`/api/files/${encodeURIComponent(a)}`,download:a,children:["Download ",a]})]},a))})}function J({anchorRef:a,deckState:d,onRetryDecks:e,onClose:f,onCreated:g}){let[h,i]=(0,c.useState)(""),[j,m]=(0,c.useState)(k.DEFAULT_RUNTIME_FORM),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(null);(0,c.useEffect)(()=>{e()},[e]),(0,c.useLayoutEffect)(()=>{let b=()=>{let b=a.current?.getBoundingClientRect();q(function(a,b){let c=Math.min(358,b.width-32),d=Math.max(16,b.width-16-c),e=16,f=16;if(a){f=Math.min(Math.max(a.left,16),d);let c=a.bottom+8;b.height-c-16>=360&&(e=c)}return{top:e,left:f,maxHeight:Math.max(0,b.height-e-16)}}(b?{left:b.left,bottom:b.bottom}:null,{width:window.innerWidth,height:window.innerHeight}))};return b(),window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[a]),(0,c.useEffect)(()=>{s.current?.focus()},[]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),f())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[f]);let t=(0,k.runtimeFormView)(j,d),u=async a=>{if(a.preventDefault(),t.submitDisabled)return;if(!j.deckId.trim())return void o(k.SELECT_DECK_ERROR);o("");let b=await fetch("/api/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,k.newBotSubmitBody)({name:h,...j}))});if(!b.ok){let a=await b.json().catch(()=>null);o("string"==typeof a?.error&&a.error?a.error:"Failed to create agent");return}g()};return(0,b.jsx)("div",{className:"modal-scrim new-agent-scrim",onKeyDown:a=>{if("Tab"!==a.key||!r.current)return;let b=function(a,b,c){if(0===a.length)return null;let d=a[0],e=a[a.length-1],f=null!==b&&a.includes(b);return c?f&&b!==d?null:e:f&&b!==e?null:d}(Array.from(r.current.querySelectorAll('a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])')),document.activeElement,a.shiftKey);b&&(a.preventDefault(),b.focus())},children:(0,b.jsxs)("div",{ref:r,className:"form-card new-agent-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"new-agent-title",style:p??void 0,children:[(0,b.jsx)("div",{className:"kind-row",children:(0,b.jsx)("h2",{id:"new-agent-title",className:"kind-word new-agent-title",children:"New Agent"})}),(0,b.jsxs)("form",{onSubmit:u,className:"bot-form",children:[(0,b.jsxs)("div",{className:"new-agent-body",children:[(0,b.jsx)("label",{htmlFor:"bot-name",children:"Name"}),(0,b.jsx)("input",{ref:s,id:"bot-name",type:"text",value:h,onChange:a=>i(a.target.value),required:!0}),(0,b.jsx)(l.AgentSection,{idPrefix:"bot",variant:"modal",form:j,onChange:a=>{o(""),m(b=>({...b,...a}))},deckState:d,onRetry:e,workdirPlaceholder:"",workdirHint:k.NEW_BOT_WORKDIR_HINT}),n?(0,b.jsx)("p",{className:"form-error",role:"alert",children:n}):null]}),(0,b.jsxs)("div",{className:"form-actions",children:[(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:f,children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"create-btn",disabled:t.submitDisabled,children:"Create"})]})]})]})})}a.s(["default",0,function(){var a;let[q,r]=(0,c.useState)([]),[u,v]=(0,c.useState)(!1),[z,K]=(0,c.useState)(null),L=(0,c.useRef)(!1),[M,N]=(0,c.useState)([]),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)(null),S=(0,c.useRef)(null),[T,U]=(0,c.useState)(""),[V,W]=(0,c.useState)(""),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)([]),[_,aa]=(0,c.useState)(""),ab=(0,c.useRef)(null),ac=(0,c.useRef)(null),[ad,ae]=(0,c.useState)(!1),af=(0,c.useRef)(null),[ag,ah]=(0,c.useState)(!1),[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(null),[am,an]=(0,c.useState)(""),[ao,ap]=(0,c.useState)({}),aq=(0,c.useRef)({}),[ar,as]=(0,c.useState)(null),[at,au]=(0,c.useState)(null),av=(0,c.useRef)(null),aw=(0,c.useRef)(null),[ax,ay]=(0,c.useState)(!1),az=(0,c.useRef)(null),[aA,aB]=(0,c.useState)(""),[aC,aD]=(0,c.useState)(!1),aE=(0,c.useRef)(null),aF=(0,c.useRef)(null),aG=(0,c.useRef)(null),aH=(0,c.useRef)(null),aI=(0,c.useRef)(null),aJ=(0,c.useRef)(null),aK=(0,c.useRef)(null),[aL,aM]=(0,c.useState)([]),[aN,aO]=(0,c.useState)({serverNow:0,fetchedAt:0}),[aP,aQ]=(0,c.useState)(()=>Date.now()),aR=(0,c.useRef)({}),aS=(0,c.useRef)(!1),[aT,aU]=(0,c.useState)(!1),{state:aV,retry:aW}=(0,m.useDeckList)();(0,c.useEffect)(()=>{aS.current||0===q.length||(aS.current=!0,aU(!0))},[q.length]),(0,c.useEffect)(()=>{let a=(0,n.importedBotId)(window.location.search);if(a)return void window.location.replace((0,n.importedConfigPath)(a));let b=Number(new URLSearchParams(window.location.search).get("deleted"));b>0&&window.history.replaceState(null,"","/"),a$().then(()=>{b>0&&aB((0,p.deletedStatusLine)(b))});let c=setInterval(a$,2e3),d=setInterval(()=>aQ(Date.now()),1e3);return()=>{clearInterval(c),clearInterval(d)}},[]),(0,c.useEffect)(()=>{if(L.current||0===q.length||z)return;let a=[...q].filter(a=>!a.hidden).sort((a,b)=>C(a)-C(b))[0]||q[0];L.current=!0,a3(a.id)},[q,z]),(0,c.useEffect)(()=>{if(S.current=z?.id??null,z)return a_(),aK.current&&clearInterval(aK.current),aK.current=setInterval(a_,2e3),()=>{aK.current&&clearInterval(aK.current)}},[z]);let aX=z?q.find(a=>a.id===z.details.id)??z.details:void 0,aY=!!z&&B(aX),aZ=aY?function(a){for(let b=a.length-1;b>=0;b--){let c=f(a[b].content);if(c){if("stopped"===c.state)return null;return c.page||c.html||null}}return null}(M):null;async function a$(){let a=await fetch("/api/bots",{cache:"no-store"}),b=await a.json(),c=Date.parse(a.headers.get("date")||"");aO({serverNow:Number.isNaN(c)?Date.now():c,fetchedAt:Date.now()}),Array.isArray(b)&&(r(b),v(!0))}async function a_(){if(!z)return;let a=z.id,b=null,c=!1,d=fetch(`/api/conversations/${a}`).then(async a=>{let b=await a.json();return a.ok&&Array.isArray(b?.events)?b.events:null}).catch(()=>null);try{let d=await fetch(`/api/conversations/${a}/messages`);b=await d.json(),c=d.ok&&Array.isArray(b)}catch{c=!1}let e=await d;if(S.current===a){let d,f;c&&N(b),e&&P((d=[],f=new Map,e.forEach((a,b)=>{let c="string"==typeof a.data.target_name?a.data.target_name:null;a.requestId&&c&&f.set(a.requestId,c);let g=function(a){switch(a.kind){case"wake_blocked":return"blocked";case"wake_rejected":return"rejected";case"lineage_stopped":return"stopped";case"wake_accepted":return"string"==typeof a.data.reason?"allowed":null;case"request_cancelled":return"grant_denied"===a.data.reason?"denied":null;case"request_queued":return"capacity"===a.data.waiting_for?"waiting":null;default:return null}}(a);if(!g)return;let h=Array.isArray(a.data.actions)?a.data.actions:[],i=null!==a.requestId&&e.slice(b+1).some(b=>b.requestId===a.requestId);if("waiting"===g&&i)return;let j=a.requestId?f.get(a.requestId):void 0,k="denied"===g&&j?`Wake denied: ${j} — no work ran`:"waiting"===g&&j?`Queued: ${j} — waiting for capacity`:a.text;d.push({eventId:a.eventId,wakeId:a.wakeId,tone:g,text:k,actionable:"blocked"===g&&!!a.wakeId&&h.includes("allow")&&h.includes("deny")&&!i,createdAt:a.createdAt})}),d)),R({conversationId:a,status:c?"ready":"error"})}}(0,c.useLayoutEffect)(()=>{let a=aG.current?.parentElement;if(!a)return;let b=aH.current,c=aI.current,d=aJ.current;if(aY&&b&&c&&d){let e=e=>{let f=Math.ceil(b.getBoundingClientRect().height);c.style.height=f+16+e+"px";let g=c.getBoundingClientRect().top-a.getBoundingClientRect().top;d.style.height=Math.max(0,a.clientHeight-g)+"px";let h=b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop;a.scrollTop=Math.max(0,h-g)};e(0);let f=c.nextElementSibling,g=b.getBoundingClientRect().bottom,h=f?f.getBoundingClientRect().top:c.getBoundingClientRect().bottom;g>=h&&e(Math.max(16,Math.ceil(g-h)));return}d&&(d.style.height="0px"),c&&(c.style.height=""),a.scrollTop=a.scrollHeight},[M,aY]),(0,c.useLayoutEffect)(()=>{aM(a=>{if(0===a.length)return a;let b=a.filter(a=>{let b=aR.current[a]??0;return M.some(c=>"bot"===c.sender_type&&c.sender_id===a&&c.created_at>b&&!/^\[(mcp|tool call|tool result)\]/i.test(c.content.trim()))});if(0===b.length)return a;for(let a of b)delete aR.current[a];return a.filter(a=>!b.includes(a))})},[M]);let a0=async a=>{z&&(await fetch(`/api/conversations/${z.id}/messages/${a}/stop`,{method:"POST"}),await a_())},a1=async()=>{z&&(await fetch(`/api/conversations/${z.id}/stop`,{method:"POST"}),await a_())},a2=async(a,b)=>{if(ao[a.id])return void ap(b=>{let c={...b};return delete c[a.id],c});if(aq.current[a.id])return;let c=M.findIndex(b=>b.id===a.id),d=q.find(a=>a.name===b),e=M.slice(c+1).find(a=>"bot"===a.sender_type&&(d?a.sender_id===d.id:a.sender_name===b));if(e){aq.current[a.id]=!0;try{let b=await fetch(`/api/messages/${a.id}/between?other=${encodeURIComponent(e.id)}`),c=await b.json().catch(()=>null);b.ok&&Array.isArray(c)&&c.length>0&&ap(b=>({...b,[a.id]:c}))}finally{delete aq.current[a.id]}}};async function a3(a){let b=q.find(b=>b.id===a);if(!b)return;let c=await fetch(`/api/conversations?botId=${a}`),d=await c.json();ah(!1),aj(!1),d.id!==z?.id&&(N([]),P([])),S.current=d.id,K({id:d.id,details:b})}let a4=async()=>{if(!z)return;let a=aE.current?.files?.[0];if(!a)return;let b=await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error),d.readAsDataURL(a)});if(!b.startsWith("data:image/"))return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:z.details.id,avatar:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,avatar:d.avatar}:a)),K({...z,details:{...z.details,avatar:d.avatar}})},a5=async a=>{if(!a||!z)return;let b=await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error),d.readAsDataURL(a)});if(!b.startsWith("data:image/"))return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:z.details.id,avatar:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,avatar:d.avatar}:a)),K({...z,details:{...z.details,avatar:d.avatar}})},a6=async()=>{if(!z)return;let a=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:z.details.id,avatar:null})});if(!a.ok)return;let b=await a.json();r(a=>a.map(a=>a.id===b.id?{...a,avatar:b.avatar||""}:a)),K({...z,details:{...z.details,avatar:b.avatar||""}})},a7=u&&0===q.length,a8=[...q].filter(a=>!a.hidden).sort((a,b)=>C(a)-C(b)),a9=q.filter(a=>a.hidden),ba=async a=>{let b=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,pinned:+!a.pinned})});if(!b.ok)return;let c=await b.json();r(a=>a.map(a=>a.id===c.id?{...a,...c}:a))},bb=async(a,b)=>{let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,hidden:+!!b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,...d,hidden:+!!d.hidden}:a)),b?requestAnimationFrame(()=>aw.current?.focus()):bf(a.id)},bc=async a=>{(await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,unread:1})})).ok&&r(b=>b.map(b=>b.id===a.id?{...b,unread:1}:b))};(0,c.useEffect)(()=>{if(!at)return;let a=a=>{"Escape"===a.key&&(au(null),at.returnTo?.focus())},b=a=>{av.current&&av.current.contains(a.target)||au(null)};return document.addEventListener("keydown",a),document.addEventListener("pointerdown",b),()=>{document.removeEventListener("keydown",a),document.removeEventListener("pointerdown",b)}},[at]);let bd=async a=>{let b=am.trim();if(al(null),!b||b===a.name)return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,name:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,...d}:a)),z&&z.details.id===d.id&&K({...z,details:{...z.details,...d}})},be=async a=>{let b=a.map(a=>a.id);as(null),ay(!1),aB((0,p.deletedStatusLine)(b.length)),requestAnimationFrame(()=>az.current?.focus()),r(a=>a.filter(a=>!b.includes(a.id))),z&&b.includes(z.details.id)&&(K(null),N([]),P([])),await a$()},bf=(a,b=30)=>{requestAnimationFrame(()=>{let c=document.querySelector(`[data-open-bot="${a}"]`);c?c.focus():b>0&&bf(a,b-1)})},bg=(a=!0)=>{let b=at?.returnTo;au(null),a&&b&&requestAnimationFrame(()=>{b.isConnected&&b.focus()})},bh=(a,b)=>{a.preventDefault(),au({bot:b,x:a.clientX,y:a.clientY,returnTo:a.currentTarget.querySelector("[data-open-bot]")})},bi=(a,c)=>(0,b.jsx)("input",{className:"bot-name","aria-label":`Rename ${a.name}`,value:am,autoFocus:!0,onChange:a=>an(a.target.value),onBlur:()=>bd(a),onKeyDown:b=>{"Enter"===b.key&&(b.preventDefault(),b.target.blur(),bf(a.id)),"Escape"===b.key&&(al(null),bf(a.id))},style:c}),bj=(a,c)=>(0,b.jsx)("button",{type:"button",className:"bot-name row-open","data-open-bot":a.id,"aria-current":z?.details.id===a.id?"true":void 0,onClick:()=>a3(a.id),style:c,children:a.name}),bk=a=>(0,b.jsx)("button",{type:"button",className:"row-actions","aria-haspopup":"menu","aria-expanded":at?.bot.id===a.id,"aria-label":`Actions for ${a.name}`,title:`Actions for ${a.name}`,onClick:b=>{var c;let d;au({bot:a,x:(d=(c=b.currentTarget).getBoundingClientRect()).left,y:d.bottom+4,returnTo:c})},children:"⋯"}),bl=a=>(0,b.jsxs)("div",{className:"row-tip",children:[a.unread&&z?.details.id!==a.id?(0,b.jsx)("div",{className:"card-role",children:"Unread"}):null,(0,b.jsx)("div",{className:"card-role",children:D(a.last_seen,aN.serverNow,aN.fetchedAt,aP)})]}),bm=a=>(0,b.jsxs)("div",{className:z?.details.id===a.id?"bot-row is-open":"bot-row",onContextMenu:b=>bh(b,a),children:[(0,b.jsxs)("span",{className:"mark-avatar mark-avatar-sm",children:[(0,b.jsx)(h.default,{bot:a,size:36,title:`${a.name} avatar`}),aL.includes(a.id)?(0,b.jsx)("span",{className:"mark-dot"}):null]}),(0,b.jsxs)("div",{className:"bot-copy",children:[ak===a.id?bi(a):bj(a),y(a.latest)?(0,b.jsx)("div",{className:"bot-preview",children:y(a.latest)}):null,(0,b.jsx)(l.RosterRuntimeLine,{bot:a,state:aV})]}),bk(a),bl(a)]},a.id),bn=X?q.filter(a=>a.name.toLowerCase().includes(V.toLowerCase())):[],bo=a=>{let b=ab.current,c=b?b.selectionStart:T.length,d=T.slice(0,c).lastIndexOf("@");if(d<0)return;U(T.slice(0,d)+"@"+a+" "+T.slice(c)),Y(!1);let e=d+a.length+2;requestAnimationFrame(()=>{b?.focus(),b?.setSelectionRange(e,e)})},bp=a=>{if(0===a.length)return;let b=6-Z.length;a.length>b?aa("Up to six attachments."):aa("");let c=a.slice(0,Math.max(b,0));0!==c.length&&$(a=>[...a,...c.map((b,c)=>({id:b.name+"-"+a.length+"-"+c+"-"+b.size,name:b.name}))])},bq=async()=>{let a=Z.map(a=>a.name),b=T.trim();if(!b&&0===a.length||!z)return;let c=[b,...a].filter(a=>a.length>0).join("\n"),d=[z.details.id],e=M.reduce((a,b)=>Math.max(a,b.created_at||0),0);for(let a of d)aR.current[a]=e;aM(a=>Array.from(new Set([...a,...d])));let f=[...q].sort((a,b)=>b.name.length-a.name.length).find(a=>(function(a,b){let c="@"+b,d=0;for(;d<a.length;){let b=a.indexOf(c,d);if(b<0)break;let e=a[b+c.length];if(!e||/[\s.,!?:;]/.test(e))return!0;d=b+c.length}return!1})(c,a.name));if(!(await fetch(`/api/conversations/${z.id}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:c,mentionedBotId:f?.id,idempotencyKey:crypto.randomUUID()})})).ok){for(let a of d)delete aR.current[a];aM(a=>a.filter(a=>!d.includes(a)))}U(""),$([]),aa(""),Y(!1),a_()},br=z?(a=z.id,M.length>0?"messages":Q&&Q.conversationId===a&&"loading"!==Q.status?"error"===Q.status?"error":"empty":"loading"):"loading",bs=z?(0,b.jsx)(t,{view:br,agentName:z.details.name}):null,bt=(z?.details.title||"").trim(),bu=z?.details.color,bv=new Set,bw=a=>(0,b.jsx)("div",{className:"msg-status",children:(0,b.jsx)(A,{notice:a,onDone:()=>{a_()}})},a.eventId),bx=()=>{ae(!1),requestAnimationFrame(()=>af.current?.focus())};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"field",inert:ad,children:[(0,b.jsxs)("aside",{className:"rail",children:[(0,b.jsxs)("div",{className:"brand",children:[(0,b.jsx)("div",{className:aT?"logo-shape is-settling":"logo-shape",children:(0,b.jsx)(e.default,{src:"/brand/botmancers-logo-filled-256.png",alt:"",width:40,height:40})}),(0,b.jsx)("div",{className:"logo-word",children:"botmancers"})]}),(0,b.jsxs)("div",{className:"bar",children:[(0,b.jsx)("button",{ref:af,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>ae(!0),children:"New"}),a7?null:(0,b.jsx)("button",{ref:az,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>{aB(""),ay(!0)},children:"Manage agents"}),(0,b.jsx)(d.default,{href:"/settings",className:"add-btn settings-link",children:"Settings"})]}),(0,b.jsx)("p",{className:"roster-status",role:"status",children:aA}),a7?null:(0,b.jsx)("div",{className:at?"roster menu-open":"roster",children:a8.map(a=>B(a)?(0,b.jsxs)("div",{className:"card",onContextMenu:b=>bh(b,a),children:[(0,b.jsxs)("div",{className:"row-head",children:[(0,b.jsxs)("span",{className:"mark-avatar",children:[(0,b.jsx)(h.default,{bot:a,size:44,title:`${a.name} avatar`}),aL.includes(a.id)?(0,b.jsx)("span",{className:"mark-dot"}):null]}),ak===a.id?bi(a,{color:"#D5D0C3",fontSize:26}):bj(a,{fontSize:26}),bk(a)]}),y(a.latest)?(0,b.jsx)("div",{className:"bot-preview",children:y(a.latest)}):null,(0,b.jsx)(l.RosterRuntimeLine,{bot:a,state:aV}),bl(a)]},a.id):bm(a))}),a9.length>0?(0,b.jsxs)("div",{className:at?"roster menu-open":"roster",children:[(0,b.jsx)("button",{ref:aw,type:"button",className:"pin-word","aria-expanded":aC,onClick:()=>aD(a=>!a),children:"Hidden"}),aC?a9.map(bm):null]}):null]}),(0,b.jsx)("section",{className:"pane",children:z?(0,b.jsxs)("div",{className:"thread",children:[(0,b.jsxs)("div",{className:"thread-bar",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",className:"thread-name",style:bu?{color:bu}:void 0,onClick:()=>{ah(!0),aj(!1)},children:z.details.name}),bt?(0,b.jsx)("div",{className:"thread-role",children:bt}):null,(0,b.jsx)("div",{className:"thread-role",children:aL.includes(z.details.id)?"Working":"Not working"}),(0,b.jsx)("div",{className:"thread-role",children:D((aX??z.details).last_seen,aN.serverNow,aN.fetchedAt,aP)}),ag?(0,b.jsx)("button",{type:"button",className:"avatar-pic",onClick:()=>aj(!0),"aria-label":"Picture",children:z.details.avatar?(0,b.jsx)("img",{src:z.details.avatar,alt:""}):(0,b.jsx)(h.default,{bot:z.details,size:46})}):null]}),(0,b.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:16,alignItems:"flex-start"},children:[(0,b.jsx)(d.default,{href:`/bots/${z.details.id}/config`,className:"attach-word",style:{textDecoration:"none"},children:"Config"}),(0,b.jsx)("button",{type:"button",className:"attach-word",title:"Stop delegated turns in this thread",onClick:()=>{a1()},children:"Stop"})]})]}),ai?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"avatar-step avatar-desk",children:[(0,b.jsx)("span",{className:"kind-word",children:"Agent"}),(0,b.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,b.jsxs)("label",{className:"kind-word",children:["Upload",(0,b.jsx)("input",{ref:aE,type:"file",accept:"image/*,.svg"})]}),(0,b.jsx)("button",{type:"button",className:"create-btn",onClick:a4,children:"Set avatar"})]}),(0,b.jsxs)("div",{className:"avatar-step avatar-phone",children:[(0,b.jsx)("button",{type:"button",className:"kind-word",onClick:()=>aF.current?.click(),children:"Gallery"}),(0,b.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,b.jsx)("button",{type:"button",className:"kind-word",onClick:a6,children:"Remove Photo"}),(0,b.jsx)("input",{ref:aF,type:"file",accept:"image/*,.svg",onChange:a=>{let b=a.target.files?.[0];a.target.value="",a5(b)}})]})]}):null,(0,b.jsxs)("div",{className:"messages-wrap",children:[(0,b.jsxs)("div",{className:"messages",children:[aY?null:bs,M.map(a=>{var d;let e,h,l=O.filter(b=>!bv.has(b.eventId)&&b.createdAt<a.created_at);l.forEach(a=>bv.add(a.eventId));let m="user"===a.sender_type,n=m?null:w(F(a.content));if(n)return(0,b.jsxs)(c.Fragment,{children:[l.map(bw),(0,b.jsx)("div",{className:"msg-status",children:(0,b.jsx)(x,{failure:n})})]},a.id);let o=(d=F(a.content),e=[],{text:E(d.replace(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g,a=>(e.push(a.replace(/\s/g,"")),""))),images:e}),p=o.images.map(a=>(0,b.jsx)("img",{src:a,alt:"",style:{display:"block",width:64,height:64}},a.slice(0,48))),q=m?void 0:z.details.color,r=m?null:f(a.content),s=m||r?null:i(F(a.content)),t=m||r?null:j(a.content),u=m||r?[]:function(a){let b=[];for(let c of a.split("\n")){let a=c.match(/^\s*\[file\]\s*(\S+)\s*$/i);a&&!b.includes(a[1])&&b.push(a[1])}return b}(a.content),v=m||r?null:(h=o.text.match(/^\s*\[Handing off to ([^\]]+)\]/))&&h[1].trim()||null,y=a.draftStatus??(s?"open":null),A=a.approvalStatus??(t?"pending":null);return(0,b.jsxs)(c.Fragment,{children:[l.map(bw),(0,b.jsxs)("div",{className:m?"msg-you":"msg-bot",ref:r&&"running"===r.state?aH:void 0,children:[(0,b.jsx)("div",{className:m?"msg-name msg-name-you":"msg-name",style:q?{color:q}:void 0,children:m?"You":a.sender_name||z.details.name}),r?(0,b.jsxs)("div",{className:"msg-body",children:[g(r),"running"===r.state?(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)("button",{type:"button",className:"attach-word",style:{font:"inherit"},onClick:b=>{b.preventDefault(),b.stopPropagation(),a0(a.id)},children:"Stop"})]}):null]}):s&&y?(0,b.jsx)("div",{className:"msg-body",children:(0,b.jsx)(G,{message:a,conversationId:z.id,status:y,onDone:()=>{a_()}},a.id+y)}):(0,b.jsxs)("div",{className:"msg-body",onClick:v?()=>{a2(a,v)}:void 0,title:v?"Show the replies between this handoff and the reply":void 0,style:v?{cursor:"pointer"}:void 0,children:[function(a,c){let d=String(a??"").split("\n");if(!d.some(a=>null!==(0,k.deckEventDisplay)(a)))return a;let e=[];return d.forEach((a,d)=>{d>0&&e.push((0,b.jsx)("br",{},c+"-br-"+d));let f=(0,k.deckEventDisplay)(a);f?e.push((0,b.jsxs)("span",{className:"deck-event",children:[(0,b.jsx)("span",{className:"deck-event-label",children:f.label}),f.detail?" "+f.detail:""]},c+"-"+d)):e.push((0,b.jsx)("span",{children:a},c+"-"+d))}),e}(o.text,a.id),p,t&&A?(0,b.jsx)(H,{message:a,conversationId:z.id,status:A,onDone:()=>{a_()}},a.id+A):null,(0,b.jsx)(I,{names:u})]}),ao[a.id]?(0,b.jsx)("div",{className:"msg-body",children:ao[a.id].map(a=>(0,b.jsx)("div",{children:(a.sender_name||"Agent")+": "+E(a.content)},a.id))}):null]})]},a.id)}),O.filter(a=>!bv.has(a.eventId)).map(bw),(0,b.jsx)("div",{ref:aJ}),(0,b.jsx)("div",{ref:aG})]}),aY?(0,b.jsxs)("div",{className:"computer-float",children:[(0,b.jsxs)("div",{className:"computer-top",children:[(0,b.jsxs)("span",{className:"computer-lights","aria-hidden":"true",children:[(0,b.jsx)("span",{className:"computer-light computer-light-red"}),(0,b.jsx)("span",{className:"computer-light computer-light-yellow"}),(0,b.jsx)("span",{className:"computer-light computer-light-green"})]}),(0,b.jsxs)("span",{className:"computer-teach",children:[(0,b.jsxs)("span",{className:"computer-teach-pill",children:[(0,b.jsx)("span",{className:"computer-teach-mark","aria-hidden":"true"}),"Teach a task"]}),(0,b.jsx)("span",{className:"computer-expand","aria-hidden":"true",children:(0,b.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",children:(0,b.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,b.jsx)("div",{className:"messages"===br?"computer-band":"computer-band computer-band-note",ref:aI,children:bs}),(0,b.jsxs)("div",{className:"computer-desk",children:[aZ?(0,b.jsx)("iframe",{className:"computer-page",sandbox:"",srcDoc:aZ,tabIndex:-1}):null,(0,b.jsxs)("div",{className:"computer-dock",children:[(0,b.jsx)("img",{src:"/computer/dock-chrome.png",alt:""}),(0,b.jsx)("img",{src:"/computer/dock-gray.png",alt:""}),(0,b.jsx)("img",{src:"/computer/dock-terminal.png",alt:""})]})]})]}):null]}),(0,b.jsxs)("div",{className:"composer",onPaste:a=>{let b=[],c=a.clipboardData.files;if(c&&c.length>0)b.push(...Array.from(c));else for(let c of Array.from(a.clipboardData.items)){if("file"!==c.kind)continue;let a=c.getAsFile();a&&b.push(a)}0!==b.length&&(a.preventDefault(),bp(b))},children:[X&&bn.length>0?(0,b.jsx)("div",{className:"mention-list",children:bn.map(a=>(0,b.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),bo(a.name)},children:["@",a.name]},a.id))}):null,(0,b.jsxs)("div",{className:"composer-box",children:[_?(0,b.jsx)("p",{className:"attach-error",children:_}):null,Z.length>0?(0,b.jsx)("div",{className:"attach-names",children:Z.map(a=>(0,b.jsx)("span",{children:a.name},a.id))}):null,(0,b.jsx)("textarea",{ref:ab,rows:2,value:T,onChange:a=>{var b,c;let d,e;U(a.target.value),b=a.target.value,c=a.target.selectionStart,(e=(d=b.slice(0,c)).lastIndexOf("@"))<0||/\s/.test(d.slice(e+1))?Y(!1):(W(d.slice(e+1)),Y(!0))},onKeyDown:a=>{if("Enter"===a.key&&!a.shiftKey){if(a.preventDefault(),X&&bn.length>0)return void bo(bn[0].name);bq()}},placeholder:"Say something"})]}),(0,b.jsx)("input",{ref:ac,className:"attach-input",type:"file",multiple:!0,onChange:a=>{bp(Array.from(a.target.files||[])),a.target.value=""}}),(0,b.jsx)("button",{type:"button",className:"attach-word",onClick:()=>ac.current?.click(),children:"Attach"}),(0,b.jsx)("button",{type:"button",className:"send-btn",onClick:bq,children:"Send"})]})]}):a7?(0,b.jsxs)("div",{className:"welcome",children:[(0,b.jsx)(e.default,{className:"welcome-mark",src:"/brand/botmancers-logo-outline-256.png",alt:"Botmancers",width:144,height:144,priority:!0}),(0,b.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})]}):(0,b.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})}),ar?(0,b.jsx)(o.default,{ids:[ar.id],onCancel:()=>{bf(ar.id),as(null)},onDeleted:a=>{be(a)}}):null,ax?(0,b.jsx)(s,{deckState:aV,onClose:()=>{ay(!1),requestAnimationFrame(()=>az.current?.focus())},onDeleted:a=>{be(a)}}):null,at?(0,b.jsxs)("div",{ref:av,className:"row-menu",role:"menu","aria-label":`Actions for ${at.bot.name}`,style:{left:at.x,top:at.y},onPointerDown:a=>a.stopPropagation(),onClick:a=>a.stopPropagation(),onContextMenu:a=>a.preventDefault(),onKeyDown:a=>{let b=Array.from(a.currentTarget.querySelectorAll("[role=menuitem]")),c=b.indexOf(document.activeElement),d=c=>{a.preventDefault(),b[(c+b.length)%b.length]?.focus()};"ArrowDown"===a.key?d(c+1):"ArrowUp"===a.key?d(c-1):"Home"===a.key?d(0):"End"===a.key?d(b.length-1):"Tab"===a.key&&(a.preventDefault(),bg())},children:[(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,autoFocus:!0,onClick:a=>{a.stopPropagation(),bg(),ba(at.bot)},children:at.bot.pinned?"Unpin":"Pin"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bg(),bc(at.bot)},children:"Mark as Unread"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bg(!1),al(at.bot.id),an(at.bot.name)},children:"Rename Agent"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bg(!1),bb(at.bot,!at.bot.hidden)},children:at.bot.hidden?"Unhide":"Hide from sidebar"}),(0,b.jsx)(d.default,{role:"menuitem",tabIndex:-1,href:`/bots/${at.bot.id}/config`,onClick:()=>au(null),children:"Config"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bg(!1),as(at.bot)},children:"Delete agent…"})]}):null]}),ad&&(0,b.jsx)(J,{anchorRef:af,deckState:aV,onRetryDecks:aW,onClose:bx,onCreated:()=>{a$(),bx()}})]})}],60350)},67161,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return v}});let d=a.r(33354),e=a.r(46058),f=a.r(87924),g=e._(a.r(72131)),h=d._(a.r(35112)),i=d._(a.r(58018)),j=a.r(94915),k=a.r(345),l=a.r(4486),m=a.r(53773),n=d._(a.r(2305)),o=a.r(8591),p={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 q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=g.useEffect,t=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:t,onLoadingCompleteRef:u,setBlurComplete:v,setShowAltText:w,sizesInput:x,onLoad:y,onError:z,...A},B)=>{let C=(0,g.useRef)(!1),D=(0,g.useRef)(null);s(()=>{let{current:a}=C,{current:b}=D;a||null===b||(z&&(b.src=b.src),b.complete&&q(b,l,t,u,v,n,x),C.current=!0)},[a,l,t,u,z,n,x]);let E=(0,o.useMergedRef)(B,D);return(0,f.jsx)("img",{...A,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:E,onLoad:a=>{q(a.currentTarget,l,t,u,v,n,x)},onError:a=>{w(!0),"empty"!==l&&v(!0),z&&z(a)}})});function u({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let v=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,s]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(t,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:s,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(u,{isAppRouter:!c,imgAttributes:x}):null]})});("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)},33095,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(33354),g=a.r(94915),h=a.r(67161),i=f._(a.r(2305));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.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[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},71987,(a,b,c)=>{b.exports=a.r(33095)},92966,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HeadManagerContext},58018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(33354),g=a.r(46058),h=a.r(87924),i=g._(a.r(72131)),j=f._(a.r(94613)),k=a.r(92966);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("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)},4486,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ImageConfigContext},53773,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.RouterContext},35444,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},2305,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(35444),e=a.r(68063);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//"))if(b.includes("/_next/static/immutable")&&!(0,e.getAssetToken)())h=void 0;else{let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
1
+ module.exports=[60350,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(71987);function f(a){let b,c=a.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!c)return null;try{b=JSON.parse(c[1])}catch{return null}if(!b||"object"!=typeof b)return null;let d=b,e="string"==typeof d.page?d.page:"string"==typeof d.html?d.html:void 0,f=void 0===e?{}:{page:e,html:e};return"running"===d.state||"stopped"===d.state?{state:d.state,...f}:"done"===d.state&&"string"==typeof d.output?{state:"done",output:d.output,...f}:null}function g(a){return"done"===a.state?a.output??"":"stopped"===a.state?"The command was stopped.":"The command is running"}var h=a.i(36391);function i(a){let b,c=a.match(/^\s*\[draft\]\s*([\s\S]*)$/);if(!c)return null;try{b=JSON.parse(c[1])}catch{return null}if(!b||"object"!=typeof b)return null;let d=b;return"email"!==d.channel&&"slack"!==d.channel||"open"!==d.state&&"sent"!==d.state&&"discarded"!==d.state||"string"!=typeof d.recipient||"string"!=typeof d.body?null:{channel:d.channel,recipient:d.recipient,body:d.body,state:d.state}}function j(a){let b=a.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return b?b[1]:null}var k=a.i(20851),l=a.i(39228),m=a.i(2296),n=a.i(80219),o=a.i(60193),p=a.i(35832);function q(a){return String(a).padStart(2,"0")}function r(a){let b=new Date(a);return`${b.getFullYear()}-${q(b.getMonth()+1)}-${q(b.getDate())} ${q(b.getHours())}:${q(b.getMinutes())}`}function s({deckState:a,onClose:d,onDeleted:e}){let f=(0,c.useId)(),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,q]=(0,c.useState)([]),[t,u]=(0,c.useState)(!1),v=(0,c.useRef)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=!1;return fetch("/api/bots/manage",{cache:"no-store"}).then(async b=>{let c=await b.json().catch(()=>null);if(!a){if(!b.ok||!Array.isArray(c))return void j("string"==typeof c?.error?c.error:"Could not load agents.");h(c)}}).catch(()=>{a||j("Could not load agents.")}),v.current?.focus(),()=>{a=!0}},[]);let y=l.trim().toLowerCase(),z=(g??[]).filter(a=>a.name.toLowerCase().includes(y)),A=z.filter(a=>!a.blocked);return(0,c.useEffect)(()=>{if(t)return;let a=a=>{"Escape"===a.key&&d()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[t,d]),(0,b.jsxs)("div",{className:"modal-scrim manage-scrim",children:[(0,b.jsxs)("div",{ref:x,className:"manage-card",role:"dialog","aria-modal":"true","aria-labelledby":f,onKeyDown:a=>{if("Tab"!==a.key||!x.current)return;let b=Array.from(x.current.querySelectorAll("button:not(:disabled), input:not(:disabled)"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},children:[(0,b.jsxs)("div",{className:"manage-head",children:[(0,b.jsx)("h2",{id:f,className:"delete-title",children:"Manage agents"}),(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:d,children:"Close"})]}),(0,b.jsx)("label",{className:"manage-search-label",htmlFor:`${f}-search`,children:"Filter by name"}),(0,b.jsx)("input",{id:`${f}-search`,ref:v,className:"manage-search",type:"search",value:l,onChange:a=>m(a.target.value),placeholder:"Name contains…"}),(0,b.jsxs)("div",{className:"manage-tools",children:[(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{q(a=>Array.from(new Set([...a,...A.map(a=>a.id)])))},disabled:0===A.length,children:"Select all shown"}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{q([]),v.current?.focus()},disabled:0===n.length,children:"Clear selection"}),(0,b.jsxs)("span",{className:"manage-count","aria-live":"polite",children:[n.length," selected · ",z.length," shown of ",g?.length??0]})]}),i?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:i}):null,g||i?null:(0,b.jsx)("p",{className:"delete-copy",children:"Loading agents…"}),g?(0,b.jsxs)("ul",{className:"manage-list","aria-label":"Agents",children:[0===z.length?(0,b.jsx)("li",{className:"delete-copy",children:"No agents match."}):null,z.map(c=>{let d=`${f}-row-${c.id}`,e=(0,k.isMigratedPending)(c)?"Not selected":(0,k.deckLabel)(c.deck_id??"",a);return(0,b.jsxs)("li",{className:c.blocked?"manage-row is-blocked":"manage-row","data-agent-id":c.id,children:[(0,b.jsx)("input",{id:d,type:"checkbox",checked:n.includes(c.id),disabled:!!c.blocked,onChange:()=>{var a;return a=c.id,void q(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},"aria-describedby":c.blocked?`${d}-reason`:void 0}),(0,b.jsxs)("div",{className:"manage-copy",children:[(0,b.jsxs)("label",{htmlFor:d,className:"manage-name",children:[c.name,c.hidden?(0,b.jsx)("span",{className:"manage-tag",children:"Hidden"}):null]}),(0,b.jsxs)("dl",{className:"manage-meta",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Agent"}),(0,b.jsx)("dd",{children:(0,k.botAgentLabel)(c)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Agent Deck"}),(0,b.jsx)("dd",{children:e})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Source"}),(0,b.jsx)("dd",{children:c.source_provider||"Created here"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Created"}),(0,b.jsx)("dd",{children:r(c.created_at)})]}),c.last_activity?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Last activity"}),(0,b.jsx)("dd",{children:r(c.last_activity)})]}):null]}),c.blocked?(0,b.jsx)("p",{id:`${d}-reason`,className:"manage-reason",children:(0,p.blockedReasonCopy)(c.blocked)}):null]})]},c.id)})]}):null,(0,b.jsxs)("div",{className:"form-actions manage-actions",children:[(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:d,children:"Cancel"}),(0,b.jsxs)("button",{ref:w,type:"button",className:"delete-btn",disabled:0===n.length,onClick:()=>u(!0),children:["Delete selected",n.length>0?` (${n.length})`:""]})]})]}),t?(0,b.jsx)(o.default,{ids:n,onCancel:()=>{u(!1),requestAnimationFrame(()=>w.current?.focus())},onDeleted:e}):null]})}var t=a.i(65221);function u(a,b,c){if(0===a.length)return null;let d=a[0],e=a[a.length-1],f=null!==b&&a.includes(b);return c?f&&b!==d?null:e:f&&b!==e?null:d}let v='a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';var w=a.i(35099);function x({mode:a,session:d,agents:e,origin:f,onClose:g,onStarted:h}){let i=(0,c.useId)(),j=(0,c.useId)(),k=(0,c.useId)(),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)({}),[r,s]=(0,c.useState)(""),[y,z]=(0,c.useState)(!1),A=(0,c.useRef)(!1),B=(0,c.useRef)(null),C=(0,c.useRef)(null),D=(0,c.useRef)(null),E=(0,c.useRef)(null),F=e.filter(a=>a.id!==d.agent.id);(0,c.useEffect)(()=>{("continue"===a?E.current:D.current)?.focus()},[a]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),g())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[g]);let G=async b=>{if(b.preventDefault(),A.current)return;let c={mode:a,instruction:l,originConversationId:f.conversationId,destinationAgentId:n},e=(0,w.validateDraft)(c);if(q(e),Object.keys(e).length>0)return void(e.destination?E.current?.focus():D.current?.focus());let g=JSON.stringify((0,w.exchangeRequestBody)(c,{agentId:d.agent.id,sessionRef:d.ref},""));B.current&&B.current.payload===g||(B.current={payload:g,key:crypto.randomUUID()}),A.current=!0,z(!0),s("");try{let a=await fetch("/api/exchanges",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,w.exchangeRequestBody)(c,{agentId:d.agent.id,sessionRef:d.ref},B.current.key))}),b=await a.json().catch(()=>null);if(!a.ok){let a="string"==typeof b?.error?.code?b.error.code:null;"idempotency_conflict"===a&&(B.current=null),s((0,w.submitErrorMessage)(a,"string"==typeof b?.error?.message?b.error.message:null));return}h("string"==typeof b?.exchange?.id?b.exchange.id:null)}catch{s((0,w.submitErrorMessage)(null,"Botmancers could not be reached. Your draft is kept; try again."))}finally{A.current=!1,z(!1)}},H=F.find(a=>a.id===n)?.name,I="ask"===a;return(0,b.jsx)("div",{className:"modal-scrim exchange-scrim",onMouseDown:a=>{a.target===a.currentTarget&&g()},onKeyDown:a=>{if("Tab"!==a.key||!C.current)return;let b=u(Array.from(C.current.querySelectorAll(v)),document.activeElement,a.shiftKey);b&&(a.preventDefault(),b.focus())},children:(0,b.jsxs)("div",{ref:C,className:"form-card exchange-dialog",role:"dialog","aria-modal":"true","aria-labelledby":i,"data-exchange-mode":a,children:[(0,b.jsx)("h2",{id:i,className:"delete-title",children:I?"Ask this session":"Continue with…"}),(0,b.jsxs)("section",{className:"exchange-source","aria-label":"Source session",children:[(0,b.jsx)("p",{className:"exchange-source-agent",children:d.agent.name}),(0,b.jsx)("p",{className:"exchange-source-title",children:d.title}),(0,b.jsxs)("p",{className:"exchange-source-meta",children:["Last activity ",(0,t.formatSessionDate)(d.last_activity_at),d.origin.conversation?` \xb7 from ${d.origin.conversation.label}`:""]})]}),(0,b.jsxs)("form",{onSubmit:G,noValidate:!0,className:"exchange-form",children:[I?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("label",{htmlFor:k,children:"Continue with"}),(0,b.jsxs)("select",{ref:E,id:k,className:"exchange-select",value:n,"aria-invalid":!!p.destination||void 0,"aria-describedby":p.destination?`${k}-error`:void 0,disabled:y,onChange:a=>{o(a.target.value),q(a=>({...a,destination:void 0}))},children:[(0,b.jsx)("option",{value:"",children:"Choose an Agent"}),F.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),p.destination?(0,b.jsx)("p",{id:`${k}-error`,className:"exchange-field-error",children:p.destination}):null]}),(0,b.jsx)("label",{htmlFor:j,children:I?"Question":"Objective"}),(0,b.jsx)("textarea",{ref:D,id:j,rows:4,maxLength:w.INSTRUCTION_LIMIT,value:l,readOnly:y,"aria-invalid":!!p.instruction||void 0,"aria-describedby":`${j}-hint${p.instruction?` ${j}-error`:""}`,onChange:a=>{m(a.target.value),q(a=>({...a,instruction:void 0}))}}),p.instruction?(0,b.jsx)("p",{id:`${j}-error`,className:"exchange-field-error",children:p.instruction}):null,(0,b.jsx)("p",{id:`${j}-hint`,className:"exchange-hint",children:I?`${d.agent.name} answers once from this session, read-only. The answer arrives in ${f.label}.`:`${H??"The Agent you choose"} receives an extracted handoff (objective, decisions, constraints, references, open questions) and starts a new session of its own. ${d.agent.name}’s session is not shared and is not changed. Progress shows in ${f.label}.`}),r?(0,b.jsx)("p",{className:"exchange-server-error",role:"alert",children:r}):null,(0,b.jsx)("p",{className:"exchange-sending",role:"status",children:y?"Sending…":""}),(0,b.jsxs)("div",{className:"form-actions",children:[(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:g,children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"create-btn",disabled:y,"aria-disabled":y,children:r?"Try again":"Send"})]})]})]})})}function y({agentId:a,agentName:e,agents:f,origin:g,onClose:h,onOpenThread:i,onExchangeStarted:j}){let k=(0,c.useId)(),[l,m]=(0,c.useState)("all"),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(0),[u,v]=(0,c.useState)(null),A=(0,c.useRef)(null),B=(0,c.useRef)(null),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),G=()=>{let a=C?.returnTo;D(null),requestAnimationFrame(()=>{a?.isConnected&&a.focus()})};(0,c.useEffect)(()=>{B.current?.focus()},[]),(0,c.useEffect)(()=>{let b=!1;return fetch(`/api/bots/${encodeURIComponent(a)}/sessions?status=${l}`,{cache:"no-store"}).then(async a=>{let c=await a.json().catch(()=>null);if(!b){if(!a.ok||!Array.isArray(c?.sessions))return void q("string"==typeof c?.error?c.error:"Could not load sessions.");o(c.sessions)}}).catch(()=>{b||q("Could not load sessions.")}),()=>{b=!0}},[a,l,r]);let H=(a=l)=>{o(null),q(""),m(a),s(a=>a+1)};return(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&h()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[h]),(0,b.jsxs)("div",{className:"modal-scrim sessions-scrim",onMouseDown:a=>{a.target!==a.currentTarget||C||h()},children:[(0,b.jsxs)("div",{ref:A,className:"sessions-drawer",role:"dialog","aria-modal":"true","aria-labelledby":k,onKeyDown:a=>{if("Tab"!==a.key||!A.current)return;let b=Array.from(A.current.querySelectorAll("button:not(:disabled), summary"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},inert:!!C,children:[(0,b.jsxs)("div",{className:"manage-head",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{id:k,className:"delete-title sessions-title",children:"Sessions"}),(0,b.jsx)("p",{className:"sessions-sub",children:e})]}),(0,b.jsx)("button",{ref:B,type:"button",className:"cancel-btn",onClick:h,children:"Close"})]}),(0,b.jsxs)("div",{className:"sessions-filter",role:"group","aria-label":"Show sessions",children:[t.SESSION_FILTER_OPTIONS.map(a=>(0,b.jsx)("button",{type:"button",className:"sessions-filter-btn","aria-pressed":l===a.value,onClick:()=>{l!==a.value&&H(a.value)},children:a.label},a.value)),(0,b.jsx)("span",{className:"manage-count","aria-live":"polite",children:n?`${n.length} shown`:""})]}),(0,b.jsx)("div",{className:"exchange-started",role:"status",children:E?(0,b.jsxs)(b.Fragment,{children:[E.text," ",E.id?(0,b.jsx)(d.default,{className:"session-link",href:(0,w.detailsHref)(E.id),children:"View in Exchanges"}):null]}):null}),p?(0,b.jsxs)("div",{className:"sessions-state",role:"alert",children:[(0,b.jsx)("p",{className:"delete-error",children:p}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>H(),children:"Retry"})]}):null,n||p?null:(0,b.jsx)("p",{className:"delete-copy sessions-state",role:"status",children:"Loading sessions…"}),n?(0,b.jsxs)("ul",{className:"manage-list sessions-list","aria-label":`Sessions for ${e}`,children:[0===n.length?(0,b.jsx)("li",{className:"delete-copy sessions-state",children:(0,t.emptySessionsCopy)(l,e)}):null,n.map(c=>(0,b.jsx)(z,{agentId:a,row:c,open:u===c.ref,onToggle:()=>v(a=>a===c.ref?null:c.ref),onOpenThread:i,onAction:(a,b)=>{F(null),D({mode:a,row:c,returnTo:b})}},c.ref))]}):null]}),C?(0,b.jsx)(x,{mode:C.mode,session:C.row,agents:f,origin:g,onClose:G,onStarted:a=>{F({id:a,text:"ask"===C.mode?`Asked ${C.row.agent.name}’s session. The answer arrives in ${g.label}.`:`Handoff started from ${C.row.agent.name}’s session. Progress shows in ${g.label}.`}),G(),j(a)}}):null]})}function z({agentId:a,row:d,open:e,onToggle:f,onOpenThread:g,onAction:h}){let i=(0,c.useId)(),j=(0,w.sessionActionAvailability)(d),k=d.origin.conversation,l=(0,t.workRequestLabel)(d);return(0,b.jsx)("li",{className:`manage-row session-row is-${d.status}`,"data-session-ref":d.ref,children:(0,b.jsxs)("div",{className:"manage-copy",children:[(0,b.jsxs)("div",{className:"session-head",children:[(0,b.jsx)("span",{className:"session-title",children:d.title}),(0,b.jsx)("span",{className:`manage-tag session-status is-${d.status}`,children:(0,t.statusLabel)(d)}),d.resumable?(0,b.jsx)("span",{className:"manage-tag",children:"Resumable"}):null]}),(0,b.jsxs)("dl",{className:"manage-meta",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Last activity"}),(0,b.jsx)("dd",{children:(0,t.formatSessionDate)(d.last_activity_at)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Started"}),(0,b.jsx)("dd",{children:(0,t.formatSessionDate)(d.created_at)})]}),null!==d.ended_at?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Ended"}),(0,b.jsx)("dd",{children:(0,t.formatSessionDate)(d.ended_at)})]}):null,(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Runtime"}),(0,b.jsx)("dd",{children:(0,t.runtimeLabel)(d)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Origin"}),(0,b.jsx)("dd",{children:k?.thread_agent_id?(0,b.jsx)("button",{type:"button",className:"session-link",onClick:()=>g(k.thread_agent_id),children:k.label}):k?.label??"Not recorded"})]}),l?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Work request"}),(0,b.jsx)("dd",{children:l})]}):null,d.context.workspace?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Workspace"}),(0,b.jsx)("dd",{children:d.context.workspace})]}):null,d.context.deck?(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{children:"Deck"}),(0,b.jsx)("dd",{children:d.context.deck})]}):null]}),j.available?(0,b.jsxs)("div",{className:"session-actions",role:"group","aria-label":`Actions for ${d.title}`,children:[(0,b.jsx)("button",{type:"button",className:"session-action","aria-haspopup":"dialog",onClick:a=>h("ask",a.currentTarget),children:"Ask this session"}),(0,b.jsx)("button",{type:"button",className:"session-action","aria-haspopup":"dialog",onClick:a=>h("continue",a.currentTarget),children:"Continue with…"})]}):(0,b.jsx)("p",{className:"session-unavailable",children:j.reason}),(0,b.jsx)("button",{type:"button",className:"pin-word session-toggle","aria-expanded":e,"aria-controls":i,onClick:f,children:e?"Hide details":"Details"}),e?(0,b.jsx)(A,{id:i,agentId:a,sessionRef:d.ref}):null]})})}function A({id:a,agentId:d,sessionRef:e}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(!1),p=`/api/bots/${encodeURIComponent(d)}/sessions/${encodeURIComponent(e)}`;(0,c.useEffect)(()=>{let a=!1;return fetch(p,{cache:"no-store"}).then(async b=>{let c=await b.json().catch(()=>null);a||(b.ok&&Array.isArray(c?.session?.attempts)?g(c.session.attempts):i("Could not load session details."))}).catch(()=>{a||i("Could not load session details.")}),()=>{a=!0}},[p]);let q=(0,c.useCallback)(async()=>{if(null===j)try{let a=await fetch(`${p}?debug=external_session_id`,{cache:"no-store"}),b=await a.json().catch(()=>null),c=b?.debug?.external_session_id;a.ok&&"string"==typeof c?k(c):m("Not available.")}catch{m("Not available.")}},[p,j]),r=async()=>{if(j)try{await navigator.clipboard.writeText(j),o(!0)}catch{o(!1)}};return(0,b.jsxs)("div",{id:a,className:"session-detail",children:[h?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:h}):null,f||h?null:(0,b.jsx)("p",{className:"delete-copy",role:"status",children:"Loading details…"}),f?(0,b.jsxs)("ol",{className:"session-attempts","aria-label":"Runs in this session",children:[0===f.length?(0,b.jsx)("li",{children:"No recorded runs."}):null,f.map(a=>(0,b.jsxs)("li",{children:[(0,t.formatSessionDate)(a.started_at)," · ",(0,t.attemptLabel)(a)]},`${a.request_id}-${a.attempt_number}`))]}):null,(0,b.jsxs)("details",{className:"session-debug",onToggle:a=>{a.currentTarget.open&&q()},children:[(0,b.jsx)("summary",{children:"Local debug: provider session ID"}),(0,b.jsx)("p",{className:"session-debug-note",children:"For local troubleshooting only. Botmancers resumes sessions for you; you never need to copy this."}),l?(0,b.jsx)("p",{className:"delete-error",children:l}):null,j?(0,b.jsxs)("div",{className:"session-debug-value",children:[(0,b.jsx)("code",{children:j}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{r()},children:n?"Copied":"Copy"})]}):null]})]})}function B({view:a,agentName:c}){if("loading"===a)return(0,b.jsx)("p",{className:"thread-note",role:"status",children:"Loading messages…"});if("error"===a)return(0,b.jsx)("p",{className:"thread-note thread-note-error",role:"alert",children:"Couldn’t load messages. Trying again…"});if("empty"===a){let a={title:`No messages with ${c} yet.`,hint:"Say something below to start the conversation."};return(0,b.jsxs)("div",{className:"thread-empty","data-thread-empty":"",children:[(0,b.jsx)("p",{className:"thread-empty-title",children:a.title}),(0,b.jsx)("p",{className:"thread-empty-hint",children:a.hint})]})}return null}let C={error:"Error"},D=[{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 E(a){let b=String(a??"").trim();if(!b)return null;let c=D.find(a=>a.pattern.test(b));return c?{kind:c.kind,severity:c.severity,title:c.title,recovery:c.recovery,detail:b}:null}function F({failure:a}){let[d,e]=(0,c.useState)("idle"),f=C[a.severity],g=(0,c.useId)();async function h(){try{await navigator.clipboard.writeText(a.detail),e("copied")}catch{e("failed")}}return(0,b.jsxs)("div",{className:`runtime-failure runtime-failure-${a.severity}`,role:"status","aria-labelledby":g,"data-runtime-failure":a.kind,children:[(0,b.jsxs)("p",{className:"runtime-failure-title",id:g,children:[(0,b.jsx)("span",{className:"runtime-failure-severity",children:f}),a.title]}),(0,b.jsx)("p",{className:"runtime-failure-recovery",children:a.recovery}),(0,b.jsxs)("details",{className:"runtime-failure-details",children:[(0,b.jsx)("summary",{children:"Details"}),(0,b.jsx)("code",{className:"runtime-failure-detail",children:a.detail}),(0,b.jsx)("button",{type:"button",className:"runtime-failure-copy",onClick:()=>{h()},children:"copied"===d?"Copied":"failed"===d?"Copy failed":"Copy details"})]})]})}function G(a){if(!a)return"";let b=f(a);if(b)return g(b);let c=E(a);if(c)return c.title;let d=(0,k.deckEventDisplay)(a);return d?`${d.label} ${d.detail}`.replace(/\s+/g," ").trim():a.replace(/\s+/g," ").trim()}let H={blocked:"Needs approval",rejected:"Not started",allowed:"Allowed",denied:"Denied",waiting:"Queued",stopped:"Stopped"};function I({notice:a,onDone:d}){let[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(""),i="blocked"!==a.tone||a.actionable?H[a.tone]:"Blocked",j=async b=>{if(!e&&a.wakeId){f(!0),h("");try{let c=await fetch(`/api/wakes/${a.wakeId}/decision`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({decision:b})});if(!c.ok){let a=await c.json().catch(()=>null);h("string"==typeof a?.error?.message?a.error.message:"The decision could not be recorded.")}}catch{h("The decision could not be recorded.")}finally{f(!1),d()}}};return(0,b.jsxs)("div",{className:`wake-notice wake-notice-${a.tone}`,role:"status","data-wake-notice":a.tone,"data-wake-id":a.wakeId??void 0,children:[(0,b.jsxs)("p",{className:"wake-notice-line",children:[(0,b.jsx)("span",{className:"wake-notice-label",children:i}),a.text]}),a.actionable?(0,b.jsxs)("div",{className:"wake-notice-actions",children:[(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:e,onClick:()=>{j("allow")},children:"Allow"}),(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:e,onClick:()=>{j("deny")},children:"Deny"})]}):null,g?(0,b.jsx)("p",{className:"wake-notice-error",role:"alert",children:g}):null]})}var J=a.i(27828);function K(a){return!!a&&"chief-of-staff"===a.name.toLowerCase()}function L(a){return K(a)?0:a.pinned?1:2}function M(a,b,c,d){return a&&b?d-c+(b-a)>15e3?"Stopped":"Heartbeat "+new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(a)):"Stopped"}function N(a){let b=a;for(let a=0;a<2;a++){let a=b.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"");if(a===b)break;b=a}return b.replace(/^\s+/,"")}function O(a){let b=a;for(let a=0;a<4;a++){let a=b.replace(/^\s*\[(?:Message from|From) [^\]]+\]\s*(?:\r?\n)?/,"");if(a===b)break;b=a}return b}function P({message:a,conversationId:d,status:e,onDone:f}){let g=i(O(a.content)),[h,j]=(0,c.useState)(g?.recipient??""),[k,l]=(0,c.useState)(g?.body??""),[m,n]=(0,c.useState)(!1),[o,p]=(0,c.useState)("open"!==e),q=(0,c.useRef)("open"!==e);if(!g)return null;let r="open"!==e||o,s=r?g.recipient:h,t=r?g.body:k,u=async b=>{if(!r&&!q.current&&!m&&("send"!==b||""!==h.trim())){q.current=!0,p(!0),n(!0);try{(await fetch(`/api/conversations/${d}/draft`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:a.id,action:b,recipient:h,body:k})})).ok||(q.current=!1,p(!1))}finally{n(!1),f()}}};return(0,b.jsxs)("div",{className:"draft-card",children:[(0,b.jsx)("div",{className:"draft-title",children:"email"===g.channel?"New Email":"New Slack Message"}),(0,b.jsx)("input",{type:"text","aria-label":"Recipient",value:s,readOnly:r,disabled:m,onChange:a=>{r||j(a.target.value)}}),(0,b.jsx)("textarea",{rows:3,"aria-label":"Draft body",value:t,readOnly:r,disabled:m,onChange:a=>{r||l(a.target.value)}}),"sent"===e?(0,b.jsx)("span",{className:"draft-mark",children:"Sent"}):null,"discarded"===e?(0,b.jsx)("span",{className:"draft-mark",children:"Discarded"}):null,"discarded"!==e?(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:m,onClick:()=>{u("send")},children:"Send"}):null,"open"===e?(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:m,onClick:()=>{u("discard")},children:"Discard"}):null]})}function Q({message:a,conversationId:d,status:e,onDone:f}){let g=j(a.content),[h,i]=(0,c.useState)(!1),k=(0,c.useRef)("pending"!==e);if(!g)return null;let l=async b=>{if(!k.current&&!h){k.current=!0,i(!0);try{(await fetch(`/api/conversations/${d}/${b}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:g,messageId:a.id})})).ok||(k.current=!1)}finally{i(!1),f()}}};return"pending"!==e?(0,b.jsx)("span",{className:"draft-mark",children:"approved"===e?"Approved":"Denied"}):(0,b.jsxs)("span",{className:"draft-mark",children:[(0,b.jsx)("button",{type:"button",className:"approve-control",disabled:h,onClick:()=>{l("approve")},children:"Approve"}),(0,b.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:h,onClick:()=>{l("deny")},children:"Deny"})]})}function R({names:a}){return 0===a.length?null:(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsxs)("span",{children:[(0,b.jsx)("br",{}),(0,b.jsxs)("a",{className:"file-control",href:`/api/files/${encodeURIComponent(a)}`,download:a,children:["Download ",a]})]},a))})}function S({anchorRef:a,deckState:d,onRetryDecks:e,onClose:f,onCreated:g}){let[h,i]=(0,c.useState)(""),[j,m]=(0,c.useState)(k.DEFAULT_RUNTIME_FORM),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(null);(0,c.useEffect)(()=>{e()},[e]),(0,c.useLayoutEffect)(()=>{let b=()=>{let b=a.current?.getBoundingClientRect();q(function(a,b){let c=Math.min(358,b.width-32),d=Math.max(16,b.width-16-c),e=16,f=16;if(a){f=Math.min(Math.max(a.left,16),d);let c=a.bottom+8;b.height-c-16>=360&&(e=c)}return{top:e,left:f,maxHeight:Math.max(0,b.height-e-16)}}(b?{left:b.left,bottom:b.bottom}:null,{width:window.innerWidth,height:window.innerHeight}))};return b(),window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[a]),(0,c.useEffect)(()=>{s.current?.focus()},[]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),f())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[f]);let t=(0,k.runtimeFormView)(j,d),w=async a=>{if(a.preventDefault(),t.submitDisabled)return;if(!j.deckId.trim())return void o(k.SELECT_DECK_ERROR);o("");let b=await fetch("/api/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,k.newBotSubmitBody)({name:h,...j}))});if(!b.ok){let a=await b.json().catch(()=>null);o("string"==typeof a?.error&&a.error?a.error:"Failed to create agent");return}g()};return(0,b.jsx)("div",{className:"modal-scrim new-agent-scrim",onKeyDown:a=>{if("Tab"!==a.key||!r.current)return;let b=u(Array.from(r.current.querySelectorAll(v)),document.activeElement,a.shiftKey);b&&(a.preventDefault(),b.focus())},children:(0,b.jsxs)("div",{ref:r,className:"form-card new-agent-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"new-agent-title",style:p??void 0,children:[(0,b.jsx)("div",{className:"kind-row",children:(0,b.jsx)("h2",{id:"new-agent-title",className:"kind-word new-agent-title",children:"New Agent"})}),(0,b.jsxs)("form",{onSubmit:w,className:"bot-form",children:[(0,b.jsxs)("div",{className:"new-agent-body",children:[(0,b.jsx)("label",{htmlFor:"bot-name",children:"Name"}),(0,b.jsx)("input",{ref:s,id:"bot-name",type:"text",value:h,onChange:a=>i(a.target.value),required:!0}),(0,b.jsx)(l.AgentSection,{idPrefix:"bot",variant:"modal",form:j,onChange:a=>{o(""),m(b=>({...b,...a}))},deckState:d,onRetry:e,workdirPlaceholder:"",workdirHint:k.NEW_BOT_WORKDIR_HINT}),n?(0,b.jsx)("p",{className:"form-error",role:"alert",children:n}):null]}),(0,b.jsxs)("div",{className:"form-actions",children:[(0,b.jsx)("button",{type:"button",className:"cancel-btn",onClick:f,children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"create-btn",disabled:t.submitDisabled,children:"Create"})]})]})]})})}a.s(["default",0,function(){var a;let[q,r]=(0,c.useState)([]),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),x=(0,c.useRef)(!1),z=(0,c.useRef)(null),[A,C]=(0,c.useState)([]),[D,H]=(0,c.useState)([]),[T,U]=(0,c.useState)([]),V=(0,c.useRef)(null),[W,X]=(0,c.useState)(null),Y=(0,c.useRef)(null),[Z,$]=(0,c.useState)(""),[_,aa]=(0,c.useState)(""),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)([]),[af,ag]=(0,c.useState)(""),ah=(0,c.useRef)(null),ai=(0,c.useRef)(null),[aj,ak]=(0,c.useState)(!1),al=(0,c.useRef)(null),[am,an]=(0,c.useState)(!1),[ao,ap]=(0,c.useState)(!1),[aq,ar]=(0,c.useState)(null),[as,at]=(0,c.useState)(""),[au,av]=(0,c.useState)({}),aw=(0,c.useRef)({}),[ax,ay]=(0,c.useState)(null),[az,aA]=(0,c.useState)(null),aB=(0,c.useRef)(null),aC=(0,c.useRef)(null),[aD,aE]=(0,c.useState)(!1),aF=(0,c.useRef)(null),[aG,aH]=(0,c.useState)(!1),aI=(0,c.useRef)(null),[aJ,aK]=(0,c.useState)(""),[aL,aM]=(0,c.useState)(!1),aN=(0,c.useRef)(null),aO=(0,c.useRef)(null),aP=(0,c.useRef)(null),aQ=(0,c.useRef)(null),aR=(0,c.useRef)(null),aS=(0,c.useRef)(null),aT=(0,c.useRef)(null),[aU,aV]=(0,c.useState)([]),[aW,aX]=(0,c.useState)({serverNow:0,fetchedAt:0}),[aY,aZ]=(0,c.useState)(()=>Date.now()),a$=(0,c.useRef)({}),a_=(0,c.useRef)(!1),[a0,a1]=(0,c.useState)(!1),{state:a2,retry:a3}=(0,m.useDeckList)();(0,c.useEffect)(()=>{a_.current||0===q.length||(a_.current=!0,a1(!0))},[q.length]),(0,c.useEffect)(()=>{let a=(0,n.importedBotId)(window.location.search);if(a)return void window.location.replace((0,n.importedConfigPath)(a));let b=new URLSearchParams(window.location.search),c=Number(b.get("deleted"));c>0&&window.history.replaceState(null,"","/");let d=b.get("agent");d&&(z.current=d,V.current=b.get("exchange"),window.history.replaceState(null,"","/")),a7().then(()=>{c>0&&aK((0,p.deletedStatusLine)(c))});let e=setInterval(a7,2e3),f=setInterval(()=>aZ(Date.now()),1e3);return()=>{clearInterval(e),clearInterval(f)}},[]),(0,c.useEffect)(()=>{if(x.current||0===q.length||v)return;let a=q.find(a=>a.id===z.current)||[...q].filter(a=>!a.hidden).sort((a,b)=>L(a)-L(b))[0]||q[0];x.current=!0,bc(a.id)},[q,v]),(0,c.useEffect)(()=>{if(Y.current=v?.id??null,v)return a8(),aT.current&&clearInterval(aT.current),aT.current=setInterval(a8,2e3),()=>{aT.current&&clearInterval(aT.current)}},[v]);let a4=v?q.find(a=>a.id===v.details.id)??v.details:void 0,a5=!!v&&K(a4),a6=a5?function(a){for(let b=a.length-1;b>=0;b--){let c=f(a[b].content);if(c){if("stopped"===c.state)return null;return c.page||c.html||null}}return null}(A):null;async function a7(){let a=await fetch("/api/bots",{cache:"no-store"}),b=await a.json(),c=Date.parse(a.headers.get("date")||"");aX({serverNow:Number.isNaN(c)?Date.now():c,fetchedAt:Date.now()}),Array.isArray(b)&&(r(b),u(!0))}async function a8(){if(!v)return;let a=v.id,b=null,c=!1,d=fetch(`/api/conversations/${a}`).then(async a=>{let b=await a.json();return a.ok&&Array.isArray(b?.events)?b.events:null}).catch(()=>null),e=fetch(`/api/exchanges?conversation=${encodeURIComponent(a)}`,{cache:"no-store"}).then(async a=>{let b=await a.json();return a.ok&&Array.isArray(b?.exchanges)?b.exchanges:null}).catch(()=>null);try{let d=await fetch(`/api/conversations/${a}/messages`);b=await d.json(),c=d.ok&&Array.isArray(b)}catch{c=!1}let f=await d,g=await e;if(Y.current===a){let d,e;c&&C(b),f&&H((d=[],e=new Map,f.forEach((a,b)=>{let c="string"==typeof a.data.target_name?a.data.target_name:null;a.requestId&&c&&e.set(a.requestId,c);let g=function(a){switch(a.kind){case"wake_blocked":return"blocked";case"wake_rejected":return"rejected";case"lineage_stopped":return"stopped";case"wake_accepted":return"string"==typeof a.data.reason?"allowed":null;case"request_cancelled":return"grant_denied"===a.data.reason?"denied":null;case"request_queued":return"capacity"===a.data.waiting_for?"waiting":null;default:return null}}(a);if(!g)return;let h=Array.isArray(a.data.actions)?a.data.actions:[],i=null!==a.requestId&&f.slice(b+1).some(b=>b.requestId===a.requestId);if("waiting"===g&&i)return;let j=a.requestId?e.get(a.requestId):void 0,k="denied"===g&&j?`Wake denied: ${j} — no work ran`:"waiting"===g&&j?`Queued: ${j} — waiting for capacity`:a.text;d.push({eventId:a.eventId,wakeId:a.wakeId,tone:g,text:k,actionable:"blocked"===g&&!!a.wakeId&&h.includes("allow")&&h.includes("deny")&&!i,createdAt:a.createdAt})}),d)),g&&U(g),X({conversationId:a,status:c?"ready":"error"})}}(0,c.useLayoutEffect)(()=>{let a=aP.current?.parentElement;if(!a)return;let b=aQ.current,c=aR.current,d=aS.current;if(a5&&b&&c&&d){let e=e=>{let f=Math.ceil(b.getBoundingClientRect().height);c.style.height=f+16+e+"px";let g=c.getBoundingClientRect().top-a.getBoundingClientRect().top;d.style.height=Math.max(0,a.clientHeight-g)+"px";let h=b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop;a.scrollTop=Math.max(0,h-g)};e(0);let f=c.nextElementSibling,g=b.getBoundingClientRect().bottom,h=f?f.getBoundingClientRect().top:c.getBoundingClientRect().bottom;g>=h&&e(Math.max(16,Math.ceil(g-h)));return}d&&(d.style.height="0px"),c&&(c.style.height=""),a.scrollTop=a.scrollHeight},[A,a5]),(0,c.useEffect)(()=>{let a=V.current;if(!a)return;let b=document.getElementById(`exchange-${a}`);b&&(V.current=null,b.scrollIntoView({block:"center"}),b.focus({preventScroll:!0}))},[T]),(0,c.useLayoutEffect)(()=>{aV(a=>{if(0===a.length)return a;let b=a.filter(a=>{let b=a$.current[a]??0;return A.some(c=>"bot"===c.sender_type&&c.sender_id===a&&c.created_at>b&&!/^\[(mcp|tool call|tool result)\]/i.test(c.content.trim()))});if(0===b.length)return a;for(let a of b)delete a$.current[a];return a.filter(a=>!b.includes(a))})},[A]);let a9=async a=>{v&&(await fetch(`/api/conversations/${v.id}/messages/${a}/stop`,{method:"POST"}),await a8())},ba=async()=>{v&&(await fetch(`/api/conversations/${v.id}/stop`,{method:"POST"}),await a8())},bb=async(a,b)=>{if(au[a.id])return void av(b=>{let c={...b};return delete c[a.id],c});if(aw.current[a.id])return;let c=A.findIndex(b=>b.id===a.id),d=q.find(a=>a.name===b),e=A.slice(c+1).find(a=>"bot"===a.sender_type&&(d?a.sender_id===d.id:a.sender_name===b));if(e){aw.current[a.id]=!0;try{let b=await fetch(`/api/messages/${a.id}/between?other=${encodeURIComponent(e.id)}`),c=await b.json().catch(()=>null);b.ok&&Array.isArray(c)&&c.length>0&&av(b=>({...b,[a.id]:c}))}finally{delete aw.current[a.id]}}};async function bc(a){let b=q.find(b=>b.id===a);if(!b)return;let c=await fetch(`/api/conversations?botId=${a}`),d=await c.json();an(!1),ap(!1),d.id!==v?.id&&(C([]),H([]),U([])),Y.current=d.id,w({id:d.id,details:b})}let bd=async()=>{if(!v)return;let a=aN.current?.files?.[0];if(!a)return;let b=await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error),d.readAsDataURL(a)});if(!b.startsWith("data:image/"))return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,avatar:d.avatar}:a)),w({...v,details:{...v.details,avatar:d.avatar}})},be=async a=>{if(!a||!v)return;let b=await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error),d.readAsDataURL(a)});if(!b.startsWith("data:image/"))return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,avatar:d.avatar}:a)),w({...v,details:{...v.details,avatar:d.avatar}})},bf=async()=>{if(!v)return;let a=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:v.details.id,avatar:null})});if(!a.ok)return;let b=await a.json();r(a=>a.map(a=>a.id===b.id?{...a,avatar:b.avatar||""}:a)),w({...v,details:{...v.details,avatar:b.avatar||""}})},bg=t&&0===q.length,bh=[...q].filter(a=>!a.hidden).sort((a,b)=>L(a)-L(b)),bi=q.filter(a=>a.hidden),bj=async a=>{let b=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,pinned:+!a.pinned})});if(!b.ok)return;let c=await b.json();r(a=>a.map(a=>a.id===c.id?{...a,...c}:a))},bk=async(a,b)=>{let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,hidden:+!!b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,...d,hidden:+!!d.hidden}:a)),b?requestAnimationFrame(()=>aC.current?.focus()):bo(a.id)},bl=async a=>{(await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,unread:1})})).ok&&r(b=>b.map(b=>b.id===a.id?{...b,unread:1}:b))};(0,c.useEffect)(()=>{if(!az)return;let a=a=>{"Escape"===a.key&&(aA(null),az.returnTo?.focus())},b=a=>{aB.current&&aB.current.contains(a.target)||aA(null)};return document.addEventListener("keydown",a),document.addEventListener("pointerdown",b),()=>{document.removeEventListener("keydown",a),document.removeEventListener("pointerdown",b)}},[az]);let bm=async a=>{let b=as.trim();if(ar(null),!b||b===a.name)return;let c=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,name:b})});if(!c.ok)return;let d=await c.json();r(a=>a.map(a=>a.id===d.id?{...a,...d}:a)),v&&v.details.id===d.id&&w({...v,details:{...v.details,...d}})},bn=async a=>{let b=a.map(a=>a.id);ay(null),aE(!1),aK((0,p.deletedStatusLine)(b.length)),requestAnimationFrame(()=>aF.current?.focus()),r(a=>a.filter(a=>!b.includes(a.id))),v&&b.includes(v.details.id)&&(w(null),C([]),H([])),await a7()},bo=(a,b=30)=>{requestAnimationFrame(()=>{let c=document.querySelector(`[data-open-bot="${a}"]`);c?c.focus():b>0&&bo(a,b-1)})},bp=(a=!0)=>{let b=az?.returnTo;aA(null),a&&b&&requestAnimationFrame(()=>{b.isConnected&&b.focus()})},bq=(a,b)=>{a.preventDefault(),aA({bot:b,x:a.clientX,y:a.clientY,returnTo:a.currentTarget.querySelector("[data-open-bot]")})},br=(a,c)=>(0,b.jsx)("input",{className:"bot-name","aria-label":`Rename ${a.name}`,value:as,autoFocus:!0,onChange:a=>at(a.target.value),onBlur:()=>bm(a),onKeyDown:b=>{"Enter"===b.key&&(b.preventDefault(),b.target.blur(),bo(a.id)),"Escape"===b.key&&(ar(null),bo(a.id))},style:c}),bs=(a,c)=>(0,b.jsx)("button",{type:"button",className:"bot-name row-open","data-open-bot":a.id,"aria-current":v?.details.id===a.id?"true":void 0,onClick:()=>bc(a.id),style:c,children:a.name}),bt=a=>(0,b.jsx)("button",{type:"button",className:"row-actions","aria-haspopup":"menu","aria-expanded":az?.bot.id===a.id,"aria-label":`Actions for ${a.name}`,title:`Actions for ${a.name}`,onClick:b=>{var c;let d;aA({bot:a,x:(d=(c=b.currentTarget).getBoundingClientRect()).left,y:d.bottom+4,returnTo:c})},children:"⋯"}),bu=a=>(0,b.jsxs)("div",{className:"row-tip",children:[a.unread&&v?.details.id!==a.id?(0,b.jsx)("div",{className:"card-role",children:"Unread"}):null,(0,b.jsx)("div",{className:"card-role",children:M(a.last_seen,aW.serverNow,aW.fetchedAt,aY)})]}),bv=a=>(0,b.jsxs)("div",{className:v?.details.id===a.id?"bot-row is-open":"bot-row",onContextMenu:b=>bq(b,a),children:[(0,b.jsxs)("span",{className:"mark-avatar mark-avatar-sm",children:[(0,b.jsx)(h.default,{bot:a,size:36,title:`${a.name} avatar`}),aU.includes(a.id)?(0,b.jsx)("span",{className:"mark-dot"}):null]}),(0,b.jsxs)("div",{className:"bot-copy",children:[aq===a.id?br(a):bs(a),G(a.latest)?(0,b.jsx)("div",{className:"bot-preview",children:G(a.latest)}):null,(0,b.jsx)(l.RosterRuntimeLine,{bot:a,state:a2})]}),bt(a),bu(a)]},a.id),bw=ab?q.filter(a=>a.name.toLowerCase().includes(_.toLowerCase())):[],bx=a=>{let b=ah.current,c=b?b.selectionStart:Z.length,d=Z.slice(0,c).lastIndexOf("@");if(d<0)return;$(Z.slice(0,d)+"@"+a+" "+Z.slice(c)),ac(!1);let e=d+a.length+2;requestAnimationFrame(()=>{b?.focus(),b?.setSelectionRange(e,e)})},by=a=>{if(0===a.length)return;let b=6-ad.length;a.length>b?ag("Up to six attachments."):ag("");let c=a.slice(0,Math.max(b,0));0!==c.length&&ae(a=>[...a,...c.map((b,c)=>({id:b.name+"-"+a.length+"-"+c+"-"+b.size,name:b.name}))])},bz=async()=>{let a=ad.map(a=>a.name),b=Z.trim();if(!b&&0===a.length||!v)return;let c=[b,...a].filter(a=>a.length>0).join("\n"),d=[v.details.id],e=A.reduce((a,b)=>Math.max(a,b.created_at||0),0);for(let a of d)a$.current[a]=e;aV(a=>Array.from(new Set([...a,...d])));let f=[...q].sort((a,b)=>b.name.length-a.name.length).find(a=>(function(a,b){let c="@"+b,d=0;for(;d<a.length;){let b=a.indexOf(c,d);if(b<0)break;let e=a[b+c.length];if(!e||/[\s.,!?:;]/.test(e))return!0;d=b+c.length}return!1})(c,a.name));if(!(await fetch(`/api/conversations/${v.id}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:c,mentionedBotId:f?.id,idempotencyKey:crypto.randomUUID()})})).ok){for(let a of d)delete a$.current[a];aV(a=>a.filter(a=>!d.includes(a)))}$(""),ae([]),ag(""),ac(!1),a8()},bA=v?(a=v.id,A.length>0?"messages":W&&W.conversationId===a&&"loading"!==W.status?"error"===W.status?"error":"empty":"loading"):"loading",bB=v?(0,b.jsx)(B,{view:bA,agentName:v.details.name}):null,bC=(v?.details.title||"").trim(),bD=v?.details.color,bE=new Set,bF=a=>(0,b.jsx)("div",{className:"msg-status",children:(0,b.jsx)(I,{notice:a,onDone:()=>{a8()}})},a.eventId),bG=new Set,bH=a=>(0,b.jsx)("div",{className:"msg-status",children:(0,b.jsx)(J.default,{summary:a,onChanged:()=>{a8()}})},`exchange-${a.id}`),bI=a=>{let b=T.filter(b=>!bG.has(b.id)&&b.created_at<a).sort((a,b)=>a.created_at-b.created_at||(a.id<b.id?-1:1));return b.forEach(a=>bG.add(a.id)),b.map(bH)},bJ=()=>{ak(!1),requestAnimationFrame(()=>al.current?.focus())};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"field",inert:aj,children:[(0,b.jsxs)("aside",{className:"rail",children:[(0,b.jsxs)("div",{className:"brand",children:[(0,b.jsx)("div",{className:a0?"logo-shape is-settling":"logo-shape",children:(0,b.jsx)(e.default,{src:"/brand/botmancers-logo-filled-256.png",alt:"",width:40,height:40})}),(0,b.jsx)("div",{className:"logo-word",children:"botmancers"})]}),(0,b.jsxs)("div",{className:"bar",children:[(0,b.jsx)("button",{ref:al,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>ak(!0),children:"New"}),bg?null:(0,b.jsx)("button",{ref:aF,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>{aK(""),aE(!0)},children:"Manage agents"}),(0,b.jsx)(d.default,{href:"/settings",className:"add-btn settings-link",children:"Settings"})]}),bg?null:(0,b.jsx)("nav",{className:"rail-nav","aria-label":"Workspace",children:(0,b.jsx)(d.default,{href:"/exchanges",className:"add-btn rail-nav-link",children:"Exchanges"})}),(0,b.jsx)("p",{className:"roster-status",role:"status",children:aJ}),bg?null:(0,b.jsx)("div",{className:az?"roster menu-open":"roster",children:bh.map(a=>K(a)?(0,b.jsxs)("div",{className:"card",onContextMenu:b=>bq(b,a),children:[(0,b.jsxs)("div",{className:"row-head",children:[(0,b.jsxs)("span",{className:"mark-avatar",children:[(0,b.jsx)(h.default,{bot:a,size:44,title:`${a.name} avatar`}),aU.includes(a.id)?(0,b.jsx)("span",{className:"mark-dot"}):null]}),aq===a.id?br(a,{color:"#D5D0C3",fontSize:26}):bs(a,{fontSize:26}),bt(a)]}),G(a.latest)?(0,b.jsx)("div",{className:"bot-preview",children:G(a.latest)}):null,(0,b.jsx)(l.RosterRuntimeLine,{bot:a,state:a2}),bu(a)]},a.id):bv(a))}),bi.length>0?(0,b.jsxs)("div",{className:az?"roster menu-open":"roster",children:[(0,b.jsx)("button",{ref:aC,type:"button",className:"pin-word","aria-expanded":aL,onClick:()=>aM(a=>!a),children:"Hidden"}),aL?bi.map(bv):null]}):null]}),(0,b.jsx)("section",{className:"pane",children:v?(0,b.jsxs)("div",{className:"thread",children:[(0,b.jsxs)("div",{className:"thread-bar",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",className:"thread-name",style:bD?{color:bD}:void 0,onClick:()=>{an(!0),ap(!1)},children:v.details.name}),bC?(0,b.jsx)("div",{className:"thread-role",children:bC}):null,(0,b.jsx)("div",{className:"thread-role",children:aU.includes(v.details.id)?"Working":"Not working"}),(0,b.jsx)("div",{className:"thread-role",children:M((a4??v.details).last_seen,aW.serverNow,aW.fetchedAt,aY)}),am?(0,b.jsx)("button",{type:"button",className:"avatar-pic",onClick:()=>ap(!0),"aria-label":"Picture",children:v.details.avatar?(0,b.jsx)("img",{src:v.details.avatar,alt:""}):(0,b.jsx)(h.default,{bot:v.details,size:46})}):null]}),(0,b.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:16,alignItems:"flex-start"},children:[(0,b.jsx)(d.default,{href:`/bots/${v.details.id}/config`,className:"attach-word",style:{textDecoration:"none"},children:"Config"}),(0,b.jsx)("button",{ref:aI,type:"button",className:"attach-word","aria-haspopup":"dialog","aria-expanded":aG,onClick:()=>aH(!0),children:"Sessions"}),(0,b.jsx)("button",{type:"button",className:"attach-word",title:"Stop delegated turns in this thread",onClick:()=>{ba()},children:"Stop"})]})]}),ao?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"avatar-step avatar-desk",children:[(0,b.jsx)("span",{className:"kind-word",children:"Agent"}),(0,b.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,b.jsxs)("label",{className:"kind-word",children:["Upload",(0,b.jsx)("input",{ref:aN,type:"file",accept:"image/*,.svg"})]}),(0,b.jsx)("button",{type:"button",className:"create-btn",onClick:bd,children:"Set avatar"})]}),(0,b.jsxs)("div",{className:"avatar-step avatar-phone",children:[(0,b.jsx)("button",{type:"button",className:"kind-word",onClick:()=>aO.current?.click(),children:"Gallery"}),(0,b.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,b.jsx)("button",{type:"button",className:"kind-word",onClick:bf,children:"Remove Photo"}),(0,b.jsx)("input",{ref:aO,type:"file",accept:"image/*,.svg",onChange:a=>{let b=a.target.files?.[0];a.target.value="",be(b)}})]})]}):null,(0,b.jsxs)("div",{className:"messages-wrap",children:[(0,b.jsxs)("div",{className:"messages",children:[a5?null:bB,A.map(a=>{var d;let e,h,l=D.filter(b=>!bE.has(b.eventId)&&b.createdAt<a.created_at);l.forEach(a=>bE.add(a.eventId));let m=bI(a.created_at),n="user"===a.sender_type,o=n?null:E(O(a.content));if(o)return(0,b.jsxs)(c.Fragment,{children:[l.map(bF),m,(0,b.jsx)("div",{className:"msg-status",children:(0,b.jsx)(F,{failure:o})})]},a.id);let p=(d=O(a.content),e=[],{text:N(d.replace(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g,a=>(e.push(a.replace(/\s/g,"")),""))),images:e}),q=p.images.map(a=>(0,b.jsx)("img",{src:a,alt:"",style:{display:"block",width:64,height:64}},a.slice(0,48))),r=n?void 0:v.details.color,s=n?null:f(a.content),t=n||s?null:i(O(a.content)),u=n||s?null:j(a.content),w=n||s?[]:function(a){let b=[];for(let c of a.split("\n")){let a=c.match(/^\s*\[file\]\s*(\S+)\s*$/i);a&&!b.includes(a[1])&&b.push(a[1])}return b}(a.content),x=n||s?null:(h=p.text.match(/^\s*\[Handing off to ([^\]]+)\]/))&&h[1].trim()||null,y=a.draftStatus??(t?"open":null),z=a.approvalStatus??(u?"pending":null);return(0,b.jsxs)(c.Fragment,{children:[l.map(bF),m,(0,b.jsxs)("div",{className:n?"msg-you":"msg-bot",ref:s&&"running"===s.state?aQ:void 0,children:[(0,b.jsx)("div",{className:n?"msg-name msg-name-you":"msg-name",style:r?{color:r}:void 0,children:n?"You":a.sender_name||v.details.name}),s?(0,b.jsxs)("div",{className:"msg-body",children:[g(s),"running"===s.state?(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)("button",{type:"button",className:"attach-word",style:{font:"inherit"},onClick:b=>{b.preventDefault(),b.stopPropagation(),a9(a.id)},children:"Stop"})]}):null]}):t&&y?(0,b.jsx)("div",{className:"msg-body",children:(0,b.jsx)(P,{message:a,conversationId:v.id,status:y,onDone:()=>{a8()}},a.id+y)}):(0,b.jsxs)("div",{className:"msg-body",onClick:x?()=>{bb(a,x)}:void 0,title:x?"Show the replies between this handoff and the reply":void 0,style:x?{cursor:"pointer"}:void 0,children:[function(a,c){let d=String(a??"").split("\n");if(!d.some(a=>null!==(0,k.deckEventDisplay)(a)))return a;let e=[];return d.forEach((a,d)=>{d>0&&e.push((0,b.jsx)("br",{},c+"-br-"+d));let f=(0,k.deckEventDisplay)(a);f?e.push((0,b.jsxs)("span",{className:"deck-event",children:[(0,b.jsx)("span",{className:"deck-event-label",children:f.label}),f.detail?" "+f.detail:""]},c+"-"+d)):e.push((0,b.jsx)("span",{children:a},c+"-"+d))}),e}(p.text,a.id),q,u&&z?(0,b.jsx)(Q,{message:a,conversationId:v.id,status:z,onDone:()=>{a8()}},a.id+z):null,(0,b.jsx)(R,{names:w})]}),au[a.id]?(0,b.jsx)("div",{className:"msg-body",children:au[a.id].map(a=>(0,b.jsx)("div",{children:(a.sender_name||"Agent")+": "+N(a.content)},a.id))}):null]})]},a.id)}),D.filter(a=>!bE.has(a.eventId)).map(bF),bI(1/0),(0,b.jsx)("div",{ref:aS}),(0,b.jsx)("div",{ref:aP})]}),a5?(0,b.jsxs)("div",{className:"computer-float",children:[(0,b.jsxs)("div",{className:"computer-top",children:[(0,b.jsxs)("span",{className:"computer-lights","aria-hidden":"true",children:[(0,b.jsx)("span",{className:"computer-light computer-light-red"}),(0,b.jsx)("span",{className:"computer-light computer-light-yellow"}),(0,b.jsx)("span",{className:"computer-light computer-light-green"})]}),(0,b.jsxs)("span",{className:"computer-teach",children:[(0,b.jsxs)("span",{className:"computer-teach-pill",children:[(0,b.jsx)("span",{className:"computer-teach-mark","aria-hidden":"true"}),"Teach a task"]}),(0,b.jsx)("span",{className:"computer-expand","aria-hidden":"true",children:(0,b.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",children:(0,b.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,b.jsx)("div",{className:"messages"===bA?"computer-band":"computer-band computer-band-note",ref:aR,children:bB}),(0,b.jsxs)("div",{className:"computer-desk",children:[a6?(0,b.jsx)("iframe",{className:"computer-page",sandbox:"",srcDoc:a6,tabIndex:-1}):null,(0,b.jsxs)("div",{className:"computer-dock",children:[(0,b.jsx)("img",{src:"/computer/dock-chrome.png",alt:""}),(0,b.jsx)("img",{src:"/computer/dock-gray.png",alt:""}),(0,b.jsx)("img",{src:"/computer/dock-terminal.png",alt:""})]})]})]}):null]}),(0,b.jsxs)("div",{className:"composer",onPaste:a=>{let b=[],c=a.clipboardData.files;if(c&&c.length>0)b.push(...Array.from(c));else for(let c of Array.from(a.clipboardData.items)){if("file"!==c.kind)continue;let a=c.getAsFile();a&&b.push(a)}0!==b.length&&(a.preventDefault(),by(b))},children:[ab&&bw.length>0?(0,b.jsx)("div",{className:"mention-list",children:bw.map(a=>(0,b.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),bx(a.name)},children:["@",a.name]},a.id))}):null,(0,b.jsxs)("div",{className:"composer-box",children:[af?(0,b.jsx)("p",{className:"attach-error",children:af}):null,ad.length>0?(0,b.jsx)("div",{className:"attach-names",children:ad.map(a=>(0,b.jsx)("span",{children:a.name},a.id))}):null,(0,b.jsx)("textarea",{ref:ah,rows:2,value:Z,onChange:a=>{var b,c;let d,e;$(a.target.value),b=a.target.value,c=a.target.selectionStart,(e=(d=b.slice(0,c)).lastIndexOf("@"))<0||/\s/.test(d.slice(e+1))?ac(!1):(aa(d.slice(e+1)),ac(!0))},onKeyDown:a=>{if("Enter"===a.key&&!a.shiftKey){if(a.preventDefault(),ab&&bw.length>0)return void bx(bw[0].name);bz()}},placeholder:"Say something"})]}),(0,b.jsx)("input",{ref:ai,className:"attach-input",type:"file",multiple:!0,onChange:a=>{by(Array.from(a.target.files||[])),a.target.value=""}}),(0,b.jsx)("button",{type:"button",className:"attach-word",onClick:()=>ai.current?.click(),children:"Attach"}),(0,b.jsx)("button",{type:"button",className:"send-btn",onClick:bz,children:"Send"})]})]}):bg?(0,b.jsxs)("div",{className:"welcome",children:[(0,b.jsx)(e.default,{className:"welcome-mark",src:"/brand/botmancers-logo-outline-256.png",alt:"Botmancers",width:144,height:144,priority:!0}),(0,b.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})]}):(0,b.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})}),ax?(0,b.jsx)(o.default,{ids:[ax.id],onCancel:()=>{bo(ax.id),ay(null)},onDeleted:a=>{bn(a)}}):null,aG&&v?(0,b.jsx)(y,{agentId:v.details.id,agentName:v.details.name,agents:q.map(a=>({id:a.id,name:a.name})),origin:{conversationId:v.id,label:`${v.details.name} thread`},onExchangeStarted:()=>{a8()},onClose:()=>{aH(!1),requestAnimationFrame(()=>aI.current?.focus())},onOpenThread:a=>{aH(!1),bc(a).then(()=>requestAnimationFrame(()=>aI.current?.focus()))}},v.details.id):null,aD?(0,b.jsx)(s,{deckState:a2,onClose:()=>{aE(!1),requestAnimationFrame(()=>aF.current?.focus())},onDeleted:a=>{bn(a)}}):null,az?(0,b.jsxs)("div",{ref:aB,className:"row-menu",role:"menu","aria-label":`Actions for ${az.bot.name}`,style:{left:az.x,top:az.y},onPointerDown:a=>a.stopPropagation(),onClick:a=>a.stopPropagation(),onContextMenu:a=>a.preventDefault(),onKeyDown:a=>{let b=Array.from(a.currentTarget.querySelectorAll("[role=menuitem]")),c=b.indexOf(document.activeElement),d=c=>{a.preventDefault(),b[(c+b.length)%b.length]?.focus()};"ArrowDown"===a.key?d(c+1):"ArrowUp"===a.key?d(c-1):"Home"===a.key?d(0):"End"===a.key?d(b.length-1):"Tab"===a.key&&(a.preventDefault(),bp())},children:[(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,autoFocus:!0,onClick:a=>{a.stopPropagation(),bp(),bj(az.bot)},children:az.bot.pinned?"Unpin":"Pin"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bp(),bl(az.bot)},children:"Mark as Unread"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bp(!1),ar(az.bot.id),at(az.bot.name)},children:"Rename Agent"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bp(!1),bk(az.bot,!az.bot.hidden)},children:az.bot.hidden?"Unhide":"Hide from sidebar"}),(0,b.jsx)(d.default,{role:"menuitem",tabIndex:-1,href:`/bots/${az.bot.id}/config`,onClick:()=>aA(null),children:"Config"}),(0,b.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:a=>{a.stopPropagation(),bp(!1),ay(az.bot)},children:"Delete agent…"})]}):null]}),aj&&(0,b.jsx)(S,{anchorRef:al,deckState:a2,onRetryDecks:a3,onClose:bJ,onCreated:()=>{a7(),bJ()}})]})}],60350)},67161,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return v}});let d=a.r(33354),e=a.r(46058),f=a.r(87924),g=e._(a.r(72131)),h=d._(a.r(35112)),i=d._(a.r(58018)),j=a.r(94915),k=a.r(345),l=a.r(4486),m=a.r(53773),n=d._(a.r(2305)),o=a.r(8591),p={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 q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=g.useEffect,t=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:t,onLoadingCompleteRef:u,setBlurComplete:v,setShowAltText:w,sizesInput:x,onLoad:y,onError:z,...A},B)=>{let C=(0,g.useRef)(!1),D=(0,g.useRef)(null);s(()=>{let{current:a}=C,{current:b}=D;a||null===b||(z&&(b.src=b.src),b.complete&&q(b,l,t,u,v,n,x),C.current=!0)},[a,l,t,u,z,n,x]);let E=(0,o.useMergedRef)(B,D);return(0,f.jsx)("img",{...A,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:E,onLoad:a=>{q(a.currentTarget,l,t,u,v,n,x)},onError:a=>{w(!0),"empty"!==l&&v(!0),z&&z(a)}})});function u({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let v=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,s]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(t,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:s,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(u,{isAppRouter:!c,imgAttributes:x}):null]})});("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)},33095,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(33354),g=a.r(94915),h=a.r(67161),i=f._(a.r(2305));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.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[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},71987,(a,b,c)=>{b.exports=a.r(33095)},92966,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HeadManagerContext},58018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(33354),g=a.r(46058),h=a.r(87924),i=g._(a.r(72131)),j=f._(a.r(94613)),k=a.r(92966);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("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)},4486,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ImageConfigContext},53773,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.RouterContext},35444,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},2305,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(35444),e=a.r(68063);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//"))if(b.includes("/_next/static/immutable")&&!(0,e.getAssetToken)())h=void 0;else{let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
2
2
  Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},4987,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:e,blurDataURL:f,objectFit:g}){let h=c?40*c:a,i=e?40*e:b,j=h&&i?`viewBox='0 0 ${h} ${i}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${j}%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='${j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${f}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},345,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={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}},94915,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return j}});let d=a.r(68063),e=a.r(4987),f=a.r(345),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:k=!1,preload:l=!1,loading:m,className:n,quality:o,width:p,height:q,fill:r=!1,style:s,overrideSrc:t,onLoad:u,onLoadingComplete:v,placeholder:w="empty",blurDataURL:x,fetchPriority:y,decoding:z="async",layout:A,objectFit:B,objectPosition:C,lazyBoundary:D,lazyRoot:E,...F},G){var H;let I,J,K,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=G,P=L||f.imageConfigDefault;if("allSizes"in P)I=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),c=P.qualities?.sort((a,b)=>a-b);I={...P,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===O)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 Q=F.loader||O;delete F.loader,delete F.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
3
3
  Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(A){"fill"===A&&(r=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];a&&(s={...s,...a});let c={responsive:"100vw",fill:"100vw"}[A];c&&!b&&(b=c)}let S="",T=i(p),U=i(q);if((H=a)&&"object"==typeof H&&(h(H)||void 0!==H.src)){let b=h(a)?a.default:a;if(!b.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(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.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(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(J=b.blurWidth,K=b.blurHeight,x=x||b.blurDataURL,S=b.src,!r)if(T||U){if(T&&!U){let a=T/b.width;U=Math.round(b.height*a)}else if(!T&&U){let a=U/b.height;T=Math.round(b.width*a)}}else T=b.width,U=b.height}let V=!k&&!l&&("lazy"===m||void 0===m);(!(a="string"==typeof a?a:S)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,V=!1),I.unoptimized&&(c=!0),R&&!I.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let W=i(o),X=Object.assign(r?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:B,objectPosition:C}:{},M?{}:{color:"transparent"},s),Y=N||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:J,blurHeight:K,blurDataURL:x||"",objectFit:X.objectFit})}")`:`url("${w}")`,Z=g.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(b.includes("/_next/static/immutable")&&!(0,d.getAssetToken)())a=void 0;else if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:I,src:a,unoptimized:c,width:T,quality:W,sizes:b,loader:Q}),aa=V?"lazy":m;return{props:{...F,loading:aa,fetchPriority:y,width:T,height:U,decoding:z,className:n,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:t||_.src},meta:{unoptimized:c,preload:l||k,placeholder:w,fill:r}}}},94613,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(72131),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;return b?.mountedInstances?.add(a.children),function(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}(),e(),e(),null}}];
4
4
 
@@ -0,0 +1,3 @@
1
+ module.exports=[60645,(a,b,c)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_exchanges_page_actions_0hcso2x.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[67663,(a,b,c)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_threads_%5Bid%5D_page_actions_1fte2n3.js.map