@alook/app 0.0.65 → 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 (213) 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/{3_EdlLCy1irSUmRkAk1eZ → 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/{3_EdlLCy1irSUmRkAk1eZ → 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 +6 -6
  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 +6 -6
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0u8xtc8._.js +6 -6
  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_0hsbnq1._.js +1 -1
  144. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +1 -1
  145. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0qxc5nu._.js +1 -1
  146. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0~i.bo1._.js +1 -1
  147. 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
  148. 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
  149. 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
  150. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0.a2670._.js +13 -0
  151. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__00-llal._.js +3 -0
  152. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__09cst_7._.js +3 -0
  153. 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
  154. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0xq2my8._.js +3 -0
  155. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +22 -20
  156. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0.8642u._.js +2 -2
  157. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0hthlqi._.js → _003cfvd._.js} +1 -1
  158. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_05wa4wr._.js +3 -0
  159. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_07nwbcz._.js +3 -0
  160. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09b8fgg._.js +3 -0
  161. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09n89mu._.js +3 -0
  162. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0dh_8a3._.js +2 -2
  163. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0fk~_zr._.js +3 -0
  164. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ilz5db._.js +1 -1
  165. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0ohl~vp._.js → _0nklr9-._.js} +3 -3
  166. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_007cfg.._.js → _0nqu5id._.js} +2 -2
  167. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0oxvrpl._.js +3 -0
  168. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0y4mw6p._.js → _0r0r3-c._.js} +1 -1
  169. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +1 -1
  170. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0uvfz-u._.js +3 -0
  171. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vv9cr4._.js +3 -0
  172. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_0qnznmz._.js +3 -0
  173. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  174. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_0uf2r1p._.js +1 -1
  175. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +7 -7
  176. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  177. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  178. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  179. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +105 -95
  180. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +425 -357
  181. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
  182. package/bundled/web/migrations/0029_channel_position.sql +7 -0
  183. package/bundled/ws-do/index.js +61 -3
  184. package/dist/cli/index.js +1 -0
  185. package/dist/cli/session-runner.js +12 -7
  186. package/dist/index.js +1 -0
  187. package/package.json +1 -1
  188. package/bundled/web/.open-next/assets/_next/static/chunks/02zfp_ou.ksfz.js +0 -3
  189. package/bundled/web/.open-next/assets/_next/static/chunks/037bobdy3gbd3.js +0 -1
  190. package/bundled/web/.open-next/assets/_next/static/chunks/0_ofb148utnjm.js +0 -3
  191. package/bundled/web/.open-next/assets/_next/static/chunks/0gd8byhyta7hd.css +0 -1
  192. package/bundled/web/.open-next/assets/_next/static/chunks/0okwpwx2mg9as.js +0 -1
  193. package/bundled/web/.open-next/assets/_next/static/chunks/0v.n7ut8tjpal.js +0 -1
  194. package/bundled/web/.open-next/assets/_next/static/chunks/0w9peuvrwol8r.js +0 -1
  195. package/bundled/web/.open-next/assets/_next/static/chunks/0y5ms.e3yai27.js +0 -1
  196. package/bundled/web/.open-next/cache/3_EdlLCy1irSUmRkAk1eZ/_not-found.cache +0 -1
  197. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0b~_vv~._.js +0 -3
  198. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0n9v7ow._.js +0 -3
  199. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0ot7c-~._.js +0 -3
  200. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0tpn293._.js +0 -3
  201. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_013gub1._.js +0 -3
  202. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_05~tud1._.js +0 -3
  203. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0fh2xox._.js +0 -3
  204. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0gtp8r~._.js +0 -3
  205. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0h764fr._.js +0 -3
  206. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0my-bd8._.js +0 -3
  207. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0tng3.2._.js +0 -3
  208. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ul-7ek._.js +0 -3
  209. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_0pa7vde._.js +0 -3
  210. /package/bundled/web/.open-next/assets/_next/static/{3_EdlLCy1irSUmRkAk1eZ → HY2XCNUoQZ4XCwXFRscuL}/_buildManifest.js +0 -0
  211. /package/bundled/web/.open-next/assets/_next/static/{3_EdlLCy1irSUmRkAk1eZ → HY2XCNUoQZ4XCwXFRscuL}/_clientMiddlewareManifest.js +0 -0
  212. /package/bundled/web/.open-next/assets/_next/static/{3_EdlLCy1irSUmRkAk1eZ → HY2XCNUoQZ4XCwXFRscuL}/_ssgManifest.js +0 -0
  213. /package/bundled/web/.open-next/cache/{3_EdlLCy1irSUmRkAk1eZ → HY2XCNUoQZ4XCwXFRscuL}/robots.txt.cache +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(675139),i=e.i(774078);async function s(e,s){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||s.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!s.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),l=(0,n.getDb)(d.DB),c=await (0,i.cached)(i.cacheKeys.member(o,s.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(l,s.userId,o));return c||s.workspaceId!==o?c?{workspaceId:o,memberRole:c.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let r=await s(e,a);return r instanceof t.NextResponse?r:"owner"!==r.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):r}e.s(["withWorkspaceMember",0,s,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,i=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),r=e.i(719436),n=e.i(799579);let{listDueCalendarEvents:i,claimCalendarEvent:s,revertCalendarEventClaim:o,updateCalendarEventSchedule:d,computeNextScheduledAt:l}=t.queries.calendarEvent;async function c(e,u,m=new Date().toISOString()){let p=await i(e,u,m),_=0;for(let i of p){let c=await t.queries.agent.getAgent(e,i.agentId,i.workspaceId);if(!c){n.log.warn("calendar: agent missing, skipping",{id:i.id});continue}if(!c.runtimeId){n.log.warn("calendar: agent has no runtime, skipping",{id:i.id});continue}if(!c.ownerId){n.log.warn("calendar: agent has no owner, skipping",{id:i.id});continue}let u=i.lastTriggeredAt??null;if(await s(e,i.id,i.scheduledAt,m))try{let n=await t.queries.conversation.createConversation(e,{workspaceId:i.workspaceId,agentId:i.agentId,userId:c.ownerId,title:`[Calendar] ${i.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:n.id,role:"event",content:i.title}),await t.queries.task.createTask(e,{agentId:i.agentId,runtimeId:c.runtimeId,workspaceId:i.workspaceId,conversationId:n.id,prompt:i.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,r.nanoid)(),parentTaskId:null}),i.repeatInterval){let t=l(i.scheduledAt,i.repeatInterval,i.repeatStopAt??null,m,i.exceptions??[]);t&&await d(e,i.id,t)}_++}catch(t){n.log.warn("calendar: post-claim write failed, reverting",{id:i.id,err:String(t)});try{await o(e,i.id,u)}catch(e){n.log.error("calendar: compensating revert failed",{id:i.id,err:String(e)})}}}return _>0&&n.log.info("calendar: promoted due events",{workspaceId:u,enqueued:_}),_}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,r]=e.split("-").map(Number);if(!t||!a||!r)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,r,23,59,59,999).toISOString()}])},927153,e=>{"use strict";e.s(["isEmptyHtml",0,function(e){if(null==e)return!0;let t=e.trim();if(""===t)return!0;let a=/^<p>([\s\S]*?)<\/p>$/i.exec(t);return!!a&&""===a[1].replace(/<br\s*\/?\s*>/gi,"").replace(/&nbsp;/gi," ").trim()}])}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(675139),i=e.i(774078);async function s(e,s){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||s.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!s.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),l=(0,n.getDb)(d.DB),c=await (0,i.cached)(i.cacheKeys.member(o,s.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(l,s.userId,o));return c||s.workspaceId!==o?c?{workspaceId:o,memberRole:c.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let r=await s(e,a);return r instanceof t.NextResponse?r:"owner"!==r.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):r}e.s(["withWorkspaceMember",0,s,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,position:e.position??0,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,i=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),r=e.i(719436),n=e.i(799579);let{listDueCalendarEvents:i,claimCalendarEvent:s,revertCalendarEventClaim:o,updateCalendarEventSchedule:d,computeNextScheduledAt:l}=t.queries.calendarEvent;async function c(e,u,m=new Date().toISOString()){let p=await i(e,u,m),_=0;for(let i of p){let c=await t.queries.agent.getAgent(e,i.agentId,i.workspaceId);if(!c){n.log.warn("calendar: agent missing, skipping",{id:i.id});continue}if(!c.runtimeId){n.log.warn("calendar: agent has no runtime, skipping",{id:i.id});continue}if(!c.ownerId){n.log.warn("calendar: agent has no owner, skipping",{id:i.id});continue}let u=i.lastTriggeredAt??null;if(await s(e,i.id,i.scheduledAt,m))try{let n=await t.queries.conversation.createConversation(e,{workspaceId:i.workspaceId,agentId:i.agentId,userId:c.ownerId,title:`[Calendar] ${i.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:n.id,role:"event",content:i.title}),await t.queries.task.createTask(e,{agentId:i.agentId,runtimeId:c.runtimeId,workspaceId:i.workspaceId,conversationId:n.id,prompt:i.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,r.nanoid)(),parentTaskId:null}),i.repeatInterval){let t=l(i.scheduledAt,i.repeatInterval,i.repeatStopAt??null,m,i.exceptions??[]);t&&await d(e,i.id,t)}_++}catch(t){n.log.warn("calendar: post-claim write failed, reverting",{id:i.id,err:String(t)});try{await o(e,i.id,u)}catch(e){n.log.error("calendar: compensating revert failed",{id:i.id,err:String(e)})}}}return _>0&&n.log.info("calendar: promoted due events",{workspaceId:u,enqueued:_}),_}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,r]=e.split("-").map(Number);if(!t||!a||!r)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,r,23,59,59,999).toISOString()}])},927153,e=>{"use strict";e.s(["isEmptyHtml",0,function(e){if(null==e)return!0;let t=e.trim();if(""===t)return!0;let a=/^<p>([\s\S]*?)<\/p>$/i.exec(t);return!!a&&""===a[1].replace(/<br\s*\/?\s*>/gi,"").replace(/&nbsp;/gi," ").trim()}])}];
