@alook/app 0.0.68 → 0.0.69

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 (240) hide show
  1. package/bundled/email-worker/index.js +9 -1
  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/0.vi-1cgnne0e.css +1 -0
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{0vob59t.w8yuf.js → 060hy1yx9.8u4.js} +2 -2
  6. package/bundled/web/.open-next/assets/_next/static/chunks/08u3p1v8e1gxg.js +63 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{13fkss9rmgdqw.js → 0fmcohc0raah~.js} +22 -22
  8. package/bundled/web/.open-next/assets/_next/static/chunks/0or01.vb5l38_.js +3 -0
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0vb-n1ns9b-93.js +1 -0
  10. package/bundled/web/.open-next/assets/_next/static/chunks/0ymb~iviyjlb_.js +3 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/13lom177x6744.js +1 -0
  12. package/bundled/web/.open-next/cache/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/_global-error.cache +1 -1
  13. package/bundled/web/.open-next/cache/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/_not-found.cache +1 -1
  14. package/bundled/web/.open-next/cache/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/sitemap.xml.cache +1 -1
  15. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  16. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  17. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  18. package/bundled/web/.open-next/middleware/handler.mjs +3 -3
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  22. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  23. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  35. 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
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  40. 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
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agent-links/[id]/route.js +2 -2
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agent-links/route.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/access/[userId]/route.js +3 -3
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/access/route.js +3 -3
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/active-tasks/route.js +3 -3
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/activity/route.js +2 -2
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/conversation/route.js +2 -2
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/conversations/route.js +2 -2
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/route.js +2 -2
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/sync/route.js +3 -3
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/test/route.js +3 -3
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/route.js +2 -2
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/approve/route.js +2 -2
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/route.js +2 -2
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/stop/route.js +2 -2
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/route.js +2 -2
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/pin/route.js +3 -3
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/route.js +2 -2
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/[whitelistId]/route.js +3 -3
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +4 -4
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/workspace/browse/route.js +3 -3
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-task-counts/route.js +3 -3
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-tasks/route.js +6 -6
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/pins/reorder/route.js +3 -3
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/pins/route.js +3 -3
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +6 -6
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/sidebar/reorder/route.js +3 -3
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/[id]/content/route.js +3 -3
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/[id]/route.js +3 -3
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/route.js +3 -3
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/upload/route.js +3 -3
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +4 -4
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +3 -3
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/[id]/route.js +1 -1
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/reorder/route.js +3 -3
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/route.js +1 -1
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/config/min-version/route.js +3 -3
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/config/model-options/route.js +3 -3
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +1 -1
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/[messageId]/route.js +3 -3
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +4 -4
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +3 -3
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/route.js +2 -2
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/route.js +2 -2
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/deregister/route.js +2 -2
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +1 -1
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +1 -1
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +1 -1
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +3 -3
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/progress/route.js +1 -1
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +1 -1
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/status/route.js +3 -3
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +1 -1
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +3 -3
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/workspace/report/route.js +1 -1
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/attachment/[index]/route.js +4 -4
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/body/route.js +4 -4
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/raw/route.js +3 -3
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/route.js +2 -2
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/thread/route.js +2 -2
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +2 -2
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/route.js +2 -2
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/send/route.js +3 -3
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/upload/route.js +4 -4
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/[messageId]/route.js +4 -4
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/count/route.js +3 -3
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/route.js +2 -2
  114. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/count/route.js +3 -3
  115. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/read/route.js +1 -1
  116. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/read-all/route.js +1 -1
  117. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/route.js +2 -2
  118. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/invite/[token]/route.js +3 -3
  119. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/comments/route.js +4 -4
  120. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +2 -2
  121. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +1 -1
  122. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/[id]/route.js +3 -3
  123. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/activate/route.js +1 -1
  124. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/route.js +3 -3
  125. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/me/route.js +5 -5
  126. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/meeting/callback/route.js +3 -3
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/members/me/route.js +3 -3
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/[runtimeId]/rescan/route.js +3 -3
  129. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/[runtimeId]/update/route.js +1 -1
  130. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/machine/route.js +1 -1
  131. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/route.js +1 -1
  132. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/check-handles/route.js +1 -1
  133. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/check-name/route.js +3 -3
  134. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +4 -4
  135. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/messages/route.js +2 -2
  136. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +1 -1
  137. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/route.js +2 -2
  138. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/step-counts/route.js +3 -3
  139. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/traces/[traceId]/route.js +6 -6
  140. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/traces/route.js +6 -6
  141. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/invites/[inviteId]/route.js +3 -3
  142. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/invites/route.js +2 -2
  143. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/members/[memberId]/route.js +3 -3
  144. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/members/route.js +2 -2
  145. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/overview/route.js +6 -6
  146. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/route.js +1 -1
  147. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/route.js +3 -3
  148. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  149. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  150. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  151. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +85 -0
  152. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__009_wu3._.js +1 -1
  153. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01crkpf._.js +1 -1
  154. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01~--ue._.js +3 -0
  155. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0~4t--s._.js → [root-of-the-server]__027mioa._.js} +8 -8
  156. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__09cer93._.js +3 -0
  157. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dy~25_._.js +3 -0
  158. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0faxj6t._.js +1 -1
  159. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0k4l9.h._.js +1 -1
  160. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m5a1_f._.js +1 -1
  161. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m_ya4f._.js +3 -0
  162. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +85 -0
  163. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ntc1ld._.js +1 -1
  164. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ud56v.._.js +1 -1
  165. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +16 -16
  166. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +2 -2
  167. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02t7kem._.js +1 -1
  168. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06imn.m._.js +1 -1
  169. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07-798_._.js +1 -1
  170. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08xh_f8._.js +2 -2
  171. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +2 -2
  172. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0c9~wb-._.js +1 -1
  173. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +2 -2
  174. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0gqpz7w._.js +1 -1
  175. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j1t6f2._.js +1 -1
  176. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0k3wl-3._.js +1 -1
  177. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1m9wf._.js +2 -2
  178. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0lmedw9._.js +1 -1
  179. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ow_nxn._.js +1 -1
  180. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0piy2kq._.js +1 -1
  181. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +3 -3
  182. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s4qnoj._.js +1 -1
  183. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0sj8mn_._.js +3 -0
  184. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s~hhx-._.js +1 -1
  185. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tarogd._.js +1 -1
  186. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tcd35h._.js +1 -1
  187. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0u3tu2x._.js +2 -2
  188. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +2 -2
  189. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0y3~9l1._.js +1 -1
  190. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0z.s70x._.js +1 -1
  191. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_122y7jv._.js +1 -1
  192. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +3 -0
  193. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0ppv-5d._.js → [root-of-the-server]__099etsu._.js} +1 -1
  194. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0r2s1aj._.js +3 -0
  195. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0xzp3_y._.js +3 -0
  196. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +16 -16
  197. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +2 -2
  198. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0gm0lpi._.js → _091qk6t._.js} +1 -1
  199. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09b8fgg._.js +1 -1
  200. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0e7_cpm._.js → _0xcw94t._.js} +1 -1
  201. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_11~t2ti._.js +3 -0
  202. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +2 -2
  203. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13__3im._.js +1 -1
  204. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13cbsrm._.js +65 -0
  205. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  206. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0lkx78f._.js +1 -1
  207. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  208. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  209. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  210. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  211. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +68 -150
  212. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +302 -338
  213. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  214. package/bundled/web/wrangler.toml +1 -1
  215. package/bundled/ws-do/index.js +9 -1
  216. package/dist/cli/index.js +2424 -426
  217. package/dist/cli/session-runner.js +183 -33
  218. package/package.json +1 -1
  219. package/bundled/web/.open-next/assets/_next/static/chunks/02xsv1h-9twmr.js +0 -3
  220. package/bundled/web/.open-next/assets/_next/static/chunks/085gv~jsjhgvo.js +0 -3
  221. package/bundled/web/.open-next/assets/_next/static/chunks/0csp6ncjhvojv.js +0 -63
  222. package/bundled/web/.open-next/assets/_next/static/chunks/0lf.3fdr8qzrz.css +0 -1
  223. package/bundled/web/.open-next/assets/_next/static/chunks/0u1.3sr-iag4j.js +0 -1
  224. package/bundled/web/.open-next/assets/_next/static/chunks/0v0kh80r40w4f.js +0 -1
  225. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0axs-gp._.js +0 -3
  226. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kvsfuj._.js +0 -85
  227. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0l3u9pl._.js +0 -85
  228. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0lvfzvr._.js +0 -3
  229. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0n_hjiv._.js +0 -3
  230. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ug4a08._.js +0 -85
  231. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0~jiu74._.js +0 -3
  232. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jx_8bw._.js +0 -3
  233. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0-jf-76._.js +0 -3
  234. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0-uhgif._.js +0 -3
  235. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0oe.0yf._.js +0 -3
  236. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ohl~vp._.js +0 -65
  237. /package/bundled/web/.open-next/assets/_next/static/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/_buildManifest.js +0 -0
  238. /package/bundled/web/.open-next/assets/_next/static/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/_clientMiddlewareManifest.js +0 -0
  239. /package/bundled/web/.open-next/assets/_next/static/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/_ssgManifest.js +0 -0
  240. /package/bundled/web/.open-next/cache/{d6FEqIY-HdfUib-E9v9dt → -lo-xBQBmp_D6Nf6J9S7y}/robots.txt.cache +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function r(e,r,i){let n;try{let{env:a}=(0,t.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...i,status:t.status})}catch(e){s.warn("broadcast error",{...i,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let i=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i)}catch{}return i}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,l=t.queries.message,d=t.queries.conversation,c=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,l){let d=await o.getAgent(this.db,e,s);if(!d)throw Error("agent not found");if(!d.runtimeId)throw Error("agent has no runtime");if(l?.traceId&&l.parentTaskId&&await n.countTasksByTrace(this.db,l.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:d.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:l?.contextKey??null,priority:0,context:l?.context,traceId:l?.traceId??null,parentTaskId:l?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.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 n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),l=new Set,d=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(l.has(t))continue;l.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(d.push(a),r--)}return d}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let d=i,c="string"==typeof d?.output?d.output:"";return c&&await l.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:c,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await l.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await c.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await c.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await l.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 d.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.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 n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await l.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await l.activateNextBufferedMessage(this.db,e);if(!o)return null;let c=await d.getConversation(this.db,e,t);if(!c)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await l.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=c.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],d=await n.getLatestTaskForConversation(this.db,e),p=d?.traceId??null,h=await this.enqueueTask(c.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await l.updateMessageTaskId(this.db,o.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await l.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},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))}])},388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),s=e.i(774078);async function r(e,r){let i=`sweep:${r}`,n=!1;try{n=await (0,s.throttled)(i,30,async()=>{})}catch{n=!0}if(!n)return;let o=await t.queries.task.failStaleDispatchedTasks(e,r);await t.queries.task.failStaleKillTasks(e,r);let l=[...o,...await t.queries.task.failStaleRunningTasks(e,r)];if(l.length>0){let t=new a.TaskService(e),i=new Set;for(let e of l){let a=`${e.agentId}:${e.workspaceId}`;i.has(a)||(i.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let n=new Set;for(let e of l)n.has(e.conversationId)||(n.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId));let o=new Date().toISOString().slice(0,10);await Promise.all([(0,s.invalidate)(s.cacheKeys.allAgents(r)),(0,s.invalidate)(s.cacheKeys.overviewTaskStats(r,o))]).catch(()=>{})}}e.s(["sweepStaleState",0,r])},587860,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(291109),i=e.i(424166),n=e.i(469187),o=e.i(888247),l=e.i(704024),d=e.i(675139),c=e.i(152327),u=e.i(47962),p=e.i(776227),h=e.i(740580),w=e.i(205054),g=e.i(388335),f=e.i(774078),k=e.i(764083),m=t([c]);[c]=m.then?(await m)():m;let I=(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)(),n=(0,d.getDb)(i.DB);await (0,g.sweepStaleState)(n,a.workspaceId);let[o,l]=await Promise.all([(0,f.cached)(f.cacheKeys.allAgents(a.workspaceId),300,()=>r.queries.agent.getAllAgentsForWorkspace(n,a.workspaceId)),(0,f.cached)(f.cacheKeys.allAgentAccess(a.workspaceId),300,()=>r.queries.agentAccess.getAllAgentAccessForWorkspace(n,a.workspaceId))]),c=(0,k.filterVisibleAgents)(o,t.userId,l);return(0,p.writeJSON)(c.map(h.agentToResponse))}),y=(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)(),g=(0,d.getDb)(c.DB),[k,m]=await (0,p.parseBody)(e,o.CreateAgentRequestSchema);if(m)return m;let I=k.name.trim(),y=k.runtime_id,T=k.max_concurrent_tasks||0;T<=0&&(T=6);let v="string"==typeof k.email_handle?k.email_handle.trim().toLowerCase():"";if(v){if(!(0,i.isValidHandle)(v))return(0,p.writeError)("email_handle must be 4+ alphanumeric/dash characters",400);if(await r.queries.agent.getAgentByHandle(g,v))return(0,p.writeError)("Handle already taken",409)}let _=await r.queries.runtime.getAgentRuntimeForWorkspace(g,y,a.workspaceId);if(!_)return(0,p.writeError)("runtime not found in workspace",404);let S=k.runtime_config,b=S?{..."string"==typeof S.model?{model:S.model}:{}}:null,A=await r.queries.agent.createAgent(g,{workspaceId:a.workspaceId,name:I,description:k.description,instructions:k.instructions,runtimeId:y,runtimeMode:_.runtimeMode,runtimeConfig:b,visibility:"private",maxConcurrentTasks:T,ownerId:t.userId,emailHandle:v||null,avatarUrl:k.avatar_url??null});if(v&&t.email&&await r.queries.whitelist.addWhitelist(g,A.id,a.workspaceId,t.email.toLowerCase()),await Promise.all([(0,f.invalidate)(f.cacheKeys.allAgents(a.workspaceId)),(0,f.invalidate)(f.cacheKeys.allHandles(a.workspaceId)),(0,f.invalidate)(f.cacheKeys.allAgentAccess(a.workspaceId))]),A.runtimeId&&A.emailHandle&&t.email&&(0,n.isOnline)(_.machineLastSeenAt))try{let e=await r.queries.conversation.createConversation(g,{workspaceId:a.workspaceId,agentId:A.id,userId:t.userId,title:`Welcome: ${t.email}`.slice(0,50),type:l.TASK_TYPES.EMAIL_NOTIFICATION}),s=new w.TaskService(g);await s.enqueueTask(A.id,e.id,a.workspaceId,`You have just been created by your owner (${t.email}). Please send them a welcome email introducing yourself as "${I}". 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,f.invalidate)(f.cacheKeys.overviewTaskStats(a.workspaceId,i)).catch(()=>{})}catch{}if((0,n.isOnline)(_.machineLastSeenAt)){let e=new w.TaskService(g);await e.reconcileAgentStatus(A.id,a.workspaceId);let s=await r.queries.agent.getAgent(g,A.id,a.workspaceId,t.userId);if(s)return(0,p.writeJSON)((0,h.agentToResponse)(s),201)}return(0,p.writeJSON)((0,h.agentToResponse)(A),201)});e.s(["GET",0,I,"POST",0,y]),a()}catch(e){a(e)}},!1),672424,e=>e.a(async(t,a)=>{try{var s=e.i(80774),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=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),w=e.i(234173),g=e.i(270215),f=e.i(830665),k=e.i(944002),m=e.i(193695);e.i(195928);var I=e.i(81543),y=e.i(587860),T=t([y]);[y]=T.then?(await T)():T;let _=new s.AppRouteRouteModule({definition:{kind:r.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:S,workUnitAsyncStorage:b,serverHooks:A}=_;async function v(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),_.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/agents/route";s=s.replace(/\/index$/,"")||"/";let i=await _.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:v,nextConfig:S,parsedUrl:b,isDraftMode:A,prerenderManifest:R,routerServerContext:E,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:O,serverActionsManifest:P}=i,q=(0,d.normalizeAppPath)(s),M=!!(R.dynamicRoutes[q]||R.routes[N]),K=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!A){let e=!!R.routes[N],t=R.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await K();throw new m.NoFallbackError}}let $=null;!M||_.isDev||A||($=N,$="/index"===$?"/":$);let B=!0===_.isDev||!M,D=M&&!B;P&&O&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:O,serverActionsManifest:P});let U=e.method||"GET",L=(0,o.getTracer)(),H=L.getActiveScopeSpan(),j=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await _.getIncrementalCache(e,S,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:B,incrementalCache:W,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>_.onRequestError(e,t,s,r,E)},sharedContext:{buildId:y,deploymentId:T}},Y=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let i,n=async e=>_.handle(J,V).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")!==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=`${U} ${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(`${U} ${s}`)}),l=async i=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!F&&C&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=V.renderOpts.collectedTags;if(!M)return await (0,w.sendResponse)(Y,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[k.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=k.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=k.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:I.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 _.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,E),t}},c=await _.handleResponse({req:e,nextConfig:S,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:F});if(!M)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==I.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,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&M||u.delete(k.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,w.sendResponse)(Y,G,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&H?await l(H):(i=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l),void 0,!j))}catch(t){if(t instanceof m.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,E),M)throw t;return await (0,w.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,_,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
2
+
3
+ //# sourceMappingURL=_0sj8mn_._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,position:e.position??0,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,i=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let r=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let s;try{let{env:a}=(0,t.getCloudflareContext)();s=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)return;r.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=s||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||r.warn("broadcast failed",{...i,status:t.status})}catch(e){r.warn("broadcast error",{...i,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,r){let i=n(e,a,r);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i)}catch{}return i}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},584514,e=>{"use strict";var t=e.i(719436);e.s(["generateWorkspaceSlug",0,function(){return`studio-${(0,t.nanoid)(8)}`}])},333192,e=>{"use strict";var t=e.i(80774),a=e.i(404478),r=e.i(732985),n=e.i(481671),i=e.i(638081),s=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),_=e.i(830665),f=e.i(944002),h=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(291484);e.i(700598);var v=e.i(291109),w=e.i(888247),R=e.i(726527),A=e.i(584514),y=e.i(675139),k=e.i(776227),I=e.i(740580),S=e.i(726089),E=e.i(774078);let b=(0,R.createLogger)({service:"machine-tokens/activate"});async function N(e){let t;try{t=await e.json()}catch{return(0,k.writeJSON)({error:"invalid request body"},400)}let a=w.ActivateTokenRequestSchema.safeParse(t);if(!a.success)return(0,k.writeJSON)({error:"invalid payload",details:a.error.flatten()},400);let{token:r,hostname:n,runtimes:i}=a.data,{env:s}=await (0,g.getCloudflareContext)({async:!0}),o=(0,y.getDb)(s.DB),d=await v.queries.machineToken.getMachineTokenByToken(o,r);if(!d)return(0,k.writeJSON)({error:"token not found"},404);if("pending"!==d.status)return(0,k.writeJSON)({error:"token already used"},409);let l=d.workspaceId;if(!l){let e=await v.queries.workspace.listWorkspaces(o,d.userId);if(e.length>0)l=e[0].id;else{let e=await v.queries.workspace.createWorkspace(o,{name:"Personal",slug:(0,A.generateWorkspaceSlug)()});await v.queries.member.createMember(o,{workspaceId:e.id,userId:d.userId,role:"owner"}),l=e.id}}await v.queries.machine.upsertMachine(o,{daemonId:n,workspaceId:l,deviceInfo:n,lastSeenAt:null});let u=[];for(let e of i){let t=await v.queries.runtime.upsertAgentRuntime(o,{workspaceId:l,daemonId:n,runtimeMode:"local",provider:e.type,deviceInfo:n,metadata:{version:e.version}});u.push({...t,machineLastSeenAt:null})}await v.queries.machineToken.activateMachineToken(o,d.id,l),await (0,E.invalidate)(E.cacheKeys.machineToken(r)),await (0,E.invalidate)(E.cacheKeys.runtimeIds(l,n));try{await (0,S.broadcastToUser)(d.userId,{type:"runtime.registered",daemonId:n,hostname:n,workspaceId:l})}catch(e){b.warn("broadcast after activation failed",{userId:d.userId,daemonId:n,err:e instanceof Error?e.message:String(e)})}return(0,k.writeJSON)({daemon_id:n,workspace_id:l,runtimes:u.map(I.runtimeToResponse)})}e.s(["POST",0,N],152656);var C=e.i(152656);let x=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/machine-tokens/activate/route",pathname:"/api/machine-tokens/activate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/machine-tokens/activate/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:O,workUnitAsyncStorage:P,serverHooks:q}=x;async function M(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),x.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/machine-tokens/activate/route";g=g.replace(/\/index$/,"")||"/";let v=await x.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,deploymentId:R,params:A,nextConfig:y,parsedUrl:k,isDraftMode:I,prerenderManifest:S,routerServerContext:E,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:O,serverActionsManifest:P}=v,q=(0,o.normalizeAppPath)(g),M=!!(S.dynamicRoutes[q]||S.routes[C]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,k,!1):t.end("This page could not be found"),null);if(M&&!I){let e=!!S.routes[C],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new h.NoFallbackError}}let D=null;!M||x.isDev||I||(D="/index"===(D=C)?"/":D);let H=!0===x.isDev||!M,$=M&&!H;P&&O&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:O,serverActionsManifest:P});let K=e.method||"GET",j=(0,i.getTracer)(),L=j.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,y,S,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let J={params:A,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:F,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,E)},sharedContext:{buildId:w,deploymentId:R}},Z=new d.NodeNextRequest(e),G=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(Z,(0,l.signalFromNodeResponse)(t));try{let n,s=async e=>x.handle(V,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.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=`${K} ${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(`${K} ${g}`)}),o=async n=>{var i,o;let d=async({previousCacheEntry:a})=>{try{if(!W&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=J.renderOpts.fetchMetrics;let o=J.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=J.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(Z,G,i,J.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:b})},!1,E),t}},l=await x.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:W});if(!M)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",b?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return W&&M||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,_.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(Z,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};B&&L?await o(L):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof h.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:b})},!1,E),M)throw t;return await (0,p.sendResponse)(Z,G,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:P})},"routeModule",0,x,"serverHooks",0,q,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,P],333192)}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},469187,e=>{"use strict";var t=e.i(704024);e.s(["isOnline",0,function(e){if(!e)return!1;let a=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(a)&&Date.now()-a<t.OFFLINE_THRESHOLD_MS}])},740580,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(469187),n=e.i(704024);e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,position:e.position??0,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let n=e.machineLastSeenAt??null,i=n instanceof Date?n.toISOString():n;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:(0,r.isOnline)(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(n),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??n.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}])},726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let r=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let s;try{let{env:a}=(0,t.getCloudflareContext)();s=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)return;r.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=s||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||r.warn("broadcast failed",{...i,status:t.status})}catch(e){r.warn("broadcast error",{...i,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,r){let i=n(e,a,r);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i)}catch{}return i}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},584514,e=>{"use strict";var t=e.i(719436);e.s(["generateWorkspaceSlug",0,function(){return`studio-${(0,t.nanoid)(8)}`}])},333192,e=>{"use strict";var t=e.i(80774),a=e.i(404478),r=e.i(732985),n=e.i(481671),i=e.i(638081),s=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),_=e.i(830665),f=e.i(944002),h=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(291484);e.i(700598);var v=e.i(291109),w=e.i(888247),R=e.i(726527),A=e.i(584514),y=e.i(675139),k=e.i(776227),I=e.i(740580),S=e.i(726089),E=e.i(774078);let b=(0,R.createLogger)({service:"machine-tokens/activate"});async function N(e){let t;try{t=await e.json()}catch{return(0,k.writeJSON)({error:"invalid request body"},400)}let a=w.ActivateTokenRequestSchema.safeParse(t);if(!a.success)return(0,k.writeJSON)({error:"invalid payload",details:a.error.flatten()},400);let{token:r,hostname:n,runtimes:i}=a.data,{env:s}=await (0,g.getCloudflareContext)({async:!0}),o=(0,y.getDb)(s.DB),d=await v.queries.machineToken.getMachineTokenByToken(o,r);if(!d)return(0,k.writeJSON)({error:"token not found"},404);if("pending"!==d.status)return(0,k.writeJSON)({error:"token already used"},409);let l=d.workspaceId;if(!l){let e=await v.queries.workspace.listWorkspaces(o,d.userId);if(e.length>0)l=e[0].id;else{let e=await v.queries.workspace.createWorkspace(o,{name:"Personal",slug:(0,A.generateWorkspaceSlug)()});await v.queries.member.createMember(o,{workspaceId:e.id,userId:d.userId,role:"owner"}),l=e.id}}await v.queries.machine.upsertMachine(o,{daemonId:n,workspaceId:l,deviceInfo:n,lastSeenAt:null});let u=[];for(let e of i){let t=await v.queries.runtime.upsertAgentRuntime(o,{workspaceId:l,daemonId:n,runtimeMode:"local",provider:e.type,deviceInfo:n,metadata:{version:e.version}});u.push({...t,machineLastSeenAt:null})}await v.queries.machineToken.activateMachineToken(o,d.id,l),await Promise.all([(0,E.invalidate)(E.cacheKeys.machineToken(r)),(0,E.invalidate)(E.cacheKeys.runtimeIds(l,n)),(0,E.invalidate)(E.cacheKeys.allRuntimes(l))]);try{await (0,S.broadcastToUser)(d.userId,{type:"runtime.registered",daemonId:n,hostname:n,workspaceId:l})}catch(e){b.warn("broadcast after activation failed",{userId:d.userId,daemonId:n,err:e instanceof Error?e.message:String(e)})}return(0,k.writeJSON)({daemon_id:n,workspace_id:l,runtimes:u.map(I.runtimeToResponse)})}e.s(["POST",0,N],152656);var C=e.i(152656);let x=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/machine-tokens/activate/route",pathname:"/api/machine-tokens/activate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/machine-tokens/activate/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:O,workUnitAsyncStorage:P,serverHooks:q}=x;async function M(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),x.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/machine-tokens/activate/route";g=g.replace(/\/index$/,"")||"/";let v=await x.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,deploymentId:R,params:A,nextConfig:y,parsedUrl:k,isDraftMode:I,prerenderManifest:S,routerServerContext:E,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:O,serverActionsManifest:P}=v,q=(0,o.normalizeAppPath)(g),M=!!(S.dynamicRoutes[q]||S.routes[C]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,k,!1):t.end("This page could not be found"),null);if(M&&!I){let e=!!S.routes[C],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new h.NoFallbackError}}let D=null;!M||x.isDev||I||(D="/index"===(D=C)?"/":D);let H=!0===x.isDev||!M,K=M&&!H;P&&O&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",j=(0,i.getTracer)(),L=j.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,y,S,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let J={params:A,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:F,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,E)},sharedContext:{buildId:w,deploymentId:R}},Z=new d.NodeNextRequest(e),G=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(Z,(0,l.signalFromNodeResponse)(t));try{let n,s=async e=>x.handle(V,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.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=`${$} ${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(`${$} ${g}`)}),o=async n=>{var i,o;let d=async({previousCacheEntry:a})=>{try{if(!W&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=J.renderOpts.fetchMetrics;let o=J.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=J.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(Z,G,i,J.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:b})},!1,E),t}},l=await x.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:W});if(!M)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",b?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return W&&M||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,_.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(Z,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};B&&L?await o(L):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof h.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:b})},!1,E),M)throw t;return await (0,p.sendResponse)(Z,G,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:P})},"routeModule",0,x,"serverHooks",0,q,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,P],333192)}];
2
2
 
3
3
  //# sourceMappingURL=_0s~hhx-._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,c=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,c="string"==typeof l?.output?l.output:"";return c&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:c,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await c.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await c.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await l.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let c=await l.getConversation(this.db,e,t);if(!c)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=c.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(c.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},410011,e=>e.a(async(t,a)=>{try{var s=e.i(291484),r=e.i(675139),n=e.i(152327),i=e.i(776227),o=e.i(740580),d=e.i(205054);e.i(700598);var l=e.i(888247),c=e.i(726089),u=t([n]);[n]=u.then?(await u)():u;let p=(0,n.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,i.writeError)("Forbidden: machine token required",403);let{env:a}=(0,s.getCloudflareContext)(),n=(0,r.getDb)(a.DB),u=t.params?.taskId;if(!u)return(0,i.writeError)("task_id is required",400);let[p,h]=await (0,i.parseBody)(e,l.FailTaskRequestSchema);if(h)return h;let w=new d.TaskService(n);try{let e=await w.failTask(u,t.workspaceId,p.error);return(0,c.broadcastToUser)(t.userId,{type:"task.updated",taskId:u,agentId:e.agentId,status:"failed"}).catch(()=>{}),(0,i.writeJSON)((0,o.taskToResponse)(e))}catch(e){return(0,i.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,p]),a()}catch(e){a(e)}},!1),559680,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),d=e.i(204960),l=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),k=e.i(270215),g=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var m=e.i(81543),I=e.i(410011),v=t([I]);[I]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/fail/route",pathname:"/api/daemon/tasks/[taskId]/fail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/fail/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:R,serverHooks:E}=b;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/daemon/tasks/[taskId]/fail/route";s=s.replace(/\/index$/,"")||"/";let n=await b.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:I,deploymentId:v,params:y,nextConfig:_,parsedUrl:R,isDraftMode:E,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,q=(0,l.normalizeAppPath)(s),O=!!(S.dynamicRoutes[q]||S.routes[N]),B=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,R,!1):t.end("This page could not be found"),null);if(O&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await B();throw new T.NoFallbackError}}let K=null;!O||b.isDev||E||(K=N,K="/index"===K?"/":K);let U=!0===b.isDev||!O,$=O&&!U;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let D=e.method||"GET",j=(0,o.getTracer)(),H=j.getActiveScopeSpan(),F=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),Y=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:Y,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,A)},sharedContext:{buildId:I,deploymentId:v}},X=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>b.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.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=`${D} ${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(`${D} ${s}`)}),d=async n=>{var o,d;let l=async({previousCacheEntry:r})=>{try{if(!L&&x&&C&&!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=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(X,J,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,k.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:m.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),t}},c=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,k.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(f.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)(X,J,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};F&&H?await d(H):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},d),void 0,!F))}catch(t){if(t instanceof T.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),O)throw t;return await (0,w.sendResponse)(X,J,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:R})},"routeModule",0,b,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,R]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
1
+ module.exports=[205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,c=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,c="string"==typeof l?.output?l.output:"";return c&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:c,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await c.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await c.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await l.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let c=await l.getConversation(this.db,e,t);if(!c)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=c.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(c.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},410011,e=>e.a(async(t,a)=>{try{var s=e.i(291484),r=e.i(675139),n=e.i(152327),i=e.i(776227),o=e.i(740580),d=e.i(205054);e.i(700598);var l=e.i(888247),c=e.i(726089),u=e.i(774078),p=t([n]);[n]=p.then?(await p)():p;let h=(0,n.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,i.writeError)("Forbidden: machine token required",403);let{env:a}=(0,s.getCloudflareContext)(),n=(0,r.getDb)(a.DB),p=t.params?.taskId;if(!p)return(0,i.writeError)("task_id is required",400);let[h,w]=await (0,i.parseBody)(e,l.FailTaskRequestSchema);if(w)return w;let k=new d.TaskService(n);try{let e=await k.failTask(p,t.workspaceId,h.error),a=new Date().toISOString().slice(0,10);return(0,u.invalidate)(u.cacheKeys.overviewTaskStats(t.workspaceId,a)).catch(()=>{}),(0,c.broadcastToUser)(t.userId,{type:"task.updated",taskId:p,agentId:e.agentId,status:"failed"}).catch(()=>{}),(0,i.writeJSON)((0,o.taskToResponse)(e))}catch(e){return(0,i.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,h]),a()}catch(e){a(e)}},!1),559680,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),d=e.i(204960),l=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),k=e.i(270215),g=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var m=e.i(81543),I=e.i(410011),v=t([I]);[I]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/fail/route",pathname:"/api/daemon/tasks/[taskId]/fail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/fail/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:R,serverHooks:E}=b;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/daemon/tasks/[taskId]/fail/route";s=s.replace(/\/index$/,"")||"/";let n=await b.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:I,deploymentId:v,params:y,nextConfig:_,parsedUrl:R,isDraftMode:E,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,q=(0,l.normalizeAppPath)(s),O=!!(S.dynamicRoutes[q]||S.routes[N]),K=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,R,!1):t.end("This page could not be found"),null);if(O&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await K();throw new T.NoFallbackError}}let B=null;!O||b.isDev||E||(B=N,B="/index"===B?"/":B);let U=!0===b.isDev||!O,$=O&&!U;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let D=e.method||"GET",j=(0,o.getTracer)(),H=j.getActiveScopeSpan(),F=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),Y=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:Y,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,A)},sharedContext:{buildId:I,deploymentId:v}},X=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>b.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.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=`${D} ${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(`${D} ${s}`)}),d=async n=>{var o,d;let l=async({previousCacheEntry:r})=>{try{if(!L&&x&&C&&!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=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(X,J,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,k.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:m.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),t}},c=await b.handleResponse({req:e,nextConfig:_,cacheKey:B,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,k.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(f.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)(X,J,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};F&&H?await d(H):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},d),void 0,!F))}catch(t){if(t instanceof T.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),O)throw t;return await (0,w.sendResponse)(X,J,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:R})},"routeModule",0,b,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,R]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
2
2
 
