@superinterface/server 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/eslint/.cache_btwyo7 +1 -1
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/chunks/c4f00_next_dist_esm_build_templates_app-route_828c7f3d.js.map +1 -1
- package/.next/server/chunks/supercorp_superinterface_bebd2c96._.js.map +1 -1
- package/.next/server/chunks/supercorp_superinterface_c6d586ec._.js +1 -1
- package/.next/server/chunks/supercorp_superinterface_c6d586ec._.js.map +1 -1
- package/.next/server/chunks/supercorp_superinterface_d30ea151._.js +1 -1
- package/.next/server/chunks/supercorp_superinterface_d30ea151._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/trace +1 -1
- package/dist/app/api/assistants/[assistantId]/buildRoute.d.ts +1 -1
- package/dist/app/api/assistants/[assistantId]/route.d.ts +1 -1
- package/dist/lib/assistants/assistantClientAdapter/index.d.ts.map +1 -1
- package/dist/lib/computerCalls/handleComputerCall/index.d.ts +8 -8
- package/dist/lib/computerCalls/handleComputerCall/index.d.ts.map +1 -1
- package/dist/lib/computerCalls/handleComputerCall/index.js +23 -11
- package/dist/lib/functions/handleFunction/index.d.ts.map +1 -1
- package/dist/lib/functions/handleFunction/index.js +20 -1
- package/dist/lib/mcpServers/getToolCallMcpServer.d.ts +1 -0
- package/dist/lib/mcpServers/getToolCallMcpServer.d.ts.map +1 -1
- package/dist/lib/mcpServers/getToolCallMcpServer.js +37 -18
- package/dist/lib/threads/managedOpenaiThreadId.d.ts.map +1 -1
- package/dist/lib/threads/managedOpenaiThreadId.js +1 -2
- package/dist/lib/threads/storageThreadId.d.ts.map +1 -1
- package/dist/lib/threads/storageThreadId.js +1 -2
- package/package.json +1 -1
- /package/.next/static/{shpAFERugM2nbzUksiKem → sAHFK0SESk212SK8DFgrB}/_buildManifest.js +0 -0
- /package/.next/static/{shpAFERugM2nbzUksiKem → sAHFK0SESk212SK8DFgrB}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{shpAFERugM2nbzUksiKem → sAHFK0SESk212SK8DFgrB}/_ssgManifest.js +0 -0
|
@@ -4,6 +4,6 @@ module.exports=[50498,e=>{"use strict";e.s(["createMessageResponse",()=>C,"messa
|
|
|
4
4
|
]))`;continue}else if("$"===i[e]){n+=`($|(?=[\r
|
|
5
5
|
]))`;continue}}if(t.s&&"."===i[e]){n+=o?`${i[e]}\r
|
|
6
6
|
`:`[${i[e]}\r
|
|
7
|
-
]`;continue}n+=i[e],"\\"===i[e]?s=!0:o&&"]"===i[e]?o=!1:o||"["!==i[e]||(o=!0)}try{new RegExp(n)}catch{return console.warn(`Could not convert regex pattern at ${a.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return n}function th(e,a){if("openAi"===a.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===a.target&&e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((t,i)=>({...t,[i]:tg(e.valueType._def,{...a,currentPath:[...a.currentPath,"properties",i]})??to(a)}),{}),additionalProperties:a.rejectedAdditionalProperties};let t={type:"object",additionalProperties:tg(e.valueType._def,{...a,currentPath:[...a.currentPath,"additionalProperties"]})??a.allowedAdditionalProperties};if("openApi3"===a.target)return t;if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.checks?.length){let{type:i,...n}=tp(e.keyType._def,a);return{...t,propertyNames:n}}if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodEnum)return{...t,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===te.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...n}=tr(e.keyType._def,a);return{...t,propertyNames:n}}return t}let tv={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},tx=(e,a)=>{let t=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,t)=>tg(e._def,{...a,currentPath:[...a.currentPath,"anyOf",`${t}`]})).filter(e=>!!e&&(!a.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return t.length?{anyOf:t}:void 0};function tg(e,a,t=!1){let i=a.seen.get(e);if(a.override){let n=a.override?.(e,a,i,t);if(n!==ta)return n}if(i&&!t){let e=tb(i,a);if(void 0!==e)return e}let n={def:e,path:a.currentPath,jsonSchema:void 0};a.seen.set(e,n);let s=((e,a,t)=>{switch(a){case te.ZodFirstPartyTypeKind.ZodString:return tp(e,t);case te.ZodFirstPartyTypeKind.ZodNumber:var i,n,s,o,r,c,p,l,u,d=e,m=t;let f={type:"number"};if(!d.checks)return f;for(let e of d.checks)switch(e.kind){case"int":f.type="integer",ti(f,"type",e.message,m);break;case"min":"jsonSchema7"===m.target?e.inclusive?tn(f,"minimum",e.value,e.message,m):tn(f,"exclusiveMinimum",e.value,e.message,m):(e.inclusive||(f.exclusiveMinimum=!0),tn(f,"minimum",e.value,e.message,m));break;case"max":"jsonSchema7"===m.target?e.inclusive?tn(f,"maximum",e.value,e.message,m):tn(f,"exclusiveMaximum",e.value,e.message,m):(e.inclusive||(f.exclusiveMaximum=!0),tn(f,"maximum",e.value,e.message,m));break;case"multipleOf":tn(f,"multipleOf",e.value,e.message,m)}return f;case te.ZodFirstPartyTypeKind.ZodObject:return function(e,a){let t="openAi"===a.target,i={type:"object",properties:{}},n=[],s=e.shape();for(let e in s){let o=s[e];if(void 0===o||void 0===o._def)continue;let r=function(e){try{return e.isOptional()}catch{return!0}}(o);r&&t&&("ZodOptional"===o._def.typeName&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),r=!1);let c=tg(o._def,{...a,currentPath:[...a.currentPath,"properties",e],propertyPath:[...a.currentPath,"properties",e]});void 0!==c&&(i.properties[e]=c,r||n.push(e))}n.length&&(i.required=n);let o=function(e,a){if("ZodNever"!==e.catchall._def.typeName)return tg(e.catchall._def,{...a,currentPath:[...a.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return a.allowedAdditionalProperties;case"strict":return a.rejectedAdditionalProperties;case"strip":return"strict"===a.removeAdditionalStrategy?a.allowedAdditionalProperties:a.rejectedAdditionalProperties}}(e,a);return void 0!==o&&(i.additionalProperties=o),i}(e,t);case te.ZodFirstPartyTypeKind.ZodBigInt:var h=e,v=t;let x={type:"integer",format:"int64"};if(!h.checks)return x;for(let e of h.checks)switch(e.kind){case"min":"jsonSchema7"===v.target?e.inclusive?tn(x,"minimum",e.value,e.message,v):tn(x,"exclusiveMinimum",e.value,e.message,v):(e.inclusive||(x.exclusiveMinimum=!0),tn(x,"minimum",e.value,e.message,v));break;case"max":"jsonSchema7"===v.target?e.inclusive?tn(x,"maximum",e.value,e.message,v):tn(x,"exclusiveMaximum",e.value,e.message,v):(e.inclusive||(x.exclusiveMaximum=!0),tn(x,"maximum",e.value,e.message,v));break;case"multipleOf":tn(x,"multipleOf",e.value,e.message,v)}return x;case te.ZodFirstPartyTypeKind.ZodBoolean:return{type:"boolean"};case te.ZodFirstPartyTypeKind.ZodDate:return function e(a,t,i){let n=i??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((i,n)=>e(a,t,i))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var s=a,o=t;let r={type:"integer",format:"unix-time"};if("openApi3"===o.target)return r;for(let e of s.checks)switch(e.kind){case"min":tn(r,"minimum",e.value,e.message,o);break;case"max":tn(r,"maximum",e.value,e.message,o)}return r}}(e,t);case te.ZodFirstPartyTypeKind.ZodUndefined:return{not:to(t)};case te.ZodFirstPartyTypeKind.ZodNull:return"openApi3"===t.target?{enum:["null"],nullable:!0}:{type:"null"};case te.ZodFirstPartyTypeKind.ZodArray:var g=e,b=t;let y={type:"array"};return g.type?._def&&g.type?._def?.typeName!==te.ZodFirstPartyTypeKind.ZodAny&&(y.items=tg(g.type._def,{...b,currentPath:[...b.currentPath,"items"]})),g.minLength&&tn(y,"minItems",g.minLength.value,g.minLength.message,b),g.maxLength&&tn(y,"maxItems",g.maxLength.value,g.maxLength.message,b),g.exactLength&&(tn(y,"minItems",g.exactLength.value,g.exactLength.message,b),tn(y,"maxItems",g.exactLength.value,g.exactLength.message,b)),y;case te.ZodFirstPartyTypeKind.ZodUnion:case te.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:var w=e,S=t;if("openApi3"===S.target)return tx(w,S);let k=w.options instanceof Map?Array.from(w.options.values()):w.options;if(k.every(e=>e._def.typeName in tv&&(!e._def.checks||!e._def.checks.length))){let e=k.reduce((e,a)=>{let t=tv[a._def.typeName];return t&&!e.includes(t)?[...e,t]:e},[]);return{type:e.length>1?e:e[0]}}if(k.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=k.reduce((e,a)=>{let t=typeof a._def.value;switch(t){case"string":case"number":case"boolean":return[...e,t];case"bigint":return[...e,"integer"];case"object":if(null===a._def.value)return[...e,"null"];default:return e}},[]);if(e.length===k.length){let a=e.filter((e,a,t)=>t.indexOf(e)===a);return{type:a.length>1?a:a[0],enum:k.reduce((e,a)=>e.includes(a._def.value)?e:[...e,a._def.value],[])}}}else if(k.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:k.reduce((e,a)=>[...e,...a._def.values.filter(a=>!e.includes(a))],[])};return tx(w,S);case te.ZodFirstPartyTypeKind.ZodIntersection:var R=e,_=t;let E=[tg(R.left._def,{..._,currentPath:[..._.currentPath,"allOf","0"]}),tg(R.right._def,{..._,currentPath:[..._.currentPath,"allOf","1"]})].filter(e=>!!e),j="jsonSchema2019-09"===_.target?{unevaluatedProperties:!1}:void 0,T=[];return E.forEach(e=>{if((!("type"in e)||"string"!==e.type)&&"allOf"in e)T.push(...e.allOf),void 0===e.unevaluatedProperties&&(j=void 0);else{let a=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:t,...i}=e;a=i}else j=void 0;T.push(a)}}),T.length?{allOf:T,...j}:void 0;case te.ZodFirstPartyTypeKind.ZodTuple:return i=e,n=t,i.rest?{type:"array",minItems:i.items.length,items:i.items.map((e,a)=>tg(e._def,{...n,currentPath:[...n.currentPath,"items",`${a}`]})).reduce((e,a)=>void 0===a?e:[...e,a],[]),additionalItems:tg(i.rest._def,{...n,currentPath:[...n.currentPath,"additionalItems"]})}:{type:"array",minItems:i.items.length,maxItems:i.items.length,items:i.items.map((e,a)=>tg(e._def,{...n,currentPath:[...n.currentPath,"items",`${a}`]})).reduce((e,a)=>void 0===a?e:[...e,a],[])};case te.ZodFirstPartyTypeKind.ZodRecord:return th(e,t);case te.ZodFirstPartyTypeKind.ZodLiteral:var O=e,P=t;let A=typeof O.value;return"bigint"!==A&&"number"!==A&&"boolean"!==A&&"string"!==A?{type:Array.isArray(O.value)?"array":"object"}:"openApi3"===P.target?{type:"bigint"===A?"integer":A,enum:[O.value]}:{type:"bigint"===A?"integer":A,const:O.value};case te.ZodFirstPartyTypeKind.ZodEnum:return{type:"string",enum:Array.from(e.values)};case te.ZodFirstPartyTypeKind.ZodNativeEnum:var L=e;let I=L.values,q=Object.keys(L.values).filter(e=>"number"!=typeof I[I[e]]).map(e=>I[e]),F=Array.from(new Set(q.map(e=>typeof e)));return{type:1===F.length?"string"===F[0]?"string":"number":["string","number"],enum:q};case te.ZodFirstPartyTypeKind.ZodNullable:var U=e,M=t;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(U.innerType._def.typeName)&&(!U.innerType._def.checks||!U.innerType._def.checks.length))return"openApi3"===M.target?{type:tv[U.innerType._def.typeName],nullable:!0}:{type:[tv[U.innerType._def.typeName],"null"]};if("openApi3"===M.target){let e=tg(U.innerType._def,{...M,currentPath:[...M.currentPath]});return e&&"$ref"in e?{allOf:[e],nullable:!0}:e&&{...e,nullable:!0}}let N=tg(U.innerType._def,{...M,currentPath:[...M.currentPath,"anyOf","0"]});return N&&{anyOf:[N,{type:"null"}]};case te.ZodFirstPartyTypeKind.ZodOptional:var $=e,C=t;if(C.currentPath.toString()===C.propertyPath?.toString())return tg($.innerType._def,C);let z=tg($.innerType._def,{...C,currentPath:[...C.currentPath,"anyOf","1"]});return z?{anyOf:[{not:to(C)},z]}:to(C);case te.ZodFirstPartyTypeKind.ZodMap:return s=e,"record"===(o=t).mapStrategy?th(s,o):{type:"array",maxItems:125,items:{type:"array",items:[tg(s.keyType._def,{...o,currentPath:[...o.currentPath,"items","items","0"]})||to(o),tg(s.valueType._def,{...o,currentPath:[...o.currentPath,"items","items","1"]})||to(o)],minItems:2,maxItems:2}};case te.ZodFirstPartyTypeKind.ZodSet:var B=e,D=t;let Z={type:"array",uniqueItems:!0,items:tg(B.valueType._def,{...D,currentPath:[...D.currentPath,"items"]})};return B.minSize&&tn(Z,"minItems",B.minSize.value,B.minSize.message,D),B.maxSize&&tn(Z,"maxItems",B.maxSize.value,B.maxSize.message,D),Z;case te.ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case te.ZodFirstPartyTypeKind.ZodPromise:return tg(e.type._def,t);case te.ZodFirstPartyTypeKind.ZodNaN:case te.ZodFirstPartyTypeKind.ZodNever:return"openAi"===(r=t).target?void 0:{not:to({...r,currentPath:[...r.currentPath,"not"]})};case te.ZodFirstPartyTypeKind.ZodEffects:return c=e,"input"===(p=t).effectStrategy?tg(c.schema._def,p):to(p);case te.ZodFirstPartyTypeKind.ZodAny:case te.ZodFirstPartyTypeKind.ZodUnknown:return to(t);case te.ZodFirstPartyTypeKind.ZodDefault:return l=e,u=t,{...tg(l.innerType._def,u),default:l.defaultValue()};case te.ZodFirstPartyTypeKind.ZodBranded:return tr(e,t);case te.ZodFirstPartyTypeKind.ZodReadonly:case te.ZodFirstPartyTypeKind.ZodCatch:return tg(e.innerType._def,t);case te.ZodFirstPartyTypeKind.ZodPipeline:var H=e,G=t;if("input"===G.pipeStrategy)return tg(H.in._def,G);if("output"===G.pipeStrategy)return tg(H.out._def,G);let J=tg(H.in._def,{...G,currentPath:[...G.currentPath,"allOf","0"]}),K=tg(H.out._def,{...G,currentPath:[...G.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,K].filter(e=>void 0!==e)};case te.ZodFirstPartyTypeKind.ZodFunction:case te.ZodFirstPartyTypeKind.ZodVoid:case te.ZodFirstPartyTypeKind.ZodSymbol:default:return}})(e,e.typeName,a),o="function"==typeof s?tg(s(),a):s;if(o&&ty(e,a,o),a.postProcess){let t=a.postProcess(o,e,a);return n.jsonSchema=o,t}return n.jsonSchema=o,o}let tb=(e,a)=>{switch(a.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:ts(a.currentPath,e.path)};case"none":case"seen":if(e.path.length<a.currentPath.length&&e.path.every((e,t)=>a.currentPath[t]===e))return console.warn(`Recursive reference detected at ${a.currentPath.join("/")}! Defaulting to any`),to(a);return"seen"===a.$refStrategy?to(a):void 0}},ty=(e,a,t)=>(e.description&&(t.description=e.description,a.markdownDescription&&(t.markdownDescription=e.description)),t),tw=(e,a)=>{let t=(e=>{let a=(e=>"string"==typeof e?{...tt,name:e}:{...tt,...e})(e),t=void 0!==a.name?[...a.basePath,a.definitionPath,a.name]:a.basePath;return{...a,flags:{hasReferencedOpenAiAnyType:!1},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(a.definitions).map(([e,t])=>[t._def,{def:t._def,path:[...a.basePath,a.definitionPath,e],jsonSchema:void 0}]))}})(a),i="object"==typeof a&&a.definitions?Object.entries(a.definitions).reduce((e,[a,i])=>({...e,[a]:tg(i._def,{...t,currentPath:[...t.basePath,t.definitionPath,a]},!0)??to(t)}),{}):void 0,n="string"==typeof a?a:a?.nameStrategy==="title"?void 0:a?.name,s=tg(e._def,void 0===n?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},!1)??to(t),o="object"==typeof a&&void 0!==a.name&&"title"===a.nameStrategy?a.name:void 0;void 0!==o&&(s.title=o),t.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[t.openAiAnyTypeName]||(i[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===t.$refStrategy?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let r=void 0===n?i?{...s,[t.definitionPath]:i}:s:{$ref:[..."relative"===t.$refStrategy?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...i,[n]:s}};return"jsonSchema7"===t.target?r.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===t.target||"openAi"===t.target)&&(r.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===t.target&&("anyOf"in r||"oneOf"in r||"allOf"in r||"type"in r&&Array.isArray(r.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),r};var tS=class extends EventTarget{dispatchTypedEvent(e,a){return super.dispatchEvent(a)}},tk=class extends Error{statusCode;details;constructor(e,a,t){super(e),this.statusCode=a,this.details=t}},tR=class{apiKey;apiUrl;isCloudService(e){return e.includes("api.firecrawl.dev")}constructor({apiKey:e=null,apiUrl:a=null}){let t=a||"https://api.firecrawl.dev";if(this.isCloudService(t)&&"string"!=typeof e)throw new tk("No API key provided",401);this.apiKey=e||"",this.apiUrl=t}async scrapeUrl(e,a){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={url:e,...a};if(i?.extract?.schema){let e=i.extract.schema;try{e=tw(e)}catch(e){}i={...i,extract:{...i.extract,schema:e}}}if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=tw(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await aJ.post(this.apiUrl+"/v1/scrape",i,{headers:t,timeout:a?.timeout!==void 0?a.timeout+5e3:void 0});if(200===e.status){let a=e.data;if(a.success)return{success:!0,warning:a.warning,error:a.error,...a.data};throw new tk(`Failed to scrape URL. Error: ${a.error}`,e.status)}this.handleError(e,"scrape URL")}catch(e){this.handleError(e.response,"scrape URL")}return{success:!1,error:"Internal server error."}}async search(e,a){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={query:e,limit:a?.limit??5,tbs:a?.tbs,filter:a?.filter,lang:a?.lang??"en",country:a?.country??"us",location:a?.location,origin:a?.origin??"api",timeout:a?.timeout??6e4,scrapeOptions:a?.scrapeOptions??{formats:[]}};if(i?.scrapeOptions?.extract?.schema){let e=i.scrapeOptions.extract.schema;try{e=tw(e)}catch(e){}i={...i,scrapeOptions:{...i.scrapeOptions,extract:{...i.scrapeOptions.extract,schema:e}}}}try{let e=await this.postRequest(this.apiUrl+"/v1/search",i,t);if(200===e.status){let a=e.data;if(a.success)return{success:!0,data:a.data,warning:a.warning};throw new tk(`Failed to search. Error: ${a.error}`,e.status)}this.handleError(e,"search")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error.",data:[]}}async crawlUrl(e,a,t=2,i){let n=this.prepareHeaders(i),s={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",s,n);if(200===e.status){let a=e.data.id;return this.monitorJobStatus(a,n,t)}this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncCrawlUrl(e,a,t){let i=this.prepareHeaders(t),n={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",n,i);if(200===e.status)return e.data;this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlStatus(e,a=!1,t,i,n){if(!e)throw new tk("No crawl ID provided",400);let s=this.prepareHeaders(),o=new URL(t??`${this.apiUrl}/v1/crawl/${e}`);void 0!==i&&o.searchParams.set("skip",i.toString()),void 0!==n&&o.searchParams.set("limit",n.toString());try{let e=await this.getRequest(o.href,s);if(200===e.status){let t=e.data.data;if(a&&"completed"===e.data.status){let a=e.data;if("data"in a){let e=a.data;for(;"object"==typeof a&&"next"in a&&0!==e.length;)a=(await this.getRequest(a.next,s)).data,e=e.concat(a.data);t=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:a?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:t};return!e.data.success&&e.data.error&&(i={...i,success:!1,error:e.data.error}),e.data.next&&(i.next=e.data.next),i}this.handleError(e,"check crawl status")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlErrors(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}/errors`,a);if(200===t.status)return t.data;this.handleError(t,"check crawl errors")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async cancelCrawl(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}`,a);if(200===t.status)return t.data;this.handleError(t,"cancel crawl job")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async crawlUrlAndWatch(e,a,t){let i=await this.asyncCrawlUrl(e,a,t);if(i.success&&i.id)return new t_(i.id,this);throw new tk("Crawl job failed to start",400)}async mapUrl(e,a){let t=this.prepareHeaders(),i={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/map",i,t);if(200===e.status)return e.data;this.handleError(e,"map")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrls(e,a,t=2,i,n,s){let o=this.prepareHeaders(i),r={urls:e,webhook:n,ignoreInvalidURLs:s,...a};if(r?.extract?.schema){let e=r.extract.schema;try{e=tw(e)}catch(e){}r={...r,extract:{...r.extract,schema:e}}}if(r?.jsonOptions?.schema){let e=r.jsonOptions.schema;try{e=tw(e)}catch(e){}r={...r,jsonOptions:{...r.jsonOptions,schema:e}}}try{let e=await this.postRequest(this.apiUrl+"/v1/batch/scrape",r,o);if(200===e.status){let a=e.data.id;return this.monitorJobStatus(a,o,t)}this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncBatchScrapeUrls(e,a,t,i,n){let s=this.prepareHeaders(t),o={urls:e,webhook:i,ignoreInvalidURLs:n,...a??{}};try{let e=await this.postRequest(this.apiUrl+"/v1/batch/scrape",o,s);if(200===e.status)return e.data;this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrlsAndWatch(e,a,t,i,n){let s=await this.asyncBatchScrapeUrls(e,a,t,i,n);if(s.success&&s.id)return new t_(s.id,this);throw new tk("Batch scrape job failed to start",400)}async checkBatchScrapeStatus(e,a=!1,t,i,n){if(!e)throw new tk("No batch scrape ID provided",400);let s=this.prepareHeaders(),o=new URL(t??`${this.apiUrl}/v1/batch/scrape/${e}`);void 0!==i&&o.searchParams.set("skip",i.toString()),void 0!==n&&o.searchParams.set("limit",n.toString());try{let e=await this.getRequest(o.href,s);if(200===e.status){let t=e.data.data;if(a&&"completed"===e.data.status){let a=e.data;if("data"in a){let e=a.data;for(;"object"==typeof a&&"next"in a&&0!==e.length;)a=(await this.getRequest(a.next,s)).data,e=e.concat(a.data);t=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:a?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:t};return!e.data.success&&e.data.error&&(i={...i,success:!1,error:e.data.error}),e.data.next&&(i.next=e.data.next),i}this.handleError(e,"check batch scrape status")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkBatchScrapeErrors(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/batch/scrape/${e}/errors`,a);if(200===t.status)return t.data;this.handleError(t,"check batch scrape errors")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async extract(e,a){let t,i=this.prepareHeaders(),n={urls:e,...a};try{t=a?.schema?"object"==typeof a.schema&&null!==a.schema&&Object.getPrototypeOf(a.schema)?.constructor?.name?.startsWith("Zod")?tw(a.schema):a.schema:void 0}catch(e){throw new tk("Invalid schema. Schema must be either a valid Zod schema or JSON schema object.",400)}try{let e=await this.postRequest(this.apiUrl+"/v1/extract",{...n,schema:t,origin:a?.origin||"api-sdk"},i);if(200===e.status){let a,t=e.data.id;do{let e=await this.getRequest(`${this.apiUrl}/v1/extract/${t}`,i);if(a=e.data,"completed"===a.status)if(a.success)return{success:!0,data:a.data,warning:a.warning,error:a.error,sources:a?.sources||void 0};else throw new tk(`Failed to extract data. Error: ${a.error}`,e.status);if("failed"===a.status||"cancelled"===a.status)throw new tk(`Extract job ${a.status}. Error: ${a.error}`,e.status);await new Promise(e=>setTimeout(e,1e3))}while("completed"!==a.status)}else this.handleError(e,"extract")}catch(e){throw new tk(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async asyncExtract(e,a,t){let i,n=this.prepareHeaders(t),s={urls:e,...a};try{i=a?.schema instanceof te.ZodType?tw(a.schema):a?.schema}catch(e){throw new tk("Invalid schema. Schema must be either a valid Zod schema or JSON schema object.",400)}try{let e=await this.postRequest(this.apiUrl+"/v1/extract",{...s,schema:i},n);if(200===e.status)return e.data;this.handleError(e,"start extract job")}catch(e){throw new tk(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async getExtractStatus(e){try{let a=await this.getRequest(`${this.apiUrl}/v1/extract/${e}`,this.prepareHeaders());if(200===a.status)return a.data;this.handleError(a,"get extract status")}catch(e){throw new tk(e.message,500)}}prepareHeaders(e){return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,...e?{"x-idempotency-key":e}:{}}}postRequest(e,a,t){return aJ.post(e,a,{headers:t,timeout:a?.timeout?a.timeout+5e3:void 0})}async getRequest(e,a){try{return await aJ.get(e,{headers:a})}catch(e){if(e instanceof aW&&e.response)return e.response;throw e}}async deleteRequest(e,a){try{return await aJ.delete(e,{headers:a})}catch(e){if(e instanceof aW&&e.response)return e.response;throw e}}async monitorJobStatus(e,a,t){try{let i=0;for(;;){let n=await this.getRequest(`${this.apiUrl}/v1/crawl/${e}`,a);if(200===n.status){i=0;let e=n.data;if("completed"===e.status)if("data"in e){let t=e.data;for(;"object"==typeof e&&"next"in e&&0!==t.length;)e=(n=await this.getRequest(e.next,a)).data,t=t.concat(e.data);return e.data=t,e}else throw new tk("Crawl job completed but no data was returned",500);if(["active","paused","pending","queued","waiting","scraping"].includes(e.status))t=Math.max(t,2),await new Promise(e=>setTimeout(e,1e3*t));else throw new tk(`Crawl job failed or was stopped. Status: ${e.status}`,500)}else++i>=3&&this.handleError(n,"check crawl status")}}catch(e){throw new tk(e,500)}}handleError(e,a){if([400,402,403,408,409,500].includes(e.status)){let t=e.data.error||"Unknown error occurred",i=e.data.details?` - ${JSON.stringify(e.data.details)}`:"";throw new tk(`Failed to ${a}. Status code: ${e.status}. Error: ${t}${i}`,e.status,e?.data?.details)}throw new tk(`Unexpected error occurred while trying to ${a}. Status code: ${e.status}`,e.status)}async deepResearch(e,a,t,i){try{let n,s=await this.asyncDeepResearch(e,a);if(!s.success||"error"in s)return{success:!1,error:"error"in s?s.error:"Unknown error"};if(!s.id)throw new tk("Failed to start research. No job ID returned.",500);let o=s.id,r=0,c=0;for(;;){if(n=await this.checkDeepResearchStatus(o),"error"in n&&!n.success)return n;if(t&&n.activities){for(let e of n.activities.slice(r))t(e);r=n.activities.length}if(i&&n.sources){for(let e of n.sources.slice(c))i(e);c=n.sources.length}if("completed"===n.status)return n;if("failed"===n.status)throw new tk(`Research job ${n.status}. Error: ${n.error}`,500);if("processing"!==n.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"Research job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async asyncDeepResearch(e,a){let t=this.prepareHeaders(),i={query:e,...a};if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=tw(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await this.postRequest(`${this.apiUrl}/v1/deep-research`,i,t);if(200===e.status)return e.data;this.handleError(e,"start deep research")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkDeepResearchStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("Deep research job not found",404);this.handleError(t,"check deep research status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async __deepResearch(e,a,t){try{let i,n=await this.__asyncDeepResearch(e,a);if(!n.success||"error"in n)return{success:!1,error:"error"in n?n.error:"Unknown error"};if(!n.id)throw new tk("Failed to start research. No job ID returned.",500);let s=n.id,o=0;for(;;){if(i=await this.__checkDeepResearchStatus(s),"error"in i&&!i.success)return i;if(t&&i.activities){for(let e of i.activities.slice(o))t(e);o=i.activities.length}if("completed"===i.status)return i;if("failed"===i.status)throw new tk(`Research job ${i.status}. Error: ${i.error}`,500);if("processing"!==i.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"Research job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async __asyncDeepResearch(e,a){let t=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/deep-research`,{topic:e,...a},t);if(200===i.status)return i.data;this.handleError(i,"start deep research")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async __checkDeepResearchStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("Deep research job not found",404);this.handleError(t,"check deep research status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async generateLLMsText(e,a){try{let t,i=await this.asyncGenerateLLMsText(e,a);if(!i.success||"error"in i)return{success:!1,error:"error"in i?i.error:"Unknown error"};if(!i.id)throw new tk("Failed to start LLMs.txt generation. No job ID returned.",500);let n=i.id;for(;;){if(t=await this.checkGenerateLLMsTextStatus(n),"error"in t&&!t.success||"completed"===t.status)return t;if("failed"===t.status)throw new tk(`LLMs.txt generation job ${t.status}. Error: ${t.error}`,500);if("processing"!==t.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"LLMs.txt generation job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async asyncGenerateLLMsText(e,a){let t=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/llmstxt`,{url:e,...a},t);if(200===i.status)return i.data;this.handleError(i,"start LLMs.txt generation")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkGenerateLLMsTextStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/llmstxt/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("LLMs.txt generation job not found",404);this.handleError(t,"check LLMs.txt generation status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}},t_=class extends tS{ws;data;status;id;constructor(e,a){super(),this.id=e;let t=a.apiUrl.replace(/^http/,"ws");this.ws=new WebSocket(`${t}/v1/crawl/${e}`,a.apiKey),this.status="scraping",this.data=[];let i=e=>{if("done"===e.type)this.status="completed",this.dispatchTypedEvent("done",new CustomEvent("done",{detail:{status:this.status,data:this.data,id:this.id}}));else if("error"===e.type)this.status="failed",this.dispatchTypedEvent("error",new CustomEvent("error",{detail:{status:this.status,data:this.data,error:e.error,id:this.id}}));else if("catchup"===e.type)for(let a of(this.status=e.data.status,this.data.push(...e.data.data??[]),this.data))this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...a,id:this.id}}));else"document"===e.type&&this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...e.data,id:this.id}}))};this.ws.onmessage=(e=>{if("string"!=typeof e.data)return void this.ws.close();try{let a=JSON.parse(e.data);i(a)}catch(e){console.error("Error on message",e)}}).bind(this),this.ws.onclose=(e=>{try{let a=JSON.parse(e.reason);i(a)}catch(e){console.error("Error on close",e)}}).bind(this),this.ws.onerror=(e=>{this.status="failed",this.dispatchTypedEvent("error",new CustomEvent("error",{detail:{status:this.status,data:this.data,error:"WebSocket error",id:this.id}}))}).bind(this)}close(){this.ws.close()}},tE=e.i(52376);let tj=async({firecrawlHandler:e,toolCall:a,assistant:t,thread:i,prisma:s})=>{let o;try{o=JSON.parse(a.function.arguments)}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed parsing Firecrawl function arguments: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Invalid arguments."}}let r=new tR({apiKey:e.apiKey});if(e.type===n.FirecrawlHandlerType.SCRAPE)try{let t=await r.scrapeUrl(o.url,{...e.body,...(0,tE.omit)(o,["url"]),formats:e.body.formats??["markdown"]});return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.CRAWL)try{let t=await r.crawlUrl(o.url,{...e.body,...(0,tE.omit)(o,["url"])});return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.EXTRACT)try{let e=await r.scrapeUrl(o.url,{formats:["extract"],...(0,tE.omit)(o,["url"])});return{tool_call_id:a.id,output:JSON.stringify(e)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type!==n.FirecrawlHandlerType.SEARCH)return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Firecrawl handler type: ${e.type}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:JSON.stringify({success:!1,message:"Invalid Firecrawl handler type"})};try{let t=await fetch("https://api.firecrawl.dev/v0/search",{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({...e.body,...o})}),i=await t.json();return{tool_call_id:a.id,output:JSON.stringify(i)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}};e.s(["handleReplicate",()=>tA],26279);var tT=e.i(39775),tO=e.i(14905);let tP=(e,a)=>{if(tO.default.isArray(e))return a},tA=async({replicateHandler:e,toolCall:a,assistant:t,thread:i,prisma:s})=>{let o;try{o=JSON.parse(a.function.arguments)}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed parsing Replicate function arguments: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Invalid arguments."}}let r=new tT.default({auth:e.apiKey,useFileOutput:!1});if(e.type!==n.ReplicateHandlerType.RUN)return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Replicate handler type: ${e.type}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:JSON.stringify({success:!1,message:"Invalid Replicate handler type"})};try{let t=await r.run(e.identifier,((e,...a)=>tO.default.mergeWith(tO.default.cloneDeep(e),...a,tP))(e.body,o));return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Replicate RUN function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}};e.s(["createThread",()=>tq],96227);let tL=({assistant:e})=>e.initialMessages.map(a=>({role:(({message:e,assistant:a})=>(0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:a.storageProviderType})?e.role.toLowerCase():e.role)({message:a,assistant:e}),content:a.content,attachments:a.attachments,metadata:a.metadata}));e.s(["serializeMetadata",()=>tI],10671);let tI=({variables:e,workspaceId:a,prisma:t})=>{let i={};for(let[s,o]of Object.entries(e))try{i[s]=String(o)}catch(e){(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:500,message:`Failed to serialize key "${s}": ${e instanceof Error?e.message:String(e)}`,workspaceId:a},prisma:t})}return i},tq=async({client:e,assistant:a,prisma:t,variables:i={}})=>{let s,o=tI({variables:i,workspaceId:a.workspaceId,prisma:t});if((0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:a.storageProviderType})){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiThreadId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if(a.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiConversationId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if(a.storageProviderType===n.StorageProviderType.AZURE_RESPONSES){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureOpenaiConversationId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if((0,c.isAzureAgentsStorageProvider)({storageProviderType:a.storageProviderType})){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureAgentsThreadId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else{let i=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{metadata:{assistantId:a.id,threadId:i.id,...o}}})}if(!s)throw Error("Failed to create thread");return s};e.s(["managedOpenaiThreadId",()=>tU],57623);var tF=e.i(95690);let tU=async({assistant:e,threadId:a,prisma:t})=>{let i=await (0,tF.assistantClientAdapter)({assistant:e,prisma:t}).beta.threads.create({metadata:{assistantId:e.id,threadId:a}});return await t.thread.update({where:{id:a},data:{...(0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType})?{openaiThreadId:i.id}:{},...e.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES?{openaiConversationId:i.id}:{},...e.storageProviderType===n.StorageProviderType.AZURE_RESPONSES?{azureOpenaiConversationId:i.id}:{},...(0,c.isAzureAgentsStorageProvider)({storageProviderType:e.storageProviderType})?{azureAgentsThreadId:i.id}:{}}}),i.id}},39713,e=>{"use strict";e.s(["handleToolCall",()=>G],39713);var a=e.i(29173),t=e.i(18527),i=e.i(52878),n=e.i(67069),s=e.i(44920),o=e.i(26279),r=e.i(50498),c=e.i(95690),p=e.i(96227),l=e.i(57623),u=e.i(14554),d=e.i(55897),m=e.i(91450);let f=({data:e})=>e.delta.content.map(e=>"text"===e.type?e.text.value:"").join("\n\n"),h=async({toolCall:e,run:a,messageResponse:t,onThreadMessageCompleted:i=()=>{},onThreadRunStepCompleted:n=()=>{},controller:s,prisma:o})=>{if(!(0,d.validate)(a.id))return;let r=await o.runStep.findFirst({where:{runId:a.id},orderBy:{createdAt:"desc"}}),c=a.required_action?.submit_tool_outputs.tool_calls.findIndex(a=>a.id===e.id)??0;for await(let o of t){let t=JSON.parse(Buffer.from(o).toString("utf-8"));"thread.message.delta"===t.event&&(0,m.enqueueJson)({controller:s,value:{event:"thread.run.step.delta",data:{object:"thread.run.step.delta",run_id:a.id,id:r?.id??"1",delta:{step_details:{type:"tool_calls",tool_calls:[{id:e.id,type:"function",index:c,function:{output:f({data:t.data})}}]}}}}}),"thread.message.completed"===t.event&&i({message:t.data}),"thread.run.step.completed"===t.event&&n({runStep:t.data})}};var v=e.i(58011),x=e.i(9394),g=e.i(52376);let b=async({assistantHandler:e,toolCall:i,controller:n,run:s,assistant:o,thread:d,prisma:m})=>{let f,b,y,w;try{f=JSON.parse(i.function.arguments)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Failed parsing Assistant function arguments: ${e.message}`,workspaceId:o.workspaceId,assistantId:o.id,threadId:d.id},prisma:m}),{tool_call_id:i.id,output:"Invalid arguments."}}let S=await m.assistant.findUnique({where:{id:e.assistantId},include:{modelProvider:!0,initialMessages:!0,mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,httpTransport:!0,sseTransport:!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}}}}}});if(!S)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Assistant not found when handling Assistant function.",workspaceId:o.workspaceId,assistantId:o.id,threadId:d.id},prisma:m}),{tool_call_id:i.id,output:"Assistant not found."};let k=(0,c.assistantClientAdapter)({assistant:S,prisma:m});try{b=await (0,p.createThread)({client:k,assistant:S,prisma:m,variables:{...(0,g.omit)(d.metadata??{},["assistantId","threadId"]),assistantId:S.id}})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed creating thread inside Assistant function.",workspaceId:S.workspaceId,assistantId:S.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating thread."}}try{y=(0,u.storageThreadId)({thread:b})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed getting storage thread ID.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting storage thread ID."}}if(!y&&(0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:S.storageProviderType}))try{y=await (0,l.managedOpenaiThreadId)({assistant:S,threadId:b.id,prisma:m})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed getting managed OpenAI thread ID.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting managed OpenAI thread ID."}}if(!y)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Invalid thread configuration",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Invalid thread configuration"};let R=(0,c.assistantClientAdapter)({assistant:S,prisma:m,thread:b});try{await R.beta.threads.messages.create(y,{role:"user",content:f.message,metadata:{assistantId:S.id,toolCallId:i.id}})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed creating message.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating message."}}let _=await (0,v.createRunOpts)({assistant:S,thread:b,prisma:m});try{w=await R.beta.threads.runs.create(y,_)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Failed creating run stream: ${e.message}`,workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating run stream."}}let E=(0,r.createMessageResponse)({client:R,createRunStream:w,handleToolCall:G({assistant:S,thread:b,prisma:m})}),j=[];return await h({toolCall:i,messageResponse:E,controller:n,run:s,prisma:m,onThreadMessageCompleted:({message:e})=>{j.push(e)}}),{tool_call_id:i.id,output:(({messages:e})=>e.map(e=>(({message:e})=>e.content.filter(e=>"text"===e.type).map(e=>e.text.value).join("\n\n"))({message:e})).join("\n\n"))({messages:j})}};var y=e.i(44784);let w=async({clientToolHandler:e,toolCall:i,assistant:n,thread:s,controller:o,run:r,prisma:c})=>{let p={},l=i.function.arguments;if(l)try{p=JSON.parse(l)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing client tool function arguments: ${e.message}`,workspaceId:n.workspaceId,assistantId:n.id,threadId:s.id},prisma:c}),{tool_call_id:i.id,output:"Invalid arguments."}}(0,m.enqueueJson)({controller:o,value:{event:"thread.run.requires_action",data:{...r,required_action:{type:"submit_client_tool_outputs",submit_client_tool_outputs:{tool_calls:[{id:i.id,type:"function",function:{name:e.name,arguments:JSON.stringify({...e.arguments,...p})}}]}}}}}),await y.redis.set(`submit-client-tool-outputs:pending:${i.id}`,"1",{ex:604800});let u=await new Promise(async e=>{let a=setTimeout(()=>{e("Function call timed out")},6e4),t=async()=>{let n=await y.redis.get(`submit-client-tool-outputs:output:${i.id}`);null===n?setTimeout(t,500):(clearTimeout(a),await y.redis.del(`submit-client-tool-outputs:pending:${i.id}`),await y.redis.del(`submit-client-tool-outputs:output:${i.id}`),e(n))};t()});return{tool_call_id:i.id,output:u}};var S=e.i(7179),k=e.i(79100),R=e.i(85516),_=e.i(83675),E=e.i(772),j=e.i(56512),T=e.i(57855),O=e.i(55348);j.default.extend(T.default),j.default.extend(O.default);let P=({toolCall:e,assistant:i,thread:n,prisma:s})=>{let o={};try{o=JSON.parse(e.function.arguments||"{}")}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing task function arguments: ${e.message}`,workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:"Invalid arguments."}}if(o&&"object"==typeof o&&void 0!==o.schedule){let e=_.scheduleSchema.safeParse(o.schedule);if(!e.success)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:"Invalid schedule provided.",workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:e.error.toString()};if(!(0,E.getNextOccurrence)({schedule:o.schedule})){let e=`Schedule must be in the future. Current time: ${(({schedule:e})=>e.timeZone?`${(0,j.default)().tz(e.timeZone).format()} in timezone ${e.timeZone}`:`${(0,j.default)().toISOString()} in UTC`)({schedule:o.schedule})}`;return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:e,workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:e}}}return{ok:!0,args:o}},A=async({thread:e,assistant:i,keyTemplate:n,prisma:s})=>{let o=[],r=(n||"").replace(/{{\s*([\w-]+)\s*}}/g,(a,t)=>t in(e.metadata||{})?String(e.metadata[t]):"threadId"===t?e.id:"assistantId"===t?i.id:(o.push(t),`{{${t}}}`));if(o.length){let n=`Missing variables in key template: ${o.join(", ")}`;return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:n,workspaceId:i.workspaceId,assistantId:i.id,threadId:e.id},prisma:s}),{ok:!1,error:n}}return{ok:!0,key:r}};var L=e.i(60172),I=e.i(75637),q=e.i(65074);let F=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.createTaskToolSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};if(!(0,k.validateSchedule)(r.schedule))return{tool_call_id:a.id,output:"Invalid schedule."};let u=p??"";try{await (0,I.ensureTaskSchedule)({prisma:n,threadId:i.id,key:u,schedule:r.schedule})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:a.id,output:e.message};throw e}let d=await n.task.create({data:{title:r.title,message:r.message,schedule:r.schedule,threadId:i.id,key:u}});return await (0,L.scheduleTask)({task:d,prisma:n}),{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}},U=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.listTasksSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let{ok:r,key:c,error:p}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!r)return{tool_call_id:a.id,output:p};let l=await n.task.findMany({where:{key:c,thread:{assistant:{workspaceId:t.workspaceId}}},orderBy:{createdAt:"desc"}});return{tool_call_id:a.id,output:JSON.stringify({tasks:l.map(e=>(0,S.serializeTask)({task:e}))})}};var M=e.i(29325);let N=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.updateTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};let u={};if(void 0!==r.title&&(u.title=r.title),void 0!==r.message&&(u.message=r.message),void 0!==r.schedule){if(!(0,k.validateSchedule)(r.schedule))return{tool_call_id:a.id,output:"Invalid schedule."};u.schedule=r.schedule}void 0!==r.key&&(u.key=r.key??"");let d=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}}});if(!d)return{tool_call_id:a.id,output:"Task not found."};let m=r.key??d.key??"",f=r.schedule??d.schedule;try{await (0,I.ensureTaskSchedule)({prisma:n,threadId:d.threadId,key:m,schedule:f,excludeTaskId:d.id})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:a.id,output:e.message};throw e}await (0,M.cancelScheduledTask)({task:d});let h=await n.task.update({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}},data:u});return await (0,L.scheduleTask)({task:h,prisma:n}),{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:h})})}},$=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.deleteTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};let u=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}}});if(!u)return{tool_call_id:a.id,output:"Task not found."};await (0,M.cancelScheduledTask)({task:u});let d=await n.task.delete({where:{id:r.taskId}});return{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}};var C=e.i(70151),z=e.i(10273);let B=async({assistant:e,toolCall:a,thread:t,prisma:i})=>{let n=null;for(let s of e.mcpServers){if(n)break;let{mcpConnection:o}=await (0,C.connectMcpServer)({mcpServer:s,thread:t,assistant:e,prisma:i});if(!(await o.client.listTools()).tools.find(e=>e.name===a.function.name)){await (0,z.closeMcpConnection)({mcpConnection:o});continue}n=o;break}return{mcpConnection:n}};var D=e.i(76862);let Z=async({assistant:e,toolCall:r,controller:c,run:p,thread:l,prisma:u})=>{let d=(0,i.getFunction)({toolCall:r,assistant:e});if(!d){let i,{mcpConnection:n}=await B({toolCall:r,assistant:e,thread:l,prisma:u});if(!n)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} not found.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} not found.`};try{i=JSON.parse(r.function.arguments||"{}")}catch(i){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing function arguments: ${i.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Failed parsing function arguments: ${i.message}`}}try{let e=await n.client.callTool({name:r.function.name,arguments:i},D.CallToolResultSchema,{timeout:3e5});return await (0,z.closeMcpConnection)({mcpConnection:n}),{tool_call_id:r.id,output:JSON.stringify(e)}}catch(i){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Error calling function ${r.function.name}: ${i.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Error calling function ${r.function.name}: ${i.message}`}}}if(!d.handler)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no handler.`};if(d.handler.type===a.HandlerType.REQUEST)return d.handler.requestHandler?(0,n.handleRequest)({requestHandler:d.handler.requestHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no request handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no request handler.`});if(d.handler.type===a.HandlerType.CLIENT_TOOL)return d.handler.clientToolHandler?w({clientToolHandler:d.handler.clientToolHandler,controller:c,toolCall:r,assistant:e,thread:l,run:p,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no client tool handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no client tool handler.`});if(d.handler.type===a.HandlerType.FIRECRAWL)return d.handler.firecrawlHandler?(0,s.handleFirecrawl)({firecrawlHandler:d.handler.firecrawlHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no Firecrawl handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no Firecrawl handler.`});if(d.handler.type===a.HandlerType.REPLICATE)return d.handler.replicateHandler?(0,o.handleReplicate)({replicateHandler:d.handler.replicateHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no Replicate handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no Replicate handler.`});if(d.handler.type===a.HandlerType.ASSISTANT)return d.handler.assistantHandler?b({assistantHandler:d.handler.assistantHandler,toolCall:r,controller:c,run:p,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no assistant handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no assistant handler.`});if(d.handler.type===a.HandlerType.CREATE_TASK){let i=d.handler.createTaskHandler;return i?F({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.LIST_TASKS){let i=d.handler.listTasksHandler;return i?U({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.UPDATE_TASK){let i=d.handler.updateTaskHandler;return i?N({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.DELETE_TASK){let i=d.handler.deleteTaskHandler;return i?$({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} handler type ${d.handler.type} not supported.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} handler type ${d.handler.type} not supported.`}},H=async({assistant:e,toolCall:i,thread:n,prisma:s})=>{let o=e.tools.find(e=>e.type===a.ToolType.COMPUTER_USE);if(!o||!o.computerUseTool||!o.computerUseTool.mcpServer)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"No computer use tool configured.",workspaceId:e.workspaceId,assistantId:e.id,threadId:n.id},prisma:s}),{tool_call_id:i.id,output:"No computer use tool configured."};let{mcpConnection:r}=await (0,C.connectMcpServer)({thread:n,assistant:e,mcpServer:o.computerUseTool.mcpServer,prisma:s});try{let t=await r.client.callTool({name:"computer_call",arguments:{action:i.computer_call.action}},D.CallToolResultSchema,{timeout:3e5});await (0,z.closeMcpConnection)({mcpConnection:r});let n=i.computer_call.pending_safety_checks.map(e=>({id:e.id})),s=(({mcpServerToolOutput:e})=>{let a=(({mcpServerToolOutput:e})=>e.content.find(e=>"image"===e.type))({mcpServerToolOutput:e});return a?`data:${a.mimeType};base64,${a.data}`:null})({mcpServerToolOutput:t});if(!s)return{tool_call_id:i.id,output:t.structuredContent??t.content??"",acknowledged_safety_checks:n};return{tool_call_id:i.id,output:(({assistant:e,imageUrl:t})=>e.modelProvider.type===a.ModelProviderType.ANTHROPIC?[{type:"image",source:{type:"base64",media_type:"image/png",data:t.split(",")[1]}}]:JSON.stringify({type:"computer_screenshot",image_url:t}))({imageUrl:s,assistant:e}),acknowledged_safety_checks:n}}catch(o){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Error calling computer_call with action ${JSON.stringify(i.computer_call.action)}: ${o.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:n.id},prisma:s}),{tool_call_id:i.id,output:`Error calling computer_call with action ${JSON.stringify(i.computer_call.action)}: ${o.message}`}}},G=({assistant:e,thread:i,prisma:n})=>async({toolCall:s,controller:o,run:r})=>"function"===s.type?s.function?Z({assistant:e,toolCall:s,controller:o,run:r,thread:i,prisma:n}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"No function specified.",workspaceId:e.workspaceId,assistantId:e.id,threadId:i.id},prisma:n}),{tool_call_id:s.id,output:"No function specified"}):"computer_call"===s.type?H({assistant:e,toolCall:s,thread:i,prisma:n}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Unknown tool call type: ${s.type}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:i.id},prisma:n}),{tool_call_id:s.id,output:`Unknown tool call type: ${s.type}`})}];
|
|
7
|
+
]`;continue}n+=i[e],"\\"===i[e]?s=!0:o&&"]"===i[e]?o=!1:o||"["!==i[e]||(o=!0)}try{new RegExp(n)}catch{return console.warn(`Could not convert regex pattern at ${a.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return n}function th(e,a){if("openAi"===a.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===a.target&&e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((t,i)=>({...t,[i]:tg(e.valueType._def,{...a,currentPath:[...a.currentPath,"properties",i]})??to(a)}),{}),additionalProperties:a.rejectedAdditionalProperties};let t={type:"object",additionalProperties:tg(e.valueType._def,{...a,currentPath:[...a.currentPath,"additionalProperties"]})??a.allowedAdditionalProperties};if("openApi3"===a.target)return t;if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.checks?.length){let{type:i,...n}=tp(e.keyType._def,a);return{...t,propertyNames:n}}if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodEnum)return{...t,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===te.ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===te.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...n}=tr(e.keyType._def,a);return{...t,propertyNames:n}}return t}let tv={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},tx=(e,a)=>{let t=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,t)=>tg(e._def,{...a,currentPath:[...a.currentPath,"anyOf",`${t}`]})).filter(e=>!!e&&(!a.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return t.length?{anyOf:t}:void 0};function tg(e,a,t=!1){let i=a.seen.get(e);if(a.override){let n=a.override?.(e,a,i,t);if(n!==ta)return n}if(i&&!t){let e=tb(i,a);if(void 0!==e)return e}let n={def:e,path:a.currentPath,jsonSchema:void 0};a.seen.set(e,n);let s=((e,a,t)=>{switch(a){case te.ZodFirstPartyTypeKind.ZodString:return tp(e,t);case te.ZodFirstPartyTypeKind.ZodNumber:var i,n,s,o,r,c,p,l,u,d=e,m=t;let f={type:"number"};if(!d.checks)return f;for(let e of d.checks)switch(e.kind){case"int":f.type="integer",ti(f,"type",e.message,m);break;case"min":"jsonSchema7"===m.target?e.inclusive?tn(f,"minimum",e.value,e.message,m):tn(f,"exclusiveMinimum",e.value,e.message,m):(e.inclusive||(f.exclusiveMinimum=!0),tn(f,"minimum",e.value,e.message,m));break;case"max":"jsonSchema7"===m.target?e.inclusive?tn(f,"maximum",e.value,e.message,m):tn(f,"exclusiveMaximum",e.value,e.message,m):(e.inclusive||(f.exclusiveMaximum=!0),tn(f,"maximum",e.value,e.message,m));break;case"multipleOf":tn(f,"multipleOf",e.value,e.message,m)}return f;case te.ZodFirstPartyTypeKind.ZodObject:return function(e,a){let t="openAi"===a.target,i={type:"object",properties:{}},n=[],s=e.shape();for(let e in s){let o=s[e];if(void 0===o||void 0===o._def)continue;let r=function(e){try{return e.isOptional()}catch{return!0}}(o);r&&t&&("ZodOptional"===o._def.typeName&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),r=!1);let c=tg(o._def,{...a,currentPath:[...a.currentPath,"properties",e],propertyPath:[...a.currentPath,"properties",e]});void 0!==c&&(i.properties[e]=c,r||n.push(e))}n.length&&(i.required=n);let o=function(e,a){if("ZodNever"!==e.catchall._def.typeName)return tg(e.catchall._def,{...a,currentPath:[...a.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return a.allowedAdditionalProperties;case"strict":return a.rejectedAdditionalProperties;case"strip":return"strict"===a.removeAdditionalStrategy?a.allowedAdditionalProperties:a.rejectedAdditionalProperties}}(e,a);return void 0!==o&&(i.additionalProperties=o),i}(e,t);case te.ZodFirstPartyTypeKind.ZodBigInt:var h=e,v=t;let x={type:"integer",format:"int64"};if(!h.checks)return x;for(let e of h.checks)switch(e.kind){case"min":"jsonSchema7"===v.target?e.inclusive?tn(x,"minimum",e.value,e.message,v):tn(x,"exclusiveMinimum",e.value,e.message,v):(e.inclusive||(x.exclusiveMinimum=!0),tn(x,"minimum",e.value,e.message,v));break;case"max":"jsonSchema7"===v.target?e.inclusive?tn(x,"maximum",e.value,e.message,v):tn(x,"exclusiveMaximum",e.value,e.message,v):(e.inclusive||(x.exclusiveMaximum=!0),tn(x,"maximum",e.value,e.message,v));break;case"multipleOf":tn(x,"multipleOf",e.value,e.message,v)}return x;case te.ZodFirstPartyTypeKind.ZodBoolean:return{type:"boolean"};case te.ZodFirstPartyTypeKind.ZodDate:return function e(a,t,i){let n=i??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((i,n)=>e(a,t,i))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var s=a,o=t;let r={type:"integer",format:"unix-time"};if("openApi3"===o.target)return r;for(let e of s.checks)switch(e.kind){case"min":tn(r,"minimum",e.value,e.message,o);break;case"max":tn(r,"maximum",e.value,e.message,o)}return r}}(e,t);case te.ZodFirstPartyTypeKind.ZodUndefined:return{not:to(t)};case te.ZodFirstPartyTypeKind.ZodNull:return"openApi3"===t.target?{enum:["null"],nullable:!0}:{type:"null"};case te.ZodFirstPartyTypeKind.ZodArray:var g=e,b=t;let y={type:"array"};return g.type?._def&&g.type?._def?.typeName!==te.ZodFirstPartyTypeKind.ZodAny&&(y.items=tg(g.type._def,{...b,currentPath:[...b.currentPath,"items"]})),g.minLength&&tn(y,"minItems",g.minLength.value,g.minLength.message,b),g.maxLength&&tn(y,"maxItems",g.maxLength.value,g.maxLength.message,b),g.exactLength&&(tn(y,"minItems",g.exactLength.value,g.exactLength.message,b),tn(y,"maxItems",g.exactLength.value,g.exactLength.message,b)),y;case te.ZodFirstPartyTypeKind.ZodUnion:case te.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:var w=e,S=t;if("openApi3"===S.target)return tx(w,S);let k=w.options instanceof Map?Array.from(w.options.values()):w.options;if(k.every(e=>e._def.typeName in tv&&(!e._def.checks||!e._def.checks.length))){let e=k.reduce((e,a)=>{let t=tv[a._def.typeName];return t&&!e.includes(t)?[...e,t]:e},[]);return{type:e.length>1?e:e[0]}}if(k.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=k.reduce((e,a)=>{let t=typeof a._def.value;switch(t){case"string":case"number":case"boolean":return[...e,t];case"bigint":return[...e,"integer"];case"object":if(null===a._def.value)return[...e,"null"];default:return e}},[]);if(e.length===k.length){let a=e.filter((e,a,t)=>t.indexOf(e)===a);return{type:a.length>1?a:a[0],enum:k.reduce((e,a)=>e.includes(a._def.value)?e:[...e,a._def.value],[])}}}else if(k.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:k.reduce((e,a)=>[...e,...a._def.values.filter(a=>!e.includes(a))],[])};return tx(w,S);case te.ZodFirstPartyTypeKind.ZodIntersection:var R=e,_=t;let E=[tg(R.left._def,{..._,currentPath:[..._.currentPath,"allOf","0"]}),tg(R.right._def,{..._,currentPath:[..._.currentPath,"allOf","1"]})].filter(e=>!!e),j="jsonSchema2019-09"===_.target?{unevaluatedProperties:!1}:void 0,T=[];return E.forEach(e=>{if((!("type"in e)||"string"!==e.type)&&"allOf"in e)T.push(...e.allOf),void 0===e.unevaluatedProperties&&(j=void 0);else{let a=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:t,...i}=e;a=i}else j=void 0;T.push(a)}}),T.length?{allOf:T,...j}:void 0;case te.ZodFirstPartyTypeKind.ZodTuple:return i=e,n=t,i.rest?{type:"array",minItems:i.items.length,items:i.items.map((e,a)=>tg(e._def,{...n,currentPath:[...n.currentPath,"items",`${a}`]})).reduce((e,a)=>void 0===a?e:[...e,a],[]),additionalItems:tg(i.rest._def,{...n,currentPath:[...n.currentPath,"additionalItems"]})}:{type:"array",minItems:i.items.length,maxItems:i.items.length,items:i.items.map((e,a)=>tg(e._def,{...n,currentPath:[...n.currentPath,"items",`${a}`]})).reduce((e,a)=>void 0===a?e:[...e,a],[])};case te.ZodFirstPartyTypeKind.ZodRecord:return th(e,t);case te.ZodFirstPartyTypeKind.ZodLiteral:var O=e,P=t;let A=typeof O.value;return"bigint"!==A&&"number"!==A&&"boolean"!==A&&"string"!==A?{type:Array.isArray(O.value)?"array":"object"}:"openApi3"===P.target?{type:"bigint"===A?"integer":A,enum:[O.value]}:{type:"bigint"===A?"integer":A,const:O.value};case te.ZodFirstPartyTypeKind.ZodEnum:return{type:"string",enum:Array.from(e.values)};case te.ZodFirstPartyTypeKind.ZodNativeEnum:var L=e;let I=L.values,q=Object.keys(L.values).filter(e=>"number"!=typeof I[I[e]]).map(e=>I[e]),F=Array.from(new Set(q.map(e=>typeof e)));return{type:1===F.length?"string"===F[0]?"string":"number":["string","number"],enum:q};case te.ZodFirstPartyTypeKind.ZodNullable:var U=e,M=t;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(U.innerType._def.typeName)&&(!U.innerType._def.checks||!U.innerType._def.checks.length))return"openApi3"===M.target?{type:tv[U.innerType._def.typeName],nullable:!0}:{type:[tv[U.innerType._def.typeName],"null"]};if("openApi3"===M.target){let e=tg(U.innerType._def,{...M,currentPath:[...M.currentPath]});return e&&"$ref"in e?{allOf:[e],nullable:!0}:e&&{...e,nullable:!0}}let N=tg(U.innerType._def,{...M,currentPath:[...M.currentPath,"anyOf","0"]});return N&&{anyOf:[N,{type:"null"}]};case te.ZodFirstPartyTypeKind.ZodOptional:var $=e,C=t;if(C.currentPath.toString()===C.propertyPath?.toString())return tg($.innerType._def,C);let z=tg($.innerType._def,{...C,currentPath:[...C.currentPath,"anyOf","1"]});return z?{anyOf:[{not:to(C)},z]}:to(C);case te.ZodFirstPartyTypeKind.ZodMap:return s=e,"record"===(o=t).mapStrategy?th(s,o):{type:"array",maxItems:125,items:{type:"array",items:[tg(s.keyType._def,{...o,currentPath:[...o.currentPath,"items","items","0"]})||to(o),tg(s.valueType._def,{...o,currentPath:[...o.currentPath,"items","items","1"]})||to(o)],minItems:2,maxItems:2}};case te.ZodFirstPartyTypeKind.ZodSet:var B=e,D=t;let Z={type:"array",uniqueItems:!0,items:tg(B.valueType._def,{...D,currentPath:[...D.currentPath,"items"]})};return B.minSize&&tn(Z,"minItems",B.minSize.value,B.minSize.message,D),B.maxSize&&tn(Z,"maxItems",B.maxSize.value,B.maxSize.message,D),Z;case te.ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case te.ZodFirstPartyTypeKind.ZodPromise:return tg(e.type._def,t);case te.ZodFirstPartyTypeKind.ZodNaN:case te.ZodFirstPartyTypeKind.ZodNever:return"openAi"===(r=t).target?void 0:{not:to({...r,currentPath:[...r.currentPath,"not"]})};case te.ZodFirstPartyTypeKind.ZodEffects:return c=e,"input"===(p=t).effectStrategy?tg(c.schema._def,p):to(p);case te.ZodFirstPartyTypeKind.ZodAny:case te.ZodFirstPartyTypeKind.ZodUnknown:return to(t);case te.ZodFirstPartyTypeKind.ZodDefault:return l=e,u=t,{...tg(l.innerType._def,u),default:l.defaultValue()};case te.ZodFirstPartyTypeKind.ZodBranded:return tr(e,t);case te.ZodFirstPartyTypeKind.ZodReadonly:case te.ZodFirstPartyTypeKind.ZodCatch:return tg(e.innerType._def,t);case te.ZodFirstPartyTypeKind.ZodPipeline:var H=e,G=t;if("input"===G.pipeStrategy)return tg(H.in._def,G);if("output"===G.pipeStrategy)return tg(H.out._def,G);let J=tg(H.in._def,{...G,currentPath:[...G.currentPath,"allOf","0"]}),K=tg(H.out._def,{...G,currentPath:[...G.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,K].filter(e=>void 0!==e)};case te.ZodFirstPartyTypeKind.ZodFunction:case te.ZodFirstPartyTypeKind.ZodVoid:case te.ZodFirstPartyTypeKind.ZodSymbol:default:return}})(e,e.typeName,a),o="function"==typeof s?tg(s(),a):s;if(o&&ty(e,a,o),a.postProcess){let t=a.postProcess(o,e,a);return n.jsonSchema=o,t}return n.jsonSchema=o,o}let tb=(e,a)=>{switch(a.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:ts(a.currentPath,e.path)};case"none":case"seen":if(e.path.length<a.currentPath.length&&e.path.every((e,t)=>a.currentPath[t]===e))return console.warn(`Recursive reference detected at ${a.currentPath.join("/")}! Defaulting to any`),to(a);return"seen"===a.$refStrategy?to(a):void 0}},ty=(e,a,t)=>(e.description&&(t.description=e.description,a.markdownDescription&&(t.markdownDescription=e.description)),t),tw=(e,a)=>{let t=(e=>{let a=(e=>"string"==typeof e?{...tt,name:e}:{...tt,...e})(e),t=void 0!==a.name?[...a.basePath,a.definitionPath,a.name]:a.basePath;return{...a,flags:{hasReferencedOpenAiAnyType:!1},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(a.definitions).map(([e,t])=>[t._def,{def:t._def,path:[...a.basePath,a.definitionPath,e],jsonSchema:void 0}]))}})(a),i="object"==typeof a&&a.definitions?Object.entries(a.definitions).reduce((e,[a,i])=>({...e,[a]:tg(i._def,{...t,currentPath:[...t.basePath,t.definitionPath,a]},!0)??to(t)}),{}):void 0,n="string"==typeof a?a:a?.nameStrategy==="title"?void 0:a?.name,s=tg(e._def,void 0===n?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},!1)??to(t),o="object"==typeof a&&void 0!==a.name&&"title"===a.nameStrategy?a.name:void 0;void 0!==o&&(s.title=o),t.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[t.openAiAnyTypeName]||(i[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===t.$refStrategy?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let r=void 0===n?i?{...s,[t.definitionPath]:i}:s:{$ref:[..."relative"===t.$refStrategy?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...i,[n]:s}};return"jsonSchema7"===t.target?r.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===t.target||"openAi"===t.target)&&(r.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===t.target&&("anyOf"in r||"oneOf"in r||"allOf"in r||"type"in r&&Array.isArray(r.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),r};var tS=class extends EventTarget{dispatchTypedEvent(e,a){return super.dispatchEvent(a)}},tk=class extends Error{statusCode;details;constructor(e,a,t){super(e),this.statusCode=a,this.details=t}},tR=class{apiKey;apiUrl;isCloudService(e){return e.includes("api.firecrawl.dev")}constructor({apiKey:e=null,apiUrl:a=null}){let t=a||"https://api.firecrawl.dev";if(this.isCloudService(t)&&"string"!=typeof e)throw new tk("No API key provided",401);this.apiKey=e||"",this.apiUrl=t}async scrapeUrl(e,a){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={url:e,...a};if(i?.extract?.schema){let e=i.extract.schema;try{e=tw(e)}catch(e){}i={...i,extract:{...i.extract,schema:e}}}if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=tw(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await aJ.post(this.apiUrl+"/v1/scrape",i,{headers:t,timeout:a?.timeout!==void 0?a.timeout+5e3:void 0});if(200===e.status){let a=e.data;if(a.success)return{success:!0,warning:a.warning,error:a.error,...a.data};throw new tk(`Failed to scrape URL. Error: ${a.error}`,e.status)}this.handleError(e,"scrape URL")}catch(e){this.handleError(e.response,"scrape URL")}return{success:!1,error:"Internal server error."}}async search(e,a){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={query:e,limit:a?.limit??5,tbs:a?.tbs,filter:a?.filter,lang:a?.lang??"en",country:a?.country??"us",location:a?.location,origin:a?.origin??"api",timeout:a?.timeout??6e4,scrapeOptions:a?.scrapeOptions??{formats:[]}};if(i?.scrapeOptions?.extract?.schema){let e=i.scrapeOptions.extract.schema;try{e=tw(e)}catch(e){}i={...i,scrapeOptions:{...i.scrapeOptions,extract:{...i.scrapeOptions.extract,schema:e}}}}try{let e=await this.postRequest(this.apiUrl+"/v1/search",i,t);if(200===e.status){let a=e.data;if(a.success)return{success:!0,data:a.data,warning:a.warning};throw new tk(`Failed to search. Error: ${a.error}`,e.status)}this.handleError(e,"search")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error.",data:[]}}async crawlUrl(e,a,t=2,i){let n=this.prepareHeaders(i),s={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",s,n);if(200===e.status){let a=e.data.id;return this.monitorJobStatus(a,n,t)}this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncCrawlUrl(e,a,t){let i=this.prepareHeaders(t),n={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",n,i);if(200===e.status)return e.data;this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlStatus(e,a=!1,t,i,n){if(!e)throw new tk("No crawl ID provided",400);let s=this.prepareHeaders(),o=new URL(t??`${this.apiUrl}/v1/crawl/${e}`);void 0!==i&&o.searchParams.set("skip",i.toString()),void 0!==n&&o.searchParams.set("limit",n.toString());try{let e=await this.getRequest(o.href,s);if(200===e.status){let t=e.data.data;if(a&&"completed"===e.data.status){let a=e.data;if("data"in a){let e=a.data;for(;"object"==typeof a&&"next"in a&&0!==e.length;)a=(await this.getRequest(a.next,s)).data,e=e.concat(a.data);t=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:a?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:t};return!e.data.success&&e.data.error&&(i={...i,success:!1,error:e.data.error}),e.data.next&&(i.next=e.data.next),i}this.handleError(e,"check crawl status")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlErrors(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}/errors`,a);if(200===t.status)return t.data;this.handleError(t,"check crawl errors")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async cancelCrawl(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}`,a);if(200===t.status)return t.data;this.handleError(t,"cancel crawl job")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async crawlUrlAndWatch(e,a,t){let i=await this.asyncCrawlUrl(e,a,t);if(i.success&&i.id)return new t_(i.id,this);throw new tk("Crawl job failed to start",400)}async mapUrl(e,a){let t=this.prepareHeaders(),i={url:e,...a};try{let e=await this.postRequest(this.apiUrl+"/v1/map",i,t);if(200===e.status)return e.data;this.handleError(e,"map")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrls(e,a,t=2,i,n,s){let o=this.prepareHeaders(i),r={urls:e,webhook:n,ignoreInvalidURLs:s,...a};if(r?.extract?.schema){let e=r.extract.schema;try{e=tw(e)}catch(e){}r={...r,extract:{...r.extract,schema:e}}}if(r?.jsonOptions?.schema){let e=r.jsonOptions.schema;try{e=tw(e)}catch(e){}r={...r,jsonOptions:{...r.jsonOptions,schema:e}}}try{let e=await this.postRequest(this.apiUrl+"/v1/batch/scrape",r,o);if(200===e.status){let a=e.data.id;return this.monitorJobStatus(a,o,t)}this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncBatchScrapeUrls(e,a,t,i,n){let s=this.prepareHeaders(t),o={urls:e,webhook:i,ignoreInvalidURLs:n,...a??{}};try{let e=await this.postRequest(this.apiUrl+"/v1/batch/scrape",o,s);if(200===e.status)return e.data;this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrlsAndWatch(e,a,t,i,n){let s=await this.asyncBatchScrapeUrls(e,a,t,i,n);if(s.success&&s.id)return new t_(s.id,this);throw new tk("Batch scrape job failed to start",400)}async checkBatchScrapeStatus(e,a=!1,t,i,n){if(!e)throw new tk("No batch scrape ID provided",400);let s=this.prepareHeaders(),o=new URL(t??`${this.apiUrl}/v1/batch/scrape/${e}`);void 0!==i&&o.searchParams.set("skip",i.toString()),void 0!==n&&o.searchParams.set("limit",n.toString());try{let e=await this.getRequest(o.href,s);if(200===e.status){let t=e.data.data;if(a&&"completed"===e.data.status){let a=e.data;if("data"in a){let e=a.data;for(;"object"==typeof a&&"next"in a&&0!==e.length;)a=(await this.getRequest(a.next,s)).data,e=e.concat(a.data);t=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:a?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:t};return!e.data.success&&e.data.error&&(i={...i,success:!1,error:e.data.error}),e.data.next&&(i.next=e.data.next),i}this.handleError(e,"check batch scrape status")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkBatchScrapeErrors(e){let a=this.prepareHeaders();try{let t=await this.deleteRequest(`${this.apiUrl}/v1/batch/scrape/${e}/errors`,a);if(200===t.status)return t.data;this.handleError(t,"check batch scrape errors")}catch(e){throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async extract(e,a){let t,i=this.prepareHeaders(),n={urls:e,...a};try{t=a?.schema?"object"==typeof a.schema&&null!==a.schema&&Object.getPrototypeOf(a.schema)?.constructor?.name?.startsWith("Zod")?tw(a.schema):a.schema:void 0}catch(e){throw new tk("Invalid schema. Schema must be either a valid Zod schema or JSON schema object.",400)}try{let e=await this.postRequest(this.apiUrl+"/v1/extract",{...n,schema:t,origin:a?.origin||"api-sdk"},i);if(200===e.status){let a,t=e.data.id;do{let e=await this.getRequest(`${this.apiUrl}/v1/extract/${t}`,i);if(a=e.data,"completed"===a.status)if(a.success)return{success:!0,data:a.data,warning:a.warning,error:a.error,sources:a?.sources||void 0};else throw new tk(`Failed to extract data. Error: ${a.error}`,e.status);if("failed"===a.status||"cancelled"===a.status)throw new tk(`Extract job ${a.status}. Error: ${a.error}`,e.status);await new Promise(e=>setTimeout(e,1e3))}while("completed"!==a.status)}else this.handleError(e,"extract")}catch(e){throw new tk(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async asyncExtract(e,a,t){let i,n=this.prepareHeaders(t),s={urls:e,...a};try{i=a?.schema instanceof te.ZodType?tw(a.schema):a?.schema}catch(e){throw new tk("Invalid schema. Schema must be either a valid Zod schema or JSON schema object.",400)}try{let e=await this.postRequest(this.apiUrl+"/v1/extract",{...s,schema:i},n);if(200===e.status)return e.data;this.handleError(e,"start extract job")}catch(e){throw new tk(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async getExtractStatus(e){try{let a=await this.getRequest(`${this.apiUrl}/v1/extract/${e}`,this.prepareHeaders());if(200===a.status)return a.data;this.handleError(a,"get extract status")}catch(e){throw new tk(e.message,500)}}prepareHeaders(e){return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,...e?{"x-idempotency-key":e}:{}}}postRequest(e,a,t){return aJ.post(e,a,{headers:t,timeout:a?.timeout?a.timeout+5e3:void 0})}async getRequest(e,a){try{return await aJ.get(e,{headers:a})}catch(e){if(e instanceof aW&&e.response)return e.response;throw e}}async deleteRequest(e,a){try{return await aJ.delete(e,{headers:a})}catch(e){if(e instanceof aW&&e.response)return e.response;throw e}}async monitorJobStatus(e,a,t){try{let i=0;for(;;){let n=await this.getRequest(`${this.apiUrl}/v1/crawl/${e}`,a);if(200===n.status){i=0;let e=n.data;if("completed"===e.status)if("data"in e){let t=e.data;for(;"object"==typeof e&&"next"in e&&0!==t.length;)e=(n=await this.getRequest(e.next,a)).data,t=t.concat(e.data);return e.data=t,e}else throw new tk("Crawl job completed but no data was returned",500);if(["active","paused","pending","queued","waiting","scraping"].includes(e.status))t=Math.max(t,2),await new Promise(e=>setTimeout(e,1e3*t));else throw new tk(`Crawl job failed or was stopped. Status: ${e.status}`,500)}else++i>=3&&this.handleError(n,"check crawl status")}}catch(e){throw new tk(e,500)}}handleError(e,a){if([400,402,403,408,409,500].includes(e.status)){let t=e.data.error||"Unknown error occurred",i=e.data.details?` - ${JSON.stringify(e.data.details)}`:"";throw new tk(`Failed to ${a}. Status code: ${e.status}. Error: ${t}${i}`,e.status,e?.data?.details)}throw new tk(`Unexpected error occurred while trying to ${a}. Status code: ${e.status}`,e.status)}async deepResearch(e,a,t,i){try{let n,s=await this.asyncDeepResearch(e,a);if(!s.success||"error"in s)return{success:!1,error:"error"in s?s.error:"Unknown error"};if(!s.id)throw new tk("Failed to start research. No job ID returned.",500);let o=s.id,r=0,c=0;for(;;){if(n=await this.checkDeepResearchStatus(o),"error"in n&&!n.success)return n;if(t&&n.activities){for(let e of n.activities.slice(r))t(e);r=n.activities.length}if(i&&n.sources){for(let e of n.sources.slice(c))i(e);c=n.sources.length}if("completed"===n.status)return n;if("failed"===n.status)throw new tk(`Research job ${n.status}. Error: ${n.error}`,500);if("processing"!==n.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"Research job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async asyncDeepResearch(e,a){let t=this.prepareHeaders(),i={query:e,...a};if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=tw(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await this.postRequest(`${this.apiUrl}/v1/deep-research`,i,t);if(200===e.status)return e.data;this.handleError(e,"start deep research")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkDeepResearchStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("Deep research job not found",404);this.handleError(t,"check deep research status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async __deepResearch(e,a,t){try{let i,n=await this.__asyncDeepResearch(e,a);if(!n.success||"error"in n)return{success:!1,error:"error"in n?n.error:"Unknown error"};if(!n.id)throw new tk("Failed to start research. No job ID returned.",500);let s=n.id,o=0;for(;;){if(i=await this.__checkDeepResearchStatus(s),"error"in i&&!i.success)return i;if(t&&i.activities){for(let e of i.activities.slice(o))t(e);o=i.activities.length}if("completed"===i.status)return i;if("failed"===i.status)throw new tk(`Research job ${i.status}. Error: ${i.error}`,500);if("processing"!==i.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"Research job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async __asyncDeepResearch(e,a){let t=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/deep-research`,{topic:e,...a},t);if(200===i.status)return i.data;this.handleError(i,"start deep research")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async __checkDeepResearchStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("Deep research job not found",404);this.handleError(t,"check deep research status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async generateLLMsText(e,a){try{let t,i=await this.asyncGenerateLLMsText(e,a);if(!i.success||"error"in i)return{success:!1,error:"error"in i?i.error:"Unknown error"};if(!i.id)throw new tk("Failed to start LLMs.txt generation. No job ID returned.",500);let n=i.id;for(;;){if(t=await this.checkGenerateLLMsTextStatus(n),"error"in t&&!t.success||"completed"===t.status)return t;if("failed"===t.status)throw new tk(`LLMs.txt generation job ${t.status}. Error: ${t.error}`,500);if("processing"!==t.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"LLMs.txt generation job terminated unexpectedly"}}catch(e){throw new tk(e.message,500,e.response?.data?.details)}}async asyncGenerateLLMsText(e,a){let t=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/llmstxt`,{url:e,...a},t);if(200===i.status)return i.data;this.handleError(i,"start LLMs.txt generation")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}async checkGenerateLLMsTextStatus(e){let a=this.prepareHeaders();try{let t=await this.getRequest(`${this.apiUrl}/v1/llmstxt/${e}`,a);if(200===t.status)return t.data;if(404===t.status)throw new tk("LLMs.txt generation job not found",404);this.handleError(t,"check LLMs.txt generation status")}catch(e){if(e.response?.data?.error)throw new tk(`Request failed with status code ${e.response.status}. Error: ${e.response.data.error} ${e.response.data.details?` - ${JSON.stringify(e.response.data.details)}`:""}`,e.response.status);throw new tk(e.message,500)}return{success:!1,error:"Internal server error."}}},t_=class extends tS{ws;data;status;id;constructor(e,a){super(),this.id=e;let t=a.apiUrl.replace(/^http/,"ws");this.ws=new WebSocket(`${t}/v1/crawl/${e}`,a.apiKey),this.status="scraping",this.data=[];let i=e=>{if("done"===e.type)this.status="completed",this.dispatchTypedEvent("done",new CustomEvent("done",{detail:{status:this.status,data:this.data,id:this.id}}));else if("error"===e.type)this.status="failed",this.dispatchTypedEvent("error",new CustomEvent("error",{detail:{status:this.status,data:this.data,error:e.error,id:this.id}}));else if("catchup"===e.type)for(let a of(this.status=e.data.status,this.data.push(...e.data.data??[]),this.data))this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...a,id:this.id}}));else"document"===e.type&&this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...e.data,id:this.id}}))};this.ws.onmessage=(e=>{if("string"!=typeof e.data)return void this.ws.close();try{let a=JSON.parse(e.data);i(a)}catch(e){console.error("Error on message",e)}}).bind(this),this.ws.onclose=(e=>{try{let a=JSON.parse(e.reason);i(a)}catch(e){console.error("Error on close",e)}}).bind(this),this.ws.onerror=(e=>{this.status="failed",this.dispatchTypedEvent("error",new CustomEvent("error",{detail:{status:this.status,data:this.data,error:"WebSocket error",id:this.id}}))}).bind(this)}close(){this.ws.close()}},tE=e.i(52376);let tj=async({firecrawlHandler:e,toolCall:a,assistant:t,thread:i,prisma:s})=>{let o;try{o=JSON.parse(a.function.arguments)}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed parsing Firecrawl function arguments: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Invalid arguments."}}let r=new tR({apiKey:e.apiKey});if(e.type===n.FirecrawlHandlerType.SCRAPE)try{let t=await r.scrapeUrl(o.url,{...e.body,...(0,tE.omit)(o,["url"]),formats:e.body.formats??["markdown"]});return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.CRAWL)try{let t=await r.crawlUrl(o.url,{...e.body,...(0,tE.omit)(o,["url"])});return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.EXTRACT)try{let e=await r.scrapeUrl(o.url,{formats:["extract"],...(0,tE.omit)(o,["url"])});return{tool_call_id:a.id,output:JSON.stringify(e)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}if(e.type!==n.FirecrawlHandlerType.SEARCH)return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Firecrawl handler type: ${e.type}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:JSON.stringify({success:!1,message:"Invalid Firecrawl handler type"})};try{let t=await fetch("https://api.firecrawl.dev/v0/search",{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({...e.body,...o})}),i=await t.json();return{tool_call_id:a.id,output:JSON.stringify(i)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}};e.s(["handleReplicate",()=>tA],26279);var tT=e.i(39775),tO=e.i(14905);let tP=(e,a)=>{if(tO.default.isArray(e))return a},tA=async({replicateHandler:e,toolCall:a,assistant:t,thread:i,prisma:s})=>{let o;try{o=JSON.parse(a.function.arguments)}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed parsing Replicate function arguments: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Invalid arguments."}}let r=new tT.default({auth:e.apiKey,useFileOutput:!1});if(e.type!==n.ReplicateHandlerType.RUN)return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Replicate handler type: ${e.type}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:JSON.stringify({success:!1,message:"Invalid Replicate handler type"})};try{let t=await r.run(e.identifier,((e,...a)=>tO.default.mergeWith(tO.default.cloneDeep(e),...a,tP))(e.body,o));return{tool_call_id:a.id,output:JSON.stringify(t)}}catch(e){return(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Replicate RUN function: ${e.message}`,workspaceId:t.workspaceId,assistantId:t.id,threadId:i.id},prisma:s}),{tool_call_id:a.id,output:"Function call failed."}}};e.s(["createThread",()=>tq],96227);let tL=({assistant:e})=>e.initialMessages.map(a=>({role:(({message:e,assistant:a})=>(0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:a.storageProviderType})?e.role.toLowerCase():e.role)({message:a,assistant:e}),content:a.content,attachments:a.attachments,metadata:a.metadata}));e.s(["serializeMetadata",()=>tI],10671);let tI=({variables:e,workspaceId:a,prisma:t})=>{let i={};for(let[s,o]of Object.entries(e))try{i[s]=String(o)}catch(e){(0,d.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:500,message:`Failed to serialize key "${s}": ${e instanceof Error?e.message:String(e)}`,workspaceId:a},prisma:t})}return i},tq=async({client:e,assistant:a,prisma:t,variables:i={}})=>{let s,o=tI({variables:i,workspaceId:a.workspaceId,prisma:t});if((0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:a.storageProviderType})){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiThreadId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if(a.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiConversationId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if(a.storageProviderType===n.StorageProviderType.AZURE_RESPONSES){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureOpenaiConversationId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else if((0,c.isAzureAgentsStorageProvider)({storageProviderType:a.storageProviderType})){let i=await t.thread.create({data:{assistantId:a.id,metadata:o}}),n=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,threadId:i.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureAgentsThreadId:n.id,metadata:{assistantId:a.id,threadId:i.id,...o}}})}else{let i=await e.beta.threads.create({messages:tL({assistant:a}),metadata:{assistantId:a.id,...o}});s=await t.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{metadata:{assistantId:a.id,threadId:i.id,...o}}})}if(!s)throw Error("Failed to create thread");return s};e.s(["managedOpenaiThreadId",()=>tU],57623);var tF=e.i(95690);let tU=async({assistant:e,threadId:a,prisma:t})=>{let i=await (0,tF.assistantClientAdapter)({assistant:e,prisma:t}).beta.threads.create({metadata:{assistantId:e.id,threadId:a}});return await t.thread.update({where:{id:a},data:{...(0,r.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType})?{openaiThreadId:i.id}:{},...e.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES?{openaiConversationId:i.id}:{},...e.storageProviderType===n.StorageProviderType.AZURE_RESPONSES?{azureOpenaiConversationId:i.id}:{},...(0,c.isAzureAgentsStorageProvider)({storageProviderType:e.storageProviderType})?{azureAgentsThreadId:i.id}:{}}}),i.id}},39713,e=>{"use strict";e.s(["handleToolCall",()=>G],39713);var a=e.i(29173),t=e.i(18527),i=e.i(52878),n=e.i(67069),s=e.i(44920),o=e.i(26279),r=e.i(50498),c=e.i(95690),p=e.i(96227),l=e.i(57623),u=e.i(14554),d=e.i(55897),m=e.i(91450);let f=({data:e})=>e.delta.content.map(e=>"text"===e.type?e.text.value:"").join("\n\n"),h=async({toolCall:e,run:a,messageResponse:t,onThreadMessageCompleted:i=()=>{},onThreadRunStepCompleted:n=()=>{},controller:s,prisma:o})=>{if(!(0,d.validate)(a.id))return;let r=await o.runStep.findFirst({where:{runId:a.id},orderBy:{createdAt:"desc"}}),c=a.required_action?.submit_tool_outputs.tool_calls.findIndex(a=>a.id===e.id)??0;for await(let o of t){let t=JSON.parse(Buffer.from(o).toString("utf-8"));"thread.message.delta"===t.event&&(0,m.enqueueJson)({controller:s,value:{event:"thread.run.step.delta",data:{object:"thread.run.step.delta",run_id:a.id,id:r?.id??"1",delta:{step_details:{type:"tool_calls",tool_calls:[{id:e.id,type:"function",index:c,function:{output:f({data:t.data})}}]}}}}}),"thread.message.completed"===t.event&&i({message:t.data}),"thread.run.step.completed"===t.event&&n({runStep:t.data})}};var v=e.i(58011),x=e.i(9394),g=e.i(52376);let b=async({assistantHandler:e,toolCall:i,controller:n,run:s,assistant:o,thread:d,prisma:m})=>{let f,b,y,w;try{f=JSON.parse(i.function.arguments)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Failed parsing Assistant function arguments: ${e.message}`,workspaceId:o.workspaceId,assistantId:o.id,threadId:d.id},prisma:m}),{tool_call_id:i.id,output:"Invalid arguments."}}let S=await m.assistant.findUnique({where:{id:e.assistantId},include:{modelProvider:!0,initialMessages:!0,mcpServers:{include:{computerUseTool:!0,stdioTransport:!0,httpTransport:!0,sseTransport:!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}}}}}});if(!S)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Assistant not found when handling Assistant function.",workspaceId:o.workspaceId,assistantId:o.id,threadId:d.id},prisma:m}),{tool_call_id:i.id,output:"Assistant not found."};let k=(0,c.assistantClientAdapter)({assistant:S,prisma:m});try{b=await (0,p.createThread)({client:k,assistant:S,prisma:m,variables:{...(0,g.omit)(d.metadata??{},["assistantId","threadId"]),assistantId:S.id}})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed creating thread inside Assistant function.",workspaceId:S.workspaceId,assistantId:S.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating thread."}}try{y=(0,u.storageThreadId)({thread:b})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed getting storage thread ID.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting storage thread ID."}}if(!y&&(0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:S.storageProviderType}))try{y=await (0,l.managedOpenaiThreadId)({assistant:S,threadId:b.id,prisma:m})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed getting managed OpenAI thread ID.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting managed OpenAI thread ID."}}if(!y)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Invalid thread configuration",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Invalid thread configuration"};let R=(0,c.assistantClientAdapter)({assistant:S,prisma:m,thread:b});try{await R.beta.threads.messages.create(y,{role:"user",content:f.message,metadata:{assistantId:S.id,toolCallId:i.id}})}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"Failed creating message.",workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating message."}}let _=await (0,v.createRunOpts)({assistant:S,thread:b,prisma:m});try{w=await R.beta.threads.runs.create(y,_)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Failed creating run stream: ${e.message}`,workspaceId:S.workspaceId,assistantId:S.id,threadId:b.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating run stream."}}let E=(0,r.createMessageResponse)({client:R,createRunStream:w,handleToolCall:G({assistant:S,thread:b,prisma:m})}),j=[];return await h({toolCall:i,messageResponse:E,controller:n,run:s,prisma:m,onThreadMessageCompleted:({message:e})=>{j.push(e)}}),{tool_call_id:i.id,output:(({messages:e})=>e.map(e=>(({message:e})=>e.content.filter(e=>"text"===e.type).map(e=>e.text.value).join("\n\n"))({message:e})).join("\n\n"))({messages:j})}};var y=e.i(44784);let w=async({clientToolHandler:e,toolCall:i,assistant:n,thread:s,controller:o,run:r,prisma:c})=>{let p={},l=i.function.arguments;if(l)try{p=JSON.parse(l)}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing client tool function arguments: ${e.message}`,workspaceId:n.workspaceId,assistantId:n.id,threadId:s.id},prisma:c}),{tool_call_id:i.id,output:"Invalid arguments."}}(0,m.enqueueJson)({controller:o,value:{event:"thread.run.requires_action",data:{...r,required_action:{type:"submit_client_tool_outputs",submit_client_tool_outputs:{tool_calls:[{id:i.id,type:"function",function:{name:e.name,arguments:JSON.stringify({...e.arguments,...p})}}]}}}}}),await y.redis.set(`submit-client-tool-outputs:pending:${i.id}`,"1",{ex:604800});let u=await new Promise(async e=>{let a=setTimeout(()=>{e("Function call timed out")},6e4),t=async()=>{let n=await y.redis.get(`submit-client-tool-outputs:output:${i.id}`);null===n?setTimeout(t,500):(clearTimeout(a),await y.redis.del(`submit-client-tool-outputs:pending:${i.id}`),await y.redis.del(`submit-client-tool-outputs:output:${i.id}`),e(n))};t()});return{tool_call_id:i.id,output:u}};var S=e.i(7179),k=e.i(79100),R=e.i(85516),_=e.i(83675),E=e.i(772),j=e.i(56512),T=e.i(57855),O=e.i(55348);j.default.extend(T.default),j.default.extend(O.default);let P=({toolCall:e,assistant:i,thread:n,prisma:s})=>{let o={};try{o=JSON.parse(e.function.arguments||"{}")}catch(e){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing task function arguments: ${e.message}`,workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:"Invalid arguments."}}if(o&&"object"==typeof o&&void 0!==o.schedule){let e=_.scheduleSchema.safeParse(o.schedule);if(!e.success)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:"Invalid schedule provided.",workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:e.error.toString()};if(!(0,E.getNextOccurrence)({schedule:o.schedule})){let e=`Schedule must be in the future. Current time: ${(({schedule:e})=>e.timeZone?`${(0,j.default)().tz(e.timeZone).format()} in timezone ${e.timeZone}`:`${(0,j.default)().toISOString()} in UTC`)({schedule:o.schedule})}`;return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:e,workspaceId:i.workspaceId,assistantId:i.id,threadId:n.id},prisma:s}),{ok:!1,error:e}}}return{ok:!0,args:o}},A=async({thread:e,assistant:i,keyTemplate:n,prisma:s})=>{let o=[],r=(n||"").replace(/{{\s*([\w-]+)\s*}}/g,(a,t)=>t in(e.metadata||{})?String(e.metadata[t]):"threadId"===t?e.id:"assistantId"===t?i.id:(o.push(t),`{{${t}}}`));if(o.length){let n=`Missing variables in key template: ${o.join(", ")}`;return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:n,workspaceId:i.workspaceId,assistantId:i.id,threadId:e.id},prisma:s}),{ok:!1,error:n}}return{ok:!0,key:r}};var L=e.i(60172),I=e.i(75637),q=e.i(65074);let F=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.createTaskToolSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};if(!(0,k.validateSchedule)(r.schedule))return{tool_call_id:a.id,output:"Invalid schedule."};let u=p??"";try{await (0,I.ensureTaskSchedule)({prisma:n,threadId:i.id,key:u,schedule:r.schedule})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:a.id,output:e.message};throw e}let d=await n.task.create({data:{title:r.title,message:r.message,schedule:r.schedule,threadId:i.id,key:u}});return await (0,L.scheduleTask)({task:d,prisma:n}),{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}},U=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.listTasksSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let{ok:r,key:c,error:p}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!r)return{tool_call_id:a.id,output:p};let l=await n.task.findMany({where:{key:c,thread:{assistant:{workspaceId:t.workspaceId}}},orderBy:{createdAt:"desc"}});return{tool_call_id:a.id,output:JSON.stringify({tasks:l.map(e=>(0,S.serializeTask)({task:e}))})}};var M=e.i(29325);let N=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.updateTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};let u={};if(void 0!==r.title&&(u.title=r.title),void 0!==r.message&&(u.message=r.message),void 0!==r.schedule){if(!(0,k.validateSchedule)(r.schedule))return{tool_call_id:a.id,output:"Invalid schedule."};u.schedule=r.schedule}void 0!==r.key&&(u.key=r.key??"");let d=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}}});if(!d)return{tool_call_id:a.id,output:"Task not found."};let m=r.key??d.key??"",f=r.schedule??d.schedule;try{await (0,I.ensureTaskSchedule)({prisma:n,threadId:d.threadId,key:m,schedule:f,excludeTaskId:d.id})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:a.id,output:e.message};throw e}await (0,M.cancelScheduledTask)({task:d});let h=await n.task.update({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}},data:u});return await (0,L.scheduleTask)({task:h,prisma:n}),{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:h})})}},$=async({taskHandler:e,toolCall:a,assistant:t,thread:i,prisma:n})=>{let s=P({toolCall:a,assistant:t,thread:i,prisma:n});if(!s.ok)return{tool_call_id:a.id,output:s.error};let o=R.deleteTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:a.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await A({thread:i,assistant:t,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:a.id,output:l};let u=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:t.workspaceId}}}});if(!u)return{tool_call_id:a.id,output:"Task not found."};await (0,M.cancelScheduledTask)({task:u});let d=await n.task.delete({where:{id:r.taskId}});return{tool_call_id:a.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}};var C=e.i(70151),z=e.i(10273);let B=async({assistant:e,toolCall:a,thread:t,prisma:i})=>{let n=null,s=null;for(let o of e.mcpServers){if(n)break;let r=null;try{if(r=(await (0,C.connectMcpServer)({mcpServer:o,thread:t,assistant:e,prisma:i})).mcpConnection,!(await r.client.listTools()).tools.find(e=>e.name===a.function.name)){await (0,z.closeMcpConnection)({mcpConnection:r});continue}n=r;break}catch(e){if(s=e instanceof Error?e:Error(String(e)),r)try{await (0,z.closeMcpConnection)({mcpConnection:r})}catch{}}}return{mcpConnection:n,error:s}};var D=e.i(76862);let Z=async({assistant:e,toolCall:r,controller:c,run:p,thread:l,prisma:u})=>{let d=(0,i.getFunction)({toolCall:r,assistant:e});if(!d){let i,{mcpConnection:n,error:s}=await B({toolCall:r,assistant:e,thread:l,prisma:u});if(!n)return s?((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Error calling function ${r.function.name}: ${s.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Error calling function ${r.function.name}: ${s.message}`}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} not found.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} not found.`});try{i=JSON.parse(r.function.arguments||"{}")}catch(i){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:400,message:`Failed parsing function arguments: ${i.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Failed parsing function arguments: ${i.message}`}}try{let e=await n.client.callTool({name:r.function.name,arguments:i},D.CallToolResultSchema,{timeout:3e5});return await (0,z.closeMcpConnection)({mcpConnection:n}),{tool_call_id:r.id,output:JSON.stringify(e)}}catch(i){return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Error calling function ${r.function.name}: ${i.message}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Error calling function ${r.function.name}: ${i.message}`}}}if(!d.handler)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no handler.`};if(d.handler.type===a.HandlerType.REQUEST)return d.handler.requestHandler?(0,n.handleRequest)({requestHandler:d.handler.requestHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no request handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no request handler.`});if(d.handler.type===a.HandlerType.CLIENT_TOOL)return d.handler.clientToolHandler?w({clientToolHandler:d.handler.clientToolHandler,controller:c,toolCall:r,assistant:e,thread:l,run:p,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no client tool handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no client tool handler.`});if(d.handler.type===a.HandlerType.FIRECRAWL)return d.handler.firecrawlHandler?(0,s.handleFirecrawl)({firecrawlHandler:d.handler.firecrawlHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no Firecrawl handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no Firecrawl handler.`});if(d.handler.type===a.HandlerType.REPLICATE)return d.handler.replicateHandler?(0,o.handleReplicate)({replicateHandler:d.handler.replicateHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no Replicate handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no Replicate handler.`});if(d.handler.type===a.HandlerType.ASSISTANT)return d.handler.assistantHandler?b({assistantHandler:d.handler.assistantHandler,toolCall:r,controller:c,run:p,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no assistant handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no assistant handler.`});if(d.handler.type===a.HandlerType.CREATE_TASK){let i=d.handler.createTaskHandler;return i?F({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.LIST_TASKS){let i=d.handler.listTasksHandler;return i?U({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.UPDATE_TASK){let i=d.handler.updateTaskHandler;return i?N({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}if(d.handler.type===a.HandlerType.DELETE_TASK){let i=d.handler.deleteTaskHandler;return i?$({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} has no task handler.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} has no task handler.`})}return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Function ${r.function.name} handler type ${d.handler.type} not supported.`,workspaceId:e.workspaceId,assistantId:e.id,threadId:l.id},prisma:u}),{tool_call_id:r.id,output:`Function ${r.function.name} handler type ${d.handler.type} not supported.`}},H=async({assistant:e,toolCall:i,thread:n,prisma:s})=>{let o=e.tools.find(e=>e.type===a.ToolType.COMPUTER_USE);if(!o||!o.computerUseTool||!o.computerUseTool.mcpServer)return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"No computer use tool configured.",workspaceId:e.workspaceId,assistantId:e.id,threadId:n.id},prisma:s}),{tool_call_id:i.id,output:"No computer use tool configured."};let r=null;try{r=(await (0,C.connectMcpServer)({thread:n,assistant:e,mcpServer:o.computerUseTool.mcpServer,prisma:s})).mcpConnection;let t=await r.client.callTool({name:"computer_call",arguments:{action:i.computer_call.action}},D.CallToolResultSchema,{timeout:3e5}),c=i.computer_call.pending_safety_checks.map(e=>({id:e.id})),p=(({mcpServerToolOutput:e})=>{let a=(({mcpServerToolOutput:e})=>e.content.find(e=>"image"===e.type))({mcpServerToolOutput:e});return a?`data:${a.mimeType};base64,${a.data}`:null})({mcpServerToolOutput:t});if(!p)return{tool_call_id:i.id,output:t.structuredContent??t.content??"",acknowledged_safety_checks:c};return{tool_call_id:i.id,output:(({assistant:e,imageUrl:t})=>e.modelProvider.type===a.ModelProviderType.ANTHROPIC?[{type:"image",source:{type:"base64",media_type:"image/png",data:t.split(",")[1]}}]:JSON.stringify({type:"computer_screenshot",image_url:t}))({imageUrl:p,assistant:e}),acknowledged_safety_checks:c}}catch(r){let o=r instanceof Error?r.message:String(r);return(0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Error calling computer_call with action ${JSON.stringify(i.computer_call.action)}: ${o}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:n.id},prisma:s}),{tool_call_id:i.id,output:`Error calling computer_call with action ${JSON.stringify(i.computer_call.action)}: ${o}`}}finally{if(r)try{await (0,z.closeMcpConnection)({mcpConnection:r})}catch{}}},G=({assistant:e,thread:i,prisma:n})=>async({toolCall:s,controller:o,run:r})=>"function"===s.type?s.function?Z({assistant:e,toolCall:s,controller:o,run:r,thread:i,prisma:n}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:"No function specified.",workspaceId:e.workspaceId,assistantId:e.id,threadId:i.id},prisma:n}),{tool_call_id:s.id,output:"No function specified"}):"computer_call"===s.type?H({assistant:e,toolCall:s,thread:i,prisma:n}):((0,t.createLog)({log:{requestMethod:a.LogRequestMethod.POST,requestRoute:a.LogRequestRoute.MESSAGES,level:a.LogLevel.ERROR,status:500,message:`Unknown tool call type: ${s.type}`,workspaceId:e.workspaceId,assistantId:e.id,threadId:i.id},prisma:n}),{tool_call_id:s.id,output:`Unknown tool call type: ${s.type}`})}];
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=supercorp_superinterface_d30ea151._.js.map
|