@alook/app 0.0.25 → 0.0.27

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 (49) hide show
  1. package/bundled/web/.open-next/.build/durable-objects/queue.js +4 -4
  2. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  3. package/bundled/web/.open-next/cache/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/_global-error.cache +1 -1
  4. package/bundled/web/.open-next/cache/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/_not-found.cache +1 -1
  5. package/bundled/web/.open-next/cache/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/sitemap.xml.cache +1 -1
  6. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  7. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  8. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  9. package/bundled/web/.open-next/middleware/handler.mjs +2 -2
  10. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  11. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  12. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-22391._.js +1 -1
  13. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0.vfmip._.js +1 -1
  14. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_018di6j._.js +1 -1
  15. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05mkm05._.js +1 -1
  16. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05t_tvs._.js +1 -1
  17. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06j7byr._.js +1 -1
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_094sp1w._.js +1 -1
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09egrjz._.js +1 -1
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09twg0j._.js +1 -1
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0a_02v1._.js +1 -1
  22. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0av05ao._.js +1 -1
  23. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0dajh_g._.js +1 -1
  24. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0dxfkbl._.js +1 -1
  25. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0edx130._.js +1 -1
  26. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0euvrn9._.js +1 -1
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h1-_48._.js +1 -1
  28. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0iyza7b._.js +1 -1
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jo981d._.js +1 -1
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mvym74._.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0n.jaqy._.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0qz~dij._.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0sf57qo._.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0xkjukg._.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zzdc3u._.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0~8mo49._.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0~~ji83._.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13_kcb9._.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +14 -14
  42. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +114 -114
  43. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +2 -2
  44. package/dist/index.js +23 -1
  45. package/package.json +1 -1
  46. /package/bundled/web/.open-next/assets/_next/static/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/_buildManifest.js +0 -0
  47. /package/bundled/web/.open-next/assets/_next/static/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/_clientMiddlewareManifest.js +0 -0
  48. /package/bundled/web/.open-next/assets/_next/static/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/_ssgManifest.js +0 -0
  49. /package/bundled/web/.open-next/cache/{2OctF2RkN0qz45H0AgmU2 → 9WEyRhiyqbWSPRNw0zGd1}/robots.txt.cache +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[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])},776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(704024);function r(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<s.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,r],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let s=e.machineLastSeenAt??null,n=s instanceof Date?s.toISOString():s;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:r(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(s),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);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)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)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)})}}async function n(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,n])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,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,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,u="string"==typeof l?.output?l.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await u.updateIssue(this.db,s.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let u=await l.getConversation(this.db,e,t);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let c=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(u.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,r.broadcastToUser)(c,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(c,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},559680,e=>{"use strict";var t=e.i(80774),a=e.i(404478),s=e.i(732985),r=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),h=e.i(830665),f=e.i(944002),_=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(194218),w=e.i(675139),k=e.i(152327),I=e.i(776227),v=e.i(740580),y=e.i(205054);e.i(700598);var A=e.i(888247),b=e.i(726089);let R=(0,k.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,I.writeError)("Forbidden: machine token required",403);let{env:a}=(0,g.getCloudflareContext)(),s=(0,w.getDb)(a.DB),r=t.params?.taskId;if(!r)return(0,I.writeError)("task_id is required",400);let[n,i]=await (0,I.parseBody)(e,A.FailTaskRequestSchema);if(i)return i;let o=new y.TaskService(s);try{let e=await o.failTask(r,t.workspaceId,n.error);return(0,b.broadcastToUser)(t.userId,{type:"task.updated",taskId:r,agentId:e.agentId,status:"failed"}).catch(()=>{}),(0,I.writeJSON)((0,v.taskToResponse)(e))}catch(e){return(0,I.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,R],410011);var S=e.i(410011);let E=new t.AppRouteRouteModule({definition:{kind:a.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:S,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:N,serverHooks:C}=E;async function M(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),E.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/daemon/tasks/[taskId]/fail/route";g=g.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=w,P=(0,o.normalizeAppPath)(g),q=!!(R.dynamicRoutes[P]||R.routes[C]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!R.routes[C],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new _.NoFallbackError}}let D=null;!q||E.isDev||b||(D="/index"===(D=C)?"/":D);let K=!0===E.isDev||!q,B=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:M,serverActionsManifest:O});let j=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,y,R,F);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:Y,cacheLifeProfiles:y.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>E.onRequestError(e,t,s,r,S)},sharedContext:{buildId:k,deploymentId:I}},J=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>E.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${j} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${j} ${g}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&x&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,W,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.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,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:x})},!1,S),t}},l=await E.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.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,h.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(J,W,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:x})},!1,S),q)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:N})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,N],559680)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
1
+ module.exports=[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])},776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(704024);function r(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<s.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,r],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let s=e.machineLastSeenAt??null,n=s instanceof Date?s.toISOString():s;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:r(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(s),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);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)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)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})}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,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,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,u="string"==typeof l?.output?l.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await u.updateIssue(this.db,s.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let u=await l.getConversation(this.db,e,t);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let c=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(u.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,r.broadcastToUser)(c,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(c,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},559680,e=>{"use strict";var t=e.i(80774),a=e.i(404478),s=e.i(732985),r=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),f=e.i(830665),h=e.i(944002),_=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(194218),w=e.i(675139),k=e.i(152327),I=e.i(776227),v=e.i(740580),y=e.i(205054);e.i(700598);var A=e.i(888247),b=e.i(726089);let R=(0,k.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,I.writeError)("Forbidden: machine token required",403);let{env:a}=(0,g.getCloudflareContext)(),s=(0,w.getDb)(a.DB),r=t.params?.taskId;if(!r)return(0,I.writeError)("task_id is required",400);let[n,i]=await (0,I.parseBody)(e,A.FailTaskRequestSchema);if(i)return i;let o=new y.TaskService(s);try{let e=await o.failTask(r,t.workspaceId,n.error);return(0,b.broadcastToUser)(t.userId,{type:"task.updated",taskId:r,agentId:e.agentId,status:"failed"}).catch(()=>{}),(0,I.writeJSON)((0,v.taskToResponse)(e))}catch(e){return(0,I.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,R],410011);var S=e.i(410011);let E=new t.AppRouteRouteModule({definition:{kind:a.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:S,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:N,serverHooks:C}=E;async function M(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),E.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/daemon/tasks/[taskId]/fail/route";g=g.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=w,P=(0,o.normalizeAppPath)(g),q=!!(R.dynamicRoutes[P]||R.routes[C]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!R.routes[C],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new _.NoFallbackError}}let D=null;!q||E.isDev||b||(D="/index"===(D=C)?"/":D);let K=!0===E.isDev||!q,B=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:M,serverActionsManifest:O});let j=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,y,R,F);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:Y,cacheLifeProfiles:y.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>E.onRequestError(e,t,s,r,S)},sharedContext:{buildId:k,deploymentId:I}},J=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>E.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${j} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${j} ${g}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&x&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,W,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.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>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:x})},!1,S),t}},l=await E.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||u.delete(h.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,p.sendResponse)(J,W,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:x})},!1,S),q)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:N})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,N],559680)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
2
2
 
3
3
  //# sourceMappingURL=_094sp1w._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[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])},776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(704024);function r(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<s.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,r],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let s=e.machineLastSeenAt??null,n=s instanceof Date?s.toISOString():s;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:r(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(s),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);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)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)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)})}}async function n(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,n])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,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,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,u="string"==typeof l?.output?l.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await u.updateIssue(this.db,s.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let u=await l.getConversation(this.db,e,t);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let c=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(u.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,r.broadcastToUser)(c,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(c,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},256639,e=>{"use strict";var t=e.i(80774),a=e.i(404478),s=e.i(732985),r=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),h=e.i(830665),_=e.i(944002),f=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(194218),w=e.i(675139),k=e.i(152327),I=e.i(776227),v=e.i(740580),y=e.i(205054),A=e.i(726089);let b=(0,k.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,I.writeError)("Forbidden: machine token required",403);let{env:a}=(0,g.getCloudflareContext)(),s=(0,w.getDb)(a.DB),r=t.params?.taskId;if(!r)return(0,I.writeError)("task_id is required",400);let n=new y.TaskService(s);try{let e=await n.supersedeTask(r,t.workspaceId);return(0,A.broadcastToUser)(t.userId,{type:"task.updated",taskId:r,agentId:e.agentId,status:"superseded"}).catch(()=>{}),(0,I.writeJSON)((0,v.taskToResponse)(e))}catch(e){return(0,I.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,b],754748);var R=e.i(754748);let S=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/supersede/route",pathname:"/api/daemon/tasks/[taskId]/supersede",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/supersede/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:x,serverHooks:N}=S;async function C(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),S.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/daemon/tasks/[taskId]/supersede/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:R,routerServerContext:E,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=w,P=(0,o.normalizeAppPath)(g),q=!!(R.dynamicRoutes[P]||R.routes[C]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!R.routes[C],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new f.NoFallbackError}}let D=null;!q||S.isDev||b||(D="/index"===(D=C)?"/":D);let K=!0===S.isDev||!q,j=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:M,serverActionsManifest:O});let B=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,y,R,F);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:Y,cacheLifeProfiles:y.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>S.onRequestError(e,t,s,r,E)},sharedContext:{buildId:k,deploymentId:I}},J=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>S.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${B} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${B} ${g}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&x&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,W,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[_.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>=_.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==a?void 0:a.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,E),t}},l=await S.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||u.delete(_.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(J,W,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof f.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,E),q)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:x})},"routeModule",0,S,"serverHooks",0,N,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,x],256639)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
1
+ module.exports=[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])},776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(704024);function r(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<s.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,r],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let s=e.machineLastSeenAt??null,n=s instanceof Date?s.toISOString():s;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:r(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(s),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);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)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)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})}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,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,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,u="string"==typeof l?.output?l.output:"";return u&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:u,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await u.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await u.updateIssue(this.db,s.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let u=await l.getConversation(this.db,e,t);if(!u)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let c=u.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(u.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,r.broadcastToUser)(c,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(c,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},256639,e=>{"use strict";var t=e.i(80774),a=e.i(404478),s=e.i(732985),r=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),m=e.i(270215),h=e.i(830665),_=e.i(944002),f=e.i(193695);e.i(195928);var T=e.i(81543),g=e.i(194218),w=e.i(675139),k=e.i(152327),I=e.i(776227),v=e.i(740580),y=e.i(205054),A=e.i(726089);let b=(0,k.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,I.writeError)("Forbidden: machine token required",403);let{env:a}=(0,g.getCloudflareContext)(),s=(0,w.getDb)(a.DB),r=t.params?.taskId;if(!r)return(0,I.writeError)("task_id is required",400);let n=new y.TaskService(s);try{let e=await n.supersedeTask(r,t.workspaceId);return(0,A.broadcastToUser)(t.userId,{type:"task.updated",taskId:r,agentId:e.agentId,status:"superseded"}).catch(()=>{}),(0,I.writeJSON)((0,v.taskToResponse)(e))}catch(e){return(0,I.writeError)(e instanceof Error?e.message:"Unknown error",400)}});e.s(["POST",0,b],754748);var R=e.i(754748);let S=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/daemon/tasks/[taskId]/supersede/route",pathname:"/api/daemon/tasks/[taskId]/supersede",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/tasks/[taskId]/supersede/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:x,serverHooks:N}=S;async function C(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),S.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/daemon/tasks/[taskId]/supersede/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:R,routerServerContext:E,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=w,P=(0,o.normalizeAppPath)(g),q=!!(R.dynamicRoutes[P]||R.routes[C]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!R.routes[C],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new f.NoFallbackError}}let D=null;!q||S.isDev||b||(D="/index"===(D=C)?"/":D);let K=!0===S.isDev||!q,j=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:M,serverActionsManifest:O});let B=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),Y=(0,r.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,y,R,F);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let G={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:Y,cacheLifeProfiles:y.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>S.onRequestError(e,t,s,r,E)},sharedContext:{buildId:k,deploymentId:I}},J=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>S.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${B} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${B} ${g}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&x&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,W,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[_.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>=_.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:T.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==a?void 0:a.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,E),t}},l=await S.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==T.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",x?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||u.delete(_.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(J,W,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof f.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,E),q)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:x})},"routeModule",0,S,"serverHooks",0,N,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,x],256639)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
2
2
 
