@alook/app 0.0.88 → 0.0.90
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.
- package/bundled/email-worker/index.js +32 -8
- package/bundled/email-worker/wrangler.toml +1 -0
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0~u7o_o2s1c04.js +1 -0
- package/bundled/web/.open-next/cache/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03t_17c._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0drn_ol._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g1_3hn._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h3guve._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_issues_issue-sheet_tsx_02fma1.._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +29 -29
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
- package/bundled/web/wrangler.toml +1 -1
- package/bundled/ws-do/index.js +4 -0
- package/bundled/ws-do/wrangler.toml +1 -0
- package/dist/cli/index.js +13 -1
- package/dist/cli/session-runner.js +13 -1
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0yhw7i91nm01l.js +0 -1
- /package/bundled/web/.open-next/assets/_next/static/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{-kpnfm6PFlHuGmHkAST-N → PA_Z4qV7_2EOBByV_oeAP}/robots.txt.cache +0 -0
package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g1_3hn._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),r=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,i){let o=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),d=[...new Set(o.map(e=>e.agentId))],[l,c,u]=d.length>0?await Promise.all([(0,r.cached)(r.cacheKeys.allAgents(i),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allEmailAccounts(i),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allColleagues(i),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,i)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(d);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],p=new Map(l.map(e=>[e.id,e])),h=new Map;for(let e of c){let t=h.get(e.agentId)??[];t.push(e.emailAddress),h.set(e.agentId,t)}let w=new Map;for(let e of u){let t=w.get(e.agentId)??[];t.push(e),w.set(e.agentId,t)}let g=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],I=new Map((g.length>0?await t.queries.conversation.getConversationsByIds(this.db,g,i):[]).map(e=>[e.id,e])),m=new Map,f=new Map,k=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){k.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=p.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=h.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!m.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.member(i,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,i));m.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=m.get(e.ownerId);a?.globalInstruction&&(l=[a.globalInstruction,l].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!f.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));f.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=f.get(e.ownerId)?.name??null}let u=I.get(o.conversationId)??null,g=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!f.has(u.userId)){let e=await (0,r.cached)(r.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));f.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=f.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let v=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));k.push({...(0,n.taskToResponse)(o),channel:g,sender:T,agent:e?{instructions:l,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:d,user_email:null,user_name:c,colleagues:v}:null})}return k}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),n=e.i(726089),r=e.i(740580),i=e.i(774078),o=e.i(555230);let d=t.queries.task,l=t.queries.agent,c=t.queries.message,u=t.queries.conversation,p=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,r=a.TASK_TYPES.USER_DM_MESSAGE,o){let c=await l.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(o?.traceId&&o.parentTaskId&&await d.countTasksByTrace(this.db,o.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await d.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:r,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await l.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await d.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await d.findSteerableReplacement(this.db,e,t);if(!s||await d.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await d.claimTask(this.db,e,t);return s?(await l.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await d.claimKillTasks(this.db,e,a,t),n=t-s.length,r=n>0?await d.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),o=new Set,c=[...s],u=[];for(let e of r){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),u.push(e))}if(0===u.length)return c;let p=[...new Set(u.map(e=>e.agentId))],h=new Map((await l.getAgentsByIds(this.db,p,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,h.get(e.agentId)??null)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await d.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let o;try{o=JSON.parse(a)}catch{o={raw:a}}let l=await d.completeTask(this.db,e,t,{result:o,sessionId:i||null});if(!l){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let p=o,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:h,taskId:e});try{let e=await u.getConversation(this.db,l.conversationId,t);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:l.conversationId,message:(0,r.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(l.agentId,l.workspaceId),await this.dispatchNextBufferedMessage(l.conversationId,l.workspaceId),l}async failTask(e,t,i){let o=await d.failTask(this.db,e,t,i);if(!o){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(o.type===a.TASK_TYPES.KILL_TASK)return o;if(i){let a=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await u.getConversation(this.db,o.conversationId,t);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:o.conversationId,message:(0,r.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await p.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await p.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,r.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await d.supersedeTask(this.db,e,t);if(!a){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await d.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await d.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let n=await d.getActiveTaskByConversation(this.db,e,t);if(!n)return null;let r=await d.cancelTask(this.db,n.id,t);return r?(("dispatched"===n.status||"running"===n.status)&&await d.createTask(this.db,{agentId:n.agentId,runtimeId:n.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:n.id}}),await c.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:n.id}),await this.reconcileAgentStatus(n.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),r):null}async reconcileAgentStatus(e,t){let a=await d.countRunningTasks(this.db,e,t);await l.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await c.activateNextBufferedMessage(this.db,e);if(!i)return null;let o=await u.getConversation(this.db,e,t);if(!o)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let l=o.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],u=await d.getLatestTaskForConversation(this.db,e),p=u?.traceId??null,h=await this.enqueueTask(o.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,h.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,r.messageToResponse)(i),task:(0,r.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,n.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:e,messageId:i.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let n of[...new Set((await d.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let r=await d.dispatchTaskById(this.db,e.id,a);if(!r)return;let i=new o.TaskPayloadBuilder(this.db),l=await i.buildFullPayloads([r],a);if(0===l.length)return void await d.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:l});0===t&&await d.revertDispatchedToQueued(this.db,e.id,a)}catch{await d.revertDispatchedToQueued(this.db,e.id,a)}}}])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(719436),n=e.i(799579);let{listDueCalendarEvents:r,claimCalendarEvent:i,revertCalendarEventClaim:o,updateCalendarEventSchedule:d,computeNextScheduledAt:l}=t.queries.calendarEvent;async function c(e,u,p=new Date().toISOString()){let h=await r(e,u,p),w=new Map,g=0;for(let r of h){let c=await t.queries.agent.getAgent(e,r.agentId,r.workspaceId);if(!c){n.log.warn("calendar: agent missing, skipping",{id:r.id});continue}if(!c.runtimeId){n.log.warn("calendar: agent has no runtime, skipping",{id:r.id});continue}if(!c.ownerId){n.log.warn("calendar: agent has no owner, skipping",{id:r.id});continue}let u=r.lastTriggeredAt??null;if(await i(e,r.id,r.scheduledAt,p))try{let n=await t.queries.conversation.createConversation(e,{workspaceId:r.workspaceId,agentId:r.agentId,userId:c.ownerId,title:`[Calendar] ${r.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:n.id,role:"event",content:r.title,metadata:JSON.stringify({calendarEventId:r.id})}),!w.has(c.ownerId)){let a=await t.queries.user.getUser(e,c.ownerId);w.set(c.ownerId,a?{name:a.name,email:a.email}:null)}let i=w.get(c.ownerId),o={};if(r.description&&(o.description=r.description),i&&(o.scheduled_by=i),await t.queries.task.createTask(e,{agentId:r.agentId,runtimeId:c.runtimeId,workspaceId:r.workspaceId,conversationId:n.id,prompt:r.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,s.nanoid)(),parentTaskId:null,context:Object.keys(o).length>0?o:void 0}),r.repeatInterval){let t=l(r.scheduledAt,r.repeatInterval,r.repeatStopAt??null,p,r.exceptions??[]);t&&await d(e,r.id,t)}g++}catch(t){n.log.warn("calendar: post-claim write failed, reverting",{id:r.id,err:String(t)});try{await o(e,r.id,u)}catch(e){n.log.error("calendar: compensating revert failed",{id:r.id,err:String(e)})}}}return g>0&&n.log.info("calendar: promoted due events",{workspaceId:u,enqueued:g}),g}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,s]=e.split("-").map(Number);if(!t||!a||!s)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,s,23,59,59,999).toISOString()}])},388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),s=e.i(774078);async function n(e,n){let r=`sweep:${n}`,i=!1;try{i=await (0,s.throttled)(r,30,async()=>{})}catch{i=!0}if(!i)return;let o=await t.queries.task.failStaleDispatchedTasks(e,n);await t.queries.task.failStaleKillTasks(e,n);let d=[...o,...await t.queries.task.failStaleRunningTasks(e,n)];if(d.length>0){let t=new a.TaskService(e),r=new Set;for(let e of d){let a=`${e.agentId}:${e.workspaceId}`;r.has(a)||(r.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let i=new Set;for(let e of d)i.has(e.conversationId)||(i.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId));let o=new Date().toISOString().slice(0,10);await Promise.all([(0,s.invalidate)(s.cacheKeys.allAgents(n)),(0,s.invalidate)(s.cacheKeys.overviewTaskStats(n,o)),(0,s.invalidate)(s.cacheKeys.activeTaskCounts(n))]).catch(()=>{})}}e.s(["sweepStaleState",0,n])},452307,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var n=e.i(888247),r=e.i(675139),i=e.i(152327),o=e.i(776227),d=e.i(388335),l=e.i(801093),c=e.i(799579),u=t([i]);[i]=u.then?(await u)():u;let p=(0,i.withAuth)(async(t,a)=>{let{env:i}=(0,s.getCloudflareContext)(),{throttled:u}=await e.A(386211),[,p]=await (0,o.parseBody)(t,n.SweepRequestSchema);if(p)return p;if(!a.workspaceId)return(0,o.writeError)("Forbidden: machine token required",403);let h=(0,r.getDb)(i.DB);try{await (0,d.sweepStaleState)(h,a.workspaceId)}catch(e){c.log.warn("sweep failed",{workspaceId:a.workspaceId,err:String(e)})}try{await u(`cal:${a.workspaceId}`,30,async()=>{let e=await (0,l.promoteDueCalendarEventsForWorkspace)(h,a.workspaceId);e>0&&c.log.info("calendar: enqueued",{workspaceId:a.workspaceId,enqueued:e})})}catch(e){c.log.warn("calendar: promote failed",{workspaceId:a.workspaceId,err:String(e)})}return(0,o.writeJSON)({ok:!0})});e.s(["POST",0,p]),a()}catch(e){a(e)}},!1),68877,e=>e.a(async(t,a)=>{try{var s=e.i(80774),n=e.i(404478),r=e.i(732985),i=e.i(481671),o=e.i(638081),d=e.i(204960),l=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),I=e.i(830665),m=e.i(944002),f=e.i(193695);e.i(195928);var k=e.i(81543),T=e.i(452307),v=t([T]);[T]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/daemon/sweep/route",pathname:"/api/daemon/sweep",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/sweep/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:_,serverHooks:A}=b;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/daemon/sweep/route";s=s.replace(/\/index$/,"")||"/";let r=await b.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:v,params:y,nextConfig:S,parsedUrl:_,isDraftMode:A,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:P,serverActionsManifest:M}=r,N=(0,l.normalizeAppPath)(s),K=!!(E.dynamicRoutes[N]||E.routes[q]),D=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,_,!1):t.end("This page could not be found"),null);if(K&&!A){let e=!!E.routes[q],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await D();throw new f.NoFallbackError}}let B=null;!K||b.isDev||A||(B=q,B="/index"===B?"/":B);let O=!0===b.isDev||!K,U=K&&!O;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let $=e.method||"GET",F=(0,o.getTracer)(),H=F.getActiveScopeSpan(),j=!!(null==R?void 0:R.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,S,E,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:y,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:O,incrementalCache:W,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>b.onRequestError(e,t,s,n,R)},sharedContext:{buildId:T,deploymentId:v}},G=new c.NodeNextRequest(e),V=new c.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,i=async e=>b.handle(J,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",n),r.updateName(t))}else e.updateName(`${$} ${s}`)}),d=async r=>{var o,d;let l=async({previousCacheEntry:n})=>{try{if(!L&&C&&x&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(r);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=Y.renderOpts.collectedTags;if(!K)return await (0,w.sendResponse)(G,V,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:k.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,R),t}},c=await b.handleResponse({req:e,nextConfig:S,cacheKey:B,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!K)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==k.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&K||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,I.getCacheControlHeader)(c.cacheControl)),await (0,w.sendResponse)(G,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&H?await d(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!j))}catch(t){if(t instanceof f.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,R),K)throw t;return await (0,w.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:_})},"routeModule",0,b,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,_]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
|
|
1
|
+
module.exports=[555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),r=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,i){let o=e.filter(e=>e.type!==a.TASK_TYPES.KILL_TASK),d=[...new Set(o.map(e=>e.agentId))],[l,c,u]=d.length>0?await Promise.all([(0,r.cached)(r.cacheKeys.allAgents(i),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allEmailAccounts(i),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,i)),(0,r.cached)(r.cacheKeys.allColleagues(i),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,i)).catch(()=>[])]).then(([e,t,a])=>{let s=new Set(d);return[e.filter(e=>s.has(e.id)),t.filter(e=>s.has(e.agentId)),a.filter(e=>s.has(e.agentId))]}):[[],[],[]],p=new Map(l.map(e=>[e.id,e])),h=new Map;for(let e of c){let t=h.get(e.agentId)??[];t.push(e.emailAddress),h.set(e.agentId,t)}let w=new Map;for(let e of u){let t=w.get(e.agentId)??[];t.push(e),w.set(e.agentId,t)}let g=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],I=new Map((g.length>0?await t.queries.conversation.getConversationsByIds(this.db,g,i):[]).map(e=>[e.id,e])),m=new Map,f=new Map,k=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){k.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=p.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=h.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!m.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.member(i,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,i));m.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=m.get(e.ownerId);a?.globalInstruction&&(l=[a.globalInstruction,l].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!f.has(e.ownerId)){let a=await (0,r.cached)(r.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));f.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=f.get(e.ownerId)?.name??null}let u=I.get(o.conversationId)??null,g=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!f.has(u.userId)){let e=await (0,r.cached)(r.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));f.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=f.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let v=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));k.push({...(0,n.taskToResponse)(o),channel:g,sender:T,agent:e?{instructions:l,name:e.name,runtime_config:e.runtimeConfig||{},email_handle:e.emailHandle||null,email_addresses:d,user_email:null,user_name:c,colleagues:v}:null})}return k}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),n=e.i(726089),r=e.i(740580),i=e.i(774078),o=e.i(555230);let d=t.queries.task,l=t.queries.agent,c=t.queries.message,u=t.queries.conversation,p=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,r=a.TASK_TYPES.USER_DM_MESSAGE,o){let c=await l.getAgent(this.db,e,s);if(!c)throw Error("agent not found");if(!c.runtimeId)throw Error("agent has no runtime");if(o?.traceId&&o.parentTaskId&&await d.countTasksByTrace(this.db,o.traceId)>=a.MAX_TASKS_PER_TRACE)throw Error(`Trace limit reached (${a.MAX_TASKS_PER_TRACE} tasks). This may indicate an infinite loop between agents.`);let u=await d.createTask(this.db,{agentId:e,runtimeId:c.runtimeId,workspaceId:s,conversationId:t,prompt:n,type:r,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,i.invalidate)(i.cacheKeys.activeTaskCounts(s)).catch(()=>{}),await this.pushTaskToDaemon(u,s).catch(()=>{}),u}async claimTask(e,t){let a=await l.getAgent(this.db,e,t);return this.claimTaskWithAgent(e,t,a)}async claimTaskWithAgent(e,t,a){if(!a)return null;if(await d.countRunningTasks(this.db,e,t)>=a.maxConcurrentTasks){let s=await d.findSteerableReplacement(this.db,e,t);if(!s||await d.countRunningTasks(this.db,e,t,s.predecessorId)>=a.maxConcurrentTasks)return null}let s=await d.claimTask(this.db,e,t);return s?(await l.updateAgentStatus(this.db,e,t,"working"),s):null}async claimTasksForRuntimes(e,t,a){let s=await d.claimKillTasks(this.db,e,a,t),n=t-s.length,r=n>0?await d.listPendingTasksByRuntimes(this.db,e,a):[],i=new Set(e),o=new Set,c=[...s],u=[];for(let e of r){if(u.length>=n)break;let t=`${e.agentId}:${e.workspaceId}`;o.has(t)||(o.add(t),u.push(e))}if(0===u.length)return c;let p=[...new Set(u.map(e=>e.agentId))],h=new Map((await l.getAgentsByIds(this.db,p,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,h.get(e.agentId)??null)))))e&&i.has(e.runtimeId)&&c.push(e);return c}async startTask(e,t){let a=await d.startTask(this.db,e,t);if(!a)throw Error("task not in dispatched status");return a}async completeTask(e,t,a,i){let o;try{o=JSON.parse(a)}catch{o={raw:a}}let l=await d.completeTask(this.db,e,t,{result:o,sessionId:i||null});if(!l){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`completeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot complete task in '${a}' status`)}let p=o,h="string"==typeof p?.output?p.output:"";if(h){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:h,taskId:e});try{let e=await u.getConversation(this.db,l.conversationId,t);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:l.conversationId,message:(0,r.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(l.agentId,l.workspaceId),await this.dispatchNextBufferedMessage(l.conversationId,l.workspaceId),l}async failTask(e,t,i){let o=await d.failTask(this.db,e,t,i);if(!o){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`failTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot fail task in '${a}' status`)}if(o.type===a.TASK_TYPES.KILL_TASK)return o;if(i){let a=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:`Error: ${i}`,taskId:e});try{let e=await u.getConversation(this.db,o.conversationId,t);e&&(0,n.broadcastToUser)(e.userId,{type:"conversation.message",conversationId:o.conversationId,message:(0,r.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await p.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await p.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let i=await c.createMessage(this.db,{conversationId:e.conversationId,role:"event",content:`Issue status changed: ${s.status} -> ${t}`,taskId:e.id,metadata:JSON.stringify({issueId:s.id})});try{let t=await u.getConversation(this.db,e.conversationId,e.workspaceId);t&&(0,n.broadcastToUser)(t.userId,{type:"conversation.message",conversationId:e.conversationId,message:(0,r.messageToResponse)(i)}).catch(()=>{})}catch{}}async supersedeTask(e,t){let a=await d.supersedeTask(this.db,e,t);if(!a){let t=await d.getTask(this.db,e),a=t?.status??"unknown";throw s.log.warn(`supersedeTask failed: task is in '${a}' status`,{taskId:e}),Error(`cannot supersede task in '${a}' status`)}return await this.reconcileAgentStatus(a.agentId,a.workspaceId),await this.dispatchNextBufferedMessage(a.conversationId,a.workspaceId),a}async retryTask(e,t){let a=await d.getTask(this.db,e);if(!a||a.workspaceId!==t)throw Error("task not found");if("failed"!==a.status)throw Error("only failed tasks can be retried");let s=await d.markFailedAsSuperseded(this.db,e,t);if(!s)throw Error("failed to mark task as superseded");return{oldTask:s,newTask:await this.enqueueTask(a.agentId,a.conversationId,t,a.prompt,a.type,{contextKey:a.contextKey??null,context:a.context,traceId:a.traceId??null,parentTaskId:a.parentTaskId??null})}}async cancelActiveTask(e,t,s){let n=await d.getActiveTaskByConversation(this.db,e,t);if(!n)return null;let r=await d.cancelTask(this.db,n.id,t);return r?(("dispatched"===n.status||"running"===n.status)&&await d.createTask(this.db,{agentId:n.agentId,runtimeId:n.runtimeId,workspaceId:t,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:n.id}}),await c.createMessage(this.db,{conversationId:e,role:"assistant",content:s?.reason??"Task cancelled by user",taskId:n.id}),await this.reconcileAgentStatus(n.agentId,t),s?.skipDispatch||await this.dispatchNextBufferedMessage(e,t),r):null}async reconcileAgentStatus(e,t){let a=await d.countRunningTasks(this.db,e,t);await l.updateAgentStatus(this.db,e,t,a>0?"working":"idle"),(0,i.invalidate)(i.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let i=await c.activateNextBufferedMessage(this.db,e);if(!i)return null;let o=await u.getConversation(this.db,e,t);if(!o)return s.log.warn("dispatchNextBufferedMessage: conversation not found",{conversationId:e}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),null;let l=o.userId;try{let s=i.attachmentIds?JSON.parse(i.attachmentIds):[],u=await d.getLatestTaskForConversation(this.db,e),p=u?.traceId??null,h=await this.enqueueTask(o.agentId,e,t,i.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:p,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,h.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,r.messageToResponse)(i),task:(0,r.taskToResponse)(h)}).catch(()=>{}),h}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,i.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:i.id,revertErr:e})}),(0,n.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:e,messageId:i.id,error:t instanceof Error?t.message:"Failed to dispatch follow-up"}).catch(()=>{}),null}}async cancelTrace(e,t,a){for(let n of[...new Set((await d.getTraceTree(this.db,e,t)).filter(e=>["queued","dispatched","running"].includes(e.status)).map(e=>e.conversationId))])try{await this.cancelActiveTask(n,t,{skipDispatch:!0,reason:a?.reason})}catch(t){s.log.warn("cancelTrace: failed to cancel task",{traceId:e,convId:n,err:t})}}async pushTaskToDaemon(e,a){let s=await t.queries.runtime.getAgentRuntime(this.db,e.runtimeId);if(!s)return;let r=await d.dispatchTaskById(this.db,e.id,a);if(!r)return;let i=new o.TaskPayloadBuilder(this.db),l=await i.buildFullPayloads([r],a);if(0===l.length)return void await d.revertDispatchedToQueued(this.db,e.id,a);try{let{sent:t}=await (0,n.broadcastToDaemon)(s.daemonId,{type:"daemon.tasks",tasks:l});0===t&&await d.revertDispatchedToQueued(this.db,e.id,a)}catch{await d.revertDispatchedToQueued(this.db,e.id,a)}}}])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(719436),n=e.i(799579);let{listDueCalendarEvents:r,claimCalendarEvent:i,revertCalendarEventClaim:o,updateCalendarEventSchedule:d,computeNextScheduledAt:l}=t.queries.calendarEvent;async function c(e,u,p=new Date().toISOString()){let h=await r(e,u,p),w=new Map,g=0;for(let r of h){let c=await t.queries.agent.getAgent(e,r.agentId,r.workspaceId);if(!c){n.log.warn("calendar: agent missing, skipping",{id:r.id});continue}if(!c.runtimeId){n.log.warn("calendar: agent has no runtime, skipping",{id:r.id});continue}if(!c.ownerId){n.log.warn("calendar: agent has no owner, skipping",{id:r.id});continue}let u=r.lastTriggeredAt??null;if(await i(e,r.id,r.scheduledAt,p))try{let n=await t.queries.conversation.createConversation(e,{workspaceId:r.workspaceId,agentId:r.agentId,userId:c.ownerId,title:`[Calendar] ${r.title}`.slice(0,120),type:a.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:n.id,role:"event",content:r.title,metadata:JSON.stringify({calendarEventId:r.id})}),!w.has(c.ownerId)){let a=await t.queries.user.getUser(e,c.ownerId);w.set(c.ownerId,a?{name:a.name,email:a.email}:null)}let i=w.get(c.ownerId),o={event_id:r.id,datetime:r.scheduledAt,is_recurring:!!r.repeatInterval,repeat_interval:r.repeatInterval??null};if(r.description&&(o.description=r.description),i&&(o.scheduled_by=i),await t.queries.task.createTask(e,{agentId:r.agentId,runtimeId:c.runtimeId,workspaceId:r.workspaceId,conversationId:n.id,contextKey:n.id,prompt:r.title,type:a.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,s.nanoid)(),parentTaskId:null,context:o}),r.repeatInterval){let t=l(r.scheduledAt,r.repeatInterval,r.repeatStopAt??null,p,r.exceptions??[]);t&&await d(e,r.id,t)}g++}catch(t){n.log.warn("calendar: post-claim write failed, reverting",{id:r.id,err:String(t)});try{await o(e,r.id,u)}catch(e){n.log.error("calendar: compensating revert failed",{id:r.id,err:String(e)})}}}return g>0&&n.log.info("calendar: promoted due events",{workspaceId:u,enqueued:g}),g}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,a,s]=e.split("-").map(Number);if(!t||!a||!s)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,a-1,s,23,59,59,999).toISOString()}])},388335,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(205054),s=e.i(774078);async function n(e,n){let r=`sweep:${n}`,i=!1;try{i=await (0,s.throttled)(r,30,async()=>{})}catch{i=!0}if(!i)return;let o=await t.queries.task.failStaleDispatchedTasks(e,n);await t.queries.task.failStaleKillTasks(e,n);let d=[...o,...await t.queries.task.failStaleRunningTasks(e,n)];if(d.length>0){let t=new a.TaskService(e),r=new Set;for(let e of d){let a=`${e.agentId}:${e.workspaceId}`;r.has(a)||(r.add(a),await t.reconcileAgentStatus(e.agentId,e.workspaceId))}let i=new Set;for(let e of d)i.has(e.conversationId)||(i.add(e.conversationId),await t.dispatchNextBufferedMessage(e.conversationId,e.workspaceId));let o=new Date().toISOString().slice(0,10);await Promise.all([(0,s.invalidate)(s.cacheKeys.allAgents(n)),(0,s.invalidate)(s.cacheKeys.overviewTaskStats(n,o)),(0,s.invalidate)(s.cacheKeys.activeTaskCounts(n))]).catch(()=>{})}}e.s(["sweepStaleState",0,n])},452307,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var n=e.i(888247),r=e.i(675139),i=e.i(152327),o=e.i(776227),d=e.i(388335),l=e.i(801093),c=e.i(799579),u=t([i]);[i]=u.then?(await u)():u;let p=(0,i.withAuth)(async(t,a)=>{let{env:i}=(0,s.getCloudflareContext)(),{throttled:u}=await e.A(386211),[,p]=await (0,o.parseBody)(t,n.SweepRequestSchema);if(p)return p;if(!a.workspaceId)return(0,o.writeError)("Forbidden: machine token required",403);let h=(0,r.getDb)(i.DB);try{await (0,d.sweepStaleState)(h,a.workspaceId)}catch(e){c.log.warn("sweep failed",{workspaceId:a.workspaceId,err:String(e)})}try{await u(`cal:${a.workspaceId}`,30,async()=>{let e=await (0,l.promoteDueCalendarEventsForWorkspace)(h,a.workspaceId);e>0&&c.log.info("calendar: enqueued",{workspaceId:a.workspaceId,enqueued:e})})}catch(e){c.log.warn("calendar: promote failed",{workspaceId:a.workspaceId,err:String(e)})}return(0,o.writeJSON)({ok:!0})});e.s(["POST",0,p]),a()}catch(e){a(e)}},!1),68877,e=>e.a(async(t,a)=>{try{var s=e.i(80774),n=e.i(404478),r=e.i(732985),i=e.i(481671),o=e.i(638081),d=e.i(204960),l=e.i(924918),c=e.i(363585),u=e.i(906846),p=e.i(359838),h=e.i(383303),w=e.i(234173),g=e.i(270215),I=e.i(830665),m=e.i(944002),f=e.i(193695);e.i(195928);var k=e.i(81543),T=e.i(452307),v=t([T]);[T]=v.then?(await v)():v;let b=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/daemon/sweep/route",pathname:"/api/daemon/sweep",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/daemon/sweep/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:_,serverHooks:A}=b;async function y(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/daemon/sweep/route";s=s.replace(/\/index$/,"")||"/";let r=await b.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:v,params:y,nextConfig:S,parsedUrl:_,isDraftMode:A,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:P,serverActionsManifest:M}=r,N=(0,l.normalizeAppPath)(s),K=!!(E.dynamicRoutes[N]||E.routes[q]),D=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,_,!1):t.end("This page could not be found"),null);if(K&&!A){let e=!!E.routes[q],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await D();throw new f.NoFallbackError}}let B=null;!K||b.isDev||A||(B=q,B="/index"===B?"/":B);let O=!0===b.isDev||!K,U=K&&!O;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let $=e.method||"GET",F=(0,o.getTracer)(),H=F.getActiveScopeSpan(),j=!!(null==R?void 0:R.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,S,E,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:y,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:O,incrementalCache:W,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>b.onRequestError(e,t,s,n,R)},sharedContext:{buildId:T,deploymentId:v}},G=new c.NodeNextRequest(e),V=new c.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,i=async e=>b.handle(J,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",n),r.updateName(t))}else e.updateName(`${$} ${s}`)}),d=async r=>{var o,d;let l=async({previousCacheEntry:n})=>{try{if(!L&&C&&x&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(r);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let d=Y.renderOpts.collectedTags;if(!K)return await (0,w.sendResponse)(G,V,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:k.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,R),t}},c=await b.handleResponse({req:e,nextConfig:S,cacheKey:B,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!K)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==k.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&K||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,I.getCacheControlHeader)(c.cacheControl)),await (0,w.sendResponse)(G,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};j&&H?await d(H):(r=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!j))}catch(t){if(t instanceof f.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,R),K)throw t;return await (0,w.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:_})},"routeModule",0,b,"serverHooks",0,A,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,_]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))},386211,e=>{e.v(e=>Promise.resolve().then(()=>e(774078)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0g1_3hn._.js.map
|
package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h3guve._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let s;try{let{env:r}=(0,t.getCloudflareContext)();s=r.DEV_WS_DO_URL;let
|
|
1
|
+
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var r=e.i(704024);let a=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let s;try{let{env:r}=(0,t.getCloudflareContext)();s=r.DEV_WS_DO_URL;let l=await r.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(l.ok)try{return{sent:(await l.json()).sent??0}}catch{return{sent:0}}a.warn("broadcast service-binding non-ok",{...i,status:l.status})}catch{}let l=s||r.DEV_WS_DO_URL,o=await fetch(`${l}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!o.ok)throw Error(`broadcast failed: ${o.status}`);try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,r){let a=n(`/broadcast/daemon/${e}`,JSON.stringify(r),{daemonId:e,type:r.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(a.catch(()=>{}))}catch{}return a},"broadcastToUser",0,function(e,r){return function(e,r,a){let i=n(e,r,a);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(r),{userId:e,type:r.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),r=e.i(704024),a=e.i(719436),n=e.i(799579);let{listDueCalendarEvents:i,claimCalendarEvent:s,revertCalendarEventClaim:l,updateCalendarEventSchedule:o,computeNextScheduledAt:d}=t.queries.calendarEvent;async function c(e,u,p=new Date().toISOString()){let _=await i(e,u,p),g=new Map,m=0;for(let i of _){let c=await t.queries.agent.getAgent(e,i.agentId,i.workspaceId);if(!c){n.log.warn("calendar: agent missing, skipping",{id:i.id});continue}if(!c.runtimeId){n.log.warn("calendar: agent has no runtime, skipping",{id:i.id});continue}if(!c.ownerId){n.log.warn("calendar: agent has no owner, skipping",{id:i.id});continue}let u=i.lastTriggeredAt??null;if(await s(e,i.id,i.scheduledAt,p))try{let n=await t.queries.conversation.createConversation(e,{workspaceId:i.workspaceId,agentId:i.agentId,userId:c.ownerId,title:`[Calendar] ${i.title}`.slice(0,120),type:r.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:n.id,role:"event",content:i.title,metadata:JSON.stringify({calendarEventId:i.id})}),!g.has(c.ownerId)){let r=await t.queries.user.getUser(e,c.ownerId);g.set(c.ownerId,r?{name:r.name,email:r.email}:null)}let s=g.get(c.ownerId),l={event_id:i.id,datetime:i.scheduledAt,is_recurring:!!i.repeatInterval,repeat_interval:i.repeatInterval??null};if(i.description&&(l.description=i.description),s&&(l.scheduled_by=s),await t.queries.task.createTask(e,{agentId:i.agentId,runtimeId:c.runtimeId,workspaceId:i.workspaceId,conversationId:n.id,contextKey:n.id,prompt:i.title,type:r.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,a.nanoid)(),parentTaskId:null,context:l}),i.repeatInterval){let t=d(i.scheduledAt,i.repeatInterval,i.repeatStopAt??null,p,i.exceptions??[]);t&&await o(e,i.id,t)}m++}catch(t){n.log.warn("calendar: post-claim write failed, reverting",{id:i.id,err:String(t)});try{await l(e,i.id,u)}catch(e){n.log.error("calendar: compensating revert failed",{id:i.id,err:String(e)})}}}return m>0&&n.log.info("calendar: promoted due events",{workspaceId:u,enqueued:m}),m}e.s(["promoteDueCalendarEventsForWorkspace",0,c,"repeatStopDateToStopAt",0,function(e){let[t,r,a]=e.split("-").map(Number);if(!t||!r||!a)throw Error(`invalid repeat_stop_date: ${e}`);return new Date(t,r-1,a,23,59,59,999).toISOString()}])},927153,e=>{"use strict";e.s(["isEmptyHtml",0,function(e){if(null==e)return!0;let t=e.trim();if(""===t)return!0;let r=/^<p>([\s\S]*?)<\/p>$/i.exec(t);return!!r&&""===r[1].replace(/<br\s*\/?\s*>/gi,"").replace(/ /gi," ").trim()}])},572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0h3guve._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[963744,540858,698824,207461,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(7455),e=a.i(732254),f=a.i(889624),g=a.i(25668),h=a.i(722393),i=a.i(647651);let j=(0,i.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);a.s(["ArrowUp",0,j],540858);var k=a.i(549931),l=a.i(307992),m=a.i(390759),n=a.i(858767),o=a.i(16831),p=a.i(113010),q=a.i(463295),r=a.i(26822),s=a.i(75118),t=a.i(921584);a.i(343563);var u=a.i(347788),v=a.i(588339);let w=(0,i.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),x=new Set(["application/json","application/xml","application/javascript","application/typescript","application/x-yaml","application/toml","application/sql"]);function y(a){return!!(a.startsWith("text/")||x.has(a))}function z(a){return a.startsWith("text/html")}function A(a){return a.startsWith("image/")}function B(a){return y(a.content_type)||A(a.content_type)}function C(a,b,c){let d=new URLSearchParams({workspace_id:b});return c&&d.set("download","1"),`/api/artifacts/${a}/content?${d}`}function D({artifact:a,workspaceId:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1),i=C(a.id,d);if((0,c.useEffect)(()=>{y(a.content_type)&&!z(a.content_type)&&(h(!0),f(null),(0,v.getArtifactContent)(a.id,d).then(f).catch(()=>f("(failed to load content)")).finally(()=>h(!1)))},[a.id,a.content_type,d]),g)return(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(o.Loader2,{className:"size-5 animate-spin text-muted-foreground"})});if(A(a.content_type))return(0,b.jsx)("div",{className:"flex justify-center",children:(0,b.jsx)("img",{src:i,alt:a.filename,className:"max-w-full rounded-md"})});if(z(a.content_type))return(0,b.jsx)(E,{url:i,title:a.filename});if(y(a.content_type)){var j;return(j=a.filename,/\.md$/i.test(j))?(0,b.jsx)("div",{className:"markdown text-sm",children:(0,b.jsx)(u.Streamdown,{children:e??""})}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono text-foreground",children:e})}return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 py-8 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"This file type cannot be previewed."}),(0,b.jsxs)("a",{href:C(a.id,d,!0),download:a.filename,className:"inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium hover:bg-accent hover:text-accent-foreground transition-colors",children:[(0,b.jsx)(w,{className:"size-3.5"}),"Download"]})]})}function E({url:a,title:c}){return(0,b.jsx)("iframe",{src:a,sandbox:"allow-same-origin",className:"w-full h-full rounded-b-xl overflow-hidden",style:{border:"none",display:"block"},title:c})}a.s(["ArtifactContentRenderer",0,D,"computeArtifactVersions",0,function(a){let b=new Map;for(let c of a){let a=b.get(c.filename)||[];a.push(c),b.set(c.filename,a)}let c=new Map,d=new Set;for(let[a,e]of b)e.sort((a,b)=>a.created_at.localeCompare(b.created_at)),e.length>1&&d.add(a),e.forEach((a,b)=>c.set(a.id,b+1));return{versionMap:c,duplicateFilenames:d}},"getArtifactUrl",0,C,"isHtmlType",0,z,"isPreviewable",0,B],698824);var F=a.i(510698),G=a.i(321932);function H(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}a.s(["ArtifactSheet",0,function({open:a,onOpenChange:f,artifacts:g,workspaceId:h,initialArtifact:i=null,versionMap:j,duplicateFilenames:k}){let[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(448),p=(0,c.useRef)(!1);(0,c.useEffect)(()=>{a&&i&&m(i)},[a,i]);let q=a=>{f(a),a||setTimeout(()=>m(null),300)},r=(0,c.useCallback)(a=>{a.preventDefault(),p.current=!0,a.target.setPointerCapture(a.pointerId)},[]),t=(0,c.useCallback)(a=>{p.current&&o(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX)))},[]),u=(0,c.useCallback)(()=>{p.current=!1},[]);return(0,b.jsx)(d.Sheet,{open:a,onOpenChange:q,children:(0,b.jsxs)(d.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${n}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,b.jsx)("div",{onPointerDown:r,onPointerMove:t,onPointerUp:u,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),l?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>{g.length>1?m(null):q(!1)},children:(0,b.jsx)(G.ArrowLeft,{className:"size-4"})}),(0,b.jsxs)(d.SheetTitle,{className:"truncate flex-1",children:[l.filename,k.has(l.filename)&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",j.get(l.id)??1]})]}),(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:()=>window.open(C(l.id,h,!0),"_blank"),children:(0,b.jsx)(w,{className:"size-4"})})]})}),(0,b.jsx)(d.SheetBody,{className:(0,s.cn)("thin-scrollbar",z(l.content_type)&&"p-0! overflow-hidden!"),children:(0,b.jsx)(D,{artifact:l,workspaceId:h})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>q(!1),children:(0,b.jsx)(G.ArrowLeft,{className:"size-4"})}),(0,b.jsx)(d.SheetTitle,{className:"flex-1",children:"Artifacts"})]})}),(0,b.jsx)(d.SheetBody,{className:"thin-scrollbar",children:0===g.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:"No artifacts uploaded yet."}):(0,b.jsx)("div",{className:"space-y-1",children:g.map(a=>(0,b.jsxs)("button",{onClick:()=>m(a),className:"flex items-center gap-3 w-full rounded-lg px-3 py-2.5 text-left hover:bg-muted/50 transition-colors",children:[(0,b.jsx)(F.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,k.has(a.filename)&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",j.get(a.id)??1]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[H(a.size)," · ",new Date(a.created_at).toLocaleString()]})]})]},a.id))})})]})]})})},"formatSize",0,H],207461),a.i(974936);var I=a.i(988024);a.i(735132);var J=a.i(325848),K=a.i(22902);let L="h-7 border-0 bg-transparent px-1.5 text-xs text-foreground hover:bg-accent transition-colors -ml-1.5",M=(0,s.cn)(L,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6"),N=["todo","in_progress","review","done"];function O({agent:a,size:c=24}){let d=(0,J.parseAvatarUrl)(a?.avatar_url);return d?(0,b.jsx)(J.AvatarRenderer,{config:d,size:c,className:"shrink-0 rounded-full"}):(0,b.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[11px] font-medium text-muted-foreground",style:{width:c,height:c},children:(a?.name??"?").slice(0,1).toUpperCase()})}function P({agent:a,size:c=24}){let d=a.email_handle?`${a.email_handle}@alook.ai`:"";return(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(O,{agent:a,size:c}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium",children:a.name}),d?(0,b.jsx)("div",{className:"truncate text-[11px] text-muted-foreground",children:d}):null]})]})}function Q({icon:a,children:c}){return(0,b.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,b.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:c})]})}function R({message:a}){return"event"===a.role?(0,b.jsx)("div",{className:"rounded-md border bg-muted/50 text-muted-foreground text-xs px-3 py-2",children:a.content}):(0,b.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background/55 p-3",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"capitalize",children:a.role}),(0,b.jsx)("span",{children:new Date(a.created_at).toLocaleString()})]}),(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,b.jsx)(u.Streamdown,{children:a.content})})]})}function S({comment:a,agents:c}){let d="agent"===a.author_type?c.find(b=>b.id===a.author_id)?.name??"Agent":"You";return(0,b.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background p-3",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:d}),(0,b.jsx)("span",{children:new Date(a.created_at).toLocaleString()})]}),(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,b.jsx)(u.Streamdown,{children:a.content})})]})}function T({artifacts:a,workspaceId:c,onArtifactClick:d}){if(0===a.length)return null;let e="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-accent";return(0,b.jsx)("div",{className:"space-y-1",children:a.map(a=>{let f=d&&B(a),g=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.File,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.filename}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:H(a.size)})]});return f?(0,b.jsx)("button",{type:"button",onClick:()=>d(a),className:(0,s.cn)(e,"w-full text-left"),children:g},a.id):(0,b.jsx)("a",{href:C(a.id,c,!0),target:"_blank",rel:"noopener noreferrer",className:e,children:g},a.id)})})}a.s(["IssueSheet",0,function({open:a,onOpenChange:i,agents:m,issue:u,detail:w,detailLoading:x,activeTask:y,traceTasks:z,submitting:A,defaultAgentId:B,slug:C,workspaceId:D,width:E=448,onWidthChange:F,draft:G,onDraftChange:H,onCreate:J,onUpdate:U,onStatusChange:V,onCommented:W,onDispatched:X,onArtifactClick:Y}){let Z,$,_=u?"detail":"create",[aa,ab]=(0,c.useState)(""),[ac,ad]=(0,c.useState)(""),[ae,af]=(0,c.useState)(B??""),[ag,ah]=(0,c.useState)(!1),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(null),[ao,ap]=(0,c.useState)(!1),aq=(0,c.useRef)(null),ar=(0,c.useRef)(null),as=(0,c.useRef)(null),at=(0,c.useRef)(!1),au=y&&!["completed","failed","cancelled","superseded"].includes(y.status),av=z?.some(a=>["queued","dispatched","running"].includes(a.status))??!1;(0,c.useEffect)(()=>{a&&(u?(ab(u.title),ad(u.description??"")):(ab(G?.title??""),ad(G?.description??""),af(G?.agentId||B||"")))},[a,u?.id]),(0,c.useEffect)(()=>{"create"===_&&a&&H?.({title:aa,description:ac,agentId:ae})},[aa,ac,ae,_,a]),(0,c.useEffect)(()=>{as.current&&(as.current.scrollTop=as.current.scrollHeight)},[w?.messages?.length,w?.comments?.length,z?.length]);let aw=(0,c.useRef)(null),ax=(0,c.useRef)(U);(0,c.useEffect)(()=>{ax.current=U},[U]);let ay=(0,c.useRef)(aa);(0,c.useEffect)(()=>{ay.current=aa},[aa]);let az=(0,c.useRef)(ac);(0,c.useEffect)(()=>{az.current=ac},[ac]);let aA=(0,c.useRef)(u);(0,c.useEffect)(()=>{aA.current=u},[u]);let aB=(0,c.useCallback)(()=>{aw.current&&clearTimeout(aw.current),aw.current=null;let a=aA.current;if(!a)return;let b=ay.current!==a.title,c=az.current!==(a.description??"");if(!b&&!c||!ay.current.trim())return;let d={};b&&(d.title=ay.current.trim()),c&&(d.description=az.current.trim()),ax.current?.(a.id,d)},[]);(0,c.useEffect)(()=>{if("detail"!==_||!u||!a)return;let b=aa!==u.title,c=ac!==(u.description??"");if((b||c)&&aa.trim())return aw.current&&clearTimeout(aw.current),aw.current=setTimeout(aB,500),()=>{aw.current&&clearTimeout(aw.current)}},[aa,ac,_,u,a,aB]);let aC=(0,c.useRef)(a);(0,c.useEffect)(()=>{aC.current&&!a&&"detail"===_&&aB(),aC.current=a},[a,_,aB]);let aD=(0,c.useCallback)(a=>{let b=a??aq.current;b&&(b.style.height="auto",b.style.height=`${b.scrollHeight}px`)},[]);(0,c.useEffect)(()=>{requestAnimationFrame(()=>aD())},[aa,aD]);let aE=(0,c.useCallback)(a=>{a.preventDefault(),at.current=!0,a.target.setPointerCapture(a.pointerId)},[]),aF=(0,c.useCallback)(a=>{if(!at.current)return;let b=Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX));F?.(b)},[F]),aG=(0,c.useCallback)(()=>{at.current=!1},[]),aH=async()=>{aa.trim()&&!A&&await J?.({agent_id:ae||void 0,title:aa.trim(),description:ac.trim()})},aI=async()=>{if(ai.trim()&&!ak&&u){al(!0);try{if(!(await fetch(`/api/issues/${u.id}/comments?workspace_id=${D}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:ai.trim()})})).ok)throw Error("Failed to send comment");aj(""),W?.()}catch{t.toast.error("Failed to send comment")}finally{al(!1)}}},aJ=(0,c.useRef)(null),aK=(0,c.useCallback)(a=>{"Enter"===a.key&&a.shiftKey&&"create"===_&&(aJ.current&&aJ.current.contains(a.target)||(a.preventDefault(),a.stopPropagation(),aH()))},[_,aa,ac,ae,A]),aL="detail"===_&&u?.status==="todo",aM=m.find(a=>a.id===ae)??null,aN=u?.agent_id?m.find(a=>a.id===u.agent_id)??null:null,[aO,aP]=(0,c.useState)("issue");(0,c.useEffect)(()=>{aP("issue")},[u?.id,_]);let aQ=(0,b.jsx)(b.Fragment,{children:x?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(g.Skeleton,{className:"h-12"}),(0,b.jsx)(g.Skeleton,{className:"h-8"}),(0,b.jsx)(g.Skeleton,{className:"h-12"})]}):0!==($=[...(w?.messages??[]).filter(a=>"event"===a.role).map(a=>({kind:"event",id:a.id,created_at:a.created_at,data:a})),...(w?.comments??[]).map(a=>({kind:"comment",id:a.id,created_at:a.created_at,data:a}))].sort((a,b)=>new Date(a.created_at).getTime()-new Date(b.created_at).getTime())).length||au?(0,b.jsxs)("div",{className:"relative pl-4",children:[(0,b.jsx)("div",{className:"absolute left-[4.5px] top-2 bottom-2 w-px bg-border"}),(0,b.jsxs)("div",{className:"space-y-3",children:[$.map(a=>(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-muted-foreground/40"}),"event"===a.kind?(0,b.jsx)(R,{message:a.data}):(0,b.jsx)(S,{comment:a.data,agents:m})]},a.id)),(au||av)&&((Z=z?.filter(a=>["queued","dispatched","running"].includes(a.status)))&&Z.length>0?Z.map(a=>{let c="running"===a.status;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:(0,s.cn)("absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background",c?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40")}),(0,b.jsx)("div",{className:(0,s.cn)("rounded-md border px-3 py-2.5",c?"border-emerald-500/30 bg-emerald-500/10":"border-border/60 bg-muted/30"),children:(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[a.agent&&(0,b.jsx)(O,{agent:{avatar_url:a.agent.avatarUrl,name:a.agent.name},size:16}),(0,b.jsxs)("span",{className:c?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:[a.agent?.name??"Agent"," ",c?"is working":"— queued"]})]})})]},a.id)}):(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-emerald-500 animate-pulse"}),(0,b.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2.5",children:(0,b.jsx)("div",{className:"flex items-center gap-2 text-xs text-emerald-600 dark:text-emerald-400",children:"Working"})})]}))]})]}):(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"No activity yet."})}),aR="detail"!==_||!u||aL||au||(0,I.isTerminalIssueStatus)(u.status)?null:(0,b.jsxs)("div",{className:"flex flex-col rounded-xl border bg-background/60 transition-colors duration-200 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[(0,b.jsx)("textarea",{ref:aJ,placeholder:"Leave a comment...",value:ai,onChange:a=>aj(a.target.value),className:"w-full resize-none bg-transparent px-3.5 py-2.5 text-sm leading-relaxed outline-none placeholder:text-muted-foreground field-sizing-content min-h-15 max-h-32 thin-scrollbar overflow-y-auto",onKeyDown:a=>{"Enter"===a.key&&a.shiftKey&&(a.preventDefault(),aI())}}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-2.5 pb-2 pt-0.5",children:[(0,b.jsx)("kbd",{className:"text-[11px] text-muted-foreground/50 font-sans select-none",children:"⇧↵"}),(0,b.jsx)(e.Button,{size:"icon-sm",onClick:aI,disabled:!ai.trim()||ak,className:(0,s.cn)("rounded-lg transition-opacity duration-200",!ai.trim()&&!ak&&"opacity-40"),children:ak?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(j,{className:"size-3.5"})})]})]}),aS=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"shrink-0 px-2 sm:px-3 pt-5 pb-1",children:(0,b.jsx)("textarea",{ref:a=>{aq.current=a,aD(a)},value:aa,onChange:a=>{ab(a.target.value),aD(a.target)},onKeyDown:a=>{if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=ar.current?.querySelector('[contenteditable="true"]');b?.focus()}},placeholder:"create"===_?"New issue":"Untitled",autoFocus:"create"===_,rows:1,className:"w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0 placeholder:text-muted-foreground/40 placeholder:font-normal"})}),(0,b.jsxs)("div",{className:"shrink-0 space-y-1.5 px-2 sm:px-3 py-2",children:[(0,b.jsx)(Q,{icon:(0,b.jsx)(q.User,{className:"size-3.5"}),children:"create"===_||aL?(0,b.jsxs)(h.Popover,{open:ag,onOpenChange:ah,children:[(0,b.jsx)(h.PopoverTrigger,{render:(0,b.jsx)("button",{type:"button",disabled:A||ao,className:(0,s.cn)(L,"flex items-center gap-1.5 rounded-md")}),children:aM?(0,b.jsx)("span",{className:"truncate",children:aM.name}):(0,b.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})}),(0,b.jsxs)(h.PopoverContent,{align:"start",className:"max-h-64 w-72 overflow-y-auto thin-scrollbar p-1",children:[!aL&&(0,b.jsxs)("button",{type:"button",onClick:()=>{af(""),ah(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"None (unassigned)"}),ae?null:(0,b.jsx)(k.Check,{className:"size-3.5 shrink-0"})]}),m.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{aL?an(a):af(a.id),ah(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,b.jsx)(P,{agent:a,size:18}),ae===a.id?(0,b.jsx)(k.Check,{className:"size-3.5 shrink-0"}):null]},a.id))]})]}):(0,b.jsx)("span",{className:"text-xs truncate",children:aN?aN.name:(0,b.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})})}),"detail"===_&&u&&(0,b.jsx)(Q,{icon:(0,b.jsx)(l.CircleDot,{className:"size-3.5"}),children:(0,b.jsx)("select",{value:u.status,onChange:a=>{var b;return b=a.target.value,void(u&&b!==u.status&&V?.(u.id,b))},className:M,children:(aL?["todo","done"]:N).map(a=>(0,b.jsx)("option",{value:a,children:"done"===a?"Complete":a.replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())},a))})}),"detail"===_&&u?.agent_id&&u?.conversation_id&&(0,b.jsx)(Q,{icon:(0,b.jsx)(p.MessageSquare,{className:"size-3.5"}),children:(0,b.jsx)(r.default,{href:`/w/${C}/agents/${u.agent_id}?conv=${u.conversation_id}${u.latest_task_id?`&task=${u.latest_task_id}`:""}`,className:(0,s.cn)(L,"inline-flex items-center rounded-md"),children:"Chat"})}),"detail"===_&&w?.traceId&&(0,b.jsx)(Q,{icon:(0,b.jsx)(n.GitBranch,{className:"size-3.5"}),children:(0,b.jsx)(r.default,{href:`/w/${C}/threads/${w.traceId}`,className:(0,s.cn)(L,"inline-flex items-center rounded-md"),children:"Thread"})})]}),(0,b.jsx)("div",{className:(0,s.cn)("px-2 sm:px-3 py-2 flex-1 min-h-0 overflow-y-auto thin-scrollbar"),ref:ar,children:(0,b.jsx)(f.MarkdownEditor,{value:ac,onChange:ad,placeholder:"Describe the issue...",minHeight:"create"===_?"10rem":"4rem",variant:"seamless",contentType:"markdown",agents:m},u?.id??"new")}),"detail"===_&&w?.artifacts&&w.artifacts.length>0&&(0,b.jsx)("div",{className:"shrink-0 px-2 sm:px-3 py-2",children:(0,b.jsx)(T,{artifacts:w.artifacts,workspaceId:D,onArtifactClick:Y})})]});return(0,b.jsxs)(d.Sheet,{open:a,onOpenChange:i,children:[(0,b.jsxs)(d.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border overflow-visible",style:{width:`min(${E}px, 100vw)`,maxWidth:"none"},children:[(0,b.jsx)("div",{onPointerDown:aE,onPointerMove:aF,onPointerUp:aG,onLostPointerCapture:aG,className:"hidden sm:block absolute -left-px top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),"detail"===_&&!aL&&(0,b.jsxs)("div",{className:"hidden lg:flex absolute right-full top-0 bottom-0 mr-2 w-90 flex-col rounded-xl border bg-background shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"shrink-0 flex items-center border-b px-4 py-2.5",children:(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Activity"})}),(0,b.jsx)("div",{ref:as,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-4 py-4 space-y-3",children:aQ}),aR&&(0,b.jsx)("div",{className:"shrink-0 border-t px-4 py-3",children:aR})]}),(0,b.jsx)(d.SheetTitle,{className:"sr-only",children:"create"===_?"New Issue":u?.title??"Issue"}),(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",onKeyDownCapture:aK,children:["detail"===_&&!aL&&(0,b.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-2 py-1.5 lg:hidden",children:[(0,b.jsx)("button",{type:"button",onClick:()=>aP("issue"),className:(0,s.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","issue"===aO?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Issue"}),(0,b.jsx)("button",{type:"button",onClick:()=>aP("activity"),className:(0,s.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","activity"===aO?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Activity"})]}),(0,b.jsxs)(d.SheetBody,{className:"flex flex-col gap-0 p-0 overflow-hidden",children:[(0,b.jsx)("div",{className:(0,s.cn)("flex flex-col flex-1 min-h-0","detail"===_&&"activity"===aO&&"hidden lg:flex"),children:aS}),"detail"===_&&!aL&&"activity"===aO&&(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-h-0 lg:hidden",children:[(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-3 py-4 space-y-3",children:aQ}),aR&&(0,b.jsx)("div",{className:"shrink-0 border-t px-3 py-3",children:aR})]})]}),"create"===_&&(0,b.jsxs)(d.SheetFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",size:"sm",onClick:()=>i(!1),disabled:A,children:"Cancel"}),(0,b.jsxs)(e.Button,{size:"sm",onClick:aH,disabled:!aa.trim()||A,children:[A&&(0,b.jsx)(o.Loader2,{className:"mr-1.5 size-3.5 animate-spin"}),(0,b.jsxs)("kbd",{className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,b.jsx)("span",{children:"⇧"}),(0,b.jsx)("span",{children:"+"}),(0,b.jsx)("span",{children:"⏎"})]}),"Create"]})]})]})]}),(0,b.jsx)(K.ConfirmDialog,{open:!!am,onOpenChange:a=>{a||an(null)},title:"Run issue?",description:`This issue will be assigned to ${am?.name??"the agent"} and start running immediately.`,confirmLabel:"Run",loadingLabel:"Running...",confirmVariant:"default",loading:ao,onConfirm:async()=>{if(am&&u){ap(!0);try{await (0,v.updateIssue)(D,u.id,{agent_id:am.id}),an(null),X?.(u.id)}catch(a){t.toast.error(a instanceof Error?a.message:"Failed to dispatch issue"),an(null)}finally{ap(!1)}}}})]})}],963744)}];
|
|
1
|
+
module.exports=[963744,540858,698824,207461,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(7455),e=a.i(732254),f=a.i(889624),g=a.i(25668),h=a.i(722393),i=a.i(647651);let j=(0,i.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);a.s(["ArrowUp",0,j],540858);var k=a.i(549931),l=a.i(307992),m=a.i(390759),n=a.i(858767),o=a.i(16831),p=a.i(113010),q=a.i(463295),r=a.i(73270),s=a.i(26822),t=a.i(75118),u=a.i(921584);a.i(343563);var v=a.i(347788),w=a.i(588339);let x=(0,i.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),y=new Set(["application/json","application/xml","application/javascript","application/typescript","application/x-yaml","application/toml","application/sql"]);function z(a){return!!(a.startsWith("text/")||y.has(a))}function A(a){return a.startsWith("text/html")}function B(a){return a.startsWith("image/")}function C(a){return z(a.content_type)||B(a.content_type)}function D(a,b,c){let d=new URLSearchParams({workspace_id:b});return c&&d.set("download","1"),`/api/artifacts/${a}/content?${d}`}function E({artifact:a,workspaceId:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1),i=D(a.id,d);if((0,c.useEffect)(()=>{z(a.content_type)&&!A(a.content_type)&&(h(!0),f(null),(0,w.getArtifactContent)(a.id,d).then(f).catch(()=>f("(failed to load content)")).finally(()=>h(!1)))},[a.id,a.content_type,d]),g)return(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(o.Loader2,{className:"size-5 animate-spin text-muted-foreground"})});if(B(a.content_type))return(0,b.jsx)("div",{className:"flex justify-center",children:(0,b.jsx)("img",{src:i,alt:a.filename,className:"max-w-full rounded-md"})});if(A(a.content_type))return(0,b.jsx)(F,{url:i,title:a.filename});if(z(a.content_type)){var j;return(j=a.filename,/\.md$/i.test(j))?(0,b.jsx)("div",{className:"markdown text-sm",children:(0,b.jsx)(v.Streamdown,{children:e??""})}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono text-foreground",children:e})}return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 py-8 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"This file type cannot be previewed."}),(0,b.jsxs)("a",{href:D(a.id,d,!0),download:a.filename,className:"inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium hover:bg-accent hover:text-accent-foreground transition-colors",children:[(0,b.jsx)(x,{className:"size-3.5"}),"Download"]})]})}function F({url:a,title:c}){return(0,b.jsx)("iframe",{src:a,sandbox:"allow-same-origin",className:"w-full h-full rounded-b-xl overflow-hidden",style:{border:"none",display:"block"},title:c})}a.s(["ArtifactContentRenderer",0,E,"computeArtifactVersions",0,function(a){let b=new Map;for(let c of a){let a=b.get(c.filename)||[];a.push(c),b.set(c.filename,a)}let c=new Map,d=new Set;for(let[a,e]of b)e.sort((a,b)=>a.created_at.localeCompare(b.created_at)),e.length>1&&d.add(a),e.forEach((a,b)=>c.set(a.id,b+1));return{versionMap:c,duplicateFilenames:d}},"getArtifactUrl",0,D,"isHtmlType",0,A,"isPreviewable",0,C],698824);var G=a.i(510698),H=a.i(321932);function I(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}a.s(["ArtifactSheet",0,function({open:a,onOpenChange:f,artifacts:g,workspaceId:h,initialArtifact:i=null,versionMap:j,duplicateFilenames:k}){let[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(448),p=(0,c.useRef)(!1);(0,c.useEffect)(()=>{a&&i&&m(i)},[a,i]);let q=a=>{f(a),a||setTimeout(()=>m(null),300)},r=(0,c.useCallback)(a=>{a.preventDefault(),p.current=!0,a.target.setPointerCapture(a.pointerId)},[]),s=(0,c.useCallback)(a=>{p.current&&o(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX)))},[]),u=(0,c.useCallback)(()=>{p.current=!1},[]);return(0,b.jsx)(d.Sheet,{open:a,onOpenChange:q,children:(0,b.jsxs)(d.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${n}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,b.jsx)("div",{onPointerDown:r,onPointerMove:s,onPointerUp:u,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),l?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>{g.length>1?m(null):q(!1)},children:(0,b.jsx)(H.ArrowLeft,{className:"size-4"})}),(0,b.jsxs)(d.SheetTitle,{className:"truncate flex-1",children:[l.filename,k.has(l.filename)&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",j.get(l.id)??1]})]}),(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:()=>window.open(D(l.id,h,!0),"_blank"),children:(0,b.jsx)(x,{className:"size-4"})})]})}),(0,b.jsx)(d.SheetBody,{className:(0,t.cn)("thin-scrollbar",A(l.content_type)&&"p-0! overflow-hidden!"),children:(0,b.jsx)(E,{artifact:l,workspaceId:h})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>q(!1),children:(0,b.jsx)(H.ArrowLeft,{className:"size-4"})}),(0,b.jsx)(d.SheetTitle,{className:"flex-1",children:"Artifacts"})]})}),(0,b.jsx)(d.SheetBody,{className:"thin-scrollbar",children:0===g.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:"No artifacts uploaded yet."}):(0,b.jsx)("div",{className:"space-y-1",children:g.map(a=>(0,b.jsxs)("button",{onClick:()=>m(a),className:"flex items-center gap-3 w-full rounded-lg px-3 py-2.5 text-left hover:bg-muted/50 transition-colors",children:[(0,b.jsx)(G.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,k.has(a.filename)&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",j.get(a.id)??1]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[I(a.size)," · ",new Date(a.created_at).toLocaleString()]})]})]},a.id))})})]})]})})},"formatSize",0,I],207461),a.i(974936);var J=a.i(988024);a.i(735132);var K=a.i(325848),L=a.i(22902);let M="h-7 border-0 bg-transparent px-1.5 text-xs text-foreground hover:bg-accent transition-colors -ml-1.5",N=(0,t.cn)(M,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6"),O=["todo","in_progress","review","done"];function P({agent:a,size:c=24}){let d=(0,K.parseAvatarUrl)(a?.avatar_url);return d?(0,b.jsx)(K.AvatarRenderer,{config:d,size:c,className:"shrink-0 rounded-full"}):(0,b.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[11px] font-medium text-muted-foreground",style:{width:c,height:c},children:(a?.name??"?").slice(0,1).toUpperCase()})}function Q({agent:a,size:c=24}){let d=a.email_handle?`${a.email_handle}@alook.ai`:"";return(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(P,{agent:a,size:c}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium",children:a.name}),d?(0,b.jsx)("div",{className:"truncate text-[11px] text-muted-foreground",children:d}):null]})]})}function R({icon:a,children:c}){return(0,b.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,b.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:c})]})}function S({message:a}){return"event"===a.role?(0,b.jsx)("div",{className:"rounded-md border bg-muted/50 text-muted-foreground text-xs px-3 py-2",children:a.content}):(0,b.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background/55 p-3",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"capitalize",children:a.role}),(0,b.jsx)("span",{children:new Date(a.created_at).toLocaleString()})]}),(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,b.jsx)(v.Streamdown,{children:a.content})})]})}function T({comment:a,agents:c}){let d="agent"===a.author_type?c.find(b=>b.id===a.author_id)?.name??"Agent":"You";return(0,b.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background p-3",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:d}),(0,b.jsx)("span",{children:new Date(a.created_at).toLocaleString()})]}),(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,b.jsx)(v.Streamdown,{children:a.content})})]})}function U({artifacts:a,workspaceId:c,onArtifactClick:d}){if(0===a.length)return null;let e="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-accent";return(0,b.jsx)("div",{className:"space-y-1",children:a.map(a=>{let f=d&&C(a),g=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.File,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.filename}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:I(a.size)})]});return f?(0,b.jsx)("button",{type:"button",onClick:()=>d(a),className:(0,t.cn)(e,"w-full text-left"),children:g},a.id):(0,b.jsx)("a",{href:D(a.id,c,!0),target:"_blank",rel:"noopener noreferrer",className:e,children:g},a.id)})})}a.s(["IssueSheet",0,function({open:a,onOpenChange:i,agents:m,issue:v,detail:x,detailLoading:y,activeTask:z,traceTasks:A,submitting:B,defaultAgentId:C,slug:D,workspaceId:E,width:F=448,onWidthChange:G,draft:H,onDraftChange:I,onCreate:K,onUpdate:V,onStatusChange:W,onCommented:X,onDispatched:Y,onArtifactClick:Z}){let $,_,aa=v?"detail":"create",[ab,ac]=(0,c.useState)(""),[ad,ae]=(0,c.useState)(""),[af,ag]=(0,c.useState)(C??""),[ah,ai]=(0,c.useState)(!1),[aj,ak]=(0,c.useState)(""),[al,am]=(0,c.useState)(!1),[an,ao]=(0,c.useState)(null),[ap,aq]=(0,c.useState)(!1),ar=(0,c.useRef)(null),as=(0,c.useRef)(null),at=(0,c.useRef)(null),au=(0,c.useRef)(!1),av=z&&!["completed","failed","cancelled","superseded"].includes(z.status),aw=A?.some(a=>["queued","dispatched","running"].includes(a.status))??!1;(0,c.useEffect)(()=>{a&&(v?(ac(v.title),ae(v.description??"")):(ac(H?.title??""),ae(H?.description??""),ag(H?.agentId||C||"")))},[a,v?.id]),(0,c.useEffect)(()=>{"create"===aa&&a&&I?.({title:ab,description:ad,agentId:af})},[ab,ad,af,aa,a]),(0,c.useEffect)(()=>{at.current&&(at.current.scrollTop=at.current.scrollHeight)},[x?.messages?.length,x?.comments?.length,A?.length]);let ax=(0,c.useRef)(null),ay=(0,c.useRef)(V);(0,c.useEffect)(()=>{ay.current=V},[V]);let az=(0,c.useRef)(ab);(0,c.useEffect)(()=>{az.current=ab},[ab]);let aA=(0,c.useRef)(ad);(0,c.useEffect)(()=>{aA.current=ad},[ad]);let aB=(0,c.useRef)(v);(0,c.useEffect)(()=>{aB.current=v},[v]);let aC=(0,c.useCallback)(()=>{ax.current&&clearTimeout(ax.current),ax.current=null;let a=aB.current;if(!a)return;let b=az.current!==a.title,c=aA.current!==(a.description??"");if(!b&&!c||!az.current.trim())return;let d={};b&&(d.title=az.current.trim()),c&&(d.description=aA.current.trim()),ay.current?.(a.id,d)},[]);(0,c.useEffect)(()=>{if("detail"!==aa||!v||!a)return;let b=ab!==v.title,c=ad!==(v.description??"");if((b||c)&&ab.trim())return ax.current&&clearTimeout(ax.current),ax.current=setTimeout(aC,500),()=>{ax.current&&clearTimeout(ax.current)}},[ab,ad,aa,v,a,aC]);let aD=(0,c.useRef)(a);(0,c.useEffect)(()=>{aD.current&&!a&&"detail"===aa&&aC(),aD.current=a},[a,aa,aC]);let aE=(0,c.useCallback)(a=>{let b=a??ar.current;b&&(b.style.height="auto",b.style.height=`${b.scrollHeight}px`)},[]);(0,c.useEffect)(()=>{requestAnimationFrame(()=>aE())},[ab,aE]);let aF=(0,c.useCallback)(a=>{a.preventDefault(),au.current=!0,a.target.setPointerCapture(a.pointerId)},[]),aG=(0,c.useCallback)(a=>{if(!au.current)return;let b=Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX));G?.(b)},[G]),aH=(0,c.useCallback)(()=>{au.current=!1},[]),aI=async()=>{ab.trim()&&!B&&await K?.({agent_id:af||void 0,title:ab.trim(),description:ad.trim()})},aJ=async()=>{if(aj.trim()&&!al&&v){am(!0);try{if(!(await fetch(`/api/issues/${v.id}/comments?workspace_id=${E}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:aj.trim()})})).ok)throw Error("Failed to send comment");ak(""),X?.()}catch{u.toast.error("Failed to send comment")}finally{am(!1)}}},aK=(0,c.useRef)(null),aL=(0,c.useCallback)(a=>{"Enter"===a.key&&a.shiftKey&&"create"===aa&&(aK.current&&aK.current.contains(a.target)||(a.preventDefault(),a.stopPropagation(),aI()))},[aa,ab,ad,af,B]),aM="detail"===aa&&v?.status==="todo",aN=m.find(a=>a.id===af)??null,aO=v?.agent_id?m.find(a=>a.id===v.agent_id)??null:null,[aP,aQ]=(0,c.useState)("issue");(0,c.useEffect)(()=>{aQ("issue")},[v?.id,aa]);let aR=(0,b.jsx)(b.Fragment,{children:y?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(g.Skeleton,{className:"h-12"}),(0,b.jsx)(g.Skeleton,{className:"h-8"}),(0,b.jsx)(g.Skeleton,{className:"h-12"})]}):0!==(_=[...(x?.messages??[]).filter(a=>"event"===a.role).map(a=>({kind:"event",id:a.id,created_at:a.created_at,data:a})),...(x?.comments??[]).map(a=>({kind:"comment",id:a.id,created_at:a.created_at,data:a}))].sort((a,b)=>new Date(a.created_at).getTime()-new Date(b.created_at).getTime())).length||av?(0,b.jsxs)("div",{className:"relative pl-4",children:[(0,b.jsx)("div",{className:"absolute left-[4.5px] top-2 bottom-2 w-px bg-border"}),(0,b.jsxs)("div",{className:"space-y-3",children:[_.map(a=>(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-muted-foreground/40"}),"event"===a.kind?(0,b.jsx)(S,{message:a.data}):(0,b.jsx)(T,{comment:a.data,agents:m})]},a.id)),(av||aw)&&(($=A?.filter(a=>["queued","dispatched","running"].includes(a.status)))&&$.length>0?$.map(a=>{let c="running"===a.status;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:(0,t.cn)("absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background",c?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40")}),(0,b.jsx)("div",{className:(0,t.cn)("rounded-md border px-3 py-2.5",c?"border-emerald-500/30 bg-emerald-500/10":"border-border/60 bg-muted/30"),children:(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[a.agent&&(0,b.jsx)(P,{agent:{avatar_url:a.agent.avatarUrl,name:a.agent.name},size:16}),(0,b.jsxs)("span",{className:c?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:[a.agent?.name??"Agent"," ",c?"is working":"— queued"]})]})})]},a.id)}):(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-emerald-500 animate-pulse"}),(0,b.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2.5",children:(0,b.jsx)("div",{className:"flex items-center gap-2 text-xs text-emerald-600 dark:text-emerald-400",children:"Working"})})]}))]})]}):(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"No activity yet."})}),aS="detail"!==aa||!v||aM||av||(0,J.isTerminalIssueStatus)(v.status)?null:(0,b.jsxs)("div",{className:"flex flex-col rounded-xl border bg-background/60 transition-colors duration-200 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[(0,b.jsx)("textarea",{ref:aK,placeholder:"Leave a comment...",value:aj,onChange:a=>ak(a.target.value),className:"w-full resize-none bg-transparent px-3.5 py-2.5 text-sm leading-relaxed outline-none placeholder:text-muted-foreground field-sizing-content min-h-15 max-h-32 thin-scrollbar overflow-y-auto",onKeyDown:a=>{"Enter"===a.key&&a.shiftKey&&(a.preventDefault(),aJ())}}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-2.5 pb-2 pt-0.5",children:[(0,b.jsx)("kbd",{className:"text-[11px] text-muted-foreground/50 font-sans select-none",children:"⇧↵"}),(0,b.jsx)(e.Button,{size:"icon-sm",onClick:aJ,disabled:!aj.trim()||al,className:(0,t.cn)("rounded-lg transition-opacity duration-200",!aj.trim()&&!al&&"opacity-40"),children:al?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(j,{className:"size-3.5"})})]})]}),aT=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"shrink-0 px-2 sm:px-3 pt-5 pb-1",children:(0,b.jsx)("textarea",{ref:a=>{ar.current=a,aE(a)},value:ab,onChange:a=>{ac(a.target.value),aE(a.target)},onKeyDown:a=>{if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=as.current?.querySelector('[contenteditable="true"]');b?.focus()}},placeholder:"create"===aa?"New issue":"Untitled",autoFocus:"create"===aa,rows:1,className:"w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0 placeholder:text-muted-foreground/40 placeholder:font-normal"})}),(0,b.jsxs)("div",{className:"shrink-0 space-y-1.5 px-2 sm:px-3 py-2",children:[(0,b.jsx)(R,{icon:(0,b.jsx)(q.User,{className:"size-3.5"}),children:"create"===aa||aM?(0,b.jsxs)(h.Popover,{open:ah,onOpenChange:ai,children:[(0,b.jsx)(h.PopoverTrigger,{render:(0,b.jsx)("button",{type:"button",disabled:B||ap,className:(0,t.cn)(M,"flex items-center gap-1.5 rounded-md")}),children:aN?(0,b.jsx)("span",{className:"truncate",children:aN.name}):(0,b.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})}),(0,b.jsxs)(h.PopoverContent,{align:"start",className:"max-h-64 w-72 overflow-y-auto thin-scrollbar p-1",children:[!aM&&(0,b.jsxs)("button",{type:"button",onClick:()=>{ag(""),ai(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"None (unassigned)"}),af?null:(0,b.jsx)(k.Check,{className:"size-3.5 shrink-0"})]}),m.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{aM?ao(a):ag(a.id),ai(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,b.jsx)(Q,{agent:a,size:18}),af===a.id?(0,b.jsx)(k.Check,{className:"size-3.5 shrink-0"}):null]},a.id))]})]}):(0,b.jsx)("span",{className:"text-xs truncate",children:aO?aO.name:(0,b.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})})}),"detail"===aa&&v&&(0,b.jsx)(R,{icon:(0,b.jsx)(l.CircleDot,{className:"size-3.5"}),children:(0,b.jsx)("select",{value:v.status,onChange:a=>{var b;return b=a.target.value,void(v&&b!==v.status&&W?.(v.id,b))},className:N,children:(aM?["todo","done"]:O).map(a=>(0,b.jsx)("option",{value:a,children:"done"===a?"Complete":a.replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())},a))})}),"detail"===aa&&v?.agent_id&&v?.conversation_id&&(0,b.jsx)(R,{icon:(0,b.jsx)(p.MessageSquare,{className:"size-3.5"}),children:(0,b.jsx)(s.default,{href:`/w/${D}/agents/${v.agent_id}?conv=${v.conversation_id}${v.latest_task_id?`&task=${v.latest_task_id}`:""}`,className:(0,t.cn)(M,"inline-flex items-center rounded-md"),children:"Chat"})}),"detail"===aa&&x?.traceId&&(0,b.jsx)(R,{icon:(0,b.jsx)(n.GitBranch,{className:"size-3.5"}),children:(0,b.jsx)(s.default,{href:`/w/${D}/threads/${x.traceId}`,className:(0,t.cn)(M,"inline-flex items-center rounded-md"),children:"Thread"})})]}),(0,b.jsx)("div",{className:(0,t.cn)("px-2 sm:px-3 py-2 flex-1 min-h-0 overflow-y-auto thin-scrollbar"),ref:as,children:(0,b.jsx)(f.MarkdownEditor,{value:ad,onChange:ae,placeholder:"Describe the issue...",minHeight:"create"===aa?"10rem":"4rem",variant:"seamless",contentType:"markdown",agents:m},v?.id??"new")}),"detail"===aa&&x?.artifacts&&x.artifacts.length>0&&(0,b.jsx)("div",{className:"shrink-0 px-2 sm:px-3 py-2",children:(0,b.jsx)(U,{artifacts:x.artifacts,workspaceId:E,onArtifactClick:Z})})]});return(0,b.jsxs)(d.Sheet,{open:a,onOpenChange:i,children:[(0,b.jsxs)(d.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border overflow-visible",style:{width:`min(${F}px, 100vw)`,maxWidth:"none"},children:[(0,b.jsx)("div",{onPointerDown:aF,onPointerMove:aG,onPointerUp:aH,onLostPointerCapture:aH,className:"hidden sm:block absolute -left-px top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),(0,b.jsxs)(d.SheetClose,{render:(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm"}),className:"absolute top-3 right-3 z-10 sm:hidden",children:[(0,b.jsx)(r.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}),"detail"===aa&&!aM&&(0,b.jsxs)("div",{className:"hidden lg:flex absolute right-full top-0 bottom-0 mr-2 w-90 flex-col rounded-xl border bg-background shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"shrink-0 flex items-center border-b px-4 py-2.5",children:(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Activity"})}),(0,b.jsx)("div",{ref:at,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-4 py-4 space-y-3",children:aR}),aS&&(0,b.jsx)("div",{className:"shrink-0 border-t px-4 py-3",children:aS})]}),(0,b.jsx)(d.SheetTitle,{className:"sr-only",children:"create"===aa?"New Issue":v?.title??"Issue"}),(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",onKeyDownCapture:aL,children:["detail"===aa&&!aM&&(0,b.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-2 py-1.5 lg:hidden",children:[(0,b.jsx)("button",{type:"button",onClick:()=>aQ("issue"),className:(0,t.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","issue"===aP?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Issue"}),(0,b.jsx)("button",{type:"button",onClick:()=>aQ("activity"),className:(0,t.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","activity"===aP?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Activity"})]}),(0,b.jsxs)(d.SheetBody,{className:"flex flex-col gap-0 p-0 overflow-hidden",children:[(0,b.jsx)("div",{className:(0,t.cn)("flex flex-col flex-1 min-h-0","detail"===aa&&"activity"===aP&&"hidden lg:flex"),children:aT}),"detail"===aa&&!aM&&"activity"===aP&&(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-h-0 lg:hidden",children:[(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-3 py-4 space-y-3",children:aR}),aS&&(0,b.jsx)("div",{className:"shrink-0 border-t px-3 py-3",children:aS})]})]}),"create"===aa&&(0,b.jsxs)(d.SheetFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",size:"sm",onClick:()=>i(!1),disabled:B,children:"Cancel"}),(0,b.jsxs)(e.Button,{size:"sm",onClick:aI,disabled:!ab.trim()||B,children:[B&&(0,b.jsx)(o.Loader2,{className:"mr-1.5 size-3.5 animate-spin"}),(0,b.jsxs)("kbd",{className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,b.jsx)("span",{children:"⇧"}),(0,b.jsx)("span",{children:"+"}),(0,b.jsx)("span",{children:"⏎"})]}),"Create"]})]})]})]}),(0,b.jsx)(L.ConfirmDialog,{open:!!an,onOpenChange:a=>{a||ao(null)},title:"Run issue?",description:`This issue will be assigned to ${an?.name??"the agent"} and start running immediately.`,confirmLabel:"Run",loadingLabel:"Running...",confirmVariant:"default",loading:ap,onConfirm:async()=>{if(an&&v){aq(!0);try{await (0,w.updateIssue)(E,v.id,{agent_id:an.id}),ao(null),Y?.(v.id)}catch(a){u.toast.error(a instanceof Error?a.message:"Failed to dispatch issue"),ao(null)}finally{aq(!1)}}}})]})}],963744)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_web_src_components_issues_issue-sheet_tsx_02fma1.._.js.map
|
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static
|
|
11
|
-
"static
|
|
12
|
-
"static
|
|
10
|
+
"static/PA_Z4qV7_2EOBByV_oeAP/_buildManifest.js",
|
|
11
|
+
"static/PA_Z4qV7_2EOBByV_oeAP/_ssgManifest.js",
|
|
12
|
+
"static/PA_Z4qV7_2EOBByV_oeAP/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/0fus_woghk6f3.js",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"wasm": [],
|
|
26
26
|
"assets": [],
|
|
27
27
|
"env": {
|
|
28
|
-
"__NEXT_BUILD_ID": "
|
|
29
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
30
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
31
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
32
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
28
|
+
"__NEXT_BUILD_ID": "PA_Z4qV7_2EOBByV_oeAP",
|
|
29
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "MWY7hDczkp0EmygFYXr6EWs2RDem6ou7f3sdgSXiePc=",
|
|
30
|
+
"__NEXT_PREVIEW_MODE_ID": "72786ad2be0ee565aae23f8e2dfdfe2a",
|
|
31
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "b62d1a2259da787d7359fe9131923f55fd865df45cc1e49e87082bcefad4f1a7",
|
|
32
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "5f63f6dc430156efaad1e9e62c51ddebcaab301bbb08f6c689bedc1234a51cbf"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"MWY7hDczkp0EmygFYXr6EWs2RDem6ou7f3sdgSXiePc=\"\n}"
|