2
2
 
3
3
  //# sourceMappingURL=src_0_r~pob._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,t=>{"use strict";var e=t.i(463421);function a(t,a){return e.NextResponse.json({error:t},{status:a})}async function s(t,s){let r;try{r=await t.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let t=(a.issues??a.errors??[]).map(t=>`${t.path.join(".")}: ${t.message}`);return[null,e.NextResponse.json({error:"validation error",details:t},{status:400})]}}t.s(["formatTimestamp",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(t,a=200){return e.NextResponse.json(t,{status:a})}])},47962,t=>{"use strict";var e=t.i(463421),a=t.i(291484);t.i(700598);var s=t.i(291109),r=t.i(675139),n=t.i(774078);async function i(t,i){let o=t.nextUrl.searchParams.get("workspace_id")||t.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return e.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return e.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),u=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,i.userId,o));return u||i.workspaceId!==o?u?{workspaceId:o,memberRole:u.role}:e.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(t,a){let s=await i(t,a);return s instanceof e.NextResponse?s:"owner"!==s.memberRole?e.NextResponse.json({error:"owner access required"},{status:403}):s}t.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,t=>{"use strict";var e=t.i(704024);t.s(["isOnline",0,function(t){if(!t)return!1;let a=new Date(t.includes("T")||t.includes("Z")||t.includes("+")?t:t+"Z").getTime();return!isNaN(a)&&Date.now()-a<e.OFFLINE_THRESHOLD_MS}])},740580,t=>{"use strict";var e=t.i(776227);t.i(700598);var a=t.i(888247),s=t.i(469187),r=t.i(704024);t.s(["agentLinkToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,source_agent_id:t.sourceAgentId,target_agent_id:t.targetAgentId,instruction:t.instruction,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"agentToResponse",0,function(t){let a=t.runtimeConfig;return a||(a={}),{id:t.id,workspace_id:t.workspaceId,runtime_id:t.runtimeId||"",name:t.name,description:t.description,instructions:t.instructions,runtime_mode:t.runtimeMode,runtime_config:a,status:t.status,max_concurrent_tasks:t.maxConcurrentTasks,email_handle:t.emailHandle||null,avatar_url:t.avatarUrl??null,visibility:t.visibility??"private",owner_id:t.ownerId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"calendarEventToResponse",0,function(t){let a=(0,e.formatTimestamp)(t.scheduledAt),s=t.occurrenceAt?(0,e.formatTimestamp)(t.occurrenceAt):a;return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,description:t.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:t.collapsedCount??null,repeat_interval:t.repeatInterval??null,repeat_stop_at:(0,e.formatTimestampNullable)(t.repeatStopAt),last_triggered_at:(0,e.formatTimestampNullable)(t.lastTriggeredAt),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"channelToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,name:t.name,created_at:(0,e.formatTimestamp)(t.createdAt)}},"conversationToResponse",0,function(t){let a={id:t.id,agent_id:t.agentId,title:t.title,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:t.channel??"default",created_at:(0,e.formatTimestamp)(t.createdAt)};return void 0!==t.messageCount&&(a.message_count=t.messageCount),a},"emailToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,from_email:t.fromEmail,to_email:t.toEmail,subject:t.subject,r2_key:t.r2Key,is_whitelisted:!!t.isWhitelisted,forwarded:!!t.forwarded,message_id:t.messageId??"",in_reply_to:t.inReplyTo??"",references:t.references??"",html_body:t.htmlBody??"",attachments:JSON.parse(t.attachments||"[]"),status:t.status??"unread",direction:t.direction??"inbound",created_at:(0,e.formatTimestamp)(t.createdAt)}},"inviteToResponse",0,function(t){return{id:t.id,token:t.token,created_by:t.createdBy,used_by:t.usedBy,expires_at:(0,e.formatTimestamp)(t.expiresAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"issueToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,agent_id:t.agentId,creator_user_id:t.creatorUserId,conversation_id:t.conversationId,latest_task_id:t.latestTaskId??null,title:t.title,description:t.description??"",status:t.status,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt)}},"machineTokenToResponse",0,function(t){return{id:t.id,name:t.name,last_used_at:(0,e.formatTimestampNullable)(t.lastUsedAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"meetingToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,meeting_url:t.meetingUrl,status:t.status,from_email:t.fromEmail??null,is_whitelisted:!!t.isWhitelisted,participants:t.participants??[],scheduled_at:(0,e.formatTimestampNullable)(t.scheduledAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),transcript_r2_key:t.transcriptR2Key??null,summary:t.summary??null,error:t.error??null,worker_session_id:t.workerSessionId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"memberToResponse",0,function(t){return{id:t.id,user_id:t.userId,role:t.role,name:t.userName,email:t.userEmail,image:t.userImage,created_at:(0,e.formatTimestamp)(t.createdAt)}},"messageToResponse",0,function(t){let a={id:t.id,conversation_id:t.conversationId,role:t.role,content:t.content,task_id:t.taskId||null,attachment_ids:t.attachmentIds?JSON.parse(t.attachmentIds):null,metadata:t.metadata?JSON.parse(t.metadata):null,created_at:(0,e.formatTimestamp)(t.createdAt)};return t.status&&"active"!==t.status&&(a.status=t.status),a},"runtimeToResponse",0,function(t){let a=t.metadata;a||(a={});let r=t.machineLastSeenAt??null,n=r instanceof Date?r.toISOString():r;return{id:t.id,workspace_id:t.workspaceId,daemon_id:t.daemonId||null,runtime_mode:t.runtimeMode,provider:t.provider,status:(0,s.isOnline)(n)?"online":"offline",device_info:t.deviceInfo,metadata:a,pending_update_version:t.pendingUpdateVersion??null,pending_rescan:!!t.pendingRescan,last_seen_at:(0,e.formatTimestampNullable)(r),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"taskMessageToResponse",0,function(t){let e={id:t.id,task_id:t.taskId,seq:t.seq,type:t.type,tool:t.tool,call_id:t.callId||"",content:t.content,output:t.output};return t.input&&(e.input=t.input),e},"taskToActivityResponse",0,function(t){let a=t.prompt.length>120?t.prompt.slice(0,120):t.prompt;return{id:t.id,conversation_id:t.conversationId,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,status:t.status,prompt:a,created_at:(0,e.formatTimestamp)(t.createdAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),error:t.error||null}},"taskToResponse",0,function(t){return a.TaskApiBaseSchema.parse({id:t.id,agent_id:t.agentId,runtime_id:t.runtimeId,conversation_id:t.conversationId,workspace_id:t.workspaceId,prompt:t.prompt,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:t.contextKey??null,context:t.context??null,status:t.status,priority:t.priority,dispatched_at:(0,e.formatTimestampNullable)(t.dispatchedAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),result:t.result??null,error:t.error||null,created_at:(0,e.formatTimestamp)(t.createdAt),trace_id:t.traceId??null,parent_task_id:t.parentTaskId??null})},"userToResponse",0,function(t){return{id:t.id,name:t.name,email:t.email,avatar_url:t.avatarUrl??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"workspaceToResponse",0,function(t){return{id:t.id,name:t.name,slug:t.slug,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}}])},726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,n){let i;try{let{env:a}=(0,e.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...n,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...n,status:e.status})}catch(t){s.warn("broadcast error",{...n,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let n=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(n)}catch{}return n}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),n=t.i(740580);let i=e.queries.task,o=e.queries.agent,d=e.queries.message,c=e.queries.conversation,u=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,t,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:t,runtimeId:c.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(t,e){let a=await o.getAgent(this.db,t,e);if(!a)return null;if(await i.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,t,e);if(!s||await i.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,t,e);return s?(await o.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await i.claimKillTasks(this.db,t,a,e),r=e-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,t,a):[],o=new Set(t),d=new Set,c=[...s];for(let t of n){if(r<=0)break;let e=`${t.agentId}:${t.workspaceId}`;if(d.has(e))continue;d.add(e);let a=await this.claimTask(t.agentId,t.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(t,e){let a=await i.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,t,e,{result:n,sessionId:r||null});if(!o){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let c=n,u="string"==typeof c?.output?c.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:t}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(t,e,r){let n=await i.failTask(this.db,t,e,r);if(!n){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:t}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await u.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let i=await d.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await c.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await i.supersedeTask(this.db,t,e);if(!a){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await i.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await i.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let n=await i.cancelTask(this.db,r.id,e);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),n):null}async reconcileAgentStatus(t,e){let a=await i.countRunningTasks(this.db,t,e);await o.updateAgentStatus(this.db,t,e,a>0?"working":"idle")}async dispatchNextBufferedMessage(t,e){let o=await d.activateNextBufferedMessage(this.db,t);if(!o)return null;let u=await c.getConversation(this.db,t,e);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),null;let l=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await i.getLatestTaskForConversation(this.db,t),m=c?.traceId??null,p=await this.enqueueTask(u.agentId,t,e,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(l,{type:"followup.dispatched",conversationId:t,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(p)}).catch(()=>{}),p}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),(0,r.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:t,messageId:o.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await i.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])}];
