botmancers 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/README.md +17 -15
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/build-manifest.json +3 -3
  5. package/app/.next/prerender-manifest.json +3 -3
  6. package/app/.next/required-server-files.json +2 -2
  7. package/app/.next/server/app/_global-error.html +1 -1
  8. package/app/.next/server/app/_global-error.rsc +1 -1
  9. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/_not-found.html +1 -1
  15. package/app/.next/server/app/_not-found.rsc +2 -2
  16. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  18. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/app/.next/server/app/agents/[id]/activity/page.js.nft.json +1 -1
  20. package/app/.next/server/app/agents/[id]/activity/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/agents/[id]/config/page.js.nft.json +1 -1
  22. package/app/.next/server/app/agents/[id]/config/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page.js.nft.json +1 -1
  24. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/agents/[id]/conversations/page.js.nft.json +1 -1
  26. package/app/.next/server/app/agents/[id]/conversations/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/app/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/agents/[id]/sessions/page.js.nft.json +1 -1
  30. package/app/.next/server/app/agents/[id]/sessions/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/agents/[id]/slack/page.js.nft.json +1 -1
  32. package/app/.next/server/app/agents/[id]/slack/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/api/bots/[id]/activity/route.js.nft.json +1 -1
  34. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  35. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route.js +3 -3
  36. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route.js.nft.json +1 -1
  37. package/app/.next/server/app/api/bots/[id]/conversations/route.js +3 -3
  38. package/app/.next/server/app/api/bots/[id]/conversations/route.js.nft.json +1 -1
  39. package/app/.next/server/app/api/bots/[id]/overview/route.js +2 -2
  40. package/app/.next/server/app/api/bots/[id]/overview/route.js.nft.json +1 -1
  41. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +2 -2
  42. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
  43. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
  44. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +2 -2
  45. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -1
  46. package/app/.next/server/app/api/bots/[id]/sessions/route.js +2 -2
  47. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
  48. package/app/.next/server/app/api/bots/[id]/sessions/sync/route.js +1 -1
  49. package/app/.next/server/app/api/bots/[id]/sessions/sync/route.js.nft.json +1 -1
  50. package/app/.next/server/app/api/bots/[id]/share-policy/route.js +2 -2
  51. package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -1
  52. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  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.nft.json +1 -1
  56. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  58. package/app/.next/server/app/api/bots/route.js +4 -4
  59. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  64. package/app/.next/server/app/api/conversations/[id]/messages/route.js +3 -3
  65. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  66. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/conversations/[id]/stop/route.js +4 -4
  68. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +2 -2
  71. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/exchanges/[id]/route.js +1 -1
  73. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/exchanges/route.js +4 -4
  75. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/health/route.js +3 -3
  79. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/runtime-capacity/route.js.nft.json +1 -1
  83. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/service-grants/route.js +1 -1
  85. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
  86. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +2 -2
  87. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -1
  88. package/app/.next/server/app/api/shares/route.js +2 -2
  89. package/app/.next/server/app/api/shares/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +5 -5
  91. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +5 -5
  93. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +2 -2
  95. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +5 -5
  97. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +5 -5
  99. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +5 -5
  101. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +5 -5
  103. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/v0/agents/route.js +5 -5
  105. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/v0/capabilities/route.js +5 -5
  107. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/v0/conversations/[id]/route.js +2 -2
  109. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +5 -5
  111. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
  112. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +5 -5
  113. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/v0/exchanges/route.js +5 -5
  115. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/v0/mcp/route.js +4 -4
  117. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +5 -5
  119. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +5 -5
  121. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +5 -5
  123. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/v0/requests/[id]/route.js +2 -2
  125. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +5 -5
  127. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +5 -5
  129. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +5 -5
  131. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +5 -5
  133. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +5 -5
  135. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/v0/shares/current/route.js +5 -5
  137. package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/v0/shares/route.js +5 -5
  139. package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +2 -2
  141. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/wakes/[id]/decision/route.js +2 -2
  143. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/wakes/[id]/retry/route.js +2 -2
  145. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  146. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  147. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
  149. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/exchanges.html +1 -1
  151. package/app/.next/server/app/exchanges.rsc +3 -3
  152. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
  153. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
  154. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
  155. package/app/.next/server/app/index.html +1 -1
  156. package/app/.next/server/app/index.rsc +3 -3
  157. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  158. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  159. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  160. package/app/.next/server/app/page.js.nft.json +1 -1
  161. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  163. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/settings.html +1 -1
  165. package/app/.next/server/app/settings.rsc +3 -3
  166. package/app/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  167. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  168. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  169. package/app/.next/server/app/threads/[id]/route.js.nft.json +1 -1
  170. package/app/.next/server/chunks/[root-of-the-server]__0aincj4._.js +1 -1
  171. package/app/.next/server/chunks/[root-of-the-server]__0anfwiu._.js +1 -1
  172. package/app/.next/server/chunks/[root-of-the-server]__0fku-bw._.js +1 -1
  173. package/app/.next/server/chunks/[root-of-the-server]__1273j55._.js +52 -0
  174. package/app/.next/server/chunks/[root-of-the-server]__13wghn3._.js +4 -4
  175. package/app/.next/server/chunks/[root-of-the-server]__1fdy1d8._.js +3 -0
  176. package/app/.next/server/chunks/[root-of-the-server]__1n7hlu8._.js +46 -0
  177. package/app/.next/server/chunks/_0061c2q._.js +1 -1
  178. package/app/.next/server/chunks/_031id45._.js +3 -0
  179. package/app/.next/server/chunks/_04o493a._.js +3 -0
  180. package/app/.next/server/chunks/_06yp-l-._.js +3 -0
  181. package/app/.next/server/chunks/_0bl1uw-._.js +3 -0
  182. package/app/.next/server/chunks/_0gh03eo._.js +3 -0
  183. package/app/.next/server/chunks/_0h0j5ta._.js +3 -0
  184. package/app/.next/server/chunks/_0hzb8hh._.js +3 -0
  185. package/app/.next/server/chunks/_0oodw7g._.js +3 -0
  186. package/app/.next/server/chunks/_0owd_4q._.js +3 -0
  187. package/app/.next/server/chunks/_0venewj._.js +3 -0
  188. package/app/.next/server/chunks/_0wzia1p._.js +3 -0
  189. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  190. package/app/.next/server/chunks/_1-8493l._.js +3 -0
  191. package/app/.next/server/chunks/_1a0er16._.js +3 -3
  192. package/app/.next/server/chunks/_1bvoyii._.js +3 -0
  193. package/app/.next/server/chunks/_1gyq3w2._.js +3 -0
  194. package/app/.next/server/chunks/_1j3c311._.js +3 -0
  195. package/app/.next/server/chunks/{_1ey6l4p._.js → _1k74ggt._.js} +2 -2
  196. package/app/.next/server/chunks/_1l_t4_r._.js +3 -0
  197. package/app/.next/server/chunks/_1lac7c3._.js +3 -0
  198. package/app/.next/server/chunks/_1mlmzwb._.js +3 -0
  199. package/app/.next/server/chunks/_1rg79tr._.js +3 -0
  200. package/app/.next/server/chunks/_1s5qnlr._.js +3 -0
  201. package/app/.next/server/chunks/{_1x4dqzv._.js → _1u-wiq_._.js} +2 -2
  202. package/app/.next/server/chunks/_1uxmsh3._.js +3 -3
  203. package/app/.next/server/chunks/_1xaqb38._.js +3 -0
  204. package/app/.next/server/chunks/_1zw-w5h._.js +3 -0
  205. package/app/.next/server/chunks/lib_0-opbv7._.js +30 -30
  206. package/app/.next/server/chunks/lib_0aejojj._.js +30 -30
  207. package/app/.next/server/chunks/lib_0al5wbc._.js +30 -30
  208. package/app/.next/server/chunks/lib_0il0ml1._.js +30 -30
  209. package/app/.next/server/chunks/lib_0iujsdg._.js +30 -30
  210. package/app/.next/server/chunks/lib_15a9ejf._.js +35 -28
  211. package/app/.next/server/chunks/lib_19pzc33._.js +35 -28
  212. package/app/.next/server/chunks/lib_1a4ucxv._.js +30 -30
  213. package/app/.next/server/chunks/lib_1dehbst._.js +30 -30
  214. package/app/.next/server/chunks/lib_1h919zb._.js +3 -0
  215. package/app/.next/server/chunks/lib_1z4vnh4._.js +30 -30
  216. package/app/.next/server/chunks/lib_1z7d95m._.js +35 -28
  217. package/app/.next/server/chunks/lib_db_ts_1ttuckb._.js +9 -2
  218. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +1 -1
  219. package/app/.next/server/chunks/lib_service-api_ts_18eok4w._.js +5 -5
  220. package/app/.next/server/chunks/lib_slack-runtime_ts_0fgsejy._.js +6 -6
  221. package/app/.next/server/chunks/ssr/_00qrupp._.js +3 -0
  222. package/app/.next/server/chunks/ssr/_01ngpwj._.js +1 -1
  223. package/app/.next/server/chunks/ssr/_0d7gv3q._.js +3 -0
  224. package/app/.next/server/chunks/ssr/_0iywd5g._.js +1 -1
  225. package/app/.next/server/chunks/ssr/_0mxifu3._.js +1 -1
  226. package/app/.next/server/chunks/ssr/_0u7urta._.js +1 -1
  227. package/app/.next/server/chunks/ssr/app_agents_[id]_0sr4fdg._.js +1 -1
  228. package/app/.next/server/chunks/ssr/app_agents_[id]_activity_AgentActivityPage_tsx_042-590._.js +1 -1
  229. package/app/.next/server/chunks/ssr/app_agents_[id]_config_page_tsx_1f_gu1l._.js +1 -1
  230. package/app/.next/server/chunks/ssr/app_agents_[id]_sessions_page_tsx_0tfup-2._.js +3 -3
  231. package/app/.next/server/chunks/ssr/app_agents_[id]_slack_AgentSlackPage_tsx_20njhs1._.js +1 -1
  232. package/app/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js +1 -1
  233. package/app/.next/server/chunks/ssr/lib_0pfn9gs._.js +1 -1
  234. package/app/.next/server/chunks/ssr/lib_agent-registration-ui_ts_1z582mm._.js +1 -1
  235. package/app/.next/server/chunks/ssr/lib_exchange-view_ts_1a4q9ju._.js +1 -1
  236. package/app/.next/server/chunks/ssr/lib_share-view_ts_08psw5o._.js +1 -1
  237. package/app/.next/server/middleware-build-manifest.js +3 -3
  238. package/app/.next/server/pages/404.html +1 -1
  239. package/app/.next/server/pages/500.html +1 -1
  240. package/app/.next/server/server-reference-manifest.js +1 -1
  241. package/app/.next/server/server-reference-manifest.json +1 -1
  242. package/app/.next/static/chunks/{2dtkykrnob8wk.js → 00pca1oa16xc5.js} +1 -1
  243. package/app/.next/static/chunks/{3x56k5qa012au.js → 0apccyvpyjlo7.js} +1 -1
  244. package/app/.next/static/chunks/{04nfr73lkk7pz.js → 0l9r-x310007w.js} +1 -1
  245. package/app/.next/static/chunks/{0eqgs3167zj2j.js → 0xo3nwo_nscvf.js} +1 -1
  246. package/app/.next/static/chunks/{326jto9l-m8vj.js → 0z_bq7h1mwcf3.js} +4 -4
  247. package/app/.next/static/chunks/18btj4qlun8o7.js +1 -0
  248. package/app/.next/static/chunks/{2cc4uzbhs_v23.js → 1k8e6j67zksws.js} +1 -1
  249. package/app/.next/static/chunks/{0h567k13e53r-.js → 1y9hc8qm0hqds.js} +1 -1
  250. package/app/.next/static/chunks/{2ebpfmg4vni8e.js → 2wbcr5n_vcynr.js} +1 -1
  251. package/app/.next/static/chunks/3_lwv2zgy_-bw.css +3 -0
  252. package/app/.next/static/chunks/3a_ffnuma49te.js +1 -0
  253. package/app/.next/static/chunks/{3whw2-l4a2sli.js → 3fm68xa8a4-es.js} +1 -1
  254. package/app/.next/static/chunks/{0cjh4u-f7mlwd.js → 3gw1ytgjq4pxu.js} +1 -1
  255. package/app/.next/static/chunks/3wlqn3gd_jv_r.js +1 -0
  256. package/app/.next/static/chunks/3xjoca0z2onuc.js +1 -0
  257. package/app/BUILD_INFO.json +2 -2
  258. package/app/package.json +1 -1
  259. package/app/server.js +1 -1
  260. package/dist/contract.js +2 -2
  261. package/package.json +1 -1
  262. package/schemas/botmancers.mcp.v2.tools.json +48 -83
  263. package/skills/botmancers-collaboration/SKILL.md +10 -10
  264. package/skills/botmancers-collaboration/references/workflows.md +20 -14
  265. package/app/.next/server/chunks/[root-of-the-server]__07q5mnr._.js +0 -3
  266. package/app/.next/server/chunks/[root-of-the-server]__1280ke1._.js +0 -46
  267. package/app/.next/server/chunks/[root-of-the-server]__1jxwu9_._.js +0 -52
  268. package/app/.next/server/chunks/_04e2bgj._.js +0 -3
  269. package/app/.next/server/chunks/_05po7b4._.js +0 -3
  270. package/app/.next/server/chunks/_06sxx0e._.js +0 -3
  271. package/app/.next/server/chunks/_0ar2ooe._.js +0 -3
  272. package/app/.next/server/chunks/_0fmotaz._.js +0 -3
  273. package/app/.next/server/chunks/_0kpfto_._.js +0 -3
  274. package/app/.next/server/chunks/_0lm6uis._.js +0 -3
  275. package/app/.next/server/chunks/_0mpu5tl._.js +0 -3
  276. package/app/.next/server/chunks/_0u9cfq9._.js +0 -3
  277. package/app/.next/server/chunks/_0ul8k7g._.js +0 -3
  278. package/app/.next/server/chunks/_1-60d3o._.js +0 -3
  279. package/app/.next/server/chunks/_11-q8k1._.js +0 -3
  280. package/app/.next/server/chunks/_133y3b0._.js +0 -3
  281. package/app/.next/server/chunks/_167960a._.js +0 -3
  282. package/app/.next/server/chunks/_17vgjlt._.js +0 -3
  283. package/app/.next/server/chunks/_1amx9_4._.js +0 -3
  284. package/app/.next/server/chunks/_1b01v-_._.js +0 -3
  285. package/app/.next/server/chunks/_1c-g4gq._.js +0 -3
  286. package/app/.next/server/chunks/_1ess5if._.js +0 -3
  287. package/app/.next/server/chunks/_1i0zod4._.js +0 -3
  288. package/app/.next/server/chunks/_1nlg4x_._.js +0 -3
  289. package/app/.next/server/chunks/_1z0qbzc._.js +0 -3
  290. package/app/.next/server/chunks/lib_0i8cm07._.js +0 -3
  291. package/app/.next/server/chunks/ssr/_0g3y1u9._.js +0 -3
  292. package/app/.next/server/chunks/ssr/app_agents_[id]_conversations_page_tsx_15zl_c8._.js +0 -3
  293. package/app/.next/static/chunks/10i-rrea371m2.js +0 -1
  294. package/app/.next/static/chunks/17qi6hcgg0nlz.css +0 -3
  295. package/app/.next/static/chunks/1ypwptc0fsn4w.js +0 -1
  296. package/app/.next/static/chunks/2myfan3i8z-jy.js +0 -1
  297. package/app/.next/static/chunks/34v8aumua0x5n.js +0 -1
  298. /package/app/.next/static/{92gsyY5d-nMkxJ7iQxKkY → 45V8A9u4-Y-aZNxovpZCu}/_buildManifest.js +0 -0
  299. /package/app/.next/static/{92gsyY5d-nMkxJ7iQxKkY → 45V8A9u4-Y-aZNxovpZCu}/_clientMiddlewareManifest.js +0 -0
  300. /package/app/.next/static/{92gsyY5d-nMkxJ7iQxKkY → 45V8A9u4-Y-aZNxovpZCu}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91267,e=>{"use strict";var t=e.i(43476),n=e.i(22016),a=e.i(71645),s=e.i(70925);let r=["disabled","misconfigured","connecting","connected","reconnecting","failed","stopped"],i=["slack_tokens_absent","app_token_missing","bot_token_missing","app_token_invalid","bot_token_invalid","share_config_absent","share_config_invalid","share_config_no_audience","workspace_not_allowlisted","slack_auth_failed","slack_connect_failed"],o={app_token_missing:"Add the Socket Mode app token to the Botmancers core environment, then restart Botmancers.",bot_token_missing:"Add the bot token to the Botmancers core environment, then restart Botmancers.",app_token_invalid:"Replace the Socket Mode app token with a valid value, then restart Botmancers.",bot_token_invalid:"Replace the bot token with a valid value, then restart Botmancers.",share_config_absent:"Add an allowlisted Slack channel in Agent Config, then restart Botmancers.",share_config_invalid:"Repair the session sharing policy in Agent Config, then restart Botmancers.",share_config_no_audience:"Add an allowlisted Slack channel in Agent Config, then restart Botmancers.",workspace_not_allowlisted:"Allowlist a channel from the workspace connected to the Botmancers Slack app, then restart Botmancers."};function l(e){switch(e.state){case"disabled":return{label:"Disabled",summary:"The optional Botmancers Slack relay is off.",guidance:"To use Slack sharing, configure both Slack relay credentials and at least one allowlisted channel, then restart Botmancers.",tone:"quiet"};case"misconfigured":return{label:"Needs configuration",summary:"The Botmancers Slack relay cannot start with its current configuration.",guidance:o[e.reason??"share_config_invalid"]??"Review the Slack relay credentials and sharing allowlist, then restart Botmancers.",tone:"warning"};case"connecting":return{label:"Connecting",summary:"The Botmancers Slack relay is opening its Socket Mode connection.",guidance:"Wait a moment, then refresh. Existing shares remain bounded to their exact sessions.",tone:"working"};case"connected":return{label:"Connected",summary:"The single Botmancers Slack relay is connected.",guidance:"It can post and answer eligible shared-session threads for all Agents on this Botmancers instance.",tone:"good"};case"reconnecting":return{label:"Reconnecting",summary:"The Botmancers Slack relay lost its connection and is reconnecting.",guidance:"Wait and refresh. Pending work is recovered after the connection returns; do not recreate shares just for a reconnect.",tone:"working"};case"failed":return{label:"Failed",summary:"The Botmancers Slack relay could not authenticate or connect.",guidance:"slack_auth_failed"===e.reason?"Check the configured Slack app and bot credentials, then restart Botmancers.":"Check Slack connectivity and the Socket Mode app configuration, then restart Botmancers.",tone:"warning"};case"stopped":return{label:"Stopped",summary:"The Botmancers Slack relay is not running.",guidance:"Start or restart Botmancers. Existing share records remain available for review.",tone:"quiet"}}}let c=[{value:"all",label:"All states"},{value:"active",label:"Live"},{value:"expired",label:"Expired"},{value:"revoked",label:"Revoked"}];var d=e.i(24204);function u({agentId:e,agentName:a,relay:s,policy:r,shares:i,filter:o,nextCursor:l,refreshing:d,loadingMore:p,onFilter:v,onRefresh:k,onLoadMore:_,onSharesChanged:b}){let x=`/agents/${encodeURIComponent(e)}/sessions`,y=`/agents/${encodeURIComponent(e)}/config#session-sharing`;return(0,t.jsxs)("div",{className:"agent-slack","data-agent-slack-page":!0,children:[(0,t.jsxs)("header",{className:"agent-slack-intro",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Slack"}),(0,t.jsx)("h2",{children:"Relay health and shared sessions"}),(0,t.jsxs)("p",{children:["Botmancers runs one optional Slack relay. ",a," does not have a separate Slack app; below are only the session threads shared for this Agent."]})]}),(0,t.jsx)("button",{type:"button",className:"agent-slack-refresh",onClick:k,disabled:d,children:d?"Refreshing…":"Refresh"})]}),(0,t.jsxs)("section",{className:"agent-slack-relay","aria-labelledby":"relay-heading",children:[(0,t.jsxs)("div",{className:"agent-slack-section-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Botmancers-wide connection"}),(0,t.jsx)("h3",{id:"relay-heading",children:"Slack relay"})]}),"ready"===s.state?(0,t.jsx)(h,{health:s.value}):null]}),"loading"===s.state?(0,t.jsx)("p",{role:"status",children:"Checking the relay…"}):null,"error"===s.state?(0,t.jsxs)("div",{className:"agent-slack-error",role:"alert",children:[(0,t.jsx)("strong",{children:"Relay health unavailable"}),(0,t.jsx)("p",{children:"Botmancers could not read the redacted health status. Refresh to try again."})]}):null,"ready"===s.state?(0,t.jsx)(g,{health:s.value}):null]}),(0,t.jsxs)("section",{className:"agent-slack-policy","aria-labelledby":"policy-heading",children:[(0,t.jsxs)("div",{className:"agent-slack-section-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"This Agent"}),(0,t.jsx)("h3",{id:"policy-heading",children:"Sharing readiness"})]}),(0,t.jsx)(n.default,{href:y,children:"Edit in Config"})]}),"loading"===r.state?(0,t.jsx)("p",{role:"status",children:"Checking sharing policy…"}):null,"error"===r.state?(0,t.jsxs)("div",{className:"agent-slack-error",role:"alert",children:[(0,t.jsx)("strong",{children:"Sharing policy unavailable"}),(0,t.jsx)("p",{children:"Refresh, or open Config to review this Agent’s stored policy."})]}):null,"ready"===r.state?(0,t.jsx)(f,{policy:r.value}):null]}),(0,t.jsxs)("section",{className:"agent-slack-shares","aria-labelledby":"shares-heading",children:[(0,t.jsxs)("div",{className:"agent-slack-section-head agent-slack-shares-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"This Agent"}),(0,t.jsx)("h3",{id:"shares-heading",children:"Shared session threads"}),(0,t.jsx)("p",{children:"Each share is ask-only and can reach exactly one owning session."})]}),(0,t.jsx)(n.default,{className:"agent-primary-action",href:x,children:"Share a session"})]}),(0,t.jsx)("div",{className:"agent-slack-filters",role:"group","aria-label":"Filter shares by state",children:c.map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":o===e.value,onClick:()=>v(e.value),children:e.label},e.value))}),"loading"===i.state?(0,t.jsx)("p",{className:"agent-slack-empty",role:"status",children:"Loading shared sessions…"}):null,"error"===i.state?(0,t.jsxs)("div",{className:"agent-slack-error",role:"alert",children:[(0,t.jsx)("strong",{children:"Shared sessions unavailable"}),(0,t.jsx)("p",{children:"No partial or stale list is shown. Refresh to try again."})]}):null,"ready"===i.state&&0===i.value.length?(0,t.jsx)("p",{className:"agent-slack-empty",children:"all"===o?`No sessions from ${a} have been shared to Slack yet.`:`No ${c.find(e=>e.value===o)?.label.toLowerCase()} shares for ${a}.`}):null,"ready"===i.state&&i.value.length>0?(0,t.jsx)("ul",{className:"agent-slack-share-list","aria-label":`Slack shares for ${a}`,children:i.value.map(n=>(0,t.jsx)(m,{share:n,agentId:e,onChanged:b},n.share_ref))}):null,"ready"===i.state&&l?(0,t.jsx)("button",{type:"button",className:"agent-slack-more",onClick:_,disabled:p,children:p?"Loading…":"Load more shares"}):null]})]})}function h({health:e}){let n=l(e);return(0,t.jsx)("span",{className:`agent-slack-status is-${n.tone}`,"data-relay-state":e.state,children:n.label})}function g({health:e}){let n=l(e);return(0,t.jsxs)("div",{className:"agent-slack-relay-copy",children:[(0,t.jsx)("p",{children:(0,t.jsx)("strong",{children:n.summary})}),(0,t.jsx)("p",{children:n.guidance}),"connected"===e.state&&e.connections>0?(0,t.jsxs)("p",{className:"agent-muted",children:["Connections opened this run: ",e.connections]}):null]})}function f({policy:e}){let n="loaded"===e.state&&e.audiences.length>0;return(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:(0,t.jsx)("strong",{children:n?"Ready to create session shares.":"invalid"===e.state?"The sharing policy needs repair.":"No Slack audience is allowlisted yet."})}),(0,t.jsxs)("p",{className:"agent-muted",children:["Share from a running Agent turn: ",e.agent.share_from_turn?"On":"Off",". Session owners can still share eligible sessions from Sessions."]}),e.audiences.length?(0,t.jsx)("ul",{className:"agent-slack-audiences","aria-label":"Allowed Slack audiences",children:e.audiences.map(e=>(0,t.jsx)("li",{children:(0,d.audienceLabel)(e)},`${e.team_id}:${e.channel_id}`))}):(0,t.jsx)("p",{className:"agent-slack-empty",children:"No allowlisted Slack channels."})]})}function m({share:e,agentId:s,onChanged:r}){let[i,o]=(0,a.useState)(!1),[l,c]=(0,a.useState)(!1),[u,h]=(0,a.useState)(""),g=(0,a.useRef)(null),f=(0,d.shareIsLive)(e),p=`/agents/${encodeURIComponent(s)}/sessions?session=${encodeURIComponent(e.session_ref)}`,v=async()=>{c(!0),h("");try{let t=await fetch(`/api/shares/${encodeURIComponent(e.share_ref)}/revoke`,{method:"POST"}),n=await t.json().catch(()=>null);if(!t.ok)throw Error("string"==typeof n?.error?.message?n.error.message:"The share could not be revoked.");o(!1),r()}catch(e){h(e instanceof Error?e.message:"The share could not be revoked.")}finally{c(!1)}};return(0,t.jsxs)("li",{className:`agent-slack-share is-${e.status}`,"data-share-ref":e.share_ref,"data-share-status":e.status,children:[(0,t.jsxs)("div",{className:"agent-slack-share-summary",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:`agent-slack-status is-share-${e.status}`,children:d.SHARE_STATUS_LABELS[e.status]}),(0,t.jsx)("strong",{children:(0,d.audienceLabel)(e.audience)}),(0,t.jsxs)("small",{children:[(0,d.turnsLabel)(e)," · ",(0,d.expiryLabel)(e)]})]}),(0,t.jsx)("span",{className:"agent-slack-detail-hint",children:"Open for details"})]}),(0,t.jsx)("p",{className:"agent-slack-state-note",children:(0,d.shareStatusNote)(e)}),(0,t.jsxs)("details",{className:"agent-slack-details",children:[(0,t.jsx)("summary",{children:"Details"}),(0,t.jsxs)("dl",{className:"agent-slack-share-details",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Owning session"}),(0,t.jsx)("dd",{children:(0,t.jsx)(n.default,{href:p,children:e.session_ref})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Posted thread"}),(0,t.jsx)("dd",{children:(0,d.threadLabel)(e)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Creation path"}),(0,t.jsx)("dd",{children:"current_session"===e.created_via?"Running Agent turn":"owner"===e.created_by?"Agent Sessions":"Session share API"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Created by"}),(0,t.jsx)("dd",{children:(0,d.createdByLabel)(e)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Authority"}),(0,t.jsx)("dd",{children:"Ask only · exact session"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Share reference"}),(0,t.jsx)("dd",{children:(0,t.jsx)("code",{children:e.share_ref})})]})]})]}),(0,t.jsxs)("div",{className:"agent-slack-share-actions",children:[(0,t.jsx)(n.default,{href:p,children:"Open owning session"}),f&&!i?(0,t.jsx)("button",{ref:g,type:"button",className:"agent-slack-revoke","data-share-action":"revoke",onClick:()=>o(!0),children:"Revoke"}):null]}),i?(0,t.jsxs)("div",{className:"agent-slack-confirm",role:"group","aria-label":"Confirm revoke",children:[(0,t.jsx)("p",{children:"Revoke this share? The next Slack question in its thread gets the revoked notice. This can’t be undone."}),(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",className:"agent-slack-revoke","data-share-action":"confirm-revoke",disabled:l,onClick:()=>{v()},children:l?"Revoking…":"Revoke share"}),(0,t.jsx)("button",{type:"button",disabled:l,onClick:()=>{o(!1),requestAnimationFrame(()=>g.current?.focus())},children:"Keep it"})]})]}):null,u?(0,t.jsx)("p",{className:"delete-error",role:"alert",children:u}):null]})}e.s(["AgentSlackView",0,u,"default",0,function(){let{id:e,overview:o,loading:l,error:c,notFound:d}=(0,s.useAgentOverview)(),[h,g]=(0,a.useState)({state:"loading"}),[f,m]=(0,a.useState)({state:"loading"}),[p,v]=(0,a.useState)({state:"loading"}),[k,_]=(0,a.useState)("all"),[b,x]=(0,a.useState)(null),[y,S]=(0,a.useState)(!1),[$,w]=(0,a.useState)(!1),[j,A]=(0,a.useState)(0),[C,R]=(0,a.useState)(""),N=(0,a.useRef)(0),T=(0,a.useCallback)((t=null)=>{let n=new URLSearchParams({agent_id:e,limit:String(12)});return"all"!==k&&n.set("state",k),t&&n.set("cursor",t),`/api/shares?${n.toString()}`},[k,e]);(0,a.useEffect)(()=>{let t=!1,n=++N.current;return Promise.allSettled([fetch("/api/health",{cache:"no-store"}).then(async e=>(function(e){if(!e||"object"!=typeof e||!r.includes(e.state))return null;let t=null===e.reason?null:i.includes(e.reason)?e.reason:null;return{state:e.state,reason:t,since:Number.isFinite(e.since)?Number(e.since):0,connections:Number.isInteger(e.connections)&&Number(e.connections)>=0?Number(e.connections):0}})((await e.json().catch(()=>null))?.slack)),fetch(`/api/bots/${encodeURIComponent(e)}/share-policy`,{cache:"no-store"}).then(async e=>{let t=await e.json().catch(()=>null);if(!e.ok||!t?.policy)throw Error("policy");return t.policy}),fetch(T(),{cache:"no-store"}).then(async t=>{let n=await t.json().catch(()=>null);if(!t.ok||!Array.isArray(n?.shares))throw Error("shares");return{shares:n.shares.filter(t=>t.agent.id===e),cursor:"string"==typeof n.next_cursor?n.next_cursor:null}})]).then(([a,s,r])=>{t||n!==N.current||(g("fulfilled"===a.status&&a.value?{state:"ready",value:a.value}:{state:"error"}),m("fulfilled"===s.status?{state:"ready",value:s.value}:{state:"error"}),"fulfilled"===r.status?(v({state:"ready",value:r.value.shares}),x(r.value.cursor)):v({state:"error"}),R(e))}).finally(()=>{t||n!==N.current||w(!1)}),()=>{t=!0}},[e,j,T]);let I=()=>{w(!0),g({state:"loading"}),m({state:"loading"}),v({state:"loading"}),x(null),A(e=>e+1)},L=async()=>{if(b&&!y&&"ready"===p.state){S(!0);try{let t=await fetch(T(b),{cache:"no-store"}),n=await t.json().catch(()=>null);if(!t.ok||!Array.isArray(n?.shares))throw Error("shares");let a=n.shares.filter(t=>t.agent.id===e);v({state:"ready",value:[...p.value,...a]}),x("string"==typeof n.next_cursor?n.next_cursor:null)}catch{v({state:"error"})}finally{S(!1)}}};if(l)return(0,t.jsx)("div",{className:"agent-state",role:"status",children:"Loading Slack operations…"});if(d)return(0,t.jsxs)("div",{className:"agent-state",children:[(0,t.jsx)("h2",{children:"Agent not found"}),(0,t.jsx)(n.default,{href:"/",children:"Choose an Agent"})]});if(c||!o)return(0,t.jsxs)("div",{className:"agent-state",role:"alert",children:[(0,t.jsx)("h2",{children:"Slack page unavailable"}),(0,t.jsx)("p",{children:"Botmancers could not load this Agent."})]});let B=C!==e;return(0,t.jsx)(u,{agentId:e,agentName:o.agent.name,relay:B?{state:"loading"}:h,policy:B?{state:"loading"}:f,shares:B?{state:"loading"}:p,filter:k,nextCursor:b,refreshing:$,loadingMore:y,onFilter:e=>{e!==k&&(v({state:"loading"}),x(null),_(e))},onRefresh:I,onLoadMore:()=>{L()},onSharesChanged:I})}],91267)},50814,63352,e=>{"use strict";function t(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}function n(e){return e?e.split("/").filter(e=>e.length>0).pop()??null:null}function a(e,t){let n=function(e){if(!e)return null;let t=e.toLowerCase();return"muse code"===t?"muse":(["codex","claude","cursor","hermes","muse"].includes(t),t)}(t);switch(e){case"provider_unavailable":return n?{reason:`${n} is not installed or did not start`,fix:`Install ${n} and Retry.`}:{reason:"the runtime is not installed or did not start",fix:"Install the runtime and Retry."};case"auth_required":return{reason:"not signed in",fix:"Sign in and Retry."};case"permission_denied":return{reason:"permission denied",fix:"Check permissions and Retry."};case"incompatible_version":return{reason:"incompatible version",fix:"Update the runtime and Retry."};case"usage_limit":return{reason:"usage limit reached",fix:"Wait or upgrade and Retry."};case"scope_missing":return{reason:"no session scope is set",fix:"Choose a scope in Config."};case"provider_failed":return{reason:"the listing failed",fix:"Retry."};default:return{reason:e,fix:"Retry."}}}let s="Not reported";function r(e){return e.toFixed(1).replace(/\.0$/,"")}function i(e){return e.toLocaleString("en-US")}function o(e){return 0===e?"$0.00":e>=.01?`$${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:e<1e-4?"<$0.0001":`$${e.toFixed(4)}`}let l={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function c(e,t,n){return"cost_usd"===e?o(t):n?i(t):t<1e3?String(t):t<999950?`${r(t/1e3)}k`:t<99995e4?`${r(t/1e6)}M`:`${r(t/1e9)}B`}function d(e){return`${e} ${1===e?"run":"runs"}`}function u(e,t,n=!1){let a=l[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:a,text:s,quality:"unavailable",coverage:t&&t.total>0?`0 of ${d(t.total)} reported`:"No runs recorded",label:`${a}: not reported`};let r=c(e,t.sum,n),i=c(e,t.sum,!0);return"partial"===t.quality?{name:a,text:r,quality:"partial",coverage:`Partial: ${t.known} of ${d(t.total)} reported`,label:`${a}: at least ${i}, partial, reported by ${t.known} of ${d(t.total)}`}:{name:a,text:r,quality:"complete",coverage:`All ${d(t.total)} reported`,label:`${a}: ${i}, reported by all ${d(t.total)}`}}e.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(e){let t="source"===e.role?"Started the session":"Resumed the session";return`${t} \xb7 ${e.outcome??"running"}`},"emptySessionsCopy",0,function(e,t,n,s){if("active"===e)return`${t} has no active sessions.`;if("ended"===e)return`${t} has no ended sessions.`;if(n?.last_error_code){let{reason:e,fix:t}=a(n.last_error_code,s),r=s?`${s} sessions`:"sessions";return`Could not read ${r}: ${e}. ${t}`}if(n&&null===n.synced_at)return`${t} has not synced sessions yet. Refresh to load past sessions.`;let r=n?.out_of_scope_count??0;return r>0?`${r} ${1===r?"session exists":"sessions exist"} outside ${t}'s scope. Widen the scope to see them.`:`${t} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,t,"formatSyncRelativeTime",0,function(e,t=Date.now()){if(null===e)return"never";let n=Math.max(0,t-e);if(n<6e4)return"just now";let a=Math.floor(n/6e4);if(a<60)return`${a} minute${1===a?"":"s"} ago`;let s=Math.floor(a/60);if(s<24)return`${s} hour${1===s?"":"s"} ago`;let r=Math.floor(s/24);return`${r} day${1===r?"":"s"} ago`},"noMatchingSessionsCopy",0,function(e,t){let a=e.trim();if(a)return`No sessions match “${a}”.`;let s=n(t);return s?`No sessions in ${s}.`:"No sessions match the current filters."},"registrationSessionSyncCopy",0,function(e,t){if("failed"===e.outcome){let{reason:n,fix:s}=a(e.error_code??"provider_failed",t);return`Could not read ${t} sessions: ${n}. ${s}`}if("unsupported"===e.outcome)return`Past sessions are not available for ${t}.`;let n=1===e.imported?"session":"sessions",s=`Loaded ${e.imported} ${n}`;return e.rejected_out_of_scope>0&&(s+=`, ${e.rejected_out_of_scope} outside the scope`),e.complete||(s+=", more remain"),`${s}.`},"runtimeLabel",0,function(e){return e.agent.transport?`${e.agent.adapter} \xb7 ${e.agent.transport}`:e.agent.adapter},"sessionOriginChips",0,function(e){let t=[],n=e.origin.work_request?.requester;return n?.kind==="person"?t.push("Human origin"):n?.kind==="bot"?t.push(n.name?`${n.name} Agent`:"Agent origin"):n?.kind==="service"&&t.push("Service origin"),e.origin.conversation&&t.push(e.origin.conversation.label),[...new Set(t)]},"sessionStateTags",0,function(e){let t=[];return(e.home&&t.push("Home"),e.state?.availability==="missing")?[...t,"Missing"]:(e.state?.lifecycle==="archived"&&t.push("Archived"),e.state?.busy&&t.push("Busy"),(e.resumable||e.state?.resumable===!0)&&t.push("Resumable"),t)},"sessionUsageLine",0,function(e){let t=u("input_tokens",e?.input_tokens),n=u("output_tokens",e?.output_tokens),a=u("cost_usd",e?.cost_usd),r=[t,n,a];if(r.every(e=>"unavailable"===e.quality))return{text:s,label:"Usage: not reported",quality:"unavailable",partial:!1};let i=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===n.quality?"output not reported":`${n.text} out`,"unavailable"===a.quality?"cost not reported":a.text].join(" · "),o=r.some(e=>"partial"===e.quality),l=o||r.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:i,label:`Reported usage: ${r.map(e=>e.label).join("; ")}`,quality:l,partial:o}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,u,"usageSampleLabel",0,function(e,t){let n="turn"===e.kind?"start"===e.turn_kind?"provider turn, started":"provider turn":"resume"===e.turn_kind?"resumed":"started";return`Run ${t+1} \xb7 ${n}`},"usageSampleValues",0,function(e){return{input:null===e.input_tokens?s:i(e.input_tokens),output:null===e.output_tokens?s:i(e.output_tokens),cost:null===e.cost_usd?s:o(e.cost_usd)}},"workRequestLabel",0,function(e){var t;let n=e.origin.work_request;return n?`${(t=n.execution_kind)?t[0].toUpperCase()+t.slice(1):t} \xb7 ${n.state}`:null},"workspaceFolderName",0,n,"workspaceOptions",0,function(e){let t=[...new Set(e.filter(e=>"string"==typeof e&&e.length>0))],a=t.map(e=>n(e)??e);return t.map((e,t)=>({value:e,label:a.filter(e=>e===a[t]).length>1?e:a[t]})).sort((e,t)=>e.label<t.label?-1:+(e.label>t.label))}],63352);let h={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},g=["queued","extracting","delivering","completed","failed","cancelled"],f=["completed","failed","cancelled"];function m(e,t){switch(t){case"queued":return"Queued";case"extracting":return"ask"===e?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===e?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function p(e,t=140){let n=String(e??"").split("\n").map(e=>e.trim()).filter(e=>e.length>0).join(" ");return n.length>t?`${n.slice(0,t-1).trimEnd()}…`:n}function v(e,t){return t.updated_at-e.updated_at||t.created_at-e.created_at||(e.id<t.id?-1:+(e.id>t.id))}e.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,function(e){return`/exchanges?id=${encodeURIComponent(e)}`},"eventLabel",0,function(e,t){let n=e.data??{},a=t.source.agent_name,s=t.destination?.agent_name??"the destination Agent",r="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${a}'s session a question`:`You handed ${a}'s session to ${s}`;case"hop_queued":if("deliver"===r)return`Handoff queued for ${s}'s new session`;return"extract"===r?`Handoff extraction queued in ${a}'s session`:`Question queued for ${a}'s session`;case"hop_started":if("deliver"===r)return`${s} started a new session`;return"extract"===r?`${a}'s session started extracting the handoff`:`${a}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&g.includes(n.to)?n.to:null;return e?`Now ${m(t.mode,e).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${t.origin?.label??"the origin thread"}${n.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof n.reason?`: ${n.reason}`:""}`;case"destination_replied":return`${s} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${s}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return e.type.replace(/_/g," ")}},"excerpt",0,p,"exchangeRequestBody",0,function(e,t,n){let a={mode:e.mode,idempotency_key:n,origin_conversation_id:e.originConversationId,source:{agent_id:t.agentId,session_ref:t.sessionRef},instruction:e.instruction.trim()};return"continue"===e.mode&&(a.destination={agent_id:e.destinationAgentId}),a},"failureAdvice",0,function(e){if("failed"!==e.state)return null;switch(e.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}},"formatExchangeTime",0,function(e){return t(e)},"instructionHeading",0,function(e){return"ask"===e?"Question":"Objective"},"ledgerAgents",0,function(e){let t=new Map;for(let n of e)t.set(n.source.agent_id,n.source.agent_name),n.destination&&t.set(n.destination.agent_id,n.destination.agent_name);return[...t.entries()].map(([e,t])=>({id:e,name:t})).sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))},"ledgerRows",0,function(e,t){return e.filter(e=>("all"===t.mode||e.mode===t.mode)&&("active"!==t.state||!e.terminal)&&("all"===t.state||"active"===t.state||e.state===t.state)&&(!t.agentId||e.source.agent_id===t.agentId||e.destination?.agent_id===t.agentId)).sort(v)},"ledgerView",0,function(e,t,n){return null===e?t?"error":"loading":0===e.length?"empty":0===n.length?"filtered-out":"rows"},"linkRoleLabel",0,function(e){let t={origin:"Started here",source:"Source session",destination:"Destination"};return e.map(e=>t[e]).join(" · ")},"liveStateLabel",0,function(e){var t;return e.cancel_requested&&(t=e.state,!f.includes(t))?"Cancelling…":m(e.mode,e.state)},"modeLabel",0,function(e){return"ask"===e?"Ask":"Continue"},"outcomeLine",0,function(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${p(e.outcome.answer,200)}`:`Answered in ${t}.`}let t=e.destination?.agent_name??"The destination Agent";return e.outcome.reply?`${t} picked it up in a new session: ${p(e.outcome.reply,200)}`:`${t} picked it up in a new session.`}return"failed"===e.state?e.failure?.message||"The exchange failed.":"cancelled"===e.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(e,t,n,a,s){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:s,..."resume"===e?{approve_write:a}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return h["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,function(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`},"sessionRowActions",0,function(e){let t;if(e.actions)t=e.actions;else{let n="ended"===e.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:e.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${e.agent.name}’s current runtime.`},a=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:a,resume:{available:!1,code:"action_unavailable",reason:`${h.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:a}}return["ask","resume","handoff"].map(e=>({action:e,label:h[e],availability:t[e]}))},"stateTone",0,function(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"},"submitErrorMessage",0,function(e,t){switch(e){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return t||"That Agent can’t launch yet. Choose its runtime connection and session scope in Config.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return t||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return t||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return t||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(e,t){let n=new URLSearchParams;if(e.thread_agent_id){t&&n.set("exchange",t);let a=n.toString();return`/agents/${encodeURIComponent(e.thread_agent_id)}/conversations/${encodeURIComponent(e.id)}${a?`?${a}`:""}`}if("group"!==e.kind)return null;t&&n.set("exchange",t);let a=n.toString();return`/threads/${encodeURIComponent(e.id)}${a?`?${a}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),a="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${a}.`,e.originConversationId||(t.origin="Choose the thread that follows this exchange."),"continue"!==e.mode||e.destinationAgentId||(t.destination="Choose the Agent who continues the work."),t},"validateResumeDraft",0,function(e,t){let n={};return e.trim()?e.length>4e3&&(n.instruction="Keep it under 4000 characters."):n.instruction="Enter what to work on.",t||(n.approval="Approve edits in this session to resume work here."),n}],50814)},24204,e=>{"use strict";var t=e.i(63352),n=e.i(50814);function a(e){return"active"===e.state}let s=/^T[A-Z0-9]{2,20}$/,r=/^[CG][A-Z0-9]{2,20}$/;e.s(["SHARE_DURATIONS",0,[{label:"5 minutes",seconds:300},{label:"1 hour",seconds:3600},{label:"8 hours",seconds:28800},{label:"24 hours",seconds:86400}],"SHARE_STATUS_LABELS",0,{active:"Active",exhausted:"Questions used",answering:"Answering",recovering:"Recovering",expired:"Expired",revoked:"Revoked"},"audienceInputError",0,function(e,t,n){let a=e.trim(),i=t.trim();return s.test(a)?r.test(i)?n.some(e=>e.team_id===a&&e.channel_id===i)?"That channel is already on the allowlist.":null:"Channel ID must look like C0123ABCD (a public or private channel ID; no wildcards).":"Workspace ID must look like T0123ABCD (a Slack team ID; no wildcards)."},"audienceLabel",0,function(e){return`Slack channel ${e.channel_id} \xb7 workspace ${e.team_id}`},"createdByLabel",0,function(e){return"owner"===e.created_by?"Shared by you":"current_session"===e.created_by?"Shared from a turn of this session":"Shared by a service"},"expiryLabel",0,function(e,n=Date.now()){return"revoked"===e.state?`Revoked ${(0,t.formatSessionDate)(e.revoked_at??e.expires_at)}`:"expired"===e.state||e.expires_at<=n?`Expired ${(0,t.formatSessionDate)(e.expires_at)}`:`Expires ${(0,t.formatSessionDate)(e.expires_at)} (in ${function(e){let t=Math.max(1,Math.round(e/6e4));if(t<60)return`${t} min`;let n=Math.floor(t/60),a=t%60;return a?`${n} h ${a} min`:`${n} h`}(e.expires_at-n)})`},"sessionShares",0,function(e,t){let n=e.filter(e=>e.session_ref===t);return[...n.filter(a).sort((e,t)=>t.created_at-e.created_at),...n.filter(e=>!a(e)).sort((e,t)=>(t.revoked_at??t.expires_at)-(e.revoked_at??e.expires_at))]},"shareCreateAvailability",0,function(e,t){let a=`/agents/${encodeURIComponent(e.agent.id)}/config#session-sharing`;if(!t)return{available:!1,reason:"Share to Slack is unavailable: the share policy could not be loaded.",configHref:null};let s=(0,n.sessionRowActions)(e).find(e=>"ask"===e.action);return s&&!s.availability.available?{available:!1,reason:s.availability.reason.replace(/^Ask from this context is unavailable:/,"Share to Slack is unavailable:"),configHref:null}:"invalid"===t.state?{available:!1,reason:"Share to Slack is unavailable: the share policy file is invalid. Fix it in Config.",configHref:a}:0===t.audiences.length?{available:!1,reason:"Share to Slack needs a Slack channel on the share allowlist. Add one in Config.",configHref:a}:{available:!0}},"shareCreateBody",0,function(e,t,n,a){return{audience:{team_id:e.team_id,channel_id:e.channel_id},ttl_seconds:t,max_turns:n,idempotency_key:a}},"shareFromTurnNote",0,function(e){return e.agent.share_current.supported?e.agent.share_from_turn?"On: a turn Botmancers launches for this Agent can share its own session to an allowlisted channel. Turning it off revokes every live turn context at once.":"Off: no turn of this Agent can share its own session. Sessions can still be shared from the Agent Sessions page.":e.agent.share_current.reason??"This runtime cannot share its own session from a turn."},"shareIsLive",0,a,"shareStatusNote",0,function(e){switch(e.status){case"active":return"Slack replies in its thread ask this session (read-only).";case"answering":return"A Slack question is being answered now. The next one waits until it finishes.";case"recovering":return"A question was interrupted by a Botmancers restart. The next Slack question clears it.";case"exhausted":return`All ${e.max_turns} questions are used. Slack questions get the limit notice; create a new share to keep going.`;case"expired":return"Expired: Slack questions get the expired notice. Its history stays here.";case"revoked":return"Revoked: Slack questions get the revoked notice. Its history stays here."}},"threadLabel",0,function(e){return e.thread.posted?`Slack thread posted ${(0,t.formatSessionDate)(e.thread.posted_at??0)}`:"active"===e.state?"Waiting for the Slack relay to post the thread":"No Slack thread was posted"},"turnsLabel",0,function(e){return`${e.turns_used} of ${e.max_turns} question${1===e.max_turns?"":"s"} used`}])}]);
@@ -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}.start-1{inset-inline-start:calc(var(--spacing) * 1)}.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)}.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-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.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-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}.grow{flex-grow: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-1{gap:var(--spacing)}.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-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}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:var(--spacing)}.py-1{padding-block:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.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))}.\[fail\:auth\]{fail:auth}.\[person\:owner\]{person:owner}.\[stream\:\<name\>\]{stream:<name>}.\[usage\:cost\]{usage:cost}.\[usage\:malformed\]{usage:malformed}.\[usage\:missing\]{usage:missing}.\[usage\:none\]{usage:none}.\[usage\:partial\]{usage:partial}.\[usage\:repeated\]{usage:repeated}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}@media (min-width:40rem){.sm\:w-auto{width:auto}.sm\:flex-none{flex:none}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:text-right{text-align:right}}@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}.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}.agent-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 .reg-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}.reg-fieldset{margin:0 0 4px}.reg-stack{flex-direction:column;gap:6px;margin:0 0 12px;display:flex}.form-card input[type=checkbox]{vertical-align:middle;width:auto;accent-color:var(--accent);margin:0 4px 0 0;padding:0}.reg-option-hint{margin:2px 0 0 20px;display:block}.form-card .reg-option-hint.runtime-hint{margin:2px 0 0 20px}.reg-error{margin:-6px 0 12px;font-size:12px}.reg-add-connection{border-top:1px solid var(--hairline);margin:0 0 12px;padding:12px 0 0}.reg-actions{gap:16px;display:flex}.form-card .reg-control[aria-invalid=true],.form-card input[aria-invalid=true],.form-card textarea[aria-invalid=true]{border-color:var(--accent)}.form-card input[type=checkbox]:focus-visible,.cfg-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cfg-page input[type=checkbox]{accent-color:var(--accent)}.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 .reg-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}.agent-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}.cfg-page.cfg-page-framed{box-sizing:border-box;background:0 0;height:100%;min-height:0;padding:clamp(28px,5vw,64px) clamp(18px,5vw,64px) 72px}@media (min-width:640px){.cfg-page:not(.cfg-page-framed){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 48px;width:48px;height:48px;position:relative}.mark-avatar-sm{flex-basis:40px;width:40px;height:40px}.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)}.agent-sessions-page{box-sizing:border-box;width:min(1280px,100%);margin:0 auto;padding:clamp(24px,4vw,52px) clamp(18px,4vw,52px) 72px}.agent-sessions-head{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.agent-sessions-head h2{letter-spacing:-.02em;margin:0;font-size:clamp(26px,3vw,38px);font-weight:500}.agent-sessions-head>div>p:last-child{color:var(--ink-muted);margin:10px 0 0;line-height:1.5}.agent-sessions-sync{color:var(--ink-faint);font-family:var(--mono);white-space:nowrap;align-items:center;gap:10px;font-size:11px;display:flex}.sessions-filter{border:1px solid var(--hairline);background:var(--card);flex-wrap:wrap;align-items:center;gap:8px;margin:24px 0 12px;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.sessions-filter{background:color-mix(in srgb, var(--card) 68%, transparent)}}.sessions-status-filter{gap:6px;display:flex}.sessions-filter-btn{font-family:var(--mono);color:var(--ink);border:1px solid var(--hairline);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px}.sessions-filter-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.sessions-search{font-family:var(--mono);color:var(--ink);border:1px solid var(--hairline);background:0 0;border-radius:8px;flex:10rem;min-width:0;padding:4px 10px;font-size:12px}.sessions-workspace{font-family:var(--mono);color:var(--ink);border:1px solid var(--hairline);background:0 0;border-radius:8px;max-width:100%;padding:4px 6px;font-size:12px}.sessions-search:focus,.sessions-workspace:focus{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.sessions-more{border-top:1px solid var(--hairline);justify-content:center;padding:12px;display:flex}.session-workspace,.session-activity{font-family:var(--mono);color:var(--ink-muted);overflow-wrap:anywhere;font-size:11px}.session-workspace:before{content:"·";margin:0 4px}.sessions-state{padding:12px 0}.sessions-list{margin:0;padding:0;list-style:none}.sessions-review{border:1px solid var(--hairline);background:var(--card);grid-template-columns:minmax(18rem,20rem) minmax(0,1fr);align-items:start;display:grid}@supports (color:color-mix(in lab, red, red)){.sessions-review{background:color-mix(in srgb, var(--card) 70%, transparent)}}.sessions-list-pane{border-right:1px solid var(--hairline);min-width:0}.session-scan-row+.session-scan-row{border-top:1px solid var(--hairline)}.session-scan-button{box-sizing:border-box;width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;padding:15px 16px;display:block}.session-scan-button:hover{background:var(--composer)}@supports (color:color-mix(in lab, red, red)){.session-scan-button:hover{background:color-mix(in srgb, var(--composer) 65%, transparent)}}.session-scan-row.is-selected .session-scan-button{border-left-color:var(--accent);background:var(--composer)}.session-scan-title-line,.session-scan-context,.session-scan-chips{flex-wrap:wrap;align-items:center;display:flex}.session-scan-title-line{justify-content:space-between;gap:8px}.session-scan-context{margin-top:6px}.session-scan-chips{gap:5px;margin-top:9px}.session-title{font-family:var(--mono);overflow-wrap:anywhere;font-size:14px;font-weight:500}.session-status.is-active{color:var(--accent);border-color:var(--accent)}.session-scan-row.is-ended .session-title{color:var(--ink-muted)}.session-origin-chip{border:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);border-radius:999px;padding:2px 5px;font-size:10px}.session-scan-chips .manage-tag,.session-detail-tags .manage-tag,.session-scan-title-line .manage-tag{margin-left:0}.session-attention{color:var(--ink-faint);font-family:var(--mono);margin-top:10px;font-size:10px;display:block}.session-attention.is-actionable{color:var(--accent)}.session-link{font-family:var(--mono);color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:11px;text-decoration:underline}.sessions-detail-pane{min-width:0}.sessions-detail-empty{text-align:center;place-content:center;min-height:50vh;padding:32px;display:grid}.sessions-detail-empty h3{margin:0;font-size:24px;font-weight:500}.sessions-detail-empty p:last-child{max-width:380px;color:var(--ink-muted)}.session-detail{min-height:50vh;font-family:var(--mono);padding:clamp(22px,4vw,44px);font-size:12px}.session-detail-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.session-detail-head h3{max-width:760px;font-family:var(--chrome);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:clamp(24px,3vw,34px);font-weight:500}.session-detail-head h3:focus{outline:none}.session-detail-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.session-detail-meta{border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));margin:24px 0 0;display:grid}.session-detail-meta>div{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);min-width:0;padding:12px}.session-detail-meta .is-wide{grid-column:1/-1}.session-detail-meta dt{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.session-detail-meta dd{overflow-wrap:anywhere;margin:5px 0 0}.session-detail-section{border-top:1px solid var(--hairline);margin-top:24px;padding-top:20px}.session-detail-section>h4{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px}.session-attempts{margin:0 0 8px;padding:0 0 0 18px;line-height:1.5}.session-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.session-usage.is-unavailable,.session-usage-values .is-unavailable,.session-usage-coverage{color:var(--ink-faint)}.session-usage-tag{margin-left:6px}.session-usage-detail{margin:0 0 8px}.session-usage-head{color:var(--ink-muted);margin:0 0 4px;font-size:11px;font-weight:600}.session-usage-totals{gap:2px;margin:0 0 6px;display:grid}.session-usage-totals div{flex-wrap:wrap;gap:2px 8px;min-width:0;display:flex}.session-usage-totals dt{min-width:7.5rem;color:var(--ink-faint)}.session-usage-totals dd{overflow-wrap:anywhere;flex-wrap:wrap;gap:2px 8px;margin:0;display:flex}.session-usage-none{color:var(--ink-faint);margin:0}.session-usage-runs{margin:0;padding:0 0 0 18px;line-height:1.5}.session-usage-runs li{flex-wrap:wrap;gap:0 12px;display:flex}.session-usage-values{flex-wrap:wrap;gap:0 10px;display:flex}.session-debug summary{cursor:pointer;color:var(--ink-muted)}.session-debug-note{color:var(--ink-faint);margin:4px 0}.session-debug-value{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.session-debug-value code{overflow-wrap:anywhere;color:var(--ink)}.session-debug-value .pin-word{margin-top:0}.agent-sessions-page button:focus-visible,.agent-sessions-page summary:focus-visible,.session-scan-button:focus-visible,.thread-bar .attach-word:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:799px){.agent-sessions-page{padding:22px 14px 48px}.agent-sessions-head{flex-direction:column;align-items:flex-start}.agent-sessions-sync{justify-content:space-between;width:100%}.sessions-filter{align-items:stretch}.sessions-status-filter,.sessions-search,.sessions-workspace{flex:100%}.sessions-status-filter .sessions-filter-btn{flex:1 1 0}.sessions-review{display:block}.sessions-list-pane{border-right:0}.sessions-detail-pane,.sessions-review.has-detail .sessions-list-pane{display:none}.sessions-review.has-detail .sessions-detail-pane{display:block}.session-detail{padding:20px 16px 28px}.session-detail-head{flex-direction:column-reverse}.session-detail-meta{grid-template-columns:1fr}.session-detail-meta .is-wide{grid-column:auto}}.rail-nav{padding:0 16px 12px}.rail-nav-link{text-decoration:none}.rail-nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.agent-brand{color:inherit;text-decoration:none}.agent-row-link{text-decoration:none}.agent-row-menu{z-index:4;position:relative}.agent-row-menu summary{list-style:none}.agent-row-menu summary::-webkit-details-marker{display:none}.agent-row-menu-popover{z-index:10;background:var(--card);border:1px solid var(--hairline);border-radius:10px;min-width:112px;padding:8px 10px;position:absolute;top:calc(100% + 6px);right:0}.agent-row-menu-popover a{color:var(--ink);font-family:var(--mono);padding:4px 0;font-size:12px;text-decoration:none;display:block}.agent-pane{overflow:hidden}.agent-shell-header{border-bottom:1px solid var(--hairline);flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:20px clamp(18px,4vw,56px) 16px;display:flex}.agent-shell-identity{align-items:center;gap:14px;min-width:0;display:flex}.agent-shell-kicker,.agent-eyebrow{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:600}.agent-shell-identity h1,.agent-panel h2,.agent-use h2,.agent-section-page h2,.agent-state h2{letter-spacing:-.02em;margin:0;font-weight:500}.agent-shell-identity h1{font-family:var(--mono);font-size:20px}.agent-shell-identity p:last-child,.agent-shell-runtime{color:var(--ink-muted);font-family:var(--mono);margin:3px 0 0;font-size:12px}.agent-shell-runtime{text-align:right;flex-direction:column;align-items:flex-end;gap:5px;display:flex}.agent-shell-runtime-line{align-items:center;gap:6px;display:inline-flex}.harness-icon{background:var(--ink);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.harness-icon{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.harness-icon{overflow:hidden}.harness-icon img{object-fit:contain;width:70%;height:70%;display:block}.topbar-capacity{border-bottom:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px 18px;padding:10px clamp(18px,4vw,56px);font-size:11px;display:flex}.topbar-capacity-eyebrow{color:var(--ink-faint);letter-spacing:.12em;text-transform:uppercase}.topbar-capacity-empty{color:var(--ink-faint)}.topbar-capacity-runtime{align-items:center;gap:8px;min-width:0;display:inline-flex}.topbar-capacity-runtime.is-exhausted{background:#e85d751a;border:1px solid #e85d7566;border-radius:6px;padding:2px 8px}.topbar-capacity-windows{flex-direction:column;gap:1px;line-height:1.25;display:inline-flex}.topbar-capacity-window{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.topbar-capacity-window-label,.topbar-capacity-window.is-unknown{color:var(--ink-faint)}.topbar-capacity-window.is-warning{color:#d4a017}.topbar-capacity-window.is-critical{color:#e85d75;font-weight:600}.availability{color:var(--ink);align-items:center;gap:6px;display:inline-flex}.availability:before{background:var(--ink-faint);content:"";border-radius:50%;width:7px;height:7px}.availability.is-available:before{background:#55b86a}.availability.is-blocked:before{background:#d2a35c}.agent-tabs{border-bottom:1px solid var(--hairline);scrollbar-width:thin;flex-shrink:0;gap:4px;padding:0 clamp(18px,4vw,56px);display:flex;overflow-x:auto}.agent-tabs a{color:var(--ink-muted);font-family:var(--mono);border-bottom:2px solid #0000;flex:none;padding:13px 12px 11px;font-size:12px;text-decoration:none}.agent-tabs a[aria-current=page]{border-bottom-color:var(--accent);color:var(--ink)}.agent-tabs a:focus-visible,.agent-content a:focus-visible,.agent-row-menu a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.agent-content{flex:auto;min-height:0;overflow-y:auto}.agent-overview,.agent-section-page,.agent-state{box-sizing:border-box;width:min(1120px,100%);margin:0 auto;padding:clamp(28px,5vw,64px) clamp(18px,5vw,64px) 72px}.agent-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.agent-panel,.agent-use,.agent-section-page{border:1px solid var(--hairline);background:var(--card)}@supports (color:color-mix(in lab, red, red)){.agent-panel,.agent-use,.agent-section-page{background:color-mix(in srgb, var(--card) 68%, transparent)}}.agent-panel{min-width:0;padding:22px}.agent-panel-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.agent-panel h2,.agent-use h2,.agent-section-page h2{font-size:22px}.agent-panel p,.agent-section-page>p:not(.agent-eyebrow),.agent-use article p{color:var(--ink-muted);line-height:1.55}.agent-panel a,.agent-use a,.agent-section-page a,.agent-state a{color:var(--accent);font-family:var(--mono);text-underline-offset:3px;font-size:12px}.agent-instructions dl{margin:18px 0 0}.agent-instructions dl>div{border-top:1px solid var(--hairline);padding:12px 0}.agent-instructions dt{color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;font-size:11px}.agent-instructions dd{margin:5px 0 0;line-height:1.5}.agent-muted{font-size:13px;color:var(--ink-faint)!important}.agent-runtime-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 0;display:grid}.agent-runtime-facts div{border-top:1px solid var(--hairline);padding-top:9px}.agent-runtime-facts dt{color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;font-size:10px}.agent-runtime-facts dd{margin:4px 0 0;font-size:13px}.agent-conversation-activity{font-family:var(--mono);margin-bottom:0;font-size:11px;color:var(--ink-faint)!important}.agent-use{margin:16px 0;padding:28px}.agent-use-grid{background:var(--hairline);border:1px solid var(--hairline);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:22px;display:grid}.agent-use article{background:var(--card);min-width:0;padding:20px}.agent-use-number{color:var(--accent);font-family:var(--mono);font-size:11px}.agent-use h3{margin:14px 0 0;font-size:16px}.agent-use code{overflow-wrap:anywhere;color:var(--ink);font-family:var(--mono);font-size:12px}.agent-setup-clients{margin-top:12px}.agent-setup-client-row{flex-wrap:wrap;gap:8px;display:flex}.agent-setup-client{border:1px solid var(--hairline);min-height:34px;color:var(--ink-muted);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:inline-flex}.agent-setup-client:hover,.agent-setup-client.is-active{border-color:var(--accent);color:var(--ink)}.agent-setup-client.is-copied{border-color:var(--accent);color:var(--accent)}.agent-setup-client-mark{flex:none}.agent-setup-command{border:1px solid var(--hairline);background:var(--composer);color:var(--ink);font-family:var(--mono);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.4;overflow-x:auto}.agent-setup-command code{color:inherit;font:inherit}.agent-primary-action{border:1px solid var(--accent);color:var(--ink);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:8px;margin-top:4px;padding:8px 12px;font-size:12px;text-decoration:none;display:inline-block}.agent-work-grid{align-items:start}.agent-work-list{gap:0;margin:16px 0 0;padding:0;list-style:none;display:grid}.agent-work-list li{border-top:1px solid var(--hairline);padding:12px 0}.agent-work-list strong,.agent-work-list small{display:block}.agent-work-list strong{font-size:14px;font-weight:500}.agent-work-list small{color:var(--ink-faint);font-family:var(--mono);text-transform:capitalize;margin-top:4px;font-size:11px}.agent-empty{font-family:var(--mono);font-size:12px;color:var(--ink-faint)!important}.agent-section-page{margin-top:clamp(28px,5vw,64px);padding:clamp(24px,5vw,48px)}.agent-section-page>p:not(.agent-eyebrow){max-width:680px}.agent-section-page .agent-primary-action{margin-top:14px}.agent-state{color:var(--ink-muted)}.conversation-index,.conversation-detail,.conversation-detail-state{box-sizing:border-box;width:min(960px,100%);margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,4vw,48px) 64px}.conversation-index-head,.conversation-detail-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.conversation-index h2,.conversation-detail h2,.conversation-detail-state h2{letter-spacing:-.025em;margin:0;font-size:clamp(26px,4vw,38px);font-weight:500}.conversation-index-head p:not(.agent-eyebrow){max-width:680px;color:var(--ink-muted);margin:12px 0 0;line-height:1.55}.conversation-search{border:1px solid var(--hairline);background:var(--card);margin-top:28px;padding:16px}@supports (color:color-mix(in lab, red, red)){.conversation-search{background:color-mix(in srgb, var(--card) 70%, transparent)}}.conversation-search label{color:var(--ink-muted);font-family:var(--mono);margin-bottom:7px;font-size:11px;display:block}.conversation-search div{gap:8px;display:flex}.conversation-search input{border:1px solid var(--hairline);background:var(--card);min-width:0;color:var(--ink);font:inherit;border-radius:7px;flex:auto;padding:10px 12px}.conversation-search button,.conversation-more,.conversation-older,.conversation-stop,.conversation-state button,.conversation-detail-state button{border:1px solid var(--hairline);background:var(--card);color:var(--ink);font-family:var(--mono);cursor:pointer;border-radius:7px;padding:9px 13px;font-size:11px}.conversation-state{border:1px dashed var(--hairline);color:var(--ink-muted);text-align:center;margin-top:18px;padding:28px}.conversation-list{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.conversation-list a{border:1px solid var(--hairline);background:var(--card);border-radius:10px;padding:17px 18px;display:block}@supports (color:color-mix(in lab, red, red)){.conversation-list a{background:color-mix(in srgb, var(--card) 74%, transparent)}}.conversation-list a{color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}.conversation-list a:hover{border-color:var(--accent);transform:translateY(-1px)}.conversation-row-title,.conversation-row-meta{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.conversation-row-title strong{font-size:15px;font-weight:600}.conversation-row-title>span{border:1px solid var(--hairline);color:var(--accent);font-family:var(--mono);border-radius:999px;padding:3px 7px;font-size:10px}.conversation-row-participants{color:var(--ink-muted);margin-top:8px;font-size:13px;display:block}.conversation-row-meta{color:var(--ink-faint);font-family:var(--mono);flex-wrap:wrap;justify-content:flex-start;margin-top:10px;font-size:10px}.conversation-row-meta time{margin-left:auto}.conversation-more{margin:18px auto 0;display:block}.conversation-detail{flex-direction:column;min-height:100%;display:flex}.conversation-detail-head>div>a,.conversation-read-only a,.conversation-detail-state a{color:var(--accent);font-family:var(--mono);text-underline-offset:3px;font-size:11px}.conversation-detail-head .agent-eyebrow{margin-top:18px}.conversation-participant-line{color:var(--ink-muted);margin:12px 0 0;font-size:14px}.conversation-origin-line{color:var(--ink-faint);font-family:var(--mono);margin:6px 0 0;font-size:10px}.conversation-stop{flex:none}.conversation-read-only{border:1px solid var(--accent);margin-top:20px;padding:14px 16px}@supports (color:color-mix(in lab, red, red)){.conversation-read-only{border:1px solid color-mix(in srgb, var(--accent) 34%, var(--hairline))}}.conversation-read-only{background:var(--accent);border-radius:9px}@supports (color:color-mix(in lab, red, red)){.conversation-read-only{background:color-mix(in srgb, var(--accent) 5%, var(--card))}}.conversation-read-only strong{font-family:var(--mono);font-size:11px}.conversation-read-only p{color:var(--ink-muted);margin:6px 0;font-size:13px}.conversation-history{border:1px solid var(--hairline);background:var(--card);border-radius:12px;min-height:50vh;margin-top:20px}@supports (color:color-mix(in lab, red, red)){.conversation-history{background:color-mix(in srgb, var(--card) 58%, transparent)}}.conversation-older{margin:12px auto 0;display:block}.conversation-message-list{scroll-behavior:smooth;flex-direction:column;min-height:50vh;max-height:min(62vh,760px);margin:0;padding:20px clamp(14px,3vw,28px) 28px;list-style:none;display:flex;overflow-y:auto}.conversation-message-list>.msg-you,.conversation-message-list>.msg-bot{flex:none}.conversation-empty-history{color:var(--ink-muted);font-family:var(--mono);margin:auto;font-size:12px}.conversation-composer{border:1px solid var(--hairline);background:var(--card);border-radius:12px;margin-top:14px;position:sticky;bottom:0}.conversation-refresh-error{color:var(--danger);font-family:var(--mono);font-size:11px}.conversation-search input:focus-visible,.conversation-search button:focus-visible,.conversation-list a:focus-visible,.conversation-more:focus-visible,.conversation-older:focus-visible,.conversation-stop:focus-visible,.conversation-composer button:focus-visible,.conversation-composer textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.agent-slack{box-sizing:border-box;width:min(1120px,100%);margin:0 auto;padding:clamp(28px,5vw,64px) clamp(18px,5vw,64px) 72px}.agent-slack-intro,.agent-slack-section-head,.agent-slack-share-summary,.agent-slack-share-actions,.agent-slack-confirm>div{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.agent-slack-intro{margin-bottom:22px}.agent-slack-intro h2{letter-spacing:-.025em;margin:0;font-size:clamp(28px,4vw,44px);font-weight:500}.agent-slack-intro>div>p:last-child{max-width:760px;color:var(--ink-muted);margin:14px 0 0;line-height:1.6}.agent-slack-relay,.agent-slack-policy,.agent-slack-shares{border:1px solid var(--hairline);background:var(--card)}@supports (color:color-mix(in lab, red, red)){.agent-slack-relay,.agent-slack-policy,.agent-slack-shares{background:color-mix(in srgb, var(--card) 68%, transparent)}}.agent-slack-relay,.agent-slack-policy,.agent-slack-shares{padding:22px}.agent-slack-relay,.agent-slack-policy{margin-bottom:14px}.agent-slack-section-head h3{margin:0;font-size:20px;font-weight:500}.agent-slack-section-head a,.agent-slack-share a{color:var(--accent);font-family:var(--mono);text-underline-offset:3px;font-size:12px}.agent-slack-section-head>div>p:last-child{color:var(--ink-muted);margin:7px 0 0;font-size:13px}.agent-slack-refresh,.agent-slack-more,.agent-slack-filters button,.agent-slack-details summary,.agent-slack-revoke,.agent-slack-confirm button{border:1px solid var(--hairline);color:var(--ink);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:8px;flex:none;padding:7px 11px;font-size:11px}.agent-slack-refresh:hover:not(:disabled),.agent-slack-more:hover:not(:disabled),.agent-slack-filters button:hover,.agent-slack-details summary:hover,.agent-slack-confirm button:hover:not(:disabled){background:var(--composer)}.agent-slack button:disabled{cursor:default;opacity:.55}.agent-slack button:focus-visible,.agent-slack summary:focus-visible,.agent-slack a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.agent-slack-status{border:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);text-transform:uppercase;border-radius:999px;align-items:center;gap:7px;padding:5px 9px;font-size:10px;font-weight:600;display:inline-flex}.agent-slack-status:before{background:var(--ink-faint);content:"";border-radius:50%;width:7px;height:7px}.agent-slack-status.is-good:before,.agent-slack-status.is-share-active:before{background:#55b86a}.agent-slack-status.is-working:before,.agent-slack-status.is-share-answering:before,.agent-slack-status.is-share-recovering:before{background:var(--accent)}.agent-slack-status.is-warning:before,.agent-slack-status.is-share-exhausted:before{background:#d2a35c}.agent-slack-relay-copy>p,.agent-slack-policy>div>p{color:var(--ink-muted);margin:12px 0 0;line-height:1.5}.agent-slack-relay-copy strong,.agent-slack-policy strong{color:var(--ink);font-weight:500}.agent-slack-audiences{gap:7px;margin:15px 0 0;padding:0;list-style:none;display:grid}.agent-slack-audiences li{border-top:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);padding-top:7px;font-size:11px}.agent-slack-shares-head{align-items:center}.agent-slack-filters{flex-wrap:wrap;gap:7px;margin:20px 0 16px;display:flex}.agent-slack-filters button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.agent-slack-share-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.agent-slack-share{border:1px solid var(--hairline);background:var(--card);min-width:0;padding:16px}.agent-slack-share-summary>div{gap:7px;min-width:0;display:grid}.agent-slack-share-summary strong{overflow-wrap:anywhere;font-size:14px;font-weight:500}.agent-slack-share-summary small,.agent-slack-state-note,.agent-slack-empty,.agent-slack-error p{color:var(--ink-muted);font-family:var(--mono);font-size:11px;line-height:1.5}.agent-slack-state-note{margin:12px 0 0}.agent-slack-detail-hint{color:var(--ink-faint);font-family:var(--mono);align-self:center;font-size:10px}.agent-slack-details{margin-top:12px}.agent-slack-details summary{list-style:none;display:inline-block}.agent-slack-details summary::-webkit-details-marker{display:none}.agent-slack-share-details{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:12px 0 0;padding:15px 0;display:grid}.agent-slack-share-details dt{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.agent-slack-share-details dd{overflow-wrap:anywhere;margin:5px 0 0;font-size:12px}.agent-slack-share-details code{font-family:var(--mono)}.agent-slack-share-actions{align-items:center;margin-top:12px}.agent-slack-revoke{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.agent-slack-revoke{border-color:color-mix(in srgb, var(--danger) 60%, var(--hairline))}}.agent-slack-revoke{color:var(--danger)}.agent-slack-confirm{border-left:2px solid var(--danger);background:var(--danger);margin-top:12px}@supports (color:color-mix(in lab, red, red)){.agent-slack-confirm{background:color-mix(in srgb, var(--danger) 7%, transparent)}}.agent-slack-confirm{padding:11px 13px}.agent-slack-confirm p{margin:0 0 10px;font-size:12px;line-height:1.5}.agent-slack-confirm>div{justify-content:flex-start;gap:8px}.agent-slack-more{margin:16px auto 0;display:block}.agent-slack-error{border-left:2px solid var(--danger);color:var(--danger);margin-top:14px;padding-left:12px}.agent-slack-error p{margin:4px 0 0}@media (max-width:799px){.agent-field{overflow:hidden}.agent-rail{border-bottom:1px solid var(--hairline);max-height:31vh}.agent-pane{overflow:hidden}.agent-shell-header{align-items:flex-start;padding:14px 16px 12px}.agent-shell-runtime{max-width:42%}.agent-tabs{padding:0 8px}.agent-tabs a{padding-inline:10px}.agent-overview-grid,.agent-use-grid{grid-template-columns:1fr}.agent-use-grid{gap:1px}.agent-use{padding:20px}.conversation-index,.conversation-detail,.conversation-detail-state{padding:22px 14px 48px}.conversation-index-head,.conversation-detail-head{flex-direction:column}.conversation-search div{flex-direction:column;align-items:stretch}.conversation-row-title,.conversation-row-meta{flex-direction:column;align-items:flex-start}.conversation-row-meta time{margin-left:0}.conversation-message-list{min-height:46vh;max-height:58vh}.conversation-composer{padding-inline:10px}.agent-slack-intro,.agent-slack-shares-head{flex-direction:column;align-items:stretch}.agent-slack-refresh,.agent-slack-shares-head .agent-primary-action{align-self:flex-start}.agent-slack-relay,.agent-slack-policy,.agent-slack-shares{padding:17px}.agent-slack-share-details{grid-template-columns:1fr}}.session-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.session-action{font-family:var(--mono);color:var(--ink);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px}.session-unavailable{font-family:var(--mono);color:var(--ink-muted);gap:4px;margin:8px 0 0;padding:0;font-size:11px;line-height:1.5;list-style:none;display:grid}.exchange-approval{font-family:var(--mono);color:var(--ink);cursor:pointer;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;display:flex}.exchange-approval input{accent-color:var(--accent);margin:2px 0 0}.exchange-approval input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exchange-started:not(:empty){font-family:var(--mono);color:var(--accent);margin:0 0 8px;font-size:12px;line-height:1.5}.exchange-scrim{z-index:35;justify-content:center}.form-card.exchange-dialog{max-width:480px;color:var(--ink);margin-top:32px}.exchange-source{border:1px solid var(--hairline);border-left:4px solid var(--accent);background:var(--field);border-radius:8px;margin:0 0 16px;padding:8px 12px}.exchange-source p{overflow-wrap:anywhere;margin:0}.exchange-source-agent{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.exchange-source-title{font-family:var(--mono);margin-top:2px;font-size:14px}.exchange-source-meta{font-family:var(--mono);color:var(--ink-muted);margin-top:4px;font-size:11px}.exchange-select{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--chrome);color:var(--ink);border-radius:12px;margin:0 0 12px;padding:8px 10px;font-size:14px}.form-card.exchange-dialog textarea{margin-bottom:8px}.form-card.exchange-dialog [aria-invalid=true],.exchange-select[aria-invalid=true]{border-color:var(--danger)}.exchange-field-error,.exchange-server-error{font-family:var(--mono);color:var(--danger);margin:0 0 8px;font-size:12px;line-height:1.5}.exchange-hint{color:var(--ink-muted);margin:0 0 12px;font-size:13px;line-height:1.5}.exchange-sending{font-family:var(--mono);color:var(--ink-muted);margin:0;font-size:12px}.exchange-sending:not(:empty){margin-bottom:8px}.exchange-dialog .create-btn:disabled{opacity:.5;cursor:progress}.exchange-dialog select:focus-visible,.session-action:focus-visible,.exchange-card a:focus-visible,.exchange-card button:focus-visible,.ledger-page a:focus-visible,.ledger-page button:focus-visible,.ledger-page select:focus-visible,.ledger-detail-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exchange-card{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--accent);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}.exchange-card:focus{outline:2px solid var(--accent);outline-offset:2px}.exchange-card.is-stopped{border-left-color:var(--danger)}.exchange-card.is-done{border-left-color:var(--ink-muted)}.exchange-card p{margin:0}.exchange-card p+p{margin-top:4px}.exchange-card-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.exchange-card-mode{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.exchange-card-title{font-weight:600}.exchange-card-state{font-family:var(--mono);border:1px solid var(--hairline);color:var(--ink);border-radius:6px;padding:0 6px;font-size:12px}.exchange-card.is-active .exchange-card-state{border-color:var(--accent);color:var(--accent)}.exchange-card.is-stopped .exchange-card-state{border-color:var(--danger);color:var(--danger)}.exchange-card-session,.exchange-card-time{font-family:var(--mono);color:var(--ink-muted);font-size:12px}.exchange-card-key{color:var(--ink-muted)}.exchange-card-outcome.is-failure,.exchange-card-error{color:var(--danger)}.exchange-card-advice{color:var(--ink-muted)}.exchange-card-foot{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.exchange-card-link{color:var(--accent)}.exchange-card-cancel{font-family:var(--chrome);color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.exchange-card-cancel:disabled{cursor:progress;opacity:.6}.ledger-page{box-sizing:border-box;background:var(--field);min-height:100dvh;color:var(--ink);font-family:var(--chrome);flex-direction:column;padding:16px;display:flex}.ledger-head{flex:none;margin-bottom:16px}.ledger-title{margin:12px 0 4px;font-size:20px;font-weight:700}.ledger-sub{color:var(--ink-muted);margin:0;font-size:13px}.ledger-main{flex-direction:column;flex:auto;gap:16px;min-height:0;display:flex}.ledger-pane-title{margin:0 0 8px;font-size:16px;font-weight:600}.ledger-filters{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.ledger-mode{margin:0}.ledger-selects{flex-wrap:wrap;gap:8px 12px;display:flex}.ledger-select-label{min-width:0;color:var(--ink-muted);flex-direction:column;flex:140px;gap:4px;font-size:13px;display:flex}.ledger-select-label .exchange-select,.ledger-count{margin:0}.ledger-state{font-family:var(--mono);color:var(--ink-muted);margin:0;padding:12px 0;font-size:12px;line-height:1.5}.ledger-state p{margin:0}.ledger-list{border-top:1px solid var(--hairline);margin:0;padding:0;list-style:none}.ledger-row-item{border-bottom:1px solid var(--hairline)}.ledger-row{box-sizing:border-box;text-align:left;width:100%;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-left:3px solid #0000;flex-direction:column;gap:2px;padding:10px 8px;display:flex}.ledger-row[aria-current=true]{background:var(--card);border-left-color:var(--accent)}.ledger-row-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.ledger-row-who{font-size:14px;font-weight:600}.ledger-row-state{font-family:var(--mono);color:var(--accent);font-size:12px}.ledger-row.is-stopped .ledger-row-state{color:var(--danger)}.ledger-row.is-done .ledger-row-state{color:var(--ink-muted)}.ledger-row-session{font-family:var(--mono);font-size:13px}.ledger-row-meta{font-family:var(--mono);color:var(--ink-muted);font-size:11px}.ledger-detail{flex-direction:column;gap:12px;min-width:0;display:flex}.ledger-detail-back{align-self:flex-start;margin-top:0}.ledger-detail-title{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:600}.ledger-section{border-top:1px solid var(--hairline);padding-top:8px}.ledger-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0 0 6px;font-size:12px;font-weight:600}.ledger-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.5}.ledger-packet-list{margin-top:8px}.ledger-packet-title{margin:0;font-size:13px;font-weight:600}.ledger-packet-list ul,.ledger-links{overflow-wrap:anywhere;margin:4px 0 0;padding:0 0 0 18px;font-size:13px;line-height:1.5}.ledger-links{padding:0;list-style:none}.ledger-thread-link{font-size:13px}.ledger-link-role{font-family:var(--mono);color:var(--ink-muted);font-size:11px}.ledger-timeline{margin:0;padding:0 0 0 18px;font-size:13px;line-height:1.5}.ledger-timeline li{overflow-wrap:anywhere;margin-bottom:4px}.ledger-timeline-time{font-family:var(--mono);color:var(--ink-muted);font-size:11px;display:block}.ledger-foot{font-family:var(--mono);color:var(--ink-faint);overflow-wrap:anywhere;margin:0;font-size:11px}@media (max-width:799px){.ledger-page.has-detail .ledger-list-pane,.ledger-page:not(.has-detail) .ledger-detail-pane{display:none}}@media (min-width:800px){.ledger-page{height:100vh;padding:24px}.ledger-main{flex-direction:row;gap:24px}.ledger-list-pane{flex:0 0 22rem;min-height:0;padding-right:4px;overflow-y:auto}.ledger-detail-pane{border-left:1px solid var(--hairline);flex:auto;min-width:0;max-width:56rem;min-height:0;padding-left:24px;overflow-y:auto}.ledger-detail-back{display:none}}.group-thread-nav{flex-wrap:wrap;gap:4px 16px;display:flex}.group-thread-main{flex:auto;min-width:0;max-width:56rem}.group-thread-list{margin:0;padding:0;list-style:none}.group-thread-body{white-space:pre-wrap;overflow-wrap:anywhere}@media (min-width:800px){.group-thread-page{height:auto}}@media (max-width:799px){.session-actions{flex-direction:column}.session-action{text-align:left;min-height:40px}}@media (prefers-reduced-motion:reduce){.exchange-card,.ledger-row,.session-action{scroll-behavior:auto;transition:none;animation:none}}.session-shares{border-top:1px dashed var(--hairline);font-family:var(--mono);margin-top:10px;padding-top:8px;font-size:11px}.session-shares-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.session-shares-title{font-family:var(--mono);color:var(--ink);margin:0;font-size:12px;font-weight:600}.session-share-note,.session-share-unavailable{color:var(--ink-muted);margin:6px 0 0;line-height:1.5}.session-share-list{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.session-share{border:1px solid var(--hairline);border-left:3px solid var(--accent);background:var(--field);overflow-wrap:anywhere;border-radius:8px;padding:8px 10px}.session-share.is-expired,.session-share.is-revoked{border-left-color:var(--hairline);color:var(--ink-muted)}.session-share.is-exhausted,.session-share.is-recovering{border-left-color:#e0a83e}.session-share-head{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.session-share-head .manage-tag{margin-left:0}.session-share-status.is-active,.session-share-status.is-answering{color:var(--accent);border-color:var(--accent)}.session-share-status.is-exhausted,.session-share-status.is-recovering{color:#e0a83e;border-color:#e0a83e}.session-share-audience{color:var(--ink)}.session-share-meta{margin-top:4px}.session-share-meta dt{overflow-wrap:normal;flex:none}.session-share .session-actions .pin-word{text-align:left}.session-share-ref{font-family:var(--mono);-webkit-user-select:all;user-select:all;font-size:11px}.session-share-revoke{border-color:var(--danger)}.session-share-confirm{border:1px solid var(--danger);border-radius:8px;margin-top:8px;padding:8px}.session-share-confirm p{margin:0;line-height:1.5}.session-share-form{border:1px solid var(--accent);border-radius:8px;gap:4px;margin-top:8px;padding:8px 10px;display:grid}.session-share-form label{color:var(--ink-muted);margin-top:4px}.session-share-form select,.session-share-form input{font-family:var(--mono);color:var(--ink);background:var(--composer);border:1px solid var(--hairline);box-sizing:border-box;border-radius:8px;max-width:100%;padding:6px 8px;font-size:12px}.session-share-form [aria-invalid=true]{border-color:var(--danger)}.session-share-form select:focus-visible,.session-share-form input:focus-visible,.agent-sessions-page a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.session-action:disabled{opacity:.5;cursor:progress}.share-policy-toggle{align-items:center;gap:8px;display:flex}.share-policy-hint{margin:4px 0 0 24px}.share-policy-sub{margin:20px 0 4px;font-size:14px}.share-policy-empty{margin:8px 0}.share-policy-list{margin:8px 0;padding:0;list-style:none}.share-policy-entry{border-top:1px solid var(--hairline);flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:6px 0;font-size:13px;display:flex}.share-policy-remove{margin-left:auto}.share-policy-add{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;margin-top:8px;display:grid}.share-policy-add label{margin-bottom:4px;display:block}@media (max-width:640px){.share-policy-add{grid-template-columns:1fr}}.agent-activity{box-sizing:border-box;width:min(920px,100%);margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,4vw,48px) 72px}.agent-activity-intro h2{letter-spacing:-.025em;margin:0;font-size:clamp(26px,4vw,38px);font-weight:500}.agent-activity-intro>p:last-child{max-width:650px;color:var(--ink-muted);line-height:1.55}.agent-activity-filters{flex-wrap:wrap;gap:8px;margin:26px 0 22px;display:flex}.agent-activity-filters button,.agent-activity-more{border:1px solid var(--hairline);background:var(--card);color:var(--ink-muted);font-family:var(--mono);cursor:pointer;border-radius:999px;padding:8px 11px;font-size:11px}.agent-activity-filters button[aria-pressed=true]{border-color:var(--accent);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent)}.agent-activity-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.agent-activity-item{grid-template-columns:17px minmax(0,1fr);gap:12px;display:grid;position:relative}.agent-activity-item:before{content:"";background:var(--hairline);width:1px;position:absolute;top:22px;bottom:-22px;left:5px}.agent-activity-item:last-child:before{display:none}.agent-activity-marker{border:2px solid var(--card);background:var(--ink-faint);width:9px;height:9px;box-shadow:0 0 0 1px var(--hairline);border-radius:50%;margin-top:19px}.agent-activity-item.is-success .agent-activity-marker{background:var(--accent)}.agent-activity-item.is-warning .agent-activity-marker{background:#d2a35c}.agent-activity-item.is-error .agent-activity-marker{background:var(--danger)}.agent-activity-card{border:1px solid var(--hairline);background:var(--card);border-radius:10px;min-width:0;margin-bottom:12px;padding:15px 17px}@supports (color:color-mix(in lab, red, red)){.agent-activity-card{background:color-mix(in srgb, var(--card) 86%, transparent)}}.agent-activity-summary{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.agent-activity-category,.agent-activity-summary strong,.agent-activity-summary time{display:block}.agent-activity-category{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.agent-activity-summary strong{margin-top:5px;font-size:14px;font-weight:550}.agent-activity-summary time{color:var(--ink-faint);font-family:var(--mono);margin-top:5px;font-size:10px}.agent-activity-attention{background:var(--danger);border-radius:999px;flex:none;padding:4px 7px}@supports (color:color-mix(in lab, red, red)){.agent-activity-attention{background:color-mix(in srgb, var(--danger) 12%, transparent)}}.agent-activity-attention{color:var(--danger);font-family:var(--mono);font-size:9px}.agent-activity-actions{margin-top:10px;font-size:12px}.agent-activity-details{border-top:1px solid var(--hairline);margin-top:12px;padding-top:10px}.agent-activity-details summary{width:fit-content;color:var(--ink-muted);font-family:var(--mono);cursor:pointer;font-size:10px}.agent-activity-details dl{gap:5px;margin:10px 0;display:grid}.agent-activity-details dl div{grid-template-columns:minmax(110px,1fr) 2fr;gap:12px;display:grid}.agent-activity-details dt{color:var(--ink-faint);font-family:var(--mono);text-transform:capitalize;font-size:10px}.agent-activity-details dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:11px}.agent-activity-details code{font-family:var(--mono)}.agent-activity-details p{color:var(--ink-faint);margin:8px 0 0;font-size:10px}.agent-activity-state{border:1px dashed var(--hairline);color:var(--ink-muted);margin:24px 0;padding:28px}.agent-activity-state.is-error{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.agent-activity-state.is-error{border-color:color-mix(in srgb, var(--danger) 50%, var(--hairline))}}.agent-activity-more{border-radius:8px;margin:20px auto 0;display:block}.agent-activity-list.is-compact{margin-top:14px}.agent-activity-list.is-compact .agent-activity-card{padding:11px 12px}.agent-activity-list.is-compact .agent-activity-summary{display:block}.agent-activity-list.is-compact .agent-activity-actions{margin-top:6px}.agent-activity a:focus-visible,.agent-activity button:focus-visible,.agent-activity summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:640px){.agent-activity{padding-top:24px}.agent-activity-filters{flex-wrap:nowrap;margin-inline:-16px;padding:2px 16px 8px;overflow-x:auto}.agent-activity-filters button{flex:none}.agent-activity-summary{display:block}.agent-activity-attention{margin-top:9px;display:inline-block}.agent-activity-details dl div{grid-template-columns:1fr;gap:2px}}@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}}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,51118,e=>{"use strict";var n=e.i(43476),s=e.i(71645),t=e.i(22016),a=e.i(70925);e.s(["default",0,function(){let{id:e,overview:o,loading:i,error:r,notFound:c}=(0,a.useAgentOverview)(),[l,d]=(0,s.useState)(null),[h,v]=(0,s.useState)(null),[u,m]=(0,s.useState)(""),[g,p]=(0,s.useState)(""),[x,j]=(0,s.useState)(""),[y,b]=(0,s.useState)(!1),[f,N]=(0,s.useState)(0),w=(0,s.useCallback)(async(n,s)=>{if(e){s&&b(!0);try{let t=new URLSearchParams({limit:"30"});g&&t.set("q",g),n&&t.set("cursor",n);let a=await fetch(`/api/bots/${encodeURIComponent(e)}/conversations?${t}`,{cache:"no-store"}),o=await a.json().catch(()=>null);if(!a.ok||!o||!Array.isArray(o.conversations))throw Error("load");d(e=>s&&e?[...e,...o.conversations]:o.conversations),v(o.next_cursor),j("")}catch{j("Could not load conversations.")}finally{b(!1)}}},[g,e]);return((0,s.useEffect)(()=>{let e=window.setTimeout(()=>{d(null),w(null,!1)},0);return()=>window.clearTimeout(e)},[w,f]),i)?(0,n.jsx)("div",{className:"agent-state",role:"status",children:"Loading Agent conversations…"}):c?(0,n.jsxs)("div",{className:"agent-state",children:[(0,n.jsx)("h2",{children:"Agent not found"}),(0,n.jsx)(t.default,{href:"/",children:"Choose an Agent"})]}):r||!o?(0,n.jsx)("div",{className:"agent-state",role:"alert",children:"This Agent’s conversations are unavailable."}):(0,n.jsxs)("div",{className:"conversation-index","data-agent-conversations":!0,children:[(0,n.jsxs)("header",{className:"conversation-index-head",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"agent-eyebrow",children:"Conversations"}),(0,n.jsx)("h2",{children:"Durable history"}),(0,n.jsxs)("p",{children:["Direct messages, group rooms, Agent handoffs, and connected-service conversations involving ",o.agent.name,"."]})]}),o.conversation?(0,n.jsxs)(t.default,{className:"agent-primary-action",href:`/agents/${encodeURIComponent(e)}/conversations/${encodeURIComponent(o.conversation.id)}`,children:["Message ",o.agent.name]}):null]}),(0,n.jsxs)("form",{className:"conversation-search",role:"search",onSubmit:e=>{e.preventDefault(),p(u.trim())},children:[(0,n.jsx)("label",{htmlFor:"conversation-query",children:"Search conversations"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("input",{id:"conversation-query",value:u,onChange:e=>m(e.target.value),placeholder:"Participant, origin, or type"}),(0,n.jsx)("button",{type:"submit",children:"Search"})]})]}),null!==l||x?null:(0,n.jsx)("p",{className:"conversation-state",role:"status","data-conversation-state":"loading",children:"Loading conversations…"}),x?(0,n.jsxs)("div",{className:"conversation-state",role:"alert","data-conversation-state":"error",children:[(0,n.jsx)("p",{children:x}),(0,n.jsx)("button",{type:"button",onClick:()=>N(e=>e+1),children:"Retry"})]}):null,l?.length!==0||x?null:(0,n.jsx)("p",{className:"conversation-state","data-conversation-state":"empty",children:g?"No conversations match this search.":"No conversations involve this Agent yet."}),l&&l.length>0?(0,n.jsx)("ol",{className:"conversation-list","aria-label":"Conversations, newest activity first",children:l.map(s=>(0,n.jsx)("li",{children:(0,n.jsxs)(t.default,{href:`/agents/${encodeURIComponent(e)}/conversations/${encodeURIComponent(s.conversation_id)}`,children:[(0,n.jsxs)("span",{className:"conversation-row-title",children:[(0,n.jsx)("strong",{children:s.label}),(0,n.jsx)("span",{children:"direct"===s.type?"Direct":"group"===s.type?"Group":s.origin?.kind==="service"?"External service":"Agent to Agent"})]}),(0,n.jsx)("span",{className:"conversation-row-participants",children:s.participants.map(e=>e.label).join(" · ")}),(0,n.jsxs)("span",{className:"conversation-row-meta",children:[(0,n.jsxs)("span",{children:["Origin: ",s.origin?.label??"Unknown"]}),(0,n.jsxs)("span",{children:[s.message_count," ",1===s.message_count?"message":"messages"]}),(0,n.jsx)("time",{dateTime:new Date(s.last_activity_at).toISOString(),children:new Date(s.last_activity_at).toLocaleString()})]})]})},s.conversation_id))}):null,h&&l&&!x?(0,n.jsx)("button",{className:"conversation-more",type:"button",disabled:y,onClick:()=>void w(h,!0),children:y?"Loading…":"Load older conversations"}):null]})}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66464,e=>{"use strict";var t=e.i(43476),s=e.i(22016),a=e.i(71645),n=e.i(70925);let i=[{value:"all",label:"All"},{value:"sessions",label:"Sessions"},{value:"conversations",label:"Conversations & exchanges"},{value:"slack",label:"Slack"},{value:"errors",label:"Errors"}],r={filter:"all",requestKey:"",activity:{state:"loading"},nextCursor:null,loadingMore:!1};function l(e,t){return"select_filter"===t.type?{...e,filter:t.filter,requestKey:"",activity:{state:"loading"},nextCursor:null,loadingMore:!1}:"request_started"===t.type?{...e,requestKey:t.key,activity:{state:"loading"},nextCursor:null,loadingMore:!1}:"request_succeeded"===t.type?t.key===e.requestKey?{...e,activity:{state:"ready",items:t.items},nextCursor:t.nextCursor}:e:"request_failed"===t.type?t.key===e.requestKey?{...e,activity:{state:"error"},nextCursor:null}:e:"load_started"===t.type?t.key===e.requestKey?{...e,loadingMore:!0}:e:"load_succeeded"===t.type&&t.key===e.requestKey&&"ready"===e.activity.state?{...e,activity:{state:"ready",items:[...e.activity.items,...t.items]},nextCursor:t.nextCursor,loadingMore:!1}:"load_failed"===t.type&&t.key===e.requestKey?{...e,activity:{state:"error"},nextCursor:null,loadingMore:!1}:e}function c(e,t,s=null){let a=new URLSearchParams({filter:t,limit:String(20)});return s&&a.set("cursor",s),`/api/bots/${encodeURIComponent(e)}/activity?${a.toString()}`}function o({items:e,compact:a=!1}){return(0,t.jsx)("ol",{className:a?"agent-activity-list is-compact":"agent-activity-list","aria-label":"Agent activity, newest first",children:e.map(e=>(0,t.jsxs)("li",{className:`agent-activity-item is-${e.severity}`,"data-activity-kind":e.kind,children:[(0,t.jsx)("span",{className:"agent-activity-marker","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"agent-activity-card",children:[(0,t.jsxs)("div",{className:"agent-activity-summary",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"agent-activity-category",children:"conversations"===e.category?"Conversations & exchanges":e.category}),(0,t.jsx)("strong",{children:e.summary}),(0,t.jsx)("time",{dateTime:new Date(e.occurred_at).toISOString(),children:new Date(e.occurred_at).toLocaleString()})]}),e.attention?(0,t.jsx)("span",{className:"agent-activity-attention",children:"Needs attention"}):null]}),(0,t.jsx)("div",{className:"agent-activity-actions",children:(0,t.jsx)(s.default,{href:e.target.href,children:e.target.label})}),!a&&Object.keys(e.details).length?(0,t.jsxs)("details",{className:"agent-activity-details",children:[(0,t.jsx)("summary",{children:"Raw details"}),(0,t.jsx)("dl",{children:Object.entries(e.details).map(([e,s])=>(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:e.replaceAll("_"," ")}),(0,t.jsx)("dd",{children:(0,t.jsx)("code",{children:String(s)})})]},e))}),(0,t.jsx)("p",{children:"Safe structured fields only. Provider transcripts and identifiers are excluded."})]}):null]})]},e.id))})}function d({activity:e,filter:s,nextCursor:a,loadingMore:n,onLoadMore:r}){return(0,t.jsxs)(t.Fragment,{children:["loading"===e.state?(0,t.jsx)("p",{className:"agent-activity-state",role:"status",children:"Loading activity…"}):null,"error"===e.state?(0,t.jsxs)("div",{className:"agent-activity-state is-error",role:"alert",children:[(0,t.jsx)("strong",{children:"Activity unavailable"}),(0,t.jsx)("p",{children:"No partial or stale timeline is shown. Refresh to try again."})]}):null,"ready"!==e.state||e.items.length?null:(0,t.jsx)("p",{className:"agent-activity-state",children:"all"===s?"No operational activity has been recorded for this Agent yet.":`No ${i.find(e=>e.value===s)?.label.toLowerCase()} activity matches this filter.`}),"ready"===e.state&&e.items.length?(0,t.jsx)(o,{items:e.items}):null,"ready"===e.state&&a?(0,t.jsx)("button",{type:"button",className:"agent-activity-more",onClick:r,disabled:n,children:n?"Loading…":"Load older activity"}):null]})}e.s(["ActivityList",0,o,"ActivityResults",0,d,"activityPageReducer",0,l,"agentActivityUrl",0,c,"default",0,function(){let{id:e,overview:o,loading:h,error:u,notFound:g}=(0,n.useAgentOverview)(),[x,m]=(0,a.useReducer)(l,r),{filter:v,activity:y,nextCursor:j,loadingMore:p}=x,f=(0,a.useRef)(0),N=(0,a.useCallback)((t=null)=>c(e,v,t),[v,e]);(0,a.useEffect)(()=>{let t=!1,s=++f.current,a=`${e}:${v}:${s}`;return m({type:"request_started",key:a}),fetch(N(),{cache:"no-store"}).then(async e=>{let n=await e.json().catch(()=>null);if(!e.ok||!Array.isArray(n?.activity))throw Error("activity");t||s!==f.current||m({type:"request_succeeded",key:a,items:n.activity,nextCursor:"string"==typeof n.next_cursor?n.next_cursor:null})}).catch(()=>{t||s!==f.current||m({type:"request_failed",key:a})}),()=>{t=!0}},[v,e,N]);let w=async()=>{if(!j||"ready"!==y.state||p)return;let e=x.requestKey;m({type:"load_started",key:e});try{let t=await fetch(N(j),{cache:"no-store"}),s=await t.json().catch(()=>null);if(!t.ok||!Array.isArray(s?.activity))throw Error("activity");m({type:"load_succeeded",key:e,items:s.activity,nextCursor:"string"==typeof s.next_cursor?s.next_cursor:null})}catch{m({type:"load_failed",key:e})}};return h?(0,t.jsx)("div",{className:"agent-state",role:"status",children:"Loading Agent activity…"}):g?(0,t.jsxs)("div",{className:"agent-state",children:[(0,t.jsx)("h2",{children:"Agent not found"}),(0,t.jsx)(s.default,{href:"/",children:"Choose an Agent"})]}):u||!o?(0,t.jsxs)("div",{className:"agent-state",role:"alert",children:[(0,t.jsx)("h2",{children:"Activity unavailable"}),(0,t.jsx)("p",{children:"Botmancers could not load this Agent."})]}):(0,t.jsxs)("div",{className:"agent-activity","data-agent-activity-page":!0,children:[(0,t.jsxs)("header",{className:"agent-activity-intro",children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Activity"}),(0,t.jsxs)("h2",{children:["What changed for ",o.agent.name]}),(0,t.jsx)("p",{children:"Operational history from Botmancers records. Open the owning page for actions and complete detail."})]}),(0,t.jsx)("div",{className:"agent-activity-filters",role:"group","aria-label":"Filter Agent activity",children:i.map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":v===e.value,onClick:()=>m({type:"select_filter",filter:e.value}),children:e.label},e.value))}),(0,t.jsx)(d,{activity:y,filter:v,nextCursor:j,loadingMore:p,onLoadMore:()=>{w()}})]})},"initialActivityPageState",0,r],66464)},65143,e=>{"use strict";var t=e.i(43476),s=e.i(71645),a=e.i(22016),n=e.i(70925),i=e.i(3136),r=e.i(8880),l=e.i(66464);let c=[{id:"cursor",label:"Cursor"},{id:"codex",label:"Codex"},{id:"claude",label:"Claude Code"}];function o(e){return`botmancers setup --client ${e}`}function d(){let[e,a]=(0,s.useState)("cursor"),[n,i]=(0,s.useState)(null),l=o(e);async function d(e){a(e);try{await navigator.clipboard.writeText(o(e)),i(e),window.setTimeout(()=>i(t=>t===e?null:t),1600)}catch{i(null)}}return(0,t.jsxs)("div",{className:"agent-setup-clients",children:[(0,t.jsx)("div",{className:"agent-setup-client-row",role:"group","aria-label":"Copy setup command for a coding client",children:c.map(s=>{let a=e===s.id,i=n===s.id;return(0,t.jsxs)("button",{type:"button",className:`agent-setup-client${a?" is-active":""}${i?" is-copied":""}`,"aria-pressed":a,"aria-label":i?`Copied setup command for ${s.label}`:`Copy setup command for ${s.label}`,onClick:()=>void d(s.id),children:[(0,t.jsx)(r.HarnessIcon,{agent:s.id,size:14,className:"agent-setup-client-mark"}),(0,t.jsx)("span",{children:i?"Copied":s.label})]},s.id)})}),(0,t.jsx)("pre",{className:"agent-setup-command",children:(0,t.jsx)("code",{children:l})})]})}function h({rows:e,empty:s}){return e.length?(0,t.jsx)("ul",{className:"agent-work-list",children:e.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:e.title}),(0,t.jsxs)("small",{children:["active"===e.status?"Active now":"Recent"," · ",new Date(e.last_activity_at).toLocaleString()]})]})},e.ref))}):(0,t.jsx)("p",{className:"agent-empty",children:s})}e.s(["default",0,function(){let{id:e,overview:s,loading:r,error:c,notFound:o}=(0,n.useAgentOverview)();if(r)return(0,t.jsx)("div",{className:"agent-state",role:"status",children:"Loading Agent overview…"});if(o)return(0,t.jsxs)("div",{className:"agent-state",children:[(0,t.jsx)("h2",{children:"Agent not found"}),(0,t.jsx)("p",{children:"This Agent does not exist or was removed."}),(0,t.jsx)(a.default,{href:"/",children:"Choose an Agent"})]});if(c||!s)return(0,t.jsxs)("div",{className:"agent-state",role:"alert",children:[(0,t.jsx)("h2",{children:"Overview unavailable"}),(0,t.jsx)("p",{children:"Botmancers could not load this Agent. Refresh to try again."})]});let u=`/agents/${encodeURIComponent(e)}/config`,g=s.conversation?`/agents/${encodeURIComponent(e)}/conversations/${encodeURIComponent(s.conversation.id)}`:`/agents/${encodeURIComponent(e)}/conversations`,x=s.messaging.home_session_ref?"Home session configured":s.messaging.new_sessions_allowed&&s.messaging.default_workspace_set?"Can start a configured session":s.current_work.length>0?"Uses an eligible existing session":"No ready session is known";return(0,t.jsxs)("div",{className:"agent-overview","data-agent-overview":!0,children:[(0,t.jsxs)("div",{className:"agent-overview-grid",children:[(0,t.jsxs)("section",{className:"agent-panel agent-instructions",children:[(0,t.jsxs)("div",{className:"agent-panel-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Standing instructions"}),(0,t.jsx)("h2",{children:"How this Agent works"})]}),(0,t.jsx)(a.default,{href:u,children:"Config"})]}),(0,t.jsxs)("dl",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Rules"}),(0,t.jsx)("dd",{children:s.instructions.rules})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Skill"}),(0,t.jsx)("dd",{children:s.instructions.skill})]})]})]}),(0,t.jsxs)("section",{className:"agent-panel",children:[(0,t.jsxs)("div",{className:"agent-panel-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Runtime"}),(0,t.jsx)("h2",{children:s.runtime.available?"Ready to work":"Setup required"})]}),(0,t.jsx)(a.default,{href:u,children:"Config"})]}),(0,t.jsx)("p",{children:s.runtime.available?`${(0,i.agentLabel)(s.runtime.agent)} is connected through ${s.runtime.connection||"the configured runtime"}.`:"This Agent cannot launch with its current registration. Open Config to resolve the connection or session scope."}),(0,t.jsxs)("dl",{className:"agent-runtime-facts",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Heartbeat"}),(0,t.jsx)("dd",{children:s.runtime.last_seen?new Date(s.runtime.last_seen).toLocaleString():"Not reported"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{children:"Messaging"}),(0,t.jsx)("dd",{children:x})]})]}),(0,t.jsx)("p",{className:"agent-muted",children:"Messages use the Agent’s configured home session or launch policy. Callers do not choose its runtime, model, or provider session."})]})]}),(0,t.jsxs)("section",{className:"agent-use","aria-labelledby":"open-this-agent",children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Open this Agent"}),(0,t.jsx)("h2",{id:"open-this-agent",children:"Make it reachable"}),(0,t.jsxs)("div",{className:"agent-use-grid",children:[(0,t.jsxs)("article",{children:[(0,t.jsx)("span",{className:"agent-use-number",children:"01"}),(0,t.jsx)("h3",{children:"Use from a coding agent"}),(0,t.jsxs)("p",{children:["Let another coding agent discover ",s.agent.name," and ask its sessions — so work learned here can travel between agents."]}),(0,t.jsx)("p",{className:"agent-muted",children:"One command connects the client to the bridge and installs the collaboration skill. Click your client to copy it:"}),(0,t.jsx)(d,{})]}),(0,t.jsxs)("article",{children:[(0,t.jsx)("span",{className:"agent-use-number",children:"02"}),(0,t.jsx)("h3",{children:"Share a session to Slack"}),(0,t.jsx)("p",{children:"Open one of this Agent’s sessions to people in Slack — a time-limited, read-only share so others can ask what the session already knows."}),(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(e)}/slack`,children:"Share through Slack"})]}),(0,t.jsxs)("article",{children:[(0,t.jsx)("span",{className:"agent-use-number",children:"03"}),(0,t.jsx)("h3",{children:"Message in Botmancers"}),(0,t.jsxs)("p",{children:["Talk directly with ",s.agent.name," in a focused conversation when you are the one asking."]}),(0,t.jsx)(a.default,{href:g,children:"Open conversation"})]})]})]}),(0,t.jsxs)("div",{className:"agent-overview-grid agent-work-grid",children:[(0,t.jsxs)("section",{className:"agent-panel",children:[(0,t.jsxs)("div",{className:"agent-panel-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Current work"}),(0,t.jsx)("h2",{children:"Active sessions"})]}),(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(e)}/sessions`,children:"All sessions"})]}),(0,t.jsx)(h,{rows:s.current_work,empty:"No active work right now."})]}),(0,t.jsxs)("section",{className:"agent-panel",children:[(0,t.jsxs)("div",{className:"agent-panel-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"agent-eyebrow",children:"Recent activity"}),(0,t.jsx)("h2",{children:"Latest work"})]}),(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(e)}/activity`,children:"View activity"})]}),s.recent_activity.length?(0,t.jsx)(l.ActivityList,{items:s.recent_activity,compact:!0}):(0,t.jsx)("p",{className:"agent-empty",children:"No operational activity yet."})]})]})]})}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,69603,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(22016),s=e.i(18566),r=e.i(13255),i=e.i(46986),o=e.i(15366),l=e.i(70925),c=e.i(74904),d=e.i(68684),u=e.i(96594),p=e.i(64711),h=e.i(54423);function m(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.replace(/^\s+/,"")}function f(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()].sort((e,t)=>e.created_at-t.created_at||e.id.localeCompare(t.id))}function g({message:e,conversationId:a,status:s,writable:r,onDone:i}){let o=(0,d.parseDraft)(m(e.content)),[l,c]=(0,n.useState)(o?.recipient??""),[u,p]=(0,n.useState)(o?.body??""),[h,f]=(0,n.useState)(!1);if(!o)return null;let v=!r||"open"!==s,b=async t=>{v||h||(f(!0),await fetch(`/api/conversations/${encodeURIComponent(a)}/draft`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:e.id,action:t,recipient:l,body:u})}),f(!1),i())};return(0,t.jsxs)("div",{className:"draft-card",children:[(0,t.jsx)("div",{className:"draft-title",children:(0,d.draftTitle)(o.channel)}),(0,t.jsx)("input",{"aria-label":"Recipient",value:v?o.recipient:l,readOnly:v,onChange:e=>c(e.target.value)}),(0,t.jsx)("textarea",{rows:3,"aria-label":"Draft body",value:v?o.body:u,readOnly:v,onChange:e=>p(e.target.value)}),"open"===s&&r?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:h||!l.trim(),onClick:()=>void b("send"),children:"Send"}),(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:h,onClick:()=>void b("discard"),children:"Discard"})]}):(0,t.jsx)("span",{className:"draft-mark",children:"open"===s?"Read only":"sent"===s?"Sent":"Discarded"})]})}function v({message:e,conversationId:a,status:s,writable:r,onDone:i}){let o=(0,d.parseApprovalCode)(e.content),[l,c]=(0,n.useState)(!1);if(!o)return null;if(!r||"pending"!==s)return(0,t.jsx)("span",{className:"draft-mark",children:"pending"===s?"Approval is read only":"approved"===s?"Approved":"Denied"});let u=async t=>{l||(c(!0),await fetch(`/api/conversations/${encodeURIComponent(a)}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:o,messageId:e.id})}),c(!1),i())};return(0,t.jsxs)("span",{className:"draft-mark",children:[(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:l,onClick:()=>void u("approve"),children:"Approve"}),(0,t.jsx)("button",{type:"button",className:"approve-control",disabled:l,onClick:()=>void u("deny"),children:"Deny"})]})}function b({names:e}){return e.length?(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))}):null}e.s(["default",0,function(){let e=(0,s.useParams)(),y=(0,s.useSearchParams)(),x=String(e.id??""),w=String(e.conversationId??""),{overview:_}=(0,l.useAgentOverview)(),[$,k]=(0,n.useState)(null),[j,N]=(0,n.useState)([]),[C,S]=(0,n.useState)(null),[I,A]=(0,n.useState)([]),[R,T]=(0,n.useState)(""),[q,D]=(0,n.useState)(!1),[L,U]=(0,n.useState)(!1),[E,O]=(0,n.useState)(""),[M,F]=(0,n.useState)([]),[P,H]=(0,n.useState)(""),[B,K]=(0,n.useState)(!1),[Q,Y]=(0,n.useState)(0),J=(0,n.useRef)(null),V=(0,n.useRef)(null),W=(0,n.useRef)(null),z=(0,n.useRef)(!1),G=(0,n.useRef)(!1),Z=(0,n.useCallback)(async(e=null,t=!1)=>{if(x&&w){t&&U(!0);try{let n=new URLSearchParams({limit:"60"});e&&n.set("cursor",e);let[a,s]=await Promise.all([fetch(`/api/bots/${encodeURIComponent(x)}/conversations/${encodeURIComponent(w)}?${n}`,{cache:"no-store"}),fetch(`/api/exchanges?conversation=${encodeURIComponent(w)}`,{cache:"no-store"})]);if(404===a.status){D(!0),T("");return}let r=await a.json().catch(()=>null);if(!a.ok||!r||!Array.isArray(r.messages))throw Error("history");let i=await s.json().catch(()=>null);k(r),N(e=>t?f(r.messages,e):f(e,r.messages)),(t||!z.current)&&S(r.next_cursor),s.ok&&Array.isArray(i?.exchanges)&&A(i.exchanges),T(""),D(!1)}catch{T("Could not load this conversation.")}finally{U(!1)}}},[w,x]);(0,n.useEffect)(()=>{let e=window.setTimeout(()=>{Z()},0),t=window.setInterval(()=>{Z()},2e3);return()=>{window.clearTimeout(e),window.clearInterval(t)}},[Z,Q]),(0,n.useEffect)(()=>{$&&!z.current&&(z.current=!0,W.current?.lastElementChild?.scrollIntoView({block:"end"}),$.writable&&J.current?.focus({preventScroll:!0}))},[$]),(0,n.useEffect)(()=>{let e=y.get("exchange");if(!e||G.current)return;let t=document.getElementById(`exchange-${e}`);t&&(G.current=!0,t.scrollIntoView({block:"center"}),t.focus({preventScroll:!0}))},[I,y]);let X=e=>{let t=6-M.length;H(e.length>t?"Up to six attachments.":""),F(n=>[...n,...e.slice(0,Math.max(t,0)).map((e,t)=>({id:`${e.name}-${e.size}-${n.length+t}`,name:e.name}))])},ee=async()=>{if(!$?.writable||B)return;let e=[E.trim(),...M.map(e=>e.name)].filter(Boolean).join("\n");if(e){K(!0);try{if(!(await fetch(`/api/conversations/${encodeURIComponent(w)}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,idempotencyKey:crypto.randomUUID()})})).ok)throw Error("send");O(""),F([]),H(""),await Z()}catch{H("Message could not be sent. Try again.")}finally{K(!1)}}},et=async e=>{if(!$?.writable)return;let t=e?`/messages/${encodeURIComponent(e)}/stop`:"/stop";await fetch(`/api/conversations/${encodeURIComponent(w)}${t}`,{method:"POST"}),await Z()};if(q)return(0,t.jsxs)("div",{className:"conversation-detail-state",children:[(0,t.jsx)("h2",{children:"Conversation not found"}),(0,t.jsx)("p",{children:"This conversation does not involve the selected Agent or no longer exists."}),(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(x)}/conversations`,children:"All conversations"})]});if(!$&&!R)return(0,t.jsx)("p",{className:"conversation-detail-state",role:"status","data-conversation-detail-state":"loading",children:"Loading conversation…"});if(!$&&R)return(0,t.jsxs)("div",{className:"conversation-detail-state",role:"alert","data-conversation-detail-state":"error",children:[(0,t.jsx)("p",{children:R}),(0,t.jsx)("button",{type:"button",onClick:()=>Y(e=>e+1),children:"Retry"})]});if(!$)return null;let en=(0,h.wakeNotices)($.events).map(e=>({...e,actionable:e.actionable&&$.writable})),ea=new Set,es=new Set,er=e=>en.filter(t=>!ea.has(t.eventId)&&t.createdAt<e).map(e=>(ea.add(e.eventId),(0,t.jsx)("li",{className:"msg-status",children:(0,t.jsx)(o.default,{notice:e,onDone:()=>void Z()})},e.eventId))),ei=e=>I.filter(t=>!es.has(t.id)&&t.created_at<e).sort((e,t)=>e.created_at-t.created_at).map(e=>(es.add(e.id),(0,t.jsx)("li",{className:"msg-status",children:(0,t.jsx)(r.default,{summary:e,onChanged:()=>void Z()})},e.id)));return(0,t.jsxs)("div",{className:"conversation-detail","data-conversation-writable":$.writable?"true":"false",children:[(0,t.jsxs)("header",{className:"conversation-detail-head",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(x)}/conversations`,children:"← Conversations"}),(0,t.jsx)("p",{className:"agent-eyebrow",children:"direct"===$.type?"Direct conversation":"group"===$.type?"Group history":$.origin?.kind==="service"?"External-service history":"Agent-to-Agent history"}),(0,t.jsx)("h2",{children:$.label}),(0,t.jsx)("p",{className:"conversation-participant-line",children:$.participants.map(e=>e.label).join(" · ")}),(0,t.jsxs)("p",{className:"conversation-origin-line",children:["Origin: ",$.origin?.label??"Unknown"," · ",$.message_count," messages"]})]}),$.writable?(0,t.jsx)("button",{type:"button",className:"conversation-stop",onClick:()=>void et(),children:"Stop delegated turns"}):null]}),$.writable?null:(0,t.jsxs)("aside",{className:"conversation-read-only",role:"note",children:[(0,t.jsx)("strong",{children:"Read-only history"}),(0,t.jsx)("p",{children:$.read_only_reason}),_?.conversation?(0,t.jsx)(a.default,{href:`/agents/${encodeURIComponent(x)}/conversations/${encodeURIComponent(_.conversation.id)}`,children:"Open direct conversation"}):null]}),R?(0,t.jsxs)("p",{className:"conversation-refresh-error",role:"alert",children:[R," Showing the last loaded history."]}):null,(0,t.jsxs)("div",{className:"conversation-history",children:[C?(0,t.jsx)("button",{className:"conversation-older",type:"button",disabled:L,onClick:()=>void Z(C,!0),children:L?"Loading…":"Load older messages"}):null,(0,t.jsxs)("ol",{ref:W,className:"conversation-message-list","aria-label":"Conversation history",children:[0===j.length?(0,t.jsx)("li",{className:"conversation-empty-history",children:"No messages in this conversation yet."}):null,j.map(e=>{let a="You"===e.sender_name,s=m(e.content),r=a?null:(0,u.classifyRuntimeFailure)(s),o=a?null:(0,p.parseRun)(e.content),l=a||o?null:(0,d.parseDraft)(s),h=a||o?null:(0,d.parseApprovalCode)(e.content);return(0,t.jsxs)(n.Fragment,{children:[er(e.created_at),ei(e.created_at),(0,t.jsxs)("li",{className:a?"msg-you":"msg-bot",children:[(0,t.jsx)("div",{className:a?"msg-name msg-name-you":"msg-name",children:e.sender_name}),r?(0,t.jsx)("div",{className:"msg-status",children:(0,t.jsx)(i.default,{failure:r})}):o?(0,t.jsxs)("div",{className:"msg-body",children:[(0,p.runLine)(o),"running"===o.state&&$.writable?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:"attach-word",onClick:()=>void et(e.id),children:"Stop"})]}):null]}):l&&e.draftStatus?(0,t.jsx)("div",{className:"msg-body",children:(0,t.jsx)(g,{message:e,conversationId:w,status:e.draftStatus,writable:$.writable,onDone:()=>void Z()})}):(0,t.jsxs)("div",{className:"msg-body",children:[function(e,n){let a=String(e??"").split("\n");if(!a.some(e=>null!==(0,c.agentEventDisplay)(e)))return e;let s=[];return a.forEach((e,a)=>{a>0&&s.push((0,t.jsx)("br",{},`${n}-br-${a}`));let r=(0,c.agentEventDisplay)(e);s.push(r?(0,t.jsxs)("span",{className:"agent-event",children:[(0,t.jsx)("span",{className:"agent-event-label",children:r.label}),r.detail?` ${r.detail}`:""]},`${n}-${a}`):(0,t.jsx)("span",{children:e},`${n}-${a}`))}),s}(s,e.id),h&&e.approvalStatus?(0,t.jsx)(v,{message:e,conversationId:w,status:e.approvalStatus,writable:$.writable,onDone:()=>void Z()}):null,(0,t.jsx)(b,{names:(0,d.parseFileNames)(e.content)})]})]})]},e.id)}),er(1/0),ei(1/0)]})]}),$.writable?(0,t.jsxs)("div",{className:"composer conversation-composer",onPaste:e=>{let t=Array.from(e.clipboardData.files??[]);t.length&&(e.preventDefault(),X(t))},children:[(0,t.jsxs)("div",{className:"composer-box",children:[P?(0,t.jsx)("p",{className:"attach-error",role:"alert",children:P}):null,M.length?(0,t.jsx)("div",{className:"attach-names",children:M.map(e=>(0,t.jsx)("span",{children:e.name},e.id))}):null,(0,t.jsx)("textarea",{ref:J,rows:2,value:E,onChange:e=>O(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ee())},placeholder:`Message ${_?.agent.name??"this Agent"}`,"aria-label":"Message"})]}),(0,t.jsx)("input",{ref:V,className:"attach-input",type:"file",multiple:!0,onChange:e=>{X(Array.from(e.target.files??[])),e.target.value=""}}),(0,t.jsx)("button",{type:"button",className:"attach-word",onClick:()=>V.current?.click(),children:"Attach"}),(0,t.jsx)("button",{type:"button",className:"send-btn",disabled:B,onClick:()=>void ee(),children:B?"Sending…":"Send"})]}):null]})}])},13255,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(22016),s=e.i(50814);e.s(["default",0,function({summary:e,onChanged:r}){let[i,o]=(0,n.useState)(!1),[l,c]=(0,n.useState)(""),d=(0,s.stateTone)(e.state),u=(0,s.outcomeLine)(e),p=(0,s.failureAdvice)(e),h=`exchange-${e.id}-title`,m=async()=>{if(!i){o(!0),c("");try{let t=await fetch(`/api/exchanges/${encodeURIComponent(e.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok){let e=await t.json().catch(()=>null);c("string"==typeof e?.error?.message?e.error.message:"Could not cancel. Try again.")}}catch{c("Could not cancel. Try again.")}finally{o(!1),r?.()}}};return(0,t.jsxs)("article",{id:`exchange-${e.id}`,className:`exchange-card is-${d} is-${e.state}`,"data-exchange-id":e.id,"data-exchange-state":e.state,"aria-labelledby":h,tabIndex:-1,children:[(0,t.jsxs)("p",{className:"exchange-card-line",children:[(0,t.jsx)("span",{className:"exchange-card-mode",children:(0,s.modeLabel)(e.mode)}),(0,t.jsx)("span",{id:h,className:"exchange-card-title",children:(0,s.participantsLabel)(e)}),(0,t.jsx)("span",{className:"exchange-card-state",role:"status",children:(0,s.liveStateLabel)(e)})]}),(0,t.jsx)("p",{className:"exchange-card-session",children:(0,s.sessionLabel)(e)}),(0,t.jsxs)("p",{className:"exchange-card-instruction",children:[(0,t.jsx)("span",{className:"exchange-card-key",children:(0,s.instructionHeading)(e.mode)})," ",(0,s.excerpt)(e.instruction,220)]}),u?(0,t.jsx)("p",{className:"failed"===e.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:u}):null,p?(0,t.jsx)("p",{className:"exchange-card-advice",children:p}):null,l?(0,t.jsx)("p",{className:"exchange-card-error",role:"alert",children:l}):null,(0,t.jsxs)("p",{className:"exchange-card-foot",children:[(0,t.jsxs)("span",{className:"exchange-card-time",children:["Updated ",(0,s.formatExchangeTime)(e.updated_at)]}),(0,t.jsx)(a.default,{className:"exchange-card-link",href:(0,s.detailsHref)(e.id),"aria-label":`Details: ${(0,s.modeLabel)(e.mode)} ${(0,s.participantsLabel)(e)}`,children:"Details"}),e.can_cancel?(0,t.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:i,onClick:()=>{m()},children:i?"Cancelling…":"Cancel"}):null]})]})}])},46986,15366,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(96594);e.s(["default",0,function({failure:e}){let[s,r]=(0,n.useState)("idle"),i=(0,a.severityLabel)(e.severity),o=(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":o,"data-runtime-failure":e.kind,children:[(0,t.jsxs)("p",{className:"runtime-failure-title",id:o,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"===s?"Copied":"failed"===s?"Copy failed":"Copy details"})]})]})}],46986);let s={blocked:"Needs approval",rejected:"Not started",allowed:"Allowed",denied:"Denied",waiting:"Queued",stopped:"Stopped"};e.s(["default",0,function({notice:e,onDone:a}){let[r,i]=(0,n.useState)(!1),[o,l]=(0,n.useState)(""),c="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:c}),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,o?(0,t.jsx)("p",{className:"wake-notice-error",role:"alert",children:o}):null]})}],15366)},68684,e=>{"use strict";e.s(["draftTitle",0,function(e){return"email"===e?"New Email":"New Slack Message"},"parseApprovalCode",0,function(e){let t=e.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return t?t[1]:null},"parseDraft",0,function(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}},"parseFileNames",0,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},"parseHandoff",0,function(e){let t=e.match(/^\s*\[Handing off to ([^\]]+)\]/);return t&&t[1].trim()||null}])},50814,63352,e=>{"use strict";function t(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}function n(e){return e?e.split("/").filter(e=>e.length>0).pop()??null:null}function a(e,t){let n=function(e){if(!e)return null;let t=e.toLowerCase();return"muse code"===t?"muse":(["codex","claude","cursor","hermes","muse"].includes(t),t)}(t);switch(e){case"provider_unavailable":return n?{reason:`${n} is not installed or did not start`,fix:`Install ${n} and Retry.`}:{reason:"the runtime is not installed or did not start",fix:"Install the runtime and Retry."};case"auth_required":return{reason:"not signed in",fix:"Sign in and Retry."};case"permission_denied":return{reason:"permission denied",fix:"Check permissions and Retry."};case"incompatible_version":return{reason:"incompatible version",fix:"Update the runtime and Retry."};case"usage_limit":return{reason:"usage limit reached",fix:"Wait or upgrade and Retry."};case"scope_missing":return{reason:"no session scope is set",fix:"Choose a scope in Config."};case"provider_failed":return{reason:"the listing failed",fix:"Retry."};default:return{reason:e,fix:"Retry."}}}let s="Not reported";function r(e){return e.toFixed(1).replace(/\.0$/,"")}function i(e){return e.toLocaleString("en-US")}function o(e){return 0===e?"$0.00":e>=.01?`$${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:e<1e-4?"<$0.0001":`$${e.toFixed(4)}`}let l={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function c(e,t,n){return"cost_usd"===e?o(t):n?i(t):t<1e3?String(t):t<999950?`${r(t/1e3)}k`:t<99995e4?`${r(t/1e6)}M`:`${r(t/1e9)}B`}function d(e){return`${e} ${1===e?"run":"runs"}`}function u(e,t,n=!1){let a=l[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:a,text:s,quality:"unavailable",coverage:t&&t.total>0?`0 of ${d(t.total)} reported`:"No runs recorded",label:`${a}: not reported`};let r=c(e,t.sum,n),i=c(e,t.sum,!0);return"partial"===t.quality?{name:a,text:r,quality:"partial",coverage:`Partial: ${t.known} of ${d(t.total)} reported`,label:`${a}: at least ${i}, partial, reported by ${t.known} of ${d(t.total)}`}:{name:a,text:r,quality:"complete",coverage:`All ${d(t.total)} reported`,label:`${a}: ${i}, reported by all ${d(t.total)}`}}e.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(e){let t="source"===e.role?"Started the session":"Resumed the session";return`${t} \xb7 ${e.outcome??"running"}`},"emptySessionsCopy",0,function(e,t,n,s){if("active"===e)return`${t} has no active sessions.`;if("ended"===e)return`${t} has no ended sessions.`;if(n?.last_error_code){let{reason:e,fix:t}=a(n.last_error_code,s),r=s?`${s} sessions`:"sessions";return`Could not read ${r}: ${e}. ${t}`}if(n&&null===n.synced_at)return`${t} has not synced sessions yet. Refresh to load past sessions.`;let r=n?.out_of_scope_count??0;return r>0?`${r} ${1===r?"session exists":"sessions exist"} outside ${t}'s scope. Widen the scope to see them.`:`${t} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,t,"formatSyncRelativeTime",0,function(e,t=Date.now()){if(null===e)return"never";let n=Math.max(0,t-e);if(n<6e4)return"just now";let a=Math.floor(n/6e4);if(a<60)return`${a} minute${1===a?"":"s"} ago`;let s=Math.floor(a/60);if(s<24)return`${s} hour${1===s?"":"s"} ago`;let r=Math.floor(s/24);return`${r} day${1===r?"":"s"} ago`},"noMatchingSessionsCopy",0,function(e,t){let a=e.trim();if(a)return`No sessions match “${a}”.`;let s=n(t);return s?`No sessions in ${s}.`:"No sessions match the current filters."},"registrationSessionSyncCopy",0,function(e,t){if("failed"===e.outcome){let{reason:n,fix:s}=a(e.error_code??"provider_failed",t);return`Could not read ${t} sessions: ${n}. ${s}`}if("unsupported"===e.outcome)return`Past sessions are not available for ${t}.`;let n=1===e.imported?"session":"sessions",s=`Loaded ${e.imported} ${n}`;return e.rejected_out_of_scope>0&&(s+=`, ${e.rejected_out_of_scope} outside the scope`),e.complete||(s+=", more remain"),`${s}.`},"runtimeLabel",0,function(e){return e.agent.transport?`${e.agent.adapter} \xb7 ${e.agent.transport}`:e.agent.adapter},"sessionOriginChips",0,function(e){let t=[],n=e.origin.work_request?.requester;return n?.kind==="person"?t.push("Human origin"):n?.kind==="bot"?t.push(n.name?`${n.name} Agent`:"Agent origin"):n?.kind==="service"&&t.push("Service origin"),e.origin.conversation&&t.push(e.origin.conversation.label),[...new Set(t)]},"sessionStateTags",0,function(e){let t=[];return(e.home&&t.push("Home"),e.state?.availability==="missing")?[...t,"Missing"]:(e.state?.lifecycle==="archived"&&t.push("Archived"),e.state?.busy&&t.push("Busy"),(e.resumable||e.state?.resumable===!0)&&t.push("Resumable"),t)},"sessionUsageLine",0,function(e){let t=u("input_tokens",e?.input_tokens),n=u("output_tokens",e?.output_tokens),a=u("cost_usd",e?.cost_usd),r=[t,n,a];if(r.every(e=>"unavailable"===e.quality))return{text:s,label:"Usage: not reported",quality:"unavailable",partial:!1};let i=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===n.quality?"output not reported":`${n.text} out`,"unavailable"===a.quality?"cost not reported":a.text].join(" · "),o=r.some(e=>"partial"===e.quality),l=o||r.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:i,label:`Reported usage: ${r.map(e=>e.label).join("; ")}`,quality:l,partial:o}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,u,"usageSampleLabel",0,function(e,t){let n="turn"===e.kind?"start"===e.turn_kind?"provider turn, started":"provider turn":"resume"===e.turn_kind?"resumed":"started";return`Run ${t+1} \xb7 ${n}`},"usageSampleValues",0,function(e){return{input:null===e.input_tokens?s:i(e.input_tokens),output:null===e.output_tokens?s:i(e.output_tokens),cost:null===e.cost_usd?s:o(e.cost_usd)}},"workRequestLabel",0,function(e){var t;let n=e.origin.work_request;return n?`${(t=n.execution_kind)?t[0].toUpperCase()+t.slice(1):t} \xb7 ${n.state}`:null},"workspaceFolderName",0,n,"workspaceOptions",0,function(e){let t=[...new Set(e.filter(e=>"string"==typeof e&&e.length>0))],a=t.map(e=>n(e)??e);return t.map((e,t)=>({value:e,label:a.filter(e=>e===a[t]).length>1?e:a[t]})).sort((e,t)=>e.label<t.label?-1:+(e.label>t.label))}],63352);let p={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},h=["queued","extracting","delivering","completed","failed","cancelled"],m=["completed","failed","cancelled"];function f(e,t){switch(t){case"queued":return"Queued";case"extracting":return"ask"===e?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===e?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function g(e,t=140){let n=String(e??"").split("\n").map(e=>e.trim()).filter(e=>e.length>0).join(" ");return n.length>t?`${n.slice(0,t-1).trimEnd()}…`:n}function v(e,t){return t.updated_at-e.updated_at||t.created_at-e.created_at||(e.id<t.id?-1:+(e.id>t.id))}e.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,function(e){return`/exchanges?id=${encodeURIComponent(e)}`},"eventLabel",0,function(e,t){let n=e.data??{},a=t.source.agent_name,s=t.destination?.agent_name??"the destination Agent",r="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${a}'s session a question`:`You handed ${a}'s session to ${s}`;case"hop_queued":if("deliver"===r)return`Handoff queued for ${s}'s new session`;return"extract"===r?`Handoff extraction queued in ${a}'s session`:`Question queued for ${a}'s session`;case"hop_started":if("deliver"===r)return`${s} started a new session`;return"extract"===r?`${a}'s session started extracting the handoff`:`${a}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&h.includes(n.to)?n.to:null;return e?`Now ${f(t.mode,e).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${t.origin?.label??"the origin thread"}${n.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof n.reason?`: ${n.reason}`:""}`;case"destination_replied":return`${s} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${s}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return e.type.replace(/_/g," ")}},"excerpt",0,g,"exchangeRequestBody",0,function(e,t,n){let a={mode:e.mode,idempotency_key:n,origin_conversation_id:e.originConversationId,source:{agent_id:t.agentId,session_ref:t.sessionRef},instruction:e.instruction.trim()};return"continue"===e.mode&&(a.destination={agent_id:e.destinationAgentId}),a},"failureAdvice",0,function(e){if("failed"!==e.state)return null;switch(e.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}},"formatExchangeTime",0,function(e){return t(e)},"instructionHeading",0,function(e){return"ask"===e?"Question":"Objective"},"ledgerAgents",0,function(e){let t=new Map;for(let n of e)t.set(n.source.agent_id,n.source.agent_name),n.destination&&t.set(n.destination.agent_id,n.destination.agent_name);return[...t.entries()].map(([e,t])=>({id:e,name:t})).sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))},"ledgerRows",0,function(e,t){return e.filter(e=>("all"===t.mode||e.mode===t.mode)&&("active"!==t.state||!e.terminal)&&("all"===t.state||"active"===t.state||e.state===t.state)&&(!t.agentId||e.source.agent_id===t.agentId||e.destination?.agent_id===t.agentId)).sort(v)},"ledgerView",0,function(e,t,n){return null===e?t?"error":"loading":0===e.length?"empty":0===n.length?"filtered-out":"rows"},"linkRoleLabel",0,function(e){let t={origin:"Started here",source:"Source session",destination:"Destination"};return e.map(e=>t[e]).join(" · ")},"liveStateLabel",0,function(e){var t;return e.cancel_requested&&(t=e.state,!m.includes(t))?"Cancelling…":f(e.mode,e.state)},"modeLabel",0,function(e){return"ask"===e?"Ask":"Continue"},"outcomeLine",0,function(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${g(e.outcome.answer,200)}`:`Answered in ${t}.`}let t=e.destination?.agent_name??"The destination Agent";return e.outcome.reply?`${t} picked it up in a new session: ${g(e.outcome.reply,200)}`:`${t} picked it up in a new session.`}return"failed"===e.state?e.failure?.message||"The exchange failed.":"cancelled"===e.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(e,t,n,a,s){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:s,..."resume"===e?{approve_write:a}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return p["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,function(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`},"sessionRowActions",0,function(e){let t;if(e.actions)t=e.actions;else{let n="ended"===e.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:e.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${e.agent.name}’s current runtime.`},a=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:a,resume:{available:!1,code:"action_unavailable",reason:`${p.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:a}}return["ask","resume","handoff"].map(e=>({action:e,label:p[e],availability:t[e]}))},"stateTone",0,function(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"},"submitErrorMessage",0,function(e,t){switch(e){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return t||"That Agent can’t launch yet. Choose its runtime connection and session scope in Config.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return t||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return t||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return t||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(e,t){let n=new URLSearchParams;if(e.thread_agent_id){t&&n.set("exchange",t);let a=n.toString();return`/agents/${encodeURIComponent(e.thread_agent_id)}/conversations/${encodeURIComponent(e.id)}${a?`?${a}`:""}`}if("group"!==e.kind)return null;t&&n.set("exchange",t);let a=n.toString();return`/threads/${encodeURIComponent(e.id)}${a?`?${a}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),a="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${a}.`,e.originConversationId||(t.origin="Choose the thread that follows this exchange."),"continue"!==e.mode||e.destinationAgentId||(t.destination="Choose the Agent who continues the work."),t},"validateResumeDraft",0,function(e,t){let n={};return e.trim()?e.length>4e3&&(n.instruction="Keep it under 4000 characters."):n.instruction="Enter what to work on.",t||(n.approval="Approve edits in this session to resume work here."),n}],50814)},54423,e=>{"use strict";e.s(["wakeNotices",0,function(e){let t=[],n=new Map;return e.forEach((a,s)=>{let r="string"==typeof a.data.target_name?a.data.target_name:null;a.requestId&&r&&n.set(a.requestId,r);let i=function(e){switch(e.kind){case"wake_blocked":return"blocked";case"wake_rejected":return"rejected";case"lineage_stopped":return"stopped";case"wake_accepted":return"string"==typeof e.data.reason?"allowed":null;case"request_cancelled":return"grant_denied"===e.data.reason?"denied":null;case"request_queued":return"capacity"===e.data.waiting_for?"waiting":null;default:return null}}(a);if(!i)return;let o=Array.isArray(a.data.actions)?a.data.actions:[],l=null!==a.requestId&&e.slice(s+1).some(e=>e.requestId===a.requestId);if("waiting"===i&&l)return;let c=a.requestId?n.get(a.requestId):void 0,d="denied"===i&&c?`Wake denied: ${c} — no work ran`:"waiting"===i&&c?`Queued: ${c} — waiting for capacity`:a.text;t.push({eventId:a.eventId,wakeId:a.wakeId,tone:i,text:d,actionable:"blocked"===i&&!!a.wakeId&&o.includes("allow")&&o.includes("deny")&&!l,createdAt:a.createdAt})}),t}])}]);