3
3
  //# sourceMappingURL=_0tarogd._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,d=t.queries.agent,o=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,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 n.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.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null})}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.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 n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],d=new Set(e),o=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(o.has(t))continue;o.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&d.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let d=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!d){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await o.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await o.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await o.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.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 n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await o.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let d=await o.activateNextBufferedMessage(this.db,e);if(!d)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await o.revertToBuffered(this.db,d.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:d.id,revertErr:e})}),null;let u=l.userId;try{let s=d.attachmentIds?JSON.parse(d.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),h=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,d.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await o.updateMessageTaskId(this.db,d.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(d),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await o.revertToBuffered(this.db,d.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:d.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:d.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),s=e.i(774078);async function r(e,r){let i=`sweep:${r}`,n=!1;try{n=await (0,s.throttled)(i,30,async()=>{})}catch{n=!0}if(!n)return;let d=await t.queries.task.failStaleDispatchedTasks(e,r);await t.queries.task.failStaleKillTasks(e,r);let o=[...d,...await t.queries.task.failStaleRunningTasks(e,r)];if(o.length>0){let t=new a.TaskService(e),s=new Set;for(let e of o){let a=`${e.agentId}:${e.workspaceId}`;s.has(a)||(s.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let r=new Set;for(let e of o)r.has(e.conversationId)||(r.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId))}}e.s(["sweepStaleState",0,r])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(719436),r=e.i(799579);let{listDueCalendarEvents:i,claimCalendarEvent:n,revertCalendarEventClaim:d,updateCalendarEventSchedule:o,computeNextScheduledAt:c}=t.queries.calendarEvent;async function l(e,u,h=new Date().toISOString()){let p=await i(e,u,h),w=0;for(let i of p){let l=await t.queries.agent.getAgent(e,i.agentId,i.workspaceId);if(!l){r.log.warn("calendar: agent missing, skipping",{id:i.id});continue}if(!l.runtimeId){r.log.warn("calendar: agent has no runtime, skipping",{id:i.id});continue}if(!l.ownerId){r.log.warn("calendar: agent has no owner, skipping",{id:i.id});continue}let u=i.lastTriggeredAt??null;if(await n(e,i.id,i.scheduledAt,h))try{let r=await t.queries.conversation.createConversation(e,{workspaceId:i.workspaceId,agentId:i.agentId,userId:l.ownerId,title:`[Calendar] ${i.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:r.id,role:"event",content:i.title}),await t.queries.task.createTask(e,{agentId:i.agentId,runtimeId:l.runtimeId,workspaceId:i.workspaceId,conversationId:r.id,prompt:i.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,s.nanoid)(),parentTaskId:null}),i.repeatInterval){let t=c(i.scheduledAt,i.repeatInterval,i.repeatStopAt??null,h,i.exceptions??[]);t&&await o(e,i.id,t)}w++}catch(t){r.log.warn("calendar: post-claim write failed, reverting",{id:i.id,err:String(t)});try{await d(e,i.id,u)}catch(e){r.log.error("calendar: compensating revert failed",{id:i.id,err:String(e)})}}}return w>0&&r.log.info("calendar: promoted due events",{workspaceId:u,enqueued:w}),w}e.s(["promoteDueCalendarEventsForWorkspace",0,l,"repeatStopDateToStopAt",0,function(e){let[t,a,s]=e.split("-").map(Number);if(!t||!a||!s)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,s,23,59,59,999).toISOString()}])},139733,e=>{"use strict";e.s(["semverGte",0,function(e,t){let a=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<Math.max(a.length,s.length);e++){let t=a[e]??0,r=s[e]??0;if(t>r)break;if(t<r)return!1}return!0}])},572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
