@alook/app 0.0.117 → 0.0.119

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 (232) hide show
  1. package/bundled/email-worker/index.js +219 -207
  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/{0quc_lvg3c4wu.js → 0-xdwhncj5-wf.js} +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/018pin4~.wsr7.js +1 -0
  6. package/bundled/web/.open-next/assets/_next/static/chunks/028fjo.mmn73u.js +7 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{0tw05tsn2c~1m.js → 02j9o2uuj_oc8.js} +15 -15
  8. package/bundled/web/.open-next/assets/_next/static/chunks/06-zhqf9ypqns.css +1 -0
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0d3l0nm-qcu53.js +1 -0
  10. package/bundled/web/.open-next/assets/_next/static/chunks/0fw7efx7cy195.js +62 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/0kk1judky0sd5.js +1 -0
  12. package/bundled/web/.open-next/assets/_next/static/chunks/{12bd-kqbplx9m.js → 0nj24~vvlulgh.js} +3 -3
  13. package/bundled/web/.open-next/assets/_next/static/chunks/0r8zw56k96o0q.js +1 -0
  14. package/bundled/web/.open-next/assets/_next/static/chunks/{042a4jeudcp22.js → 0u64son5-k77n.js} +1 -1
  15. package/bundled/web/.open-next/assets/_next/static/chunks/{110sy1mmp9v~7.js → 0x14heey9lt7d.js} +3 -3
  16. package/bundled/web/.open-next/assets/_next/static/chunks/0xaxg3kh619o8.js +1 -0
  17. package/bundled/web/.open-next/assets/_next/static/chunks/0z4n3xpn4dp13.js +63 -0
  18. package/bundled/web/.open-next/assets/_next/static/chunks/0~r1l8ej-9p~h.js +3 -0
  19. package/bundled/web/.open-next/assets/_next/static/chunks/110epmmtnkv9w.js +3 -0
  20. package/bundled/web/.open-next/assets/_next/static/chunks/{118ani.qejoy9.js → 12tz.n~x91ghm.js} +1 -1
  21. package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_global-error.cache +1 -1
  22. package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_not-found.cache +1 -1
  23. package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/device.cache +1 -1
  24. package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/privacy.cache +1 -1
  25. package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/sitemap.xml.cache +1 -1
  26. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  27. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  28. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  29. package/bundled/web/.open-next/middleware/handler.mjs +8 -8
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +1 -2
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +8 -17
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/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]/activity/page/react-loadable-manifest.json +1 -1
  38. 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
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page/react-loadable-manifest.json +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page/react-loadable-manifest.json +1 -1
  42. 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
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page/react-loadable-manifest.json +1 -1
  44. 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
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page/react-loadable-manifest.json +1 -1
  46. 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
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page/react-loadable-manifest.json +1 -1
  48. 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
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page/react-loadable-manifest.json +1 -1
  50. 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
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page/react-loadable-manifest.json +1 -1
  52. 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
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page/react-loadable-manifest.json +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page/react-loadable-manifest.json +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page/react-loadable-manifest.json +1 -1
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page/react-loadable-manifest.json +1 -1
  60. 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
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page/react-loadable-manifest.json +1 -1
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page/react-loadable-manifest.json +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page/react-loadable-manifest.json +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page/react-loadable-manifest.json +1 -1
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page/react-loadable-manifest.json +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page/react-loadable-manifest.json +1 -1
  72. 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
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page/react-loadable-manifest.json +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page/react-loadable-manifest.json +1 -1
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +6 -7
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +7 -8
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +4 -5
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +7 -8
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/init/route.js +6 -7
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +8 -9
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/{conversations/[id]/buffered-messages/[messageId] → daemon/conversations/[id]/messages}/route.js +8 -8
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/conversations/[id]/messages/route_client-reference-manifest.js +3 -0
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +3 -4
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/sweep/route.js +5 -7
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +6 -8
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +6 -8
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +3 -4
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +6 -8
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +6 -8
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +5 -7
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +2 -2
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/comments/route.js +7 -8
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +7 -8
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +7 -8
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +7 -8
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +7 -8
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page/react-loadable-manifest.json +2 -2
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +1 -2
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/05hd_server_app_api_daemon_conversations_[id]_messages_route_actions_0.iz1u1.js +3 -0
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-63.yt._.js +3 -0
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__010~hln._.js +3 -0
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01pm5bg._.js +58 -70
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__08oq0ro._.js +3 -0
  114. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0arm85_._.js +3 -0
  115. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0gp~w40._.js +3 -0
  116. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__088o0os._.js → [root-of-the-server]__0hz_j32._.js} +2 -2
  117. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0i0ukpl._.js +58 -70
  118. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0j5fdu2._.js +58 -70
  119. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0syz.lm._.js +3 -0
  120. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0sf_9ve._.js → [root-of-the-server]__0vi97bn._.js} +2 -2
  121. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0x8e1~2._.js +3 -0
  122. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +39 -44
  123. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0.gkbx8._.js +3 -0
  124. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_00-p7_0._.js +3 -0
  125. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03gwxos._.js +5 -0
  126. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03t_17c._.js +1 -1
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06mrt6t._.js +3 -0
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08xh_f8._.js +2 -2
  129. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09ivzvb._.js +1 -1
  130. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0_21cs4._.js +3 -0
  131. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0huk3rm._.js +3 -0
  132. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jj44iu._.js +3 -3
  133. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1m9wf._.js +2 -2
  134. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0m4uqwa._.js +3 -3
  135. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mibx4k._.js +3 -3
  136. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ow_nxn._.js +3 -0
  137. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r.02hx._.js +3 -0
  138. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0thudj4._.js +3 -0
  139. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0wbaduy._.js +3 -0
  140. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0yzq1gx._.js +3 -0
  141. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zyolvu._.js +1 -1
  142. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12-_-5g._.js +3 -0
  143. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12-v7sn._.js +3 -0
  144. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0wkbw.-._.js +3 -0
  145. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__04mf.th._.js +54 -66
  146. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__10nperb._.js → [root-of-the-server]__0_3cckh._.js} +2 -2
  147. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0e65njz._.js +54 -66
  148. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0i8fzgr._.js +1 -1
  149. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +39 -44
  150. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0bt_5pi._.js → _055~~zq._.js} +1 -1
  151. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0bti.y.._.js → _05kh57s._.js} +1 -1
  152. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0iiagkx._.js → _09rh54w._.js} +1 -1
  153. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0_.06ux._.js +1 -1
  154. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0asq_j3._.js +65 -0
  155. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0im0q-g._.js +9 -0
  156. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0owr40y._.js +3 -0
  157. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0r_ppn9._.js +1 -1
  158. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vtcof8._.js +2 -2
  159. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_04xzk.p._.js → node_modules__pnpm_0-7t060._.js} +1 -1
  160. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0y6wy4c._.js → node_modules__pnpm_0emry~3._.js} +1 -1
  161. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_02vp72~._.js → node_modules__pnpm_0lqu_u4._.js} +1 -1
  162. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0k_ahqs._.js → node_modules__pnpm_0ml9n-.._.js} +1 -1
  163. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0t783t_._.js → node_modules__pnpm_0qmml4f._.js} +1 -1
  164. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0j~49hk._.js → node_modules__pnpm_0vztztj._.js} +1 -1
  165. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0.jtjpe._.js → node_modules__pnpm_0wu1nx-._.js} +1 -1
  166. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0i183cf._.js → node_modules__pnpm_11id~ub._.js} +1 -1
  167. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_0liq_10._.js +54 -66
  168. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  169. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_meetings_page_tsx_073~u~-._.js +1 -1
  170. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -1
  171. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_0uf2r1p._.js +1 -1
  172. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  173. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  174. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  175. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  176. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +492 -534
  177. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +1025 -841
  178. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
  179. package/bundled/web/migrations/0037_inbox_unread_table.sql +43 -0
  180. package/bundled/web/wrangler.toml +1 -1
  181. package/bundled/ws-do/index.js +174 -174
  182. package/dist/cli/index.js +368 -68
  183. package/dist/cli/session-runner.js +68 -9
  184. package/dist/index.js +23 -2
  185. package/package.json +1 -1
  186. package/bundled/web/.open-next/assets/_next/static/chunks/0_7t-ouonb08v.js +0 -3
  187. package/bundled/web/.open-next/assets/_next/static/chunks/0fme52sqdtk.p.js +0 -3
  188. package/bundled/web/.open-next/assets/_next/static/chunks/0h5tl-yh9wijv.js +0 -1
  189. package/bundled/web/.open-next/assets/_next/static/chunks/0j5gd-ljh6ao_.js +0 -62
  190. package/bundled/web/.open-next/assets/_next/static/chunks/0lus0pm79r-7o.js +0 -7
  191. package/bundled/web/.open-next/assets/_next/static/chunks/0m-e05qz5c6a..js +0 -1
  192. package/bundled/web/.open-next/assets/_next/static/chunks/0s-pai_2464mg.css +0 -1
  193. package/bundled/web/.open-next/assets/_next/static/chunks/0u8cu1dfn9~01.js +0 -63
  194. package/bundled/web/.open-next/assets/_next/static/chunks/0xg02n4bo4.1m.js +0 -1
  195. package/bundled/web/.open-next/assets/_next/static/chunks/18b_fy7re_rp..js +0 -1
  196. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/[messageId]/route_client-reference-manifest.js +0 -3
  197. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +0 -17
  198. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route_client-reference-manifest.js +0 -3
  199. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/00~o_app_api_conversations_[id]_buffered-messages_[messageId]_route_actions_0e338dt.js +0 -3
  200. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/05hd_server_app_api_conversations_[id]_buffered-messages_route_actions_0mf5n8a.js +0 -3
  201. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0d0_qit._.js +0 -3
  202. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_00_9pus._.js +0 -3
  203. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02.f31i._.js +0 -5
  204. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_025fm6r._.js +0 -3
  205. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03ju0js._.js +0 -3
  206. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06imn.m._.js +0 -3
  207. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07hpwgw._.js +0 -3
  208. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08y2ta9._.js +0 -3
  209. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0_kfe3c._.js +0 -3
  210. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ahwrti._.js +0 -3
  211. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0b4pq8.._.js +0 -3
  212. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0d6rwbr._.js +0 -3
  213. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0gqpz7w._.js +0 -3
  214. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h-fa04._.js +0 -3
  215. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0il0z_b._.js +0 -3
  216. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1rr.g._.js +0 -3
  217. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0p_10om._.js +0 -3
  218. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r04wj_._.js +0 -3
  219. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ri6_n4._.js +0 -3
  220. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zk1_mu._.js +0 -3
  221. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zt3sdk._.js +0 -3
  222. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_102qunz._.js +0 -3
  223. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12i.jt7._.js +0 -3
  224. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13lep.0._.js +0 -3
  225. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web_src_lib_services_0yvxfxt._.js +0 -3
  226. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_004q5tu._.js +0 -3
  227. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0g~0u9h._.js +0 -65
  228. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0kv_hld._.js +0 -9
  229. /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_buildManifest.js +0 -0
  230. /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_clientMiddlewareManifest.js +0 -0
  231. /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_ssgManifest.js +0 -0
  232. /package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/robots.txt.cache +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(170865);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let r;try{let{env:a}=(0,t.getCloudflareContext)();r=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...i,status:o.status})}catch{}let o=r||a.DEV_WS_DO_URL,l=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!l.ok)throw Error(`broadcast failed: ${l.status}`);try{return{sent:(await l.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let i=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},511456,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])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),i=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,r){let o=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),l=[...new Set(o.map(e=>e.agentId))],[d,c,u]=l.length>0?await Promise.all([(0,i.cached)(i.cacheKeys.allAgents(r),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allEmailAccounts(r),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allColleagues(r),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,r)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(l);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],h=new Map(d.map(e=>[e.id,e])),p=new Map;for(let e of c){let t=p.get(e.agentId)??[];t.push(e.emailAddress),p.set(e.agentId,t)}let w=new Map;for(let e of u){let t=w.get(e.agentId)??[];t.push(e),w.set(e.agentId,t)}let g=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],m=new Map((g.length>0?await t.queries.conversation.getConversationsByIds(this.db,g,r):[]).map(e=>[e.id,e])),I=new Map,k=new Map,f=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){f.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=h.get(o.agentId)??null,l=[];if(e){e.emailHandle&&l.push((0,s.toAlookAddress)(e.emailHandle));let t=p.get(e.id)??[];l.push(...t)}let d=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.member(r,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,r));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(d=[a.globalInstruction,d].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!k.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));k.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=k.get(e.ownerId)?.name??null}let u=m.get(o.conversationId)??null,g=u?.channel??"default",y=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!k.has(u.userId)){let e=await (0,i.cached)(i.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));k.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=k.get(u.userId);a&&(y={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let T=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));f.push({...(0,n.taskToResponse)(o),channel:g,sender:y,agent:e?{instructions:d,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:l,user_email:null,user_name:c,colleagues:T}:null})}return f}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(511456),n=e.i(726089),i=e.i(740580),r=e.i(774078),o=e.i(555230);let l=t.queries.task,d=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue,p=t.queries.inbox;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,i=a.TASK_TYPES.USER_DM_MESSAGE,o){let c=await d.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(o?.traceId&&o.parentTaskId&&await l.countTasksByTrace(this.db,o.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.`);let u=await l.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:i,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,r.invalidate)(r.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await l.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await l.findSteerableReplacement(this.db,e,t);if(!s||await l.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await l.claimTask(this.db,e,t);return s?(await d.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await l.claimKillTasks(this.db,e,a,t),n=t-s.length,i=n>0?await l.listPendingTasksByRuntimes(this.db,e,a):[],r=new Set(e),o=new Set,c=[...s],u=[];for(let e of i){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),u.push(e))}if(0===u.length)return c;let h=[...new Set(u.map(e=>e.agentId))],p=new Map((await d.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,p.get(e.agentId)??null)))))e&&r.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await l.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let r=await l.completeTask(this.db,e,t,{result:i,sessionId:n||null});if(!r){let t=await l.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`)}return await this.reconcileAgentStatus(r.agentId,r.workspaceId),this.maybeUpsertUnread(r,t,null).catch(()=>{}),r}async failTask(e,r,o){let d=await l.failTask(this.db,e,r,o);if(!d){let t=await l.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`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;let h=null;if(o){let a=null;try{if(d.runtimeId){let e=await t.queries.runtime.getAgentRuntime(this.db,d.runtimeId);a=e?.provider??null}}catch{}let s=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:o,taskId:e,metadata:JSON.stringify({error_source:"runtime",provider:a})});h=s?.id??null;try{let e=await u.getConversation(this.db,d.conversationId,r);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,i.messageToResponse)(s)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),this.maybeUpsertUnread(d,r,h).catch(()=>{}),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let r=await c.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 u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(r)}).catch(()=>{})}catch{}}async maybeUpsertUnread(e,t,a){if(!p.isUnreadEligible(e)||!e.completedAt)return;let s=await u.getConversation(this.db,e.conversationId,t);if(!s)return;let n=a??await p.findLatestAssistantMessageId(this.db,e.conversationId);await p.upsertUnreadEntry(this.db,{conversationId:e.conversationId,userId:s.userId,workspaceId:t,agentId:s.agentId,taskId:e.id,taskType:e.type,taskStatus:e.status,taskPrompt:e.prompt,completedAt:e.completedAt,latestMessageId:n})}async supersedeTask(e,t){let a=await l.supersedeTask(this.db,e,t);if(!a){let t=await l.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),a}async retryTask(e,t){let a=await l.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 l.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,i,r){let o=await l.getActiveTaskByConversation(this.db,e,i);if(!o)return null;let d=await l.cancelTask(this.db,o.id,i);if(!d)return null;if("dispatched"===o.status||"running"===o.status){let r=await l.createTask(this.db,{agentId:o.agentId,runtimeId:o.runtimeId,workspaceId:i,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:o.id}});await l.dispatchTaskById(this.db,r.id,i);let d=await t.queries.runtime.getAgentRuntime(this.db,o.runtimeId);d&&(0,n.broadcastToDaemon)(d.daemonId,{type:"daemon.kill",workspaceId:i,agentId:o.agentId,taskId:r.id,targetTaskId:o.id}).catch(e=>s.log.warn("daemon.kill broadcast failed, relying on poll fallback",e))}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:r?.reason??"Task cancelled by you",taskId:o.id,metadata:JSON.stringify({kind:"lifecycle"})}),await this.reconcileAgentStatus(o.agentId,i),d}async reconcileAgentStatus(e,t){let a=await l.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,r.invalidate)(r.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async cancelTrace(e,t,a){for(let n of[...new Set((await l.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let i=await l.dispatchTaskById(this.db,e.id,a);if(!i)return;let r=new o.TaskPayloadBuilder(this.db),d=await r.buildFullPayloads([i],a);if(0===d.length)return void await l.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:d});0===t&&await l.revertDispatchedToQueued(this.db,e.id,a)}catch{await l.revertDispatchedToQueued(this.db,e.id,a)}}}])},764083,e=>{"use strict";e.s(["filterVisibleAgents",0,function(e,t,a){let s=new Set(a.filter(e=>e.userId===t).map(e=>e.agentId));return e.filter(e=>"public"===e.visibility||e.ownerId===t||s.has(e.id))}])},587860,e=>e.a(async(t,a)=>{try{var s=e.i(170865);e.i(700598);var n=e.i(291109),i=e.i(424166),r=e.i(469187),o=e.i(888247),l=e.i(704024),d=e.i(675139),c=e.i(152327),u=e.i(47962),h=e.i(776227),p=e.i(740580),w=e.i(205054),g=e.i(774078),m=e.i(764083),I=t([c]);[c]=I.then?(await I)():I;let k=(0,c.withAuth)(async(e,t)=>{let a=await (0,u.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,s.getCloudflareContext)(),r=(0,d.getDb)(i.DB),[o,l]=await Promise.all([(0,g.cached)(g.cacheKeys.allAgents(a.workspaceId),300,()=>n.queries.agent.getAllAgentsForWorkspace(r,a.workspaceId)),(0,g.cached)(g.cacheKeys.allAgentAccess(a.workspaceId),300,()=>n.queries.agentAccess.getAllAgentAccessForWorkspace(r,a.workspaceId))]),c=(0,m.filterVisibleAgents)(o,t.userId,l);return(0,h.writeJSON)(c.map(p.agentToResponse))}),f=(0,c.withAuth)(async(e,t)=>{let a=await (0,u.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:c}=(0,s.getCloudflareContext)(),m=(0,d.getDb)(c.DB),[I,k]=await (0,h.parseBody)(e,o.CreateAgentRequestSchema);if(k)return k;let f=I.name.trim(),y=I.runtime_id,T=I.max_concurrent_tasks||0;T<=0&&(T=6);let b="string"==typeof I.email_handle?I.email_handle.trim().toLowerCase():"";if(b){if(!(0,i.isValidHandle)(b))return(0,h.writeError)("email_handle must be 4+ alphanumeric/dash characters",400);if(await n.queries.agent.getAgentByHandle(m,b))return(0,h.writeError)("Handle already taken",409)}let v=await n.queries.runtime.getAgentRuntimeForWorkspace(m,y,a.workspaceId);if(!v)return(0,h.writeError)("runtime not found in workspace",404);let A=I.runtime_config,_=A?{..."string"==typeof A.model?{model:A.model}:{}}:null,S=await n.queries.agent.createAgent(m,{workspaceId:a.workspaceId,name:f,description:I.description,instructions:I.instructions,runtimeId:y,runtimeMode:v.runtimeMode,runtimeConfig:_,visibility:"private",maxConcurrentTasks:T,ownerId:t.userId,emailHandle:b||null,avatarUrl:I.avatar_url??null});if(b&&t.email&&await n.queries.whitelist.addWhitelist(m,S.id,a.workspaceId,t.email.toLowerCase()),await Promise.all([(0,g.invalidate)(g.cacheKeys.allAgents(a.workspaceId)),(0,g.invalidate)(g.cacheKeys.allHandles(a.workspaceId)),(0,g.invalidate)(g.cacheKeys.allAgentAccess(a.workspaceId))]),S.runtimeId&&S.emailHandle&&t.email&&(0,r.isOnline)(v.machineLastSeenAt))try{let e=await n.queries.conversation.createConversation(m,{workspaceId:a.workspaceId,agentId:S.id,userId:t.userId,title:`Welcome: ${t.email}`.slice(0,50),type:l.TASK_TYPES.EMAIL_NOTIFICATION}),s=new w.TaskService(m);await s.enqueueTask(S.id,e.id,a.workspaceId,`You have just been created by your owner (${t.email}). Please send them a welcome email introducing yourself as "${f}". In the email: 1) Introduce yourself warmly — your name, your email address, and what you can help with. 2) Briefly introduce the Alook platform — a personal AI agent platform where agents can handle emails, schedule tasks, and work autonomously. 3) Let them know they can chat with you directly or email you anytime. Be warm, professional, and concise.`,l.TASK_TYPES.EMAIL_NOTIFICATION);let i=new Date().toISOString().slice(0,10);(0,g.invalidate)(g.cacheKeys.overviewTaskStats(a.workspaceId,i)).catch(()=>{}),(0,g.invalidate)(g.cacheKeys.activeTaskCounts(a.workspaceId)).catch(()=>{})}catch{}if((0,r.isOnline)(v.machineLastSeenAt)){let e=new w.TaskService(m);await e.reconcileAgentStatus(S.id,a.workspaceId);let s=await n.queries.agent.getAgent(m,S.id,a.workspaceId,t.userId);if(s)return(0,h.writeJSON)((0,p.agentToResponse)(s),201)}return(0,h.writeJSON)((0,p.agentToResponse)(S),201)});e.s(["GET",0,k,"POST",0,f]),a()}catch(e){a(e)}},!1),672424,e=>e.a(async(t,a)=>{try{var s=e.i(80774),n=e.i(404478),i=e.i(732985),r=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),h=e.i(359838),p=e.i(383303),w=e.i(234173),g=e.i(270215),m=e.i(830665),I=e.i(944002),k=e.i(193695);e.i(195928);var f=e.i(81543),y=e.i(587860),T=t([y]);[y]=T.then?(await T)():T;let v=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/agents/route",pathname:"/api/agents",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/agents/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:_,serverHooks:S}=v;async function b(e,t,a){a.requestMeta&&(0,r.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/agents/route";s=s.replace(/\/index$/,"")||"/";let i=await v.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:T,params:b,nextConfig:A,parsedUrl:_,isDraftMode:S,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,resolvedPathname:q,clientReferenceManifest:x,serverActionsManifest:K}=i,O=(0,d.normalizeAppPath)(s),N=!!(E.dynamicRoutes[O]||E.routes[q]),M=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,_,!1):t.end("This page could not be found"),null);if(N&&!S){let e=!!E.routes[q],t=E.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new k.NoFallbackError}}let U=null;!N||v.isDev||S||(U=q,U="/index"===U?"/":U);let D=!0===v.isDev||!N,L=N&&!D;K&&x&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:x,serverActionsManifest:K});let $=e.method||"GET",H=(0,o.getTracer)(),B=H.getActiveScopeSpan(),j=!!(null==R?void 0:R.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),W=(0,r.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,E,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:b,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:W,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>v.onRequestError(e,t,s,n,R)},sharedContext:{buildId:y,deploymentId:T}},V=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i,r=async e=>v.handle(G,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${$} ${s}`)}),l=async i=>{var o,l;let d=async({previousCacheEntry:n})=>{try{if(!F&&C&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await r(i);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=Y.renderOpts.collectedTags;if(!N)return await (0,w.sendResponse)(V,J,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[I.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=I.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=I.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,R),t}},c=await v.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:F});if(!N)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&N||u.delete(I.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,w.sendResponse)(V,J,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&B?await l(B):(i=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(h.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof k.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,R),N)throw t;return await (0,w.sendResponse)(V,J,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:_})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,_]),a()}catch(e){a(e)}},!1),56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
