@alook/app 0.0.18 → 0.0.19

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/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/_global-error.cache +1 -1
  4. package/bundled/web/.open-next/cache/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/_not-found.cache +1 -1
  5. package/bundled/web/.open-next/cache/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/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 +2 -2
  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 +15 -15
  42. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +127 -127
  43. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +2 -2
  44. package/dist/index.js +14 -5
  45. package/package.json +1 -1
  46. /package/bundled/web/.open-next/assets/_next/static/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/_buildManifest.js +0 -0
  47. /package/bundled/web/.open-next/assets/_next/static/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/_clientMiddlewareManifest.js +0 -0
  48. /package/bundled/web/.open-next/assets/_next/static/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/_ssgManifest.js +0 -0
  49. /package/bundled/web/.open-next/cache/{1KhJxRMQgsspHvsEB0i7h → JpvpBb9uBBz72TnryVX5l}/robots.txt.cache +0 -0
@@ -1,5 +1,5 @@
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),u=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(l,i.userId,o));return u||i.workspaceId!==o?u?{workspaceId:o,memberRole:u.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,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){try{let{env:a,ctx:i}=(0,t.getCloudflareContext)(),o=a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r}).then(()=>{},e=>s.warn("broadcast service-binding failed",{...n,err:String(e)}));i.waitUntil(o)}catch{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast fallback failed",{...n,status:t.status})}}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,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})}}}])},789442,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 w=e.i(81543),T=e.i(194218);e.i(700598);var g=e.i(888247),k=e.i(704024),I=e.i(291109),v=e.i(675139),y=e.i(152327),b=e.i(47962),A=e.i(776227),R=e.i(726089),S=e.i(205054);let E=(0,y.withAuth)(async(e,t)=>{let a=await (0,b.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,v.getDb)(s.DB),n=t.params?.id;if(!n)return(0,A.writeError)("issue id is required",400);if(!await I.queries.issue.getIssue(r,n,a.workspaceId))return(0,A.writeError)("issue not found",404);let i=await I.queries.issueComment.listComments(r,n,a.workspaceId);return(0,A.writeJSON)({comments:i.map(I.queries.issueComment.commentToResponse)})}),x=(0,y.withAuth)(async(e,t)=>{let a=await (0,b.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,v.getDb)(s.DB),n=t.params?.id;if(!n)return(0,A.writeError)("issue id is required",400);let i=await I.queries.issue.getIssue(r,n,a.workspaceId);if(!i)return(0,A.writeError)("issue not found",404);let o=e.nextUrl.searchParams.get("agentId");if(o&&i.agentId!==o)return(0,A.writeError)("issue does not belong to agent",403);let[d,l]=await (0,A.parseBody)(e,g.CreateIssueCommentBodySchema);if(l)return l;let u=o?"agent":"user",c=o??t.userId,p=await I.queries.issueComment.createComment(r,{issueId:n,workspaceId:a.workspaceId,authorType:u,authorId:c,content:d.content});await I.queries.issue.updateIssue(r,n,a.workspaceId,{});let m=I.queries.issueComment.commentToResponse(p);if((0,R.broadcastToUser)(i.creatorUserId,{type:"issue.comment",issueId:n,comment:m}).catch(()=>{}),"user"===u&&!(0,k.isTerminalIssueStatus)(i.status)&&i.agentId&&i.conversationId&&!await I.queries.task.getActiveTaskByConversation(r,i.conversationId,a.workspaceId)){let e=new S.TaskService(r),t=`${i.title}
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}),u=(0,r.getDb)(d.DB),l=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(u,i.userId,o));return l||i.workspaceId!==o?l?{workspaceId:o,memberRole:l.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){try{let{env:a}=(0,t.getCloudflareContext)();if((await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)return}catch{}try{let t=await fetch(`${a.DEV_WS_DO_URL}${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,u=t.queries.conversation,l=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 u=await o.getAgent(this.db,e,s);if(!u)throw Error("agent not found");if(!u.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:u.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,u=[...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)&&(u.push(a),r--)}return u}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 u=n,l="string"==typeof u?.output?u.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let 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 l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await l.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 l=await u.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let c=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],u=await i.getLatestTaskForConversation(this.db,e),p=u?.traceId??null,m=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,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})}}}])},789442,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),u=e.i(906846),l=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 w=e.i(81543),T=e.i(194218);e.i(700598);var g=e.i(888247),k=e.i(704024),I=e.i(291109),v=e.i(675139),y=e.i(152327),b=e.i(47962),A=e.i(776227),R=e.i(726089),S=e.i(205054);let E=(0,y.withAuth)(async(e,t)=>{let a=await (0,b.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,v.getDb)(s.DB),n=t.params?.id;if(!n)return(0,A.writeError)("issue id is required",400);if(!await I.queries.issue.getIssue(r,n,a.workspaceId))return(0,A.writeError)("issue not found",404);let i=await I.queries.issueComment.listComments(r,n,a.workspaceId);return(0,A.writeJSON)({comments:i.map(I.queries.issueComment.commentToResponse)})}),x=(0,y.withAuth)(async(e,t)=>{let a=await (0,b.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:s}=(0,T.getCloudflareContext)(),r=(0,v.getDb)(s.DB),n=t.params?.id;if(!n)return(0,A.writeError)("issue id is required",400);let i=await I.queries.issue.getIssue(r,n,a.workspaceId);if(!i)return(0,A.writeError)("issue not found",404);let o=e.nextUrl.searchParams.get("agentId");if(o&&i.agentId!==o)return(0,A.writeError)("issue does not belong to agent",403);let[d,u]=await (0,A.parseBody)(e,g.CreateIssueCommentBodySchema);if(u)return u;let l=o?"agent":"user",c=o??t.userId,p=await I.queries.issueComment.createComment(r,{issueId:n,workspaceId:a.workspaceId,authorType:l,authorId:c,content:d.content});await I.queries.issue.updateIssue(r,n,a.workspaceId,{});let m=I.queries.issueComment.commentToResponse(p);if((0,R.broadcastToUser)(i.creatorUserId,{type:"issue.comment",issueId:n,comment:m}).catch(()=>{}),"user"===l&&!(0,k.isTerminalIssueStatus)(i.status)&&i.agentId&&i.conversationId&&!await I.queries.task.getActiveTaskByConversation(r,i.conversationId,a.workspaceId)){let e=new S.TaskService(r),t=`${i.title}
2
2
 
3
- User feedback: "${d.content}"`;try{let s=i.latestTaskId?(await I.queries.task.getTask(r,i.latestTaskId,a.workspaceId))?.traceId??null:null,o=await e.enqueueTask(i.agentId,i.conversationId,a.workspaceId,t,k.TASK_TYPES.ISSUE_EVENT,{contextKey:i.conversationId,context:{issue_id:i.id},traceId:s,parentTaskId:null});await I.queries.issue.setLatestTask(r,n,a.workspaceId,o.id)}catch{}}return(0,A.writeJSON)({comment:m},201)});e.s(["GET",0,E,"POST",0,x],914022);var N=e.i(914022);let C=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/issues/[id]/comments/route",pathname:"/api/issues/[id]/comments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/comments/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:M,serverHooks:O}=C;async function P(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),C.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/issues/[id]/comments/route";T=T.replace(/\/index$/,"")||"/";let g=await C.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:I,params:v,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:M}=g,O=(0,o.normalizeAppPath)(T),P=!!(R.dynamicRoutes[O]||R.routes[N]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(P&&!A){let e=!!R.routes[N],t=R.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new _.NoFallbackError}}let D=null;!P||C.isDev||A||(D="/index"===(D=N)?"/":D);let K=!0===C.isDev||!P,B=P&&!K;M&&q&&(0,i.setManifestsSingleton)({page:T,clientReferenceManifest:q,serverActionsManifest:M});let j=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),W=(0,r.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,y,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:v,previewProps:R.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)=>C.onRequestError(e,t,s,r,S)},sharedContext:{buildId:k,deploymentId:I}},G=new d.NodeNextRequest(e),J=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(G,(0,l.signalFromNodeResponse)(t));try{let r,i=async e=>C.handle(V,Y).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} ${T}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&E&&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=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=Y.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,J,n,Y.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!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,s=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:Y.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 C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:E})},!1,S),t}},l=await C.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!P)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",E?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return F&&P||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)(G,J,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} ${T}`,kind:n.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:E})},!1,S),P)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:M})},"routeModule",0,C,"serverHooks",0,O,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,M],789442)},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)))}];
3
+ User feedback: "${d.content}"`;try{let s=i.latestTaskId?(await I.queries.task.getTask(r,i.latestTaskId,a.workspaceId))?.traceId??null:null,o=await e.enqueueTask(i.agentId,i.conversationId,a.workspaceId,t,k.TASK_TYPES.ISSUE_EVENT,{contextKey:i.conversationId,context:{issue_id:i.id},traceId:s,parentTaskId:null});await I.queries.issue.setLatestTask(r,n,a.workspaceId,o.id)}catch{}}return(0,A.writeJSON)({comment:m},201)});e.s(["GET",0,E,"POST",0,x],914022);var N=e.i(914022);let C=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/issues/[id]/comments/route",pathname:"/api/issues/[id]/comments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/comments/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:M,serverHooks:O}=C;async function P(e,t,s){s.requestMeta&&(0,r.setRequestMeta)(e,s.requestMeta),C.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/issues/[id]/comments/route";T=T.replace(/\/index$/,"")||"/";let g=await C.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:I,params:v,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:M}=g,O=(0,o.normalizeAppPath)(T),P=!!(R.dynamicRoutes[O]||R.routes[N]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(P&&!A){let e=!!R.routes[N],t=R.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new _.NoFallbackError}}let D=null;!P||C.isDev||A||(D="/index"===(D=N)?"/":D);let K=!0===C.isDev||!P,B=P&&!K;M&&q&&(0,i.setManifestsSingleton)({page:T,clientReferenceManifest:q,serverActionsManifest:M});let j=e.method||"GET",$=(0,n.getTracer)(),L=$.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),W=(0,r.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,y,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:v,previewProps:R.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)=>C.onRequestError(e,t,s,r,S)},sharedContext:{buildId:k,deploymentId:I}},G=new d.NodeNextRequest(e),J=new d.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,i=async e=>C.handle(V,Y).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")!==l.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} ${T}`)}),o=async r=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&E&&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=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let d=Y.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,J,n,Y.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!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,s=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:Y.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 C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:E})},!1,S),t}},u=await C.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:F});if(!P)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});F||t.setHeader("x-nextjs-cache",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,m.fromNodeOutgoingHttpHeaders)(u.value.headers);return F&&P||l.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,J,new Response(u.value.body,{headers:l,status:u.value.status||200})),null};H&&L?await o(L):(r=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(l.BaseServerSpan.handleRequest,{spanName:`${j} ${T}`,kind:n.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof _.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:E})},!1,S),P)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:M})},"routeModule",0,C,"serverHooks",0,O,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,M],789442)},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)))}];
4
4
 