1
+ module.exports=[205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),i=e.i(726089),r=e.i(740580);let n=t.queries.task,d=t.queries.agent,o=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,i,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 n.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.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:i,type:r,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null})}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.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 n.claimKillTasks(this.db,e,a,t),i=t-s.length,r=i>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],d=new Set(e),o=new Set,c=[...s];for(let e of r){if(i<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(o.has(t))continue;o.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&d.has(a.runtimeId)&&(c.push(a),i--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let r;try{r=JSON.parse(a)}catch{r={raw:a}}let d=await n.completeTask(this.db,e,t,{result:r,sessionId:i||null});if(!d){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=r,l="string"==typeof c?.output?c.output:"";return l&&await o.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async failTask(e,t,i){let r=await n.failTask(this.db,e,t,i);if(!r){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return r.type===a.TASK_TYPES.KILL_TASK||(i&&await o.createMessage(this.db,{conversationId:r.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e}),await this.reconcileAgentStatus(r.agentId,r.workspaceId),await this.syncIssueStatusFromTask(r,"failed"),await this.dispatchNextBufferedMessage(r.conversationId,r.workspaceId)),r}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await o.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,i.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,r.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.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 n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let i=await n.getActiveTaskByConversation(this.db,e,t);if(!i)return null;let r=await n.cancelTask(this.db,i.id,t);return r?(("dispatched"===i.status||"running"===i.status)&&await n.createTask(this.db,{agentId:i.agentId,runtimeId:i.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:i.id}}),await o.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:i.id}),await this.reconcileAgentStatus(i.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),r):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let d=await o.activateNextBufferedMessage(this.db,e);if(!d)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await o.revertToBuffered(this.db,d.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:d.id,revertErr:e})}),null;let u=l.userId;try{let s=d.attachmentIds?JSON.parse(d.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),h=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,d.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await o.updateMessageTaskId(this.db,d.id,p.id),(0,i.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,r.messageToResponse)(d),task:(0,r.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await o.revertToBuffered(this.db,d.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:d.id,revertErr:e})}),(0,i.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:d.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let i of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(i,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:i,err:t})}}}])},388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),s=e.i(774078);async function i(e,i){let r=`sweep:${i}`,n=!1;try{n=await (0,s.throttled)(r,30,async()=>{})}catch{n=!0}if(!n)return;let d=await t.queries.task.failStaleDispatchedTasks(e,i);await t.queries.task.failStaleKillTasks(e,i);let o=[...d,...await t.queries.task.failStaleRunningTasks(e,i)];if(o.length>0){let t=new a.TaskService(e),r=new Set;for(let e of o){let a=`${e.agentId}:${e.workspaceId}`;r.has(a)||(r.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let n=new Set;for(let e of o)n.has(e.conversationId)||(n.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId));let d=new Date().toISOString().slice(0,10);await Promise.all([(0,s.invalidate)(s.cacheKeys.allAgents(i)),(0,s.invalidate)(s.cacheKeys.overviewTaskStats(i,d))]).catch(()=>{})}}e.s(["sweepStaleState",0,i])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(719436),i=e.i(799579);let{listDueCalendarEvents:r,claimCalendarEvent:n,revertCalendarEventClaim:d,updateCalendarEventSchedule:o,computeNextScheduledAt:c}=t.queries.calendarEvent;async function l(e,u,h=new Date().toISOString()){let p=await r(e,u,h),w=0;for(let r of p){let l=await t.queries.agent.getAgent(e,r.agentId,r.workspaceId);if(!l){i.log.warn("calendar: agent missing, skipping",{id:r.id});continue}if(!l.runtimeId){i.log.warn("calendar: agent has no runtime, skipping",{id:r.id});continue}if(!l.ownerId){i.log.warn("calendar: agent has no owner, skipping",{id:r.id});continue}let u=r.lastTriggeredAt??null;if(await n(e,r.id,r.scheduledAt,h))try{let i=await t.queries.conversation.createConversation(e,{workspaceId:r.workspaceId,agentId:r.agentId,userId:l.ownerId,title:`[Calendar] ${r.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:i.id,role:"event",content:r.title}),await t.queries.task.createTask(e,{agentId:r.agentId,runtimeId:l.runtimeId,workspaceId:r.workspaceId,conversationId:i.id,prompt:r.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,s.nanoid)(),parentTaskId:null}),r.repeatInterval){let t=c(r.scheduledAt,r.repeatInterval,r.repeatStopAt??null,h,r.exceptions??[]);t&&await o(e,r.id,t)}w++}catch(t){i.log.warn("calendar: post-claim write failed, reverting",{id:r.id,err:String(t)});try{await d(e,r.id,u)}catch(e){i.log.error("calendar: compensating revert failed",{id:r.id,err:String(e)})}}}return w>0&&i.log.info("calendar: promoted due events",{workspaceId:u,enqueued:w}),w}e.s(["promoteDueCalendarEventsForWorkspace",0,l,"repeatStopDateToStopAt",0,function(e){let[t,a,s]=e.split("-").map(Number);if(!t||!a||!s)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,s,23,59,59,999).toISOString()}])},139733,e=>{"use strict";e.s(["semverGte",0,function(e,t){let a=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<Math.max(a.length,s.length);e++){let t=a[e]??0,i=s[e]??0;if(t>i)break;if(t<i)return!1}return!0}])},572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
2
2
 
3
3
  //# sourceMappingURL=_0tcd35h._.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function r(e,r,i){let n;try{let{env:a}=(0,t.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...i,status:t.status})}catch(e){s.warn("broadcast error",{...i,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let i=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i)}catch{}return i}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,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 n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.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 n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.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 n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),p=c?.traceId??null,h=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(888247),i=e.i(704024),n=e.i(291109),o=e.i(675139),d=e.i(152327),c=e.i(47962),l=e.i(776227),u=e.i(726089),p=e.i(205054),h=t([d]);[d]=h.then?(await h)():h;let w=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,s.getCloudflareContext)(),i=(0,o.getDb)(r.DB),d=t.params?.id;if(!d)return(0,l.writeError)("issue id is required",400);if(!await n.queries.issue.getIssue(i,d,a.workspaceId))return(0,l.writeError)("issue not found",404);let u=await n.queries.issueComment.listComments(i,d,a.workspaceId);return(0,l.writeJSON)({comments:u.map(n.queries.issueComment.commentToResponse)})}),g=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:d}=(0,s.getCloudflareContext)(),h=(0,o.getDb)(d.DB),w=t.params?.id;if(!w)return(0,l.writeError)("issue id is required",400);let g=await n.queries.issue.getIssue(h,w,a.workspaceId);if(!g)return(0,l.writeError)("issue not found",404);let f=e.nextUrl.searchParams.get("agentId");if(f&&g.agentId!==f)return(0,l.writeError)("issue does not belong to agent",403);let[m,k]=await (0,l.parseBody)(e,r.CreateIssueCommentBodySchema);if(k)return k;let T=f?"agent":"user",I=f??t.userId,v=await n.queries.issueComment.createComment(h,{issueId:w,workspaceId:a.workspaceId,authorType:T,authorId:I,content:m.content});await n.queries.issue.updateIssue(h,w,a.workspaceId,{});let y=n.queries.issueComment.commentToResponse(v);if((0,u.broadcastToUser)(g.creatorUserId,{type:"issue.comment",issueId:w,comment:y}).catch(()=>{}),"user"===T&&!(0,i.isTerminalIssueStatus)(g.status)&&g.agentId&&g.conversationId&&!await n.queries.task.getActiveTaskByConversation(h,g.conversationId,a.workspaceId)){let e=new p.TaskService(h),t=`${g.title}
1
+ module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function r(e,r,i){let n;try{let{env:a}=(0,t.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...i,status:t.status})}catch(e){s.warn("broadcast error",{...i,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let i=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i)}catch{}return i}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,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 n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.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 n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await l.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.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 n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),p=c?.traceId??null,h=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(888247),i=e.i(704024),n=e.i(291109),o=e.i(675139),d=e.i(152327),c=e.i(47962),l=e.i(776227),u=e.i(726089),p=e.i(205054),h=e.i(774078),w=t([d]);[d]=w.then?(await w)():w;let g=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,s.getCloudflareContext)(),i=(0,o.getDb)(r.DB),d=t.params?.id;if(!d)return(0,l.writeError)("issue id is required",400);if(!await n.queries.issue.getIssue(i,d,a.workspaceId))return(0,l.writeError)("issue not found",404);let u=await n.queries.issueComment.listComments(i,d,a.workspaceId);return(0,l.writeJSON)({comments:u.map(n.queries.issueComment.commentToResponse)})}),f=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:d}=(0,s.getCloudflareContext)(),w=(0,o.getDb)(d.DB),g=t.params?.id;if(!g)return(0,l.writeError)("issue id is required",400);let f=await n.queries.issue.getIssue(w,g,a.workspaceId);if(!f)return(0,l.writeError)("issue not found",404);let k=e.nextUrl.searchParams.get("agentId");if(k&&f.agentId!==k)return(0,l.writeError)("issue does not belong to agent",403);let[m,T]=await (0,l.parseBody)(e,r.CreateIssueCommentBodySchema);if(T)return T;let I=k?"agent":"user",v=k??t.userId,y=await n.queries.issueComment.createComment(w,{issueId:g,workspaceId:a.workspaceId,authorType:I,authorId:v,content:m.content});await n.queries.issue.updateIssue(w,g,a.workspaceId,{});let b=n.queries.issueComment.commentToResponse(y);if((0,u.broadcastToUser)(f.creatorUserId,{type:"issue.comment",issueId:g,comment:b}).catch(()=>{}),"user"===I&&!(0,i.isTerminalIssueStatus)(f.status)&&f.agentId&&f.conversationId&&!await n.queries.task.getActiveTaskByConversation(w,f.conversationId,a.workspaceId)){let e=new p.TaskService(w),t=`${f.title}
2
2
 
3
- User feedback: "${m.content}"`;try{let s=g.latestTaskId?(await n.queries.task.getTask(h,g.latestTaskId,a.workspaceId))?.traceId??null:null,r=await e.enqueueTask(g.agentId,g.conversationId,a.workspaceId,t,i.TASK_TYPES.ISSUE_EVENT,{contextKey:g.conversationId,context:{issue_id:g.id},traceId:s,parentTaskId:null});await n.queries.issue.setLatestTask(h,w,a.workspaceId,r.id)}catch{}}return(0,l.writeJSON)({comment:y},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),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=e.i(638081),d=e.i(204960),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),f=e.i(830665),m=e.i(944002),k=e.i(193695);e.i(195928);var T=e.i(81543),I=e.i(914022),v=t([I]);[I]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:r.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:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:R}=b;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/issues/[id]/comments/route";s=s.replace(/\/index$/,"")||"/";let i=await b.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:I,deploymentId:v,params:y,nextConfig:_,parsedUrl:E,isDraftMode:R,prerenderManifest:S,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:P}=i,M=(0,c.normalizeAppPath)(s),O=!!(S.dynamicRoutes[M]||S.routes[q]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!R){let e=!!S.routes[q],t=S.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await U();throw new k.NoFallbackError}}let K=null;!O||b.isDev||R||(K=q,K="/index"===K?"/":K);let B=!0===b.isDev||!O,$=O&&!B;P&&N&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:N,serverActionsManifest:P});let D=e.method||"GET",j=(0,o.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==C?void 0:C.isWrappedByNextServer),F=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:B,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,C)},sharedContext:{buildId:I,deploymentId:v}},Y=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let i,n=async e=>b.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.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=`${D} ${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(`${D} ${s}`)}),d=async i=>{var o,d;let c=async({previousCacheEntry:r})=>{try{if(!F&&A&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=V.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(Y,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:T.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,C),t}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:F});if(!O)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&O||u.delete(m.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(Y,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await d(L):(i=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof k.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,C),O)throw t;return await (0,w.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:E})},"routeModule",0,b,"serverHooks",0,R,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,E]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
3
+ User feedback: "${m.content}"`;try{let s=f.latestTaskId?(await n.queries.task.getTask(w,f.latestTaskId,a.workspaceId))?.traceId??null:null,r=await e.enqueueTask(f.agentId,f.conversationId,a.workspaceId,t,i.TASK_TYPES.ISSUE_EVENT,{contextKey:f.conversationId,context:{issue_id:f.id},traceId:s,parentTaskId:null});await n.queries.issue.setLatestTask(w,g,a.workspaceId,r.id);let o=new Date().toISOString().slice(0,10);(0,h.invalidate)(h.cacheKeys.overviewTaskStats(a.workspaceId,o)).catch(()=>{})}catch{}}return(0,l.writeJSON)({comment:b},201)});e.s(["GET",0,g,"POST",0,f]),a()}catch(e){a(e)}},!1),789442,e=>e.a(async(t,a)=>{try{var s=e.i(80774),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=e.i(638081),d=e.i(204960),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),f=e.i(830665),k=e.i(944002),m=e.i(193695);e.i(195928);var T=e.i(81543),I=e.i(914022),v=t([I]);[I]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:r.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:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:S}=b;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/issues/[id]/comments/route";s=s.replace(/\/index$/,"")||"/";let i=await b.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:I,deploymentId:v,params:y,nextConfig:_,parsedUrl:E,isDraftMode:S,prerenderManifest:R,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:P}=i,M=(0,c.normalizeAppPath)(s),O=!!(R.dynamicRoutes[M]||R.routes[q]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!S){let e=!!R.routes[q],t=R.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await U();throw new m.NoFallbackError}}let K=null;!O||b.isDev||S||(K=q,K="/index"===K?"/":K);let B=!0===b.isDev||!O,D=O&&!B;P&&N&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:N,serverActionsManifest:P});let $=e.method||"GET",j=(0,o.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==C?void 0:C.isWrappedByNextServer),F=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:y,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:B,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,C)},sharedContext:{buildId:I,deploymentId:v}},Y=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let i,n=async e=>b.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.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=`${$} ${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(`${$} ${s}`)}),d=async i=>{var o,d;let c=async({previousCacheEntry:r})=>{try{if(!F&&A&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=V.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(Y,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[k.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=k.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=k.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:T.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:A})},!1,C),t}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:F});if(!O)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&O||u.delete(k.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(Y,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await d(L):(i=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:A})},!1,C),O)throw t;return await (0,w.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:E})},"routeModule",0,b,"serverHooks",0,S,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,E]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
4
4
 
5
5
  //# sourceMappingURL=_0u3tu2x._.js.map