2
+
3
+ //# sourceMappingURL=_0.gkbx8._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(170865);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let r;try{let{env:a}=(0,t.getCloudflareContext)();r=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...i,status:o.status})}catch{}let o=r||a.DEV_WS_DO_URL,l=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!l.ok)throw Error(`broadcast failed: ${l.status}`);try{return{sent:(await l.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let i=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},511456,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])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),i=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,r){let o=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),l=[...new Set(o.map(e=>e.agentId))],[d,c,u]=l.length>0?await Promise.all([(0,i.cached)(i.cacheKeys.allAgents(r),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allEmailAccounts(r),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allColleagues(r),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,r)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(l);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],h=new Map(d.map(e=>[e.id,e])),p=new Map;for(let e of c){let t=p.get(e.agentId)??[];t.push(e.emailAddress),p.set(e.agentId,t)}let w=new Map;for(let e of u){let t=w.get(e.agentId)??[];t.push(e),w.set(e.agentId,t)}let m=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],g=new Map((m.length>0?await t.queries.conversation.getConversationsByIds(this.db,m,r):[]).map(e=>[e.id,e])),I=new Map,f=new Map,k=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){k.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=h.get(o.agentId)??null,l=[];if(e){e.emailHandle&&l.push((0,s.toAlookAddress)(e.emailHandle));let t=p.get(e.id)??[];l.push(...t)}let d=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.member(r,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,r));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(d=[a.globalInstruction,d].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!f.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));f.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=f.get(e.ownerId)?.name??null}let u=g.get(o.conversationId)??null,m=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!f.has(u.userId)){let e=await (0,i.cached)(i.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));f.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=f.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let y=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));k.push({...(0,n.taskToResponse)(o),channel:m,sender:T,agent:e?{instructions:d,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:l,user_email:null,user_name:c,colleagues:y}:null})}return k}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(511456),n=e.i(726089),i=e.i(740580),r=e.i(774078),o=e.i(555230);let l=t.queries.task,d=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue,p=t.queries.inbox;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,i=a.TASK_TYPES.USER_DM_MESSAGE,o){let c=await d.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(o?.traceId&&o.parentTaskId&&await l.countTasksByTrace(this.db,o.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.`);let u=await l.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:i,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,r.invalidate)(r.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await l.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await l.findSteerableReplacement(this.db,e,t);if(!s||await l.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await l.claimTask(this.db,e,t);return s?(await d.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await l.claimKillTasks(this.db,e,a,t),n=t-s.length,i=n>0?await l.listPendingTasksByRuntimes(this.db,e,a):[],r=new Set(e),o=new Set,c=[...s],u=[];for(let e of i){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),u.push(e))}if(0===u.length)return c;let h=[...new Set(u.map(e=>e.agentId))],p=new Map((await d.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,p.get(e.agentId)??null)))))e&&r.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await l.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let r=await l.completeTask(this.db,e,t,{result:i,sessionId:n||null});if(!r){let t=await l.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`)}return await this.reconcileAgentStatus(r.agentId,r.workspaceId),this.maybeUpsertUnread(r,t,null).catch(()=>{}),r}async failTask(e,r,o){let d=await l.failTask(this.db,e,r,o);if(!d){let t=await l.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`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;let h=null;if(o){let a=null;try{if(d.runtimeId){let e=await t.queries.runtime.getAgentRuntime(this.db,d.runtimeId);a=e?.provider??null}}catch{}let s=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:o,taskId:e,metadata:JSON.stringify({error_source:"runtime",provider:a})});h=s?.id??null;try{let e=await u.getConversation(this.db,d.conversationId,r);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,i.messageToResponse)(s)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),this.maybeUpsertUnread(d,r,h).catch(()=>{}),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let r=await c.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 u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(r)}).catch(()=>{})}catch{}}async maybeUpsertUnread(e,t,a){if(!p.isUnreadEligible(e)||!e.completedAt)return;let s=await u.getConversation(this.db,e.conversationId,t);if(!s)return;let n=a??await p.findLatestAssistantMessageId(this.db,e.conversationId);await p.upsertUnreadEntry(this.db,{conversationId:e.conversationId,userId:s.userId,workspaceId:t,agentId:s.agentId,taskId:e.id,taskType:e.type,taskStatus:e.status,taskPrompt:e.prompt,completedAt:e.completedAt,latestMessageId:n})}async supersedeTask(e,t){let a=await l.supersedeTask(this.db,e,t);if(!a){let t=await l.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),a}async retryTask(e,t){let a=await l.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 l.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,i,r){let o=await l.getActiveTaskByConversation(this.db,e,i);if(!o)return null;let d=await l.cancelTask(this.db,o.id,i);if(!d)return null;if("dispatched"===o.status||"running"===o.status){let r=await l.createTask(this.db,{agentId:o.agentId,runtimeId:o.runtimeId,workspaceId:i,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:o.id}});await l.dispatchTaskById(this.db,r.id,i);let d=await t.queries.runtime.getAgentRuntime(this.db,o.runtimeId);d&&(0,n.broadcastToDaemon)(d.daemonId,{type:"daemon.kill",workspaceId:i,agentId:o.agentId,taskId:r.id,targetTaskId:o.id}).catch(e=>s.log.warn("daemon.kill broadcast failed, relying on poll fallback",e))}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:r?.reason??"Task cancelled by you",taskId:o.id,metadata:JSON.stringify({kind:"lifecycle"})}),await this.reconcileAgentStatus(o.agentId,i),d}async reconcileAgentStatus(e,t){let a=await l.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,r.invalidate)(r.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async cancelTrace(e,t,a){for(let n of[...new Set((await l.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let i=await l.dispatchTaskById(this.db,e.id,a);if(!i)return;let r=new o.TaskPayloadBuilder(this.db),d=await r.buildFullPayloads([i],a);if(0===d.length)return void await l.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:d});0===t&&await l.revertDispatchedToQueued(this.db,e.id,a)}catch{await l.revertDispatchedToQueued(this.db,e.id,a)}}}])},99293,e=>e.a(async(t,a)=>{try{var s=e.i(170865);e.i(700598);var n=e.i(291109),i=e.i(888247),r=e.i(704024),o=e.i(675139),l=e.i(152327),d=e.i(47962),c=e.i(776227),u=e.i(205054),h=e.i(774078),p=t([l]);[l]=p.then?(await p)():p;let w=(0,l.withAuth)(async(e,t)=>{let a=await (0,d.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,s.getCloudflareContext)(),r=(0,o.getDb)(i.DB),l=t.params?.id;if(!l)return(0,c.writeError)("agent id is required",400);if(!await n.queries.agent.getAgent(r,l,a.workspaceId,t.userId))return(0,c.writeError)("agent not found",404);let u=await n.queries.whitelist.getWhitelist(r,l,a.workspaceId);return(0,c.writeJSON)(u.map(e=>({id:e.id,email:e.email,created_at:(0,c.formatTimestamp)(e.createdAt)})))}),m=(0,l.withAuth)(async(e,t)=>{let a=await (0,d.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:l}=(0,s.getCloudflareContext)(),p=(0,o.getDb)(l.DB),w=t.params?.id;if(!w)return(0,c.writeError)("agent id is required",400);let m=await n.queries.agent.getAgent(p,w,a.workspaceId,t.userId);if(!m)return(0,c.writeError)("agent not found",404);let[g,I]=await (0,c.parseBody)(e,i.AddWhitelistRequestSchema);if(I)return I;let f=g.email.toLowerCase(),k=await n.queries.whitelist.addWhitelist(p,w,a.workspaceId,f);if(!k)return(0,c.writeError)("email already whitelisted",409);if(m.runtimeId&&m.emailHandle&&m.ownerId)try{let e=await n.queries.conversation.createConversation(p,{workspaceId:a.workspaceId,agentId:m.id,userId:m.ownerId,title:`Welcome: ${f}`.slice(0,50),type:r.TASK_TYPES.EMAIL_NOTIFICATION}),s=new u.TaskService(p);await s.enqueueTask(m.id,e.id,a.workspaceId,`Your owner (${t.email}) has added a new contact to your whitelist: ${f}. Please compose and send them a welcome email introducing yourself as "${m.name}". Be warm and professional. Let them know they can reach you at your email address and briefly describe how you can help them.`,r.TASK_TYPES.EMAIL_NOTIFICATION);let i=new Date().toISOString().slice(0,10);(0,h.invalidate)(h.cacheKeys.overviewTaskStats(a.workspaceId,i)).catch(()=>{}),(0,h.invalidate)(h.cacheKeys.activeTaskCounts(a.workspaceId)).catch(()=>{})}catch{}return(0,c.writeJSON)({id:k.id,email:k.email,created_at:(0,c.formatTimestamp)(k.createdAt)},201)});e.s(["GET",0,w,"POST",0,m]),a()}catch(e){a(e)}},!1),829167,e=>e.a(async(t,a)=>{try{var s=e.i(80774),n=e.i(404478),i=e.i(732985),r=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),h=e.i(359838),p=e.i(383303),w=e.i(234173),m=e.i(270215),g=e.i(830665),I=e.i(944002),f=e.i(193695);e.i(195928);var k=e.i(81543),T=e.i(99293),y=t([T]);[T]=y.then?(await y)():y;let v=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/agents/[id]/whitelist/route",pathname:"/api/agents/[id]/whitelist",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/agents/[id]/whitelist/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:A,serverHooks:S}=v;async function b(e,t,a){a.requestMeta&&(0,r.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/agents/[id]/whitelist/route";s=s.replace(/\/index$/,"")||"/";let i=await v.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:y,params:b,nextConfig:_,parsedUrl:A,isDraftMode:S,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,resolvedPathname:q,clientReferenceManifest:x,serverActionsManifest:K}=i,O=(0,d.normalizeAppPath)(s),N=!!(E.dynamicRoutes[O]||E.routes[q]),M=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,A,!1):t.end("This page could not be found"),null);if(N&&!S){let e=!!E.routes[q],t=E.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await M();throw new f.NoFallbackError}}let U=null;!N||v.isDev||S||(U=q,U="/index"===U?"/":U);let D=!0===v.isDev||!N,$=N&&!D;K&&x&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:x,serverActionsManifest:K});let L=e.method||"GET",B=(0,o.getTracer)(),H=B.getActiveScopeSpan(),j=!!(null==R?void 0:R.isWrappedByNextServer),W=!!(0,r.getRequestMeta)(e,"minimalMode"),F=(0,r.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,_,E,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let Y={params:b,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:D,incrementalCache:F,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>v.onRequestError(e,t,s,n,R)},sharedContext:{buildId:T,deploymentId:y}},J=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let i,r=async e=>v.handle(V,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${L} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${L} ${s}`)}),l=async i=>{var o,l;let d=async({previousCacheEntry:n})=>{try{if(!W&&C&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await r(i);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=Y.renderOpts.collectedTags;if(!N)return await (0,w.sendResponse)(J,G,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[I.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=I.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=I.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:k.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:C})},!1,R),t}},c=await v.handleResponse({req:e,nextConfig:_,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!N)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==k.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&N||u.delete(I.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,w.sendResponse)(J,G,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&H?await l(H):(i=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(h.BaseServerSpan.handleRequest,{spanName:`${L} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:C})},!1,R),N)throw t;return await (0,w.sendResponse)(J,G,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,A]),a()}catch(e){a(e)}},!1),56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
2
+
3
+ //# sourceMappingURL=_00-p7_0._.js.map
@@ -0,0 +1,5 @@
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(170865);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,r){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)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...r,status:o.status})}catch{}let o=i||a.DEV_WS_DO_URL,l=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!l.ok)throw Error(`broadcast failed: ${l.status}`);try{return{sent:(await l.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let r=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(r.catch(()=>{}))}catch{}return r.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},511456,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])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),r=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,i){let o=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),l=[...new Set(o.map(e=>e.agentId))],[d,c,u]=l.length>0?await Promise.all([(0,r.cached)(r.cacheKeys.allAgents(i),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allEmailAccounts(i),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allColleagues(i),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,i)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(l);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],h=new Map(d.map(e=>[e.id,e])),p=new Map;for(let e of c){let t=p.get(e.agentId)??[];t.push(e.emailAddress),p.set(e.agentId,t)}let m=new Map;for(let e of u){let t=m.get(e.agentId)??[];t.push(e),m.set(e.agentId,t)}let w=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],g=new Map((w.length>0?await t.queries.conversation.getConversationsByIds(this.db,w,i):[]).map(e=>[e.id,e])),I=new Map,k=new Map,f=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){f.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=h.get(o.agentId)??null,l=[];if(e){e.emailHandle&&l.push((0,s.toAlookAddress)(e.emailHandle));let t=p.get(e.id)??[];l.push(...t)}let d=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.member(i,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,i));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(d=[a.globalInstruction,d].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!k.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));k.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=k.get(e.ownerId)?.name??null}let u=g.get(o.conversationId)??null,w=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!k.has(u.userId)){let e=await (0,r.cached)(r.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));k.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=k.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let y=(m.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));f.push({...(0,n.taskToResponse)(o),channel:w,sender:T,agent:e?{instructions:d,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:l,user_email:null,user_name:c,colleagues:y}:null})}return f}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(511456),n=e.i(726089),r=e.i(740580),i=e.i(774078),o=e.i(555230);let l=t.queries.task,d=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue,p=t.queries.inbox;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,r=a.TASK_TYPES.USER_DM_MESSAGE,o){let c=await d.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(o?.traceId&&o.parentTaskId&&await l.countTasksByTrace(this.db,o.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.`);let u=await l.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:r,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await l.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await l.findSteerableReplacement(this.db,e,t);if(!s||await l.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await l.claimTask(this.db,e,t);return s?(await d.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await l.claimKillTasks(this.db,e,a,t),n=t-s.length,r=n>0?await l.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),o=new Set,c=[...s],u=[];for(let e of r){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),u.push(e))}if(0===u.length)return c;let h=[...new Set(u.map(e=>e.agentId))],p=new Map((await d.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,p.get(e.agentId)??null)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await l.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let r;try{r=JSON.parse(a)}catch{r={raw:a}}let i=await l.completeTask(this.db,e,t,{result:r,sessionId:n||null});if(!i){let t=await l.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`)}return await this.reconcileAgentStatus(i.agentId,i.workspaceId),this.maybeUpsertUnread(i,t,null).catch(()=>{}),i}async failTask(e,i,o){let d=await l.failTask(this.db,e,i,o);if(!d){let t=await l.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`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;let h=null;if(o){let a=null;try{if(d.runtimeId){let e=await t.queries.runtime.getAgentRuntime(this.db,d.runtimeId);a=e?.provider??null}}catch{}let s=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:o,taskId:e,metadata:JSON.stringify({error_source:"runtime",provider:a})});h=s?.id??null;try{let e=await u.getConversation(this.db,d.conversationId,i);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,r.messageToResponse)(s)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),this.maybeUpsertUnread(d,i,h).catch(()=>{}),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.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 u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,r.messageToResponse)(i)}).catch(()=>{})}catch{}}async maybeUpsertUnread(e,t,a){if(!p.isUnreadEligible(e)||!e.completedAt)return;let s=await u.getConversation(this.db,e.conversationId,t);if(!s)return;let n=a??await p.findLatestAssistantMessageId(this.db,e.conversationId);await p.upsertUnreadEntry(this.db,{conversationId:e.conversationId,userId:s.userId,workspaceId:t,agentId:s.agentId,taskId:e.id,taskType:e.type,taskStatus:e.status,taskPrompt:e.prompt,completedAt:e.completedAt,latestMessageId:n})}async supersedeTask(e,t){let a=await l.supersedeTask(this.db,e,t);if(!a){let t=await l.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),a}async retryTask(e,t){let a=await l.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 l.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,r,i){let o=await l.getActiveTaskByConversation(this.db,e,r);if(!o)return null;let d=await l.cancelTask(this.db,o.id,r);if(!d)return null;if("dispatched"===o.status||"running"===o.status){let i=await l.createTask(this.db,{agentId:o.agentId,runtimeId:o.runtimeId,workspaceId:r,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:o.id}});await l.dispatchTaskById(this.db,i.id,r);let d=await t.queries.runtime.getAgentRuntime(this.db,o.runtimeId);d&&(0,n.broadcastToDaemon)(d.daemonId,{type:"daemon.kill",workspaceId:r,agentId:o.agentId,taskId:i.id,targetTaskId:o.id}).catch(e=>s.log.warn("daemon.kill broadcast failed, relying on poll fallback",e))}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:i?.reason??"Task cancelled by you",taskId:o.id,metadata:JSON.stringify({kind:"lifecycle"})}),await this.reconcileAgentStatus(o.agentId,r),d}async reconcileAgentStatus(e,t){let a=await l.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async cancelTrace(e,t,a){for(let n of[...new Set((await l.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let r=await l.dispatchTaskById(this.db,e.id,a);if(!r)return;let i=new o.TaskPayloadBuilder(this.db),d=await i.buildFullPayloads([r],a);if(0===d.length)return void await l.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:d});0===t&&await l.revertDispatchedToQueued(this.db,e.id,a)}catch{await l.revertDispatchedToQueued(this.db,e.id,a)}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(170865);e.i(700598);var n=e.i(888247),r=e.i(704024),i=e.i(291109),o=e.i(675139),l=e.i(152327),d=e.i(47962),c=e.i(776227),u=e.i(726089),h=e.i(205054),p=e.i(774078),m=t([l]);[l]=m.then?(await m)():m;let w=(0,l.withAuth)(async(e,t)=>{let a=await (0,d.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:n}=(0,s.getCloudflareContext)(),r=(0,o.getDb)(n.DB),l=t.params?.id;if(!l)return(0,c.writeError)("issue id is required",400);if(!await i.queries.issue.getIssue(r,l,a.workspaceId))return(0,c.writeError)("issue not found",404);let u=await i.queries.issueComment.listComments(r,l,a.workspaceId);return(0,c.writeJSON)({comments:u.map(i.queries.issueComment.commentToResponse)})}),g=(0,l.withAuth)(async(e,t)=>{let a=await (0,d.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:l}=(0,s.getCloudflareContext)(),m=(0,o.getDb)(l.DB),w=t.params?.id;if(!w)return(0,c.writeError)("issue id is required",400);let g=await i.queries.issue.getIssue(m,w,a.workspaceId);if(!g)return(0,c.writeError)("issue not found",404);let I=e.nextUrl.searchParams.get("agentId");if(I&&g.agentId!==I)return(0,c.writeError)("issue does not belong to agent",403);let[k,f]=await (0,c.parseBody)(e,n.CreateIssueCommentBodySchema);if(f)return f;let T=I?"agent":"user",y=I??t.userId,b=await i.queries.issueComment.createComment(m,{issueId:w,workspaceId:a.workspaceId,authorType:T,authorId:y,content:k.content});await i.queries.issue.updateIssue(m,w,a.workspaceId,{});let v=i.queries.issueComment.commentToResponse(b);if((0,u.broadcastToUser)(g.creatorUserId,{type:"issue.comment",issueId:w,comment:v}).catch(()=>{}),"user"===T&&!(0,r.isTerminalIssueStatus)(g.status)&&g.agentId&&g.conversationId&&!await i.queries.task.getActiveTaskByConversation(m,g.conversationId,a.workspaceId)){let e=new h.TaskService(m),t=`${g.title}
2
+
3
+ User feedback: "${k.content}"`;try{let s=g.latestTaskId?(await i.queries.task.getTask(m,g.latestTaskId,a.workspaceId))?.traceId??null:null,n=await e.enqueueTask(g.agentId,g.conversationId,a.workspaceId,t,r.TASK_TYPES.ISSUE_EVENT,{contextKey:g.conversationId,context:{issue_id:g.id},traceId:s,parentTaskId:null});await i.queries.issue.setLatestTask(m,w,a.workspaceId,n.id);let o=new Date().toISOString().slice(0,10);(0,p.invalidate)(p.cacheKeys.overviewTaskStats(a.workspaceId,o)).catch(()=>{})}catch{}}return(0,c.writeJSON)({comment:v},201)});e.s(["GET",0,w,"POST",0,g]),a()}catch(e){a(e)}},!1),789442,e=>e.a(async(t,a)=>{try{var s=e.i(80774),n=e.i(404478),r=e.i(732985),i=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),h=e.i(359838),p=e.i(383303),m=e.i(234173),w=e.i(270215),g=e.i(830665),I=e.i(944002),k=e.i(193695);e.i(195928);var f=e.i(81543),T=e.i(914022),y=t([T]);[T]=y.then?(await y)():y;let v=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/issues/[id]/comments/route",pathname:"/api/issues/[id]/comments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/comments/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:S,serverHooks:A}=v;async function b(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/issues/[id]/comments/route";s=s.replace(/\/index$/,"")||"/";let r=await v.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:y,params:b,nextConfig:_,parsedUrl:S,isDraftMode:A,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:C,revalidateOnlyGenerated:q,resolvedPathname:x,clientReferenceManifest:P,serverActionsManifest:K}=r,U=(0,d.normalizeAppPath)(s),O=!!(E.dynamicRoutes[U]||E.routes[x]),N=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,S,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!E.routes[x],t=E.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await N();throw new k.NoFallbackError}}let M=null;!O||v.isDev||A||(M=x,M="/index"===M?"/":M);let D=!0===v.isDev||!O,$=O&&!D;K&&P&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:K});let B=e.method||"GET",L=(0,o.getTracer)(),H=L.getActiveScopeSpan(),j=!!(null==R?void 0:R.isWrappedByNextServer),F=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,_,E,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:b,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:D,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>v.onRequestError(e,t,s,n,R)},sharedContext:{buildId:T,deploymentId:y}},J=new c.NodeNextRequest(e),V=new c.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let r,i=async e=>v.handle(G,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=L.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${B} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",n),r.updateName(t))}else e.updateName(`${B} ${s}`)}),l=async r=>{var o,l;let d=async({previousCacheEntry:n})=>{try{if(!F&&C&&q&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(r);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=Y.renderOpts.collectedTags;if(!O)return await (0,m.sendResponse)(J,V,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[I.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=I.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=I.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:C})},!1,R),t}},c=await v.handleResponse({req:e,nextConfig:_,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:q,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:F});if(!O)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,w.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&O||u.delete(I.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,m.sendResponse)(J,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&H?await l(H):(r=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(h.BaseServerSpan.handleRequest,{spanName:`${B} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof k.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:C})},!1,R),O)throw t;return await (0,m.sendResponse)(J,V,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:S})},"routeModule",0,v,"serverHooks",0,A,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,S]),a()}catch(e){a(e)}},!1),56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
4
+
5
+ //# sourceMappingURL=_03gwxos._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[696831,e=>e.a(async(t,a)=>{try{var r=e.i(170865);e.i(700598);var n=e.i(291109),o=e.i(888247),i=e.i(553223),s=e.i(927153),l=e.i(675139),d=e.i(152327),c=e.i(47962),u=e.i(776227),p=e.i(740580),h=e.i(801093),g=e.i(726089),v=t([d]);[d]=v.then?(await v)():v;let w=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:o}=(0,r.getCloudflareContext)(),s=(0,l.getDb)(o.DB),d=e.nextUrl.searchParams.get("agentId")??void 0,h=e.nextUrl.searchParams.get("from")??void 0,g=e.nextUrl.searchParams.get("to")??void 0;if(d&&!await n.queries.agent.getAgent(s,d,a.workspaceId,t.userId))return(0,u.writeError)("agent not found in workspace",404);let v=await n.queries.calendarEvent.listCalendarEvents(s,a.workspaceId,{agentId:d,from:h,to:g}),w=[];for(let e of v){if(!e.repeatInterval||!h||!g){w.push((0,p.calendarEventToResponse)(e));continue}let t=(0,i.getOccurrencesPerDay)(e.repeatInterval);if(t>5){let a=new Date(h),r=new Date(g),n=new Date(e.scheduledAt),o=e.repeatStopAt?new Date(e.repeatStopAt):null,i=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())),s=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate())),l=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate())),d=0;for(;i<=s&&d<366;){if(i>=l&&(!o||i<=o)){let a=new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds())).toISOString();w.push((0,p.calendarEventToResponse)({...e,scheduledAt:a,occurrenceAt:a,collapsedCount:t}))}i.setUTCDate(i.getUTCDate()+1),d++}}else for(let t of(0,i.expandOccurrences)(e.scheduledAt,e.repeatInterval,e.repeatStopAt??null,e.exceptions??[],h,g))w.push((0,p.calendarEventToResponse)({...e,scheduledAt:t,occurrenceAt:t}))}for(let e of(await n.queries.meetingSession.listMeetingsWithSchedule(s,a.workspaceId)))!e.scheduledAt||h&&e.scheduledAt<h||g&&e.scheduledAt>g||d&&e.agentId!==d||w.push({id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title||"Meeting",description:e.meetingUrl,scheduled_at:e.scheduledAt,occurrence_at:e.scheduledAt,collapsed_count:null,repeat_interval:null,repeat_stop_at:null,last_triggered_at:null,created_at:e.createdAt,updated_at:e.updatedAt,_type:"meeting",_status:e.status});return w.sort((e,t)=>(e.scheduled_at??"").localeCompare(t.scheduled_at??"")),(0,u.writeJSON)(w)}),C=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,r.getCloudflareContext)(),d=(0,l.getDb)(i.DB),[v,w]=await (0,u.parseBody)(e,o.CreateCalendarEventRequestSchema);if(w)return w;let C=await n.queries.agent.getAgent(d,v.agent_id,a.workspaceId,t.userId);if(!C)return(0,u.writeError)("agent not found in workspace",404);let f=new Date(v.scheduled_at),R=f.toISOString(),E=null;if(v.repeat_stop_date&&(E=(0,h.repeatStopDateToStopAt)(v.repeat_stop_date),new Date(E)<f))return(0,u.writeError)("repeat_stop_date must be on or after the first scheduled occurrence",400);let _=v.description?.trim()||null,m=_&&(0,s.isEmptyHtml)(_)?null:_,A=await n.queries.calendarEvent.createCalendarEvent(d,{agentId:v.agent_id,workspaceId:a.workspaceId,title:v.title,description:m,scheduledAt:R,repeatInterval:v.repeat_interval??null,repeatStopAt:E});if(v.conversation_id&&C.ownerId&&await n.queries.conversation.getConversation(d,v.conversation_id,a.workspaceId)){let e=`${v.title}`,t=JSON.stringify({calendarEventId:A.id}),a=await n.queries.message.createMessage(d,{conversationId:v.conversation_id,role:"event",content:e,metadata:t});(0,g.broadcastToUser)(C.ownerId,{type:"conversation.message",conversationId:v.conversation_id,message:{id:a.id,conversation_id:a.conversationId,role:a.role,content:a.content,task_id:a.taskId,attachment_ids:null,metadata:{calendarEventId:A.id},created_at:a.createdAt}}).catch(()=>{})}return(0,u.writeJSON)((0,p.calendarEventToResponse)(A),201)});e.s(["GET",0,w,"POST",0,C]),a()}catch(e){a(e)}},!1),770639,e=>e.a(async(t,a)=>{try{var r=e.i(80774),n=e.i(404478),o=e.i(732985),i=e.i(481671),s=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),g=e.i(234173),v=e.i(270215),w=e.i(830665),C=e.i(944002),f=e.i(193695);e.i(195928);var R=e.i(81543),E=e.i(696831),_=t([E]);[E]=_.then?(await _)():_;let A=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/calendar/route",pathname:"/api/calendar",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/calendar/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:I,serverHooks:U}=A;async function m(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/calendar/route";r=r.replace(/\/index$/,"")||"/";let o=await A.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,deploymentId:_,params:m,nextConfig:T,parsedUrl:I,isDraftMode:U,prerenderManifest:S,routerServerContext:y,isOnDemandRevalidate:D,revalidateOnlyGenerated:x,resolvedPathname:b,clientReferenceManifest:O,serverActionsManifest:P}=o,k=(0,d.normalizeAppPath)(r),N=!!(S.dynamicRoutes[k]||S.routes[b]),q=async()=>((null==y?void 0:y.render404)?await y.render404(e,t,I,!1):t.end("This page could not be found"),null);if(N&&!U){let e=!!S.routes[b],t=S.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await q();throw new f.NoFallbackError}}let M=null;!N||A.isDev||U||(M=b,M="/index"===M?"/":M);let H=!0===A.isDev||!N,F=N&&!H;P&&O&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",B=(0,s.getTracer)(),K=B.getActiveScopeSpan(),j=!!(null==y?void 0:y.isWrappedByNextServer),W=!!(0,i.getRequestMeta)(e,"minimalMode"),L=(0,i.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,T,S,W);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:m,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:T.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>A.onRequestError(e,t,r,n,y)},sharedContext:{buildId:E,deploymentId:_}},Y=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let o,i=async e=>A.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",n),o.updateName(t))}else e.updateName(`${$} ${r}`)}),l=async o=>{var s,l;let d=async({previousCacheEntry:n})=>{try{if(!W&&D&&x&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(o);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!N)return await (0,g.sendResponse)(Y,J,r,G.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[C.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=C.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=C.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,y),t}},c=await A.handleResponse({req:e,nextConfig:T,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!N)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",D?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),U&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,v.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&N||u.delete(C.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,w.getCacheControlHeader)(c.cacheControl)),await (0,g.sendResponse)(Y,J,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&K?await l(K):(o=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof f.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,y),N)throw t;return await (0,g.sendResponse)(Y,J,new Response(null,{status:500})),null}}e.s(["handler",0,m,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:I})},"routeModule",0,A,"serverHooks",0,U,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,I]),a()}catch(e){a(e)}},!1)];
1
+ module.exports=[696831,e=>e.a(async(t,a)=>{try{var r=e.i(170865);e.i(700598);var n=e.i(291109),i=e.i(888247),o=e.i(553223),s=e.i(927153),l=e.i(675139),d=e.i(152327),c=e.i(47962),u=e.i(776227),p=e.i(740580),h=e.i(801093),g=e.i(726089),v=t([d]);[d]=v.then?(await v)():v;let w=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,r.getCloudflareContext)(),s=(0,l.getDb)(i.DB),d=e.nextUrl.searchParams.get("agentId")??void 0,h=e.nextUrl.searchParams.get("from")??void 0,g=e.nextUrl.searchParams.get("to")??void 0;if(d&&!await n.queries.agent.getAgent(s,d,a.workspaceId,t.userId))return(0,u.writeError)("agent not found in workspace",404);let v=await n.queries.calendarEvent.listCalendarEvents(s,a.workspaceId,{agentId:d,from:h,to:g}),w=[];for(let e of v){if(!e.repeatInterval||!h||!g){w.push((0,p.calendarEventToResponse)(e));continue}let t=(0,o.getOccurrencesPerDay)(e.repeatInterval);if(t>5){let a=new Date(h),r=new Date(g),n=new Date(e.scheduledAt),i=e.repeatStopAt?new Date(e.repeatStopAt):null,o=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())),s=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate())),l=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate())),d=0;for(;o<=s&&d<366;){if(o>=l&&(!i||o<=i)){let a=new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds())).toISOString();w.push((0,p.calendarEventToResponse)({...e,scheduledAt:a,occurrenceAt:a,collapsedCount:t}))}o.setUTCDate(o.getUTCDate()+1),d++}}else for(let t of(0,o.expandOccurrences)(e.scheduledAt,e.repeatInterval,e.repeatStopAt??null,e.exceptions??[],h,g))w.push((0,p.calendarEventToResponse)({...e,scheduledAt:t,occurrenceAt:t}))}for(let e of(await n.queries.meetingSession.listMeetingsWithSchedule(s,a.workspaceId)))!e.scheduledAt||h&&e.scheduledAt<h||g&&e.scheduledAt>g||d&&e.agentId!==d||w.push({id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title||"Meeting",description:e.meetingUrl,scheduled_at:e.scheduledAt,occurrence_at:e.scheduledAt,collapsed_count:null,repeat_interval:null,repeat_stop_at:null,last_triggered_at:null,created_at:e.createdAt,updated_at:e.updatedAt,_type:"meeting",_status:e.status});return w.sort((e,t)=>(e.scheduled_at??"").localeCompare(t.scheduled_at??"")),(0,u.writeJSON)(w)}),C=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:o}=(0,r.getCloudflareContext)(),d=(0,l.getDb)(o.DB),[v,w]=await (0,u.parseBody)(e,i.CreateCalendarEventRequestSchema);if(w)return w;let C=await n.queries.agent.getAgent(d,v.agent_id,a.workspaceId,t.userId);if(!C)return(0,u.writeError)("agent not found in workspace",404);let f=new Date(v.scheduled_at),R=f.toISOString(),A=null;if(v.repeat_stop_date&&(A=(0,h.repeatStopDateToStopAt)(v.repeat_stop_date),new Date(A)<f))return(0,u.writeError)("repeat_stop_date must be on or after the first scheduled occurrence",400);let E=v.description?.trim()||null,_=E&&(0,s.isEmptyHtml)(E)?null:E,m=await n.queries.calendarEvent.createCalendarEvent(d,{agentId:v.agent_id,workspaceId:a.workspaceId,title:v.title,description:_,scheduledAt:R,repeatInterval:v.repeat_interval??null,repeatStopAt:A});if(v.conversation_id&&C.ownerId&&await n.queries.conversation.getConversation(d,v.conversation_id,a.workspaceId)){let e=`${v.title}`,t=JSON.stringify({calendarEventId:m.id,title:v.title,scheduledAt:m.scheduledAt,...m.repeatInterval?{repeatInterval:m.repeatInterval}:{}}),a=await n.queries.message.createMessage(d,{conversationId:v.conversation_id,role:"event",content:e,metadata:t});(0,g.broadcastToUser)(C.ownerId,{type:"conversation.message",conversationId:v.conversation_id,message:{id:a.id,conversation_id:a.conversationId,role:a.role,content:a.content,task_id:a.taskId,attachment_ids:null,metadata:{calendarEventId:m.id,title:v.title,scheduledAt:m.scheduledAt,...m.repeatInterval?{repeatInterval:m.repeatInterval}:{}},created_at:a.createdAt}}).catch(()=>{})}return(0,u.writeJSON)((0,p.calendarEventToResponse)(m),201)});e.s(["GET",0,w,"POST",0,C]),a()}catch(e){a(e)}},!1),770639,e=>e.a(async(t,a)=>{try{var r=e.i(80774),n=e.i(404478),i=e.i(732985),o=e.i(481671),s=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),g=e.i(234173),v=e.i(270215),w=e.i(830665),C=e.i(944002),f=e.i(193695);e.i(195928);var R=e.i(81543),A=e.i(696831),E=t([A]);[A]=E.then?(await E)():E;let m=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/calendar/route",pathname:"/api/calendar",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/calendar/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:I,serverHooks:U}=m;async function _(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/calendar/route";r=r.replace(/\/index$/,"")||"/";let i=await m.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,deploymentId:E,params:_,nextConfig:T,parsedUrl:I,isDraftMode:U,prerenderManifest:S,routerServerContext:y,isOnDemandRevalidate:D,revalidateOnlyGenerated:x,resolvedPathname:b,clientReferenceManifest:O,serverActionsManifest:P}=i,k=(0,d.normalizeAppPath)(r),N=!!(S.dynamicRoutes[k]||S.routes[b]),q=async()=>((null==y?void 0:y.render404)?await y.render404(e,t,I,!1):t.end("This page could not be found"),null);if(N&&!U){let e=!!S.routes[b],t=S.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await q();throw new f.NoFallbackError}}let M=null;!N||m.isDev||U||(M=b,M="/index"===M?"/":M);let H=!0===m.isDev||!N,F=N&&!H;P&&O&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",B=(0,s.getTracer)(),K=B.getActiveScopeSpan(),j=!!(null==y?void 0:y.isWrappedByNextServer),W=!!(0,o.getRequestMeta)(e,"minimalMode"),L=(0,o.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,T,S,W);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:_,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:T.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>m.onRequestError(e,t,r,n,y)},sharedContext:{buildId:A,deploymentId:E}},Y=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let i,o=async e=>m.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${$} ${r}`)}),l=async i=>{var s,l;let d=async({previousCacheEntry:n})=>{try{if(!W&&D&&x&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!N)return await (0,g.sendResponse)(Y,J,r,G.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[C.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=C.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=C.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,y),t}},c=await m.handleResponse({req:e,nextConfig:T,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!N)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",D?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),U&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,v.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&N||u.delete(C.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,w.getCacheControlHeader)(c.cacheControl)),await (0,g.sendResponse)(Y,J,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&K?await l(K):(i=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof f.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,y),N)throw t;return await (0,g.sendResponse)(Y,J,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:I})},"routeModule",0,m,"serverHooks",0,U,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,I]),a()}catch(e){a(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_03t_17c._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[636551,e=>e.a(async(t,a)=>{try{var r=e.i(170865);e.i(700598);var s=e.i(291109),n=e.i(675139),i=e.i(152327),o=e.i(47962),l=e.i(776227),u=e.i(740580),d=t([i]);[i]=d.then?(await d)():d;let c=(0,i.withAuth)(async(e,t)=>{let a,i=await (0,o.withWorkspaceMember)(e,t);if(i instanceof Response)return i;let{env:d}=(0,r.getCloudflareContext)(),c=(0,n.getDb)(d.DB),p=t.params?.id;if(!p)return(0,l.writeError)("agent id is required",400);if(!await s.queries.agent.getAgent(c,p,i.workspaceId,t.userId))return(0,l.writeError)("agent not found",404);try{let t=await e.json();a="string"==typeof t.channel?t.channel:void 0}catch{}let h=await s.queries.conversation.getOrCreateAgentConversation(c,i.workspaceId,t.userId,p,a),v=h.id,[m,_,g,R]=await Promise.allSettled([s.queries.message.listMessages(c,v,{limit:20}),s.queries.artifact.listArtifactsByConversation(c,v,i.workspaceId,{limit:50}),s.queries.task.getActiveTaskByConversation(c,v,i.workspaceId),s.queries.conversation.hasPreviousConversations(c,i.workspaceId,t.userId,p,v,a)]),{messages:f,has_more:w}="fulfilled"===m.status?m.value:{messages:[],has_more:!1},y="fulfilled"===_.status?_.value:[],C="fulfilled"===g.status?g.value:null,E="fulfilled"===R.status&&R.value,k=[];if(C)try{k=(await s.queries.taskMessage.listTaskErrorMessages(c,C.id,i.workspaceId)).map(u.taskMessageToResponse)}catch{}return(0,l.writeJSON)({conversation:(0,u.conversationToResponse)(h),messages:f.map(u.messageToResponse),artifacts:y.map(s.queries.artifact.artifactToResponse),active_task:C?(0,u.taskToResponse)(C):null,task_messages:k,has_more_messages:w,has_more_conversations:E,has_more_artifacts:y.length>=50})});e.s(["POST",0,c]),a()}catch(e){a(e)}},!1),84690,e=>e.a(async(t,a)=>{try{var r=e.i(80774),s=e.i(404478),n=e.i(732985),i=e.i(481671),o=e.i(638081),l=e.i(204960),u=e.i(924918),d=e.i(363585),c=e.i(906846),p=e.i(359838),h=e.i(383303),v=e.i(234173),m=e.i(270215),_=e.i(830665),g=e.i(944002),R=e.i(193695);e.i(195928);var f=e.i(81543),w=e.i(636551),y=t([w]);[w]=y.then?(await y)():y;let E=new r.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agents/[id]/chat-init/route",pathname:"/api/agents/[id]/chat-init",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/agents/[id]/chat-init/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:x}=E;async function C(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/agents/[id]/chat-init/route";r=r.replace(/\/index$/,"")||"/";let n=await E.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,deploymentId:y,params:C,nextConfig:k,parsedUrl:A,isDraftMode:x,prerenderManifest:T,routerServerContext:b,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:N,clientReferenceManifest:I,serverActionsManifest:S}=n,O=(0,u.normalizeAppPath)(r),M=!!(T.dynamicRoutes[O]||T.routes[N]),j=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(M&&!x){let e=!!T.routes[N],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await j();throw new R.NoFallbackError}}let H=null;!M||E.isDev||x||(H=N,H="/index"===H?"/":H);let U=!0===E.isDev||!M,D=M&&!U;S&&I&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:I,serverActionsManifest:S});let B=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K=!!(null==b?void 0:b.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,k,T,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:C,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:U,incrementalCache:W,cacheLifeProfiles:k.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>E.onRequestError(e,t,r,s,b)},sharedContext:{buildId:w,deploymentId:y}},V=new d.NodeNextRequest(e),X=new d.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>E.handle(z,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${B} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${B} ${r}`)}),l=async n=>{var o,l;let u=async({previousCacheEntry:s})=>{try{if(!L&&P&&q&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!M)return await (0,v.sendResponse)(V,X,r,G.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==s?void 0:s.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,b),t}},d=await E.handleResponse({req:e,nextConfig:k,cacheKey:H,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:L});if(!M)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",P?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&M||c.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,_.getCacheControlHeader)(d.cacheControl)),await (0,v.sendResponse)(V,X,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};K&&F?await l(F):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${r}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,b),M)throw t;return await (0,v.sendResponse)(V,X,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})},"routeModule",0,E,"serverHooks",0,x,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,A]),a()}catch(e){a(e)}},!1),56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
2
+
3
+ //# sourceMappingURL=_06mrt6t._.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[67157,e=>e.a(async(t,s)=>{try{var a=e.i(170865);e.i(700598);var r=e.i(888247),i=e.i(704024),n=e.i(291109),o=e.i(719436),u=e.i(675139),d=e.i(152327),l=e.i(47962),c=e.i(776227),p=e.i(740580),w=e.i(205054),g=e.i(726089),I=e.i(774078),h=e.i(511456),f=t([d]);[d]=f.then?(await f)():f;let m=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:r}=(0,a.getCloudflareContext)(),i=(0,u.getDb)(r.DB),o=t.params?.id;if(!o)return(0,c.writeError)("issue id is required",400);let d=await n.queries.issue.getIssue(i,o,s.workspaceId);if(!d)return(0,c.writeError)("issue not found",404);let w=e.nextUrl.searchParams.get("agentId");if(w&&d.agentId!==w)return(0,c.writeError)("issue does not belong to agent",403);let g=null;if(d.latestTaskId){let e=await n.queries.task.getTask(i,d.latestTaskId,s.workspaceId);g=e?.traceId??null}let I=await n.queries.issue.listIssueMessages(i,o,s.workspaceId),h=await n.queries.issueComment.listComments(i,o,s.workspaceId),f=d.conversationId?await n.queries.artifact.listArtifactsByConversation(i,d.conversationId,s.workspaceId):[];return(0,c.writeJSON)({issue:{...(0,p.issueToResponse)(d),trace_id:g},messages:(I??[]).map(p.messageToResponse),comments:h.map(n.queries.issueComment.commentToResponse),artifacts:f.map(n.queries.artifact.artifactToResponse)})}),v=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:d}=(0,a.getCloudflareContext)(),h=(0,u.getDb)(d.DB),f=t.params?.id;if(!f)return(0,c.writeError)("issue id is required",400);let m=await n.queries.issue.getIssue(h,f,s.workspaceId);if(!m)return(0,c.writeError)("issue not found",404);let v=e.nextUrl.searchParams.get("agentId");if(v&&m.agentId!==v)return(0,c.writeError)("issue does not belong to agent",403);let[R,E]=await (0,c.parseBody)(e,r.UpdateIssueRequestSchema);if(E)return E;if(R.agent_id){if("todo"!==m.status)return(0,c.writeError)("Agent assignment is only allowed for todo (draft) issues",400);let e=await n.queries.agent.getAgent(h,R.agent_id,s.workspaceId,t.userId);if(!e)return(0,c.writeError)("agent not found in workspace",404);if(!e.ownerId)return(0,c.writeError)("agent has no owner",400);let a=await n.queries.conversation.createConversation(h,{workspaceId:s.workspaceId,agentId:R.agent_id,userId:t.userId,title:`[Issue] ${m.title}`.slice(0,120),type:i.TASK_TYPES.ISSUE_EVENT}),r=await n.queries.issue.updateIssue(h,f,s.workspaceId,{agentId:R.agent_id,conversationId:a.id,status:"in_progress"});if(!r)return(0,c.writeError)("issue not found",404);await n.queries.message.createMessage(h,{conversationId:a.id,role:"event",content:`Issue created: ${m.title}`,metadata:JSON.stringify({issueId:m.id})});let u=m.description.trim()?`${m.title}
1
+ module.exports=[67157,e=>e.a(async(t,s)=>{try{var a=e.i(170865);e.i(700598);var r=e.i(888247),i=e.i(704024),n=e.i(291109),o=e.i(719436),u=e.i(675139),d=e.i(152327),l=e.i(47962),c=e.i(776227),p=e.i(740580),w=e.i(205054),g=e.i(726089),I=e.i(774078),h=e.i(511456),f=t([d]);[d]=f.then?(await f)():f;let m=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:r}=(0,a.getCloudflareContext)(),i=(0,u.getDb)(r.DB),o=t.params?.id;if(!o)return(0,c.writeError)("issue id is required",400);let d=await n.queries.issue.getIssue(i,o,s.workspaceId);if(!d)return(0,c.writeError)("issue not found",404);let w=e.nextUrl.searchParams.get("agentId");if(w&&d.agentId!==w)return(0,c.writeError)("issue does not belong to agent",403);let g=null;if(d.latestTaskId){let e=await n.queries.task.getTask(i,d.latestTaskId,s.workspaceId);g=e?.traceId??null}let I=await n.queries.issue.listIssueMessages(i,o,s.workspaceId),h=await n.queries.issueComment.listComments(i,o,s.workspaceId),f=d.conversationId?await n.queries.artifact.listArtifactsByConversation(i,d.conversationId,s.workspaceId):[];return(0,c.writeJSON)({issue:{...(0,p.issueToResponse)(d),trace_id:g},messages:(I??[]).map(p.messageToResponse),comments:h.map(n.queries.issueComment.commentToResponse),artifacts:f.map(n.queries.artifact.artifactToResponse)})}),v=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:d}=(0,a.getCloudflareContext)(),h=(0,u.getDb)(d.DB),f=t.params?.id;if(!f)return(0,c.writeError)("issue id is required",400);let m=await n.queries.issue.getIssue(h,f,s.workspaceId);if(!m)return(0,c.writeError)("issue not found",404);let v=e.nextUrl.searchParams.get("agentId");if(v&&m.agentId!==v)return(0,c.writeError)("issue does not belong to agent",403);let[R,E]=await (0,c.parseBody)(e,r.UpdateIssueRequestSchema);if(E)return E;if(R.agent_id){if("todo"!==m.status)return(0,c.writeError)("Agent assignment is only allowed for todo (draft) issues",400);let e=await n.queries.agent.getAgent(h,R.agent_id,s.workspaceId,t.userId);if(!e)return(0,c.writeError)("agent not found in workspace",404);if(!e.ownerId)return(0,c.writeError)("agent has no owner",400);let a=await n.queries.conversation.createConversation(h,{workspaceId:s.workspaceId,agentId:R.agent_id,userId:t.userId,title:`[Issue] ${m.title}`.slice(0,120),type:i.TASK_TYPES.ISSUE_EVENT}),r=await n.queries.issue.updateIssue(h,f,s.workspaceId,{agentId:R.agent_id,conversationId:a.id,status:"in_progress"});if(!r)return(0,c.writeError)("issue not found",404);await n.queries.message.createMessage(h,{conversationId:a.id,role:"event",content:`Issue created: ${m.title}`,metadata:JSON.stringify({issueId:m.id,title:m.title,event:"created",agentId:R.agent_id})});let u=m.description.trim()?`${m.title}
2
2
 
3
- ${m.description}`:m.title,d=new w.TaskService(h);try{let e=await d.enqueueTask(R.agent_id,a.id,s.workspaceId,u,i.TASK_TYPES.ISSUE_EVENT,{contextKey:a.id,context:{issue_id:m.id},traceId:"tr_"+(0,o.nanoid)(),parentTaskId:null}),l=await n.queries.issue.setLatestTask(h,f,s.workspaceId,e.id)??r,w=new Date().toISOString().slice(0,10);return(0,I.invalidate)(I.cacheKeys.overviewTaskStats(s.workspaceId,w)).catch(()=>{}),(0,g.broadcastToUser)(t.userId,{type:"task.updated",taskId:e.id,agentId:e.agentId,status:"queued"}).catch(()=>{}),(0,c.writeJSON)({...(0,p.issueToResponse)(l),task:(0,p.taskToResponse)(e)})}catch(e){return await n.queries.issue.updateIssue(h,f,s.workspaceId,{status:"todo"}),await n.queries.message.createMessage(h,{conversationId:a.id,role:"event",content:`Issue dispatch failed: ${e instanceof Error?e.message:"unknown error"}`,metadata:JSON.stringify({issueId:m.id})}),(0,c.writeError)(e instanceof Error?e.message:"failed to dispatch issue",500)}}let k=await n.queries.issue.updateIssue(h,f,s.workspaceId,{title:R.title,description:R.description,status:R.status});if(!k)return(0,c.writeError)("issue not found",404);if(R.status&&R.status!==m.status&&m.conversationId){let e=await n.queries.message.createMessage(h,{conversationId:m.conversationId,role:"event",content:`Issue status changed: ${m.status} -> ${R.status}`,metadata:JSON.stringify({issueId:m.id})});(0,g.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:m.conversationId,message:(0,p.messageToResponse)(e)}).catch(()=>{})}return(0,c.writeJSON)((0,p.issueToResponse)(k))}),R=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:r}=(0,a.getCloudflareContext)(),i=(0,u.getDb)(r.DB),o=t.params?.id;if(!o)return(0,c.writeError)("issue id is required",400);let d=await n.queries.issue.getIssue(i,o,s.workspaceId);if(!d)return(0,c.writeError)("issue not found",404);if(d.conversationId){let e=new w.TaskService(i);try{let t=d.latestTaskId?await n.queries.task.getTask(i,d.latestTaskId,s.workspaceId):null,a="Task cancelled: issue deleted";t?.traceId?await e.cancelTrace(t.traceId,s.workspaceId,{reason:a}):await e.cancelActiveTask(d.conversationId,s.workspaceId,{skipDispatch:!0,reason:a})}catch(e){h.log.warn("failed to cancel tasks during issue deletion",{issueId:o,err:e})}}return await n.queries.issue.deleteIssue(i,o,s.workspaceId),new Response(null,{status:204})}),E=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:i}=(0,a.getCloudflareContext)(),o=(0,u.getDb)(i.DB),d=t.params?.id;if(!d)return(0,c.writeError)("issue id is required",400);let p=await n.queries.issue.getIssue(o,d,s.workspaceId);if(!p)return(0,c.writeError)("issue not found",404);let w=e.nextUrl.searchParams.get("agentId");if(w&&p.agentId!==w)return(0,c.writeError)("issue does not belong to agent",403);let[g,I]=await (0,c.parseBody)(e,r.CreateIssueCommentBodySchema);if(I)return I;let h=w??t.userId,f=await n.queries.issueComment.createComment(o,{issueId:d,workspaceId:s.workspaceId,authorType:w?"agent":"user",authorId:h,content:g.content});return await n.queries.issue.updateIssue(o,d,s.workspaceId,{}),(0,c.writeJSON)({comment:n.queries.issueComment.commentToResponse(f)},201)});e.s(["DELETE",0,R,"GET",0,m,"PATCH",0,v,"POST",0,E]),s()}catch(e){s(e)}},!1),645183,e=>e.a(async(t,s)=>{try{var a=e.i(80774),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=e.i(638081),u=e.i(204960),d=e.i(924918),l=e.i(363585),c=e.i(906846),p=e.i(359838),w=e.i(383303),g=e.i(234173),I=e.i(270215),h=e.i(830665),f=e.i(944002),m=e.i(193695);e.i(195928);var v=e.i(81543),R=e.i(67157),E=t([R]);[R]=E.then?(await E)():E;let T=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/issues/[id]/route",pathname:"/api/issues/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:q}=T;async function k(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/issues/[id]/route";a=a.replace(/\/index$/,"")||"/";let i=await T.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,deploymentId:E,params:k,nextConfig:C,parsedUrl:y,isDraftMode:q,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:b,resolvedPathname:_,clientReferenceManifest:N,serverActionsManifest:P}=i,O=(0,d.normalizeAppPath)(a),D=!!(S.dynamicRoutes[O]||S.routes[_]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,y,!1):t.end("This page could not be found"),null);if(D&&!q){let e=!!S.routes[_],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await U();throw new m.NoFallbackError}}let M=null;!D||T.isDev||q||(M=_,M="/index"===M?"/":M);let H=!0===T.isDev||!D,$=D&&!H;P&&N&&(0,u.setManifestsSingleton)({page:a,clientReferenceManifest:N,serverActionsManifest:P});let B=e.method||"GET",K=(0,o.getTracer)(),F=K.getActiveScopeSpan(),j=!!(null==A?void 0:A.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,C,S,J);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let W={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:C.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,a,r)=>T.onRequestError(e,t,a,r,A)},sharedContext:{buildId:R,deploymentId:E}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let i,n=async e=>T.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=K.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${B} ${a}`)}),u=async i=>{var o,u;let d=async({previousCacheEntry:r})=>{try{if(!J&&x&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await n(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let u=W.renderOpts.collectedTags;if(!D)return await (0,g.sendResponse)(V,G,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,I.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),t}},l=await T.handleResponse({req:e,nextConfig:C,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:b,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:J});if(!D)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(u=l.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,I.fromNodeOutgoingHttpHeaders)(l.value.headers);return J&&D||c.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(l.cacheControl)),await (0,g.sendResponse)(V,G,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};j&&F?await u(F):(i=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},u),void 0,!j))}catch(t){if(t instanceof m.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),D)throw t;return await (0,g.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})},"routeModule",0,T,"serverHooks",0,q,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,y]),s()}catch(e){s(e)}},!1)];
3
+ ${m.description}`:m.title,d=new w.TaskService(h);try{let e=await d.enqueueTask(R.agent_id,a.id,s.workspaceId,u,i.TASK_TYPES.ISSUE_EVENT,{contextKey:a.id,context:{issue_id:m.id},traceId:"tr_"+(0,o.nanoid)(),parentTaskId:null}),l=await n.queries.issue.setLatestTask(h,f,s.workspaceId,e.id)??r,w=new Date().toISOString().slice(0,10);return(0,I.invalidate)(I.cacheKeys.overviewTaskStats(s.workspaceId,w)).catch(()=>{}),(0,g.broadcastToUser)(t.userId,{type:"task.updated",taskId:e.id,agentId:e.agentId,status:"queued"}).catch(()=>{}),(0,c.writeJSON)({...(0,p.issueToResponse)(l),task:(0,p.taskToResponse)(e)})}catch(e){return await n.queries.issue.updateIssue(h,f,s.workspaceId,{status:"todo"}),await n.queries.message.createMessage(h,{conversationId:a.id,role:"event",content:`Issue dispatch failed: ${e instanceof Error?e.message:"unknown error"}`,metadata:JSON.stringify({issueId:m.id,title:m.title,event:"dispatch_failed"})}),(0,c.writeError)(e instanceof Error?e.message:"failed to dispatch issue",500)}}let k=await n.queries.issue.updateIssue(h,f,s.workspaceId,{title:R.title,description:R.description,status:R.status});if(!k)return(0,c.writeError)("issue not found",404);if(R.status&&R.status!==m.status&&m.conversationId){let e=await n.queries.message.createMessage(h,{conversationId:m.conversationId,role:"event",content:`Issue status changed: ${m.status} -> ${R.status}`,metadata:JSON.stringify({issueId:m.id,title:m.title,event:"status_changed",fromStatus:m.status,toStatus:R.status})});(0,g.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:m.conversationId,message:(0,p.messageToResponse)(e)}).catch(()=>{})}return(0,c.writeJSON)((0,p.issueToResponse)(k))}),R=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:r}=(0,a.getCloudflareContext)(),i=(0,u.getDb)(r.DB),o=t.params?.id;if(!o)return(0,c.writeError)("issue id is required",400);let d=await n.queries.issue.getIssue(i,o,s.workspaceId);if(!d)return(0,c.writeError)("issue not found",404);if(d.conversationId){let e=new w.TaskService(i);try{let t=d.latestTaskId?await n.queries.task.getTask(i,d.latestTaskId,s.workspaceId):null,a="Task cancelled: issue deleted";t?.traceId?await e.cancelTrace(t.traceId,s.workspaceId,{reason:a}):await e.cancelActiveTask(d.conversationId,s.workspaceId,{reason:a})}catch(e){h.log.warn("failed to cancel tasks during issue deletion",{issueId:o,err:e})}}return await n.queries.issue.deleteIssue(i,o,s.workspaceId),new Response(null,{status:204})}),E=(0,d.withAuth)(async(e,t)=>{let s=await (0,l.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:i}=(0,a.getCloudflareContext)(),o=(0,u.getDb)(i.DB),d=t.params?.id;if(!d)return(0,c.writeError)("issue id is required",400);let p=await n.queries.issue.getIssue(o,d,s.workspaceId);if(!p)return(0,c.writeError)("issue not found",404);let w=e.nextUrl.searchParams.get("agentId");if(w&&p.agentId!==w)return(0,c.writeError)("issue does not belong to agent",403);let[g,I]=await (0,c.parseBody)(e,r.CreateIssueCommentBodySchema);if(I)return I;let h=w??t.userId,f=await n.queries.issueComment.createComment(o,{issueId:d,workspaceId:s.workspaceId,authorType:w?"agent":"user",authorId:h,content:g.content});return await n.queries.issue.updateIssue(o,d,s.workspaceId,{}),(0,c.writeJSON)({comment:n.queries.issueComment.commentToResponse(f)},201)});e.s(["DELETE",0,R,"GET",0,m,"PATCH",0,v,"POST",0,E]),s()}catch(e){s(e)}},!1),645183,e=>e.a(async(t,s)=>{try{var a=e.i(80774),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=e.i(638081),u=e.i(204960),d=e.i(924918),l=e.i(363585),c=e.i(906846),p=e.i(359838),w=e.i(383303),g=e.i(234173),I=e.i(270215),h=e.i(830665),f=e.i(944002),m=e.i(193695);e.i(195928);var v=e.i(81543),R=e.i(67157),E=t([R]);[R]=E.then?(await E)():E;let T=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/issues/[id]/route",pathname:"/api/issues/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:q}=T;async function k(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/issues/[id]/route";a=a.replace(/\/index$/,"")||"/";let i=await T.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,deploymentId:E,params:k,nextConfig:C,parsedUrl:y,isDraftMode:q,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,resolvedPathname:b,clientReferenceManifest:N,serverActionsManifest:P}=i,O=(0,d.normalizeAppPath)(a),U=!!(S.dynamicRoutes[O]||S.routes[b]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,y,!1):t.end("This page could not be found"),null);if(U&&!q){let e=!!S.routes[b],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await D();throw new m.NoFallbackError}}let M=null;!U||T.isDev||q||(M=b,M="/index"===M?"/":M);let H=!0===T.isDev||!U,$=U&&!H;P&&N&&(0,u.setManifestsSingleton)({page:a,clientReferenceManifest:N,serverActionsManifest:P});let B=e.method||"GET",K=(0,o.getTracer)(),F=K.getActiveScopeSpan(),j=!!(null==A?void 0:A.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,C,S,J);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let W={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:C.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,a,r)=>T.onRequestError(e,t,a,r,A)},sharedContext:{buildId:R,deploymentId:E}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let i,n=async e=>T.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=K.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${B} ${a}`)}),u=async i=>{var o,u;let d=async({previousCacheEntry:r})=>{try{if(!J&&x&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await n(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let u=W.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(V,G,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,I.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),t}},l=await T.handleResponse({req:e,nextConfig:C,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:J});if(!U)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(u=l.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,I.fromNodeOutgoingHttpHeaders)(l.value.headers);return J&&U||c.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(l.cacheControl)),await (0,g.sendResponse)(V,G,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};j&&F?await u(F):(i=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},u),void 0,!j))}catch(t){if(t instanceof m.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),U)throw t;return await (0,g.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})},"routeModule",0,T,"serverHooks",0,q,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,y]),s()}catch(e){s(e)}},!1)];
4
4
 
