@alook/app 0.0.124 → 0.0.126

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 (162) hide show
  1. package/bundled/email-worker/index.js +105 -7
  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/{1-jzxwxd2yppa.js → 0e5m6elbfa-zc.js} +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/0w1e74-zrlr_t.js +1 -0
  6. package/bundled/web/.open-next/assets/_next/static/chunks/0ym6b1b5nwlot.js +1 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/0zgj-5k527bub.js +3 -0
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{3ktbvokn95fil.js → 17coqn37fn5yf.js} +1 -1
  9. package/bundled/web/.open-next/assets/_next/static/chunks/{2bsr3n9nxv0sc.js → 19j0bml2m-9uo.js} +1 -1
  10. package/bundled/web/.open-next/assets/_next/static/chunks/1j1bygouvxt8w.js +1 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/1xsm-ck02gbj9.js +59 -0
  12. package/bundled/web/.open-next/assets/_next/static/chunks/1z9bza2a4pnu7.js +63 -0
  13. package/bundled/web/.open-next/assets/_next/static/chunks/{1-srtubo20rjx.js → 27vz1_55bn5h_.js} +1 -1
  14. package/bundled/web/.open-next/assets/_next/static/chunks/{2wa56n0-zxr-6.js → 29xo03yr3ra6c.js} +1 -1
  15. package/bundled/web/.open-next/assets/_next/static/chunks/2ehyie2v34cpd.js +1 -0
  16. package/bundled/web/.open-next/assets/_next/static/chunks/{1-bjnx7wr9nop.js → 2kbuh-u0kdgqc.js} +1 -1
  17. package/bundled/web/.open-next/assets/_next/static/chunks/{2fgjbyei3irh0.js → 2z5ztdz1g7p07.js} +1 -1
  18. package/bundled/web/.open-next/assets/_next/static/chunks/32v7gw3qbi0rn.js +3 -0
  19. package/bundled/web/.open-next/assets/_next/static/chunks/37v24j51y7kp2.js +1 -0
  20. package/bundled/web/.open-next/assets/_next/static/chunks/{40cggm_5dua8j.js → 3f96j114fbbez.js} +3 -3
  21. package/bundled/web/.open-next/assets/_next/static/chunks/{09xenumhc9uzs.js → 3l4-pv_2z86tp.js} +1 -1
  22. package/bundled/web/.open-next/assets/_next/static/chunks/3tyj3zocw9s7f.css +1 -0
  23. package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/_global-error.cache +1 -1
  24. package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/_not-found.cache +1 -1
  25. package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/device.cache +1 -1
  26. package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/privacy.cache +1 -1
  27. package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/sitemap.xml.cache +1 -1
  28. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  29. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  30. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  31. package/bundled/web/.open-next/middleware/handler.mjs +7 -7
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +4 -2
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +22 -6
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/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]/activity/page_client-reference-manifest.js +1 -1
  40. 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
  41. 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
  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_client-reference-manifest.js +1 -1
  44. 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
  45. 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
  46. 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
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  50. 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
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/{threads → traces}/[traceId]/page.js +6 -6
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/[traceId]/page_client-reference-manifest.js +3 -0
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/{threads → traces}/page.js +6 -6
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/page_client-reference-manifest.js +3 -0
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/threads/route.js +14 -0
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/threads/route_client-reference-manifest.js +3 -0
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/threads/route.js +16 -0
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/threads/route_client-reference-manifest.js +3 -0
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +3 -2
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page/react-loadable-manifest.json +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +4 -2
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/0_kl__next-internal_server_app_api_conversations_[id]_threads_route_actions_1snnipi.js +3 -0
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00tttex._.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__068ljm8._.js +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__07exuq1._.js +1 -1
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0d82yjz._.js +1 -1
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0envyr7._.js +1 -1
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0k5yb3f._.js +3 -0
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0p9_qnh._.js +1 -1
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__16_glrs._.js +1 -1
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__16u73k9._.js +1 -1
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1c0s55o._.js +1 -1
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1ertv1z._.js +1 -1
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1g69747._.js +1 -1
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1r94gz3._.js +1 -1
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1v9hp6s._.js +1 -1
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1yza8tr._.js +1 -1
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +20 -14
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0i7-4r6._.js +3 -0
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0n8pg0d._.js +1 -1
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0qy7lt2._.js +3 -0
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0v95a0y._.js +6 -6
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_133a7k4._.js +1 -1
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_139j3zh._.js +6 -6
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1a2lyoh._.js +3 -0
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1nfaney._.js +6 -6
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_1j5rtq8._.js +3 -0
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web__next-internal_server_app_api_agents_[id]_threads_route_actions_0z9gwx3.js +3 -0
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{0_0k_next_dist_esm_build_templates_app-page_1szp50t.js → 0_0k_next_dist_esm_build_templates_app-page_0om6w08.js} +3 -3
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{0_0k_next_dist_esm_build_templates_app-page_03qcyrd.js → 0_0k_next_dist_esm_build_templates_app-page_1-1h6nu.js} +3 -3
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/0_kl__next-internal_server_app_(app)_w_[slug]_traces_[traceId]_page_actions_0azi91v.js +3 -0
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0ufxdae._.js → [root-of-the-server]__0d9wg-2._.js} +2 -2
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0rumtkk._.js → [root-of-the-server]__1e5_yd1._.js} +2 -2
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1olzajq._.js +3 -0
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +20 -14
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_04ht2b1._.js +1 -1
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_1dw6wfx._.js → _0934_gu._.js} +2 -2
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_1dqb0sa._.js → _0_vr0b8._.js} +2 -2
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0aittsu._.js +1 -1
  114. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0p54okk._.js +2 -2
  115. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ps6zah._.js +65 -0
  116. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_1xq5127._.js +1 -1
  117. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web__next-internal_server_app_(app)_w_[slug]_traces_page_actions_0ouyxwm.js +3 -0
  118. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0pwl5s4._.js +3 -0
  119. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_layout_tsx_0ysqmgw._.js +1 -1
  120. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0-vs82-._.js +1 -1
  121. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{src_web_src_app_(app)_w_[slug]_threads_[traceId]_page_tsx_00jstix._.js → src_web_src_app_(app)_w_[slug]_traces_[traceId]_page_tsx_1ar14oc._.js} +2 -2
  122. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_traces_page_tsx_1964ml4._.js +3 -0
  123. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_1ffelwp._.js +1 -1
  124. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  125. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  126. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/next-font-manifest.js +1 -1
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/next-font-manifest.json +2 -2
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  129. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  130. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +60 -58
  131. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +511 -288
  132. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
  133. package/bundled/web/migrations/0039_add_thread_columns.sql +6 -0
  134. package/bundled/ws-do/index.js +103 -6
  135. package/dist/cli/index.js +15 -0
  136. package/dist/cli/session-runner.js +15 -0
  137. package/dist/index.js +8 -0
  138. package/package.json +1 -1
  139. package/bundled/web/.open-next/assets/_next/static/chunks/0hy07ql5hqe_e.js +0 -1
  140. package/bundled/web/.open-next/assets/_next/static/chunks/0yeu-j3z9iguu.js +0 -1
  141. package/bundled/web/.open-next/assets/_next/static/chunks/17ewotvd7-nyl.js +0 -121
  142. package/bundled/web/.open-next/assets/_next/static/chunks/1ftpvvqesj-9s.js +0 -3
  143. package/bundled/web/.open-next/assets/_next/static/chunks/1ievf6mopw-38.js +0 -1
  144. package/bundled/web/.open-next/assets/_next/static/chunks/1lr1gmh4hbe2o.js +0 -1
  145. package/bundled/web/.open-next/assets/_next/static/chunks/23tr-x-2n25uu.js +0 -1
  146. package/bundled/web/.open-next/assets/_next/static/chunks/2v94k7fybopcq.css +0 -1
  147. package/bundled/web/.open-next/assets/_next/static/chunks/3pk89-bwz664l.js +0 -3
  148. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +0 -3
  149. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +0 -3
  150. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03_h7-u._.js +0 -3
  151. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/0_kl__next-internal_server_app_(app)_w_[slug]_threads_[traceId]_page_actions_0zp36iw.js +0 -3
  152. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1efy1ql._.js +0 -3
  153. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0pnr14d._.js +0 -65
  154. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web__next-internal_server_app_(app)_w_[slug]_threads_page_actions_0xnqg_4.js +0 -3
  155. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_1sy648u._.js +0 -3
  156. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_threads_page_tsx_0hy955b._.js +0 -3
  157. /package/bundled/web/.open-next/assets/_next/static/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/_buildManifest.js +0 -0
  158. /package/bundled/web/.open-next/assets/_next/static/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/_clientMiddlewareManifest.js +0 -0
  159. /package/bundled/web/.open-next/assets/_next/static/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/_ssgManifest.js +0 -0
  160. /package/bundled/web/.open-next/cache/{LNMccyS5SZzzNBkt0dM4K → DxaidmHIn9LNWpfCVjlN9}/robots.txt.cache +0 -0
  161. /package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/{threads → traces}/[traceId]/page/react-loadable-manifest.json +0 -0
  162. /package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/{threads → traces}/page/react-loadable-manifest.json +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,222862,636557,e=>{"use strict";var t=e.i(811374);class n extends Error{status;details;constructor(e,t,n){super(e),this.name="ApiError",this.status=t,this.details=n}get isNetworkError(){return 0===this.status}get isRateLimit(){return 429===this.status}get isUnauthorized(){return 401===this.status}}function a(e,t){return"validation error"===e&&t?.length?function(e){let[t,...n]=e.split(":"),a=n.join(":").trim();if(!a)return e;let i=t.trim(),r=i.trim().replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),s=a.replace(/^required$/i,"is required"),o=s.toLowerCase().replace(/[_-]+/g," "),l=i.toLowerCase().replace(/[_-]+/g," ");return l&&o.startsWith(`${l} `)&&(s=s.slice(i.length).trimStart()),r?`${r} ${s}`:s}(t[0]):e}async function i(e,t){let i;try{i=await fetch(""+e,{...t,credentials:"include",headers:{"Content-Type":"application/json",...t?.headers}})}catch(e){if(e instanceof TypeError)throw new n("Unable to connect — check your network",0);throw e}if(401===i.status)throw window.location.href="/sign-in",new n("Unauthorized",401);if(!i.ok){let e,t;try{let n=await i.json();e=n.error,t=n.details}catch{}if(429===i.status)throw new n("Please wait a moment before trying again",429);if(i.status>=500)throw new n(a(e,t)||"Something went wrong — please try again",i.status,t);throw new n(a(e,t)||"Something went wrong",i.status,t)}if(204!==i.status)return i.json()}function r(e,t){let n=new URLSearchParams({workspace_id:e,...t});return`?${n.toString()}`}e.s(["ApiError",0,n],636557),parseInt(t.default.env.NEXT_PUBLIC_MOCK_NETWORK_DELAY_MS||"300",10);let s=async(e,t,a,s,o)=>{let l;if(!s||0===s.length)return i(`/api/conversations/${e}/messages${r(a)}`,{method:"POST",body:JSON.stringify({content:t,...o?{metadata:o}:{}})});let c=new FormData;for(let e of(c.append("content",t),o&&c.append("metadata",JSON.stringify(o)),s))c.append("file",e);try{l=await fetch(`/api/conversations/${e}/messages${r(a)}`,{method:"POST",credentials:"include",body:c})}catch(e){if(e instanceof TypeError)throw new n("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new n("Unauthorized",401);if(!l.ok){let e,t;try{let n=await l.json();e=n.error,t=n.details}catch{}if(429===l.status)throw new n("Please wait a moment before trying again",429);if(l.status>=500)throw new n(e||"Something went wrong — please try again",l.status,t);throw new n(e||"Something went wrong",l.status,t)}return l.json()},o=async(e,t)=>{let n=new URLSearchParams({workspace_id:t}),a=await fetch(`/api/email/${e}/body?${n}`,{credentials:"include"});if(!a.ok)return{content:"(body not available)",isHtml:!1};let i=a.headers.get("Content-Type")??"";return{content:await a.text(),isHtml:i.includes("text/html")}},l=async(e,t)=>{let a=new FormData;a.append("file",e);let i=await fetch(`/api/email/upload${r(t)}`,{method:"POST",credentials:"include",body:a});if(!i.ok)throw new n(await i.text().catch(()=>"Upload failed"),i.status);return i.json()},c=async(e,t)=>{let a;if(!t.files||0===t.files.length)return i(`/api/issues${r(e)}`,{method:"POST",body:JSON.stringify({agent_id:t.agent_id,title:t.title,description:t.description})});let s=new FormData;for(let e of(t.agent_id&&s.append("agent_id",t.agent_id),s.append("title",t.title),s.append("description",t.description??""),t.files))s.append("file",e);try{a=await fetch(`/api/issues${r(e)}`,{method:"POST",credentials:"include",body:s})}catch(e){if(e instanceof TypeError)throw new n("Unable to connect — check your network",0);throw e}if(401===a.status)throw window.location.href="/sign-in",new n("Unauthorized",401);if(!a.ok){let e,t;try{let n=await a.json();e=n.error,t=n.details}catch{}if(429===a.status)throw new n("Please wait a moment before trying again",429);if(a.status>=500)throw new n(e||"Something went wrong — please try again",a.status,t);throw new n(e||"Something went wrong",a.status,t)}return a.json()},u=async(e,t)=>{let n=new URLSearchParams({workspace_id:t}),a=await fetch(`/api/artifacts/${e}/content?${n}`,{credentials:"include"});return a.ok?a.text():"(content not available)"};e.s(["acceptInvite",0,e=>i(`/api/invite/${e}`,{method:"POST"}),"addWhitelistEmail",0,(e,t,n)=>i(`/api/agents/${e}/whitelist${r(n)}`,{method:"POST",body:JSON.stringify({email:t})}),"approveMeeting",0,(e,t,n)=>i(`/api/agents/${e}/meetings/${t}/approve${r(n)}`,{method:"POST"}),"cancelActiveTask",0,(e,t)=>i(`/api/conversations/${e}/active-task${r(t)}`,{method:"DELETE"}),"chatInit",0,(e,t,n)=>i(`/api/agents/${e}/chat-init${r(t)}`,{method:"POST",body:JSON.stringify({...n?{channel:n}:{}})}),"checkFreshness",0,(e,t)=>{let n={};return e.conversationId&&(n.conversation_id=e.conversationId),e.agentId&&(n.agent_id=e.agentId),e.channel&&(n.channel=e.channel),i(`/api/conversations/check-fresh${r(t,n)}`)},"conversationInit",0,(e,t,n)=>{let a={};return n?.newestMessageId&&(a.newest_message_id=n.newestMessageId),n?.messageCount&&(a.message_count=String(n.messageCount)),i(`/api/conversations/${e}/init${r(t,a)}`)},"createAgent",0,(e,t)=>i(`/api/agents${r(t)}`,{method:"POST",body:JSON.stringify(e)}),"createAgentLink",0,(e,t)=>i(`/api/agent-links${r(t)}`,{method:"POST",body:JSON.stringify(e)}),"createCalendarEvent",0,(e,t)=>i(`/api/calendar${r(t)}`,{method:"POST",body:JSON.stringify(e)}),"createChannelApi",0,(e,t)=>i(`/api/channels${r(e)}`,{method:"POST",body:JSON.stringify({name:t})}),"createConversation",0,(e,t,n)=>i(`/api/conversations${r(t)}`,{method:"POST",body:JSON.stringify({agent_id:e,...n?{channel:n}:{}})}),"createEmailAccount",0,(e,t,n)=>i(`/api/agents/${e}/email-accounts${r(n)}`,{method:"POST",body:JSON.stringify(t)}),"createInvite",0,e=>i(`/api/workspaces/${e}/invites${r(e)}`,{method:"POST"}),"createIssue",0,c,"createMachineToken",0,(e,t)=>i(`/api/machine-tokens${t?r(t):""}`,{method:"POST",body:JSON.stringify({name:e||"default"})}),"createMeeting",0,(e,t,n)=>i(`/api/agents/${e}/meetings${r(t)}`,{method:"POST",body:JSON.stringify(n)}),"deleteAgent",0,(e,t)=>i(`/api/agents/${e}${r(t)}`,{method:"DELETE"}),"deleteAgentLink",0,(e,t)=>i(`/api/agent-links/${e}${r(t)}`,{method:"DELETE"}),"deleteCalendarEvent",0,(e,t,n)=>i(`/api/calendar/${e}${r(t)}`,{method:"DELETE",...n&&n.scope?{headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}:{}}),"deleteChannelApi",0,(e,t)=>i(`/api/channels/${e}${r(t)}`,{method:"DELETE"}),"deleteEmail",0,(e,t)=>i(`/api/email/${e}${r(t)}`,{method:"DELETE"}),"deleteEmailAccount",0,(e,t,n)=>i(`/api/agents/${e}/email-accounts/${t}${r(n)}`,{method:"DELETE"}),"deleteIssue",0,(e,t)=>i(`/api/issues/${t}${r(e)}`,{method:"DELETE"}),"deleteMachine",0,(e,t)=>i(`/api/runtimes/machine${r(t,{daemon_id:e})}`,{method:"DELETE"}),"deleteMeeting",0,(e,t,n)=>i(`/api/agents/${e}/meetings/${t}${r(n)}`,{method:"DELETE"}),"deleteWorkspace",0,(e,t)=>i(`/api/workspaces/${e}${r(e)}`,{method:"DELETE",body:JSON.stringify({confirm_name:t})}),"fetchLatestCliVersion",0,()=>i("/api/cli/latest-version"),"fetchModelOptions",0,()=>i("/api/config/model-options"),"flagMessage",0,(e,t)=>i(`/api/flags${r(e)}`,{method:"POST",body:JSON.stringify({messageId:t})}),"getActiveTask",0,(e,t)=>i(`/api/conversations/${e}/active-task${r(t)}`),"getAgentSkills",0,(e,t)=>i(`/api/agents/${e}/skills${r(t)}`),"getArtifactContent",0,u,"getCalendarEvent",0,(e,t)=>i(`/api/calendar/${e}${r(t)}`),"getEmail",0,(e,t)=>i(`/api/email/${e}${r(t)}`),"getEmailBody",0,o,"getEmailThread",0,(e,t)=>i(`/api/email/${e}/thread${r(t)}`),"getFlaggedCount",0,e=>i(`/api/flags/count${r(e)}`),"getInboxCount",0,(e,t)=>{let n={};return t?.types?.length&&(n.types=t.types.join(",")),i(`/api/inbox/count${r(e,n)}`)},"getInviteInfo",0,e=>i(`/api/invite/${e}`),"getIssue",0,(e,t)=>i(`/api/issues/${t}${r(e)}`),"getMachineTokenStatus",0,()=>i("/api/machine-tokens/status"),"getMemberMe",0,e=>i(`/api/members/me${r(e)}`),"getMinCliVersion",0,()=>i("/api/config/min-version"),"getTask",0,(e,t)=>i(`/api/tasks/${e}${r(t)}`),"getTaskMessages",0,(e,t,n)=>i(`/api/tasks/${e}/messages${r(t,n?{since:String(n)}:void 0)}`),"getTrace",0,(e,t)=>i(`/api/traces/${e}${r(t)}`),"getWorkspaceOverview",0,e=>i(`/api/workspaces/${e}/overview${r(e)}`),"grantAgentAccess",0,(e,t,n)=>i(`/api/agents/${t}/access${r(e)}`,{method:"POST",body:JSON.stringify({user_id:n})}),"listAgentAccess",0,(e,t)=>i(`/api/agents/${t}/access${r(e)}`),"listAgentActiveTaskCounts",0,e=>i(`/api/agents/active-task-counts${r(e)}`),"listAgentActivity",0,(e,t,n)=>{let a={};return n?.limit&&(a.limit=String(n.limit)),n?.before&&(a.before=n.before),n?.beforeId&&(a.before_id=n.beforeId),n?.status&&(a.status=n.status),n?.type&&(a.type=n.type),i(`/api/agents/${e}/activity${r(t,a)}`)},"listAgentLinks",0,e=>i(`/api/agent-links${r(e)}`),"listAgentPins",0,e=>i(`/api/agents/pins${r(e)}`),"listAgents",0,e=>i(`/api/agents${r(e)}`),"listArtifacts",0,(e,t)=>i(`/api/artifacts${r(t,{conversation_id:e})}`),"listCalendarEvents",0,(e,t)=>{let n={};return t?.agentId&&(n.agentId=t.agentId),t?.from&&(n.from=t.from),t?.to&&(n.to=t.to),i(`/api/calendar${r(e,n)}`)},"listChannels",0,e=>i(`/api/channels${r(e)}`),"listEmailAccounts",0,(e,t)=>i(`/api/agents/${e}/email-accounts${r(t)}`),"listEmails",0,(e,t,n,a)=>i(`/api/email${r(t,{agentId:e,...n?{folder:n}:{},...a?{address:a}:{}})}`),"listFlaggedItems",0,(e,t)=>{let n={};return t?.limit&&(n.limit=String(t.limit)),t?.before&&(n.before=t.before),i(`/api/flags${r(e,n)}`)},"listFlaggedMessageIds",0,(e,t)=>i(`/api/flags${r(e,{conversation_id:t,ids_only:"true"})}`),"listInboxItems",0,(e,t)=>{let n={};return t?.limit&&(n.limit=String(t.limit)),t?.before&&(n.before=t.before),t?.types?.length&&(n.types=t.types.join(",")),i(`/api/inbox${r(e,n)}`)},"listInvites",0,e=>i(`/api/workspaces/${e}/invites${r(e)}`),"listIssues",0,(e,t)=>{let n={};return t?.agentId&&(n.agentId=t.agentId),t?.status&&(n.status=t.status),t?.terminal!==void 0&&(n.terminal=String(t.terminal)),i(`/api/issues${r(e,n)}`)},"listMeetings",0,(e,t)=>i(`/api/agents/${e}/meetings${r(t)}`),"listMembers",0,e=>i(`/api/workspaces/${e}/members${r(e)}`),"listMessages",0,(e,t,n)=>{let a={};return n?.limit&&(a.limit=String(n.limit)),n?.before&&(a.before=n.before),n?.beforeId&&(a.before_id=n.beforeId),i(`/api/conversations/${e}/messages${r(t,a)}`)},"listMessagesAroundTask",0,(e,t,n)=>i(`/api/conversations/${e}/messages${r(t,{around_task:n})}`),"listPreviousConversations",0,(e,t,n)=>{let a={exclude:n.exclude,before:n.before};return n.channel&&(a.channel=n.channel),n.limit&&(a.limit=String(n.limit)),i(`/api/agents/${e}/conversations${r(t,a)}`)},"listRuntimes",0,e=>i(`/api/runtimes${r(e)}`),"listTraces",0,(e,t)=>{let n={};return t?.limit&&(n.limit=String(t.limit)),t?.before&&(n.before=t.before),t?.status&&(n.status=t.status),t?.multiAgent&&(n.multiAgent="true"),t?.agentId&&(n.agentId=t.agentId),t?.channel&&(n.channel=t.channel),i(`/api/traces${r(e,n)}`)},"listWhitelist",0,(e,t)=>i(`/api/agents/${e}/whitelist${r(t)}`),"listWorkspaceActiveTasks",0,e=>i(`/api/agents/active-tasks${r(e)}`),"listWorkspaces",0,()=>i("/api/workspaces"),"markAllInboxRead",0,e=>i(`/api/inbox/read-all${r(e)}`,{method:"POST"}),"markInboxRead",0,(e,t)=>i(`/api/inbox/read${r(t)}`,{method:"POST",body:JSON.stringify({conversationId:e})}),"pinAgent",0,(e,t)=>i(`/api/agents/${t}/pin${r(e)}`,{method:"POST"}),"removeMember",0,(e,t)=>i(`/api/workspaces/${e}/members/${t}${r(e)}`,{method:"DELETE"}),"removeWhitelistEmail",0,(e,t,n)=>i(`/api/agents/${e}/whitelist/${t}${r(n)}`,{method:"DELETE"}),"renameChannelApi",0,(e,t,n)=>i(`/api/channels/${e}${r(t)}`,{method:"PATCH",body:JSON.stringify({name:n})}),"reorderAgentPins",0,(e,t)=>i(`/api/agents/pins/reorder${r(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"reorderChannelsApi",0,(e,t)=>i(`/api/channels/reorder${r(e)}`,{method:"PUT",body:JSON.stringify({ordered_channel_ids:t})}),"reorderUnpinnedAgents",0,(e,t)=>i(`/api/agents/sidebar/reorder${r(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"requestWorkspaceBrowse",0,(e,t,n,a)=>i(`/api/agents/${e}/workspace/browse${r(t)}`,{method:"POST",body:JSON.stringify({request_type:n,path:a})}),"retryTask",0,(e,t)=>i(`/api/tasks/${e}/retry${r(t)}`,{method:"POST"}),"revokeAgentAccess",0,(e,t,n,a=!1)=>i(`/api/agents/${t}/access/${n}${r(e)}${a?"&remove_whitelist=true":""}`,{method:"DELETE"}),"revokeInvite",0,(e,t)=>i(`/api/workspaces/${e}/invites/${t}${r(e)}`,{method:"DELETE"}),"sendEmail",0,(e,t,n,a,s,o,l,c)=>i(`/api/email/send${r(s)}`,{method:"POST",body:JSON.stringify({agentId:e,to:t,subject:n,htmlBody:a,attachments:o,...l,customAccountId:c})}),"sendMessage",0,s,"stopMeeting",0,(e,t,n)=>i(`/api/agents/${e}/meetings/${t}/stop${r(n)}`,{method:"POST"}),"syncEmailAccount",0,(e,t,n)=>i(`/api/agents/${e}/email-accounts/${t}/sync${r(n)}`,{method:"POST"}),"triggerRuntimeRescan",0,(e,t)=>i(`/api/runtimes/${e}/rescan${r(t)}`,{method:"POST"}),"triggerRuntimeUpdate",0,(e,t)=>i(`/api/runtimes/${e}/update${r(t)}`,{method:"POST"}),"unflagMessage",0,(e,t)=>i(`/api/flags/${t}${r(e)}`,{method:"DELETE"}),"unpinAgent",0,(e,t)=>i(`/api/agents/${t}/pin${r(e)}`,{method:"DELETE"}),"updateAgent",0,(e,t,n)=>i(`/api/agents/${e}${r(n)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateAgentLink",0,(e,t,n)=>i(`/api/agent-links/${e}${r(n)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateCalendarEvent",0,(e,t,n)=>i(`/api/calendar/${e}${r(n)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateEmailStatus",0,(e,t,n)=>i(`/api/email/${e}${r(t)}`,{method:"PATCH",body:JSON.stringify({status:n})}),"updateIssue",0,(e,t,n)=>i(`/api/issues/${t}${r(e)}`,{method:"PATCH",body:JSON.stringify(n)}),"updateMemberMe",0,(e,t)=>i(`/api/members/me${r(e)}`,{method:"PATCH",body:JSON.stringify({global_instruction:t})}),"updateWorkspace",0,(e,t)=>i(`/api/workspaces/${e}${r(e)}`,{method:"PATCH",body:JSON.stringify(t)}),"uploadEmailAttachment",0,l],222862)},500324,e=>{"use strict";var t=e.i(653772),n=e.i(511043);let a=(0,n.createContext)(null);e.s(["WorkspaceProvider",0,function({workspaceId:e,slug:i,children:r}){return(0,n.useEffect)(()=>{try{localStorage.setItem("lastWorkspace",i)}catch{}},[i]),(0,t.jsx)(a.Provider,{value:{workspaceId:e,slug:i},children:r})},"useWorkspace",0,function(){let e=(0,n.useContext)(a);if(!e)throw Error("useWorkspace must be used within WorkspaceProvider");return e}])},642342,e=>{"use strict";var t=e.i(811374),n=e.i(511043);let a=(0,e.i(613349).isLocalMode)(),i=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,r=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let o=(0,n.useRef)(null),l=(0,n.useRef)(r),c=(0,n.useRef)(e),u=(0,n.useRef)(t?.onReconnect),d=(0,n.useRef)(null),g=(0,n.useRef)(!1),p=(0,n.useRef)(0),f=(0,n.useRef)(null),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{c.current=e},[e]),(0,n.useEffect)(()=>{u.current=t?.onReconnect},[t?.onReconnect]);let h=(0,n.useRef)(null),$=(0,n.useCallback)(()=>{let e=Math.min(l.current,s);l.current=Math.min(2*e,s),d.current=setTimeout(()=>{h.current?.()},e+500*Math.random())},[]),w=(0,n.useCallback)(async()=>{let e,t,n,s=i;try{let n=await fetch("/api/ws/token");if(!n.ok){console.warn("[ws] token fetch failed:",n.status),$();return}let a=await n.json();e=a.userId,t=a.token,a.wsPort&&(s=a.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),$();return}let d=a?`ws://localhost:${s}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{n=new WebSocket(d)}catch(e){console.warn("[ws] WebSocket creation failed:",e),$();return}o.current=n,n.onopen=()=>{l.current=r,n.send(JSON.stringify({type:"auth",token:t})),g.current&&u.current?.(),g.current=!0,p.current=Date.now(),f.current=setInterval(()=>{n.readyState===WebSocket.OPEN&&n.send("ping")},25e3),m.current=setInterval(()=>{Date.now()-p.current>3e4&&n.close()},5e3)},n.onmessage=e=>{p.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return void n.send(JSON.stringify({type:"check_daemon_status"}));c.current(t)}catch{}},n.onerror=()=>{},n.onclose=()=>{n===o.current&&(f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null),$())}},[$]);(0,n.useEffect)(()=>{h.current=w},[w]),(0,n.useEffect)(()=>(w(),()=>{null!==d.current&&(clearTimeout(d.current),d.current=null),f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null);let e=o.current;o.current=null,e?.close()}),[w])}])},355578,e=>{"use strict";var t=e.i(653772),n=e.i(511043),a=e.i(222862),i=e.i(516266),r=e.i(642342);let s=(0,n.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:o}){let[l,c]=(0,n.useState)([]),[u,d]=(0,n.useState)([]),[g,p]=(0,n.useState)(!0),[f,m]=(0,n.useState)({}),[h,$]=(0,n.useState)([]),w=(0,n.useRef)(!1),[y,b]=(0,n.useState)([]),[k,S]=(0,n.useState)(null),E=(0,n.useCallback)(()=>S(null),[]),[v,T]=(0,n.useState)(new Map),[I,O]=(0,n.useState)(new Map),A=(0,n.useRef)(!1),C=(0,n.useRef)(new Set),_=(0,n.useRef)(new Set),N=(0,n.useRef)(!0),P=(0,n.useRef)(!1),M=(0,n.useCallback)(e=>(C.current.add(e),()=>{C.current.delete(e)}),[]),L=(0,n.useCallback)(e=>(_.current.add(e),()=>{_.current.delete(e)}),[]),R=(0,n.useRef)(!1),J=(0,n.useCallback)(async()=>{if(!R.current){R.current=!0;try{if(w.current){let t=await (0,a.listWorkspaceActiveTasks)(e);if(!N.current)return;$(t.tasks);let n={};for(let e of t.tasks)n[e.agent_id]=(n[e.agent_id]??0)+1;m(n),w.current=t.tasks.length>0}else{let t=await (0,a.listAgentActiveTaskCounts)(e);if(!N.current)return;if(m(t.counts),Object.values(t.counts).some(e=>e>0)){w.current=!0;let t=await (0,a.listWorkspaceActiveTasks)(e);N.current&&$(t.tasks)}else $([])}}catch{}finally{R.current=!1}}},[e]);(0,n.useEffect)(()=>{N.current=!0,J();let e=setInterval(J,15e3);return()=>{N.current=!1,clearInterval(e)}},[J]);let x=(0,n.useCallback)(async()=>{try{let[t,n,i,r]=await Promise.all([(0,a.listAgents)(e),(0,a.listRuntimes)(e),(0,a.listAgentPins)(e),(0,a.listAgentLinks)(e)]);c(t),d(n),b(r),T(new Map(i.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),O(new Map(i.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{p(!1),A.current=!0}},[e]),D=(0,n.useCallback)(async()=>{if(!P.current){P.current=!0;try{let t=await (0,a.listRuntimes)(e);d(t)}catch{}finally{P.current=!1}}},[e]);(0,n.useEffect)(()=>{x()},[x]),(0,n.useEffect)(()=>{let e=null,t=setInterval(()=>{"visible"===document.visibilityState&&D()},3e4),n=()=>{"visible"===document.visibilityState&&(e=setTimeout(()=>D(),2e3*Math.random()))};return document.addEventListener("visibilitychange",n),()=>{clearInterval(t),e&&clearTimeout(e),document.removeEventListener("visibilitychange",n)}},[D]);let W=(0,n.useCallback)(t=>{for(let e of C.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;x();break;case"runtime.deleted":x();break;case"runtime.status":if(t.workspaceId!==e)break;D();break;case"agent.created":if(t.workspaceId!==e)break;S({agentId:t.agentId,parentAgentId:t.parentAgentId}),x();break;case"task.updated":J()}},[x,D,J,e]),U=(0,n.useCallback)(()=>{for(let e of(D(),_.current))e()},[D]);(0,r.useUserWs)(W,{onReconnect:U});let F=(0,n.useCallback)(async t=>{try{let n=await (0,a.createAgent)(t,e);return await x(),n}catch(e){return i.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[x,e]),j=(0,n.useCallback)(async(t,n)=>{try{return await (0,a.updateAgent)(t,n,e),await x(),!0}catch(e){return i.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[x,e]),B=(0,n.useCallback)(async t=>{try{return await (0,a.deleteAgent)(t,e),await x(),!0}catch(e){return i.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[x,e]),H=(0,n.useCallback)(async t=>{T(e=>{let n=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:n+1})});try{await (0,a.pinAgent)(e,t)}catch{T(e=>{let n=new Map(e);return n.delete(t),n}),i.toast.error("Failed to pin agent")}},[e]),X=(0,n.useCallback)(async t=>{let n;T(e=>{n=e.get(t);let a=new Map(e);return a.delete(t),a});try{await (0,a.unpinAgent)(e,t)}catch{void 0!==n&&T(e=>new Map(e).set(t,n)),i.toast.error("Failed to unpin agent")}},[e]),q=(0,n.useCallback)(async t=>{let n=new Map(v);T(e=>{let n=new Map(e);return t.forEach((e,t)=>{let a=n.get(e);a&&n.set(e,{...a,position:t})}),n});try{await (0,a.reorderAgentPins)(e,t)}catch{T(n),i.toast.error("Failed to reorder pins")}},[e,v]),Y=(0,n.useCallback)(async t=>{let n=new Map(I);O(new Map(t.map((e,t)=>[e,t])));try{await (0,a.reorderUnpinnedAgents)(e,t)}catch{O(n),i.toast.error("Failed to reorder agents")}},[e,I]),z=(0,n.useCallback)(()=>{let e=u.find(e=>"online"===e.status);return e?.id??""},[u]),K=(0,n.useCallback)(async()=>{try{return(await (0,a.createMachineToken)("cli",e)).token}catch(e){return i.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),V=(0,n.useCallback)(async t=>{try{return await (0,a.deleteMachine)(t,e),await x(),!0}catch(e){return i.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[x,e]);return(0,t.jsx)(s.Provider,{value:{workspaceId:e,agents:l,agentLinks:y,runtimes:u,loading:g,activeTaskCounts:f,activeTaskDetails:h,pendingNewAgent:k,clearPendingNewAgent:E,pins:v,reload:x,subscribeWs:M,subscribeReconnect:L,handleCreateAgent:F,handleUpdateAgent:j,handleDeleteAgent:B,handlePinAgent:H,handleUnpinAgent:X,handleReorderPins:q,unpinnedOrder:I,handleReorderUnpinned:Y,getFirstOnlineRuntimeId:z,handleGenerateToken:K,handleDeleteMachine:V},children:o})},"useAgentContext",0,function(){let e=(0,n.useContext)(s);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e},"useAgentContextSafe",0,function(){return(0,n.useContext)(s)}])},899746,e=>{"use strict";let t="browser-notification-enabled",n="browser-notification-events",a=["completed","failed"],i={completed:"Task Completed",failed:"Task Failed"};function r(){return"Notification"in window}function s(){return"true"===localStorage.getItem(t)}function o(){try{let e=localStorage.getItem(n);if(e)return JSON.parse(e)}catch{}return[...a]}async function l(){return!!r()&&("granted"===Notification.permission||"denied"!==Notification.permission&&"granted"===await Notification.requestPermission())}e.s(["NOTIFICATION_EVENTS",0,a,"NOTIFICATION_EVENT_LABELS",0,i,"getNotificationEnabled",0,s,"getNotificationEvents",0,o,"isNotificationSupported",0,r,"requestNotificationPermission",0,l,"sendTaskNotification",0,function(e,t,n){if(!r()||"granted"!==Notification.permission||!s()||!o().includes(e))return;let a=i[e]??`Task ${e}`;new Notification(t?`${t} — ${a}`:a,{body:n??"",icon:"/alook.svg"})},"setNotificationEnabled",0,function(e){localStorage.setItem(t,String(e))},"setNotificationEvents",0,function(e){localStorage.setItem(n,JSON.stringify(e))}])},875494,685835,e=>{"use strict";var t=e.i(653772),n=e.i(511043),a=e.i(222862),i=e.i(355578),r=e.i(500324),s=e.i(899746);let o="inbox-filter-types",l=["user_dm_message","calendar_event","email_notification"],c=["user_dm_message"],u=["user_dm_message"];function d(){try{let e=localStorage.getItem(o);if(!e)return c;let t=JSON.parse(e).filter(e=>l.includes(e));if(0===t.length)return c;for(let e of u)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,l,"MANDATORY_INBOX_TYPES",0,u,"getInboxFilterTypes",0,d,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of u)t.includes(e)||t.unshift(e);localStorage.setItem(o,JSON.stringify(t))}],685835);let g=(0,n.createContext)(null),p={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:o}=(0,r.useWorkspace)(),{subscribeWs:l,agents:c}=(0,i.useAgentContext)(),[u,p]=(0,n.useState)(0),[f,m]=(0,n.useState)(0),h=(0,n.useRef)(null),$=(0,n.useRef)(null),w=(0,n.useRef)(c);(0,n.useEffect)(()=>{w.current=c});let y=(0,n.useCallback)(()=>{let e=d();(0,a.getInboxCount)(o,{types:e}).then(e=>{let t=h.current;if(h.current=e.count,p(e.count),null!==t&&e.count>t){m(e=>e+1);let e=$.current?w.current.find(e=>e.id===$.current):void 0;(0,s.sendTaskNotification)("completed",e?.name)}$.current=null}).catch(()=>{})},[o]),b=(0,n.useCallback)(()=>{p(e=>Math.max(0,e-1))},[]);return(0,n.useEffect)(()=>{y()},[y]),(0,n.useEffect)(()=>l(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&($.current=e.agentId,y())}),[l,y]),(0,n.useEffect)(()=>{let e=setInterval(y,6e4);return()=>clearInterval(e)},[y]),(0,t.jsx)(g.Provider,{value:{count:u,notificationToken:f,refresh:y,decrement:b},children:e})},"useInboxCount",0,function(){return(0,n.useContext)(g)??p}],875494)},631822,e=>{e.v(t=>Promise.all(["static/chunks/3c9-pu4v167fy.js"].map(t=>e.l(t))).then(()=>t(70725)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,392511,e=>{"use strict";var t=e.i(511043);e.s(["useControlled",0,function({controlled:e,default:r,name:n,state:a="value"}){let{current:s}=t.useRef(void 0!==e),[l,i]=t.useState(r),u=t.useCallback(e=>{s||i(e)},[]);return[s?e:l,u]}])},241836,909578,e=>{"use strict";e.i(811374);var t,r=e.i(154680),n=e.i(511043),a=e.i(959947);let s=((t={}).disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t),l={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},i={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},u={disabled:!1,...i};e.s(["DEFAULT_FIELD_ROOT_STATE",0,u,"DEFAULT_FIELD_STATE_ATTRIBUTES",0,i,"DEFAULT_VALIDITY_STATE",0,l,"fieldValidityMapping",0,{valid:e=>null===e?null:e?{[s.valid]:""}:{[s.invalid]:""}}],909578);let o={invalid:void 0,name:void 0,validityData:{state:l,errors:[],error:"",value:"",initialValue:null},setValidityData:a.NOOP,disabled:void 0,touched:i.touched,setTouched:a.NOOP,dirty:i.dirty,setDirty:a.NOOP,filled:i.filled,setFilled:a.NOOP,focused:i.focused,setFocused:a.NOOP,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:u,markedDirtyRef:{current:!1},registerFieldControl:a.NOOP,validation:{getValidationProps:(e=a.EMPTY_OBJECT)=>e,getInputValidationProps:(e=a.EMPTY_OBJECT)=>e,inputRef:{current:null},commit:async()=>{}}},c=n.createContext(o);e.s(["FieldRootContext",0,c,"useFieldRootContext",0,function(e=!0){let t=n.useContext(c);if(t.setValidityData===a.NOOP&&!e)throw Error((0,r.default)(28));return t}],241836)},65756,e=>{"use strict";var t=e.i(511043),r=e.i(990966),n=e.i(241836);e.s(["useRegisterFieldControl",0,function(e,a,s,l,i=!0){let{registerFieldControl:u}=(0,n.useFieldRootContext)(),o=t.useRef(null);o.current||(o.current=Symbol()),(0,r.useIsoLayoutEffect)(()=>{let t=o.current;if(t&&i)return u(t,{controlRef:e,getValue:l,id:a,value:s}),()=>{u(t,void 0)}},[e,i,l,a,u,s])}])},988072,e=>{"use strict";var t=e.i(511043),r=e.i(959947);let n=t.createContext({controlId:void 0,registerControlId:r.NOOP,labelId:void 0,setLabelId:r.NOOP,messageIds:[],setMessageIds:r.NOOP,getDescriptionProps:e=>e});e.s(["LabelableContext",0,n,"useLabelableContext",0,function(){return t.useContext(n)}])},865306,e=>{"use strict";var t=e.i(511043),r=e.i(990966),n=e.i(298604),a=e.i(826918),s=e.i(92615),l=e.i(959947),i=e.i(962795),u=e.i(988072);e.s(["useLabelableId",0,function(e={}){let{id:o,implicit:c=!1,controlRef:d}=e,{controlId:f,registerControlId:h}=(0,u.useLabelableContext)(),m=(0,i.useBaseUiId)(o),p=c?f:void 0,g=(0,a.useRefWithInit)(()=>Symbol("labelable-control")),v=t.useRef(!1),b=t.useRef(null!=o),C=(0,n.useStableCallback)(()=>{v.current&&h!==l.NOOP&&(v.current=!1,h(g.current,void 0))});return(0,r.useIsoLayoutEffect)(()=>{let e;if(h!==l.NOOP){if(c){let t=d?.current;e=(0,s.isElement)(t)&&null!=t.closest("label")?o??null:p??m}else if(null!=o)b.current=!0,e=o;else{if(!b.current)return void C();e=m}if(void 0===e)return void C();v.current=!0,h(g.current,e)}},[o,d,p,h,c,m,g,C]),t.useEffect(()=>C,[C]),f??m}])},251923,e=>{"use strict";var t=e.i(511043),r=e.i(959947);let n=t.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:r.NOOP,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});e.s(["useFormContext",0,function(){return t.useContext(n)}])},585248,e=>{"use strict";var t=e.i(92615),r=e.i(236432),n=e.i(298604),a=e.i(168879),s=e.i(990966),l=e.i(962795),i=e.i(988072);e.s(["useLabel",0,function(e={}){let u,{id:o,fallbackControlId:c,native:d=!1,setLabelId:f,focusControl:h}=e,{controlId:m,setLabelId:p}=(0,i.useLabelableContext)(),g=(0,n.useStableCallback)(e=>{p(e),f?.(e)}),v=(u=(0,l.useBaseUiId)(o),(0,s.useIsoLayoutEffect)(()=>(g(u),()=>{g(void 0)}),[u,g]),u),b=m??c;function C(e){let n=(0,a.getTarget)(e.nativeEvent);n?.closest("button,input,select,textarea")||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),d||function(e){if(h)return h(e,b);if(!b)return;let n=(0,r.ownerDocument)(e.currentTarget).getElementById(b);(0,t.isHTMLElement)(n)&&n.focus({focusVisible:!0})}(e))}return d?{id:v,htmlFor:b??void 0,onMouseDown:C}:{id:v,onClick:C,onPointerDown(e){e.preventDefault()}}}],585248)},386102,e=>{"use strict";var t=e.i(511043),r=e.i(695681);let n=t.forwardRef(function(e,t){let{className:n,render:a,orientation:s="horizontal",style:l,...i}=e;return(0,r.useRenderElement)("div",e,{state:{orientation:s},ref:t,props:[{role:"separator","aria-orientation":s},i]})});e.s(["Separator",0,n])},991065,e=>{"use strict";var t=e.i(511043);let r=t.createContext(void 0),n={disableStyleElements:!1};e.s(["useCSPContext",0,function(){return t.useContext(r)??n}])},392662,e=>{"use strict";var t=e.i(511043);let r=t.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});e.s(["CompositeListContext",0,r,"useCompositeListContext",0,function(){return t.useContext(r)}])},657614,e=>{"use strict";var t,r=e.i(511043),n=e.i(990966),a=e.i(392662);let s=((t={})[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t);e.s(["IndexGuessBehavior",0,s,"useCompositeListItem",0,function(e={}){let{label:t,metadata:l,textRef:i,indexGuessBehavior:u,index:o}=e,{register:c,unregister:d,subscribeMapChange:f,elementsRef:h,labelsRef:m,nextIndexRef:p}=(0,a.useCompositeListContext)(),g=r.useRef(-1),[v,b]=r.useState(o??(u===s.GuessFromOrder?()=>{if(-1===g.current){let e=p.current;p.current+=1,g.current=e}return g.current}:-1)),C=r.useRef(null),y=r.useCallback(e=>{if(C.current=e,-1!==v&&null!==e&&(h.current[v]=e,m)){let r=void 0!==t;m.current[v]=r?t:i?.current?.textContent??e.textContent}},[v,h,m,t,i]);return(0,n.useIsoLayoutEffect)(()=>{if(null!=o)return;let e=C.current;if(e)return c(e,l),()=>{d(e)}},[o,c,d,l]),(0,n.useIsoLayoutEffect)(()=>{if(null==o)return f(e=>{let t=C.current?e.get(C.current)?.index:null;null!=t&&b(t)})},[o,f,b]),r.useMemo(()=>({ref:y,index:v}),[v,y])}])},814378,e=>{"use strict";var t=e.i(511043),r=e.i(826918),n=e.i(298604),a=e.i(990966),s=e.i(392662),l=e.i(653772);function i(){return new Map}function u(){return new Set}function o(e,t){let r=e.compareDocumentPosition(t);return r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS?1:0}e.s(["CompositeList",0,function(e){let{children:c,elementsRef:d,labelsRef:f,onMapChange:h}=e,m=(0,n.useStableCallback)(h),p=t.useRef(0),g=(0,r.useRefWithInit)(u).current,v=(0,r.useRefWithInit)(i).current,[b,C]=t.useState(0),y=t.useRef(b),x=(0,n.useStableCallback)((e,t)=>{v.set(e,t??null),y.current+=1,C(y.current)}),w=(0,n.useStableCallback)(e=>{v.delete(e),y.current+=1,C(y.current)}),k=t.useMemo(()=>{let e=new Map;return Array.from(v.keys()).filter(e=>e.isConnected).sort(o).forEach((t,r)=>{let n=v.get(t)??{};e.set(t,{...n,index:r})}),e},[v,b]);(0,a.useIsoLayoutEffect)(()=>{if("function"!=typeof MutationObserver||0===k.size)return;let e=new MutationObserver(e=>{let t=new Set,r=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(r),e.addedNodes.forEach(r)}),0===t.size&&(y.current+=1,C(y.current))});return k.forEach((t,r)=>{r.parentElement&&e.observe(r.parentElement,{childList:!0})}),()=>{e.disconnect()}},[k]),(0,a.useIsoLayoutEffect)(()=>{y.current===b&&(d.current.length!==k.size&&(d.current.length=k.size),f&&f.current.length!==k.size&&(f.current.length=k.size),p.current=k.size),m(k)},[m,k,d,f,b]),(0,a.useIsoLayoutEffect)(()=>()=>{d.current=[]},[d]),(0,a.useIsoLayoutEffect)(()=>()=>{f&&(f.current=[])},[f]);let E=(0,n.useStableCallback)(e=>(g.add(e),()=>{g.delete(e)}));(0,a.useIsoLayoutEffect)(()=>{g.forEach(e=>e(k))},[g,k]);let N=t.useMemo(()=>({register:x,unregister:w,subscribeMapChange:E,elementsRef:d,labelsRef:f,nextIndexRef:p}),[x,w,E,d,f,p]);return(0,l.jsx)(s.CompositeListContext.Provider,{value:N,children:c})}])},26349,e=>{"use strict";var t=e.i(452691);e.s(["CheckIcon",()=>t.default])},485322,e=>{"use strict";let t=(0,e.i(419412).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["default",0,t])},490159,422987,e=>{"use strict";function t(e,r=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(r,Math.min(e,n))}e.s(["clamp",0,t],422987),e.s(["SCROLL_EDGE_TOLERANCE_PX",0,1,"getMaxScrollOffset",0,function(e,t){return Math.max(0,e-t)},"normalizeScrollOffset",0,function(e,r){if(r<=0)return 0;let n=t(e,0,r),a=r-n,s=n<=1,l=a<=1;return s&&l?n<=a?0:r:s?0:l?r:n}],490159)},358719,e=>{"use strict";var t=e.i(653772);let r="base-ui-disable-scrollbar";e.s(["styleDisableScrollbar",0,{className:r,getElement:e=>(0,t.jsx)("style",{nonce:e,href:r,precedence:"base-ui:low",children:`.${r}{scrollbar-width:none}.${r}::-webkit-scrollbar{display:none}`})}])},400175,e=>{"use strict";e.i(126366),e.i(819748),e.i(108772),e.i(261819),e.s([])},571441,e=>{"use strict";let t=(0,e.i(419412).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",0,t],571441)},872937,e=>{"use strict";var t=e.i(653772),r=e.i(511043),n=e.i(222862),a=e.i(516266);let s=(0,r.createContext)(null);function l(e,t){return t?`alook:channel:${e}:${t}`:`alook:channel:${e}`}e.s(["ChannelProvider",0,function({workspaceId:e,children:i}){let[u,o]=(0,r.useState)([]),[c,d]=(0,r.useState)("default"),[f,h]=(0,r.useState)(!0),[m,p]=(0,r.useState)(null),[g,v]=(0,r.useState)(!1),[b,C]=(0,r.useState)(null),[y,x]=(0,r.useState)(null),w=(0,r.useCallback)(async()=>{try{let t=await (0,n.listChannels)(e);o(t)}catch{o([])}},[e]);(0,r.useEffect)(()=>{w().finally(()=>h(!1))},[e,w]),(0,r.useEffect)(()=>{m&&d(localStorage.getItem(l(e,m))??"default")},[e,m]);let k=(0,r.useCallback)(t=>{d(t);try{localStorage.setItem(l(e,m),t)}catch{}},[e,m]),E=(0,r.useCallback)(async t=>{if(!g){v(!0);try{let r=await (0,n.createChannelApi)(e,t);return await w(),r}finally{v(!1)}}},[e,w,g]),N=(0,r.useCallback)(async(t,r)=>{if(!y){x(t);try{let a=u.find(e=>e.id===t);await (0,n.renameChannelApi)(t,e,r),a&&a.name===c&&k(r),await w()}finally{x(null)}}},[e,u,c,k,w,y]),S=(0,r.useCallback)(async t=>{if(!b){C(t);try{let r=u.find(e=>e.id===t);await (0,n.deleteChannelApi)(t,e),r&&r.name===c&&k("default"),await w()}finally{C(null)}}},[e,u,c,k,w,b]),I=(0,r.useCallback)(async t=>{o(e=>{let r=new Map(e.map(e=>[e.id,e])),n=t.map(e=>r.get(e)).filter(e=>void 0!==e),a=new Set(t);return[...e.filter(e=>!a.has(e.id)),...n]});try{await (0,n.reorderChannelsApi)(e,t)}catch{await w(),a.toast.error("Failed to reorder channels")}},[e,w]);return(0,t.jsx)(s.Provider,{value:{channels:u,activeChannel:c,loading:f,creating:g,deleting:b,renaming:y,setActiveChannel:k,setAgentId:p,createChannel:E,renameChannel:N,deleteChannel:S,reorderChannels:I,refresh:w},children:i})},"useChannel",0,function(){let e=(0,r.useContext)(s);if(!e)throw Error("useChannel must be used within a ChannelProvider");return e}])},692670,e=>{"use strict";var t=e.i(251924);e.s(["X",()=>t.default])},496673,895449,e=>{"use strict";let t=(0,e.i(419412).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t],895449),e.s(["ChevronRight",0,t],496673)},642342,e=>{"use strict";var t=e.i(811374),r=e.i(511043);let n=(0,e.i(613349).isLocalMode)(),a=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,l=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let i=(0,r.useRef)(null),u=(0,r.useRef)(s),o=(0,r.useRef)(e),c=(0,r.useRef)(t?.onReconnect),d=(0,r.useRef)(null),f=(0,r.useRef)(!1),h=(0,r.useRef)(0),m=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{o.current=e},[e]),(0,r.useEffect)(()=>{c.current=t?.onReconnect},[t?.onReconnect]);let g=(0,r.useRef)(null),v=(0,r.useCallback)(()=>{let e=Math.min(u.current,l);u.current=Math.min(2*e,l),d.current=setTimeout(()=>{g.current?.()},e+500*Math.random())},[]),b=(0,r.useCallback)(async()=>{let e,t,r,l=a;try{let r=await fetch("/api/ws/token");if(!r.ok){console.warn("[ws] token fetch failed:",r.status),v();return}let n=await r.json();e=n.userId,t=n.token,n.wsPort&&(l=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),v();return}let d=n?`ws://localhost:${l}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{r=new WebSocket(d)}catch(e){console.warn("[ws] WebSocket creation failed:",e),v();return}i.current=r,r.onopen=()=>{u.current=s,r.send(JSON.stringify({type:"auth",token:t})),f.current&&c.current?.(),f.current=!0,h.current=Date.now(),m.current=setInterval(()=>{r.readyState===WebSocket.OPEN&&r.send("ping")},25e3),p.current=setInterval(()=>{Date.now()-h.current>3e4&&r.close()},5e3)},r.onmessage=e=>{h.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return void r.send(JSON.stringify({type:"check_daemon_status"}));o.current(t)}catch{}},r.onerror=()=>{},r.onclose=()=>{r===i.current&&(m.current&&(clearInterval(m.current),m.current=null),p.current&&(clearInterval(p.current),p.current=null),v())}},[v]);(0,r.useEffect)(()=>{g.current=b},[b]),(0,r.useEffect)(()=>(b(),()=>{null!==d.current&&(clearTimeout(d.current),d.current=null),m.current&&(clearInterval(m.current),m.current=null),p.current&&(clearInterval(p.current),p.current=null);let e=i.current;i.current=null,e?.close()}),[b])}])},355578,e=>{"use strict";var t=e.i(653772),r=e.i(511043),n=e.i(222862),a=e.i(516266),s=e.i(642342);let l=(0,r.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:i}){let[u,o]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),[f,h]=(0,r.useState)(!0),[m,p]=(0,r.useState)({}),[g,v]=(0,r.useState)([]),b=(0,r.useRef)(!1),[C,y]=(0,r.useState)([]),[x,w]=(0,r.useState)(null),k=(0,r.useCallback)(()=>w(null),[]),[E,N]=(0,r.useState)(new Map),[S,I]=(0,r.useState)(new Map),O=(0,r.useRef)(!1),T=(0,r.useRef)(new Set),R=(0,r.useRef)(new Set),M=(0,r.useRef)(!0),A=(0,r.useRef)(!1),_=(0,r.useCallback)(e=>(T.current.add(e),()=>{T.current.delete(e)}),[]),L=(0,r.useCallback)(e=>(R.current.add(e),()=>{R.current.delete(e)}),[]),P=(0,r.useRef)(!1),j=(0,r.useCallback)(async()=>{if(!P.current){P.current=!0;try{if(b.current){let t=await (0,n.listWorkspaceActiveTasks)(e);if(!M.current)return;v(t.tasks);let r={};for(let e of t.tasks)r[e.agent_id]=(r[e.agent_id]??0)+1;p(r),b.current=t.tasks.length>0}else{let t=await (0,n.listAgentActiveTaskCounts)(e);if(!M.current)return;if(p(t.counts),Object.values(t.counts).some(e=>e>0)){b.current=!0;let t=await (0,n.listWorkspaceActiveTasks)(e);M.current&&v(t.tasks)}else v([])}}catch{}finally{P.current=!1}}},[e]);(0,r.useEffect)(()=>{M.current=!0,j();let e=setInterval(j,15e3);return()=>{M.current=!1,clearInterval(e)}},[j]);let D=(0,r.useCallback)(async()=>{try{let[t,r,a,s]=await Promise.all([(0,n.listAgents)(e),(0,n.listRuntimes)(e),(0,n.listAgentPins)(e),(0,n.listAgentLinks)(e)]);o(t),d(r),y(s),N(new Map(a.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),I(new Map(a.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){a.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{h(!1),O.current=!0}},[e]),F=(0,r.useCallback)(async()=>{if(!A.current){A.current=!0;try{let t=await (0,n.listRuntimes)(e);d(t)}catch{}finally{A.current=!1}}},[e]);(0,r.useEffect)(()=>{D()},[D]),(0,r.useEffect)(()=>{let e=null,t=setInterval(()=>{"visible"===document.visibilityState&&F()},3e4),r=()=>{"visible"===document.visibilityState&&(e=setTimeout(()=>F(),2e3*Math.random()))};return document.addEventListener("visibilitychange",r),()=>{clearInterval(t),e&&clearTimeout(e),document.removeEventListener("visibilitychange",r)}},[F]);let $=(0,r.useCallback)(t=>{for(let e of T.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;D();break;case"runtime.deleted":D();break;case"runtime.status":if(t.workspaceId!==e)break;F();break;case"agent.created":if(t.workspaceId!==e)break;w({agentId:t.agentId,parentAgentId:t.parentAgentId}),D();break;case"task.updated":j()}},[D,F,j,e]),U=(0,r.useCallback)(()=>{for(let e of(F(),R.current))e()},[F]);(0,s.useUserWs)($,{onReconnect:U});let W=(0,r.useCallback)(async t=>{try{let r=await (0,n.createAgent)(t,e);return await D(),r}catch(e){return a.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[D,e]),z=(0,r.useCallback)(async(t,r)=>{try{return await (0,n.updateAgent)(t,r,e),await D(),!0}catch(e){return a.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[D,e]),B=(0,r.useCallback)(async t=>{try{return await (0,n.deleteAgent)(t,e),await D(),!0}catch(e){return a.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[D,e]),V=(0,r.useCallback)(async t=>{N(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{N(e=>{let r=new Map(e);return r.delete(t),r}),a.toast.error("Failed to pin agent")}},[e]),G=(0,r.useCallback)(async t=>{let r;N(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&&N(e=>new Map(e).set(t,r)),a.toast.error("Failed to unpin agent")}},[e]),X=(0,r.useCallback)(async t=>{let r=new Map(E);N(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{N(r),a.toast.error("Failed to reorder pins")}},[e,E]),Y=(0,r.useCallback)(async t=>{let r=new Map(S);I(new Map(t.map((e,t)=>[e,t])));try{await (0,n.reorderUnpinnedAgents)(e,t)}catch{I(r),a.toast.error("Failed to reorder agents")}},[e,S]),J=(0,r.useCallback)(()=>{let e=c.find(e=>"online"===e.status);return e?.id??""},[c]),q=(0,r.useCallback)(async()=>{try{return(await (0,n.createMachineToken)("cli",e)).token}catch(e){return a.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),H=(0,r.useCallback)(async t=>{try{return await (0,n.deleteMachine)(t,e),await D(),!0}catch(e){return a.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[D,e]);return(0,t.jsx)(l.Provider,{value:{workspaceId:e,agents:u,agentLinks:C,runtimes:c,loading:f,activeTaskCounts:m,activeTaskDetails:g,pendingNewAgent:x,clearPendingNewAgent:k,pins:E,reload:D,subscribeWs:_,subscribeReconnect:L,handleCreateAgent:W,handleUpdateAgent:z,handleDeleteAgent:B,handlePinAgent:V,handleUnpinAgent:G,handleReorderPins:X,unpinnedOrder:S,handleReorderUnpinned:Y,getFirstOnlineRuntimeId:J,handleGenerateToken:q,handleDeleteMachine:H},children:i})},"useAgentContext",0,function(){let e=(0,r.useContext)(l);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e},"useAgentContextSafe",0,function(){return(0,r.useContext)(l)}])},439769,e=>{"use strict";var t=e.i(811374);let r=`@${t.default.env.ALOOK_DOMAIN||"alook.ai"}`,n=/^[a-zA-Z0-9-]{3,}$/,a=new Set(["no-reply","noreply","admin","support","help","info","postmaster","abuse","security","mailer-daemon","root","webmaster","hostmaster","system","alook"]);e.s(["isValidHandle",0,function(e){return n.test(e)&&!a.has(e.toLowerCase())},"toAlookAddress",0,function(e){return`${e}${r}`}])},520582,e=>{"use strict";var t=e.i(653772),r=e.i(511043),n=e.i(613349);let a=e=>{e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)},s=r.forwardRef(({className:e,onChange:s,...l},i)=>{let u=r.useRef(null),o=r.useCallback(e=>{u.current=e,"function"==typeof i?i(e):i&&(i.current=e),a(e)},[i]);return r.useEffect(()=>{a(u.current)},[l.value]),(0,t.jsx)("textarea",{ref:o,className:(0,n.cn)("resize-none overflow-hidden",e),onChange:e=>{a(e.target),s?.(e)},...l})});s.displayName="AutoResizeTextarea",e.s(["AutoResizeTextarea",0,s])},309475,450463,e=>{"use strict";var t=e.i(653772),r=e.i(511043),n=e.i(48663),a=e.i(875061),s=e.i(224950),l=e.i(329686),i=e.i(728886),u=e.i(613349),o=e.i(222862),c=e.i(500324);function d(e){let t=new Date(e);if(isNaN(t.getTime()))return"";let r=Math.floor((new Date().getTime()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let n=Math.floor(r/60);if(n<24)return`${n}h ago`;let a=Math.floor(n/24);return a<7?`${a}d ago`:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function f({online:e}){return(0,t.jsx)("span",{className:(0,u.cn)("size-1.5 rounded-full shrink-0",e?"bg-status-online":"bg-status-offline")})}function h({task:e,slug:r,agentId:a}){var s;let l,i="running"===e.status;return(0,t.jsxs)(n.default,{href:`/w/${r}/agents/${a}?task=${e.id}&conv=${e.conversation_id}`,className:"flex items-center gap-2 w-full py-1.5 px-2 hover:bg-muted rounded-md transition-colors cursor-pointer",children:[(0,t.jsx)("span",{className:(0,u.cn)("size-1.5 rounded-full shrink-0",i?"bg-primary animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("p",{className:"text-xs truncate",children:(l=(s=e.prompt).match(/^Issue\s+iss_\w+:\s*(.+)/))?l[1].split("\n")[0]:s.split("\n")[0]})}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground whitespace-nowrap shrink-0",children:d(e.created_at)})]})}e.s(["relativeTime",0,d],450463);let m="gap-1.5 text-muted-foreground hover:text-foreground cursor-pointer";e.s(["AgentStatusBadge",0,function({isOnline:e,taskCount:d,agentId:p}){let{slug:g,workspaceId:v}=(0,c.useWorkspace)(),[b,C]=(0,r.useState)(null),[y,x]=(0,r.useState)(!1),[w,k]=(0,r.useState)(!1),E=(0,r.useCallback)(async()=>{C(null),x(!0),k(!1);try{let e=await (0,o.listWorkspaceActiveTasks)(v);C(e.tasks.filter(e=>e.agent_id===p))}catch{k(!0)}finally{x(!1)}},[p,v]);return e?(0,t.jsxs)(s.Popover,{onOpenChange:e=>{e&&E()},children:[(0,t.jsxs)(s.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",className:(0,u.cn)((0,a.badgeVariants)({variant:"outline"}),m),onClick:e=>e.stopPropagation()}),children:[(0,t.jsx)(f,{online:!0}),d>0?(0,t.jsx)("span",{className:"hidden sm:inline",children:"Working"}):(0,t.jsx)("span",{className:"hidden sm:inline text-muted-foreground/40",children:"Online"})]}),(0,t.jsx)(s.PopoverContent,{className:"w-72 p-1",children:y?(0,t.jsx)("div",{className:"p-2 space-y-1",children:Array.from({length:3}).map((e,r)=>(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2",children:[(0,t.jsx)(i.Skeleton,{className:"size-1.5 rounded-full"}),(0,t.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,t.jsx)(i.Skeleton,{className:"h-2.5 w-10"}),(0,t.jsx)(i.Skeleton,{className:"h-3 w-full"})]}),(0,t.jsx)(i.Skeleton,{className:"h-2.5 w-8"})]},r))}):w?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Failed to load"}):b&&0!==b.length?(0,t.jsxs)("div",{className:"max-h-75 overflow-y-auto",children:[b.slice(0,6).map(e=>(0,t.jsx)(h,{task:e,slug:g,agentId:p},e.id)),b.length>6&&(0,t.jsxs)(n.default,{href:`/w/${g}/agents/${p}/activity?status=running`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",b.length," tasks"]})]}):(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No active tasks"})})]}):(0,t.jsxs)(l.Tooltip,{children:[(0,t.jsx)(l.TooltipTrigger,{render:(0,t.jsxs)(a.Badge,{variant:"outline",render:(0,t.jsx)(n.default,{href:`/w/${g}/runtimes`}),className:m,children:[(0,t.jsx)(f,{online:!1}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Offline"})]})}),(0,t.jsx)(l.TooltipContent,{children:"Runtime offline — click to manage runtimes"})]})}],309475)}]);