@alook/app 0.0.89 → 0.0.91
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 +1 -1
- 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/0vmfh5cpu6cyb.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/12t28xauqveh0.js +3 -0
- package/bundled/web/.open-next/cache/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/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)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/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/[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/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/route.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ntc1ld._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-7a9se._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_007pf4f._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_037ndoa._.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/_04gp_km._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05zp0zn._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_091mubc._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0a_6yub._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0aveiot._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0cji8yc._.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/_0exm5_w._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0f.tk9k._.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/_0h_dgb9._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0hxvvdy._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ke5r~m._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l0biq~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0oyl16-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0pt9vvp._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12gxjds._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13hlohp._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0mko5ir._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__04aaf9e._.js → [root-of-the-server]__0h51ht3._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_01opi~8._.js → _0q2ghlm._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_02ui5fr._.js → _0wrskvv._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- 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 +37 -37
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +127 -127
- 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 +1 -1
- 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/01y706~-elw55.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0~itw~3ppm1_~.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ww-2pa._.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{KvfOhYs-NnvSDHtWvLueA → gG5y_Y541uplj1hSZZNsb}/robots.txt.cache +0 -0
package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0aveiot._.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,r){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...r,status:o.status})}catch{}let o=i||a.DEV_WS_DO_URL,d=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!d.ok)throw Error(`broadcast failed: ${d.status}`);try{return{sent:(await d.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let r=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(r.catch(()=>{}))}catch{}return r.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},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))]}):[[],[],[]],h=new Map(l.map(e=>[e.id,e])),p=new Map;for(let e of c){let t=p.get(e.agentId)??[];t.push(e.emailAddress),p.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))],m=new Map((g.length>0?await t.queries.conversation.getConversationsByIds(this.db,g,i):[]).map(e=>[e.id,e])),I=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=h.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=p.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!I.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));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.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=m.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 y=(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:y}: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,h=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 h=[...new Set(u.map(e=>e.agentId))],p=new Map((await l.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,p.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 h=o,p="string"==typeof h?.output?h.output:"";if(p){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:p,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 h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.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),h=u?.traceId??null,p=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:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,p.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,r.messageToResponse)(i),task:(0,r.taskToResponse)(p)}).catch(()=>{}),p}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)}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var n=e.i(888247),r=e.i(704024),i=e.i(291109),o=e.i(675139),d=e.i(152327),l=e.i(47962),c=e.i(776227),u=e.i(726089),h=e.i(205054),p=e.i(774078),w=t([d]);[d]=w.then?(await w)():w;let g=(0,d.withAuth)(async(e,t)=>{let a=await (0,l.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:n}=(0,s.getCloudflareContext)(),r=(0,o.getDb)(n.DB),d=t.params?.id;if(!d)return(0,c.writeError)("issue id is required",400);if(!await i.queries.issue.getIssue(r,d,a.workspaceId))return(0,c.writeError)("issue not found",404);let u=await i.queries.issueComment.listComments(r,d,a.workspaceId);return(0,c.writeJSON)({comments:u.map(i.queries.issueComment.commentToResponse)})}),m=(0,d.withAuth)(async(e,t)=>{let a=await (0,l.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:d}=(0,s.getCloudflareContext)(),w=(0,o.getDb)(d.DB),g=t.params?.id;if(!g)return(0,c.writeError)("issue id is required",400);let m=await i.queries.issue.getIssue(w,g,a.workspaceId);if(!m)return(0,c.writeError)("issue not found",404);let I=e.nextUrl.searchParams.get("agentId");if(I&&m.agentId!==I)return(0,c.writeError)("issue does not belong to agent",403);let[f,k]=await (0,c.parseBody)(e,n.CreateIssueCommentBodySchema);if(k)return k;let T=I?"agent":"user",y=I??t.userId,v=await i.queries.issueComment.createComment(w,{issueId:g,workspaceId:a.workspaceId,authorType:T,authorId:y,content:f.content});await i.queries.issue.updateIssue(w,g,a.workspaceId,{});let b=i.queries.issueComment.commentToResponse(v);if((0,u.broadcastToUser)(m.creatorUserId,{type:"issue.comment",issueId:g,comment:b}).catch(()=>{}),"user"===T&&!(0,r.isTerminalIssueStatus)(m.status)&&m.agentId&&m.conversationId&&!await i.queries.task.getActiveTaskByConversation(w,m.conversationId,a.workspaceId)){let e=new h.TaskService(w),t=`${m.title}
|
|
1
|
+
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,r){let i;try{let{env:a}=(0,t.getCloudflareContext)();i=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...r,status:o.status})}catch{}let o=i||a.DEV_WS_DO_URL,d=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!d.ok)throw Error(`broadcast failed: ${d.status}`);try{return{sent:(await d.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let r=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(r.catch(()=>{}))}catch{}return r.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},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))]}):[[],[],[]],h=new Map(l.map(e=>[e.id,e])),p=new Map;for(let e of c){let t=p.get(e.agentId)??[];t.push(e.emailAddress),p.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))],m=new Map((g.length>0?await t.queries.conversation.getConversationsByIds(this.db,g,i):[]).map(e=>[e.id,e])),I=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=h.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=p.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!I.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));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.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=m.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 y=(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:y}: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,h=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 h=[...new Set(u.map(e=>e.agentId))],p=new Map((await l.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,p.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 h=o,p="string"==typeof h?.output?h.output:"";if(p){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:p,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 h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.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,s,r){let i=await d.getActiveTaskByConversation(this.db,e,s);if(!i)return null;let o=await d.cancelTask(this.db,i.id,s);if(!o)return null;if("dispatched"===i.status||"running"===i.status){let r=await d.createTask(this.db,{agentId:i.agentId,runtimeId:i.runtimeId,workspaceId:s,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:i.id}}),o=await t.queries.runtime.getAgentRuntime(this.db,i.runtimeId);o&&(0,n.broadcastToDaemon)(o.daemonId,{type:"daemon.kill",workspaceId:s,taskId:r.id,targetTaskId:i.id}).catch(()=>{})}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:r?.reason??"Task cancelled by user",taskId:i.id}),await this.reconcileAgentStatus(i.agentId,s),r?.skipDispatch||await this.dispatchNextBufferedMessage(e,s),o}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),h=u?.traceId??null,p=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:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,i.id,p.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,r.messageToResponse)(i),task:(0,r.taskToResponse)(p)}).catch(()=>{}),p}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)}}}])},914022,e=>e.a(async(t,a)=>{try{var s=e.i(291484);e.i(700598);var n=e.i(888247),r=e.i(704024),i=e.i(291109),o=e.i(675139),d=e.i(152327),l=e.i(47962),c=e.i(776227),u=e.i(726089),h=e.i(205054),p=e.i(774078),w=t([d]);[d]=w.then?(await w)():w;let g=(0,d.withAuth)(async(e,t)=>{let a=await (0,l.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:n}=(0,s.getCloudflareContext)(),r=(0,o.getDb)(n.DB),d=t.params?.id;if(!d)return(0,c.writeError)("issue id is required",400);if(!await i.queries.issue.getIssue(r,d,a.workspaceId))return(0,c.writeError)("issue not found",404);let u=await i.queries.issueComment.listComments(r,d,a.workspaceId);return(0,c.writeJSON)({comments:u.map(i.queries.issueComment.commentToResponse)})}),m=(0,d.withAuth)(async(e,t)=>{let a=await (0,l.withWorkspaceMember)(e,t);if(a instanceof Response)return a;let{env:d}=(0,s.getCloudflareContext)(),w=(0,o.getDb)(d.DB),g=t.params?.id;if(!g)return(0,c.writeError)("issue id is required",400);let m=await i.queries.issue.getIssue(w,g,a.workspaceId);if(!m)return(0,c.writeError)("issue not found",404);let I=e.nextUrl.searchParams.get("agentId");if(I&&m.agentId!==I)return(0,c.writeError)("issue does not belong to agent",403);let[f,k]=await (0,c.parseBody)(e,n.CreateIssueCommentBodySchema);if(k)return k;let T=I?"agent":"user",y=I??t.userId,v=await i.queries.issueComment.createComment(w,{issueId:g,workspaceId:a.workspaceId,authorType:T,authorId:y,content:f.content});await i.queries.issue.updateIssue(w,g,a.workspaceId,{});let b=i.queries.issueComment.commentToResponse(v);if((0,u.broadcastToUser)(m.creatorUserId,{type:"issue.comment",issueId:g,comment:b}).catch(()=>{}),"user"===T&&!(0,r.isTerminalIssueStatus)(m.status)&&m.agentId&&m.conversationId&&!await i.queries.task.getActiveTaskByConversation(w,m.conversationId,a.workspaceId)){let e=new h.TaskService(w),t=`${m.title}
|
|
2
2
|
|
|
3
3
|
User feedback: "${f.content}"`;try{let s=m.latestTaskId?(await i.queries.task.getTask(w,m.latestTaskId,a.workspaceId))?.traceId??null:null,n=await e.enqueueTask(m.agentId,m.conversationId,a.workspaceId,t,r.TASK_TYPES.ISSUE_EVENT,{contextKey:m.conversationId,context:{issue_id:m.id},traceId:s,parentTaskId:null});await i.queries.issue.setLatestTask(w,g,a.workspaceId,n.id);let o=new Date().toISOString().slice(0,10);(0,p.invalidate)(p.cacheKeys.overviewTaskStats(a.workspaceId,o)).catch(()=>{})}catch{}}return(0,c.writeJSON)({comment:b},201)});e.s(["GET",0,g,"POST",0,m]),a()}catch(e){a(e)}},!1),789442,e=>e.a(async(t,a)=>{try{var s=e.i(80774),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),h=e.i(359838),p=e.i(383303),w=e.i(234173),g=e.i(270215),m=e.i(830665),I=e.i(944002),f=e.i(193695);e.i(195928);var k=e.i(81543),T=e.i(914022),y=t([T]);[T]=y.then?(await y)():y;let b=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/issues/[id]/comments/route",pathname:"/api/issues/[id]/comments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/web/src/app/api/issues/[id]/comments/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:S,serverHooks:E}=b;async function v(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/issues/[id]/comments/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:y,params:v,nextConfig:_,parsedUrl:S,isDraftMode:E,prerenderManifest:R,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:q,clientReferenceManifest:P,serverActionsManifest:M}=r,K=(0,l.normalizeAppPath)(s),N=!!(R.dynamicRoutes[K]||R.routes[q]),O=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(N&&!E){let e=!!R.routes[q],t=R.dynamicRoutes[K];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await O();throw new f.NoFallbackError}}let U=null;!N||b.isDev||E||(U=q,U="/index"===U?"/":U);let B=!0===b.isDev||!N,D=N&&!B;M&&P&&(0,d.setManifestsSingleton)({page:s,clientReferenceManifest:P,serverActionsManifest:M});let $=e.method||"GET",L=(0,o.getTracer)(),j=L.getActiveScopeSpan(),H=!!(null==A?void 0:A.isWrappedByNextServer),F=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,R,F);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:B,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,n)=>b.onRequestError(e,t,s,n,A)},sharedContext:{buildId:T,deploymentId:y}},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=L.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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(!F&&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(!N)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[I.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>=I.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=I.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,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,A),t}},c=await b.handleResponse({req:e,nextConfig:_,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:F});if(!N)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});F||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return F&&N||u.delete(I.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,w.sendResponse)(G,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};H&&j?await d(j):(r=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(h.BaseServerSpan.handleRequest,{spanName:`${$} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d),void 0,!H))}catch(t){if(t instanceof f.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,A),N)throw t;return await (0,w.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:S})},"routeModule",0,b,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,S]),a()}catch(e){a(e)}},!1),572758,e=>{e.v(t=>Promise.all(["server/chunks/0yh8_@better-auth_memory-adapter_dist_index_mjs_0u9gr83._.js"].map(t=>e.l(t))).then(()=>t(501816)))},409008,e=>{e.v(t=>Promise.all(["server/chunks/0cae_better-auth_dist_adapters_kysely-adapter_index_mjs_0c-9lzd._.js"].map(t=>e.l(t))).then(()=>t(770021)))},96318,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-na--YwnN_mjs_0ua5mwj._.js"].map(t=>e.l(t))).then(()=>t(158195)))},11379,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0evb.r9._.js"].map(t=>e.l(t))).then(()=>t(302822)))},946743,e=>{e.v(t=>Promise.all(["server/chunks/0_yy_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0bihzky._.js"].map(t=>e.l(t))).then(()=>t(898679)))}];
|
|
4
4
|
|
package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0cji8yc._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let r;try{let{env:a}=(0,t.getCloudflareContext)();r=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...i,status:o.status})}catch{}let o=r||a.DEV_WS_DO_URL,d=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!d.ok)throw Error(`broadcast failed: ${d.status}`);try{return{sent:(await d.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let i=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),i=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,r){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,i.cached)(i.cacheKeys.allAgents(r),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allEmailAccounts(r),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allColleagues(r),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,r)).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))]}):[[],[],[]],h=new Map(l.map(e=>[e.id,e])),g=new Map;for(let e of c){let t=g.get(e.agentId)??[];t.push(e.emailAddress),g.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 p=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],m=new Map((p.length>0?await t.queries.conversation.getConversationsByIds(this.db,p,r):[]).map(e=>[e.id,e])),I=new Map,k=new Map,f=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){f.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=h.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=g.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.member(r,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,r));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(l=[a.globalInstruction,l].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!k.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));k.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=k.get(e.ownerId)?.name??null}let u=m.get(o.conversationId)??null,p=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!k.has(u.userId)){let e=await (0,i.cached)(i.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));k.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=k.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let y=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));f.push({...(0,n.taskToResponse)(o),channel:p,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:y}:null})}return f}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),n=e.i(726089),i=e.i(740580),r=e.i(774078),o=e.i(555230);let d=t.queries.task,l=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,i=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:i,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,r.invalidate)(r.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,i=n>0?await d.listPendingTasksByRuntimes(this.db,e,a):[],r=new Set(e),o=new Set,c=[...s],u=[];for(let e of i){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 h=[...new Set(u.map(e=>e.agentId))],g=new Map((await l.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,g.get(e.agentId)??null)))))e&&r.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,r){let o;try{o=JSON.parse(a)}catch{o={raw:a}}let l=await d.completeTask(this.db,e,t,{result:o,sessionId:r||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 h=o,g="string"==typeof h?.output?h.output:"";if(g){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:g,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,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(l.agentId,l.workspaceId),await this.dispatchNextBufferedMessage(l.conversationId,l.workspaceId),l}async failTask(e,t,r){let o=await d.failTask(this.db,e,t,r);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(r){let a=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:`Error: ${r}`,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,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let r=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,i.messageToResponse)(r)}).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 i=await d.cancelTask(this.db,n.id,t);return i?(("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),i):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,r.invalidate)(r.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let r=await c.activateNextBufferedMessage(this.db,e);if(!r)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,r.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:r.id,revertErr:e})}),null;let l=o.userId;try{let s=r.attachmentIds?JSON.parse(r.attachmentIds):[],u=await d.getLatestTaskForConversation(this.db,e),h=u?.traceId??null,g=await this.enqueueTask(o.agentId,e,t,r.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,r.id,g.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(r),task:(0,i.taskToResponse)(g)}).catch(()=>{}),g}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,r.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:r.id,revertErr:e})}),(0,n.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:e,messageId:r.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 i=await d.dispatchTaskById(this.db,e.id,a);if(!i)return;let r=new o.TaskPayloadBuilder(this.db),l=await r.buildFullPayloads([i],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)}}}])},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)))}];
|
|
1
|
+
module.exports=[726089,e=>{"use strict";var t=e.i(291484);e.i(700598);var a=e.i(704024);let s=(0,e.i(726527).createLogger)({service:"broadcast"});async function n(e,n,i){let r;try{let{env:a}=(0,t.getCloudflareContext)();r=a.DEV_WS_DO_URL;let o=await a.WS_DO_WORKER.fetch(`http://internal${e}`,{method:"POST",body:n});if(o.ok)try{return{sent:(await o.json()).sent??0}}catch{return{sent:0}}s.warn("broadcast service-binding non-ok",{...i,status:o.status})}catch{}let o=r||a.DEV_WS_DO_URL,d=await fetch(`${o}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!d.ok)throw Error(`broadcast failed: ${d.status}`);try{return{sent:(await d.json()).sent??0}}catch{return{sent:0}}}e.s(["broadcastToDaemon",0,function(e,a){let s=n(`/broadcast/daemon/${e}`,JSON.stringify(a),{daemonId:e,type:a.type});try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(s.catch(()=>{}))}catch{}return s},"broadcastToUser",0,function(e,a){return function(e,a,s){let i=n(e,a,s);try{let{ctx:e}=(0,t.getCloudflareContext)();e.waitUntil(i.catch(()=>{}))}catch{}return i.then(()=>{})}(`/broadcast/user/${e}`,JSON.stringify(a),{userId:e,type:a.type})}])},799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},555230,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(424166),n=e.i(740580),i=e.i(774078);e.s(["TaskPayloadBuilder",0,class{db;constructor(e){this.db=e}async buildFullPayloads(e,r){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,i.cached)(i.cacheKeys.allAgents(r),300,()=>t.queries.agent.getAllAgentsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allEmailAccounts(r),600,()=>t.queries.emailAccount.getAllEmailAccountsForWorkspace(this.db,r)),(0,i.cached)(i.cacheKeys.allColleagues(r),600,()=>t.queries.agentLink.getAllColleaguesForWorkspace(this.db,r)).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))]}):[[],[],[]],h=new Map(l.map(e=>[e.id,e])),g=new Map;for(let e of c){let t=g.get(e.agentId)??[];t.push(e.emailAddress),g.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 p=[...new Set(o.map(e=>e.conversationId).filter(Boolean))],m=new Map((p.length>0?await t.queries.conversation.getConversationsByIds(this.db,p,r):[]).map(e=>[e.id,e])),I=new Map,k=new Map,f=[];for(let o of e){if(o.type===a.TASK_TYPES.KILL_TASK){f.push({...(0,n.taskToResponse)(o),agent:null,sender:null});continue}let e=h.get(o.agentId)??null,d=[];if(e){e.emailHandle&&d.push(`${e.emailHandle}@alook.ai`);let t=g.get(e.id)??[];d.push(...t)}let l=e?.instructions??"";if(e?.ownerId){if(!I.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.member(r,e.ownerId),600,()=>t.queries.member.getMemberByUserAndWorkspace(this.db,e.ownerId,r));I.set(e.ownerId,a?{globalInstruction:a.globalInstruction}:null)}let a=I.get(e.ownerId);a?.globalInstruction&&(l=[a.globalInstruction,l].filter(Boolean).join("\n\n"))}let c=null;if(e?.ownerId){if(!k.has(e.ownerId)){let a=await (0,i.cached)(i.cacheKeys.user(e.ownerId),1800,()=>t.queries.user.getUser(this.db,e.ownerId));k.set(e.ownerId,a?{name:a.name,email:a.email}:null)}c=k.get(e.ownerId)?.name??null}let u=m.get(o.conversationId)??null,p=u?.channel??"default",T=null;if(o.type===a.TASK_TYPES.USER_DM_MESSAGE&&u?.userId){if(!k.has(u.userId)){let e=await (0,i.cached)(i.cacheKeys.user(u.userId),1800,()=>t.queries.user.getUser(this.db,u.userId));k.set(u.userId,e?{name:e.name,email:e.email}:null)}let a=k.get(u.userId);a&&(T={name:a.name,email:a.email,is_owner:u.userId===e?.ownerId})}let y=(w.get(o.agentId)??[]).map(e=>({name:e.name,email:e.emailHandle?(0,s.toAlookAddress)(e.emailHandle):"",description:e.description,instruction:e.instruction}));f.push({...(0,n.taskToResponse)(o),channel:p,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:y}:null})}return f}}])},205054,e=>{"use strict";e.i(700598);var t=e.i(291109),a=e.i(704024),s=e.i(799579),n=e.i(726089),i=e.i(740580),r=e.i(774078),o=e.i(555230);let d=t.queries.task,l=t.queries.agent,c=t.queries.message,u=t.queries.conversation,h=t.queries.issue;e.s(["TaskService",0,class{db;constructor(e){this.db=e}async enqueueTask(e,t,s,n,i=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:i,contextKey:o?.contextKey??null,priority:0,context:o?.context,traceId:o?.traceId??null,parentTaskId:o?.parentTaskId??null});return(0,r.invalidate)(r.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,i=n>0?await d.listPendingTasksByRuntimes(this.db,e,a):[],r=new Set(e),o=new Set,c=[...s],u=[];for(let e of i){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 h=[...new Set(u.map(e=>e.agentId))],g=new Map((await l.getAgentsByIds(this.db,h,a)).map(e=>[e.id,e]));for(let e of(await Promise.all(u.map(e=>this.claimTaskWithAgent(e.agentId,e.workspaceId,g.get(e.agentId)??null)))))e&&r.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,r){let o;try{o=JSON.parse(a)}catch{o={raw:a}}let l=await d.completeTask(this.db,e,t,{result:o,sessionId:r||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 h=o,g="string"==typeof h?.output?h.output:"";if(g){let a=await c.createMessage(this.db,{conversationId:l.conversationId,role:"assistant",content:g,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,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(l.agentId,l.workspaceId),await this.dispatchNextBufferedMessage(l.conversationId,l.workspaceId),l}async failTask(e,t,r){let o=await d.failTask(this.db,e,t,r);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(r){let a=await c.createMessage(this.db,{conversationId:o.conversationId,role:"assistant",content:`Error: ${r}`,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,i.messageToResponse)(a)}).catch(()=>{})}catch{}}return await this.reconcileAgentStatus(o.agentId,o.workspaceId),await this.syncIssueStatusFromTask(o,"failed"),await this.dispatchNextBufferedMessage(o.conversationId,o.workspaceId),o}async syncIssueStatusFromTask(e,t){if(e.type!==a.TASK_TYPES.ISSUE_EVENT)return;let s=await h.getIssueByConversation(this.db,e.conversationId,e.workspaceId);if(!s||s.status===t||!await h.updateIssue(this.db,s.id,e.workspaceId,{status:t}))return;let r=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,i.messageToResponse)(r)}).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,s,i){let r=await d.getActiveTaskByConversation(this.db,e,s);if(!r)return null;let o=await d.cancelTask(this.db,r.id,s);if(!o)return null;if("dispatched"===r.status||"running"===r.status){let i=await d.createTask(this.db,{agentId:r.agentId,runtimeId:r.runtimeId,workspaceId:s,conversationId:e,prompt:"",type:a.TASK_TYPES.KILL_TASK,context:{target_task_id:r.id}}),o=await t.queries.runtime.getAgentRuntime(this.db,r.runtimeId);o&&(0,n.broadcastToDaemon)(o.daemonId,{type:"daemon.kill",workspaceId:s,taskId:i.id,targetTaskId:r.id}).catch(()=>{})}return await c.createMessage(this.db,{conversationId:e,role:"assistant",content:i?.reason??"Task cancelled by user",taskId:r.id}),await this.reconcileAgentStatus(r.agentId,s),i?.skipDispatch||await this.dispatchNextBufferedMessage(e,s),o}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,r.invalidate)(r.cacheKeys.activeTaskCounts(t)).catch(()=>{})}async dispatchNextBufferedMessage(e,t){let r=await c.activateNextBufferedMessage(this.db,e);if(!r)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,r.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:r.id,revertErr:e})}),null;let l=o.userId;try{let s=r.attachmentIds?JSON.parse(r.attachmentIds):[],u=await d.getLatestTaskForConversation(this.db,e),h=u?.traceId??null,g=await this.enqueueTask(o.agentId,e,t,r.content,a.TASK_TYPES.USER_DM_MESSAGE,{contextKey:e,context:s.length>0?{attachment_ids:s}:void 0,traceId:h,parentTaskId:null});return await c.updateMessageTaskId(this.db,r.id,g.id),(0,n.broadcastToUser)(l,{type:"followup.dispatched",conversationId:e,message:(0,i.messageToResponse)(r),task:(0,i.taskToResponse)(g)}).catch(()=>{}),g}catch(t){return s.log.warn("dispatchNextBufferedMessage: enqueueTask failed",{conversationId:e,err:t}),await c.revertToBuffered(this.db,r.id).catch(e=>{s.log.error("dispatchNextBufferedMessage: failed to revert message status",{messageId:r.id,revertErr:e})}),(0,n.broadcastToUser)(l,{type:"followup.dispatch_failed",conversationId:e,messageId:r.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 i=await d.dispatchTaskById(this.db,e.id,a);if(!i)return;let r=new o.TaskPayloadBuilder(this.db),l=await r.buildFullPayloads([i],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)}}}])},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=_0cji8yc._.js.map
|
package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0drn_ol._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),r=e.i(704024),a=e.i(719436),i=e.i(799579);let{listDueCalendarEvents:n,claimCalendarEvent:s,revertCalendarEventClaim:l,updateCalendarEventSchedule:d,computeNextScheduledAt:o}=t.queries.calendarEvent;async function c(e,p,u=new Date().toISOString()){let _=await n(e,p,u),
|
|
1
|
+
module.exports=[799579,e=>{"use strict";e.i(700598);let t=(0,e.i(726527).createLogger)({service:"web",level:process.env.ALOOK_LOG_LEVEL||"info",pretty:!1});e.s(["log",0,t])},801093,e=>{"use strict";e.i(700598);var t=e.i(291109),r=e.i(704024),a=e.i(719436),i=e.i(799579);let{listDueCalendarEvents:n,claimCalendarEvent:s,revertCalendarEventClaim:l,updateCalendarEventSchedule:d,computeNextScheduledAt:o}=t.queries.calendarEvent;async function c(e,p,u=new Date().toISOString()){let _=await n(e,p,u),m=new Map,g=0;for(let n of _){let c=await t.queries.agent.getAgent(e,n.agentId,n.workspaceId);if(!c){i.log.warn("calendar: agent missing, skipping",{id:n.id});continue}if(!c.runtimeId){i.log.warn("calendar: agent has no runtime, skipping",{id:n.id});continue}if(!c.ownerId){i.log.warn("calendar: agent has no owner, skipping",{id:n.id});continue}let p=n.lastTriggeredAt??null;if(await s(e,n.id,n.scheduledAt,u))try{let i=await t.queries.conversation.createConversation(e,{workspaceId:n.workspaceId,agentId:n.agentId,userId:c.ownerId,title:`[Calendar] ${n.title}`.slice(0,120),type:r.TASK_TYPES.CALENDAR_EVENT});if(await t.queries.message.createMessage(e,{conversationId:i.id,role:"event",content:n.title,metadata:JSON.stringify({calendarEventId:n.id})}),!m.has(c.ownerId)){let r=await t.queries.user.getUser(e,c.ownerId);m.set(c.ownerId,r?{name:r.name,email:r.email}:null)}let s=m.get(c.ownerId),l={event_id:n.id,datetime:n.scheduledAt,is_recurring:!!n.repeatInterval,repeat_interval:n.repeatInterval??null};if(n.description&&(l.description=n.description),s&&(l.scheduled_by=s),await t.queries.task.createTask(e,{agentId:n.agentId,runtimeId:c.runtimeId,workspaceId:n.workspaceId,conversationId:i.id,contextKey:i.id,prompt:n.title,type:r.TASK_TYPES.CALENDAR_EVENT,priority:0,traceId:"tr_"+(0,a.nanoid)(),parentTaskId:null,context:l}),n.repeatInterval){let t=o(n.scheduledAt,n.repeatInterval,n.repeatStopAt??null,u,n.exceptions??[]);t&&await d(e,n.id,t)}g++}catch(t){i.log.warn("calendar: post-claim write failed, reverting",{id:n.id,err:String(t)});try{await l(e,n.id,p)}catch(e){i.log.error("calendar: compensating revert failed",{id:n.id,err:String(e)})}}}return g>0&&i.log.info("calendar: promoted due events",{workspaceId:p,enqueued:g}),g}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=_0drn_ol._.js.map
|