5
5
  //# sourceMappingURL=_08xh_f8._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[991141,e=>e.a(async(t,a)=>{try{var r=e.i(170865);e.i(700598);var n=e.i(291109),i=e.i(704024),o=e.i(888247),s=e.i(424166),l=e.i(929782),d=e.i(332432),c=e.i(719436),u=e.i(675139),p=e.i(152327),m=e.i(47962),h=e.i(776227),w=e.i(740580),f=e.i(726089),y=e.i(774078),g=t([p]);async function R(e,t,a,r,i,o,s){let l=`Email sent to ${i}: ${o}`,d=JSON.stringify({emailId:s}),c=await n.queries.message.createMessage(e,{conversationId:t,role:"event",content:l,metadata:d});(0,f.broadcastToUser)(a,{type:"conversation.message",conversationId:t,message:{id:c.id,conversation_id:c.conversationId,role:c.role,content:c.content,task_id:c.taskId,attachment_ids:null,metadata:{emailId:s},created_at:c.createdAt}}).catch(()=>{}),(0,f.broadcastToUser)(a,{type:"email.sent",agentId:r}).catch(()=>{})}[p]=g.then?(await g)():g;let I=(0,p.withAuth)(async(e,t)=>{let a,p,f,g=await (0,m.withWorkspaceMember)(e,t);if(g instanceof Response)return g;let{env:I}=(0,r.getCloudflareContext)(),E=(0,u.getDb)(I.DB),[v,T]=await (0,h.parseBody)(e,o.SendEmailRequestSchema);if(T)return T;let A=await n.queries.agent.getAgent(E,v.agentId,g.workspaceId,t.userId);if(!A)return(0,h.writeError)("agent not found in workspace",404);let k=v.customAccountId;if(v.from&&!k){let e=A.emailHandle?(0,s.toAlookAddress)(A.emailHandle):null;if(v.from===e)a=e;else{let e=(await (0,y.cached)(y.cacheKeys.allEmailAccounts(g.workspaceId),600,()=>n.queries.emailAccount.getAllEmailAccountsForWorkspace(E,g.workspaceId))).find(e=>e.agentId===v.agentId&&e.emailAddress===v.from);if(!e)return(0,h.writeError)(`email address '${v.from}' is not configured for this agent`,400);k=e.id,a=e.emailAddress}}else if(k){let e=await n.queries.emailAccount.getEmailAccountScoped(E,k,v.agentId,g.workspaceId);if(!e)return(0,h.writeError)("custom email account not found",404);a=e.emailAddress}else{if(!A.emailHandle)return(0,h.writeError)("agent has no email handle configured",400);a=(0,s.toAlookAddress)(A.emailHandle)}v.conversationId&&await n.queries.conversation.getConversation(E,v.conversationId,g.workspaceId)&&(p=v.conversationId);let b=v.attachments??[],C=(0,s.parseEmailHandle)(a),S=(0,s.parseEmailHandle)(v.to);if(C&&S){let e=await n.queries.agent.getAgentByHandle(E,S);if(e&&e.workspaceId===g.workspaceId){let t,r=`<${(0,c.nanoid)()}@alook.ai>`,o=v.htmlBody||"",s=(await Promise.all(b.map(async e=>{let t=await I.EMAIL_BUCKET.get(e.key);if(!t)return null;let a=await t.arrayBuffer(),r=btoa(String.fromCharCode(...new Uint8Array(a)));return{filename:e.filename,contentType:e.contentType,base64:r}}))).filter(e=>null!==e),u=(0,l.buildMimeMessage)({from:a,to:v.to,subject:v.subject,messageId:r,inReplyTo:v.inReplyTo,references:v.references,body:o,bodyType:"text/html",attachments:s}),m=(0,c.nanoid)(),f=`emails/${m}/raw`;await I.EMAIL_BUCKET.put(f,u,{httpMetadata:{contentType:"message/rfc822"}});let T=await n.queries.whitelist.isWhitelisted(E,e.id,e.workspaceId,a),k=JSON.stringify({agentId:e.id,workspaceId:e.workspaceId,r2Key:f,from:a,to:v.to,subject:v.subject,isWhitelisted:T,forwarded:!1,messageId:r,inReplyTo:v.inReplyTo??"",references:v.references??"",isInternal:!0,...v.traceId?{traceId:v.traceId}:{},...v.sourceTaskId?{sourceTaskId:v.sourceTaskId}:{}}),C={method:"POST",headers:{"Content-Type":"application/json"},body:k};try{t=await I.WORKER_SELF_REFERENCE.fetch("http://internal/api/email/notify",C)}catch{t=await fetch(`${i.DEV_WEB_URL}/api/email/notify`,C)}if(!t.ok){let e=await t.text();return(0,h.writeError)(`local delivery failed: ${e}`,t.status)}let S=await n.queries.email.createEmail(E,{agentId:v.agentId,workspaceId:g.workspaceId,fromEmail:a,toEmail:v.to,subject:v.subject,r2Key:f,isWhitelisted:!1,forwarded:!1,messageId:r,inReplyTo:v.inReplyTo??"",references:v.references??"",htmlBody:o,attachments:JSON.stringify(b),direction:"outbound",status:"sent"});if((0,y.invalidate)(y.cacheKeys.overviewEmailStats(g.workspaceId)).catch(()=>{}),p){let e=(0,d.extractThreadId)(v.references,v.inReplyTo,r);e&&await n.queries.conversationMap.createMapping(E,{key:(0,d.buildEmailMapKey)(v.agentId,e),workspaceId:g.workspaceId,conversationId:p}),A.ownerId&&await R(E,p,A.ownerId,v.agentId,v.to,v.subject,S.id)}return(0,h.writeJSON)((0,w.emailToResponse)(S))}}let x=JSON.stringify({agentId:v.agentId,workspaceId:g.workspaceId,to:v.to,subject:v.subject,htmlBody:v.htmlBody||"",inReplyTo:v.inReplyTo||"",references:v.references||"",customAccountId:k||void 0,attachmentKeys:b.length>0?b.map(e=>({key:e.key,filename:e.filename,contentType:e.contentType})):void 0});try{f=await I.EMAIL_WORKER.fetch("http://internal/send/agent",{method:"POST",headers:{"Content-Type":"application/json"},body:x})}catch{f=await fetch(`${i.DEV_EMAIL_WORKER_URL}/send/agent`,{method:"POST",headers:{"Content-Type":"application/json"},body:x})}if(!f.ok){let e=await f.text();return(0,h.writeError)(`email worker error: ${e}`,f.status)}let _=await f.json(),O=await n.queries.email.createEmail(E,{agentId:v.agentId,workspaceId:g.workspaceId,fromEmail:a,toEmail:v.to,subject:v.subject,r2Key:_.r2Key,isWhitelisted:!1,forwarded:!1,messageId:_.messageId??"",inReplyTo:v.inReplyTo??"",references:v.references??"",htmlBody:v.htmlBody||"",attachments:JSON.stringify(b),direction:"outbound",status:"sent"});if((0,y.invalidate)(y.cacheKeys.overviewEmailStats(g.workspaceId)).catch(()=>{}),p&&_.messageId){let e=(0,d.extractThreadId)(v.references,v.inReplyTo,_.messageId);e&&await n.queries.conversationMap.createMapping(E,{key:(0,d.buildEmailMapKey)(v.agentId,e),workspaceId:g.workspaceId,conversationId:p}),A.ownerId&&await R(E,p,A.ownerId,v.agentId,v.to,v.subject,O.id)}return(0,h.writeJSON)((0,w.emailToResponse)(O))});e.s(["POST",0,I]),a()}catch(e){a(e)}},!1),437146,e=>e.a(async(t,a)=>{try{var r=e.i(80774),n=e.i(404478),i=e.i(732985),o=e.i(481671),s=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),m=e.i(383303),h=e.i(234173),w=e.i(270215),f=e.i(830665),y=e.i(944002),g=e.i(193695);e.i(195928);var R=e.i(81543),I=e.i(991141),E=t([I]);[I]=E.then?(await E)():E;let T=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/email/send/route",pathname:"/api/email/send",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/email/send/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:k,serverHooks:b}=T;async function v(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),T.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/email/send/route";r=r.replace(/\/index$/,"")||"/";let i=await T.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,deploymentId:E,params:v,nextConfig:A,parsedUrl:k,isDraftMode:b,prerenderManifest:C,routerServerContext:S,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,resolvedPathname:O,clientReferenceManifest:N,serverActionsManifest:q}=i,M=(0,d.normalizeAppPath)(r),P=!!(C.dynamicRoutes[M]||C.routes[O]),H=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,k,!1):t.end("This page could not be found"),null);if(P&&!b){let e=!!C.routes[O],t=C.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await H();throw new g.NoFallbackError}}let j=null;!P||T.isDev||b||(j=O,j="/index"===j?"/":j);let U=!0===T.isDev||!P,K=P&&!U;q&&N&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:N,serverActionsManifest:q});let B=e.method||"GET",$=(0,s.getTracer)(),D=$.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),W=!!(0,o.getRequestMeta)(e,"minimalMode"),F=(0,o.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,A,C,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let J={params:v,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:F,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>T.onRequestError(e,t,r,n,S)},sharedContext:{buildId:I,deploymentId:E}},V=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i,o=async e=>T.handle(X,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${B} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${B} ${r}`)}),l=async i=>{var s,l;let d=async({previousCacheEntry:n})=>{try{if(!W&&x&&_&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=J.renderOpts.fetchMetrics;let s=J.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=J.renderOpts.collectedTags;if(!P)return await (0,h.sendResponse)(V,G,r,J.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:x})},!1,S),t}},c=await T.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!P)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,w.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&P||u.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(V,G,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};L&&D?await l(D):(i=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!L))}catch(t){if(t instanceof g.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:x})},!1,S),P)throw t;return await (0,h.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:k})},"routeModule",0,T,"serverHooks",0,b,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,k]),a()}catch(e){a(e)}},!1)];
