@superinterface/server 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/cache/.previewinfo +1 -1
  4. package/.next/cache/.rscinfo +1 -1
  5. package/.next/cache/.tsbuildinfo +1 -1
  6. package/.next/cache/eslint/.cache_btwyo7 +1 -1
  7. package/.next/fallback-build-manifest.json +2 -2
  8. package/.next/prerender-manifest.json +3 -3
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +1 -1
  11. package/.next/server/app/api/api-keys/[apiKeyId]/route.js +1 -1
  12. package/.next/server/app/api/api-keys/[apiKeyId]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/api-keys/route.js +1 -1
  14. package/.next/server/app/api/api-keys/route.js.nft.json +1 -1
  15. package/.next/server/app/api/assistants/[assistantId]/functions/[functionId]/route.js +1 -1
  16. package/.next/server/app/api/assistants/[assistantId]/functions/[functionId]/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistants/[assistantId]/functions/route.js +1 -1
  18. package/.next/server/app/api/assistants/[assistantId]/functions/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistants/[assistantId]/initial-messages/route.js +1 -1
  20. package/.next/server/app/api/assistants/[assistantId]/initial-messages/route.js.nft.json +1 -1
  21. package/.next/server/app/api/assistants/[assistantId]/mcp-servers/[mcpServerId]/route.js +1 -1
  22. package/.next/server/app/api/assistants/[assistantId]/mcp-servers/[mcpServerId]/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistants/[assistantId]/mcp-servers/route.js +1 -1
  24. package/.next/server/app/api/assistants/[assistantId]/mcp-servers/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistants/[assistantId]/route.js +1 -1
  26. package/.next/server/app/api/assistants/[assistantId]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/assistants/route.js +1 -1
  28. package/.next/server/app/api/assistants/route.js.nft.json +1 -1
  29. package/.next/server/app/api/files/[fileId]/contents/route.js +1 -1
  30. package/.next/server/app/api/files/[fileId]/contents/route.js.nft.json +1 -1
  31. package/.next/server/app/api/files/route.js +1 -1
  32. package/.next/server/app/api/files/route.js.nft.json +1 -1
  33. package/.next/server/app/api/messages/route.js +1 -1
  34. package/.next/server/app/api/messages/route.js.nft.json +1 -1
  35. package/.next/server/app/api/providers/[modelProviderId]/assistants/route.js +1 -1
  36. package/.next/server/app/api/providers/[modelProviderId]/assistants/route.js.nft.json +1 -1
  37. package/.next/server/app/api/providers/[modelProviderId]/models/route.js +1 -1
  38. package/.next/server/app/api/providers/[modelProviderId]/models/route.js.nft.json +1 -1
  39. package/.next/server/app/api/providers/[modelProviderId]/route.js +1 -1
  40. package/.next/server/app/api/providers/[modelProviderId]/route.js.nft.json +1 -1
  41. package/.next/server/app/api/providers/route.js +1 -1
  42. package/.next/server/app/api/providers/route.js.nft.json +1 -1
  43. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  44. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  45. package/.next/server/app/api/tasks/callback/route.js +1 -1
  46. package/.next/server/app/api/tasks/callback/route.js.nft.json +1 -1
  47. package/.next/server/app/api/tasks/route.js +1 -1
  48. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  49. package/.next/server/app/api/threads/runs/submit-client-tool-outputs/route.js +1 -1
  50. package/.next/server/app/api/threads/runs/submit-client-tool-outputs/route.js.nft.json +1 -1
  51. package/.next/server/app/api/workspaces/[workspaceId]/route.js +1 -1
  52. package/.next/server/app/api/workspaces/[workspaceId]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/workspaces/route.js +1 -1
  54. package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  55. package/.next/server/app/index.html +1 -1
  56. package/.next/server/app/index.rsc +1 -1
  57. package/.next/server/chunks/{[root-of-the-server]__f6f61507._.js → [root-of-the-server]__281d6920._.js} +12 -12
  58. package/.next/server/chunks/[root-of-the-server]__281d6920._.js.map +1 -0
  59. package/.next/server/chunks/[root-of-the-server]__6f8f12bd._.js +1 -1
  60. package/.next/server/chunks/[root-of-the-server]__6f8f12bd._.js.map +1 -1
  61. package/.next/server/chunks/{[root-of-the-server]__47b17fad._.js → [root-of-the-server]__933f2258._.js} +12 -12
  62. package/.next/server/chunks/[root-of-the-server]__933f2258._.js.map +1 -0
  63. package/.next/server/chunks/[root-of-the-server]__ccec8f9e._.js +1 -1
  64. package/.next/server/chunks/[root-of-the-server]__ccec8f9e._.js.map +1 -1
  65. package/.next/server/pages/404.html +1 -1
  66. package/.next/server/pages/500.html +1 -1
  67. package/.next/server/server-reference-manifest.js +1 -1
  68. package/.next/server/server-reference-manifest.json +1 -1
  69. package/.next/trace +1 -1
  70. package/README.md +12 -0
  71. package/dist/lib/functions/handleFunction/handleAssistant.d.ts.map +1 -1
  72. package/dist/lib/functions/handleFunction/handleAssistant.js +0 -43
  73. package/dist/lib/prisma/index.d.ts.map +1 -1
  74. package/dist/lib/prisma/index.js +29 -5
  75. package/package.json +1 -1
  76. package/scripts/utils/loadPrisma.ts +36 -8
  77. package/.next/server/chunks/[root-of-the-server]__47b17fad._.js.map +0 -1
  78. package/.next/server/chunks/[root-of-the-server]__f6f61507._.js.map +0 -1
  79. /package/.next/static/{gf0TUacozuObJ7_Pkziw6 → euNx_MoPmZ6Ig22d-7GLW}/_buildManifest.js +0 -0
  80. /package/.next/static/{gf0TUacozuObJ7_Pkziw6 → euNx_MoPmZ6Ig22d-7GLW}/_clientMiddlewareManifest.json +0 -0
  81. /package/.next/static/{gf0TUacozuObJ7_Pkziw6 → euNx_MoPmZ6Ig22d-7GLW}/_ssgManifest.js +0 -0