5
5
  //# sourceMappingURL=_0dajh_g._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let n;try{n=await e.json()}catch{return[null,a("invalid request body",400)]}try{return[r.parse(n),null]}catch(a){let e=(a.issues??a.errors??[]).map(e=>`${e.path.join(".")}: ${e.message}`);return[null,t.NextResponse.json({error:"validation error",details:e},{status:400})]}}e.s(["formatTimestamp",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):""},"formatTimestampNullable",0,function(e){return e?("string"==typeof e?new Date(e):e).toISOString().replace(/\.\d{3}Z$/,"Z"):null},"parseBody",0,r,"writeError",0,a,"writeJSON",0,function(e,a=200){return t.NextResponse.json(e,{status:a})}])},47962,e=>{"use strict";var t=e.i(463421),a=e.i(194218);e.i(700598);var r=e.i(291109),n=e.i(675139),s=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}),m=(0,n.getDb)(d.DB),l=await (0,s.cached)(s.cacheKeys.member(o,i.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(m,i.userId,o));return l||i.workspaceId!==o?l?{workspaceId:o,memberRole:l.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 n(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,n],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,s=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:n(s)?"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 n(e,n,s){try{let{env:a,ctx:i}=(0,t.getCloudflareContext)(),o=a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n}).then(()=>{},e=>r.warn("broadcast service-binding failed",{...s,err:String(e)}));i.waitUntil(o)}catch{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||r.warn("broadcast fallback failed",{...s,status:t.status})}}async function s(e,t){await n(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,s])},929782,e=>{"use strict";var t=e.i(719436);e.s(["buildMimeMessage",0,function(e){let a=[];e.messageId&&a.push(`Message-ID: ${e.messageId}`),e.inReplyTo&&a.push(`In-Reply-To: ${e.inReplyTo}`),e.references&&a.push(`References: ${e.references}`);let r=e.date??new Date().toUTCString(),n=e.bodyType??"text/html",s=e.attachments??[];if(0===s.length)return[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: ${n}; charset=utf-8`,"",e.body].join("\r\n");let i=`----=_Part_${(0,t.nanoid)(16)}`,o=[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: multipart/mixed; boundary="${i}"`,"",`--${i}`,`Content-Type: ${n}; charset=utf-8`,"Content-Transfer-Encoding: 7bit","",e.body];for(let e of s)o.push([`--${i}`,`Content-Type: ${e.contentType}; name="${e.filename}"`,`Content-Disposition: attachment; filename="${e.filename}"`,"Content-Transfer-Encoding: base64","",e.base64.match(/.{1,76}/g)?.join("\r\n")??e.base64].join("\r\n"));return o.push(`--${i}--`),o.join("\r\n")},"filterDownloadableAttachments",0,function(e){return e.filter(e=>"attachment"===e.disposition||e.filename)}])},332432,e=>{"use strict";e.s(["buildEmailMapKey",0,function(e,t){return`email:${e}:${t}`},"extractThreadId",0,function(e,t,a){if(e){let t=e.trim().split(/\s+/)[0];if(t)return t}return t?t.trim():a?a.trim():null}])},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}),m=(0,s.getDb)(d.DB),l=await (0,n.cached)(n.cacheKeys.member(o,i.userId),1800,()=>r.queries.member.getMemberByUserAndWorkspace(m,i.userId,o));return l||i.workspaceId!==o?l?{workspaceId:o,memberRole:l.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){try{let{env:a}=(0,t.getCloudflareContext)();if((await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s})).ok)return}catch{}try{let t=await fetch(`${a.DEV_WS_DO_URL}${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)})}}async function n(e,t){await s(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,n])},929782,e=>{"use strict";var t=e.i(719436);e.s(["buildMimeMessage",0,function(e){let a=[];e.messageId&&a.push(`Message-ID: ${e.messageId}`),e.inReplyTo&&a.push(`In-Reply-To: ${e.inReplyTo}`),e.references&&a.push(`References: ${e.references}`);let r=e.date??new Date().toUTCString(),s=e.bodyType??"text/html",n=e.attachments??[];if(0===n.length)return[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: ${s}; charset=utf-8`,"",e.body].join("\r\n");let i=`----=_Part_${(0,t.nanoid)(16)}`,o=[`From: ${e.from}`,`To: ${e.to}`,`Subject: ${e.subject}`,`Date: ${r}`,...a,"MIME-Version: 1.0",`Content-Type: multipart/mixed; boundary="${i}"`,"",`--${i}`,`Content-Type: ${s}; charset=utf-8`,"Content-Transfer-Encoding: 7bit","",e.body];for(let e of n)o.push([`--${i}`,`Content-Type: ${e.contentType}; name="${e.filename}"`,`Content-Disposition: attachment; filename="${e.filename}"`,"Content-Transfer-Encoding: base64","",e.base64.match(/.{1,76}/g)?.join("\r\n")??e.base64].join("\r\n"));return o.push(`--${i}--`),o.join("\r\n")},"filterDownloadableAttachments",0,function(e){return e.filter(e=>"attachment"===e.disposition||e.filename)}])},332432,e=>{"use strict";e.s(["buildEmailMapKey",0,function(e,t){return`email:${e}:${t}`},"extractThreadId",0,function(e,t,a){if(e){let t=e.trim().split(/\s+/)[0];if(t)return t}return t?t.trim():a?a.trim():null}])},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=_0dxfkbl._.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),i=e.i(774078);async function n(e,n){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||n.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!n.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,i.cached)(i.cacheKeys.member(o,n.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,n.userId,o));return l||n.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await n(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,n,"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,i=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(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(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,i){try{let{env:a,ctx:n}=(0,t.getCloudflareContext)(),o=a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r}).then(()=>{},e=>s.warn("broadcast service-binding failed",{...i,err:String(e)}));n.waitUntil(o)}catch{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast fallback failed",{...i,status:t.status})}}async function i(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,i])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await l.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 n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},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 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),i=e.i(774078);async function n(e,n){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||n.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!n.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,i.cached)(i.cacheKeys.member(o,n.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,n.userId,o));return l||n.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await n(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,n,"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,i=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(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(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,i){try{let{env:a}=(0,t.getCloudflareContext)();if((await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)return}catch{}try{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...i,status:t.status})}catch(e){s.warn("broadcast error",{...i,err:String(e)})}}async function i(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,i])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await l.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 n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},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=_0edx130._.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),i=e.i(774078);async function n(e,n){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||n.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!n.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,i.cached)(i.cacheKeys.member(o,n.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,n.userId,o));return l||n.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await n(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,n,"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,i=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(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(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,i){try{let{env:a,ctx:n}=(0,t.getCloudflareContext)(),o=a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r}).then(()=>{},e=>s.warn("broadcast service-binding failed",{...i,err:String(e)}));n.waitUntil(o)}catch{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast fallback failed",{...i,status:t.status})}}async function i(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,i])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await l.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 n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},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 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),i=e.i(774078);async function n(e,n){let o=e.nextUrl.searchParams.get("workspace_id")||e.headers.get("X-Workspace-ID")||n.workspaceId;if(!o)return t.NextResponse.json({error:"workspace_id is required"},{status:400});if(!n.userId)return t.NextResponse.json({error:"user not authenticated"},{status:401});let{env:d}=await (0,a.getCloudflareContext)({async:!0}),c=(0,r.getDb)(d.DB),l=await (0,i.cached)(i.cacheKeys.member(o,n.userId),1800,()=>s.queries.member.getMemberByUserAndWorkspace(c,n.userId,o));return l||n.workspaceId!==o?l?{workspaceId:o,memberRole:l.role}:t.NextResponse.json({error:"workspace not found"},{status:404}):{workspaceId:o,memberRole:"member"}}async function o(e,a){let s=await n(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,n,"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,i=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(i)?"online":"offline",device_info:e.deviceInfo,metadata:a,pending_update_version:e.pendingUpdateVersion??null,pending_rescan:!!e.pendingRescan,last_seen_at:(0,t.formatTimestampNullable)(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,i){try{let{env:a}=(0,t.getCloudflareContext)();if((await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:r})).ok)return}catch{}try{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:r});t.ok||s.warn("broadcast failed",{...i,status:t.status})}catch(e){s.warn("broadcast error",{...i,err:String(e)})}}async function i(e,t){await r(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,i])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),r=e.i(726089),i=e.i(740580);let n=t.queries.task,o=t.queries.agent,d=t.queries.message,c=t.queries.conversation,l=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,r,i=a.TASK_TYPES.USER_DM_MESSAGE,d){let c=await o.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(d?.traceId&&d.parentTaskId&&await n.countTasksByTrace(this.db,d.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);return n.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:r,type:i,contextKey:d?.contextKey??null,priority:0,context:d?.context,traceId:d?.traceId??null,parentTaskId:d?.parentTaskId??null})}async claimTask(e,t){let a=await o.getAgent(this.db,e,t);if(!a)return null;if(await n.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await n.findSteerableReplacement(this.db,e,t);if(!s||await n.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await n.claimTask(this.db,e,t);return s?(await o.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await n.claimKillTasks(this.db,e,a,t),r=t-s.length,i=r>0?await n.listPendingTasksByRuntimes(this.db,e,a):[],o=new Set(e),d=new Set,c=[...s];for(let e of i){if(r<=0)break;let t=`${e.agentId}:${e.workspaceId}`;if(d.has(t))continue;d.add(t);let a=await this.claimTask(e.agentId,e.workspaceId);a&&o.has(a.runtimeId)&&(c.push(a),r--)}return c}async startTask(e,t){let a=await n.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,r){let i;try{i=JSON.parse(a)}catch{i={raw:a}}let o=await n.completeTask(this.db,e,t,{result:i,sessionId:r||null});if(!o){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let c=i,l="string"==typeof c?.output?c.output:"";return l&&await d.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:l,taskId:e}),await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async failTask(e,t,r){let i=await n.failTask(this.db,e,t,r);if(!i){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}return i.type===a.TASK_TYPES.KILL_TASK||(r&&await d.createMessage(this.db,{conversationId:i.conversationId,role:"assistant",content:`Error: ${r}`,taskId:e}),await this.reconcileAgentStatus(i.agentId,i.workspaceId),await this.syncIssueStatusFromTask(i,"failed"),await this.dispatchNextBufferedMessage(i.conversationId,i.workspaceId)),i}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await l.getIssueByConversation(this.db,e.conversationId,e.workspaceId);!s||s.status===t||await l.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 n.supersedeTask(this.db,e,t);if(!a){let t=await n.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await n.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await n.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let r=await n.getActiveTaskByConversation(this.db,e,t);if(!r)return null;let i=await n.cancelTask(this.db,r.id,t);return i?(("dispatched"===r.status||"running"===r.status)&&await n.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),await d.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),i):null}async reconcileAgentStatus(e,t){let a=await n.countRunningTasks(this.db,e,t);await o.updateAgentStatus(this.db,e,t,a>0?"working":"idle")}async dispatchNextBufferedMessage(e,t){let o=await d.activateNextBufferedMessage(this.db,e);if(!o)return null;let l=await c.getConversation(this.db,e,t);if(!l)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),null;let u=l.userId;try{let s=o.attachmentIds?JSON.parse(o.attachmentIds):[],c=await n.getLatestTaskForConversation(this.db,e),m=c?.traceId??null,p=await this.enqueueTask(l.agentId,e,t,o.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:m,parentTaskId:null});return await d.updateMessageTaskId(this.db,o.id,p.id),(0,r.broadcastToUser)(u,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(o),task:(0,i.taskToResponse)(p)}).catch(()=>{}),p}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await d.revertToBuffered(this.db,o.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:o.id,revertErr:e})}),(0,r.broadcastToUser)(u,{type:"followup.dispatch_failed",conversationId:e,messageId:o.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let r of[...new Set((await n.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(r,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:r,err:t})}}}])},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=_0euvrn9._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[776227,e=>{"use strict";var t=e.i(463421);function a(e,a){return t.NextResponse.json({error:e},{status:a})}async function r(e,r){let 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){try{let{env:a,ctx:i}=(0,t.getCloudflareContext)(),o=a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s}).then(()=>{},e=>r.warn("broadcast service-binding failed",{...n,err:String(e)}));i.waitUntil(o)}catch{let t=await fetch(`${a.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:s});t.ok||r.warn("broadcast fallback failed",{...n,status:t.status})}}async function n(e,t){await s(`/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),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})}}}])},897069,e=>{"use strict";var t=e.i(424166);e.s(["parsePromptMentions",0,function(e,a){if(!e||0===a.length)return{enrichedPrompt:e,mentions:[]};let r=a.slice().sort((e,t)=>t.name.length-e.name.length),s=[],n=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let a=e.charCodeAt(t-1);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,t))continue;let a=t+1;for(let s of r){let r=a+s.name.length;if(!(r>e.length)&&e.slice(a,r).toLowerCase()===s.name.toLowerCase()&&function(e,t){if(t>=e.length)return!0;let a=e.charCodeAt(t);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,r)){if(n.some(e=>t>=e.start&&t<e.end))break;n.push({start:t,end:r,agent:s});break}}}let i=e;for(let e=n.length-1;e>=0;e--){let a=n[e],r={name:a.agent.name,email:a.agent.emailHandle?(0,t.toAlookAddress)(a.agent.emailHandle):null,description:a.agent.description};if(s.unshift(r),a.agent.emailHandle){let e=`@${a.agent.name} (${(0,t.toAlookAddress)(a.agent.emailHandle)})`;i=i.slice(0,a.start)+e+i.slice(a.end)}else i=i.slice(0,a.start)+`@${a.agent.name}`+i.slice(a.end)}return{enrichedPrompt:i,mentions:s}}])},506993,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),g=e.i(193695);e.i(195928);var _=e.i(81543),w=e.i(194218);e.i(700598);var T=e.i(291109),k=e.i(704024),I=e.i(888247),v=e.i(897069),y=e.i(675139),b=e.i(719436),A=e.i(152327),R=e.i(47962),S=e.i(776227),E=e.i(740580),x=e.i(205054),N=e.i(799579),C=e.i(726089);let M=(0,A.withAuth)(async(e,t)=>{let a=await (0,R.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,w.getCloudflareContext)(),s=(0,y.getDb)(r.DB),n=t.params?.id;if(!n)return(0,S.writeError)("conversation id is required",400);if(!await T.queries.conversation.getConversation(s,n,a.workspaceId))return(0,S.writeError)("conversation not found",404);let i=new URL(e.url),o=i.searchParams.get("around_task");if(o){let e=await T.queries.message.listMessagesAroundTask(s,n,o);return(0,S.writeJSON)(e.map(E.messageToResponse))}let d=i.searchParams.get("limit"),l=i.searchParams.get("before")||void 0,c=i.searchParams.get("before_id")||void 0,u=d?Math.min(Math.max(parseInt(d,10)||20,1),100):void 0,{messages:p,has_more:m}=await T.queries.message.listMessages(s,n,{limit:u,before:l,beforeId:c});return(0,S.writeJSON)({messages:p.map(E.messageToResponse),has_more:m})}),P=(0,A.withAuth)(async(e,t)=>{let a,r,s=await (0,R.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:n}=(0,w.getCloudflareContext)(),i=(0,y.getDb)(n.DB),o=n.EMAIL_BUCKET,d=t.params?.id;if(!d)return(0,S.writeError)("conversation id is required",400);let l=(e.headers.get("content-type")??"").includes("multipart/form-data"),c=[];if(l){let t;try{t=await e.formData()}catch{return(0,S.writeError)("invalid form data",400)}for(let[e,r]of(a=t.get("content")||"",t.entries()))"file"===e&&r instanceof File&&c.push(r)}else{let[t,r]=await (0,S.parseBody)(e,I.CreateMessageRequestSchema);if(r)return r;a=t.content}if(l&&!a)return(0,S.writeError)("content is required",400);if(c.length>10)return(0,S.writeError)("too many files (max 10)",400);for(let e of c)if(e.size>0xa00000)return(0,S.writeError)(`file "${e.name}" exceeds 10 MB limit`,413);let u=await T.queries.conversation.getConversation(i,d,s.workspaceId);if(!u)return(0,S.writeError)("conversation not found",404);let p=[];for(let e of c){let t=e.name.replace(/[/\\]/g,"_").replace(/\.\./g,"_").slice(0,255)||"file",a=e.type||"application/octet-stream",r="art_"+(0,b.nanoid)(),n=`artifacts/${s.workspaceId}/${u.agentId}/${d}/${r}/${t}`;await o.put(n,await e.arrayBuffer(),{httpMetadata:{contentType:a}}),await T.queries.artifact.createArtifact(i,{id:r,conversationId:d,agentId:u.agentId,workspaceId:s.workspaceId,filename:t,contentType:a,size:e.size,r2Key:n,source:"attachment"}),p.push(r)}let m=await T.queries.message.createMessage(i,{conversationId:d,role:"user",content:a,attachmentIds:p.length>0?JSON.stringify(p):null});T.queries.conversation.updateConversationTitle(i,d,function(e,t=50){let a=e.replace(/\s+/g," ").trim();if(a.length<=t)return a;let r=a.slice(0,t),s=r.lastIndexOf(" ");return(s>20?r.slice(0,s):r)+"..."}(a)).catch(()=>{});let f=a;if(a.includes("@"))try{let e=await T.queries.agent.listAgents(i,s.workspaceId,t.userId),{enrichedPrompt:n,mentions:o}=(0,v.parsePromptMentions)(a,e);if(f=n,o.length>0){let e=new Set;r={mentioned_agents:o.filter(t=>!e.has(t.name)&&(e.add(t.name),!0)).map(e=>({name:e.name,email:e.email,...e.description?{description:e.description}:{}}))}}}catch{}let h={...p.length>0?{attachment_ids:p}:{},...r},g="tr_"+(0,b.nanoid)(),_=new x.TaskService(i);try{let e=await _.enqueueTask(u.agentId,d,s.workspaceId,f,k.TASK_TYPES.USER_DM_MESSAGE,{contextKey:d,context:Object.keys(h).length>0?h:void 0,traceId:g,parentTaskId:null});return T.queries.message.updateMessageTaskId(i,m.id,e.id).catch(()=>{}),(0,C.broadcastToUser)(t.userId,{type:"task.updated",taskId:e.id,agentId:e.agentId,status:"queued"}).catch(()=>{}),(0,S.writeJSON)({message:(0,E.messageToResponse)(m),task:(0,E.taskToResponse)(e)},201)}catch(e){return N.log.error("enqueueTask error",{err:e}),(0,S.writeJSON)({message:(0,E.messageToResponse)(m),task:null,error:e instanceof Error?e.message:"Unknown error"},500)}});e.s(["GET",0,M,"POST",0,P],632577);var q=e.i(632577);let O=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/messages/route",pathname:"/api/conversations/[id]/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/messages/route.ts",nextConfigOutput:"standalone",userland:q,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:D,serverHooks:$}=O;async function K(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/conversations/[id]/messages/route";w=w.replace(/\/index$/,"")||"/";let T=await O.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:C,serverActionsManifest:M}=T,P=(0,o.normalizeAppPath)(w),q=!!(R.dynamicRoutes[P]||R.routes[N]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!R.routes[N],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new g.NoFallbackError}}let D=null;!q||O.isDev||A||(D="/index"===(D=N)?"/":D);let $=!0===O.isDev||!q,K=q&&!$;M&&C&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:C,serverActionsManifest:M});let B=e.method||"GET",j=(0,n.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,s.getRequestMeta)(e,"minimalMode"),W=(0,s.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,y,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let J={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:$,incrementalCache:W,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>O.onRequestError(e,t,r,s,S)},sharedContext:{buildId:k,deploymentId:I}},G=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(G,(0,l.signalFromNodeResponse)(t));try{let s,i=async e=>O.handle(V,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==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} ${w}`)}),o=async s=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&E&&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=J.renderOpts.fetchMetrics;let o=J.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=J.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(G,Y,n,J.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!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:_.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 O.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:E})},!1,S),t}},l=await O.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==_.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",E?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&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)(G,Y,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};H&&L?await o(L):(s=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(c.BaseServerSpan.handleRequest,{spanName:`${B} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:E})},!1,S),q)throw t;return await (0,p.sendResponse)(G,Y,new Response(null,{status:500})),null}}e.s(["handler",0,K,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:D})},"routeModule",0,O,"serverHooks",0,$,"workAsyncStorage",0,U,"workUnitAsyncStorage",0,D],506993)},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){try{let{env:a}=(0,t.getCloudflareContext)();if((await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:s})).ok)return}catch{}try{let t=await fetch(`${a.DEV_WS_DO_URL}${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)})}}async function n(e,t){await s(`/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),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})}}}])},897069,e=>{"use strict";var t=e.i(424166);e.s(["parsePromptMentions",0,function(e,a){if(!e||0===a.length)return{enrichedPrompt:e,mentions:[]};let r=a.slice().sort((e,t)=>t.name.length-e.name.length),s=[],n=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let a=e.charCodeAt(t-1);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,t))continue;let a=t+1;for(let s of r){let r=a+s.name.length;if(!(r>e.length)&&e.slice(a,r).toLowerCase()===s.name.toLowerCase()&&function(e,t){if(t>=e.length)return!0;let a=e.charCodeAt(t);return(!(a>=48)||!(a<=57))&&(!(a>=65)||!(a<=90))&&(!(a>=97)||!(a<=122))&&95!==a}(e,r)){if(n.some(e=>t>=e.start&&t<e.end))break;n.push({start:t,end:r,agent:s});break}}}let i=e;for(let e=n.length-1;e>=0;e--){let a=n[e],r={name:a.agent.name,email:a.agent.emailHandle?(0,t.toAlookAddress)(a.agent.emailHandle):null,description:a.agent.description};if(s.unshift(r),a.agent.emailHandle){let e=`@${a.agent.name} (${(0,t.toAlookAddress)(a.agent.emailHandle)})`;i=i.slice(0,a.start)+e+i.slice(a.end)}else i=i.slice(0,a.start)+`@${a.agent.name}`+i.slice(a.end)}return{enrichedPrompt:i,mentions:s}}])},506993,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),g=e.i(193695);e.i(195928);var _=e.i(81543),w=e.i(194218);e.i(700598);var T=e.i(291109),k=e.i(704024),I=e.i(888247),v=e.i(897069),y=e.i(675139),b=e.i(719436),A=e.i(152327),R=e.i(47962),S=e.i(776227),E=e.i(740580),x=e.i(205054),N=e.i(799579),C=e.i(726089);let M=(0,A.withAuth)(async(e,t)=>{let a=await (0,R.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:r}=(0,w.getCloudflareContext)(),s=(0,y.getDb)(r.DB),n=t.params?.id;if(!n)return(0,S.writeError)("conversation id is required",400);if(!await T.queries.conversation.getConversation(s,n,a.workspaceId))return(0,S.writeError)("conversation not found",404);let i=new URL(e.url),o=i.searchParams.get("around_task");if(o){let e=await T.queries.message.listMessagesAroundTask(s,n,o);return(0,S.writeJSON)(e.map(E.messageToResponse))}let d=i.searchParams.get("limit"),l=i.searchParams.get("before")||void 0,c=i.searchParams.get("before_id")||void 0,u=d?Math.min(Math.max(parseInt(d,10)||20,1),100):void 0,{messages:p,has_more:m}=await T.queries.message.listMessages(s,n,{limit:u,before:l,beforeId:c});return(0,S.writeJSON)({messages:p.map(E.messageToResponse),has_more:m})}),P=(0,A.withAuth)(async(e,t)=>{let a,r,s=await (0,R.withWorkspaceMember)(e,t);if(s instanceof Response)return s;let{env:n}=(0,w.getCloudflareContext)(),i=(0,y.getDb)(n.DB),o=n.EMAIL_BUCKET,d=t.params?.id;if(!d)return(0,S.writeError)("conversation id is required",400);let l=(e.headers.get("content-type")??"").includes("multipart/form-data"),c=[];if(l){let t;try{t=await e.formData()}catch{return(0,S.writeError)("invalid form data",400)}for(let[e,r]of(a=t.get("content")||"",t.entries()))"file"===e&&r instanceof File&&c.push(r)}else{let[t,r]=await (0,S.parseBody)(e,I.CreateMessageRequestSchema);if(r)return r;a=t.content}if(l&&!a)return(0,S.writeError)("content is required",400);if(c.length>10)return(0,S.writeError)("too many files (max 10)",400);for(let e of c)if(e.size>0xa00000)return(0,S.writeError)(`file "${e.name}" exceeds 10 MB limit`,413);let u=await T.queries.conversation.getConversation(i,d,s.workspaceId);if(!u)return(0,S.writeError)("conversation not found",404);let p=[];for(let e of c){let t=e.name.replace(/[/\\]/g,"_").replace(/\.\./g,"_").slice(0,255)||"file",a=e.type||"application/octet-stream",r="art_"+(0,b.nanoid)(),n=`artifacts/${s.workspaceId}/${u.agentId}/${d}/${r}/${t}`;await o.put(n,await e.arrayBuffer(),{httpMetadata:{contentType:a}}),await T.queries.artifact.createArtifact(i,{id:r,conversationId:d,agentId:u.agentId,workspaceId:s.workspaceId,filename:t,contentType:a,size:e.size,r2Key:n,source:"attachment"}),p.push(r)}let m=await T.queries.message.createMessage(i,{conversationId:d,role:"user",content:a,attachmentIds:p.length>0?JSON.stringify(p):null});T.queries.conversation.updateConversationTitle(i,d,function(e,t=50){let a=e.replace(/\s+/g," ").trim();if(a.length<=t)return a;let r=a.slice(0,t),s=r.lastIndexOf(" ");return(s>20?r.slice(0,s):r)+"..."}(a)).catch(()=>{});let f=a;if(a.includes("@"))try{let e=await T.queries.agent.listAgents(i,s.workspaceId,t.userId),{enrichedPrompt:n,mentions:o}=(0,v.parsePromptMentions)(a,e);if(f=n,o.length>0){let e=new Set;r={mentioned_agents:o.filter(t=>!e.has(t.name)&&(e.add(t.name),!0)).map(e=>({name:e.name,email:e.email,...e.description?{description:e.description}:{}}))}}}catch{}let h={...p.length>0?{attachment_ids:p}:{},...r},g="tr_"+(0,b.nanoid)(),_=new x.TaskService(i);try{let e=await _.enqueueTask(u.agentId,d,s.workspaceId,f,k.TASK_TYPES.USER_DM_MESSAGE,{contextKey:d,context:Object.keys(h).length>0?h:void 0,traceId:g,parentTaskId:null});return T.queries.message.updateMessageTaskId(i,m.id,e.id).catch(()=>{}),(0,C.broadcastToUser)(t.userId,{type:"task.updated",taskId:e.id,agentId:e.agentId,status:"queued"}).catch(()=>{}),(0,S.writeJSON)({message:(0,E.messageToResponse)(m),task:(0,E.taskToResponse)(e)},201)}catch(e){return N.log.error("enqueueTask error",{err:e}),(0,S.writeJSON)({message:(0,E.messageToResponse)(m),task:null,error:e instanceof Error?e.message:"Unknown error"},500)}});e.s(["GET",0,M,"POST",0,P],632577);var q=e.i(632577);let O=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/conversations/[id]/messages/route",pathname:"/api/conversations/[id]/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/conversations/[id]/messages/route.ts",nextConfigOutput:"standalone",userland:q,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:D,serverHooks:$}=O;async function K(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/conversations/[id]/messages/route";w=w.replace(/\/index$/,"")||"/";let T=await O.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:k,deploymentId:I,params:v,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:R,routerServerContext:S,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,resolvedPathname:N,clientReferenceManifest:C,serverActionsManifest:M}=T,P=(0,o.normalizeAppPath)(w),q=!!(R.dynamicRoutes[P]||R.routes[N]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!R.routes[N],t=R.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new g.NoFallbackError}}let D=null;!q||O.isDev||A||(D="/index"===(D=N)?"/":D);let $=!0===O.isDev||!q,K=q&&!$;M&&C&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:C,serverActionsManifest:M});let B=e.method||"GET",j=(0,n.getTracer)(),L=j.getActiveScopeSpan(),H=!!(null==S?void 0:S.isWrappedByNextServer),F=!!(0,s.getRequestMeta)(e,"minimalMode"),W=(0,s.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,y,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let J={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:$,incrementalCache:W,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>O.onRequestError(e,t,r,s,S)},sharedContext:{buildId:k,deploymentId:I}},G=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(G,(0,l.signalFromNodeResponse)(t));try{let s,i=async e=>O.handle(V,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==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} ${w}`)}),o=async s=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!F&&E&&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=J.renderOpts.fetchMetrics;let o=J.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=J.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(G,Y,n,J.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!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:_.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 O.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:E})},!1,S),t}},l=await O.handleResponse({req:e,nextConfig:y,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:F});if(!q)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==_.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",E?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&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)(G,Y,new Response(l.value.body,{headers:c,status:l.value.status||200})),null};H&&L?await o(L):(s=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(c.BaseServerSpan.handleRequest,{spanName:`${B} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:E})},!1,S),q)throw t;return await (0,p.sendResponse)(G,Y,new Response(null,{status:500})),null}}e.s(["handler",0,K,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:D})},"routeModule",0,O,"serverHooks",0,$,"workAsyncStorage",0,U,"workUnitAsyncStorage",0,D],506993)},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=_0h1-_48._.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){try{let{env:r,ctx:i}=(0,t.getCloudflareContext)(),o=r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n}).then(()=>{},e=>a.warn("broadcast service-binding failed",{...s,err:String(e)}));i.waitUntil(o)}catch{let t=await fetch(`${r.DEV_WS_DO_URL}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});t.ok||a.warn("broadcast fallback failed",{...s,status:t.status})}}async function s(e,t){await n(`/broadcast/user/${e}`,JSON.stringify(t),{userId:e,type:t.type})}e.s(["broadcastToUser",0,s])},61601,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),u=e.i(906846),d=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),v=e.i(944002),R=e.i(193695);e.i(195928);var _=e.i(81543),w=e.i(194218);e.i(700598);var f=e.i(291109),y=e.i(888247),g=e.i(152327),E=e.i(776227),b=e.i(675139),C=e.i(726089);let x=(0,g.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,E.writeError)("Forbidden: machine token required",403);let{env:r}=(0,w.getCloudflareContext)(),a=(0,b.getDb)(r.DB),[n,s]=await (0,E.parseBody)(e,y.WorkspaceFileReportSchema);if(s)return s;let i=await f.queries.workspaceFileRequest.getRequest(a,n.request_id);if(!i)return(0,E.writeError)("request not found",404);let o={entries:n.entries,content:n.content,isBinary:n.isBinary,error:n.error,path:n.path};return await f.queries.workspaceFileRequest.completeRequest(a,i.id,o),(0,C.broadcastToUser)(t.userId,{type:"workspace.files",agentId:i.agentId,requestId:i.id,requestType:i.requestType,result:o}).catch(()=>{}),(0,E.writeJSON)({status:"ok"})});e.s(["POST",0,x],447583);var k=e.i(447583);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/workspace/report/route",pathname:"/api/daemon/workspace/report",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/workspace/report/route.ts",nextConfigOutput:"standalone",userland:k,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:q,serverHooks:N}=S;async function P(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/daemon/workspace/report/route";w=w.replace(/\/index$/,"")||"/";let f=await S.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:g,params:E,nextConfig:b,parsedUrl:C,isDraftMode:x,prerenderManifest:k,routerServerContext:T,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:P,clientReferenceManifest:A,serverActionsManifest:O}=f,j=(0,o.normalizeAppPath)(w),I=!!(k.dynamicRoutes[j]||k.routes[P]),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!k.routes[P],t=k.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await D();throw new R.NoFallbackError}}let U=null;!I||S.isDev||x||(U="/index"===(U=P)?"/":U);let H=!0===S.isDev||!I,$=I&&!H;O&&A&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:A,serverActionsManifest:O});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 S.getIncrementalCache(e,b,k,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Z={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>S.onRequestError(e,t,a,n,T)},sharedContext:{buildId:y,deploymentId:g}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>S.handle(J,Z).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=`${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} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&q&&N&&!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=Z.renderOpts.fetchMetrics;let o=Z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=Z.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,G,s,Z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Z.renderOpts.collectedRevalidate&&!(Z.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&Z.renderOpts.collectedRevalidate,a=void 0===Z.renderOpts.collectedExpire||Z.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:Z.renderOpts.collectedExpire;return{value:{kind:_.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:q})},!1,T),t}},u=await S.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!I)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==_.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",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&I||d.delete(v.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)(V,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};K&&F?await o(F):(n=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:q})},!1,T),I)throw t;return await (0,p.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:q})},"routeModule",0,S,"serverHooks",0,N,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,q],61601)},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){try{let{env:r}=(0,t.getCloudflareContext)();if((await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n})).ok)return}catch{}try{let t=await fetch(`${r.DEV_WS_DO_URL}${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])},61601,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),u=e.i(906846),d=e.i(359838),c=e.i(383303),p=e.i(234173),h=e.i(270215),m=e.i(830665),v=e.i(944002),R=e.i(193695);e.i(195928);var _=e.i(81543),w=e.i(194218);e.i(700598);var f=e.i(291109),y=e.i(888247),g=e.i(152327),E=e.i(776227),C=e.i(675139),b=e.i(726089);let x=(0,g.withAuth)(async(e,t)=>{if(!t.workspaceId)return(0,E.writeError)("Forbidden: machine token required",403);let{env:r}=(0,w.getCloudflareContext)(),a=(0,C.getDb)(r.DB),[n,s]=await (0,E.parseBody)(e,y.WorkspaceFileReportSchema);if(s)return s;let i=await f.queries.workspaceFileRequest.getRequest(a,n.request_id);if(!i)return(0,E.writeError)("request not found",404);let o={entries:n.entries,content:n.content,isBinary:n.isBinary,error:n.error,path:n.path};return await f.queries.workspaceFileRequest.completeRequest(a,i.id,o),(0,b.broadcastToUser)(t.userId,{type:"workspace.files",agentId:i.agentId,requestId:i.id,requestType:i.requestType,result:o}).catch(()=>{}),(0,E.writeJSON)({status:"ok"})});e.s(["POST",0,x],447583);var k=e.i(447583);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/daemon/workspace/report/route",pathname:"/api/daemon/workspace/report",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/workspace/report/route.ts",nextConfigOutput:"standalone",userland:k,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:q,serverHooks:N}=S;async function P(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/daemon/workspace/report/route";w=w.replace(/\/index$/,"")||"/";let f=await S.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:g,params:E,nextConfig:C,parsedUrl:b,isDraftMode:x,prerenderManifest:k,routerServerContext:T,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:P,clientReferenceManifest:A,serverActionsManifest:O}=f,j=(0,o.normalizeAppPath)(w),I=!!(k.dynamicRoutes[j]||k.routes[P]),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=!!k.routes[P],t=k.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await D();throw new R.NoFallbackError}}let U=null;!I||S.isDev||x||(U="/index"===(U=P)?"/":U);let H=!0===S.isDev||!I,$=I&&!H;O&&A&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:A,serverActionsManifest:O});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 S.getIncrementalCache(e,C,k,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Z={params:E,previewProps:k.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)=>S.onRequestError(e,t,a,n,T)},sharedContext:{buildId:y,deploymentId:g}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>S.handle(J,Z).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=`${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} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&q&&N&&!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=Z.renderOpts.fetchMetrics;let o=Z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=Z.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,G,s,Z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Z.renderOpts.collectedRevalidate&&!(Z.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&Z.renderOpts.collectedRevalidate,a=void 0===Z.renderOpts.collectedExpire||Z.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:Z.renderOpts.collectedExpire;return{value:{kind:_.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:q})},!1,T),t}},u=await S.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!I)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==_.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",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&I||d.delete(v.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)(V,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};K&&F?await o(F):(n=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:q})},!1,T),I)throw t;return await (0,p.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:q})},"routeModule",0,S,"serverHooks",0,N,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,q],61601)},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=_0iyza7b._.js.map