1
+ module.exports=[991141,e=>e.a(async(t,a)=>{try{var r=e.i(170865);e.i(700598);var n=e.i(291109),i=e.i(704024),o=e.i(888247),s=e.i(424166),l=e.i(929782),d=e.i(332432),c=e.i(719436),u=e.i(675139),p=e.i(152327),m=e.i(47962),h=e.i(776227),w=e.i(740580),f=e.i(726089),y=e.i(774078),g=t([p]);async function R(e,t,a,r,i,o,s,l){let d=`Email sent to ${i}: ${o}`,c={emailId:s,subject:o,from:l,to:i,direction:"outbound"},u=JSON.stringify(c),p=await n.queries.message.createMessage(e,{conversationId:t,role:"event",content:d,metadata:u});(0,f.broadcastToUser)(a,{type:"conversation.message",conversationId:t,message:{id:p.id,conversation_id:p.conversationId,role:p.role,content:p.content,task_id:p.taskId,attachment_ids:null,metadata:c,created_at:p.createdAt}}).catch(()=>{}),(0,f.broadcastToUser)(a,{type:"email.sent",agentId:r}).catch(()=>{})}[p]=g.then?(await g)():g;let I=(0,p.withAuth)(async(e,t)=>{let a,p,f,g=await (0,m.withWorkspaceMember)(e,t);if(g instanceof Response)return g;let{env:I}=(0,r.getCloudflareContext)(),E=(0,u.getDb)(I.DB),[v,T]=await (0,h.parseBody)(e,o.SendEmailRequestSchema);if(T)return T;let A=await n.queries.agent.getAgent(E,v.agentId,g.workspaceId,t.userId);if(!A)return(0,h.writeError)("agent not found in workspace",404);let k=v.customAccountId;if(v.from&&!k){let e=A.emailHandle?(0,s.toAlookAddress)(A.emailHandle):null;if(v.from===e)a=e;else{let e=(await (0,y.cached)(y.cacheKeys.allEmailAccounts(g.workspaceId),600,()=>n.queries.emailAccount.getAllEmailAccountsForWorkspace(E,g.workspaceId))).find(e=>e.agentId===v.agentId&&e.emailAddress===v.from);if(!e)return(0,h.writeError)(`email address '${v.from}' is not configured for this agent`,400);k=e.id,a=e.emailAddress}}else if(k){let e=await n.queries.emailAccount.getEmailAccountScoped(E,k,v.agentId,g.workspaceId);if(!e)return(0,h.writeError)("custom email account not found",404);a=e.emailAddress}else{if(!A.emailHandle)return(0,h.writeError)("agent has no email handle configured",400);a=(0,s.toAlookAddress)(A.emailHandle)}v.conversationId&&await n.queries.conversation.getConversation(E,v.conversationId,g.workspaceId)&&(p=v.conversationId);let b=v.attachments??[],C=(0,s.parseEmailHandle)(a),S=(0,s.parseEmailHandle)(v.to);if(C&&S){let e=await n.queries.agent.getAgentByHandle(E,S);if(e&&e.workspaceId===g.workspaceId){let t,r=`<${(0,c.nanoid)()}@alook.ai>`,o=v.htmlBody||"",s=(await Promise.all(b.map(async e=>{let t=await I.EMAIL_BUCKET.get(e.key);if(!t)return null;let a=await t.arrayBuffer(),r=btoa(String.fromCharCode(...new Uint8Array(a)));return{filename:e.filename,contentType:e.contentType,base64:r}}))).filter(e=>null!==e),u=(0,l.buildMimeMessage)({from:a,to:v.to,subject:v.subject,messageId:r,inReplyTo:v.inReplyTo,references:v.references,body:o,bodyType:"text/html",attachments:s}),m=(0,c.nanoid)(),f=`emails/${m}/raw`;await I.EMAIL_BUCKET.put(f,u,{httpMetadata:{contentType:"message/rfc822"}});let T=await n.queries.whitelist.isWhitelisted(E,e.id,e.workspaceId,a),k=JSON.stringify({agentId:e.id,workspaceId:e.workspaceId,r2Key:f,from:a,to:v.to,subject:v.subject,isWhitelisted:T,forwarded:!1,messageId:r,inReplyTo:v.inReplyTo??"",references:v.references??"",isInternal:!0,...v.traceId?{traceId:v.traceId}:{},...v.sourceTaskId?{sourceTaskId:v.sourceTaskId}:{}}),C={method:"POST",headers:{"Content-Type":"application/json"},body:k};try{t=await I.WORKER_SELF_REFERENCE.fetch("http://internal/api/email/notify",C)}catch{t=await fetch(`${i.DEV_WEB_URL}/api/email/notify`,C)}if(!t.ok){let e=await t.text();return(0,h.writeError)(`local delivery failed: ${e}`,t.status)}let S=await n.queries.email.createEmail(E,{agentId:v.agentId,workspaceId:g.workspaceId,fromEmail:a,toEmail:v.to,subject:v.subject,r2Key:f,isWhitelisted:!1,forwarded:!1,messageId:r,inReplyTo:v.inReplyTo??"",references:v.references??"",htmlBody:o,attachments:JSON.stringify(b),direction:"outbound",status:"sent"});if((0,y.invalidate)(y.cacheKeys.overviewEmailStats(g.workspaceId)).catch(()=>{}),p){let e=(0,d.extractThreadId)(v.references,v.inReplyTo,r);e&&await n.queries.conversationMap.createMapping(E,{key:(0,d.buildEmailMapKey)(v.agentId,e),workspaceId:g.workspaceId,conversationId:p}),A.ownerId&&await R(E,p,A.ownerId,v.agentId,v.to,v.subject,S.id,a)}return(0,h.writeJSON)((0,w.emailToResponse)(S))}}let x=JSON.stringify({agentId:v.agentId,workspaceId:g.workspaceId,to:v.to,subject:v.subject,htmlBody:v.htmlBody||"",inReplyTo:v.inReplyTo||"",references:v.references||"",customAccountId:k||void 0,attachmentKeys:b.length>0?b.map(e=>({key:e.key,filename:e.filename,contentType:e.contentType})):void 0});try{f=await I.EMAIL_WORKER.fetch("http://internal/send/agent",{method:"POST",headers:{"Content-Type":"application/json"},body:x})}catch{f=await fetch(`${i.DEV_EMAIL_WORKER_URL}/send/agent`,{method:"POST",headers:{"Content-Type":"application/json"},body:x})}if(!f.ok){let e=await f.text();return(0,h.writeError)(`email worker error: ${e}`,f.status)}let _=await f.json(),O=await n.queries.email.createEmail(E,{agentId:v.agentId,workspaceId:g.workspaceId,fromEmail:a,toEmail:v.to,subject:v.subject,r2Key:_.r2Key,isWhitelisted:!1,forwarded:!1,messageId:_.messageId??"",inReplyTo:v.inReplyTo??"",references:v.references??"",htmlBody:v.htmlBody||"",attachments:JSON.stringify(b),direction:"outbound",status:"sent"});if((0,y.invalidate)(y.cacheKeys.overviewEmailStats(g.workspaceId)).catch(()=>{}),p&&_.messageId){let e=(0,d.extractThreadId)(v.references,v.inReplyTo,_.messageId);e&&await n.queries.conversationMap.createMapping(E,{key:(0,d.buildEmailMapKey)(v.agentId,e),workspaceId:g.workspaceId,conversationId:p}),A.ownerId&&await R(E,p,A.ownerId,v.agentId,v.to,v.subject,O.id,a)}return(0,h.writeJSON)((0,w.emailToResponse)(O))});e.s(["POST",0,I]),a()}catch(e){a(e)}},!1),437146,e=>e.a(async(t,a)=>{try{var r=e.i(80774),n=e.i(404478),i=e.i(732985),o=e.i(481671),s=e.i(638081),l=e.i(204960),d=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),m=e.i(383303),h=e.i(234173),w=e.i(270215),f=e.i(830665),y=e.i(944002),g=e.i(193695);e.i(195928);var R=e.i(81543),I=e.i(991141),E=t([I]);[I]=E.then?(await E)():E;let T=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/email/send/route",pathname:"/api/email/send",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/email/send/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:k,serverHooks:b}=T;async function v(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),T.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/email/send/route";r=r.replace(/\/index$/,"")||"/";let i=await T.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,deploymentId:E,params:v,nextConfig:A,parsedUrl:k,isDraftMode:b,prerenderManifest:C,routerServerContext:S,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,resolvedPathname:O,clientReferenceManifest:N,serverActionsManifest:q}=i,M=(0,d.normalizeAppPath)(r),P=!!(C.dynamicRoutes[M]||C.routes[O]),H=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,k,!1):t.end("This page could not be found"),null);if(P&&!b){let e=!!C.routes[O],t=C.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await H();throw new g.NoFallbackError}}let j=null;!P||T.isDev||b||(j=O,j="/index"===j?"/":j);let U=!0===T.isDev||!P,K=P&&!U;q&&N&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:N,serverActionsManifest:q});let B=e.method||"GET",$=(0,s.getTracer)(),D=$.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),W=!!(0,o.getRequestMeta)(e,"minimalMode"),F=(0,o.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,A,C,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let J={params:v,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:F,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>T.onRequestError(e,t,r,n,S)},sharedContext:{buildId:I,deploymentId:E}},V=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i,o=async e=>T.handle(X,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${B} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${B} ${r}`)}),l=async i=>{var s,l;let d=async({previousCacheEntry:n})=>{try{if(!W&&x&&_&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=J.renderOpts.fetchMetrics;let s=J.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=J.renderOpts.collectedTags;if(!P)return await (0,h.sendResponse)(V,G,r,J.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:x})},!1,S),t}},c=await T.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!P)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,w.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&P||u.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(V,G,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};L&&D?await l(D):(i=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!L))}catch(t){if(t instanceof g.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:x})},!1,S),P)throw t;return await (0,h.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:k})},"routeModule",0,T,"serverHooks",0,b,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,k]),a()}catch(e){a(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_09ivzvb._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[213764,e=>e.a(async(t,a)=>{try{var s=e.i(170865);e.i(700598);var r=e.i(291109),n=e.i(675139),i=e.i(152327),o=e.i(47962),l=e.i(776227),d=e.i(740580),u=t([i]);[i]=u.then?(await u)():u;let c=(0,i.withAuth)(async(e,t)=>{let a=await (0,o.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,s.getCloudflareContext)(),u=(0,n.getDb)(i.DB),c=t.params?.id;if(!c)return(0,l.writeError)("conversation id is required",400);let p=new URL(e.url),h=p.searchParams.get("newest_message_id"),v=p.searchParams.get("message_count"),m=await r.queries.conversation.getConversation(u,c,a.workspaceId);if(!m)return(0,l.writeError)("conversation not found",404);let[g,_]=await Promise.all([h?r.queries.message.getNewestMessageId(u,c):Promise.resolve(null),r.queries.message.getActiveMessageCount(u,c)]),R=!1;if(h){let e=!v||_===parseInt(v,10);R=g===h&&e}let[w,f,y,C,E]=await Promise.all([r.queries.message.listMessages(u,c,{limit:20}),r.queries.artifact.listArtifactsByConversation(u,c,a.workspaceId,{limit:50}).catch(()=>[]),r.queries.task.getActiveTaskByConversation(u,c,a.workspaceId).catch(()=>null),r.queries.messageFlag.listFlaggedMessageIds(u,t.userId,a.workspaceId,c).catch(()=>[]),r.queries.conversation.hasPreviousConversations(u,a.workspaceId,t.userId,m.agentId,c,m.channel||void 0).catch(()=>!1)]),{messages:k,has_more:A}=w,P=[];if(y)try{P=(await r.queries.taskMessage.listTaskErrorMessages(u,y.id,a.workspaceId)).map(d.taskMessageToResponse)}catch{}return(0,l.writeJSON)({conversation:(0,d.conversationToResponse)(m),messages:R?null:k.map(d.messageToResponse),has_more_messages:A,has_more_conversations:E,has_more_artifacts:f.length>=50,artifacts:f.map(r.queries.artifact.artifactToResponse),flagged_message_ids:C,active_task:y?(0,d.taskToResponse)(y):null,task_messages:P,cache_valid:R,message_count:_})});e.s(["GET",0,c]),a()}catch(e){a(e)}},!1),581142,e=>e.a(async(t,a)=>{try{var s=e.i(80774),r=e.i(404478),n=e.i(732985),i=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),u=e.i(363585),c=e.i(906846),p=e.i(359838),h=e.i(383303),v=e.i(234173),m=e.i(270215),g=e.i(830665),_=e.i(944002),R=e.i(193695);e.i(195928);var w=e.i(81543),f=e.i(213764),y=t([f]);[f]=y.then?(await y)():y;let E=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/init/route",pathname:"/api/conversations/[id]/init",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/init/route.ts",nextConfigOutput:"standalone",userland:f,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:P}=E;async function C(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/conversations/[id]/init/route";s=s.replace(/\/index$/,"")||"/";let n=await E.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:f,deploymentId:y,params:C,nextConfig:k,parsedUrl:A,isDraftMode:P,prerenderManifest:x,routerServerContext:T,isOnDemandRevalidate:q,revalidateOnlyGenerated:b,resolvedPathname:I,clientReferenceManifest:N,serverActionsManifest:M}=n,S=(0,d.normalizeAppPath)(s),O=!!(x.dynamicRoutes[S]||x.routes[I]),j=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,A,!1):t.end("This page could not be found"),null);if(O&&!P){let e=!!x.routes[I],t=x.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await j();throw new R.NoFallbackError}}let H=null;!O||E.isDev||P||(H=I,H="/index"===H?"/":H);let U=!0===E.isDev||!O,D=O&&!U;M&&N&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:N,serverActionsManifest:M});let B=e.method||"GET",F=(0,o.getTracer)(),$=F.getActiveScopeSpan(),K=!!(null==T?void 0:T.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,k,x,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let W={params:C,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:U,incrementalCache:G,cacheLifeProfiles:k.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>E.onRequestError(e,t,s,r,T)},sharedContext:{buildId:f,deploymentId:y}},V=new u.NodeNextRequest(e),X=new u.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>E.handle(z,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${B} ${s}`)}),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!L&&q&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!O)return await (0,v.sendResponse)(V,X,s,W.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[_.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=_.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})},!1,T),t}},u=await E.handleResponse({req:e,nextConfig:k,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:b,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),P&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&O||c.delete(_.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,v.sendResponse)(V,X,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};K&&$?await l($):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})},!1,T),O)throw t;return await (0,v.sendResponse)(V,X,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})},"routeModule",0,E,"serverHooks",0,P,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,A]),a()}catch(e){a(e)}},!1),56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
2
+
3
+ //# sourceMappingURL=_0_21cs4._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(170865);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let r;try{let{env:a}=(0,t.getCloudflareContext)();r=a.DEV_WS_DO_URL;let d=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(d.ok)try{return{sent:(await d.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...i,status:d.status})}catch{}let d=r||a.DEV_WS_DO_URL,l=await fetch(`${d}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!l.ok)throw Error(`broadcast failed: ${l.status}`);try{return{sent:(await l.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let i=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},511456,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])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),i=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,r){let d=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),l=[...new Set(d.map(e=>e.agentId))],[o,c,u]=l.length>0?await Promise.all([(0,i.cached)(i.cacheKeys.allAgents(r),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allEmailAccounts(r),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allColleagues(r),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,r)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(l);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],h=new Map(o.map(e=>[e.id,e])),g=new Map;for(let e of c){let t=g.get(e.agentId)??[];t.push(e.emailAddress),g.set(e.agentId,t)}let m=new Map;for(let e of u){let t=m.get(e.agentId)??[];t.push(e),m.set(e.agentId,t)}let w=[...new Set(d.map(e=>e.conversationId).filter(Boolean))],p=new Map((w.length>0?await t.queries.conversation.getConversationsByIds(this.db,w,r):[]).map(e=>[e.id,e])),I=new Map,k=new Map,T=[];for(let d of e){if(d.type===a.TASK_TYPES.KILL_TASK){T.push({...(0,n.taskToResponse)(d),agent:null,sender:null});continue}let e=h.get(d.agentId)??null,l=[];if(e){e.emailHandle&&l.push((0,s.toAlookAddress)(e.emailHandle));let t=g.get(e.id)??[];l.push(...t)}let o=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.member(r,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,r));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(o=[a.globalInstruction,o].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!k.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));k.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=k.get(e.ownerId)?.name??null}let u=p.get(d.conversationId)??null,w=u?.channel??"default",y=null;if(d.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!k.has(u.userId)){let e=await (0,i.cached)(i.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));k.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=k.get(u.userId);a&&(y={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let b=(m.get(d.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));T.push({...(0,n.taskToResponse)(d),channel:w,sender:y,agent:e?{instructions:o,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:l,user_email:null,user_name:c,colleagues:b}:null})}return T}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(511456),n=e.i(726089),i=e.i(740580),r=e.i(774078),d=e.i(555230);let l=t.queries.task,o=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue,g=t.queries.inbox;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,i=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 l.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.`);let u=await l.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null});return(0,r.invalidate)(r.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await l.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await l.findSteerableReplacement(this.db,e,t);if(!s||await l.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await l.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 l.claimKillTasks(this.db,e,a,t),n=t-s.length,i=n>0?await l.listPendingTasksByRuntimes(this.db,e,a):[],r=new Set(e),d=new Set,c=[...s],u=[];for(let e of i){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),u.push(e))}if(0===u.length)return c;let h=[...new Set(u.map(e=>e.agentId))],g=new Map((await o.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,g.get(e.agentId)??null)))))e&&r.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await l.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let r=await l.completeTask(this.db,e,t,{result:i,sessionId:n||null});if(!r){let t=await l.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`)}return await this.reconcileAgentStatus(r.agentId,r.workspaceId),this.maybeUpsertUnread(r,t,null).catch(()=>{}),r}async failTask(e,r,d){let o=await l.failTask(this.db,e,r,d);if(!o){let t=await l.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`)}if(o.type===a.TASK_TYPES.KILL_TASK)return o;let h=null;if(d){let a=null;try{if(o.runtimeId){let e=await t.queries.runtime.getAgentRuntime(this.db,o.runtimeId);a=e?.provider??null}}catch{}let s=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:d,taskId:e,metadata:JSON.stringify({error_source:"runtime",provider:a})});h=s?.id??null;try{let e=await u.getConversation(this.db,o.conversationId,r);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:o.conversationId,message:(0,i.messageToResponse)(s)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),this.maybeUpsertUnread(o,r,h).catch(()=>{}),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let r=await c.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 u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(r)}).catch(()=>{})}catch{}}async maybeUpsertUnread(e,t,a){if(!g.isUnreadEligible(e)||!e.completedAt)return;let s=await u.getConversation(this.db,e.conversationId,t);if(!s)return;let n=a??await g.findLatestAssistantMessageId(this.db,e.conversationId);await g.upsertUnreadEntry(this.db,{conversationId:e.conversationId,userId:s.userId,workspaceId:t,agentId:s.agentId,taskId:e.id,taskType:e.type,taskStatus:e.status,taskPrompt:e.prompt,completedAt:e.completedAt,latestMessageId:n})}async supersedeTask(e,t){let a=await l.supersedeTask(this.db,e,t);if(!a){let t=await l.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),a}async retryTask(e,t){let a=await l.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 l.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,i,r){let d=await l.getActiveTaskByConversation(this.db,e,i);if(!d)return null;let o=await l.cancelTask(this.db,d.id,i);if(!o)return null;if("dispatched"===d.status||"running"===d.status){let r=await l.createTask(this.db,{agentId:d.agentId,runtimeId:d.runtimeId,workspaceId:i,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:d.id}});await l.dispatchTaskById(this.db,r.id,i);let o=await t.queries.runtime.getAgentRuntime(this.db,d.runtimeId);o&&(0,n.broadcastToDaemon)(o.daemonId,{type:"daemon.kill",workspaceId:i,agentId:d.agentId,taskId:r.id,targetTaskId:d.id}).catch(e=>s.log.warn("daemon.kill broadcast failed, relying on poll fallback",e))}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:r?.reason??"Task cancelled by you",taskId:d.id,metadata:JSON.stringify({kind:"lifecycle"})}),await this.reconcileAgentStatus(d.agentId,i),o}async reconcileAgentStatus(e,t){let a=await l.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,r.invalidate)(r.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async cancelTrace(e,t,a){for(let n of[...new Set((await l.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let i=await l.dispatchTaskById(this.db,e.id,a);if(!i)return;let r=new d.TaskPayloadBuilder(this.db),o=await r.buildFullPayloads([i],a);if(0===o.length)return void await l.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:o});0===t&&await l.revertDispatchedToQueued(this.db,e.id,a)}catch{await l.revertDispatchedToQueued(this.db,e.id,a)}}}])},56981,e=>{e.v(t=>Promise.all(["server/chunks/07mc_@better-auth_memory-adapter_dist_index_mjs_0736-hy._.js"].map(t=>e.l(t))).then(()=>t(665211)))},534759,e=>{e.v(t=>Promise.all(["server/chunks/0e94_better-auth_dist_adapters_kysely-adapter_index_mjs_0nf4_d_._.js"].map(t=>e.l(t))).then(()=>t(458714)))},394293,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0vd~ts1._.js"].map(t=>e.l(t))).then(()=>t(359283)))},724281,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0z45rqy._.js"].map(t=>e.l(t))).then(()=>t(631543)))},862941,e=>{e.v(t=>Promise.all(["server/chunks/11ag_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_11aa~n_._.js"].map(t=>e.l(t))).then(()=>t(893029)))}];
2
+
3
+ //# sourceMappingURL=_0huk3rm._.js.map