3
3
  //# sourceMappingURL=_09egrjz._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function s(e,s){let r;try{r=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[s.parse(r),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,s,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(194218);e.i(700598);var s=e.i(291109),r=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),l=(0,r.getDb)(d.DB),c=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(l,i.userId,o));return c||i.workspaceId!==o?c?{workspaceId:o,memberRole:c.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await i(e,a);return s instanceof t.NextResponse?s:"owner"!==s.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):s}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),s=e.i(704024);function r(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<s.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,r],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),s=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:s,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let s=e.machineLastSeenAt??null,n=s instanceof Date?s.toISOString():s;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:r(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(s),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??s.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);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)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)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)})}}async function n(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,n])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,c=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let l=await o.getAgent(this.db,e,s);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await i.findSteerableReplacement(this.db,e,t);if(!s||await i.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await i.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await i.claimKillTasks(this.db,e,a,t),r=t-s.length,n=r>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...s];for(let e of n){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),r--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:r||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,c="string"==typeof l?.output?l.output:"";return c&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:c,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let n=await i.failTask(this.db,e,t,r);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await c.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await c.updateIssue(this.db,s.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await i.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await i.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let n=await i.cancelTask(this.db,r.id,t);return n?(("dispatched"===r.status||"running"===r.status)&&await i.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let c=await l.getConversation(this.db,e,t);if(!c)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=c.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(c.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},993823,e=>{"use strict";var t=e.i(80774),a=e.i(404478),s=e.i(732985),r=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),c=e.i(359838),u=e.i(383303),p=e.i(234173),m=e.i(270215),h=e.i(830665),f=e.i(944002),_=e.i(193695);e.i(195928);var w=e.i(81543),T=e.i(194218);e.i(700598);var g=e.i(291109),k=e.i(675139),v=e.i(152327),I=e.i(47962),y=e.i(776227),b=e.i(740580),R=e.i(205054),A=e.i(726089);let E=(0,v.withAuth)(async(e,t)=>{let a=await (0,I.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,k.getDb)(s.DB),n=t.params?.id;if(!n)return(0,y.writeError)("conversation id is required",400);if(!await g.queries.conversation.getConversation(r,n,a.workspaceId))return(0,y.writeError)("conversation not found",404);let i=await g.queries.task.getActiveTaskByConversation(r,n,a.workspaceId);return i?(0,y.writeJSON)((0,b.taskToResponse)(i)):new Response(null,{status:204})}),S=(0,v.withAuth)(async(e,t)=>{let a=await (0,I.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,k.getDb)(s.DB),n=t.params?.id;if(!n)return(0,y.writeError)("conversation id is required",400);if(!await g.queries.conversation.getConversation(r,n,a.workspaceId))return(0,y.writeError)("conversation not found",404);let i=new R.TaskService(r),o=await i.cancelActiveTask(n,a.workspaceId);return o?((0,A.broadcastToUser)(t.userId,{type:"task.updated",taskId:o.id,agentId:o.agentId,status:"cancelled"}).catch(()=>{}),(0,y.writeJSON)((0,b.taskToResponse)(o))):(0,y.writeError)("no active task to cancel",404)});e.s(["DELETE",0,S,"GET",0,E],258704);var x=e.i(258704);let N=new t.AppRouteRouteModule({definition:{kind:a.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:x,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:M,serverHooks:O}=N;async function P(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),N.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/conversations/[id]/active-task/route";T=T.replace(/\/index$/,"")||"/";let g=await N.prepare(e,t,{srcPage:T,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:k,deploymentId:v,params:I,nextConfig:y,parsedUrl:b,isDraftMode:R,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:S,revalidateOnlyGenerated:x,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=g,P=(0,o.normalizeAppPath)(T),q=!!(A.dynamicRoutes[P]||A.routes[C]),D=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!R){let e=!!A.routes[C],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await D();throw new _.NoFallbackError}}let U=null;!q||N.isDev||R||(U="/index"===(U=C)?"/":U);let K=!0===N.isDev||!q,j=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:T,clientReferenceManifest:M,serverActionsManifest:O});let B=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),W=(0,r.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,y,A,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:I,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:W,cacheLifeProfiles:y.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,r)=>N.onRequestError(e,t,s,r,E)},sharedContext:{buildId:k,deploymentId:v}},J=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>N.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=a.get("next.route");if(s){let t=`${B} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",s),r.updateName(t))}else e.updateName(`${B} ${T}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&S&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,Y,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.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,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:s}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,E),t}},l=await N.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",S?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||c.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(J,Y,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${B} ${T}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,E),q)throw t;return await (0,p.sendResponse)(J,Y,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:M})},"routeModule",0,N,"serverHooks",0,O,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,M],993823)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let s;try{s=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(s),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(194218);e.i(700598);var r=e.i(291109),s=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),l=(0,s.getDb)(d.DB),c=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(l,i.userId,o));return c||i.workspaceId!==o?c?{workspaceId:o,memberRole:c.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let r=await i(e,a);return r instanceof t.NextResponse?r:"owner"!==r.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):r}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},740580,469187,e=>{"use strict";var t=e.i(776227);e.i(700598);var a=e.i(888247),r=e.i(704024);function s(e){if(!e)return!1;let t=new Date(e.includes("T")||e.includes("Z")||e.includes("+")?e:e+"Z").getTime();return!isNaN(t)&&Date.now()-t<r.OFFLINE_THRESHOLD_MS}e.s(["isOnline",0,s],469187),e.s(["agentLinkToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,source_agent_id:e.sourceAgentId,target_agent_id:e.targetAgentId,instruction:e.instruction,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"agentToResponse",0,function(e){let a=e.runtimeConfig;return a||(a={}),{id:e.id,workspace_id:e.workspaceId,runtime_id:e.runtimeId||"",name:e.name,description:e.description,instructions:e.instructions,runtime_mode:e.runtimeMode,runtime_config:a,status:e.status,max_concurrent_tasks:e.maxConcurrentTasks,email_handle:e.emailHandle||null,avatar_url:e.avatarUrl??null,visibility:e.visibility??"private",owner_id:e.ownerId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"calendarEventToResponse",0,function(e){let a=(0,t.formatTimestamp)(e.scheduledAt),r=e.occurrenceAt?(0,t.formatTimestamp)(e.occurrenceAt):a;return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,description:e.description??null,scheduled_at:a,occurrence_at:r,collapsed_count:e.collapsedCount??null,repeat_interval:e.repeatInterval??null,repeat_stop_at:(0,t.formatTimestampNullable)(e.repeatStopAt),last_triggered_at:(0,t.formatTimestampNullable)(e.lastTriggeredAt),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"channelToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,name:e.name,created_at:(0,t.formatTimestamp)(e.createdAt)}},"conversationToResponse",0,function(e){let a={id:e.id,agent_id:e.agentId,title:e.title,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,channel:e.channel??"default",created_at:(0,t.formatTimestamp)(e.createdAt)};return void 0!==e.messageCount&&(a.message_count=e.messageCount),a},"emailToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,from_email:e.fromEmail,to_email:e.toEmail,subject:e.subject,r2_key:e.r2Key,is_whitelisted:!!e.isWhitelisted,forwarded:!!e.forwarded,message_id:e.messageId??"",in_reply_to:e.inReplyTo??"",references:e.references??"",html_body:e.htmlBody??"",attachments:JSON.parse(e.attachments||"[]"),status:e.status??"unread",direction:e.direction??"inbound",created_at:(0,t.formatTimestamp)(e.createdAt)}},"inviteToResponse",0,function(e){return{id:e.id,token:e.token,created_by:e.createdBy,used_by:e.usedBy,expires_at:(0,t.formatTimestamp)(e.expiresAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"issueToResponse",0,function(e){return{id:e.id,workspace_id:e.workspaceId,agent_id:e.agentId,creator_user_id:e.creatorUserId,conversation_id:e.conversationId,latest_task_id:e.latestTaskId??null,title:e.title,description:e.description??"",status:e.status,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt)}},"machineTokenToResponse",0,function(e){return{id:e.id,name:e.name,last_used_at:(0,t.formatTimestampNullable)(e.lastUsedAt),created_at:(0,t.formatTimestamp)(e.createdAt)}},"meetingToResponse",0,function(e){return{id:e.id,agent_id:e.agentId,workspace_id:e.workspaceId,title:e.title,meeting_url:e.meetingUrl,status:e.status,from_email:e.fromEmail??null,is_whitelisted:!!e.isWhitelisted,participants:e.participants??[],scheduled_at:(0,t.formatTimestampNullable)(e.scheduledAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),transcript_r2_key:e.transcriptR2Key??null,summary:e.summary??null,error:e.error??null,worker_session_id:e.workerSessionId??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"memberToResponse",0,function(e){return{id:e.id,user_id:e.userId,role:e.role,name:e.userName,email:e.userEmail,image:e.userImage,created_at:(0,t.formatTimestamp)(e.createdAt)}},"messageToResponse",0,function(e){let a={id:e.id,conversation_id:e.conversationId,role:e.role,content:e.content,task_id:e.taskId||null,attachment_ids:e.attachmentIds?JSON.parse(e.attachmentIds):null,metadata:e.metadata?JSON.parse(e.metadata):null,created_at:(0,t.formatTimestamp)(e.createdAt)};return e.status&&"active"!==e.status&&(a.status=e.status),a},"runtimeToResponse",0,function(e){let a=e.metadata;a||(a={});let r=e.machineLastSeenAt??null,n=r instanceof Date?r.toISOString():r;return{id:e.id,workspace_id:e.workspaceId,daemon_id:e.daemonId||null,runtime_mode:e.runtimeMode,provider:e.provider,status:s(n)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(r),created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"taskMessageToResponse",0,function(e){let t={id:e.id,task_id:e.taskId,seq:e.seq,type:e.type,tool:e.tool,call_id:e.callId||"",content:e.content,output:e.output};return e.input&&(t.input=e.input),t},"taskToActivityResponse",0,function(e){let a=e.prompt.length>120?e.prompt.slice(0,120):e.prompt;return{id:e.id,conversation_id:e.conversationId,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,status:e.status,prompt:a,created_at:(0,t.formatTimestamp)(e.createdAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),error:e.error||null}},"taskToResponse",0,function(e){return a.TaskApiBaseSchema.parse({id:e.id,agent_id:e.agentId,runtime_id:e.runtimeId,conversation_id:e.conversationId,workspace_id:e.workspaceId,prompt:e.prompt,type:e.type??r.TASK_TYPES.USER_DM_MESSAGE,context_key:e.contextKey??null,context:e.context??null,status:e.status,priority:e.priority,dispatched_at:(0,t.formatTimestampNullable)(e.dispatchedAt),started_at:(0,t.formatTimestampNullable)(e.startedAt),completed_at:(0,t.formatTimestampNullable)(e.completedAt),result:e.result??null,error:e.error||null,created_at:(0,t.formatTimestamp)(e.createdAt),trace_id:e.traceId??null,parent_task_id:e.parentTaskId??null})},"userToResponse",0,function(e){return{id:e.id,name:e.name,email:e.email,avatar_url:e.avatarUrl??null,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}},"workspaceToResponse",0,function(e){return{id:e.id,name:e.name,slug:e.slug,created_at:(0,t.formatTimestamp)(e.createdAt),updated_at:(0,t.formatTimestamp)(e.updatedAt)}}],740580)},726089,e=>{"use strict";var t=e.i(194218);e.i(700598);var a=e.i(704024);let r=(0,e.i(726527).createLogger)({service:"broadcast"});async function s(e,s,n){let i;try{let{env:a}=(0,t.getCloudflareContext)();if(i=a.DEV_WS_DO_URL,(await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s})).ok)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:s});t.ok||r.warn("broadcast failed",{...n,status:t.status})}catch(e){r.warn("broadcast error",{...n,err:String(e)})}}e.s(["broadcastToUser",0,function(e,a){return function(e,a,r){let n=s(e,a,r);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),r=e.i(799579),s=e.i(726089),n=e.i(740580);let i=t.queries.task,o=t.queries.agent,d=t.queries.message,l=t.queries.conversation,c=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,r,s,n=a.TASK_TYPES.USER_DM_MESSAGE,d){let l=await o.getAgent(this.db,e,r);if(!l)throw Error("agent not found");if(!l.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await i.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return i.createTask(this.db,{agentId:e,runtimeId:l.runtimeId,workspaceId:r,conversationId:t,prompt:s,type:n,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await i.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let r=await i.findSteerableReplacement(this.db,e,t);if(!r||await i.countRunningTasks(this.db,e,t,r.predecessorId)>=a.maxConcurrentTasks)return null}let r=await i.claimTask(this.db,e,t);return r?(await o.updateAgentStatus(this.db,e,t,"working"),r):null}async claimTasksForRuntimes(e,t,a){let r=await i.claimKillTasks(this.db,e,a,t),s=t-r.length,n=s>0?await i.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,l=[...r];for(let e of n){if(s<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(l.push(a),s--)}return l}async startTask(e,t){let a=await i.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,s){let n;try{n=JSON.parse(a)}catch{n={raw:a}}let o=await i.completeTask(this.db,e,t,{result:n,sessionId:s||null});if(!o){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw r.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let l=n,c="string"==typeof l?.output?l.output:"";return c&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:c,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,s){let n=await i.failTask(this.db,e,t,s);if(!n){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw r.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return n.type===a.TASK_TYPES.KILL_TASK||(s&&await d.createMessage(this.db,{conversationId:n.conversationId,role:"assistant",content:`Error: ${s}`,taskId:e}),await this.reconcileAgentStatus(n.agentId,n.workspaceId),await this.syncIssueStatusFromTask(n,"failed"),await this.dispatchNextBufferedMessage(n.conversationId,n.workspaceId)),n}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let r=await c.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!r||r.status===t||await c.updateIssue(this.db,r.id,e.workspaceId,{status:t})&&await d.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${r.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:r.id})})}async supersedeTask(e,t){let a=await i.supersedeTask(this.db,e,t);if(!a){let t=await i.getTask(this.db,e),a=t?.status??"unknown";throw r.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await i.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let r=await i.markFailedAsSuperseded(this.db,e,t);if(!r)throw Error("failed to mark task as superseded");return{oldTask:r,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,r){let s=await i.getActiveTaskByConversation(this.db,e,t);if(!s)return null;let n=await i.cancelTask(this.db,s.id,t);return n?(("dispatched"===s.status||"running"===s.status)&&await i.createTask(this.db,{agentId:s.agentId,runtimeId:s.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:s.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:r?.reason??"Task cancelled by user",taskId:s.id}),await this.reconcileAgentStatus(s.agentId,t),r?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),n):null}async reconcileAgentStatus(e,t){let a=await i.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let c=await l.getConversation(this.db,e,t);if(!c)return r.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{r.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=c.userId;try{let r=o.attachmentIds?JSON.parse(o.attachmentIds):[],l=await i.getLatestTaskForConversation(this.db,e),p=l?.traceId??null,m=await this.enqueueTask(c.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:r.length>0?{attachment_ids:r}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,m.id),(0,s.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,n.messageToResponse)(o),task:(0,n.taskToResponse)(m)}).catch(()=>{}),m}catch(t){return r.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{r.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,s.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let s of[...new Set((await i.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(s,t,{skipDispatch:!0,reason:a?.reason})}catch(t){r.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:s,err:t})}}}])},993823,e=>{"use strict";var t=e.i(80774),a=e.i(404478),r=e.i(732985),s=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),d=e.i(363585),l=e.i(906846),c=e.i(359838),u=e.i(383303),p=e.i(234173),m=e.i(270215),f=e.i(830665),h=e.i(944002),_=e.i(193695);e.i(195928);var w=e.i(81543),T=e.i(194218);e.i(700598);var g=e.i(291109),k=e.i(675139),v=e.i(152327),I=e.i(47962),y=e.i(776227),b=e.i(740580),R=e.i(205054),A=e.i(726089);let E=(0,v.withAuth)(async(e,t)=>{let a=await (0,I.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,T.getCloudflareContext)(),s=(0,k.getDb)(r.DB),n=t.params?.id;if(!n)return(0,y.writeError)("conversation id is required",400);if(!await g.queries.conversation.getConversation(s,n,a.workspaceId))return(0,y.writeError)("conversation not found",404);let i=await g.queries.task.getActiveTaskByConversation(s,n,a.workspaceId);return i?(0,y.writeJSON)((0,b.taskToResponse)(i)):new Response(null,{status:204})}),S=(0,v.withAuth)(async(e,t)=>{let a=await (0,I.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,T.getCloudflareContext)(),s=(0,k.getDb)(r.DB),n=t.params?.id;if(!n)return(0,y.writeError)("conversation id is required",400);if(!await g.queries.conversation.getConversation(s,n,a.workspaceId))return(0,y.writeError)("conversation not found",404);let i=new R.TaskService(s),o=await i.cancelActiveTask(n,a.workspaceId);return o?((0,A.broadcastToUser)(t.userId,{type:"task.updated",taskId:o.id,agentId:o.agentId,status:"cancelled"}).catch(()=>{}),(0,y.writeJSON)((0,b.taskToResponse)(o))):(0,y.writeError)("no active task to cancel",404)});e.s(["DELETE",0,S,"GET",0,E],258704);var x=e.i(258704);let N=new t.AppRouteRouteModule({definition:{kind:a.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:x,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:M,serverHooks:O}=N;async function P(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),N.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/conversations/[id]/active-task/route";T=T.replace(/\/index$/,"")||"/";let g=await N.prepare(e,t,{srcPage:T,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:k,deploymentId:v,params:I,nextConfig:y,parsedUrl:b,isDraftMode:R,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:S,revalidateOnlyGenerated:x,resolvedPathname:C,clientReferenceManifest:M,serverActionsManifest:O}=g,P=(0,o.normalizeAppPath)(T),q=!!(A.dynamicRoutes[P]||A.routes[C]),D=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!R){let e=!!A.routes[C],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await D();throw new _.NoFallbackError}}let U=null;!q||N.isDev||R||(U="/index"===(U=C)?"/":U);let K=!0===N.isDev||!q,j=q&&!K;O&&M&&(0,i.setManifestsSingleton)({page:T,clientReferenceManifest:M,serverActionsManifest:O});let B=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,s.getRequestMeta)(e,"minimalMode"),W=(0,s.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,y,A,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:I,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:K,incrementalCache:W,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>N.onRequestError(e,t,r,s,E)},sharedContext:{buildId:k,deploymentId:v}},J=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t));try{let s,i=async e=>N.handle(V,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.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),s&&s!==e&&(s.setAttribute("http.route",r),s.updateName(t))}else e.updateName(`${B} ${T}`)}),o=async s=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&S&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(J,Y,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.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>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,E),t}},l=await N.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",S?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&q||c.delete(h.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(J,Y,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};H&&L?await o(L):(s=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${B} ${T}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,E),q)throw t;return await (0,p.sendResponse)(J,Y,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:M})},"routeModule",0,N,"serverHooks",0,O,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,M],993823)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
