@alook/app 0.0.79 → 0.0.81

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 (152) hide show
  1. package/bundled/email-worker/index.js +33 -2
  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/{1816-z_y9qndk.js → 068.hh6m2g-gl.js} +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{0kcuw_83491vk.js → 0j2~fioc-ekva.js} +15 -15
  6. package/bundled/web/.open-next/assets/_next/static/chunks/{0ie.u1iu3pwrm.js → 0my5rezp-sbw3.js} +1 -1
  7. package/bundled/web/.open-next/cache/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/_global-error.cache +1 -1
  8. package/bundled/web/.open-next/cache/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/_not-found.cache +1 -1
  9. package/bundled/web/.open-next/cache/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/sitemap.xml.cache +1 -1
  10. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  11. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  12. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  13. package/bundled/web/.open-next/middleware/handler.mjs +7 -7
  14. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  15. package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +2 -0
  16. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  17. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +12 -0
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  32. 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
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  37. 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
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +4 -4
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/workspace/browse/route.js +4 -4
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +2 -2
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/init/route.js +4 -4
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +2 -2
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/heartbeat/route.js +14 -0
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/heartbeat/route_client-reference-manifest.js +3 -0
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/sweep/route.js +15 -0
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/sweep/route_client-reference-manifest.js +3 -0
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +1 -1
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +1 -1
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +1 -1
  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/issues/[id]/comments/route.js +1 -1
  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/studios/route.js +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +2 -0
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__04maj_8._.js +3 -0
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0_.051i._.js +1 -1
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ko5xa_._.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kruv9u._.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0l91rwj._.js +3 -0
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m5a1_f._.js +1 -1
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ntc1ld._.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0om99x0._.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +25 -23
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-7a9se._.js +3 -0
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_007pf4f._.js +3 -0
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +6 -6
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_037ndoa._.js +3 -0
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_04gp_km._.js +3 -0
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05zp0zn._.js +3 -0
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05~18bk._.js +1 -1
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08z6pkf._.js +1 -1
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_091mubc._.js +3 -0
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +6 -6
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0aveiot._.js +5 -0
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0cji8yc._.js +3 -0
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +6 -6
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0f.tk9k._.js +3 -0
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g1_3hn._.js +3 -0
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h3guve._.js +1 -1
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h_dgb9._.js +3 -0
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0hxvvdy._.js +3 -0
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ke5r~m._.js +3 -0
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l0biq~._.js +3 -0
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0oyl16-._.js +3 -0
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0pt9vvp._.js +3 -0
  101. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s~hhx-._.js +1 -1
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +6 -6
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12gxjds._.js +3 -0
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13hlohp._.js +3 -0
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0mko5ir._.js +3 -0
  106. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web__next-internal_server_app_api_daemon_heartbeat_route_actions_059pb-t.js +3 -0
  107. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web__next-internal_server_app_api_daemon_sweep_route_actions_00h1~h1.js +3 -0
  108. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +25 -23
  109. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +2 -2
  110. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ilz5db._.js +1 -1
  111. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +3 -0
  112. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +2 -2
  113. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -1
  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 +94 -58
  119. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +498 -327
  120. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
  121. package/bundled/web/wrangler.toml +1 -1
  122. package/bundled/ws-do/index.js +72 -4
  123. package/dist/cli/index.js +380 -72
  124. package/dist/cli/session-runner.js +23 -1
  125. package/dist/index.js +31 -1
  126. package/package.json +1 -1
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0y4q15f._.js +0 -3
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0--kvw_._.js +0 -3
  129. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-r4t0g._.js +0 -3
  130. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02t7kem._.js +0 -3
  131. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05_d3df._.js +0 -3
  132. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06.am62._.js +0 -3
  133. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07-798_._.js +0 -3
  134. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07zxhb2._.js +0 -3
  135. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08mdiy6._.js +0 -3
  136. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0csh82a._.js +0 -3
  137. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j.pt~7._.js +0 -3
  138. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j1t6f2._.js +0 -3
  139. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0lmedw9._.js +0 -3
  140. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ns9.qo._.js +0 -3
  141. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0piy2kq._.js +0 -3
  142. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tarogd._.js +0 -3
  143. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0u3tu2x._.js +0 -5
  144. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0x0qvxd._.js +0 -3
  145. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12wxdg1._.js +0 -3
  146. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +0 -3
  147. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_07q6-kr._.js +0 -3
  148. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0j12j81._.js +0 -3
  149. /package/bundled/web/.open-next/assets/_next/static/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/_buildManifest.js +0 -0
  150. /package/bundled/web/.open-next/assets/_next/static/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/_clientMiddlewareManifest.js +0 -0
  151. /package/bundled/web/.open-next/assets/_next/static/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/_ssgManifest.js +0 -0
  152. /package/bundled/web/.open-next/cache/{3zHg2EwefkGKUXp1h2jId → grlt3qzClfRM3yvBh9bW4}/robots.txt.cache +0 -0