@@ -4,6 +4,6 @@ module.exports=[50498,e=>{"use strict";e.s(["createMessageResponse",()=>$,"messa
4
4
  ]))`;continue}else if("$"===i[e]){n+=`($|(?=[\r
5
5
  ]))`;continue}}if(a.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 ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return n}function af(e,t){if("openAi"===t.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===t.target&&e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((a,i)=>({...a,[i]:ax(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??as(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let a={type:"object",additionalProperties:ax(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if("openApi3"===t.target)return a;if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.checks?.length){let{type:i,...n}=ac(e.keyType._def,t);return{...a,propertyNames:n}}if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodEnum)return{...a,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===t8.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...n}=ao(e.keyType._def,t);return{...a,propertyNames:n}}return a}let ah={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},av=(e,t)=>{let a=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,a)=>ax(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${a}`]})).filter(e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return a.length?{anyOf:a}:void 0};function ax(e,t,a=!1){let i=t.seen.get(e);if(t.override){let n=t.override?.(e,t,i,a);if(n!==ae)return n}if(i&&!a){let e=ag(i,t);if(void 0!==e)return e}let n={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,n);let s=((e,t,a)=>{switch(t){case t8.ZodFirstPartyTypeKind.ZodString:return ac(e,a);case t8.ZodFirstPartyTypeKind.ZodNumber:var i,n,s,o,r,c,p,l,u,d=e,m=a;let f={type:"number"};if(!d.checks)return f;for(let e of d.checks)switch(e.kind){case"int":f.type="integer",aa(f,"type",e.message,m);break;case"min":"jsonSchema7"===m.target?e.inclusive?ai(f,"minimum",e.value,e.message,m):ai(f,"exclusiveMinimum",e.value,e.message,m):(e.inclusive||(f.exclusiveMinimum=!0),ai(f,"minimum",e.value,e.message,m));break;case"max":"jsonSchema7"===m.target?e.inclusive?ai(f,"maximum",e.value,e.message,m):ai(f,"exclusiveMaximum",e.value,e.message,m):(e.inclusive||(f.exclusiveMaximum=!0),ai(f,"maximum",e.value,e.message,m));break;case"multipleOf":ai(f,"multipleOf",e.value,e.message,m)}return f;case t8.ZodFirstPartyTypeKind.ZodObject:return function(e,t){let a="openAi"===t.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&&a&&("ZodOptional"===o._def.typeName&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),r=!1);let c=ax(o._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==c&&(i.properties[e]=c,r||n.push(e))}n.length&&(i.required=n);let o=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return ax(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==o&&(i.additionalProperties=o),i}(e,a);case t8.ZodFirstPartyTypeKind.ZodBigInt:var h=e,v=a;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?ai(x,"minimum",e.value,e.message,v):ai(x,"exclusiveMinimum",e.value,e.message,v):(e.inclusive||(x.exclusiveMinimum=!0),ai(x,"minimum",e.value,e.message,v));break;case"max":"jsonSchema7"===v.target?e.inclusive?ai(x,"maximum",e.value,e.message,v):ai(x,"exclusiveMaximum",e.value,e.message,v):(e.inclusive||(x.exclusiveMaximum=!0),ai(x,"maximum",e.value,e.message,v));break;case"multipleOf":ai(x,"multipleOf",e.value,e.message,v)}return x;case t8.ZodFirstPartyTypeKind.ZodBoolean:return{type:"boolean"};case t8.ZodFirstPartyTypeKind.ZodDate:return function e(t,a,i){let n=i??a.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((i,n)=>e(t,a,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=t,o=a;let r={type:"integer",format:"unix-time"};if("openApi3"===o.target)return r;for(let e of s.checks)switch(e.kind){case"min":ai(r,"minimum",e.value,e.message,o);break;case"max":ai(r,"maximum",e.value,e.message,o)}return r}}(e,a);case t8.ZodFirstPartyTypeKind.ZodUndefined:return{not:as(a)};case t8.ZodFirstPartyTypeKind.ZodNull:return"openApi3"===a.target?{enum:["null"],nullable:!0}:{type:"null"};case t8.ZodFirstPartyTypeKind.ZodArray:var g=e,b=a;let y={type:"array"};return g.type?._def&&g.type?._def?.typeName!==t8.ZodFirstPartyTypeKind.ZodAny&&(y.items=ax(g.type._def,{...b,currentPath:[...b.currentPath,"items"]})),g.minLength&&ai(y,"minItems",g.minLength.value,g.minLength.message,b),g.maxLength&&ai(y,"maxItems",g.maxLength.value,g.maxLength.message,b),g.exactLength&&(ai(y,"minItems",g.exactLength.value,g.exactLength.message,b),ai(y,"maxItems",g.exactLength.value,g.exactLength.message,b)),y;case t8.ZodFirstPartyTypeKind.ZodUnion:case t8.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:var w=e,S=a;if("openApi3"===S.target)return av(w,S);let k=w.options instanceof Map?Array.from(w.options.values()):w.options;if(k.every(e=>e._def.typeName in ah&&(!e._def.checks||!e._def.checks.length))){let e=k.reduce((e,t)=>{let a=ah[t._def.typeName];return a&&!e.includes(a)?[...e,a]:e},[]);return{type:e.length>1?e:e[0]}}if(k.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=k.reduce((e,t)=>{let a=typeof t._def.value;switch(a){case"string":case"number":case"boolean":return[...e,a];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===k.length){let t=e.filter((e,t,a)=>a.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:k.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(k.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:k.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return av(w,S);case t8.ZodFirstPartyTypeKind.ZodIntersection:var R=e,_=a;let E=[ax(R.left._def,{..._,currentPath:[..._.currentPath,"allOf","0"]}),ax(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 t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:a,...i}=e;t=i}else j=void 0;T.push(t)}}),T.length?{allOf:T,...j}:void 0;case t8.ZodFirstPartyTypeKind.ZodTuple:return i=e,n=a,i.rest?{type:"array",minItems:i.items.length,items:i.items.map((e,t)=>ax(e._def,{...n,currentPath:[...n.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:ax(i.rest._def,{...n,currentPath:[...n.currentPath,"additionalItems"]})}:{type:"array",minItems:i.items.length,maxItems:i.items.length,items:i.items.map((e,t)=>ax(e._def,{...n,currentPath:[...n.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])};case t8.ZodFirstPartyTypeKind.ZodRecord:return af(e,a);case t8.ZodFirstPartyTypeKind.ZodLiteral:var O=e,A=a;let P=typeof O.value;return"bigint"!==P&&"number"!==P&&"boolean"!==P&&"string"!==P?{type:Array.isArray(O.value)?"array":"object"}:"openApi3"===A.target?{type:"bigint"===P?"integer":P,enum:[O.value]}:{type:"bigint"===P?"integer":P,const:O.value};case t8.ZodFirstPartyTypeKind.ZodEnum:return{type:"string",enum:Array.from(e.values)};case t8.ZodFirstPartyTypeKind.ZodNativeEnum:var I=e;let L=I.values,q=Object.keys(I.values).filter(e=>"number"!=typeof L[L[e]]).map(e=>L[e]),C=Array.from(new Set(q.map(e=>typeof e)));return{type:1===C.length?"string"===C[0]?"string":"number":["string","number"],enum:q};case t8.ZodFirstPartyTypeKind.ZodNullable:var F=e,M=a;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(F.innerType._def.typeName)&&(!F.innerType._def.checks||!F.innerType._def.checks.length))return"openApi3"===M.target?{type:ah[F.innerType._def.typeName],nullable:!0}:{type:[ah[F.innerType._def.typeName],"null"]};if("openApi3"===M.target){let e=ax(F.innerType._def,{...M,currentPath:[...M.currentPath]});return e&&"$ref"in e?{allOf:[e],nullable:!0}:e&&{...e,nullable:!0}}let U=ax(F.innerType._def,{...M,currentPath:[...M.currentPath,"anyOf","0"]});return U&&{anyOf:[U,{type:"null"}]};case t8.ZodFirstPartyTypeKind.ZodOptional:var N=e,$=a;if($.currentPath.toString()===$.propertyPath?.toString())return ax(N.innerType._def,$);let z=ax(N.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return z?{anyOf:[{not:as($)},z]}:as($);case t8.ZodFirstPartyTypeKind.ZodMap:return s=e,"record"===(o=a).mapStrategy?af(s,o):{type:"array",maxItems:125,items:{type:"array",items:[ax(s.keyType._def,{...o,currentPath:[...o.currentPath,"items","items","0"]})||as(o),ax(s.valueType._def,{...o,currentPath:[...o.currentPath,"items","items","1"]})||as(o)],minItems:2,maxItems:2}};case t8.ZodFirstPartyTypeKind.ZodSet:var B=e,D=a;let Z={type:"array",uniqueItems:!0,items:ax(B.valueType._def,{...D,currentPath:[...D.currentPath,"items"]})};return B.minSize&&ai(Z,"minItems",B.minSize.value,B.minSize.message,D),B.maxSize&&ai(Z,"maxItems",B.maxSize.value,B.maxSize.message,D),Z;case t8.ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case t8.ZodFirstPartyTypeKind.ZodPromise:return ax(e.type._def,a);case t8.ZodFirstPartyTypeKind.ZodNaN:case t8.ZodFirstPartyTypeKind.ZodNever:return"openAi"===(r=a).target?void 0:{not:as({...r,currentPath:[...r.currentPath,"not"]})};case t8.ZodFirstPartyTypeKind.ZodEffects:return c=e,"input"===(p=a).effectStrategy?ax(c.schema._def,p):as(p);case t8.ZodFirstPartyTypeKind.ZodAny:case t8.ZodFirstPartyTypeKind.ZodUnknown:return as(a);case t8.ZodFirstPartyTypeKind.ZodDefault:return l=e,u=a,{...ax(l.innerType._def,u),default:l.defaultValue()};case t8.ZodFirstPartyTypeKind.ZodBranded:return ao(e,a);case t8.ZodFirstPartyTypeKind.ZodReadonly:case t8.ZodFirstPartyTypeKind.ZodCatch:return ax(e.innerType._def,a);case t8.ZodFirstPartyTypeKind.ZodPipeline:var H=e,G=a;if("input"===G.pipeStrategy)return ax(H.in._def,G);if("output"===G.pipeStrategy)return ax(H.out._def,G);let J=ax(H.in._def,{...G,currentPath:[...G.currentPath,"allOf","0"]}),K=ax(H.out._def,{...G,currentPath:[...G.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,K].filter(e=>void 0!==e)};case t8.ZodFirstPartyTypeKind.ZodFunction:case t8.ZodFirstPartyTypeKind.ZodVoid:case t8.ZodFirstPartyTypeKind.ZodSymbol:default:return}})(e,e.typeName,t),o="function"==typeof s?ax(s(),t):s;if(o&&ab(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return n.jsonSchema=o,a}return n.jsonSchema=o,o}let ag=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:an(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,a)=>t.currentPath[a]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),as(t);return"seen"===t.$refStrategy?as(t):void 0}},ab=(e,t,a)=>(e.description&&(a.description=e.description,t.markdownDescription&&(a.markdownDescription=e.description)),a),ay=(e,t)=>{let a=(e=>{let t=(e=>"string"==typeof e?{...at,name:e}:{...at,...e})(e),a=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:a,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,a])=>[a._def,{def:a._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}})(t),i="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,i])=>({...e,[t]:ax(i._def,{...a,currentPath:[...a.basePath,a.definitionPath,t]},!0)??as(a)}),{}):void 0,n="string"==typeof t?t:t?.nameStrategy==="title"?void 0:t?.name,s=ax(e._def,void 0===n?a:{...a,currentPath:[...a.basePath,a.definitionPath,n]},!1)??as(a),o="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==o&&(s.title=o),a.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[a.openAiAnyTypeName]||(i[a.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===a.$refStrategy?"1":[...a.basePath,a.definitionPath,a.openAiAnyTypeName].join("/")}}));let r=void 0===n?i?{...s,[a.definitionPath]:i}:s:{$ref:[..."relative"===a.$refStrategy?[]:a.basePath,a.definitionPath,n].join("/"),[a.definitionPath]:{...i,[n]:s}};return"jsonSchema7"===a.target?r.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===a.target||"openAi"===a.target)&&(r.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===a.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 aw=class extends EventTarget{dispatchTypedEvent(e,t){return super.dispatchEvent(t)}},aS=class extends Error{statusCode;details;constructor(e,t,a){super(e),this.statusCode=t,this.details=a}},ak=class{apiKey;apiUrl;isCloudService(e){return e.includes("api.firecrawl.dev")}constructor({apiKey:e=null,apiUrl:t=null}){let a=t||"https://api.firecrawl.dev";if(this.isCloudService(a)&&"string"!=typeof e)throw new aS("No API key provided",401);this.apiKey=e||"",this.apiUrl=a}async scrapeUrl(e,t){let a={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={url:e,...t};if(i?.extract?.schema){let e=i.extract.schema;try{e=ay(e)}catch(e){}i={...i,extract:{...i.extract,schema:e}}}if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=ay(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await tG.post(this.apiUrl+"/v1/scrape",i,{headers:a,timeout:t?.timeout!==void 0?t.timeout+5e3:void 0});if(200===e.status){let t=e.data;if(t.success)return{success:!0,warning:t.warning,error:t.error,...t.data};throw new aS(`Failed to scrape URL. Error: ${t.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,t){let a={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={query:e,limit:t?.limit??5,tbs:t?.tbs,filter:t?.filter,lang:t?.lang??"en",country:t?.country??"us",location:t?.location,origin:t?.origin??"api",timeout:t?.timeout??6e4,scrapeOptions:t?.scrapeOptions??{formats:[]}};if(i?.scrapeOptions?.extract?.schema){let e=i.scrapeOptions.extract.schema;try{e=ay(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,a);if(200===e.status){let t=e.data;if(t.success)return{success:!0,data:t.data,warning:t.warning};throw new aS(`Failed to search. Error: ${t.error}`,e.status)}this.handleError(e,"search")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error.",data:[]}}async crawlUrl(e,t,a=2,i){let n=this.prepareHeaders(i),s={url:e,...t};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",s,n);if(200===e.status){let t=e.data.id;return this.monitorJobStatus(t,n,a)}this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncCrawlUrl(e,t,a){let i=this.prepareHeaders(a),n={url:e,...t};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 aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlStatus(e,t=!1,a,i,n){if(!e)throw new aS("No crawl ID provided",400);let s=this.prepareHeaders(),o=new URL(a??`${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 a=e.data.data;if(t&&"completed"===e.data.status){let t=e.data;if("data"in t){let e=t.data;for(;"object"==typeof t&&"next"in t&&0!==e.length;)t=(await this.getRequest(t.next,s)).data,e=e.concat(t.data);a=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:t?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:a};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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlErrors(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}/errors`,t);if(200===a.status)return a.data;this.handleError(a,"check crawl errors")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async cancelCrawl(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}`,t);if(200===a.status)return a.data;this.handleError(a,"cancel crawl job")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async crawlUrlAndWatch(e,t,a){let i=await this.asyncCrawlUrl(e,t,a);if(i.success&&i.id)return new aR(i.id,this);throw new aS("Crawl job failed to start",400)}async mapUrl(e,t){let a=this.prepareHeaders(),i={url:e,...t};try{let e=await this.postRequest(this.apiUrl+"/v1/map",i,a);if(200===e.status)return e.data;this.handleError(e,"map")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrls(e,t,a=2,i,n,s){let o=this.prepareHeaders(i),r={urls:e,webhook:n,ignoreInvalidURLs:s,...t};if(r?.extract?.schema){let e=r.extract.schema;try{e=ay(e)}catch(e){}r={...r,extract:{...r.extract,schema:e}}}if(r?.jsonOptions?.schema){let e=r.jsonOptions.schema;try{e=ay(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 t=e.data.id;return this.monitorJobStatus(t,o,a)}this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncBatchScrapeUrls(e,t,a,i,n){let s=this.prepareHeaders(a),o={urls:e,webhook:i,ignoreInvalidURLs:n,...t??{}};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 aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrlsAndWatch(e,t,a,i,n){let s=await this.asyncBatchScrapeUrls(e,t,a,i,n);if(s.success&&s.id)return new aR(s.id,this);throw new aS("Batch scrape job failed to start",400)}async checkBatchScrapeStatus(e,t=!1,a,i,n){if(!e)throw new aS("No batch scrape ID provided",400);let s=this.prepareHeaders(),o=new URL(a??`${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 a=e.data.data;if(t&&"completed"===e.data.status){let t=e.data;if("data"in t){let e=t.data;for(;"object"==typeof t&&"next"in t&&0!==e.length;)t=(await this.getRequest(t.next,s)).data,e=e.concat(t.data);a=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:t?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:a};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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkBatchScrapeErrors(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/batch/scrape/${e}/errors`,t);if(200===a.status)return a.data;this.handleError(a,"check batch scrape errors")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async extract(e,t){let a,i=this.prepareHeaders(),n={urls:e,...t};try{a=t?.schema?"object"==typeof t.schema&&null!==t.schema&&Object.getPrototypeOf(t.schema)?.constructor?.name?.startsWith("Zod")?ay(t.schema):t.schema:void 0}catch(e){throw new aS("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:a,origin:t?.origin||"api-sdk"},i);if(200===e.status){let t,a=e.data.id;do{let e=await this.getRequest(`${this.apiUrl}/v1/extract/${a}`,i);if(t=e.data,"completed"===t.status)if(t.success)return{success:!0,data:t.data,warning:t.warning,error:t.error,sources:t?.sources||void 0};else throw new aS(`Failed to extract data. Error: ${t.error}`,e.status);if("failed"===t.status||"cancelled"===t.status)throw new aS(`Extract job ${t.status}. Error: ${t.error}`,e.status);await new Promise(e=>setTimeout(e,1e3))}while("completed"!==t.status)}else this.handleError(e,"extract")}catch(e){throw new aS(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async asyncExtract(e,t,a){let i,n=this.prepareHeaders(a),s={urls:e,...t};try{i=t?.schema instanceof t8.ZodType?ay(t.schema):t?.schema}catch(e){throw new aS("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 aS(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async getExtractStatus(e){try{let t=await this.getRequest(`${this.apiUrl}/v1/extract/${e}`,this.prepareHeaders());if(200===t.status)return t.data;this.handleError(t,"get extract status")}catch(e){throw new aS(e.message,500)}}prepareHeaders(e){return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,...e?{"x-idempotency-key":e}:{}}}postRequest(e,t,a){return tG.post(e,t,{headers:a,timeout:t?.timeout?t.timeout+5e3:void 0})}async getRequest(e,t){try{return await tG.get(e,{headers:t})}catch(e){if(e instanceof tK&&e.response)return e.response;throw e}}async deleteRequest(e,t){try{return await tG.delete(e,{headers:t})}catch(e){if(e instanceof tK&&e.response)return e.response;throw e}}async monitorJobStatus(e,t,a){try{let i=0;for(;;){let n=await this.getRequest(`${this.apiUrl}/v1/crawl/${e}`,t);if(200===n.status){i=0;let e=n.data;if("completed"===e.status)if("data"in e){let a=e.data;for(;"object"==typeof e&&"next"in e&&0!==a.length;)e=(n=await this.getRequest(e.next,t)).data,a=a.concat(e.data);return e.data=a,e}else throw new aS("Crawl job completed but no data was returned",500);if(["active","paused","pending","queued","waiting","scraping"].includes(e.status))a=Math.max(a,2),await new Promise(e=>setTimeout(e,1e3*a));else throw new aS(`Crawl job failed or was stopped. Status: ${e.status}`,500)}else++i>=3&&this.handleError(n,"check crawl status")}}catch(e){throw new aS(e,500)}}handleError(e,t){if([400,402,403,408,409,500].includes(e.status)){let a=e.data.error||"Unknown error occurred",i=e.data.details?` - ${JSON.stringify(e.data.details)}`:"";throw new aS(`Failed to ${t}. Status code: ${e.status}. Error: ${a}${i}`,e.status,e?.data?.details)}throw new aS(`Unexpected error occurred while trying to ${t}. Status code: ${e.status}`,e.status)}async deepResearch(e,t,a,i){try{let n,s=await this.asyncDeepResearch(e,t);if(!s.success||"error"in s)return{success:!1,error:"error"in s?s.error:"Unknown error"};if(!s.id)throw new aS("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(a&&n.activities){for(let e of n.activities.slice(r))a(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 aS(`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 aS(e.message,500,e.response?.data?.details)}}async asyncDeepResearch(e,t){let a=this.prepareHeaders(),i={query:e,...t};if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=ay(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await this.postRequest(`${this.apiUrl}/v1/deep-research`,i,a);if(200===e.status)return e.data;this.handleError(e,"start deep research")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkDeepResearchStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("Deep research job not found",404);this.handleError(a,"check deep research status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async __deepResearch(e,t,a){try{let i,n=await this.__asyncDeepResearch(e,t);if(!n.success||"error"in n)return{success:!1,error:"error"in n?n.error:"Unknown error"};if(!n.id)throw new aS("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(a&&i.activities){for(let e of i.activities.slice(o))a(e);o=i.activities.length}if("completed"===i.status)return i;if("failed"===i.status)throw new aS(`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 aS(e.message,500,e.response?.data?.details)}}async __asyncDeepResearch(e,t){let a=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/deep-research`,{topic:e,...t},a);if(200===i.status)return i.data;this.handleError(i,"start deep research")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async __checkDeepResearchStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("Deep research job not found",404);this.handleError(a,"check deep research status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async generateLLMsText(e,t){try{let a,i=await this.asyncGenerateLLMsText(e,t);if(!i.success||"error"in i)return{success:!1,error:"error"in i?i.error:"Unknown error"};if(!i.id)throw new aS("Failed to start LLMs.txt generation. No job ID returned.",500);let n=i.id;for(;;){if(a=await this.checkGenerateLLMsTextStatus(n),"error"in a&&!a.success||"completed"===a.status)return a;if("failed"===a.status)throw new aS(`LLMs.txt generation job ${a.status}. Error: ${a.error}`,500);if("processing"!==a.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"LLMs.txt generation job terminated unexpectedly"}}catch(e){throw new aS(e.message,500,e.response?.data?.details)}}async asyncGenerateLLMsText(e,t){let a=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/llmstxt`,{url:e,...t},a);if(200===i.status)return i.data;this.handleError(i,"start LLMs.txt generation")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkGenerateLLMsTextStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/llmstxt/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("LLMs.txt generation job not found",404);this.handleError(a,"check LLMs.txt generation status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}},aR=class extends aw{ws;data;status;id;constructor(e,t){super(),this.id=e;let a=t.apiUrl.replace(/^http/,"ws");this.ws=new WebSocket(`${a}/v1/crawl/${e}`,t.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 t of(this.status=e.data.status,this.data.push(...e.data.data??[]),this.data))this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...t,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 t=JSON.parse(e.data);i(t)}catch(e){console.error("Error on message",e)}}).bind(this),this.ws.onclose=(e=>{try{let t=JSON.parse(e.reason);i(t)}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()}},a_=e.i(52376);let aE=async({firecrawlHandler:e,toolCall:t,assistant:a,thread:i,prisma:s})=>{let o;try{o=JSON.parse(t.function.arguments)}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Invalid arguments."}}let r=new ak({apiKey:e.apiKey});if(e.type===n.FirecrawlHandlerType.SCRAPE)try{let a=await r.scrapeUrl(o.url,{...e.body,...(0,a_.omit)(o,["url"]),formats:e.body.formats??["markdown"]});return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.CRAWL)try{let a=await r.crawlUrl(o.url,{...e.body,...(0,a_.omit)(o,["url"])});return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.EXTRACT)try{let e=await r.scrapeUrl(o.url,{formats:["extract"],...(0,a_.omit)(o,["url"])});return{tool_call_id:t.id,output:JSON.stringify(e)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type!==n.FirecrawlHandlerType.SEARCH)return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Firecrawl handler type: ${e.type}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:JSON.stringify({success:!1,message:"Invalid Firecrawl handler type"})};try{let a=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 a.json();return{tool_call_id:t.id,output:JSON.stringify(i)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}};e.s(["handleReplicate",()=>aA],26279);var aj=e.i(39775),aT=e.i(14905);let aO=(e,t)=>{if(aT.default.isArray(e))return t},aA=async({replicateHandler:e,toolCall:t,assistant:a,thread:i,prisma:s})=>{let o;try{o=JSON.parse(t.function.arguments)}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Invalid arguments."}}let r=new aj.default({auth:e.apiKey,useFileOutput:!1});if(e.type!==n.ReplicateHandlerType.RUN)return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Replicate handler type: ${e.type}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:JSON.stringify({success:!1,message:"Invalid Replicate handler type"})};try{let a=await r.run(e.identifier,((e,...t)=>aT.default.mergeWith(aT.default.cloneDeep(e),...t,aO))(e.body,o));return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}};e.s(["createThread",()=>aL],96227);let aP=({assistant:e})=>e.initialMessages.map(t=>({role:(({message:e,assistant:t})=>(0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:t.storageProviderType})?e.role.toLowerCase():e.role)({message:t,assistant:e}),content:t.content,attachments:t.attachments,metadata:t.metadata}));e.s(["serializeMetadata",()=>aI],10671);let aI=({variables:e,workspaceId:t,prisma:a})=>{let i={};for(let[s,o]of Object.entries(e))try{i[s]=String(o)}catch(e){(0,u.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:t},prisma:a})}return i},aL=async({client:e,assistant:t,prisma:a,variables:i={}})=>{let o,r=aI({variables:i,workspaceId:t.workspaceId,prisma:a});if((0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:t.storageProviderType})){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiThreadId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else if(t.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiConversationId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else if(t.storageProviderType===n.StorageProviderType.AZURE_OPENAI_RESPONSES){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureOpenaiConversationId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else{let i=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{metadata:{assistantId:t.id,threadId:i.id,...r}}})}if(!o)throw Error("Failed to create thread");return o};e.s(["managedOpenaiThreadId",()=>aC],57623);var aq=e.i(95690);let aC=async({assistant:e,threadId:t,prisma:a})=>{let i=await (0,aq.assistantClientAdapter)({assistant:e,prisma:a}).beta.threads.create({metadata:{assistantId:e.id,threadId:t}});return await a.thread.update({where:{id:t},data:{...(0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType})?{openaiThreadId:i.id}:{},...e.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES?{openaiConversationId:i.id}:{},...e.storageProviderType===n.StorageProviderType.AZURE_OPENAI_RESPONSES?{azureOpenaiConversationId:i.id}:{}}}),i.id}},14554,e=>{"use strict";e.s(["storageThreadId",()=>i]);var t=e.i(29173),a=e.i(9394);let i=({thread:e})=>{if((0,a.isOpenaiAssistantsStorageProvider)({storageProviderType:e.assistant.storageProviderType}))return e.openaiThreadId;if(e.assistant.storageProviderType===t.StorageProviderType.OPENAI_RESPONSES)return e.openaiConversationId;if(e.assistant.storageProviderType===t.StorageProviderType.AZURE_OPENAI_RESPONSES)return e.azureOpenaiConversationId;if(e.assistant.storageProviderType===t.StorageProviderType.SUPERINTERFACE_CLOUD)return e.id;throw Error(`Invalid storage type: ${e.assistant.storageProviderType}`)}},91450,e=>{"use strict";e.s(["enqueueJson",()=>r,"optimisticId",()=>n,"serializeMessage",()=>o],91450);var t=e.i(62371);e.i(14905);var a=e.i(52376);function i(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var i in a)e[i]=a[i]}return e}!function e(t,a){function n(e,n,s){if("undefined"!=typeof document){"number"==typeof(s=i({},a,s)).expires&&(s.expires=new Date(Date.now()+864e5*s.expires)),s.expires&&(s.expires=s.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var r in s)s[r]&&(o+="; "+r,!0!==s[r]&&(o+="="+s[r].split(";")[0]));return document.cookie=e+"="+t.write(n,e)+o}}return Object.create({set:n,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var a=document.cookie?document.cookie.split("; "):[],i={},n=0;n<a.length;n++){var s=a[n].split("="),o=s.slice(1).join("=");try{var r=decodeURIComponent(s[0]);if(i[r]=t.read(o,r),e===r)break}catch(e){}}return e?i[e]:i}},remove:function(e,t){n(e,"",i({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,i({},this.attributes,t))},withConverter:function(t){return e(i({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(a)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});var n=function(){return"-".concat((0,t.uid)(24))},s=function(e){var t=e.runStep;return(0,a.pick)(t,["id","run_id","step_details","completed_at","cancelled_at","failed_at","status"])},o=function(e){var t,a,i=e.message;return{id:i.id,role:i.role,created_at:i.created_at,content:i.content,run_id:i.run_id,assistant_id:i.assistant_id,thread_id:i.thread_id,attachments:i.attachments,metadata:i.metadata,runSteps:(null!=(t=i.runSteps)?t:[]).map(function(e){return s({runStep:e})}),status:null!=(a=i.status)?a:"completed"}},r=function(e){var t=e.controller,a=e.value;return t.enqueue(new TextEncoder().encode(JSON.stringify(a)))}},39713,e=>{"use strict";e.s(["handleToolCall",()=>J],39713);var t=e.i(29173),a=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:t,messageResponse:a,onThreadMessageCompleted:i=()=>{},onThreadRunStepCompleted:n=()=>{},controller:s,prisma:o})=>{if(!(0,d.validate)(t.id))return;let r=await o.runStep.findFirst({where:{runId:t.id},orderBy:{createdAt:"desc"}}),c=t.required_action?.submit_tool_outputs.tool_calls.findIndex(t=>t.id===e.id)??0;for await(let o of a){let a=JSON.parse(Buffer.from(o).toString("utf-8"));"thread.message.delta"===a.event&&(0,m.enqueueJson)({controller:s,value:{event:"thread.run.step.delta",data:{object:"thread.run.step.delta",run_id:t.id,id:r?.id??"1",delta:{step_details:{type:"tool_calls",tool_calls:[{id:e.id,type:"function",index:c,function:{output:f({data:a.data})}}]}}}}}),"thread.message.completed"===a.event&&i({message:a.data}),"thread.run.step.completed"===a.event&&n({runStep:a.data})}};var v=e.i(58011),x=e.i(9394),g=e.i(44784),b=e.i(45076),y=e.i(52376);let w=async({assistantHandler:e,toolCall:i,controller:n,run:s,assistant:o,thread:d,prisma:m})=>{let f,w,S,k;try{f=JSON.parse(i.function.arguments)}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 R=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(!R)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 _=(0,c.assistantClientAdapter)({assistant:R,prisma:m});try{w=await (0,p.createThread)({client:_,assistant:R,prisma:m,variables:{...(0,y.omit)(d.metadata??{},["assistantId","threadId"]),assistantId:R.id}})}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:"Failed creating thread inside Assistant function.",workspaceId:R.workspaceId,assistantId:R.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating thread."}}try{S=(0,u.storageThreadId)({thread:w})}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:"Failed getting storage thread ID.",workspaceId:R.workspaceId,assistantId:R.id,threadId:w.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting storage thread ID."}}if(!S&&(0,x.isOpenaiAssistantsStorageProvider)({storageProviderType:R.storageProviderType}))try{S=await (0,l.managedOpenaiThreadId)({assistant:R,threadId:w.id,prisma:m})}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:"Failed getting managed OpenAI thread ID.",workspaceId:R.workspaceId,assistantId:R.id,threadId:w.id},prisma:m}),{tool_call_id:i.id,output:"Failed getting managed OpenAI thread ID."}}if(!S)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:"Invalid thread configuration",workspaceId:R.workspaceId,assistantId:R.id,threadId:w.id},prisma:m}),{tool_call_id:i.id,output:"Invalid thread configuration"};let E=(0,c.assistantClientAdapter)({assistant:R,prisma:m,thread:w});try{await E.beta.threads.messages.create(S,{role:"user",content:f.message,metadata:{assistantId:R.id,toolCallId:i.id}})}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:"Failed creating message.",workspaceId:R.workspaceId,assistantId:R.id,threadId:w.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating message."}}let j=await (0,v.createRunOpts)({assistant:R,thread:w,prisma:m});try{k=await E.beta.threads.runs.create(S,j)}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.LogLevel.ERROR,status:500,message:`Failed creating run stream: ${e.message}`,workspaceId:R.workspaceId,assistantId:R.id,threadId:w.id},prisma:m}),{tool_call_id:i.id,output:"Failed creating run stream."}}let T=(0,r.createMessageResponse)({client:E,createRunStream:k,handleToolCall:J({assistant:R,thread:w,prisma:m})});if("a606a15d-c9a2-45d3-8e54-ee088a500008"===R.id)return(0,b.waitUntil)(new Promise(async e=>{let t=new TextDecoder,a=T.getReader();for(;;){let e,{value:i,done:n}=await a.read();if(n)break;if(i){try{e=JSON.parse(t.decode(i))}catch(e){continue}"thread.run.requires_action"===e.event&&e.data?.required_action?.type==="submit_client_tool_outputs"&&await Promise.all(e.data.required_action.submit_client_tool_outputs.tool_calls.map(async e=>{await g.redis.set(`submit-client-tool-outputs:output:${e.id}`,"Client tools cannot be used during async assistant calls",{ex:604800})}))}}console.log("Successfully done with async assistant handler."),e(!0)})),{tool_call_id:i.id,output:JSON.stringify({status:"in_progress"})};let O=[];return await h({toolCall:i,messageResponse:T,controller:n,run:s,prisma:m,onThreadMessageCompleted:({message:e})=>{O.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:O})}},S=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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 g.redis.set(`submit-client-tool-outputs:pending:${i.id}`,"1",{ex:604800});let u=await new Promise(async e=>{let t=setTimeout(()=>{e("Function call timed out")},6e4),a=async()=>{let n=await g.redis.get(`submit-client-tool-outputs:output:${i.id}`);null===n?setTimeout(a,500):(clearTimeout(t),await g.redis.del(`submit-client-tool-outputs:pending:${i.id}`),await g.redis.del(`submit-client-tool-outputs:output:${i.id}`),e(n))};a()});return{tool_call_id:i.id,output:u}};var k=e.i(7179),R=e.i(79100),_=e.i(85516),E=e.i(83675),j=e.i(772),T=e.i(56512),O=e.i(57855),A=e.i(55348);T.default.extend(O.default),T.default.extend(A.default);let P=({toolCall:e,assistant:i,thread:n,prisma:s})=>{let o={};try{o=JSON.parse(e.function.arguments||"{}")}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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=E.scheduleSchema.safeParse(o.schedule);if(!e.success)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,j.getNextOccurrence)({schedule:o.schedule})){let e=`Schedule must be in the future. Current time: ${(({schedule:e})=>e.timeZone?`${(0,T.default)().tz(e.timeZone).format()} in timezone ${e.timeZone}`:`${(0,T.default)().toISOString()} in UTC`)({schedule:o.schedule})}`;return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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}},I=async({thread:e,assistant:i,keyTemplate:n,prisma:s})=>{let o=[],r=(n||"").replace(/{{\s*([\w-]+)\s*}}/g,(t,a)=>a in(e.metadata||{})?String(e.metadata[a]):"threadId"===a?e.id:"assistantId"===a?i.id:(o.push(a),`{{${a}}}`));if(o.length){let n=`Missing variables in key template: ${o.join(", ")}`;return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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),q=e.i(75637),C=e.i(65074);let F=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=P({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=_.createTaskToolSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await I({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.id,output:l};if(!(0,R.validateSchedule)(r.schedule))return{tool_call_id:t.id,output:"Invalid schedule."};let u=p??"";try{await (0,q.ensureTaskSchedule)({prisma:n,threadId:i.id,key:u,schedule:r.schedule})}catch(e){if(e instanceof C.TaskScheduleConflictError)return{tool_call_id:t.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:t.id,output:JSON.stringify({task:(0,k.serializeTask)({task:d})})}},M=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=P({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=_.listTasksSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let{ok:r,key:c,error:p}=await I({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!r)return{tool_call_id:t.id,output:p};let l=await n.task.findMany({where:{key:c,thread:{assistant:{workspaceId:a.workspaceId}}},orderBy:{createdAt:"desc"}});return{tool_call_id:t.id,output:JSON.stringify({tasks:l.map(e=>(0,k.serializeTask)({task:e}))})}};var U=e.i(29325);let N=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=P({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=_.updateTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await I({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.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,R.validateSchedule)(r.schedule))return{tool_call_id:t.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:a.workspaceId}}}});if(!d)return{tool_call_id:t.id,output:"Task not found."};let m=r.key??d.key??"",f=r.schedule??d.schedule;try{await (0,q.ensureTaskSchedule)({prisma:n,threadId:d.threadId,key:m,schedule:f,excludeTaskId:d.id})}catch(e){if(e instanceof C.TaskScheduleConflictError)return{tool_call_id:t.id,output:e.message};throw e}await (0,U.cancelScheduledTask)({task:d});let h=await n.task.update({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:a.workspaceId}}},data:u});return await (0,L.scheduleTask)({task:h,prisma:n}),{tool_call_id:t.id,output:JSON.stringify({task:(0,k.serializeTask)({task:h})})}},$=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=P({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=_.deleteTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await I({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.id,output:l};let u=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:a.workspaceId}}}});if(!u)return{tool_call_id:t.id,output:"Task not found."};await (0,U.cancelScheduledTask)({task:u});let d=await n.task.delete({where:{id:r.taskId}});return{tool_call_id:t.id,output:JSON.stringify({task:(0,k.serializeTask)({task:d})})}};var z=e.i(70151),B=e.i(10273);let D=async({assistant:e,toolCall:t,thread:a,prisma:i})=>{let n=null;for(let s of e.mcpServers){if(n)break;let{mcpConnection:o}=await (0,z.connectMcpServer)({mcpServer:s,thread:a,assistant:e,prisma:i});if(!(await o.client.listTools()).tools.find(e=>e.name===t.function.name)){await (0,B.closeMcpConnection)({mcpConnection:o});continue}n=o;break}return{mcpConnection:n}};var Z=e.i(76862);let H=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 D({toolCall:r,assistant:e,thread:l,prisma:u});if(!n)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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},Z.CallToolResultSchema,{timeout:3e5});return await (0,B.closeMcpConnection)({mcpConnection:n}),{tool_call_id:r.id,output:JSON.stringify(e)}}catch(i){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.REQUEST)return d.handler.requestHandler?(0,n.handleRequest)({requestHandler:d.handler.requestHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.CLIENT_TOOL)return d.handler.clientToolHandler?S({clientToolHandler:d.handler.clientToolHandler,controller:c,toolCall:r,assistant:e,thread:l,run:p,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.FIRECRAWL)return d.handler.firecrawlHandler?(0,s.handleFirecrawl)({firecrawlHandler:d.handler.firecrawlHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.REPLICATE)return d.handler.replicateHandler?(0,o.handleReplicate)({replicateHandler:d.handler.replicateHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.ASSISTANT)return d.handler.assistantHandler?w({assistantHandler:d.handler.assistantHandler,toolCall:r,controller:c,run:p,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.CREATE_TASK){let i=d.handler.createTaskHandler;return i?F({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.LIST_TASKS){let i=d.handler.listTasksHandler;return i?M({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.UPDATE_TASK){let i=d.handler.updateTaskHandler;return i?N({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.DELETE_TASK){let i=d.handler.deleteTaskHandler;return i?$({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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.`}},G=async({assistant:e,toolCall:i,thread:n,prisma:s})=>{let o=e.tools.find(e=>e.type===t.ToolType.COMPUTER_USE);if(!o||!o.computerUseTool||!o.computerUseTool.mcpServer)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,z.connectMcpServer)({thread:n,assistant:e,mcpServer:o.computerUseTool.mcpServer,prisma:s});try{let a=await r.client.callTool({name:"computer_call",arguments:{action:i.computer_call.action}},Z.CallToolResultSchema,{timeout:3e5});await (0,B.closeMcpConnection)({mcpConnection:r});let n=i.computer_call.pending_safety_checks.map(e=>({id:e.id})),s=(({mcpServerToolOutput:e})=>{let t=(({mcpServerToolOutput:e})=>e.content.find(e=>"image"===e.type))({mcpServerToolOutput:e});return t?`data:${t.mimeType};base64,${t.data}`:null})({mcpServerToolOutput:a});if(!s)return{tool_call_id:i.id,output:a.structuredContent??a.content??"",acknowledged_safety_checks:n};return{tool_call_id:i.id,output:(({assistant:e,imageUrl:a})=>e.modelProvider.type===t.ModelProviderType.ANTHROPIC?[{type:"image",source:{type:"base64",media_type:"image/png",data:a.split(",")[1]}}]:JSON.stringify({type:"computer_screenshot",image_url:a}))({imageUrl:s,assistant:e}),acknowledged_safety_checks:n}}catch(o){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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}`}}},J=({assistant:e,thread:i,prisma:n})=>async({toolCall:s,controller:o,run:r})=>"function"===s.type?s.function?H({assistant:e,toolCall:s,controller:o,run:r,thread:i,prisma:n}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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?G({assistant:e,toolCall:s,thread:i,prisma:n}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return n}function af(e,t){if("openAi"===t.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===t.target&&e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((a,i)=>({...a,[i]:ax(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??as(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let a={type:"object",additionalProperties:ax(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if("openApi3"===t.target)return a;if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.checks?.length){let{type:i,...n}=ac(e.keyType._def,t);return{...a,propertyNames:n}}if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodEnum)return{...a,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===t8.ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===t8.ZodFirstPartyTypeKind.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...n}=ao(e.keyType._def,t);return{...a,propertyNames:n}}return a}let ah={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},av=(e,t)=>{let a=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,a)=>ax(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${a}`]})).filter(e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return a.length?{anyOf:a}:void 0};function ax(e,t,a=!1){let i=t.seen.get(e);if(t.override){let n=t.override?.(e,t,i,a);if(n!==ae)return n}if(i&&!a){let e=ag(i,t);if(void 0!==e)return e}let n={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,n);let s=((e,t,a)=>{switch(t){case t8.ZodFirstPartyTypeKind.ZodString:return ac(e,a);case t8.ZodFirstPartyTypeKind.ZodNumber:var i,n,s,o,r,c,p,l,u,d=e,m=a;let f={type:"number"};if(!d.checks)return f;for(let e of d.checks)switch(e.kind){case"int":f.type="integer",aa(f,"type",e.message,m);break;case"min":"jsonSchema7"===m.target?e.inclusive?ai(f,"minimum",e.value,e.message,m):ai(f,"exclusiveMinimum",e.value,e.message,m):(e.inclusive||(f.exclusiveMinimum=!0),ai(f,"minimum",e.value,e.message,m));break;case"max":"jsonSchema7"===m.target?e.inclusive?ai(f,"maximum",e.value,e.message,m):ai(f,"exclusiveMaximum",e.value,e.message,m):(e.inclusive||(f.exclusiveMaximum=!0),ai(f,"maximum",e.value,e.message,m));break;case"multipleOf":ai(f,"multipleOf",e.value,e.message,m)}return f;case t8.ZodFirstPartyTypeKind.ZodObject:return function(e,t){let a="openAi"===t.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&&a&&("ZodOptional"===o._def.typeName&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),r=!1);let c=ax(o._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==c&&(i.properties[e]=c,r||n.push(e))}n.length&&(i.required=n);let o=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return ax(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==o&&(i.additionalProperties=o),i}(e,a);case t8.ZodFirstPartyTypeKind.ZodBigInt:var h=e,v=a;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?ai(x,"minimum",e.value,e.message,v):ai(x,"exclusiveMinimum",e.value,e.message,v):(e.inclusive||(x.exclusiveMinimum=!0),ai(x,"minimum",e.value,e.message,v));break;case"max":"jsonSchema7"===v.target?e.inclusive?ai(x,"maximum",e.value,e.message,v):ai(x,"exclusiveMaximum",e.value,e.message,v):(e.inclusive||(x.exclusiveMaximum=!0),ai(x,"maximum",e.value,e.message,v));break;case"multipleOf":ai(x,"multipleOf",e.value,e.message,v)}return x;case t8.ZodFirstPartyTypeKind.ZodBoolean:return{type:"boolean"};case t8.ZodFirstPartyTypeKind.ZodDate:return function e(t,a,i){let n=i??a.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((i,n)=>e(t,a,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=t,o=a;let r={type:"integer",format:"unix-time"};if("openApi3"===o.target)return r;for(let e of s.checks)switch(e.kind){case"min":ai(r,"minimum",e.value,e.message,o);break;case"max":ai(r,"maximum",e.value,e.message,o)}return r}}(e,a);case t8.ZodFirstPartyTypeKind.ZodUndefined:return{not:as(a)};case t8.ZodFirstPartyTypeKind.ZodNull:return"openApi3"===a.target?{enum:["null"],nullable:!0}:{type:"null"};case t8.ZodFirstPartyTypeKind.ZodArray:var g=e,b=a;let y={type:"array"};return g.type?._def&&g.type?._def?.typeName!==t8.ZodFirstPartyTypeKind.ZodAny&&(y.items=ax(g.type._def,{...b,currentPath:[...b.currentPath,"items"]})),g.minLength&&ai(y,"minItems",g.minLength.value,g.minLength.message,b),g.maxLength&&ai(y,"maxItems",g.maxLength.value,g.maxLength.message,b),g.exactLength&&(ai(y,"minItems",g.exactLength.value,g.exactLength.message,b),ai(y,"maxItems",g.exactLength.value,g.exactLength.message,b)),y;case t8.ZodFirstPartyTypeKind.ZodUnion:case t8.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:var w=e,S=a;if("openApi3"===S.target)return av(w,S);let k=w.options instanceof Map?Array.from(w.options.values()):w.options;if(k.every(e=>e._def.typeName in ah&&(!e._def.checks||!e._def.checks.length))){let e=k.reduce((e,t)=>{let a=ah[t._def.typeName];return a&&!e.includes(a)?[...e,a]:e},[]);return{type:e.length>1?e:e[0]}}if(k.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=k.reduce((e,t)=>{let a=typeof t._def.value;switch(a){case"string":case"number":case"boolean":return[...e,a];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===k.length){let t=e.filter((e,t,a)=>a.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:k.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(k.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:k.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return av(w,S);case t8.ZodFirstPartyTypeKind.ZodIntersection:var R=e,_=a;let E=[ax(R.left._def,{..._,currentPath:[..._.currentPath,"allOf","0"]}),ax(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 t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:a,...i}=e;t=i}else j=void 0;T.push(t)}}),T.length?{allOf:T,...j}:void 0;case t8.ZodFirstPartyTypeKind.ZodTuple:return i=e,n=a,i.rest?{type:"array",minItems:i.items.length,items:i.items.map((e,t)=>ax(e._def,{...n,currentPath:[...n.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:ax(i.rest._def,{...n,currentPath:[...n.currentPath,"additionalItems"]})}:{type:"array",minItems:i.items.length,maxItems:i.items.length,items:i.items.map((e,t)=>ax(e._def,{...n,currentPath:[...n.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])};case t8.ZodFirstPartyTypeKind.ZodRecord:return af(e,a);case t8.ZodFirstPartyTypeKind.ZodLiteral:var O=e,A=a;let P=typeof O.value;return"bigint"!==P&&"number"!==P&&"boolean"!==P&&"string"!==P?{type:Array.isArray(O.value)?"array":"object"}:"openApi3"===A.target?{type:"bigint"===P?"integer":P,enum:[O.value]}:{type:"bigint"===P?"integer":P,const:O.value};case t8.ZodFirstPartyTypeKind.ZodEnum:return{type:"string",enum:Array.from(e.values)};case t8.ZodFirstPartyTypeKind.ZodNativeEnum:var I=e;let L=I.values,q=Object.keys(I.values).filter(e=>"number"!=typeof L[L[e]]).map(e=>L[e]),C=Array.from(new Set(q.map(e=>typeof e)));return{type:1===C.length?"string"===C[0]?"string":"number":["string","number"],enum:q};case t8.ZodFirstPartyTypeKind.ZodNullable:var F=e,M=a;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(F.innerType._def.typeName)&&(!F.innerType._def.checks||!F.innerType._def.checks.length))return"openApi3"===M.target?{type:ah[F.innerType._def.typeName],nullable:!0}:{type:[ah[F.innerType._def.typeName],"null"]};if("openApi3"===M.target){let e=ax(F.innerType._def,{...M,currentPath:[...M.currentPath]});return e&&"$ref"in e?{allOf:[e],nullable:!0}:e&&{...e,nullable:!0}}let U=ax(F.innerType._def,{...M,currentPath:[...M.currentPath,"anyOf","0"]});return U&&{anyOf:[U,{type:"null"}]};case t8.ZodFirstPartyTypeKind.ZodOptional:var N=e,$=a;if($.currentPath.toString()===$.propertyPath?.toString())return ax(N.innerType._def,$);let z=ax(N.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return z?{anyOf:[{not:as($)},z]}:as($);case t8.ZodFirstPartyTypeKind.ZodMap:return s=e,"record"===(o=a).mapStrategy?af(s,o):{type:"array",maxItems:125,items:{type:"array",items:[ax(s.keyType._def,{...o,currentPath:[...o.currentPath,"items","items","0"]})||as(o),ax(s.valueType._def,{...o,currentPath:[...o.currentPath,"items","items","1"]})||as(o)],minItems:2,maxItems:2}};case t8.ZodFirstPartyTypeKind.ZodSet:var B=e,D=a;let Z={type:"array",uniqueItems:!0,items:ax(B.valueType._def,{...D,currentPath:[...D.currentPath,"items"]})};return B.minSize&&ai(Z,"minItems",B.minSize.value,B.minSize.message,D),B.maxSize&&ai(Z,"maxItems",B.maxSize.value,B.maxSize.message,D),Z;case t8.ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case t8.ZodFirstPartyTypeKind.ZodPromise:return ax(e.type._def,a);case t8.ZodFirstPartyTypeKind.ZodNaN:case t8.ZodFirstPartyTypeKind.ZodNever:return"openAi"===(r=a).target?void 0:{not:as({...r,currentPath:[...r.currentPath,"not"]})};case t8.ZodFirstPartyTypeKind.ZodEffects:return c=e,"input"===(p=a).effectStrategy?ax(c.schema._def,p):as(p);case t8.ZodFirstPartyTypeKind.ZodAny:case t8.ZodFirstPartyTypeKind.ZodUnknown:return as(a);case t8.ZodFirstPartyTypeKind.ZodDefault:return l=e,u=a,{...ax(l.innerType._def,u),default:l.defaultValue()};case t8.ZodFirstPartyTypeKind.ZodBranded:return ao(e,a);case t8.ZodFirstPartyTypeKind.ZodReadonly:case t8.ZodFirstPartyTypeKind.ZodCatch:return ax(e.innerType._def,a);case t8.ZodFirstPartyTypeKind.ZodPipeline:var H=e,G=a;if("input"===G.pipeStrategy)return ax(H.in._def,G);if("output"===G.pipeStrategy)return ax(H.out._def,G);let J=ax(H.in._def,{...G,currentPath:[...G.currentPath,"allOf","0"]}),K=ax(H.out._def,{...G,currentPath:[...G.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,K].filter(e=>void 0!==e)};case t8.ZodFirstPartyTypeKind.ZodFunction:case t8.ZodFirstPartyTypeKind.ZodVoid:case t8.ZodFirstPartyTypeKind.ZodSymbol:default:return}})(e,e.typeName,t),o="function"==typeof s?ax(s(),t):s;if(o&&ab(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return n.jsonSchema=o,a}return n.jsonSchema=o,o}let ag=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:an(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,a)=>t.currentPath[a]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),as(t);return"seen"===t.$refStrategy?as(t):void 0}},ab=(e,t,a)=>(e.description&&(a.description=e.description,t.markdownDescription&&(a.markdownDescription=e.description)),a),ay=(e,t)=>{let a=(e=>{let t=(e=>"string"==typeof e?{...at,name:e}:{...at,...e})(e),a=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:a,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,a])=>[a._def,{def:a._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}})(t),i="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,i])=>({...e,[t]:ax(i._def,{...a,currentPath:[...a.basePath,a.definitionPath,t]},!0)??as(a)}),{}):void 0,n="string"==typeof t?t:t?.nameStrategy==="title"?void 0:t?.name,s=ax(e._def,void 0===n?a:{...a,currentPath:[...a.basePath,a.definitionPath,n]},!1)??as(a),o="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==o&&(s.title=o),a.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[a.openAiAnyTypeName]||(i[a.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===a.$refStrategy?"1":[...a.basePath,a.definitionPath,a.openAiAnyTypeName].join("/")}}));let r=void 0===n?i?{...s,[a.definitionPath]:i}:s:{$ref:[..."relative"===a.$refStrategy?[]:a.basePath,a.definitionPath,n].join("/"),[a.definitionPath]:{...i,[n]:s}};return"jsonSchema7"===a.target?r.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===a.target||"openAi"===a.target)&&(r.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===a.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 aw=class extends EventTarget{dispatchTypedEvent(e,t){return super.dispatchEvent(t)}},aS=class extends Error{statusCode;details;constructor(e,t,a){super(e),this.statusCode=t,this.details=a}},ak=class{apiKey;apiUrl;isCloudService(e){return e.includes("api.firecrawl.dev")}constructor({apiKey:e=null,apiUrl:t=null}){let a=t||"https://api.firecrawl.dev";if(this.isCloudService(a)&&"string"!=typeof e)throw new aS("No API key provided",401);this.apiKey=e||"",this.apiUrl=a}async scrapeUrl(e,t){let a={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={url:e,...t};if(i?.extract?.schema){let e=i.extract.schema;try{e=ay(e)}catch(e){}i={...i,extract:{...i.extract,schema:e}}}if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=ay(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await tG.post(this.apiUrl+"/v1/scrape",i,{headers:a,timeout:t?.timeout!==void 0?t.timeout+5e3:void 0});if(200===e.status){let t=e.data;if(t.success)return{success:!0,warning:t.warning,error:t.error,...t.data};throw new aS(`Failed to scrape URL. Error: ${t.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,t){let a={"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},i={query:e,limit:t?.limit??5,tbs:t?.tbs,filter:t?.filter,lang:t?.lang??"en",country:t?.country??"us",location:t?.location,origin:t?.origin??"api",timeout:t?.timeout??6e4,scrapeOptions:t?.scrapeOptions??{formats:[]}};if(i?.scrapeOptions?.extract?.schema){let e=i.scrapeOptions.extract.schema;try{e=ay(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,a);if(200===e.status){let t=e.data;if(t.success)return{success:!0,data:t.data,warning:t.warning};throw new aS(`Failed to search. Error: ${t.error}`,e.status)}this.handleError(e,"search")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error.",data:[]}}async crawlUrl(e,t,a=2,i){let n=this.prepareHeaders(i),s={url:e,...t};try{let e=await this.postRequest(this.apiUrl+"/v1/crawl",s,n);if(200===e.status){let t=e.data.id;return this.monitorJobStatus(t,n,a)}this.handleError(e,"start crawl job")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncCrawlUrl(e,t,a){let i=this.prepareHeaders(a),n={url:e,...t};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 aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlStatus(e,t=!1,a,i,n){if(!e)throw new aS("No crawl ID provided",400);let s=this.prepareHeaders(),o=new URL(a??`${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 a=e.data.data;if(t&&"completed"===e.data.status){let t=e.data;if("data"in t){let e=t.data;for(;"object"==typeof t&&"next"in t&&0!==e.length;)t=(await this.getRequest(t.next,s)).data,e=e.concat(t.data);a=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:t?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:a};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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkCrawlErrors(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}/errors`,t);if(200===a.status)return a.data;this.handleError(a,"check crawl errors")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async cancelCrawl(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/crawl/${e}`,t);if(200===a.status)return a.data;this.handleError(a,"cancel crawl job")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async crawlUrlAndWatch(e,t,a){let i=await this.asyncCrawlUrl(e,t,a);if(i.success&&i.id)return new aR(i.id,this);throw new aS("Crawl job failed to start",400)}async mapUrl(e,t){let a=this.prepareHeaders(),i={url:e,...t};try{let e=await this.postRequest(this.apiUrl+"/v1/map",i,a);if(200===e.status)return e.data;this.handleError(e,"map")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrls(e,t,a=2,i,n,s){let o=this.prepareHeaders(i),r={urls:e,webhook:n,ignoreInvalidURLs:s,...t};if(r?.extract?.schema){let e=r.extract.schema;try{e=ay(e)}catch(e){}r={...r,extract:{...r.extract,schema:e}}}if(r?.jsonOptions?.schema){let e=r.jsonOptions.schema;try{e=ay(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 t=e.data.id;return this.monitorJobStatus(t,o,a)}this.handleError(e,"start batch scrape job")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async asyncBatchScrapeUrls(e,t,a,i,n){let s=this.prepareHeaders(a),o={urls:e,webhook:i,ignoreInvalidURLs:n,...t??{}};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 aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async batchScrapeUrlsAndWatch(e,t,a,i,n){let s=await this.asyncBatchScrapeUrls(e,t,a,i,n);if(s.success&&s.id)return new aR(s.id,this);throw new aS("Batch scrape job failed to start",400)}async checkBatchScrapeStatus(e,t=!1,a,i,n){if(!e)throw new aS("No batch scrape ID provided",400);let s=this.prepareHeaders(),o=new URL(a??`${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 a=e.data.data;if(t&&"completed"===e.data.status){let t=e.data;if("data"in t){let e=t.data;for(;"object"==typeof t&&"next"in t&&0!==e.length;)t=(await this.getRequest(t.next,s)).data,e=e.concat(t.data);a=e}}let i={success:e.data.success,status:e.data.status,total:e.data.total,completed:e.data.completed,creditsUsed:e.data.creditsUsed,next:t?void 0:e.data.next,expiresAt:new Date(e.data.expiresAt),data:a};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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkBatchScrapeErrors(e){let t=this.prepareHeaders();try{let a=await this.deleteRequest(`${this.apiUrl}/v1/batch/scrape/${e}/errors`,t);if(200===a.status)return a.data;this.handleError(a,"check batch scrape errors")}catch(e){throw new aS(e.message,500)}return{success:!1,error:"Internal server error."}}async extract(e,t){let a,i=this.prepareHeaders(),n={urls:e,...t};try{a=t?.schema?"object"==typeof t.schema&&null!==t.schema&&Object.getPrototypeOf(t.schema)?.constructor?.name?.startsWith("Zod")?ay(t.schema):t.schema:void 0}catch(e){throw new aS("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:a,origin:t?.origin||"api-sdk"},i);if(200===e.status){let t,a=e.data.id;do{let e=await this.getRequest(`${this.apiUrl}/v1/extract/${a}`,i);if(t=e.data,"completed"===t.status)if(t.success)return{success:!0,data:t.data,warning:t.warning,error:t.error,sources:t?.sources||void 0};else throw new aS(`Failed to extract data. Error: ${t.error}`,e.status);if("failed"===t.status||"cancelled"===t.status)throw new aS(`Extract job ${t.status}. Error: ${t.error}`,e.status);await new Promise(e=>setTimeout(e,1e3))}while("completed"!==t.status)}else this.handleError(e,"extract")}catch(e){throw new aS(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async asyncExtract(e,t,a){let i,n=this.prepareHeaders(a),s={urls:e,...t};try{i=t?.schema instanceof t8.ZodType?ay(t.schema):t?.schema}catch(e){throw new aS("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 aS(e.message,500,e.response?.data?.details)}return{success:!1,error:"Internal server error."}}async getExtractStatus(e){try{let t=await this.getRequest(`${this.apiUrl}/v1/extract/${e}`,this.prepareHeaders());if(200===t.status)return t.data;this.handleError(t,"get extract status")}catch(e){throw new aS(e.message,500)}}prepareHeaders(e){return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,...e?{"x-idempotency-key":e}:{}}}postRequest(e,t,a){return tG.post(e,t,{headers:a,timeout:t?.timeout?t.timeout+5e3:void 0})}async getRequest(e,t){try{return await tG.get(e,{headers:t})}catch(e){if(e instanceof tK&&e.response)return e.response;throw e}}async deleteRequest(e,t){try{return await tG.delete(e,{headers:t})}catch(e){if(e instanceof tK&&e.response)return e.response;throw e}}async monitorJobStatus(e,t,a){try{let i=0;for(;;){let n=await this.getRequest(`${this.apiUrl}/v1/crawl/${e}`,t);if(200===n.status){i=0;let e=n.data;if("completed"===e.status)if("data"in e){let a=e.data;for(;"object"==typeof e&&"next"in e&&0!==a.length;)e=(n=await this.getRequest(e.next,t)).data,a=a.concat(e.data);return e.data=a,e}else throw new aS("Crawl job completed but no data was returned",500);if(["active","paused","pending","queued","waiting","scraping"].includes(e.status))a=Math.max(a,2),await new Promise(e=>setTimeout(e,1e3*a));else throw new aS(`Crawl job failed or was stopped. Status: ${e.status}`,500)}else++i>=3&&this.handleError(n,"check crawl status")}}catch(e){throw new aS(e,500)}}handleError(e,t){if([400,402,403,408,409,500].includes(e.status)){let a=e.data.error||"Unknown error occurred",i=e.data.details?` - ${JSON.stringify(e.data.details)}`:"";throw new aS(`Failed to ${t}. Status code: ${e.status}. Error: ${a}${i}`,e.status,e?.data?.details)}throw new aS(`Unexpected error occurred while trying to ${t}. Status code: ${e.status}`,e.status)}async deepResearch(e,t,a,i){try{let n,s=await this.asyncDeepResearch(e,t);if(!s.success||"error"in s)return{success:!1,error:"error"in s?s.error:"Unknown error"};if(!s.id)throw new aS("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(a&&n.activities){for(let e of n.activities.slice(r))a(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 aS(`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 aS(e.message,500,e.response?.data?.details)}}async asyncDeepResearch(e,t){let a=this.prepareHeaders(),i={query:e,...t};if(i?.jsonOptions?.schema){let e=i.jsonOptions.schema;try{e=ay(e)}catch(e){}i={...i,jsonOptions:{...i.jsonOptions,schema:e}}}try{let e=await this.postRequest(`${this.apiUrl}/v1/deep-research`,i,a);if(200===e.status)return e.data;this.handleError(e,"start deep research")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkDeepResearchStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("Deep research job not found",404);this.handleError(a,"check deep research status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async __deepResearch(e,t,a){try{let i,n=await this.__asyncDeepResearch(e,t);if(!n.success||"error"in n)return{success:!1,error:"error"in n?n.error:"Unknown error"};if(!n.id)throw new aS("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(a&&i.activities){for(let e of i.activities.slice(o))a(e);o=i.activities.length}if("completed"===i.status)return i;if("failed"===i.status)throw new aS(`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 aS(e.message,500,e.response?.data?.details)}}async __asyncDeepResearch(e,t){let a=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/deep-research`,{topic:e,...t},a);if(200===i.status)return i.data;this.handleError(i,"start deep research")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async __checkDeepResearchStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/deep-research/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("Deep research job not found",404);this.handleError(a,"check deep research status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async generateLLMsText(e,t){try{let a,i=await this.asyncGenerateLLMsText(e,t);if(!i.success||"error"in i)return{success:!1,error:"error"in i?i.error:"Unknown error"};if(!i.id)throw new aS("Failed to start LLMs.txt generation. No job ID returned.",500);let n=i.id;for(;;){if(a=await this.checkGenerateLLMsTextStatus(n),"error"in a&&!a.success||"completed"===a.status)return a;if("failed"===a.status)throw new aS(`LLMs.txt generation job ${a.status}. Error: ${a.error}`,500);if("processing"!==a.status)break;await new Promise(e=>setTimeout(e,2e3))}return{success:!1,error:"LLMs.txt generation job terminated unexpectedly"}}catch(e){throw new aS(e.message,500,e.response?.data?.details)}}async asyncGenerateLLMsText(e,t){let a=this.prepareHeaders();try{let i=await this.postRequest(`${this.apiUrl}/v1/llmstxt`,{url:e,...t},a);if(200===i.status)return i.data;this.handleError(i,"start LLMs.txt generation")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}async checkGenerateLLMsTextStatus(e){let t=this.prepareHeaders();try{let a=await this.getRequest(`${this.apiUrl}/v1/llmstxt/${e}`,t);if(200===a.status)return a.data;if(404===a.status)throw new aS("LLMs.txt generation job not found",404);this.handleError(a,"check LLMs.txt generation status")}catch(e){if(e.response?.data?.error)throw new aS(`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 aS(e.message,500)}return{success:!1,error:"Internal server error."}}},aR=class extends aw{ws;data;status;id;constructor(e,t){super(),this.id=e;let a=t.apiUrl.replace(/^http/,"ws");this.ws=new WebSocket(`${a}/v1/crawl/${e}`,t.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 t of(this.status=e.data.status,this.data.push(...e.data.data??[]),this.data))this.dispatchTypedEvent("document",new CustomEvent("document",{detail:{...t,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 t=JSON.parse(e.data);i(t)}catch(e){console.error("Error on message",e)}}).bind(this),this.ws.onclose=(e=>{try{let t=JSON.parse(e.reason);i(t)}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()}},a_=e.i(52376);let aE=async({firecrawlHandler:e,toolCall:t,assistant:a,thread:i,prisma:s})=>{let o;try{o=JSON.parse(t.function.arguments)}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Invalid arguments."}}let r=new ak({apiKey:e.apiKey});if(e.type===n.FirecrawlHandlerType.SCRAPE)try{let a=await r.scrapeUrl(o.url,{...e.body,...(0,a_.omit)(o,["url"]),formats:e.body.formats??["markdown"]});return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.CRAWL)try{let a=await r.crawlUrl(o.url,{...e.body,...(0,a_.omit)(o,["url"])});return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type===n.FirecrawlHandlerType.EXTRACT)try{let e=await r.scrapeUrl(o.url,{formats:["extract"],...(0,a_.omit)(o,["url"])});return{tool_call_id:t.id,output:JSON.stringify(e)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}if(e.type!==n.FirecrawlHandlerType.SEARCH)return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Firecrawl handler type: ${e.type}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:JSON.stringify({success:!1,message:"Invalid Firecrawl handler type"})};try{let a=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 a.json();return{tool_call_id:t.id,output:JSON.stringify(i)}}catch(e){return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Failed calling Firecrawl function: ${e.message}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}};e.s(["handleReplicate",()=>aA],26279);var aj=e.i(39775),aT=e.i(14905);let aO=(e,t)=>{if(aT.default.isArray(e))return t},aA=async({replicateHandler:e,toolCall:t,assistant:a,thread:i,prisma:s})=>{let o;try{o=JSON.parse(t.function.arguments)}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Invalid arguments."}}let r=new aj.default({auth:e.apiKey,useFileOutput:!1});if(e.type!==n.ReplicateHandlerType.RUN)return(0,u.createLog)({log:{requestMethod:n.LogRequestMethod.POST,requestRoute:n.LogRequestRoute.MESSAGES,level:n.LogLevel.ERROR,status:400,message:`Invalid Replicate handler type: ${e.type}`,workspaceId:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:JSON.stringify({success:!1,message:"Invalid Replicate handler type"})};try{let a=await r.run(e.identifier,((e,...t)=>aT.default.mergeWith(aT.default.cloneDeep(e),...t,aO))(e.body,o));return{tool_call_id:t.id,output:JSON.stringify(a)}}catch(e){return(0,u.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:a.workspaceId,assistantId:a.id,threadId:i.id},prisma:s}),{tool_call_id:t.id,output:"Function call failed."}}};e.s(["createThread",()=>aL],96227);let aP=({assistant:e})=>e.initialMessages.map(t=>({role:(({message:e,assistant:t})=>(0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:t.storageProviderType})?e.role.toLowerCase():e.role)({message:t,assistant:e}),content:t.content,attachments:t.attachments,metadata:t.metadata}));e.s(["serializeMetadata",()=>aI],10671);let aI=({variables:e,workspaceId:t,prisma:a})=>{let i={};for(let[s,o]of Object.entries(e))try{i[s]=String(o)}catch(e){(0,u.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:t},prisma:a})}return i},aL=async({client:e,assistant:t,prisma:a,variables:i={}})=>{let o,r=aI({variables:i,workspaceId:t.workspaceId,prisma:a});if((0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:t.storageProviderType})){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiThreadId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else if(t.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{openaiConversationId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else if(t.storageProviderType===n.StorageProviderType.AZURE_OPENAI_RESPONSES){let i=await a.thread.create({data:{assistantId:t.id,metadata:r}}),n=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,threadId:i.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{azureOpenaiConversationId:n.id,metadata:{assistantId:t.id,threadId:i.id,...r}}})}else{let i=await e.beta.threads.create({messages:aP({assistant:t}),metadata:{assistantId:t.id,...r}});o=await a.thread.update({where:{id:i.id},include:{assistant:{select:{storageProviderType:!0}}},data:{metadata:{assistantId:t.id,threadId:i.id,...r}}})}if(!o)throw Error("Failed to create thread");return o};e.s(["managedOpenaiThreadId",()=>aC],57623);var aq=e.i(95690);let aC=async({assistant:e,threadId:t,prisma:a})=>{let i=await (0,aq.assistantClientAdapter)({assistant:e,prisma:a}).beta.threads.create({metadata:{assistantId:e.id,threadId:t}});return await a.thread.update({where:{id:t},data:{...(0,s.isOpenaiAssistantsStorageProvider)({storageProviderType:e.storageProviderType})?{openaiThreadId:i.id}:{},...e.storageProviderType===n.StorageProviderType.OPENAI_RESPONSES?{openaiConversationId:i.id}:{},...e.storageProviderType===n.StorageProviderType.AZURE_OPENAI_RESPONSES?{azureOpenaiConversationId:i.id}:{}}}),i.id}},14554,e=>{"use strict";e.s(["storageThreadId",()=>i]);var t=e.i(29173),a=e.i(9394);let i=({thread:e})=>{if((0,a.isOpenaiAssistantsStorageProvider)({storageProviderType:e.assistant.storageProviderType}))return e.openaiThreadId;if(e.assistant.storageProviderType===t.StorageProviderType.OPENAI_RESPONSES)return e.openaiConversationId;if(e.assistant.storageProviderType===t.StorageProviderType.AZURE_OPENAI_RESPONSES)return e.azureOpenaiConversationId;if(e.assistant.storageProviderType===t.StorageProviderType.SUPERINTERFACE_CLOUD)return e.id;throw Error(`Invalid storage type: ${e.assistant.storageProviderType}`)}},91450,e=>{"use strict";e.s(["enqueueJson",()=>r,"optimisticId",()=>n,"serializeMessage",()=>o],91450);var t=e.i(62371);e.i(14905);var a=e.i(52376);function i(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var i in a)e[i]=a[i]}return e}!function e(t,a){function n(e,n,s){if("undefined"!=typeof document){"number"==typeof(s=i({},a,s)).expires&&(s.expires=new Date(Date.now()+864e5*s.expires)),s.expires&&(s.expires=s.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var r in s)s[r]&&(o+="; "+r,!0!==s[r]&&(o+="="+s[r].split(";")[0]));return document.cookie=e+"="+t.write(n,e)+o}}return Object.create({set:n,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var a=document.cookie?document.cookie.split("; "):[],i={},n=0;n<a.length;n++){var s=a[n].split("="),o=s.slice(1).join("=");try{var r=decodeURIComponent(s[0]);if(i[r]=t.read(o,r),e===r)break}catch(e){}}return e?i[e]:i}},remove:function(e,t){n(e,"",i({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,i({},this.attributes,t))},withConverter:function(t){return e(i({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(a)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});var n=function(){return"-".concat((0,t.uid)(24))},s=function(e){var t=e.runStep;return(0,a.pick)(t,["id","run_id","step_details","completed_at","cancelled_at","failed_at","status"])},o=function(e){var t,a,i=e.message;return{id:i.id,role:i.role,created_at:i.created_at,content:i.content,run_id:i.run_id,assistant_id:i.assistant_id,thread_id:i.thread_id,attachments:i.attachments,metadata:i.metadata,runSteps:(null!=(t=i.runSteps)?t:[]).map(function(e){return s({runStep:e})}),status:null!=(a=i.status)?a:"completed"}},r=function(e){var t=e.controller,a=e.value;return t.enqueue(new TextEncoder().encode(JSON.stringify(a)))}},39713,e=>{"use strict";e.s(["handleToolCall",()=>G],39713);var t=e.i(29173),a=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:t,messageResponse:a,onThreadMessageCompleted:i=()=>{},onThreadRunStepCompleted:n=()=>{},controller:s,prisma:o})=>{if(!(0,d.validate)(t.id))return;let r=await o.runStep.findFirst({where:{runId:t.id},orderBy:{createdAt:"desc"}}),c=t.required_action?.submit_tool_outputs.tool_calls.findIndex(t=>t.id===e.id)??0;for await(let o of a){let a=JSON.parse(Buffer.from(o).toString("utf-8"));"thread.message.delta"===a.event&&(0,m.enqueueJson)({controller:s,value:{event:"thread.run.step.delta",data:{object:"thread.run.step.delta",run_id:t.id,id:r?.id??"1",delta:{step_details:{type:"tool_calls",tool_calls:[{id:e.id,type:"function",index:c,function:{output:f({data:a.data})}}]}}}}}),"thread.message.completed"===a.event&&i({message:a.data}),"thread.run.step.completed"===a.event&&n({runStep:a.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 t=setTimeout(()=>{e("Function call timed out")},6e4),a=async()=>{let n=await y.redis.get(`submit-client-tool-outputs:output:${i.id}`);null===n?setTimeout(a,500):(clearTimeout(t),await y.redis.del(`submit-client-tool-outputs:pending:${i.id}`),await y.redis.del(`submit-client-tool-outputs:output:${i.id}`),e(n))};a()});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 A=({toolCall:e,assistant:i,thread:n,prisma:s})=>{let o={};try{o=JSON.parse(e.function.arguments||"{}")}catch(e){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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}},P=async({thread:e,assistant:i,keyTemplate:n,prisma:s})=>{let o=[],r=(n||"").replace(/{{\s*([\w-]+)\s*}}/g,(t,a)=>a in(e.metadata||{})?String(e.metadata[a]):"threadId"===a?e.id:"assistantId"===a?i.id:(o.push(a),`{{${a}}}`));if(o.length){let n=`Missing variables in key template: ${o.join(", ")}`;return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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 I=e.i(60172),L=e.i(75637),q=e.i(65074);let C=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=A({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=R.createTaskToolSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await P({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.id,output:l};if(!(0,k.validateSchedule)(r.schedule))return{tool_call_id:t.id,output:"Invalid schedule."};let u=p??"";try{await (0,L.ensureTaskSchedule)({prisma:n,threadId:i.id,key:u,schedule:r.schedule})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:t.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,I.scheduleTask)({task:d,prisma:n}),{tool_call_id:t.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}},F=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=A({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=R.listTasksSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let{ok:r,key:c,error:p}=await P({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!r)return{tool_call_id:t.id,output:p};let l=await n.task.findMany({where:{key:c,thread:{assistant:{workspaceId:a.workspaceId}}},orderBy:{createdAt:"desc"}});return{tool_call_id:t.id,output:JSON.stringify({tasks:l.map(e=>(0,S.serializeTask)({task:e}))})}};var M=e.i(29325);let U=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=A({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=R.updateTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await P({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.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:t.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:a.workspaceId}}}});if(!d)return{tool_call_id:t.id,output:"Task not found."};let m=r.key??d.key??"",f=r.schedule??d.schedule;try{await (0,L.ensureTaskSchedule)({prisma:n,threadId:d.threadId,key:m,schedule:f,excludeTaskId:d.id})}catch(e){if(e instanceof q.TaskScheduleConflictError)return{tool_call_id:t.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:a.workspaceId}}},data:u});return await (0,I.scheduleTask)({task:h,prisma:n}),{tool_call_id:t.id,output:JSON.stringify({task:(0,S.serializeTask)({task:h})})}},N=async({taskHandler:e,toolCall:t,assistant:a,thread:i,prisma:n})=>{let s=A({toolCall:t,assistant:a,thread:i,prisma:n});if(!s.ok)return{tool_call_id:t.id,output:s.error};let o=R.deleteTaskSchema.safeParse(s.args);if(!o.success)return{tool_call_id:t.id,output:o.error.toString()};let r=o.data,{ok:c,key:p,error:l}=await P({thread:i,assistant:a,keyTemplate:e.keyTemplate,prisma:n});if(!c)return{tool_call_id:t.id,output:l};let u=await n.task.findFirst({where:{id:r.taskId,key:p,thread:{assistant:{workspaceId:a.workspaceId}}}});if(!u)return{tool_call_id:t.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:t.id,output:JSON.stringify({task:(0,S.serializeTask)({task:d})})}};var $=e.i(70151),z=e.i(10273);let B=async({assistant:e,toolCall:t,thread:a,prisma:i})=>{let n=null;for(let s of e.mcpServers){if(n)break;let{mcpConnection:o}=await (0,$.connectMcpServer)({mcpServer:s,thread:a,assistant:e,prisma:i});if(!(await o.client.listTools()).tools.find(e=>e.name===t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.REQUEST)return d.handler.requestHandler?(0,n.handleRequest)({requestHandler:d.handler.requestHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.FIRECRAWL)return d.handler.firecrawlHandler?(0,s.handleFirecrawl)({firecrawlHandler:d.handler.firecrawlHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.REPLICATE)return d.handler.replicateHandler?(0,o.handleReplicate)({replicateHandler:d.handler.replicateHandler,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.ASSISTANT)return d.handler.assistantHandler?b({assistantHandler:d.handler.assistantHandler,toolCall:r,controller:c,run:p,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.CREATE_TASK){let i=d.handler.createTaskHandler;return i?C({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.LIST_TASKS){let i=d.handler.listTasksHandler;return i?F({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.UPDATE_TASK){let i=d.handler.updateTaskHandler;return i?U({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.HandlerType.DELETE_TASK){let i=d.handler.deleteTaskHandler;return i?N({taskHandler:i,toolCall:r,assistant:e,thread:l,prisma:u}):((0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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===t.ToolType.COMPUTER_USE);if(!o||!o.computerUseTool||!o.computerUseTool.mcpServer)return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,$.connectMcpServer)({thread:n,assistant:e,mcpServer:o.computerUseTool.mcpServer,prisma:s});try{let a=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 t=(({mcpServerToolOutput:e})=>e.content.find(e=>"image"===e.type))({mcpServerToolOutput:e});return t?`data:${t.mimeType};base64,${t.data}`:null})({mcpServerToolOutput:a});if(!s)return{tool_call_id:i.id,output:a.structuredContent??a.content??"",acknowledged_safety_checks:n};return{tool_call_id:i.id,output:(({assistant:e,imageUrl:a})=>e.modelProvider.type===t.ModelProviderType.ANTHROPIC?[{type:"image",source:{type:"base64",media_type:"image/png",data:a.split(",")[1]}}]:JSON.stringify({type:"computer_screenshot",image_url:a}))({imageUrl:s,assistant:e}),acknowledged_safety_checks:n}}catch(o){return(0,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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,a.createLog)({log:{requestMethod:t.LogRequestMethod.POST,requestRoute:t.LogRequestRoute.MESSAGES,level:t.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=%5Broot-of-the-server%5D__ccec8f9e._.js.map