@alook/app 0.0.71 → 0.0.73

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 (146) hide show
  1. package/bundled/email-worker/index.js +45 -41
  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/{01-oixdvo.kcw.js → 08py05dvbwpz..js} +15 -15
  5. package/bundled/web/.open-next/assets/_next/static/chunks/08q1jdm7c98jd.js +63 -0
  6. package/bundled/web/.open-next/assets/_next/static/chunks/{08vzc8ntbbjoe.js → 0hxwcjbgkr~0_.js} +1 -1
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{0ymb~iviyjlb_.js → 0o3ol51uyvngq.js} +2 -2
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{0va5axmz5ywg8.js → 0r91umgrdcg_w.js} +2 -2
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0z1nxwsyi9qzp.js +1 -0
  10. package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_global-error.cache +1 -1
  11. package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_not-found.cache +1 -1
  12. package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/sitemap.xml.cache +1 -1
  13. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  14. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  15. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  16. package/bundled/web/.open-next/middleware/handler.mjs +4 -4
  17. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  33. 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
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  38. 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
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agent-links/route.js +2 -2
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +2 -2
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-task-counts/route.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +4 -4
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +2 -2
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/[id]/route.js +2 -2
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/route.js +2 -2
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +2 -2
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +3 -4
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +2 -3
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +2 -3
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +3 -4
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +2 -3
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +2 -3
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +6 -7
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/send/route.js +3 -3
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +1 -1
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/activate/route.js +2 -2
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/route.js +4 -4
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/route.js +2 -2
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +6 -6
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__027mioa._.js +10 -10
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02rso~7._.js +3 -0
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02wurdb._.js +3 -0
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dkg608._.js +3 -0
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0grx101._.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0_.051i._.js → [root-of-the-server]__0gzp~d6._.js} +2 -2
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0jvwtv1._.js +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kc1f.6._.js +1 -1
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +6 -6
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0p769.0._.js +3 -0
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0s0l_.j._.js +3 -0
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0s9v7kt._.js +3 -0
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0v.x5_r._.js +3 -0
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +14 -14
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0--kvw_._.js +3 -0
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-r4t0g._.js +1 -1
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +2 -2
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05_d3df._.js +1 -1
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06.am62._.js +1 -1
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07-798_._.js +1 -1
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08mdiy6._.js +1 -1
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08z6pkf._.js +3 -0
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +2 -2
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0csh82a._.js +3 -0
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +2 -2
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j.pt~7._.js +1 -1
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j1t6f2._.js +1 -1
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0lmedw9._.js +1 -1
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ns9.qo._.js +1 -1
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0u3tu2x._.js +2 -2
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +2 -2
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +1 -1
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0r2s1aj._.js +1 -1
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +14 -14
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +1 -1
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_07q6-kr._.js +3 -0
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ilz5db._.js +1 -1
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0y3mwm6._.js +65 -0
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_11~t2ti._.js +1 -1
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +1 -1
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0j12j81._.js +3 -0
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  114. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  115. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  116. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  117. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  118. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +54 -54
  119. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +677 -251
  120. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  121. package/bundled/web/migrations/0030_task_queue_dispatch_index.sql +5 -0
  122. package/bundled/web/wrangler.toml +1 -1
  123. package/bundled/ws-do/index.js +39 -40
  124. package/dist/cli/index.js +12 -9
  125. package/dist/cli/session-runner.js +12 -9
  126. package/dist/index.js +1 -0
  127. package/package.json +1 -1
  128. package/bundled/web/.open-next/assets/_next/static/chunks/08u3p1v8e1gxg.js +0 -63
  129. package/bundled/web/.open-next/assets/_next/static/chunks/13lom177x6744.js +0 -1
  130. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__10-16_o._.js +0 -3
  131. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02t7kem._.js +0 -3
  132. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0c9~wb-._.js +0 -3
  133. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h6e0bb._.js +0 -3
  134. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0piy2kq._.js +0 -3
  135. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s4qnoj._.js +0 -3
  136. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0sj8mn_._.js +0 -3
  137. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tarogd._.js +0 -3
  138. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tcd35h._.js +0 -3
  139. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0x0qvxd._.js +0 -3
  140. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0z.s70x._.js +0 -3
  141. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +0 -3
  142. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13cbsrm._.js +0 -65
  143. /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_buildManifest.js +0 -0
  144. /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_clientMiddlewareManifest.js +0 -0
  145. /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_ssgManifest.js +0 -0
  146. /package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/robots.txt.cache +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let a=(0,e.i(613349).isLocalMode)(),n=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,o=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e){let t=(0,r.useRef)(null),i=(0,r.useRef)(s),c=(0,r.useRef)(e),l=(0,r.useRef)(null);(0,r.useEffect)(()=>{c.current=e},[e]);let d=(0,r.useRef)(null),u=(0,r.useCallback)(()=>{let e=Math.min(i.current,o);i.current=Math.min(2*e,o),l.current=setTimeout(()=>{d.current?.()},e+500*Math.random())},[]),f=(0,r.useCallback)(async()=>{let e,r,o,l=n;try{let t=await fetch("/api/ws/token");if(!t.ok){console.warn("[ws] token fetch failed:",t.status),u();return}let a=await t.json();e=a.userId,r=a.token,a.wsPort&&(l=a.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),u();return}let d=a?`ws://localhost:${l}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{o=new WebSocket(d)}catch(e){console.warn("[ws] WebSocket creation failed:",e),u();return}t.current=o,o.onopen=()=>{i.current=s,o.send(JSON.stringify({type:"auth",token:r}))},o.onmessage=e=>{try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;c.current(t)}catch{}},o.onerror=()=>{},o.onclose=()=>{o===t.current&&u()}},[u]);(0,r.useEffect)(()=>{d.current=f},[f]),(0,r.useEffect)(()=>(f(),()=>{null!==l.current&&(clearTimeout(l.current),l.current=null);let e=t.current;t.current=null,e?.close()}),[f])}])},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},275351,e=>{"use strict";let t,r,a,n,s=(e,t)=>t.some(t=>e instanceof t),o=new WeakMap,i=new WeakMap,c=new WeakMap,l={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return d(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,r)=>{let a=()=>{e.removeEventListener("success",n),e.removeEventListener("error",s)},n=()=>{t(d(e.result)),a()},s=()=>{r(e.error),a()};e.addEventListener("success",n),e.addEventListener("error",s)}),c.set(t,e),t}if(i.has(e))return i.get(e);let t=function(e){if("function"==typeof e)return(n||(n=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),d(this.request)}:function(...t){return d(e.apply(u(this),t))};return(e instanceof IDBTransaction&&function(e){if(o.has(e))return;let t=new Promise((t,r)=>{let a=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",s),e.removeEventListener("abort",s)},n=()=>{t(),a()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),a()};e.addEventListener("complete",n),e.addEventListener("error",s),e.addEventListener("abort",s)});o.set(e,t)}(e),s(e,a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,l):e}(e);return t!==e&&(i.set(e,t),c.set(t,e)),t}let u=e=>c.get(e),f=["get","getKey","getAll","getAllKeys","count"],m=["put","add","delete","clear"],p=new Map;function h(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(p.get(t))return p.get(t);let r=t.replace(/FromIndex$/,""),a=t!==r,n=m.includes(r);if(!(r in(a?IDBIndex:IDBObjectStore).prototype)||!(n||f.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,n?"readwrite":"readonly"),o=s.store;return a&&(o=o.index(t.shift())),(await Promise.all([o[r](...t),n&&s.done]))[0]};return p.set(t,s),s}l={...t=l,get:(e,r,a)=>h(e,r)||t.get(e,r,a),has:(e,r)=>!!h(e,r)||t.has(e,r)};let g=["continue","continuePrimaryKey","advance"],x={},y=new WeakMap,w=new WeakMap,b={get(e,t){if(!g.includes(t))return e[t];let r=x[t];return r||(r=x[t]=function(...e){y.set(this,w.get(this)[t](...e))}),r}};async function*v(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let r=new Proxy(t,b);for(w.set(r,t),c.set(r,u(t));t;)yield r,t=await (y.get(r)||t.continue()),y.delete(r)}function C(e,t){return t===Symbol.asyncIterator&&s(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&s(e,[IDBIndex,IDBObjectStore])}l={...r=l,get:(e,t,a)=>C(e,t)?v:r.get(e,t,a),has:(e,t)=>C(e,t)||r.has(e,t)};let j=null,k=null;function I(e){return"u"<typeof indexedDB?null:j&&k===e?j:(k=e,j=function(e,{blocked:t,upgrade:r,blocking:a,terminated:n}={}){let s=indexedDB.open(e,1),o=d(s);return r&&s.addEventListener("upgradeneeded",e=>{r(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),o.then(e=>{n&&e.addEventListener("close",()=>n()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}(`alook-chat-cache-${e}`,{upgrade(e){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}}))}function N(e){return e?I(e):j}async function _(e,t){let r=N(t);if(!r)return null;try{let t=await r,a=await t.getAllFromIndex("messages","by-conversation",e);if(0===a.length)return null;let n=a.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));n.sort((e,t)=>{let r=e.created_at.localeCompare(t.created_at);return 0!==r?r:e.id.localeCompare(t.id)});let s=await t.get("cache_meta",e);return s&&await t.put("cache_meta",{...s,lastAccessedAt:Date.now()}),n}catch{return null}}async function D(e,t,r,a){let n=N(a);if(n)try{let a=await n,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let o=a.transaction(["messages","cache_meta"],"readwrite"),i=o.objectStore("messages"),c=o.objectStore("cache_meta");for(let e of s)await i.put(e);let l=await i.index("by-conversation").getAllKeys(e),d=Date.now(),u=s.reduce((e,t)=>e.created_at>t.created_at?e:t),f={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:l.length,newestMessageId:u.id,hasMore:r};await c.put(f),await o.done,E().catch(()=>{})}catch{}}async function B(e,t,r){let a=N(r);if(a&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let r=await a,n=await r.get("messages",[e,t.id]);await r.put("messages",t);let s=await r.get("cache_meta",e);s&&await r.put("cache_meta",{...s,lastAccessedAt:Date.now(),messageCount:n?s.messageCount:s.messageCount+1,newestMessageId:t.id})}catch{}}async function E(e=50){let t=N();if(t)try{let r=await t,a=await r.getAll("cache_meta");if(a.length<=e)return;a.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let n=a.slice(0,a.length-e),s=r.transaction(["messages","cache_meta"],"readwrite"),o=s.objectStore("messages"),i=s.objectStore("cache_meta");for(let e of n){for(let t of(await o.index("by-conversation").getAllKeys(e.conversation_id)))await o.delete(t);await i.delete(e.conversation_id)}await s.done}catch{}}async function A(){if("u">typeof indexedDB)try{j&&((await j).close(),j=null),k&&(await T(`alook-chat-cache-${k}`),k=null)}catch{}}async function T(e){return new Promise((t,r)=>{let a=indexedDB.deleteDatabase(e);a.onsuccess=()=>t(),a.onerror=()=>r(a.error),a.onblocked=()=>t()})}e.s(["appendCachedMessage",0,B,"clearAllCache",0,A,"getCachedMessages",0,_,"mergeCachedMessages",0,D,"openCacheDB",0,I],275351)},934351,e=>{"use strict";var t=e.i(368075),r=e.i(613349);e.s(["Card",0,function({className:e,size:a="default",...n}){return(0,t.jsx)("div",{"data-slot":"card","data-size":a,className:(0,r.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...n})},"CardAction",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-action",className:(0,r.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",e),...a})},"CardContent",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,r.cn)("px-4 group-data-[size=sm]/card:px-3",e),...a})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,r.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,r.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...a})}])},866519,e=>{"use strict";let t=(0,e.i(406963).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",0,t],866519)},371406,e=>{"use strict";var t=e.i(368075),r=e.i(298699),a=e.i(186339),n=e.i(329686),s=e.i(541544),o=e.i(880932),i=e.i(613349);function c({step:e,completed:r}){return r?(0,t.jsx)("span",{className:"flex items-center justify-center size-5 rounded-full bg-emerald-500 text-white transition-all duration-300",children:(0,t.jsx)(s.Check,{className:"size-3",strokeWidth:3})}):(0,t.jsx)("span",{className:"flex items-center justify-center size-5 rounded-full bg-foreground text-background text-xs font-semibold",children:e})}e.s(["ConnectMachineSteps",0,function({generatedToken:e,generatingToken:s,onGenerateToken:l,registered:d}){let u=(0,r.useRef)(!1);(0,r.useEffect)(()=>{e||s||u.current||(u.current=!0,l())},[e,s,l]);let f=()=>{navigator.clipboard.writeText(`${(0,i.cliCmd)()} register --token ${e}`),o.toast.success("Copied to clipboard")},m=(0,i.daemonStartCmd)(),p=()=>{navigator.clipboard.writeText(m),o.toast.success("Copied to clipboard")};return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("p",{className:"text-sm font-medium flex items-center gap-2",children:[(0,t.jsx)(c,{step:1,completed:d}),"Register your CLI",d&&(0,t.jsx)("span",{className:"text-xs text-emerald-500 font-normal",children:"Done"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground pl-7",children:"Run this in your terminal to link your machine."}),s?(0,t.jsx)("div",{className:"pl-7",children:(0,t.jsx)("div",{className:"rounded-md bg-muted p-2.5 font-mono text-xs text-muted-foreground animate-pulse",children:"Generating token..."})}):e?(0,t.jsxs)("div",{className:"pl-7 space-y-2",children:[(0,t.jsxs)(n.Tooltip,{children:[(0,t.jsxs)(n.TooltipTrigger,{render:(0,t.jsx)("div",{className:"rounded-md bg-muted p-2.5 font-mono text-xs text-muted-foreground cursor-pointer hover:bg-muted/80 transition-colors break-all",onClick:f}),children:[(0,i.cliCmd)()," register --token"," ",(0,t.jsx)("span",{className:"text-foreground/70",children:e})]}),(0,t.jsx)(n.TooltipContent,{children:"Click to copy"})]}),!d&&(0,t.jsx)(a.Button,{size:"sm",onClick:f,className:"w-full",children:"Copy Command"})]}):null]}),(0,t.jsxs)("div",{className:`space-y-2 transition-opacity duration-300 ${!d?"opacity-40 pointer-events-none":""}`,children:[(0,t.jsxs)("p",{className:"text-sm font-medium flex items-center gap-2",children:[(0,t.jsx)(c,{step:2,completed:!1}),"Start the daemon"]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground pl-7",children:"The daemon connects your local agents to Alook."}),(0,t.jsxs)(n.Tooltip,{children:[(0,t.jsx)(n.TooltipTrigger,{render:(0,t.jsx)("div",{className:"ml-7 rounded-md bg-muted p-2.5 font-mono text-xs text-muted-foreground cursor-pointer hover:bg-muted/80 transition-colors",onClick:p}),children:m}),(0,t.jsx)(n.TooltipContent,{children:"Click to copy"})]}),d&&(0,t.jsx)("div",{className:"pl-7",children:(0,t.jsx)(a.Button,{size:"sm",onClick:p,className:"w-full",children:"Copy Command"})})]})]})}])}]);
@@ -1,3 +0,0 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function r(e,r){return t.NextResponse.json({error:e},{status:r})}async function a(e,a){let s;try{s=await e.json()}catch{return[null,r("invalid request body",400)]}try{return[a.parse(s),null]}catch(r){let e=(r.issues??r.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,a,"writeError",0,r,"writeJSON",0,function(e,r=200){return t.NextResponse.json(e,{status:r})}])},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},873642,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/db/adapter");e.n(t),r()}catch(e){r(e)}},!0),666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},978098,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/string");e.n(t),r()}catch(e){r(e)}},!0),414859,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/env");e.n(t),r()}catch(e){r(e)}},!0),200861,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/error");e.n(t),r()}catch(e){r(e)}},!0),323118,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/error-codes");e.n(t),r()}catch(e){r(e)}},!0),987514,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/db");e.n(t),r()}catch(e){r(e)}},!0),65638,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/db");e.n(t),r()}catch(e){r(e)}},!0),288398,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/json");e.n(t),r()}catch(e){r(e)}},!0),412578,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/ip");e.n(t),r()}catch(e){r(e)}},!0),139329,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/context");e.n(t),r()}catch(e){r(e)}},!0),685116,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/instrumentation");e.n(t),r()}catch(e){r(e)}},!0),895517,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/id");e.n(t),r()}catch(e){r(e)}},!0),684495,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/host");e.n(t),r()}catch(e){r(e)}},!0),406417,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/is-api-error");e.n(t),r()}catch(e){r(e)}},!0),780471,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/api");e.n(t),r()}catch(e){r(e)}},!0),836329,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/url");e.n(t),r()}catch(e){r(e)}},!0),405597,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/utils/deprecate");e.n(t),r()}catch(e){r(e)}},!0),825660,e=>e.a(async(t,r)=>{try{let t=await e.y("@better-auth/core-05fe37db7d6627d8/social-providers");e.n(t),r()}catch(e){r(e)}},!0),902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},50335,e=>{"use strict";e.s(["DialectAdapterBase",0,class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!1}get supportsOutput(){return!1}}])},815409,e=>{"use strict";var t=e.i(656049);let r=/"/g,a=/[\\'"]/g;class s extends t.DefaultQueryCompiler{visitOrAction(e){this.append("or "),this.append(e.action)}getCurrentParameterPlaceholder(){return"?"}getLeftExplainOptionsWrapper(){return""}getRightExplainOptionsWrapper(){return""}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}sanitizeIdentifier(e){return e.replace(r,'""')}sanitizeJSONPathMemberValue(e){return e.replace(a,e=>"\\"===e?"\\\\":"'"===e?"''":'\\"')}visitDefaultInsertValue(e){this.append("null")}}e.s(["SqliteQueryCompiler",0,s])},493713,e=>{"use strict";var t=e.i(50335);class r extends t.DialectAdapterBase{get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(e,t){}async releaseMigrationLock(e,t){}}e.s(["SqliteAdapter",0,r])},866990,e=>{"use strict";e.s(["resolveMode",0,function(e){return("development"!==e.nodeEnv||e.cmdPrefix)&&(!e.serverUrl||e.cmdPrefix)?e.cmdPrefix||e.hostname&&["localhost","127.0.0.1"].includes(e.hostname)?"app":"production":"dev"}])},152327,e=>e.a(async(t,r)=>{try{var a=e.i(463421),s=e.i(291484);e.i(700598);var n=e.i(291109),i=e.i(675139),o=e.i(342573),c=e.i(774078),l=t([o]);[o]=l.then?(await l)():l,e.s(["withAuth",0,function(e){return async(t,r)=>{let l,u=r?.params?r.params instanceof Promise?await r.params:r.params:void 0,{env:d}=await (0,s.getCloudflareContext)({async:!0});(0,c.bindCacheKV)(d.CACHE_KV??null);let p=t.headers.get("Authorization");if(p?.startsWith("Bearer ")){let r=p.slice(7);if(r.startsWith("al_"))try{let s=(0,i.getDb)(d.DB),o=await (0,c.cached)(c.cacheKeys.machineToken(r),900,()=>n.queries.machineToken.getMachineTokenByToken(s,r));if(!o)return a.NextResponse.json({error:"invalid token"},{status:401});(0,c.cached)(c.cacheKeys.machineTokenLastUsed(r),900,async()=>(await n.queries.machineToken.updateMachineTokenLastUsed(s,o.id),"1")).catch(()=>{});let l={userId:o.userId,email:o.userEmail,workspaceId:o.workspaceId??void 0};return e(t,{...l,params:u})}catch{return a.NextResponse.json({error:"invalid token"},{status:401})}}let h=(0,o.createAuth)(d),y=null;for(let e=0;e<2;e++)try{y=await h.api.getSession({headers:t.headers}),l=void 0;break}catch(e){l=e}if(l)return a.NextResponse.json({error:"session validation failed"},{status:503});if(!y)return a.NextResponse.json({error:"unauthorized"},{status:401});let m={userId:y.user.id,email:y.user.email};return e(t,{...m,params:u})}}]),r()}catch(e){r(e)}},!1),47962,e=>{"use strict";var t=e.i(463421),r=e.i(291484);e.i(700598);var a=e.i(291109),s=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:c}=await (0,r.getCloudflareContext)({async:!0}),l=(0,s.getDb)(c.DB),u=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>a.queries.member.getMemberByUserAndWorkspace(l,i.userId,o));return u||i.workspaceId!==o?u?{workspaceId:o,memberRole:u.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,r){let a=await i(e,r);return a instanceof t.NextResponse?a:"owner"!==a.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):a}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},57202,e=>e.a(async(t,r)=>{try{var a=e.i(291484);e.i(700598);var s=e.i(20586),n=e.i(291109),i=e.i(152327),o=e.i(47962),c=e.i(776227),l=t([i]);[i]=l.then?(await l)():l;let u=(0,i.withAuth)(async(e,t)=>{let r=await (0,o.withWorkspaceMember)(e,t);if(r instanceof Response)return r;let{env:i}=(0,a.getCloudflareContext)(),l=(0,s.createDb)(i.DB),u=await n.queries.task.listActiveTaskCountsByWorkspace(l,r.workspaceId),d={};for(let e of u)d[e.agentId]=Number(e.count);return(0,c.writeJSON)({counts:d})});e.s(["GET",0,u]),r()}catch(e){r(e)}},!1),591904,e=>e.a(async(t,r)=>{try{var a=e.i(80774),s=e.i(404478),n=e.i(732985),i=e.i(481671),o=e.i(638081),c=e.i(204960),l=e.i(924918),u=e.i(363585),d=e.i(906846),p=e.i(359838),h=e.i(383303),y=e.i(234173),m=e.i(270215),f=e.i(830665),v=e.i(944002),w=e.i(193695);e.i(195928);var x=e.i(81543),b=e.i(57202),g=t([b]);[b]=g.then?(await g)():g;let _=new a.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/agents/active-task-counts/route",pathname:"/api/agents/active-task-counts",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/agents/active-task-counts/route.ts",nextConfigOutput:"standalone",userland:b,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:C,serverHooks:E}=_;async function R(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),_.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/agents/active-task-counts/route";a=a.replace(/\/index$/,"")||"/";let n=await _.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:b,deploymentId:g,params:R,nextConfig:k,parsedUrl:C,isDraftMode:E,prerenderManifest:N,routerServerContext:A,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,resolvedPathname:T,clientReferenceManifest:I,serverActionsManifest:P}=n,S=(0,l.normalizeAppPath)(a),O=!!(N.dynamicRoutes[S]||N.routes[T]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(O&&!E){let e=!!N.routes[T],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(k.adapterPath)return await D();throw new w.NoFallbackError}}let M=null;!O||_.isDev||E||(M=T,M="/index"===M?"/":M);let U=!0===_.isDev||!O,H=O&&!U;P&&I&&(0,c.setManifestsSingleton)({page:a,clientReferenceManifest:I,serverActionsManifest:P});let B=e.method||"GET",W=(0,o.getTracer)(),K=W.getActiveScopeSpan(),$=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),F=(0,i.getRequestMeta)(e,"incrementalCache")||await _.getIncrementalCache(e,k,N,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let z={params:R,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:U,incrementalCache:F,cacheLifeProfiles:k.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>_.onRequestError(e,t,a,s,A)},sharedContext:{buildId:b,deploymentId:g}},V=new u.NodeNextRequest(e),Z=new u.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>_.handle(G,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${B} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${B} ${a}`)}),c=async n=>{var o,c;let l=async({previousCacheEntry:s})=>{try{if(!L&&j&&q&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let c=z.renderOpts.collectedTags;if(!O)return await (0,y.sendResponse)(V,Z,a,z.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[v.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,s=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==s?void 0:s.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:j})},!1,A),t}},u=await _.handleResponse({req:e,nextConfig:k,cacheKey:M,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:L});if(!O)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(c=u.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&O||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,y.sendResponse)(V,Z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&K?await c(K):(n=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},c),void 0,!$))}catch(t){if(t instanceof w.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:j})},!1,A),O)throw t;return await (0,y.sendResponse)(V,Z,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:C})},"routeModule",0,_,"serverHooks",0,E,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,C]),r()}catch(e){r(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=%5Broot-of-the-server%5D__10-16_o._.js.map
@@ -1,3 +0,0 @@
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})}}}])},754748,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),l=e.i(726089),c=e.i(774078),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=new d.TaskService(n);try{let e=await p.supersedeTask(u,t.workspaceId),a=new Date().toISOString().slice(0,10);return(0,c.invalidate)(c.cacheKeys.overviewTaskStats(t.workspaceId,a)).catch(()=>{}),(0,l.broadcastToUser)(t.userId,{type:"task.updated",taskId:u,agentId:e.agentId,status:"superseded"}).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),256639,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(754748),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]/supersede/route",pathname:"/api/daemon/tasks/[taskId]/supersede",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/supersede/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:R}=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]/supersede/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:E,isDraftMode:R,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,E,!1):t.end("This page could not be found"),null);if(O&&!R){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||R||(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"),R&&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: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)))}];
2
-
3
- //# sourceMappingURL=_02t7kem._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[620276,e=>e.a(async(t,a)=>{try{var n=e.i(291484);e.i(700598);var r=e.i(291109),i=e.i(888247),s=e.i(139733),o=e.i(424166),l=e.i(704024),d=e.i(675139),c=e.i(152327),u=e.i(776227),p=e.i(740580),w=e.i(205054),m=e.i(388335),g=e.i(801093),h=e.i(726089),I=e.i(799579),k=t([c]);[c]=k.then?(await k)():k;let f=(0,c.withAuth)(async(t,a)=>{let c,k,f,R,{env:v}=(0,n.getCloudflareContext)(),_=(0,d.getDb)(v.DB),{cached:y,cacheKeys:S,throttled:E,invalidate:A}=await e.A(386211),[C,q]=await (0,u.parseBody)(t,i.PollRequestSchema);if(q)return q;if(!a.workspaceId)return(0,u.writeError)("Forbidden: machine token required",403);let b=await y(S.runtimeIds(a.workspaceId,C.daemon_id),600,()=>r.queries.runtime.getRuntimeIdsByDaemon(_,C.daemon_id,a.workspaceId));if(0===b.length)return(0,u.writeJSON)({tasks:[],evicted:!0});let x=Math.floor((l.OFFLINE_THRESHOLD_MS-l.POLL_INTERVAL_MS)/1e3)-1,T=v.CACHE_KV??null;T&&(T.put(S.heartbeat(a.workspaceId,C.daemon_id),new Date().toISOString(),{expirationTtl:120}).catch(()=>{}),A(S.allRuntimes(a.workspaceId)).catch(()=>{}));try{await E(`hb_d1:${a.workspaceId}:${C.daemon_id}`,x,async()=>{await r.queries.machine.upsertMachine(_,{daemonId:C.daemon_id,workspaceId:a.workspaceId,deviceInfo:C.daemon_id})})}catch(e){I.log.warn("machine upsert failed",{daemonId:C.daemon_id,err:String(e)})}(0,h.broadcastToUser)(a.userId,{type:"runtime.status",daemonId:C.daemon_id,workspaceId:a.workspaceId,status:"online"}).catch(()=>{});try{await (0,m.sweepStaleState)(_,a.workspaceId)}catch(e){I.log.warn("sweep failed",{workspaceId:a.workspaceId,err:String(e)})}try{await E(`cal:${a.workspaceId}`,30,async()=>{let e=await (0,g.promoteDueCalendarEventsForWorkspace)(_,a.workspaceId);e>0&&I.log.info("calendar: enqueued",{workspaceId:a.workspaceId,enqueued:e})})}catch(e){I.log.warn("calendar: promote failed",{workspaceId:a.workspaceId,err:String(e)})}let P=new w.TaskService(_),M=await (0,d.withD1Retry)(()=>P.claimTasksForRuntimes(b,C.max_tasks,a.workspaceId)),N=M.filter(e=>"kill_task"!==e.type),O=[...new Set(N.map(e=>e.agentId))],[U,D,H]=O.length>0?await Promise.all([y(S.allAgents(a.workspaceId),300,()=>r.queries.agent.getAllAgentsForWorkspace(_,a.workspaceId)),y(S.allEmailAccounts(a.workspaceId),600,()=>r.queries.emailAccount.getAllEmailAccountsForWorkspace(_,a.workspaceId)),y(S.allColleagues(a.workspaceId),600,()=>r.queries.agentLink.getAllColleaguesForWorkspace(_,a.workspaceId)).catch(()=>[])]).then(([e,t,a])=>{let n=new Set(O);return[e.filter(e=>n.has(e.id)),t.filter(e=>n.has(e.agentId)),a.filter(e=>n.has(e.agentId))]}):[[],[],[]],F=new Map(U.map(e=>[e.id,e])),$=new Map;for(let e of D){let t=$.get(e.agentId)??[];t.push(e.emailAddress),$.set(e.agentId,t)}let B=new Map;for(let e of H){let t=B.get(e.agentId)??[];t.push(e),B.set(e.agentId,t)}let L=[],K=new Map,V=new Map,W=new Map;for(let e of M){if("kill_task"===e.type){L.push({...(0,p.taskToResponse)(e),agent:null,sender:null});continue}let t=F.get(e.agentId)??null,n=[];if(t){t.emailHandle&&n.push(`${t.emailHandle}@alook.ai`);let e=$.get(t.id)??[];n.push(...e)}let i=t?.instructions??"";if(t?.ownerId){if(!K.has(t.ownerId)){let a=await y(S.member(e.workspaceId,t.ownerId),600,()=>r.queries.member.getMemberByUserAndWorkspace(_,t.ownerId,e.workspaceId));K.set(t.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=K.get(t.ownerId);a?.globalInstruction&&(i=[a.globalInstruction,i].filter(Boolean).join("\n\n"))}let s=null;if(t?.ownerId){if(!V.has(t.ownerId)){let e=await y(S.user(t.ownerId),1800,()=>r.queries.user.getUser(_,t.ownerId));V.set(t.ownerId,e?{name:e.name,email:e.email}:null)}s=V.get(t.ownerId)?.name??null}let l=W.get(e.conversationId)??null;e.conversationId&&!W.has(e.conversationId)&&(l=await r.queries.conversation.getConversation(_,e.conversationId,e.workspaceId),W.set(e.conversationId,l));let d=l?.channel??"default",c=null;if("user_dm_message"===e.type&&l?.userId){if(!V.has(l.userId)){let e=await y(S.user(l.userId),1800,()=>r.queries.user.getUser(_,l.userId));V.set(l.userId,e?{name:e.name,email:e.email}:null)}let e=V.get(l.userId);e&&(c={name:e.name,email:e.email,is_owner:l.userId===t?.ownerId})}let u=(B.get(e.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,o.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));L.push({...(0,p.taskToResponse)(e),channel:d,sender:c,agent:t?{instructions:i,name:t.name,runtime_config:t.runtimeConfig||{},email_handle:t.emailHandle||null,email_addresses:n,user_email:a.email||null,user_name:s,colleagues:u}:null})}let j=`misc:${a.workspaceId}:${C.daemon_id}`,G=!1;try{G=await E(j,30,async()=>{})}catch{G=!0}if(G){try{let e=await r.queries.machine.getMachineByDaemon(_,C.daemon_id,a.workspaceId);e?.pendingUpdateVersion&&C.cli_version&&((0,s.semverGte)(C.cli_version,e.pendingUpdateVersion)?(await r.queries.machine.clearPendingUpdateVersion(_,C.daemon_id,a.workspaceId),(0,h.broadcastToUser)(a.userId,{type:"runtime.status",daemonId:C.daemon_id,workspaceId:a.workspaceId,status:"online"}).catch(()=>{})):c={version:e.pendingUpdateVersion}),e?.pendingRescan&&(k=!0,await r.queries.machine.clearPendingRescan(_,C.daemon_id,a.workspaceId))}catch(e){I.log.warn("pending check failed",{daemonId:C.daemon_id,err:String(e)})}try{let e=new Date(Date.now()+3e5),t=new Date().toISOString(),n=await r.queries.meetingSession.listScheduledMeetings(_,a.workspaceId,e.toISOString());if(n.length>0){let e=n.map(e=>e.id),i=await r.queries.meetingSession.claimMeetingSessions(_,e,a.workspaceId,t);if(i.length>0){let e=new Map(n.map(e=>[e.id,e]));f=i.map(t=>{let a=e.get(t.id);return{id:t.id,meeting_url:t.meetingUrl,participants:t.participants,workspace_id:t.workspaceId,agent_id:t.agentId,agent_name:a?.agentName||"",title:a?.title||void 0}})}}}catch(e){I.log.warn("meeting-claim: failed in poll",{err:String(e)})}}try{await E(`expire_fr:${a.workspaceId}`,5,async()=>{await r.queries.workspaceFileRequest.expireStale(_,a.workspaceId)});let e=await r.queries.workspaceFileRequest.getPendingByWorkspace(_,a.workspaceId);e.length>0&&(R=e.map(e=>({id:e.id,agent_id:e.agentId,request_type:e.requestType,path:e.path})),await r.queries.workspaceFileRequest.markDispatched(_,e.map(e=>e.id)))}catch(e){I.log.warn("file-requests: poll failed",{err:String(e)})}return(0,u.writeJSON)({tasks:L,...c&&{pending_update:c},...k&&{pending_rescan:k},...R&&{file_requests:R},...f&&{meetings:f}})});e.s(["POST",0,f]),a()}catch(e){a(e)}},!1),892152,e=>e.a(async(t,a)=>{try{var n=e.i(80774),r=e.i(404478),i=e.i(732985),s=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),w=e.i(383303),m=e.i(234173),g=e.i(270215),h=e.i(830665),I=e.i(944002),k=e.i(193695);e.i(195928);var f=e.i(81543),R=e.i(620276),v=t([R]);[R]=v.then?(await v)():v;let y=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/poll/route",pathname:"/api/daemon/tasks/poll",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/poll/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:A}=y;async function _(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/daemon/tasks/poll/route";n=n.replace(/\/index$/,"")||"/";let i=await y.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,deploymentId:v,params:_,nextConfig:S,parsedUrl:E,isDraftMode:A,prerenderManifest:C,routerServerContext:q,isOnDemandRevalidate:b,revalidateOnlyGenerated:x,resolvedPathname:T,clientReferenceManifest:P,serverActionsManifest:M}=i,N=(0,d.normalizeAppPath)(n),O=!!(C.dynamicRoutes[N]||C.routes[T]),U=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!C.routes[T],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await U();throw new k.NoFallbackError}}let D=null;!O||y.isDev||A||(D=T,D="/index"===D?"/":D);let H=!0===y.isDev||!O,F=O&&!H;M&&P&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:P,serverActionsManifest:M});let $=e.method||"GET",B=(0,o.getTracer)(),L=B.getActiveScopeSpan(),K=!!(null==q?void 0:q.isWrappedByNextServer),V=!!(0,s.getRequestMeta)(e,"minimalMode"),W=(0,s.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,S,C,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let j={params:_,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>y.onRequestError(e,t,n,r,q)},sharedContext:{buildId:R,deploymentId:v}},G=new c.NodeNextRequest(e),X=new c.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let i,s=async e=>y.handle(J,j).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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(`${$} ${n}`)}),l=async i=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!V&&b&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=j.renderOpts.fetchMetrics;let o=j.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=j.renderOpts.collectedTags;if(!O)return await (0,m.sendResponse)(G,X,n,j.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[I.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==j.renderOpts.collectedRevalidate&&!(j.renderOpts.collectedRevalidate>=I.INFINITE_CACHE)&&j.renderOpts.collectedRevalidate,r=void 0===j.renderOpts.collectedExpire||j.renderOpts.collectedExpire>=I.INFINITE_CACHE?void 0:j.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:b})},!1,q),t}},c=await y.handleResponse({req:e,nextConfig:S,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:V});if(!O)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",b?"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 V&&O||u.delete(I.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,m.sendResponse)(G,X,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};K&&L?await l(L):(i=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${n}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!K))}catch(t){if(t instanceof k.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,w.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:b})},!1,q),O)throw t;return await (0,m.sendResponse)(G,X,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})},"routeModule",0,y,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,E]),a()}catch(e){a(e)}},!1)];
2
-
3
- //# sourceMappingURL=_0c9~wb-._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[385565,e=>e.a(async(t,a)=>{try{var r=e.i(291484);e.i(700598);var s=e.i(291109),n=e.i(675139),i=e.i(152327),o=e.i(776227),l=e.i(740580),d=e.i(888247),u=e.i(726089),c=e.i(799579),p=t([i]);[i]=p.then?(await p)():p;let h=(0,i.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,o.writeError)("Forbidden: machine token required",403);let{env:a}=(0,r.getCloudflareContext)(),i=(0,n.getDb)(a.DB),d=t.params?.taskId;if(!d)return(0,o.writeError)("task_id is required",400);let u=await (0,n.withD1Retry)(()=>s.queries.taskMessage.listTaskMessages(i,d,t.workspaceId));return(0,o.writeJSON)(u.map(l.taskMessageToResponse))}),m=(0,i.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,o.writeError)("Forbidden: machine token required",403);let{env:a}=(0,r.getCloudflareContext)(),i=(0,n.getDb)(a.DB),l=t.params?.taskId;if(!l)return(0,o.writeError)("task_id is required",400);if(!await (0,n.withD1Retry)(()=>s.queries.task.getTask(i,l,t.workspaceId)))return(0,o.writeError)("task not found",404);let[p,h]=await (0,o.parseBody)(e,d.ReportMessagesRequestSchema);if(h)return h;if(0===p.messages.length)return(0,o.writeJSON)({status:"ok"});let m=await Promise.allSettled(p.messages.map(e=>s.queries.taskMessage.createTaskMessage(i,{taskId:l,seq:e.seq,type:e.type,tool:e.tool||"",callId:e.call_id||"",content:e.content||"",input:e.input,output:e.output||""})));m.forEach(e=>{"rejected"===e.status&&c.log.warn("Failed to create task message",{taskId:l,err:e.reason})});let _=p.messages.filter((e,t)=>"fulfilled"===m[t].status).filter(e=>"tool-result"!==e.type);if(_.length>0){let e=_.map(e=>({id:"",task_id:l,seq:e.seq,type:e.type,tool:e.tool||"",call_id:e.call_id||"",content:e.content||"",output:e.output||"",...e.input?{input:e.input}:{}}));(0,u.broadcastToUser)(t.userId,{type:"task.messages",taskId:l,messages:e}).catch(()=>{})}return(0,o.writeJSON)({status:"ok"})});e.s(["GET",0,h,"POST",0,m]),a()}catch(e){a(e)}},!1),987930,e=>e.a(async(t,a)=>{try{var r=e.i(80774),s=e.i(404478),n=e.i(732985),i=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),u=e.i(363585),c=e.i(906846),p=e.i(359838),h=e.i(383303),m=e.i(234173),_=e.i(270215),g=e.i(830665),w=e.i(944002),R=e.i(193695);e.i(195928);var v=e.i(81543),y=e.i(385565),f=t([y]);[y]=f.then?(await f)():f;let E=new r.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/messages/route",pathname:"/api/daemon/tasks/[taskId]/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/messages/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:x}=E;async function k(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/daemon/tasks/[taskId]/messages/route";r=r.replace(/\/index$/,"")||"/";let n=await E.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:f,params:k,nextConfig:C,parsedUrl:b,isDraftMode:x,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:I,clientReferenceManifest:N,serverActionsManifest:S}=n,O=(0,d.normalizeAppPath)(r),M=!!(q.dynamicRoutes[O]||q.routes[I]),j=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!x){let e=!!q.routes[I],t=q.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await j();throw new R.NoFallbackError}}let D=null;!M||E.isDev||x||(D=I,D="/index"===D?"/":D);let H=!0===E.isDev||!M,U=M&&!H;S&&N&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:N,serverActionsManifest:S});let F=e.method||"GET",B=(0,o.getTracer)(),$=B.getActiveScopeSpan(),K=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,C,q,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let z={params:k,previewProps:q.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:H,incrementalCache:G,cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>E.onRequestError(e,t,r,s,A)},sharedContext:{buildId:y,deploymentId:f}},J=new u.NodeNextRequest(e),V=new u.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>E.handle(W,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${F} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${F} ${r}`)}),l=async n=>{var o,l;let d=async({previousCacheEntry:s})=>{try{if(!L&&T&&P&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!M)return await (0,m.sendResponse)(J,V,r,z.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,_.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,s=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==s?void 0:s.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,A),t}},u=await E.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:L});if(!M)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,_.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&M||c.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,m.sendResponse)(J,V,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};K&&$?await l($):(n=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${F} ${r}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,A),M)throw t;return await (0,m.sendResponse)(J,V,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,E,"serverHooks",0,x,"workAsyncStorage",0,C,"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=_0h6e0bb._.js.map
@@ -1,3 +0,0 @@
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})}}}])},436454,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.CompleteTaskRequestSchema);if(w)return w;let k=JSON.stringify(h),g=h.session_id||"",f=new d.TaskService(n);try{let e=await f.completeTask(p,t.workspaceId,k,g),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:"completed"}).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),591459,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(436454),v=t([I]);[I]=v.then?(await v)():v;let _=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/complete/route",pathname:"/api/daemon/tasks/[taskId]/complete",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/complete/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:R,serverHooks:E}=_;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),_.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/daemon/tasks/[taskId]/complete/route";s=s.replace(/\/index$/,"")||"/";let n=await _.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:b,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(b.adapterPath)return await K();throw new T.NoFallbackError}}let B=null;!O||_.isDev||E||(B=N,B="/index"===B?"/":B);let U=!0===_.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 _.getIncrementalCache(e,b,S,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:U,incrementalCache:Y,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>_.onRequestError(e,t,s,r,A)},sharedContext:{buildId:I,deploymentId:v}},J=new c.NodeNextRequest(e),X=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>_.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)(J,X,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 _.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),t}},c=await _.handleResponse({req:e,nextConfig:b,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)(J,X,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 _.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)(J,X,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:R})},"routeModule",0,_,"serverHooks",0,E,"workAsyncStorage",0,b,"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
-
3
- //# sourceMappingURL=_0piy2kq._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[584514,e=>{"use strict";var t=e.i(719436);e.s(["generateWorkspaceSlug",0,function(){return`studio-${(0,t.nanoid)(8)}`}])},838742,e=>e.a(async(t,r)=>{try{var a=e.i(291484);e.i(700598);var i=e.i(291109),n=e.i(675139),s=e.i(152327),o=e.i(776227),l=e.i(740580),d=e.i(888247),u=e.i(584514),c=e.i(726089),p=e.i(774078),h=e.i(799579),m=t([s]);[s]=m.then?(await m)():m;let w=(0,s.withAuth)(async(e,t)=>{let{env:r}=(0,a.getCloudflareContext)(),s=(0,n.getDb)(r.DB),[m,w]=await (0,o.parseBody)(e,d.RegisterDaemonRequestSchema);if(w)return w;let{daemon_id:v,device_name:_,cli_version:R,workspaces_root:g,runtimes:y}=m,f=m.workspace_id;if(!f&&t.workspaceId&&(f=t.workspaceId),!f){let e=await (0,n.withD1Retry)(()=>i.queries.workspace.listWorkspaces(s,t.userId));if(e.length>0)f=e[0].id;else{let e=await (0,n.withD1Retry)(()=>i.queries.workspace.createWorkspace(s,{name:"Personal",slug:(0,u.generateWorkspaceSlug)()}));await (0,n.withD1Retry)(()=>i.queries.member.createMember(s,{workspaceId:e.id,userId:t.userId,role:"owner"})),f=e.id}}if(t.workspaceId&&t.workspaceId!==f)return(0,o.writeJSON)({error:"workspace_id does not match token"},403);if(!await (0,n.withD1Retry)(()=>i.queries.member.getMemberByUserAndWorkspace(s,t.userId,f)))return(0,o.writeJSON)({error:"workspace not found"},404);try{await i.queries.machine.upsertMachine(s,{daemonId:v,workspaceId:f,deviceInfo:_.trim()})}catch(e){h.log.warn("register: machine upsert failed",{daemonId:v,err:String(e)})}let k=[];for(let e of y){let t=(e.type||e.provider||"unknown").trim(),r=e.runtime_mode||"local",a=_.trim(),o={version:e.version||"",...R?{cli_version:R}:{},...g?{workspaces_root:g}:{}},l=await (0,n.withD1Retry)(()=>i.queries.runtime.upsertAgentRuntime(s,{workspaceId:f,daemonId:v,runtimeMode:r,provider:t,deviceInfo:a,metadata:o}));k.push({...l,machineLastSeenAt:new Date().toISOString()})}return await Promise.all([(0,p.invalidate)(p.cacheKeys.runtimeIds(f,v)),(0,p.invalidate)(p.cacheKeys.allRuntimes(f))]),(0,c.broadcastToUser)(t.userId,{type:"runtime.registered",daemonId:v,hostname:_.trim(),workspaceId:f}).catch(()=>{}),(0,o.writeJSON)({runtimes:k.map(l.runtimeToResponse),workspaceId:f})});e.s(["POST",0,w]),r()}catch(e){r(e)}},!1),853961,e=>e.a(async(t,r)=>{try{var a=e.i(80774),i=e.i(404478),n=e.i(732985),s=e.i(481671),o=e.i(638081),l=e.i(204960),d=e.i(924918),u=e.i(363585),c=e.i(906846),p=e.i(359838),h=e.i(383303),m=e.i(234173),w=e.i(270215),v=e.i(830665),_=e.i(944002),R=e.i(193695);e.i(195928);var g=e.i(81543),y=e.i(838742),f=t([y]);[y]=f.then?(await f)():f;let E=new a.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/daemon/register/route",pathname:"/api/daemon/register",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/register/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=E;async function k(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/daemon/register/route";a=a.replace(/\/index$/,"")||"/";let n=await E.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:y,deploymentId:f,params:k,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:x,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:I,resolvedPathname:N,clientReferenceManifest:T,serverActionsManifest:q}=n,O=(0,d.normalizeAppPath)(a),D=!!(x.dynamicRoutes[O]||x.routes[N]),j=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!A){let e=!!x.routes[N],t=x.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await j();throw new R.NoFallbackError}}let M=null;!D||E.isDev||A||(M=N,M="/index"===M?"/":M);let U=!0===E.isDev||!D,H=D&&!U;q&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:q});let B=e.method||"GET",K=(0,o.getTracer)(),$=K.getActiveScopeSpan(),F=!!(null==S?void 0:S.isWrappedByNextServer),W=!!(0,s.getRequestMeta)(e,"minimalMode"),L=(0,s.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,C,x,W);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:k,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:L,cacheLifeProfiles:C.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,S)},sharedContext:{buildId:y,deploymentId:f}},G=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let n,s=async e=>E.handle(V,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${B} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",i),n.updateName(t))}else e.updateName(`${B} ${a}`)}),l=async n=>{var o,l;let d=async({previousCacheEntry:i})=>{try{if(!W&&P&&I&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!D)return await (0,m.sendResponse)(G,J,a,z.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[_.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=_.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,i=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,S),t}},u=await E.handleResponse({req:e,nextConfig:C,cacheKey:M,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:W});if(!D)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,w.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&D||c.delete(_.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,m.sendResponse)(G,J,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};F&&$?await l($):(n=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,S),D)throw t;return await (0,m.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,E,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b]),r()}catch(e){r(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=_0s4qnoj._.js.map
@@ -1,3 +0,0 @@
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 +0,0 @@
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
-
3
- //# sourceMappingURL=_0tarogd._.js.map
@@ -1,3 +0,0 @@
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
-
3
- //# sourceMappingURL=_0tcd35h._.js.map
@@ -1,3 +0,0 @@
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})}}}])},491607,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),l=e.i(726089),c=t([n]);[n]=c.then?(await c)():c;let u=(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),c=t.params?.taskId;if(!c)return(0,i.writeError)("task_id is required",400);let u=new d.TaskService(n);try{let e=await u.startTask(c,t.workspaceId);return(0,l.broadcastToUser)(t.userId,{type:"task.updated",taskId:c,agentId:e.agentId,status:"running"}).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,u]),a()}catch(e){a(e)}},!1),786584,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(491607),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]/start/route",pathname:"/api/daemon/tasks/[taskId]/start",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/start/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:R}=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]/start/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:E,isDraftMode:R,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,E,!1):t.end("This page could not be found"),null);if(O&&!R){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||R||(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"),R&&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: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)))}];
2
-
3
- //# sourceMappingURL=_0x0qvxd._.js.map
@@ -1,3 +0,0 @@
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,n){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...n,status:o.status});return}catch{}let o=i||a.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...n,status:t.status})}catch(e){s.warn("broadcast error",{...n,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,s){let n=r(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(n)}catch{}return n}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,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})}}}])},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 n=`sweep:${r}`,i=!1;try{i=await (0,s.throttled)(n,30,async()=>{})}catch{i=!0}if(!i)return;let o=await t.queries.task.failStaleDispatchedTasks(e,r);await t.queries.task.failStaleKillTasks(e,r);let d=[...o,...await t.queries.task.failStaleRunningTasks(e,r)];if(d.length>0){let t=new a.TaskService(e),n=new Set;for(let e of d){let a=`${e.agentId}:${e.workspaceId}`;n.has(a)||(n.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let i=new Set;for(let e of d)i.has(e.conversationId)||(i.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId));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])},450329,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(726527),i=e.i(675139),o=e.i(152327),d=e.i(47962),l=e.i(776227),c=e.i(740580),u=e.i(388335),p=e.i(774078),h=t([o]);[o]=h.then?(await h)():h;let w=(0,n.createLogger)({service:"api:runtimes"}),g=(0,o.withAuth)(async(e,t)=>{let a=await (0,d.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:n}=(0,s.getCloudflareContext)(),o=(0,i.getDb)(n.DB);try{await (0,u.sweepStaleState)(o,a.workspaceId)}catch(e){w.warn("sweepStaleState failed, continuing",{workspaceId:a.workspaceId,err:String(e)})}let h=await (0,p.cached)(p.cacheKeys.allRuntimes(a.workspaceId),120,()=>r.queries.runtime.listAgentRuntimes(o,a.workspaceId)),g=n.CACHE_KV??null;return g&&await Promise.all(h.map(async e=>{if(e.daemonId){let t=await g.get(p.cacheKeys.heartbeat(a.workspaceId,e.daemonId)).catch(()=>null);t&&(e.machineLastSeenAt=t)}})),(0,l.writeJSON)(h.map(c.runtimeToResponse))});e.s(["GET",0,g]),a()}catch(e){a(e)}},!1),496563,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),g=e.i(270215),f=e.i(830665),k=e.i(944002),T=e.i(193695);e.i(195928);var m=e.i(81543),v=e.i(450329),I=t([v]);[v]=I.then?(await I)():I;let _=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/runtimes/route",pathname:"/api/runtimes",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/runtimes/route.ts",nextConfigOutput:"standalone",userland:v,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:S,serverHooks:R}=_;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),_.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/runtimes/route";s=s.replace(/\/index$/,"")||"/";let n=await _.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:v,deploymentId:I,params:y,nextConfig:b,parsedUrl:S,isDraftMode:R,prerenderManifest:E,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,O=(0,l.normalizeAppPath)(s),q=!!(E.dynamicRoutes[O]||E.routes[N]),K=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(q&&!R){let e=!!E.routes[N],t=E.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await K();throw new T.NoFallbackError}}let $=null;!q||_.isDev||R||($=N,$="/index"===$?"/":$);let D=!0===_.isDev||!q,U=q&&!D;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let B=e.method||"GET",L=(0,o.getTracer)(),j=L.getActiveScopeSpan(),H=!!(null==A?void 0:A.isWrappedByNextServer),F=!!(0,i.getRequestMeta)(e,"minimalMode"),V=(0,i.getRequestMeta)(e,"incrementalCache")||await _.getIncrementalCache(e,b,E,F);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:V,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>_.onRequestError(e,t,s,r,A)},sharedContext:{buildId:v,deploymentId:I}},G=new c.NodeNextRequest(e),Y=new c.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>_.handle(J,W).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=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${B} ${s}`)}),d=async n=>{var o,d;let l=async({previousCacheEntry:r})=>{try{if(!F&&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=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=W.renderOpts.collectedTags;if(!q)return await (0,w.sendResponse)(G,Y,s,W.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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=k.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=k.INFINITE_CACHE?void 0:W.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 _.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:x})},!1,A),t}},c=await _.handleResponse({req:e,nextConfig:b,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:F});if(!q)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});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&q||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)(G,Y,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};H&&j?await d(j):(n=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof T.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:x})},!1,A),q)throw t;return await (0,w.sendResponse)(G,Y,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:S})},"routeModule",0,_,"serverHooks",0,R,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,S]),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=_0z.s70x._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[139723,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0});var e={getAssetToken:function(){return i},getAssetTokenQuery:function(){return j},getDeploymentId:function(){return g},getDeploymentIdQuery:function(){return h}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});function g(){return d}function h(a=!1){return d?`${a?"&":"?"}dpl=${d}`:""}function i(){return!1}function j(a=!1){return""}d=void 0},333582,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(437199);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},483865,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},302491,a=>{"use strict";var b=a.i(95133);let c="ArrowUp",d="ArrowDown",e="ArrowLeft",f="ArrowRight",g="Home",h=new Set([e,f]),i=new Set([e,f,g,"End"]),j=new Set([c,d]),k=new Set([c,d,g,"End"]),l=new Set([...h,...j]),m=new Set([...l,g,"End"]),n=new Set([c,d,e,f,g,"End"]),o=new Set(["Shift","Control","Alt","Meta"]);function p(a,b,c){let d="left"===c?"offsetLeft":"offsetTop",e=0;for(;b.offsetParent&&(e+=b[d],b.offsetParent!==a);)b=b.offsetParent;return e}function q(a){let b=getComputedStyle(a);return{scrollMarginTop:parseFloat(b.scrollMarginTop)||0,scrollMarginRight:parseFloat(b.scrollMarginRight)||0,scrollMarginBottom:parseFloat(b.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(b.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(b.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(b.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(b.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(b.scrollPaddingLeft)||0}}a.s(["ALL_KEYS",0,m,"ARROW_DOWN",0,d,"ARROW_KEYS",0,l,"ARROW_LEFT",0,e,"ARROW_RIGHT",0,f,"ARROW_UP",0,c,"COMPOSITE_KEYS",0,n,"END",0,"End","HOME",0,g,"HORIZONTAL_KEYS",0,h,"HORIZONTAL_KEYS_WITH_EXTRA_KEYS",0,i,"MODIFIER_KEYS",0,o,"VERTICAL_KEYS",0,j,"VERTICAL_KEYS_WITH_EXTRA_KEYS",0,k,"isNativeInput",0,function(a){return!!((0,b.isHTMLElement)(a)&&"INPUT"===a.tagName&&null!=a.selectionStart||(0,b.isHTMLElement)(a)&&"TEXTAREA"===a.tagName)},"scrollIntoViewIfNeeded",0,function(a,b,c,d){if(!a||!b||!b.scrollTo)return;let e=a.scrollLeft,f=a.scrollTop,g=a.clientWidth<a.scrollWidth,h=a.clientHeight<a.scrollHeight;if(g&&"vertical"!==d){let d=p(a,b,"left"),f=q(a),g=q(b);"ltr"===c&&(d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight?e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight:d-g.scrollMarginLeft<a.scrollLeft+f.scrollPaddingLeft&&(e=d-g.scrollMarginLeft-f.scrollPaddingLeft)),"rtl"===c&&(d-g.scrollMarginRight<a.scrollLeft+f.scrollPaddingLeft?e=d-g.scrollMarginLeft-f.scrollPaddingLeft:d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight&&(e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight))}if(h&&"horizontal"!==d){let c=p(a,b,"top"),d=q(a),e=q(b);c-e.scrollMarginTop<a.scrollTop+d.scrollPaddingTop?f=c-e.scrollMarginTop-d.scrollPaddingTop:c+b.offsetHeight+e.scrollMarginBottom>a.scrollTop+a.clientHeight-d.scrollPaddingBottom&&(f=c+b.offsetHeight+e.scrollMarginBottom-a.clientHeight+d.scrollPaddingBottom)}a.scrollTo({left:e,top:f,behavior:"auto"})}])},36136,a=>{"use strict";var b=a.i(437199),c=a.i(901496),d=a.i(935469);a.s(["useValueChanged",0,function(a,e){let f=b.useRef(a),g=(0,d.useStableCallback)(e);(0,c.useIsoLayoutEffect)(()=>{f.current!==a&&g(f.current)},[a,g]),(0,c.useIsoLayoutEffect)(()=>{f.current=a},[a])}])},231314,a=>{"use strict";var b=a.i(437199),c=a.i(503684),d=a.i(181749),e=a.i(792826),f=a.i(55488);let g=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);a.s(["useRole",0,function(a,h={}){let i="rootStore"in a?a.rootStore:a,j=i.useState("open"),k=i.useState("floatingId"),l=i.useState("domReferenceElement"),m=i.useState("floatingElement"),{role:n="dialog"}=h,o=(0,c.useId)(),p=l?.id||o,q=b.useMemo(()=>(0,e.getFloatingFocusElement)(m)?.id||k,[m,k]),r=g.get(n)??n,s=null!=(0,f.useFloatingParentNodeId)(),t=b.useMemo(()=>"tooltip"===r||"label"===n?d.EMPTY_OBJECT:{"aria-haspopup":"alertdialog"===r?"dialog":r,"aria-expanded":"false",..."listbox"===r&&{role:"combobox"},..."menu"===r&&s&&{role:"menuitem"},..."select"===n&&{"aria-autocomplete":"none"},..."combobox"===n&&{"aria-autocomplete":"list"}},[r,s,n]),u=b.useMemo(()=>"tooltip"===r||"label"===n?{[`aria-${"label"===n?"labelledby":"describedby"}`]:j?q:void 0}:{...t,"aria-expanded":j?"true":"false","aria-controls":j?q:void 0,..."menu"===r&&{id:p}},[r,q,j,p,n,t]),v=b.useMemo(()=>{let a={id:q,...r&&{role:r}};return"tooltip"===r||"label"===n?a:{...a,..."menu"===r&&{"aria-labelledby":p}}},[r,q,p,n]),w=b.useCallback(({active:a,selected:b})=>{let c={role:"option",...a&&{id:`${q}-fui-option`}};switch(n){case"select":case"combobox":return{...c,"aria-selected":b}}return{}},[q,n]);return b.useMemo(()=>({reference:u,floating:v,item:w,trigger:t}),[u,v,t,w])}])},197248,a=>{"use strict";var b=a.i(437199),c=a.i(55059),d=a.i(754170),e=a.i(901496);a.s(["useAnchoredPopupScrollLock",0,function(a,f,g,h){let[i,j]=b.useState(!1);(0,e.useIsoLayoutEffect)(()=>{if(!a||!f||null==g)return void j(!1);let b=(0,c.ownerDocument)(g).documentElement.clientWidth,d=g.offsetWidth;j(b>0&&d>0&&d>=b-20)},[a,f,g]),(0,d.useScrollLock)(a&&(!f||i),h)}])},986764,a=>{"use strict";var b=a.i(485177),c=a.i(437199);let d=c.createContext(void 0);a.s(["useToolbarRootContext",0,function(a){let e=c.useContext(d);if(void 0===e&&!a)throw Error((0,b.default)(69));return e}])},858767,a=>{"use strict";let b=(0,a.i(647651).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);a.s(["GitBranch",0,b],858767)},452906,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(921584);let f=(0,c.createContext)(null);a.s(["ChannelProvider",0,function({workspaceId:a,children:g}){let[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)("default"),[l,m]=(0,c.useState)(!0),[n,o]=(0,c.useState)(null),p=(0,c.useCallback)(async()=>{try{let b=await (0,d.listChannels)(a);i(b)}catch{i([])}},[a]);(0,c.useEffect)(()=>{p().finally(()=>m(!1))},[a,p]),(0,c.useEffect)(()=>{},[a,n]);let q=(0,c.useCallback)(a=>{k(a)},[a,n]),r=(0,c.useCallback)(async b=>{let c=await (0,d.createChannelApi)(a,b);return await p(),c},[a,p]),s=(0,c.useCallback)(async(b,c)=>{let e=h.find(a=>a.id===b);await (0,d.renameChannelApi)(b,a,c),e&&e.name===j&&q(c),await p()},[a,h,j,q,p]),t=(0,c.useCallback)(async b=>{let c=h.find(a=>a.id===b);await (0,d.deleteChannelApi)(b,a),c&&c.name===j&&q("default"),await p()},[a,h,j,q,p]),u=(0,c.useCallback)(async b=>{i(a=>{let c=new Map(a.map(a=>[a.id,a])),d=b.map(a=>c.get(a)).filter(a=>void 0!==a),e=new Set(b);return[...a.filter(a=>!e.has(a.id)),...d]});try{await (0,d.reorderChannelsApi)(a,b)}catch{await p(),e.toast.error("Failed to reorder channels")}},[a,p]);return(0,b.jsx)(f.Provider,{value:{channels:h,activeChannel:j,loading:l,setActiveChannel:q,setAgentId:o,createChannel:r,renameChannel:s,deleteChannel:t,reorderChannels:u,refresh:p},children:g})},"useChannel",0,function(){let a=(0,c.useContext)(f);if(!a)throw Error("useChannel must be used within a ChannelProvider");return a}])},518828,a=>{"use strict";var b=a.i(789807);a.s(["X",()=>b.default])},171492,a=>{"use strict";var b=a.i(437199);let c=(0,a.i(75118).isLocalMode)(),d=Number(process.env.NEXT_PUBLIC_WS_DO_PORT)||8789,e=Number(process.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,f=Number(process.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;a.s(["useUserWs",0,function(a){let g=(0,b.useRef)(null),h=(0,b.useRef)(e),i=(0,b.useRef)(a),j=(0,b.useRef)(null);(0,b.useEffect)(()=>{i.current=a},[a]);let k=(0,b.useRef)(null),l=(0,b.useCallback)(()=>{let a=Math.min(h.current,f);h.current=Math.min(2*a,f),j.current=setTimeout(()=>{k.current?.()},a+500*Math.random())},[]),m=(0,b.useCallback)(async()=>{let a,b,f,j=d;try{let c=await fetch("/api/ws/token");if(!c.ok){console.warn("[ws] token fetch failed:",c.status),l();return}let d=await c.json();a=d.userId,b=d.token,d.wsPort&&(j=d.wsPort)}catch(a){console.warn("[ws] token fetch error:",a),l();return}let k=c?`ws://localhost:${j}/?userId=${a}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${a}`;try{f=new WebSocket(k)}catch(a){console.warn("[ws] WebSocket creation failed:",a),l();return}g.current=f,f.onopen=()=>{h.current=e,f.send(JSON.stringify({type:"auth",token:b}))},f.onmessage=a=>{try{let b=JSON.parse(a.data);if("auth.ok"===b.type)return;i.current(b)}catch{}},f.onerror=()=>{},f.onclose=()=>{f===g.current&&l()}},[l]);(0,b.useEffect)(()=>{k.current=m},[m]),(0,b.useEffect)(()=>(m(),()=>{null!==j.current&&(clearTimeout(j.current),j.current=null);let a=g.current;g.current=null,a?.close()}),[m])}])},752792,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(921584),f=a.i(171492);let g=(0,c.createContext)(null);a.s(["AgentProvider",0,function({workspaceId:a,children:h}){let[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(!0),[o,p]=(0,c.useState)({}),[q,r]=(0,c.useState)([]),s=(0,c.useRef)(!1),[t,u]=(0,c.useState)([]),[v,w]=(0,c.useState)(new Map),[x,y]=(0,c.useState)(new Map),z=(0,c.useRef)(!1),A=(0,c.useRef)(new Set),B=(0,c.useRef)(!0),C=(0,c.useCallback)(a=>(A.current.add(a),()=>{A.current.delete(a)}),[]),D=(0,c.useRef)(!1),E=(0,c.useCallback)(async()=>{if(!D.current){D.current=!0;try{if(s.current){let b=await (0,d.listWorkspaceActiveTasks)(a);if(!B.current)return;r(b.tasks);let c={};for(let a of b.tasks)c[a.agent_id]=(c[a.agent_id]??0)+1;p(c),s.current=b.tasks.length>0}else{let b=await (0,d.listAgentActiveTaskCounts)(a);if(!B.current)return;if(p(b.counts),Object.values(b.counts).some(a=>a>0)){s.current=!0;let b=await (0,d.listWorkspaceActiveTasks)(a);B.current&&r(b.tasks)}else r([])}}catch{}finally{D.current=!1}}},[a]);(0,c.useEffect)(()=>{B.current=!0,E();let a=setInterval(E,5e3);return()=>{B.current=!1,clearInterval(a)}},[E]);let F=(0,c.useCallback)(async()=>{try{let[b,c,e,f]=await Promise.all([(0,d.listAgents)(a),(0,d.listRuntimes)(a),(0,d.listAgentPins)(a),(0,d.listAgentLinks)(a)]);j(b),l(c),u(f),w(new Map(e.pins.map(a=>[a.agent_id,{created_at:a.created_at,position:a.position}]))),y(new Map(e.sidebar_order.map(a=>[a.agent_id,a.position])))}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load data")}finally{n(!1),z.current=!0}},[a]);(0,c.useEffect)(()=>{F()},[F]);let G=(0,c.useRef)(null),H=(0,c.useCallback)(()=>{G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{G.current=null,F()},300)},[F]);(0,c.useEffect)(()=>()=>{G.current&&clearTimeout(G.current)},[]);let I=(0,c.useCallback)(b=>{for(let a of A.current)a(b);switch(b.type){case"runtime.registered":if(b.workspaceId!==a)break;F();break;case"runtime.deleted":F();break;case"runtime.status":if(b.workspaceId!==a)break;H();break;case"task.updated":E()}},[F,H,E,a]);(0,f.useUserWs)(I);let J=(0,c.useCallback)(async b=>{try{let c=await (0,d.createAgent)(b,a);return await F(),c}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to create agent"),null}},[F,a]),K=(0,c.useCallback)(async(b,c)=>{try{return await (0,d.updateAgent)(b,c,a),await F(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to update agent"),!1}},[F,a]),L=(0,c.useCallback)(async b=>{try{return await (0,d.deleteAgent)(b,a),await F(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to remove agent"),!1}},[F,a]),M=(0,c.useCallback)(async b=>{w(a=>{let c=Math.max(-1,...[...a.values()].map(a=>a.position));return new Map(a).set(b,{created_at:new Date().toISOString(),position:c+1})});try{await (0,d.pinAgent)(a,b)}catch{w(a=>{let c=new Map(a);return c.delete(b),c}),e.toast.error("Failed to pin agent")}},[a]),N=(0,c.useCallback)(async b=>{let c;w(a=>{c=a.get(b);let d=new Map(a);return d.delete(b),d});try{await (0,d.unpinAgent)(a,b)}catch{void 0!==c&&w(a=>new Map(a).set(b,c)),e.toast.error("Failed to unpin agent")}},[a]),O=(0,c.useCallback)(async b=>{let c=new Map(v);w(a=>{let c=new Map(a);return b.forEach((a,b)=>{let d=c.get(a);d&&c.set(a,{...d,position:b})}),c});try{await (0,d.reorderAgentPins)(a,b)}catch{w(c),e.toast.error("Failed to reorder pins")}},[a,v]),P=(0,c.useCallback)(async b=>{let c=new Map(x);y(new Map(b.map((a,b)=>[a,b])));try{await (0,d.reorderUnpinnedAgents)(a,b)}catch{y(c),e.toast.error("Failed to reorder agents")}},[a,x]),Q=(0,c.useCallback)(()=>{let a=k.find(a=>"online"===a.status);return a?.id??""},[k]),R=(0,c.useCallback)(async()=>{try{return(await (0,d.createMachineToken)("cli",a)).token}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to generate token"),null}},[a]),S=(0,c.useCallback)(async b=>{try{return await (0,d.deleteMachine)(b,a),await F(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to remove machine"),!1}},[F,a]);return(0,b.jsx)(g.Provider,{value:{workspaceId:a,agents:i,agentLinks:t,runtimes:k,loading:m,activeTaskCounts:o,activeTaskDetails:q,pins:v,reload:F,subscribeWs:C,handleCreateAgent:J,handleUpdateAgent:K,handleDeleteAgent:L,handlePinAgent:M,handleUnpinAgent:N,handleReorderPins:O,unpinnedOrder:x,handleReorderUnpinned:P,getFirstOnlineRuntimeId:Q,handleGenerateToken:R,handleDeleteMachine:S},children:h})},"useAgentContext",0,function(){let a=(0,c.useContext)(g);if(!a)throw Error("useAgentContext must be used within AgentProvider");return a}])},7455,a=>{"use strict";var b=a.i(749314),c=a.i(174401),d=a.i(75118),e=a.i(732254),f=a.i(73270);function g({...a}){return(0,b.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function h({className:a,...e}){return(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,d.cn)("fixed inset-0 z-50 bg-black/20 backdrop-blur-[2px] transition-[opacity,backdrop-filter] duration-200 ease-out data-ending-style:opacity-0 data-ending-style:backdrop-blur-none data-starting-style:opacity-0 data-starting-style:backdrop-blur-none",a),...e})}a.s(["Sheet",0,function({...a}){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"sheet",...a})},"SheetBody",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-body",className:(0,d.cn)("flex-1 overflow-y-auto px-4 sm:px-6 py-5",a),...c})},"SheetClose",0,function({...a}){return(0,b.jsx)(c.Dialog.Close,{"data-slot":"sheet-close",...a})},"SheetContent",0,function({className:a,children:i,side:j="right",showCloseButton:k=!0,...l}){return(0,b.jsxs)(g,{children:[(0,b.jsx)(h,{forceRender:!0}),(0,b.jsxs)(c.Dialog.Popup,{"data-slot":"sheet-content","data-side":j,className:(0,d.cn)("fixed z-50 flex flex-col bg-background shadow-xl outline-none transition duration-300 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0","data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-full data-[side=right]:max-w-md data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-10 data-[side=right]:data-starting-style:translate-x-10","data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-full data-[side=left]:max-w-md data-[side=left]:border-r data-[side=left]:data-ending-style:-translate-x-10 data-[side=left]:data-starting-style:-translate-x-10","data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:-translate-y-10 data-[side=top]:data-starting-style:-translate-y-10","data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-10 data-[side=bottom]:data-starting-style:translate-y-10",a),...l,children:[i,k&&(0,b.jsxs)(c.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(e.Button,{variant:"ghost",className:"absolute top-3 right-3 z-10",size:"icon-sm"}),children:[(0,b.jsx)(f.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,d.cn)("text-sm text-muted-foreground",a),...e})},"SheetFooter",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-footer",className:(0,d.cn)("flex flex-col-reverse gap-2 border-t bg-muted/50 px-4 sm:px-6 py-4 sm:flex-row sm:justify-end",a),...c})},"SheetHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,d.cn)("flex flex-col gap-1 border-b px-4 sm:px-6 py-5",a),...c})},"SheetTitle",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,d.cn)("font-heading text-lg leading-tight font-semibold",a),...e})},"SheetTrigger",0,function({...a}){return(0,b.jsx)(c.Dialog.Trigger,{"data-slot":"sheet-trigger",...a})}])},147344,a=>{"use strict";let b=(0,a.i(647651).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["default",0,b])},143984,a=>{"use strict";var b=a.i(147344);a.s(["ChevronRight",()=>b.default])},191525,387123,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(26822),e=a.i(464830),f=a.i(722393),g=a.i(525132),h=a.i(25668),i=a.i(75118),j=a.i(588339),k=a.i(506180);function l(a){let b=new Date(a);if(isNaN(b.getTime()))return"";let c=Math.floor((new Date().getTime()-b.getTime())/6e4);if(c<1)return"just now";if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return e<7?`${e}d ago`:b.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function m({online:a}){return(0,b.jsx)("span",{className:(0,i.cn)("size-1.5 rounded-full shrink-0",a?"bg-status-online":"bg-status-offline")})}function n({task:a,slug:c,agentId:e}){var f;let g,h="running"===a.status;return(0,b.jsxs)(d.default,{href:`/w/${c}/agents/${e}?task=${a.id}&conv=${a.conversation_id}`,className:"flex items-center gap-2 w-full py-1.5 px-2 hover:bg-muted rounded-md transition-colors cursor-pointer",children:[(0,b.jsx)("span",{className:(0,i.cn)("size-1.5 rounded-full shrink-0",h?"bg-primary animate-pulse":"bg-muted-foreground/40")}),(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(0,b.jsx)("p",{className:"text-xs truncate",children:(g=(f=a.prompt).match(/^Issue\s+iss_\w+:\s*(.+)/))?g[1].split("\n")[0]:f.split("\n")[0]})}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground whitespace-nowrap shrink-0",children:l(a.created_at)})]})}a.s(["relativeTime",0,l],387123);let o="gap-1.5 text-muted-foreground hover:text-foreground cursor-pointer";a.s(["AgentStatusBadge",0,function({isOnline:a,taskCount:l,agentId:p}){let{slug:q,workspaceId:r}=(0,k.useWorkspace)(),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(!1),[w,x]=(0,c.useState)(!1),y=(0,c.useCallback)(async()=>{t(null),v(!0),x(!1);try{let a=await (0,j.listWorkspaceActiveTasks)(r);t(a.tasks.filter(a=>a.agent_id===p))}catch{x(!0)}finally{v(!1)}},[p,r]);return a?(0,b.jsxs)(f.Popover,{onOpenChange:a=>{a&&y()},children:[(0,b.jsxs)(f.PopoverTrigger,{render:(0,b.jsx)("button",{type:"button",className:(0,i.cn)((0,e.badgeVariants)({variant:"outline"}),o),onClick:a=>a.stopPropagation()}),children:[(0,b.jsx)(m,{online:!0}),l>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"hidden sm:inline",children:"Working"}),(0,b.jsx)("span",{className:"tabular-nums",children:l})]}):(0,b.jsx)("span",{className:"hidden sm:inline text-muted-foreground/40",children:"Online"})]}),(0,b.jsx)(f.PopoverContent,{className:"w-72 p-1",children:u?(0,b.jsx)("div",{className:"p-2 space-y-1",children:Array.from({length:3}).map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2",children:[(0,b.jsx)(h.Skeleton,{className:"size-1.5 rounded-full"}),(0,b.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,b.jsx)(h.Skeleton,{className:"h-2.5 w-10"}),(0,b.jsx)(h.Skeleton,{className:"h-3 w-full"})]}),(0,b.jsx)(h.Skeleton,{className:"h-2.5 w-8"})]},c))}):w?(0,b.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Failed to load"}):s&&0!==s.length?(0,b.jsxs)("div",{className:"max-h-75 overflow-y-auto",children:[s.slice(0,6).map(a=>(0,b.jsx)(n,{task:a,slug:q,agentId:p},a.id)),s.length>6&&(0,b.jsxs)(d.default,{href:`/w/${q}/agents/${p}/activity?status=running`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",s.length," tasks"]})]}):(0,b.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No active tasks"})})]}):(0,b.jsxs)(g.Tooltip,{children:[(0,b.jsx)(g.TooltipTrigger,{render:(0,b.jsxs)(e.Badge,{variant:"outline",render:(0,b.jsx)(d.default,{href:`/w/${q}/runtimes`}),className:o,children:[(0,b.jsx)(m,{online:!1}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"Offline"})]})}),(0,b.jsx)(g.TooltipContent,{children:"Runtime offline — click to manage runtimes"})]})}],191525)}];
2
-
3
- //# sourceMappingURL=_0st8pau._.js.map