1
+ module.exports=[776227,t=>{"use strict";var e=t.i(463421);function a(t,a){return e.NextResponse.json({error:t},{status:a})}async function s(t,s){let r;try{r=await t.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let t=(a.issues??a.errors??[]).map(t=>`${t.path.join(".")}: ${t.message}`);return[null,e.NextResponse.json({error:"validation error",details:t},{status:400})]}}t.s(["formatTimestamp",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(t,a=200){return e.NextResponse.json(t,{status:a})}])},47962,t=>{"use strict";var e=t.i(463421),a=t.i(291484);t.i(700598);var s=t.i(291109),r=t.i(675139),n=t.i(774078);async function i(t,i){let o=t.nextUrl.searchParams.get("workspace_id")||t.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return e.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return e.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),u=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,i.userId,o));return u||i.workspaceId!==o?u?{workspaceId:o,memberRole:u.role}:e.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(t,a){let s=await i(t,a);return s instanceof e.NextResponse?s:"owner"!==s.memberRole?e.NextResponse.json({error:"owner access required"},{status:403}):s}t.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,t=>{"use strict";var e=t.i(704024);t.s(["isOnline",0,function(t){if(!t)return!1;let a=new Date(t.includes("T")||t.includes("Z")||t.includes("+")?t:t+"Z").getTime();return!isNaN(a)&&Date.now()-a<e.OFFLINE_THRESHOLD_MS}])},740580,t=>{"use strict";var e=t.i(776227);t.i(700598);var a=t.i(888247),s=t.i(469187),r=t.i(704024);t.s(["agentLinkToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,source_agent_id:t.sourceAgentId,target_agent_id:t.targetAgentId,instruction:t.instruction,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"agentToResponse",0,function(t){let a=t.runtimeConfig;return a||(a={}),{id:t.id,workspace_id:t.workspaceId,runtime_id:t.runtimeId||"",name:t.name,description:t.description,instructions:t.instructions,runtime_mode:t.runtimeMode,runtime_config:a,status:t.status,max_concurrent_tasks:t.maxConcurrentTasks,email_handle:t.emailHandle||null,avatar_url:t.avatarUrl??null,visibility:t.visibility??"private",owner_id:t.ownerId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"calendarEventToResponse",0,function(t){let a=(0,e.formatTimestamp)(t.scheduledAt),s=t.occurrenceAt?(0,e.formatTimestamp)(t.occurrenceAt):a;return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,description:t.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:t.collapsedCount??null,repeat_interval:t.repeatInterval??null,repeat_stop_at:(0,e.formatTimestampNullable)(t.repeatStopAt),last_triggered_at:(0,e.formatTimestampNullable)(t.lastTriggeredAt),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"channelToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,name:t.name,position:t.position??0,created_at:(0,e.formatTimestamp)(t.createdAt)}},"conversationToResponse",0,function(t){let a={id:t.id,agent_id:t.agentId,title:t.title,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:t.channel??"default",created_at:(0,e.formatTimestamp)(t.createdAt)};return void 0!==t.messageCount&&(a.message_count=t.messageCount),a},"emailToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,from_email:t.fromEmail,to_email:t.toEmail,subject:t.subject,r2_key:t.r2Key,is_whitelisted:!!t.isWhitelisted,forwarded:!!t.forwarded,message_id:t.messageId??"",in_reply_to:t.inReplyTo??"",references:t.references??"",html_body:t.htmlBody??"",attachments:JSON.parse(t.attachments||"[]"),status:t.status??"unread",direction:t.direction??"inbound",created_at:(0,e.formatTimestamp)(t.createdAt)}},"inviteToResponse",0,function(t){return{id:t.id,token:t.token,created_by:t.createdBy,used_by:t.usedBy,expires_at:(0,e.formatTimestamp)(t.expiresAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"issueToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,agent_id:t.agentId,creator_user_id:t.creatorUserId,conversation_id:t.conversationId,latest_task_id:t.latestTaskId??null,title:t.title,description:t.description??"",status:t.status,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt)}},"machineTokenToResponse",0,function(t){return{id:t.id,name:t.name,last_used_at:(0,e.formatTimestampNullable)(t.lastUsedAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"meetingToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,meeting_url:t.meetingUrl,status:t.status,from_email:t.fromEmail??null,is_whitelisted:!!t.isWhitelisted,participants:t.participants??[],scheduled_at:(0,e.formatTimestampNullable)(t.scheduledAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),transcript_r2_key:t.transcriptR2Key??null,summary:t.summary??null,error:t.error??null,worker_session_id:t.workerSessionId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"memberToResponse",0,function(t){return{id:t.id,user_id:t.userId,role:t.role,name:t.userName,email:t.userEmail,image:t.userImage,created_at:(0,e.formatTimestamp)(t.createdAt)}},"messageToResponse",0,function(t){let a={id:t.id,conversation_id:t.conversationId,role:t.role,content:t.content,task_id:t.taskId||null,attachment_ids:t.attachmentIds?JSON.parse(t.attachmentIds):null,metadata:t.metadata?JSON.parse(t.metadata):null,created_at:(0,e.formatTimestamp)(t.createdAt)};return t.status&&"active"!==t.status&&(a.status=t.status),a},"runtimeToResponse",0,function(t){let a=t.metadata;a||(a={});let r=t.machineLastSeenAt??null,n=r instanceof Date?r.toISOString():r;return{id:t.id,workspace_id:t.workspaceId,daemon_id:t.daemonId||null,runtime_mode:t.runtimeMode,provider:t.provider,status:(0,s.isOnline)(n)?"online":"offline",device_info:t.deviceInfo,metadata:a,pending_update_version:t.pendingUpdateVersion??null,pending_rescan:!!t.pendingRescan,last_seen_at:(0,e.formatTimestampNullable)(r),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"taskMessageToResponse",0,function(t){let e={id:t.id,task_id:t.taskId,seq:t.seq,type:t.type,tool:t.tool,call_id:t.callId||"",content:t.content,output:t.output};return t.input&&(e.input=t.input),e},"taskToActivityResponse",0,function(t){let a=t.prompt.length>120?t.prompt.slice(0,120):t.prompt;return{id:t.id,conversation_id:t.conversationId,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,status:t.status,prompt:a,created_at:(0,e.formatTimestamp)(t.createdAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),error:t.error||null}},"taskToResponse",0,function(t){return a.TaskApiBaseSchema.parse({id:t.id,agent_id:t.agentId,runtime_id:t.runtimeId,conversation_id:t.conversationId,workspace_id:t.workspaceId,prompt:t.prompt,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:t.contextKey??null,context:t.context??null,status:t.status,priority:t.priority,dispatched_at:(0,e.formatTimestampNullable)(t.dispatchedAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),result:t.result??null,error:t.error||null,created_at:(0,e.formatTimestamp)(t.createdAt),trace_id:t.traceId??null,parent_task_id:t.parentTaskId??null})},"userToResponse",0,function(t){return{id:t.id,name:t.name,email:t.email,avatar_url:t.avatarUrl??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"workspaceToResponse",0,function(t){return{id:t.id,name:t.name,slug:t.slug,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}}])},726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,n){let i;try{let{env:a}=(0,e.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...n,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...n,status:e.status})}catch(t){s.warn("broadcast error",{...n,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let n=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(n)}catch{}return n}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),n=t.i(740580);let i=e.queries.task,o=e.queries.agent,d=e.queries.message,c=e.queries.conversation,u=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,t,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:t,runtimeId:c.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(t,e){let a=await o.getAgent(this.db,t,e);if(!a)return null;if(await i.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,t,e);if(!s||await i.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,t,e);return s?(await o.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await i.claimKillTasks(this.db,t,a,e),r=e-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,t,a):[],o=new Set(t),d=new Set,c=[...s];for(let t of n){if(r<=0)break;let e=`${t.agentId}:${t.workspaceId}`;if(d.has(e))continue;d.add(e);let a=await this.claimTask(t.agentId,t.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(t,e){let a=await i.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,t,e,{result:n,sessionId:r||null});if(!o){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let c=n,u="string"==typeof c?.output?c.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:t}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(t,e,r){let n=await i.failTask(this.db,t,e,r);if(!n){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:t}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await u.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let i=await d.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await c.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await i.supersedeTask(this.db,t,e);if(!a){let e=await i.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await i.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await i.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let n=await i.cancelTask(this.db,r.id,e);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),n):null}async reconcileAgentStatus(t,e){let a=await i.countRunningTasks(this.db,t,e);await o.updateAgentStatus(this.db,t,e,a>0?"working":"idle")}async dispatchNextBufferedMessage(t,e){let o=await d.activateNextBufferedMessage(this.db,t);if(!o)return null;let u=await c.getConversation(this.db,t,e);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),null;let l=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await i.getLatestTaskForConversation(this.db,t),m=c?.traceId??null,p=await this.enqueueTask(u.agentId,t,e,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(l,{type:"followup.dispatched",conversationId:t,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(p)}).catch(()=>{}),p}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),(0,r.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:t,messageId:o.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await i.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])}];
2
2
 
3
3
  //# sourceMappingURL=src_0b54k_v._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),r=e.i(774078);async function i(e,i){let n=`sweep:${i}`,s=!1;try{if(await (0,r.cached)(n,30,async()=>(s=!0,new Date().toISOString())),!s)return}catch{s=!0}let o=await t.queries.task.failStaleDispatchedTasks(e,i);await t.queries.task.failStaleKillTasks(e,i);let d=[...o,...await t.queries.task.failStaleRunningTasks(e,i)];if(d.length>0){let t=new a.TaskService(e),r=new Set;for(let e of d){let a=`${e.agentId}:${e.workspaceId}`;r.has(a)||(r.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let i=new Set;for(let e of d)i.has(e.conversationId)||(i.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId))}}e.s(["sweepStaleState",0,i])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),r=e.i(719436),i=e.i(799579);let{listDueCalendarEvents:n,claimCalendarEvent:s,revertCalendarEventClaim:o,updateCalendarEventSchedule:d,computeNextScheduledAt:l}=t.queries.calendarEvent;async function c(e,p,u=new Date().toISOString()){let g=await n(e,p,u),w=0;for(let n of g){let c=await t.queries.agent.getAgent(e,n.agentId,n.workspaceId);if(!c){i.log.warn("calendar: agent missing, skipping",{id:n.id});continue}if(!c.runtimeId){i.log.warn("calendar: agent has no runtime, skipping",{id:n.id});continue}if(!c.ownerId){i.log.warn("calendar: agent has no owner, skipping",{id:n.id});continue}let p=n.lastTriggeredAt??null;if(await s(e,n.id,n.scheduledAt,u))try{let i=await t.queries.conversation.createConversation(e,{workspaceId:n.workspaceId,agentId:n.agentId,userId:c.ownerId,title:`[Calendar] ${n.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:i.id,role:"event",content:n.title}),await t.queries.task.createTask(e,{agentId:n.agentId,runtimeId:c.runtimeId,workspaceId:n.workspaceId,conversationId:i.id,prompt:n.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,r.nanoid)(),parentTaskId:null}),n.repeatInterval){let t=l(n.scheduledAt,n.repeatInterval,n.repeatStopAt??null,u,n.exceptions??[]);t&&await d(e,n.id,t)}w++}catch(t){i.log.warn("calendar: post-claim write failed, reverting",{id:n.id,err:String(t)});try{await o(e,n.id,p)}catch(e){i.log.error("calendar: compensating revert failed",{id:n.id,err:String(e)})}}}return w>0&&i.log.info("calendar: promoted due events",{workspaceId:p,enqueued:w}),w}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,r]=e.split("-").map(Number);if(!t||!a||!r)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,r,23,59,59,999).toISOString()}])},139733,e=>{"use strict";e.s(["semverGte",0,function(e,t){let a=e.split(".").map(Number),r=t.split(".").map(Number);for(let e=0;e<Math.max(a.length,r.length);e++){let t=a[e]??0,i=r[e]??0;if(t>i)break;if(t<i)return!1}return!0}])},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
1
+ module.exports=[388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),r=e.i(774078);async function i(e,i){let n=`sweep:${i}`,s=!1;try{s=await (0,r.throttled)(n,30,async()=>{})}catch{s=!0}if(!s)return;let o=await t.queries.task.failStaleDispatchedTasks(e,i);await t.queries.task.failStaleKillTasks(e,i);let l=[...o,...await t.queries.task.failStaleRunningTasks(e,i)];if(l.length>0){let t=new a.TaskService(e),r=new Set;for(let e of l){let a=`${e.agentId}:${e.workspaceId}`;r.has(a)||(r.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let i=new Set;for(let e of l)i.has(e.conversationId)||(i.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId))}}e.s(["sweepStaleState",0,i])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),r=e.i(719436),i=e.i(799579);let{listDueCalendarEvents:n,claimCalendarEvent:s,revertCalendarEventClaim:o,updateCalendarEventSchedule:l,computeNextScheduledAt:d}=t.queries.calendarEvent;async function c(e,p,u=new Date().toISOString()){let g=await n(e,p,u),w=0;for(let n of g){let c=await t.queries.agent.getAgent(e,n.agentId,n.workspaceId);if(!c){i.log.warn("calendar: agent missing, skipping",{id:n.id});continue}if(!c.runtimeId){i.log.warn("calendar: agent has no runtime, skipping",{id:n.id});continue}if(!c.ownerId){i.log.warn("calendar: agent has no owner, skipping",{id:n.id});continue}let p=n.lastTriggeredAt??null;if(await s(e,n.id,n.scheduledAt,u))try{let i=await t.queries.conversation.createConversation(e,{workspaceId:n.workspaceId,agentId:n.agentId,userId:c.ownerId,title:`[Calendar] ${n.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:i.id,role:"event",content:n.title}),await t.queries.task.createTask(e,{agentId:n.agentId,runtimeId:c.runtimeId,workspaceId:n.workspaceId,conversationId:i.id,prompt:n.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,r.nanoid)(),parentTaskId:null}),n.repeatInterval){let t=d(n.scheduledAt,n.repeatInterval,n.repeatStopAt??null,u,n.exceptions??[]);t&&await l(e,n.id,t)}w++}catch(t){i.log.warn("calendar: post-claim write failed, reverting",{id:n.id,err:String(t)});try{await o(e,n.id,p)}catch(e){i.log.error("calendar: compensating revert failed",{id:n.id,err:String(e)})}}}return w>0&&i.log.info("calendar: promoted due events",{workspaceId:p,enqueued:w}),w}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,r]=e.split("-").map(Number);if(!t||!a||!r)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,r,23,59,59,999).toISOString()}])},139733,e=>{"use strict";e.s(["semverGte",0,function(e,t){let a=e.split(".").map(Number),r=t.split(".").map(Number);for(let e=0;e<Math.max(a.length,r.length);e++){let t=a[e]??0,i=r[e]??0;if(t>i)break;if(t<i)return!1}return!0}])},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
2
2
 
3
3
  //# sourceMappingURL=src_0hsbnq1._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,t=>{"use strict";var e=t.i(463421);function a(t,a){return e.NextResponse.json({error:t},{status:a})}async function s(t,s){let r;try{r=await t.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let t=(a.issues??a.errors??[]).map(t=>`${t.path.join(".")}: ${t.message}`);return[null,e.NextResponse.json({error:"validation error",details:t},{status:400})]}}t.s(["formatTimestamp",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(t,a=200){return e.NextResponse.json(t,{status:a})}])},469187,t=>{"use strict";var e=t.i(704024);t.s(["isOnline",0,function(t){if(!t)return!1;let a=new Date(t.includes("T")||t.includes("Z")||t.includes("+")?t:t+"Z").getTime();return!isNaN(a)&&Date.now()-a<e.OFFLINE_THRESHOLD_MS}])},740580,t=>{"use strict";var e=t.i(776227);t.i(700598);var a=t.i(888247),s=t.i(469187),r=t.i(704024);t.s(["agentLinkToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,source_agent_id:t.sourceAgentId,target_agent_id:t.targetAgentId,instruction:t.instruction,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"agentToResponse",0,function(t){let a=t.runtimeConfig;return a||(a={}),{id:t.id,workspace_id:t.workspaceId,runtime_id:t.runtimeId||"",name:t.name,description:t.description,instructions:t.instructions,runtime_mode:t.runtimeMode,runtime_config:a,status:t.status,max_concurrent_tasks:t.maxConcurrentTasks,email_handle:t.emailHandle||null,avatar_url:t.avatarUrl??null,visibility:t.visibility??"private",owner_id:t.ownerId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"calendarEventToResponse",0,function(t){let a=(0,e.formatTimestamp)(t.scheduledAt),s=t.occurrenceAt?(0,e.formatTimestamp)(t.occurrenceAt):a;return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,description:t.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:t.collapsedCount??null,repeat_interval:t.repeatInterval??null,repeat_stop_at:(0,e.formatTimestampNullable)(t.repeatStopAt),last_triggered_at:(0,e.formatTimestampNullable)(t.lastTriggeredAt),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"channelToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,name:t.name,created_at:(0,e.formatTimestamp)(t.createdAt)}},"conversationToResponse",0,function(t){let a={id:t.id,agent_id:t.agentId,title:t.title,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:t.channel??"default",created_at:(0,e.formatTimestamp)(t.createdAt)};return void 0!==t.messageCount&&(a.message_count=t.messageCount),a},"emailToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,from_email:t.fromEmail,to_email:t.toEmail,subject:t.subject,r2_key:t.r2Key,is_whitelisted:!!t.isWhitelisted,forwarded:!!t.forwarded,message_id:t.messageId??"",in_reply_to:t.inReplyTo??"",references:t.references??"",html_body:t.htmlBody??"",attachments:JSON.parse(t.attachments||"[]"),status:t.status??"unread",direction:t.direction??"inbound",created_at:(0,e.formatTimestamp)(t.createdAt)}},"inviteToResponse",0,function(t){return{id:t.id,token:t.token,created_by:t.createdBy,used_by:t.usedBy,expires_at:(0,e.formatTimestamp)(t.expiresAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"issueToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,agent_id:t.agentId,creator_user_id:t.creatorUserId,conversation_id:t.conversationId,latest_task_id:t.latestTaskId??null,title:t.title,description:t.description??"",status:t.status,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt)}},"machineTokenToResponse",0,function(t){return{id:t.id,name:t.name,last_used_at:(0,e.formatTimestampNullable)(t.lastUsedAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"meetingToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,meeting_url:t.meetingUrl,status:t.status,from_email:t.fromEmail??null,is_whitelisted:!!t.isWhitelisted,participants:t.participants??[],scheduled_at:(0,e.formatTimestampNullable)(t.scheduledAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),transcript_r2_key:t.transcriptR2Key??null,summary:t.summary??null,error:t.error??null,worker_session_id:t.workerSessionId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"memberToResponse",0,function(t){return{id:t.id,user_id:t.userId,role:t.role,name:t.userName,email:t.userEmail,image:t.userImage,created_at:(0,e.formatTimestamp)(t.createdAt)}},"messageToResponse",0,function(t){let a={id:t.id,conversation_id:t.conversationId,role:t.role,content:t.content,task_id:t.taskId||null,attachment_ids:t.attachmentIds?JSON.parse(t.attachmentIds):null,metadata:t.metadata?JSON.parse(t.metadata):null,created_at:(0,e.formatTimestamp)(t.createdAt)};return t.status&&"active"!==t.status&&(a.status=t.status),a},"runtimeToResponse",0,function(t){let a=t.metadata;a||(a={});let r=t.machineLastSeenAt??null,i=r instanceof Date?r.toISOString():r;return{id:t.id,workspace_id:t.workspaceId,daemon_id:t.daemonId||null,runtime_mode:t.runtimeMode,provider:t.provider,status:(0,s.isOnline)(i)?"online":"offline",device_info:t.deviceInfo,metadata:a,pending_update_version:t.pendingUpdateVersion??null,pending_rescan:!!t.pendingRescan,last_seen_at:(0,e.formatTimestampNullable)(r),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"taskMessageToResponse",0,function(t){let e={id:t.id,task_id:t.taskId,seq:t.seq,type:t.type,tool:t.tool,call_id:t.callId||"",content:t.content,output:t.output};return t.input&&(e.input=t.input),e},"taskToActivityResponse",0,function(t){let a=t.prompt.length>120?t.prompt.slice(0,120):t.prompt;return{id:t.id,conversation_id:t.conversationId,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,status:t.status,prompt:a,created_at:(0,e.formatTimestamp)(t.createdAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),error:t.error||null}},"taskToResponse",0,function(t){return a.TaskApiBaseSchema.parse({id:t.id,agent_id:t.agentId,runtime_id:t.runtimeId,conversation_id:t.conversationId,workspace_id:t.workspaceId,prompt:t.prompt,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:t.contextKey??null,context:t.context??null,status:t.status,priority:t.priority,dispatched_at:(0,e.formatTimestampNullable)(t.dispatchedAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),result:t.result??null,error:t.error||null,created_at:(0,e.formatTimestamp)(t.createdAt),trace_id:t.traceId??null,parent_task_id:t.parentTaskId??null})},"userToResponse",0,function(t){return{id:t.id,name:t.name,email:t.email,avatar_url:t.avatarUrl??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"workspaceToResponse",0,function(t){return{id:t.id,name:t.name,slug:t.slug,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}}])},726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,i){let n;try{let{env:a}=(0,e.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...i,status:e.status})}catch(t){s.warn("broadcast error",{...i,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let i=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(i)}catch{}return i}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),i=t.i(740580);let n=e.queries.task,o=e.queries.agent,d=e.queries.message,c=e.queries.conversation,l=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,t,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:t,runtimeId:c.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(t,e){let a=await o.getAgent(this.db,t,e);if(!a)return null;if(await n.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,t,e);if(!s||await n.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,t,e);return s?(await o.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await n.claimKillTasks(this.db,t,a,e),r=e-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,t,a):[],o=new Set(t),d=new Set,c=[...s];for(let t of i){if(r<=0)break;let e=`${t.agentId}:${t.workspaceId}`;if(d.has(e))continue;d.add(e);let a=await this.claimTask(t.agentId,t.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(t,e){let a=await n.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,t,e,{result:i,sessionId:r||null});if(!o){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:t}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(t,e,r){let i=await n.failTask(this.db,t,e,r);if(!i){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:t}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await l.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let n=await d.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await c.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await n.supersedeTask(this.db,t,e);if(!a){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await n.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await n.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let i=await n.cancelTask(this.db,r.id,e);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),i):null}async reconcileAgentStatus(t,e){let a=await n.countRunningTasks(this.db,t,e);await o.updateAgentStatus(this.db,t,e,a>0?"working":"idle")}async dispatchNextBufferedMessage(t,e){let o=await d.activateNextBufferedMessage(this.db,t);if(!o)return null;let l=await c.getConversation(this.db,t,e);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,t),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,t,e,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:t,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:t,messageId:o.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await n.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])}];
1
+ module.exports=[776227,t=>{"use strict";var e=t.i(463421);function a(t,a){return e.NextResponse.json({error:t},{status:a})}async function s(t,s){let r;try{r=await t.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let t=(a.issues??a.errors??[]).map(t=>`${t.path.join(".")}: ${t.message}`);return[null,e.NextResponse.json({error:"validation error",details:t},{status:400})]}}t.s(["formatTimestamp",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(t,a=200){return e.NextResponse.json(t,{status:a})}])},469187,t=>{"use strict";var e=t.i(704024);t.s(["isOnline",0,function(t){if(!t)return!1;let a=new Date(t.includes("T")||t.includes("Z")||t.includes("+")?t:t+"Z").getTime();return!isNaN(a)&&Date.now()-a<e.OFFLINE_THRESHOLD_MS}])},740580,t=>{"use strict";var e=t.i(776227);t.i(700598);var a=t.i(888247),s=t.i(469187),r=t.i(704024);t.s(["agentLinkToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,source_agent_id:t.sourceAgentId,target_agent_id:t.targetAgentId,instruction:t.instruction,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"agentToResponse",0,function(t){let a=t.runtimeConfig;return a||(a={}),{id:t.id,workspace_id:t.workspaceId,runtime_id:t.runtimeId||"",name:t.name,description:t.description,instructions:t.instructions,runtime_mode:t.runtimeMode,runtime_config:a,status:t.status,max_concurrent_tasks:t.maxConcurrentTasks,email_handle:t.emailHandle||null,avatar_url:t.avatarUrl??null,visibility:t.visibility??"private",owner_id:t.ownerId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"calendarEventToResponse",0,function(t){let a=(0,e.formatTimestamp)(t.scheduledAt),s=t.occurrenceAt?(0,e.formatTimestamp)(t.occurrenceAt):a;return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,description:t.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:t.collapsedCount??null,repeat_interval:t.repeatInterval??null,repeat_stop_at:(0,e.formatTimestampNullable)(t.repeatStopAt),last_triggered_at:(0,e.formatTimestampNullable)(t.lastTriggeredAt),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"channelToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,name:t.name,position:t.position??0,created_at:(0,e.formatTimestamp)(t.createdAt)}},"conversationToResponse",0,function(t){let a={id:t.id,agent_id:t.agentId,title:t.title,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:t.channel??"default",created_at:(0,e.formatTimestamp)(t.createdAt)};return void 0!==t.messageCount&&(a.message_count=t.messageCount),a},"emailToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,from_email:t.fromEmail,to_email:t.toEmail,subject:t.subject,r2_key:t.r2Key,is_whitelisted:!!t.isWhitelisted,forwarded:!!t.forwarded,message_id:t.messageId??"",in_reply_to:t.inReplyTo??"",references:t.references??"",html_body:t.htmlBody??"",attachments:JSON.parse(t.attachments||"[]"),status:t.status??"unread",direction:t.direction??"inbound",created_at:(0,e.formatTimestamp)(t.createdAt)}},"inviteToResponse",0,function(t){return{id:t.id,token:t.token,created_by:t.createdBy,used_by:t.usedBy,expires_at:(0,e.formatTimestamp)(t.expiresAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"issueToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,agent_id:t.agentId,creator_user_id:t.creatorUserId,conversation_id:t.conversationId,latest_task_id:t.latestTaskId??null,title:t.title,description:t.description??"",status:t.status,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt)}},"machineTokenToResponse",0,function(t){return{id:t.id,name:t.name,last_used_at:(0,e.formatTimestampNullable)(t.lastUsedAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"meetingToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,meeting_url:t.meetingUrl,status:t.status,from_email:t.fromEmail??null,is_whitelisted:!!t.isWhitelisted,participants:t.participants??[],scheduled_at:(0,e.formatTimestampNullable)(t.scheduledAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),transcript_r2_key:t.transcriptR2Key??null,summary:t.summary??null,error:t.error??null,worker_session_id:t.workerSessionId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"memberToResponse",0,function(t){return{id:t.id,user_id:t.userId,role:t.role,name:t.userName,email:t.userEmail,image:t.userImage,created_at:(0,e.formatTimestamp)(t.createdAt)}},"messageToResponse",0,function(t){let a={id:t.id,conversation_id:t.conversationId,role:t.role,content:t.content,task_id:t.taskId||null,attachment_ids:t.attachmentIds?JSON.parse(t.attachmentIds):null,metadata:t.metadata?JSON.parse(t.metadata):null,created_at:(0,e.formatTimestamp)(t.createdAt)};return t.status&&"active"!==t.status&&(a.status=t.status),a},"runtimeToResponse",0,function(t){let a=t.metadata;a||(a={});let r=t.machineLastSeenAt??null,i=r instanceof Date?r.toISOString():r;return{id:t.id,workspace_id:t.workspaceId,daemon_id:t.daemonId||null,runtime_mode:t.runtimeMode,provider:t.provider,status:(0,s.isOnline)(i)?"online":"offline",device_info:t.deviceInfo,metadata:a,pending_update_version:t.pendingUpdateVersion??null,pending_rescan:!!t.pendingRescan,last_seen_at:(0,e.formatTimestampNullable)(r),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"taskMessageToResponse",0,function(t){let e={id:t.id,task_id:t.taskId,seq:t.seq,type:t.type,tool:t.tool,call_id:t.callId||"",content:t.content,output:t.output};return t.input&&(e.input=t.input),e},"taskToActivityResponse",0,function(t){let a=t.prompt.length>120?t.prompt.slice(0,120):t.prompt;return{id:t.id,conversation_id:t.conversationId,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,status:t.status,prompt:a,created_at:(0,e.formatTimestamp)(t.createdAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),error:t.error||null}},"taskToResponse",0,function(t){return a.TaskApiBaseSchema.parse({id:t.id,agent_id:t.agentId,runtime_id:t.runtimeId,conversation_id:t.conversationId,workspace_id:t.workspaceId,prompt:t.prompt,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:t.contextKey??null,context:t.context??null,status:t.status,priority:t.priority,dispatched_at:(0,e.formatTimestampNullable)(t.dispatchedAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),result:t.result??null,error:t.error||null,created_at:(0,e.formatTimestamp)(t.createdAt),trace_id:t.traceId??null,parent_task_id:t.parentTaskId??null})},"userToResponse",0,function(t){return{id:t.id,name:t.name,email:t.email,avatar_url:t.avatarUrl??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"workspaceToResponse",0,function(t){return{id:t.id,name:t.name,slug:t.slug,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}}])},726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,i){let n;try{let{env:a}=(0,e.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...i,status:e.status})}catch(t){s.warn("broadcast error",{...i,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let i=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(i)}catch{}return i}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),i=t.i(740580);let n=e.queries.task,o=e.queries.agent,d=e.queries.message,c=e.queries.conversation,l=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,t,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:t,runtimeId:c.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(t,e){let a=await o.getAgent(this.db,t,e);if(!a)return null;if(await n.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,t,e);if(!s||await n.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,t,e);return s?(await o.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await n.claimKillTasks(this.db,t,a,e),r=e-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,t,a):[],o=new Set(t),d=new Set,c=[...s];for(let t of i){if(r<=0)break;let e=`${t.agentId}:${t.workspaceId}`;if(d.has(e))continue;d.add(e);let a=await this.claimTask(t.agentId,t.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(t,e){let a=await n.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,t,e,{result:i,sessionId:r||null});if(!o){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:t}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(t,e,r){let i=await n.failTask(this.db,t,e,r);if(!i){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:t}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await l.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let n=await d.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await c.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await n.supersedeTask(this.db,t,e);if(!a){let e=await n.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await n.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await n.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let i=await n.cancelTask(this.db,r.id,e);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),i):null}async reconcileAgentStatus(t,e){let a=await n.countRunningTasks(this.db,t,e);await o.updateAgentStatus(this.db,t,e,a>0?"working":"idle")}async dispatchNextBufferedMessage(t,e){let o=await d.activateNextBufferedMessage(this.db,t);if(!o)return null;let l=await c.getConversation(this.db,t,e);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,t),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,t,e,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:t,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await d.revertToBuffered(this.db,o.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:t})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:t,messageId:o.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await n.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])}];
2
2
 
3
3
  //# sourceMappingURL=src_0q3gvkd._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var s=e.i(291109),r=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,i.userId,o));return l||i.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await i(e,a);return s instanceof t.NextResponse?s:"owner"!==s.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):s}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(469187),r=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let r=e.machineLastSeenAt??null,n=r instanceof Date?r.toISOString():r;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,s.isOnline)(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(r),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function r(e,r,n){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...n,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...n,status:t.status})}catch(e){s.warn("broadcast error",{...n,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let n=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(n)}catch{}return n}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=n,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await i.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},897069,e=>{"use strict";var t=e.i(424166);e.s(["parsePromptMentions",0,function(e,a){if(!e||0===a.length)return{enrichedPrompt:e,mentions:[]};let s=a.slice().sort((e,t)=>t.name.length-e.name.length),r=[],n=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let a=e.charCodeAt(t-1);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,t))continue;let a=t+1;for(let r of s){let s=a+r.name.length;if(!(s>e.length)&&e.slice(a,s).toLowerCase()===r.name.toLowerCase()&&function(e,t){if(t>=e.length)return!0;let a=e.charCodeAt(t);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,s)){if(n.some(e=>t>=e.start&&t<e.end))break;n.push({start:t,end:s,agent:r});break}}}let i=e;for(let e=n.length-1;e>=0;e--){let a=n[e],s={name:a.agent.name,email:a.agent.emailHandle?(0,t.toAlookAddress)(a.agent.emailHandle):null,description:a.agent.description};if(r.unshift(s),a.agent.emailHandle){let e=`@${a.agent.name} (${(0,t.toAlookAddress)(a.agent.emailHandle)})`;i=i.slice(0,a.start)+e+i.slice(a.end)}else i=i.slice(0,a.start)+`@${a.agent.name}`+i.slice(a.end)}return{enrichedPrompt:i,mentions:r}}])}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var s=e.i(291109),r=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,i.userId,o));return l||i.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await i(e,a);return s instanceof t.NextResponse?s:"owner"!==s.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):s}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(469187),r=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,position:e.position??0,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let r=e.machineLastSeenAt??null,n=r instanceof Date?r.toISOString():r;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,s.isOnline)(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(r),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function r(e,r,n){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...n,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...n,status:t.status})}catch(e){s.warn("broadcast error",{...n,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let n=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(n)}catch{}return n}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=n,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await i.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},897069,e=>{"use strict";var t=e.i(424166);e.s(["parsePromptMentions",0,function(e,a){if(!e||0===a.length)return{enrichedPrompt:e,mentions:[]};let s=a.slice().sort((e,t)=>t.name.length-e.name.length),r=[],n=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let a=e.charCodeAt(t-1);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,t))continue;let a=t+1;for(let r of s){let s=a+r.name.length;if(!(s>e.length)&&e.slice(a,s).toLowerCase()===r.name.toLowerCase()&&function(e,t){if(t>=e.length)return!0;let a=e.charCodeAt(t);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,s)){if(n.some(e=>t>=e.start&&t<e.end))break;n.push({start:t,end:s,agent:r});break}}}let i=e;for(let e=n.length-1;e>=0;e--){let a=n[e],s={name:a.agent.name,email:a.agent.emailHandle?(0,t.toAlookAddress)(a.agent.emailHandle):null,description:a.agent.description};if(r.unshift(s),a.agent.emailHandle){let e=`@${a.agent.name} (${(0,t.toAlookAddress)(a.agent.emailHandle)})`;i=i.slice(0,a.start)+e+i.slice(a.end)}else i=i.slice(0,a.start)+`@${a.agent.name}`+i.slice(a.end)}return{enrichedPrompt:i,mentions:r}}])}];
2
2
 
3
3
  //# sourceMappingURL=src_0qxc5nu._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(675139),s=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),u=(0,n.getDb)(d.DB),m=await (0,s.cached)(s.cacheKeys.member(o,i.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(u,i.userId,o));return m||i.workspaceId!==o?m?{workspaceId:o,memberRole:m.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let r=await i(e,a);return r instanceof t.NextResponse?r:"owner"!==r.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):r}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,s=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(s)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let r=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,s){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)return;r.warn("broadcast service-binding non-ok",{...s,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||r.warn("broadcast failed",{...s,status:t.status})}catch(e){r.warn("broadcast error",{...s,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,r){let s=n(e,a,r);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s)}catch{}return s}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},929782,e=>{"use strict";var t=e.i(719436);e.s(["buildMimeMessage",0,function(e){let a=[];e.messageId&&a.push(`Message-ID: ${e.messageId}`),e.inReplyTo&&a.push(`In-Reply-To: ${e.inReplyTo}`),e.references&&a.push(`References: ${e.references}`);let r=e.date??new Date().toUTCString(),n=e.bodyType??"text/html",s=e.attachments??[];if(0===s.length)return[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: ${n}; charset=utf-8`,"",e.body].join("\r\n");let i=`----=_Part_${(0,t.nanoid)(16)}`,o=[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: multipart/mixed; boundary="${i}"`,"",`--${i}`,`Content-Type: ${n}; charset=utf-8`,"Content-Transfer-Encoding: 7bit","",e.body];for(let e of s)o.push([`--${i}`,`Content-Type: ${e.contentType}; name="${e.filename}"`,`Content-Disposition: attachment; filename="${e.filename}"`,"Content-Transfer-Encoding: base64","",e.base64.match(/.{1,76}/g)?.join("\r\n")??e.base64].join("\r\n"));return o.push(`--${i}--`),o.join("\r\n")},"filterDownloadableAttachments",0,function(e){return e.filter(e=>"attachment"===e.disposition||e.filename)}])},332432,e=>{"use strict";e.s(["buildEmailMapKey",0,function(e,t){return`email:${e}:${t}`},"extractThreadId",0,function(e,t,a){if(e){let t=e.trim().split(/\s+/)[0];if(t)return t}return t?t.trim():a?a.trim():null}])}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(675139),s=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),u=(0,n.getDb)(d.DB),m=await (0,s.cached)(s.cacheKeys.member(o,i.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(u,i.userId,o));return m||i.workspaceId!==o?m?{workspaceId:o,memberRole:m.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let r=await i(e,a);return r instanceof t.NextResponse?r:"owner"!==r.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):r}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,position:e.position??0,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,s=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(s)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let r=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,s){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)return;r.warn("broadcast service-binding non-ok",{...s,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||r.warn("broadcast failed",{...s,status:t.status})}catch(e){r.warn("broadcast error",{...s,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,r){let s=n(e,a,r);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s)}catch{}return s}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},929782,e=>{"use strict";var t=e.i(719436);e.s(["buildMimeMessage",0,function(e){let a=[];e.messageId&&a.push(`Message-ID: ${e.messageId}`),e.inReplyTo&&a.push(`In-Reply-To: ${e.inReplyTo}`),e.references&&a.push(`References: ${e.references}`);let r=e.date??new Date().toUTCString(),n=e.bodyType??"text/html",s=e.attachments??[];if(0===s.length)return[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: ${n}; charset=utf-8`,"",e.body].join("\r\n");let i=`----=_Part_${(0,t.nanoid)(16)}`,o=[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: multipart/mixed; boundary="${i}"`,"",`--${i}`,`Content-Type: ${n}; charset=utf-8`,"Content-Transfer-Encoding: 7bit","",e.body];for(let e of s)o.push([`--${i}`,`Content-Type: ${e.contentType}; name="${e.filename}"`,`Content-Disposition: attachment; filename="${e.filename}"`,"Content-Transfer-Encoding: base64","",e.base64.match(/.{1,76}/g)?.join("\r\n")??e.base64].join("\r\n"));return o.push(`--${i}--`),o.join("\r\n")},"filterDownloadableAttachments",0,function(e){return e.filter(e=>"attachment"===e.disposition||e.filename)}])},332432,e=>{"use strict";e.s(["buildEmailMapKey",0,function(e,t){return`email:${e}:${t}`},"extractThreadId",0,function(e,t,a){if(e){let t=e.trim().split(/\s+/)[0];if(t)return t}return t?t.trim():a?a.trim():null}])}];
2
2
 
3
3
  //# sourceMappingURL=src_0~i.bo1._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[884666,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=src_web__next-internal_server_app_api_channels_reorder_route_actions_0rvpwk0.js.map
@@ -1,5 +1,5 @@
1
1
  module.exports=[678755,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:e,blurDataURL:f,objectFit:g}){let h=c?40*c:a,i=e?40*e:b,j=h&&i?`viewBox='0 0 ${h} ${i}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${j}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${f}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},503635,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},718916,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return j}}),a.r(483865);let d=a.r(139723),e=a.r(678755),f=a.r(503635),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:k=!1,preload:l=!1,loading:m,className:n,quality:o,width:p,height:q,fill:r=!1,style:s,overrideSrc:t,onLoad:u,onLoadingComplete:v,placeholder:w="empty",blurDataURL:x,fetchPriority:y,decoding:z="async",layout:A,objectFit:B,objectPosition:C,lazyBoundary:D,lazyRoot:E,...F},G){var H;let I,J,K,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=G,P=L||f.imageConfigDefault;if("allSizes"in P)I=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),c=P.qualities?.sort((a,b)=>a-b);I={...P,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=F.loader||O;delete F.loader,delete F.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(A){"fill"===A&&(r=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];a&&(s={...s,...a});let c={responsive:"100vw",fill:"100vw"}[A];c&&!b&&(b=c)}let S="",T=i(p),U=i(q);if((H=a)&&"object"==typeof H&&(h(H)||void 0!==H.src)){let b=h(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(J=b.blurWidth,K=b.blurHeight,x=x||b.blurDataURL,S=b.src,!r)if(T||U){if(T&&!U){let a=T/b.width;U=Math.round(b.height*a)}else if(!T&&U){let a=U/b.height;T=Math.round(b.width*a)}}else T=b.width,U=b.height}let V=!k&&!l&&("lazy"===m||void 0===m);(!(a="string"==typeof a?a:S)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,V=!1),I.unoptimized&&(c=!0),R&&!I.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let W=i(o),X=Object.assign(r?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:B,objectPosition:C}:{},M?{}:{color:"transparent"},s),Y=N||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:J,blurHeight:K,blurDataURL:x||"",objectFit:X.objectFit})}")`:`url("${w}")`,Z=g.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:I,src:a,unoptimized:c,width:T,quality:W,sizes:b,loader:Q}),aa=V?"lazy":m;return{props:{...F,loading:aa,fetchPriority:y,width:T,height:U,decoding:z,className:n,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:t||_.src},meta:{unoptimized:c,preload:l||k,placeholder:w,fill:r}}}},977503,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(437199),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},248205,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.HeadManagerContext},740951,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(749314),i=g._(a.r(437199)),j=f._(a.r(977503)),k=a.r(248205);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(483865);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},531433,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.ImageConfigContext},380824,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.RouterContext},441632,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},682758,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(441632),e=a.r(139723);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//")){let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
2
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(A){"fill"===A&&(r=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];a&&(s={...s,...a});let c={responsive:"100vw",fill:"100vw"}[A];c&&!b&&(b=c)}let S="",T=i(p),U=i(q);if((H=a)&&"object"==typeof H&&(h(H)||void 0!==H.src)){let b=h(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(J=b.blurWidth,K=b.blurHeight,x=x||b.blurDataURL,S=b.src,!r)if(T||U){if(T&&!U){let a=T/b.width;U=Math.round(b.height*a)}else if(!T&&U){let a=U/b.height;T=Math.round(b.width*a)}}else T=b.width,U=b.height}let V=!k&&!l&&("lazy"===m||void 0===m);(!(a="string"==typeof a?a:S)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,V=!1),I.unoptimized&&(c=!0),R&&!I.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let W=i(o),X=Object.assign(r?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:B,objectPosition:C}:{},M?{}:{color:"transparent"},s),Y=N||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:J,blurHeight:K,blurDataURL:x||"",objectFit:X.objectFit})}")`:`url("${w}")`,Z=g.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:I,src:a,unoptimized:c,width:T,quality:W,sizes:b,loader:Q}),aa=V?"lazy":m;return{props:{...F,loading:aa,fetchPriority:y,width:T,height:U,decoding:z,className:n,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:t||_.src},meta:{unoptimized:c,preload:l||k,placeholder:w,fill:r}}}},977503,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(437199),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},740951,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(749314),i=g._(a.r(437199)),j=f._(a.r(977503)),k=a.r(248205);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(483865);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},531433,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.ImageConfigContext},380824,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.RouterContext},441632,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},682758,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(441632),e=a.r(139723);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//")){let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
3
3
  Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},321117,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(463652),e=a.r(403988),f=a.r(749314),g=e._(a.r(437199)),h=d._(a.r(131675)),i=d._(a.r(740951)),j=a.r(718916),k=a.r(503635),l=a.r(531433);a.r(483865);let m=a.r(380824),n=d._(a.r(682758)),o=a.r(333582),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},725691,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(718916),h=a.r(321117),i=f._(a.r(682758));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},803268,(a,b,c)=>{b.exports=a.r(725691)}];
