botmancers 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/CHANGELOG.md +107 -1
  2. package/README.md +178 -32
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +27 -1
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/prerender-manifest.json +33 -5
  7. package/app/.next/required-server-files.json +2 -2
  8. package/app/.next/routes-manifest.json +198 -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 +3 -3
  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 +3 -3
  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 +3 -3
  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]/pins/route/app-paths-manifest.json +3 -0
  32. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/build-manifest.json +12 -0
  33. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +12 -0
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -0
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
  37. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  38. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/build-manifest.json +12 -0
  39. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  40. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +9 -0
  41. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -0
  42. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  43. package/app/.next/server/app/api/bots/[id]/sessions/route/app-paths-manifest.json +3 -0
  44. package/app/.next/server/app/api/bots/[id]/sessions/route/build-manifest.json +12 -0
  45. package/app/.next/server/app/api/bots/[id]/sessions/route/server-reference-manifest.json +4 -0
  46. package/app/.next/server/app/api/bots/[id]/sessions/route.js +12 -0
  47. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -0
  48. package/app/.next/server/app/api/bots/[id]/sessions/route_client-reference-manifest.js +3 -0
  49. package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
  50. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  51. package/app/.next/server/app/api/bots/availability/route.js +2 -2
  52. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/bots/delete-preview/route.js +4 -4
  54. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/bots/import/route.js +3 -3
  56. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/bots/manage/route.js +3 -3
  58. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
  60. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/bots/route.js +7 -7
  62. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/conversations/[id]/approve/route.js +3 -3
  64. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/conversations/[id]/deny/route.js +3 -3
  66. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/conversations/[id]/draft/route.js +3 -3
  68. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
  70. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  71. package/app/.next/server/app/api/conversations/[id]/messages/route.js +6 -6
  72. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  73. package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
  74. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  75. package/app/.next/server/app/api/conversations/[id]/stop/route.js +4 -4
  76. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/conversations/route.js +3 -3
  78. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  80. package/app/.next/server/app/api/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  81. package/app/.next/server/app/api/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  82. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +11 -0
  83. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -0
  84. package/app/.next/server/app/api/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  85. package/app/.next/server/app/api/exchanges/[id]/route/app-paths-manifest.json +3 -0
  86. package/app/.next/server/app/api/exchanges/[id]/route/build-manifest.json +12 -0
  87. package/app/.next/server/app/api/exchanges/[id]/route/server-reference-manifest.json +4 -0
  88. package/app/.next/server/app/api/exchanges/[id]/route.js +11 -0
  89. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -0
  90. package/app/.next/server/app/api/exchanges/[id]/route_client-reference-manifest.js +3 -0
  91. package/app/.next/server/app/api/exchanges/route/app-paths-manifest.json +3 -0
  92. package/app/.next/server/app/api/exchanges/route/build-manifest.json +12 -0
  93. package/app/.next/server/app/api/exchanges/route/server-reference-manifest.json +4 -0
  94. package/app/.next/server/app/api/exchanges/route.js +12 -0
  95. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -0
  96. package/app/.next/server/app/api/exchanges/route_client-reference-manifest.js +3 -0
  97. package/app/.next/server/app/api/files/[name]/route.js +3 -2
  98. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/groups/route.js +3 -3
  100. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/health/route.js +3 -2
  102. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  104. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  106. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  108. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/mcp/route.js +3 -3
  110. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
  112. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/runtime-connections/route/app-paths-manifest.json +3 -0
  114. package/app/.next/server/app/api/runtime-connections/route/build-manifest.json +12 -0
  115. package/app/.next/server/app/api/runtime-connections/route/server-reference-manifest.json +4 -0
  116. package/app/.next/server/app/api/runtime-connections/route.js +9 -0
  117. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -0
  118. package/app/.next/server/app/api/runtime-connections/route_client-reference-manifest.js +3 -0
  119. package/app/.next/server/app/api/service-grants/route/app-paths-manifest.json +3 -0
  120. package/app/.next/server/app/api/service-grants/route/build-manifest.json +12 -0
  121. package/app/.next/server/app/api/service-grants/route/server-reference-manifest.json +4 -0
  122. package/app/.next/server/app/api/service-grants/route.js +9 -0
  123. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -0
  124. package/app/.next/server/app/api/service-grants/route_client-reference-manifest.js +3 -0
  125. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
  126. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/build-manifest.json +12 -0
  127. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
  128. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +12 -0
  129. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -0
  130. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
  131. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/app-paths-manifest.json +3 -0
  132. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/build-manifest.json +12 -0
  133. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/server-reference-manifest.json +4 -0
  134. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +12 -0
  135. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -0
  136. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route_client-reference-manifest.js +3 -0
  137. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +5 -4
  138. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/app-paths-manifest.json +3 -0
  140. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/build-manifest.json +12 -0
  141. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/server-reference-manifest.json +4 -0
  142. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +12 -0
  143. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -0
  144. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route_client-reference-manifest.js +3 -0
  145. package/app/.next/server/app/api/v0/agents/[agentId]/route/app-paths-manifest.json +3 -0
  146. package/app/.next/server/app/api/v0/agents/[agentId]/route/build-manifest.json +12 -0
  147. package/app/.next/server/app/api/v0/agents/[agentId]/route/server-reference-manifest.json +4 -0
  148. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +12 -0
  149. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -0
  150. package/app/.next/server/app/api/v0/agents/[agentId]/route_client-reference-manifest.js +3 -0
  151. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  152. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/build-manifest.json +12 -0
  153. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  154. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +12 -0
  155. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -0
  156. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  157. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/app-paths-manifest.json +3 -0
  158. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/build-manifest.json +12 -0
  159. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/server-reference-manifest.json +4 -0
  160. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +12 -0
  161. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -0
  162. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route_client-reference-manifest.js +3 -0
  163. package/app/.next/server/app/api/v0/agents/route/app-paths-manifest.json +3 -0
  164. package/app/.next/server/app/api/v0/agents/route/build-manifest.json +12 -0
  165. package/app/.next/server/app/api/v0/agents/route/server-reference-manifest.json +4 -0
  166. package/app/.next/server/app/api/v0/agents/route.js +12 -0
  167. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -0
  168. package/app/.next/server/app/api/v0/agents/route_client-reference-manifest.js +3 -0
  169. package/app/.next/server/app/api/v0/capabilities/route/app-paths-manifest.json +3 -0
  170. package/app/.next/server/app/api/v0/capabilities/route/build-manifest.json +12 -0
  171. package/app/.next/server/app/api/v0/capabilities/route/server-reference-manifest.json +4 -0
  172. package/app/.next/server/app/api/v0/capabilities/route.js +12 -0
  173. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -0
  174. package/app/.next/server/app/api/v0/capabilities/route_client-reference-manifest.js +3 -0
  175. package/app/.next/server/app/api/v0/conversations/[id]/route.js +5 -4
  176. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  178. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  179. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  180. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +12 -0
  181. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -0
  182. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  183. package/app/.next/server/app/api/v0/exchanges/[id]/route/app-paths-manifest.json +3 -0
  184. package/app/.next/server/app/api/v0/exchanges/[id]/route/build-manifest.json +12 -0
  185. package/app/.next/server/app/api/v0/exchanges/[id]/route/server-reference-manifest.json +4 -0
  186. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +12 -0
  187. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -0
  188. package/app/.next/server/app/api/v0/exchanges/[id]/route_client-reference-manifest.js +3 -0
  189. package/app/.next/server/app/api/v0/exchanges/route/app-paths-manifest.json +3 -0
  190. package/app/.next/server/app/api/v0/exchanges/route/build-manifest.json +12 -0
  191. package/app/.next/server/app/api/v0/exchanges/route/server-reference-manifest.json +4 -0
  192. package/app/.next/server/app/api/v0/exchanges/route.js +12 -0
  193. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -0
  194. package/app/.next/server/app/api/v0/exchanges/route_client-reference-manifest.js +3 -0
  195. package/app/.next/server/app/api/v0/mcp/route.js +7 -4
  196. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/app-paths-manifest.json +3 -0
  198. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/build-manifest.json +12 -0
  199. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/server-reference-manifest.json +4 -0
  200. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +12 -0
  201. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -0
  202. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route_client-reference-manifest.js +3 -0
  203. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/app-paths-manifest.json +3 -0
  204. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/build-manifest.json +12 -0
  205. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/server-reference-manifest.json +4 -0
  206. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +12 -0
  207. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -0
  208. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route_client-reference-manifest.js +3 -0
  209. package/app/.next/server/app/api/v0/pins/[pinRef]/route/app-paths-manifest.json +3 -0
  210. package/app/.next/server/app/api/v0/pins/[pinRef]/route/build-manifest.json +12 -0
  211. package/app/.next/server/app/api/v0/pins/[pinRef]/route/server-reference-manifest.json +4 -0
  212. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +12 -0
  213. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -0
  214. package/app/.next/server/app/api/v0/pins/[pinRef]/route_client-reference-manifest.js +3 -0
  215. package/app/.next/server/app/api/v0/requests/[id]/route.js +5 -4
  216. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/app-paths-manifest.json +3 -0
  218. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/build-manifest.json +12 -0
  219. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/server-reference-manifest.json +4 -0
  220. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +12 -0
  221. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -0
  222. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route_client-reference-manifest.js +3 -0
  223. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/app-paths-manifest.json +3 -0
  224. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/build-manifest.json +12 -0
  225. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
  226. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +12 -0
  227. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -0
  228. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
  229. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +5 -5
  230. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/wakes/[id]/decision/route.js +5 -5
  232. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/wakes/[id]/retry/route.js +5 -5
  234. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  235. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  236. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  237. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/exchanges/page/app-paths-manifest.json +3 -0
  239. package/app/.next/server/app/exchanges/page/build-manifest.json +20 -0
  240. package/app/.next/server/app/exchanges/page/next-font-manifest.json +11 -0
  241. package/app/.next/server/app/exchanges/page/react-loadable-manifest.json +1 -0
  242. package/app/.next/server/app/exchanges/page/server-reference-manifest.json +4 -0
  243. package/app/.next/server/app/exchanges/page.js +13 -0
  244. package/app/.next/server/app/exchanges/page.js.nft.json +1 -0
  245. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +3 -0
  246. package/app/.next/server/app/exchanges.html +1 -0
  247. package/app/.next/server/app/exchanges.meta +34 -0
  248. package/app/.next/server/app/exchanges.rsc +22 -0
  249. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +22 -0
  250. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +4 -0
  251. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +26 -0
  252. package/app/.next/server/app/index.html +1 -1
  253. package/app/.next/server/app/index.rsc +3 -3
  254. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  255. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  256. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  257. package/app/.next/server/app/page.js +1 -1
  258. package/app/.next/server/app/page.js.nft.json +1 -1
  259. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  260. package/app/.next/server/app/settings/page.js +1 -1
  261. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  262. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/settings.html +1 -1
  264. package/app/.next/server/app/settings.rsc +3 -3
  265. package/app/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  266. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  267. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  268. package/app/.next/server/app/threads/[id]/page/app-paths-manifest.json +3 -0
  269. package/app/.next/server/app/threads/[id]/page/build-manifest.json +20 -0
  270. package/app/.next/server/app/threads/[id]/page/next-font-manifest.json +11 -0
  271. package/app/.next/server/app/threads/[id]/page/react-loadable-manifest.json +1 -0
  272. package/app/.next/server/app/threads/[id]/page/server-reference-manifest.json +4 -0
  273. package/app/.next/server/app/threads/[id]/page.js +13 -0
  274. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -0
  275. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +3 -0
  276. package/app/.next/server/app-paths-manifest.json +27 -1
  277. package/app/.next/server/chunks/0ivl_api_v0_agents_[agentId]_conversations_[conversationId]_route_actions_0lvijtu.js +3 -0
  278. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_pins_route_actions_0e1st6o.js +3 -0
  279. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_conversations_route_actions_0ko3117.js +3 -0
  280. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_sessions_[ref]_route_actions_0o7q3vt.js +3 -0
  281. package/app/.next/server/chunks/{[externals]__18bqksw._.js → [externals]__06lqs5i._.js} +1 -1
  282. package/app/.next/server/chunks/{[root-of-the-server]__1vxmbdl._.js → [root-of-the-server]__0-45blq._.js} +1 -1
  283. package/app/.next/server/chunks/[root-of-the-server]__02kssr-._.js +3 -0
  284. package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +3 -0
  285. package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +3 -0
  286. package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +3 -0
  287. package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +3 -0
  288. package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +3 -0
  289. package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +3 -0
  290. package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +44 -0
  291. package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +3 -0
  292. package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +3 -0
  293. package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +582 -55
  294. package/app/.next/server/chunks/{[root-of-the-server]__07l_rgn._.js → [root-of-the-server]__0j0i8xz._.js} +1 -1
  295. package/app/.next/server/chunks/[root-of-the-server]__0lwsto-._.js +5 -0
  296. package/app/.next/server/chunks/[root-of-the-server]__0s1enbp._.js +3 -0
  297. package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +3 -0
  298. package/app/.next/server/chunks/[root-of-the-server]__0wg992i._.js +3 -0
  299. package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +44 -0
  300. package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +3 -0
  301. package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +3 -0
  302. package/app/.next/server/chunks/{[root-of-the-server]__17oz13o._.js → [root-of-the-server]__1_01-13._.js} +3 -3
  303. package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +3 -0
  304. package/app/.next/server/chunks/[root-of-the-server]__1bhzfu_._.js +7 -0
  305. package/app/.next/server/chunks/{[root-of-the-server]__1khwkvb._.js → [root-of-the-server]__1c3e2ds._.js} +1 -1
  306. package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +44 -0
  307. package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +3 -0
  308. package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +44 -0
  309. package/app/.next/server/chunks/[root-of-the-server]__1i388e2._.js +3 -0
  310. package/app/.next/server/chunks/[root-of-the-server]__1kvvs4u._.js +3 -0
  311. package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +3 -0
  312. package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +3 -0
  313. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +7 -0
  314. package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +3 -0
  315. package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +44 -0
  316. package/app/.next/server/chunks/[root-of-the-server]__1y_j43n._.js +3 -0
  317. package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +3 -0
  318. package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +3 -0
  319. package/app/.next/server/chunks/_0061c2q._.js +3 -0
  320. package/app/.next/server/chunks/_023se5j._.js +44 -0
  321. package/app/.next/server/chunks/_02pb_qv._.js +44 -0
  322. package/app/.next/server/chunks/_05ro-21._.js +44 -0
  323. package/app/.next/server/chunks/_07on0dc._.js +44 -0
  324. package/app/.next/server/chunks/_08208nz._.js +44 -0
  325. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  326. package/app/.next/server/chunks/_0fe5qz5._.js +44 -0
  327. package/app/.next/server/chunks/_0i8_xso._.js +3 -0
  328. package/app/.next/server/chunks/_0qoji5a._.js +44 -0
  329. package/app/.next/server/chunks/_0uv2pi5._.js +44 -0
  330. package/app/.next/server/chunks/_0wdl90-._.js +44 -0
  331. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  332. package/app/.next/server/chunks/_11-q8k1._.js +3 -0
  333. package/app/.next/server/chunks/_11ijk9k._.js +44 -0
  334. package/app/.next/server/chunks/_198sn69._.js +44 -0
  335. package/app/.next/server/chunks/_1ba_5hd._.js +44 -0
  336. package/app/.next/server/chunks/_1ess5if._.js +3 -0
  337. package/app/.next/server/chunks/_1i0zod4._.js +3 -0
  338. package/app/.next/server/chunks/_1m89jq5._.js +44 -0
  339. package/app/.next/server/chunks/_1n39wr_._.js +44 -0
  340. package/app/.next/server/chunks/_1ryxqo1._.js +44 -0
  341. package/app/.next/server/chunks/_1vemgly._.js +44 -0
  342. package/app/.next/server/chunks/_20azcus._.js +3 -0
  343. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_[ref]_route_actions_02gp9-5.js +3 -0
  344. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_route_actions_1s_wxg4.js +3 -0
  345. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_cancel_route_actions_0lh0fl4.js +3 -0
  346. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_route_actions_1w4jhin.js +3 -0
  347. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_route_actions_028wchg.js +3 -0
  348. package/app/.next/server/chunks/_next-internal_server_app_api_runtime-connections_route_actions_06rulng.js +3 -0
  349. package/app/.next/server/chunks/_next-internal_server_app_api_service-grants_route_actions_1459xk1.js +3 -0
  350. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_pins_route_actions_08uftk9.js +3 -0
  351. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_route_actions_127sxvv.js +3 -0
  352. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_sessions_route_actions_0pm6tcu.js +3 -0
  353. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_route_actions_00azkhd.js +3 -0
  354. package/app/.next/server/chunks/_next-internal_server_app_api_v0_capabilities_route_actions_0d-eefd.js +3 -0
  355. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_cancel_route_actions_1hb2q7i.js +3 -0
  356. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_route_actions_098f50-.js +3 -0
  357. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_route_actions_1ftmhhm.js +3 -0
  358. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_detach_route_actions_0nk3268.js +3 -0
  359. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_messages_route_actions_1wenu96.js +3 -0
  360. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_route_actions_0z7fu_c.js +3 -0
  361. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_messages_route_actions_1-rgf_k.js +3 -0
  362. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_pins_route_actions_0y3ere3.js +3 -0
  363. package/app/.next/server/chunks/lib_0kik6bx._.js +1 -1
  364. package/app/.next/server/chunks/lib_0lqoyb4._.js +217 -0
  365. package/app/.next/server/chunks/lib_0pe3tiv._.js +1 -1
  366. package/app/.next/server/chunks/lib_0riiofz._.js +44 -0
  367. package/app/.next/server/chunks/lib_16j2293._.js +217 -0
  368. package/app/.next/server/chunks/lib_1nb_61e._.js +217 -0
  369. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +25 -0
  370. package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +20 -0
  371. package/app/.next/server/chunks/ssr/{[root-of-the-server]__0sq4frf._.js → [root-of-the-server]__03186rx._.js} +1 -1
  372. package/app/.next/server/chunks/ssr/[root-of-the-server]__03xw2d9._.js +3 -0
  373. package/app/.next/server/chunks/ssr/{[root-of-the-server]__1x7o-fe._.js → [root-of-the-server]__0zzcbqg._.js} +1 -1
  374. package/app/.next/server/chunks/ssr/{[root-of-the-server]__029oxo_._.js → [root-of-the-server]__1feicqq._.js} +1 -1
  375. package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +3 -0
  376. package/app/.next/server/chunks/ssr/_0epgorw._.js +3 -0
  377. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +3 -0
  378. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +3 -0
  379. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  380. package/app/.next/server/chunks/ssr/_next-internal_server_app_exchanges_page_actions_0hcso2x.js +3 -0
  381. package/app/.next/server/chunks/ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js +3 -0
  382. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +3 -0
  383. package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +3 -0
  384. package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +3 -0
  385. package/app/.next/server/chunks/ssr/app_exchanges_page_tsx_0j-n2a1._.js +3 -0
  386. package/app/.next/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
  387. package/app/.next/server/chunks/ssr/node_modules_next_0x3i8za._.js +131 -0
  388. package/app/.next/server/middleware-build-manifest.js +3 -3
  389. package/app/.next/server/middleware.js +1 -1
  390. package/app/.next/server/next-font-manifest.js +1 -1
  391. package/app/.next/server/next-font-manifest.json +8 -0
  392. package/app/.next/server/pages/404.html +1 -1
  393. package/app/.next/server/pages/500.html +1 -1
  394. package/app/.next/server/prefetch-hints.json +14 -0
  395. package/app/.next/server/server-reference-manifest.js +1 -1
  396. package/app/.next/server/server-reference-manifest.json +1 -1
  397. package/app/.next/static/chunks/0bhd8eso48g27.js +1 -0
  398. package/app/.next/static/chunks/1ku9himlsx-hn.js +1 -0
  399. package/app/.next/static/chunks/21aqekm5z0j47.js +1 -0
  400. package/app/.next/static/chunks/2a8bomryx66oj.css +3 -0
  401. package/app/.next/static/chunks/3230ywnpii0s6.js +3 -0
  402. package/app/.next/static/chunks/35l2c95bd-jud.js +1 -0
  403. package/app/.next/static/chunks/3cijpn6vx3yzv.js +1 -0
  404. package/app/.next/static/chunks/3ue9194j59kem.js +1 -0
  405. package/app/.next/static/chunks/44ese2s4gzze_.js +1 -0
  406. package/app/BUILD_INFO.json +2 -2
  407. package/app/package.json +1 -1
  408. package/app/server.js +1 -1
  409. package/dist/cli.d.ts +1 -1
  410. package/dist/cli.js +35 -7
  411. package/dist/clients.d.ts +86 -0
  412. package/dist/clients.js +639 -0
  413. package/dist/config.d.ts +2 -1
  414. package/dist/config.js +7 -6
  415. package/dist/contract.d.ts +7 -1
  416. package/dist/contract.js +33 -8
  417. package/dist/home.d.ts +1 -1
  418. package/dist/home.js +1 -1
  419. package/dist/index.d.ts +1 -1
  420. package/dist/index.js +3 -3
  421. package/dist/managed.js +7 -0
  422. package/dist/product.d.ts +2 -0
  423. package/dist/product.js +7 -1
  424. package/dist/server.js +5 -4
  425. package/dist/upstream.js +21 -7
  426. package/package.json +7 -6
  427. package/schemas/botmancers.mcp.v2.tools.json +4565 -0
  428. package/skills/botmancers-collaboration/SKILL.md +114 -0
  429. package/skills/botmancers-collaboration/references/workflows.md +281 -0
  430. package/app/.next/server/chunks/[root-of-the-server]__08i4wq6._.js +0 -3
  431. package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +0 -3
  432. package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +0 -3
  433. package/app/.next/server/chunks/[root-of-the-server]__0qozubc._.js +0 -3
  434. package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +0 -7
  435. package/app/.next/server/chunks/[root-of-the-server]__10m3szc._.js +0 -3
  436. package/app/.next/server/chunks/[root-of-the-server]__19hjzs0._.js +0 -3
  437. package/app/.next/server/chunks/[root-of-the-server]__1afl75n._.js +0 -3
  438. package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +0 -3
  439. package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +0 -7
  440. package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +0 -3
  441. package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +0 -7
  442. package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +0 -3
  443. package/app/.next/server/chunks/_0ggf7vy._.js +0 -3
  444. package/app/.next/server/chunks/_0gtqbub._.js +0 -3
  445. package/app/.next/server/chunks/_0i7ga8c._.js +0 -3
  446. package/app/.next/server/chunks/_0orubev._.js +0 -3
  447. package/app/.next/server/chunks/_0sfpe9z._.js +0 -3
  448. package/app/.next/server/chunks/_0th2j4w._.js +0 -3
  449. package/app/.next/server/chunks/_1ee4ej2._.js +0 -3
  450. package/app/.next/server/chunks/_1esxu1s._.js +0 -3
  451. package/app/.next/server/chunks/_1gn7eh7._.js +0 -3
  452. package/app/.next/server/chunks/_1gw7qwf._.js +0 -3
  453. package/app/.next/server/chunks/_1inyx08._.js +0 -3
  454. package/app/.next/server/chunks/_1kjsnlr._.js +0 -3
  455. package/app/.next/server/chunks/_1p8rola._.js +0 -3
  456. package/app/.next/server/chunks/app_api_import-capabilities_route_ts_013w1kt._.js +0 -3
  457. package/app/.next/server/chunks/lib_051fv4x._.js +0 -111
  458. package/app/.next/server/chunks/lib_07adeq3._.js +0 -111
  459. package/app/.next/server/chunks/lib_draft_ts_1atoius._.js +0 -3
  460. package/app/.next/server/chunks/ssr/_0k_7i66._.js +0 -131
  461. package/app/.next/server/chunks/ssr/_1flnty7._.js +0 -23
  462. package/app/.next/server/chunks/ssr/app_components_0bhuhd-._.js +0 -3
  463. package/app/.next/server/chunks/ssr/app_components_0w2_b3t._.js +0 -3
  464. package/app/.next/static/chunks/0774d7ob6aze_.js +0 -1
  465. package/app/.next/static/chunks/0d3ein53nlgja.js +0 -1
  466. package/app/.next/static/chunks/0qbtymorcz-l9.js +0 -3
  467. package/app/.next/static/chunks/3wdlh25l1vww9.js +0 -1
  468. package/app/.next/static/chunks/3zqbpbm93yqzh.css +0 -3
  469. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_buildManifest.js +0 -0
  470. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_clientMiddlewareManifest.js +0 -0
  471. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10331,74904,4335,e=>{"use strict";var t=e.i(43476);let r=["hermes","cursor","claude","codex","muse"],n={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},s="hermes";r.join("|");let i=r.map(e=>({value:e,label:n[e]})),a="/settings",c="Select an Agent Deck…",o="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",l="Runs use the server above. Remote execution is unconfirmed.",u="Configure the Agent Deck server in Settings",d="Saved Agent Deck not on this server — saving keeps it unless you pick another.",f={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function g(e=null){return{status:"loading",decks:[],cachedDecks:e,serverUrl:"",checkedAt:0,error:""}}function h(e){return String(e).padStart(2,"0")}function m(e){let t=new Date(e);return`${h(t.getHours())}:${h(t.getMinutes())}:${h(t.getSeconds())}`}function p(e){switch(e.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${e.decks.length} ${1===e.decks.length?"deck":"decks"} \xb7 checked ${m(e.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function k(e){return"connected"===e.status?null:f[e.status]}function y(e){return"empty"===e.status||"malformed"===e.status||"unreachable"===e.status}async function v(e,t,r=Date.now){let n,s;try{n=await e("/api/agent-deck/decks",{cache:"no-store"})}catch(e){return{status:"unreachable",decks:[],cachedDecks:t.cachedDecks,serverUrl:t.serverUrl,checkedAt:r(),error:e instanceof Error?e.message:String(e)}}try{s=await n.json()}catch{s=void 0}return function(e,t,r){let n="object"==typeof e.body&&null!==e.body?e.body:{},s="string"==typeof n.server_url?n.server_url:t.serverUrl,i={cachedDecks:t.cachedDecks,serverUrl:s,checkedAt:r};if("string"==typeof n.server_url&&!n.server_url.trim())return{...i,status:"unconfigured",decks:[],error:""};if(e.ok){let t=function(e){if("object"!=typeof e||null===e)return null;let t=e.decks;if(!Array.isArray(t))return null;let r=[];for(let e of t){if("object"!=typeof e||null===e)return null;let t=e.id,n=e.name;if("string"!=typeof t||!t.trim()||"string"!=typeof n||!n.trim())return null;r.push({id:t,name:n})}return r}(e.body);return t?{...i,cachedDecks:t,status:t.length>0?"connected":"empty",decks:t,error:""}:{...i,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let a="string"==typeof n.error?n.error:`HTTP ${e.status}`,c="invalid-payload"===n.code||/unexpected deck payload/i.test(a);return{...i,status:c?"malformed":"unreachable",decks:[],error:a}}({ok:n.ok,status:n.status,body:s},t,r())}function b(e){return e?"connected"===e.status||"empty"===e.status?e.decks.map(e=>e.id):"unconfigured"===e.status?null:e.cachedDecks?e.cachedDecks.map(e=>e.id):null:null}function x(e,t){let r=String(e??"").trim(),n=t?t.decks.length>0?t.decks:t.cachedDecks??[]:[];return n.find(e=>e.id===r)?.name??r}function S(e){var t;return t=(e.agent??"").trim()||s,r.includes(String(t))?n[t]:String(t??"")}function j(e){return function(e){let t=e.needs_deck_selection;if(!0===t||1===t)return!0;if("string"==typeof t){let e=t.trim().toLowerCase();return"1"===e||"true"===e}return!1}(e)||!(e.deck_id??"").trim()}function N(e,t){if(j(e))return!1;let r=b(t);return!!r&&!r.includes((e.deck_id??"").trim())}function D(e){return`Agent: ${S(e)} \xb7 Agent Deck: `}function w(e,t){return j(e)?`${D(e)}not selected`:D(e)+x(e.deck_id??"",t)}function _(e,t){let r,n=(r=w(e,t),j(e)?`${r} — select in Config`:N(e,t)?r+" (deck unavailable — see Config)":r);if(j(e))return{prefix:n,deck:"",suffix:""};let s=D(e),i=x(e.deck_id??"",t);return{prefix:s,deck:i,suffix:n.slice(s.length+i.length)}}function E(e){return`~/.botmancers/${e}`}function C(e){let t=(e.working_directory??"").trim();return!t||e.id&&t===E(e.id)?null:t}let T=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];e.s(["AGENT_OPTIONS",0,i,"DECK_PLACEHOLDER",0,c,"DEFAULT_RUNTIME_FORM",0,{agent:s,deckId:"",workingDirectory:""},"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,o,"SAVED_DECK_MISSING_NOTE",0,d,"SELECT_DECK_ERROR",0,"Select an Agent Deck for this agent.","SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,u,"SETTINGS_NON_LOCAL_NOTE",0,l,"SETTINGS_PATH",0,a,"botAgentLabel",0,S,"configRuntimePatchBody",0,function(e,t){let r=t.workingDirectory.trim();return{id:e,agent:t.agent,deck_id:t.deckId.trim(),working_directory:r&&r!==E(e)?r:""}},"configRuntimeView",0,function(e,t){let r,n=[],s=w(e,t);if(j(e)){let t=(e.deck_name??"").trim();n.push(`No Agent Deck selected${t?` (was "${t}")`:""}. Pick a deck from the configured server before this agent can run.`)}else N(e,t)?(s+=" (deck unavailable)",n.push("This deck isn't on the configured server right now. Pick another deck, or fix the server in Settings.")):t&&"unconfigured"===t.status?n.push("No Agent Deck server set — add it in Settings."):t&&("unreachable"===t.status||"malformed"===t.status)&&!b(t)&&n.push("Can't reach the Agent Deck server, so this deck couldn't be checked — fix it in Settings, then retry.");return t&&t.serverUrl&&!function(e){let t;try{t=new URL("string"==typeof e?e.trim():"")}catch{return!1}let r=t.hostname.trim().toLowerCase().replace(/^\[|\]$/g,"");return"localhost"===r||"::1"===r||"::ffff:127.0.0.1"===r||/^127\.\d+\.\d+\.\d+$/.test(r)}(t.serverUrl)&&n.push("The workspace Agent Deck server isn't local. Remote runs are unconfirmed, so this agent's runs stop with an error until Settings points at a local server."),{summary:s,workingDirectory:(r=C(e))?`Working directory: ${r} (custom)`:`Working directory: ${E(e.id??"{agentID}")}`,notices:n,action:"Edit"}},"configWorkdirHint",0,function(e){return`Default: ${E(e)} — leave blank to use it.`},"deckEventDisplay",0,function(e){let t=String(e??"").trimStart(),r=T.find(e=>t.startsWith(e.prefix));return r?{label:r.label,detail:t.slice(r.prefix.length).trim()}:null},"deckLabel",0,x,"deckSlotCopy",0,k,"deckStateShowsRetry",0,y,"defaultWorkdirFor",0,E,"fetchDeckList",0,v,"formatClock",0,m,"initialDeckListState",0,g,"isMigratedPending",0,j,"newBotSubmitBody",0,function(e){let t={name:String(e.name??"").trim(),agent:e.agent,deck_id:e.deckId.trim()},r=e.workingDirectory.trim();return r&&(t.working_directory=r),t},"rosterRuntimeParts",0,_,"runtimeFormFromBot",0,function(e){let t=(e.agent??"").trim();return{agent:r.includes(t)?t:s,deckId:j(e)?"":(e.deck_id??"").trim(),workingDirectory:C(e)??""}},"runtimeFormView",0,function(e,t,r){let n=r?.includeName===!1?["agent","deck","workdir"]:["name","agent","deck","workdir"];return"loading"===t.status?{fields:n,submitDisabled:!0,blocker:""}:"connected"===t.status?{fields:n,submitDisabled:!1,blocker:""}:{fields:n,submitDisabled:!0,blocker:f[t.status]}},"settingsStatusLine",0,p],74904);let A={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function P({value:e,onChange:r,name:n,variant:s,legendId:a}){let c=A[s];return(0,t.jsxs)("fieldset",{className:"agent-fieldset","data-field":"agent",children:[(0,t.jsx)("legend",{id:a,className:c.legend,children:"Agent"}),(0,t.jsx)("div",{className:c.picks,role:"radiogroup","aria-labelledby":a,"aria-required":"true",children:i.map(s=>(0,t.jsxs)("label",{className:c.pick,children:[(0,t.jsx)("input",{type:"radio",name:n,value:s.value,checked:e===s.value,onChange:()=>r(s.value)})," "+s.label]},s.value))})]})}function R({id:e,labelId:r,state:n,value:s,onChange:i,onRetry:a,savedDeckId:o,variant:l}){let u=A[l],f=k(n),g=(o??"").trim();if(null===f){let r=!!g&&!n.decks.some(e=>e.id===g);return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,children:[(0,t.jsxs)("select",{id:e,className:u.control,"aria-required":"true","aria-describedby":r&&s===g?`${e}-saved-note`:void 0,value:s,title:s||void 0,onChange:e=>i(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:c}),r?(0,t.jsxs)("option",{value:g,title:g,children:[g," (saved)"]}):null,n.decks.map(e=>(0,t.jsx)("option",{value:e.id,title:e.id,children:e.name},e.id))]}),r&&s===g?(0,t.jsx)("p",{id:`${e}-saved-note`,className:u.note,children:d}):null]})}return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,role:"group","aria-labelledby":r,children:[g?(0,t.jsxs)("p",{className:u.note,children:["Saved Agent Deck: ",(0,t.jsx)("span",{title:g,children:g})]}):null,(0,t.jsxs)("p",{id:e,className:`${u.note} deck-slot`,role:"status",children:[(0,t.jsx)("span",{id:`${e}-copy`,children:f}),y(n)?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:u.retry,onClick:a,children:"Retry"})]}):null]})]})}function O({idPrefix:e,variant:r,deckId:n,onDeckId:s,deckState:i,onRetry:c,savedDeckId:l,workingDirectory:d,onWorkingDirectory:f,workdirPlaceholder:g,workdirHint:h}){let m=A[r],p=null===k(i);return(0,t.jsxs)("div",{className:"agent-deck-fields",children:[(0,t.jsx)("label",{className:m.label,id:`${e}-deck-label`,htmlFor:p?`${e}-deck`:void 0,children:"Agent Deck"}),(0,t.jsx)(R,{id:`${e}-deck`,labelId:`${e}-deck-label`,state:i,value:n,onChange:s,onRetry:c,savedDeckId:l,variant:r}),(0,t.jsx)("a",{href:a,className:m.link,children:u}),(0,t.jsx)("label",{className:m.label,htmlFor:`${e}-workdir`,children:"Working directory (optional)"}),(0,t.jsx)("input",{id:`${e}-workdir`,type:"text",className:"config"===r?m.control:void 0,"data-field":"workdir","aria-describedby":`${e}-workdir-hint ${e}-workdir-note`,value:d,placeholder:g,onChange:e=>f(e.target.value)}),(0,t.jsx)("p",{id:`${e}-workdir-hint`,className:m.hint,children:h}),(0,t.jsx)("p",{id:`${e}-workdir-note`,className:m.hint,children:o})]})}e.s(["AgentSection",0,function({idPrefix:e,variant:r,form:n,onChange:s,deckState:i,onRetry:a,savedDeckId:c,workdirPlaceholder:o,workdirHint:l}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P,{value:n.agent,onChange:e=>s({agent:e}),name:`${e}-agent`,variant:r,legendId:`${e}-agent-label`}),(0,t.jsx)(O,{idPrefix:e,variant:r,deckId:n.deckId,onDeckId:e=>s({deckId:e}),deckState:i,onRetry:a,savedDeckId:c,workingDirectory:n.workingDirectory,onWorkingDirectory:e=>s({workingDirectory:e}),workdirPlaceholder:o,workdirHint:l})]})},"RosterRuntimeLine",0,function({bot:e,state:r}){let{prefix:n,deck:s,suffix:i}=_(e,r);return(0,t.jsxs)("div",{className:"bot-runtime",title:n+s+i,children:[n,s?(0,t.jsx)("span",{className:"bot-runtime-deck",children:s}):null,i]})},"SettingsStatus",0,function({state:e,onRetry:r}){return(0,t.jsxs)("div",{"data-field":"status","data-state":e.status,children:[(0,t.jsx)("p",{className:"connected"===e.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:p(e)}),y(e)?(0,t.jsx)("button",{type:"button",onClick:r,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===e.status?(0,t.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:e.decks.map(e=>e.name).join(" · ")}):null,(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:l})]})}],10331);var $=e.i(71645);let I="botmancers.agentDeck.lastDecks";function L(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.name}let U=(e,t)=>{let r=new AbortController,n=setTimeout(()=>r.abort(),1e4);return fetch(e,{cache:"no-store",signal:r.signal,...t}).finally(()=>clearTimeout(n))};e.s(["useDeckList",0,function(){let[e,t]=(0,$.useState)(()=>g()),[r,n]=(0,$.useState)(0),s=(0,$.useRef)(null);return(0,$.useEffect)(()=>{let e=!1;return v(U,g(s.current??function(){try{let e=window.localStorage.getItem(I);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)&&t.every(L)?t:null}catch{return null}}())).then(r=>{if(!e){s.current=r.cachedDecks;var n=r.cachedDecks;if(n)try{window.localStorage.setItem(I,JSON.stringify(n))}catch{}t(r)}}),()=>{e=!0}},[r]),{state:e,retry:(0,$.useCallback)(()=>{t(e=>({...e,status:"loading",decks:[],error:""})),n(e=>e+1)},[])}}],4335)},32545,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(22016),s=e.i(10331),i=e.i(4335),a=e.i(74904);async function c(e){try{let t=await e.json();if(t.error)return t.error}catch{}return"request failed"}e.s(["default",0,function(){let{state:e,retry:o}=(0,i.useDeckList)(),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(""),[g,h]=(0,r.useState)(!1),[m,p]=(0,r.useState)(0),[k,y]=(0,r.useState)("clean"),[v,b]=(0,r.useState)(""),[x,S]=(0,r.useState)(0);(0,r.useEffect)(()=>{let e=!1;return fetch(a.SETTINGS_ENDPOINT,{cache:"no-store"}).then(async t=>{if(!t.ok)throw Error(await c(t));let r=await t.json();if(e)return;let n="string"==typeof r.server_url?r.server_url:"";u(n),f(n),h(!1)}).catch(()=>{e||h(!0)}),()=>{e=!0}},[m]);let j=null!==l&&d!==l;async function N(){y("saving"),b("");try{let e=await fetch(a.SETTINGS_ENDPOINT,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({server_url:d})});if(!e.ok)throw Error(await c(e));let t=await e.json();u(t.server_url),f(t.server_url),y("confirmed"),S(Date.now()),setTimeout(()=>{y(e=>"confirmed"===e?"clean":e)},5e3),o()}catch(e){y("error"),b(e instanceof Error?e.message:"request failed")}}(0,r.useEffect)(()=>{if(!j)return;let e=e=>{e.preventDefault()};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[j]);let D="saving"===k?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):j||"error"===k?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===k?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",(0,a.formatClock)(x)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"});return(0,t.jsx)("div",{className:"cfg-page",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)(n.default,{href:"/",onClick:function(e){j&&!window.confirm("You have unsaved changes. Leave without saving?")&&e.preventDefault()},className:"cfg-link cfg-back text-sm",children:"← Back to chat"}),(0,t.jsxs)("header",{className:"mt-3 mb-6",children:[(0,t.jsx)("h1",{className:"text-xl font-bold",children:"Settings"}),(0,t.jsx)("p",{className:"text-sm cfg-faint",children:"Workspace settings for every agent in this Botmancers."})]}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Agent Deck server"}),null!==l?D:null]}),g&&null===l?(0,t.jsxs)("p",{className:"text-sm cfg-muted",children:["Couldn't load this section."," ",(0,t.jsx)("button",{onClick:()=>p(e=>e+1),className:"cfg-link",children:"Retry"})]}):null===l?(0,t.jsx)("div",{className:"h-10 rounded-lg animate-pulse cfg-skel"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("label",{className:"block text-sm cfg-muted mb-1",htmlFor:"settings-server-url",children:"Server URL"}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,t.jsx)("input",{id:"settings-server-url",type:"url",value:d,onChange:e=>{f(e.target.value),"error"===k&&y("clean")},onKeyDown:e=>{"Enter"===e.key&&j&&(e.preventDefault(),N())},placeholder:"http://127.0.0.1:1111",className:"cfg-input text-sm sm:flex-1"}),(0,t.jsx)("button",{onClick:()=>{N()},disabled:!j||"saving"===k,className:"cfg-btn-primary text-sm",children:"saving"===k?"Saving…":"Save"}),j?(0,t.jsx)("button",{onClick:function(){f(l??""),y("clean"),b("")},disabled:"saving"===k,className:"cfg-btn-ghost text-sm",children:"Discard"}):null]}),"error"===k&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",v," ",(0,t.jsx)("button",{onClick:()=>{N()},className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:"The only Agent Deck server for this workspace. Bots pick their deck from this server."})]}),(0,t.jsx)("div",{className:"mt-4 pt-4 border-t cfg-line",children:(0,t.jsx)(s.SettingsStatus,{state:e,onRetry:o})})]})]})})}])},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return k},useLinkStatus:function(){return v}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let i=e.r(90809),a=e.r(43476),c=i._(e.r(71645)),o=e.r(95057),l=e.r(8372),u=e.r(18581),d=e.r(18967),f=e.r(5550),g=e.r(88540),h=e.r(91949),m=e.r(73668),p=e.r(9396);function k(t){var r;let n,s,i,[k,v]=(0,c.useOptimistic)(h.IDLE_LINK_STATUS),b=(0,c.useRef)(null),{href:x,as:S,children:j,prefetch:N=null,passHref:D,replace:w,shallow:_,scroll:E,onClick:C,onMouseEnter:T,onTouchStart:A,legacyBehavior:P=!1,onNavigate:R,transitionTypes:O,ref:$,unstable_dynamicOnHover:I,...L}=t;n=j,P&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let U=c.default.useContext(l.AppRouterContext),F=!1!==N,M=!1===N?"none":!0===N?"full":"auto",B="none"!==M?"auto"===M?p.FetchStrategy.PPR:p.FetchStrategy.Full:p.FetchStrategy.PPR,K="string"==typeof(r=S||x)?r:(0,o.formatUrl)(r);if(P){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=c.default.Children.only(n)}let W=P?s&&"object"==typeof s&&s.ref:$,G,H=c.default.useCallback(e=>(null!==U&&(b.current=(0,h.mountLinkInstance)(e,K,U,B,F,v,G)),()=>{b.current&&((0,h.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,K,U,B,v,G]),q={ref:(0,u.useMergedRef)(H,W),onClick(t){P||"function"!=typeof C||C(t),P&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!U||t.defaultPrevented||function(t,r,n,s,i,a,o,l="none"){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){s&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);c.default.startTransition(()=>{f(r,s?"replace":"push",!1===i?g.ScrollBehavior.NoScroll:g.ScrollBehavior.Default,n.current,o,l)})}}(t,K,b,w,E,R,O,M)},onMouseEnter(e){P||"function"!=typeof T||T(e),P&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),U&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){P||"function"!=typeof A||A(e),P&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),U&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,d.isAbsoluteUrl)(K)?q.href=K:P&&!D&&("a"!==s.type||"href"in s.props)||(q.href=(0,f.addBasePath)(K)),i=P?c.default.cloneElement(s,q):(0,a.jsx)("a",{...L,...q,children:n}),(0,a.jsx)(y.Provider,{value:k,children:i})}let y=(0,c.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,c.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let n=e.r(71645);function s(e,t){let r=(0,n.useRef)(null),s=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=i(e,n)),t&&(s.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(18967),s=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return o},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return c}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function c(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function o(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return c},formatWithValidation:function(){return l},urlObjectKeys:function(){return o}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let i=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function c(e){let{auth:t,hostname:r}=e,n=e.protocol||"",s=e.pathname||"",c=e.hash||"",o=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),o&&"object"==typeof o&&(o=String(i.urlQueryToSearchParams(o)));let u=e.search||o&&`?${o}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==l?(l="//"+(l||""),s&&"/"!==s[0]&&(s="/"+s)):l||(l=""),c&&"#"!==c[0]&&(c="#"+c),u&&"?"!==u[0]&&(u="?"+u),s=s.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${l}${s}${u}${c}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return c(e)}},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return k},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return b},NormalizeError:function(){return y},PageNotFoundError:function(){return v},SP:function(){return m},ST:function(){return p},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return u},isAbsoluteUrl:function(){return o},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return g},stringifyError:function(){return S}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let c=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&c.test(e)};function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function g(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,p=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class k extends Error{}class y extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31713,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(22016),r=e.i(57688);function i(e){let t,n=e.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!n)return null;try{t=JSON.parse(n[1])}catch{return null}if(!t||"object"!=typeof t)return null;let a=t,r="string"==typeof a.page?a.page:"string"==typeof a.html?a.html:void 0,i=void 0===r?{}:{page:r,html:r};return"running"===a.state||"stopped"===a.state?{state:a.state,...i}:"done"===a.state&&"string"==typeof a.output?{state:"done",output:a.output,...i}:null}function s(e){return"done"===e.state?e.output??"":"stopped"===e.state?"The command was stopped.":"The command is running"}var l=e.i(87303);function o(e){let t,n=e.match(/^\s*\[draft\]\s*([\s\S]*)$/);if(!n)return null;try{t=JSON.parse(n[1])}catch{return null}if(!t||"object"!=typeof t)return null;let a=t;return"email"!==a.channel&&"slack"!==a.channel||"open"!==a.state&&"sent"!==a.state&&"discarded"!==a.state||"string"!=typeof a.recipient||"string"!=typeof a.body?null:{channel:a.channel,recipient:a.recipient,body:a.body,state:a.state}}function d(e){let t=e.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return t?t[1]:null}var c=e.i(74904),u=e.i(10331),m=e.i(4335),f=e.i(68541),p=e.i(15983),h=e.i(10718);function g(e){return String(e).padStart(2,"0")}function y(e){let t=new Date(e);return`${t.getFullYear()}-${g(t.getMonth()+1)}-${g(t.getDate())} ${g(t.getHours())}:${g(t.getMinutes())}`}function b({deckState:e,onClose:a,onDeleted:r}){let i=(0,n.useId)(),[s,l]=(0,n.useState)(null),[o,d]=(0,n.useState)(""),[u,m]=(0,n.useState)(""),[f,g]=(0,n.useState)([]),[v,x]=(0,n.useState)(!1),j=(0,n.useRef)(null),w=(0,n.useRef)(null),N=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=!1;return fetch("/api/bots/manage",{cache:"no-store"}).then(async t=>{let n=await t.json().catch(()=>null);if(!e){if(!t.ok||!Array.isArray(n))return void d("string"==typeof n?.error?n.error:"Could not load agents.");l(n)}}).catch(()=>{e||d("Could not load agents.")}),j.current?.focus(),()=>{e=!0}},[]);let k=u.trim().toLowerCase(),S=(s??[]).filter(e=>e.name.toLowerCase().includes(k)),C=S.filter(e=>!e.blocked);return(0,n.useEffect)(()=>{if(v)return;let e=e=>{"Escape"===e.key&&a()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[v,a]),(0,t.jsxs)("div",{className:"modal-scrim manage-scrim",children:[(0,t.jsxs)("div",{ref:N,className:"manage-card",role:"dialog","aria-modal":"true","aria-labelledby":i,onKeyDown:e=>{if("Tab"!==e.key||!N.current)return;let t=Array.from(N.current.querySelectorAll("button:not(:disabled), input:not(:disabled)"));if(0===t.length)return;let n=t[0],a=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),a.focus()):e.shiftKey||document.activeElement!==a||(e.preventDefault(),n.focus())},children:[(0,t.jsxs)("div",{className:"manage-head",children:[(0,t.jsx)("h2",{id:i,className:"delete-title",children:"Manage agents"}),(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:a,children:"Close"})]}),(0,t.jsx)("label",{className:"manage-search-label",htmlFor:`${i}-search`,children:"Filter by name"}),(0,t.jsx)("input",{id:`${i}-search`,ref:j,className:"manage-search",type:"search",value:u,onChange:e=>m(e.target.value),placeholder:"Name contains…"}),(0,t.jsxs)("div",{className:"manage-tools",children:[(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{g(e=>Array.from(new Set([...e,...C.map(e=>e.id)])))},disabled:0===C.length,children:"Select all shown"}),(0,t.jsx)("button",{type:"button",className:"pin-word",onClick:()=>{g([]),j.current?.focus()},disabled:0===f.length,children:"Clear selection"}),(0,t.jsxs)("span",{className:"manage-count","aria-live":"polite",children:[f.length," selected · ",S.length," shown of ",s?.length??0]})]}),o?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:o}):null,s||o?null:(0,t.jsx)("p",{className:"delete-copy",children:"Loading agents…"}),s?(0,t.jsxs)("ul",{className:"manage-list","aria-label":"Agents",children:[0===S.length?(0,t.jsx)("li",{className:"delete-copy",children:"No agents match."}):null,S.map(n=>{let a=`${i}-row-${n.id}`,r=(0,c.isMigratedPending)(n)?"Not selected":(0,c.deckLabel)(n.deck_id??"",e);return(0,t.jsxs)("li",{className:n.blocked?"manage-row is-blocked":"manage-row","data-agent-id":n.id,children:[(0,t.jsx)("input",{id:a,type:"checkbox",checked:f.includes(n.id),disabled:!!n.blocked,onChange:()=>{var e;return e=n.id,void g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-describedby":n.blocked?`${a}-reason`:void 0}),(0,t.jsxs)("div",{className:"manage-copy",children:[(0,t.jsxs)("label",{htmlFor:a,className:"manage-name",children:[n.name,n.hidden?(0,t.jsx)("span",{className:"manage-tag",children:"Hidden"}):null]}),(0,t.jsxs)("dl",{className:"manage-meta",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Agent"}),(0,t.jsx)("dd",{children:(0,c.botAgentLabel)(n)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Agent Deck"}),(0,t.jsx)("dd",{children:r})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Source"}),(0,t.jsx)("dd",{children:n.source_provider||"Created here"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Created"}),(0,t.jsx)("dd",{children:y(n.created_at)})]}),n.last_activity?(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Last activity"}),(0,t.jsx)("dd",{children:y(n.last_activity)})]}):null]}),n.blocked?(0,t.jsx)("p",{id:`${a}-reason`,className:"manage-reason",children:(0,h.blockedReasonCopy)(n.blocked)}):null]})]},n.id)})]}):null,(0,t.jsxs)("div",{className:"form-actions manage-actions",children:[(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:a,children:"Cancel"}),(0,t.jsxs)("button",{ref:w,type:"button",className:"delete-btn",disabled:0===f.length,onClick:()=>x(!0),children:["Delete selected",f.length>0?` (${f.length})`:""]})]})]}),v?(0,t.jsx)(p.default,{ids:f,onCancel:()=>{x(!1),requestAnimationFrame(()=>w.current?.focus())},onDeleted:r}):null]})}function v({view:e,agentName:n}){if("loading"===e)return(0,t.jsx)("p",{className:"thread-note",role:"status",children:"Loading messages…"});if("error"===e)return(0,t.jsx)("p",{className:"thread-note thread-note-error",role:"alert",children:"Couldn’t load messages. Trying again…"});if("empty"===e){let e={title:`No messages with ${n} yet.`,hint:"Say something below to start the conversation."};return(0,t.jsxs)("div",{className:"thread-empty","data-thread-empty":"",children:[(0,t.jsx)("p",{className:"thread-empty-title",children:e.title}),(0,t.jsx)("p",{className:"thread-empty-hint",children:e.hint})]})}return null}let x={error:"Error"},j=[{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(e){let t=String(e??"").trim();if(!t)return null;let n=j.find(e=>e.pattern.test(t));return n?{kind:n.kind,severity:n.severity,title:n.title,recovery:n.recovery,detail:t}:null}function N({failure:e}){let[a,r]=(0,n.useState)("idle"),i=x[e.severity],s=(0,n.useId)();async function l(){try{await navigator.clipboard.writeText(e.detail),r("copied")}catch{r("failed")}}return(0,t.jsxs)("div",{className:`runtime-failure runtime-failure-${e.severity}`,role:"status","aria-labelledby":s,"data-runtime-failure":e.kind,children:[(0,t.jsxs)("p",{className:"runtime-failure-title",id:s,children:[(0,t.jsx)("span",{className:"runtime-failure-severity",children:i}),e.title]}),(0,t.jsx)("p",{className:"runtime-failure-recovery",children:e.recovery}),(0,t.jsxs)("details",{className:"runtime-failure-details",children:[(0,t.jsx)("summary",{children:"Details"}),(0,t.jsx)("code",{className:"runtime-failure-detail",children:e.detail}),(0,t.jsx)("button",{type:"button",className:"runtime-failure-copy",onClick:()=>{l()},children:"copied"===a?"Copied":"failed"===a?"Copy failed":"Copy details"})]})]})}function k(e){if(!e)return"";let t=i(e);if(t)return s(t);let n=w(e);if(n)return n.title;let a=(0,c.deckEventDisplay)(e);return a?`${a.label} ${a.detail}`.replace(/\s+/g," ").trim():e.replace(/\s+/g," ").trim()}let S={blocked:"Needs approval",rejected:"Not started",allowed:"Allowed",denied:"Denied",waiting:"Queued",stopped:"Stopped"};function C({notice:e,onDone:a}){let[r,i]=(0,n.useState)(!1),[s,l]=(0,n.useState)(""),o="blocked"!==e.tone||e.actionable?S[e.tone]:"Blocked",d=async t=>{if(!r&&e.wakeId){i(!0),l("");try{let n=await fetch(`/api/wakes/${e.wakeId}/decision`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({decision:t})});if(!n.ok){let e=await n.json().catch(()=>null);l("string"==typeof e?.error?.message?e.error.message:"The decision could not be recorded.")}}catch{l("The decision could not be recorded.")}finally{i(!1),a()}}};return(0,t.jsxs)("div",{className:`wake-notice wake-notice-${e.tone}`,role:"status","data-wake-notice":e.tone,"data-wake-id":e.wakeId??void 0,children:[(0,t.jsxs)("p",{className:"wake-notice-line",children:[(0,t.jsx)("span",{className:"wake-notice-label",children:o}),e.text]}),e.actionable?(0,t.jsxs)("div",{className:"wake-notice-actions",children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:r,onClick:()=>{d("allow")},children:"Allow"}),(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:r,onClick:()=>{d("deny")},children:"Deny"})]}):null,s?(0,t.jsx)("p",{className:"wake-notice-error",role:"alert",children:s}):null]})}function _(e){return!!e&&"chief-of-staff"===e.name.toLowerCase()}function R(e){return _(e)?0:e.pinned?1:2}function E(e,t,n,a){return e&&t?a-n+(t-e)>15e3?"Stopped":"Heartbeat "+new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(e)):"Stopped"}function P(e){let t=e;for(let e=0;e<2;e++){let e=t.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"");if(e===t)break;t=e}return t.replace(/^\s+/,"")}function A(e){let t=e;for(let e=0;e<4;e++){let e=t.replace(/^\s*\[(?:Message from|From) [^\]]+\]\s*(?:\r?\n)?/,"");if(e===t)break;t=e}return t}function D({message:e,conversationId:a,status:r,onDone:i}){let s=o(A(e.content)),[l,d]=(0,n.useState)(s?.recipient??""),[c,u]=(0,n.useState)(s?.body??""),[m,f]=(0,n.useState)(!1),[p,h]=(0,n.useState)("open"!==r),g=(0,n.useRef)("open"!==r);if(!s)return null;let y="open"!==r||p,b=y?s.recipient:l,v=y?s.body:c,x=async t=>{if(!y&&!g.current&&!m&&("send"!==t||""!==l.trim())){g.current=!0,h(!0),f(!0);try{(await fetch(`/api/conversations/${a}/draft`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:e.id,action:t,recipient:l,body:c})})).ok||(g.current=!1,h(!1))}finally{f(!1),i()}}};return(0,t.jsxs)("div",{className:"draft-card",children:[(0,t.jsx)("div",{className:"draft-title",children:"email"===s.channel?"New Email":"New Slack Message"}),(0,t.jsx)("input",{type:"text","aria-label":"Recipient",value:b,readOnly:y,disabled:m,onChange:e=>{y||d(e.target.value)}}),(0,t.jsx)("textarea",{rows:3,"aria-label":"Draft body",value:v,readOnly:y,disabled:m,onChange:e=>{y||u(e.target.value)}}),"sent"===r?(0,t.jsx)("span",{className:"draft-mark",children:"Sent"}):null,"discarded"===r?(0,t.jsx)("span",{className:"draft-mark",children:"Discarded"}):null,"discarded"!==r?(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:m,onClick:()=>{x("send")},children:"Send"}):null,"open"===r?(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:m,onClick:()=>{x("discard")},children:"Discard"}):null]})}function O({message:e,conversationId:a,status:r,onDone:i}){let s=d(e.content),[l,o]=(0,n.useState)(!1),c=(0,n.useRef)("pending"!==r);if(!s)return null;let u=async t=>{if(!c.current&&!l){c.current=!0,o(!0);try{(await fetch(`/api/conversations/${a}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:s,messageId:e.id})})).ok||(c.current=!1)}finally{o(!1),i()}}};return"pending"!==r?(0,t.jsx)("span",{className:"draft-mark",children:"approved"===r?"Approved":"Denied"}):(0,t.jsxs)("span",{className:"draft-mark",children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:l,onClick:()=>{u("approve")},children:"Approve"}),(0,t.jsx)("button",{type:"button",className:"approve-control",style:{marginLeft:8},disabled:l,onClick:()=>{u("deny")},children:"Deny"})]})}function I({names:e}){return 0===e.length?null:(0,t.jsx)(t.Fragment,{children:e.map(e=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),(0,t.jsxs)("a",{className:"file-control",href:`/api/files/${encodeURIComponent(e)}`,download:e,children:["Download ",e]})]},e))})}function T({anchorRef:e,deckState:a,onRetryDecks:r,onClose:i,onCreated:s}){let[l,o]=(0,n.useState)(""),[d,m]=(0,n.useState)(c.DEFAULT_RUNTIME_FORM),[f,p]=(0,n.useState)(""),[h,g]=(0,n.useState)(null),y=(0,n.useRef)(null),b=(0,n.useRef)(null);(0,n.useEffect)(()=>{r()},[r]),(0,n.useLayoutEffect)(()=>{let t=()=>{let t=e.current?.getBoundingClientRect();g(function(e,t){let n=Math.min(358,t.width-32),a=Math.max(16,t.width-16-n),r=16,i=16;if(e){i=Math.min(Math.max(e.left,16),a);let n=e.bottom+8;t.height-n-16>=360&&(r=n)}return{top:r,left:i,maxHeight:Math.max(0,t.height-r-16)}}(t?{left:t.left,bottom:t.bottom}:null,{width:window.innerWidth,height:window.innerHeight}))};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[e]),(0,n.useEffect)(()=>{b.current?.focus()},[]),(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.stopPropagation(),i())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[i]);let v=(0,c.runtimeFormView)(d,a),x=async e=>{if(e.preventDefault(),v.submitDisabled)return;if(!d.deckId.trim())return void p(c.SELECT_DECK_ERROR);p("");let t=await fetch("/api/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,c.newBotSubmitBody)({name:l,...d}))});if(!t.ok){let e=await t.json().catch(()=>null);p("string"==typeof e?.error&&e.error?e.error:"Failed to create agent");return}s()};return(0,t.jsx)("div",{className:"modal-scrim new-agent-scrim",onKeyDown:e=>{if("Tab"!==e.key||!y.current)return;let t=function(e,t,n){if(0===e.length)return null;let a=e[0],r=e[e.length-1],i=null!==t&&e.includes(t);return n?i&&t!==a?null:r:i&&t!==r?null:a}(Array.from(y.current.querySelectorAll('a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])')),document.activeElement,e.shiftKey);t&&(e.preventDefault(),t.focus())},children:(0,t.jsxs)("div",{ref:y,className:"form-card new-agent-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"new-agent-title",style:h??void 0,children:[(0,t.jsx)("div",{className:"kind-row",children:(0,t.jsx)("h2",{id:"new-agent-title",className:"kind-word new-agent-title",children:"New Agent"})}),(0,t.jsxs)("form",{onSubmit:x,className:"bot-form",children:[(0,t.jsxs)("div",{className:"new-agent-body",children:[(0,t.jsx)("label",{htmlFor:"bot-name",children:"Name"}),(0,t.jsx)("input",{ref:b,id:"bot-name",type:"text",value:l,onChange:e=>o(e.target.value),required:!0}),(0,t.jsx)(u.AgentSection,{idPrefix:"bot",variant:"modal",form:d,onChange:e=>{p(""),m(t=>({...t,...e}))},deckState:a,onRetry:r,workdirPlaceholder:"",workdirHint:c.NEW_BOT_WORKDIR_HINT}),f?(0,t.jsx)("p",{className:"form-error",role:"alert",children:f}):null]}),(0,t.jsxs)("div",{className:"form-actions",children:[(0,t.jsx)("button",{type:"button",className:"cancel-btn",onClick:i,children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"create-btn",disabled:v.submitDisabled,children:"Create"})]})]})]})})}e.s(["default",0,function(){var e;let[g,y]=(0,n.useState)([]),[x,j]=(0,n.useState)(!1),[S,$]=(0,n.useState)(null),M=(0,n.useRef)(!1),[L,z]=(0,n.useState)([]),[F,q]=(0,n.useState)([]),[H,U]=(0,n.useState)(null),B=(0,n.useRef)(null),[W,J]=(0,n.useState)(""),[K,G]=(0,n.useState)(""),[V,X]=(0,n.useState)(!1),[Y,Z]=(0,n.useState)([]),[Q,ee]=(0,n.useState)(""),et=(0,n.useRef)(null),en=(0,n.useRef)(null),[ea,er]=(0,n.useState)(!1),ei=(0,n.useRef)(null),[es,el]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(!1),[ec,eu]=(0,n.useState)(null),[em,ef]=(0,n.useState)(""),[ep,eh]=(0,n.useState)({}),eg=(0,n.useRef)({}),[ey,eb]=(0,n.useState)(null),[ev,ex]=(0,n.useState)(null),ej=(0,n.useRef)(null),ew=(0,n.useRef)(null),[eN,ek]=(0,n.useState)(!1),eS=(0,n.useRef)(null),[eC,e_]=(0,n.useState)(""),[eR,eE]=(0,n.useState)(!1),eP=(0,n.useRef)(null),eA=(0,n.useRef)(null),eD=(0,n.useRef)(null),eO=(0,n.useRef)(null),eI=(0,n.useRef)(null),eT=(0,n.useRef)(null),e$=(0,n.useRef)(null),[eM,eL]=(0,n.useState)([]),[ez,eF]=(0,n.useState)({serverNow:0,fetchedAt:0}),[eq,eH]=(0,n.useState)(()=>Date.now()),eU=(0,n.useRef)({}),eB=(0,n.useRef)(!1),[eW,eJ]=(0,n.useState)(!1),{state:eK,retry:eG}=(0,m.useDeckList)();(0,n.useEffect)(()=>{eB.current||0===g.length||(eB.current=!0,eJ(!0))},[g.length]),(0,n.useEffect)(()=>{let e=(0,f.importedBotId)(window.location.search);if(e)return void window.location.replace((0,f.importedConfigPath)(e));let t=Number(new URLSearchParams(window.location.search).get("deleted"));t>0&&window.history.replaceState(null,"","/"),eZ().then(()=>{t>0&&e_((0,h.deletedStatusLine)(t))});let n=setInterval(eZ,2e3),a=setInterval(()=>eH(Date.now()),1e3);return()=>{clearInterval(n),clearInterval(a)}},[]),(0,n.useEffect)(()=>{if(M.current||0===g.length||S)return;let e=[...g].filter(e=>!e.hidden).sort((e,t)=>R(e)-R(t))[0]||g[0];M.current=!0,e4(e.id)},[g,S]),(0,n.useEffect)(()=>{if(B.current=S?.id??null,S)return eQ(),e$.current&&clearInterval(e$.current),e$.current=setInterval(eQ,2e3),()=>{e$.current&&clearInterval(e$.current)}},[S]);let eV=S?g.find(e=>e.id===S.details.id)??S.details:void 0,eX=!!S&&_(eV),eY=eX?function(e){for(let t=e.length-1;t>=0;t--){let n=i(e[t].content);if(n){if("stopped"===n.state)return null;return n.page||n.html||null}}return null}(L):null;async function eZ(){let e=await fetch("/api/bots",{cache:"no-store"}),t=await e.json(),n=Date.parse(e.headers.get("date")||"");eF({serverNow:Number.isNaN(n)?Date.now():n,fetchedAt:Date.now()}),Array.isArray(t)&&(y(t),j(!0))}async function eQ(){if(!S)return;let e=S.id,t=null,n=!1,a=fetch(`/api/conversations/${e}`).then(async e=>{let t=await e.json();return e.ok&&Array.isArray(t?.events)?t.events:null}).catch(()=>null);try{let a=await fetch(`/api/conversations/${e}/messages`);t=await a.json(),n=a.ok&&Array.isArray(t)}catch{n=!1}let r=await a;if(B.current===e){let a,i;n&&z(t),r&&q((a=[],i=new Map,r.forEach((e,t)=>{let n="string"==typeof e.data.target_name?e.data.target_name:null;e.requestId&&n&&i.set(e.requestId,n);let s=function(e){switch(e.kind){case"wake_blocked":return"blocked";case"wake_rejected":return"rejected";case"lineage_stopped":return"stopped";case"wake_accepted":return"string"==typeof e.data.reason?"allowed":null;case"request_cancelled":return"grant_denied"===e.data.reason?"denied":null;case"request_queued":return"capacity"===e.data.waiting_for?"waiting":null;default:return null}}(e);if(!s)return;let l=Array.isArray(e.data.actions)?e.data.actions:[],o=null!==e.requestId&&r.slice(t+1).some(t=>t.requestId===e.requestId);if("waiting"===s&&o)return;let d=e.requestId?i.get(e.requestId):void 0,c="denied"===s&&d?`Wake denied: ${d} — no work ran`:"waiting"===s&&d?`Queued: ${d} — waiting for capacity`:e.text;a.push({eventId:e.eventId,wakeId:e.wakeId,tone:s,text:c,actionable:"blocked"===s&&!!e.wakeId&&l.includes("allow")&&l.includes("deny")&&!o,createdAt:e.createdAt})}),a)),U({conversationId:e,status:n?"ready":"error"})}}(0,n.useLayoutEffect)(()=>{let e=eD.current?.parentElement;if(!e)return;let t=eO.current,n=eI.current,a=eT.current;if(eX&&t&&n&&a){let r=r=>{let i=Math.ceil(t.getBoundingClientRect().height);n.style.height=i+16+r+"px";let s=n.getBoundingClientRect().top-e.getBoundingClientRect().top;a.style.height=Math.max(0,e.clientHeight-s)+"px";let l=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop;e.scrollTop=Math.max(0,l-s)};r(0);let i=n.nextElementSibling,s=t.getBoundingClientRect().bottom,l=i?i.getBoundingClientRect().top:n.getBoundingClientRect().bottom;s>=l&&r(Math.max(16,Math.ceil(s-l)));return}a&&(a.style.height="0px"),n&&(n.style.height=""),e.scrollTop=e.scrollHeight},[L,eX]),(0,n.useLayoutEffect)(()=>{eL(e=>{if(0===e.length)return e;let t=e.filter(e=>{let t=eU.current[e]??0;return L.some(n=>"bot"===n.sender_type&&n.sender_id===e&&n.created_at>t&&!/^\[(mcp|tool call|tool result)\]/i.test(n.content.trim()))});if(0===t.length)return e;for(let e of t)delete eU.current[e];return e.filter(e=>!t.includes(e))})},[L]);let e0=async e=>{S&&(await fetch(`/api/conversations/${S.id}/messages/${e}/stop`,{method:"POST"}),await eQ())},e1=async()=>{S&&(await fetch(`/api/conversations/${S.id}/stop`,{method:"POST"}),await eQ())},e6=async(e,t)=>{if(ep[e.id])return void eh(t=>{let n={...t};return delete n[e.id],n});if(eg.current[e.id])return;let n=L.findIndex(t=>t.id===e.id),a=g.find(e=>e.name===t),r=L.slice(n+1).find(e=>"bot"===e.sender_type&&(a?e.sender_id===a.id:e.sender_name===t));if(r){eg.current[e.id]=!0;try{let t=await fetch(`/api/messages/${e.id}/between?other=${encodeURIComponent(r.id)}`),n=await t.json().catch(()=>null);t.ok&&Array.isArray(n)&&n.length>0&&eh(t=>({...t,[e.id]:n}))}finally{delete eg.current[e.id]}}};async function e4(e){let t=g.find(t=>t.id===e);if(!t)return;let n=await fetch(`/api/conversations?botId=${e}`),a=await n.json();el(!1),ed(!1),a.id!==S?.id&&(z([]),q([])),B.current=a.id,$({id:a.id,details:t})}let e8=async()=>{if(!S)return;let e=eP.current?.files?.[0];if(!e)return;let t=await new Promise((t,n)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>n(a.error),a.readAsDataURL(e)});if(!t.startsWith("data:image/"))return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:S.details.id,avatar:t})});if(!n.ok)return;let a=await n.json();y(e=>e.map(e=>e.id===a.id?{...e,avatar:a.avatar}:e)),$({...S,details:{...S.details,avatar:a.avatar}})},e3=async e=>{if(!e||!S)return;let t=await new Promise((t,n)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>n(a.error),a.readAsDataURL(e)});if(!t.startsWith("data:image/"))return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:S.details.id,avatar:t})});if(!n.ok)return;let a=await n.json();y(e=>e.map(e=>e.id===a.id?{...e,avatar:a.avatar}:e)),$({...S,details:{...S.details,avatar:a.avatar}})},e2=async()=>{if(!S)return;let e=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:S.details.id,avatar:null})});if(!e.ok)return;let t=await e.json();y(e=>e.map(e=>e.id===t.id?{...e,avatar:t.avatar||""}:e)),$({...S,details:{...S.details,avatar:t.avatar||""}})},e5=x&&0===g.length,e7=[...g].filter(e=>!e.hidden).sort((e,t)=>R(e)-R(t)),e9=g.filter(e=>e.hidden),te=async e=>{let t=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,pinned:+!e.pinned})});if(!t.ok)return;let n=await t.json();y(e=>e.map(e=>e.id===n.id?{...e,...n}:e))},tt=async(e,t)=>{let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,hidden:+!!t})});if(!n.ok)return;let a=await n.json();y(e=>e.map(e=>e.id===a.id?{...e,...a,hidden:+!!a.hidden}:e)),t?requestAnimationFrame(()=>ew.current?.focus()):ti(e.id)},tn=async e=>{(await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,unread:1})})).ok&&y(t=>t.map(t=>t.id===e.id?{...t,unread:1}:t))};(0,n.useEffect)(()=>{if(!ev)return;let e=e=>{"Escape"===e.key&&(ex(null),ev.returnTo?.focus())},t=e=>{ej.current&&ej.current.contains(e.target)||ex(null)};return document.addEventListener("keydown",e),document.addEventListener("pointerdown",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("pointerdown",t)}},[ev]);let ta=async e=>{let t=em.trim();if(eu(null),!t||t===e.name)return;let n=await fetch("/api/bots",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,name:t})});if(!n.ok)return;let a=await n.json();y(e=>e.map(e=>e.id===a.id?{...e,...a}:e)),S&&S.details.id===a.id&&$({...S,details:{...S.details,...a}})},tr=async e=>{let t=e.map(e=>e.id);eb(null),ek(!1),e_((0,h.deletedStatusLine)(t.length)),requestAnimationFrame(()=>eS.current?.focus()),y(e=>e.filter(e=>!t.includes(e.id))),S&&t.includes(S.details.id)&&($(null),z([]),q([])),await eZ()},ti=(e,t=30)=>{requestAnimationFrame(()=>{let n=document.querySelector(`[data-open-bot="${e}"]`);n?n.focus():t>0&&ti(e,t-1)})},ts=(e=!0)=>{let t=ev?.returnTo;ex(null),e&&t&&requestAnimationFrame(()=>{t.isConnected&&t.focus()})},tl=(e,t)=>{e.preventDefault(),ex({bot:t,x:e.clientX,y:e.clientY,returnTo:e.currentTarget.querySelector("[data-open-bot]")})},to=(e,n)=>(0,t.jsx)("input",{className:"bot-name","aria-label":`Rename ${e.name}`,value:em,autoFocus:!0,onChange:e=>ef(e.target.value),onBlur:()=>ta(e),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),t.target.blur(),ti(e.id)),"Escape"===t.key&&(eu(null),ti(e.id))},style:n}),td=(e,n)=>(0,t.jsx)("button",{type:"button",className:"bot-name row-open","data-open-bot":e.id,"aria-current":S?.details.id===e.id?"true":void 0,onClick:()=>e4(e.id),style:n,children:e.name}),tc=e=>(0,t.jsx)("button",{type:"button",className:"row-actions","aria-haspopup":"menu","aria-expanded":ev?.bot.id===e.id,"aria-label":`Actions for ${e.name}`,title:`Actions for ${e.name}`,onClick:t=>{var n;let a;ex({bot:e,x:(a=(n=t.currentTarget).getBoundingClientRect()).left,y:a.bottom+4,returnTo:n})},children:"⋯"}),tu=e=>(0,t.jsxs)("div",{className:"row-tip",children:[e.unread&&S?.details.id!==e.id?(0,t.jsx)("div",{className:"card-role",children:"Unread"}):null,(0,t.jsx)("div",{className:"card-role",children:E(e.last_seen,ez.serverNow,ez.fetchedAt,eq)})]}),tm=e=>(0,t.jsxs)("div",{className:S?.details.id===e.id?"bot-row is-open":"bot-row",onContextMenu:t=>tl(t,e),children:[(0,t.jsxs)("span",{className:"mark-avatar mark-avatar-sm",children:[(0,t.jsx)(l.default,{bot:e,size:36,title:`${e.name} avatar`}),eM.includes(e.id)?(0,t.jsx)("span",{className:"mark-dot"}):null]}),(0,t.jsxs)("div",{className:"bot-copy",children:[ec===e.id?to(e):td(e),k(e.latest)?(0,t.jsx)("div",{className:"bot-preview",children:k(e.latest)}):null,(0,t.jsx)(u.RosterRuntimeLine,{bot:e,state:eK})]}),tc(e),tu(e)]},e.id),tf=V?g.filter(e=>e.name.toLowerCase().includes(K.toLowerCase())):[],tp=e=>{let t=et.current,n=t?t.selectionStart:W.length,a=W.slice(0,n).lastIndexOf("@");if(a<0)return;J(W.slice(0,a)+"@"+e+" "+W.slice(n)),X(!1);let r=a+e.length+2;requestAnimationFrame(()=>{t?.focus(),t?.setSelectionRange(r,r)})},th=e=>{if(0===e.length)return;let t=6-Y.length;e.length>t?ee("Up to six attachments."):ee("");let n=e.slice(0,Math.max(t,0));0!==n.length&&Z(e=>[...e,...n.map((t,n)=>({id:t.name+"-"+e.length+"-"+n+"-"+t.size,name:t.name}))])},tg=async()=>{let e=Y.map(e=>e.name),t=W.trim();if(!t&&0===e.length||!S)return;let n=[t,...e].filter(e=>e.length>0).join("\n"),a=[S.details.id],r=L.reduce((e,t)=>Math.max(e,t.created_at||0),0);for(let e of a)eU.current[e]=r;eL(e=>Array.from(new Set([...e,...a])));let i=[...g].sort((e,t)=>t.name.length-e.name.length).find(e=>(function(e,t){let n="@"+t,a=0;for(;a<e.length;){let t=e.indexOf(n,a);if(t<0)break;let r=e[t+n.length];if(!r||/[\s.,!?:;]/.test(r))return!0;a=t+n.length}return!1})(n,e.name));if(!(await fetch(`/api/conversations/${S.id}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n,mentionedBotId:i?.id,idempotencyKey:crypto.randomUUID()})})).ok){for(let e of a)delete eU.current[e];eL(e=>e.filter(e=>!a.includes(e)))}J(""),Z([]),ee(""),X(!1),eQ()},ty=S?(e=S.id,L.length>0?"messages":H&&H.conversationId===e&&"loading"!==H.status?"error"===H.status?"error":"empty":"loading"):"loading",tb=S?(0,t.jsx)(v,{view:ty,agentName:S.details.name}):null,tv=(S?.details.title||"").trim(),tx=S?.details.color,tj=new Set,tw=e=>(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(C,{notice:e,onDone:()=>{eQ()}})},e.eventId),tN=()=>{er(!1),requestAnimationFrame(()=>ei.current?.focus())};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"field",inert:ea,children:[(0,t.jsxs)("aside",{className:"rail",children:[(0,t.jsxs)("div",{className:"brand",children:[(0,t.jsx)("div",{className:eW?"logo-shape is-settling":"logo-shape",children:(0,t.jsx)(r.default,{src:"/brand/botmancers-logo-filled-256.png",alt:"",width:40,height:40})}),(0,t.jsx)("div",{className:"logo-word",children:"botmancers"})]}),(0,t.jsxs)("div",{className:"bar",children:[(0,t.jsx)("button",{ref:ei,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>er(!0),children:"New"}),e5?null:(0,t.jsx)("button",{ref:eS,type:"button",className:"add-btn","aria-haspopup":"dialog",onClick:()=>{e_(""),ek(!0)},children:"Manage agents"}),(0,t.jsx)(a.default,{href:"/settings",className:"add-btn settings-link",children:"Settings"})]}),(0,t.jsx)("p",{className:"roster-status",role:"status",children:eC}),e5?null:(0,t.jsx)("div",{className:ev?"roster menu-open":"roster",children:e7.map(e=>_(e)?(0,t.jsxs)("div",{className:"card",onContextMenu:t=>tl(t,e),children:[(0,t.jsxs)("div",{className:"row-head",children:[(0,t.jsxs)("span",{className:"mark-avatar",children:[(0,t.jsx)(l.default,{bot:e,size:44,title:`${e.name} avatar`}),eM.includes(e.id)?(0,t.jsx)("span",{className:"mark-dot"}):null]}),ec===e.id?to(e,{color:"#D5D0C3",fontSize:26}):td(e,{fontSize:26}),tc(e)]}),k(e.latest)?(0,t.jsx)("div",{className:"bot-preview",children:k(e.latest)}):null,(0,t.jsx)(u.RosterRuntimeLine,{bot:e,state:eK}),tu(e)]},e.id):tm(e))}),e9.length>0?(0,t.jsxs)("div",{className:ev?"roster menu-open":"roster",children:[(0,t.jsx)("button",{ref:ew,type:"button",className:"pin-word","aria-expanded":eR,onClick:()=>eE(e=>!e),children:"Hidden"}),eR?e9.map(tm):null]}):null]}),(0,t.jsx)("section",{className:"pane",children:S?(0,t.jsxs)("div",{className:"thread",children:[(0,t.jsxs)("div",{className:"thread-bar",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",className:"thread-name",style:tx?{color:tx}:void 0,onClick:()=>{el(!0),ed(!1)},children:S.details.name}),tv?(0,t.jsx)("div",{className:"thread-role",children:tv}):null,(0,t.jsx)("div",{className:"thread-role",children:eM.includes(S.details.id)?"Working":"Not working"}),(0,t.jsx)("div",{className:"thread-role",children:E((eV??S.details).last_seen,ez.serverNow,ez.fetchedAt,eq)}),es?(0,t.jsx)("button",{type:"button",className:"avatar-pic",onClick:()=>ed(!0),"aria-label":"Picture",children:S.details.avatar?(0,t.jsx)("img",{src:S.details.avatar,alt:""}):(0,t.jsx)(l.default,{bot:S.details,size:46})}):null]}),(0,t.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:16,alignItems:"flex-start"},children:[(0,t.jsx)(a.default,{href:`/bots/${S.details.id}/config`,className:"attach-word",style:{textDecoration:"none"},children:"Config"}),(0,t.jsx)("button",{type:"button",className:"attach-word",title:"Stop delegated turns in this thread",onClick:()=>{e1()},children:"Stop"})]})]}),eo?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"avatar-step avatar-desk",children:[(0,t.jsx)("span",{className:"kind-word",children:"Agent"}),(0,t.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,t.jsxs)("label",{className:"kind-word",children:["Upload",(0,t.jsx)("input",{ref:eP,type:"file",accept:"image/*,.svg"})]}),(0,t.jsx)("button",{type:"button",className:"create-btn",onClick:e8,children:"Set avatar"})]}),(0,t.jsxs)("div",{className:"avatar-step avatar-phone",children:[(0,t.jsx)("button",{type:"button",className:"kind-word",onClick:()=>eA.current?.click(),children:"Gallery"}),(0,t.jsx)("button",{type:"button",className:"kind-word",children:"Generate"}),(0,t.jsx)("button",{type:"button",className:"kind-word",onClick:e2,children:"Remove Photo"}),(0,t.jsx)("input",{ref:eA,type:"file",accept:"image/*,.svg",onChange:e=>{let t=e.target.files?.[0];e.target.value="",e3(t)}})]})]}):null,(0,t.jsxs)("div",{className:"messages-wrap",children:[(0,t.jsxs)("div",{className:"messages",children:[eX?null:tb,L.map(e=>{var a;let r,l,u=F.filter(t=>!tj.has(t.eventId)&&t.createdAt<e.created_at);u.forEach(e=>tj.add(e.eventId));let m="user"===e.sender_type,f=m?null:w(A(e.content));if(f)return(0,t.jsxs)(n.Fragment,{children:[u.map(tw),(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(N,{failure:f})})]},e.id);let p=(a=A(e.content),r=[],{text:P(a.replace(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g,e=>(r.push(e.replace(/\s/g,"")),""))),images:r}),h=p.images.map(e=>(0,t.jsx)("img",{src:e,alt:"",style:{display:"block",width:64,height:64}},e.slice(0,48))),g=m?void 0:S.details.color,y=m?null:i(e.content),b=m||y?null:o(A(e.content)),v=m||y?null:d(e.content),x=m||y?[]:function(e){let t=[];for(let n of e.split("\n")){let e=n.match(/^\s*\[file\]\s*(\S+)\s*$/i);e&&!t.includes(e[1])&&t.push(e[1])}return t}(e.content),j=m||y?null:(l=p.text.match(/^\s*\[Handing off to ([^\]]+)\]/))&&l[1].trim()||null,k=e.draftStatus??(b?"open":null),C=e.approvalStatus??(v?"pending":null);return(0,t.jsxs)(n.Fragment,{children:[u.map(tw),(0,t.jsxs)("div",{className:m?"msg-you":"msg-bot",ref:y&&"running"===y.state?eO:void 0,children:[(0,t.jsx)("div",{className:m?"msg-name msg-name-you":"msg-name",style:g?{color:g}:void 0,children:m?"You":e.sender_name||S.details.name}),y?(0,t.jsxs)("div",{className:"msg-body",children:[s(y),"running"===y.state?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:"attach-word",style:{font:"inherit"},onClick:t=>{t.preventDefault(),t.stopPropagation(),e0(e.id)},children:"Stop"})]}):null]}):b&&k?(0,t.jsx)("div",{className:"msg-body",children:(0,t.jsx)(D,{message:e,conversationId:S.id,status:k,onDone:()=>{eQ()}},e.id+k)}):(0,t.jsxs)("div",{className:"msg-body",onClick:j?()=>{e6(e,j)}:void 0,title:j?"Show the replies between this handoff and the reply":void 0,style:j?{cursor:"pointer"}:void 0,children:[function(e,n){let a=String(e??"").split("\n");if(!a.some(e=>null!==(0,c.deckEventDisplay)(e)))return e;let r=[];return a.forEach((e,a)=>{a>0&&r.push((0,t.jsx)("br",{},n+"-br-"+a));let i=(0,c.deckEventDisplay)(e);i?r.push((0,t.jsxs)("span",{className:"deck-event",children:[(0,t.jsx)("span",{className:"deck-event-label",children:i.label}),i.detail?" "+i.detail:""]},n+"-"+a)):r.push((0,t.jsx)("span",{children:e},n+"-"+a))}),r}(p.text,e.id),h,v&&C?(0,t.jsx)(O,{message:e,conversationId:S.id,status:C,onDone:()=>{eQ()}},e.id+C):null,(0,t.jsx)(I,{names:x})]}),ep[e.id]?(0,t.jsx)("div",{className:"msg-body",children:ep[e.id].map(e=>(0,t.jsx)("div",{children:(e.sender_name||"Agent")+": "+P(e.content)},e.id))}):null]})]},e.id)}),F.filter(e=>!tj.has(e.eventId)).map(tw),(0,t.jsx)("div",{ref:eT}),(0,t.jsx)("div",{ref:eD})]}),eX?(0,t.jsxs)("div",{className:"computer-float",children:[(0,t.jsxs)("div",{className:"computer-top",children:[(0,t.jsxs)("span",{className:"computer-lights","aria-hidden":"true",children:[(0,t.jsx)("span",{className:"computer-light computer-light-red"}),(0,t.jsx)("span",{className:"computer-light computer-light-yellow"}),(0,t.jsx)("span",{className:"computer-light computer-light-green"})]}),(0,t.jsxs)("span",{className:"computer-teach",children:[(0,t.jsxs)("span",{className:"computer-teach-pill",children:[(0,t.jsx)("span",{className:"computer-teach-mark","aria-hidden":"true"}),"Teach a task"]}),(0,t.jsx)("span",{className:"computer-expand","aria-hidden":"true",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",children:(0,t.jsx)("path",{d:"M9.2 2.6H13.4V6.8M6.8 13.4H2.6V9.2M13.1 2.9L9.4 6.6M2.9 13.1L6.6 9.4",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,t.jsx)("div",{className:"messages"===ty?"computer-band":"computer-band computer-band-note",ref:eI,children:tb}),(0,t.jsxs)("div",{className:"computer-desk",children:[eY?(0,t.jsx)("iframe",{className:"computer-page",sandbox:"",srcDoc:eY,tabIndex:-1}):null,(0,t.jsxs)("div",{className:"computer-dock",children:[(0,t.jsx)("img",{src:"/computer/dock-chrome.png",alt:""}),(0,t.jsx)("img",{src:"/computer/dock-gray.png",alt:""}),(0,t.jsx)("img",{src:"/computer/dock-terminal.png",alt:""})]})]})]}):null]}),(0,t.jsxs)("div",{className:"composer",onPaste:e=>{let t=[],n=e.clipboardData.files;if(n&&n.length>0)t.push(...Array.from(n));else for(let n of Array.from(e.clipboardData.items)){if("file"!==n.kind)continue;let e=n.getAsFile();e&&t.push(e)}0!==t.length&&(e.preventDefault(),th(t))},children:[V&&tf.length>0?(0,t.jsx)("div",{className:"mention-list",children:tf.map(e=>(0,t.jsxs)("button",{type:"button",onMouseDown:t=>{t.preventDefault(),tp(e.name)},children:["@",e.name]},e.id))}):null,(0,t.jsxs)("div",{className:"composer-box",children:[Q?(0,t.jsx)("p",{className:"attach-error",children:Q}):null,Y.length>0?(0,t.jsx)("div",{className:"attach-names",children:Y.map(e=>(0,t.jsx)("span",{children:e.name},e.id))}):null,(0,t.jsx)("textarea",{ref:et,rows:2,value:W,onChange:e=>{var t,n;let a,r;J(e.target.value),t=e.target.value,n=e.target.selectionStart,(r=(a=t.slice(0,n)).lastIndexOf("@"))<0||/\s/.test(a.slice(r+1))?X(!1):(G(a.slice(r+1)),X(!0))},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){if(e.preventDefault(),V&&tf.length>0)return void tp(tf[0].name);tg()}},placeholder:"Say something"})]}),(0,t.jsx)("input",{ref:en,className:"attach-input",type:"file",multiple:!0,onChange:e=>{th(Array.from(e.target.files||[])),e.target.value=""}}),(0,t.jsx)("button",{type:"button",className:"attach-word",onClick:()=>en.current?.click(),children:"Attach"}),(0,t.jsx)("button",{type:"button",className:"send-btn",onClick:tg,children:"Send"})]})]}):e5?(0,t.jsxs)("div",{className:"welcome",children:[(0,t.jsx)(r.default,{className:"welcome-mark",src:"/brand/botmancers-logo-outline-256.png",alt:"Botmancers",width:144,height:144,priority:!0}),(0,t.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})]}):(0,t.jsx)("p",{className:"empty-line",children:"Pick someone to talk to."})}),ey?(0,t.jsx)(p.default,{ids:[ey.id],onCancel:()=>{ti(ey.id),eb(null)},onDeleted:e=>{tr(e)}}):null,eN?(0,t.jsx)(b,{deckState:eK,onClose:()=>{ek(!1),requestAnimationFrame(()=>eS.current?.focus())},onDeleted:e=>{tr(e)}}):null,ev?(0,t.jsxs)("div",{ref:ej,className:"row-menu",role:"menu","aria-label":`Actions for ${ev.bot.name}`,style:{left:ev.x,top:ev.y},onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),onKeyDown:e=>{let t=Array.from(e.currentTarget.querySelectorAll("[role=menuitem]")),n=t.indexOf(document.activeElement),a=n=>{e.preventDefault(),t[(n+t.length)%t.length]?.focus()};"ArrowDown"===e.key?a(n+1):"ArrowUp"===e.key?a(n-1):"Home"===e.key?a(0):"End"===e.key?a(t.length-1):"Tab"===e.key&&(e.preventDefault(),ts())},children:[(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,autoFocus:!0,onClick:e=>{e.stopPropagation(),ts(),te(ev.bot)},children:ev.bot.pinned?"Unpin":"Pin"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ts(),tn(ev.bot)},children:"Mark as Unread"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ts(!1),eu(ev.bot.id),ef(ev.bot.name)},children:"Rename Agent"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ts(!1),tt(ev.bot,!ev.bot.hidden)},children:ev.bot.hidden?"Unhide":"Hide from sidebar"}),(0,t.jsx)(a.default,{role:"menuitem",tabIndex:-1,href:`/bots/${ev.bot.id}/config`,onClick:()=>ex(null),children:"Config"}),(0,t.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,onClick:e=>{e.stopPropagation(),ts(!1),eb(ev.bot)},children:"Delete agent…"})]}):null]}),ea&&(0,t.jsx)(T,{anchorRef:ei,deckState:eK,onRetryDecks:eG,onClose:tN,onCreated:()=>{eZ(),tN()}})]})}],31713)},5500,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"Image",{enumerable:!0,get:function(){return j}});let a=e.r(55682),r=e.r(90809),i=e.r(43476),s=r._(e.r(71645)),l=a._(e.r(74080)),o=a._(e.r(25633)),d=e.r(8927),c=e.r(87690),u=e.r(18556),m=e.r(65856),f=a._(e.r(1948)),p=e.r(18581),h={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function g(e,t,n,a,r,i,s){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&r(!0),n?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let a=!1,r=!1;n.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>a,isPropagationStopped:()=>r,persist:()=>{},preventDefault:()=>{a=!0,t.preventDefault()},stopPropagation:()=>{r=!0,t.stopPropagation()}})}a?.current&&a.current(e)}}))}function y(e){return s.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b="u"<typeof window?s.useEffect:s.useLayoutEffect,v=(0,s.forwardRef)(({src:e,srcSet:t,sizes:n,height:a,width:r,decoding:l,className:o,style:d,fetchPriority:c,placeholder:u,loading:m,unoptimized:f,fill:h,onLoadRef:v,onLoadingCompleteRef:x,setBlurComplete:j,setShowAltText:w,sizesInput:N,onLoad:k,onError:S,...C},_)=>{let R=(0,s.useRef)(!1),E=(0,s.useRef)(null);b(()=>{let{current:e}=R,{current:t}=E;e||null===t||(S&&(t.src=t.src),t.complete&&g(t,u,v,x,j,f,N),R.current=!0)},[e,u,v,x,S,f,N]);let P=(0,p.useMergedRef)(_,E);return(0,i.jsx)("img",{...C,...y(c),loading:m,width:r,height:a,decoding:l,"data-nimg":h?"fill":"1",className:o,style:d,sizes:n,srcSet:t,src:e,ref:P,onLoad:e=>{g(e.currentTarget,u,v,x,j,f,N)},onError:e=>{w(!0),"empty"!==u&&j(!0),S&&S(e)}})});function x({isAppRouter:e,imgAttributes:t}){let n={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,n),null):(0,i.jsx)(o.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...n},"__nimg-"+t.src+t.srcSet+t.sizes)})}let j=(0,s.forwardRef)((e,t)=>{let n=(0,s.useContext)(m.RouterContext),a=(0,s.useContext)(u.ImageConfigContext),r=(0,s.useMemo)(()=>{let e=h||a||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),n=e.deviceSizes.sort((e,t)=>e-t),r=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:n,qualities:r,localPatterns:"u"<typeof window?a?.localPatterns:e.localPatterns}},[a]),{onLoad:l,onLoadingComplete:o}=e,p=(0,s.useRef)(l);(0,s.useEffect)(()=>{p.current=l},[l]);let g=(0,s.useRef)(o);(0,s.useEffect)(()=>{g.current=o},[o]);let[y,b]=(0,s.useState)(!1),[j,w]=(0,s.useState)(!1),{props:N,meta:k}=(0,d.getImgProps)(e,{defaultLoader:f.default,imgConf:r,blurComplete:y,showAltText:j});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{...N,unoptimized:k.unoptimized,placeholder:k.placeholder,fill:k.fill,onLoadRef:p,onLoadingCompleteRef:g,setBlurComplete:b,setShowAltText:w,sizesInput:e.sizes,ref:t}),k.preload?(0,i.jsx)(x,{isAppRouter:!n,imgAttributes:N}):null]})});("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},94909,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return c},getImageProps:function(){return d}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=e.r(55682),s=e.r(8927),l=e.r(5500),o=i._(e.r(1948));function d(e){let{props:t}=(0,s.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,n]of Object.entries(t))void 0===n&&delete t[e];return{props:t}}let c=l.Image},57688,(e,t,n)=>{t.exports=e.r(94909)},25633,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return h},defaultHead:function(){return u}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=e.r(55682),s=e.r(90809),l=e.r(43476),o=s._(e.r(71645)),d=i._(e.r(98879)),c=e.r(42732);function u(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}let f=["name","httpEquiv","charSet","itemProp"];function p(e){let t,n,a,r;return e.reduce(m,[]).reverse().concat(u().reverse()).filter((t=new Set,n=new Set,a=new Set,r={},e=>{let i=!0,s=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){s=!0;let n=e.key.slice(e.key.indexOf("$")+1);t.has(n)?i=!1:t.add(n)}switch(e.type){case"title":case"base":n.has(e.type)?i=!1:n.add(e.type);break;case"meta":for(let t=0,n=f.length;t<n;t++){let n=f[t];if(e.props.hasOwnProperty(n))if("charSet"===n)a.has(n)?i=!1:a.add(n);else{let t=e.props[n],a=r[n]||new Set;("name"!==n||!s)&&a.has(t)?i=!1:(a.add(t),r[n]=a)}}}return i})).reverse().map((e,t)=>{let n=e.key||t;return o.default.cloneElement(e,{key:n})})}let h=function({children:e}){let t=(0,o.useContext)(c.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18556,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let a=e.r(55682)._(e.r(71645)),r=e.r(87690),i=a.default.createContext(r.imageConfigDefault)},65856,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"RouterContext",{enumerable:!0,get:function(){return a}});let a=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,n)=>{"use strict";function a(e,t){let n=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-n)<Math.abs(e-n)?t:e,t.qualities[0]):n}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findClosestQuality",{enumerable:!0,get:function(){return a}})},1948,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let a=e.r(70965),r=e.r(43369);function i({config:e,src:t,width:n,quality:s}){let l=(0,r.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//"))if(t.includes("/_next/static/immutable")&&!(0,r.getAssetToken)())l=void 0;else{let e=t.indexOf("?");if(-1!==e){let n=new URLSearchParams(t.slice(e+1)),a=n.get("dpl");if(a){l=a,n.delete("dpl");let r=n.toString();t=t.slice(0,e)+(r?"?"+r:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