2
2
 
3
3
  //# sourceMappingURL=_09twg0j._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function r(e,r){return t.NextResponse.json({error:e},{status:r})}async function a(e,a){let s;try{s=await e.json()}catch{return[null,r("invalid request body",400)]}try{return[a.parse(s),null]}catch(r){let e=(r.issues??r.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,a,"writeError",0,r,"writeJSON",0,function(e,r=200){return t.NextResponse.json(e,{status:r})}])},47962,e=>{"use strict";var t=e.i(463421),r=e.i(194218);e.i(700598);var a=e.i(291109),s=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:l}=await (0,r.getCloudflareContext)({async:!0}),u=(0,s.getDb)(l.DB),d=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>a.queries.member.getMemberByUserAndWorkspace(u,i.userId,o));return d||i.workspaceId!==o?d?{workspaceId:o,memberRole:d.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,r){let a=await i(e,r);return a instanceof t.NextResponse?a:"owner"!==a.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):a}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},726089,e=>{"use strict";var t=e.i(194218);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function s(e,s,n){let i;try{let{env:r}=(0,t.getCloudflareContext)();if(i=r.DEV_WS_DO_URL,(await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s})).ok)return}catch{}let o=i||r.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:s});t.ok||a.warn("broadcast failed",{...n,status:t.status})}catch(e){a.warn("broadcast error",{...n,err:String(e)})}}async function n(e,t){await s(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,n])},472772,e=>{"use strict";var t=e.i(80774),r=e.i(404478),a=e.i(732985),s=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),l=e.i(363585),u=e.i(906846),d=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),f=e.i(944002),v=e.i(193695);e.i(195928);var w=e.i(81543),R=e.i(194218);e.i(700598);var g=e.i(291109),_=e.i(675139),y=e.i(152327),b=e.i(47962),E=e.i(776227),x=e.i(726089);let C=(0,y.withAuth)(async(e,t)=>{let r=await (0,b.withWorkspaceMember)(e,t);if(r instanceof Response)return r;let{env:a}=(0,R.getCloudflareContext)(),s=(0,_.getDb)(a.DB),n=t.params?.id,i=t.params?.messageId;if(!n)return(0,E.writeError)("conversation id is required",400);if(!i)return(0,E.writeError)("message id is required",400);if(!await g.queries.conversation.getConversation(s,n,r.workspaceId))return(0,E.writeError)("conversation not found",404);let o=await g.queries.message.getMessage(s,i);return o&&o.conversationId===n?"buffered"!==o.status?(0,E.writeError)("message is not buffered",400):(await g.queries.message.deleteBufferedMessage(s,i),(0,x.broadcastToUser)(t.userId,{type:"followup.deleted",conversationId:n,messageId:i}).catch(()=>{}),new Response(null,{status:204})):(0,E.writeError)("message not found",404)});e.s(["DELETE",0,C],807142);var N=e.i(807142);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/buffered-messages/[messageId]/route",pathname:"/api/conversations/[id]/buffered-messages/[messageId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/buffered-messages/[messageId]/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:T,serverHooks:A}=k;async function I(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/conversations/[id]/buffered-messages/[messageId]/route";R=R.replace(/\/index$/,"")||"/";let g=await k.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,deploymentId:y,params:b,nextConfig:E,parsedUrl:x,isDraftMode:C,prerenderManifest:N,routerServerContext:S,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,resolvedPathname:I,clientReferenceManifest:P,serverActionsManifest:O}=g,j=(0,o.normalizeAppPath)(R),q=!!(N.dynamicRoutes[j]||N.routes[I]),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!N.routes[I],t=N.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await D();throw new v.NoFallbackError}}let U=null;!q||k.isDev||C||(U="/index"===(U=I)?"/":U);let M=!0===k.isDev||!q,H=q&&!M;O&&P&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:O});let $=e.method||"GET",B=(0,n.getTracer)(),W=B.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),F=(0,s.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,E,N,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let V={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:F,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>k.onRequestError(e,t,a,s,S)},sharedContext:{buildId:_,deploymentId:y}},Z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(Z,(0,u.signalFromNodeResponse)(t));try{let s,i=async e=>k.handle(G,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${R}`)}),o=async s=>{var n,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&T&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=V.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(Z,X,n,V.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),t}},u=await k.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!q)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&q||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(Z,X,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};K&&W?await o(W):(s=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${R}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof v.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),q)throw t;return await (0,p.sendResponse)(Z,X,new Response(null,{status:500})),null}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:T})},"routeModule",0,k,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,T],472772)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function r(e,r){return t.NextResponse.json({error:e},{status:r})}async function a(e,a){let s;try{s=await e.json()}catch{return[null,r("invalid request body",400)]}try{return[a.parse(s),null]}catch(r){let e=(r.issues??r.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,a,"writeError",0,r,"writeJSON",0,function(e,r=200){return t.NextResponse.json(e,{status:r})}])},47962,e=>{"use strict";var t=e.i(463421),r=e.i(194218);e.i(700598);var a=e.i(291109),s=e.i(675139),n=e.i(774078);async function i(e,i){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||i.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!i.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:l}=await (0,r.getCloudflareContext)({async:!0}),u=(0,s.getDb)(l.DB),d=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>a.queries.member.getMemberByUserAndWorkspace(u,i.userId,o));return d||i.workspaceId!==o?d?{workspaceId:o,memberRole:d.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,r){let a=await i(e,r);return a instanceof t.NextResponse?a:"owner"!==a.memberRole?t.NextResponse.json({error:"owner access required"},{status:403}):a}e.s(["withWorkspaceMember",0,i,"withWorkspaceOwner",0,o])},726089,e=>{"use strict";var t=e.i(194218);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function s(e,s,n){let i;try{let{env:r}=(0,t.getCloudflareContext)();if(i=r.DEV_WS_DO_URL,(await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s})).ok)return}catch{}let o=i||r.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:s});t.ok||a.warn("broadcast failed",{...n,status:t.status})}catch(e){a.warn("broadcast error",{...n,err:String(e)})}}e.s(["broadcastToUser",0,function(e,r){return function(e,r,a){let n=s(e,r,a);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(n)}catch{}return n}(`/broadcast/user/${e}`,JSON.stringify(r),{userId:e,type:r.type})}])},472772,e=>{"use strict";var t=e.i(80774),r=e.i(404478),a=e.i(732985),s=e.i(481671),n=e.i(638081),i=e.i(204960),o=e.i(924918),l=e.i(363585),u=e.i(906846),d=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),f=e.i(944002),v=e.i(193695);e.i(195928);var w=e.i(81543),g=e.i(194218);e.i(700598);var R=e.i(291109),_=e.i(675139),y=e.i(152327),b=e.i(47962),E=e.i(776227),x=e.i(726089);let C=(0,y.withAuth)(async(e,t)=>{let r=await (0,b.withWorkspaceMember)(e,t);if(r instanceof Response)return r;let{env:a}=(0,g.getCloudflareContext)(),s=(0,_.getDb)(a.DB),n=t.params?.id,i=t.params?.messageId;if(!n)return(0,E.writeError)("conversation id is required",400);if(!i)return(0,E.writeError)("message id is required",400);if(!await R.queries.conversation.getConversation(s,n,r.workspaceId))return(0,E.writeError)("conversation not found",404);let o=await R.queries.message.getMessage(s,i);return o&&o.conversationId===n?"buffered"!==o.status?(0,E.writeError)("message is not buffered",400):(await R.queries.message.deleteBufferedMessage(s,i),(0,x.broadcastToUser)(t.userId,{type:"followup.deleted",conversationId:n,messageId:i}).catch(()=>{}),new Response(null,{status:204})):(0,E.writeError)("message not found",404)});e.s(["DELETE",0,C],807142);var N=e.i(807142);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/buffered-messages/[messageId]/route",pathname:"/api/conversations/[id]/buffered-messages/[messageId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/buffered-messages/[messageId]/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:T,serverHooks:A}=k;async function I(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/conversations/[id]/buffered-messages/[messageId]/route";g=g.replace(/\/index$/,"")||"/";let R=await k.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,deploymentId:y,params:b,nextConfig:E,parsedUrl:x,isDraftMode:C,prerenderManifest:N,routerServerContext:S,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,resolvedPathname:I,clientReferenceManifest:P,serverActionsManifest:O}=R,j=(0,o.normalizeAppPath)(g),q=!!(N.dynamicRoutes[j]||N.routes[I]),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!N.routes[I],t=N.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await D();throw new v.NoFallbackError}}let U=null;!q||k.isDev||C||(U="/index"===(U=I)?"/":U);let M=!0===k.isDev||!q,H=q&&!M;O&&P&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:P,serverActionsManifest:O});let $=e.method||"GET",B=(0,n.getTracer)(),W=B.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),F=(0,s.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,E,N,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let V={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:F,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>k.onRequestError(e,t,a,s,S)},sharedContext:{buildId:_,deploymentId:y}},Z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(Z,(0,u.signalFromNodeResponse)(t));try{let s,i=async e=>k.handle(G,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${g}`)}),o=async s=>{var n,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&T&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=V.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(Z,X,n,V.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),t}},u=await k.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!q)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&q||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(Z,X,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};K&&W?await o(W):(s=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof v.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),q)throw t;return await (0,p.sendResponse)(Z,X,new Response(null,{status:500})),null}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:T})},"routeModule",0,k,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,T],472772)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
