@alook/app 0.0.66 → 0.0.67

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 (212) hide show
  1. package/bundled/email-worker/index.js +61 -3
  2. package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
  3. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  4. package/bundled/web/.open-next/assets/_next/static/chunks/{0tpd6xt1gehu_.js → 01-oixdvo.kcw.js} +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/085gv~jsjhgvo.js +3 -0
  6. package/bundled/web/.open-next/assets/_next/static/chunks/08rxpkmwrl28j.js +11 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{0679gx~uq.bij.js → 08vzc8ntbbjoe.js} +1 -1
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{0v_kij17znj0z.js → 0csp6ncjhvojv.js} +1 -1
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0fl4.konis554.js +1 -0
  10. package/bundled/web/.open-next/assets/_next/static/chunks/{002w8zenjl89m.js → 0fus_woghk6f3.js} +2 -2
  11. package/bundled/web/.open-next/assets/_next/static/chunks/{14y2chp3sz901.js → 0hck6xqic23u4.js} +1 -1
  12. package/bundled/web/.open-next/assets/_next/static/chunks/0lf.3fdr8qzrz.css +1 -0
  13. package/bundled/web/.open-next/assets/_next/static/chunks/{0b296.m-dcnud.js → 0qene6wqb57fm.js} +1 -1
  14. package/bundled/web/.open-next/assets/_next/static/chunks/{0cdxx_wwk.t_-.js → 0r3jwl2u7dg7i.js} +1 -1
  15. package/bundled/web/.open-next/assets/_next/static/chunks/0tuzi9u.le.uh.js +1 -0
  16. package/bundled/web/.open-next/assets/_next/static/chunks/0u1.3sr-iag4j.js +1 -0
  17. package/bundled/web/.open-next/assets/_next/static/chunks/182fqror32n8n.js +3 -0
  18. package/bundled/web/.open-next/assets/_next/static/chunks/{turbopack-07j-.0_n.qvdv.js → turbopack-0qm2.fmm~fnpy.js} +1 -1
  19. package/bundled/web/.open-next/cache/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/_global-error.cache +1 -1
  20. package/bundled/web/.open-next/cache/HY2XCNUoQZ4XCwXFRscuL/_not-found.cache +1 -0
  21. package/bundled/web/.open-next/cache/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/sitemap.xml.cache +1 -1
  22. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  23. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  24. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  25. package/bundled/web/.open-next/middleware/handler.mjs +7 -7
  26. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +1 -0
  28. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +7 -7
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +6 -0
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page.js +1 -1
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page.js +1 -1
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page.js +1 -1
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page.js +1 -1
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page.js +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page.js +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page.js +1 -1
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page.js +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page.js +1 -1
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page.js +1 -1
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/reorder/route.js +9 -0
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/reorder/route_client-reference-manifest.js +3 -0
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +2 -2
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page.js +2 -2
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page.js +1 -1
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page.js +1 -1
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +1 -0
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.b.vdv._.js +5 -5
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__04epc~l._.js +1 -1
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0rg.nbz._.js +8 -8
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0u8xtc8._.js +8 -8
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0uj53.o._.js +1 -1
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +22 -20
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0.j7.ev._.js +1 -1
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_01f~246._.js +1 -1
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_01g40-k._.js +1 -1
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_01o.o7x._.js +3 -0
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03fwsa7._.js +3 -3
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03hm4id._.js +1 -1
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_04nr-p-._.js +1 -1
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_068n18f._.js +1 -1
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_073gadx._.js +1 -1
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_098cv18._.js +1 -1
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09ighq8._.js +1 -1
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09ivzvb._.js +1 -1
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0_l2tiz._.js +1 -1
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0bn1-zq._.js +1 -1
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0c9~wb-._.js +1 -1
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0diexub._.js +1 -1
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0dj0g7~._.js +1 -1
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0dp6scf._.js +1 -1
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0fautln._.js +1 -1
  114. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g.4by4._.js +1 -1
  115. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0gp.qog._.js +1 -1
  116. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0gtp8_j._.js +1 -1
  117. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j2oflh._.js +1 -1
  118. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j8p1sv._.js +1 -1
  119. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jclrfw._.js +1 -1
  120. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0kc5u_2._.js +1 -1
  121. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0lnkeh5._.js +1 -1
  122. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0nan_-b._.js +1 -1
  123. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0orhr1f._.js +3 -3
  124. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0p7gyqx._.js +1 -1
  125. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0q89yyd._.js +1 -1
  126. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0qc2pnl._.js +1 -1
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +4 -4
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0rjukzr._.js +3 -3
  129. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r~740n._.js +1 -1
  130. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s84t43._.js +1 -1
  131. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s8cl~s._.js +1 -1
  132. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0wakwjq._.js +1 -1
  133. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0x9e38w._.js +1 -1
  134. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0yt-p.x._.js +1 -1
  135. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12etit8._.js +1 -1
  136. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12qurih._.js +1 -1
  137. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12vq9i7._.js +1 -1
  138. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_130oxgr._.js +1 -1
  139. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13g.-28._.js +1 -1
  140. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13pxn_t._.js +1 -1
  141. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0_r~pob._.js +1 -1
  142. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0b54k_v._.js +1 -1
  143. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +1 -1
  144. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0qxc5nu._.js +1 -1
  145. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0~i.bo1._.js +1 -1
  146. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web__next-internal_server_app_api_channels_reorder_route_actions_0rvpwk0.js +3 -0
  147. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{0b5f_next_0-68_1v._.js → 0b5f_next_06huxd3._.js} +2 -2
  148. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0ldbdqs._.js → 0b5f_next_dist_client_components_0oalj-h._.js} +2 -2
  149. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0.a2670._.js +13 -0
  150. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__00-llal._.js +3 -0
  151. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__09cst_7._.js +3 -0
  152. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0.-nacc._.js → [root-of-the-server]__0dbhd8o._.js} +1 -1
  153. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0xq2my8._.js +3 -0
  154. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +22 -20
  155. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0.8642u._.js +2 -2
  156. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0hthlqi._.js → _003cfvd._.js} +1 -1
  157. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_05wa4wr._.js +3 -0
  158. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_07nwbcz._.js +3 -0
  159. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09b8fgg._.js +3 -0
  160. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09n89mu._.js +3 -0
  161. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0dh_8a3._.js +2 -2
  162. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0fk~_zr._.js +3 -0
  163. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ilz5db._.js +1 -1
  164. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0ohl~vp._.js → _0nklr9-._.js} +3 -3
  165. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_007cfg.._.js → _0nqu5id._.js} +2 -2
  166. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0oxvrpl._.js +3 -0
  167. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0y4mw6p._.js → _0r0r3-c._.js} +1 -1
  168. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +1 -1
  169. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0uvfz-u._.js +3 -0
  170. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vv9cr4._.js +3 -0
  171. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_0qnznmz._.js +3 -0
  172. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  173. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_0uf2r1p._.js +1 -1
  174. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +7 -7
  175. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  176. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  177. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  178. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +105 -95
  179. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +424 -356
  180. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
  181. package/bundled/web/migrations/0029_channel_position.sql +7 -0
  182. package/bundled/ws-do/index.js +61 -3
  183. package/dist/cli/index.js +1 -0
  184. package/dist/cli/session-runner.js +12 -7
  185. package/dist/index.js +1 -0
  186. package/package.json +1 -1
  187. package/bundled/web/.open-next/assets/_next/static/chunks/02zfp_ou.ksfz.js +0 -3
  188. package/bundled/web/.open-next/assets/_next/static/chunks/037bobdy3gbd3.js +0 -1
  189. package/bundled/web/.open-next/assets/_next/static/chunks/0_ofb148utnjm.js +0 -3
  190. package/bundled/web/.open-next/assets/_next/static/chunks/0gd8byhyta7hd.css +0 -1
  191. package/bundled/web/.open-next/assets/_next/static/chunks/0okwpwx2mg9as.js +0 -1
  192. package/bundled/web/.open-next/assets/_next/static/chunks/0v.n7ut8tjpal.js +0 -1
  193. package/bundled/web/.open-next/assets/_next/static/chunks/0w9peuvrwol8r.js +0 -1
  194. package/bundled/web/.open-next/assets/_next/static/chunks/0y5ms.e3yai27.js +0 -1
  195. package/bundled/web/.open-next/cache/FHMg7Y3SKvukCWYg90U0U/_not-found.cache +0 -1
  196. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0b~_vv~._.js +0 -3
  197. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0n9v7ow._.js +0 -3
  198. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0ot7c-~._.js +0 -3
  199. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0tpn293._.js +0 -3
  200. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_013gub1._.js +0 -3
  201. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_05~tud1._.js +0 -3
  202. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0fh2xox._.js +0 -3
  203. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0gtp8r~._.js +0 -3
  204. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0h764fr._.js +0 -3
  205. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0my-bd8._.js +0 -3
  206. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0tng3.2._.js +0 -3
  207. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ul-7ek._.js +0 -3
  208. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_0pa7vde._.js +0 -3
  209. /package/bundled/web/.open-next/assets/_next/static/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/_buildManifest.js +0 -0
  210. /package/bundled/web/.open-next/assets/_next/static/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/_clientMiddlewareManifest.js +0 -0
  211. /package/bundled/web/.open-next/assets/_next/static/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/_ssgManifest.js +0 -0
  212. /package/bundled/web/.open-next/cache/{FHMg7Y3SKvukCWYg90U0U → HY2XCNUoQZ4XCwXFRscuL}/robots.txt.cache +0 -0