2
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,a.findClosestQuality)(s,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${n}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}i.__next_img_default=!0;let s=i},88143,(e,t,n)=>{"use strict";function a({widthInt:e,heightInt:t,blurWidth:n,blurHeight:r,blurDataURL:i,objectFit:s}){let l=n?40*n:e,o=r?40*r:t,d=l&&o?`viewBox='0 0 ${l} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getImageBlurSvg",{enumerable:!0,get:function(){return a}})},87690,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return s}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=["default","imgix","cloudinary","akamai","custom"],s={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getImgProps",{enumerable:!0,get:function(){return d}});let a=e.r(43369),r=e.r(88143),i=e.r(87690),s=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:n=!1,priority:c=!1,preload:u=!1,loading:m,className:f,quality:p,width:h,height:g,fill:y=!1,style:b,overrideSrc:v,onLoad:x,onLoadingComplete:j,placeholder:w="empty",blurDataURL:N,fetchPriority:k,decoding:S="async",layout:C,objectFit:_,objectPosition:R,lazyBoundary:E,lazyRoot:P,...A},D){var O;let I,T,$,{imgConf:M,showAltText:L,blurComplete:z,defaultLoader:F}=D,q=M||i.imageConfigDefault;if("allSizes"in q)I=q;else{let e=[...q.deviceSizes,...q.imageSizes].sort((e,t)=>e-t),t=q.deviceSizes.sort((e,t)=>e-t),n=q.qualities?.sort((e,t)=>e-t);I={...q,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===F)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 H=A.loader||F;delete A.loader,delete A.srcSet;let U="__next_img_default"in H;if(U){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
3
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=H;H=t=>{let{config:n,...a}=t;return e(a)}}if(C){"fill"===C&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[C];e&&(b={...b,...e});let n={responsive:"100vw",fill:"100vw"}[C];n&&!t&&(t=n)}let B="",W=o(h),J=o(g);if((O=e)&&"object"==typeof O&&(l(O)||void 0!==O.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(T=t.blurWidth,$=t.blurHeight,N=N||t.blurDataURL,B=t.src,!y)if(W||J){if(W&&!J){let e=W/t.width;J=Math.round(t.height*e)}else if(!W&&J){let e=J/t.height;W=Math.round(t.width*e)}}else W=t.width,J=t.height}let K=!c&&!u&&("lazy"===m||void 0===m);(!(e="string"==typeof e?e:B)||e.startsWith("data:")||e.startsWith("blob:"))&&(n=!0,K=!1),I.unoptimized&&(n=!0),U&&!I.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(n=!0);let G=o(p),V=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:_,objectPosition:R}:{},L?{}:{color:"transparent"},b),X=z||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,r.getImageBlurSvg)({widthInt:W,heightInt:J,blurWidth:T,blurHeight:$,blurDataURL:N||"",objectFit:V.objectFit})}")`:`url("${w}")`,Y=s.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Z=X?{backgroundSize:Y,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Q=function({config:e,src:t,unoptimized:n,width:r,quality:i,sizes:s,loader:l}){if(n){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,a.getDeploymentId)();if(t.includes("/_next/static/immutable")&&!(0,a.getAssetToken)())e=void 0;else if(e){let n=t.indexOf("?");if(-1!==n){let a=new URLSearchParams(t.slice(n+1));a.get("dpl")||(a.append("dpl",e),t=t.slice(0,n)+"?"+a.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:o,kind:d}=function({deviceSizes:e,allSizes:t},n,a){if(a){let n=/(^|\s)(1?\d?\d)vw/g,r=[];for(let e;e=n.exec(a);)r.push(parseInt(e[2]));if(r.length){let n=.01*Math.min(...r);return{widths:t.filter(t=>t>=e[0]*n),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof n?{widths:e,kind:"w"}:{widths:[...new Set([n,2*n].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,r,s),c=o.length-1;return{sizes:s||"w"!==d?s:"100vw",srcSet:o.map((n,a)=>`${l({config:e,src:t,quality:i,width:n})} ${"w"===d?n:a+1}${d}`).join(", "),src:l({config:e,src:t,quality:i,width:o[c]})}}({config:I,src:e,unoptimized:n,width:W,quality:G,sizes:t,loader:H}),ee=K?"lazy":m;return{props:{...A,loading:ee,fetchPriority:k,width:W,height:J,decoding:S,className:f,style:{...V,...Z},sizes:Q.sizes,srcSet:Q.srcSet,src:v||Q.src},meta:{unoptimized:n,preload:u||c,placeholder:w,fill:y}}}},98879,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return l}});let a=e.r(71645),r="u"<typeof window,i=r?()=>{}:a.useLayoutEffect,s=r?()=>{}:a.useEffect;function l(e){let{headManager:t,reduceComponentsToState:n}=e;function l(){if(t&&t.mountedInstances){let e=a.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(e))}}return r&&(t?.mountedInstances?.add(e.children),l()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),s(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10331,74904,4335,e=>{"use strict";var t=e.i(43476);let r=["hermes","cursor","claude","codex","muse"],n={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},a="hermes";r.join("|");let s=r.map(e=>({value:e,label:n[e]})),i="/settings",o="Select an Agent Deck…",l="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",c="Runs use the server above. Remote execution is unconfirmed.",u="Configure the Agent Deck server in Settings",d="Saved Agent Deck not on this server — saving keeps it unless you pick another.",f={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function h(e=null){return{status:"loading",decks:[],cachedDecks:e,serverUrl:"",checkedAt:0,error:""}}function g(e){return String(e).padStart(2,"0")}function p(e){let t=new Date(e);return`${g(t.getHours())}:${g(t.getMinutes())}:${g(t.getSeconds())}`}function m(e){switch(e.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${e.decks.length} ${1===e.decks.length?"deck":"decks"} \xb7 checked ${p(e.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function y(e){return"connected"===e.status?null:f[e.status]}function k(e){return"empty"===e.status||"malformed"===e.status||"unreachable"===e.status}async function v(e,t,r=Date.now){let n,a;try{n=await e("/api/agent-deck/decks",{cache:"no-store"})}catch(e){return{status:"unreachable",decks:[],cachedDecks:t.cachedDecks,serverUrl:t.serverUrl,checkedAt:r(),error:e instanceof Error?e.message:String(e)}}try{a=await n.json()}catch{a=void 0}return function(e,t,r){let n="object"==typeof e.body&&null!==e.body?e.body:{},a="string"==typeof n.server_url?n.server_url:t.serverUrl,s={cachedDecks:t.cachedDecks,serverUrl:a,checkedAt:r};if("string"==typeof n.server_url&&!n.server_url.trim())return{...s,status:"unconfigured",decks:[],error:""};if(e.ok){let t=function(e){if("object"!=typeof e||null===e)return null;let t=e.decks;if(!Array.isArray(t))return null;let r=[];for(let e of t){if("object"!=typeof e||null===e)return null;let t=e.id,n=e.name;if("string"!=typeof t||!t.trim()||"string"!=typeof n||!n.trim())return null;r.push({id:t,name:n})}return r}(e.body);return t?{...s,cachedDecks:t,status:t.length>0?"connected":"empty",decks:t,error:""}:{...s,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let i="string"==typeof n.error?n.error:`HTTP ${e.status}`,o="invalid-payload"===n.code||/unexpected deck payload/i.test(i);return{...s,status:o?"malformed":"unreachable",decks:[],error:i}}({ok:n.ok,status:n.status,body:a},t,r())}function b(e){return e?"connected"===e.status||"empty"===e.status?e.decks.map(e=>e.id):"unconfigured"===e.status?null:e.cachedDecks?e.cachedDecks.map(e=>e.id):null:null}function x(e,t){let r=String(e??"").trim(),n=t?t.decks.length>0?t.decks:t.cachedDecks??[]:[];return n.find(e=>e.id===r)?.name??r}function w(e){var t;return t=(e.agent??"").trim()||a,r.includes(String(t))?n[t]:String(t??"")}function $(e){return function(e){let t=e.needs_deck_selection;if(!0===t||1===t)return!0;if("string"==typeof t){let e=t.trim().toLowerCase();return"1"===e||"true"===e}return!1}(e)||!(e.deck_id??"").trim()}function S(e,t){if($(e))return!1;let r=b(t);return!!r&&!r.includes((e.deck_id??"").trim())}function D(e){return`Agent: ${w(e)} \xb7 Agent Deck: `}function j(e,t){return $(e)?`${D(e)}not selected`:D(e)+x(e.deck_id??"",t)}function _(e,t){let r,n=(r=j(e,t),$(e)?`${r} — select in Config`:S(e,t)?r+" (deck unavailable — see Config)":r);if($(e))return{prefix:n,deck:"",suffix:""};let a=D(e),s=x(e.deck_id??"",t);return{prefix:a,deck:s,suffix:n.slice(a.length+s.length)}}function A(e){return`~/.botmancers/${e}`}function N(e){let t=(e.working_directory??"").trim();return!t||e.id&&t===A(e.id)?null:t}let C=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];e.s(["AGENT_OPTIONS",0,s,"DECK_PLACEHOLDER",0,o,"DEFAULT_RUNTIME_FORM",0,{agent:a,deckId:"",workingDirectory:""},"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,l,"SAVED_DECK_MISSING_NOTE",0,d,"SELECT_DECK_ERROR",0,"Select an Agent Deck for this agent.","SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,u,"SETTINGS_NON_LOCAL_NOTE",0,c,"SETTINGS_PATH",0,i,"botAgentLabel",0,w,"configRuntimePatchBody",0,function(e,t){let r=t.workingDirectory.trim();return{id:e,agent:t.agent,deck_id:t.deckId.trim(),working_directory:r&&r!==A(e)?r:""}},"configRuntimeView",0,function(e,t){let r,n=[],a=j(e,t);if($(e)){let t=(e.deck_name??"").trim();n.push(`No Agent Deck selected${t?` (was "${t}")`:""}. Pick a deck from the configured server before this agent can run.`)}else S(e,t)?(a+=" (deck unavailable)",n.push("This deck isn't on the configured server right now. Pick another deck, or fix the server in Settings.")):t&&"unconfigured"===t.status?n.push("No Agent Deck server set — add it in Settings."):t&&("unreachable"===t.status||"malformed"===t.status)&&!b(t)&&n.push("Can't reach the Agent Deck server, so this deck couldn't be checked — fix it in Settings, then retry.");return t&&t.serverUrl&&!function(e){let t;try{t=new URL("string"==typeof e?e.trim():"")}catch{return!1}let r=t.hostname.trim().toLowerCase().replace(/^\[|\]$/g,"");return"localhost"===r||"::1"===r||"::ffff:127.0.0.1"===r||/^127\.\d+\.\d+\.\d+$/.test(r)}(t.serverUrl)&&n.push("The workspace Agent Deck server isn't local. Remote runs are unconfirmed, so this agent's runs stop with an error until Settings points at a local server."),{summary:a,workingDirectory:(r=N(e))?`Working directory: ${r} (custom)`:`Working directory: ${A(e.id??"{agentID}")}`,notices:n,action:"Edit"}},"configWorkdirHint",0,function(e){return`Default: ${A(e)} — leave blank to use it.`},"deckEventDisplay",0,function(e){let t=String(e??"").trimStart(),r=C.find(e=>t.startsWith(e.prefix));return r?{label:r.label,detail:t.slice(r.prefix.length).trim()}:null},"deckLabel",0,x,"deckSlotCopy",0,y,"deckStateShowsRetry",0,k,"defaultWorkdirFor",0,A,"fetchDeckList",0,v,"formatClock",0,p,"initialDeckListState",0,h,"isMigratedPending",0,$,"newBotSubmitBody",0,function(e){let t={name:String(e.name??"").trim(),agent:e.agent,deck_id:e.deckId.trim()},r=e.workingDirectory.trim();return r&&(t.working_directory=r),t},"rosterRuntimeParts",0,_,"runtimeFormFromBot",0,function(e){let t=(e.agent??"").trim();return{agent:r.includes(t)?t:a,deckId:$(e)?"":(e.deck_id??"").trim(),workingDirectory:N(e)??""}},"runtimeFormView",0,function(e,t,r){let n=r?.includeName===!1?["agent","deck","workdir"]:["name","agent","deck","workdir"];return"loading"===t.status?{fields:n,submitDisabled:!0,blocker:""}:"connected"===t.status?{fields:n,submitDisabled:!1,blocker:""}:{fields:n,submitDisabled:!0,blocker:f[t.status]}},"settingsStatusLine",0,m],74904);let E={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function T({value:e,onChange:r,name:n,variant:a,legendId:i}){let o=E[a];return(0,t.jsxs)("fieldset",{className:"agent-fieldset","data-field":"agent",children:[(0,t.jsx)("legend",{id:i,className:o.legend,children:"Agent"}),(0,t.jsx)("div",{className:o.picks,role:"radiogroup","aria-labelledby":i,"aria-required":"true",children:s.map(a=>(0,t.jsxs)("label",{className:o.pick,children:[(0,t.jsx)("input",{type:"radio",name:n,value:a.value,checked:e===a.value,onChange:()=>r(a.value)})," "+a.label]},a.value))})]})}function R({id:e,labelId:r,state:n,value:a,onChange:s,onRetry:i,savedDeckId:l,variant:c}){let u=E[c],f=y(n),h=(l??"").trim();if(null===f){let r=!!h&&!n.decks.some(e=>e.id===h);return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,children:[(0,t.jsxs)("select",{id:e,className:u.control,"aria-required":"true","aria-describedby":r&&a===h?`${e}-saved-note`:void 0,value:a,title:a||void 0,onChange:e=>s(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:o}),r?(0,t.jsxs)("option",{value:h,title:h,children:[h," (saved)"]}):null,n.decks.map(e=>(0,t.jsx)("option",{value:e.id,title:e.id,children:e.name},e.id))]}),r&&a===h?(0,t.jsx)("p",{id:`${e}-saved-note`,className:u.note,children:d}):null]})}return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,role:"group","aria-labelledby":r,children:[h?(0,t.jsxs)("p",{className:u.note,children:["Saved Agent Deck: ",(0,t.jsx)("span",{title:h,children:h})]}):null,(0,t.jsxs)("p",{id:e,className:`${u.note} deck-slot`,role:"status",children:[(0,t.jsx)("span",{id:`${e}-copy`,children:f}),k(n)?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:u.retry,onClick:i,children:"Retry"})]}):null]})]})}function P({idPrefix:e,variant:r,deckId:n,onDeckId:a,deckState:s,onRetry:o,savedDeckId:c,workingDirectory:d,onWorkingDirectory:f,workdirPlaceholder:h,workdirHint:g}){let p=E[r],m=null===y(s);return(0,t.jsxs)("div",{className:"agent-deck-fields",children:[(0,t.jsx)("label",{className:p.label,id:`${e}-deck-label`,htmlFor:m?`${e}-deck`:void 0,children:"Agent Deck"}),(0,t.jsx)(R,{id:`${e}-deck`,labelId:`${e}-deck-label`,state:s,value:n,onChange:a,onRetry:o,savedDeckId:c,variant:r}),(0,t.jsx)("a",{href:i,className:p.link,children:u}),(0,t.jsx)("label",{className:p.label,htmlFor:`${e}-workdir`,children:"Working directory (optional)"}),(0,t.jsx)("input",{id:`${e}-workdir`,type:"text",className:"config"===r?p.control:void 0,"data-field":"workdir","aria-describedby":`${e}-workdir-hint ${e}-workdir-note`,value:d,placeholder:h,onChange:e=>f(e.target.value)}),(0,t.jsx)("p",{id:`${e}-workdir-hint`,className:p.hint,children:g}),(0,t.jsx)("p",{id:`${e}-workdir-note`,className:p.hint,children:l})]})}e.s(["AgentSection",0,function({idPrefix:e,variant:r,form:n,onChange:a,deckState:s,onRetry:i,savedDeckId:o,workdirPlaceholder:l,workdirHint:c}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T,{value:n.agent,onChange:e=>a({agent:e}),name:`${e}-agent`,variant:r,legendId:`${e}-agent-label`}),(0,t.jsx)(P,{idPrefix:e,variant:r,deckId:n.deckId,onDeckId:e=>a({deckId:e}),deckState:s,onRetry:i,savedDeckId:o,workingDirectory:n.workingDirectory,onWorkingDirectory:e=>a({workingDirectory:e}),workdirPlaceholder:l,workdirHint:c})]})},"RosterRuntimeLine",0,function({bot:e,state:r}){let{prefix:n,deck:a,suffix:s}=_(e,r);return(0,t.jsxs)("div",{className:"bot-runtime",title:n+a+s,children:[n,a?(0,t.jsx)("span",{className:"bot-runtime-deck",children:a}):null,s]})},"SettingsStatus",0,function({state:e,onRetry:r}){return(0,t.jsxs)("div",{"data-field":"status","data-state":e.status,children:[(0,t.jsx)("p",{className:"connected"===e.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:m(e)}),k(e)?(0,t.jsx)("button",{type:"button",onClick:r,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===e.status?(0,t.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:e.decks.map(e=>e.name).join(" · ")}):null,(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:c})]})}],10331);var L=e.i(71645);let O="botmancers.agentDeck.lastDecks";function I(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.name}let M=(e,t)=>{let r=new AbortController,n=setTimeout(()=>r.abort(),1e4);return fetch(e,{cache:"no-store",signal:r.signal,...t}).finally(()=>clearTimeout(n))};e.s(["useDeckList",0,function(){let[e,t]=(0,L.useState)(()=>h()),[r,n]=(0,L.useState)(0),a=(0,L.useRef)(null);return(0,L.useEffect)(()=>{let e=!1;return v(M,h(a.current??function(){try{let e=window.localStorage.getItem(O);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)&&t.every(I)?t:null}catch{return null}}())).then(r=>{if(!e){a.current=r.cachedDecks;var n=r.cachedDecks;if(n)try{window.localStorage.setItem(O,JSON.stringify(n))}catch{}t(r)}}),()=>{e=!0}},[r]),{state:e,retry:(0,L.useCallback)(()=>{t(e=>({...e,status:"loading",decks:[],error:""})),n(e=>e+1)},[])}}],4335)},87303,37947,68541,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=[{id:"purple",label:"Purple",hex:"#7C3AED"},{id:"blue",label:"Blue",hex:"#2563EB"},{id:"teal",label:"Teal",hex:"#0D9488"},{id:"green",label:"Green",hex:"#16A34A"},{id:"amber",label:"Amber",hex:"#B45309"},{id:"orange",label:"Orange",hex:"#EA580C"},{id:"pink",label:"Pink",hex:"#DB2777"},{id:"slate",label:"Slate",hex:"#64748B"}],a=[{id:"dots",label:"Round dots"},{id:"sleepy",label:"Sleepy"},{id:"happy",label:"Happy arcs"},{id:"wide",label:"Wide ovals"}],s=[{id:"folded",label:"Folded arms"},{id:"reaching",label:"Reaching right"},{id:"waving",label:"Waving"}],i=[{id:"none",label:"None"},{id:"crown",label:"Crown"},{id:"glasses",label:"Glasses"},{id:"headset",label:"Headset"},{id:"hat",label:"Hat"},{id:"bow",label:"Bow"}],o={color:"purple",eyes:"dots",hands:"folded",accessory:"none"},l={...o,accessory:"crown"};function c(e,t){return"string"==typeof t&&e.some(e=>e.id===t)}function u(e){let t=c(n,e.avatar_color)?e.avatar_color:o.color,r=c(a,e.avatar_eyes)?e.avatar_eyes:o.eyes;return{color:t,eyes:r,hands:c(s,e.avatar_hands)?e.avatar_hands:o.hands,accessory:c(i,e.avatar_accessory)?e.avatar_accessory:"chief-of-staff"===String(e.name??"").trim().toLowerCase()?l.accessory:o.accessory}}let d=[{x:70,y:70.5,w:38,h:6},{x:70,y:82,w:38,h:6}];function f(e){return d.map(t=>`<rect x="${t.x}" y="${t.y}" width="${t.w}" height="${t.h}" rx="${t.h/2}" ${e}/>`).join("")}function h(e,t="static"){var r,a;let s,i,o=n.find(t=>t.id===e.color)?.hex??n[0].hex,l=String(t).replace(/[^A-Za-z0-9_-]/g,"")||"static",c=`avatar-knockout-${l}`,u=`fill="none" stroke="${o}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`,d=(r=e.hands,a=e.accessory,s=[],"reaching"===r&&s.push({x1:87.6,y1:69,x2:90.4,y2:86.5,w:8}),"waving"===r&&s.push({x1:35,y1:59,x2:28,y2:72,w:10}),"crown"===a&&s.push({x1:44,y1:30,x2:76,y2:30,w:9}),"hat"===a&&s.push({x1:38,y1:34,x2:82,y2:34,w:9}),"bow"===a&&s.push({x1:60,y1:28.5,x2:84,y2:28,w:10}),"headset"===a&&(s.push({x1:42,y1:24.5,x2:78,y2:24.5,w:10}),s.push({x1:33,y1:55,x2:37,y2:64,w:8}),s.push({x1:83,y1:55,x2:87,y2:64,w:8})),"glasses"===a&&(s.push({x1:29,y1:56,x2:34,y2:62,w:8}),s.push({x1:86,y1:62,x2:91,y2:56,w:8})),s).map(e=>`<line x1="${e.x1}" y1="${e.y1}" x2="${e.x2}" y2="${e.y2}" stroke="#000000" stroke-width="${e.w}" stroke-linecap="round"/>`).join(""),g=`avatar-arms-${l}`,p="reaching"===e.hands,m=p?`<mask id="${g}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${f('fill="#000000" stroke="#000000" stroke-width="7"')}</mask>`:"",y=function(e,t){let r=`fill="none" stroke="${t}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(e){case"sleepy":return`<g data-avatar-layer="eyes" data-avatar-eyes="sleepy"><path d="M42 61 Q48 64 54 61" ${r}/><path d="M66 61 Q72 64 78 61" ${r}/></g>`;case"happy":return`<g data-avatar-layer="eyes" data-avatar-eyes="happy"><path d="M42 63 Q48 54 54 63" ${r}/><path d="M66 63 Q72 54 78 63" ${r}/></g>`;case"wide":return`<g data-avatar-layer="eyes" data-avatar-eyes="wide"><ellipse cx="48" cy="60" rx="5.5" ry="8" ${r}/><ellipse cx="72" cy="60" rx="5.5" ry="8" ${r}/></g>`;default:return`<g data-avatar-layer="eyes" data-avatar-eyes="dots"><circle cx="48" cy="60" r="3.5" ${r}/><circle cx="72" cy="60" r="3.5" ${r}/></g>`}}(e.eyes,o),k=function(e,t){let r=`fill="none" stroke="${t}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(e){case"crown":return`<g data-avatar-layer="accessory" data-avatar-accessory="crown"><path d="M44 31 L46.5 14 L54 24 L60 10 L66 24 L73.5 14 L76 31 Z" ${r}/></g>`;case"glasses":return`<g data-avatar-layer="accessory" data-avatar-accessory="glasses"><circle cx="48" cy="60" r="9" ${r}/><circle cx="72" cy="60" r="9" ${r}/><path d="M57 60 Q60 57 63 60" ${r}/><path d="M39 59 L32 57" ${r}/><path d="M81 59 L88 57" ${r}/></g>`;case"headset":return`<g data-avatar-layer="accessory" data-avatar-accessory="headset"><path d="M36 62 Q34 24 60 24 Q86 24 84 62" ${r}/><rect x="79" y="54" width="10" height="17" rx="5" ${r}/><path d="M84 71 Q80 84 66 84" ${r}/></g>`;case"hat":return`<g data-avatar-layer="accessory" data-avatar-accessory="hat"><path d="M38 34 Q60 40 82 34" ${r}/><path d="M46 34 Q48 14 60 14 Q72 14 74 34" ${r}/></g>`;case"bow":return`<g data-avatar-layer="accessory" data-avatar-accessory="bow"><circle cx="79" cy="29" r="3.5" ${r}/><path d="M76 27 L62 18 Q60 26 66 32 Z" ${r}/><path d="M82 27 L95 19 Q97 27 91 32 Z" ${r}/></g>`;default:return'<g data-avatar-layer="accessory" data-avatar-accessory="none"></g>'}}(e.accessory,o);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" role="img" data-avatar-color="${e.color}" data-avatar-eyes="${e.eyes}" data-avatar-hands="${e.hands}" data-avatar-accessory="${e.accessory}"><mask id="${c}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${d}</mask>`+m+`<g data-avatar-layer="body" mask="url(#${c})">`+`<path d="M60 28 C75 28 84 39 85.5 56 L91 90 C92.5 98 87 102 79 102 L41 102 C33 102 27.5 98 29 90 L34.5 56 C36 39 45 28 60 28 Z" ${u}/>`+`<path d="M54 71 Q60 75.5 66 71" ${u}/>`+`<path data-avatar-brows="straight" d="${i="wide"===e.eyes?45:46,`M42 ${i} H54 M66 ${i} H78`}" fill="none" stroke="${o}" stroke-width="4.8" stroke-linecap="round"/>`+"</g>"+(p?`<g mask="url(#${g})">${y}</g>`:y)+function(e,t){let r=`fill="none" stroke="${t}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(e){case"reaching":return'<g data-avatar-layer="hands" data-avatar-hands="reaching">'+f(r)+"</g>";case"waving":return`<g data-avatar-layer="hands" data-avatar-hands="waving"><path d="M32 68 Q24 60 22 48" ${r}/><circle cx="21" cy="41" r="5" ${r}/><path d="M11 36 Q9 46 12 54" ${r}/></g>`;default:return`<g data-avatar-layer="hands" data-avatar-hands="folded"><rect x="44" y="79" width="32" height="9" rx="4.5" ${r}/><rect x="46" y="90" width="28" height="9" rx="4.5" ${r}/></g>`}}(e.hands,o)+(p?`<g mask="url(#${g})">${k}</g>`:k)+"</svg>"}e.s(["AVATAR_ACCESSORIES",0,i,"AVATAR_COLORS",0,n,"AVATAR_EYES",0,a,"AVATAR_HANDS",0,s,"renderAvatarSvg",0,h,"resolveAvatar",0,u],37947),e.s(["default",0,function({bot:e,config:n,size:a=28,className:s,title:i}){let o=(0,r.useId)().replace(/[^A-Za-z0-9_-]/g,"")||"avatar",l=h(n??e?.avatar_config??u(e??{}),o).replace("<svg ",`<svg width="${a}" height="${a}" `);return(0,t.jsx)("span",{className:s??"bot-avatar",style:{display:"inline-flex",width:a,height:a,flex:"none"},title:i,"aria-label":i??"Agent avatar",role:"img",dangerouslySetInnerHTML:{__html:l}})}],87303);let g="imported",p=/^[A-Za-z0-9_-]{1,128}$/;function m(e){let t=new URLSearchParams(e).get(g);if(null===t)return null;let r=t.trim();return p.test(r)?r:""}function y(e){return`/bots/${encodeURIComponent(e)}/config`}async function k(e,t,r){let n=m(e);if(null===n)return{kind:"none"};if(!n)return{kind:"missing"};if(n===t)return{kind:"stay"};try{return await r(n)?{kind:"open",path:y(n)}:{kind:"missing"}}catch{return{kind:"missing"}}}e.s(["HANDOFF_STATUS_PATH",0,"/api/marketplace-handoff/status","IMPORT_RETURN_QUERY",0,g,"handoffStartPath",0,function(e,t){return`/api/marketplace-handoff?return=${encodeURIComponent(e+t)}`},"importedBotId",0,m,"importedConfigPath",0,y,"marketImportView",0,function(e){switch(e){case"checking":return{busy:!0,tone:"muted",message:"Checking Grok Marketplace…"};case"redirecting":return{busy:!0,tone:"muted",message:"Opening Grok Marketplace…"};case"unavailable":return{busy:!1,tone:"error",message:"Grok Marketplace isn't configured. Set CLONE_MARKET_URL on the Botmancers server."};case"failed":return{busy:!1,tone:"error",message:"Couldn't reach Botmancers to start the import. Try again."};case"missing":return{busy:!1,tone:"error",message:"Imported agent not found. The import may not have completed."};default:return{busy:!1,tone:"muted",message:"Imports a new agent and opens its Config. This agent is not changed."}}},"resolveImportReturn",0,k],68541)},15983,10718,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n="Permanently removes each agent with its direct conversation, messages, queue rows, approvals, launch snapshots, memories, one-shots, routines, and pending questions. There is no undo.",a="Skill files, working directories, Hermes profiles, and imported source files stay on disk.";function s(e){return"chief"===e?"Chief of Staff cannot be deleted.":"Working now — stop it or let it finish before deleting."}function i(e){return 1===e?"Delete agent":`Delete ${e} agents`}e.s(["DELETE_KEEPS_COPY",0,a,"DELETE_REMOVES_COPY",0,n,"blockedReasonCopy",0,s,"deleteConfirmLabel",0,i,"deletedStatusLine",0,function(e){return 1===e?"Deleted 1 agent.":`Deleted ${e} agents.`}],10718),e.s(["default",0,function({ids:e,onCancel:o,onDeleted:l}){let c=(0,r.useId)(),[u,d]=(0,r.useState)(null),[f,h]=(0,r.useState)(""),[g,p]=(0,r.useState)(""),[m,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),v=(0,r.useRef)(null),b=e.join("\n");(0,r.useEffect)(()=>{let e=!1;return fetch("/api/bots/delete-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:b.split("\n")})}).then(async t=>{let r=await t.json().catch(()=>null);if(!e){if(!t.ok)return void h("string"==typeof r?.error?r.error:"Could not load the deletion preview.");d(r)}}).catch(()=>{e||h("Could not load the deletion preview.")}),()=>{e=!0}},[b]),(0,r.useEffect)(()=>{k.current?.focus()},[]),(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.stopPropagation(),m||o())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[m,o]);let x=e.length,w=!u||u.blocked.length>0||u.missing.length>0,$=async()=>{if(!m&&!w){y(!0),p("");try{let t=await fetch("/api/bots",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e})}),r=await t.json().catch(()=>null);if(!t.ok){p("string"==typeof r?.error&&r.error?r.error:`Delete failed (${t.status}).`),y(!1),requestAnimationFrame(()=>k.current?.focus());return}l(Array.isArray(r?.deleted)?r.deleted:[])}catch{p("Delete failed: the server did not respond."),y(!1),requestAnimationFrame(()=>k.current?.focus())}}};return(0,t.jsx)("div",{className:"modal-scrim delete-scrim",onKeyDown:e=>{if("Tab"!==e.key||!v.current)return;let t=Array.from(v.current.querySelectorAll("button:not(:disabled)"));if(0===t.length)return;let r=t[0],n=t[t.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),n.focus()):e.shiftKey||document.activeElement!==n||(e.preventDefault(),r.focus())},children:(0,t.jsxs)("div",{ref:v,className:"delete-card",role:"alertdialog","aria-modal":"true","aria-labelledby":c,"data-testid":"delete-agents-dialog",children:[(0,t.jsx)("h2",{id:c,className:"delete-title",children:1===x?"Delete this agent permanently?":`Delete ${x} agents permanently?`}),f?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:f}):null,u||f?null:(0,t.jsx)("p",{className:"delete-copy",children:"Checking what will be removed…"}),u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("ul",{className:"delete-names","aria-label":"Agents to delete",children:[u.agents.map(e=>(0,t.jsx)("li",{children:e.name},e.id)),u.missing.map(e=>(0,t.jsxs)("li",{children:["Not found: ",e]},e))]}),u.blocked.length>0?(0,t.jsxs)("div",{className:"delete-blocked",role:"alert",children:[(0,t.jsx)("p",{children:"Nothing can be deleted until these are deselected:"}),(0,t.jsx)("ul",{children:u.blocked.map(e=>(0,t.jsxs)("li",{children:[e.name," — ",s(e.reason)]},e.id))})]}):null,(0,t.jsx)("p",{className:"delete-copy",children:n}),(0,t.jsx)("p",{className:"delete-copy delete-keeps",children:a})]}):null,g?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:g}):null,(0,t.jsxs)("div",{className:"form-actions delete-actions",children:[(0,t.jsx)("button",{ref:k,type:"button",className:"cancel-btn",onClick:o,disabled:m,children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"delete-btn",onClick:()=>{$()},disabled:m||w,children:m?"Deleting…":i(x)})]})]})})}],15983)},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(90809),i=e.r(43476),o=s._(e.r(71645)),l=e.r(95057),c=e.r(8372),u=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),g=e.r(91949),p=e.r(73668),m=e.r(9396);function y(t){var r;let n,a,s,[y,v]=(0,o.useOptimistic)(g.IDLE_LINK_STATUS),b=(0,o.useRef)(null),{href:x,as:w,children:$,prefetch:S=null,passHref:D,replace:j,shallow:_,scroll:A,onClick:N,onMouseEnter:C,onTouchStart:E,legacyBehavior:T=!1,onNavigate:R,transitionTypes:P,ref:L,unstable_dynamicOnHover:O,...I}=t;n=$,T&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let M=o.default.useContext(c.AppRouterContext),U=!1!==S,F=!1===S?"none":!0===S?"full":"auto",B="none"!==F?"auto"===F?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,Q="string"==typeof(r=w||x)?r:(0,l.formatUrl)(r);if(T){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=o.default.Children.only(n)}let K=T?a&&"object"==typeof a&&a.ref:L,H,W=o.default.useCallback(e=>(null!==M&&(b.current=(0,g.mountLinkInstance)(e,Q,M,B,U,v,H)),()=>{b.current&&((0,g.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,g.unmountPrefetchableInstance)(e)}),[U,Q,M,B,v,H]),G={ref:(0,u.useMergedRef)(W,K),onClick(t){T||"function"!=typeof N||N(t),T&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!M||t.defaultPrevented||function(t,r,n,a,s,i,l,c="none"){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,p.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);o.default.startTransition(()=>{f(r,a?"replace":"push",!1===s?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,n.current,l,c)})}}(t,Q,b,j,A,R,P,F)},onMouseEnter(e){T||"function"!=typeof C||C(e),T&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),M&&U&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)},onTouchStart:function(e){T||"function"!=typeof E||E(e),T&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),M&&U&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)}};return(0,d.isAbsoluteUrl)(Q)?G.href=Q:T&&!D&&("a"!==a.type||"href"in a.props)||(G.href=(0,f.addBasePath)(Q)),s=T?o.default.cloneElement(a,G):(0,i.jsx)("a",{...I,...G,children:n}),(0,i.jsx)(k.Provider,{value:y,children:s})}let k=(0,o.createContext)(g.IDLE_LINK_STATUS),v=()=>(0,o.useContext)(k);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=s(e,n)),t&&(a.current=s(t,n))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let n=e.r(18967),a=e.r(52817);function s(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function s(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return o},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",o=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),o&&"#"!==o[0]&&(o="#"+o),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${a}${u}${o}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return o(e)}},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return b},NormalizeError:function(){return k},PageNotFoundError:function(){return v},SP:function(){return p},ST:function(){return m},WEB_VITALS:function(){return s},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return w}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&o.test(e)};function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,m=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class k extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
@@ -1,3 +0,0 @@
1
- @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
2
- @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-bold:700;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-5{margin:calc(var(--spacing) * 5)}.m-9{margin:calc(var(--spacing) * 9)}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:var(--spacing)}.h-2{height:calc(var(--spacing) * 2)}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-full{min-height:100%}.w-2{width:calc(var(--spacing) * 2)}.w-32{width:calc(var(--spacing) * 32)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.animate-pulse{animation:var(--animate-pulse)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.p-0{padding:0}.px-1{padding-inline:var(--spacing)}.py-1{padding-block:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.lowercase{text-transform:lowercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[person\:owner\]{person:owner}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}@media (min-width:40rem){.sm\:w-auto{width:auto}.sm\:flex-1{flex:1}.sm\:flex-none{flex:none}.sm\:flex-row{flex-direction:row}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}:root{--field:#0e120c;--card:#1a2118;--hairline:#3a4436;--ink:#d5d0c3;--ink-muted:#9d9c90;--ink-faint:#8e8e82;--accent:#8b9a4a;--ink-on-accent:#0e120c;--composer:#141a12;--danger:#e85d75;--chrome:"Avenir Next", Avenir, "Helvetica Neue", system-ui;--mono:Monaco, "SF Mono", Menlo, Consolas, monospace}html,body{background:var(--field);min-height:100%;color:var(--ink);font-family:var(--chrome);margin:0}button,input,textarea{font:inherit;color:inherit}.field{background:var(--field);min-height:100vh;color:var(--ink);flex-direction:column;display:flex}.rail{flex-direction:column;flex:none;display:flex}.pane{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}@media (max-width:799px){.field{height:100dvh;overflow:hidden}.rail{flex:none;max-height:38vh;overflow:auto}.pane{overflow:hidden}.thread{height:100%;min-height:0}}@media (min-width:800px){.field{flex-direction:row;align-items:stretch;height:100vh;min-height:0;overflow:hidden}.rail{border-right:1px solid var(--hairline);width:max-content;max-width:280px;height:100vh;overflow:auto}.pane{height:100vh;min-height:0}}.bar{justify-content:space-between;align-items:center;padding:16px;display:flex}.brand{flex-direction:row;align-items:center;gap:10px;padding:20px 16px 4px;display:flex}.logo-shape{flex:none;width:40px;height:40px;line-height:0}.logo-shape img{width:40px;height:40px;display:block}.logo-shape.is-settling{animation:.4s ease-out both logo-drop}@keyframes logo-drop{0%{transform:translateY(-6px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.logo-shape.is-settling{animation:none}}.logo-word{font-family:var(--chrome);letter-spacing:.02em;white-space:nowrap;color:#d5d0c3;margin:0;font-size:16px;font-weight:600;line-height:1.2}@media (max-width:799px){.brand{gap:8px;padding:12px 16px 0}.logo-shape,.logo-shape img{width:32px;height:32px}.logo-word{font-size:15px}}.welcome{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:24px;min-height:0;padding:32px 16px;display:flex}.welcome-mark{width:144px;height:144px;display:block}@media (max-width:799px){.welcome{gap:16px;padding:24px 16px}.welcome-mark{width:128px;height:128px}}.wordmark{font-family:var(--chrome);color:var(--ink);margin:0;font-size:20px;font-weight:500;line-height:1.2}.chrome-btn{font-family:var(--chrome);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;line-height:1}.add-btn,.send-btn,.create-btn{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.cancel-btn,.back-btn{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0}.back-btn{font-size:16px}.empty-line{font-family:var(--chrome);color:var(--ink);margin:0;padding:0 16px;font-size:16px}.roster{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.card{box-sizing:border-box;text-align:left;background:var(--card);border:1px solid var(--hairline);width:fit-content;max-width:100%;color:var(--ink);cursor:pointer;border-radius:16px;align-self:flex-start;padding:16px;display:block;position:relative}.row-head{align-items:center;gap:8px;display:flex}.bot-row{color:#d5d0c3;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;gap:10px;width:100%;max-width:240px;margin:0;padding:0;display:flex;position:relative}.bot-lead{cursor:pointer;background:0 0;border:0;border-radius:0;width:fit-content;max-width:100%;margin:0;padding:0;display:block;position:relative}.bot-lead .bot-name{font-size:26px}.bot-row.is-open,.bot-lead.is-open{background:#d5d0c314;border-radius:8px;margin-left:-8px;margin-right:-8px;padding:6px 8px}.bot-copy{flex:auto;min-width:0}.bot-name{color:#d5d0c3;background:0 0;border:0;outline:none;margin:0;padding:0;font-family:system-ui,sans-serif;font-size:15px;font-weight:400;line-height:1.25}.bot-preview{max-width:100%;color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-family:system-ui,sans-serif;font-size:12px;line-height:1.3;overflow:hidden}.bot-runtime{max-width:100%;color:var(--ink-faint);-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0;font-family:system-ui,sans-serif;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.bot-runtime-deck{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.mark{flex:0 0 28px;width:28px;height:34px;position:relative}.mark-tri{border-bottom:28px solid;border-left:14px solid #0000;border-right:14px solid #0000;width:0;height:0;position:absolute;top:3px;left:0}.mark-dot{background:#2ebd4e;border-radius:50%;width:8px;height:8px;animation:1.1s ease-in-out infinite mark-pulse;position:absolute;top:0;right:-2px;box-shadow:0 0 0 2px #0e120c}@keyframes mark-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.55)}}.card-preview{max-width:220px;font-family:var(--mono);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:12px;line-height:1.3;overflow:hidden}.row-tip{z-index:3;background:var(--card);border:1px solid var(--hairline);border-radius:10px;min-width:148px;padding:8px 10px;display:none;position:absolute;top:calc(100% - 6px);left:12px}.card:hover .row-tip,.card:focus-within .row-tip,.bot-row:hover .row-tip,.bot-row:focus-within .row-tip,.bot-lead:hover .row-tip,.bot-lead:focus-within .row-tip{display:block}.roster.menu-open .row-tip{display:none}.row-tip{pointer-events:none}.row-open{text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100%;display:block;overflow:hidden}.row-open:after{content:"";z-index:1;border-radius:8px;position:absolute;inset:0}.bot-row .row-open:after{inset:-4px -8px}.bot-row.is-open .row-open:after{inset:0}.card .row-open:after{border-radius:16px}.row-open:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.row-actions{z-index:2;min-width:24px;min-height:24px;font-family:var(--mono);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;align-self:center;margin-left:auto;padding:0 4px;font-size:16px;line-height:1;position:relative}.row-actions:hover,.row-actions[aria-expanded=true]{color:var(--ink)}.row-actions:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-lead{padding:28px 22px}.card-lead .card-name{font-size:26px}.card-pic{object-fit:cover;border-radius:8px;width:28px;height:28px;margin-bottom:8px;display:block}.card-lead .card-pic{width:36px;height:36px}.card-lead .card-role{font-size:15px}.row-name{width:8em;font-family:var(--mono);background:0 0;border:0;outline:none;margin:0;padding:0;font-size:16px;line-height:1.3;display:block}.pin-word{font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:12px;display:block}.row-menu{z-index:20;background:var(--card);border:1px solid var(--hairline);border-radius:10px;min-width:168px;padding:8px 10px;position:fixed}.row-menu [role=menuitem]{text-align:left;width:100%;font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:12px;text-decoration:none;display:block}.row-menu [role=menuitem]:first-child{margin-top:0}.confirm-card{background:var(--card);border:1px solid var(--hairline);border-radius:16px;width:280px;margin:48px;padding:16px}.confirm-card p{font-family:var(--mono);margin:0 0 16px;font-size:14px}.card-name,.thread-name{font-family:var(--mono);color:var(--ink);font-size:16px;line-height:1.3}button.thread-name{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.avatar-pic{border:1px solid var(--hairline);background:var(--card);cursor:pointer;border-radius:12px;width:48px;height:48px;margin-top:8px;padding:0;display:block;overflow:hidden}.avatar-pic img{object-fit:cover;width:100%;height:100%;display:block}.avatar-step{flex-wrap:wrap;align-items:center;gap:16px;padding:0 16px 12px;display:flex}.avatar-phone{display:none}@media (max-width:799px){.avatar-desk{display:none}.avatar-phone{display:flex}}.avatar-step input{opacity:0;width:1px;height:1px;position:absolute}.card-role,.thread-role{font-family:var(--mono);color:var(--ink-muted);margin-top:4px;font-size:12px;line-height:1.3}.thread{flex-direction:column;flex:1;min-height:0;display:flex}@media (min-width:800px){.thread{height:100%;min-height:0}}.thread-bar{align-items:flex-start;gap:16px;padding:16px;display:flex}.messages{flex-direction:column;flex:auto;gap:12px;min-height:0;padding:0 16px 16px;display:flex;overflow-y:auto}.thread-empty{flex-direction:column;flex:1 0 auto;justify-content:flex-end;gap:4px;padding-bottom:8px;display:flex}.thread-empty-title,.thread-empty-hint,.thread-note{font-family:var(--chrome);margin:0}.thread-empty-title{color:var(--ink);font-size:16px}.thread-empty-hint,.thread-note{color:var(--ink-muted);font-size:14px}.thread-note-error{color:var(--ink)}.msg-you{text-align:right;max-width:80%;color:var(--ink);background:0 0;border:0;border-radius:0;align-self:flex-end;padding:0}.msg-bot{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);width:100%;color:var(--ink);border-radius:16px;align-self:flex-start;padding:16px}.msg-name{font-family:var(--mono);color:var(--ink);margin-bottom:6px;font-size:14px}.msg-name-you{color:var(--accent)}.msg-body{font-family:var(--mono);color:var(--ink);white-space:pre-wrap;font-size:14px;line-height:1.45}.msg-status{align-self:stretch;width:100%}.runtime-failure{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--danger);background:var(--field);color:var(--ink);font-family:var(--chrome);border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.45}.runtime-failure-title,.runtime-failure-recovery{margin:0}.runtime-failure-title{flex-wrap:wrap;align-items:baseline;gap:8px;font-weight:600;display:flex}.runtime-failure-severity{text-transform:uppercase;letter-spacing:.04em;color:var(--danger);font-size:12px;font-weight:600}.runtime-failure-recovery{color:var(--ink-muted);margin-top:4px}.runtime-failure-details{margin-top:8px}.runtime-failure-details summary{cursor:pointer;color:var(--ink-muted)}.runtime-failure-detail{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;font-size:13px;display:block}.runtime-failure-copy{border:1px solid var(--hairline);background:var(--card);cursor:pointer;border-radius:6px;padding:4px 10px}.wake-notice{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--ink-muted);background:var(--field);color:var(--ink);font-family:var(--chrome);overflow-wrap:anywhere;border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.45}.wake-notice-blocked,.wake-notice-allowed{border-left-color:var(--accent)}.wake-notice-rejected,.wake-notice-denied,.wake-notice-stopped{border-left-color:var(--danger)}.wake-notice-line{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.wake-notice-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-size:12px;font-weight:600}.wake-notice-blocked .wake-notice-label,.wake-notice-allowed .wake-notice-label{color:var(--accent)}.wake-notice-rejected .wake-notice-label,.wake-notice-denied .wake-notice-label,.wake-notice-stopped .wake-notice-label{color:var(--danger)}.wake-notice-error{color:var(--danger);margin:8px 0 0}.deck-event{font-family:var(--mono);color:var(--ink);overflow-wrap:anywhere;font-size:14px;line-height:1.45}.composer{align-items:flex-end;gap:16px;padding:16px;display:flex;position:relative}.composer-box{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.attach-names{font-family:var(--mono);color:var(--ink);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.attach-error{font-family:var(--mono);color:var(--ink);margin:0;font-size:14px}.attach-word{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.attach-input{opacity:0;width:1px;height:1px;position:absolute}.composer textarea{resize:none;background:var(--composer);border:1px solid var(--hairline);min-width:0;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;flex:1;padding:10px 12px;font-size:14px}.composer textarea::placeholder{color:var(--ink-faint);opacity:1}.mention-list{background:var(--composer);border:1px solid var(--hairline);border-radius:12px;min-width:180px;max-height:220px;padding:6px;position:absolute;bottom:100%;left:16px;overflow:auto}.mention-list button{text-align:left;width:100%;color:var(--ink);font-family:var(--mono);background:0 0;border:0;padding:6px 8px;font-size:14px;display:block}.modal-scrim{z-index:10;background:#0a0a07b8;justify-content:flex-start;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.new-agent-scrim{padding:0;display:block;overflow:hidden}.form-card.new-agent-dialog{flex-direction:column;width:min(358px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);display:flex;position:fixed;top:16px;left:16px}.new-agent-dialog .kind-row{flex:none}.new-agent-dialog .bot-form{flex-direction:column;flex:auto;min-height:0;display:flex}.new-agent-body{flex:auto;min-height:0;margin:0 -4px;padding:0 4px;overflow-y:auto}.new-agent-dialog .form-actions{flex:none;padding-top:4px}.kind-row{gap:16px;margin-bottom:12px;display:flex}.kind-word{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.new-agent-title{font-weight:inherit;cursor:default;margin:0}.form-error{font-family:var(--mono);color:var(--ink);margin:0 0 12px;font-size:14px}.header-settings{margin:0 16px 12px}.form-card{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);border-radius:16px;width:100%;max-width:358px;padding:16px}.form-card label{font-family:var(--chrome);color:var(--ink);margin:0 0 6px;font-size:14px;display:block}.form-card input,.form-card textarea{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;margin:0 0 12px;padding:10px 12px;font-size:14px}.runtime-note{font-family:var(--mono);color:var(--ink);margin:0 0 12px;font-size:14px}.runtime-picks{flex-wrap:wrap;gap:12px;margin:0 0 12px;display:flex}.runtime-pick{font-family:var(--mono);color:var(--ink);font-size:14px}.form-card input[type=radio]{vertical-align:middle;width:auto;accent-color:var(--accent);margin:0 4px 0 0;padding:0}.form-card .deck-control{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);text-overflow:ellipsis;border-radius:12px;outline:none;margin:0 0 8px;padding:10px 12px;font-size:14px}.runtime-hint{font-family:var(--chrome);color:var(--ink-faint);overflow-wrap:anywhere;margin:-6px 0 12px;font-size:12px;line-height:1.3}.runtime-link{font-family:var(--chrome);color:var(--accent);margin:0 0 12px;font-size:12px;text-decoration:none;display:inline-block}.bot-form .create-btn:disabled{opacity:.4;cursor:default}.cfg-page input[type=radio]{accent-color:var(--accent)}.agent-fieldset{border:0;min-width:0;margin:0;padding:0}.form-card .field-legend{font-family:var(--chrome);color:var(--ink);margin:0 0 6px;padding:0;font-size:14px;display:block}.form-card input:focus-visible,.form-card textarea:focus-visible,.form-card .deck-control:focus-visible,.form-card button:focus-visible,.form-card a:focus-visible,.cfg-page input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.runtime-retry{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.settings-link{align-self:flex-start;text-decoration:none}.deck-event-label{color:var(--accent)}@media (max-width:799px){.bot-form .runtime-picks{flex-direction:column;gap:6px}.bot-form .form-actions{flex-direction:column-reverse;align-items:stretch;gap:12px}}.form-actions{justify-content:space-between;align-items:center;display:flex}.agent-turn{width:100%}.agent-from{font-family:var(--chrome);color:var(--ink);justify-content:center;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;display:flex}.agent-mark{object-fit:cover;border-radius:50%;flex:none;width:16px;height:16px}.agent-bar{box-sizing:border-box;color:#fff;text-align:left;width:100%;font-family:var(--mono);white-space:pre-wrap;background:#2a2a2a;border:0;border-radius:16px;padding:16px;font-size:14px;line-height:1.45}.approve-control{background:var(--accent);color:var(--ink-on-accent);cursor:pointer;border:0;border-radius:8px;margin-top:10px;padding:6px 12px;display:inline-block}.file-control{background:var(--field);color:var(--ink);border:1px solid var(--hairline);font-family:var(--mono);border-radius:8px;margin-top:10px;padding:6px 12px;text-decoration:none;display:inline-block}.draft-card{font-family:var(--chrome);color:var(--ink);font-size:14px}.draft-title{font-family:var(--chrome);color:var(--ink);margin:0 0 12px;font-size:14px}.draft-card input,.draft-card textarea{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--chrome);color:var(--ink);border-radius:12px;outline:none;margin:0 0 12px;padding:10px 12px;font-size:14px}.draft-mark{font-family:var(--chrome);color:var(--ink);margin-top:10px;margin-right:8px;font-size:14px;display:inline-block}.messages-wrap{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.computer-float{z-index:3;pointer-events:none;border-radius:16px;flex-direction:column;display:flex;position:absolute;inset:8px 16px;overflow:hidden;box-shadow:0 16px 48px #00000073}.computer-top{color:#fff;pointer-events:none;background:#121212;flex:none;justify-content:space-between;align-items:center;height:46px;padding:0 14px 0 16px;display:flex}.computer-lights{pointer-events:none;align-items:center;gap:8px;display:flex}.computer-light{pointer-events:none;border-radius:50%;width:12px;height:12px;display:block}.computer-light-red{background:#ff5f57}.computer-light-yellow{background:#febc2e}.computer-light-green{background:#28c840}.computer-teach{pointer-events:none;align-items:center;gap:10px;display:flex}.computer-teach-pill{color:#fff;pointer-events:none;border:1px solid #ffffffb8;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 7px;font-family:system-ui,sans-serif;font-size:13px;font-weight:500;line-height:1.2;display:inline-flex}.computer-teach-mark{box-sizing:border-box;border:1.5px solid #fff;border-radius:50%;width:13px;height:13px;display:block}.computer-expand{color:#fff;pointer-events:none;display:flex}.computer-band{pointer-events:none;flex:none;height:48px}.computer-band-note{flex-direction:column;justify-content:center;height:auto;min-height:48px;padding:8px 16px;display:flex}.computer-band-note .thread-empty{flex:none;padding-bottom:0}.computer-desk{pointer-events:none;background:#d9d9d9 url(/computer/wallpaper.png) 50%/cover no-repeat;flex-direction:column;flex:auto;min-height:0;display:flex}.computer-page{pointer-events:none;background:0 0;border:0;flex:auto;width:100%;min-height:0}.computer-dock{pointer-events:none;flex:none;justify-content:center;align-items:center;gap:18px;padding:8px 0 16px;display:flex}.computer-dock img{pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;display:block}.computer-dock img:first-child{height:40px}.computer-dock img:nth-child(2){height:20px}.computer-dock img:nth-child(3){height:32px}.cfg-page{background:var(--field);min-height:100vh;color:var(--ink);font-family:var(--chrome);padding:16px}@media (min-width:640px){.cfg-page{padding:24px}}.cfg-card{background:var(--card);border:1px solid var(--hairline);border-radius:16px;padding:24px}.cfg-title{font-family:var(--chrome);color:var(--ink);font-weight:600}.cfg-muted{color:var(--ink-muted)}.cfg-faint{color:var(--ink-faint)}.cfg-link{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}a.cfg-link:hover,button.cfg-link:hover{text-decoration:underline}.cfg-back{margin-bottom:4px;display:inline-block}.cfg-code{font-family:var(--mono);color:var(--ink)}.cfg-pre{background:var(--composer);border:1px solid var(--hairline);font-family:var(--mono);color:var(--ink);white-space:pre-wrap;border-radius:12px;padding:12px}.cfg-input{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;padding:10px 12px}.cfg-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cfg-input-sans{font-family:var(--chrome)}.cfg-btn-primary{font-family:var(--chrome);background:var(--accent);color:var(--ink-on-accent);cursor:pointer;border:0;border-radius:8px;padding:8px 16px}.cfg-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.cfg-btn-primary:disabled{background:var(--composer);color:var(--ink);opacity:.55;cursor:default;filter:none}.cfg-btn-ghost{font-family:var(--chrome);background:var(--field);color:var(--ink);border:1px solid var(--hairline);cursor:pointer;border-radius:8px;padding:8px 16px;text-decoration:none}.cfg-btn-ghost:hover:not(:disabled){background:var(--composer)}.cfg-btn-ghost:disabled{opacity:.5;cursor:default}.cfg-row{border:1px solid var(--hairline);border-radius:12px;padding:12px}.cfg-line{border-color:var(--hairline)}.cfg-dirty{color:#e0a83e}.cfg-dot-amber{background:#f59e0b}.cfg-error{color:#f08080}.cfg-ok{color:#2ebd4e}.cfg-skel{background:var(--card);border:1px solid var(--hairline)}.cfg-avatar{object-fit:cover;border-radius:9999px}.cfg-chevron{color:var(--ink-faint);cursor:pointer;background:0 0;border:0}.cfg-chevron:hover{color:var(--ink)}.bot-avatar svg{width:100%;height:100%;display:block}.mark-avatar{flex:0 0 44px;width:44px;height:44px;position:relative}.mark-avatar-sm{flex-basis:36px;width:36px;height:36px}.mark-avatar .mark-dot{top:-2px;right:-2px}span.agent-mark{vertical-align:-3px;background:0 0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}button.avatar-pic{justify-content:center;align-items:center;display:flex}.avatar-group-label{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:600}.avatar-opt-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.avatar-opt{border:1px solid var(--hairline);cursor:pointer;color:var(--ink);background:0 0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:11px;line-height:1.2;display:flex;position:relative}.avatar-opt-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar-opt-art{display:flex}.avatar-opt:has(.avatar-opt-input:checked){border-color:currentColor;box-shadow:0 0 0 1px}.avatar-opt:has(.avatar-opt-input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.roster-status{font-family:var(--mono);color:var(--accent);margin:0;padding:0 16px;font-size:12px}.roster-status:empty{display:none}.roster-status:not(:empty){padding-bottom:12px}.delete-scrim{z-index:30;justify-content:center}.manage-scrim{z-index:25;justify-content:center}.delete-card,.manage-card{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);width:100%;color:var(--ink);border-radius:16px;margin-top:32px;padding:16px}.delete-card{max-width:440px}.manage-card{flex-direction:column;max-width:720px;max-height:calc(100vh - 64px);display:flex}.delete-title{font-family:var(--chrome);margin:0 0 12px;font-size:18px;font-weight:600}.delete-copy,.delete-error,.delete-blocked p{font-family:var(--mono);margin:0 0 12px;font-size:12px;line-height:1.5}.delete-keeps{color:var(--ink-muted)}.delete-error,.delete-blocked{color:var(--danger)}.delete-names,.delete-blocked ul{font-family:var(--mono);margin:0 0 12px;padding:0 0 0 18px;font-size:12px;line-height:1.5}.delete-names{max-height:160px;overflow-y:auto}.delete-btn{font-family:var(--chrome);color:var(--field);background:var(--danger);cursor:pointer;border:0;border-radius:8px;padding:6px 12px;font-size:14px}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.delete-card button:focus-visible,.manage-card button:focus-visible,.manage-card input:focus-visible,.row-menu [role=menuitem]:focus-visible,.cfg-danger button:focus-visible,.bar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.manage-head{justify-content:space-between;align-items:center;display:flex}.manage-search-label{font-family:var(--chrome);margin:0 0 6px;font-size:14px}.manage-search{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;padding:10px 12px;font-size:14px}.manage-tools{flex-wrap:wrap;align-items:baseline;gap:16px;margin:4px 0 8px;display:flex}.manage-tools .pin-word:disabled{opacity:.4;cursor:default}.manage-count{font-family:var(--mono);color:var(--ink-muted);margin-left:auto;font-size:12px}.manage-list{border-top:1px solid var(--hairline);flex:auto;min-height:0;margin:0 0 12px;padding:0;list-style:none;overflow-y:auto}.manage-row{border-bottom:1px solid var(--hairline);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.manage-row input[type=checkbox]{accent-color:var(--danger);margin-top:3px}.manage-row.is-blocked .manage-name,.manage-row.is-blocked .manage-meta{color:var(--ink-faint)}.manage-copy{flex:auto;min-width:0}.manage-name{font-family:var(--mono);cursor:pointer;overflow-wrap:anywhere;font-size:14px;display:block}.manage-tag{border:1px solid var(--hairline);color:var(--ink-muted);border-radius:6px;margin-left:8px;padding:0 4px;font-size:11px}.manage-meta{font-family:var(--mono);flex-wrap:wrap;gap:2px 16px;margin:4px 0 0;font-size:11px;display:flex}.manage-meta div{gap:4px;min-width:0;display:flex}.manage-meta dt{color:var(--ink-faint)}.manage-meta dd{overflow-wrap:anywhere;margin:0}.manage-reason{font-family:var(--mono);color:var(--danger);margin:4px 0 0;font-size:12px}.cfg-danger{border-color:var(--danger)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}