@superinterface/server 1.8.7 → 1.8.10

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 (35) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/cache/.previewinfo +1 -1
  4. package/.next/cache/.rscinfo +1 -1
  5. package/.next/cache/.tsbuildinfo +1 -1
  6. package/.next/cache/eslint/.cache_btwyo7 +1 -1
  7. package/.next/fallback-build-manifest.json +2 -2
  8. package/.next/prerender-manifest.json +3 -3
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +1 -1
  11. package/.next/server/app/api/messages/route.js +1 -1
  12. package/.next/server/app/api/messages/route.js.nft.json +1 -1
  13. package/.next/server/app/api/tasks/callback/route.js +1 -1
  14. package/.next/server/app/api/tasks/callback/route.js.nft.json +1 -1
  15. package/.next/server/app/index.html +1 -1
  16. package/.next/server/app/index.rsc +1 -1
  17. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_cb746cf4.js +1 -1
  18. package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_f952d9ab.js +1 -1
  19. package/.next/server/chunks/supercorp_superinterface_d28d67e0._.js +5 -0
  20. package/.next/server/chunks/supercorp_superinterface_d28d67e0._.js.map +1 -0
  21. package/.next/server/chunks/supercorp_superinterface_f2a8be64._.js +5 -0
  22. package/.next/server/chunks/supercorp_superinterface_f2a8be64._.js.map +1 -0
  23. package/.next/server/pages/404.html +1 -1
  24. package/.next/server/pages/500.html +1 -1
  25. package/.next/server/server-reference-manifest.js +1 -1
  26. package/.next/server/server-reference-manifest.json +1 -1
  27. package/.next/trace +1 -1
  28. package/package.json +2 -2
  29. package/.next/server/chunks/supercorp_superinterface_c6d586ec._.js +0 -5
  30. package/.next/server/chunks/supercorp_superinterface_c6d586ec._.js.map +0 -1
  31. package/.next/server/chunks/supercorp_superinterface_d30ea151._.js +0 -5
  32. package/.next/server/chunks/supercorp_superinterface_d30ea151._.js.map +0 -1
  33. /package/.next/static/{i6PGWDTy7A21kD9-DIPtJ → KR8iOQVRL49S4spN-8O8W}/_buildManifest.js +0 -0
  34. /package/.next/static/{i6PGWDTy7A21kD9-DIPtJ → KR8iOQVRL49S4spN-8O8W}/_clientMiddlewareManifest.json +0 -0
  35. /package/.next/static/{i6PGWDTy7A21kD9-DIPtJ → KR8iOQVRL49S4spN-8O8W}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[86719,e=>{"use strict";e.s(["handler",()=>ea,"patchFetch",()=>et,"routeModule",()=>J,"serverHooks",()=>ee,"workAsyncStorage",()=>Q,"workUnitAsyncStorage",()=>Y],86719);var t=e.i(78243),a=e.i(43877),s=e.i(77767),r=e.i(92562),o=e.i(66256),n=e.i(5270),i=e.i(90231),d=e.i(82677),l=e.i(51081),u=e.i(89822),c=e.i(9124),p=e.i(39147),g=e.i(40568),R=e.i(87188),h=e.i(93695);e.i(57132);var v=e.i(80739);e.s(["GET",()=>W,"OPTIONS",()=>X,"POST",()=>V,"maxDuration",()=>B],26738),e.s(["GET",()=>W,"OPTIONS",()=>X,"POST",()=>V],58409);var m=e.i(24493),S=e.i(49493),w=e.i(29173),E=e.i(50498),T=e.i(91450),I=e.i(30611),f=e.i(13669),L=e.i(14554),P=e.i(95690);e.i(97691);var y=e.i(67775),q=e.i(7651),A=e.i(75247);let M=async({textContent:e,audioContent:t,assistant:a})=>{if(e)return e;if(t){let e=a.workspace.modelProviders.find(e=>e.type===w.ModelProviderType.OPENAI);if(!e?.apiKey)throw Error("No OpenAI API key found");let s=(0,q.buildOpenaiClient)({modelProvider:e}),r=t.split(",")[1];if((0,A.isEmpty)(r))return"-";let o=Buffer.from(r,"base64"),n=await (0,y.toFile)(o,"message.mp3");return(await s.audio.transcriptions.create({file:n,model:"whisper-1"})).text}throw Error("No content found")};var O=e.i(9949),N=e.i(56512),x=e.i(9394),k=e.i(38372),C=e.i(57630);let b=async({assistant:e})=>{let t=(0,T.optimisticId)(),a=(0,N.default)().unix();return{data:await Promise.all(e.initialMessages.map(async(s,r)=>(0,T.serializeMessage)({message:{id:(0,T.optimisticId)(),role:s.role.toLowerCase(),created_at:a-r-1,object:"thread.message",content:[{type:"text",text:{annotations:[],value:s.content}}],run_id:null,assistant_id:s.role===w.MessageRole.ASSISTANT?(({assistant:e})=>{if((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType}))return e.openaiAssistantId;if((0,k.isResponsesStorageProvider)({storageProviderType:e.storageProviderType}))return e.storageProviderType===w.StorageProviderType.AZURE_RESPONSES&&e.azureResponsesAgentName?e.azureResponsesAgentName:e.id;if(e.storageProviderType===w.StorageProviderType.SUPERINTERFACE_CLOUD)return e.id;if((0,C.isAzureAgentsStorageProvider)({storageProviderType:e.storageProviderType}))return e.azureAgentsAgentId;throw Error("Invalid storage type")})({assistant:e}):null,thread_id:t,attachments:s.attachments,metadata:s.metadata,completed_at:a-r-1,incomplete_at:null,incomplete_details:null,status:"completed",runSteps:[]}}))),hasNextPage:!1,lastId:null}};var j=e.i(58011),_=e.i(39713),H=e.i(96227),F=e.i(57623),G=e.i(18527);let U=async({workspaceAccessWhere:e,prisma:t})=>(await t.workspace.findFirst({where:e})).id;var $=e.i(55897);let z=({threadId:e})=>e&&(0,$.validate)(e)?e:"00000000-0000-0000-0000-000000000000";var D=e.i(10671);let K=({error:e})=>e instanceof Error?`${e.message}${(({error:e})=>e.cause instanceof Error?` ${e.cause.message}`:e.cause?` ${e.cause}`:"")({error:e})}`:String(e),B=800,W=(({prisma:e})=>async t=>{let a=f.z.object({publicApiKey:f.z.string().optional(),assistantId:f.z.string().optional(),threadId:f.z.string().optional(),pageParam:f.z.string().optional()}).parse(Object.fromEntries(t.nextUrl.searchParams.entries())),s=await (0,O.workspaceAccessWhere)({publicApiKey:a.publicApiKey??null,prisma:e});if(!s)return S.NextResponse.json({error:"Invalid api key"},{status:400});let r=a.assistantId;if(!r)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistantId found.",workspaceId:await U({workspaceAccessWhere:s,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant id found"},{status:400});let{threadId:o,pageParam:n}=a,i=await e.assistant.findFirst({where:{id:r,workspace:s},include:{threads:{where:{id:z({threadId:o??null})},take:1,include:{assistant:{select:{storageProviderType:!0}}}},workspace:{include:{modelProviders:!0}},modelProvider:!0,initialMessages:{orderBy:{orderNumber:"desc"}},mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,sseTransport:!0,httpTransport:!0}},tools:{include:{fileSearchTool:!0,webSearchTool:!0,imageGenerationTool:!0,codeInterpreterTool:!0,computerUseTool:!0}},functions:!0}});if(!i)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistant found.",workspaceId:await U({workspaceAccessWhere:s,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant found"},{status:400});if(!o)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});let d=i.threads[0];if(!d)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});let l=(0,P.assistantClientAdapter)({assistant:i,prisma:e,thread:d}),u=(0,L.storageThreadId)({thread:d});if(!u)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});try{return S.NextResponse.json(await (0,E.messagesResponse)({threadId:u,client:l,...n?{pageParam:n}:{}}),{headers:I.cacheHeaders})}catch(t){return console.dir({error:t},{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.GET,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to load messages: ${t.message}`,workspaceId:i.workspaceId,assistantId:i.id,threadId:d.id},prisma:e}),S.NextResponse.json({error:"Failed to load messages."},{status:500})}})({prisma:m.prisma}),V=(({prisma:e,onSuccessCreateThread:t=()=>void 0})=>async a=>{let s,r,o,n=f.z.object({audioContent:f.z.any().optional(),content:f.z.any().optional(),attachments:f.z.array(f.z.any()).optional(),assistantId:f.z.string().optional(),publicApiKey:f.z.string().optional(),threadId:f.z.string().optional()}).passthrough().parse(await a.json()),{audioContent:i,content:d,attachments:l,assistantId:u,publicApiKey:c,...p}=n,g=await (0,O.workspaceAccessWhere)({publicApiKey:c??null,prisma:e});if(!g)return S.NextResponse.json({error:"Invalid api key"},{status:400});if(!u)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistantId found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistantId found."},{status:400});if(!d&&!i&&!l?.length)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No content found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No content found."},{status:400});let R=await e.assistant.findFirst({where:{id:u,workspace:g},include:{threads:{where:{id:z({threadId:n.threadId??null})},include:{assistant:{select:{storageProviderType:!0}}},take:1},workspace:{include:{modelProviders:!0}},mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,sseTransport:!0,httpTransport:!0}},tools:{include:{fileSearchTool:!0,webSearchTool:!0,imageGenerationTool:!0,codeInterpreterTool:!0,computerUseTool:{include:{mcpServer:{include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0}}}}}},functions:{include:{handler:{include:{requestHandler:!0,firecrawlHandler:!0,replicateHandler:!0,clientToolHandler:!0,assistantHandler:!0,createTaskHandler:!0,listTasksHandler:!0,updateTaskHandler:!0,deleteTaskHandler:!0}}}},modelProvider:!0,initialMessages:{orderBy:{orderNumber:"asc"}}}});if(!R)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistant found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant found."},{status:400});if((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})&&!R.openaiAssistantId)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"Assistant setup is not done.",workspaceId:R.workspaceId,assistantId:R.id},prisma:e}),S.NextResponse.json({error:"Assistant setup is not done."},{status:400});let h=R.threads[0],v=!1;if(!h){let a=(0,P.assistantClientAdapter)({assistant:R,prisma:e});try{h=await (0,H.createThread)({client:a,assistant:R,prisma:e,variables:p}),t({thread:h})}catch(t){return console.dir(t,{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create thread: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id},prisma:e}),S.NextResponse.json({error:"Failed to create thread."},{status:500})}v=!0}try{s=(0,L.storageThreadId)({thread:h})}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:"Failed to get storage thread id.",workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get storage thread id."},{status:500})}if(!s&&((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})||(0,k.isResponsesStorageProvider)({storageProviderType:R.storageProviderType})))try{s=await (0,F.managedOpenaiThreadId)({assistant:R,threadId:h.id,prisma:e})}catch(t){return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to get managed openai thread id: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get managed openai thread id."},{status:500})}if(!s)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:"Invalid thread configuration.",workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Invalid thread configuration."},{status:500});try{r=await M({audioContent:i,textContent:d,assistant:R})}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to get content: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get content."},{status:500})}let m=(0,P.assistantClientAdapter)({assistant:R,prisma:e,thread:h});try{await m.beta.threads.messages.create(s,{role:"user",content:r,...l?.length?{attachments:l}:{},metadata:(0,D.serializeMetadata)({variables:p,workspaceId:R.workspaceId,prisma:e})})}catch(t){return console.log({error:t}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create message: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to create message."},{status:500})}try{o=await m.beta.threads.runs.create(s,await (0,j.createRunOpts)({assistant:R,thread:h,prisma:e}))}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create run stream: ${K({error:t})}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to create run stream."},{status:500})}let y=null,q=null;return new Response((0,E.createMessageResponse)({client:m,createRunStream:o,handleToolCall:(0,_.handleToolCall)({assistant:R,thread:h,prisma:e}),onStart:({controller:e})=>{if(v)return(0,T.enqueueJson)({controller:e,value:{event:"thread.created",data:(({thread:e})=>({id:(0,L.storageThreadId)({thread:e}),object:"thread",created_at:(0,N.default)(e.createdAt).unix(),metadata:e.metadata}))({thread:h})}})},onError:async({error:t})=>{a.signal.aborted||(console.dir({error:t},{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Thread Run failed: ${K({error:t})}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}))},onEvent:({event:t,data:a})=>{"thread.run.failed"===t?(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Thread Run failed: ${a.last_error?.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}):"thread.run.in_progress"===t?y=a:"thread.run.completed"===t&&(q=a)},onClose:async()=>{!q&&(0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})&&y&&await m.beta.threads.runs.cancel(y.id,{thread_id:y.thread_id})}}),{status:200,headers:{...I.cacheHeaders,"Content-Type":"application/json; charset=utf-8"}})})({prisma:m.prisma}),X=()=>S.NextResponse.json({},{headers:I.cacheHeaders});e.i(58409);var Z=e.i(26738);let J=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/messages/route",pathname:"/api/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/messages/route.ts",nextConfigOutput:"",userland:Z}),{workAsyncStorage:Q,workUnitAsyncStorage:Y,serverHooks:ee}=J;function et(){return(0,s.patchFetch)({workAsyncStorage:Q,workUnitAsyncStorage:Y})}async function ea(e,t,s){var m;let S="/api/messages/route";S=S.replace(/\/index$/,"")||"/";let w=await J.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:E,params:T,nextConfig:I,isDraftMode:f,prerenderManifest:L,routerServerContext:P,isOnDemandRevalidate:y,revalidateOnlyGenerated:q,resolvedPathname:A}=w,M=(0,n.normalizeAppPath)(S),O=!!(L.dynamicRoutes[M]||L.routes[A]);if(O&&!f){let e=!!L.routes[A],t=L.dynamicRoutes[M];if(t&&!1===t.fallback&&!e)throw new h.NoFallbackError}let N=null;!O||J.isDev||f||(N="/index"===(N=A)?"/":N);let x=!0===J.isDev||!O,k=O&&!x,C=e.method||"GET",b=(0,o.getTracer)(),j=b.getActiveScopeSpan(),_={params:T,prerenderManifest:L,renderOpts:{experimental:{cacheComponents:!!I.experimental.cacheComponents,authInterrupts:!!I.experimental.authInterrupts},supportsDynamicResponse:x,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(m=I.experimental)?void 0:m.cacheLife,isRevalidate:k,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s)=>J.onRequestError(e,t,s,P)},sharedContext:{buildId:E}},H=new i.NodeNextRequest(e),F=new i.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let n=async a=>J.handle(G,_).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=b.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let e=`${C} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":e}),a.updateName(e)}else a.updateName(`${C} ${e.url}`)}),i=async o=>{var i,d;let l=async({previousCacheEntry:a})=>{try{if(!(0,r.getRequestMeta)(e,"minimalMode")&&y&&q&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(o);e.fetchMetrics=_.renderOpts.fetchMetrics;let d=_.renderOpts.pendingWaitUntil;d&&s.waitUntil&&(s.waitUntil(d),d=void 0);let l=_.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(H,F,i,_.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==_.renderOpts.collectedRevalidate&&!(_.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&_.renderOpts.collectedRevalidate,s=void 0===_.renderOpts.collectedExpire||_.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:_.renderOpts.collectedExpire;return{value:{kind:v.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 J.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isRevalidate:k,isOnDemandRevalidate:y})},P),t}},h=await J.handleResponse({req:e,nextConfig:I,cacheKey:N,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:L,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:q,responseGenerator:l,waitUntil:s.waitUntil});if(!O)return null;if((null==h||null==(i=h.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==h||null==(d=h.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,r.getRequestMeta)(e,"minimalMode")||t.setHeader("x-nextjs-cache",y?"REVALIDATED":h.isMiss?"MISS":h.isStale?"STALE":"HIT"),f&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(h.value.headers);return(0,r.getRequestMeta)(e,"minimalMode")&&O||m.delete(R.NEXT_CACHE_TAGS_HEADER),!h.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(h.cacheControl)),await (0,c.sendResponse)(H,F,new Response(h.value.body,{headers:m,status:h.value.status||200})),null};j?await i(j):await b.withPropagatedContext(e.headers,()=>b.trace(l.BaseServerSpan.handleRequest,{spanName:`${C} ${e.url}`,kind:o.SpanKind.SERVER,attributes:{"http.method":C,"http.target":e.url}},i))}catch(t){if(t instanceof h.NoFallbackError||await J.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isRevalidate:k,isOnDemandRevalidate:y})}),O)throw t;return await (0,c.sendResponse)(H,F,new Response(null,{status:500})),null}}}];
1
+ module.exports=[86719,e=>{"use strict";e.s(["handler",()=>ea,"patchFetch",()=>et,"routeModule",()=>J,"serverHooks",()=>ee,"workAsyncStorage",()=>Q,"workUnitAsyncStorage",()=>Y],86719);var t=e.i(78243),a=e.i(43877),s=e.i(77767),r=e.i(92562),o=e.i(66256),n=e.i(5270),i=e.i(90231),d=e.i(82677),l=e.i(51081),u=e.i(89822),c=e.i(9124),p=e.i(39147),g=e.i(40568),R=e.i(87188),h=e.i(93695);e.i(57132);var v=e.i(80739);e.s(["GET",()=>W,"OPTIONS",()=>X,"POST",()=>V,"maxDuration",()=>B],26738),e.s(["GET",()=>W,"OPTIONS",()=>X,"POST",()=>V],58409);var m=e.i(24493),S=e.i(49493),w=e.i(29173),E=e.i(91877),T=e.i(70691),I=e.i(30611),f=e.i(13669),L=e.i(14554),P=e.i(95690);e.i(97691);var y=e.i(67775),q=e.i(7651),A=e.i(75247);let M=async({textContent:e,audioContent:t,assistant:a})=>{if(e)return e;if(t){let e=a.workspace.modelProviders.find(e=>e.type===w.ModelProviderType.OPENAI);if(!e?.apiKey)throw Error("No OpenAI API key found");let s=(0,q.buildOpenaiClient)({modelProvider:e}),r=t.split(",")[1];if((0,A.isEmpty)(r))return"-";let o=Buffer.from(r,"base64"),n=await (0,y.toFile)(o,"message.mp3");return(await s.audio.transcriptions.create({file:n,model:"whisper-1"})).text}throw Error("No content found")};var O=e.i(9949),N=e.i(56512),x=e.i(9394),k=e.i(38372),C=e.i(57630);let b=async({assistant:e})=>{let t=(0,T.optimisticId)(),a=(0,N.default)().unix();return{data:await Promise.all(e.initialMessages.map(async(s,r)=>(0,T.serializeMessage)({message:{id:(0,T.optimisticId)(),role:s.role.toLowerCase(),created_at:a-r-1,object:"thread.message",content:[{type:"text",text:{annotations:[],value:s.content}}],run_id:null,assistant_id:s.role===w.MessageRole.ASSISTANT?(({assistant:e})=>{if((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType}))return e.openaiAssistantId;if((0,k.isResponsesStorageProvider)({storageProviderType:e.storageProviderType}))return e.storageProviderType===w.StorageProviderType.AZURE_RESPONSES&&e.azureResponsesAgentName?e.azureResponsesAgentName:e.id;if(e.storageProviderType===w.StorageProviderType.SUPERINTERFACE_CLOUD)return e.id;if((0,C.isAzureAgentsStorageProvider)({storageProviderType:e.storageProviderType}))return e.azureAgentsAgentId;throw Error("Invalid storage type")})({assistant:e}):null,thread_id:t,attachments:s.attachments,metadata:s.metadata,completed_at:a-r-1,incomplete_at:null,incomplete_details:null,status:"completed",runSteps:[]}}))),hasNextPage:!1,lastId:null}};var j=e.i(58011),_=e.i(39713),H=e.i(96227),F=e.i(57623),G=e.i(18527);let U=async({workspaceAccessWhere:e,prisma:t})=>(await t.workspace.findFirst({where:e})).id;var $=e.i(55897);let z=({threadId:e})=>e&&(0,$.validate)(e)?e:"00000000-0000-0000-0000-000000000000";var D=e.i(10671);let K=({error:e})=>e instanceof Error?`${e.message}${(({error:e})=>e.cause instanceof Error?` ${e.cause.message}`:e.cause?` ${e.cause}`:"")({error:e})}`:String(e),B=800,W=(({prisma:e})=>async t=>{let a=f.z.object({publicApiKey:f.z.string().optional(),assistantId:f.z.string().optional(),threadId:f.z.string().optional(),pageParam:f.z.string().optional()}).parse(Object.fromEntries(t.nextUrl.searchParams.entries())),s=await (0,O.workspaceAccessWhere)({publicApiKey:a.publicApiKey??null,prisma:e});if(!s)return S.NextResponse.json({error:"Invalid api key"},{status:400});let r=a.assistantId;if(!r)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistantId found.",workspaceId:await U({workspaceAccessWhere:s,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant id found"},{status:400});let{threadId:o,pageParam:n}=a,i=await e.assistant.findFirst({where:{id:r,workspace:s},include:{threads:{where:{id:z({threadId:o??null})},take:1,include:{assistant:{select:{storageProviderType:!0}}}},workspace:{include:{modelProviders:!0}},modelProvider:!0,initialMessages:{orderBy:{orderNumber:"desc"}},mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,sseTransport:!0,httpTransport:!0}},tools:{include:{fileSearchTool:!0,webSearchTool:!0,imageGenerationTool:!0,codeInterpreterTool:!0,computerUseTool:!0}},functions:!0}});if(!i)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistant found.",workspaceId:await U({workspaceAccessWhere:s,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant found"},{status:400});if(!o)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});let d=i.threads[0];if(!d)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});let l=(0,P.assistantClientAdapter)({assistant:i,prisma:e,thread:d}),u=(0,L.storageThreadId)({thread:d});if(!u)return S.NextResponse.json(await b({assistant:i}),{headers:I.cacheHeaders});try{return S.NextResponse.json(await (0,E.messagesResponse)({threadId:u,client:l,...n?{pageParam:n}:{}}),{headers:I.cacheHeaders})}catch(t){return console.dir({error:t},{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.GET,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to load messages: ${t.message}`,workspaceId:i.workspaceId,assistantId:i.id,threadId:d.id},prisma:e}),S.NextResponse.json({error:"Failed to load messages."},{status:500})}})({prisma:m.prisma}),V=(({prisma:e,onSuccessCreateThread:t=()=>void 0})=>async a=>{let s,r,o,n=f.z.object({audioContent:f.z.any().optional(),content:f.z.any().optional(),attachments:f.z.array(f.z.any()).optional(),assistantId:f.z.string().optional(),publicApiKey:f.z.string().optional(),threadId:f.z.string().optional()}).passthrough().parse(await a.json()),{audioContent:i,content:d,attachments:l,assistantId:u,publicApiKey:c,...p}=n,g=await (0,O.workspaceAccessWhere)({publicApiKey:c??null,prisma:e});if(!g)return S.NextResponse.json({error:"Invalid api key"},{status:400});if(!u)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistantId found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistantId found."},{status:400});if(!d&&!i&&!l?.length)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No content found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No content found."},{status:400});let R=await e.assistant.findFirst({where:{id:u,workspace:g},include:{threads:{where:{id:z({threadId:n.threadId??null})},include:{assistant:{select:{storageProviderType:!0}}},take:1},workspace:{include:{modelProviders:!0}},mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,sseTransport:!0,httpTransport:!0}},tools:{include:{fileSearchTool:!0,webSearchTool:!0,imageGenerationTool:!0,codeInterpreterTool:!0,computerUseTool:{include:{mcpServer:{include:{stdioTransport:!0,sseTransport:!0,httpTransport:!0}}}}}},functions:{include:{handler:{include:{requestHandler:!0,firecrawlHandler:!0,replicateHandler:!0,clientToolHandler:!0,assistantHandler:!0,createTaskHandler:!0,listTasksHandler:!0,updateTaskHandler:!0,deleteTaskHandler:!0}}}},modelProvider:!0,initialMessages:{orderBy:{orderNumber:"asc"}}}});if(!R)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"No assistant found.",workspaceId:await U({workspaceAccessWhere:g,prisma:e})},prisma:e}),S.NextResponse.json({error:"No assistant found."},{status:400});if((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})&&!R.openaiAssistantId)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:400,message:"Assistant setup is not done.",workspaceId:R.workspaceId,assistantId:R.id},prisma:e}),S.NextResponse.json({error:"Assistant setup is not done."},{status:400});let h=R.threads[0],v=!1;if(!h){let a=(0,P.assistantClientAdapter)({assistant:R,prisma:e});try{h=await (0,H.createThread)({client:a,assistant:R,prisma:e,variables:p}),t({thread:h})}catch(t){return console.dir(t,{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create thread: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id},prisma:e}),S.NextResponse.json({error:"Failed to create thread."},{status:500})}v=!0}try{s=(0,L.storageThreadId)({thread:h})}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:"Failed to get storage thread id.",workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get storage thread id."},{status:500})}if(!s&&((0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})||(0,k.isResponsesStorageProvider)({storageProviderType:R.storageProviderType})))try{s=await (0,F.managedOpenaiThreadId)({assistant:R,threadId:h.id,prisma:e})}catch(t){return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to get managed openai thread id: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get managed openai thread id."},{status:500})}if(!s)return(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:"Invalid thread configuration.",workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Invalid thread configuration."},{status:500});try{r=await M({audioContent:i,textContent:d,assistant:R})}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to get content: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to get content."},{status:500})}let m=(0,P.assistantClientAdapter)({assistant:R,prisma:e,thread:h});try{await m.beta.threads.messages.create(s,{role:"user",content:r,...l?.length?{attachments:l}:{},metadata:(0,D.serializeMetadata)({variables:p,workspaceId:R.workspaceId,prisma:e})})}catch(t){return console.log({error:t}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create message: ${t.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to create message."},{status:500})}try{o=await m.beta.threads.runs.create(s,await (0,j.createRunOpts)({assistant:R,thread:h,prisma:e}))}catch(t){return console.error(t),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Failed to create run stream: ${K({error:t})}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}),S.NextResponse.json({error:"Failed to create run stream."},{status:500})}let y=null,q=null;return new Response((0,E.createMessageResponse)({client:m,createRunStream:o,handleToolCall:(0,_.handleToolCall)({assistant:R,thread:h,prisma:e}),onStart:({controller:e})=>{if(v)return(0,T.enqueueJson)({controller:e,value:{event:"thread.created",data:(({thread:e})=>({id:(0,L.storageThreadId)({thread:e}),object:"thread",created_at:(0,N.default)(e.createdAt).unix(),metadata:e.metadata}))({thread:h})}})},onError:async({error:t})=>{a.signal.aborted||(console.dir({error:t},{depth:null}),(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Thread Run failed: ${K({error:t})}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}))},onEvent:({event:t,data:a})=>{"thread.run.failed"===t?(0,G.createLog)({log:{requestMethod:w.LogRequestMethod.POST,requestRoute:w.LogRequestRoute.MESSAGES,level:w.LogLevel.ERROR,status:500,message:`Thread Run failed: ${a.last_error?.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:h.id},prisma:e}):"thread.run.in_progress"===t?y=a:"thread.run.completed"===t&&(q=a)},onClose:async()=>{!q&&(0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType})&&y&&await m.beta.threads.runs.cancel(y.id,{thread_id:y.thread_id})}}),{status:200,headers:{...I.cacheHeaders,"Content-Type":"application/json; charset=utf-8"}})})({prisma:m.prisma}),X=()=>S.NextResponse.json({},{headers:I.cacheHeaders});e.i(58409);var Z=e.i(26738);let J=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/messages/route",pathname:"/api/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/supercorp/superinterface/packages/server/src/app/api/messages/route.ts",nextConfigOutput:"",userland:Z}),{workAsyncStorage:Q,workUnitAsyncStorage:Y,serverHooks:ee}=J;function et(){return(0,s.patchFetch)({workAsyncStorage:Q,workUnitAsyncStorage:Y})}async function ea(e,t,s){var m;let S="/api/messages/route";S=S.replace(/\/index$/,"")||"/";let w=await J.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:E,params:T,nextConfig:I,isDraftMode:f,prerenderManifest:L,routerServerContext:P,isOnDemandRevalidate:y,revalidateOnlyGenerated:q,resolvedPathname:A}=w,M=(0,n.normalizeAppPath)(S),O=!!(L.dynamicRoutes[M]||L.routes[A]);if(O&&!f){let e=!!L.routes[A],t=L.dynamicRoutes[M];if(t&&!1===t.fallback&&!e)throw new h.NoFallbackError}let N=null;!O||J.isDev||f||(N="/index"===(N=A)?"/":N);let x=!0===J.isDev||!O,k=O&&!x,C=e.method||"GET",b=(0,o.getTracer)(),j=b.getActiveScopeSpan(),_={params:T,prerenderManifest:L,renderOpts:{experimental:{cacheComponents:!!I.experimental.cacheComponents,authInterrupts:!!I.experimental.authInterrupts},supportsDynamicResponse:x,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:null==(m=I.experimental)?void 0:m.cacheLife,isRevalidate:k,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s)=>J.onRequestError(e,t,s,P)},sharedContext:{buildId:E}},H=new i.NodeNextRequest(e),F=new i.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let n=async a=>J.handle(G,_).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=b.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let e=`${C} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":e}),a.updateName(e)}else a.updateName(`${C} ${e.url}`)}),i=async o=>{var i,d;let l=async({previousCacheEntry:a})=>{try{if(!(0,r.getRequestMeta)(e,"minimalMode")&&y&&q&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(o);e.fetchMetrics=_.renderOpts.fetchMetrics;let d=_.renderOpts.pendingWaitUntil;d&&s.waitUntil&&(s.waitUntil(d),d=void 0);let l=_.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(H,F,i,_.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==_.renderOpts.collectedRevalidate&&!(_.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&_.renderOpts.collectedRevalidate,s=void 0===_.renderOpts.collectedExpire||_.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:_.renderOpts.collectedExpire;return{value:{kind:v.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 J.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isRevalidate:k,isOnDemandRevalidate:y})},P),t}},h=await J.handleResponse({req:e,nextConfig:I,cacheKey:N,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:L,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:q,responseGenerator:l,waitUntil:s.waitUntil});if(!O)return null;if((null==h||null==(i=h.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==h||null==(d=h.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,r.getRequestMeta)(e,"minimalMode")||t.setHeader("x-nextjs-cache",y?"REVALIDATED":h.isMiss?"MISS":h.isStale?"STALE":"HIT"),f&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(h.value.headers);return(0,r.getRequestMeta)(e,"minimalMode")&&O||m.delete(R.NEXT_CACHE_TAGS_HEADER),!h.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(h.cacheControl)),await (0,c.sendResponse)(H,F,new Response(h.value.body,{headers:m,status:h.value.status||200})),null};j?await i(j):await b.withPropagatedContext(e.headers,()=>b.trace(l.BaseServerSpan.handleRequest,{spanName:`${C} ${e.url}`,kind:o.SpanKind.SERVER,attributes:{"http.method":C,"http.target":e.url}},i))}catch(t){if(t instanceof h.NoFallbackError||await J.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isRevalidate:k,isOnDemandRevalidate:y})}),O)throw t;return await (0,c.sendResponse)(H,F,new Response(null,{status:500})),null}}}];
2
2
 
3
3
  //# sourceMappingURL=c4f00_next_dist_esm_build_templates_app-route_f952d9ab.js.map