2
2
 
3
3
  //# sourceMappingURL=_0a_02v1._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function r(e,r){return t.NextResponse.json({error:e},{status:r})}async function a(e,a){let n;try{n=await e.json()}catch{return[null,r("invalid request body",400)]}try{return[a.parse(n),null]}catch(r){let e=(r.issues??r.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,a,"writeError",0,r,"writeJSON",0,function(e,r=200){return t.NextResponse.json(e,{status:r})}])},726089,e=>{"use strict";var t=e.i(194218);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,s){let i;try{let{env:r}=(0,t.getCloudflareContext)();if(i=r.DEV_WS_DO_URL,(await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n})).ok)return}catch{}let o=i||r.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||a.warn("broadcast failed",{...s,status:t.status})}catch(e){a.warn("broadcast error",{...s,err:String(e)})}}async function s(e,t){await n(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,s])},427061,e=>{"use strict";var t=e.i(80774),r=e.i(404478),a=e.i(732985),n=e.i(481671),s=e.i(638081),i=e.i(204960),o=e.i(924918),l=e.i(363585),d=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),_=e.i(944002),v=e.i(193695);e.i(195928);var R=e.i(81543),f=e.i(194218);e.i(700598);var w=e.i(291109),g=e.i(675139),y=e.i(152327),E=e.i(776227),C=e.i(888247),b=e.i(726089);let x=(0,y.withAuth)(async(e,t)=>{let{env:r}=(0,f.getCloudflareContext)(),a=(0,g.getDb)(r.DB),[n,s]=await (0,E.parseBody)(e,C.DeregisterRequestSchema);return s||(t.workspaceId?(await w.queries.machine.setMachineLastSeenNull(a,n.daemon_id,t.workspaceId),(0,b.broadcastToUser)(t.userId,{type:"runtime.status",daemonId:n.daemon_id,workspaceId:t.workspaceId,status:"offline"}).catch(()=>{}),(0,E.writeJSON)({status:"ok"})):(0,E.writeError)("Forbidden: machine token required",403))});e.s(["POST",0,x],558109);var S=e.i(558109);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/deregister/route",pathname:"/api/daemon/deregister",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/deregister/route.ts",nextConfigOutput:"standalone",userland:S,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:O,serverHooks:P}=N;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/daemon/deregister/route";f=f.replace(/\/index$/,"")||"/";let w=await N.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,deploymentId:y,params:E,nextConfig:C,parsedUrl:b,isDraftMode:x,prerenderManifest:S,routerServerContext:T,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:A,clientReferenceManifest:k,serverActionsManifest:j}=w,q=(0,o.normalizeAppPath)(f),I=!!(S.dynamicRoutes[q]||S.routes[A]),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!S.routes[A],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await D();throw new v.NoFallbackError}}let U=null;!I||N.isDev||x||(U="/index"===(U=A)?"/":U);let H=!0===N.isDev||!I,$=I&&!H;j&&k&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:j});let M=e.method||"GET",B=(0,s.getTracer)(),F=B.getActiveScopeSpan(),K=!!(null==T?void 0:T.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,C,S,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:E,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>N.onRequestError(e,t,a,n,T)},sharedContext:{buildId:g,deploymentId:y}},Z=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=d.NextRequestAdapter.fromNodeNextRequest(Z,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>N.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${M} ${f}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&O&&P&&!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 l=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(Z,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[_.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=_.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,T),t}},d=await N.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!I)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&I||u.delete(_.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(Z,G,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};K&&F?await o(F):(n=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof v.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,T),I)throw t;return await (0,p.sendResponse)(Z,G,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:O})},"routeModule",0,N,"serverHooks",0,P,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,O],427061)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