@@ -24681,6 +24681,7 @@ var init_schema = __esm({
24681
24681
  id: text("id").primaryKey().$defaultFn(() => "ch_" + nanoid()),
24682
24682
  workspaceId: text("workspace_id").notNull().references(() => workspace.id, { onDelete: "cascade" }),
24683
24683
  name: text("name").notNull(),
24684
+ position: integer2("position").notNull().default(0),
24684
24685
  createdAt: text("created_at").notNull().$defaultFn(() => (/* @__PURE__ */ new Date()).toISOString())
24685
24686
  },
24686
24687
  (t) => [
@@ -25260,6 +25261,8 @@ __export(agent_exports, {
25260
25261
  getAgent: () => getAgent,
25261
25262
  getAgentByHandle: () => getAgentByHandle,
25262
25263
  getAgentsByIds: () => getAgentsByIds,
25264
+ getAllAgentsForWorkspace: () => getAllAgentsForWorkspace,
25265
+ getAllHandlesForWorkspace: () => getAllHandlesForWorkspace,
25263
25266
  listAgents: () => listAgents,
25264
25267
  updateAgent: () => updateAgent,
25265
25268
  updateAgentStatus: () => updateAgentStatus
@@ -25338,6 +25341,12 @@ async function getAgentsByIds(db, ids, workspaceId) {
25338
25341
  if (ids.length === 0) return [];
25339
25342
  return db.select().from(agent).where(and(inArray(agent.id, ids), eq(agent.workspaceId, workspaceId)));
25340
25343
  }
25344
+ async function getAllAgentsForWorkspace(db, workspaceId) {
25345
+ return db.select().from(agent).where(eq(agent.workspaceId, workspaceId));
25346
+ }
25347
+ async function getAllHandlesForWorkspace(db, workspaceId) {
25348
+ return db.select({ id: agent.id, emailHandle: agent.emailHandle }).from(agent).where(eq(agent.workspaceId, workspaceId));
25349
+ }
25341
25350
  var init_agent = __esm({
25342
25351
  "../shared/src/db/queries/agent.ts"() {
25343
25352
  "use strict";
@@ -25354,6 +25363,8 @@ var init_agent = __esm({
25354
25363
  __name(updateAgentStatus, "updateAgentStatus");
25355
25364
  __name(getAgentByHandle, "getAgentByHandle");
25356
25365
  __name(getAgentsByIds, "getAgentsByIds");
25366
+ __name(getAllAgentsForWorkspace, "getAllAgentsForWorkspace");
25367
+ __name(getAllHandlesForWorkspace, "getAllHandlesForWorkspace");
25357
25368
  }
25358
25369
  });
25359
25370
 
@@ -27288,6 +27299,7 @@ var email_account_exports = {};
27288
27299
  __export(email_account_exports, {
27289
27300
  createEmailAccount: () => createEmailAccount,
27290
27301
  deleteEmailAccount: () => deleteEmailAccount,
27302
+ getAllEmailAccountsForWorkspace: () => getAllEmailAccountsForWorkspace,
27291
27303
  getEmailAccount: () => getEmailAccount,
27292
27304
  getEmailAccountById: () => getEmailAccountById,
27293
27305
  getEmailAccountScoped: () => getEmailAccountScoped,
@@ -27330,6 +27342,9 @@ async function getEmailAccountsByAgents(db, agentIds, workspaceId) {
27330
27342
  if (agentIds.length === 0) return [];
27331
27343
  return db.select().from(agentEmailAccount).where(and(inArray(agentEmailAccount.agentId, agentIds), eq(agentEmailAccount.workspaceId, workspaceId)));
27332
27344
  }
27345
+ async function getAllEmailAccountsForWorkspace(db, workspaceId) {
27346
+ return db.select().from(agentEmailAccount).where(eq(agentEmailAccount.workspaceId, workspaceId));
27347
+ }
27333
27348
  var init_email_account = __esm({
27334
27349
  "../shared/src/db/queries/email-account.ts"() {
27335
27350
  "use strict";
@@ -27346,6 +27361,7 @@ var init_email_account = __esm({
27346
27361
  __name(updateEmailAccount, "updateEmailAccount");
27347
27362
  __name(deleteEmailAccount, "deleteEmailAccount");
27348
27363
  __name(getEmailAccountsByAgents, "getEmailAccountsByAgents");
27364
+ __name(getAllEmailAccountsForWorkspace, "getAllEmailAccountsForWorkspace");
27349
27365
  }
27350
27366
  });
27351
27367
 
@@ -27806,17 +27822,21 @@ __export(channel_exports, {
27806
27822
  getChannelById: () => getChannelById,
27807
27823
  getChannelByName: () => getChannelByName,
27808
27824
  listChannels: () => listChannels,
27809
- renameChannel: () => renameChannel
27825
+ renameChannel: () => renameChannel,
27826
+ reorderChannels: () => reorderChannels
27810
27827
  });
27811
27828
  async function createChannel(db, data) {
27829
+ const [maxRow] = await db.select({ maxPos: sql`COALESCE(MAX(${channel2.position}), -1)` }).from(channel2).where(eq(channel2.workspaceId, data.workspaceId));
27830
+ const nextPos = (maxRow?.maxPos ?? -1) + 1;
27812
27831
  const rows = await db.insert(channel2).values({
27813
27832
  workspaceId: data.workspaceId,
27814
- name: data.name
27833
+ name: data.name,
27834
+ position: nextPos
27815
27835
  }).returning();
27816
27836
  return rows[0];
27817
27837
  }
27818
27838
  async function listChannels(db, workspaceId) {
27819
- return db.select().from(channel2).where(eq(channel2.workspaceId, workspaceId));
27839
+ return db.select().from(channel2).where(eq(channel2.workspaceId, workspaceId)).orderBy(asc(channel2.position));
27820
27840
  }
27821
27841
  async function getChannelByName(db, workspaceId, name) {
27822
27842
  const rows = await db.select().from(channel2).where(
@@ -27856,6 +27876,18 @@ async function renameChannel(db, id, workspaceId, newName) {
27856
27876
  ]);
27857
27877
  return { ...row, name: newName };
27858
27878
  }
27879
+ async function reorderChannels(db, workspaceId, orderedChannelIds) {
27880
+ await db.batch(
27881
+ orderedChannelIds.map(
27882
+ (id, i) => db.update(channel2).set({ position: i }).where(
27883
+ and(
27884
+ eq(channel2.id, id),
27885
+ eq(channel2.workspaceId, workspaceId)
27886
+ )
27887
+ )
27888
+ )
27889
+ );
27890
+ }
27859
27891
  var init_channel = __esm({
27860
27892
  "../shared/src/db/queries/channel.ts"() {
27861
27893
  "use strict";
@@ -27870,6 +27902,7 @@ var init_channel = __esm({
27870
27902
  __name(getChannelById, "getChannelById");
27871
27903
  __name(deleteChannel, "deleteChannel");
27872
27904
  __name(renameChannel, "renameChannel");
27905
+ __name(reorderChannels, "reorderChannels");
27873
27906
  }
27874
27907
  });
27875
27908
 
@@ -27979,6 +28012,7 @@ var init_conversation_map = __esm({
27979
28012
  var agent_link_exports = {};
27980
28013
  __export(agent_link_exports, {
27981
28014
  create: () => create,
28015
+ getAllColleaguesForWorkspace: () => getAllColleaguesForWorkspace,
27982
28016
  getColleaguesForAgent: () => getColleaguesForAgent,
27983
28017
  getColleaguesForAgents: () => getColleaguesForAgents,
27984
28018
  listByAgent: () => listByAgent,
@@ -28092,6 +28126,29 @@ async function getColleaguesForAgents(db, agentIds, workspaceId) {
28092
28126
  );
28093
28127
  return [...asSource, ...asTarget];
28094
28128
  }
28129
+ async function getAllColleaguesForWorkspace(db, workspaceId) {
28130
+ const asSource = await db.select({
28131
+ agentId: agentLink.sourceAgentId,
28132
+ name: agent.name,
28133
+ emailHandle: agent.emailHandle,
28134
+ description: agent.description,
28135
+ instruction: agentLink.instruction
28136
+ }).from(agentLink).innerJoin(
28137
+ agent,
28138
+ and(eq(agent.id, agentLink.targetAgentId), eq(agent.workspaceId, agentLink.workspaceId))
28139
+ ).where(eq(agentLink.workspaceId, workspaceId));
28140
+ const asTarget = await db.select({
28141
+ agentId: agentLink.targetAgentId,
28142
+ name: agent.name,
28143
+ emailHandle: agent.emailHandle,
28144
+ description: agent.description,
28145
+ instruction: agentLink.instruction
28146
+ }).from(agentLink).innerJoin(
28147
+ agent,
28148
+ and(eq(agent.id, agentLink.sourceAgentId), eq(agent.workspaceId, agentLink.workspaceId))
28149
+ ).where(eq(agentLink.workspaceId, workspaceId));
28150
+ return [...asSource, ...asTarget];
28151
+ }
28095
28152
  var init_agent_link = __esm({
28096
28153
  "../shared/src/db/queries/agent-link.ts"() {
28097
28154
  "use strict";
@@ -28107,6 +28164,7 @@ var init_agent_link = __esm({
28107
28164
  __name(remove, "remove");
28108
28165
  __name(getColleaguesForAgent, "getColleaguesForAgent");
28109
28166
  __name(getColleaguesForAgents, "getColleaguesForAgents");
28167
+ __name(getAllColleaguesForWorkspace, "getAllColleaguesForWorkspace");
28110
28168
  }
28111
28169
  });
28112
28170
 
@@ -156,7 +156,7 @@ var DOQueueHandler = class extends DurableObject {
156
156
  method: "HEAD",
157
157
  headers: {
158
158
  // This is defined during build
159
- "x-prerender-revalidate": "9f80fe1e013ce998cdea0d5997e773a5",
159
+ "x-prerender-revalidate": "96806647503d32d05587629d7264def4",
160
160
  "x-isr": "1"
161
161
  },
162
162
  // This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout`
@@ -180,7 +180,7 @@ var DOQueueHandler = class extends DurableObject {
180
180
  "INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)",
181
181
  // We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different.
182
182
  `${host}${url}`,
183
- "FHMg7Y3SKvukCWYg90U0U"
183
+ "HY2XCNUoQZ4XCwXFRscuL"
184
184
  );
185
185
  }
186
186
  this.routeInFailedState.delete(msg.MessageDeduplicationId);
@@ -232,7 +232,7 @@ var DOQueueHandler = class extends DurableObject {
232
232
  }
233
233
  this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState);
234
234
  if (!this.disableSQLite) {
235
- this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "FHMg7Y3SKvukCWYg90U0U");
235
+ this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "HY2XCNUoQZ4XCwXFRscuL");
236
236
  }
237
237
  await this.addAlarm();
238
238
  }
@@ -256,8 +256,8 @@ var DOQueueHandler = class extends DurableObject {
256
256
  return;
257
257
  this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)");
258
258
  this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)");
259
- this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "FHMg7Y3SKvukCWYg90U0U");
260
- this.sql.exec("DELETE FROM sync WHERE buildId != ?", "FHMg7Y3SKvukCWYg90U0U");
259
+ this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "HY2XCNUoQZ4XCwXFRscuL");
260
+ this.sql.exec("DELETE FROM sync WHERE buildId != ?", "HY2XCNUoQZ4XCwXFRscuL");
261
261
  const failedStateCursor = this.sql.exec("SELECT * FROM failed_state");
262
262
  for (const row of failedStateCursor) {
263
263
  this.routeInFailedState.set(row.id, JSON.parse(row.data));
@@ -1 +1 @@
1
- FHMg7Y3SKvukCWYg90U0U
1
+ HY2XCNUoQZ4XCwXFRscuL
@@ -56,4 +56,4 @@ ${this.parser.parse(e)}</blockquote>
56
56
  ${e}</tr>
57
57
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
58
58
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${es(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=ei(e);if(null===s)return n;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+es(t)+'"'),i+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=ei(e);if(null===s)return es(r);e=s;let i=`<img src="${e}" alt="${es(r)}"`;return t&&(i+=` title="${es(t)}"`),i+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:es(e.text)}},eu=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},eg=class e{options;renderer;textRenderer;constructor(e){this.options=e||r,this.options.renderer=this.options.renderer||new eh,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new eu}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let e=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==e||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(n.type)){t+=e||"";continue}}switch(n.type){case"space":t+=this.renderer.space(n);break;case"hr":t+=this.renderer.hr(n);break;case"heading":t+=this.renderer.heading(n);break;case"code":t+=this.renderer.code(n);break;case"table":t+=this.renderer.table(n);break;case"blockquote":t+=this.renderer.blockquote(n);break;case"list":t+=this.renderer.list(n);break;case"checkbox":t+=this.renderer.checkbox(n);break;case"html":t+=this.renderer.html(n);break;case"def":t+=this.renderer.def(n);break;case"paragraph":t+=this.renderer.paragraph(n);break;case"text":t+=this.renderer.text(n);break;default:{let e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){r+=e||"";continue}}switch(s.type){case"escape":case"text":r+=t.text(s);break;case"html":r+=t.html(s);break;case"link":r+=t.link(s);break;case"image":r+=t.image(s);break;case"checkbox":r+=t.checkbox(s);break;case"strong":r+=t.strong(s);break;case"em":r+=t.em(s);break;case"codespan":r+=t.codespan(s);break;case"br":r+=t.br(s);break;case"del":r+=t.del(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return r}},ed=class{options;block;constructor(e){this.options=e||r}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?ep.lex:ep.lexInline}provideParser(e=this.block){return e?eg.parse:eg.parseInline}},ek=new class{defaults=t();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=eg;Renderer=eh;TextRenderer=eu;Lexer=ep;Tokenizer=ec;Hooks=ed;constructor(...e){this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":for(let e of n.header)r=r.concat(this.walkTokens(e.tokens,t));for(let e of n.rows)for(let n of e)r=r.concat(this.walkTokens(n.tokens,t));break;case"list":r=r.concat(this.walkTokens(n.items,t));break;default:{let e=n;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(n=>{let s=e[n].flat(1/0);r=r.concat(this.walkTokens(s,t))}):e.tokens&&(r=r.concat(this.walkTokens(e.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let r={...e};if(r.async=this.defaults.async||r.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let r=t.renderers[e.name];r?t.renderers[e.name]=function(...t){let n=e.renderer.apply(this,t);return!1===n&&(n=r.apply(this,t)),n}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let r=t[e.level];r?r.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),r.extensions=t),e.renderer){let t=this.defaults.renderer||new eh(this.defaults);for(let r in e.renderer){if(!(r in t))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=e.renderer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r||""}}r.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new ec(this.defaults);for(let r in e.tokenizer){if(!(r in t))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=e.tokenizer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ed;for(let r in e.hooks){if(!(r in t))throw Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=e.hooks[r],s=t[r];ed.passThroughHooks.has(r)?t[r]=e=>{if(this.defaults.async&&ed.passThroughHooksRespectAsync.has(r))return(async()=>{let r=await n.call(t,e);return s.call(t,r)})();let i=n.call(t,e);return s.call(t,i)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let r=await n.apply(t,e);return!1===r&&(r=await s.apply(t,e)),r})();let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,n=e.walkTokens;r.walkTokens=function(e){let r=[];return r.push(n.call(this,e)),t&&(r=r.concat(t.call(this,e))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ep.lex(e,t??this.defaults)}parser(e,t){return eg.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},s={...this.defaults,...n},i=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===n.async)return i(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return i(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let r=s.hooks?await s.hooks.preprocess(t):t,n=await (s.hooks?await s.hooks.provideLexer(e):e?ep.lex:ep.lexInline)(r,s),i=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(i,s.walkTokens));let a=await (s.hooks?await s.hooks.provideParser(e):e?eg.parse:eg.parseInline)(i,s);return s.hooks?await s.hooks.postprocess(a):a})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let r=(s.hooks?s.hooks.provideLexer(e):e?ep.lex:ep.lexInline)(t,s);s.hooks&&(r=s.hooks.processAllTokens(r)),s.walkTokens&&this.walkTokens(r,s.walkTokens);let n=(s.hooks?s.hooks.provideParser(e):e?eg.parse:eg.parseInline)(r,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(e){return i(e)}}}onError(e,t){return r=>{if(r.message+=`
59
- Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+es(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}};function ef(e,t){return ek.parse(e,t)}ef.options=ef.setOptions=function(e){return ek.setOptions(e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.getDefaults=t,ef.defaults=r,ef.use=function(...e){return ek.use(...e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.walkTokens=function(e,t){return ek.walkTokens(e,t)},ef.parseInline=ek.parseInline,ef.Parser=eg,ef.parser=eg.parse,ef.Renderer=eh,ef.TextRenderer=eu,ef.Lexer=ep,ef.lexer=ep.lex,ef.Tokenizer=ec,ef.Hooks=ed,ef.parse=ef,ef.options,ef.setOptions,ef.use,ef.walkTokens,ef.parseInline,eg.parse,ep.lex,e.s(["Lexer",0,ep,"marked",0,ef])},500324,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n=(0,r.createContext)(null);e.s(["WorkspaceProvider",0,function({workspaceId:e,slug:s,children:i}){return(0,r.useEffect)(()=>{try{localStorage.setItem("lastWorkspace",s)}catch{}},[s]),(0,t.jsx)(n.Provider,{value:{workspaceId:e,slug:s},children:i})},"useWorkspace",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useWorkspace must be used within WorkspaceProvider");return e}])},222862,636557,e=>{"use strict";class t extends Error{status;details;constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.details=r}get isNetworkError(){return 0===this.status}get isRateLimit(){return 429===this.status}get isUnauthorized(){return 401===this.status}}function r(e,t){return"validation error"===e&&t?.length?function(e){let[t,...r]=e.split(":"),n=r.join(":").trim();if(!n)return e;let s=t.trim(),i=s.trim().replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),a=n.replace(/^required$/i,"is required"),l=a.toLowerCase().replace(/[_-]+/g," "),o=s.toLowerCase().replace(/[_-]+/g," ");return o&&l.startsWith(`${o} `)&&(a=a.slice(s.length).trimStart()),i?`${i} ${a}`:a}(t[0]):e}async function n(e,n){let s;try{s=await fetch(""+e,{...n,credentials:"include",headers:{"Content-Type":"application/json",...n?.headers}})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===s.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!s.ok){let e,n;try{let t=await s.json();e=t.error,n=t.details}catch{}if(429===s.status)throw new t("Please wait a moment before trying again",429);if(s.status>=500)throw new t(r(e,n)||"Something went wrong — please try again",s.status,n);throw new t(r(e,n)||"Something went wrong",s.status,n)}if(204!==s.status)return s.json()}function s(e,t){let r=new URLSearchParams({workspace_id:e,...t});return`?${r.toString()}`}e.s(["ApiError",0,t],636557);let i=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t("Please wait a moment before trying again",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},a=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t(e||"Maximum follow-ups reached",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},l=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/email/${e}/body?${r}`,{credentials:"include"});if(!n.ok)return{content:"(body not available)",isHtml:!1};let s=n.headers.get("Content-Type")??"";return{content:await n.text(),isHtml:s.includes("text/html")}},o=async(e,r)=>{let n=new FormData;n.append("file",e);let i=await fetch(`/api/email/upload${s(r)}`,{method:"POST",credentials:"include",body:n});if(!i.ok)throw new t(await i.text().catch(()=>"Upload failed"),i.status);return i.json()},c=async(e,r)=>{let i;if(!r.files||0===r.files.length)return n(`/api/issues${s(e)}`,{method:"POST",body:JSON.stringify({agent_id:r.agent_id,title:r.title,description:r.description})});let a=new FormData;for(let e of(r.agent_id&&a.append("agent_id",r.agent_id),a.append("title",r.title),a.append("description",r.description??""),r.files))a.append("file",e);try{i=await fetch(`/api/issues${s(e)}`,{method:"POST",credentials:"include",body:a})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===i.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!i.ok){let e,r;try{let t=await i.json();e=t.error,r=t.details}catch{}if(429===i.status)throw new t("Please wait a moment before trying again",429);if(i.status>=500)throw new t(e||"Something went wrong — please try again",i.status,r);throw new t(e||"Something went wrong",i.status,r)}return i.json()},p=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/artifacts/${e}/content?${r}`,{credentials:"include"});return n.ok?n.text():"(content not available)"};e.s(["acceptInvite",0,e=>n(`/api/invite/${e}`,{method:"POST"}),"addWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist${s(r)}`,{method:"POST",body:JSON.stringify({email:t})}),"approveMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/approve${s(r)}`,{method:"POST"}),"cancelActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`,{method:"DELETE"}),"chatInit",0,(e,t,r)=>n(`/api/agents/${e}/chat-init${s(t)}`,{method:"POST",body:JSON.stringify({...r?{channel:r}:{}})}),"createAgent",0,(e,t)=>n(`/api/agents${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createAgentLink",0,(e,t)=>n(`/api/agent-links${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createBufferedMessage",0,a,"createCalendarEvent",0,(e,t)=>n(`/api/calendar${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createChannelApi",0,(e,t)=>n(`/api/channels${s(e)}`,{method:"POST",body:JSON.stringify({name:t})}),"createConversation",0,(e,t,r)=>n(`/api/conversations${s(t)}`,{method:"POST",body:JSON.stringify({agent_id:e,...r?{channel:r}:{}})}),"createEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts${s(r)}`,{method:"POST",body:JSON.stringify(t)}),"createInvite",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`,{method:"POST"}),"createIssue",0,c,"createMachineToken",0,(e,t)=>n(`/api/machine-tokens${t?s(t):""}`,{method:"POST",body:JSON.stringify({name:e||"default"})}),"createMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings${s(t)}`,{method:"POST",body:JSON.stringify(r)}),"deleteAgent",0,(e,t)=>n(`/api/agents/${e}${s(t)}`,{method:"DELETE"}),"deleteAgentLink",0,(e,t)=>n(`/api/agent-links/${e}${s(t)}`,{method:"DELETE"}),"deleteBufferedMessage",0,(e,t,r)=>n(`/api/conversations/${e}/buffered-messages/${t}${s(r)}`,{method:"DELETE"}),"deleteCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(t)}`,{method:"DELETE",...r&&r.scope?{headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}:{}}),"deleteChannelApi",0,(e,t)=>n(`/api/channels/${e}${s(t)}`,{method:"DELETE"}),"deleteEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`,{method:"DELETE"}),"deleteEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}${s(r)}`,{method:"DELETE"}),"deleteIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`,{method:"DELETE"}),"deleteMachine",0,(e,t)=>n(`/api/runtimes/machine${s(t,{daemon_id:e})}`,{method:"DELETE"}),"deleteMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}${s(r)}`,{method:"DELETE"}),"deleteWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"DELETE",body:JSON.stringify({confirm_name:t})}),"fetchLatestCliVersion",0,()=>n("/api/cli/latest-version"),"fetchModelOptions",0,()=>n("/api/config/model-options"),"flagMessage",0,(e,t)=>n(`/api/flags${s(e)}`,{method:"POST",body:JSON.stringify({messageId:t})}),"getActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`),"getArtifactContent",0,p,"getConversation",0,(e,t)=>n(`/api/conversations/${e}${s(t)}`),"getEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`),"getEmailBody",0,l,"getEmailThread",0,(e,t)=>n(`/api/email/${e}/thread${s(t)}`),"getFlaggedCount",0,e=>n(`/api/flags/count${s(e)}`),"getInboxCount",0,(e,t)=>{let r={};return t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox/count${s(e,r)}`)},"getInviteInfo",0,e=>n(`/api/invite/${e}`),"getIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`),"getMemberMe",0,e=>n(`/api/members/me${s(e)}`),"getMinCliVersion",0,()=>n("/api/config/min-version"),"getTask",0,(e,t)=>n(`/api/tasks/${e}${s(t)}`),"getTaskMessages",0,(e,t,r)=>n(`/api/tasks/${e}/messages${s(t,r?{since:String(r)}:void 0)}`),"getTaskStepCounts",0,(e,t)=>n(`/api/tasks/step-counts${s(t)}`,{method:"POST",body:JSON.stringify({task_ids:e})}),"getTrace",0,(e,t)=>n(`/api/traces/${e}${s(t)}`),"getWorkspaceOverview",0,e=>n(`/api/workspaces/${e}/overview${s(e)}`),"grantAgentAccess",0,(e,t,r)=>n(`/api/agents/${t}/access${s(e)}`,{method:"POST",body:JSON.stringify({user_id:r})}),"listAgentAccess",0,(e,t)=>n(`/api/agents/${t}/access${s(e)}`),"listAgentActiveTaskCounts",0,e=>n(`/api/agents/active-task-counts${s(e)}`),"listAgentActivity",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),r?.status&&(i.status=r.status),r?.type&&(i.type=r.type),n(`/api/agents/${e}/activity${s(t,i)}`)},"listAgentLinks",0,e=>n(`/api/agent-links${s(e)}`),"listAgentPins",0,e=>n(`/api/agents/pins${s(e)}`),"listAgents",0,e=>n(`/api/agents${s(e)}`),"listArtifacts",0,(e,t)=>n(`/api/artifacts${s(t,{conversation_id:e})}`),"listBufferedMessages",0,(e,t)=>n(`/api/conversations/${e}/buffered-messages${s(t)}`),"listCalendarEvents",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.from&&(r.from=t.from),t?.to&&(r.to=t.to),n(`/api/calendar${s(e,r)}`)},"listChannels",0,e=>n(`/api/channels${s(e)}`),"listEmailAccounts",0,(e,t)=>n(`/api/agents/${e}/email-accounts${s(t)}`),"listEmails",0,(e,t,r,i)=>n(`/api/email${s(t,{agentId:e,...r?{folder:r}:{},...i?{address:i}:{}})}`),"listFlaggedItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),n(`/api/flags${s(e,r)}`)},"listFlaggedMessageIds",0,(e,t)=>n(`/api/flags${s(e,{conversation_id:t,ids_only:"true"})}`),"listInboxItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox${s(e,r)}`)},"listInvites",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`),"listIssues",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.status&&(r.status=t.status),t?.terminal!==void 0&&(r.terminal=String(t.terminal)),n(`/api/issues${s(e,r)}`)},"listMeetings",0,(e,t)=>n(`/api/agents/${e}/meetings${s(t)}`),"listMembers",0,e=>n(`/api/workspaces/${e}/members${s(e)}`),"listMessages",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),n(`/api/conversations/${e}/messages${s(t,i)}`)},"listMessagesAroundTask",0,(e,t,r)=>n(`/api/conversations/${e}/messages${s(t,{around_task:r})}`),"listPreviousConversations",0,(e,t,r)=>{let i={exclude:r.exclude,before:r.before};return r.channel&&(i.channel=r.channel),r.limit&&(i.limit=String(r.limit)),n(`/api/agents/${e}/conversations${s(t,i)}`)},"listRuntimes",0,e=>n(`/api/runtimes${s(e)}`),"listTraces",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.status&&(r.status=t.status),t?.multiAgent&&(r.multiAgent="true"),t?.agentId&&(r.agentId=t.agentId),t?.channel&&(r.channel=t.channel),n(`/api/traces${s(e,r)}`)},"listWhitelist",0,(e,t)=>n(`/api/agents/${e}/whitelist${s(t)}`),"listWorkspaceActiveTasks",0,e=>n(`/api/agents/active-tasks${s(e)}`),"listWorkspaces",0,()=>n("/api/workspaces"),"markAllInboxRead",0,e=>n(`/api/inbox/read-all${s(e)}`,{method:"POST"}),"markInboxRead",0,(e,t)=>n(`/api/inbox/read${s(t)}`,{method:"POST",body:JSON.stringify({conversationId:e})}),"pinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"POST"}),"removeMember",0,(e,t)=>n(`/api/workspaces/${e}/members/${t}${s(e)}`,{method:"DELETE"}),"removeWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist/${t}${s(r)}`,{method:"DELETE"}),"renameChannelApi",0,(e,t,r)=>n(`/api/channels/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({name:r})}),"reorderAgentPins",0,(e,t)=>n(`/api/agents/pins/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"reorderUnpinnedAgents",0,(e,t)=>n(`/api/agents/sidebar/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"requestWorkspaceBrowse",0,(e,t,r,i)=>n(`/api/agents/${e}/workspace/browse${s(t)}`,{method:"POST",body:JSON.stringify({request_type:r,path:i})}),"retryTask",0,(e,t)=>n(`/api/tasks/${e}/retry${s(t)}`,{method:"POST"}),"revokeAgentAccess",0,(e,t,r,i=!1)=>n(`/api/agents/${t}/access/${r}${s(e)}${i?"&remove_whitelist=true":""}`,{method:"DELETE"}),"revokeInvite",0,(e,t)=>n(`/api/workspaces/${e}/invites/${t}${s(e)}`,{method:"DELETE"}),"sendEmail",0,(e,t,r,i,a,l,o,c)=>n(`/api/email/send${s(a)}`,{method:"POST",body:JSON.stringify({agentId:e,to:t,subject:r,htmlBody:i,attachments:l,...o,customAccountId:c})}),"sendMessage",0,i,"stopMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/stop${s(r)}`,{method:"POST"}),"syncEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}/sync${s(r)}`,{method:"POST"}),"triggerRuntimeRescan",0,(e,t)=>n(`/api/runtimes/${e}/rescan${s(t)}`,{method:"POST"}),"triggerRuntimeUpdate",0,(e,t)=>n(`/api/runtimes/${e}/update${s(t)}`,{method:"POST"}),"unflagMessage",0,(e,t)=>n(`/api/flags/${t}${s(e)}`,{method:"DELETE"}),"unpinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"DELETE"}),"updateAgent",0,(e,t,r)=>n(`/api/agents/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateAgentLink",0,(e,t,r)=>n(`/api/agent-links/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateEmailStatus",0,(e,t,r)=>n(`/api/email/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({status:r})}),"updateIssue",0,(e,t,r)=>n(`/api/issues/${t}${s(e)}`,{method:"PATCH",body:JSON.stringify(r)}),"updateMemberMe",0,(e,t)=>n(`/api/members/me${s(e)}`,{method:"PATCH",body:JSON.stringify({global_instruction:t})}),"updateWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"PATCH",body:JSON.stringify(t)}),"uploadEmailAttachment",0,o],222862)},728886,e=>{"use strict";var t=e.i(368075),r=e.i(613349);e.s(["Skeleton",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...n})}])},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),s=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,a=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e){let t=(0,r.useRef)(null),l=(0,r.useRef)(i),o=(0,r.useRef)(e),c=(0,r.useRef)(null);(0,r.useEffect)(()=>{o.current=e},[e]);let p=(0,r.useRef)(null),h=(0,r.useCallback)(()=>{let e=Math.min(l.current,a);l.current=Math.min(2*e,a),c.current=setTimeout(()=>{p.current?.()},e+500*Math.random())},[]),u=(0,r.useCallback)(async()=>{let e,r,a,c=s;try{let t=await fetch("/api/ws/token");if(!t.ok){console.warn("[ws] token fetch failed:",t.status),h();return}let n=await t.json();e=n.userId,r=n.token,n.wsPort&&(c=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),h();return}let p=n?`ws://localhost:${c}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{a=new WebSocket(p)}catch(e){console.warn("[ws] WebSocket creation failed:",e),h();return}t.current=a,a.onopen=()=>{l.current=i,a.send(JSON.stringify({type:"auth",token:r}))},a.onmessage=e=>{try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;o.current(t)}catch{}},a.onerror=()=>{},a.onclose=()=>{a===t.current&&h()}},[h]);(0,r.useEffect)(()=>{p.current=u},[u]),(0,r.useEffect)(()=>(u(),()=>{null!==c.current&&(clearTimeout(c.current),c.current=null);let e=t.current;t.current=null,e?.close()}),[u])}])},355578,e=>{"use strict";var t=e.i(368075),r=e.i(298699),n=e.i(222862),s=e.i(880932),i=e.i(642342);let a=(0,r.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,r.useState)([]),[p,h]=(0,r.useState)([]),[u,g]=(0,r.useState)(!0),[d,k]=(0,r.useState)({}),[f,m]=(0,r.useState)([]),b=(0,r.useRef)(!1),[w,x]=(0,r.useState)([]),[$,y]=(0,r.useState)(new Map),[S,T]=(0,r.useState)(new Map),A=(0,r.useRef)(!1),E=(0,r.useRef)(new Set),R=(0,r.useRef)(!0),P=(0,r.useCallback)(e=>(E.current.add(e),()=>{E.current.delete(e)}),[]),v=(0,r.useRef)(!1),_=(0,r.useCallback)(async()=>{if(!v.current){v.current=!0;try{if(b.current){let t=await (0,n.listWorkspaceActiveTasks)(e);if(!R.current)return;m(t.tasks);let r={};for(let e of t.tasks)r[e.agent_id]=(r[e.agent_id]??0)+1;k(r),b.current=t.tasks.length>0}else{let t=await (0,n.listAgentActiveTaskCounts)(e);if(!R.current)return;if(k(t.counts),Object.values(t.counts).some(e=>e>0)){b.current=!0;let t=await (0,n.listWorkspaceActiveTasks)(e);R.current&&m(t.tasks)}else m([])}}catch{}finally{v.current=!1}}},[e]);(0,r.useEffect)(()=>{R.current=!0,_();let e=setInterval(_,5e3);return()=>{R.current=!1,clearInterval(e)}},[_]);let C=(0,r.useCallback)(async()=>{try{let[t,r,s,i]=await Promise.all([(0,n.listAgents)(e),(0,n.listRuntimes)(e),(0,n.listAgentPins)(e),(0,n.listAgentLinks)(e)]);c(t),h(r),x(i),y(new Map(s.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),T(new Map(s.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){s.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),A.current=!0}},[e]);(0,r.useEffect)(()=>{C()},[C]);let I=(0,r.useRef)(null),O=(0,r.useCallback)(()=>{I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null,C()},300)},[C]);(0,r.useEffect)(()=>()=>{I.current&&clearTimeout(I.current)},[]);let z=(0,r.useCallback)(t=>{for(let e of E.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;C();break;case"runtime.deleted":C();break;case"runtime.status":if(t.workspaceId!==e)break;O();break;case"task.updated":_()}},[C,O,_,e]);(0,i.useUserWs)(z);let L=(0,r.useCallback)(async t=>{try{let r=await (0,n.createAgent)(t,e);return await C(),r}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[C,e]),M=(0,r.useCallback)(async(t,r)=>{try{return await (0,n.updateAgent)(t,r,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[C,e]),N=(0,r.useCallback)(async t=>{try{return await (0,n.deleteAgent)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[C,e]),D=(0,r.useCallback)(async t=>{y(e=>{let r=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:r+1})});try{await (0,n.pinAgent)(e,t)}catch{y(e=>{let r=new Map(e);return r.delete(t),r}),s.toast.error("Failed to pin agent")}},[e]),B=(0,r.useCallback)(async t=>{let r;y(e=>{r=e.get(t);let n=new Map(e);return n.delete(t),n});try{await (0,n.unpinAgent)(e,t)}catch{void 0!==r&&y(e=>new Map(e).set(t,r)),s.toast.error("Failed to unpin agent")}},[e]),q=(0,r.useCallback)(async t=>{let r=new Map($);y(e=>{let r=new Map(e);return t.forEach((e,t)=>{let n=r.get(e);n&&r.set(e,{...n,position:t})}),r});try{await (0,n.reorderAgentPins)(e,t)}catch{y(r),s.toast.error("Failed to reorder pins")}},[e,$]),J=(0,r.useCallback)(async t=>{let r=new Map(S);T(new Map(t.map((e,t)=>[e,t])));try{await (0,n.reorderUnpinnedAgents)(e,t)}catch{T(r),s.toast.error("Failed to reorder agents")}},[e,S]),j=(0,r.useCallback)(()=>{let e=p.find(e=>"online"===e.status);return e?.id??""},[p]),U=(0,r.useCallback)(async()=>{try{return(await (0,n.createMachineToken)("cli",e)).token}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),W=(0,r.useCallback)(async t=>{try{return await (0,n.deleteMachine)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[C,e]);return(0,t.jsx)(a.Provider,{value:{workspaceId:e,agents:o,agentLinks:w,runtimes:p,loading:u,activeTaskCounts:d,activeTaskDetails:f,pins:$,reload:C,subscribeWs:P,handleCreateAgent:L,handleUpdateAgent:M,handleDeleteAgent:N,handlePinAgent:D,handleUnpinAgent:B,handleReorderPins:q,unpinnedOrder:S,handleReorderUnpinned:J,getFirstOnlineRuntimeId:j,handleGenerateToken:U,handleDeleteMachine:W},children:l})},"useAgentContext",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e}])}]);
59
+ Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+es(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}};function ef(e,t){return ek.parse(e,t)}ef.options=ef.setOptions=function(e){return ek.setOptions(e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.getDefaults=t,ef.defaults=r,ef.use=function(...e){return ek.use(...e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.walkTokens=function(e,t){return ek.walkTokens(e,t)},ef.parseInline=ek.parseInline,ef.Parser=eg,ef.parser=eg.parse,ef.Renderer=eh,ef.TextRenderer=eu,ef.Lexer=ep,ef.lexer=ep.lex,ef.Tokenizer=ec,ef.Hooks=ed,ef.parse=ef,ef.options,ef.setOptions,ef.use,ef.walkTokens,ef.parseInline,eg.parse,ep.lex,e.s(["Lexer",0,ep,"marked",0,ef])},500324,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n=(0,r.createContext)(null);e.s(["WorkspaceProvider",0,function({workspaceId:e,slug:s,children:i}){return(0,r.useEffect)(()=>{try{localStorage.setItem("lastWorkspace",s)}catch{}},[s]),(0,t.jsx)(n.Provider,{value:{workspaceId:e,slug:s},children:i})},"useWorkspace",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useWorkspace must be used within WorkspaceProvider");return e}])},222862,636557,e=>{"use strict";class t extends Error{status;details;constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.details=r}get isNetworkError(){return 0===this.status}get isRateLimit(){return 429===this.status}get isUnauthorized(){return 401===this.status}}function r(e,t){return"validation error"===e&&t?.length?function(e){let[t,...r]=e.split(":"),n=r.join(":").trim();if(!n)return e;let s=t.trim(),i=s.trim().replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),a=n.replace(/^required$/i,"is required"),l=a.toLowerCase().replace(/[_-]+/g," "),o=s.toLowerCase().replace(/[_-]+/g," ");return o&&l.startsWith(`${o} `)&&(a=a.slice(s.length).trimStart()),i?`${i} ${a}`:a}(t[0]):e}async function n(e,n){let s;try{s=await fetch(""+e,{...n,credentials:"include",headers:{"Content-Type":"application/json",...n?.headers}})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===s.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!s.ok){let e,n;try{let t=await s.json();e=t.error,n=t.details}catch{}if(429===s.status)throw new t("Please wait a moment before trying again",429);if(s.status>=500)throw new t(r(e,n)||"Something went wrong — please try again",s.status,n);throw new t(r(e,n)||"Something went wrong",s.status,n)}if(204!==s.status)return s.json()}function s(e,t){let r=new URLSearchParams({workspace_id:e,...t});return`?${r.toString()}`}e.s(["ApiError",0,t],636557);let i=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t("Please wait a moment before trying again",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},a=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t(e||"Maximum follow-ups reached",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},l=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/email/${e}/body?${r}`,{credentials:"include"});if(!n.ok)return{content:"(body not available)",isHtml:!1};let s=n.headers.get("Content-Type")??"";return{content:await n.text(),isHtml:s.includes("text/html")}},o=async(e,r)=>{let n=new FormData;n.append("file",e);let i=await fetch(`/api/email/upload${s(r)}`,{method:"POST",credentials:"include",body:n});if(!i.ok)throw new t(await i.text().catch(()=>"Upload failed"),i.status);return i.json()},c=async(e,r)=>{let i;if(!r.files||0===r.files.length)return n(`/api/issues${s(e)}`,{method:"POST",body:JSON.stringify({agent_id:r.agent_id,title:r.title,description:r.description})});let a=new FormData;for(let e of(r.agent_id&&a.append("agent_id",r.agent_id),a.append("title",r.title),a.append("description",r.description??""),r.files))a.append("file",e);try{i=await fetch(`/api/issues${s(e)}`,{method:"POST",credentials:"include",body:a})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===i.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!i.ok){let e,r;try{let t=await i.json();e=t.error,r=t.details}catch{}if(429===i.status)throw new t("Please wait a moment before trying again",429);if(i.status>=500)throw new t(e||"Something went wrong — please try again",i.status,r);throw new t(e||"Something went wrong",i.status,r)}return i.json()},p=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/artifacts/${e}/content?${r}`,{credentials:"include"});return n.ok?n.text():"(content not available)"};e.s(["acceptInvite",0,e=>n(`/api/invite/${e}`,{method:"POST"}),"addWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist${s(r)}`,{method:"POST",body:JSON.stringify({email:t})}),"approveMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/approve${s(r)}`,{method:"POST"}),"cancelActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`,{method:"DELETE"}),"chatInit",0,(e,t,r)=>n(`/api/agents/${e}/chat-init${s(t)}`,{method:"POST",body:JSON.stringify({...r?{channel:r}:{}})}),"createAgent",0,(e,t)=>n(`/api/agents${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createAgentLink",0,(e,t)=>n(`/api/agent-links${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createBufferedMessage",0,a,"createCalendarEvent",0,(e,t)=>n(`/api/calendar${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createChannelApi",0,(e,t)=>n(`/api/channels${s(e)}`,{method:"POST",body:JSON.stringify({name:t})}),"createConversation",0,(e,t,r)=>n(`/api/conversations${s(t)}`,{method:"POST",body:JSON.stringify({agent_id:e,...r?{channel:r}:{}})}),"createEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts${s(r)}`,{method:"POST",body:JSON.stringify(t)}),"createInvite",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`,{method:"POST"}),"createIssue",0,c,"createMachineToken",0,(e,t)=>n(`/api/machine-tokens${t?s(t):""}`,{method:"POST",body:JSON.stringify({name:e||"default"})}),"createMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings${s(t)}`,{method:"POST",body:JSON.stringify(r)}),"deleteAgent",0,(e,t)=>n(`/api/agents/${e}${s(t)}`,{method:"DELETE"}),"deleteAgentLink",0,(e,t)=>n(`/api/agent-links/${e}${s(t)}`,{method:"DELETE"}),"deleteBufferedMessage",0,(e,t,r)=>n(`/api/conversations/${e}/buffered-messages/${t}${s(r)}`,{method:"DELETE"}),"deleteCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(t)}`,{method:"DELETE",...r&&r.scope?{headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}:{}}),"deleteChannelApi",0,(e,t)=>n(`/api/channels/${e}${s(t)}`,{method:"DELETE"}),"deleteEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`,{method:"DELETE"}),"deleteEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}${s(r)}`,{method:"DELETE"}),"deleteIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`,{method:"DELETE"}),"deleteMachine",0,(e,t)=>n(`/api/runtimes/machine${s(t,{daemon_id:e})}`,{method:"DELETE"}),"deleteMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}${s(r)}`,{method:"DELETE"}),"deleteWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"DELETE",body:JSON.stringify({confirm_name:t})}),"fetchLatestCliVersion",0,()=>n("/api/cli/latest-version"),"fetchModelOptions",0,()=>n("/api/config/model-options"),"flagMessage",0,(e,t)=>n(`/api/flags${s(e)}`,{method:"POST",body:JSON.stringify({messageId:t})}),"getActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`),"getArtifactContent",0,p,"getConversation",0,(e,t)=>n(`/api/conversations/${e}${s(t)}`),"getEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`),"getEmailBody",0,l,"getEmailThread",0,(e,t)=>n(`/api/email/${e}/thread${s(t)}`),"getFlaggedCount",0,e=>n(`/api/flags/count${s(e)}`),"getInboxCount",0,(e,t)=>{let r={};return t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox/count${s(e,r)}`)},"getInviteInfo",0,e=>n(`/api/invite/${e}`),"getIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`),"getMemberMe",0,e=>n(`/api/members/me${s(e)}`),"getMinCliVersion",0,()=>n("/api/config/min-version"),"getTask",0,(e,t)=>n(`/api/tasks/${e}${s(t)}`),"getTaskMessages",0,(e,t,r)=>n(`/api/tasks/${e}/messages${s(t,r?{since:String(r)}:void 0)}`),"getTaskStepCounts",0,(e,t)=>n(`/api/tasks/step-counts${s(t)}`,{method:"POST",body:JSON.stringify({task_ids:e})}),"getTrace",0,(e,t)=>n(`/api/traces/${e}${s(t)}`),"getWorkspaceOverview",0,e=>n(`/api/workspaces/${e}/overview${s(e)}`),"grantAgentAccess",0,(e,t,r)=>n(`/api/agents/${t}/access${s(e)}`,{method:"POST",body:JSON.stringify({user_id:r})}),"listAgentAccess",0,(e,t)=>n(`/api/agents/${t}/access${s(e)}`),"listAgentActiveTaskCounts",0,e=>n(`/api/agents/active-task-counts${s(e)}`),"listAgentActivity",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),r?.status&&(i.status=r.status),r?.type&&(i.type=r.type),n(`/api/agents/${e}/activity${s(t,i)}`)},"listAgentLinks",0,e=>n(`/api/agent-links${s(e)}`),"listAgentPins",0,e=>n(`/api/agents/pins${s(e)}`),"listAgents",0,e=>n(`/api/agents${s(e)}`),"listArtifacts",0,(e,t)=>n(`/api/artifacts${s(t,{conversation_id:e})}`),"listBufferedMessages",0,(e,t)=>n(`/api/conversations/${e}/buffered-messages${s(t)}`),"listCalendarEvents",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.from&&(r.from=t.from),t?.to&&(r.to=t.to),n(`/api/calendar${s(e,r)}`)},"listChannels",0,e=>n(`/api/channels${s(e)}`),"listEmailAccounts",0,(e,t)=>n(`/api/agents/${e}/email-accounts${s(t)}`),"listEmails",0,(e,t,r,i)=>n(`/api/email${s(t,{agentId:e,...r?{folder:r}:{},...i?{address:i}:{}})}`),"listFlaggedItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),n(`/api/flags${s(e,r)}`)},"listFlaggedMessageIds",0,(e,t)=>n(`/api/flags${s(e,{conversation_id:t,ids_only:"true"})}`),"listInboxItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox${s(e,r)}`)},"listInvites",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`),"listIssues",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.status&&(r.status=t.status),t?.terminal!==void 0&&(r.terminal=String(t.terminal)),n(`/api/issues${s(e,r)}`)},"listMeetings",0,(e,t)=>n(`/api/agents/${e}/meetings${s(t)}`),"listMembers",0,e=>n(`/api/workspaces/${e}/members${s(e)}`),"listMessages",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),n(`/api/conversations/${e}/messages${s(t,i)}`)},"listMessagesAroundTask",0,(e,t,r)=>n(`/api/conversations/${e}/messages${s(t,{around_task:r})}`),"listPreviousConversations",0,(e,t,r)=>{let i={exclude:r.exclude,before:r.before};return r.channel&&(i.channel=r.channel),r.limit&&(i.limit=String(r.limit)),n(`/api/agents/${e}/conversations${s(t,i)}`)},"listRuntimes",0,e=>n(`/api/runtimes${s(e)}`),"listTraces",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.status&&(r.status=t.status),t?.multiAgent&&(r.multiAgent="true"),t?.agentId&&(r.agentId=t.agentId),t?.channel&&(r.channel=t.channel),n(`/api/traces${s(e,r)}`)},"listWhitelist",0,(e,t)=>n(`/api/agents/${e}/whitelist${s(t)}`),"listWorkspaceActiveTasks",0,e=>n(`/api/agents/active-tasks${s(e)}`),"listWorkspaces",0,()=>n("/api/workspaces"),"markAllInboxRead",0,e=>n(`/api/inbox/read-all${s(e)}`,{method:"POST"}),"markInboxRead",0,(e,t)=>n(`/api/inbox/read${s(t)}`,{method:"POST",body:JSON.stringify({conversationId:e})}),"pinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"POST"}),"removeMember",0,(e,t)=>n(`/api/workspaces/${e}/members/${t}${s(e)}`,{method:"DELETE"}),"removeWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist/${t}${s(r)}`,{method:"DELETE"}),"renameChannelApi",0,(e,t,r)=>n(`/api/channels/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({name:r})}),"reorderAgentPins",0,(e,t)=>n(`/api/agents/pins/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"reorderChannelsApi",0,(e,t)=>n(`/api/channels/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_channel_ids:t})}),"reorderUnpinnedAgents",0,(e,t)=>n(`/api/agents/sidebar/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"requestWorkspaceBrowse",0,(e,t,r,i)=>n(`/api/agents/${e}/workspace/browse${s(t)}`,{method:"POST",body:JSON.stringify({request_type:r,path:i})}),"retryTask",0,(e,t)=>n(`/api/tasks/${e}/retry${s(t)}`,{method:"POST"}),"revokeAgentAccess",0,(e,t,r,i=!1)=>n(`/api/agents/${t}/access/${r}${s(e)}${i?"&remove_whitelist=true":""}`,{method:"DELETE"}),"revokeInvite",0,(e,t)=>n(`/api/workspaces/${e}/invites/${t}${s(e)}`,{method:"DELETE"}),"sendEmail",0,(e,t,r,i,a,l,o,c)=>n(`/api/email/send${s(a)}`,{method:"POST",body:JSON.stringify({agentId:e,to:t,subject:r,htmlBody:i,attachments:l,...o,customAccountId:c})}),"sendMessage",0,i,"stopMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/stop${s(r)}`,{method:"POST"}),"syncEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}/sync${s(r)}`,{method:"POST"}),"triggerRuntimeRescan",0,(e,t)=>n(`/api/runtimes/${e}/rescan${s(t)}`,{method:"POST"}),"triggerRuntimeUpdate",0,(e,t)=>n(`/api/runtimes/${e}/update${s(t)}`,{method:"POST"}),"unflagMessage",0,(e,t)=>n(`/api/flags/${t}${s(e)}`,{method:"DELETE"}),"unpinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"DELETE"}),"updateAgent",0,(e,t,r)=>n(`/api/agents/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateAgentLink",0,(e,t,r)=>n(`/api/agent-links/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateEmailStatus",0,(e,t,r)=>n(`/api/email/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({status:r})}),"updateIssue",0,(e,t,r)=>n(`/api/issues/${t}${s(e)}`,{method:"PATCH",body:JSON.stringify(r)}),"updateMemberMe",0,(e,t)=>n(`/api/members/me${s(e)}`,{method:"PATCH",body:JSON.stringify({global_instruction:t})}),"updateWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"PATCH",body:JSON.stringify(t)}),"uploadEmailAttachment",0,o],222862)},728886,e=>{"use strict";var t=e.i(368075),r=e.i(613349);e.s(["Skeleton",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...n})}])},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),s=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,a=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e){let t=(0,r.useRef)(null),l=(0,r.useRef)(i),o=(0,r.useRef)(e),c=(0,r.useRef)(null);(0,r.useEffect)(()=>{o.current=e},[e]);let p=(0,r.useRef)(null),h=(0,r.useCallback)(()=>{let e=Math.min(l.current,a);l.current=Math.min(2*e,a),c.current=setTimeout(()=>{p.current?.()},e+500*Math.random())},[]),u=(0,r.useCallback)(async()=>{let e,r,a,c=s;try{let t=await fetch("/api/ws/token");if(!t.ok){console.warn("[ws] token fetch failed:",t.status),h();return}let n=await t.json();e=n.userId,r=n.token,n.wsPort&&(c=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),h();return}let p=n?`ws://localhost:${c}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{a=new WebSocket(p)}catch(e){console.warn("[ws] WebSocket creation failed:",e),h();return}t.current=a,a.onopen=()=>{l.current=i,a.send(JSON.stringify({type:"auth",token:r}))},a.onmessage=e=>{try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;o.current(t)}catch{}},a.onerror=()=>{},a.onclose=()=>{a===t.current&&h()}},[h]);(0,r.useEffect)(()=>{p.current=u},[u]),(0,r.useEffect)(()=>(u(),()=>{null!==c.current&&(clearTimeout(c.current),c.current=null);let e=t.current;t.current=null,e?.close()}),[u])}])},355578,e=>{"use strict";var t=e.i(368075),r=e.i(298699),n=e.i(222862),s=e.i(880932),i=e.i(642342);let a=(0,r.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,r.useState)([]),[p,h]=(0,r.useState)([]),[u,g]=(0,r.useState)(!0),[d,k]=(0,r.useState)({}),[f,m]=(0,r.useState)([]),b=(0,r.useRef)(!1),[w,x]=(0,r.useState)([]),[$,y]=(0,r.useState)(new Map),[S,T]=(0,r.useState)(new Map),A=(0,r.useRef)(!1),E=(0,r.useRef)(new Set),R=(0,r.useRef)(!0),P=(0,r.useCallback)(e=>(E.current.add(e),()=>{E.current.delete(e)}),[]),v=(0,r.useRef)(!1),_=(0,r.useCallback)(async()=>{if(!v.current){v.current=!0;try{if(b.current){let t=await (0,n.listWorkspaceActiveTasks)(e);if(!R.current)return;m(t.tasks);let r={};for(let e of t.tasks)r[e.agent_id]=(r[e.agent_id]??0)+1;k(r),b.current=t.tasks.length>0}else{let t=await (0,n.listAgentActiveTaskCounts)(e);if(!R.current)return;if(k(t.counts),Object.values(t.counts).some(e=>e>0)){b.current=!0;let t=await (0,n.listWorkspaceActiveTasks)(e);R.current&&m(t.tasks)}else m([])}}catch{}finally{v.current=!1}}},[e]);(0,r.useEffect)(()=>{R.current=!0,_();let e=setInterval(_,5e3);return()=>{R.current=!1,clearInterval(e)}},[_]);let C=(0,r.useCallback)(async()=>{try{let[t,r,s,i]=await Promise.all([(0,n.listAgents)(e),(0,n.listRuntimes)(e),(0,n.listAgentPins)(e),(0,n.listAgentLinks)(e)]);c(t),h(r),x(i),y(new Map(s.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),T(new Map(s.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){s.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),A.current=!0}},[e]);(0,r.useEffect)(()=>{C()},[C]);let I=(0,r.useRef)(null),O=(0,r.useCallback)(()=>{I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null,C()},300)},[C]);(0,r.useEffect)(()=>()=>{I.current&&clearTimeout(I.current)},[]);let z=(0,r.useCallback)(t=>{for(let e of E.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;C();break;case"runtime.deleted":C();break;case"runtime.status":if(t.workspaceId!==e)break;O();break;case"task.updated":_()}},[C,O,_,e]);(0,i.useUserWs)(z);let L=(0,r.useCallback)(async t=>{try{let r=await (0,n.createAgent)(t,e);return await C(),r}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[C,e]),M=(0,r.useCallback)(async(t,r)=>{try{return await (0,n.updateAgent)(t,r,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[C,e]),N=(0,r.useCallback)(async t=>{try{return await (0,n.deleteAgent)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[C,e]),D=(0,r.useCallback)(async t=>{y(e=>{let r=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:r+1})});try{await (0,n.pinAgent)(e,t)}catch{y(e=>{let r=new Map(e);return r.delete(t),r}),s.toast.error("Failed to pin agent")}},[e]),B=(0,r.useCallback)(async t=>{let r;y(e=>{r=e.get(t);let n=new Map(e);return n.delete(t),n});try{await (0,n.unpinAgent)(e,t)}catch{void 0!==r&&y(e=>new Map(e).set(t,r)),s.toast.error("Failed to unpin agent")}},[e]),q=(0,r.useCallback)(async t=>{let r=new Map($);y(e=>{let r=new Map(e);return t.forEach((e,t)=>{let n=r.get(e);n&&r.set(e,{...n,position:t})}),r});try{await (0,n.reorderAgentPins)(e,t)}catch{y(r),s.toast.error("Failed to reorder pins")}},[e,$]),J=(0,r.useCallback)(async t=>{let r=new Map(S);T(new Map(t.map((e,t)=>[e,t])));try{await (0,n.reorderUnpinnedAgents)(e,t)}catch{T(r),s.toast.error("Failed to reorder agents")}},[e,S]),j=(0,r.useCallback)(()=>{let e=p.find(e=>"online"===e.status);return e?.id??""},[p]),U=(0,r.useCallback)(async()=>{try{return(await (0,n.createMachineToken)("cli",e)).token}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),W=(0,r.useCallback)(async t=>{try{return await (0,n.deleteMachine)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[C,e]);return(0,t.jsx)(a.Provider,{value:{workspaceId:e,agents:o,agentLinks:w,runtimes:p,loading:u,activeTaskCounts:d,activeTaskDetails:f,pins:$,reload:C,subscribeWs:P,handleCreateAgent:L,handleUpdateAgent:M,handleDeleteAgent:N,handlePinAgent:D,handleUnpinAgent:B,handleReorderPins:q,unpinnedOrder:S,handleReorderUnpinned:J,getFirstOnlineRuntimeId:j,handleGenerateToken:U,handleDeleteMachine:W},children:l})},"useAgentContext",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e}])}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,875494,685835,e=>{"use strict";var t=e.i(368075),s=e.i(298699),a=e.i(222862),r=e.i(355578),n=e.i(500324),l=e.i(980630);let i="inbox-filter-types",o=["user_dm_message","calendar_event","email_notification"],c=["user_dm_message"],d=["user_dm_message"];function u(){try{let e=localStorage.getItem(i);if(!e)return c;let t=JSON.parse(e).filter(e=>o.includes(e));if(0===t.length)return c;for(let e of d)t.includes(e)||t.unshift(e);return t}catch{return c}}e.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,o,"MANDATORY_INBOX_TYPES",0,d,"getInboxFilterTypes",0,u,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of d)t.includes(e)||t.unshift(e);localStorage.setItem(i,JSON.stringify(t))}],685835);let m=(0,s.createContext)(null);e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:i}=(0,n.useWorkspace)(),{subscribeWs:o,agents:c}=(0,r.useAgentContext)(),[d,p]=(0,s.useState)(0),h=(0,s.useRef)(null),f=(0,s.useRef)(null),g=(0,s.useRef)(c);(0,s.useEffect)(()=>{g.current=c});let x=(0,s.useCallback)(()=>{let e=u();(0,a.getInboxCount)(i,{types:e}).then(e=>{let t=h.current;if(h.current=e.count,p(e.count),null!==t&&e.count>t){let e=f.current?g.current.find(e=>e.id===f.current):void 0;(0,l.sendTaskNotification)("completed",e?.name)}f.current=null}).catch(()=>{})},[i]),v=(0,s.useCallback)(()=>{p(e=>{let t=Math.max(0,e-1);return h.current=t,t})},[]);return(0,s.useEffect)(()=>{x()},[x]),(0,s.useEffect)(()=>o(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&(f.current=e.agentId,x())}),[o,x]),(0,s.useEffect)(()=>{let e=setInterval(x,3e4);return()=>clearInterval(e)},[x]),(0,t.jsx)(m.Provider,{value:{count:d,refresh:x,decrement:v},children:e})},"useInboxCount",0,function(){let e=(0,s.useContext)(m);if(!e)throw Error("useInboxCount must be used within InboxCountProvider");return e}],875494)},74348,e=>{"use strict";var t=e.i(368075),s=e.i(298699),a=e.i(222862),r=e.i(500324);let n=(0,s.createContext)(null);e.s(["FlagCountProvider",0,function({children:e}){let{workspaceId:l}=(0,r.useWorkspace)(),[i,o]=(0,s.useState)(0),c=(0,s.useCallback)(()=>{(0,a.getFlaggedCount)(l).then(e=>o(e.count)).catch(()=>{})},[l]),d=(0,s.useCallback)(()=>{o(e=>e+1)},[]),u=(0,s.useCallback)(()=>{o(e=>Math.max(0,e-1))},[]);return(0,s.useEffect)(()=>{c()},[c]),(0,t.jsx)(n.Provider,{value:{count:i,refresh:c,increment:d,decrement:u},children:e})},"useFlagCount",0,function(){let e=(0,s.useContext)(n);if(!e)throw Error("useFlagCount must be used within FlagCountProvider");return e}])},49879,618615,844010,e=>{"use strict";e.s(["AgentChatView",()=>eN,"getEventIconType",()=>ev],49879);var t=e.i(368075),s=e.i(298699),a=e.i(550008),r=e.i(208020),n=e.i(500324),l=e.i(186339),i=e.i(875061),o=e.i(613349),c=e.i(541544),d=e.i(64873),u=e.i(406963);let m=(0,u.default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);var p=e.i(108281),h=e.i(140483),f=e.i(371522);e.i(112946);var g=e.i(164300);function x(e){return e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}let v=new Set(["status","log"]);function j({item:e,isRunning:a,isLast:r}){let n=(0,s.useMemo)(()=>{if(!e.input)return null;try{return JSON.stringify(e.input,null,2)}catch{return String(e.input)}},[e.input]);return n?(0,t.jsxs)("details",{className:"group/tool",children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md cursor-pointer select-none","text-sm text-muted-foreground transition-colors duration-150","hover:bg-muted/60 hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/tool:rotate-90"}),(0,t.jsx)("span",{className:"font-medium text-foreground/80",children:x(e.tool)}),a&&r&&(0,t.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),a&&!r&&(0,t.jsx)(c.Check,{className:"ml-auto size-3 text-emerald-500"})]}),(0,t.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,t.jsx)("pre",{className:"task-stream-pre overflow-x-auto rounded-md bg-muted/40 p-2.5 font-mono text-xs leading-relaxed text-muted-foreground max-h-48 max-w-full min-w-0 overflow-y-auto",children:n})})]}):(0,t.jsxs)("div",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground"),children:[(0,t.jsx)("span",{className:"font-medium text-foreground/80",children:x(e.tool)}),a&&r&&(0,t.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),a&&!r&&(0,t.jsx)(c.Check,{className:"ml-auto size-3 text-emerald-500"})]})}function y({item:e}){return e.content?(0,t.jsxs)("details",{className:"group/think",children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md cursor-pointer select-none","text-sm text-muted-foreground/60 italic transition-colors duration-150","hover:bg-muted/60 hover:text-muted-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/40 transition-transform duration-150 group-open/think:rotate-90"}),(0,t.jsx)(m,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{children:"Thinking..."})]}),(0,t.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,t.jsx)("p",{className:"text-sm italic text-muted-foreground/60 whitespace-pre-wrap",children:e.content})})]}):(0,t.jsxs)("div",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground/60 italic"),children:[(0,t.jsx)(m,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{children:"Thinking..."})]})}function k({value:e}){let a=(0,s.useRef)(e),[r,n]=(0,s.useState)({current:e,previous:null}),[l,i]=(0,s.useState)("idle");return(0,s.useEffect)(()=>{if(e===a.current)return;let t=a.current;a.current=e,n({current:e,previous:t}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i("animating")})});let s=setTimeout(()=>{i("idle"),n(e=>({...e,previous:null}))},300);return()=>clearTimeout(s)},[e]),(0,t.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==r.previous&&(0,t.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===l?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==l)},children:r.previous}),(0,t.jsx)("span",{style:{display:"block",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==r.previous&&"animating"!==l?"translateY(100%)":"translateY(0)",opacity:+(null===r.previous||"animating"===l)},children:r.current})]})}function b({task:e,messages:a,connectionLost:r,onRetry:n,stepCountHint:l,onExpandSteps:c,stepsLoading:u}){let[m,x]=(0,s.useState)(!1),w=(0,s.useMemo)(()=>(function(e){let t=[],s=new Map;for(let a of e){if(v.has(a.type))continue;let e=a.id||`seq-${a.seq}`;switch(a.type){case"tool-use":{let r=a.call_id,n={kind:"tool-call",id:e,tool:a.tool,input:a.input};r&&s.set(r,n),t.push(n);break}case"tool-result":break;case"text":t.push({kind:"text",id:e,content:a.content});break;case"thinking":t.push({kind:"thinking",id:e,content:a.content});break;case"error":t.push({kind:"status",id:e,content:a.content||a.output,type:"error"})}}return t})(a),[a]),N="completed"!==e.status&&"failed"!==e.status&&"cancelled"!==e.status&&"superseded"!==e.status,C=w.filter(e=>"text"!==e.kind),S=w.filter(e=>"text"===e.kind),_=S.length>0?S[S.length-1]:null,T=(0,s.useRef)(null),M=(0,s.useRef)(null),I=(0,s.useRef)(!1);(0,s.useEffect)(()=>{N&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[C.length,N]),(0,s.useEffect)(()=>{N&&M.current&&(M.current.scrollTop=M.current.scrollHeight)},[S.length,N]);let A=N?S:S.slice(0,-1),z=!N&&null!==_,E=C.length>0?C.length:l??0,R=C.length>0||l&&l>0;return(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"running"===e.status?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):N?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[e.status,(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):(0,t.jsx)(i.Badge,{variant:"secondary",children:e.status})}),R&&(0,t.jsxs)("details",{className:"group/stream pl-1",onToggle:e=>{e.currentTarget.open&&!I.current&&c&&(I.current=!0,c())},children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:(0,o.cn)("size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/stream:rotate-90",N&&"animate-pulse text-primary")}),(0,t.jsxs)("span",{children:[(0,t.jsx)(k,{value:E})," ",1===E?"step":"steps"]})]}),(0,t.jsxs)("div",{ref:T,className:"mt-1 max-h-80 overflow-y-auto overflow-x-hidden thin-scrollbar space-y-0.5 pl-1",children:[u&&0===C.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,t.jsx)(f.Loader2,{className:"size-3 animate-spin"}),(0,t.jsx)("span",{children:"Loading steps..."})]}),C.map((e,s)=>{switch(e.kind){case"tool-call":return(0,t.jsx)(j,{item:e,isRunning:N,isLast:s===C.length-1},e.id);case"thinking":return(0,t.jsx)(y,{item:e},e.id);case"status":return(0,t.jsxs)("p",{className:"text-xs text-muted-foreground px-1 wrap-anywhere",children:["error"===e.type&&(0,t.jsx)(p.AlertCircle,{className:"inline size-3 mr-1 -mt-0.5 text-destructive"}),e.content]},e.id);default:return null}})]})]}),A.length>0&&(0,t.jsxs)("details",{className:"group/midtext pl-1",open:!z||void 0,children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,t.jsxs)("span",{children:[(0,t.jsx)(k,{value:A.length})," thinking"]})]}),(0,t.jsx)("div",{ref:M,className:"mt-1 space-y-2 pl-1",children:A.map(e=>(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-0.5 text-sm text-muted-foreground",children:(0,t.jsx)(g.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:e.content})},e.id))})]}),z&&!c&&(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(g.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:_.content})}),"failed"===e.status&&e.error&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(p.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.error})]}),n&&(0,t.jsxs)("button",{type:"button",onClick:async()=>{x(!0);try{await n()}finally{x(!1)}},disabled:m,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[m?(0,t.jsx)(f.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(h.RotateCw,{className:"size-3"}),"Retry"]})]}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var w=e.i(222862),N=e.i(355578),C=e.i(875494),S=e.i(74348),_=e.i(872937),T=e.i(880932),M=e.i(728886),I=e.i(329686),A=e.i(36303);let z=(0,u.default)("bed-double",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]),E=(0,u.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);var R=e.i(872057),F=e.i(6131);let P=(0,u.default)("message-square-quote",[["path",{d:"M14 14a2 2 0 0 0 2-2V8h-2",key:"1r06pg"}],["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M8 14a2 2 0 0 0 2-2V8H8",key:"1jzu5j"}]]),D=(0,u.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);var L=e.i(554468),q=e.i(745925),B=e.i(937091);function $(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function W({agent:e,isSelected:s,onSelect:a}){return(0,t.jsxs)("button",{type:"button","data-mention-item":!0,className:(0,o.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",s?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),a(e)},children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),e.email_handle&&(0,t.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[e.email_handle,"@alook.ai"]})]})}function H({isOpen:e,relatedAgents:a,otherAgents:r,selectedIndex:n,onSelect:l,anchorPos:i}){let o=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!o.current)return;let e=o.current.querySelectorAll("[data-mention-item]")[n];e?.scrollIntoView({block:"nearest"})},[n]);let c=a.length+r.length;if(!e||0===c)return null;let d=a.length>0&&r.length>0;return(0,t.jsx)("div",{className:"absolute z-50 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:i.top-4,left:i.left,transform:"translateY(-100%)"},children:(0,t.jsxs)("div",{ref:o,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:[a.map((e,s)=>(0,t.jsx)(W,{agent:e,isSelected:s===n,onSelect:l},e.id)),d&&(0,t.jsx)("div",{className:"mx-3 my-1 border-t border-border"}),r.map((e,s)=>(0,t.jsx)(W,{agent:e,isSelected:a.length+s===n,onSelect:l},e.id))]})})}function O(e,t){if(t>=e.length)return!0;let s=e.charCodeAt(t);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}function V(e,t){if(!e||0===t.length||!e.includes("@"))return e;let s=t.slice().sort((e,t)=>t.name.length-e.name.length),a=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let s=e.charCodeAt(t-1);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}(e,t))continue;let r=t+1;for(let n of s){let s=r+n.name.length;if(s>e.length||e.slice(r,s).toLowerCase()!==n.name.toLowerCase())continue;let l=s,i=e.slice(s).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(i&&(l=s+i[0].length),(i||O(e,s))&&(!i||O(e,l))){if(a.some(e=>t>=e.start&&t<e.end))break;a.push({start:t,end:s,name:n.name,agentId:n.id});break}}}let r=e;for(let e=a.length-1;e>=0;e--){let t=a[e],s=r.slice(t.start,t.end);r=r.slice(0,t.start)+`<mention data-agent-id="${t.agentId}">${s}</mention>`+r.slice(t.end)}return r}var U=e.i(721387),Y=e.i(332680),X=e.i(940931);function K({open:e,onOpenChange:a,emailId:r,workspaceId:n}){let[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(null),[u,m]=(0,s.useState)(!1),[p,h]=(0,s.useState)(500),g=(0,s.useRef)(!1),x=(0,s.useRef)(a);(0,s.useEffect)(()=>{x.current=a}),(0,s.useEffect)(()=>{e&&r&&(m(!0),o(null),d(null),Promise.all([(0,w.getEmail)(r,n),(0,w.getEmailBody)(r,n)]).then(([e,t])=>{o(e),d(t)}).catch(()=>{T.toast.error("Email not found"),x.current(!1)}).finally(()=>m(!1)))},[e,r,n]);let v=e=>{a(e),e||setTimeout(()=>{o(null),d(null)},300)},j=(0,s.useCallback)(e=>{e.preventDefault(),g.current=!0,e.target.setPointerCapture(e.pointerId)},[]),y=(0,s.useCallback)(e=>{g.current&&h(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),k=(0,s.useCallback)(()=>{g.current=!1},[]);return(0,t.jsx)(Y.Sheet,{open:e,onOpenChange:v,children:(0,t.jsxs)(Y.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${p}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)("div",{onPointerDown:j,onPointerMove:y,onPointerUp:k,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),(0,t.jsx)(Y.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(F.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(Y.SheetTitle,{className:"truncate flex-1",children:u?"Loading...":i?.subject||"Email"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>v(!1),children:(0,t.jsx)(B.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(Y.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:u?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(f.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):i?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,t.jsx)("span",{className:"truncate",children:i.from_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,t.jsx)("span",{className:"truncate",children:i.to_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,t.jsx)("span",{children:new Date(i.created_at).toLocaleString()})]})]}),c?.isHtml?(0,t.jsx)(X.EmailBodyFrame,{html:c.content,className:"max-w-full"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:c?.content}),i.attachments&&i.attachments.length>0&&(0,t.jsxs)("div",{className:"border-t pt-3",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground mb-2",children:[i.attachments.length," attachment",i.attachments.length>1?"s":""]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:i.attachments.map(e=>(0,t.jsx)("span",{className:"inline-flex items-center gap-1 text-xs bg-muted rounded px-2 py-1",children:e.filename},e.key))})]})]}):null})]})})}var J=e.i(169678),Z=e.i(364079);function Q({bufferedMessages:e,onDelete:a}){let[r,n]=(0,s.useState)(!1),l=e.length;if(0===l)return null;let i=Math.min(l,3);return(0,t.jsx)("div",{className:"relative px-5 pb-1",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,t.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:r?32*l+(l-1)*4:32+(i-1)*6},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[e.map((e,s)=>{var n;let c=l-1-s,d=s>=l-i;return(0,t.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:s+1,bottom:r?36*c:d?6*c:0,transform:r?"scale(1)":`scale(${d?1-.03*c:.91})`,opacity:r?1:d?1-.2*c:0,pointerEvents:r||d?"auto":"none"},children:(0,t.jsxs)("div",{className:"h-full rounded-lg border bg-background/95 backdrop-blur-sm shadow-sm flex items-center gap-2 px-3",children:[(0,t.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:s+1}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(n=e.content).length<=80?n:n.slice(0,80).trimEnd()+"…"}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,t.jsx)(L.Paperclip,{className:"size-2.5"}),e.attachment_ids.length]})]}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e.id)},className:(0,o.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",r?"opacity-100":"opacity-0"),tabIndex:r?0:-1,children:(0,t.jsx)(B.X,{className:"size-3"})})]})},e.id)}),!r&&l>i&&(0,t.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",l-i," more"]})]})})})}var G=e.i(219658);let ee={id:"",agent_id:"",runtime_id:"",conversation_id:"",workspace_id:"",prompt:"",status:"completed",priority:0,dispatched_at:null,started_at:null,completed_at:null,result:null,error:null,created_at:"",type:""};function et({taskId:e,stepCount:a,workspaceId:r}){let[n,l]=(0,s.useState)([]),[i,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{if(!c&&!i){o(!0);try{let t=await (0,w.getTaskMessages)(e,r);l(t)}catch{l([])}finally{o(!1),d(!0)}}},[c,i,e,r]);return(0,s.useEffect)(()=>{u()},[]),(0,t.jsx)(b,{task:ee,messages:n,stepCountHint:a,onExpandSteps:u,stepsLoading:i})}let es=(0,u.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);var ea=e.i(251638);let er=(0,u.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);e.s(["Flag",0,er],618615);var en=e.i(89440);let el={mention:["data-agent-id"]},ei=["mention"];function eo({content:e,conversationType:s}){let a=ev(e,s),r="h-4 w-4 mt-0.5 shrink-0";return"issue"===a?(0,t.jsx)(ea.CircleDot,{className:r}):"email"===a?(0,t.jsx)(F.Mail,{className:r}):(0,t.jsx)(es,{className:r})}function ec({attachmentIds:e,artifacts:s,onArtifactClick:a}){let r=e.map(e=>s.find(t=>t.id===e)).filter(e=>!!e);return 0===r.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:r.map(e=>(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,t.jsx)(R.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function ed({pendingFiles:e,messageId:s}){let a=e.get(s);return a&&0!==a.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:a.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,t.jsx)(R.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let eu=(0,s.memo)(function({msg:e,agents:a,artifacts:r,activeTask:n,taskMessages:i,connectionLost:d,isLastMessage:u,stepCount:m,targetConvId:p,workspaceId:h,conversationType:f,pendingFilesByMessage:x,onArtifactClick:v,onEmailClick:j,onIssueClick:y,onRetry:k,mentionComponents:w,isFlagged:N,onToggleFlag:C}){let S,_,M,[A,z]=(0,s.useState)(!1),E=n&&"assistant"===e.role&&e.task_id===n.id&&e.conversation_id===n.conversation_id&&i.length>0,R=!E&&p&&"assistant"===e.role&&e.task_id&&m>0?m:0,F=E&&n&&["completed","failed","cancelled","superseded"].includes(n.status),P="assistant"===e.role?(0,t.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs","aria-label":A?"Copied":"Copy message",onClick:async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e.content),z(!0),T.toast.success("Copied to clipboard"),setTimeout(()=>z(!1),2e3)}catch{T.toast.error("Failed to copy")}},className:(0,o.cn)("self-start mb-1",A?"text-green-500 opacity-100":"text-muted-foreground opacity-0 group-hover/msg:opacity-100")}),children:A?(0,t.jsx)(c.Check,{className:"size-3.5"}):(0,t.jsx)(en.Copy,{className:"size-3.5"})}),(0,t.jsx)(I.TooltipContent,{children:A?"Copied":"Copy"})]}),C&&(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs",onClick:()=>C(e.id),className:(0,o.cn)("self-start mb-1",N?"text-primary opacity-100":"text-muted-foreground opacity-0 group-hover/msg:opacity-100")}),children:(0,t.jsx)(er,{className:(0,o.cn)("size-3.5",N&&"fill-current")})}),(0,t.jsx)(I.TooltipContent,{children:N?"Unflag":"Flag"})]})]}):null;return(0,t.jsxs)(s.default.Fragment,{children:[E&&(0,t.jsxs)("div",{className:(0,o.cn)("group/msg",N&&"bg-muted/30 rounded-lg px-2 -mx-2"),children:[(0,t.jsx)(b,{task:n,messages:i,connectionLost:d,onRetry:k}),F&&P]}),R>0&&e.task_id&&(0,t.jsx)(et,{taskId:e.task_id,stepCount:R,workspaceId:h}),"user"===e.role?(S=u&&!!n&&"running"!==n.status&&!["completed","failed","cancelled","superseded"].includes(n.status),(0,t.jsx)("div",{className:"flex justify-end","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("max-w-[80%] rounded-lg px-4 py-2 bg-primary text-primary-foreground text-base relative"),children:[S&&(0,t.jsx)("div",{className:"absolute inset-0 rounded-lg animate-pulse pointer-events-none",style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(g.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:el,literalTagContent:ei,components:w,children:V(e.content,a)})}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsx)(ec,{attachmentIds:e.attachment_ids,artifacts:r,onArtifactClick:v}),!e.attachment_ids&&(0,t.jsx)(ed,{pendingFiles:x,messageId:e.id})]})})):"event"===e.role?(_=e.metadata?.emailId,M=e.metadata?.issueId,(0,t.jsx)("div",{className:"flex justify-start","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!_||!!M)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:_?()=>j(_):M?()=>y(M):void 0,children:[(0,t.jsx)(eo,{content:e.content,conversationType:f}),(0,t.jsx)("span",{className:"min-w-0 wrap-anywhere",children:e.content})]})})):E?null:(0,t.jsxs)("div",{className:(0,o.cn)("group/msg flex flex-col justify-start min-w-0 overflow-hidden",N&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":e.id,"data-quote-source":!0,...e.task_id?{"data-task-id":e.task_id}:{},children:[(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(g.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:el,literalTagContent:ei,components:w,children:V(e.content,a)})}),P]})]})});e.i(400175);var em=e.i(819748),ep=e.i(126366),eh=e.i(309475);function ef({agent:e,isOnline:a,activeTaskCount:r,variant:n="default",isHovered:l}){let[i,d]=(0,s.useState)(!1),u=e.email_handle?`${e.email_handle}@alook.ai`:null,m=(0,s.useCallback)(async()=>{if(u)try{await navigator.clipboard.writeText(u),d(!0),T.toast.success("Email copied to clipboard"),setTimeout(()=>d(!1),2e3)}catch{T.toast.error("Failed to copy email")}},[u]);if("compact"===n){let s;return(0,t.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(s=(0,ep.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(em.AnimatedAvatar,{config:s,size:32,className:"shrink-0 rounded-xl",isHovered:l??!1,isWorking:!!a&&(r??0)>0}):(0,t.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:e.name}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:u})]}),void 0!==a&&(0,t.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,t.jsx)(eh.AgentStatusBadge,{isOnline:a,taskCount:r??0,agentId:e.id})})]})]})}return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e.name}),(0,t.jsx)("span",{className:"flex-1"}),void 0!==a&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full",a?"bg-status-online":"bg-status-offline")}),a?(r??0)>0?"Working":null:"Offline"]})]}),u&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:u}),(0,t.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),m()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:i?(0,t.jsx)(c.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(en.Copy,{className:"size-3"})})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:e.description})]})}e.s(["AgentPreviewCard",0,ef],844010);var eg=e.i(224950);let ex={mention:function(e){let{children:s,...a}=e,{agents:r}=(0,N.useAgentContext)(),n=a["data-agent-id"]??a.dataAgentId,l=n?r.find(e=>e.id===n):void 0;if(!l&&"string"==typeof s){let e=s.startsWith("@")?s.slice(1):s;l=r.find(t=>t.name.toLowerCase()===e.toLowerCase())}return l?(0,t.jsxs)(eg.Popover,{children:[(0,t.jsx)(eg.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(eg.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(ef,{agent:l})})]}):(0,t.jsx)("span",{className:"mention-highlight",children:s})},p:({children:e,node:s,...a})=>(0,t.jsx)("div",{"data-md-p":"",...a,children:e})};function ev(e,t){if("issue_event"===t)return"issue";if("email_notification"===t)return"email";if("calendar_event"===t)return"calendar";let s=e.toLowerCase();return s.startsWith("issue ")||s.startsWith("issue:")?"issue":s.includes("email")?"email":"calendar"}function ej(e,t){let s=new Map;for(let t of e)s.set(t.id,t);for(let e of t)s.set(e.id,e);return[...s.values()].slice().sort((e,t)=>{let s=e.created_at.localeCompare(t.created_at);return 0!==s?s:e.id.localeCompare(t.id)})}function ey(e){let t=[],s=[],a=!1;for(let r of e)"message"===r.kind&&"user"===r.data.role?(a=!0,t.push(r)):"message"===r.kind&&"assistant"===r.data.role?(t.push(r),t.push(...s),s=[],a=!1):a&&"artifact"===r.kind?s.push(r):t.push(r);return t.push(...s),t}function ek(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}function eb({agentName:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[e," took a nap 💤"]}),(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function ew({artifact:e,version:s,hasDuplicates:a,onClick:r}){return(0,t.jsxs)("button",{onClick:()=>r(e),className:(0,o.cn)("flex items-center gap-3 w-full max-w-sm rounded-lg border border-border/60 bg-muted/30","px-3.5 py-2.5 text-left transition-colors duration-150","hover:bg-muted/60 hover:border-border"),children:[(0,t.jsx)(R.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-medium truncate",children:[e.filename,a&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",s]})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,U.formatSize)(e.size)})]})]})}function eN({agentId:e,targetConvId:i,scrollToTaskId:c,scrollToMessageId:d}){let u,m,p,h=(0,r.useParams)(),g=(0,r.useSearchParams)(),{workspaceId:x,slug:v}=(0,n.useWorkspace)(),{agents:j,agentLinks:y,activeTaskCounts:k,subscribeWs:W}=(0,N.useAgentContext)(),{refresh:O}=(0,C.useInboxCount)(),{activeChannel:Y,loading:X,setAgentId:ee}=(0,_.useChannel)(),et=e??h.id,es=void 0!==c?c:g.get("task"),ea=void 0!==d?d:g.get("msg"),er=void 0!==i?i:g.get("conv"),[en,el]=(0,s.useState)(null),[ei,eo]=(0,s.useState)([]),[ec,ed]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${et}:${er??"default"}`)??""),[em,ep]=(0,s.useState)(!1),[eh,ef]=(0,s.useState)(!1),[eg,ev]=(0,s.useState)(null),[eC,eS]=(0,s.useState)([]),[e_,eT]=(0,s.useState)(!0),[eM,eI]=(0,s.useState)(!1),[eA,ez]=(0,s.useState)(!1),[eE,eR]=(0,s.useState)(!1),[eF,eP]=(0,s.useState)([]),[eD,eL]=(0,s.useState)(!1),[eq,eB]=(0,s.useState)(null),[e$,eW]=(0,s.useState)(null),[eH,eO]=(0,s.useState)(!1),[eV,eU]=(0,s.useState)(null),[eY,eX]=(0,s.useState)(!1),[eK,eJ]=(0,s.useState)(null),[eZ,eQ]=(0,s.useState)(null),[eG,e0]=(0,s.useState)(!1),[e1,e2]=(0,s.useState)(null),[e5,e3]=(0,s.useState)(null),[e4,e6]=(0,s.useState)(448),[e8,e7]=(0,s.useState)([]),[e9,te]=(0,s.useState)([]),[tt,ts]=(0,s.useState)(null),[ta,tr]=(0,s.useState)([]),[tn,tl]=(0,s.useState)(!1),[ti,to]=(0,s.useState)([]),[tc,td]=(0,s.useState)({}),[tu]=(0,s.useState)(()=>Date.now()),[tm,tp]=(0,s.useState)(()=>new Map),[th,tf]=(0,s.useState)(null),[tg,tx]=(0,s.useState)(null),[tv,tj]=(0,s.useState)(new Set),ty=(0,s.useRef)(tv);(0,s.useEffect)(()=>{ty.current=tv});let{increment:tk,decrement:tb}=(0,S.useFlagCount)();(0,s.useEffect)(()=>{ee(et)},[et,ee]);let{listening:tw,supported:tN,toggle:tC}=function(e){let[t,a]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1),l=(0,s.useRef)(null);(0,s.useEffect)(()=>{n(!!$())},[]);let i=(0,s.useCallback)(()=>{let t=$();if(!t)return;let s=new t;s.lang=navigator.language||"zh-CN",s.interimResults=!1,s.continuous=!1,s.onresult=t=>{let s=t.results,a="";for(let e=0;e<s.length;e++)a+=s[e][0].transcript;a&&e(a)},s.onend=()=>{a(!1),l.current=null},s.onerror=()=>{a(!1),l.current=null},l.current=s,s.start(),a(!0)},[e]),o=(0,s.useCallback)(()=>{l.current?.stop()},[]),c=(0,s.useCallback)(()=>{t?o():i()},[t,i,o]);return(0,s.useEffect)(()=>()=>{l.current?.abort()},[]),{listening:t,supported:r,toggle:c}}((0,s.useCallback)(e=>{ed(t=>t?t+" "+e:e)},[])),tS=(0,s.useMemo)(()=>eF.filter(e=>"agent"===e.source),[eF]),{versionMap:t_,duplicateFilenames:tT}=(0,s.useMemo)(()=>(0,Z.computeArtifactVersions)(tS),[tS]),tM=(0,s.useMemo)(()=>"agent"===e$?tS:"issue"===e$?eZ?.artifacts??[]:[],[e$,tS,eZ?.artifacts]),{versionMap:tI,duplicateFilenames:tA}=(0,s.useMemo)(()=>(0,Z.computeArtifactVersions)(tM),[tM]),tz=(0,s.useMemo)(()=>(function(e,t,s,a){if(!a||0===s.length){let a=[...e.map(e=>({kind:"message",data:e})),...t.map(e=>({kind:"artifact",data:e})),...s.map(e=>({kind:"nap",data:e}))];return a.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);if(0!==s)return s;if("nap"===e.kind||"nap"===t.kind){if("nap"===e.kind&&"nap"!==t.kind)return 1;if("nap"!==e.kind&&"nap"===t.kind)return -1}return e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)}),ey(a)}let r=new Set(s.map(e=>e.id.replace(/^nap-/,""))),n=[...s].sort((e,t)=>e.created_at.localeCompare(t.created_at)),l=s=>ey([...e.filter(e=>e.conversation_id===s).map(e=>({kind:"message",data:e})),...t.filter(e=>e.conversation_id===s).map(e=>({kind:"artifact",data:e}))].sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)})),i=[];for(let e of n){let t=e.id.replace(/^nap-/,"");i.push(...l(t)),i.push({kind:"nap",data:e})}i.push(...l(a));let o=new Set([...r,a]),c=e.filter(e=>!o.has(e.conversation_id)),d=t.filter(e=>!o.has(e.conversation_id));if(c.length>0||d.length>0){let e=[...c.map(e=>({kind:"message",data:e})),...d.map(e=>({kind:"artifact",data:e}))];e.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)});let t=ey(e),s=i.findIndex(e=>"nap"===e.kind);s>=0?i.splice(s,0,...t):i.push(...t)}return i})(ei,tS,ti,en?.id),[ei,tS,ti,en?.id]),tE=(0,s.useCallback)(e=>{(0,Z.isPreviewable)(e)?(eB(e),eW("agent"),eL(!0)):window.open((0,Z.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tR=(0,s.useCallback)(e=>{(0,Z.isPreviewable)(e)?(eB(e),eW("issue"),eL(!0)):window.open((0,Z.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tF=(0,s.useRef)(null),tP=(0,s.useRef)(null),tD=(0,s.useRef)(null),tL=(0,s.useRef)(null),tq=(0,s.useRef)(0),tB=(0,s.useRef)(0),t$=(0,s.useRef)(!1),tW=(0,s.useRef)(!1),tH=(0,s.useRef)(!0),tO=(0,s.useRef)(!1),tV=(0,s.useRef)(null),tU=(0,s.useRef)(null),tY=(0,s.useRef)(0),tX=(0,s.useRef)(void 0),tK=(0,s.useRef)(null),tJ=(0,s.useRef)(null),tZ=function({input:e,caretIndex:t,textareaRef:a,agents:r,agentLinks:n,currentAgentId:l,onInputChange:i}){let[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(""),[m,p]=(0,s.useState)(0),[h,f]=(0,s.useState)({top:0,left:0}),g=(0,s.useRef)(null),x=(0,s.useMemo)(()=>{let e=new Set;for(let t of n)t.source_agent_id===l&&e.add(t.target_agent_id),t.target_agent_id===l&&e.add(t.source_agent_id);return e},[n,l]),{relatedAgents:v,otherAgents:j,allAgents:y}=(0,s.useMemo)(()=>{if(!o)return{relatedAgents:[],otherAgents:[],allAgents:[]};let e=e=>{if(!d)return e.slice(0,20);let t=d.toLowerCase(),s=[],a=[];for(let r of e){let e=r.name.toLowerCase();e.startsWith(t)?s.push(r):e.includes(t)&&a.push(r)}return[...s,...a]},t=[],s=[];for(let e of r)x.has(e.id)?t.push(e):s.push(e);let a=e(t),n=e(s);return{relatedAgents:a,otherAgents:n,allAgents:[...a,...n]}},[o,d,r,x]);(0,s.useEffect)(()=>{p(0)},[y.length,d]),(0,s.useEffect)(()=>{if(null===t)return void c(!1);let s=function(e,t){let s=t-1;for(;s>=0&&t-s<=30;){let a=e.charCodeAt(s);if(64===a)return{start:s,query:e.slice(s+1,t)};if(10===a||13===a)break;s--}return null}(e,t);s?(g.current=s.start,u(s.query),c(!0),a.current&&f(function(e,t){let s=document.createElement("div"),a=window.getComputedStyle(e);for(let t of(s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.visibility="hidden",s.style.overflow="hidden",s.style.width=`${e.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))s.style[t]=a.getPropertyValue(t.replace(/([A-Z])/g,"-$1").toLowerCase());s.textContent=e.value.slice(0,t);let r=document.createElement("span");r.textContent="​",s.appendChild(r),document.body.appendChild(s);let n=r.offsetTop-e.scrollTop,l=Math.max(0,Math.min(r.offsetLeft,e.offsetWidth-256));return document.body.removeChild(s),{top:n,left:l}}(a.current,s.start))):(c(!1),g.current=null)},[e,t,a]);let k=(0,s.useCallback)(s=>{if(null===t||null===g.current)return;let r=e.slice(0,g.current),n=e.slice(t);i(`${r}@${s.name} ${n}`),c(!1);let l=r.length+1+s.name.length+1;requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(l,l))})},[e,t,a,i]),b=(0,s.useCallback)(e=>!!o&&0!==y.length&&!e.nativeEvent.isComposing&&("ArrowDown"===e.key?(e.preventDefault(),p(e=>(e+1)%y.length),!0):"ArrowUp"===e.key?(e.preventDefault(),p(e=>(e-1+y.length)%y.length),!0):"Enter"===e.key?(e.preventDefault(),k(y[m]),!0):"Escape"===e.key&&(e.preventDefault(),c(!1),!0)),[o,y,m,k]);return{isOpen:o,query:d,selectedIndex:m,anchorPos:h,relatedAgents:v,otherAgents:j,allAgents:y,handleMentionKeyDown:b,selectAgent:k}}({input:ec,caretIndex:tt,textareaRef:tJ,agents:(0,s.useMemo)(()=>j.filter(e=>e.id!==et),[j,et]),agentLinks:y,currentAgentId:et,onInputChange:ed});(0,s.useEffect)(()=>{let e=`chat-draft:${et}:${er??"default"}`;ec?localStorage.setItem(e,ec):localStorage.removeItem(e)},[ec,et,er]),(0,s.useEffect)(()=>{em||tJ.current?.focus()},[em]);let tQ=(0,s.useCallback)(()=>{tH.current=!0,setTimeout(()=>{tF.current?.scrollTo({top:tF.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{if(X)return;tP.current&&clearInterval(tP.current),tP.current=null,tL.current=null;let e=!1;return queueMicrotask(()=>{e||(eT(!0),t$.current=!1,ev(null),eS([]),te([]),tp(new Map),to([]),td({}),tr([]),tl(!1),tU.current=null,ed(localStorage.getItem(`chat-draft:${et}:${er??"default"}`)??""))}),async function(){try{if(er)try{let[t,s,a,r]=await Promise.all([(0,w.getConversation)(er,x),(0,w.listMessages)(er,x),(0,w.listArtifacts)(er,x).catch(()=>[]),(0,w.listBufferedMessages)(er,x).catch(()=>[])]);if(e)return;el(t),eo(s.messages),ez(s.has_more),eP(a),te(r);let n=[...new Set(s.messages.filter(e=>"assistant"===e.role&&e.task_id).map(e=>e.task_id))];if(n.length>0&&(0,w.getTaskStepCounts)(n,x).then(t=>{e||td(t)}).catch(()=>{}),(0,w.listFlaggedMessageIds)(x,er).then(t=>{e||tj(new Set(t.message_ids))}).catch(()=>{}),es){let t=await (0,w.getTask)(es,x).catch(()=>null);if(e)return;if(t&&!["completed","failed","cancelled","superseded"].includes(t.status)){ev(t);let s=await (0,w.getTaskMessages)(es,x).catch(()=>[]);if(e)return;eS(s),s.length>0&&(tq.current=Math.max(...s.map(e=>e.seq))),tV.current?.(t.id,er,tq.current)}}}catch{let t=await (0,w.chatInit)(et,x,Y);if(e)return;el(t.conversation),eo(t.messages),ez(t.has_more_messages),eP(t.artifacts),te(t.buffered_messages),tl(t.has_more_conversations)}else{let t=await (0,w.chatInit)(et,x,Y);if(e)return;el(t.conversation),eo(t.messages),ez(t.has_more_messages),eP(t.artifacts),te(t.buffered_messages),tl(t.has_more_conversations),t.active_task&&(ev(t.active_task),t.task_messages.length>0&&(eS(t.task_messages),tq.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||tV.current?.(t.active_task.id,t.conversation.id,tq.current))}}catch{T.toast.error("Failed to load conversation")}finally{e||eT(!1)}}(),()=>{e=!0}},[et,x,er,es,Y,X]);let tG=(0,s.useRef)(O);(0,s.useEffect)(()=>{tG.current=O},[O]);let t0=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!en?.id||!x||t0.current===en.id)return;t0.current=en.id;let e=setTimeout(()=>{(0,w.markInboxRead)(en.id,x).then(()=>tG.current()).catch(()=>{})},1e3);return()=>{t0.current=null,clearTimeout(e)}},[en?.id,x]),(0,s.useEffect)(()=>{e_||!(ei.length>0)||t$.current||(t$.current=!0,es||ea?tH.current=!1:i?setTimeout(()=>{let e=tF.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):tF.current?.scrollTo({top:tF.current.scrollHeight})},50):setTimeout(()=>{tF.current?.scrollTo({top:tF.current.scrollHeight})},50))},[e_,ei.length,es,ea,i]),(0,s.useEffect)(()=>{let e;if(!es||e_||!en)return;tH.current=!1,tO.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(es)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tO.current=!1)},1500),!0)},a=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,w.listMessagesAroundTask)(en.id,x,es);if(t)return;e.length>0?(eo(t=>ej(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(tO.current=!1)},100)})):tO.current=!1}catch{t||(tO.current=!1)}},100);return()=>{t=!0,clearTimeout(a),e&&clearTimeout(e)}},[es,e_,en,x]),(0,s.useEffect)(()=>{let e;if(!ea||es||e_||!en)return;tH.current=!1,tO.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(ea)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tO.current=!1)},1500),!0)})()||(tF.current?.scrollTo({top:tF.current.scrollHeight}),tO.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[ea,es,e_,en]);let t1=eg?.status;(0,s.useEffect)(()=>{tO.current||("running"===t1||"queued"===t1)&&tH.current&&tQ()},[eC.length,t1,tQ]);let t2=(0,s.useMemo)(()=>j.find(e=>e.id===et)?.name??"Agent",[j,et]),t5=ek(ei),t3=ek(eA),t4=ek(ta),t6=ek(tn),t8=ek(t2),t7=ek(Y),t9=(0,s.useCallback)(async(e=!1)=>{if(!en||tW.current)return;tW.current=!0;let t=t5.current,s=t3.current,r=t6.current,n=t8.current,l=t7.current,i=t[0],o=tU.current?.id??en.id,c=s&&i,d=t4.current;if(!c&&0===d.length&&r){let e=tU.current??{id:en.id,created_at:en.created_at};try{let t=await (0,w.listPreviousConversations)(et,x,{exclude:en.id,before:e.created_at,channel:l});d=t.conversations,tr(t.conversations),tl(t.has_more)}catch{tl(!1)}}let u=d.length>0;if(!c&&!u){tW.current=!1;return}eR(!0);let m=tF.current;m&&(m.style.overflowAnchor="none");let p=m?.scrollHeight??0;try{let t=[],s=[],u=20,h=!1,f=[];if(c){let e=await (0,w.listMessages)(o,x,{limit:20,before:i.created_at,beforeId:i.id});t=e.messages,u-=e.messages.length,h=e.has_more}if(!h&&u>0){if(0===d.length&&r){let e=tU.current??{id:en.id,created_at:en.created_at};try{let t=await (0,w.listPreviousConversations)(et,x,{exclude:en.id,before:e.created_at,channel:l});d=t.conversations,tr(t.conversations),tl(t.has_more)}catch{tl(!1)}}let e=0,t=0;for(;e<d.length&&u>0&&t<5;){let a=d[e];e++,t++;let r=await (0,w.listMessages)(a.id,x,{limit:u});if(0===r.messages.length){tU.current=a;continue}let l=tU.current?.created_at??en.created_at;f.push({agentName:n,created_at:l,id:`nap-${a.id}`}),s=[...r.messages,...s],u-=r.messages.length,h=r.has_more,tU.current=a}e>0&&tr(t=>t.slice(e))}let g=[...s,...t];if((0,a.flushSync)(()=>{g.length>0?(f.length>0&&to(e=>{let t=new Set(e.map(e=>e.id)),s=f.filter(e=>!t.has(e.id));return[...e,...s]}),ez(h),eo(e=>{let t=new Set(e.map(e=>e.id));return[...g.filter(e=>!t.has(e.id)),...e]})):ez(!1)}),tW.current=!1,(0,a.flushSync)(()=>eR(!1)),m)if(e)m.scrollTop=m.scrollHeight;else{let e=m.scrollHeight;m.scrollTop=e-p}}catch{T.toast.error("Failed to load older messages")}finally{tW.current=!1,eR(!1),tF.current&&(tF.current.style.overflowAnchor="")}},[en,x,et,t5,t3,t6,t8,t7,t4]),se=eA||ta.length>0||tn;(0,s.useEffect)(()=>{en?.id!==tX.current&&(tX.current=en?.id,tY.current=0)},[en?.id]),(0,s.useEffect)(()=>{e_||!en||ei.length>=10||!se||eE||tY.current>=3||(tY.current+=1,t9(!0))},[e_,ei.length,se,eE,en,t9]);let st=(0,s.useCallback)(()=>{let e=tF.current;e&&(tH.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),ss=(0,s.useCallback)((e,t,s)=>{tP.current&&clearInterval(tP.current),tq.current=s??0,tB.current=0,eI(!1),tL.current=e,tP.current=setInterval(async()=>{if(tL.current===e)try{let[s,a]=await Promise.all([(0,w.getTask)(e,x),(0,w.getTaskMessages)(e,x,tq.current||void 0)]),r=tL.current!==e;if(tB.current=0,eI(!1),a.length>0&&!r&&(eS(e=>{let t=new Set(e.map(e=>e.seq)),s=a.filter(e=>!t.has(e.seq));return s.length>0?[...e,...s]:e}),tq.current=Math.max(...a.map(e=>e.seq),tq.current)),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(r)return void(0,w.listMessages)(t,x).then(({messages:e})=>eo(t=>ej(t,e))).catch(()=>{});tP.current&&clearInterval(tP.current),tP.current=null,tD.current&&clearTimeout(tD.current),tD.current=setTimeout(()=>{(0,w.markInboxRead)(t,x).then(()=>tG.current()).catch(()=>{})},1e3);let a=!tO.current&&tH.current;try{let[e,a]=await Promise.all([(0,w.listMessages)(t,x),(0,w.listArtifacts)(t,x).catch(()=>null)]);eo(t=>ej(t,e.messages)),a&&eP(a),ev(s)}catch{ev(s),T.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{tF.current?.scrollTo({top:tF.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!tP.current)try{let[s,a]=await Promise.all([(0,w.getActiveTask)(t,x),(0,w.listBufferedMessages)(t,x)]);if(te(a),s&&s.id!==e){let{messages:e}=await (0,w.listMessages)(t,x);eo(t=>ej(t,e)),ev(s),eS([]),tV.current?.(s.id,t)}}catch{}},1e3)}else r||ev(s)}catch{if(tL.current!==e)return;tB.current+=1,tB.current>=3&&eI(!0),tB.current>=10&&(tP.current&&clearInterval(tP.current),tP.current=null,T.toast.error("Lost connection to agent"))}},3e3)},[x]);(0,s.useEffect)(()=>{tV.current=ss},[ss]),(0,s.useEffect)(()=>()=>{tP.current&&clearInterval(tP.current),tD.current&&clearTimeout(tD.current)},[]);let sa=(0,s.useRef)(null);(0,s.useEffect)(()=>{sa.current=eg?.id??null},[eg]),(0,s.useEffect)(()=>W(e=>{if("task.messages"===e.type&&e.taskId===sa.current){let t=e.messages.filter(e=>e.seq>tq.current);t.length>0&&(eS(e=>{let s=new Set(e.map(e=>e.seq)),a=t.filter(e=>!s.has(e.seq));return a.length>0?[...e,...a]:e}),tq.current=Math.max(...t.map(e=>e.seq),tq.current))}if("task.created"===e.type&&e.conversationId===en?.id){(0,w.listMessages)(e.conversationId,x).then(({messages:e})=>eo(t=>ej(t,e))).catch(()=>{});let t=e.task;sa.current=t.id,ev(t),eS([]),tq.current=0,tV.current?.(t.id,e.conversationId)}if("conversation.message"===e.type&&e.conversationId===en?.id&&eo(t=>ej(t,[e.message])),"artifact.uploaded"===e.type&&e.conversationId===en?.id&&eP(t=>t.some(t=>t.id===e.artifact.id)?t:[...t,e.artifact]),"followup.dispatched"===e.type&&e.conversationId===en?.id){te(t=>t.filter(t=>t.id!==e.message.id)),(0,w.listBufferedMessages)(e.conversationId,x).then(te).catch(()=>{}),(0,w.listMessages)(e.conversationId,x).then(({messages:e})=>eo(t=>ej(t,e))).catch(()=>{});let t=e.task;sa.current=t.id,ev(t),eS([]),tV.current?.(t.id,e.conversationId)}"followup.created"===e.type&&e.conversationId===en?.id&&te(t=>(function(e,t){if(e.some(e=>e.id===t.id))return e;let s=new Date(t.created_at).getTime();return e.some(e=>e.id.startsWith("temp-")&&2e3>Math.abs(new Date(e.created_at).getTime()-s))?e:[...e,t]})(t,e.message)),"followup.deleted"===e.type&&e.conversationId===en?.id&&te(t=>t.filter(t=>t.id!==e.messageId)),"followup.dispatch_failed"===e.type&&e.conversationId===en?.id&&T.toast.error(e.error||"Failed to dispatch follow-up")}),[W,en?.id,x]);let sr=(0,s.useCallback)(e=>{let t=e.target.files;if(!t)return;let s=[];for(let e of Array.from(t))e.size>0xa00000?T.toast.error(`"${e.name}" exceeds 10 MB limit`):s.push(e);s.length>0&&e7(e=>[...e,...s]),e.target.value=""},[]),sn=(0,s.useCallback)(e=>{e7(t=>t.filter((t,s)=>s!==e))},[]),sl=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void tx(null);let t=e.toString().trim();if(!t)return void tx(null);let s=e.getRangeAt(0),a=s.commonAncestorContainer instanceof HTMLElement?s.commonAncestorContainer:s.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void tx(null);let r=s.getClientRects(),n=r[r.length-1]||s.getBoundingClientRect();tx({text:t,x:n.right,y:n.top-4})},[]);(0,s.useEffect)(()=>(document.addEventListener("selectionchange",sl),()=>document.removeEventListener("selectionchange",sl)),[sl]);let si=(0,s.useCallback)(()=>{tg&&(tf(tg.text),tx(null),window.getSelection()?.removeAllRanges(),tJ.current?.focus())},[tg]),[so,sc]=(0,s.useState)(!1),sd=(0,s.useRef)(0),su=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sd.current++,e.dataTransfer.types.includes("Files")&&sc(!0)},[]),sm=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sd.current--,0===sd.current&&sc(!1)},[]),sp=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),sh=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sc(!1),sd.current=0;let t=Array.from(e.dataTransfer.files),s=[];for(let e of t)e.size>0xa00000?T.toast.error(`"${e.name}" exceeds 10 MB limit`):s.push(e);s.length>0&&e7(e=>[...e,...s])},[]),sf=(0,s.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let s=[];for(let e=0;e<t.length;e++){let a=t[e];if("file"===a.kind){let e=a.getAsFile();e&&s.push(e)}}if(0===s.length)return;e.preventDefault();let a=[];for(let e of s)e.size>0xa00000?T.toast.error(`"${e.name}" exceeds 10 MB limit`):a.push(e);a.length>0&&e7(e=>[...e,...a])},[]),sg=async()=>{if(en&&!eh){ef(!0);try{let e=await (0,w.cancelActiveTask)(en.id,x);if(e){if(sa.current&&sa.current!==e.id)return;tP.current&&clearInterval(tP.current),tP.current=null;let[t,s]=await Promise.all([(0,w.listMessages)(en.id,x),(0,w.listBufferedMessages)(en.id,x)]);eo(e=>ej(e,t.messages)),te(s),ev(e),eS([])}}catch{T.toast.error("Failed to cancel task")}finally{ef(!1)}}},sx=async()=>{let e=ec.trim();if(!e&&0===e8.length||em||!en)return;if(!e)return void T.toast.error("Please type a message");let t=th?`> ${th.split("\n").join("\n> ")}
2
+
3
+ ${e}`:e,s=[...e8];if(ed(""),e7([]),tf(null),ep(!0),eg&&!["completed","failed","cancelled","superseded"].includes(eg.status)){let e=`temp-${Date.now()}`,a={id:e,conversation_id:en.id,role:"user",content:t,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};te(e=>[...e,a]);try{let{message:a}=await (0,w.createBufferedMessage)(en.id,t,x,s.length>0?s:void 0);te(t=>t.some(e=>e.id===a.id)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?a:t))}catch(a){te(t=>t.filter(t=>t.id!==e)),ed(t),e7(s),T.toast.error(a instanceof Error?a.message:"Failed to queue follow-up")}finally{ep(!1)}return}let a=`temp-${Date.now()}`,r={id:a,conversation_id:en.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&tp(e=>{let t=new Map(e);return t.set(a,s),t}),eo(e=>[...e,r]),tQ();try{let{message:e,task:n}=await (0,w.sendMessage)(en.id,t,x,s.length>0?s:void 0);tp(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),eo(t=>t.map(t=>t.id===r.id?e:t)),e.attachment_ids&&e.attachment_ids.length>0&&(0,w.listArtifacts)(en.id,x).then(e=>eP(e)).catch(()=>{}),ev(n),eS([]),ss(n.id,en.id)}catch(e){tp(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),eo(e=>e.filter(e=>e.id!==r.id)),ed(t),e7(s),T.toast.error(e instanceof Error?e.message:"Failed to send message")}finally{ep(!1),tJ.current?.focus()}},sv=(0,s.useCallback)(async()=>{if(!eg||!en)return;let e=await (0,w.retryTask)(eg.id,x);ev(e),eS([]),ss(e.id,en.id)},[eg,en,x,ss]),sj=(0,s.useCallback)(async e=>{let t=ty.current.has(e);tj(s=>{let a=new Set(s);return t?a.delete(e):a.add(e),a}),t?(tb(),(0,w.unflagMessage)(x,e).catch(()=>{tj(t=>new Set(t).add(e)),tk()})):(tk(),(0,w.flagMessage)(x,e).catch(()=>{tj(t=>{let s=new Set(t);return s.delete(e),s}),tb()}))},[x,tk,tb]),sy=(0,s.useCallback)(async e=>{eJ(e),eX(!0),e0(!0),e2(null),e3(null);try{let t=await (0,w.getIssue)(x,e);eQ(t),t.issue.latest_task_id&&(0,w.getTask)(t.issue.latest_task_id,x).then(e=>e3(e)).catch(()=>e3(null)),t.issue.trace_id&&(0,w.getTrace)(t.issue.trace_id,x).then(e=>e2(e.tasks)).catch(()=>e2(null))}catch(e){T.toast.error(e instanceof Error?e.message:"Failed to load issue"),eX(!1)}finally{e0(!1)}},[x]),sk=eZ?.issue?.conversation_id??null,sb=eZ?.issue?.latest_task_id??null;(0,s.useEffect)(()=>{if(eY&&eK)return W(e=>{if("task.updated"===e.type&&sb&&e.taskId===sb&&(0,w.getTask)(sb,x).then(e=>e3(e)).catch(()=>{}),"conversation.message"===e.type&&sk&&e.conversationId===sk&&(eQ(t=>!t||t.messages.some(t=>t.id===e.message.id)?t:{...t,messages:[...t.messages,e.message]}),"event"===e.message.role&&e.message.content.startsWith("Issue status changed:"))){let t=e.message.content.match(/-> (\w+)/);t&&eQ(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===eK&&eQ(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[eY,eK,sk,sb,x,W]);let[sw,sN]=(0,s.useState)(!1),sC=(0,s.useMemo)(()=>!!en&&ei.some(e=>e.conversation_id===en.id),[en,ei]),sS=async()=>{if(en&&sC&&!sw){sN(!0);try{tP.current&&(clearInterval(tP.current),tP.current=null);let e=await (0,w.createConversation)(et,x,Y);to(t=>[...t,{agentName:t2,created_at:e.created_at,id:`nap-${en.id}`}]),tr(e=>[{id:en.id,created_at:en.created_at},...e]),el(e),ev(null),eS([]),eP([]),te([]),e7([]),tp(new Map),tq.current=0,eI(!1),ez(!1),tU.current=null,tQ()}catch{T.toast.error("Failed to start new conversation")}finally{sN(!1)}}},s_=!!eg&&!["completed","failed","cancelled","superseded"].includes(eg.status);return e_?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(M.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(M.Skeleton,{className:"h-4 w-72"}),(0,t.jsx)(M.Skeleton,{className:"h-4 w-56"}),(0,t.jsx)(M.Skeleton,{className:"h-4 w-64"})]})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(M.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(M.Skeleton,{className:"h-4 w-64"}),(0,t.jsx)(M.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,t.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,t.jsx)(M.Skeleton,{className:"h-18 w-full rounded-xl"})})})]}):en?(0,t.jsxs)(t.Fragment,{children:[tg&&(0,t.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:tg.x,top:tg.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:si,children:[(0,t.jsx)(P,{className:"size-3"}),"Quote"]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,t.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:tF,onScroll:st,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&T.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4 min-w-0",children:[se&&!eE&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>t9(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),eE&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(f.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ei.length&&!eg&&(u=j.find(e=>e.id===et),m=u?.created_at&&tu-new Date(u.created_at).getTime()<3e5,p=(k[et]??0)>0,m&&p&&"default"===Y?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,t.jsxs)("div",{className:"relative animate-bounce",children:[(0,t.jsx)(F.Mail,{className:"size-8 text-primary"}),(0,t.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,t.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,t.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),tz.map(e=>{if("nap"===e.kind)return(0,t.jsx)(eb,{agentName:t2},e.data.id);if("artifact"===e.kind)return(0,t.jsx)(ew,{artifact:e.data,version:t_.get(e.data.id)??1,hasDuplicates:tT.has(e.data.filename),onClick:tE},`artifact-${e.data.id}`);let s=e.data;return(0,t.jsx)(eu,{msg:s,agents:j,artifacts:eF,activeTask:eg,taskMessages:eC,connectionLost:eM,isLastMessage:ei.length>0&&ei[ei.length-1].id===s.id,stepCount:s.task_id?tc[s.task_id]??0:0,targetConvId:er,workspaceId:x,conversationType:en?.type,pendingFilesByMessage:tm,onArtifactClick:tE,onEmailClick:e=>{eU(e),eO(!0)},onIssueClick:e=>sy(e),onRetry:sv,mentionComponents:ex,isFlagged:tv.has(s.id),onToggleFlag:"assistant"===s.role?sj:void 0},s.id)}),eg&&eg.conversation_id===en?.id&&!["completed","failed","cancelled","superseded"].includes(eg.status)&&(0,t.jsx)(b,{task:eg,messages:eC,connectionLost:eM})]})}),(0,t.jsx)(G.ScrollToBottomButton,{scrollRef:tF})]}),en&&(0,t.jsx)(Q,{bufferedMessages:e9,onDelete:e=>{te(t=>t.filter(t=>t.id!==e)),(0,w.deleteBufferedMessage)(en.id,e,x).catch(()=>{te(e9),T.toast.error("Failed to delete follow-up")})}}),(0,t.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,t.jsxs)("div",{className:(0,o.cn)("relative flex flex-col rounded-xl border bg-background/60 transition-colors duration-200","focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",em&&"opacity-50",so&&"border-ring ring-3 ring-ring/50"),onDragEnter:su,onDragLeave:sm,onDragOver:sp,onDrop:sh,children:[so&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/80 border-2 border-dashed border-ring pointer-events-none",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),th&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,t.jsx)(P,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[th.slice(0,120),th.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>tf(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(B.X,{className:"size-3.5"})})]}),(0,t.jsx)(H,{isOpen:tZ.isOpen,relatedAgents:tZ.relatedAgents,otherAgents:tZ.otherAgents,selectedIndex:tZ.selectedIndex,onSelect:tZ.selectAgent,anchorPos:tZ.anchorPos}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{"aria-hidden":!0,className:"mention-backdrop absolute inset-0 px-3.5 py-2.5 text-base chat-input-line-height whitespace-pre-wrap wrap-break-word pointer-events-none overflow-y-auto thin-scrollbar",dangerouslySetInnerHTML:{__html:ec?V(ec.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),j).replace(/<mention[^>]*>/g,'<span class="mention-highlight">').replace(/<\/mention>/g,"</span>")+(ec.endsWith("\n")?"\n":""):""}}),(0,t.jsx)("textarea",{ref:tJ,value:ec,onChange:e=>{ed(e.target.value),ts(e.target.selectionStart),requestAnimationFrame(()=>{let t=e.target.previousElementSibling;t&&(t.scrollTop=e.target.scrollTop)})},onKeyDown:e=>{!tZ.handleMentionKeyDown(e)&&("Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),sx()))},onPaste:sf,onKeyUp:e=>ts(e.target.selectionStart),onClick:e=>ts(e.target.selectionStart),onSelect:e=>ts(e.target.selectionStart),onScroll:e=>{let t=e.target.previousElementSibling;t&&(t.scrollTop=e.target.scrollTop)},placeholder:s_?"Type a follow-up...":"Type a message...",rows:1,disabled:em,className:(0,o.cn)("relative field-sizing-content w-full resize-none bg-transparent px-3.5 py-2.5 text-base chat-input-line-height outline-none","placeholder:text-muted-foreground disabled:cursor-not-allowed","min-h-9.5 max-h-50 thin-scrollbar","caret-foreground textarea-text-hidden")})]}),e8.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pb-1",children:e8.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(R.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-30",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground/60",children:(0,U.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>sn(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)(B.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-2 pb-2 pt-0.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[!er&&(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:e=>(0,t.jsx)("span",{...e,className:(0,o.cn)("inline-flex",e.className),children:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onClick:sS,disabled:sw||!en||!sC||s_,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200",children:sw?(0,t.jsx)(f.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(z,{className:"size-3.5"})})})}),(0,t.jsx)(I.TooltipContent,{side:"top",children:s_?"Wait for the task to finish":sC?"Take a nap":`${t2} is well-rested and ready to go`})]}),(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsxs)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{eW("agent"),eL(!0)},className:"relative rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:[(0,t.jsx)(E,{className:"size-3.5"}),tS.length>0&&(0,t.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex size-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:tS.length})]}),(0,t.jsx)(I.TooltipContent,{side:"top",children:"Artifacts"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("input",{ref:tK,type:"file",multiple:!0,className:"hidden",onChange:sr}),(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>tK.current?.click(),disabled:em,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(L.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(I.TooltipContent,{side:"top",children:"Attach files"})]}),tN&&(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:tC,disabled:em,className:(0,o.cn)("rounded-lg transition-colors duration-200",tw?"text-red-500 hover:text-red-600 bg-red-500/10":"text-muted-foreground/60 hover:text-foreground")}),children:(0,t.jsx)(D,{className:(0,o.cn)("size-3.5",tw&&"animate-pulse")})}),(0,t.jsx)(I.TooltipContent,{side:"top",children:tw?"Stop recording":"Voice input"})]}),!s_||ec.trim()||em?(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sx,disabled:!ec.trim()||em,className:(0,o.cn)("rounded-lg transition-opacity duration-200",!ec.trim()&&"opacity-40")}),children:em?(0,t.jsx)(f.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(A.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(I.TooltipContent,{side:"top",children:"Send"})]}):(0,t.jsxs)(I.Tooltip,{children:[(0,t.jsx)(I.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sg,disabled:eh,className:"rounded-lg bg-red-500/10 text-red-500 hover:bg-red-500/20 transition-colors duration-200"}),children:eh?(0,t.jsx)(f.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(q.Square,{className:"size-3.5 fill-current"})}),(0,t.jsx)(I.TooltipContent,{side:"top",children:"Stop task"})]})]})]})]})})}),(0,t.jsx)(U.ArtifactSheet,{open:eD,onOpenChange:e=>{eL(e),e||setTimeout(()=>{eB(null),eW(null)},300)},artifacts:tM,workspaceId:x,initialArtifact:eq,versionMap:tI,duplicateFilenames:tA}),(0,t.jsx)(K,{open:eH,onOpenChange:e=>{eO(e),e||setTimeout(()=>eU(null),300)},emailId:eV,workspaceId:x}),(0,t.jsx)(J.IssueSheet,{open:eY,onOpenChange:e=>{eX(e),e||setTimeout(()=>{eJ(null),eQ(null),e3(null)},300)},agents:j,issue:eZ?.issue??null,detail:eZ?{messages:eZ.messages,comments:eZ.comments,artifacts:eZ.artifacts,traceId:eZ.issue.trace_id}:null,detailLoading:eG,activeTask:e5,traceTasks:e1,slug:v,workspaceId:x,width:e4,onWidthChange:e6,onUpdate:async(e,t)=>{try{let s=await (0,w.updateIssue)(x,e,t);eQ(a=>a&&a.issue.id===e?{...a,issue:{...a.issue,...t,updated_at:s.updated_at}}:a)}catch(e){T.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,w.updateIssue)(x,e,{status:t}),eQ(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){T.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{eK&&sy(eK)},onArtifactClick:tR})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}]);
@@ -0,0 +1,11 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,611134,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},11789,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return h},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return b},NormalizeError:function(){return _},PageNotFoundError:function(){return w},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return o},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return x}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class _ extends Error{}class w extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},679680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return u},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,o(e));else t.set(r,o(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},854742,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function({html:e,height:t=null,width:r=null,children:i,dataNtpc:o=""}){return(0,a.useEffect)(()=>{o&&performance.mark("mark_feature_usage",{detail:{feature:`next-third-parties-${o}`}})},[o]),(0,n.jsxs)(n.Fragment,{children:[i,e?(0,n.jsx)("div",{style:{height:null!=t?`${t}px`:"auto",width:null!=r?`${r}px`:"auto"},"data-ntpc":o,dangerouslySetInnerHTML:{__html:e}}):null]})};let n=e.r(368075),a=e.r(298699)},145666,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},206345,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ESCAPE_REGEX:function(){return o},htmlEscapeAttributeString:function(){return c},htmlEscapeJsonString:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},o=/[&><\u2028\u2029]/g,s={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;"},u=/[&"'<>]/g;function l(e){return e.replace(o,e=>i[e])}function c(e){return e.replace(u,e=>s[e])}},967802,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return _}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(481258),o=e.r(744066),s=e.r(368075),u=i._(e.r(550008)),l=o._(e.r(298699)),c=e.r(951024),d=e.r(835345),f=e.r(145666),p=e.r(206345),g=new Map,m=new Set,y=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:i,children:o="",strategy:s="afterInteractive",onError:l,stylesheets:c}=e,f=r||t;if(f&&m.has(f))return;if(g.has(t)){m.add(f),g.get(t).then(n,l);return}let p=()=>{a&&a(),m.add(f)},y=document.createElement("script"),h=new Promise((e,t)=>{y.addEventListener("load",function(t){e(),n&&n.call(this,t),p()}),y.addEventListener("error",function(e){t(e)})}).catch(function(e){l&&l(e)});i?(y.innerHTML=i.__html||"",p()):o?(y.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",p()):t&&(y.src=t,g.set(t,h)),(0,d.setAttributesFromProps)(y,e),"worker"===s&&y.setAttribute("type","text/partytown"),y.setAttribute("data-nscript",s),c&&(e=>{if(u.default.preinit)return e.forEach(e=>{u.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(c),document.body.appendChild(y)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>y(e))}):y(e)}function _(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");m.add(t)})}function w(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:i="afterInteractive",onError:o,stylesheets:d,...g}=e,{updateScripts:h,scripts:_,getIsSsr:w,appDir:b,nonce:v}=(0,l.useContext)(c.HeadManagerContext);v=g.nonce||v;let x=(0,l.useRef)(!1);(0,l.useEffect)(()=>{let e=t||r;x.current||(a&&e&&m.has(e)&&a(),x.current=!0)},[a,t,r]);let E=(0,l.useRef)(!1);if((0,l.useEffect)(()=>{if(!E.current){if("afterInteractive"===i)y(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>y(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>y(e))}));E.current=!0}},[e,i]),("beforeInteractive"===i||"worker"===i)&&(h?(_[i]=(_[i]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:o,...g,nonce:v}]),h(_)):w&&w()?m.add(t||r):w&&!w()&&y({...e,nonce:v})),b){if(d&&d.forEach(e=>{u.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!r)return g.dangerouslySetInnerHTML&&(g.children=g.dangerouslySetInnerHTML.__html,delete g.dangerouslySetInnerHTML),(0,s.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,p.htmlEscapeJsonString)(JSON.stringify([0,{...g,id:t}]))})`}});else return u.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:v,crossOrigin:g.crossOrigin}:{as:"script",nonce:v,crossOrigin:g.crossOrigin}),(0,s.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,p.htmlEscapeJsonString)(JSON.stringify([r,{...g,id:t}]))})`}});"afterInteractive"===i&&r&&u.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:v,crossOrigin:g.crossOrigin}:{as:"script",nonce:v,crossOrigin:g.crossOrigin})}return null}Object.defineProperty(w,"__nextScript",{value:!0});let b=w;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},237762,(e,t,r)=>{t.exports=e.r(967802)},50362,(e,t,r)=>{"use strict";var n=e.e&&e.e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.sendGTMEvent=void 0,r.GoogleTagManager=function(e){let{gtmId:t,gtmScriptUrl:r,dataLayerName:n="dataLayer",auth:u,preview:l,dataLayer:c,nonce:d}=e;s=n;let f=new URL(r||"https://www.googletagmanager.com/gtm.js");return t&&f.searchParams.set("id",t),"dataLayer"!==n&&f.searchParams.set("l",n),u&&f.searchParams.set("gtm_auth",u),l&&(f.searchParams.set("gtm_preview",l),f.searchParams.set("gtm_cookies_win","x")),(0,i.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-gtm"}})},[]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.default,{id:"_next-gtm-init",dangerouslySetInnerHTML:{__html:`
2
+ (function(w,l){
3
+ w[l]=w[l]||[];
4
+ w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
5
+ ${c?`w[l].push(${JSON.stringify(c)})`:""}
6
+ })(window,'${n}');`},nonce:d}),(0,a.jsx)(o.default,{id:"_next-gtm","data-ntpc":"GTM",src:f.href,nonce:d})]})};let a=e.r(368075),i=e.r(298699),o=n(e.r(237762)),s="dataLayer";r.sendGTMEvent=(e,t)=>{let r=t||s;window[r]=window[r]||[],window[r].push(e)}},396699,(e,t,r)=>{"use strict";let n;var a=e.e&&e.e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.GoogleAnalytics=function(e){let{gaId:t,debugMode:r,dataLayerName:a="dataLayer",nonce:u}=e;return void 0===n&&(n=a),(0,o.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-ga"}})},[]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.default,{id:"_next-ga-init",dangerouslySetInnerHTML:{__html:`
7
+ window['${a}'] = window['${a}'] || [];
8
+ function gtag(){window['${a}'].push(arguments);}
9
+ gtag('js', new Date());
10
+
11
+ gtag('config', '${t}' ${r?",{ 'debug_mode': true }":""});`},nonce:u}),(0,i.jsx)(s.default,{id:"_next-ga",src:`https://www.googletagmanager.com/gtag/js?id=${t}`,nonce:u})]})},r.sendGAEvent=function(){void 0===n?console.warn("@next/third-parties: GA has not been initialized"):window[n]?window[n].push(arguments):console.warn(`@next/third-parties: GA dataLayer ${n} does not exist`)};let i=e.r(368075),o=e.r(298699),s=a(e.r(237762))},278829,e=>{"use strict";var t=e.i(368075),r=e.i(635790);e.s(["ThemeProvider",0,function({children:e,...n}){return(0,t.jsx)(r.ThemeProvider,{...n,children:e})}])},578644,e=>{"use strict";var t=e.i(368075),r=e.i(880932),n=e.i(635790);e.s(["ToasterProvider",0,function(){let{resolvedTheme:e}=(0,n.useTheme)();return(0,t.jsx)(r.Toaster,{theme:e??"system",richColors:!0,closeButton:!0,position:"bottom-right"})}])}]);