4
4
 
5
- //# sourceMappingURL=0b5f_next_0-68_1v._.js.map
5
+ //# sourceMappingURL=0b5f_next_06huxd3._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},375637,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"handleISRError",{enumerable:!0,get:function(){return e}});let d=a.r(556704).workAsyncStorage;function e({error:a}){if(d){let b=d.getStore();if(b?.isStaticGeneration)throw a&&console.error(a),a}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},574841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(463652);let f=a.r(749314);a.r(437199);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
1
+ module.exports=[375637,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"handleISRError",{enumerable:!0,get:function(){return e}});let d=a.r(556704).workAsyncStorage;function e({error:a}){if(d){let b=d.getStore();if(b?.isStaticGeneration)throw a&&console.error(a),a}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},574841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(463652);let f=a.r(749314);a.r(437199);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
2
2
  :root {
3
3
  --next-error-bg: #fff;
4
4
  --next-error-text: #171717;
@@ -30,4 +30,4 @@ module.exports=[463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMo
30
30
  body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
31
  `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},343351,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(463652);let d=a.r(749314);a.r(437199);let e=a.r(375637),f=a.r(574841),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
32
32
 
33
- //# sourceMappingURL=node_modules__pnpm_0ldbdqs._.js.map
33
+ //# sourceMappingURL=0b5f_next_dist_client_components_0oalj-h._.js.map
@@ -0,0 +1,13 @@
1
+ module.exports=[918622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},120635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},405433,(a,b,c)=>{"use strict";b.exports=a.r(918622)},749314,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored["react-ssr"].ReactJsxRuntime},437199,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored["react-ssr"].React},131675,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored["react-ssr"].ReactDOM},43301,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.AppRouterContext},456151,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.HooksClientContext},103991,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.ServerInsertedHtml},490511,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored["react-ssr"].ReactServerDOMTurbopackClient},403988,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},581074,a=>{"use strict";var b=a.i(437199);let c=b.createContext(void 0);a.s(["useDirection",0,function(){let a=b.useContext(c);return a?.direction??"ltr"}])},157902,a=>{"use strict";var b=a.i(926170),c=a.i(95133);a.s(["getCssDimensions",0,function(a){let d=(0,c.getComputedStyle)(a),e=parseFloat(d.width)||0,f=parseFloat(d.height)||0,g=(0,c.isHTMLElement)(a),h=g?a.offsetWidth:e,i=g?a.offsetHeight:f;return((0,b.round)(e)!==h||(0,b.round)(f)!==i)&&(e=h,f=i),{width:e,height:f}}])},615640,a=>{"use strict";var b=a.i(437199),c=(a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}},d=["light","dark"],e="(prefers-color-scheme: dark)",f=b.createContext(void 0),g={setTheme:a=>{},themes:[]},h=["light","dark"],i=({forcedTheme:a,disableTransitionOnChange:c=!1,enableSystem:g=!0,enableColorScheme:i=!0,storageKey:n="theme",themes:o=h,defaultTheme:p=g?"system":"light",attribute:q="data-theme",value:r,children:s,nonce:t,scriptProps:u})=>{let[v,w]=b.useState(()=>k(n,p)),[x,y]=b.useState(()=>"system"===v?m():v),z=r?Object.values(r):o,A=b.useCallback(a=>{let b=a;if(!b)return;"system"===a&&g&&(b=m());let e=r?r[b]:b,f=c?l(t):null,h=document.documentElement,j=a=>{"class"===a?(h.classList.remove(...z),e&&h.classList.add(e)):a.startsWith("data-")&&(e?h.setAttribute(a,e):h.removeAttribute(a))};if(Array.isArray(q)?q.forEach(j):j(q),i){let a=d.includes(p)?p:null,c=d.includes(b)?b:a;h.style.colorScheme=c}null==f||f()},[t]),B=b.useCallback(a=>{let b="function"==typeof a?a(v):a;w(b);try{localStorage.setItem(n,b)}catch(a){}},[v]),C=b.useCallback(b=>{y(m(b)),"system"===v&&g&&!a&&A("system")},[v,a]);b.useEffect(()=>{let a=window.matchMedia(e);return a.addListener(C),C(a),()=>a.removeListener(C)},[C]),b.useEffect(()=>{let a=a=>{a.key===n&&(a.newValue?w(a.newValue):B(p))};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[B]),b.useEffect(()=>{A(null!=a?a:v)},[a,v]);let D=b.useMemo(()=>({theme:v,setTheme:B,forcedTheme:a,resolvedTheme:"system"===v?x:v,themes:g?[...o,"system"]:o,systemTheme:g?x:void 0}),[v,B,a,x,g,o]);return b.createElement(f.Provider,{value:D},b.createElement(j,{forcedTheme:a,storageKey:n,attribute:q,enableSystem:g,enableColorScheme:i,defaultTheme:p,value:r,themes:o,nonce:t,scriptProps:u}),s)},j=b.memo(({forcedTheme:a,storageKey:d,attribute:e,enableSystem:f,enableColorScheme:g,defaultTheme:h,value:i,themes:j,nonce:k,scriptProps:l})=>{let m=JSON.stringify([e,d,h,a,j,i,f,g]).slice(1,-1);return b.createElement("script",{...l,suppressHydrationWarning:!0,nonce:k,dangerouslySetInnerHTML:{__html:`(${c.toString()})(${m})`}})}),k=(a,b)=>{},l=a=>{let b=document.createElement("style");return a&&b.setAttribute("nonce",a),b.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(b),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(b)},1)}},m=a=>(a||(a=window.matchMedia(e)),a.matches?"dark":"light");a.s(["ThemeProvider",0,a=>b.useContext(f)?b.createElement(b.Fragment,null,a.children):b.createElement(i,{...a}),"useTheme",0,()=>{var a;return null!=(a=b.useContext(f))?a:g}])},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},248205,(a,b,c)=>{"use strict";b.exports=a.r(405433).vendored.contexts.HeadManagerContext},888877,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.default=function({html:a,height:b=null,width:c=null,children:f,dataNtpc:g=""}){return(0,e.useEffect)(()=>{g&&performance.mark("mark_feature_usage",{detail:{feature:`next-third-parties-${g}`}})},[g]),(0,d.jsxs)(d.Fragment,{children:[f,a?(0,d.jsx)("div",{style:{height:null!=b?`${b}px`:"auto",width:null!=c?`${c}px`:"auto"},"data-ntpc":g,dangerouslySetInnerHTML:{__html:a}}):null]})};let d=a.r(749314),e=a.r(437199)},641045,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"setAttributesFromProps",{enumerable:!0,get:function(){return g}});let d={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"},e=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"];function f(a){return["async","defer","noModule"].includes(a)}function g(a,b){for(let[c,g]of Object.entries(b)){if(!b.hasOwnProperty(c)||e.includes(c)||void 0===g)continue;let h=d[c]||c.toLowerCase();"SCRIPT"===a.tagName&&f(h)?a[h]=!!g:a.setAttribute(h,String(g)),(!1===g||"SCRIPT"===a.tagName&&f(h)&&(!g||"false"===g))&&(a.setAttribute(h,""),a.removeAttribute(h))}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},593914,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={cancelIdleCallback:function(){return g},requestIdleCallback:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(a){let b=Date.now();return self.setTimeout(function(){a({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-b))}})},1)},g="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(a){return clearTimeout(a)};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},995277,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ESCAPE_REGEX:function(){return g},htmlEscapeAttributeString:function(){return k},htmlEscapeJsonString:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},g=/[&><\u2028\u2029]/g,h={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;"},i=/[&"'<>]/g;function j(a){return a.replace(g,a=>f[a])}function k(a){return a.replace(i,a=>h[a])}},915608,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return u},handleClientScriptLoad:function(){return r},initScriptLoader:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(749314),i=f._(a.r(131675)),j=g._(a.r(437199)),k=a.r(248205),l=a.r(641045),m=a.r(593914),n=a.r(995277),o=new Map,p=new Set,q=a=>{let{src:b,id:c,onLoad:d=()=>{},onReady:e=null,dangerouslySetInnerHTML:f,children:g="",strategy:h="afterInteractive",onError:j,stylesheets:k}=a,m=c||b;if(m&&p.has(m))return;if(o.has(b)){p.add(m),o.get(b).then(d,j);return}let n=()=>{e&&e(),p.add(m)},q=document.createElement("script"),r=new Promise((a,b)=>{q.addEventListener("load",function(b){a(),d&&d.call(this,b),n()}),q.addEventListener("error",function(a){b(a)})}).catch(function(a){j&&j(a)});f?(q.innerHTML=f.__html||"",n()):g?(q.textContent="string"==typeof g?g:Array.isArray(g)?g.join(""):"",n()):b&&(q.src=b,o.set(b,r)),(0,l.setAttributesFromProps)(q,a),"worker"===h&&q.setAttribute("type","text/partytown"),q.setAttribute("data-nscript",h),k&&(a=>{if(i.default.preinit)return a.forEach(a=>{i.default.preinit(a,{as:"style"})})})(k),document.body.appendChild(q)};function r(a){let{strategy:b="afterInteractive"}=a;"lazyOnload"===b?window.addEventListener("load",()=>{(0,m.requestIdleCallback)(()=>q(a))}):q(a)}function s(a){a.forEach(r),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(a=>{let b=a.id||a.getAttribute("src");p.add(b)})}function t(a){let{id:b,src:c="",onLoad:d=()=>{},onReady:e=null,strategy:f="afterInteractive",onError:g,stylesheets:l,...o}=a,{updateScripts:r,scripts:s,getIsSsr:t,appDir:u,nonce:v}=(0,j.useContext)(k.HeadManagerContext);v=o.nonce||v;let w=(0,j.useRef)(!1);(0,j.useEffect)(()=>{let a=b||c;w.current||(e&&a&&p.has(a)&&e(),w.current=!0)},[e,b,c]);let x=(0,j.useRef)(!1);if((0,j.useEffect)(()=>{if(!x.current){if("afterInteractive"===f)q(a);else"lazyOnload"===f&&("complete"===document.readyState?(0,m.requestIdleCallback)(()=>q(a)):window.addEventListener("load",()=>{(0,m.requestIdleCallback)(()=>q(a))}));x.current=!0}},[a,f]),("beforeInteractive"===f||"worker"===f)&&(r?(s[f]=(s[f]||[]).concat([{id:b,src:c,onLoad:d,onReady:e,onError:g,...o,nonce:v}]),r(s)):t&&t()?p.add(b||c):t&&!t()&&q({...a,nonce:v})),u){if(l&&l.forEach(a=>{i.default.preinit(a,{as:"style"})}),"beforeInteractive"===f)if(!c)return o.dangerouslySetInnerHTML&&(o.children=o.dangerouslySetInnerHTML.__html,delete o.dangerouslySetInnerHTML),(0,h.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,n.htmlEscapeJsonString)(JSON.stringify([0,{...o,id:b}]))})`}});else return i.default.preload(c,o.integrity?{as:"script",integrity:o.integrity,nonce:v,crossOrigin:o.crossOrigin}:{as:"script",nonce:v,crossOrigin:o.crossOrigin}),(0,h.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,n.htmlEscapeJsonString)(JSON.stringify([c,{...o,id:b}]))})`}});"afterInteractive"===f&&c&&i.default.preload(c,o.integrity?{as:"script",integrity:o.integrity,nonce:v,crossOrigin:o.crossOrigin}:{as:"script",nonce:v,crossOrigin:o.crossOrigin})}return null}Object.defineProperty(t,"__nextScript",{value:!0});let u=t;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},626476,(a,b,c)=>{b.exports=a.r(915608)},125305,(a,b,c)=>{"use strict";var d=a.e&&a.e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(c,"__esModule",{value:!0}),c.sendGTMEvent=void 0,c.GoogleTagManager=function(a){let{gtmId:b,gtmScriptUrl:c,dataLayerName:d="dataLayer",auth:i,preview:j,dataLayer:k,nonce:l}=a;h=d;let m=new URL(c||"https://www.googletagmanager.com/gtm.js");return b&&m.searchParams.set("id",b),"dataLayer"!==d&&m.searchParams.set("l",d),i&&m.searchParams.set("gtm_auth",i),j&&(m.searchParams.set("gtm_preview",j),m.searchParams.set("gtm_cookies_win","x")),(0,f.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-gtm"}})},[]),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.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
+ ${k?`w[l].push(${JSON.stringify(k)})`:""}
6
+ })(window,'${d}');`},nonce:l}),(0,e.jsx)(g.default,{id:"_next-gtm","data-ntpc":"GTM",src:m.href,nonce:l})]})};let e=a.r(749314),f=a.r(437199),g=d(a.r(626476)),h="dataLayer";c.sendGTMEvent=(a,b)=>{let c=b||h;window[c]=window[c]||[],window[c].push(a)}},534195,(a,b,c)=>{"use strict";let d;var e=a.e&&a.e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(c,"__esModule",{value:!0}),c.GoogleAnalytics=function(a){let{gaId:b,debugMode:c,dataLayerName:e="dataLayer",nonce:i}=a;return void 0===d&&(d=e),(0,g.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-ga"}})},[]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(h.default,{id:"_next-ga-init",dangerouslySetInnerHTML:{__html:`
7
+ window['${e}'] = window['${e}'] || [];
8
+ function gtag(){window['${e}'].push(arguments);}
9
+ gtag('js', new Date());
10
+
11
+ gtag('config', '${b}' ${c?",{ 'debug_mode': true }":""});`},nonce:i}),(0,f.jsx)(h.default,{id:"_next-ga",src:`https://www.googletagmanager.com/gtag/js?id=${b}`,nonce:i})]})},c.sendGAEvent=function(){void 0===d?console.warn("@next/third-parties: GA has not been initialized"):window[d]?window[d].push(arguments):console.warn(`@next/third-parties: GA dataLayer ${d} does not exist`)};let f=a.r(749314),g=a.r(437199),h=e(a.r(626476))},101918,a=>{"use strict";var b=a.i(749314),c=a.i(615640);a.s(["ThemeProvider",0,function({children:a,...d}){return(0,b.jsx)(c.ThemeProvider,{...d,children:a})}])},797276,a=>{"use strict";var b=a.i(749314),c=a.i(921584),d=a.i(615640);a.s(["ToasterProvider",0,function(){let{resolvedTheme:a}=(0,d.useTheme)();return(0,b.jsx)(c.Toaster,{theme:a??"system",richColors:!0,closeButton:!0,position:"bottom-right"})}])}];
12
+
13
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0.a2670._.js.map