@@ -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),i=e.i(774078);let o=t.queries.task,d=t.queries.agent,c=t.queries.message,l=t.queries.conversation,u=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,c){let l=await d.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),d=new Set,c=[...s],l=[];for(let e of n){if(l.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),l.push(e))}for(let e of(await Promise.all(l.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:i||null});if(!u){let t=await o.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 p=d,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:h,taskId:e});try{let e=await l.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,i){let d=await o.failTask(this.db,e,t,i);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(i){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await l.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await 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 o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await o.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await o.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 c.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 o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await c.activateNextBufferedMessage(this.db,e);if(!i)return null;let d=await l.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let u=d.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(d.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(i),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:i.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 o.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})}}}])},825526,e=>e.a(async(t,a)=>{try{var s=e.i(291484),r=e.i(675139),n=e.i(152327),i=e.i(47962),o=e.i(776227),d=e.i(740580),c=e.i(205054),l=e.i(726089),u=e.i(774078),p=t([n]);[n]=p.then?(await p)():p;let h=(0,n.withAuth)(async(e,t)=>{let a=await (0,i.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:n}=(0,s.getCloudflareContext)(),p=(0,r.getDb)(n.DB),h=t.params?.id;if(!h)return(0,o.writeError)("task id is required",400);let w=new c.TaskService(p);try{let{oldTask:e,newTask:s}=await w.retryTask(h,a.workspaceId),r=new Date().toISOString().slice(0,10);return(0,u.invalidate)(u.cacheKeys.overviewTaskStats(a.workspaceId,r)).catch(()=>{}),(0,l.broadcastToUser)(t.userId,{type:"task.updated",taskId:e.id,agentId:e.agentId,status:"superseded"}).catch(()=>{}),(0,l.broadcastToUser)(t.userId,{type:"task.updated",taskId:s.id,agentId:s.agentId,status:"queued"}).catch(()=>{}),(0,o.writeJSON)((0,d.taskToResponse)(s))}catch(e){return(0,o.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,h]),a()}catch(e){a(e)}},!1),867955,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),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),k=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var v=e.i(81543),y=e.i(825526),I=t([y]);[y]=I.then?(await I)():I;let b=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/retry/route",pathname:"/api/tasks/[id]/retry",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/tasks/[id]/retry/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:R,serverHooks:E}=b;async function m(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/tasks/[id]/retry/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:y,deploymentId:I,params:m,nextConfig:_,parsedUrl:R,isDraftMode:E,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,O=(0,c.normalizeAppPath)(s),q=!!(S.dynamicRoutes[O]||S.routes[N]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,R,!1):t.end("This page could not be found"),null);if(q&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await U();throw new T.NoFallbackError}}let K=null;!q||b.isDev||E||(K=N,K="/index"===K?"/":K);let D=!0===b.isDev||!q,$=q&&!D;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let B=e.method||"GET",j=(0,o.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==A?void 0:A.isWrappedByNextServer),F=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:m,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:D,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,A)},sharedContext:{buildId:y,deploymentId:I}},Y=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>b.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${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 c=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=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=V.renderOpts.collectedTags;if(!q)return await (0,w.sendResponse)(Y,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.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}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,k.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(Y,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await d(L):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,A),q)throw t;return await (0,w.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,m,"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=_0j1t6f2._.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),i=e.i(774078);let o=t.queries.task,d=t.queries.agent,c=t.queries.message,l=t.queries.conversation,u=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,c){let l=await d.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),d=new Set,c=[...s],l=[];for(let e of n){if(l.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),l.push(e))}for(let e of(await Promise.all(l.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:i||null});if(!u){let t=await o.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 p=d,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:h,taskId:e});try{let e=await l.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,i){let d=await o.failTask(this.db,e,t,i);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(i){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await l.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await 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 o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await o.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await o.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 c.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 o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await c.activateNextBufferedMessage(this.db,e);if(!i)return null;let d=await l.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let u=d.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(d.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(i),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:i.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 o.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})}}}])},258704,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(291109),n=e.i(675139),i=e.i(152327),o=e.i(47962),d=e.i(776227),c=e.i(740580),l=e.i(205054),u=e.i(726089),p=e.i(774078),h=t([i]);[i]=h.then?(await h)():h;let w=(0,i.withAuth)(async(e,t)=>{let a=await (0,o.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,s.getCloudflareContext)(),l=(0,n.getDb)(i.DB),u=t.params?.id;if(!u)return(0,d.writeError)("conversation id is required",400);if(!await r.queries.conversation.getConversation(l,u,a.workspaceId))return(0,d.writeError)("conversation not found",404);let p=await r.queries.task.getActiveTaskByConversation(l,u,a.workspaceId);return p?(0,d.writeJSON)((0,c.taskToResponse)(p)):new Response(null,{status:204})}),g=(0,i.withAuth)(async(e,t)=>{let a=await (0,o.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:i}=(0,s.getCloudflareContext)(),h=(0,n.getDb)(i.DB),w=t.params?.id;if(!w)return(0,d.writeError)("conversation id is required",400);if(!await r.queries.conversation.getConversation(h,w,a.workspaceId))return(0,d.writeError)("conversation not found",404);let g=new l.TaskService(h),f=await g.cancelActiveTask(w,a.workspaceId);if(!f)return(0,d.writeError)("no active task to cancel",404);let v=new Date().toISOString().slice(0,10);return(0,p.invalidate)(p.cacheKeys.overviewTaskStats(a.workspaceId,v)).catch(()=>{}),(0,u.broadcastToUser)(t.userId,{type:"task.updated",taskId:f.id,agentId:f.agentId,status:"cancelled"}).catch(()=>{}),(0,d.writeJSON)((0,c.taskToResponse)(f))});e.s(["DELETE",0,g,"GET",0,w]),a()}catch(e){a(e)}},!1),993823,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),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),f=e.i(830665),v=e.i(944002),k=e.i(193695);e.i(195928);var T=e.i(81543),m=e.i(258704),I=t([m]);[m]=I.then?(await I)():I;let b=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/active-task/route",pathname:"/api/conversations/[id]/active-task",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/active-task/route.ts",nextConfigOutput:"standalone",userland:m,...{}}),{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/conversations/[id]/active-task/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:m,deploymentId:I,params:y,nextConfig:_,parsedUrl:E,isDraftMode:R,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,O=(0,c.normalizeAppPath)(s),q=!!(S.dynamicRoutes[O]||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(q&&!R){let e=!!S.routes[N],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await K();throw new k.NoFallbackError}}let U=null;!q||b.isDev||R||(U=N,U="/index"===U?"/":U);let D=!0===b.isDev||!q,B=q&&!D;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let $=e.method||"GET",j=(0,o.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==A?void 0:A.isWrappedByNextServer),F=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:D,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,A)},sharedContext:{buildId:m,deploymentId:I}},V=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>b.handle(J,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=`${$} ${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(`${$} ${s}`)}),d=async n=>{var o,d;let c=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 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(!q)return await (0,w.sendResponse)(V,Y,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[v.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>=v.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:C})},!1,A),t}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",C?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||u.delete(v.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(V,Y,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await d(L):(n=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof k.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:C})},!1,A),q)throw t;return await (0,w.sendResponse)(V,Y,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=_0lmedw9._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,i){let n;try{let{env:a}=(0,e.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...i,status:e.status})}catch(t){s.warn("broadcast error",{...i,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let i=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(i)}catch{}return i}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),i=t.i(740580),n=t.i(774078);let o=e.queries.task,d=e.queries.agent,c=e.queries.message,l=e.queries.conversation,u=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,c){let l=await d.getAgent(this.db,t,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:t,runtimeId:l.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:i,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,n.invalidate)(n.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(t,e){let a=await d.getAgent(this.db,t,e);if(!a)return null;if(await o.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,t,e);if(!s||await o.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.claimTask(this.db,t,e);return s?(await d.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await o.claimKillTasks(this.db,t,a,e),r=e-s.length,i=r>0?await o.listPendingTasksByRuntimes(this.db,t,a):[],n=new Set(t),d=new Set,c=[...s],l=[];for(let t of i){if(l.length>=r)break;let e=`${t.agentId}:${t.workspaceId}`;d.has(e)||(d.add(e),l.push(t))}for(let t of(await Promise.all(l.map(t=>this.claimTask(t.agentId,t.workspaceId)))))t&&n.has(t.runtimeId)&&c.push(t);return c}async startTask(t,e){let a=await o.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,n){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,t,e,{result:d,sessionId:n||null});if(!u){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let h=d,k="string"==typeof h?.output?h.output:"";if(k){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:k,taskId:t});try{let t=await l.getConversation(this.db,u.conversationId,e);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(t,e,n){let d=await o.failTask(this.db,t,e,n);if(!d){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(n){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${n}`,taskId:t});try{let t=await l.getConversation(this.db,d.conversationId,e);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await u.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let n=await c.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await l.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await o.supersedeTask(this.db,t,e);if(!a){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await o.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await o.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await o.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let i=await o.cancelTask(this.db,r.id,e);return i?(("dispatched"===r.status||"running"===r.status)&&await o.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await c.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),i):null}async reconcileAgentStatus(t,e){let a=await o.countRunningTasks(this.db,t,e);await d.updateAgentStatus(this.db,t,e,a>0?"working":"idle"),(0,n.invalidate)(n.cacheKeys.activeTaskCounts(e)).catch(()=>{})}async dispatchNextBufferedMessage(t,e){let n=await c.activateNextBufferedMessage(this.db,t);if(!n)return null;let d=await l.getConversation(this.db,t,e);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await c.revertToBuffered(this.db,n.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:t})}),null;let u=d.userId;try{let s=n.attachmentIds?JSON.parse(n.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,t),h=l?.traceId??null,k=await this.enqueueTask(d.agentId,t,e,n.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,n.id,k.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:t,message:(0,i.messageToResponse)(n),task:(0,i.taskToResponse)(k)}).catch(()=>{}),k}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await c.revertToBuffered(this.db,n.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:t})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:t,messageId:n.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await o.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])},572758,t=>{t.v(e=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(e=>t.l(e))).then(()=>e(501816)))},409008,t=>{t.v(e=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(e=>t.l(e))).then(()=>e(770021)))},96318,t=>{t.v(e=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(e=>t.l(e))).then(()=>e(158195)))},11379,t=>{t.v(e=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(e=>t.l(e))).then(()=>e(302822)))},946743,t=>{t.v(e=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(e=>t.l(e))).then(()=>e(898679)))}];
2
-
3
- //# sourceMappingURL=_0ns9.qo._.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),i=e.i(774078);let o=t.queries.task,d=t.queries.agent,c=t.queries.message,l=t.queries.conversation,u=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,c){let l=await d.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),d=new Set,c=[...s],l=[];for(let e of n){if(l.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),l.push(e))}for(let e of(await Promise.all(l.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:i||null});if(!u){let t=await o.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 p=d,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:h,taskId:e});try{let e=await l.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,i){let d=await o.failTask(this.db,e,t,i);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(i){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await l.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await 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 o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await o.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await o.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 c.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 o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await c.activateNextBufferedMessage(this.db,e);if(!i)return null;let d=await l.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let u=d.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(d.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(i),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:i.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 o.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 c=e.i(888247),l=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,c.CompleteTaskRequestSchema);if(w)return w;let g=JSON.stringify(h),k=h.session_id||"",f=new d.TaskService(n);try{let e=await f.completeTask(p,t.workspaceId,g,k),a=new Date().toISOString().slice(0,10);return(0,u.invalidate)(u.cacheKeys.overviewTaskStats(t.workspaceId,a)).catch(()=>{}),(0,u.invalidateByPrefix)(u.cacheKeys.inboxCountPrefix(t.userId,t.workspaceId)).catch(()=>{}),(0,l.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),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),k=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var m=e.i(81543),v=e.i(436454),I=t([v]);[v]=I.then?(await I)():I;let b=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:v,...{}}),{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]/complete/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:v,deploymentId:I,params:y,nextConfig:_,parsedUrl:R,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,q=(0,c.normalizeAppPath)(s),K=!!(S.dynamicRoutes[q]||S.routes[N]),O=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,R,!1):t.end("This page could not be found"),null);if(K&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await O();throw new T.NoFallbackError}}let B=null;!K||b.isDev||E||(B=N,B="/index"===B?"/":B);let U=!0===b.isDev||!K,$=K&&!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==x?void 0:x.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,x)},sharedContext:{buildId:v,deploymentId:I}},J=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(J,(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 c=async({previousCacheEntry:r})=>{try{if(!L&&A&&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(!K)return await (0,w.sendResponse)(J,X,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.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:A})},!1,x),t}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:B,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:L});if(!K)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return L&&K||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,k.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(J,X,new Response(l.value.body,{headers:u,status:l.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:A})},!1,x),K)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:_,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=_0piy2kq._.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),i=e.i(774078);let o=t.queries.task,d=t.queries.agent,l=t.queries.message,c=t.queries.conversation,u=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,l){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(l?.traceId&&l.parentTaskId&&await o.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.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:l?.contextKey??null,priority:0,context:l?.context,traceId:l?.traceId??null,parentTaskId:l?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),d=new Set,l=[...s],c=[];for(let e of n){if(c.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),c.push(e))}for(let e of(await Promise.all(c.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&i.has(e.runtimeId)&&l.push(e);return l}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:i||null});if(!u){let t=await o.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 h=d,p="string"==typeof h?.output?h.output:"";if(p){let a=await l.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:p,taskId:e});try{let e=await c.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,i){let d=await o.failTask(this.db,e,t,i);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(i){let a=await l.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await c.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=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 c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await o.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await o.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),n):null}async reconcileAgentStatus(e,t){let a=await o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await l.activateNextBufferedMessage(this.db,e);if(!i)return null;let d=await c.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await l.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let u=d.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],c=await o.getLatestTaskForConversation(this.db,e),h=c?.traceId??null,p=await this.enqueueTask(d.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await l.updateMessageTaskId(this.db,i.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(i),task:(0,n.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await l.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:i.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 o.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),h=t([n]);[n]=h.then?(await h)():h;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),h=t.params?.taskId;if(!h)return(0,i.writeError)("task_id is required",400);let[p,w]=await (0,i.parseBody)(e,l.FailTaskRequestSchema);if(w)return w;let g=new d.TaskService(n);try{let e=await g.failTask(h,t.workspaceId,p.error),a=new Date().toISOString().slice(0,10);return(0,u.invalidate)(u.cacheKeys.overviewTaskStats(t.workspaceId,a)).catch(()=>{}),(0,u.invalidateByPrefix)(u.cacheKeys.inboxCountPrefix(t.userId,t.workspaceId)).catch(()=>{}),(0,c.broadcastToUser)(t.userId,{type:"task.updated",taskId:h,agentId:e.agentId,status:"failed"}).catch(()=>{}),(0,i.writeJSON)((0,o.taskToResponse)(e))}catch(e){return(0,i.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,p]),a()}catch(e){a(e)}},!1),559680,e=>e.a(async(t,a)=>{try{var s=e.i(80774),r=e.i(404478),n=e.i(732985),i=e.i(481671),o=e.i(638081),d=e.i(204960),l=e.i(924918),c=e.i(363585),u=e.i(906846),h=e.i(359838),p=e.i(383303),w=e.i(234173),g=e.i(270215),k=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var v=e.i(81543),I=e.i(410011),m=t([I]);[I]=m.then?(await m)():m;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:m,params:y,nextConfig:_,parsedUrl:R,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:M}=n,q=(0,l.normalizeAppPath)(s),K=!!(S.dynamicRoutes[q]||S.routes[N]),O=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,R,!1):t.end("This page could not be found"),null);if(K&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await O();throw new T.NoFallbackError}}let B=null;!K||b.isDev||E||(B=N,B="/index"===B?"/":B);let U=!0===b.isDev||!K,$=K&&!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==x?void 0:x.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,x)},sharedContext:{buildId:I,deploymentId:m}},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")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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&&A&&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(!K)return await (0,w.sendResponse)(X,J,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.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:v.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,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,x),t}},c=await b.handleResponse({req:e,nextConfig:_,cacheKey:B,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!K)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==v.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",A?"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,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&K||u.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,k.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(h.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,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,x),K)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,5 +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),n=e.i(774078);let o=t.queries.task,d=t.queries.agent,c=t.queries.message,l=t.queries.conversation,u=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,c){let l=await d.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,n.invalidate)(n.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],n=new Set(e),d=new Set,c=[...s],l=[];for(let e of i){if(l.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),l.push(e))}for(let e of(await Promise.all(l.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&n.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:n||null});if(!u){let t=await o.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 p=d,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:h,taskId:e});try{let e=await l.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,n){let d=await o.failTask(this.db,e,t,n);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(n){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${n}`,taskId:e});try{let e=await l.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await l.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 o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await o.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await o.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 c.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 o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,n.invalidate)(n.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let n=await c.activateNextBufferedMessage(this.db,e);if(!n)return null;let d=await l.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,n.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:e})}),null;let u=d.userId;try{let s=n.attachmentIds?JSON.parse(n.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,h=await this.enqueueTask(d.agentId,e,t,n.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,n.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(n),task:(0,i.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,n.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:n.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 o.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var r=e.i(888247),i=e.i(704024),n=e.i(291109),o=e.i(675139),d=e.i(152327),c=e.i(47962),l=e.i(776227),u=e.i(726089),p=e.i(205054),h=e.i(774078),w=t([d]);[d]=w.then?(await w)():w;let g=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,s.getCloudflareContext)(),i=(0,o.getDb)(r.DB),d=t.params?.id;if(!d)return(0,l.writeError)("issue id is required",400);if(!await n.queries.issue.getIssue(i,d,a.workspaceId))return(0,l.writeError)("issue not found",404);let u=await n.queries.issueComment.listComments(i,d,a.workspaceId);return(0,l.writeJSON)({comments:u.map(n.queries.issueComment.commentToResponse)})}),m=(0,d.withAuth)(async(e,t)=>{let a=await (0,c.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:d}=(0,s.getCloudflareContext)(),w=(0,o.getDb)(d.DB),g=t.params?.id;if(!g)return(0,l.writeError)("issue id is required",400);let m=await n.queries.issue.getIssue(w,g,a.workspaceId);if(!m)return(0,l.writeError)("issue not found",404);let f=e.nextUrl.searchParams.get("agentId");if(f&&m.agentId!==f)return(0,l.writeError)("issue does not belong to agent",403);let[k,T]=await (0,l.parseBody)(e,r.CreateIssueCommentBodySchema);if(T)return T;let I=f?"agent":"user",v=f??t.userId,y=await n.queries.issueComment.createComment(w,{issueId:g,workspaceId:a.workspaceId,authorType:I,authorId:v,content:k.content});await n.queries.issue.updateIssue(w,g,a.workspaceId,{});let b=n.queries.issueComment.commentToResponse(y);if((0,u.broadcastToUser)(m.creatorUserId,{type:"issue.comment",issueId:g,comment:b}).catch(()=>{}),"user"===I&&!(0,i.isTerminalIssueStatus)(m.status)&&m.agentId&&m.conversationId&&!await n.queries.task.getActiveTaskByConversation(w,m.conversationId,a.workspaceId)){let e=new p.TaskService(w),t=`${m.title}
2
-
3
- User feedback: "${k.content}"`;try{let s=m.latestTaskId?(await n.queries.task.getTask(w,m.latestTaskId,a.workspaceId))?.traceId??null:null,r=await e.enqueueTask(m.agentId,m.conversationId,a.workspaceId,t,i.TASK_TYPES.ISSUE_EVENT,{contextKey:m.conversationId,context:{issue_id:m.id},traceId:s,parentTaskId:null});await n.queries.issue.setLatestTask(w,g,a.workspaceId,r.id);let o=new Date().toISOString().slice(0,10);(0,h.invalidate)(h.cacheKeys.overviewTaskStats(a.workspaceId,o)).catch(()=>{})}catch{}}return(0,l.writeJSON)({comment:b},201)});e.s(["GET",0,g,"POST",0,m]),a()}catch(e){a(e)}},!1),789442,e=>e.a(async(t,a)=>{try{var s=e.i(80774),r=e.i(404478),i=e.i(732985),n=e.i(481671),o=e.i(638081),d=e.i(204960),c=e.i(924918),l=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),m=e.i(830665),f=e.i(944002),k=e.i(193695);e.i(195928);var T=e.i(81543),I=e.i(914022),v=t([I]);[I]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/issues/[id]/comments/route",pathname:"/api/issues/[id]/comments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/comments/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:R}=b;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/issues/[id]/comments/route";s=s.replace(/\/index$/,"")||"/";let i=await b.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,deploymentId:v,params:y,nextConfig:_,parsedUrl:E,isDraftMode:R,prerenderManifest:S,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:P}=i,M=(0,c.normalizeAppPath)(s),O=!!(S.dynamicRoutes[M]||S.routes[q]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!R){let e=!!S.routes[q],t=S.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await U();throw new k.NoFallbackError}}let K=null;!O||b.isDev||R||(K=q,K="/index"===K?"/":K);let B=!0===b.isDev||!O,D=O&&!B;P&&N&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:N,serverActionsManifest:P});let $=e.method||"GET",j=(0,o.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==C?void 0:C.isWrappedByNextServer),F=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,S,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:B,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>b.onRequestError(e,t,s,r,C)},sharedContext:{buildId:I,deploymentId:v}},Y=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t));try{let i,n=async e=>b.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${$} ${s}`)}),d=async i=>{var o,d;let c=async({previousCacheEntry:r})=>{try{if(!F&&A&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=V.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(Y,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:A})},!1,C),t}},l=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:x,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:F});if(!O)return null;if((null==l||null==(o=l.value)?void 0:o.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&O||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(l.cacheControl)),await (0,w.sendResponse)(Y,G,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await d(L):(i=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof k.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:A})},!1,C),O)throw t;return await (0,w.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:E})},"routeModule",0,b,"serverHooks",0,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)))}];
4
-
5
- //# sourceMappingURL=_0u3tu2x._.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),i=e.i(774078);let o=t.queries.task,d=t.queries.agent,l=t.queries.message,c=t.queries.conversation,u=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,l){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(l?.traceId&&l.parentTaskId&&await o.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.`);let u=await o.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:l?.contextKey??null,priority:0,context:l?.context,traceId:l?.traceId??null,parentTaskId:l?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await d.getAgent(this.db,e,t);if(!a)return null;if(await o.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,e,t);if(!s||await o.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.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 o.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await o.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),d=new Set,l=[...s],c=[];for(let e of n){if(c.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;d.has(t)||(d.add(t),c.push(e))}for(let e of(await Promise.all(c.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&i.has(e.runtimeId)&&l.push(e);return l}async startTask(e,t){let a=await o.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,e,t,{result:d,sessionId:i||null});if(!u){let t=await o.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 p=d,h="string"==typeof p?.output?p.output:"";if(h){let a=await l.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:h,taskId:e});try{let e=await c.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,i){let d=await o.failTask(this.db,e,t,i);if(!d){let t=await o.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(i){let a=await l.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await c.getConversation(this.db,d.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,n.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=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 c.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,n.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await o.supersedeTask(this.db,e,t);if(!a){let t=await o.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 o.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 o.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 o.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await o.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await o.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),n):null}async reconcileAgentStatus(e,t){let a=await o.countRunningTasks(this.db,e,t);await d.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await l.activateNextBufferedMessage(this.db,e);if(!i)return null;let d=await c.getConversation(this.db,e,t);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await l.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let u=d.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],c=await o.getLatestTaskForConversation(this.db,e),p=c?.traceId??null,h=await this.enqueueTask(d.agentId,e,t,i.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,i.id,h.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(i),task:(0,n.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await l.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:i.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 o.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),g=e.i(270215),k=e.i(830665),f=e.i(944002),T=e.i(193695);e.i(195928);var m=e.i(81543),v=e.i(491607),I=t([v]);[v]=I.then?(await I)():I;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:v,...{}}),{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]/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:v,deploymentId:I,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),K=!!(S.dynamicRoutes[q]||S.routes[N]),O=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,R,!1):t.end("This page could not be found"),null);if(K&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await O();throw new T.NoFallbackError}}let U=null;!K||b.isDev||E||(U=N,U="/index"===U?"/":U);let B=!0===b.isDev||!K,$=K&&!B;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:B,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:v,deploymentId:I}},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(!K)return await (0,w.sendResponse)(X,J,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.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:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!K)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,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&K||u.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,k.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),K)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=_0x0qvxd._.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),i=e.i(740580),n=e.i(774078);let d=t.queries.task,o=t.queries.agent,c=t.queries.message,l=t.queries.conversation,u=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,c){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(c?.traceId&&c.parentTaskId&&await d.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await d.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,n.invalidate)(n.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await d.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await d.findSteerableReplacement(this.db,e,t);if(!s||await d.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await d.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 d.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await d.listPendingTasksByRuntimes(this.db,e,a):[],n=new Set(e),o=new Set,c=[...s],l=[];for(let e of i){if(l.length>=r)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),l.push(e))}for(let e of(await Promise.all(l.map(e=>this.claimTask(e.agentId,e.workspaceId)))))e&&n.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await d.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,n){let o;try{o=JSON.parse(a)}catch{o={raw:a}}let u=await d.completeTask(this.db,e,t,{result:o,sessionId:n||null});if(!u){let t=await d.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 h=o,p="string"==typeof h?.output?h.output:"";if(p){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:p,taskId:e});try{let e=await l.getConversation(this.db,u.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(e,t,n){let o=await d.failTask(this.db,e,t,n);if(!o){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(o.type===a.TASK_TYPES.KILL_TASK)return o;if(n){let a=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:`Error: ${n}`,taskId:e});try{let e=await l.getConversation(this.db,o.conversationId,t);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:o.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await u.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let n=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await l.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 d.supersedeTask(this.db,e,t);if(!a){let t=await d.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 d.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 d.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 d.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await d.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await d.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 c.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 d.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,n.invalidate)(n.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let n=await c.activateNextBufferedMessage(this.db,e);if(!n)return null;let o=await l.getConversation(this.db,e,t);if(!o)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,n.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:e})}),null;let u=o.userId;try{let s=n.attachmentIds?JSON.parse(n.attachmentIds):[],l=await d.getLatestTaskForConversation(this.db,e),h=l?.traceId??null,p=await this.enqueueTask(o.agentId,e,t,n.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,n.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(n),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,n.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:n.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 d.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})}}}])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(719436),r=e.i(799579);let{listDueCalendarEvents:i,claimCalendarEvent:n,revertCalendarEventClaim:d,updateCalendarEventSchedule:o,computeNextScheduledAt:c}=t.queries.calendarEvent;async function l(e,u,h=new Date().toISOString()){let p=await i(e,u,h),g=0;for(let i of p){let l=await t.queries.agent.getAgent(e,i.agentId,i.workspaceId);if(!l){r.log.warn("calendar: agent missing, skipping",{id:i.id});continue}if(!l.runtimeId){r.log.warn("calendar: agent has no runtime, skipping",{id:i.id});continue}if(!l.ownerId){r.log.warn("calendar: agent has no owner, skipping",{id:i.id});continue}let u=i.lastTriggeredAt??null;if(await n(e,i.id,i.scheduledAt,h))try{let r=await t.queries.conversation.createConversation(e,{workspaceId:i.workspaceId,agentId:i.agentId,userId:l.ownerId,title:`[Calendar] ${i.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:r.id,role:"event",content:i.title,metadata:JSON.stringify({calendarEventId:i.id})}),await t.queries.task.createTask(e,{agentId:i.agentId,runtimeId:l.runtimeId,workspaceId:i.workspaceId,conversationId:r.id,prompt:i.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,s.nanoid)(),parentTaskId:null}),i.repeatInterval){let t=c(i.scheduledAt,i.repeatInterval,i.repeatStopAt??null,h,i.exceptions??[]);t&&await o(e,i.id,t)}g++}catch(t){r.log.warn("calendar: post-claim write failed, reverting",{id:i.id,err:String(t)});try{await d(e,i.id,u)}catch(e){r.log.error("calendar: compensating revert failed",{id:i.id,err:String(e)})}}}return g>0&&r.log.info("calendar: promoted due events",{workspaceId:u,enqueued:g}),g}e.s(["promoteDueCalendarEventsForWorkspace",0,l,"repeatStopDateToStopAt",0,function(e){let[t,a,s]=e.split("-").map(Number);if(!t||!a||!s)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,s,23,59,59,999).toISOString()}])},139733,e=>{"use strict";e.s(["semverGte",0,function(e,t){let a=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<Math.max(a.length,s.length);e++){let t=a[e]??0,r=s[e]??0;if(t>r)break;if(t<r)return!1}return!0}])},572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
2
-
3
- //# sourceMappingURL=_12wxdg1._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[776227,t=>{"use strict";var e=t.i(463421);function a(t,a){return e.NextResponse.json({error:t},{status:a})}async function s(t,s){let r;try{r=await t.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let t=(a.issues??a.errors??[]).map(t=>`${t.path.join(".")}: ${t.message}`);return[null,e.NextResponse.json({error:"validation error",details:t},{status:400})]}}t.s(["formatTimestamp",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(t){return t?("string"==typeof t?new Date(t):t).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(t,a=200){return e.NextResponse.json(t,{status:a})}])},469187,t=>{"use strict";var e=t.i(704024);t.s(["isOnline",0,function(t){if(!t)return!1;let a=new Date(t.includes("T")||t.includes("Z")||t.includes("+")?t:t+"Z").getTime();return!isNaN(a)&&Date.now()-a<e.OFFLINE_THRESHOLD_MS}])},740580,t=>{"use strict";var e=t.i(776227);t.i(700598);var a=t.i(888247),s=t.i(469187),r=t.i(704024);t.s(["agentLinkToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,source_agent_id:t.sourceAgentId,target_agent_id:t.targetAgentId,instruction:t.instruction,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"agentToResponse",0,function(t){let a=t.runtimeConfig;return a||(a={}),{id:t.id,workspace_id:t.workspaceId,runtime_id:t.runtimeId||"",name:t.name,description:t.description,instructions:t.instructions,runtime_mode:t.runtimeMode,runtime_config:a,status:t.status,max_concurrent_tasks:t.maxConcurrentTasks,email_handle:t.emailHandle||null,avatar_url:t.avatarUrl??null,visibility:t.visibility??"private",owner_id:t.ownerId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"calendarEventToResponse",0,function(t){let a=(0,e.formatTimestamp)(t.scheduledAt),s=t.occurrenceAt?(0,e.formatTimestamp)(t.occurrenceAt):a;return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,description:t.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:t.collapsedCount??null,repeat_interval:t.repeatInterval??null,repeat_stop_at:(0,e.formatTimestampNullable)(t.repeatStopAt),last_triggered_at:(0,e.formatTimestampNullable)(t.lastTriggeredAt),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"channelToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,name:t.name,position:t.position??0,created_at:(0,e.formatTimestamp)(t.createdAt)}},"conversationToResponse",0,function(t){let a={id:t.id,agent_id:t.agentId,title:t.title,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:t.channel??"default",created_at:(0,e.formatTimestamp)(t.createdAt)};return void 0!==t.messageCount&&(a.message_count=t.messageCount),a},"emailToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,from_email:t.fromEmail,to_email:t.toEmail,subject:t.subject,r2_key:t.r2Key,is_whitelisted:!!t.isWhitelisted,forwarded:!!t.forwarded,message_id:t.messageId??"",in_reply_to:t.inReplyTo??"",references:t.references??"",html_body:t.htmlBody??"",attachments:JSON.parse(t.attachments||"[]"),status:t.status??"unread",direction:t.direction??"inbound",created_at:(0,e.formatTimestamp)(t.createdAt)}},"inviteToResponse",0,function(t){return{id:t.id,token:t.token,created_by:t.createdBy,used_by:t.usedBy,expires_at:(0,e.formatTimestamp)(t.expiresAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"issueToResponse",0,function(t){return{id:t.id,workspace_id:t.workspaceId,agent_id:t.agentId,creator_user_id:t.creatorUserId,conversation_id:t.conversationId,latest_task_id:t.latestTaskId??null,title:t.title,description:t.description??"",status:t.status,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt)}},"machineTokenToResponse",0,function(t){return{id:t.id,name:t.name,last_used_at:(0,e.formatTimestampNullable)(t.lastUsedAt),created_at:(0,e.formatTimestamp)(t.createdAt)}},"meetingToResponse",0,function(t){return{id:t.id,agent_id:t.agentId,workspace_id:t.workspaceId,title:t.title,meeting_url:t.meetingUrl,status:t.status,from_email:t.fromEmail??null,is_whitelisted:!!t.isWhitelisted,participants:t.participants??[],scheduled_at:(0,e.formatTimestampNullable)(t.scheduledAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),transcript_r2_key:t.transcriptR2Key??null,summary:t.summary??null,error:t.error??null,worker_session_id:t.workerSessionId??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"memberToResponse",0,function(t){return{id:t.id,user_id:t.userId,role:t.role,name:t.userName,email:t.userEmail,image:t.userImage,created_at:(0,e.formatTimestamp)(t.createdAt)}},"messageToResponse",0,function(t){let a={id:t.id,conversation_id:t.conversationId,role:t.role,content:t.content,task_id:t.taskId||null,attachment_ids:t.attachmentIds?JSON.parse(t.attachmentIds):null,metadata:t.metadata?JSON.parse(t.metadata):null,created_at:(0,e.formatTimestamp)(t.createdAt)};return t.status&&"active"!==t.status&&(a.status=t.status),a},"runtimeToResponse",0,function(t){let a=t.metadata;a||(a={});let r=t.machineLastSeenAt??null,i=r instanceof Date?r.toISOString():r;return{id:t.id,workspace_id:t.workspaceId,daemon_id:t.daemonId||null,runtime_mode:t.runtimeMode,provider:t.provider,status:(0,s.isOnline)(i)?"online":"offline",device_info:t.deviceInfo,metadata:a,pending_update_version:t.pendingUpdateVersion??null,pending_rescan:!!t.pendingRescan,last_seen_at:(0,e.formatTimestampNullable)(r),created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"taskMessageToResponse",0,function(t){let e={id:t.id,task_id:t.taskId,seq:t.seq,type:t.type,tool:t.tool,call_id:t.callId||"",content:t.content,output:t.output};return t.input&&(e.input=t.input),e},"taskToActivityResponse",0,function(t){let a=t.prompt.length>120?t.prompt.slice(0,120):t.prompt;return{id:t.id,conversation_id:t.conversationId,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,status:t.status,prompt:a,created_at:(0,e.formatTimestamp)(t.createdAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),error:t.error||null}},"taskToResponse",0,function(t){return a.TaskApiBaseSchema.parse({id:t.id,agent_id:t.agentId,runtime_id:t.runtimeId,conversation_id:t.conversationId,workspace_id:t.workspaceId,prompt:t.prompt,type:t.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:t.contextKey??null,context:t.context??null,status:t.status,priority:t.priority,dispatched_at:(0,e.formatTimestampNullable)(t.dispatchedAt),started_at:(0,e.formatTimestampNullable)(t.startedAt),completed_at:(0,e.formatTimestampNullable)(t.completedAt),result:t.result??null,error:t.error||null,created_at:(0,e.formatTimestamp)(t.createdAt),trace_id:t.traceId??null,parent_task_id:t.parentTaskId??null})},"userToResponse",0,function(t){return{id:t.id,name:t.name,email:t.email,avatar_url:t.avatarUrl??null,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}},"workspaceToResponse",0,function(t){return{id:t.id,name:t.name,slug:t.slug,created_at:(0,e.formatTimestamp)(t.createdAt),updated_at:(0,e.formatTimestamp)(t.updatedAt)}}])},726089,t=>{"use strict";var e=t.i(291484);t.i(700598);var a=t.i(704024);let s=(0,t.i(726527).createLogger)({service:"broadcast"});async function r(t,r,i){let n;try{let{env:a}=(0,e.getCloudflareContext)();n=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${t}`,{method:"POST",body:r});if(o.ok)return;s.warn("broadcast service-binding non-ok",{...i,status:o.status});return}catch{}let o=n||a.DEV_WS_DO_URL;try{let e=await fetch(`${o}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});e.ok||s.warn("broadcast failed",{...i,status:e.status})}catch(t){s.warn("broadcast error",{...i,err:String(t)})}}t.s(["broadcastToUser",0,function(t,a){return function(t,a,s){let i=r(t,a,s);try{let{ctx:t}=(0,e.getCloudflareContext)();t.waitUntil(i)}catch{}return i}(`/broadcast/user/${t}`,JSON.stringify(a),{userId:t,type:a.type})}])},799579,t=>{"use strict";t.i(700598);let e=(0,t.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});t.s(["log",0,e])},205054,t=>{"use strict";t.i(700598);var e=t.i(291109),a=t.i(704024),s=t.i(799579),r=t.i(726089),i=t.i(740580),n=t.i(774078);let o=e.queries.task,d=e.queries.agent,c=e.queries.message,l=e.queries.conversation,u=e.queries.issue;t.s(["TaskService",0,class{db;constructor(t){this.db=t}async enqueueTask(t,e,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,c){let l=await d.getAgent(this.db,t,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(c?.traceId&&c.parentTaskId&&await o.countTasksByTrace(this.db,c.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await o.createTask(this.db,{agentId:t,runtimeId:l.runtimeId,workspaceId:s,conversationId:e,prompt:r,type:i,contextKey:c?.contextKey??null,priority:0,context:c?.context,traceId:c?.traceId??null,parentTaskId:c?.parentTaskId??null});return(0,n.invalidate)(n.cacheKeys.activeTaskCounts(s)).catch(()=>{}),u}async claimTask(t,e){let a=await d.getAgent(this.db,t,e);if(!a)return null;if(await o.countRunningTasks(this.db,t,e)>=a.maxConcurrentTasks){let s=await o.findSteerableReplacement(this.db,t,e);if(!s||await o.countRunningTasks(this.db,t,e,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await o.claimTask(this.db,t,e);return s?(await d.updateAgentStatus(this.db,t,e,"working"),s):null}async claimTasksForRuntimes(t,e,a){let s=await o.claimKillTasks(this.db,t,a,e),r=e-s.length,i=r>0?await o.listPendingTasksByRuntimes(this.db,t,a):[],n=new Set(t),d=new Set,c=[...s],l=[];for(let t of i){if(l.length>=r)break;let e=`${t.agentId}:${t.workspaceId}`;d.has(e)||(d.add(e),l.push(t))}for(let t of(await Promise.all(l.map(t=>this.claimTask(t.agentId,t.workspaceId)))))t&&n.has(t.runtimeId)&&c.push(t);return c}async startTask(t,e){let a=await o.startTask(this.db,t,e);if(!a)throw Error("task not in dispatched status");return a}async completeTask(t,e,a,n){let d;try{d=JSON.parse(a)}catch{d={raw:a}}let u=await o.completeTask(this.db,t,e,{result:d,sessionId:n||null});if(!u){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot complete task in '${a}' status`)}let m=d,p="string"==typeof m?.output?m.output:"";if(p){let a=await c.createMessage(this.db,{conversationId:u.conversationId,role:"assistant",content:p,taskId:t});try{let t=await l.getConversation(this.db,u.conversationId,e);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:u.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(u.agentId,u.workspaceId),await this.dispatchNextBufferedMessage(u.conversationId,u.workspaceId),u}async failTask(t,e,n){let d=await o.failTask(this.db,t,e,n);if(!d){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot fail task in '${a}' status`)}if(d.type===a.TASK_TYPES.KILL_TASK)return d;if(n){let a=await c.createMessage(this.db,{conversationId:d.conversationId,role:"assistant",content:`Error: ${n}`,taskId:t});try{let t=await l.getConversation(this.db,d.conversationId,e);t&&(0,r.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:d.conversationId,message:(0,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(d.agentId,d.workspaceId),await this.syncIssueStatusFromTask(d,"failed"),await this.dispatchNextBufferedMessage(d.conversationId,d.workspaceId),d}async syncIssueStatusFromTask(t,e){if(t.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,t.conversationId,t.workspaceId);if(!s||s.status===e||!await u.updateIssue(this.db,s.id,t.workspaceId,{status:e}))return;let n=await c.createMessage(this.db,{conversationId:t.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${e}`,taskId:t.id,metadata:JSON.stringify({issueId:s.id})});try{let e=await l.getConversation(this.db,t.conversationId,t.workspaceId);e&&(0,r.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:t.conversationId,message:(0,i.messageToResponse)(n)}).catch(()=>{})}catch{}}async supersedeTask(t,e){let a=await o.supersedeTask(this.db,t,e);if(!a){let e=await o.getTask(this.db,t),a=e?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:t}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(t,e){let a=await o.getTask(this.db,t);if(!a||a.workspaceId!==e)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await o.markFailedAsSuperseded(this.db,t,e);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,e,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(t,e,s){let r=await o.getActiveTaskByConversation(this.db,t,e);if(!r)return null;let i=await o.cancelTask(this.db,r.id,e);return i?(("dispatched"===r.status||"running"===r.status)&&await o.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:e,conversationId:t,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await c.createMessage(this.db,{conversationId:t,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,e),s?.skipDispatch||await this.dispatchNextBufferedMessage(t,e),i):null}async reconcileAgentStatus(t,e){let a=await o.countRunningTasks(this.db,t,e);await d.updateAgentStatus(this.db,t,e,a>0?"working":"idle"),(0,n.invalidate)(n.cacheKeys.activeTaskCounts(e)).catch(()=>{})}async dispatchNextBufferedMessage(t,e){let n=await c.activateNextBufferedMessage(this.db,t);if(!n)return null;let d=await l.getConversation(this.db,t,e);if(!d)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:t}),await c.revertToBuffered(this.db,n.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:t})}),null;let u=d.userId;try{let s=n.attachmentIds?JSON.parse(n.attachmentIds):[],l=await o.getLatestTaskForConversation(this.db,t),m=l?.traceId??null,p=await this.enqueueTask(d.agentId,t,e,n.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:t,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await c.updateMessageTaskId(this.db,n.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:t,message:(0,i.messageToResponse)(n),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(e){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:t,err:e}),await c.revertToBuffered(this.db,n.id).catch(t=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:n.id,revertErr:t})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:t,messageId:n.id,error:e instanceof Error?e.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(t,e,a){for(let r of[...new Set((await o.getTraceTree(this.db,t,e)).filter(t=>["queued","dispatched","running"].includes(t.status)).map(t=>t.conversationId))])try{await this.cancelActiveTask(r,e,{skipDispatch:!0,reason:a?.reason})}catch(e){s.log.warn("cancelTrace: failed to cancel task",{traceId:t,convId:r,err:e})}}}])}];
2
-
3
- //# sourceMappingURL=src_0q3gvkd._.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}])},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])},518828,a=>{"use strict";var b=a.i(789807);a.s(["X",()=>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=_07q6-kr._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[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,g){let h=(0,b.useRef)(null),i=(0,b.useRef)(e),j=(0,b.useRef)(a),k=(0,b.useRef)(g?.onReconnect),l=(0,b.useRef)(null),m=(0,b.useRef)(!1),n=(0,b.useRef)(0),o=(0,b.useRef)(null),p=(0,b.useRef)(null);(0,b.useEffect)(()=>{j.current=a},[a]),(0,b.useEffect)(()=>{k.current=g?.onReconnect},[g?.onReconnect]);let q=(0,b.useRef)(null),r=(0,b.useCallback)(()=>{let a=Math.min(i.current,f);i.current=Math.min(2*a,f),l.current=setTimeout(()=>{q.current?.()},a+500*Math.random())},[]),s=(0,b.useCallback)(async()=>{let a,b,f,g=d;try{let c=await fetch("/api/ws/token");if(!c.ok){console.warn("[ws] token fetch failed:",c.status),r();return}let d=await c.json();a=d.userId,b=d.token,d.wsPort&&(g=d.wsPort)}catch(a){console.warn("[ws] token fetch error:",a),r();return}let l=c?`ws://localhost:${g}/?userId=${a}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${a}`;try{f=new WebSocket(l)}catch(a){console.warn("[ws] WebSocket creation failed:",a),r();return}h.current=f,f.onopen=()=>{i.current=e,f.send(JSON.stringify({type:"auth",token:b})),m.current&&k.current?.(),m.current=!0,n.current=Date.now(),o.current=setInterval(()=>{f.readyState===WebSocket.OPEN&&f.send("ping")},25e3),p.current=setInterval(()=>{Date.now()-n.current>3e4&&f.close()},5e3)},f.onmessage=a=>{n.current=Date.now();try{let b=JSON.parse(a.data);if("auth.ok"===b.type)return;j.current(b)}catch{}},f.onerror=()=>{},f.onclose=()=>{f===h.current&&(o.current&&(clearInterval(o.current),o.current=null),p.current&&(clearInterval(p.current),p.current=null),r())}},[r]);(0,b.useEffect)(()=>{q.current=s},[s]),(0,b.useEffect)(()=>(s(),()=>{null!==l.current&&(clearTimeout(l.current),l.current=null),o.current&&(clearInterval(o.current),o.current=null),p.current&&(clearInterval(p.current),p.current=null);let a=h.current;h.current=null,a?.close()}),[s])}])},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.useRef)(!1),D=(0,c.useCallback)(a=>(A.current.add(a),()=>{A.current.delete(a)}),[]),E=(0,c.useRef)(!1),F=(0,c.useCallback)(async()=>{if(!E.current){E.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{E.current=!1}}},[a]);(0,c.useEffect)(()=>{B.current=!0,F();let a=setInterval(F,15e3);return()=>{B.current=!1,clearInterval(a)}},[F]);let G=(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]),H=(0,c.useCallback)(async()=>{if(!C.current){C.current=!0;try{let b=await (0,d.listRuntimes)(a);l(b)}catch{}finally{C.current=!1}}},[a]);(0,c.useEffect)(()=>{G()},[G]),(0,c.useEffect)(()=>{let a=null,b=setInterval(()=>{"visible"===document.visibilityState&&H()},3e4),c=()=>{"visible"===document.visibilityState&&(a=setTimeout(()=>H(),2e3*Math.random()))};return document.addEventListener("visibilitychange",c),()=>{clearInterval(b),a&&clearTimeout(a),document.removeEventListener("visibilitychange",c)}},[H]);let I=(0,c.useRef)(null),J=(0,c.useCallback)(()=>{I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null,G()},300)},[G]);(0,c.useEffect)(()=>()=>{I.current&&clearTimeout(I.current)},[]);let K=(0,c.useCallback)(b=>{for(let a of A.current)a(b);switch(b.type){case"runtime.registered":if(b.workspaceId!==a)break;G();break;case"runtime.deleted":G();break;case"runtime.status":if(b.workspaceId!==a)break;J();break;case"task.updated":F()}},[G,J,F,a]);(0,f.useUserWs)(K,{onReconnect:H});let L=(0,c.useCallback)(async b=>{try{let c=await (0,d.createAgent)(b,a);return await G(),c}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to create agent"),null}},[G,a]),M=(0,c.useCallback)(async(b,c)=>{try{return await (0,d.updateAgent)(b,c,a),await G(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to update agent"),!1}},[G,a]),N=(0,c.useCallback)(async b=>{try{return await (0,d.deleteAgent)(b,a),await G(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to remove agent"),!1}},[G,a]),O=(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]),P=(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]),Q=(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]),R=(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]),S=(0,c.useCallback)(()=>{let a=k.find(a=>"online"===a.status);return a?.id??""},[k]),T=(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]),U=(0,c.useCallback)(async b=>{try{return await (0,d.deleteMachine)(b,a),await G(),!0}catch(a){return e.toast.error(a instanceof Error?a.message:"Failed to remove machine"),!1}},[G,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:G,subscribeWs:D,handleCreateAgent:L,handleUpdateAgent:M,handleDeleteAgent:N,handlePinAgent:O,handleUnpinAgent:P,handleReorderPins:Q,unpinnedOrder:x,handleReorderUnpinned:R,getFirstOnlineRuntimeId:S,handleGenerateToken:T,handleDeleteMachine:U},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})}])}];
2
-
3
- //# sourceMappingURL=src_web_src_0j12j81._.js.map