@alook/app 0.0.25 → 0.0.27

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