1
+ module.exports=[776227,e=>{"use strict";var t=e.i(463421);function r(e,r){return t.NextResponse.json({error:e},{status:r})}async function a(e,a){let n;try{n=await e.json()}catch{return[null,r("invalid request body",400)]}try{return[a.parse(n),null]}catch(r){let e=(r.issues??r.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,a,"writeError",0,r,"writeJSON",0,function(e,r=200){return t.NextResponse.json(e,{status:r})}])},726089,e=>{"use strict";var t=e.i(194218);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,s){let i;try{let{env:r}=(0,t.getCloudflareContext)();if(i=r.DEV_WS_DO_URL,(await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n})).ok)return}catch{}let o=i||r.DEV_WS_DO_URL;try{let t=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||a.warn("broadcast failed",{...s,status:t.status})}catch(e){a.warn("broadcast error",{...s,err:String(e)})}}e.s(["broadcastToUser",0,function(e,r){return function(e,r,a){let s=n(e,r,a);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s)}catch{}return s}(`/broadcast/user/${e}`,JSON.stringify(r),{userId:e,type:r.type})}])},427061,e=>{"use strict";var t=e.i(80774),r=e.i(404478),a=e.i(732985),n=e.i(481671),s=e.i(638081),i=e.i(204960),o=e.i(924918),l=e.i(363585),d=e.i(906846),u=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),_=e.i(944002),v=e.i(193695);e.i(195928);var R=e.i(81543),f=e.i(194218);e.i(700598);var w=e.i(291109),g=e.i(675139),y=e.i(152327),E=e.i(776227),C=e.i(888247),b=e.i(726089);let x=(0,y.withAuth)(async(e,t)=>{let{env:r}=(0,f.getCloudflareContext)(),a=(0,g.getDb)(r.DB),[n,s]=await (0,E.parseBody)(e,C.DeregisterRequestSchema);return s||(t.workspaceId?(await w.queries.machine.setMachineLastSeenNull(a,n.daemon_id,t.workspaceId),(0,b.broadcastToUser)(t.userId,{type:"runtime.status",daemonId:n.daemon_id,workspaceId:t.workspaceId,status:"offline"}).catch(()=>{}),(0,E.writeJSON)({status:"ok"})):(0,E.writeError)("Forbidden: machine token required",403))});e.s(["POST",0,x],558109);var S=e.i(558109);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/deregister/route",pathname:"/api/daemon/deregister",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/deregister/route.ts",nextConfigOutput:"standalone",userland:S,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:O,serverHooks:P}=N;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/daemon/deregister/route";f=f.replace(/\/index$/,"")||"/";let w=await N.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,deploymentId:y,params:E,nextConfig:C,parsedUrl:b,isDraftMode:x,prerenderManifest:S,routerServerContext:T,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:A,clientReferenceManifest:k,serverActionsManifest:j}=w,q=(0,o.normalizeAppPath)(f),I=!!(S.dynamicRoutes[q]||S.routes[A]),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!S.routes[A],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await D();throw new v.NoFallbackError}}let U=null;!I||N.isDev||x||(U="/index"===(U=A)?"/":U);let H=!0===N.isDev||!I,$=I&&!H;j&&k&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:j});let M=e.method||"GET",B=(0,s.getTracer)(),F=B.getActiveScopeSpan(),K=!!(null==T?void 0:T.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,C,S,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:E,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>N.onRequestError(e,t,a,n,T)},sharedContext:{buildId:g,deploymentId:y}},Z=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=d.NextRequestAdapter.fromNodeNextRequest(Z,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>N.handle(J,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${M} ${f}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&O&&P&&!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 l=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(Z,G,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[_.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=_.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,T),t}},d=await N.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!I)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&I||u.delete(_.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(Z,G,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};K&&F?await o(F):(n=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof v.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,T),I)throw t;return await (0,p.sendResponse)(Z,G,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:O})},"routeModule",0,N,"serverHooks",0,P,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,O],427061)},967183,e=>{e.v(t=>Promise.all(["server/chunks/0ej8_@better-auth_memory-adapter_dist_index_mjs_10c.8b8._.js"].map(t=>e.l(t))).then(()=>t(205102)))},632019,e=>{e.v(t=>Promise.all(["server/chunks/0cd0_better-auth_dist_adapters_kysely-adapter_index_mjs_0v4jkxi._.js"].map(t=>e.l(t))).then(()=>t(836110)))},246358,e=>{e.v(e=>Promise.resolve().then(()=>e(357762)))},292677,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0j55.z1._.js"].map(t=>e.l(t))).then(()=>t(52033)))},289217,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0wxfd_8._.js"].map(t=>e.l(t))).then(()=>t(670514)))},316246,e=>{e.v(t=>Promise.all(["server/chunks/0m4__@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0unjrn9._.js"].map(t=>e.l(t))).then(()=>t(917123)))}];
2
2
 
3
3
  //# sourceMappingURL=_0av05ao._.js.map