@decocms/mesh 1.0.4 → 1.0.6

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 (104) hide show
  1. package/dist/client/assets/{AlertCircle-D0nDWFmW.js → AlertCircle-BpngO4aw.js} +1 -1
  2. package/dist/client/assets/{ArrowLeft-Dy5EiaSz.js → ArrowLeft-DnNeLtGd.js} +1 -1
  3. package/dist/client/assets/{Calendar-BJxxu5C2.js → Calendar-D9128Zt6.js} +1 -1
  4. package/dist/client/assets/{CheckCircle-CIZ-G0cr.js → CheckCircle-pvl06c1v.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-BaUXzk6S.js → ChevronDown-DDObtPy0.js} +1 -1
  6. package/dist/client/assets/{Clock-ByLvVVaa.js → Clock-Bhch8Dmk.js} +1 -1
  7. package/dist/client/assets/{Copy01-qQVvX-ag.js → Copy01-D0UvfCIS.js} +1 -1
  8. package/dist/client/assets/{CpuChip02-D94fV7L1.js → CpuChip02-CHkUken-.js} +1 -1
  9. package/dist/client/assets/{DotsVertical-Bwr84gxu.js → DotsVertical-Dx8byzRL.js} +1 -1
  10. package/dist/client/assets/{File06-wdks9UDf.js → File06-BhKX70V2.js} +1 -1
  11. package/dist/client/assets/{GitBranch01-BEddVBkT.js → GitBranch01-B4CzhWKg.js} +1 -1
  12. package/dist/client/assets/{Inbox01-Z0aW0--W.js → Inbox01-C3XiWYYM.js} +1 -1
  13. package/dist/client/assets/{InfoCircle-DlRKJuiF.js → InfoCircle-RxSckwOE.js} +1 -1
  14. package/dist/client/assets/{Key01-Dnk7VSvJ.js → Key01-Df_FMcod.js} +1 -1
  15. package/dist/client/assets/{LinkExternal01-9eWvk-rl.js → LinkExternal01-BKGS1ajv.js} +1 -1
  16. package/dist/client/assets/{Loading01-DimFEMf8.js → Loading01-BKEuP0BH.js} +1 -1
  17. package/dist/client/assets/{Plus-Dq2PT6Y9.js → Plus-QVXsH8wr.js} +1 -1
  18. package/dist/client/assets/{SearchMd-B721Dhru.js → SearchMd-C9aO1pvs.js} +1 -1
  19. package/dist/client/assets/{Trash01-k3joih0I.js → Trash01-Dz5QBjzt.js} +1 -1
  20. package/dist/client/assets/{Upload01-CaIFJ1wc.js → Upload01-D2Q9ozBI.js} +1 -1
  21. package/dist/client/assets/{X-DLJOSrBL.js → X-B6099MPR.js} +1 -1
  22. package/dist/client/assets/{XClose-CE9-wvzR.js → XClose-DSJxdHjH.js} +1 -1
  23. package/dist/client/assets/{alert-dialog-DSXTwITs.js → alert-dialog-Bsv_icPD.js} +1 -1
  24. package/dist/client/assets/{auth-DW5xyVSX.js → auth-DRlnk2xb.js} +1 -1
  25. package/dist/client/assets/{auth-catchall-lLRsq2bv.js → auth-catchall-BBXFE5-p.js} +1 -1
  26. package/dist/client/assets/{avatar-Cdwojtd9.js → avatar-DBXvQJLu.js} +1 -1
  27. package/dist/client/assets/{badge-BKAVZN76.js → badge-EdnCME49.js} +1 -1
  28. package/dist/client/assets/{button-Cbx1psx0.js → button-BBbnP-v9.js} +1 -1
  29. package/dist/client/assets/{card-DPj2Jhqd.js → card-oQzKnd4e.js} +1 -1
  30. package/dist/client/assets/{checkbox-zcMnPIpA.js → checkbox-AVyYmXWI.js} +1 -1
  31. package/dist/client/assets/{collection-detail-ChLk2o5y.js → collection-detail-CnS3NqzF.js} +1 -1
  32. package/dist/client/assets/{collection-display-button-CASXIcfv.js → collection-display-button-DVo3HJTi.js} +1 -1
  33. package/dist/client/assets/{collection-header-DYCWQd6V.js → collection-header-BpXu8Vzd.js} +1 -1
  34. package/dist/client/assets/{collection-page-C7DppZNC.js → collection-page-BDOciB5D.js} +1 -1
  35. package/dist/client/assets/{collection-search-CkrsYVHK.js → collection-search-Clscyxb6.js} +1 -1
  36. package/dist/client/assets/{collection-table-wrapper-DYHssETe.js → collection-table-wrapper-DrJQ8qIR.js} +1 -1
  37. package/dist/client/assets/{connection-card-Ccv2RGnA.js → connection-card-DNEpv4P8.js} +1 -1
  38. package/dist/client/assets/{connection-detail-C4ySrNnu.js → connection-detail-DJQ5DpK4.js} +1 -1
  39. package/dist/client/assets/{connections-1K9OuPLG.js → connections-B8KLLrqT.js} +1 -1
  40. package/dist/client/assets/{core-CDKYwt4t.js → core-B2H4SHem.js} +1 -1
  41. package/dist/client/assets/{create-organization-dialog-CMqfWkSO.js → create-organization-dialog-BgaQBiov.js} +1 -1
  42. package/dist/client/assets/{dialog-b1ZSD0yQ.js → dialog-zSQgybFt.js} +1 -1
  43. package/dist/client/assets/{dropdown-menu-CDqLiYRK.js → dropdown-menu-DjQlOq7B.js} +1 -1
  44. package/dist/client/assets/{error-boundary-Kdc9g4VW.js → error-boundary-DnOs9ptq.js} +1 -1
  45. package/dist/client/assets/{extract-connection-data-C1-YxFs5.js → extract-connection-data-C4TbfE2g.js} +1 -1
  46. package/dist/client/assets/{form-8svTn9hb.js → form-DbXTocCZ.js} +1 -1
  47. package/dist/client/assets/{formatDistanceToNow-CUwQS-xD.js → formatDistanceToNow-DXvTo8fz.js} +1 -1
  48. package/dist/client/assets/{gateway-detail-hfG6iBJG.js → gateway-detail-D_Eeu8GA.js} +1 -1
  49. package/dist/client/assets/{gateways-C_zZYP4A.js → gateways-CpOqHGPf.js} +1 -1
  50. package/dist/client/assets/{home-BjWql1uD.js → home-DH79MOVs.js} +1 -1
  51. package/dist/client/assets/{index-C-wz9XDG.js → index-CGQ5MQzC.js} +1 -1
  52. package/dist/client/assets/index-CLqXtDUO.js +1 -0
  53. package/dist/client/assets/{index-CUKSaF48.js → index-DIMg3McT.js} +2 -2
  54. package/dist/client/assets/{index-BwIl7ggr.js → index-DmnZvHNs.js} +1 -1
  55. package/dist/client/assets/{input-H6VT8E5Y.js → input-DuLixXzs.js} +1 -1
  56. package/dist/client/assets/json-BR-1n4UW.js +1 -0
  57. package/dist/client/assets/{json-syntax-highlighter-BVdiHUZ0.js → json-syntax-highlighter-DzeQqB3N.js} +2 -2
  58. package/dist/client/assets/{layout-BQd1I6xa.js → layout-BXMoCa5p.js} +1 -1
  59. package/dist/client/assets/{lazy-highlighter-B5RwvSZU.js → lazy-highlighter-DlCJvY4E.js} +1 -1
  60. package/dist/client/assets/{localstorage-keys-DjtPyJdf.js → localstorage-keys-DUsAqGtJ.js} +1 -1
  61. package/dist/client/assets/{login-DzimQUQo.js → login-DzOOW3NK.js} +1 -1
  62. package/dist/client/assets/{mcp-oauth-B_sv-TkE.js → mcp-oauth-u1f9o4pW.js} +1 -1
  63. package/dist/client/assets/{members-CRouHlMm.js → members-BcgmC3Q2.js} +1 -1
  64. package/dist/client/assets/{monitoring-CcJvqpst.js → monitoring-Ci-6RfIl.js} +1 -1
  65. package/dist/client/assets/{oauth-callback-BPKJmJXt.js → oauth-callback-D7HKnm8-.js} +1 -1
  66. package/dist/client/assets/{page-D5Fp2CZa.js → page-D8EXKf1f.js} +1 -1
  67. package/dist/client/assets/{popover-Bk6CGVAU.js → popover-CSmu1XQf.js} +1 -1
  68. package/dist/client/assets/prism-light-DdlubWED.js +1 -0
  69. package/dist/client/assets/{resizable-DmzyZoqu.js → resizable-DaIbtpXr.js} +4 -4
  70. package/dist/client/assets/{resource-tabs-CHwi6mUQ.js → resource-tabs-UHT4jRlB.js} +1 -1
  71. package/dist/client/assets/{schema-Bmw1udN9.js → schema-DLujv0-N.js} +1 -1
  72. package/dist/client/assets/{select-CMEQTzOd.js → select-yhQhGgIP.js} +1 -1
  73. package/dist/client/assets/{settings-cNvY-rFi.js → settings-LFw_pLDl.js} +1 -1
  74. package/dist/client/assets/{shell-layout-BU-xHCbm.js → shell-layout-BcDSRee_.js} +1 -1
  75. package/dist/client/assets/{spinner-Cla_bqD5.js → spinner-BZx2tm9C.js} +1 -1
  76. package/dist/client/assets/{store-DOUbL8HI.js → store-QDtOTGzB.js} +1 -1
  77. package/dist/client/assets/{store-app-detail-CLx7Tiyl.js → store-app-detail-gbykHeE1.js} +1 -1
  78. package/dist/client/assets/{switch-DkW26u3q.js → switch-7ykyI8eT.js} +1 -1
  79. package/dist/client/assets/{tools-list-DSipnNXa.js → tools-list-Cg7Vdfai.js} +1 -1
  80. package/dist/client/assets/{tooltip-6DkXiGB3.js → tooltip-C8Lb1JlD.js} +1 -1
  81. package/dist/client/assets/{types-DY58s8k_.js → types-mJaNg2R7.js} +1 -1
  82. package/dist/client/assets/{use-binding-CTox1Niq.js → use-binding-DGE2EQtT.js} +1 -1
  83. package/dist/client/assets/{use-connection-Cj_N-56I.js → use-connection-CdhlvEhz.js} +1 -1
  84. package/dist/client/assets/{use-connection-resources-Er78LVOz.js → use-connection-resources-DLA7YNHa.js} +1 -1
  85. package/dist/client/assets/{use-gateway-B64MZgV5.js → use-gateway-DGSuI4Pr.js} +1 -1
  86. package/dist/client/assets/{use-list-state-D7R4e82G.js → use-list-state-BCOB_OIi.js} +1 -1
  87. package/dist/client/assets/{use-mcp-DgPyQ4aq.js → use-mcp-i7kSvKqD.js} +1 -1
  88. package/dist/client/assets/{use-members-BC7usg5N.js → use-members-C4WkWKg7.js} +1 -1
  89. package/dist/client/assets/{use-mobile-Bi0wd_6D.js → use-mobile-DJp6G0-T.js} +1 -1
  90. package/dist/client/assets/{use-organization-settings-HuuZ3X-G.js → use-organization-settings-Dhw1as1Y.js} +1 -1
  91. package/dist/client/assets/{use-tool-call-DP5wwhCb.js → use-tool-call-ZoYxiLnk.js} +1 -1
  92. package/dist/client/assets/useQuery-CMnzSYEG.js +1 -0
  93. package/dist/client/assets/utils-B0Sj2akX.js +1 -0
  94. package/dist/client/assets/{view-mode-toggle-BLmASoqb.js → view-mode-toggle-CgM7sjNw.js} +1 -1
  95. package/dist/client/assets/{well-known-mcp-C14XnQVT.js → well-known-mcp-59JQWa69.js} +1 -1
  96. package/dist/client/index.html +1 -1
  97. package/dist/server/cli.js +3 -3
  98. package/dist/server/server.js +2 -2
  99. package/package.json +1 -1
  100. package/dist/client/assets/index-De7NV5ze.js +0 -1
  101. package/dist/client/assets/json-DXDmXnbb.js +0 -1
  102. package/dist/client/assets/prism-light-rMaH_Wpf.js +0 -1
  103. package/dist/client/assets/useQuery-CBbBOkDY.js +0 -1
  104. package/dist/client/assets/utils-D1z8mp5k.js +0 -1
@@ -1079,7 +1079,7 @@ ${W}
1079
1079
  ${$}`.trim()}_serializeSingularDataPoint(Q,X,J){let G="";Q=FQ0(Q,X);let{value:Y,attributes:W}=J,$=(0,S$1.hrTimeToMilliseconds)(J.endTime);return G+=Oy(Q,W,Y,this._appendTimestamp?$:void 0,this._additionalAttributes),G}_serializeHistogramDataPoint(Q,X,J){let G="";Q=FQ0(Q,X);let{attributes:Y,value:W}=J,$=(0,S$1.hrTimeToMilliseconds)(J.endTime);for(let F of["count","sum"]){let q=W[F];if(q!=null)G+=Oy(Q+"_"+F,Y,q,this._appendTimestamp?$:void 0,this._additionalAttributes)}let K=0,Z=W.buckets.counts.entries(),H=!1;for(let[F,q]of Z){K+=q;let V=W.buckets.boundaries[F];if(V===void 0&&H)break;if(V===1/0)H=!0;G+=Oy(Q+"_bucket",Y,K,this._appendTimestamp?$:void 0,Object.assign({},this._additionalAttributes??{},{le:V===void 0||V===1/0?"+Inf":String(V)}))}return G}_serializeResource(Q){if(this._withoutTargetInfo===!0)return"";let X="target_info",J=`# HELP ${X} Target metadata`,G=`# TYPE ${X} gauge`,Y=Oy(X,Q.attributes,1).trim();return`${J}
1080
1080
  ${G}
1081
1081
  ${Y}
1082
- `}}_$1.PrometheusSerializer=k$1});var b$1=I((h$1)=>{Object.defineProperty(h$1,"__esModule",{value:!0});h$1.PrometheusExporter=void 0;var SM=z1(),Py4=W4(),zQ0=nW(),My4=A0("http"),Ty4=VQ0(),Ay4=A0("url");class $$ extends zQ0.MetricReader{static DEFAULT_OPTIONS={host:void 0,port:9464,endpoint:"/metrics",prefix:"",appendTimestamp:!1,withResourceConstantLabels:void 0,withoutTargetInfo:!1};_host;_port;_baseUrl;_endpoint;_server;_prefix;_appendTimestamp;_serializer;_startServerPromise;constructor(Q={},X=()=>{}){super({aggregationSelector:(Y)=>{return{type:zQ0.AggregationType.DEFAULT}},aggregationTemporalitySelector:(Y)=>zQ0.AggregationTemporality.CUMULATIVE,metricProducers:Q.metricProducers});this._host=Q.host||process.env.OTEL_EXPORTER_PROMETHEUS_HOST||$$.DEFAULT_OPTIONS.host,this._port=Q.port||Number(process.env.OTEL_EXPORTER_PROMETHEUS_PORT)||$$.DEFAULT_OPTIONS.port,this._prefix=Q.prefix||$$.DEFAULT_OPTIONS.prefix,this._appendTimestamp=typeof Q.appendTimestamp==="boolean"?Q.appendTimestamp:$$.DEFAULT_OPTIONS.appendTimestamp;let J=Q.withResourceConstantLabels||$$.DEFAULT_OPTIONS.withResourceConstantLabels,G=Q.withoutTargetInfo||$$.DEFAULT_OPTIONS.withoutTargetInfo;if(this._server=(0,My4.createServer)(this._requestHandler).unref(),this._serializer=new Ty4.PrometheusSerializer(this._prefix,this._appendTimestamp,J,G),this._baseUrl=`http://${this._host}:${this._port}/`,this._endpoint=(Q.endpoint||$$.DEFAULT_OPTIONS.endpoint).replace(/^([^/])/,"/$1"),Q.preventServerStart!==!0)this.startServer().then(X,(Y)=>{SM.diag.error(Y),X(Y)});else if(X)queueMicrotask(X)}async onForceFlush(){}onShutdown(){return this.stopServer()}stopServer(){if(!this._server)return SM.diag.debug("Prometheus stopServer() was called but server was never started."),Promise.resolve();else return new Promise((Q)=>{this._server.close((X)=>{if(!X)SM.diag.debug("Prometheus exporter was stopped");else if(X.code!=="ERR_SERVER_NOT_RUNNING")(0,Py4.globalErrorHandler)(X);Q()})})}startServer(){return this._startServerPromise??=new Promise((Q,X)=>{this._server.once("error",X),this._server.listen({port:this._port,host:this._host},()=>{SM.diag.debug(`Prometheus exporter server started: ${this._host}:${this._port}/${this._endpoint}`),Q()})}),this._startServerPromise}getMetricsRequestHandler(Q,X){this._exportMetrics(X)}_requestHandler=(Q,X)=>{if(Q.url!=null&&new Ay4.URL(Q.url,this._baseUrl).pathname===this._endpoint)this._exportMetrics(X);else this._notFound(X)};_exportMetrics=(Q)=>{Q.statusCode=200,Q.setHeader("content-type","text/plain"),this.collect().then((X)=>{let{resourceMetrics:J,errors:G}=X;if(G.length)SM.diag.error("PrometheusExporter: metrics collection errors",...G);Q.end(this._serializer.serialize(J))},(X)=>{Q.end(`# failed to export metrics: ${X}`)})};_notFound=(Q)=>{Q.statusCode=404,Q.end()}}h$1.PrometheusExporter=$$});var UQ0=I((Ly)=>{Object.defineProperty(Ly,"__esModule",{value:!0});Ly.PrometheusSerializer=Ly.PrometheusExporter=void 0;var Ey4=b$1();Object.defineProperty(Ly,"PrometheusExporter",{enumerable:!0,get:function(){return Ey4.PrometheusExporter}});var jy4=VQ0();Object.defineProperty(Ly,"PrometheusSerializer",{enumerable:!0,get:function(){return jy4.PrometheusSerializer}})});var wy,x$1,g$1,u$1,NQ0,Cy4,vM,m$1;var Py=_(()=>{wy=y4(z1(),1),x$1=y4(R$1(),1),g$1=y4(UQ0(),1),u$1=y4(l50(),1),NQ0=new g$1.PrometheusExporter({preventServerStart:!0}),Cy4=new x$1.NodeSDK({serviceName:"mcp-mesh",traceExporter:new u$1.OTLPTraceExporter({url:process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT||process.env.OTEL_EXPORTER_OTLP_ENDPOINT||"http://localhost:4318/v1/traces"}),metricReader:NQ0});Cy4.start();vM=wy.trace.getTracer("mcp-mesh","1.0.0"),m$1=wy.metrics.getMeter("mcp-mesh","1.0.0")});var BQ0=(Q,X,J)=>{return(G,Y)=>{let W=-1;return $(0);async function $(K){if(K<=W)throw Error("next() called multiple times");W=K;let Z,H=!1,F;if(Q[K])F=Q[K][0][0],G.req.routeIndex=K;else F=K===Q.length&&Y||void 0;if(F)try{Z=await F(G,()=>$(K+1))}catch(q){if(q instanceof Error&&X)G.error=q,Z=await X(q,G),H=!0;else throw q}else if(G.finalized===!1&&J)Z=await J(G);if(Z&&(G.finalized===!1||H))G.res=Z;return G}}};var l$1=()=>{};var OQ0;var DQ0=_(()=>{OQ0=class extends Error{res;status;constructor(Q=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Q}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var d$1;var p$1=_(()=>{d$1=Symbol()});async function Ry4(Q,X){let J=await Q.formData();if(J)return Sy4(J,X);return{}}function Sy4(Q,X){let J=Object.create(null);if(Q.forEach((G,Y)=>{if(!(X.all||Y.endsWith("[]")))J[Y]=G;else vy4(J,Y,G)}),X.dot)Object.entries(J).forEach(([G,Y])=>{if(G.includes("."))ky4(J,G,Y),delete J[G]});return J}var c$1=async(Q,X=Object.create(null))=>{let{all:J=!1,dot:G=!1}=X,W=(Q instanceof My?Q.raw.headers:Q.headers).get("Content-Type");if(W?.startsWith("multipart/form-data")||W?.startsWith("application/x-www-form-urlencoded"))return Ry4(Q,{all:J,dot:G});return{}},vy4=(Q,X,J)=>{if(Q[X]!==void 0)if(Array.isArray(Q[X]))Q[X].push(J);else Q[X]=[Q[X],J];else if(!X.endsWith("[]"))Q[X]=J;else Q[X]=[J]},ky4=(Q,X,J)=>{let G=Q,Y=X.split(".");Y.forEach((W,$)=>{if($===Y.length-1)G[W]=J;else{if(!G[W]||typeof G[W]!=="object"||Array.isArray(G[W])||G[W]instanceof File)G[W]=Object.create(null);G=G[W]}})};var n$1=_(()=>{LQ0()});var PQ0=(Q)=>{let X=Q.split("/");if(X[0]==="")X.shift();return X},i$1=(Q)=>{let{groups:X,path:J}=_y4(Q),G=PQ0(J);return yy4(G,X)},_y4=(Q)=>{let X=[];return Q=Q.replace(/\{[^}]+\}/g,(J,G)=>{let Y=`@${G}`;return X.push([Y,J]),Y}),{groups:X,path:Q}},yy4=(Q,X)=>{for(let J=X.length-1;J>=0;J--){let[G]=X[J];for(let Y=Q.length-1;Y>=0;Y--)if(Q[Y].includes(G)){Q[Y]=Q[Y].replace(G,X[J][1]);break}}return Q},Ty,r$1=(Q,X)=>{if(Q==="*")return"*";let J=Q.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(J){let G=`${Q}#${X}`;if(!Ty[G])if(J[2])Ty[G]=X&&X[0]!==":"&&X[0]!=="*"?[G,J[1],new RegExp(`^${J[2]}(?=/${X})`)]:[Q,J[1],new RegExp(`^${J[2]}$`)];else Ty[G]=[Q,J[1],!0];return Ty[G]}return null},Ay=(Q,X)=>{try{return X(Q)}catch{return Q.replace(/(?:%[0-9A-Fa-f]{2})+/g,(J)=>{try{return X(J)}catch{return J}})}},hy4=(Q)=>Ay(Q,decodeURI),MQ0=(Q)=>{let X=Q.url,J=X.indexOf("/",X.indexOf(":")+4),G=J;for(;G<X.length;G++){let Y=X.charCodeAt(G);if(Y===37){let W=X.indexOf("?",G),$=X.slice(J,W===-1?void 0:W);return hy4($.includes("%25")?$.replace(/%25/g,"%2525"):$)}else if(Y===63)break}return X.slice(J,G)},a$1=(Q)=>{let X=MQ0(Q);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},uF=(Q,X,...J)=>{if(J.length)X=uF(X,...J);return`${Q?.[0]==="/"?"":"/"}${Q}${X==="/"?"":`${Q?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},Ey=(Q)=>{if(Q.charCodeAt(Q.length-1)!==63||!Q.includes(":"))return null;let X=Q.split("/"),J=[],G="";return X.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))G+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(J.length===0&&G==="")J.push("/");else J.push(G);let W=Y.replace("?","");G+="/"+W,J.push(G)}else G+="/"+Y}),J.filter((Y,W,$)=>$.indexOf(Y)===W)},wQ0=(Q)=>{if(!/[%+]/.test(Q))return Q;if(Q.indexOf("+")!==-1)Q=Q.replace(/\+/g," ");return Q.indexOf("%")!==-1?Ay(Q,TQ0):Q},o$1=(Q,X,J)=>{let G;if(!J&&X&&!/[%+]/.test(X)){let $=Q.indexOf("?",8);if($===-1)return;if(!Q.startsWith(X,$+1))$=Q.indexOf(`&${X}`,$+1);while($!==-1){let K=Q.charCodeAt($+X.length+1);if(K===61){let Z=$+X.length+2,H=Q.indexOf("&",Z);return wQ0(Q.slice(Z,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";$=Q.indexOf(`&${X}`,$+1)}if(G=/[%+]/.test(Q),!G)return}let Y={};G??=/[%+]/.test(Q);let W=Q.indexOf("?",8);while(W!==-1){let $=Q.indexOf("&",W+1),K=Q.indexOf("=",W);if(K>$&&$!==-1)K=-1;let Z=Q.slice(W+1,K===-1?$===-1?void 0:$:K);if(G)Z=wQ0(Z);if(W=$,Z==="")continue;let H;if(K===-1)H="";else if(H=Q.slice(K+1,$===-1?void 0:$),G)H=wQ0(H);if(J){if(!(Y[Z]&&Array.isArray(Y[Z])))Y[Z]=[];Y[Z].push(H)}else Y[Z]??=H}return X?Y[X]:Y},s$1,t$1=(Q,X)=>{return o$1(Q,X,!0)},TQ0;var EN=_(()=>{Ty={},s$1=o$1,TQ0=decodeURIComponent});var e$1=(Q)=>Ay(Q,TQ0),My;var LQ0=_(()=>{DQ0();p$1();n$1();EN();My=class{raw;#Q;#X;routeIndex=0;path;bodyCache={};constructor(Q,X="/",J=[[]]){this.raw=Q,this.path=X,this.#X=J,this.#Q={}}param(Q){return Q?this.#J(Q):this.#Y()}#J(Q){let X=this.#X[0][this.routeIndex][1][Q],J=this.#W(X);return J&&/\%/.test(J)?e$1(J):J}#Y(){let Q={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let J of X){let G=this.#W(this.#X[0][this.routeIndex][1][J]);if(G!==void 0)Q[J]=/\%/.test(G)?e$1(G):G}return Q}#W(Q){return this.#X[1]?this.#X[1][Q]:Q}query(Q){return s$1(this.url,Q)}queries(Q){return t$1(this.url,Q)}header(Q){if(Q)return this.raw.headers.get(Q)??void 0;let X={};return this.raw.headers.forEach((J,G)=>{X[G]=J}),X}async parseBody(Q){return this.bodyCache.parsedBody??=await c$1(this,Q)}#G=(Q)=>{let{bodyCache:X,raw:J}=this,G=X[Q];if(G)return G;let Y=Object.keys(X)[0];if(Y)return X[Y].then((W)=>{if(Y==="json")W=JSON.stringify(W);return new Response(W)[Q]()});return X[Q]=J[Q]()};json(){return this.#G("text").then((Q)=>JSON.parse(Q))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Q,X){this.#Q[Q]=X}valid(Q){return this.#Q[Q]}get url(){return this.raw.url}get method(){return this.raw.method}get[d$1](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Q]])=>Q)}get routePath(){return this.#X[0].map(([[,Q]])=>Q)[this.routeIndex].path}}});var QK1,fy4=(Q,X)=>{let J=new String(Q);return J.isEscaped=!0,J.callbacks=X,J},AQ0=async(Q,X,J,G,Y)=>{if(typeof Q==="object"&&!(Q instanceof String)){if(!(Q instanceof Promise))Q=Q.toString();if(Q instanceof Promise)Q=await Q}let W=Q.callbacks;if(!W?.length)return Promise.resolve(Q);if(Y)Y[0]+=Q;else Y=[Q];let $=Promise.all(W.map((K)=>K({phase:X,buffer:Y,context:G}))).then((K)=>Promise.all(K.filter(Boolean).map((Z)=>AQ0(Z,X,!1,G,Y))).then(()=>Y[0]));if(J)return fy4(await $,W);else return $};var XK1=_(()=>{QK1={Stringify:1,BeforeStream:2,Stream:3}});var by4="text/plain; charset=UTF-8",EQ0=(Q,X)=>{return{"Content-Type":Q,...X}},JK1=class{#Q;#X;env={};#J;finalized=!1;error;#Y;#W;#G;#K;#$;#H;#Z;#q;#V;constructor(Q,X){if(this.#Q=Q,X)this.#W=X.executionCtx,this.env=X.env,this.#H=X.notFoundHandler,this.#V=X.path,this.#q=X.matchResult}get req(){return this.#X??=new My(this.#Q,this.#V,this.#q),this.#X}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#Z??=new Headers})}set res(Q){if(this.#G&&Q){Q=new Response(Q.body,Q);for(let[X,J]of this.#G.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let G=this.#G.headers.getSetCookie();Q.headers.delete("set-cookie");for(let Y of G)Q.headers.append("set-cookie",Y)}else Q.headers.set(X,J)}}this.#G=Q,this.finalized=!0}render=(...Q)=>{return this.#$??=(X)=>this.html(X),this.#$(...Q)};setLayout=(Q)=>this.#K=Q;getLayout=()=>this.#K;setRenderer=(Q)=>{this.#$=Q};header=(Q,X,J)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let G=this.#G?this.#G.headers:this.#Z??=new Headers;if(X===void 0)G.delete(Q);else if(J?.append)G.append(Q,X);else G.set(Q,X)};status=(Q)=>{this.#Y=Q};set=(Q,X)=>{this.#J??=new Map,this.#J.set(Q,X)};get=(Q)=>{return this.#J?this.#J.get(Q):void 0};get var(){if(!this.#J)return{};return Object.fromEntries(this.#J)}#F(Q,X,J){let G=this.#G?new Headers(this.#G.headers):this.#Z??new Headers;if(typeof X==="object"&&"headers"in X){let W=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[$,K]of W)if($.toLowerCase()==="set-cookie")G.append($,K);else G.set($,K)}if(J)for(let[W,$]of Object.entries(J))if(typeof $==="string")G.set(W,$);else{G.delete(W);for(let K of $)G.append(W,K)}let Y=typeof X==="number"?X:X?.status??this.#Y;return new Response(Q,{status:Y,headers:G})}newResponse=(...Q)=>this.#F(...Q);body=(Q,X,J)=>this.#F(Q,X,J);text=(Q,X,J)=>{return!this.#Z&&!this.#Y&&!X&&!J&&!this.finalized?new Response(Q):this.#F(Q,X,EQ0(by4,J))};json=(Q,X,J)=>{return this.#F(JSON.stringify(Q),X,EQ0("application/json",J))};html=(Q,X,J)=>{let G=(Y)=>this.#F(Y,X,EQ0("text/html; charset=UTF-8",J));return typeof Q==="object"?AQ0(Q,QK1.Stringify,!1,{}).then(G):G(Q)};redirect=(Q,X)=>{let J=String(Q);return this.header("Location",!/[^\x00-\xFF]/.test(J)?J:encodeURI(J)),this.newResponse(null,X??302)};notFound=()=>{return this.#H??=()=>new Response,this.#H(this)}};var YK1=_(()=>{LQ0();XK1()});var Z8="ALL",GK1="all",WK1,jy="Can not add a route since the matcher is already built.",Iy;var mF=_(()=>{WK1=["get","post","put","delete","options","patch"],Iy=class extends Error{}});var $K1="__COMPOSED_HANDLER";var KK1=()=>{};var xy4=(Q)=>{return Q.text("404 Not Found",404)},ZK1=(Q,X)=>{if("getResponse"in Q){let J=Q.getResponse();return X.newResponse(J.body,J)}return console.error(Q),X.text("Internal Server Error",500)},HK1=class Q{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Q="/";routes=[];constructor(X={}){[...WK1,GK1].forEach((W)=>{this[W]=($,...K)=>{if(typeof $==="string")this.#Q=$;else this.#Y(W,this.#Q,$);return K.forEach((Z)=>{this.#Y(W,this.#Q,Z)}),this}}),this.on=(W,$,...K)=>{for(let Z of[$].flat()){this.#Q=Z;for(let H of[W].flat())K.map((F)=>{this.#Y(H.toUpperCase(),this.#Q,F)})}return this},this.use=(W,...$)=>{if(typeof W==="string")this.#Q=W;else this.#Q="*",$.unshift(W);return $.forEach((K)=>{this.#Y(Z8,this.#Q,K)}),this};let{strict:G,...Y}=X;Object.assign(this,Y),this.getPath=G??!0?X.getPath??MQ0:a$1}#X(){let X=new Q({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#J=this.#J,X.routes=this.routes,X}#J=xy4;errorHandler=ZK1;route(X,J){let G=this.basePath(X);return J.routes.map((Y)=>{let W;if(J.errorHandler===ZK1)W=Y.handler;else W=async($,K)=>(await BQ0([],J.errorHandler)($,()=>Y.handler($,K))).res,W[$K1]=Y.handler;G.#Y(Y.method,Y.path,W)}),this}basePath(X){let J=this.#X();return J._basePath=uF(this._basePath,X),J}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#J=X,this};mount(X,J,G){let Y,W;if(G)if(typeof G==="function")W=G;else if(W=G.optionHandler,G.replaceRequest===!1)Y=(Z)=>Z;else Y=G.replaceRequest;let $=W?(Z)=>{let H=W(Z);return Array.isArray(H)?H:[H]}:(Z)=>{let H=void 0;try{H=Z.executionCtx}catch{}return[Z.env,H]};Y||=(()=>{let Z=uF(this._basePath,X),H=Z==="/"?0:Z.length;return(F)=>{let q=new URL(F.url);return q.pathname=q.pathname.slice(H)||"/",new Request(q,F)}})();let K=async(Z,H)=>{let F=await J(Y(Z.req.raw),...$(Z));if(F)return F;await H()};return this.#Y(Z8,uF(X,"*"),K),this}#Y(X,J,G){X=X.toUpperCase(),J=uF(this._basePath,J);let Y={basePath:this._basePath,path:J,method:X,handler:G};this.router.add(X,J,[G,Y]),this.routes.push(Y)}#W(X,J){if(X instanceof Error)return this.errorHandler(X,J);throw X}#G(X,J,G,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#G(X,J,G,"GET")))();let W=this.getPath(X,{env:G}),$=this.router.match(Y,W),K=new JK1(X,{path:W,matchResult:$,env:G,executionCtx:J,notFoundHandler:this.#J});if($[0].length===1){let H;try{H=$[0][0][0][0](K,async()=>{K.res=await this.#J(K)})}catch(F){return this.#W(F,K)}return H instanceof Promise?H.then((F)=>F||(K.finalized?K.res:this.#J(K))).catch((F)=>this.#W(F,K)):H??this.#J(K)}let Z=BQ0($[0],this.errorHandler,this.#J);return(async()=>{try{let H=await Z(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#W(H,K)}})()}fetch=(X,...J)=>{return this.#G(X,J[1],J[0],X.method)};request=(X,J,G,Y)=>{if(X instanceof Request)return this.fetch(J?new Request(X,J):X,G,Y);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${uF("/",X)}`,J),G,Y)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#G(X.request,X,void 0,X.request.method))})}};var FK1=_(()=>{l$1();YK1();mF();KK1();EN()});function Cy(Q,X){let J=this.buildAllMatchers(),G=(Y,W)=>{let $=J[Y]||J[Z8],K=$[2][W];if(K)return K;let Z=W.match($[0]);if(!Z)return[[],kM];let H=Z.indexOf("",1);return[$[1][H],Z]};return this.match=G,G(Q,X)}var kM;var jQ0=_(()=>{mF();kM=[]});function uy4(Q,X){if(Q.length===1)return X.length===1?Q<X?-1:1:-1;if(X.length===1)return 1;if(Q===_M||Q===yM)return 1;else if(X===_M||X===yM)return-1;if(Q===Ry)return 1;else if(X===Ry)return-1;return Q.length===X.length?Q<X?-1:1:X.length-Q.length}var Ry="[^/]+",_M=".*",yM="(?:|/.*)",lF,gy4,qK1=class Q{#Q;#X;#J=Object.create(null);insert(X,J,G,Y,W){if(X.length===0){if(this.#Q!==void 0)throw lF;if(W)return;this.#Q=J;return}let[$,...K]=X,Z=$==="*"?K.length===0?["","",_M]:["","",Ry]:$==="/*"?["","",yM]:$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(Z){let F=Z[1],q=Z[2]||Ry;if(F&&Z[2]){if(q===".*")throw lF;if(q=q.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(q))throw lF}if(H=this.#J[q],!H){if(Object.keys(this.#J).some((V)=>V!==_M&&V!==yM))throw lF;if(W)return;if(H=this.#J[q]=new Q,F!=="")H.#X=Y.varIndex++}if(!W&&F!=="")G.push([F,H.#X])}else if(H=this.#J[$],!H){if(Object.keys(this.#J).some((F)=>F.length>1&&F!==_M&&F!==yM))throw lF;if(W)return;H=this.#J[$]=new Q}H.insert(K,J,G,Y,W)}buildRegExpStr(){let J=Object.keys(this.#J).sort(uy4).map((G)=>{let Y=this.#J[G];return(typeof Y.#X==="number"?`(${G})@${Y.#X}`:gy4.has(G)?`\\${G}`:G)+Y.buildRegExpStr()});if(typeof this.#Q==="number")J.unshift(`#${this.#Q}`);if(J.length===0)return"";if(J.length===1)return J[0];return"(?:"+J.join("|")+")"}};var IQ0=_(()=>{lF=Symbol(),gy4=new Set(".\\+*[^]$()")});var VK1=class{#Q={varIndex:0};#X=new qK1;insert(Q,X,J){let G=[],Y=[];for(let $=0;;){let K=!1;if(Q=Q.replace(/\{[^}]+\}/g,(Z)=>{let H=`@\\${$}`;return Y[$]=[H,Z],$++,K=!0,H}),!K)break}let W=Q.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let $=Y.length-1;$>=0;$--){let[K]=Y[$];for(let Z=W.length-1;Z>=0;Z--)if(W[Z].indexOf(K)!==-1){W[Z]=W[Z].replace(K,Y[$][1]);break}}return this.#X.insert(W,X,G,this.#Q,J),G}buildRegExp(){let Q=this.#X.buildRegExpStr();if(Q==="")return[/^$/,[],[]];let X=0,J=[],G=[];return Q=Q.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,W,$)=>{if(W!==void 0)return J[++X]=Number(W),"$()";if($!==void 0)return G[Number($)]=++X,"";return""}),[new RegExp(`^${Q}`),J,G]}};var zK1=_(()=>{IQ0()});function NK1(Q){return UK1[Q]??=new RegExp(Q==="*"?"":`^${Q.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,J)=>J?`\\${J}`:"(?:|/.*)")}$`)}function ly4(){UK1=Object.create(null)}function dy4(Q){let X=new VK1,J=[];if(Q.length===0)return my4;let G=Q.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,F],[q,V])=>H?1:q?-1:F.length-V.length),Y=Object.create(null);for(let H=0,F=-1,q=G.length;H<q;H++){let[V,z,U]=G[H];if(V)Y[z]=[U.map(([D])=>[D,Object.create(null)]),kM];else F++;let N;try{N=X.insert(z,F,V)}catch(D){throw D===lF?new Iy(z):D}if(V)continue;J[F]=U.map(([D,P])=>{let j=Object.create(null);P-=1;for(;P>=0;P--){let[M,T]=N[P];j[M]=T}return[D,j]})}let[W,$,K]=X.buildRegExp();for(let H=0,F=J.length;H<F;H++)for(let q=0,V=J[H].length;q<V;q++){let z=J[H][q]?.[1];if(!z)continue;let U=Object.keys(z);for(let N=0,D=U.length;N<D;N++)z[U[N]]=K[z[U[N]]]}let Z=[];for(let H in $)Z[H]=J[$[H]];return[W,Z,Y]}function jN(Q,X){if(!Q)return;for(let J of Object.keys(Q).sort((G,Y)=>Y.length-G.length))if(NK1(J).test(X))return[...Q[J]];return}var my4,UK1,Sy=class{name="RegExpRouter";#Q;#X;constructor(){this.#Q={[Z8]:Object.create(null)},this.#X={[Z8]:Object.create(null)}}add(Q,X,J){let G=this.#Q,Y=this.#X;if(!G||!Y)throw Error(jy);if(!G[Q])[G,Y].forEach((K)=>{K[Q]=Object.create(null),Object.keys(K[Z8]).forEach((Z)=>{K[Q][Z]=[...K[Z8][Z]]})});if(X==="/*")X="*";let W=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let K=NK1(X);if(Q===Z8)Object.keys(G).forEach((Z)=>{G[Z][X]||=jN(G[Z],X)||jN(G[Z8],X)||[]});else G[Q][X]||=jN(G[Q],X)||jN(G[Z8],X)||[];Object.keys(G).forEach((Z)=>{if(Q===Z8||Q===Z)Object.keys(G[Z]).forEach((H)=>{K.test(H)&&G[Z][H].push([J,W])})}),Object.keys(Y).forEach((Z)=>{if(Q===Z8||Q===Z)Object.keys(Y[Z]).forEach((H)=>K.test(H)&&Y[Z][H].push([J,W]))});return}let $=Ey(X)||[X];for(let K=0,Z=$.length;K<Z;K++){let H=$[K];Object.keys(Y).forEach((F)=>{if(Q===Z8||Q===F)Y[F][H]||=[...jN(G[F],H)||jN(G[Z8],H)||[]],Y[F][H].push([J,W-Z+K+1])})}}match=Cy;buildAllMatchers(){let Q=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Q)).forEach((X)=>{Q[X]||=this.#J(X)}),this.#Q=this.#X=void 0,ly4(),Q}#J(Q){let X=[],J=Q===Z8;if([this.#Q,this.#X].forEach((G)=>{let Y=G[Q]?Object.keys(G[Q]).map((W)=>[W,G[Q][W]]):[];if(Y.length!==0)J||=!0,X.push(...Y);else if(Q!==Z8)X.push(...Object.keys(G[Z8]).map((W)=>[W,G[Z8][W]]))}),!J)return null;else return dy4(X)}};var CQ0=_(()=>{mF();EN();jQ0();IQ0();zK1();my4=[/^$/,[],Object.create(null)],UK1=Object.create(null)});var py4=class{name="PreparedRegExpRouter";#Q;#X;constructor(Q,X){this.#Q=Q,this.#X=X}#J(Q,X){let J=this.#Q[Q];J[1].forEach((G)=>G&&G.push(X)),Object.values(J[2]).forEach((G)=>G[0].push(X))}#Y(Q,X,J,G,Y){let W=this.#Q[Q];if(!Y)W[2][X][0].push([J,{}]);else G.forEach(($)=>{if(typeof $==="number")W[1][$].push([J,Y]);else W[2][$||X][0].push([J,Y])})}add(Q,X,J){if(!this.#Q[Q]){let Y=this.#Q[Z8],W={};for(let $ in Y[2])W[$]=[Y[2][$][0].slice(),kM];this.#Q[Q]=[Y[0],Y[1].map(($)=>Array.isArray($)?$.slice():0),W]}if(X==="/*"||X==="*"){let Y=[J,{}];if(Q===Z8)for(let W in this.#Q)this.#J(W,Y);else this.#J(Q,Y);return}let G=this.#X[X];if(!G)throw Error(`Path ${X} is not registered`);for(let[Y,W]of G)if(Q===Z8)for(let $ in this.#Q)this.#Y($,X,J,Y,W);else this.#Y(Q,X,J,Y,W)}buildAllMatchers(){return this.#Q}match=Cy};var BK1=_(()=>{mF();jQ0();CQ0()});var OK1=_(()=>{CQ0();BK1()});var RQ0=class{name="SmartRouter";#Q=[];#X=[];constructor(Q){this.#Q=Q.routers}add(Q,X,J){if(!this.#X)throw Error(jy);this.#X.push([Q,X,J])}match(Q,X){if(!this.#X)throw Error("Fatal error");let J=this.#Q,G=this.#X,Y=J.length,W=0,$;for(;W<Y;W++){let K=J[W];try{for(let Z=0,H=G.length;Z<H;Z++)K.add(...G[Z]);$=K.match(Q,X)}catch(Z){if(Z instanceof Iy)continue;throw Z}this.match=K.match.bind(K),this.#Q=[K],this.#X=void 0;break}if(W===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,$}get activeRouter(){if(this.#X||this.#Q.length!==1)throw Error("No active router has been determined yet.");return this.#Q[0]}};var DK1=_(()=>{mF()});var LK1=_(()=>{DK1()});var hM,wK1=class Q{#Q;#X;#J;#Y=0;#W=hM;constructor(X,J,G){if(this.#X=G||Object.create(null),this.#Q=[],X&&J){let Y=Object.create(null);Y[X]={handler:J,possibleKeys:[],score:0},this.#Q=[Y]}this.#J=[]}insert(X,J,G){this.#Y=++this.#Y;let Y=this,W=i$1(J),$=[];for(let K=0,Z=W.length;K<Z;K++){let H=W[K],F=W[K+1],q=r$1(H,F),V=Array.isArray(q)?q[0]:H;if(V in Y.#X){if(Y=Y.#X[V],q)$.push(q[1]);continue}if(Y.#X[V]=new Q,q)Y.#J.push(q),$.push(q[1]);Y=Y.#X[V]}return Y.#Q.push({[X]:{handler:G,possibleKeys:$.filter((K,Z,H)=>H.indexOf(K)===Z),score:this.#Y}}),Y}#G(X,J,G,Y){let W=[];for(let $=0,K=X.#Q.length;$<K;$++){let Z=X.#Q[$],H=Z[J]||Z[Z8],F={};if(H!==void 0){if(H.params=Object.create(null),W.push(H),G!==hM||Y&&Y!==hM)for(let q=0,V=H.possibleKeys.length;q<V;q++){let z=H.possibleKeys[q],U=F[H.score];H.params[z]=Y?.[z]&&!U?Y[z]:G[z]??Y?.[z],F[H.score]=!0}}}return W}search(X,J){let G=[];this.#W=hM;let W=[this],$=PQ0(J),K=[];for(let Z=0,H=$.length;Z<H;Z++){let F=$[Z],q=Z===H-1,V=[];for(let z=0,U=W.length;z<U;z++){let N=W[z],D=N.#X[F];if(D)if(D.#W=N.#W,q){if(D.#X["*"])G.push(...this.#G(D.#X["*"],X,N.#W));G.push(...this.#G(D,X,N.#W))}else V.push(D);for(let P=0,j=N.#J.length;P<j;P++){let M=N.#J[P],T=N.#W===hM?{}:{...N.#W};if(M==="*"){let y=N.#X["*"];if(y)G.push(...this.#G(y,X,N.#W)),y.#W=T,V.push(y);continue}let[A,E,C]=M;if(!F&&!(C instanceof RegExp))continue;let v=N.#X[A],k=$.slice(Z).join("/");if(C instanceof RegExp){let y=C.exec(k);if(y){if(T[E]=y[0],G.push(...this.#G(v,X,N.#W,T)),Object.keys(v.#X).length){v.#W=T;let f=y[0].match(/\//)?.length??0;(K[f]||=[]).push(v)}continue}}if(C===!0||C.test(F))if(T[E]=F,q){if(G.push(...this.#G(v,X,T,N.#W)),v.#X["*"])G.push(...this.#G(v.#X["*"],X,T,N.#W))}else v.#W=T,V.push(v)}}W=V.concat(K.shift()??[])}if(G.length>1)G.sort((Z,H)=>{return Z.score-H.score});return[G.map(({handler:Z,params:H})=>[Z,H])]}};var PK1=_(()=>{mF();EN();hM=Object.create(null)});var SQ0=class{name="TrieRouter";#Q;constructor(){this.#Q=new wK1}add(Q,X,J){let G=Ey(X);if(G){for(let Y=0,W=G.length;Y<W;Y++)this.#Q.insert(Q,G[Y],J);return}this.#Q.insert(Q,X,J)}match(Q,X){return this.#Q.search(Q,X)}};var MK1=_(()=>{EN();PK1()});var TK1=_(()=>{MK1()});var uQ;var AK1=_(()=>{FK1();OK1();LK1();TK1();uQ=class extends HK1{constructor(Q={}){super(Q);this.router=Q.router??new RQ0({routers:[new Sy,new SQ0]})}}});var kZ=_(()=>{AK1()});var EK1=(Q)=>{let J={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Q},G=((W)=>{if(typeof W==="string")if(W==="*")return()=>W;else return($)=>W===$?$:null;else if(typeof W==="function")return W;else return($)=>W.includes($)?$:null})(J.origin),Y=((W)=>{if(typeof W==="function")return W;else if(Array.isArray(W))return()=>W;else return()=>[]})(J.allowMethods);return async function($,K){function Z(F,q){$.res.headers.set(F,q)}let H=await G($.req.header("origin")||"",$);if(H)Z("Access-Control-Allow-Origin",H);if(J.credentials)Z("Access-Control-Allow-Credentials","true");if(J.exposeHeaders?.length)Z("Access-Control-Expose-Headers",J.exposeHeaders.join(","));if($.req.method==="OPTIONS"){if(J.origin!=="*")Z("Vary","Origin");if(J.maxAge!=null)Z("Access-Control-Max-Age",J.maxAge.toString());let F=await Y($.req.header("origin")||"",$);if(F.length)Z("Access-Control-Allow-Methods",F.join(","));let q=J.allowHeaders;if(!q?.length){let V=$.req.header("Access-Control-Request-Headers");if(V)q=V.split(/\s*,\s*/)}if(q?.length)Z("Access-Control-Allow-Headers",q.join(",")),$.res.headers.append("Vary","Access-Control-Request-Headers");return $.res.headers.delete("Content-Length"),$.res.headers.delete("Content-Type"),new Response(null,{headers:$.res.headers,status:204,statusText:"No Content"})}if(await K(),J.origin!=="*")$.header("Vary","Origin",{append:!0})}};var jK1=()=>{};function cy4(){let{process:Q,Deno:X}=globalThis;return!(typeof X?.noColor==="boolean"?X.noColor:Q!==void 0?"NO_COLOR"in Q?.env:!1)}async function IK1(){let{navigator:Q}=globalThis,X="cloudflare:workers";return!(Q!==void 0&&Q.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!cy4())}var CK1=()=>{};async function RK1(Q,X,J,G,Y=0,W){let $=X==="<--"?`${X} ${J} ${G}`:`${X} ${J} ${G} ${await ry4(Y)} ${W}`;Q($)}var ny4=(Q)=>{let[X,J]=[",","."];return Q.map((Y)=>Y.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+X)).join(J)},iy4=(Q)=>{let X=Date.now()-Q;return ny4([X<1000?X+"ms":Math.round(X/1000)+"s"])},ry4=async(Q)=>{if(await IK1())switch(Q/100|0){case 5:return`\x1B[31m${Q}\x1B[0m`;case 4:return`\x1B[33m${Q}\x1B[0m`;case 3:return`\x1B[36m${Q}\x1B[0m`;case 2:return`\x1B[32m${Q}\x1B[0m`}return`${Q}`},SK1=(Q=console.log)=>{return async function(J,G){let{method:Y,url:W}=J.req,$=W.slice(W.indexOf("/",8));await RK1(Q,"<--",Y,$);let K=Date.now();await G(),await RK1(Q,"-->",Y,$,J.res.status,iy4(K))}};var vK1=_(()=>{CK1()});import{randomBytes as ay4}from"crypto";function kK1(){if(fM)return fM;let Q=process.env.MESH_JWT_SECRET??q9.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(Q)fM=new TextEncoder().encode(Q);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),fM=new Uint8Array(ay4(32));return fM}async function _K1(Q,X="5m"){let J=kK1();return await new nQ(Q).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(X).sign(J)}async function yK1(Q){try{let X=kK1(),{payload:J}=await L8(Q,X);return J}catch{return}}var fM=null;var vQ0=_(()=>{IX();wU()});class kQ0{db;constructor(Q){this.db=Q}async get(Q){let X=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Q).executeTakeFirst();if(!X)return null;return{organizationId:X.organizationId,sidebar_items:X.sidebar_items?typeof X.sidebar_items==="string"?JSON.parse(X.sidebar_items):X.sidebar_items:null,createdAt:X.createdAt,updatedAt:X.updatedAt}}async upsert(Q,X){let J=new Date().toISOString(),G=X?.sidebar_items?JSON.stringify(X.sidebar_items):null;await this.db.insertInto("organization_settings").values({organizationId:Q,sidebar_items:G,createdAt:J,updatedAt:J}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:G?G:void 0,updatedAt:J})).execute();let Y=await this.get(Q);if(!Y)return{organizationId:Q,sidebar_items:X?.sidebar_items??null,createdAt:J,updatedAt:J};return Y}}var hK1,_Q0,IN;var yQ0=_(()=>{MH();hK1=class hK1 extends Error{constructor(Q){super(Q);this.name="UnauthorizedError"}};_Q0=class _Q0 extends Error{constructor(Q){super(Q);this.name="ForbiddenError"}};IN=class IN{userId;toolName;boundAuth;role;connectionId;_granted=!1;constructor(Q,X,J,G,Y,W=SY.SELF){this.userId=X;this.toolName=J;this.boundAuth=G;this.role=Y;this.connectionId=W}[Symbol.dispose](){this._granted=!1}setToolName(Q){this.toolName=Q}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...Q){if(this._granted)return;if(!this.userId&&!this.boundAuth)throw new hK1("Authentication required. Please provide a valid OAuth token or API key.");let X=Q.length>0?Q:this.toolName?[this.toolName]:[];if(X.length===0)throw new _Q0("No resources specified for access check");for(let J of X)if(await this.checkResource(J)){this.grant();return}throw new _Q0(`Access denied to: ${X.join(", ")}`)}async checkResource(Q){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let X={};if(this.connectionId)X[this.connectionId]=[Q];return this.boundAuth.hasPermission(X)}granted(){return this._granted}}});class hQ0{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Q){return vM.startActiveSpan("redactor.redact",(X)=>{try{if(Q===null||Q===void 0)return Q;if(typeof Q==="string")return X.setAttribute("data.type","string"),this.redactString(Q);if(Array.isArray(Q))return X.setAttribute("data.type","array"),X.setAttribute("data.length",Q.length),Q.map((J)=>this.redact(J));if(typeof Q==="object"){X.setAttribute("data.type","object");let J={};for(let[G,Y]of Object.entries(Q)){let W=this.redactString(G);J[W]=this.redact(Y)}return J}return X.setAttribute("data.type",typeof Q),Q}finally{X.end()}})}redactString(Q){return vM.startActiveSpan("redactor.redactString",(X)=>{try{X.setAttribute("text.length",Q.length);let J=Q,G=0;for(let Y of this.patterns){let W=Q.match(Y.regex);if(W)G+=W.length,X.setAttribute(`redaction.${Y.type}.count`,W.length);J=J.replace(Y.regex,`[REDACTED:${Y.type}]`)}return X.setAttribute("redaction.total_count",G),J}finally{X.end()}})}}var fK1=_(()=>{Py()});class fQ0{db;redactor;constructor(Q){this.db=Q;this.redactor=new hQ0}async log(Q){await this.logBatch([Q])}async logBatch(Q){if(Q.length===0)return;let X=Q.map((J)=>({...J,input:this.redactor.redact(J.input),output:this.redactor.redact(J.output)}));await this.db.transaction().execute(async(J)=>{await J.insertInto("monitoring_logs").values(X.map((G)=>this.toDbRow(G))).execute()})}async query(Q){let X=this.db.selectFrom("monitoring_logs").selectAll(),J=this.db.selectFrom("monitoring_logs").select((K)=>K.fn.count("id").as("count"));if(Q.organizationId)X=X.where("organization_id","=",Q.organizationId),J=J.where("organization_id","=",Q.organizationId);if(Q.connectionId)X=X.where("connection_id","=",Q.connectionId),J=J.where("connection_id","=",Q.connectionId);if(Q.gatewayId)X=X.where("gateway_id","=",Q.gatewayId),J=J.where("gateway_id","=",Q.gatewayId);if(Q.toolName)X=X.where("tool_name","=",Q.toolName),J=J.where("tool_name","=",Q.toolName);if(Q.isError!==void 0)X=X.where("is_error","=",Q.isError?1:0),J=J.where("is_error","=",Q.isError?1:0);if(Q.startDate)X=X.where("timestamp",">=",Q.startDate.toISOString()),J=J.where("timestamp",">=",Q.startDate.toISOString());if(Q.endDate)X=X.where("timestamp","<=",Q.endDate.toISOString()),J=J.where("timestamp","<=",Q.endDate.toISOString());if(X=X.orderBy("timestamp","desc"),Q.limit)X=X.limit(Q.limit);if(Q.offset)X=X.offset(Q.offset);let[G,Y]=await Promise.all([X.execute(),J.executeTakeFirst()]),W=Number(Y?.count||0);return{logs:G.map((K)=>this.fromDbRow(K)),total:W}}async getStats(Q){let X=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q.organizationId);if(Q.startDate)X=X.where("timestamp",">=",Q.startDate.toISOString());if(Q.endDate)X=X.where("timestamp","<=",Q.endDate.toISOString());let J=await X.select([($)=>$.fn.count("id").as("total_count"),($)=>$.fn.sum($.ref("is_error")).as("error_count"),($)=>$.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),G=Number(J?.total_count||0),Y=Number(J?.error_count||0),W=Number(J?.avg_duration||0);return{totalCalls:G,errorRate:G>0?Y/G:0,avgDurationMs:W}}toDbRow(Q){return{id:Q.id||XG("log"),organization_id:Q.organizationId,connection_id:Q.connectionId,connection_title:Q.connectionTitle,tool_name:Q.toolName,input:JSON.stringify(Q.input),output:JSON.stringify(Q.output),is_error:Q.isError?1:0,error_message:Q.errorMessage||null,duration_ms:Q.durationMs,timestamp:Q.timestamp instanceof Date?Q.timestamp.toISOString():Q.timestamp,user_id:Q.userId||null,request_id:Q.requestId,user_agent:Q.userAgent||null,gateway_id:Q.gatewayId||null}}fromDbRow(Q){let X=typeof Q.input==="string"?JSON.parse(Q.input):Q.input,J=typeof Q.output==="string"?JSON.parse(Q.output):Q.output,G=typeof Q.timestamp==="string"?new Date(Q.timestamp):Q.timestamp;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,connectionTitle:Q.connection_title,toolName:Q.tool_name,input:X,output:J,isError:Q.is_error===1,errorMessage:Q.error_message,durationMs:Q.duration_ms,timestamp:G,userId:Q.user_id,requestId:Q.request_id,userAgent:Q.user_agent,gatewayId:Q.gateway_id}}}var bK1=_(()=>{fK1();MR()});function xK1(Q){let X=null;return()=>{if(X)return X;return X=Q().catch((J)=>{throw X=null,J}),X}}class gK1{factory;promise=null;constructor(Q){this.factory=Q}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(Q,X){return this.getOrCreatePromise().then(Q,X)}catch(Q){return this.getOrCreatePromise().catch(Q)}finally(Q){return this.getOrCreatePromise().finally(Q)}}function RG(Q){return new gK1(Q)}async function uK1(Q,X){return(await X.storage.connections.findById(Q))?.connection_url??null}async function ky(Q){let J=new URL(Q).pathname;if(J.endsWith("/"))J=J.slice(0,-1);let G=new URL(Q);G.pathname=`${J}/.well-known/oauth-protected-resource`;let Y=await fetch(G.toString(),{method:"GET",headers:{Accept:"application/json"}});if(Y.ok)return Y;if(Y.status!==404&&Y.status!==401)return Y;let W=new URL(Q);if(W.pathname=`/.well-known/oauth-protected-resource${J}`,Y=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),Y.status!==404&&Y.status!==401)return Y;let $=new URL(Q);return $.pathname="/.well-known/oauth-protected-resource",Y=await fetch($.toString(),{method:"GET",headers:{Accept:"application/json"}}),Y}async function oy4(Q,X){let J=await uK1(Q,X);if(!J)return null;try{let G=await ky(J);if(!G.ok)return null;return(await G.json()).authorization_servers?.[0]??null}catch{return null}}async function mK1(Q){let X=Q.get("meshContext");if(!X)X=await _Z.create(Q.req.raw),Q.set("meshContext",X);return X}async function lK1({error:Q,reqUrl:X,connectionId:J,connectionUrl:G,headers:Y}){if(!(Q.status===401||Q.message?.includes("401")||Q.message?.toLowerCase().includes("unauthorized")))return null;if(await fetch(G,{method:"POST",headers:{...Y,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})}).then((K)=>K.headers.has("WWW-Authenticate")).catch(()=>!1))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${J}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function bQ0(Q){let J=new URL(Q).pathname;if(J.endsWith("/"))J=J.slice(0,-1);let G=J!==""&&J!=="/",Y=[];if(G){let $=new URL(Q);$.pathname=`/.well-known/oauth-authorization-server${J}`,Y.push($);let K=new URL(Q);K.pathname=`/.well-known/openid-configuration${J}`,Y.push(K);let Z=new URL(Q);Z.pathname=`${J}/.well-known/openid-configuration`,Y.push(Z)}else{let $=new URL(Q);$.pathname="/.well-known/oauth-authorization-server",Y.push($);let K=new URL(Q);K.pathname="/.well-known/openid-configuration",Y.push(K)}let W=null;for(let $ of Y){if(W=await fetch($.toString(),{method:"GET",headers:{Accept:"application/json"}}),W.ok)return W;if(W.status!==404&&W.status!==401)return W}return W}var vy,_y=(Q)=>{if(!(Q.hostname==="localhost"||Q.hostname==="127.0.0.1"))Q.protocol="https:";return Q},dK1=async(Q)=>{let X=Q.req.param("connectionId"),J=await mK1(Q),G=await uK1(X,J);if(!G)return Q.json({error:"Connection not found"},404);try{let Y=await ky(G);if(!Y.ok)return new Response(Y.body,{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}});let W=await Y.json(),$=_y(new URL(Q.req.url)),K=`${$.origin}/mcp/${X}`,Z=`${$.origin}/oauth-proxy/${X}`,H={...W,resource:K,authorization_servers:[Z]};return new Response(JSON.stringify(H),{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}})}catch(Y){let W=Y;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",W),Q.json({error:"Failed to proxy OAuth metadata",message:W.message},502)}},pK1;var yy=_(()=>{kZ();hy();vy=new uQ;vy.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Q)=>dK1(Q));vy.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Q)=>dK1(Q));vy.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Q)=>{let X=Q.req.param("connectionId"),J=await mK1(Q),G=await oy4(X,J);if(!G)return Q.json({error:"Connection not found or no auth server"},404);try{let Y=await bQ0(G);if(!Y.ok)return new Response(Y.body,{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}});let W=await Y.json(),K=`${_y(new URL(Q.req.url)).origin}/oauth-proxy/${X}`,Z={...W,authorization_endpoint:W.authorization_endpoint?`${K}/authorize`:void 0,token_endpoint:W.token_endpoint?`${K}/token`:void 0,registration_endpoint:W.registration_endpoint?`${K}/register`:void 0};return new Response(JSON.stringify(Z),{status:200,headers:{"Content-Type":"application/json"}})}catch(Y){let W=Y;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",W),Q.json({error:"Failed to proxy auth server metadata",message:W.message},502)}});pK1=vy});function sy4(Q){if(!Q.isError)return;let X=Q.content;if(!Array.isArray(X))return;for(let J of X)if(J&&typeof J==="object"&&"type"in J&&J.type==="text"&&"text"in J&&typeof J.text==="string")return J.text;return}function cK1(Q){if(Q&&typeof Q==="object"&&!Array.isArray(Q)){let X=Q,J=X.structuredContent;if(J&&typeof J==="object"&&!Array.isArray(J))return J;return X}return{value:Q}}async function ty4(Q,X){let J=Q.body;if(!J)return{text:"",truncated:!1};let G=J.getReader(),Y=new TextDecoder,W=!1,$=0,K=[];try{while(!0){let{value:Z,done:H}=await G.read();if(H)break;if(Z){if($+=Z.byteLength,$>X){W=!0;let F=X-($-Z.byteLength);if(F>0)K.push(Y.decode(Z.slice(0,F),{stream:!0}));break}K.push(Y.decode(Z,{stream:!0}))}}}finally{G.releaseLock()}return K.push(Y.decode()),{text:K.join(""),truncated:W}}async function bM(Q){let{ctx:X,enabled:J}=Q,G=Q.organizationId??X.organization?.id;if(!J||!G)return;await X.storage.monitoring.log({organizationId:G,connectionId:Q.connectionId,connectionTitle:Q.connectionTitle,toolName:Q.request.params.name,input:Q.request.params.arguments??{},output:Q.output,isError:Q.isError,errorMessage:Q.errorMessage,durationMs:Q.durationMs,timestamp:new Date,userId:X.auth.user?.id||X.auth.apiKey?.userId||null,requestId:X.metadata.requestId,userAgent:X.metadata.userAgent,gatewayId:X.gatewayId})}function nK1(Q){let{ctx:X,enabled:J,connectionId:G,connectionTitle:Y}=Q;return async(W,$)=>{let K=Date.now();try{let Z=await $(),H=Date.now()-K;return await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:cK1(Z),isError:Boolean(Z.isError),errorMessage:sy4(Z),durationMs:H}),Z}catch(Z){let H=Z,F=Date.now()-K;throw await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:H.message,durationMs:F}),Z}}}function iK1(Q){let{ctx:X,enabled:J,connectionId:G,connectionTitle:Y}=Q;return async(W,$)=>{let K=Date.now();try{let Z=await $(),H=X.organization?.id;if(J&&H){let F=Z.clone();(async()=>{try{let{text:q,truncated:V}=await ty4(F,262144),z=Date.now()-K,U=F.headers.get("content-type")??"",N=q;if(U.includes("application/json"))try{N=q.length?JSON.parse(q):null}catch{N=q}let D=Z.status>=400,P=D&&N&&typeof N==="object"&&"error"in N?N.error:void 0,j=typeof P==="string"&&P?P:D&&typeof N==="string"&&N.trim()?N.slice(0,500):D?`HTTP ${Z.status} ${Z.statusText}`.trim():V?"Response body truncated to 262144 bytes":void 0;await bM({ctx:X,enabled:J,organizationId:H,connectionId:G,connectionTitle:Y,request:W,output:cK1(N),isError:D,errorMessage:j,durationMs:z})}catch(q){let V=Date.now()-K;await bM({ctx:X,enabled:J,organizationId:H,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:V})}})()}return Z}catch(Z){let H=Z,F=Date.now()-K;throw await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:H.message,durationMs:F}),Z}}}function ey4(Q,X){return async(J,G)=>{try{let Y=J.params.name;return await new IN(Q.authInstance,Q.auth.user?.id??Q.auth.apiKey?.userId,Y,Q.boundAuth,Q.auth.user?.role,X).check(Y),await G()}catch(Y){return{content:[{type:"text",text:`Authorization failed: ${Y.message}`}],isError:!0}}}}function Qh4(Q,X){return async(J,G)=>{try{let Y=J.params.name;return await new IN(Q.authInstance,Q.auth.user?.id??Q.auth.apiKey?.userId,Y,Q.boundAuth,Q.auth.user?.role,X).check(Y),await G()}catch(Y){return new Response(JSON.stringify({error:`Authorization failed: ${Y.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function aK1(Q,X,{superUser:J}){let G=typeof Q==="string"?await X.storage.connections.findById(Q,X.organization?.id):Q;if(!G)throw Error("Connection not found");let Y=G?.id;if(X.organization&&G.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:G.organization_id},G.status!=="active")throw Error(`Connection inactive: ${G.status}`);let W,$=X.auth.user?.connectionId,K=xK1(async()=>{let y=O00(G.configuration_state,G.configuration_scopes),f=X.auth.user?.id??X.auth.apiKey?.userId;if(!f){console.error("User ID required to issue configuration token");return}try{W=await _K1({sub:f,user:{id:f},metadata:{state:G.configuration_state??void 0,meshUrl:process.env.MESH_URL??X.baseUrl,connectionId:Y,organizationId:X.organization?.id},permissions:y})}catch(l){console.error("Failed to issue configuration token:",l)}}),Z=async()=>{await K();let y={...$?{"x-caller-id":$}:{}};if(G.connection_token)y.Authorization=`Bearer ${G.connection_token}`;if(W)y["x-mesh-token"]=W;if(G.connection_headers)Object.assign(y,G.connection_headers);return y},H=async()=>{let y=await Z(),f=new _W(new URL(G.connection_url),{requestInit:{headers:y}}),l=new kW({name:"mcp-mesh-proxy",version:"1.0.0"});return await l.connect(f),l},F=J?async(y,f)=>await f():ey4(X,Y),q=J?async(y,f)=>await f():Qh4(X,Y),V={enabled:CM0().enabled,connectionId:Y,connectionTitle:G.title,ctx:X},z=nK1(V),U=iK1(V),N=Lw(z,F),D=Lw(U,q),P=async(y)=>{return N(y,async()=>{let f=await H(),l=Date.now();return await X.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":Y,"tool.name":y.params.name}},async(x)=>{try{let S=await f.callTool(y.params),u=Date.now()-l;return X.meter.createHistogram("connection.proxy.duration").record(u,{"connection.id":Y,"tool.name":y.params.name,status:"success"}),X.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":Y,"tool.name":y.params.name,status:"success"}),x.end(),S}catch(S){let u=S,X0=Date.now()-l;throw X.meter.createHistogram("connection.proxy.duration").record(X0,{"connection.id":Y,"tool.name":y.params.name,status:"error"}),X.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":Y,"tool.name":y.params.name,error:u.message}),x.recordException(u),x.end(),S}finally{await f.close()}})})};return{fetch:async(y)=>{let f=new URL(y.url),l;try{l=await H()}catch(u){let X0=await lK1({error:u,reqUrl:f,connectionId:Y,connectionUrl:G.connection_url,headers:await Z()});if(X0)return X0;throw u}let x=new yH({name:"mcp-mesh",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}}}),S=new dH({enableJsonResponse:y.headers.get("Accept")?.includes("application/json")??!1});return await x.connect(S),x.server.setRequestHandler(dK,async(u)=>{return await l.listTools()}),x.server.setRequestHandler(pK,P),x.server.setRequestHandler(xK,async()=>{if(l.getServerCapabilities()?.resources)return await l.listResources();return{resources:[]}}),x.server.setRequestHandler(uK,async(u)=>{return await l.readResource(u.params)}),x.server.setRequestHandler(gK,async()=>{if(l.getServerCapabilities()?.resourceTemplates)return await l.listResourceTemplates();return{resourceTemplates:[]}}),x.server.setRequestHandler(mK,async()=>{if(l.getServerCapabilities()?.prompts)return await l.listPrompts();return{prompts:[]}}),x.server.setRequestHandler(lK,async(u)=>{return await l.getPrompt(u.params)}),await S.handleMessage(y)},client:{callTool:(y)=>{return P({method:"tools/call",params:y})},listTools:async()=>{if(G.tools&&G.tools.length>0)return{tools:G.tools.map((f)=>({name:f.name,description:f.description,inputSchema:f.inputSchema,outputSchema:f.outputSchema}))};return await(await H()).listTools()},listResources:async()=>{return await(await H()).listResources()},readResource:async(y)=>{return await(await H()).readResource(y)},listResourceTemplates:async()=>{return await(await H()).listResourceTemplates()},listPrompts:async()=>{return await(await H()).listPrompts()},getPrompt:async(y)=>{return await(await H()).getPrompt(y)}},callStreamableTool:async(y,f)=>{let l={method:"tools/call",params:{name:y,arguments:f}};return D(l,async()=>{let x=await Z(),S=new URL(G.connection_url);return S.pathname=S.pathname.replace(/\/$/,"")+`/call-tool/${l.params.name}`,await X.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":Y,"tool.name":l.params.name}},async(u)=>{let X0=Date.now();try{let r=await fetch(S.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(l.params.arguments),headers:{...x,"Content-Type":"application/json"}}),W0=Date.now()-X0;return X.meter.createHistogram("connection.proxy.streamable.duration").record(W0,{"connection.id":Y,"tool.name":l.params.name,status:r.ok?"success":"error"}),X.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":Y,"tool.name":l.params.name,status:r.ok?"success":"error"}),u.end(),r}catch(r){let W0=r,V0=Date.now()-X0;throw X.meter.createHistogram("connection.proxy.streamable.duration").record(V0,{"connection.id":Y,"tool.name":l.params.name,status:"error"}),X.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":Y,"tool.name":l.params.name,error:W0.message}),u.recordException(W0),u.end(),r}})})}}}async function oK1(Q,X){return aK1(Q,X,{superUser:!1})}async function sK1(Q,X){return aK1(Q,X,{superUser:!0})}var rK1,tK1;var fy=_(()=>{D00();za();Jw();$w();RS();qX();kZ();vQ0();yQ0();Qv();yy();rK1=new uQ;rK1.all("/:connectionId",async(Q)=>{let X=Q.req.param("connectionId"),J=Q.get("meshContext");try{return await(await J.createMCPProxy(X)).fetch(Q.req.raw)}catch(G){let Y=G;if(Y.message.includes("not found"))return Q.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return Q.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return Q.json({error:Y.message},503);return Q.json({error:"Internal server error",message:Y.message},500)}});tK1=rK1});function Xh4(Q,X){for(let[J,G]of Object.entries(X)){let Y=Q[J];if(!Y||Y.length===0){let W=Q["*"];if(!W||W.length===0)return!1;if(W.includes("*"))continue;for(let $ of G)if(!W.includes($))return!1;continue}if(Y.includes("*"))continue;for(let W of G)if(!Y.includes(W))return!1}return!0}function Jh4(Q){let{auth:X,headers:J,role:G,permissions:Y,userId:W}=Q,$=X.api.hasPermission;return{hasPermission:async(K)=>{if(G&&e00.includes(G))return!0;if(Y)return Xh4(Y,K);if(!$)return console.error("[Auth] hasPermission API not available"),!1;try{if((await $({headers:J,body:{permission:K}}))?.success===!0)return!0;let H={};for(let q of Object.keys(K))H[q]=["*"];return(await $({headers:J,body:{permission:H}}))?.success===!0}catch(Z){return console.error("[Auth] Permission check failed:",Z),!1}},organization:{create:async(K)=>{return X.api.createOrganization({headers:J,body:K})},update:async(K)=>{return X.api.updateOrganization({headers:J,body:K})},delete:async(K)=>{await X.api.deleteOrganization({headers:J,body:{organizationId:K}})},get:async(K)=>{return X.api.getFullOrganization({headers:J,query:K?{organizationId:K}:void 0})},list:async(K)=>{return X.api.listOrganizations({headers:J,query:K?{userId:K}:void 0})},addMember:async(K)=>{return X.api.addMember({headers:J,body:K})},removeMember:async(K)=>{await X.api.removeMember({headers:J,body:K})},listMembers:async(K)=>{return X.api.listMembers({headers:J,query:K?{organizationId:K.organizationId,limit:K.limit,offset:K.offset}:void 0})},updateMemberRole:async(K)=>{return X.api.updateMemberRole({headers:J,body:K})}},apiKey:{create:async(K)=>{return X.api.createApiKey({body:{...K,userId:W}})},list:async()=>{return X.api.listApiKeys({headers:J})},update:async(K)=>{return X.api.updateApiKey({body:{...K,userId:W}})},delete:async(K)=>{await X.api.deleteApiKey({headers:J,body:{keyId:K}})}}}}async function Yh4(Q,X,J){if(e00.includes(J))return;let G=await Q.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{return JSON.parse(G.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${J}`);return}}async function Gh4(Q,X,J){let G=Q.headers.get("Authorization");try{let Y=new Headers(Q.headers);Y.set("X-MCP-Session-Auth","true");let W=await X.api.getMcpSession({headers:Y});if(W){let $=W.userId,K=await J.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",$).executeTakeFirst(),Z=K?.role,H=K?{id:K.orgId,slug:K.orgSlug,name:K.orgName}:void 0,F;if(K&&Z)F=await Yh4(J,K.organizationId,Z);return{user:{id:$,role:Z},role:Z,permissions:F,organization:H}}}catch(Y){console.error("[Auth] OAuth session check failed:",Y)}if(G?.startsWith("Bearer ")){let Y=G.replace("Bearer ","").trim();try{let W=await yK1(Y);if(W)return{user:{id:W.sub,connectionId:W.metadata?.connectionId},permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}catch{}try{let W=await X.api.verifyApiKey({body:{key:Y}});if(W?.valid&&W.key){let $=W.key.metadata?.organization,K=W.key.permissions;return{apiKeyId:W.key.id,user:{id:W.key.userId},permissions:K,organization:$?{id:$.id,slug:$.slug,name:$.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let Y=await X.api.getSession({headers:Q.headers});if(Y){let W,$;if(Y.session.activeOrganizationId){let K=await X.api.getFullOrganization({headers:Q.headers}).catch(()=>null);if(K)W={id:K.id,slug:K.slug,name:K.name},$=K.members?.find((H)=>H.userId===Y.user.id)?.role;else W={id:Y.session.activeOrganizationId,slug:"",name:""}}return{user:{id:Y.user.id,email:Y.user.email,role:$},role:$,organization:W}}}catch(Y){console.error("[Auth] Session check failed:",Y)}return{user:void 0}}function QZ1(Q){let X=new xL(Q.encryption.key),J={connections:new gL(Q.db,X),organizationSettings:new kQ0(Q.db),monitoring:new fQ0(Q.db),gateways:new uL(Q.db)};return async(G)=>{let Y=G?.headers.get("x-caller-id")??void 0,W=G?await Gh4(G,Q.auth,Q.db):{user:void 0},$=Jh4({auth:Q.auth,headers:G?.headers??new Headers,role:W.role,permissions:W.permissions,userId:W.user?.id}),K={user:W.user};if(W.apiKeyId)K.apiKey={id:W.apiKeyId,name:"",userId:""};let Z=W.organization,H=G?new URL(G.url):new URL("http://localhost:3000"),F=process.env.BASE_URL??`${H.protocol}//${H.host}`,q=new IN(Q.auth,K.user?.id,void 0,$,W.role,SY.SELF),V={auth:K,connectionId:Y,organization:Z,storage:J,vault:X,authInstance:Q.auth,boundAuth:$,access:q,db:Q.db,tracer:Q.observability.tracer,meter:Q.observability.meter,baseUrl:F,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,userAgent:G?.headers.get("x-mesh-client")||G?.headers.get("User-Agent")||void 0,ipAddress:(G?.headers.get("CF-Connecting-IP")||G?.headers.get("X-Forwarded-For"))??void 0},eventBus:Q.eventBus,createMCPProxy:async(z)=>{return await oK1(z,V)}};return V}}var eK1,_Z;var hy=_(()=>{vQ0();Qo();Xo();Jo();yQ0();bK1();Q10();MH();fy();_Z={set:(Q)=>{eK1=Q},create:async(Q)=>{return await eK1(Q)}}});function XZ1(Q){return Q===xM.HEALTH||Q===xM.METRICS||Q.startsWith(gM.WELL_KNOWN)}function $h4(Q){return Q.startsWith(gM.API)}function Kh4(Q){return Q==="/mcp"||Q.startsWith(gM.MCP)}function Zh4(Q){return Q.startsWith(gM.OAUTH_PROXY)}function Hh4(Q){return Wh4.test(Q)}function JZ1(Q){return $h4(Q)||Kh4(Q)||Zh4(Q)||XZ1(Q)}function YZ1(Q){return Q==="/"||Q.startsWith(gM.API_AUTH)||XZ1(Q)||Hh4(Q)}var xM,gM,Wh4;var xQ0=_(()=>{xM={HEALTH:"/health",METRICS:"/metrics"},gM={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known"},Wh4=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});class GZ1{db;constructor(Q){this.db=Q}async publishEvent(Q){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Q.id,organization_id:Q.organizationId,type:Q.type,source:Q.source,specversion:"1.0",subject:Q.subject??null,time:Q.time,datacontenttype:Q.datacontenttype??"application/json",dataschema:Q.dataschema??null,data:Q.data?JSON.stringify(Q.data):null,cron:Q.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Q.id,organizationId:Q.organizationId,type:Q.type,source:Q.source,specversion:"1.0",subject:Q.subject??null,time:Q.time,datacontenttype:Q.datacontenttype??"application/json",dataschema:Q.dataschema??null,data:Q.data??null,cron:Q.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Q){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q.organizationId).where("connection_id","=",Q.connectionId).where("event_type","=",Q.eventType);if(Q.publisher)X=X.where("publisher","=",Q.publisher);else X=X.where("publisher","is",null);if(Q.filter)X=X.where("filter","=",Q.filter);else X=X.where("filter","is",null);let J=await X.executeTakeFirst();if(J)return{id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at};let G=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Q.id,organization_id:Q.organizationId,connection_id:Q.connectionId,publisher:Q.publisher??null,event_type:Q.eventType,filter:Q.filter??null,enabled:1,created_at:G,updated_at:G}).execute(),{id:Q.id,organizationId:Q.organizationId,connectionId:Q.connectionId,publisher:Q.publisher??null,eventType:Q.eventType,filter:Q.filter??null,enabled:!0,createdAt:G,updatedAt:G}}async unsubscribe(Q,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Q).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Q,X){let J=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q);if(X)J=J.where("connection_id","=",X);return(await J.execute()).map((Y)=>({id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,publisher:Y.publisher,eventType:Y.event_type,filter:Y.filter,enabled:Y.enabled===1,createdAt:Y.created_at,updatedAt:Y.updated_at}))}async getSubscription(Q,X){let J=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Q).where("organization_id","=",X).executeTakeFirst();if(!J)return null;return{id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at}}async getMatchingSubscriptions(Q){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q.organizationId).where("enabled","=",1).where("event_type","=",Q.type).where((J)=>J.or([J("publisher","is",null),J("publisher","=",Q.source)])).execute()).map((J)=>({id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at}))}async createDeliveries(Q,X,J){if(X.length===0)return;let G=new Date().toISOString(),Y=J??null,W=X.map(($)=>({id:crypto.randomUUID(),event_id:Q,subscription_id:$,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:Y,created_at:G}));await this.db.insertInto("event_deliveries").values(W).execute()}async claimPendingDeliveries(Q){let X=new Date().toISOString(),J;try{J=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(W)=>W.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where(($)=>$.or([$("d.next_retry_at","is",null),$("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Q)).where("status","=","pending").returning(["id"]).execute()).map((W)=>W.id)}catch{let Y=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Q).execute();if(Y.length===0)return[];J=Y.map((W)=>W.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",J).where("status","=","pending").execute()}if(J.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",J).where("d.status","=","processing").execute()).map((Y)=>({delivery:{id:Y.delivery_id,eventId:Y.event_id,subscriptionId:Y.subscription_id,status:Y.delivery_status,attempts:Y.delivery_attempts,lastError:Y.delivery_last_error,deliveredAt:Y.delivered_at,nextRetryAt:Y.delivery_next_retry_at,createdAt:Y.delivery_created_at},event:{id:Y.event_id,organizationId:Y.organization_id,type:Y.type,source:Y.source,specversion:Y.specversion,subject:Y.subject,time:Y.time,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema,data:Y.data?JSON.parse(Y.data):null,cron:Y.cron,status:Y.event_status,attempts:Y.event_attempts,lastError:Y.event_last_error,nextRetryAt:Y.next_retry_at,createdAt:Y.event_created_at,updatedAt:Y.event_updated_at},subscription:{id:Y.subscription_id,organizationId:Y.organization_id,connectionId:Y.connection_id,publisher:Y.publisher,eventType:Y.event_type,filter:Y.filter,enabled:Y.enabled===1,createdAt:Y.subscription_created_at,updatedAt:Y.subscription_updated_at}}))}async markDeliveriesDelivered(Q){if(Q.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Q).execute()}async markDeliveriesFailed(Q,X,J=20,G=1000,Y=3600000){if(Q.length===0)return;for(let W of Q){let $=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",W).executeTakeFirst();if(!$)continue;let K=$.attempts+1;if(K>=J)await this.db.updateTable("event_deliveries").set({attempts:K,last_error:X,status:"failed",next_retry_at:null}).where("id","=",W).execute();else{let Z=Math.min(G*Math.pow(2,K-1),Y),H=new Date(Date.now()+Z).toISOString();await this.db.updateTable("event_deliveries").set({attempts:K,last_error:X,status:"pending",next_retry_at:H}).where("id","=",W).execute()}}}async updateEventStatus(Q){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Q).execute();if(X.length===0)return;let J=X.every((W)=>W.status==="delivered"),G=X.some((W)=>W.status==="failed"),Y=X.some((W)=>W.status==="pending"||W.status==="processing");if(J)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Q).execute();else if(G&&!Y)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Q).execute()}async resetStuckDeliveries(){let Q=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Q.numUpdatedRows??0)}async getEvent(Q,X){let J=await this.db.selectFrom("events").selectAll().where("id","=",Q).where("organization_id","=",X).executeTakeFirst();if(!J)return null;return{id:J.id,organizationId:J.organization_id,type:J.type,source:J.source,specversion:J.specversion,subject:J.subject,time:J.time,datacontenttype:J.datacontenttype,dataschema:J.dataschema,data:J.data?JSON.parse(J.data):null,cron:J.cron,status:J.status,attempts:J.attempts,lastError:J.last_error,nextRetryAt:J.next_retry_at,createdAt:J.created_at,updatedAt:J.updated_at}}async cancelEvent(Q,X,J){let G=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Q).where("organization_id","=",X).where("source","=",J).where("status","in",["pending","processing"]).executeTakeFirst();if((G.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Q).where("status","in",["pending","processing"]).execute();return{success:(G.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Q,X){if(Q.length===0)return;let J=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:J}).where("id","in",Q).execute()}async ackDelivery(Q,X,J){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Q).where("organization_id","=",X).executeTakeFirst())return{success:!1};let W=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Q).where("status","in",["pending","processing"]).where(($)=>$.exists($.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",J).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(W)await this.updateEventStatus(Q);return{success:W}}async syncSubscriptions(Q){let{organizationId:X,connectionId:J,subscriptions:G}=Q,Y=(P,j)=>{return`${P}::${j??""}`},W=await this.listSubscriptions(X,J),$=new Map;for(let P of W)$.set(Y(P.eventType,P.publisher),P);let K=new Map;for(let P of G)K.set(Y(P.eventType,P.publisher),P);let Z=new Date().toISOString(),H=[],F=[],q=[],V=0;for(let[P,j]of K){let M=$.get(P);if(!M)H.push({id:crypto.randomUUID(),organization_id:X,connection_id:J,event_type:j.eventType,publisher:j.publisher??null,filter:j.filter??null,enabled:1,created_at:Z,updated_at:Z});else{let T=M.filter??null,A=j.filter??null;if(T!==A)F.push({id:M.id,filter:A});else V++}}for(let[P,j]of $)if(!K.has(P))q.push(j.id);if(H.length>0)await this.db.insertInto("event_subscriptions").values(H).execute();if(F.length>0)await Promise.all(F.map((P)=>this.db.updateTable("event_subscriptions").set({filter:P.filter,updated_at:Z}).where("id","=",P.id).execute()));if(q.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",q).execute();let z=H.length,U=F.length,N=q.length,D=await this.listSubscriptions(X,J);return{created:z,updated:U,deleted:N,unchanged:V,subscriptions:D}}}function WZ1(Q){return new GZ1(Q)}function KQ(Q,X,J,G,Y,W,$,K){return KQ.fromTZ(KQ.tp(Q,X,J,G,Y,W,$),K)}function gQ0(Q,X=new Date){let J=X.toLocaleString("en-US",{timeZone:Q,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],G=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${G} GMT`)-Date.parse(`${G} ${J}`)}function Fh4(Q,X){let J=new Date(Date.parse(Q));if(isNaN(J))throw Error("minitz: Invalid ISO8601 passed to parser.");let G=Q.substring(9);return Q.includes("Z")||G.includes("-")||G.includes("+")?KQ.tp(J.getUTCFullYear(),J.getUTCMonth()+1,J.getUTCDate(),J.getUTCHours(),J.getUTCMinutes(),J.getUTCSeconds(),"Etc/UTC"):KQ.tp(J.getFullYear(),J.getMonth()+1,J.getDate(),J.getHours(),J.getMinutes(),J.getSeconds(),X)}function qh4(Q){if(Q===void 0&&(Q={}),delete Q.name,Q.legacyMode=Q.legacyMode===void 0?!0:Q.legacyMode,Q.paused=Q.paused===void 0?!1:Q.paused,Q.maxRuns=Q.maxRuns===void 0?1/0:Q.maxRuns,Q.catch=Q.catch===void 0?!1:Q.catch,Q.interval=Q.interval===void 0?0:parseInt(Q.interval.toString(),10),Q.utcOffset=Q.utcOffset===void 0?void 0:parseInt(Q.utcOffset.toString(),10),Q.unref=Q.unref===void 0?!1:Q.unref,Q.startAt&&(Q.startAt=new HY(Q.startAt,Q.timezone)),Q.stopAt&&(Q.stopAt=new HY(Q.stopAt,Q.timezone)),Q.interval!==null){if(isNaN(Q.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Q.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Q.utcOffset!==void 0){if(isNaN(Q.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Q.utcOffset<-870||Q.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Q.utcOffset!==void 0&&Q.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Q.unref!==!0&&Q.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Q}function uM(Q){return Object.prototype.toString.call(Q)==="[object Function]"||typeof Q=="function"||Q instanceof Function}function Vh4(Q){return uM(Q)}function zh4(Q){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Q):Q&&typeof Q.unref<"u"&&Q.unref()}var uQ0=32,mM,HZ1,$Z1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Q,X){this.pattern=Q,this.timezone=X,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Q=this.pattern.replace(/\s+/g," ").split(" ");if(Q.length<5||Q.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Q.length===5&&Q.unshift("0"),Q[3].indexOf("L")>=0&&(Q[3]=Q[3].replace("L",""),this.lastDayOfMonth=!0),Q[3]=="*"&&(this.starDOM=!0),Q[4].length>=3&&(Q[4]=this.replaceAlphaMonths(Q[4])),Q[5].length>=3&&(Q[5]=this.replaceAlphaDays(Q[5])),Q[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new HY(new Date,this.timezone).getDate(!0);Q[0]=Q[0].replace("?",X.getSeconds().toString()),Q[1]=Q[1].replace("?",X.getMinutes().toString()),Q[2]=Q[2].replace("?",X.getHours().toString()),this.starDOM||(Q[3]=Q[3].replace("?",X.getDate().toString())),Q[4]=Q[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Q[5]=Q[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Q),this.partToArray("second",Q[0],0,1),this.partToArray("minute",Q[1],0,1),this.partToArray("hour",Q[2],0,1),this.partToArray("day",Q[3],-1,1),this.partToArray("month",Q[4],-1,1),this.partToArray("dayOfWeek",Q[5],0,mM),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Q,X,J,G){let Y=this[Q],W=Q==="day"&&this.lastDayOfMonth;if(X===""&&!W)throw TypeError("CronPattern: configuration entry "+Q+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return Y.fill(G);let $=X.split(",");if($.length>1)for(let K=0;K<$.length;K++)this.partToArray(Q,$[K],J,G);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Q,J,G):X.indexOf("-")!==-1?this.handleRange(X,Q,J,G):X.indexOf("/")!==-1?this.handleStepping(X,Q,J,G):X!==""&&this.handleNumber(X,Q,J,G)}throwAtIllegalCharacters(Q){for(let X=0;X<Q.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Q[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Q[X]+") contains illegal characters.")}handleNumber(Q,X,J,G){let Y=this.extractNth(Q,X),W=parseInt(Y[0],10)+J;if(isNaN(W))throw TypeError("CronPattern: "+X+" is not a number: '"+Q+"'");this.setPart(X,W,Y[1]||G)}setPart(Q,X,J){if(!Object.prototype.hasOwnProperty.call(this,Q))throw TypeError("CronPattern: Invalid part specified: "+Q);if(Q==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,J);return}if(Q==="second"||Q==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Q+": "+X);this[Q][X]=J}handleRangeWithStepping(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(W===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Q+"'");let[,$,K,Z]=W,H=parseInt($,10)+J,F=parseInt(K,10)+J,q=parseInt(Z,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(q))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(q===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(q>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(H>F)throw TypeError("CronPattern: From value is larger than to value: '"+Q+"'");for(let V=H;V<=F;V+=q)this.setPart(X,V,Y[1]||G)}extractNth(Q,X){let J=Q,G;if(J.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");G=J.split("#")[1],J=J.split("#")[0]}return[J,G]}handleRange(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].split("-");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Q+"'");let $=parseInt(W[0],10)+J,K=parseInt(W[1],10)+J;if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if($>K)throw TypeError("CronPattern: From value is larger than to value: '"+Q+"'");for(let Z=$;Z<=K;Z++)this.setPart(X,Z,Y[1]||G)}handleStepping(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].split("/");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Q+"'");W[0]===""&&(W[0]="*");let $=0;W[0]!=="*"&&($=parseInt(W[0],10)+J);let K=parseInt(W[1],10);if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(K===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(K>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let Z=$;Z<this[X].length;Z+=K)this.setPart(X,Z,Y[1]||G)}replaceAlphaDays(Q){return Q.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Q){return Q.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Q){let X=Q.trim().toLowerCase();return X==="@yearly"||X==="@annually"?"0 0 1 1 *":X==="@monthly"?"0 0 1 * *":X==="@weekly"?"0 0 * * 0":X==="@daily"?"0 0 * * *":X==="@hourly"?"0 * * * *":Q}setNthWeekdayOfMonth(Q,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Q]=this.dayOfWeek[Q]|uQ0;else if(X===mM)this.dayOfWeek[Q]=mM;else if(X<6&&X>0)this.dayOfWeek[Q]=this.dayOfWeek[Q]|HZ1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},KZ1,K$,HY=class Q{tz;ms;second;minute;hour;day;month;year;constructor(X,J){if(this.tz=J,X&&X instanceof Date)if(!isNaN(X))this.fromDate(X);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(X===void 0)this.fromDate(new Date);else if(X&&typeof X=="string")this.fromString(X);else if(X instanceof Q)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,J,G,Y){let W=new Date(Date.UTC(X,J,G)).getUTCDay(),$=0;for(let K=1;K<=G;K++)new Date(Date.UTC(X,J,K)).getUTCDay()===W&&$++;if(Y&mM&&HZ1[$-1]&Y)return!0;if(Y&uQ0){let K=new Date(Date.UTC(X,J+1,0)).getUTCDate();for(let Z=G+1;Z<=K;Z++)if(new Date(Date.UTC(X,J,Z)).getUTCDay()===W)return!1;return!0}return!1}fromDate(X){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes()+this.tz,this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply();else{let J=KQ.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=J.s,this.minute=J.i,this.hour=J.h,this.day=J.d,this.month=J.m-1,this.year=J.y}else this.ms=X.getMilliseconds(),this.second=X.getSeconds(),this.minute=X.getMinutes(),this.hour=X.getHours(),this.day=X.getDate(),this.month=X.getMonth(),this.year=X.getFullYear()}fromCronDate(X){this.tz=X.tz,this.year=X.year,this.month=X.month,this.day=X.day,this.hour=X.hour,this.minute=X.minute,this.second=X.second,this.ms=X.ms}apply(){if(this.month>11||this.day>KZ1[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let X=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),!0}else return!1}fromString(X){if(typeof this.tz=="number"){let J=KQ.fromTZISO(X);this.ms=J.getUTCMilliseconds(),this.second=J.getUTCSeconds(),this.minute=J.getUTCMinutes(),this.hour=J.getUTCHours(),this.day=J.getUTCDate(),this.month=J.getUTCMonth(),this.year=J.getUTCFullYear(),this.apply()}else return this.fromDate(KQ.fromTZISO(X,this.tz))}findNext(X,J,G,Y){let W=this[J],$;G.lastDayOfMonth&&(this.month!==1?$=KZ1[this.month]:$=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let K=!G.starDOW&&J=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let Z=this[J]+Y;Z<G[J].length;Z++){let H=G[J][Z];if(J==="day"&&G.lastDayOfMonth&&Z-Y==$&&(H=1),J==="day"&&!G.starDOW){let F=G.dayOfWeek[(K+(Z-Y-1))%7];if(F&&F&mM)F=this.isNthWeekdayOfMonth(this.year,this.month,Z-Y,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);X.legacyMode&&!G.starDOM?H=H||F:H=H&&F}if(H)return this[J]=Z-Y,W!==this[J]?2:1}return 3}recurse(X,J,G){let Y=this.findNext(J,K$[G][0],X,K$[G][2]);if(Y>1){let W=G+1;for(;W<K$.length;)this[K$[W][0]]=-K$[W][2],W++;if(Y===3)return this[K$[G][1]]++,this[K$[G][0]]=-K$[G][2],this.apply(),this.recurse(X,J,0);if(this.apply())return this.recurse(X,J,G-1)}return G+=1,G>=K$.length?this:this.year>=3000?null:this.recurse(X,J,G)}increment(X,J,G){return this.second+=J.interval!==void 0&&J.interval>1&&G?J.interval:1,this.ms=0,this.apply(),this.recurse(X,J,0)}getDate(X){return X||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):KQ.fromTZ(KQ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},ZZ1=30000,by,xy=class{name;options;_states;fn;constructor(Q,X,J){let G,Y;if(uM(X))Y=X;else if(typeof X=="object")G=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(uM(J))Y=J;else if(typeof J=="object")G=J;else if(J!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=G?.name,this.options=qh4(G),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:G?G.maxRuns:void 0,paused:G?G.paused:!1,pattern:new $Z1("* * * * *")},Q&&(Q instanceof Date||typeof Q=="string"&&Q.indexOf(":")>0)?this._states.once=new HY(Q,this.options.timezone||this.options.utcOffset):this._states.pattern=new $Z1(Q,this.options.timezone),this.name){if(by.find((W)=>W.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");by.push(this)}return Y!==void 0&&Vh4(Y)&&(this.fn=Y,this.schedule()),this}nextRun(Q){let X=this._next(Q);return X?X.getDate(!1):null}nextRuns(Q,X){this._states.maxRuns!==void 0&&Q>this._states.maxRuns&&(Q=this._states.maxRuns);let J=[],G=X||this._states.currentRun||void 0;for(;Q--&&(G=this.nextRun(G));)J.push(G);return J}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Q=this.nextRun(this._states.currentRun),X=!this._states.paused,J=this.fn!==void 0,G=!this._states.kill;return X&&J&&G&&Q!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Q){let X=this._next(Q);return X?Q instanceof HY||Q instanceof Date?X.getTime()-Q.getTime():X.getTime()-new HY(Q).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Q=by.indexOf(this);Q>=0&&by.splice(Q,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Q){if(Q&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Q&&(this.fn=Q);let X=this.msToNext(),J=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||J===null?this:(X>ZZ1&&(X=ZZ1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(J),X),this._states.currentTimeout&&this.options.unref&&zh4(this._states.currentTimeout),this)}async _trigger(Q){if(this._states.blocking=!0,this._states.currentRun=new HY(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(X){uM(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new HY(Q,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Q){let X=new Date,J=!this._states.paused&&X.getTime()>=Q.getTime(),G=this._states.blocking&&this.options.protect;J&&!G?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):J&&G&&uM(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Q){let X=!!(Q||this._states.currentRun),J=!1;!Q&&this.options.startAt&&this.options.interval&&([Q,X]=this._calculatePreviousRun(Q,X),J=!Q),Q=new HY(Q,this.options.timezone||this.options.utcOffset),this.options.startAt&&Q&&Q.getTime()<this.options.startAt.getTime()&&(Q=this.options.startAt);let G=this._states.once||new HY(Q,this.options.timezone||this.options.utcOffset);return!J&&G!==this._states.once&&(G=G.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Q.getTime()||G===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&G.getTime()>=this.options.stopAt.getTime()?null:G}_calculatePreviousRun(Q,X){let J=new HY(void 0,this.options.timezone||this.options.utcOffset),G=Q;if(this.options.startAt.getTime()<=J.getTime()){G=this.options.startAt;let Y=G.getTime()+this.options.interval*1000;for(;Y<=J.getTime();)G=new HY(G,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),Y=G.getTime()+this.options.interval*1000;X=!0}return G===null&&(G=void 0),[G,X]}};var mQ0=_(()=>{KQ.fromTZISO=(Q,X,J)=>KQ.fromTZ(Fh4(Q,X),J);KQ.fromTZ=function(Q,X){let J=new Date(Date.UTC(Q.y,Q.m-1,Q.d,Q.h,Q.i,Q.s)),G=gQ0(Q.tz,J),Y=new Date(J.getTime()-G),W=gQ0(Q.tz,Y);if(W-G===0)return Y;{let $=new Date(J.getTime()-W),K=gQ0(Q.tz,$);if(K-W===0)return $;if(!X&&K-W>0)return $;if(X)throw Error("Invalid date passed to fromTZ()");return Y}};KQ.toTZ=function(Q,X){let J=Q.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),G=new Date(J);return{y:G.getFullYear(),m:G.getMonth()+1,d:G.getDate(),h:G.getHours(),i:G.getMinutes(),s:G.getSeconds(),tz:X}};KQ.tp=(Q,X,J,G,Y,W,$)=>({y:Q,m:X,d:J,h:G,i:Y,s:W,tz:$});KQ.minitz=KQ;mM=31|uQ0,HZ1=[1,2,4,8,16],KZ1=[31,28,31,30,31,30,31,31,30,31,30,31],K$=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];by=[]});var gy;var lQ0=_(()=>{gy={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function FZ1(){return async(Q,X)=>{try{let J=await _Z.create(),G=await sK1(Q,{...J,auth:{...J.auth,user:{id:"notify-worker"}}}),W=await q00.forClient(G).ON_EVENTS({events:X});return{success:W.success,error:W.error,retryAfter:W.retryAfter,results:W.results}}catch(J){let G=J instanceof Error?J.message:String(J);return console.error(`[EventBus] Failed to notify connection ${Q}:`,G),{success:!1,error:G}}}}var qZ1=_(()=>{hy();Uv();fy()});function VZ1(Q){return{specversion:"1.0",id:Q.id,source:Q.source,type:Q.type,time:Q.time,subject:Q.subject??void 0,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema??void 0,data:Q.data??void 0}}function Uh4(Q){let X=new Map;for(let G of Q){let Y=G.subscription.connectionId,W=X.get(Y);if(W){if(W.deliveryIds.push(G.delivery.id),!W.seenEventIds.has(G.event.id))W.seenEventIds.add(G.event.id),W.events.push(VZ1(G.event))}else X.set(Y,{connectionId:G.subscription.connectionId,deliveryIds:[G.delivery.id],events:[VZ1(G.event)],seenEventIds:new Set([G.event.id])})}let J=new Map;for(let[G,Y]of X)J.set(G,{connectionId:Y.connectionId,deliveryIds:Y.deliveryIds,events:Y.events});return J}class dQ0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Q,X){this.storage=Q;this.notifySubscriber=FZ1(),this.config={...gy,...X}}async start(){if(this.running)return;let Q=await this.storage.resetStuckDeliveries();if(Q>0)console.log(`[EventBus] Reset ${Q} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing)return;this.processing=!0;try{await this.processEvents()}catch(Q){console.error("[EventBus] Error processing events:",Q)}finally{this.processing=!1}}async processEvents(){let Q=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Q.length===0)return;let X=Uh4(Q),J=new Set;for(let[G,Y]of X){try{let W=await this.notifySubscriber(Y.connectionId,Y.events);if(W.results&&Object.keys(W.results).length>0)await this.processPerEventResults(Y,W);else if(W.success)await this.storage.markDeliveriesDelivered(Y.deliveryIds);else if(W.retryAfter&&W.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(Y.deliveryIds,W.retryAfter);else await this.storage.markDeliveriesFailed(Y.deliveryIds,W.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(W){let $=W instanceof Error?W.message:String(W);console.error(`[EventBus] Failed to notify subscription ${G}:`,$),await this.storage.markDeliveriesFailed(Y.deliveryIds,$,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let W of Q)if(Y.deliveryIds.includes(W.delivery.id))J.add(W.event.id)}for(let G of J)try{await this.storage.updateEventStatus(G);let Y=Q.find((W)=>W.event.id===G)?.event;if(Y?.cron)await this.scheduleNextCronDelivery(Y)}catch(Y){console.error(`[EventBus] Failed to update event status ${G}:`,Y)}}async processPerEventResults(Q,X){let J=[],G=new Map,Y=[],W=new Map;for(let $=0;$<Q.events.length;$++){let K=Q.events?.[$];if(!K)continue;let Z=Q.deliveryIds?.[$];if(!Z)continue;W.set(K.id,Z)}for(let $ of Q.events){let K=W.get($.id);if(!K)continue;let Z=X.results?.[$.id];if(Z)if(Z.success)J.push(K);else if(Z.retryAfter&&Z.retryAfter>0){let H=G.get(Z.retryAfter)||[];H.push(K),G.set(Z.retryAfter,H)}else Y.push({deliveryId:K,error:Z.error||"Event processing failed"});else if(X.success)J.push(K);else if(X.retryAfter&&X.retryAfter>0){let H=G.get(X.retryAfter)||[];H.push(K),G.set(X.retryAfter,H)}else Y.push({deliveryId:K,error:X.error||"Batch processing failed"})}if(J.length>0)await this.storage.markDeliveriesDelivered(J);for(let[$,K]of G)await this.storage.scheduleRetryWithoutAttemptIncrement(K,$);if(Y.length>0){let $=new Map;for(let{deliveryId:K,error:Z}of Y){let H=$.get(Z)||[];H.push(K),$.set(Z,H)}for(let[K,Z]of $)await this.storage.markDeliveriesFailed(Z,K,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Q){if(!Q.cron)return;try{let J=new xy(Q.cron).nextRun();if(!J){console.log(`[EventBus] Cron expression for event ${Q.id} has no more runs`);return}let G=J.toISOString(),Y=await this.storage.getMatchingSubscriptions(Q);if(Y.length===0){console.log(`[EventBus] No subscriptions for cron event ${Q.id}, skipping next delivery`);return}await this.storage.createDeliveries(Q.id,Y.map((W)=>W.id),G),console.log(`[EventBus] Scheduled next cron delivery for event ${Q.id} at ${G}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Q.id}:`,X)}}}var zZ1=_(()=>{mQ0();lQ0();qZ1()});class pQ0{storage;worker;notifyStrategy;running=!1;constructor(Q){this.storage=Q.storage,this.notifyStrategy=Q.notifyStrategy,this.worker=new dQ0(this.storage,Q.config)}async publish(Q,X,J){if(J.deliverAt&&J.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let G;if(J.cron)try{let H=new xy(J.cron).nextRun();if(!H)throw Error("Cron expression does not produce a next run time");G=H.toISOString()}catch(Z){throw Error(`Invalid cron expression: ${Z instanceof Error?Z.message:String(Z)}`)}let Y=crypto.randomUUID(),W=new Date().toISOString(),$=await this.storage.publishEvent({id:Y,organizationId:Q,type:J.type,source:X,subject:J.subject,time:W,data:J.data,cron:J.cron}),K=await this.storage.getMatchingSubscriptions($);if(K.length>0){let Z=J.deliverAt??G;if(await this.storage.createDeliveries(Y,K.map((H)=>H.id),Z),this.notifyStrategy&&!Z)await this.notifyStrategy.notify(Y).catch((H)=>{console.warn("[EventBus] Notify failed (non-critical):",H)})}return $}async subscribe(Q,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Q,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Q,X){return this.storage.unsubscribe(X,Q)}async listSubscriptions(Q,X){return this.storage.listSubscriptions(Q,X)}async getSubscription(Q,X){return this.storage.getSubscription(X,Q)}async getEvent(Q,X){return this.storage.getEvent(X,Q)}async cancelEvent(Q,X,J){return this.storage.cancelEvent(X,Q,J)}async ackEvent(Q,X,J){return this.storage.ackDelivery(X,Q,J)}async syncSubscriptions(Q,X){return this.storage.syncSubscriptions({organizationId:Q,...X})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Q)=>{console.error("[EventBus] Error processing after notify:",Q)})});await this.worker.processNow().catch((Q)=>{console.error("[EventBus] Error processing pending events on startup:",Q)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Q){console.error("[EventBus] Error stopping notify strategy:",Q)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var UZ1=_(()=>{mQ0();zZ1()});function NZ1(...Q){return{async start(X){await Promise.all(Q.map((J)=>J.start(X)))},async stop(){await Promise.all(Q.map((X)=>X.stop().catch((J)=>{console.error("[NotifyStrategy] Error stopping strategy:",J)})))},async notify(X){await Promise.all(Q.map((J)=>J.notify(X).catch((G)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",G)})))}}}class uy{intervalMs;timer=null;onNotify=null;constructor(Q){this.intervalMs=Q}async start(Q){if(this.timer)return;this.onNotify=Q,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Q){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Nh4}from"kysely";class cQ0{db;pool;listenClient=null;onNotify=null;constructor(Q,X){this.db=Q;this.pool=X}async start(Q){if(this.listenClient)return;this.onNotify=Q;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===CN&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${CN}`),console.log("[PostgresNotify] Started LISTEN on",CN)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${CN}`),console.log("[PostgresNotify] Stopped LISTEN on",CN)}catch{}this.cleanup()}}async notify(Q){try{await Nh4`SELECT pg_notify(${CN}, ${Q})`.execute(this.db)}catch(X){console.warn("[PostgresNotify] Failed to send NOTIFY:",X)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var CN="mesh_events";var BZ1=()=>{};function OZ1(Q,X){let J=WZ1(Q.db),G=X?.pollIntervalMs??gy.pollIntervalMs,Y=Q.type==="postgres"?NZ1(new uy(G),new cQ0(Q.db,Q.pool)):new uy(G);return new pQ0({storage:J,config:X,notifyStrategy:Y})}var DZ1=_(()=>{UZ1();lQ0();BZ1()});var LZ1;var wZ1=_(()=>{LZ1={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var PZ1,MZ1;var TZ1=_(()=>{kZ();wU();wZ1();PZ1=new uQ;PZ1.get("/config",async(Q)=>{try{let X=Object.keys(q9.socialProviders??{}),J=X.length>0,G=X.map((W)=>({name:W,icon:LZ1[W].icon})),Y={emailAndPassword:{enabled:q9.emailAndPassword?.enabled??!1},magicLink:{enabled:q9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:J,providers:G},sso:q9.ssoConfig?{enabled:!0,providerId:q9.ssoConfig.providerId}:{enabled:!1}};return Q.json({success:!0,config:Y})}catch(X){let J=X instanceof Error?X.message:"Failed to load auth config";return Q.json({success:!1,error:J},500)}});MZ1=PZ1});class lM{proxies=new Map;constructor(){}static async create(Q,X){let J=new lM,G=await Promise.allSettled(Q.map(async({connection:Y,selectedTools:W,selectedResources:$,selectedPrompts:K})=>{try{let Z=await X.createMCPProxy(Y);return{connection:Y,proxy:Z,selectedTools:W,selectedResources:$,selectedPrompts:K}}catch(Z){return console.error(`[gateway] Failed to create proxy for connection ${Y.id}:`,Z),null}}));for(let Y of G)if(Y.status==="fulfilled"&&Y.value)J.proxies.set(Y.value.connection.id,Y.value);return J}get(Q){return this.proxies.get(Q)}entries(){return this.proxies.entries()}forEach(Q){this.proxies.forEach((X,J)=>Q(X,J))}async mapAsync(Q){let X=[];for(let[J,G]of this.proxies.entries())X.push(Q(G,J));return await Promise.all(X)}async mapSettled(Q){return Promise.allSettled(Array.from(this.proxies.entries()).map(([X,J])=>Q(J,X)))}get size(){return this.proxies.size}}function AZ1(Q){let X=[],J=[],G=(Z)=>{let H=Q.newFunction(Z,(...F)=>{try{let q=F.map((V)=>Q.dump(V));X.push({type:Z??"log",content:q.map(String).join(" ")})}finally{F.forEach((q)=>q.dispose())}return Q.undefined});return J.push(H),H},Y=Q.newObject();J.push(Y);let W=G("log"),$=G("warn"),K=G("error");return Q.setProp(Y,"log",W),Q.setProp(Y,"warn",$),Q.setProp(Y,"error",K),Q.setProp(Q.global,"console",Y),{logs:X,[Symbol.dispose](){J.forEach((Z)=>Z.dispose())}}}var dF,nQ0,my,pF,dM;var ly=_(()=>{dF={JS_EVAL_TYPE_GLOBAL:0,JS_EVAL_TYPE_MODULE:1,JS_EVAL_TYPE_DIRECT:2,JS_EVAL_TYPE_INDIRECT:3,JS_EVAL_TYPE_MASK:3,JS_EVAL_FLAG_STRICT:8,JS_EVAL_FLAG_STRIP:16,JS_EVAL_FLAG_COMPILE_ONLY:32,JS_EVAL_FLAG_BACKTRACE_BARRIER:64},nQ0={BaseObjects:1,Date:2,Eval:4,StringNormalize:8,RegExp:16,RegExpCompiler:32,JSON:64,Proxy:128,MapSet:256,TypedArrays:512,Promise:1024,BigInt:2048,BigFloat:4096,BigDecimal:8192,OperatorOverloading:16384,BignumExt:32768},my={Pending:0,Fulfilled:1,Rejected:2},pF={JS_GPN_STRING_MASK:1,JS_GPN_SYMBOL_MASK:2,JS_GPN_PRIVATE_MASK:4,JS_GPN_ENUM_ONLY:16,JS_GPN_SET_ENUM:32,QTS_GPN_NUMBER_MASK:64,QTS_STANDARD_COMPLIANT_NUMBER:128},dM={IsStrictlyEqual:0,IsSameValue:1,IsSameValueZero:2}});function RN(...Q){tQ0&&console.log("quickjs-emscripten:",...Q)}function*bZ1(Q){return yield Q}function Dh4(Q){return bZ1(QX0(Q))}function EZ1(Q,X){return(...J)=>{let G=X.call(Q,eQ0,...J);return QX0(G)}}function Lh4(Q,X){let J=X.call(Q,eQ0);return QX0(J)}function QX0(Q){function X(J){return J.done?J.value:J.value instanceof Promise?J.value.then((G)=>X(Q.next(G)),(G)=>X(Q.throw(G))):X(Q.next(J.value))}return X(Q.next())}function iQ0(Q,X){let J;try{Q.dispose()}catch(G){J=G}if(X&&J)throw Object.assign(X,{message:`${X.message}
1082
+ `}}_$1.PrometheusSerializer=k$1});var b$1=I((h$1)=>{Object.defineProperty(h$1,"__esModule",{value:!0});h$1.PrometheusExporter=void 0;var SM=z1(),Py4=W4(),zQ0=nW(),My4=A0("http"),Ty4=VQ0(),Ay4=A0("url");class $$ extends zQ0.MetricReader{static DEFAULT_OPTIONS={host:void 0,port:9464,endpoint:"/metrics",prefix:"",appendTimestamp:!1,withResourceConstantLabels:void 0,withoutTargetInfo:!1};_host;_port;_baseUrl;_endpoint;_server;_prefix;_appendTimestamp;_serializer;_startServerPromise;constructor(Q={},X=()=>{}){super({aggregationSelector:(Y)=>{return{type:zQ0.AggregationType.DEFAULT}},aggregationTemporalitySelector:(Y)=>zQ0.AggregationTemporality.CUMULATIVE,metricProducers:Q.metricProducers});this._host=Q.host||process.env.OTEL_EXPORTER_PROMETHEUS_HOST||$$.DEFAULT_OPTIONS.host,this._port=Q.port||Number(process.env.OTEL_EXPORTER_PROMETHEUS_PORT)||$$.DEFAULT_OPTIONS.port,this._prefix=Q.prefix||$$.DEFAULT_OPTIONS.prefix,this._appendTimestamp=typeof Q.appendTimestamp==="boolean"?Q.appendTimestamp:$$.DEFAULT_OPTIONS.appendTimestamp;let J=Q.withResourceConstantLabels||$$.DEFAULT_OPTIONS.withResourceConstantLabels,G=Q.withoutTargetInfo||$$.DEFAULT_OPTIONS.withoutTargetInfo;if(this._server=(0,My4.createServer)(this._requestHandler).unref(),this._serializer=new Ty4.PrometheusSerializer(this._prefix,this._appendTimestamp,J,G),this._baseUrl=`http://${this._host}:${this._port}/`,this._endpoint=(Q.endpoint||$$.DEFAULT_OPTIONS.endpoint).replace(/^([^/])/,"/$1"),Q.preventServerStart!==!0)this.startServer().then(X,(Y)=>{SM.diag.error(Y),X(Y)});else if(X)queueMicrotask(X)}async onForceFlush(){}onShutdown(){return this.stopServer()}stopServer(){if(!this._server)return SM.diag.debug("Prometheus stopServer() was called but server was never started."),Promise.resolve();else return new Promise((Q)=>{this._server.close((X)=>{if(!X)SM.diag.debug("Prometheus exporter was stopped");else if(X.code!=="ERR_SERVER_NOT_RUNNING")(0,Py4.globalErrorHandler)(X);Q()})})}startServer(){return this._startServerPromise??=new Promise((Q,X)=>{this._server.once("error",X),this._server.listen({port:this._port,host:this._host},()=>{SM.diag.debug(`Prometheus exporter server started: ${this._host}:${this._port}/${this._endpoint}`),Q()})}),this._startServerPromise}getMetricsRequestHandler(Q,X){this._exportMetrics(X)}_requestHandler=(Q,X)=>{if(Q.url!=null&&new Ay4.URL(Q.url,this._baseUrl).pathname===this._endpoint)this._exportMetrics(X);else this._notFound(X)};_exportMetrics=(Q)=>{Q.statusCode=200,Q.setHeader("content-type","text/plain"),this.collect().then((X)=>{let{resourceMetrics:J,errors:G}=X;if(G.length)SM.diag.error("PrometheusExporter: metrics collection errors",...G);Q.end(this._serializer.serialize(J))},(X)=>{Q.end(`# failed to export metrics: ${X}`)})};_notFound=(Q)=>{Q.statusCode=404,Q.end()}}h$1.PrometheusExporter=$$});var UQ0=I((Ly)=>{Object.defineProperty(Ly,"__esModule",{value:!0});Ly.PrometheusSerializer=Ly.PrometheusExporter=void 0;var Ey4=b$1();Object.defineProperty(Ly,"PrometheusExporter",{enumerable:!0,get:function(){return Ey4.PrometheusExporter}});var jy4=VQ0();Object.defineProperty(Ly,"PrometheusSerializer",{enumerable:!0,get:function(){return jy4.PrometheusSerializer}})});var wy,x$1,g$1,u$1,NQ0,Cy4,vM,m$1;var Py=_(()=>{wy=y4(z1(),1),x$1=y4(R$1(),1),g$1=y4(UQ0(),1),u$1=y4(l50(),1),NQ0=new g$1.PrometheusExporter({preventServerStart:!0}),Cy4=new x$1.NodeSDK({serviceName:"mcp-mesh",traceExporter:new u$1.OTLPTraceExporter({url:process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT||process.env.OTEL_EXPORTER_OTLP_ENDPOINT||"http://localhost:4318/v1/traces"}),metricReader:NQ0});Cy4.start();vM=wy.trace.getTracer("mcp-mesh","1.0.0"),m$1=wy.metrics.getMeter("mcp-mesh","1.0.0")});var BQ0=(Q,X,J)=>{return(G,Y)=>{let W=-1;return $(0);async function $(K){if(K<=W)throw Error("next() called multiple times");W=K;let Z,H=!1,F;if(Q[K])F=Q[K][0][0],G.req.routeIndex=K;else F=K===Q.length&&Y||void 0;if(F)try{Z=await F(G,()=>$(K+1))}catch(q){if(q instanceof Error&&X)G.error=q,Z=await X(q,G),H=!0;else throw q}else if(G.finalized===!1&&J)Z=await J(G);if(Z&&(G.finalized===!1||H))G.res=Z;return G}}};var l$1=()=>{};var OQ0;var DQ0=_(()=>{OQ0=class extends Error{res;status;constructor(Q=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Q}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var d$1;var p$1=_(()=>{d$1=Symbol()});async function Ry4(Q,X){let J=await Q.formData();if(J)return Sy4(J,X);return{}}function Sy4(Q,X){let J=Object.create(null);if(Q.forEach((G,Y)=>{if(!(X.all||Y.endsWith("[]")))J[Y]=G;else vy4(J,Y,G)}),X.dot)Object.entries(J).forEach(([G,Y])=>{if(G.includes("."))ky4(J,G,Y),delete J[G]});return J}var c$1=async(Q,X=Object.create(null))=>{let{all:J=!1,dot:G=!1}=X,W=(Q instanceof My?Q.raw.headers:Q.headers).get("Content-Type");if(W?.startsWith("multipart/form-data")||W?.startsWith("application/x-www-form-urlencoded"))return Ry4(Q,{all:J,dot:G});return{}},vy4=(Q,X,J)=>{if(Q[X]!==void 0)if(Array.isArray(Q[X]))Q[X].push(J);else Q[X]=[Q[X],J];else if(!X.endsWith("[]"))Q[X]=J;else Q[X]=[J]},ky4=(Q,X,J)=>{let G=Q,Y=X.split(".");Y.forEach((W,$)=>{if($===Y.length-1)G[W]=J;else{if(!G[W]||typeof G[W]!=="object"||Array.isArray(G[W])||G[W]instanceof File)G[W]=Object.create(null);G=G[W]}})};var n$1=_(()=>{LQ0()});var PQ0=(Q)=>{let X=Q.split("/");if(X[0]==="")X.shift();return X},i$1=(Q)=>{let{groups:X,path:J}=_y4(Q),G=PQ0(J);return yy4(G,X)},_y4=(Q)=>{let X=[];return Q=Q.replace(/\{[^}]+\}/g,(J,G)=>{let Y=`@${G}`;return X.push([Y,J]),Y}),{groups:X,path:Q}},yy4=(Q,X)=>{for(let J=X.length-1;J>=0;J--){let[G]=X[J];for(let Y=Q.length-1;Y>=0;Y--)if(Q[Y].includes(G)){Q[Y]=Q[Y].replace(G,X[J][1]);break}}return Q},Ty,r$1=(Q,X)=>{if(Q==="*")return"*";let J=Q.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(J){let G=`${Q}#${X}`;if(!Ty[G])if(J[2])Ty[G]=X&&X[0]!==":"&&X[0]!=="*"?[G,J[1],new RegExp(`^${J[2]}(?=/${X})`)]:[Q,J[1],new RegExp(`^${J[2]}$`)];else Ty[G]=[Q,J[1],!0];return Ty[G]}return null},Ay=(Q,X)=>{try{return X(Q)}catch{return Q.replace(/(?:%[0-9A-Fa-f]{2})+/g,(J)=>{try{return X(J)}catch{return J}})}},hy4=(Q)=>Ay(Q,decodeURI),MQ0=(Q)=>{let X=Q.url,J=X.indexOf("/",X.indexOf(":")+4),G=J;for(;G<X.length;G++){let Y=X.charCodeAt(G);if(Y===37){let W=X.indexOf("?",G),$=X.slice(J,W===-1?void 0:W);return hy4($.includes("%25")?$.replace(/%25/g,"%2525"):$)}else if(Y===63)break}return X.slice(J,G)},a$1=(Q)=>{let X=MQ0(Q);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},uF=(Q,X,...J)=>{if(J.length)X=uF(X,...J);return`${Q?.[0]==="/"?"":"/"}${Q}${X==="/"?"":`${Q?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},Ey=(Q)=>{if(Q.charCodeAt(Q.length-1)!==63||!Q.includes(":"))return null;let X=Q.split("/"),J=[],G="";return X.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))G+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(J.length===0&&G==="")J.push("/");else J.push(G);let W=Y.replace("?","");G+="/"+W,J.push(G)}else G+="/"+Y}),J.filter((Y,W,$)=>$.indexOf(Y)===W)},wQ0=(Q)=>{if(!/[%+]/.test(Q))return Q;if(Q.indexOf("+")!==-1)Q=Q.replace(/\+/g," ");return Q.indexOf("%")!==-1?Ay(Q,TQ0):Q},o$1=(Q,X,J)=>{let G;if(!J&&X&&!/[%+]/.test(X)){let $=Q.indexOf("?",8);if($===-1)return;if(!Q.startsWith(X,$+1))$=Q.indexOf(`&${X}`,$+1);while($!==-1){let K=Q.charCodeAt($+X.length+1);if(K===61){let Z=$+X.length+2,H=Q.indexOf("&",Z);return wQ0(Q.slice(Z,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";$=Q.indexOf(`&${X}`,$+1)}if(G=/[%+]/.test(Q),!G)return}let Y={};G??=/[%+]/.test(Q);let W=Q.indexOf("?",8);while(W!==-1){let $=Q.indexOf("&",W+1),K=Q.indexOf("=",W);if(K>$&&$!==-1)K=-1;let Z=Q.slice(W+1,K===-1?$===-1?void 0:$:K);if(G)Z=wQ0(Z);if(W=$,Z==="")continue;let H;if(K===-1)H="";else if(H=Q.slice(K+1,$===-1?void 0:$),G)H=wQ0(H);if(J){if(!(Y[Z]&&Array.isArray(Y[Z])))Y[Z]=[];Y[Z].push(H)}else Y[Z]??=H}return X?Y[X]:Y},s$1,t$1=(Q,X)=>{return o$1(Q,X,!0)},TQ0;var EN=_(()=>{Ty={},s$1=o$1,TQ0=decodeURIComponent});var e$1=(Q)=>Ay(Q,TQ0),My;var LQ0=_(()=>{DQ0();p$1();n$1();EN();My=class{raw;#Q;#X;routeIndex=0;path;bodyCache={};constructor(Q,X="/",J=[[]]){this.raw=Q,this.path=X,this.#X=J,this.#Q={}}param(Q){return Q?this.#J(Q):this.#Y()}#J(Q){let X=this.#X[0][this.routeIndex][1][Q],J=this.#W(X);return J&&/\%/.test(J)?e$1(J):J}#Y(){let Q={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let J of X){let G=this.#W(this.#X[0][this.routeIndex][1][J]);if(G!==void 0)Q[J]=/\%/.test(G)?e$1(G):G}return Q}#W(Q){return this.#X[1]?this.#X[1][Q]:Q}query(Q){return s$1(this.url,Q)}queries(Q){return t$1(this.url,Q)}header(Q){if(Q)return this.raw.headers.get(Q)??void 0;let X={};return this.raw.headers.forEach((J,G)=>{X[G]=J}),X}async parseBody(Q){return this.bodyCache.parsedBody??=await c$1(this,Q)}#G=(Q)=>{let{bodyCache:X,raw:J}=this,G=X[Q];if(G)return G;let Y=Object.keys(X)[0];if(Y)return X[Y].then((W)=>{if(Y==="json")W=JSON.stringify(W);return new Response(W)[Q]()});return X[Q]=J[Q]()};json(){return this.#G("text").then((Q)=>JSON.parse(Q))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Q,X){this.#Q[Q]=X}valid(Q){return this.#Q[Q]}get url(){return this.raw.url}get method(){return this.raw.method}get[d$1](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Q]])=>Q)}get routePath(){return this.#X[0].map(([[,Q]])=>Q)[this.routeIndex].path}}});var QK1,fy4=(Q,X)=>{let J=new String(Q);return J.isEscaped=!0,J.callbacks=X,J},AQ0=async(Q,X,J,G,Y)=>{if(typeof Q==="object"&&!(Q instanceof String)){if(!(Q instanceof Promise))Q=Q.toString();if(Q instanceof Promise)Q=await Q}let W=Q.callbacks;if(!W?.length)return Promise.resolve(Q);if(Y)Y[0]+=Q;else Y=[Q];let $=Promise.all(W.map((K)=>K({phase:X,buffer:Y,context:G}))).then((K)=>Promise.all(K.filter(Boolean).map((Z)=>AQ0(Z,X,!1,G,Y))).then(()=>Y[0]));if(J)return fy4(await $,W);else return $};var XK1=_(()=>{QK1={Stringify:1,BeforeStream:2,Stream:3}});var by4="text/plain; charset=UTF-8",EQ0=(Q,X)=>{return{"Content-Type":Q,...X}},JK1=class{#Q;#X;env={};#J;finalized=!1;error;#Y;#W;#G;#K;#$;#H;#Z;#q;#V;constructor(Q,X){if(this.#Q=Q,X)this.#W=X.executionCtx,this.env=X.env,this.#H=X.notFoundHandler,this.#V=X.path,this.#q=X.matchResult}get req(){return this.#X??=new My(this.#Q,this.#V,this.#q),this.#X}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#Z??=new Headers})}set res(Q){if(this.#G&&Q){Q=new Response(Q.body,Q);for(let[X,J]of this.#G.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let G=this.#G.headers.getSetCookie();Q.headers.delete("set-cookie");for(let Y of G)Q.headers.append("set-cookie",Y)}else Q.headers.set(X,J)}}this.#G=Q,this.finalized=!0}render=(...Q)=>{return this.#$??=(X)=>this.html(X),this.#$(...Q)};setLayout=(Q)=>this.#K=Q;getLayout=()=>this.#K;setRenderer=(Q)=>{this.#$=Q};header=(Q,X,J)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let G=this.#G?this.#G.headers:this.#Z??=new Headers;if(X===void 0)G.delete(Q);else if(J?.append)G.append(Q,X);else G.set(Q,X)};status=(Q)=>{this.#Y=Q};set=(Q,X)=>{this.#J??=new Map,this.#J.set(Q,X)};get=(Q)=>{return this.#J?this.#J.get(Q):void 0};get var(){if(!this.#J)return{};return Object.fromEntries(this.#J)}#F(Q,X,J){let G=this.#G?new Headers(this.#G.headers):this.#Z??new Headers;if(typeof X==="object"&&"headers"in X){let W=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[$,K]of W)if($.toLowerCase()==="set-cookie")G.append($,K);else G.set($,K)}if(J)for(let[W,$]of Object.entries(J))if(typeof $==="string")G.set(W,$);else{G.delete(W);for(let K of $)G.append(W,K)}let Y=typeof X==="number"?X:X?.status??this.#Y;return new Response(Q,{status:Y,headers:G})}newResponse=(...Q)=>this.#F(...Q);body=(Q,X,J)=>this.#F(Q,X,J);text=(Q,X,J)=>{return!this.#Z&&!this.#Y&&!X&&!J&&!this.finalized?new Response(Q):this.#F(Q,X,EQ0(by4,J))};json=(Q,X,J)=>{return this.#F(JSON.stringify(Q),X,EQ0("application/json",J))};html=(Q,X,J)=>{let G=(Y)=>this.#F(Y,X,EQ0("text/html; charset=UTF-8",J));return typeof Q==="object"?AQ0(Q,QK1.Stringify,!1,{}).then(G):G(Q)};redirect=(Q,X)=>{let J=String(Q);return this.header("Location",!/[^\x00-\xFF]/.test(J)?J:encodeURI(J)),this.newResponse(null,X??302)};notFound=()=>{return this.#H??=()=>new Response,this.#H(this)}};var YK1=_(()=>{LQ0();XK1()});var Z8="ALL",GK1="all",WK1,jy="Can not add a route since the matcher is already built.",Iy;var mF=_(()=>{WK1=["get","post","put","delete","options","patch"],Iy=class extends Error{}});var $K1="__COMPOSED_HANDLER";var KK1=()=>{};var xy4=(Q)=>{return Q.text("404 Not Found",404)},ZK1=(Q,X)=>{if("getResponse"in Q){let J=Q.getResponse();return X.newResponse(J.body,J)}return console.error(Q),X.text("Internal Server Error",500)},HK1=class Q{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Q="/";routes=[];constructor(X={}){[...WK1,GK1].forEach((W)=>{this[W]=($,...K)=>{if(typeof $==="string")this.#Q=$;else this.#Y(W,this.#Q,$);return K.forEach((Z)=>{this.#Y(W,this.#Q,Z)}),this}}),this.on=(W,$,...K)=>{for(let Z of[$].flat()){this.#Q=Z;for(let H of[W].flat())K.map((F)=>{this.#Y(H.toUpperCase(),this.#Q,F)})}return this},this.use=(W,...$)=>{if(typeof W==="string")this.#Q=W;else this.#Q="*",$.unshift(W);return $.forEach((K)=>{this.#Y(Z8,this.#Q,K)}),this};let{strict:G,...Y}=X;Object.assign(this,Y),this.getPath=G??!0?X.getPath??MQ0:a$1}#X(){let X=new Q({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#J=this.#J,X.routes=this.routes,X}#J=xy4;errorHandler=ZK1;route(X,J){let G=this.basePath(X);return J.routes.map((Y)=>{let W;if(J.errorHandler===ZK1)W=Y.handler;else W=async($,K)=>(await BQ0([],J.errorHandler)($,()=>Y.handler($,K))).res,W[$K1]=Y.handler;G.#Y(Y.method,Y.path,W)}),this}basePath(X){let J=this.#X();return J._basePath=uF(this._basePath,X),J}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#J=X,this};mount(X,J,G){let Y,W;if(G)if(typeof G==="function")W=G;else if(W=G.optionHandler,G.replaceRequest===!1)Y=(Z)=>Z;else Y=G.replaceRequest;let $=W?(Z)=>{let H=W(Z);return Array.isArray(H)?H:[H]}:(Z)=>{let H=void 0;try{H=Z.executionCtx}catch{}return[Z.env,H]};Y||=(()=>{let Z=uF(this._basePath,X),H=Z==="/"?0:Z.length;return(F)=>{let q=new URL(F.url);return q.pathname=q.pathname.slice(H)||"/",new Request(q,F)}})();let K=async(Z,H)=>{let F=await J(Y(Z.req.raw),...$(Z));if(F)return F;await H()};return this.#Y(Z8,uF(X,"*"),K),this}#Y(X,J,G){X=X.toUpperCase(),J=uF(this._basePath,J);let Y={basePath:this._basePath,path:J,method:X,handler:G};this.router.add(X,J,[G,Y]),this.routes.push(Y)}#W(X,J){if(X instanceof Error)return this.errorHandler(X,J);throw X}#G(X,J,G,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#G(X,J,G,"GET")))();let W=this.getPath(X,{env:G}),$=this.router.match(Y,W),K=new JK1(X,{path:W,matchResult:$,env:G,executionCtx:J,notFoundHandler:this.#J});if($[0].length===1){let H;try{H=$[0][0][0][0](K,async()=>{K.res=await this.#J(K)})}catch(F){return this.#W(F,K)}return H instanceof Promise?H.then((F)=>F||(K.finalized?K.res:this.#J(K))).catch((F)=>this.#W(F,K)):H??this.#J(K)}let Z=BQ0($[0],this.errorHandler,this.#J);return(async()=>{try{let H=await Z(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#W(H,K)}})()}fetch=(X,...J)=>{return this.#G(X,J[1],J[0],X.method)};request=(X,J,G,Y)=>{if(X instanceof Request)return this.fetch(J?new Request(X,J):X,G,Y);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${uF("/",X)}`,J),G,Y)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#G(X.request,X,void 0,X.request.method))})}};var FK1=_(()=>{l$1();YK1();mF();KK1();EN()});function Cy(Q,X){let J=this.buildAllMatchers(),G=(Y,W)=>{let $=J[Y]||J[Z8],K=$[2][W];if(K)return K;let Z=W.match($[0]);if(!Z)return[[],kM];let H=Z.indexOf("",1);return[$[1][H],Z]};return this.match=G,G(Q,X)}var kM;var jQ0=_(()=>{mF();kM=[]});function uy4(Q,X){if(Q.length===1)return X.length===1?Q<X?-1:1:-1;if(X.length===1)return 1;if(Q===_M||Q===yM)return 1;else if(X===_M||X===yM)return-1;if(Q===Ry)return 1;else if(X===Ry)return-1;return Q.length===X.length?Q<X?-1:1:X.length-Q.length}var Ry="[^/]+",_M=".*",yM="(?:|/.*)",lF,gy4,qK1=class Q{#Q;#X;#J=Object.create(null);insert(X,J,G,Y,W){if(X.length===0){if(this.#Q!==void 0)throw lF;if(W)return;this.#Q=J;return}let[$,...K]=X,Z=$==="*"?K.length===0?["","",_M]:["","",Ry]:$==="/*"?["","",yM]:$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(Z){let F=Z[1],q=Z[2]||Ry;if(F&&Z[2]){if(q===".*")throw lF;if(q=q.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(q))throw lF}if(H=this.#J[q],!H){if(Object.keys(this.#J).some((V)=>V!==_M&&V!==yM))throw lF;if(W)return;if(H=this.#J[q]=new Q,F!=="")H.#X=Y.varIndex++}if(!W&&F!=="")G.push([F,H.#X])}else if(H=this.#J[$],!H){if(Object.keys(this.#J).some((F)=>F.length>1&&F!==_M&&F!==yM))throw lF;if(W)return;H=this.#J[$]=new Q}H.insert(K,J,G,Y,W)}buildRegExpStr(){let J=Object.keys(this.#J).sort(uy4).map((G)=>{let Y=this.#J[G];return(typeof Y.#X==="number"?`(${G})@${Y.#X}`:gy4.has(G)?`\\${G}`:G)+Y.buildRegExpStr()});if(typeof this.#Q==="number")J.unshift(`#${this.#Q}`);if(J.length===0)return"";if(J.length===1)return J[0];return"(?:"+J.join("|")+")"}};var IQ0=_(()=>{lF=Symbol(),gy4=new Set(".\\+*[^]$()")});var VK1=class{#Q={varIndex:0};#X=new qK1;insert(Q,X,J){let G=[],Y=[];for(let $=0;;){let K=!1;if(Q=Q.replace(/\{[^}]+\}/g,(Z)=>{let H=`@\\${$}`;return Y[$]=[H,Z],$++,K=!0,H}),!K)break}let W=Q.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let $=Y.length-1;$>=0;$--){let[K]=Y[$];for(let Z=W.length-1;Z>=0;Z--)if(W[Z].indexOf(K)!==-1){W[Z]=W[Z].replace(K,Y[$][1]);break}}return this.#X.insert(W,X,G,this.#Q,J),G}buildRegExp(){let Q=this.#X.buildRegExpStr();if(Q==="")return[/^$/,[],[]];let X=0,J=[],G=[];return Q=Q.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,W,$)=>{if(W!==void 0)return J[++X]=Number(W),"$()";if($!==void 0)return G[Number($)]=++X,"";return""}),[new RegExp(`^${Q}`),J,G]}};var zK1=_(()=>{IQ0()});function NK1(Q){return UK1[Q]??=new RegExp(Q==="*"?"":`^${Q.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,J)=>J?`\\${J}`:"(?:|/.*)")}$`)}function ly4(){UK1=Object.create(null)}function dy4(Q){let X=new VK1,J=[];if(Q.length===0)return my4;let G=Q.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,F],[q,V])=>H?1:q?-1:F.length-V.length),Y=Object.create(null);for(let H=0,F=-1,q=G.length;H<q;H++){let[V,z,U]=G[H];if(V)Y[z]=[U.map(([D])=>[D,Object.create(null)]),kM];else F++;let N;try{N=X.insert(z,F,V)}catch(D){throw D===lF?new Iy(z):D}if(V)continue;J[F]=U.map(([D,P])=>{let j=Object.create(null);P-=1;for(;P>=0;P--){let[M,T]=N[P];j[M]=T}return[D,j]})}let[W,$,K]=X.buildRegExp();for(let H=0,F=J.length;H<F;H++)for(let q=0,V=J[H].length;q<V;q++){let z=J[H][q]?.[1];if(!z)continue;let U=Object.keys(z);for(let N=0,D=U.length;N<D;N++)z[U[N]]=K[z[U[N]]]}let Z=[];for(let H in $)Z[H]=J[$[H]];return[W,Z,Y]}function jN(Q,X){if(!Q)return;for(let J of Object.keys(Q).sort((G,Y)=>Y.length-G.length))if(NK1(J).test(X))return[...Q[J]];return}var my4,UK1,Sy=class{name="RegExpRouter";#Q;#X;constructor(){this.#Q={[Z8]:Object.create(null)},this.#X={[Z8]:Object.create(null)}}add(Q,X,J){let G=this.#Q,Y=this.#X;if(!G||!Y)throw Error(jy);if(!G[Q])[G,Y].forEach((K)=>{K[Q]=Object.create(null),Object.keys(K[Z8]).forEach((Z)=>{K[Q][Z]=[...K[Z8][Z]]})});if(X==="/*")X="*";let W=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let K=NK1(X);if(Q===Z8)Object.keys(G).forEach((Z)=>{G[Z][X]||=jN(G[Z],X)||jN(G[Z8],X)||[]});else G[Q][X]||=jN(G[Q],X)||jN(G[Z8],X)||[];Object.keys(G).forEach((Z)=>{if(Q===Z8||Q===Z)Object.keys(G[Z]).forEach((H)=>{K.test(H)&&G[Z][H].push([J,W])})}),Object.keys(Y).forEach((Z)=>{if(Q===Z8||Q===Z)Object.keys(Y[Z]).forEach((H)=>K.test(H)&&Y[Z][H].push([J,W]))});return}let $=Ey(X)||[X];for(let K=0,Z=$.length;K<Z;K++){let H=$[K];Object.keys(Y).forEach((F)=>{if(Q===Z8||Q===F)Y[F][H]||=[...jN(G[F],H)||jN(G[Z8],H)||[]],Y[F][H].push([J,W-Z+K+1])})}}match=Cy;buildAllMatchers(){let Q=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Q)).forEach((X)=>{Q[X]||=this.#J(X)}),this.#Q=this.#X=void 0,ly4(),Q}#J(Q){let X=[],J=Q===Z8;if([this.#Q,this.#X].forEach((G)=>{let Y=G[Q]?Object.keys(G[Q]).map((W)=>[W,G[Q][W]]):[];if(Y.length!==0)J||=!0,X.push(...Y);else if(Q!==Z8)X.push(...Object.keys(G[Z8]).map((W)=>[W,G[Z8][W]]))}),!J)return null;else return dy4(X)}};var CQ0=_(()=>{mF();EN();jQ0();IQ0();zK1();my4=[/^$/,[],Object.create(null)],UK1=Object.create(null)});var py4=class{name="PreparedRegExpRouter";#Q;#X;constructor(Q,X){this.#Q=Q,this.#X=X}#J(Q,X){let J=this.#Q[Q];J[1].forEach((G)=>G&&G.push(X)),Object.values(J[2]).forEach((G)=>G[0].push(X))}#Y(Q,X,J,G,Y){let W=this.#Q[Q];if(!Y)W[2][X][0].push([J,{}]);else G.forEach(($)=>{if(typeof $==="number")W[1][$].push([J,Y]);else W[2][$||X][0].push([J,Y])})}add(Q,X,J){if(!this.#Q[Q]){let Y=this.#Q[Z8],W={};for(let $ in Y[2])W[$]=[Y[2][$][0].slice(),kM];this.#Q[Q]=[Y[0],Y[1].map(($)=>Array.isArray($)?$.slice():0),W]}if(X==="/*"||X==="*"){let Y=[J,{}];if(Q===Z8)for(let W in this.#Q)this.#J(W,Y);else this.#J(Q,Y);return}let G=this.#X[X];if(!G)throw Error(`Path ${X} is not registered`);for(let[Y,W]of G)if(Q===Z8)for(let $ in this.#Q)this.#Y($,X,J,Y,W);else this.#Y(Q,X,J,Y,W)}buildAllMatchers(){return this.#Q}match=Cy};var BK1=_(()=>{mF();jQ0();CQ0()});var OK1=_(()=>{CQ0();BK1()});var RQ0=class{name="SmartRouter";#Q=[];#X=[];constructor(Q){this.#Q=Q.routers}add(Q,X,J){if(!this.#X)throw Error(jy);this.#X.push([Q,X,J])}match(Q,X){if(!this.#X)throw Error("Fatal error");let J=this.#Q,G=this.#X,Y=J.length,W=0,$;for(;W<Y;W++){let K=J[W];try{for(let Z=0,H=G.length;Z<H;Z++)K.add(...G[Z]);$=K.match(Q,X)}catch(Z){if(Z instanceof Iy)continue;throw Z}this.match=K.match.bind(K),this.#Q=[K],this.#X=void 0;break}if(W===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,$}get activeRouter(){if(this.#X||this.#Q.length!==1)throw Error("No active router has been determined yet.");return this.#Q[0]}};var DK1=_(()=>{mF()});var LK1=_(()=>{DK1()});var hM,wK1=class Q{#Q;#X;#J;#Y=0;#W=hM;constructor(X,J,G){if(this.#X=G||Object.create(null),this.#Q=[],X&&J){let Y=Object.create(null);Y[X]={handler:J,possibleKeys:[],score:0},this.#Q=[Y]}this.#J=[]}insert(X,J,G){this.#Y=++this.#Y;let Y=this,W=i$1(J),$=[];for(let K=0,Z=W.length;K<Z;K++){let H=W[K],F=W[K+1],q=r$1(H,F),V=Array.isArray(q)?q[0]:H;if(V in Y.#X){if(Y=Y.#X[V],q)$.push(q[1]);continue}if(Y.#X[V]=new Q,q)Y.#J.push(q),$.push(q[1]);Y=Y.#X[V]}return Y.#Q.push({[X]:{handler:G,possibleKeys:$.filter((K,Z,H)=>H.indexOf(K)===Z),score:this.#Y}}),Y}#G(X,J,G,Y){let W=[];for(let $=0,K=X.#Q.length;$<K;$++){let Z=X.#Q[$],H=Z[J]||Z[Z8],F={};if(H!==void 0){if(H.params=Object.create(null),W.push(H),G!==hM||Y&&Y!==hM)for(let q=0,V=H.possibleKeys.length;q<V;q++){let z=H.possibleKeys[q],U=F[H.score];H.params[z]=Y?.[z]&&!U?Y[z]:G[z]??Y?.[z],F[H.score]=!0}}}return W}search(X,J){let G=[];this.#W=hM;let W=[this],$=PQ0(J),K=[];for(let Z=0,H=$.length;Z<H;Z++){let F=$[Z],q=Z===H-1,V=[];for(let z=0,U=W.length;z<U;z++){let N=W[z],D=N.#X[F];if(D)if(D.#W=N.#W,q){if(D.#X["*"])G.push(...this.#G(D.#X["*"],X,N.#W));G.push(...this.#G(D,X,N.#W))}else V.push(D);for(let P=0,j=N.#J.length;P<j;P++){let M=N.#J[P],T=N.#W===hM?{}:{...N.#W};if(M==="*"){let y=N.#X["*"];if(y)G.push(...this.#G(y,X,N.#W)),y.#W=T,V.push(y);continue}let[A,E,C]=M;if(!F&&!(C instanceof RegExp))continue;let v=N.#X[A],k=$.slice(Z).join("/");if(C instanceof RegExp){let y=C.exec(k);if(y){if(T[E]=y[0],G.push(...this.#G(v,X,N.#W,T)),Object.keys(v.#X).length){v.#W=T;let f=y[0].match(/\//)?.length??0;(K[f]||=[]).push(v)}continue}}if(C===!0||C.test(F))if(T[E]=F,q){if(G.push(...this.#G(v,X,T,N.#W)),v.#X["*"])G.push(...this.#G(v.#X["*"],X,T,N.#W))}else v.#W=T,V.push(v)}}W=V.concat(K.shift()??[])}if(G.length>1)G.sort((Z,H)=>{return Z.score-H.score});return[G.map(({handler:Z,params:H})=>[Z,H])]}};var PK1=_(()=>{mF();EN();hM=Object.create(null)});var SQ0=class{name="TrieRouter";#Q;constructor(){this.#Q=new wK1}add(Q,X,J){let G=Ey(X);if(G){for(let Y=0,W=G.length;Y<W;Y++)this.#Q.insert(Q,G[Y],J);return}this.#Q.insert(Q,X,J)}match(Q,X){return this.#Q.search(Q,X)}};var MK1=_(()=>{EN();PK1()});var TK1=_(()=>{MK1()});var uQ;var AK1=_(()=>{FK1();OK1();LK1();TK1();uQ=class extends HK1{constructor(Q={}){super(Q);this.router=Q.router??new RQ0({routers:[new Sy,new SQ0]})}}});var kZ=_(()=>{AK1()});var EK1=(Q)=>{let J={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Q},G=((W)=>{if(typeof W==="string")if(W==="*")return()=>W;else return($)=>W===$?$:null;else if(typeof W==="function")return W;else return($)=>W.includes($)?$:null})(J.origin),Y=((W)=>{if(typeof W==="function")return W;else if(Array.isArray(W))return()=>W;else return()=>[]})(J.allowMethods);return async function($,K){function Z(F,q){$.res.headers.set(F,q)}let H=await G($.req.header("origin")||"",$);if(H)Z("Access-Control-Allow-Origin",H);if(J.credentials)Z("Access-Control-Allow-Credentials","true");if(J.exposeHeaders?.length)Z("Access-Control-Expose-Headers",J.exposeHeaders.join(","));if($.req.method==="OPTIONS"){if(J.origin!=="*")Z("Vary","Origin");if(J.maxAge!=null)Z("Access-Control-Max-Age",J.maxAge.toString());let F=await Y($.req.header("origin")||"",$);if(F.length)Z("Access-Control-Allow-Methods",F.join(","));let q=J.allowHeaders;if(!q?.length){let V=$.req.header("Access-Control-Request-Headers");if(V)q=V.split(/\s*,\s*/)}if(q?.length)Z("Access-Control-Allow-Headers",q.join(",")),$.res.headers.append("Vary","Access-Control-Request-Headers");return $.res.headers.delete("Content-Length"),$.res.headers.delete("Content-Type"),new Response(null,{headers:$.res.headers,status:204,statusText:"No Content"})}if(await K(),J.origin!=="*")$.header("Vary","Origin",{append:!0})}};var jK1=()=>{};function cy4(){let{process:Q,Deno:X}=globalThis;return!(typeof X?.noColor==="boolean"?X.noColor:Q!==void 0?"NO_COLOR"in Q?.env:!1)}async function IK1(){let{navigator:Q}=globalThis,X="cloudflare:workers";return!(Q!==void 0&&Q.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!cy4())}var CK1=()=>{};async function RK1(Q,X,J,G,Y=0,W){let $=X==="<--"?`${X} ${J} ${G}`:`${X} ${J} ${G} ${await ry4(Y)} ${W}`;Q($)}var ny4=(Q)=>{let[X,J]=[",","."];return Q.map((Y)=>Y.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+X)).join(J)},iy4=(Q)=>{let X=Date.now()-Q;return ny4([X<1000?X+"ms":Math.round(X/1000)+"s"])},ry4=async(Q)=>{if(await IK1())switch(Q/100|0){case 5:return`\x1B[31m${Q}\x1B[0m`;case 4:return`\x1B[33m${Q}\x1B[0m`;case 3:return`\x1B[36m${Q}\x1B[0m`;case 2:return`\x1B[32m${Q}\x1B[0m`}return`${Q}`},SK1=(Q=console.log)=>{return async function(J,G){let{method:Y,url:W}=J.req,$=W.slice(W.indexOf("/",8));await RK1(Q,"<--",Y,$);let K=Date.now();await G(),await RK1(Q,"-->",Y,$,J.res.status,iy4(K))}};var vK1=_(()=>{CK1()});import{randomBytes as ay4}from"crypto";function kK1(){if(fM)return fM;let Q=process.env.MESH_JWT_SECRET??q9.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(Q)fM=new TextEncoder().encode(Q);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),fM=new Uint8Array(ay4(32));return fM}async function _K1(Q,X="5m"){let J=kK1();return await new nQ(Q).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(X).sign(J)}async function yK1(Q){try{let X=kK1(),{payload:J}=await L8(Q,X);return J}catch{return}}var fM=null;var vQ0=_(()=>{IX();wU()});class kQ0{db;constructor(Q){this.db=Q}async get(Q){let X=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Q).executeTakeFirst();if(!X)return null;return{organizationId:X.organizationId,sidebar_items:X.sidebar_items?typeof X.sidebar_items==="string"?JSON.parse(X.sidebar_items):X.sidebar_items:null,createdAt:X.createdAt,updatedAt:X.updatedAt}}async upsert(Q,X){let J=new Date().toISOString(),G=X?.sidebar_items?JSON.stringify(X.sidebar_items):null;await this.db.insertInto("organization_settings").values({organizationId:Q,sidebar_items:G,createdAt:J,updatedAt:J}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:G?G:void 0,updatedAt:J})).execute();let Y=await this.get(Q);if(!Y)return{organizationId:Q,sidebar_items:X?.sidebar_items??null,createdAt:J,updatedAt:J};return Y}}var hK1,_Q0,IN;var yQ0=_(()=>{MH();hK1=class hK1 extends Error{constructor(Q){super(Q);this.name="UnauthorizedError"}};_Q0=class _Q0 extends Error{constructor(Q){super(Q);this.name="ForbiddenError"}};IN=class IN{userId;toolName;boundAuth;role;connectionId;_granted=!1;constructor(Q,X,J,G,Y,W=SY.SELF){this.userId=X;this.toolName=J;this.boundAuth=G;this.role=Y;this.connectionId=W}[Symbol.dispose](){this._granted=!1}setToolName(Q){this.toolName=Q}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...Q){if(this._granted)return;if(!this.userId&&!this.boundAuth)throw new hK1("Authentication required. Please provide a valid OAuth token or API key.");let X=Q.length>0?Q:this.toolName?[this.toolName]:[];if(X.length===0)throw new _Q0("No resources specified for access check");for(let J of X)if(await this.checkResource(J)){this.grant();return}throw new _Q0(`Access denied to: ${X.join(", ")}`)}async checkResource(Q){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let X={};if(this.connectionId)X[this.connectionId]=[Q];return this.boundAuth.hasPermission(X)}granted(){return this._granted}}});class hQ0{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Q){return vM.startActiveSpan("redactor.redact",(X)=>{try{if(Q===null||Q===void 0)return Q;if(typeof Q==="string")return X.setAttribute("data.type","string"),this.redactString(Q);if(Array.isArray(Q))return X.setAttribute("data.type","array"),X.setAttribute("data.length",Q.length),Q.map((J)=>this.redact(J));if(typeof Q==="object"){X.setAttribute("data.type","object");let J={};for(let[G,Y]of Object.entries(Q)){let W=this.redactString(G);J[W]=this.redact(Y)}return J}return X.setAttribute("data.type",typeof Q),Q}finally{X.end()}})}redactString(Q){return vM.startActiveSpan("redactor.redactString",(X)=>{try{X.setAttribute("text.length",Q.length);let J=Q,G=0;for(let Y of this.patterns){let W=Q.match(Y.regex);if(W)G+=W.length,X.setAttribute(`redaction.${Y.type}.count`,W.length);J=J.replace(Y.regex,`[REDACTED:${Y.type}]`)}return X.setAttribute("redaction.total_count",G),J}finally{X.end()}})}}var fK1=_(()=>{Py()});class fQ0{db;redactor;constructor(Q){this.db=Q;this.redactor=new hQ0}async log(Q){await this.logBatch([Q])}async logBatch(Q){if(Q.length===0)return;let X=Q.map((J)=>({...J,input:this.redactor.redact(J.input),output:this.redactor.redact(J.output)}));await this.db.transaction().execute(async(J)=>{await J.insertInto("monitoring_logs").values(X.map((G)=>this.toDbRow(G))).execute()})}async query(Q){let X=this.db.selectFrom("monitoring_logs").selectAll(),J=this.db.selectFrom("monitoring_logs").select((K)=>K.fn.count("id").as("count"));if(Q.organizationId)X=X.where("organization_id","=",Q.organizationId),J=J.where("organization_id","=",Q.organizationId);if(Q.connectionId)X=X.where("connection_id","=",Q.connectionId),J=J.where("connection_id","=",Q.connectionId);if(Q.gatewayId)X=X.where("gateway_id","=",Q.gatewayId),J=J.where("gateway_id","=",Q.gatewayId);if(Q.toolName)X=X.where("tool_name","=",Q.toolName),J=J.where("tool_name","=",Q.toolName);if(Q.isError!==void 0)X=X.where("is_error","=",Q.isError?1:0),J=J.where("is_error","=",Q.isError?1:0);if(Q.startDate)X=X.where("timestamp",">=",Q.startDate.toISOString()),J=J.where("timestamp",">=",Q.startDate.toISOString());if(Q.endDate)X=X.where("timestamp","<=",Q.endDate.toISOString()),J=J.where("timestamp","<=",Q.endDate.toISOString());if(X=X.orderBy("timestamp","desc"),Q.limit)X=X.limit(Q.limit);if(Q.offset)X=X.offset(Q.offset);let[G,Y]=await Promise.all([X.execute(),J.executeTakeFirst()]),W=Number(Y?.count||0);return{logs:G.map((K)=>this.fromDbRow(K)),total:W}}async getStats(Q){let X=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q.organizationId);if(Q.startDate)X=X.where("timestamp",">=",Q.startDate.toISOString());if(Q.endDate)X=X.where("timestamp","<=",Q.endDate.toISOString());let J=await X.select([($)=>$.fn.count("id").as("total_count"),($)=>$.fn.sum($.ref("is_error")).as("error_count"),($)=>$.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),G=Number(J?.total_count||0),Y=Number(J?.error_count||0),W=Number(J?.avg_duration||0);return{totalCalls:G,errorRate:G>0?Y/G:0,avgDurationMs:W}}toDbRow(Q){return{id:Q.id||XG("log"),organization_id:Q.organizationId,connection_id:Q.connectionId,connection_title:Q.connectionTitle,tool_name:Q.toolName,input:JSON.stringify(Q.input),output:JSON.stringify(Q.output),is_error:Q.isError?1:0,error_message:Q.errorMessage||null,duration_ms:Q.durationMs,timestamp:Q.timestamp instanceof Date?Q.timestamp.toISOString():Q.timestamp,user_id:Q.userId||null,request_id:Q.requestId,user_agent:Q.userAgent||null,gateway_id:Q.gatewayId||null}}fromDbRow(Q){let X=typeof Q.input==="string"?JSON.parse(Q.input):Q.input,J=typeof Q.output==="string"?JSON.parse(Q.output):Q.output,G=typeof Q.timestamp==="string"?new Date(Q.timestamp):Q.timestamp;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,connectionTitle:Q.connection_title,toolName:Q.tool_name,input:X,output:J,isError:Q.is_error===1,errorMessage:Q.error_message,durationMs:Q.duration_ms,timestamp:G,userId:Q.user_id,requestId:Q.request_id,userAgent:Q.user_agent,gatewayId:Q.gateway_id}}}var bK1=_(()=>{fK1();MR()});function xK1(Q){let X=null;return()=>{if(X)return X;return X=Q().catch((J)=>{throw X=null,J}),X}}class gK1{factory;promise=null;constructor(Q){this.factory=Q}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(Q,X){return this.getOrCreatePromise().then(Q,X)}catch(Q){return this.getOrCreatePromise().catch(Q)}finally(Q){return this.getOrCreatePromise().finally(Q)}}function RG(Q){return new gK1(Q)}async function uK1(Q,X){return(await X.storage.connections.findById(Q))?.connection_url??null}async function ky(Q){let J=new URL(Q).pathname;if(J.endsWith("/"))J=J.slice(0,-1);let G=new URL(Q);G.pathname=`${J}/.well-known/oauth-protected-resource`;let Y=await fetch(G.toString(),{method:"GET",headers:{Accept:"application/json"}});if(Y.ok)return Y;if(Y.status!==404&&Y.status!==401)return Y;let W=new URL(Q);if(W.pathname=`/.well-known/oauth-protected-resource${J}`,Y=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),Y.status!==404&&Y.status!==401)return Y;let $=new URL(Q);return $.pathname="/.well-known/oauth-protected-resource",Y=await fetch($.toString(),{method:"GET",headers:{Accept:"application/json"}}),Y}async function oy4(Q,X){let J=await uK1(Q,X);if(!J)return null;try{let G=await ky(J);if(!G.ok)return null;return(await G.json()).authorization_servers?.[0]??null}catch{return null}}async function mK1(Q){let X=Q.get("meshContext");if(!X)X=await _Z.create(Q.req.raw),Q.set("meshContext",X);return X}async function lK1({error:Q,reqUrl:X,connectionId:J,connectionUrl:G,headers:Y}){if(!(Q.status===401||Q.message?.includes("401")||Q.message?.toLowerCase().includes("unauthorized")))return null;if(await fetch(G,{method:"POST",headers:{...Y,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})}).then((K)=>K.headers.has("WWW-Authenticate")).catch(()=>!1))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${J}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function bQ0(Q){let J=new URL(Q).pathname;if(J.endsWith("/"))J=J.slice(0,-1);let G=J!==""&&J!=="/",Y=[];if(G){let $=new URL(Q);$.pathname=`/.well-known/oauth-authorization-server${J}`,Y.push($);let K=new URL(Q);K.pathname=`/.well-known/openid-configuration${J}`,Y.push(K);let Z=new URL(Q);Z.pathname=`${J}/.well-known/openid-configuration`,Y.push(Z)}else{let $=new URL(Q);$.pathname="/.well-known/oauth-authorization-server",Y.push($);let K=new URL(Q);K.pathname="/.well-known/openid-configuration",Y.push(K)}let W=null;for(let $ of Y){if(W=await fetch($.toString(),{method:"GET",headers:{Accept:"application/json"}}),W.ok)return W;if(W.status!==404&&W.status!==401)return W}return W}var vy,_y=(Q)=>{if(!(Q.hostname==="localhost"||Q.hostname==="127.0.0.1"))Q.protocol="https:";return Q},dK1=async(Q)=>{let X=Q.req.param("connectionId"),J=await mK1(Q),G=await uK1(X,J);if(!G)return Q.json({error:"Connection not found"},404);try{let Y=await ky(G);if(!Y.ok)return new Response(Y.body,{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}});let W=await Y.json(),$=_y(new URL(Q.req.url)),K=`${$.origin}/mcp/${X}`,Z=`${$.origin}/oauth-proxy/${X}`,H={...W,resource:K,authorization_servers:[Z]};return new Response(JSON.stringify(H),{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}})}catch(Y){let W=Y;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",W),Q.json({error:"Failed to proxy OAuth metadata",message:W.message},502)}},pK1;var yy=_(()=>{kZ();hy();vy=new uQ;vy.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Q)=>dK1(Q));vy.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Q)=>dK1(Q));vy.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Q)=>{let X=Q.req.param("connectionId"),J=await mK1(Q),G=await oy4(X,J);if(!G)return Q.json({error:"Connection not found or no auth server"},404);try{let Y=await bQ0(G);if(!Y.ok)return new Response(Y.body,{status:Y.status,statusText:Y.statusText,headers:{"Content-Type":"application/json"}});let W=await Y.json(),K=`${_y(new URL(Q.req.url)).origin}/oauth-proxy/${X}`,Z={...W,authorization_endpoint:W.authorization_endpoint?`${K}/authorize`:void 0,token_endpoint:W.token_endpoint?`${K}/token`:void 0,registration_endpoint:W.registration_endpoint?`${K}/register`:void 0};return new Response(JSON.stringify(Z),{status:200,headers:{"Content-Type":"application/json"}})}catch(Y){let W=Y;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",W),Q.json({error:"Failed to proxy auth server metadata",message:W.message},502)}});pK1=vy});function sy4(Q){if(!Q.isError)return;let X=Q.content;if(!Array.isArray(X))return;for(let J of X)if(J&&typeof J==="object"&&"type"in J&&J.type==="text"&&"text"in J&&typeof J.text==="string")return J.text;return}function cK1(Q){if(Q&&typeof Q==="object"&&!Array.isArray(Q)){let X=Q,J=X.structuredContent;if(J&&typeof J==="object"&&!Array.isArray(J))return J;return X}return{value:Q}}async function ty4(Q,X){let J=Q.body;if(!J)return{text:"",truncated:!1};let G=J.getReader(),Y=new TextDecoder,W=!1,$=0,K=[];try{while(!0){let{value:Z,done:H}=await G.read();if(H)break;if(Z){if($+=Z.byteLength,$>X){W=!0;let F=X-($-Z.byteLength);if(F>0)K.push(Y.decode(Z.slice(0,F),{stream:!0}));break}K.push(Y.decode(Z,{stream:!0}))}}}finally{G.releaseLock()}return K.push(Y.decode()),{text:K.join(""),truncated:W}}async function bM(Q){let{ctx:X,enabled:J}=Q,G=Q.organizationId??X.organization?.id;if(!J||!G)return;await X.storage.monitoring.log({organizationId:G,connectionId:Q.connectionId,connectionTitle:Q.connectionTitle,toolName:Q.request.params.name,input:Q.request.params.arguments??{},output:Q.output,isError:Q.isError,errorMessage:Q.errorMessage,durationMs:Q.durationMs,timestamp:new Date,userId:X.auth.user?.id||X.auth.apiKey?.userId||null,requestId:X.metadata.requestId,userAgent:X.metadata.userAgent,gatewayId:X.gatewayId})}function nK1(Q){let{ctx:X,enabled:J,connectionId:G,connectionTitle:Y}=Q;return async(W,$)=>{let K=Date.now();try{let Z=await $(),H=Date.now()-K;return await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:cK1(Z),isError:Boolean(Z.isError),errorMessage:sy4(Z),durationMs:H}),Z}catch(Z){let H=Z,F=Date.now()-K;throw await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:H.message,durationMs:F}),Z}}}function iK1(Q){let{ctx:X,enabled:J,connectionId:G,connectionTitle:Y}=Q;return async(W,$)=>{let K=Date.now();try{let Z=await $(),H=X.organization?.id;if(J&&H){let F=Z.clone();(async()=>{try{let{text:q,truncated:V}=await ty4(F,262144),z=Date.now()-K,U=F.headers.get("content-type")??"",N=q;if(U.includes("application/json"))try{N=q.length?JSON.parse(q):null}catch{N=q}let D=Z.status>=400,P=D&&N&&typeof N==="object"&&"error"in N?N.error:void 0,j=typeof P==="string"&&P?P:D&&typeof N==="string"&&N.trim()?N.slice(0,500):D?`HTTP ${Z.status} ${Z.statusText}`.trim():V?"Response body truncated to 262144 bytes":void 0;await bM({ctx:X,enabled:J,organizationId:H,connectionId:G,connectionTitle:Y,request:W,output:cK1(N),isError:D,errorMessage:j,durationMs:z})}catch(q){let V=Date.now()-K;await bM({ctx:X,enabled:J,organizationId:H,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:V})}})()}return Z}catch(Z){let H=Z,F=Date.now()-K;throw await bM({ctx:X,enabled:J,connectionId:G,connectionTitle:Y,request:W,output:{},isError:!0,errorMessage:H.message,durationMs:F}),Z}}}function ey4(Q,X){return async(J,G)=>{try{let Y=J.params.name;return await new IN(Q.authInstance,Q.auth.user?.id??Q.auth.apiKey?.userId,Y,Q.boundAuth,Q.auth.user?.role,X).check(Y),await G()}catch(Y){return{content:[{type:"text",text:`Authorization failed: ${Y.message}`}],isError:!0}}}}function Qh4(Q,X){return async(J,G)=>{try{let Y=J.params.name;return await new IN(Q.authInstance,Q.auth.user?.id??Q.auth.apiKey?.userId,Y,Q.boundAuth,Q.auth.user?.role,X).check(Y),await G()}catch(Y){return new Response(JSON.stringify({error:`Authorization failed: ${Y.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function aK1(Q,X,{superUser:J}){let G=typeof Q==="string"?await X.storage.connections.findById(Q,X.organization?.id):Q;if(!G)throw Error("Connection not found");let Y=G?.id;if(X.organization&&G.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:G.organization_id},G.status!=="active")throw Error(`Connection inactive: ${G.status}`);let W,$=X.auth.user?.connectionId,K=xK1(async()=>{let y=O00(G.configuration_state,G.configuration_scopes),f=X.auth.user?.id??X.auth.apiKey?.userId;if(!f){console.error("User ID required to issue configuration token");return}try{W=await _K1({sub:f,user:{id:f},metadata:{state:G.configuration_state??void 0,meshUrl:process.env.MESH_URL??X.baseUrl,connectionId:Y,organizationId:X.organization?.id},permissions:y})}catch(l){console.error("Failed to issue configuration token:",l)}}),Z=async()=>{await K();let y={...$?{"x-caller-id":$}:{}};if(G.connection_token)y.Authorization=`Bearer ${G.connection_token}`;if(W)y["x-mesh-token"]=W;if(G.connection_headers)Object.assign(y,G.connection_headers);return y},H=async()=>{let y=await Z(),f=new _W(new URL(G.connection_url),{requestInit:{headers:y}}),l=new kW({name:"mcp-mesh-proxy",version:"1.0.0"});return await l.connect(f),l},F=J?async(y,f)=>await f():ey4(X,Y),q=J?async(y,f)=>await f():Qh4(X,Y),V={enabled:CM0().enabled,connectionId:Y,connectionTitle:G.title,ctx:X},z=nK1(V),U=iK1(V),N=Lw(z,F),D=Lw(U,q),P=async(y)=>{return N(y,async()=>{let f=await H(),l=Date.now();return await X.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":Y,"tool.name":y.params.name}},async(x)=>{try{let S=await f.callTool(y.params),u=Date.now()-l;return X.meter.createHistogram("connection.proxy.duration").record(u,{"connection.id":Y,"tool.name":y.params.name,status:"success"}),X.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":Y,"tool.name":y.params.name,status:"success"}),x.end(),S}catch(S){let u=S,X0=Date.now()-l;throw X.meter.createHistogram("connection.proxy.duration").record(X0,{"connection.id":Y,"tool.name":y.params.name,status:"error"}),X.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":Y,"tool.name":y.params.name,error:u.message}),x.recordException(u),x.end(),S}finally{await f.close()}})})};return{fetch:async(y)=>{let f=new URL(y.url),l;try{l=await H()}catch(u){let X0=await lK1({error:u,reqUrl:f,connectionId:Y,connectionUrl:G.connection_url,headers:await Z()});if(X0)return X0;throw u}let x=new yH({name:"mcp-mesh",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}}}),S=new dH({enableJsonResponse:y.headers.get("Accept")?.includes("application/json")??!1});return await x.connect(S),x.server.setRequestHandler(dK,async(u)=>{return await l.listTools()}),x.server.setRequestHandler(pK,P),x.server.setRequestHandler(xK,async()=>{if(l.getServerCapabilities()?.resources)return await l.listResources();return{resources:[]}}),x.server.setRequestHandler(uK,async(u)=>{return await l.readResource(u.params)}),x.server.setRequestHandler(gK,async()=>{if(l.getServerCapabilities()?.resourceTemplates)return await l.listResourceTemplates();return{resourceTemplates:[]}}),x.server.setRequestHandler(mK,async()=>{if(l.getServerCapabilities()?.prompts)return await l.listPrompts();return{prompts:[]}}),x.server.setRequestHandler(lK,async(u)=>{return await l.getPrompt(u.params)}),await S.handleMessage(y)},client:{callTool:(y)=>{return P({method:"tools/call",params:y})},listTools:async()=>{if(G.tools&&G.tools.length>0)return{tools:G.tools.map((f)=>({name:f.name,description:f.description,inputSchema:f.inputSchema,outputSchema:f.outputSchema}))};return await(await H()).listTools()},listResources:async()=>{let y=await H();if(y.getServerCapabilities()?.resources)return await y.listResources();return{resources:[]}},readResource:async(y)=>{return await(await H()).readResource(y)},listResourceTemplates:async()=>{let y=await H();if(y.getServerCapabilities()?.resourceTemplates)return await y.listResourceTemplates();return{resourceTemplates:[]}},listPrompts:async()=>{let y=await H();if(y.getServerCapabilities()?.prompts)return await y.listPrompts();return{prompts:[]}},getPrompt:async(y)=>{return await(await H()).getPrompt(y)}},callStreamableTool:async(y,f)=>{let l={method:"tools/call",params:{name:y,arguments:f}};return D(l,async()=>{let x=await Z(),S=new URL(G.connection_url);return S.pathname=S.pathname.replace(/\/$/,"")+`/call-tool/${l.params.name}`,await X.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":Y,"tool.name":l.params.name}},async(u)=>{let X0=Date.now();try{let r=await fetch(S.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(l.params.arguments),headers:{...x,"Content-Type":"application/json"}}),W0=Date.now()-X0;return X.meter.createHistogram("connection.proxy.streamable.duration").record(W0,{"connection.id":Y,"tool.name":l.params.name,status:r.ok?"success":"error"}),X.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":Y,"tool.name":l.params.name,status:r.ok?"success":"error"}),u.end(),r}catch(r){let W0=r,V0=Date.now()-X0;throw X.meter.createHistogram("connection.proxy.streamable.duration").record(V0,{"connection.id":Y,"tool.name":l.params.name,status:"error"}),X.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":Y,"tool.name":l.params.name,error:W0.message}),u.recordException(W0),u.end(),r}})})}}}async function oK1(Q,X){return aK1(Q,X,{superUser:!1})}async function sK1(Q,X){return aK1(Q,X,{superUser:!0})}var rK1,tK1;var fy=_(()=>{D00();za();Jw();$w();RS();qX();kZ();vQ0();yQ0();Qv();yy();rK1=new uQ;rK1.all("/:connectionId",async(Q)=>{let X=Q.req.param("connectionId"),J=Q.get("meshContext");try{return await(await J.createMCPProxy(X)).fetch(Q.req.raw)}catch(G){let Y=G;if(Y.message.includes("not found"))return Q.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return Q.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return Q.json({error:Y.message},503);return Q.json({error:"Internal server error",message:Y.message},500)}});tK1=rK1});function Xh4(Q,X){for(let[J,G]of Object.entries(X)){let Y=Q[J];if(!Y||Y.length===0){let W=Q["*"];if(!W||W.length===0)return!1;if(W.includes("*"))continue;for(let $ of G)if(!W.includes($))return!1;continue}if(Y.includes("*"))continue;for(let W of G)if(!Y.includes(W))return!1}return!0}function Jh4(Q){let{auth:X,headers:J,role:G,permissions:Y,userId:W}=Q,$=X.api.hasPermission;return{hasPermission:async(K)=>{if(G&&e00.includes(G))return!0;if(Y)return Xh4(Y,K);if(!$)return console.error("[Auth] hasPermission API not available"),!1;try{if((await $({headers:J,body:{permission:K}}))?.success===!0)return!0;let H={};for(let q of Object.keys(K))H[q]=["*"];return(await $({headers:J,body:{permission:H}}))?.success===!0}catch(Z){return console.error("[Auth] Permission check failed:",Z),!1}},organization:{create:async(K)=>{return X.api.createOrganization({headers:J,body:K})},update:async(K)=>{return X.api.updateOrganization({headers:J,body:K})},delete:async(K)=>{await X.api.deleteOrganization({headers:J,body:{organizationId:K}})},get:async(K)=>{return X.api.getFullOrganization({headers:J,query:K?{organizationId:K}:void 0})},list:async(K)=>{return X.api.listOrganizations({headers:J,query:K?{userId:K}:void 0})},addMember:async(K)=>{return X.api.addMember({headers:J,body:K})},removeMember:async(K)=>{await X.api.removeMember({headers:J,body:K})},listMembers:async(K)=>{return X.api.listMembers({headers:J,query:K?{organizationId:K.organizationId,limit:K.limit,offset:K.offset}:void 0})},updateMemberRole:async(K)=>{return X.api.updateMemberRole({headers:J,body:K})}},apiKey:{create:async(K)=>{return X.api.createApiKey({body:{...K,userId:W}})},list:async()=>{return X.api.listApiKeys({headers:J})},update:async(K)=>{return X.api.updateApiKey({body:{...K,userId:W}})},delete:async(K)=>{await X.api.deleteApiKey({headers:J,body:{keyId:K}})}}}}async function Yh4(Q,X,J){if(e00.includes(J))return;let G=await Q.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{return JSON.parse(G.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${J}`);return}}async function Gh4(Q,X,J){let G=Q.headers.get("Authorization");try{let Y=new Headers(Q.headers);Y.set("X-MCP-Session-Auth","true");let W=await X.api.getMcpSession({headers:Y});if(W){let $=W.userId,K=await J.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",$).executeTakeFirst(),Z=K?.role,H=K?{id:K.orgId,slug:K.orgSlug,name:K.orgName}:void 0,F;if(K&&Z)F=await Yh4(J,K.organizationId,Z);return{user:{id:$,role:Z},role:Z,permissions:F,organization:H}}}catch(Y){console.error("[Auth] OAuth session check failed:",Y)}if(G?.startsWith("Bearer ")){let Y=G.replace("Bearer ","").trim();try{let W=await yK1(Y);if(W)return{user:{id:W.sub,connectionId:W.metadata?.connectionId},permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}catch{}try{let W=await X.api.verifyApiKey({body:{key:Y}});if(W?.valid&&W.key){let $=W.key.metadata?.organization,K=W.key.permissions;return{apiKeyId:W.key.id,user:{id:W.key.userId},permissions:K,organization:$?{id:$.id,slug:$.slug,name:$.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let Y=await X.api.getSession({headers:Q.headers});if(Y){let W,$;if(Y.session.activeOrganizationId){let K=await X.api.getFullOrganization({headers:Q.headers}).catch(()=>null);if(K)W={id:K.id,slug:K.slug,name:K.name},$=K.members?.find((H)=>H.userId===Y.user.id)?.role;else W={id:Y.session.activeOrganizationId,slug:"",name:""}}return{user:{id:Y.user.id,email:Y.user.email,role:$},role:$,organization:W}}}catch(Y){console.error("[Auth] Session check failed:",Y)}return{user:void 0}}function QZ1(Q){let X=new xL(Q.encryption.key),J={connections:new gL(Q.db,X),organizationSettings:new kQ0(Q.db),monitoring:new fQ0(Q.db),gateways:new uL(Q.db)};return async(G)=>{let Y=G?.headers.get("x-caller-id")??void 0,W=G?await Gh4(G,Q.auth,Q.db):{user:void 0},$=Jh4({auth:Q.auth,headers:G?.headers??new Headers,role:W.role,permissions:W.permissions,userId:W.user?.id}),K={user:W.user};if(W.apiKeyId)K.apiKey={id:W.apiKeyId,name:"",userId:""};let Z=W.organization,H=G?new URL(G.url):new URL("http://localhost:3000"),F=process.env.BASE_URL??`${H.protocol}//${H.host}`,q=new IN(Q.auth,K.user?.id,void 0,$,W.role,SY.SELF),V={auth:K,connectionId:Y,organization:Z,storage:J,vault:X,authInstance:Q.auth,boundAuth:$,access:q,db:Q.db,tracer:Q.observability.tracer,meter:Q.observability.meter,baseUrl:F,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,userAgent:G?.headers.get("x-mesh-client")||G?.headers.get("User-Agent")||void 0,ipAddress:(G?.headers.get("CF-Connecting-IP")||G?.headers.get("X-Forwarded-For"))??void 0},eventBus:Q.eventBus,createMCPProxy:async(z)=>{return await oK1(z,V)}};return V}}var eK1,_Z;var hy=_(()=>{vQ0();Qo();Xo();Jo();yQ0();bK1();Q10();MH();fy();_Z={set:(Q)=>{eK1=Q},create:async(Q)=>{return await eK1(Q)}}});function XZ1(Q){return Q===xM.HEALTH||Q===xM.METRICS||Q.startsWith(gM.WELL_KNOWN)}function $h4(Q){return Q.startsWith(gM.API)}function Kh4(Q){return Q==="/mcp"||Q.startsWith(gM.MCP)}function Zh4(Q){return Q.startsWith(gM.OAUTH_PROXY)}function Hh4(Q){return Wh4.test(Q)}function JZ1(Q){return $h4(Q)||Kh4(Q)||Zh4(Q)||XZ1(Q)}function YZ1(Q){return Q==="/"||Q.startsWith(gM.API_AUTH)||XZ1(Q)||Hh4(Q)}var xM,gM,Wh4;var xQ0=_(()=>{xM={HEALTH:"/health",METRICS:"/metrics"},gM={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known"},Wh4=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});class GZ1{db;constructor(Q){this.db=Q}async publishEvent(Q){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Q.id,organization_id:Q.organizationId,type:Q.type,source:Q.source,specversion:"1.0",subject:Q.subject??null,time:Q.time,datacontenttype:Q.datacontenttype??"application/json",dataschema:Q.dataschema??null,data:Q.data?JSON.stringify(Q.data):null,cron:Q.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Q.id,organizationId:Q.organizationId,type:Q.type,source:Q.source,specversion:"1.0",subject:Q.subject??null,time:Q.time,datacontenttype:Q.datacontenttype??"application/json",dataschema:Q.dataschema??null,data:Q.data??null,cron:Q.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Q){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q.organizationId).where("connection_id","=",Q.connectionId).where("event_type","=",Q.eventType);if(Q.publisher)X=X.where("publisher","=",Q.publisher);else X=X.where("publisher","is",null);if(Q.filter)X=X.where("filter","=",Q.filter);else X=X.where("filter","is",null);let J=await X.executeTakeFirst();if(J)return{id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at};let G=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Q.id,organization_id:Q.organizationId,connection_id:Q.connectionId,publisher:Q.publisher??null,event_type:Q.eventType,filter:Q.filter??null,enabled:1,created_at:G,updated_at:G}).execute(),{id:Q.id,organizationId:Q.organizationId,connectionId:Q.connectionId,publisher:Q.publisher??null,eventType:Q.eventType,filter:Q.filter??null,enabled:!0,createdAt:G,updatedAt:G}}async unsubscribe(Q,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Q).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Q,X){let J=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q);if(X)J=J.where("connection_id","=",X);return(await J.execute()).map((Y)=>({id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,publisher:Y.publisher,eventType:Y.event_type,filter:Y.filter,enabled:Y.enabled===1,createdAt:Y.created_at,updatedAt:Y.updated_at}))}async getSubscription(Q,X){let J=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Q).where("organization_id","=",X).executeTakeFirst();if(!J)return null;return{id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at}}async getMatchingSubscriptions(Q){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Q.organizationId).where("enabled","=",1).where("event_type","=",Q.type).where((J)=>J.or([J("publisher","is",null),J("publisher","=",Q.source)])).execute()).map((J)=>({id:J.id,organizationId:J.organization_id,connectionId:J.connection_id,publisher:J.publisher,eventType:J.event_type,filter:J.filter,enabled:J.enabled===1,createdAt:J.created_at,updatedAt:J.updated_at}))}async createDeliveries(Q,X,J){if(X.length===0)return;let G=new Date().toISOString(),Y=J??null,W=X.map(($)=>({id:crypto.randomUUID(),event_id:Q,subscription_id:$,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:Y,created_at:G}));await this.db.insertInto("event_deliveries").values(W).execute()}async claimPendingDeliveries(Q){let X=new Date().toISOString(),J;try{J=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(W)=>W.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where(($)=>$.or([$("d.next_retry_at","is",null),$("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Q)).where("status","=","pending").returning(["id"]).execute()).map((W)=>W.id)}catch{let Y=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Q).execute();if(Y.length===0)return[];J=Y.map((W)=>W.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",J).where("status","=","pending").execute()}if(J.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",J).where("d.status","=","processing").execute()).map((Y)=>({delivery:{id:Y.delivery_id,eventId:Y.event_id,subscriptionId:Y.subscription_id,status:Y.delivery_status,attempts:Y.delivery_attempts,lastError:Y.delivery_last_error,deliveredAt:Y.delivered_at,nextRetryAt:Y.delivery_next_retry_at,createdAt:Y.delivery_created_at},event:{id:Y.event_id,organizationId:Y.organization_id,type:Y.type,source:Y.source,specversion:Y.specversion,subject:Y.subject,time:Y.time,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema,data:Y.data?JSON.parse(Y.data):null,cron:Y.cron,status:Y.event_status,attempts:Y.event_attempts,lastError:Y.event_last_error,nextRetryAt:Y.next_retry_at,createdAt:Y.event_created_at,updatedAt:Y.event_updated_at},subscription:{id:Y.subscription_id,organizationId:Y.organization_id,connectionId:Y.connection_id,publisher:Y.publisher,eventType:Y.event_type,filter:Y.filter,enabled:Y.enabled===1,createdAt:Y.subscription_created_at,updatedAt:Y.subscription_updated_at}}))}async markDeliveriesDelivered(Q){if(Q.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Q).execute()}async markDeliveriesFailed(Q,X,J=20,G=1000,Y=3600000){if(Q.length===0)return;for(let W of Q){let $=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",W).executeTakeFirst();if(!$)continue;let K=$.attempts+1;if(K>=J)await this.db.updateTable("event_deliveries").set({attempts:K,last_error:X,status:"failed",next_retry_at:null}).where("id","=",W).execute();else{let Z=Math.min(G*Math.pow(2,K-1),Y),H=new Date(Date.now()+Z).toISOString();await this.db.updateTable("event_deliveries").set({attempts:K,last_error:X,status:"pending",next_retry_at:H}).where("id","=",W).execute()}}}async updateEventStatus(Q){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Q).execute();if(X.length===0)return;let J=X.every((W)=>W.status==="delivered"),G=X.some((W)=>W.status==="failed"),Y=X.some((W)=>W.status==="pending"||W.status==="processing");if(J)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Q).execute();else if(G&&!Y)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Q).execute()}async resetStuckDeliveries(){let Q=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Q.numUpdatedRows??0)}async getEvent(Q,X){let J=await this.db.selectFrom("events").selectAll().where("id","=",Q).where("organization_id","=",X).executeTakeFirst();if(!J)return null;return{id:J.id,organizationId:J.organization_id,type:J.type,source:J.source,specversion:J.specversion,subject:J.subject,time:J.time,datacontenttype:J.datacontenttype,dataschema:J.dataschema,data:J.data?JSON.parse(J.data):null,cron:J.cron,status:J.status,attempts:J.attempts,lastError:J.last_error,nextRetryAt:J.next_retry_at,createdAt:J.created_at,updatedAt:J.updated_at}}async cancelEvent(Q,X,J){let G=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Q).where("organization_id","=",X).where("source","=",J).where("status","in",["pending","processing"]).executeTakeFirst();if((G.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Q).where("status","in",["pending","processing"]).execute();return{success:(G.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Q,X){if(Q.length===0)return;let J=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:J}).where("id","in",Q).execute()}async ackDelivery(Q,X,J){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Q).where("organization_id","=",X).executeTakeFirst())return{success:!1};let W=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Q).where("status","in",["pending","processing"]).where(($)=>$.exists($.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",J).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(W)await this.updateEventStatus(Q);return{success:W}}async syncSubscriptions(Q){let{organizationId:X,connectionId:J,subscriptions:G}=Q,Y=(P,j)=>{return`${P}::${j??""}`},W=await this.listSubscriptions(X,J),$=new Map;for(let P of W)$.set(Y(P.eventType,P.publisher),P);let K=new Map;for(let P of G)K.set(Y(P.eventType,P.publisher),P);let Z=new Date().toISOString(),H=[],F=[],q=[],V=0;for(let[P,j]of K){let M=$.get(P);if(!M)H.push({id:crypto.randomUUID(),organization_id:X,connection_id:J,event_type:j.eventType,publisher:j.publisher??null,filter:j.filter??null,enabled:1,created_at:Z,updated_at:Z});else{let T=M.filter??null,A=j.filter??null;if(T!==A)F.push({id:M.id,filter:A});else V++}}for(let[P,j]of $)if(!K.has(P))q.push(j.id);if(H.length>0)await this.db.insertInto("event_subscriptions").values(H).execute();if(F.length>0)await Promise.all(F.map((P)=>this.db.updateTable("event_subscriptions").set({filter:P.filter,updated_at:Z}).where("id","=",P.id).execute()));if(q.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",q).execute();let z=H.length,U=F.length,N=q.length,D=await this.listSubscriptions(X,J);return{created:z,updated:U,deleted:N,unchanged:V,subscriptions:D}}}function WZ1(Q){return new GZ1(Q)}function KQ(Q,X,J,G,Y,W,$,K){return KQ.fromTZ(KQ.tp(Q,X,J,G,Y,W,$),K)}function gQ0(Q,X=new Date){let J=X.toLocaleString("en-US",{timeZone:Q,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],G=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${G} GMT`)-Date.parse(`${G} ${J}`)}function Fh4(Q,X){let J=new Date(Date.parse(Q));if(isNaN(J))throw Error("minitz: Invalid ISO8601 passed to parser.");let G=Q.substring(9);return Q.includes("Z")||G.includes("-")||G.includes("+")?KQ.tp(J.getUTCFullYear(),J.getUTCMonth()+1,J.getUTCDate(),J.getUTCHours(),J.getUTCMinutes(),J.getUTCSeconds(),"Etc/UTC"):KQ.tp(J.getFullYear(),J.getMonth()+1,J.getDate(),J.getHours(),J.getMinutes(),J.getSeconds(),X)}function qh4(Q){if(Q===void 0&&(Q={}),delete Q.name,Q.legacyMode=Q.legacyMode===void 0?!0:Q.legacyMode,Q.paused=Q.paused===void 0?!1:Q.paused,Q.maxRuns=Q.maxRuns===void 0?1/0:Q.maxRuns,Q.catch=Q.catch===void 0?!1:Q.catch,Q.interval=Q.interval===void 0?0:parseInt(Q.interval.toString(),10),Q.utcOffset=Q.utcOffset===void 0?void 0:parseInt(Q.utcOffset.toString(),10),Q.unref=Q.unref===void 0?!1:Q.unref,Q.startAt&&(Q.startAt=new HY(Q.startAt,Q.timezone)),Q.stopAt&&(Q.stopAt=new HY(Q.stopAt,Q.timezone)),Q.interval!==null){if(isNaN(Q.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Q.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Q.utcOffset!==void 0){if(isNaN(Q.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Q.utcOffset<-870||Q.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Q.utcOffset!==void 0&&Q.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Q.unref!==!0&&Q.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Q}function uM(Q){return Object.prototype.toString.call(Q)==="[object Function]"||typeof Q=="function"||Q instanceof Function}function Vh4(Q){return uM(Q)}function zh4(Q){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Q):Q&&typeof Q.unref<"u"&&Q.unref()}var uQ0=32,mM,HZ1,$Z1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Q,X){this.pattern=Q,this.timezone=X,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Q=this.pattern.replace(/\s+/g," ").split(" ");if(Q.length<5||Q.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Q.length===5&&Q.unshift("0"),Q[3].indexOf("L")>=0&&(Q[3]=Q[3].replace("L",""),this.lastDayOfMonth=!0),Q[3]=="*"&&(this.starDOM=!0),Q[4].length>=3&&(Q[4]=this.replaceAlphaMonths(Q[4])),Q[5].length>=3&&(Q[5]=this.replaceAlphaDays(Q[5])),Q[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new HY(new Date,this.timezone).getDate(!0);Q[0]=Q[0].replace("?",X.getSeconds().toString()),Q[1]=Q[1].replace("?",X.getMinutes().toString()),Q[2]=Q[2].replace("?",X.getHours().toString()),this.starDOM||(Q[3]=Q[3].replace("?",X.getDate().toString())),Q[4]=Q[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Q[5]=Q[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Q),this.partToArray("second",Q[0],0,1),this.partToArray("minute",Q[1],0,1),this.partToArray("hour",Q[2],0,1),this.partToArray("day",Q[3],-1,1),this.partToArray("month",Q[4],-1,1),this.partToArray("dayOfWeek",Q[5],0,mM),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Q,X,J,G){let Y=this[Q],W=Q==="day"&&this.lastDayOfMonth;if(X===""&&!W)throw TypeError("CronPattern: configuration entry "+Q+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return Y.fill(G);let $=X.split(",");if($.length>1)for(let K=0;K<$.length;K++)this.partToArray(Q,$[K],J,G);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Q,J,G):X.indexOf("-")!==-1?this.handleRange(X,Q,J,G):X.indexOf("/")!==-1?this.handleStepping(X,Q,J,G):X!==""&&this.handleNumber(X,Q,J,G)}throwAtIllegalCharacters(Q){for(let X=0;X<Q.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Q[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Q[X]+") contains illegal characters.")}handleNumber(Q,X,J,G){let Y=this.extractNth(Q,X),W=parseInt(Y[0],10)+J;if(isNaN(W))throw TypeError("CronPattern: "+X+" is not a number: '"+Q+"'");this.setPart(X,W,Y[1]||G)}setPart(Q,X,J){if(!Object.prototype.hasOwnProperty.call(this,Q))throw TypeError("CronPattern: Invalid part specified: "+Q);if(Q==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,J);return}if(Q==="second"||Q==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Q+": "+X)}else if(Q==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Q+": "+X);this[Q][X]=J}handleRangeWithStepping(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(W===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Q+"'");let[,$,K,Z]=W,H=parseInt($,10)+J,F=parseInt(K,10)+J,q=parseInt(Z,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(q))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(q===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(q>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(H>F)throw TypeError("CronPattern: From value is larger than to value: '"+Q+"'");for(let V=H;V<=F;V+=q)this.setPart(X,V,Y[1]||G)}extractNth(Q,X){let J=Q,G;if(J.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");G=J.split("#")[1],J=J.split("#")[0]}return[J,G]}handleRange(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].split("-");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Q+"'");let $=parseInt(W[0],10)+J,K=parseInt(W[1],10)+J;if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if($>K)throw TypeError("CronPattern: From value is larger than to value: '"+Q+"'");for(let Z=$;Z<=K;Z++)this.setPart(X,Z,Y[1]||G)}handleStepping(Q,X,J,G){let Y=this.extractNth(Q,X),W=Y[0].split("/");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Q+"'");W[0]===""&&(W[0]="*");let $=0;W[0]!=="*"&&($=parseInt(W[0],10)+J);let K=parseInt(W[1],10);if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(K===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(K>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let Z=$;Z<this[X].length;Z+=K)this.setPart(X,Z,Y[1]||G)}replaceAlphaDays(Q){return Q.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Q){return Q.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Q){let X=Q.trim().toLowerCase();return X==="@yearly"||X==="@annually"?"0 0 1 1 *":X==="@monthly"?"0 0 1 * *":X==="@weekly"?"0 0 * * 0":X==="@daily"?"0 0 * * *":X==="@hourly"?"0 * * * *":Q}setNthWeekdayOfMonth(Q,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Q]=this.dayOfWeek[Q]|uQ0;else if(X===mM)this.dayOfWeek[Q]=mM;else if(X<6&&X>0)this.dayOfWeek[Q]=this.dayOfWeek[Q]|HZ1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},KZ1,K$,HY=class Q{tz;ms;second;minute;hour;day;month;year;constructor(X,J){if(this.tz=J,X&&X instanceof Date)if(!isNaN(X))this.fromDate(X);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(X===void 0)this.fromDate(new Date);else if(X&&typeof X=="string")this.fromString(X);else if(X instanceof Q)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,J,G,Y){let W=new Date(Date.UTC(X,J,G)).getUTCDay(),$=0;for(let K=1;K<=G;K++)new Date(Date.UTC(X,J,K)).getUTCDay()===W&&$++;if(Y&mM&&HZ1[$-1]&Y)return!0;if(Y&uQ0){let K=new Date(Date.UTC(X,J+1,0)).getUTCDate();for(let Z=G+1;Z<=K;Z++)if(new Date(Date.UTC(X,J,Z)).getUTCDay()===W)return!1;return!0}return!1}fromDate(X){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes()+this.tz,this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply();else{let J=KQ.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=J.s,this.minute=J.i,this.hour=J.h,this.day=J.d,this.month=J.m-1,this.year=J.y}else this.ms=X.getMilliseconds(),this.second=X.getSeconds(),this.minute=X.getMinutes(),this.hour=X.getHours(),this.day=X.getDate(),this.month=X.getMonth(),this.year=X.getFullYear()}fromCronDate(X){this.tz=X.tz,this.year=X.year,this.month=X.month,this.day=X.day,this.hour=X.hour,this.minute=X.minute,this.second=X.second,this.ms=X.ms}apply(){if(this.month>11||this.day>KZ1[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let X=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),!0}else return!1}fromString(X){if(typeof this.tz=="number"){let J=KQ.fromTZISO(X);this.ms=J.getUTCMilliseconds(),this.second=J.getUTCSeconds(),this.minute=J.getUTCMinutes(),this.hour=J.getUTCHours(),this.day=J.getUTCDate(),this.month=J.getUTCMonth(),this.year=J.getUTCFullYear(),this.apply()}else return this.fromDate(KQ.fromTZISO(X,this.tz))}findNext(X,J,G,Y){let W=this[J],$;G.lastDayOfMonth&&(this.month!==1?$=KZ1[this.month]:$=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let K=!G.starDOW&&J=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let Z=this[J]+Y;Z<G[J].length;Z++){let H=G[J][Z];if(J==="day"&&G.lastDayOfMonth&&Z-Y==$&&(H=1),J==="day"&&!G.starDOW){let F=G.dayOfWeek[(K+(Z-Y-1))%7];if(F&&F&mM)F=this.isNthWeekdayOfMonth(this.year,this.month,Z-Y,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);X.legacyMode&&!G.starDOM?H=H||F:H=H&&F}if(H)return this[J]=Z-Y,W!==this[J]?2:1}return 3}recurse(X,J,G){let Y=this.findNext(J,K$[G][0],X,K$[G][2]);if(Y>1){let W=G+1;for(;W<K$.length;)this[K$[W][0]]=-K$[W][2],W++;if(Y===3)return this[K$[G][1]]++,this[K$[G][0]]=-K$[G][2],this.apply(),this.recurse(X,J,0);if(this.apply())return this.recurse(X,J,G-1)}return G+=1,G>=K$.length?this:this.year>=3000?null:this.recurse(X,J,G)}increment(X,J,G){return this.second+=J.interval!==void 0&&J.interval>1&&G?J.interval:1,this.ms=0,this.apply(),this.recurse(X,J,0)}getDate(X){return X||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):KQ.fromTZ(KQ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},ZZ1=30000,by,xy=class{name;options;_states;fn;constructor(Q,X,J){let G,Y;if(uM(X))Y=X;else if(typeof X=="object")G=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(uM(J))Y=J;else if(typeof J=="object")G=J;else if(J!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=G?.name,this.options=qh4(G),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:G?G.maxRuns:void 0,paused:G?G.paused:!1,pattern:new $Z1("* * * * *")},Q&&(Q instanceof Date||typeof Q=="string"&&Q.indexOf(":")>0)?this._states.once=new HY(Q,this.options.timezone||this.options.utcOffset):this._states.pattern=new $Z1(Q,this.options.timezone),this.name){if(by.find((W)=>W.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");by.push(this)}return Y!==void 0&&Vh4(Y)&&(this.fn=Y,this.schedule()),this}nextRun(Q){let X=this._next(Q);return X?X.getDate(!1):null}nextRuns(Q,X){this._states.maxRuns!==void 0&&Q>this._states.maxRuns&&(Q=this._states.maxRuns);let J=[],G=X||this._states.currentRun||void 0;for(;Q--&&(G=this.nextRun(G));)J.push(G);return J}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Q=this.nextRun(this._states.currentRun),X=!this._states.paused,J=this.fn!==void 0,G=!this._states.kill;return X&&J&&G&&Q!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Q){let X=this._next(Q);return X?Q instanceof HY||Q instanceof Date?X.getTime()-Q.getTime():X.getTime()-new HY(Q).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Q=by.indexOf(this);Q>=0&&by.splice(Q,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Q){if(Q&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Q&&(this.fn=Q);let X=this.msToNext(),J=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||J===null?this:(X>ZZ1&&(X=ZZ1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(J),X),this._states.currentTimeout&&this.options.unref&&zh4(this._states.currentTimeout),this)}async _trigger(Q){if(this._states.blocking=!0,this._states.currentRun=new HY(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(X){uM(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new HY(Q,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Q){let X=new Date,J=!this._states.paused&&X.getTime()>=Q.getTime(),G=this._states.blocking&&this.options.protect;J&&!G?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):J&&G&&uM(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Q){let X=!!(Q||this._states.currentRun),J=!1;!Q&&this.options.startAt&&this.options.interval&&([Q,X]=this._calculatePreviousRun(Q,X),J=!Q),Q=new HY(Q,this.options.timezone||this.options.utcOffset),this.options.startAt&&Q&&Q.getTime()<this.options.startAt.getTime()&&(Q=this.options.startAt);let G=this._states.once||new HY(Q,this.options.timezone||this.options.utcOffset);return!J&&G!==this._states.once&&(G=G.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Q.getTime()||G===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&G.getTime()>=this.options.stopAt.getTime()?null:G}_calculatePreviousRun(Q,X){let J=new HY(void 0,this.options.timezone||this.options.utcOffset),G=Q;if(this.options.startAt.getTime()<=J.getTime()){G=this.options.startAt;let Y=G.getTime()+this.options.interval*1000;for(;Y<=J.getTime();)G=new HY(G,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),Y=G.getTime()+this.options.interval*1000;X=!0}return G===null&&(G=void 0),[G,X]}};var mQ0=_(()=>{KQ.fromTZISO=(Q,X,J)=>KQ.fromTZ(Fh4(Q,X),J);KQ.fromTZ=function(Q,X){let J=new Date(Date.UTC(Q.y,Q.m-1,Q.d,Q.h,Q.i,Q.s)),G=gQ0(Q.tz,J),Y=new Date(J.getTime()-G),W=gQ0(Q.tz,Y);if(W-G===0)return Y;{let $=new Date(J.getTime()-W),K=gQ0(Q.tz,$);if(K-W===0)return $;if(!X&&K-W>0)return $;if(X)throw Error("Invalid date passed to fromTZ()");return Y}};KQ.toTZ=function(Q,X){let J=Q.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),G=new Date(J);return{y:G.getFullYear(),m:G.getMonth()+1,d:G.getDate(),h:G.getHours(),i:G.getMinutes(),s:G.getSeconds(),tz:X}};KQ.tp=(Q,X,J,G,Y,W,$)=>({y:Q,m:X,d:J,h:G,i:Y,s:W,tz:$});KQ.minitz=KQ;mM=31|uQ0,HZ1=[1,2,4,8,16],KZ1=[31,28,31,30,31,30,31,31,30,31,30,31],K$=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];by=[]});var gy;var lQ0=_(()=>{gy={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function FZ1(){return async(Q,X)=>{try{let J=await _Z.create(),G=await sK1(Q,{...J,auth:{...J.auth,user:{id:"notify-worker"}}}),W=await q00.forClient(G).ON_EVENTS({events:X});return{success:W.success,error:W.error,retryAfter:W.retryAfter,results:W.results}}catch(J){let G=J instanceof Error?J.message:String(J);return console.error(`[EventBus] Failed to notify connection ${Q}:`,G),{success:!1,error:G}}}}var qZ1=_(()=>{hy();Uv();fy()});function VZ1(Q){return{specversion:"1.0",id:Q.id,source:Q.source,type:Q.type,time:Q.time,subject:Q.subject??void 0,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema??void 0,data:Q.data??void 0}}function Uh4(Q){let X=new Map;for(let G of Q){let Y=G.subscription.connectionId,W=X.get(Y);if(W){if(W.deliveryIds.push(G.delivery.id),!W.seenEventIds.has(G.event.id))W.seenEventIds.add(G.event.id),W.events.push(VZ1(G.event))}else X.set(Y,{connectionId:G.subscription.connectionId,deliveryIds:[G.delivery.id],events:[VZ1(G.event)],seenEventIds:new Set([G.event.id])})}let J=new Map;for(let[G,Y]of X)J.set(G,{connectionId:Y.connectionId,deliveryIds:Y.deliveryIds,events:Y.events});return J}class dQ0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Q,X){this.storage=Q;this.notifySubscriber=FZ1(),this.config={...gy,...X}}async start(){if(this.running)return;let Q=await this.storage.resetStuckDeliveries();if(Q>0)console.log(`[EventBus] Reset ${Q} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing)return;this.processing=!0;try{await this.processEvents()}catch(Q){console.error("[EventBus] Error processing events:",Q)}finally{this.processing=!1}}async processEvents(){let Q=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Q.length===0)return;let X=Uh4(Q),J=new Set;for(let[G,Y]of X){try{let W=await this.notifySubscriber(Y.connectionId,Y.events);if(W.results&&Object.keys(W.results).length>0)await this.processPerEventResults(Y,W);else if(W.success)await this.storage.markDeliveriesDelivered(Y.deliveryIds);else if(W.retryAfter&&W.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(Y.deliveryIds,W.retryAfter);else await this.storage.markDeliveriesFailed(Y.deliveryIds,W.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(W){let $=W instanceof Error?W.message:String(W);console.error(`[EventBus] Failed to notify subscription ${G}:`,$),await this.storage.markDeliveriesFailed(Y.deliveryIds,$,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let W of Q)if(Y.deliveryIds.includes(W.delivery.id))J.add(W.event.id)}for(let G of J)try{await this.storage.updateEventStatus(G);let Y=Q.find((W)=>W.event.id===G)?.event;if(Y?.cron)await this.scheduleNextCronDelivery(Y)}catch(Y){console.error(`[EventBus] Failed to update event status ${G}:`,Y)}}async processPerEventResults(Q,X){let J=[],G=new Map,Y=[],W=new Map;for(let $=0;$<Q.events.length;$++){let K=Q.events?.[$];if(!K)continue;let Z=Q.deliveryIds?.[$];if(!Z)continue;W.set(K.id,Z)}for(let $ of Q.events){let K=W.get($.id);if(!K)continue;let Z=X.results?.[$.id];if(Z)if(Z.success)J.push(K);else if(Z.retryAfter&&Z.retryAfter>0){let H=G.get(Z.retryAfter)||[];H.push(K),G.set(Z.retryAfter,H)}else Y.push({deliveryId:K,error:Z.error||"Event processing failed"});else if(X.success)J.push(K);else if(X.retryAfter&&X.retryAfter>0){let H=G.get(X.retryAfter)||[];H.push(K),G.set(X.retryAfter,H)}else Y.push({deliveryId:K,error:X.error||"Batch processing failed"})}if(J.length>0)await this.storage.markDeliveriesDelivered(J);for(let[$,K]of G)await this.storage.scheduleRetryWithoutAttemptIncrement(K,$);if(Y.length>0){let $=new Map;for(let{deliveryId:K,error:Z}of Y){let H=$.get(Z)||[];H.push(K),$.set(Z,H)}for(let[K,Z]of $)await this.storage.markDeliveriesFailed(Z,K,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Q){if(!Q.cron)return;try{let J=new xy(Q.cron).nextRun();if(!J){console.log(`[EventBus] Cron expression for event ${Q.id} has no more runs`);return}let G=J.toISOString(),Y=await this.storage.getMatchingSubscriptions(Q);if(Y.length===0){console.log(`[EventBus] No subscriptions for cron event ${Q.id}, skipping next delivery`);return}await this.storage.createDeliveries(Q.id,Y.map((W)=>W.id),G),console.log(`[EventBus] Scheduled next cron delivery for event ${Q.id} at ${G}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Q.id}:`,X)}}}var zZ1=_(()=>{mQ0();lQ0();qZ1()});class pQ0{storage;worker;notifyStrategy;running=!1;constructor(Q){this.storage=Q.storage,this.notifyStrategy=Q.notifyStrategy,this.worker=new dQ0(this.storage,Q.config)}async publish(Q,X,J){if(J.deliverAt&&J.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let G;if(J.cron)try{let H=new xy(J.cron).nextRun();if(!H)throw Error("Cron expression does not produce a next run time");G=H.toISOString()}catch(Z){throw Error(`Invalid cron expression: ${Z instanceof Error?Z.message:String(Z)}`)}let Y=crypto.randomUUID(),W=new Date().toISOString(),$=await this.storage.publishEvent({id:Y,organizationId:Q,type:J.type,source:X,subject:J.subject,time:W,data:J.data,cron:J.cron}),K=await this.storage.getMatchingSubscriptions($);if(K.length>0){let Z=J.deliverAt??G;if(await this.storage.createDeliveries(Y,K.map((H)=>H.id),Z),this.notifyStrategy&&!Z)await this.notifyStrategy.notify(Y).catch((H)=>{console.warn("[EventBus] Notify failed (non-critical):",H)})}return $}async subscribe(Q,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Q,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Q,X){return this.storage.unsubscribe(X,Q)}async listSubscriptions(Q,X){return this.storage.listSubscriptions(Q,X)}async getSubscription(Q,X){return this.storage.getSubscription(X,Q)}async getEvent(Q,X){return this.storage.getEvent(X,Q)}async cancelEvent(Q,X,J){return this.storage.cancelEvent(X,Q,J)}async ackEvent(Q,X,J){return this.storage.ackDelivery(X,Q,J)}async syncSubscriptions(Q,X){return this.storage.syncSubscriptions({organizationId:Q,...X})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Q)=>{console.error("[EventBus] Error processing after notify:",Q)})});await this.worker.processNow().catch((Q)=>{console.error("[EventBus] Error processing pending events on startup:",Q)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Q){console.error("[EventBus] Error stopping notify strategy:",Q)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var UZ1=_(()=>{mQ0();zZ1()});function NZ1(...Q){return{async start(X){await Promise.all(Q.map((J)=>J.start(X)))},async stop(){await Promise.all(Q.map((X)=>X.stop().catch((J)=>{console.error("[NotifyStrategy] Error stopping strategy:",J)})))},async notify(X){await Promise.all(Q.map((J)=>J.notify(X).catch((G)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",G)})))}}}class uy{intervalMs;timer=null;onNotify=null;constructor(Q){this.intervalMs=Q}async start(Q){if(this.timer)return;this.onNotify=Q,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Q){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Nh4}from"kysely";class cQ0{db;pool;listenClient=null;onNotify=null;constructor(Q,X){this.db=Q;this.pool=X}async start(Q){if(this.listenClient)return;this.onNotify=Q;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===CN&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${CN}`),console.log("[PostgresNotify] Started LISTEN on",CN)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${CN}`),console.log("[PostgresNotify] Stopped LISTEN on",CN)}catch{}this.cleanup()}}async notify(Q){try{await Nh4`SELECT pg_notify(${CN}, ${Q})`.execute(this.db)}catch(X){console.warn("[PostgresNotify] Failed to send NOTIFY:",X)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var CN="mesh_events";var BZ1=()=>{};function OZ1(Q,X){let J=WZ1(Q.db),G=X?.pollIntervalMs??gy.pollIntervalMs,Y=Q.type==="postgres"?NZ1(new uy(G),new cQ0(Q.db,Q.pool)):new uy(G);return new pQ0({storage:J,config:X,notifyStrategy:Y})}var DZ1=_(()=>{UZ1();lQ0();BZ1()});var LZ1;var wZ1=_(()=>{LZ1={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var PZ1,MZ1;var TZ1=_(()=>{kZ();wU();wZ1();PZ1=new uQ;PZ1.get("/config",async(Q)=>{try{let X=Object.keys(q9.socialProviders??{}),J=X.length>0,G=X.map((W)=>({name:W,icon:LZ1[W].icon})),Y={emailAndPassword:{enabled:q9.emailAndPassword?.enabled??!1},magicLink:{enabled:q9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:J,providers:G},sso:q9.ssoConfig?{enabled:!0,providerId:q9.ssoConfig.providerId}:{enabled:!1}};return Q.json({success:!0,config:Y})}catch(X){let J=X instanceof Error?X.message:"Failed to load auth config";return Q.json({success:!1,error:J},500)}});MZ1=PZ1});class lM{proxies=new Map;constructor(){}static async create(Q,X){let J=new lM,G=await Promise.allSettled(Q.map(async({connection:Y,selectedTools:W,selectedResources:$,selectedPrompts:K})=>{try{let Z=await X.createMCPProxy(Y);return{connection:Y,proxy:Z,selectedTools:W,selectedResources:$,selectedPrompts:K}}catch(Z){return console.error(`[gateway] Failed to create proxy for connection ${Y.id}:`,Z),null}}));for(let Y of G)if(Y.status==="fulfilled"&&Y.value)J.proxies.set(Y.value.connection.id,Y.value);return J}get(Q){return this.proxies.get(Q)}entries(){return this.proxies.entries()}forEach(Q){this.proxies.forEach((X,J)=>Q(X,J))}async mapAsync(Q){let X=[];for(let[J,G]of this.proxies.entries())X.push(Q(G,J));return await Promise.all(X)}async mapSettled(Q){return Promise.allSettled(Array.from(this.proxies.entries()).map(([X,J])=>Q(J,X)))}get size(){return this.proxies.size}}function AZ1(Q){let X=[],J=[],G=(Z)=>{let H=Q.newFunction(Z,(...F)=>{try{let q=F.map((V)=>Q.dump(V));X.push({type:Z??"log",content:q.map(String).join(" ")})}finally{F.forEach((q)=>q.dispose())}return Q.undefined});return J.push(H),H},Y=Q.newObject();J.push(Y);let W=G("log"),$=G("warn"),K=G("error");return Q.setProp(Y,"log",W),Q.setProp(Y,"warn",$),Q.setProp(Y,"error",K),Q.setProp(Q.global,"console",Y),{logs:X,[Symbol.dispose](){J.forEach((Z)=>Z.dispose())}}}var dF,nQ0,my,pF,dM;var ly=_(()=>{dF={JS_EVAL_TYPE_GLOBAL:0,JS_EVAL_TYPE_MODULE:1,JS_EVAL_TYPE_DIRECT:2,JS_EVAL_TYPE_INDIRECT:3,JS_EVAL_TYPE_MASK:3,JS_EVAL_FLAG_STRICT:8,JS_EVAL_FLAG_STRIP:16,JS_EVAL_FLAG_COMPILE_ONLY:32,JS_EVAL_FLAG_BACKTRACE_BARRIER:64},nQ0={BaseObjects:1,Date:2,Eval:4,StringNormalize:8,RegExp:16,RegExpCompiler:32,JSON:64,Proxy:128,MapSet:256,TypedArrays:512,Promise:1024,BigInt:2048,BigFloat:4096,BigDecimal:8192,OperatorOverloading:16384,BignumExt:32768},my={Pending:0,Fulfilled:1,Rejected:2},pF={JS_GPN_STRING_MASK:1,JS_GPN_SYMBOL_MASK:2,JS_GPN_PRIVATE_MASK:4,JS_GPN_ENUM_ONLY:16,JS_GPN_SET_ENUM:32,QTS_GPN_NUMBER_MASK:64,QTS_STANDARD_COMPLIANT_NUMBER:128},dM={IsStrictlyEqual:0,IsSameValue:1,IsSameValueZero:2}});function RN(...Q){tQ0&&console.log("quickjs-emscripten:",...Q)}function*bZ1(Q){return yield Q}function Dh4(Q){return bZ1(QX0(Q))}function EZ1(Q,X){return(...J)=>{let G=X.call(Q,eQ0,...J);return QX0(G)}}function Lh4(Q,X){let J=X.call(Q,eQ0);return QX0(J)}function QX0(Q){function X(J){return J.done?J.value:J.value instanceof Promise?J.value.then((G)=>X(Q.next(G)),(G)=>X(Q.throw(G))):X(Q.next(J.value))}return X(Q.next())}function iQ0(Q,X){let J;try{Q.dispose()}catch(G){J=G}if(X&&J)throw Object.assign(X,{message:`${X.message}
1083
1083
  Then, failed to dispose scope: ${J.message}`,disposeError:J}),X;if(X||J)throw X||J}function xZ1(Q){let X=Q?Array.from(Q):[];function J(){return X.forEach((Y)=>Y.alive?Y.dispose():void 0)}function G(){return X.some((Y)=>Y.alive)}return Object.defineProperty(X,oQ0,{configurable:!0,enumerable:!1,value:J}),Object.defineProperty(X,"dispose",{configurable:!0,enumerable:!1,value:J}),Object.defineProperty(X,"alive",{configurable:!0,enumerable:!1,get:G}),X}function dy(Q){return!!(Q&&(typeof Q=="object"||typeof Q=="function")&&("alive"in Q)&&typeof Q.alive=="boolean"&&("dispose"in Q)&&typeof Q.dispose=="function")}function wh4(Q){if(!Q)return 0;let X=0;for(let[J,G]of Object.entries(Q)){if(!(J in nQ0))throw new yZ1(J);G&&(X|=nQ0[J])}return X}function Ph4(Q){if(typeof Q=="number")return Q;if(Q===void 0)return 0;let{type:X,strict:J,strip:G,compileOnly:Y,backtraceBarrier:W}=Q,$=0;return X==="global"&&($|=dF.JS_EVAL_TYPE_GLOBAL),X==="module"&&($|=dF.JS_EVAL_TYPE_MODULE),J&&($|=dF.JS_EVAL_FLAG_STRICT),G&&($|=dF.JS_EVAL_FLAG_STRIP),Y&&($|=dF.JS_EVAL_FLAG_COMPILE_ONLY),W&&($|=dF.JS_EVAL_FLAG_BACKTRACE_BARRIER),$}function Mh4(Q){if(typeof Q=="number")return Q;if(Q===void 0)return 0;let{strings:X,symbols:J,quickjsPrivate:G,onlyEnumerable:Y,numbers:W,numbersAsStrings:$}=Q,K=0;return X&&(K|=pF.JS_GPN_STRING_MASK),J&&(K|=pF.JS_GPN_SYMBOL_MASK),G&&(K|=pF.JS_GPN_PRIVATE_MASK),Y&&(K|=pF.JS_GPN_ENUM_ONLY),W&&(K|=pF.QTS_GPN_NUMBER_MASK),$&&(K|=pF.QTS_STANDARD_COMPLIANT_NUMBER),K}function Th4(...Q){let X=[];for(let J of Q)J!==void 0&&(X=X.concat(J));return X}function GX0(Q,X){X.interruptHandler&&Q.setInterruptHandler(X.interruptHandler),X.maxStackSizeBytes!==void 0&&Q.setMaxStackSize(X.maxStackSizeBytes),X.memoryLimitBytes!==void 0&&Q.setMemoryLimit(X.memoryLimitBytes)}function WX0(Q,X){X.moduleLoader&&Q.setModuleLoader(X.moduleLoader),X.shouldInterrupt&&Q.setInterruptHandler(X.shouldInterrupt),X.memoryLimitBytes!==void 0&&Q.setMemoryLimit(X.memoryLimitBytes),X.maxStackSizeBytes!==void 0&&Q.setMaxStackSize(X.maxStackSizeBytes)}var Bh4,Oh4=(Q,X)=>{for(var J in X)Bh4(Q,J,{get:X[J],enumerable:!0})},tQ0=!1,IZ1,rQ0,CZ1,aQ0,RZ1,SZ1,vZ1,kZ1,_Z1,yZ1,hZ1,fZ1,eQ0,Z$,oQ0,jZ1,ZQ,yZ,sQ0,W7,XX0,gZ1,uZ1,cF,mZ1,lZ1=class{constructor(Q){this.module=Q}toPointerArray(Q){let X=new Int32Array(Q.map((Y)=>Y.value)),J=X.length*X.BYTES_PER_ELEMENT,G=this.module._malloc(J);return new Uint8Array(this.module.HEAPU8.buffer,G,J).set(new Uint8Array(X.buffer)),new ZQ(G,void 0,(Y)=>this.module._free(Y))}newTypedArray(Q,X){let J=new Q(Array(X).fill(0)),G=J.length*J.BYTES_PER_ELEMENT,Y=this.module._malloc(G),W=new Q(this.module.HEAPU8.buffer,Y,X);return W.set(J),new ZQ({typedArray:W,ptr:Y},void 0,($)=>this.module._free($.ptr))}newMutablePointerArray(Q){return this.newTypedArray(Int32Array,Q)}newHeapCharPointer(Q){let X=this.module.lengthBytesUTF8(Q),J=X+1,G=this.module._malloc(J);return this.module.stringToUTF8(Q,G,J),new ZQ({ptr:G,strlen:X},void 0,(Y)=>this.module._free(Y.ptr))}newHeapBufferPointer(Q){let X=Q.byteLength,J=this.module._malloc(X);return this.module.HEAPU8.set(Q,J),new ZQ({pointer:J,numBytes:X},void 0,(G)=>this.module._free(G.pointer))}consumeHeapCharPointer(Q){let X=this.module.UTF8ToString(Q);return this.module._free(Q),X}},rp6,JX0,Ah4,Eh4,dZ1,pZ1,jh4=class{constructor(Q){this.callFunction=Q.callFunction,this.shouldInterrupt=Q.shouldInterrupt,this.loadModuleSource=Q.loadModuleSource,this.normalizeModule=Q.normalizeModule}},YX0=class{constructor(Q){this.contextCallbacks=new Map,this.runtimeCallbacks=new Map,this.suspendedCount=0,this.cToHostCallbacks=new jh4({callFunction:(X,J,G,Y,W,$)=>this.handleAsyncify(X,()=>{try{let K=this.contextCallbacks.get(J);if(!K)throw Error(`QuickJSContext(ctx = ${J}) not found for C function call "${$}"`);return K.callFunction(J,G,Y,W,$)}catch(K){return console.error("[C to host error: returning null]",K),0}}),shouldInterrupt:(X,J)=>this.handleAsyncify(X,()=>{try{let G=this.runtimeCallbacks.get(J);if(!G)throw Error(`QuickJSRuntime(rt = ${J}) not found for C interrupt`);return G.shouldInterrupt(J)}catch(G){return console.error("[C to host interrupt: returning error]",G),1}}),loadModuleSource:(X,J,G,Y)=>this.handleAsyncify(X,()=>{try{let W=this.runtimeCallbacks.get(J);if(!W)throw Error(`QuickJSRuntime(rt = ${J}) not found for C module loader`);let $=W.loadModuleSource;if(!$)throw Error(`QuickJSRuntime(rt = ${J}) does not support module loading`);return $(J,G,Y)}catch(W){return console.error("[C to host module loader error: returning null]",W),0}}),normalizeModule:(X,J,G,Y,W)=>this.handleAsyncify(X,()=>{try{let $=this.runtimeCallbacks.get(J);if(!$)throw Error(`QuickJSRuntime(rt = ${J}) not found for C module loader`);let K=$.normalizeModule;if(!K)throw Error(`QuickJSRuntime(rt = ${J}) does not support module loading`);return K(J,G,Y,W)}catch($){return console.error("[C to host module loader error: returning null]",$),0}})}),this.module=Q,this.module.callbacks=this.cToHostCallbacks}setRuntimeCallbacks(Q,X){this.runtimeCallbacks.set(Q,X)}deleteRuntime(Q){this.runtimeCallbacks.delete(Q)}setContextCallbacks(Q,X){this.contextCallbacks.set(Q,X)}deleteContext(Q){this.contextCallbacks.delete(Q)}handleAsyncify(Q,X){if(Q)return Q.handleSleep((G)=>{try{let Y=X();if(!(Y instanceof Promise)){RN("asyncify.handleSleep: not suspending:",Y),G(Y);return}if(this.suspended)throw new SZ1(`Already suspended at: ${this.suspended.stack}
1084
1084
  Attempted to suspend at:`);this.suspended=new vZ1(`(${this.suspendedCount++})`),RN("asyncify.handleSleep: suspending:",this.suspended),Y.then((W)=>{this.suspended=void 0,RN("asyncify.handleSleep: resolved:",W),G(W)},(W)=>{RN("asyncify.handleSleep: rejected:",W),console.error("QuickJS: cannot handle error in suspended function",W),this.suspended=void 0})}catch(Y){throw RN("asyncify.handleSleep: error:",Y),this.suspended=void 0,Y}});let J=X();if(J instanceof Promise)throw Error("Promise return value not supported in non-asyncify context.");return J}},$X0=class{constructor(Q,X){this.module=Q,this.ffi=X,this.callbacks=new YX0(Q)}newRuntime(Q={}){let X=new ZQ(this.ffi.QTS_NewRuntime(),void 0,(G)=>{this.callbacks.deleteRuntime(G),this.ffi.QTS_FreeRuntime(G)}),J=new pZ1({module:this.module,callbacks:this.callbacks,ffi:this.ffi,rt:X});return GX0(J,Q),Q.moduleLoader&&J.setModuleLoader(Q.moduleLoader),J}newContext(Q={}){let X=this.newRuntime(),J=X.newContext({...Q,ownedLifetimes:Th4(X,Q.ownedLifetimes)});return X.context=J,J}evalCode(Q,X={}){return W7.withScope((J)=>{let G=J.manage(this.newContext());WX0(G.runtime,X);let Y=G.evalCode(Q,"eval.js");if(X.memoryLimitBytes!==void 0&&G.runtime.setMemoryLimit(-1),Y.error)throw G.dump(J.manage(Y.error));return G.dump(J.manage(Y.value))})}getWasmMemory(){let Q=this.module.quickjsEmscriptenInit?.(()=>{})?.getWasmMemory?.();if(!Q)throw Error("Variant does not support getting WebAssembly.Memory");return Q}getFFI(){return this.ffi}};var KX0=_(()=>{ly();ly();Bh4=Object.defineProperty;IZ1={};Oh4(IZ1,{QuickJSAsyncifyError:()=>SZ1,QuickJSAsyncifySuspended:()=>vZ1,QuickJSEmptyGetOwnPropertyNames:()=>fZ1,QuickJSEmscriptenModuleError:()=>_Z1,QuickJSMemoryLeakDetected:()=>kZ1,QuickJSNotImplemented:()=>RZ1,QuickJSPromisePending:()=>hZ1,QuickJSUnknownIntrinsic:()=>yZ1,QuickJSUnwrapError:()=>rQ0,QuickJSUseAfterFree:()=>aQ0,QuickJSWrongOwner:()=>CZ1});rQ0=class extends Error{constructor(Q,X){let J=typeof Q=="object"&&Q&&"message"in Q?String(Q.message):String(Q);super(J);this.cause=Q,this.context=X,this.name="QuickJSUnwrapError"}},CZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSWrongOwner"}},aQ0=class extends Error{constructor(){super(...arguments);this.name="QuickJSUseAfterFree"}},RZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSNotImplemented"}},SZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSAsyncifyError"}},vZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSAsyncifySuspended"}},kZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSMemoryLeakDetected"}},_Z1=class extends Error{constructor(){super(...arguments);this.name="QuickJSEmscriptenModuleError"}},yZ1=class extends TypeError{constructor(){super(...arguments);this.name="QuickJSUnknownIntrinsic"}},hZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSPromisePending"}},fZ1=class extends Error{constructor(){super(...arguments);this.name="QuickJSEmptyGetOwnPropertyNames"}};eQ0=bZ1;eQ0.of=Dh4;Z$=class{[Symbol.dispose](){return this.dispose()}},oQ0=Symbol.dispose??Symbol.for("Symbol.dispose"),jZ1=Z$.prototype;jZ1[oQ0]||(jZ1[oQ0]=function(){return this.dispose()});ZQ=class Q extends Z${constructor(X,J,G,Y){super();this._value=X,this.copier=J,this.disposer=G,this._owner=Y,this._alive=!0,this._constructorStack=tQ0?Error("Lifetime constructed").stack:void 0}get alive(){return this._alive}get value(){return this.assertAlive(),this._value}get owner(){return this._owner}get dupable(){return!!this.copier}dup(){if(this.assertAlive(),!this.copier)throw Error("Non-dupable lifetime");return new Q(this.copier(this._value),this.copier,this.disposer,this._owner)}consume(X){this.assertAlive();let J=X(this);return this.dispose(),J}map(X){return this.assertAlive(),X(this)}tap(X){return X(this),this}dispose(){this.assertAlive(),this.disposer&&this.disposer(this._value),this._alive=!1}assertAlive(){if(!this.alive)throw this._constructorStack?new aQ0(`Lifetime not alive
1085
1085
  ${this._constructorStack}
@@ -1124,7 +1124,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
1124
1124
  ]))`;continue}}if(G.s&&Y[H]==="."){W+=K?`${Y[H]}\r
1125
1125
  `:`[${Y[H]}\r
1126
1126
  ]`;continue}if(W+=Y[H],Y[H]==="\\")$=!0;else if(K&&Y[H]==="]")K=!1;else if(!K&&Y[H]==="[")K=!0}try{new RegExp(W)}catch(H){return console.warn(`Could not convert regex pattern at ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Q.source}return W}function eq1(Q,X){var J,G,Y,W,$,K;let Z={type:"object",additionalProperties:(J=c6(Q.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?J:X.allowedAdditionalProperties};if(((G=Q.keyType)==null?void 0:G._def.typeName)===h0.ZodString&&((Y=Q.keyType._def.checks)==null?void 0:Y.length)){let{type:H,...F}=tq1(Q.keyType._def,X);return{...Z,propertyNames:F}}else if(((W=Q.keyType)==null?void 0:W._def.typeName)===h0.ZodEnum)return{...Z,propertyNames:{enum:Q.keyType._def.values}};else if((($=Q.keyType)==null?void 0:$._def.typeName)===h0.ZodBranded&&Q.keyType._def.type._def.typeName===h0.ZodString&&((K=Q.keyType._def.type._def.checks)==null?void 0:K.length)){let{type:H,...F}=oq1(Q.keyType._def,X);return{...Z,propertyNames:F}}return Z}function jg4(Q,X){if(X.mapStrategy==="record")return eq1(Q,X);let J=c6(Q.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||$J(),G=c6(Q.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||$J();return{type:"array",maxItems:125,items:{type:"array",items:[J,G],minItems:2,maxItems:2}}}function Ig4(Q){let X=Q.values,G=Object.keys(Q.values).filter((W)=>{return typeof X[X[W]]!=="number"}).map((W)=>X[W]),Y=Array.from(new Set(G.map((W)=>typeof W)));return{type:Y.length===1?Y[0]==="string"?"string":"number":["string","number"],enum:G}}function Cg4(){return{not:$J()}}function Rg4(){return{type:"null"}}function Sg4(Q,X){let J=Q.options instanceof Map?Array.from(Q.options.values()):Q.options;if(J.every((G)=>(G._def.typeName in rG0)&&(!G._def.checks||!G._def.checks.length))){let G=J.reduce((Y,W)=>{let $=rG0[W._def.typeName];return $&&!Y.includes($)?[...Y,$]:Y},[]);return{type:G.length>1?G:G[0]}}else if(J.every((G)=>G._def.typeName==="ZodLiteral"&&!G.description)){let G=J.reduce((Y,W)=>{let $=typeof W._def.value;switch($){case"string":case"number":case"boolean":return[...Y,$];case"bigint":return[...Y,"integer"];case"object":if(W._def.value===null)return[...Y,"null"];case"symbol":case"undefined":case"function":default:return Y}},[]);if(G.length===J.length){let Y=G.filter((W,$,K)=>K.indexOf(W)===$);return{type:Y.length>1?Y:Y[0],enum:J.reduce((W,$)=>{return W.includes($._def.value)?W:[...W,$._def.value]},[])}}}else if(J.every((G)=>G._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((G,Y)=>[...G,...Y._def.values.filter((W)=>!G.includes(W))],[])};return vg4(Q,X)}function kg4(Q,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Q.innerType._def.typeName)&&(!Q.innerType._def.checks||!Q.innerType._def.checks.length))return{type:[rG0[Q.innerType._def.typeName],"null"]};let J=c6(Q.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function _g4(Q){let X={type:"number"};if(!Q.checks)return X;for(let J of Q.checks)switch(J.kind){case"int":X.type="integer";break;case"min":if(J.inclusive)X.minimum=J.value;else X.exclusiveMinimum=J.value;break;case"max":if(J.inclusive)X.maximum=J.value;else X.exclusiveMaximum=J.value;break;case"multipleOf":X.multipleOf=J.value;break}return X}function yg4(Q,X){let J={type:"object",properties:{}},G=[],Y=Q.shape();for(let $ in Y){let K=Y[$];if(K===void 0||K._def===void 0)continue;let Z=fg4(K),H=c6(K._def,{...X,currentPath:[...X.currentPath,"properties",$],propertyPath:[...X.currentPath,"properties",$]});if(H===void 0)continue;if(J.properties[$]=H,!Z)G.push($)}if(G.length)J.required=G;let W=hg4(Q,X);if(W!==void 0)J.additionalProperties=W;return J}function hg4(Q,X){if(Q.catchall._def.typeName!=="ZodNever")return c6(Q.catchall._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]});switch(Q.unknownKeys){case"passthrough":return X.allowedAdditionalProperties;case"strict":return X.rejectedAdditionalProperties;case"strip":return X.removeAdditionalStrategy==="strict"?X.allowedAdditionalProperties:X.rejectedAdditionalProperties}}function fg4(Q){try{return Q.isOptional()}catch(X){return!0}}function gg4(Q,X){return c6(Q.type._def,X)}function ug4(Q,X){let G={type:"array",uniqueItems:!0,items:c6(Q.valueType._def,{...X,currentPath:[...X.currentPath,"items"]})};if(Q.minSize)G.minItems=Q.minSize.value;if(Q.maxSize)G.maxItems=Q.maxSize.value;return G}function mg4(Q,X){if(Q.rest)return{type:"array",minItems:Q.items.length,items:Q.items.map((J,G)=>c6(J._def,{...X,currentPath:[...X.currentPath,"items",`${G}`]})).reduce((J,G)=>G===void 0?J:[...J,G],[]),additionalItems:c6(Q.rest._def,{...X,currentPath:[...X.currentPath,"additionalItems"]})};else return{type:"array",minItems:Q.items.length,maxItems:Q.items.length,items:Q.items.map((J,G)=>c6(J._def,{...X,currentPath:[...X.currentPath,"items",`${G}`]})).reduce((J,G)=>G===void 0?J:[...J,G],[])}}function lg4(){return{not:$J()}}function dg4(){return $J()}function c6(Q,X,J=!1){var G;let Y=X.seen.get(Q);if(X.override){let Z=(G=X.override)==null?void 0:G.call(X,Q,X,Y,J);if(Z!==qg4)return Z}if(Y&&!J){let Z=ig4(Y,X);if(Z!==void 0)return Z}let W={def:Q,path:X.currentPath,jsonSchema:void 0};X.seen.set(Q,W);let $=cg4(Q,Q.typeName,X),K=typeof $==="function"?c6($(),X):$;if(K)rg4(Q,X,K);if(X.postProcess){let Z=X.postProcess(K,Q,X);return W.jsonSchema=K,Z}return W.jsonSchema=K,K}function lQ(Q){let X;return()=>{if(X==null)X=Q();return X}}function xZ(Q,{validate:X}={}){return{[aG0]:!0,_type:void 0,get jsonSchema(){if(typeof Q==="function")Q=Q();return Q},validate:X}}function sg4(Q){return typeof Q==="object"&&Q!==null&&aG0 in Q&&Q[aG0]===!0&&"jsonSchema"in Q&&"validate"in Q}function _G(Q){return Q==null?xZ({properties:{},additionalProperties:!1}):sg4(Q)?Q:("~standard"in Q)?Q["~standard"].vendor==="zod"?f5(Q):tg4(Q):Q()}function tg4(Q){return xZ(()=>Q["~standard"].jsonSchema.input({target:"draft-07"}),{validate:async(X)=>{let J=await Q["~standard"].validate(X);return"value"in J?{success:!0,value:J.value}:{success:!1,error:new $7({value:X,cause:J.issues})}}})}function eg4(Q,X){var J;let G=(J=X==null?void 0:X.useReferences)!=null?J:!1;return xZ(()=>og4(Q,{$refStrategy:G?"root":"none"}),{validate:async(Y)=>{let W=await Q.safeParseAsync(Y);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function Qu4(Q,X){var J;let G=(J=X==null?void 0:X.useReferences)!=null?J:!1;return xZ(()=>eh(E2(Q,{target:"draft-7",io:"input",reused:G?"ref":"inline"})),{validate:async(Y)=>{let W=await j2(Q,Y);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function Xu4(Q){return"_zod"in Q}function f5(Q,X){if(Xu4(Q))return Qu4(Q,X);else return eg4(Q,X)}async function f2({value:Q,schema:X}){let J=await dQ({value:Q,schema:X});if(!J.success)throw $7.wrap({value:Q,cause:J.error});return J.value}async function dQ({value:Q,schema:X}){let J=_G(X);try{if(J.validate==null)return{success:!0,value:Q,rawValue:Q};let G=await J.validate(Q);if(G.success)return{success:!0,value:G.value,rawValue:Q};return{success:!1,error:$7.wrap({value:Q,cause:G.error}),rawValue:Q}}catch(G){return{success:!1,error:$7.wrap({value:Q,cause:G}),rawValue:Q}}}async function Ju4({text:Q,schema:X}){try{let J=aq1(Q);if(X==null)return J;return f2({value:J,schema:X})}catch(J){if(cM.isInstance(J)||$7.isInstance(J))throw J;throw new cM({text:Q,cause:J})}}async function TX({text:Q,schema:X}){try{let J=aq1(Q);if(X==null)return{success:!0,value:J,rawValue:J};return await dQ({value:J,schema:X})}catch(J){return{success:!1,error:cM.isInstance(J)?J:new cM({text:Q,cause:J}),rawValue:void 0}}}function QV1({stream:Q,schema:X}){return Q.pipeThrough(new TextDecoderStream).pipeThrough(new Gw).pipeThrough(new TransformStream({async transform({data:J},G){if(J==="[DONE]")return;G.enqueue(await TX({text:J,schema:X}))}}))}function sG0(Q){return Q}async function b5(Q){if(typeof Q==="function")Q=Q();return Promise.resolve(Q)}function JV1(Q){return Q==null?void 0:Q.replace(/\/$/,"")}function Wu4(Q){return Q!=null&&typeof Q[Symbol.asyncIterator]==="function"}async function*YV1({execute:Q,input:X,options:J}){let G=Q(X,J);if(Wu4(G)){let Y;for await(let W of G)Y=W,yield{type:"preliminary",output:W};yield{type:"final",output:Y}}else yield{type:"final",output:await G}}var Jq=class{constructor(){this.status={type:"pending"},this._resolve=void 0,this._reject=void 0}get promise(){if(this._promise)return this._promise;return this._promise=new Promise((Q,X)=>{if(this.status.type==="resolved")Q(this.status.value);else if(this.status.type==="rejected")X(this.status.error);this._resolve=Q,this._reject=X}),this._promise}resolve(Q){var X;if(this.status={type:"resolved",value:Q},this._promise)(X=this._resolve)==null||X.call(this,Q)}reject(Q){var X;if(this.status={type:"rejected",error:Q},this._promise)(X=this._reject)==null||X.call(this,Q)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},Xg4,Jg4,dq1="AI_DownloadError",pq1,Yg4,bq1,xq1,Qf,kG=({prefix:Q,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:G="-"}={})=>{let Y=()=>{let W=J.length,$=Array(X);for(let K=0;K<X;K++)$[K]=J[Math.random()*W|0];return $.join("")};if(Q==null)return Y;if(J.includes(G))throw new HH1({argument:"separator",message:`The separator "${G}" must not be part of the alphabet "${J}".`});return()=>`${Q}${G}${Y()}`},Gg4,Wg4,nq1="4.0.1",Kg4=()=>globalThis.fetch,oG0=async({url:Q,headers:X={},successfulResponseHandler:J,failedResponseHandler:G,abortSignal:Y,fetch:W=Kg4()})=>{try{let $=await W(Q,{method:"GET",headers:bZ(X,`ai-sdk/provider-utils/${nq1}`,Xf()),signal:Y}),K=k2($);if(!$.ok){let Z;try{Z=await G({response:$,url:Q,requestBodyValues:{}})}catch(H){if(B$(H)||O9.isInstance(H))throw H;throw new O9({message:"Failed to process error response",cause:H,statusCode:$.status,url:Q,responseHeaders:K,requestBodyValues:{}})}throw Z.value}try{return await J({response:$,url:Q,requestBodyValues:{}})}catch(Z){if(Z instanceof Error){if(B$(Z)||O9.isInstance(Z))throw Z}throw new O9({message:"Failed to process successful response",cause:Z,statusCode:$.status,url:Q,responseHeaders:K,requestBodyValues:{}})}}catch($){throw cq1({error:$,url:Q,requestBodyValues:{}})}},Zg4,Hg4,qg4,uq1,Vg4=(Q)=>typeof Q==="string"?{...uq1,name:Q}:{...uq1,...Q},Bg4=(Q,X)=>{return c6(Q.innerType._def,X)},Og4=(Q)=>{let X={type:"integer",format:"unix-time"};for(let J of Q.checks)switch(J.kind){case"min":X.minimum=J.value;break;case"max":X.maximum=J.value;break}return X},Pg4=(Q)=>{if("type"in Q&&Q.type==="string")return!1;return"allOf"in Q},nG0=void 0,K7,Ag4,rG0,vg4=(Q,X)=>{let J=(Q.options instanceof Map?Array.from(Q.options.values()):Q.options).map((G,Y)=>c6(G._def,{...X,currentPath:[...X.currentPath,"anyOf",`${Y}`]})).filter((G)=>!!G&&(!X.strictUnions||typeof G==="object"&&Object.keys(G).length>0));return J.length?{anyOf:J}:void 0},bg4=(Q,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return c6(Q.innerType._def,X);let G=c6(Q.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return G?{anyOf:[{not:$J()},G]}:$J()},xg4=(Q,X)=>{if(X.pipeStrategy==="input")return c6(Q.in._def,X);else if(X.pipeStrategy==="output")return c6(Q.out._def,X);let J=c6(Q.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),G=c6(Q.out._def,{...X,currentPath:[...X.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,G].filter((Y)=>Y!==void 0)}},pg4=(Q,X)=>{return c6(Q.innerType._def,X)},cg4=(Q,X,J)=>{switch(X){case h0.ZodString:return tq1(Q,J);case h0.ZodNumber:return _g4(Q);case h0.ZodObject:return yg4(Q,J);case h0.ZodBigInt:return Ug4(Q);case h0.ZodBoolean:return Ng4();case h0.ZodDate:return sq1(Q,J);case h0.ZodUndefined:return lg4();case h0.ZodNull:return Rg4();case h0.ZodArray:return zg4(Q,J);case h0.ZodUnion:case h0.ZodDiscriminatedUnion:return Sg4(Q,J);case h0.ZodIntersection:return Mg4(Q,J);case h0.ZodTuple:return mg4(Q,J);case h0.ZodRecord:return eq1(Q,J);case h0.ZodLiteral:return Tg4(Q);case h0.ZodEnum:return wg4(Q);case h0.ZodNativeEnum:return Ig4(Q);case h0.ZodNullable:return kg4(Q,J);case h0.ZodOptional:return bg4(Q,J);case h0.ZodMap:return jg4(Q,J);case h0.ZodSet:return ug4(Q,J);case h0.ZodLazy:return()=>Q.getter()._def;case h0.ZodPromise:return gg4(Q,J);case h0.ZodNaN:case h0.ZodNever:return Cg4();case h0.ZodEffects:return Lg4(Q,J);case h0.ZodAny:return $J();case h0.ZodUnknown:return dg4();case h0.ZodDefault:return Dg4(Q,J);case h0.ZodBranded:return oq1(Q,J);case h0.ZodReadonly:return pg4(Q,J);case h0.ZodCatch:return Bg4(Q,J);case h0.ZodPipeline:return xg4(Q,J);case h0.ZodFunction:case h0.ZodVoid:case h0.ZodSymbol:return;default:return((G)=>{return})(X)}},ng4=(Q,X)=>{let J=0;for(;J<Q.length&&J<X.length;J++)if(Q[J]!==X[J])break;return[(Q.length-J).toString(),...X.slice(J)].join("/")},ig4=(Q,X)=>{switch(X.$refStrategy){case"root":return{$ref:Q.path.join("/")};case"relative":return{$ref:ng4(X.currentPath,Q.path)};case"none":case"seen":{if(Q.path.length<X.currentPath.length&&Q.path.every((J,G)=>X.currentPath[G]===J))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),$J();return X.$refStrategy==="seen"?$J():void 0}}},rg4=(Q,X,J)=>{if(Q.description)J.description=Q.description;return J},ag4=(Q)=>{let X=Vg4(Q),J=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return{...X,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([G,Y])=>[Y._def,{def:Y._def,path:[...X.basePath,X.definitionPath,G],jsonSchema:void 0}]))}},og4=(Q,X)=>{var J;let G=ag4(X),Y=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((H,[F,q])=>{var V;return{...H,[F]:(V=c6(q._def,{...G,currentPath:[...G.basePath,G.definitionPath,F]},!0))!=null?V:$J()}},{}):void 0,W=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,$=(J=c6(Q._def,W===void 0?G:{...G,currentPath:[...G.basePath,G.definitionPath,W]},!1))!=null?J:$J(),K=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(K!==void 0)$.title=K;let Z=W===void 0?Y?{...$,[G.definitionPath]:Y}:$:{$ref:[...G.$refStrategy==="relative"?[]:G.basePath,G.definitionPath,W].join("/"),[G.definitionPath]:{...Y,[W]:$}};return Z.$schema="http://json-schema.org/draft-07/schema#",Z},aG0,Yu4=()=>globalThis.fetch,Yq=async({url:Q,headers:X,body:J,failedResponseHandler:G,successfulResponseHandler:Y,abortSignal:W,fetch:$})=>Gu4({url:Q,headers:{"Content-Type":"application/json",...X},body:{content:JSON.stringify(J),values:J},failedResponseHandler:G,successfulResponseHandler:Y,abortSignal:W,fetch:$}),Gu4=async({url:Q,headers:X={},body:J,successfulResponseHandler:G,failedResponseHandler:Y,abortSignal:W,fetch:$=Yu4()})=>{try{let K=await $(Q,{method:"POST",headers:bZ(X,`ai-sdk/provider-utils/${nq1}`,Xf()),body:J.content,signal:W}),Z=k2(K);if(!K.ok){let H;try{H=await Y({response:K,url:Q,requestBodyValues:J.values})}catch(F){if(B$(F)||O9.isInstance(F))throw F;throw new O9({message:"Failed to process error response",cause:F,statusCode:K.status,url:Q,responseHeaders:Z,requestBodyValues:J.values})}throw H.value}try{return await G({response:K,url:Q,requestBodyValues:J.values})}catch(H){if(H instanceof Error){if(B$(H)||O9.isInstance(H))throw H}throw new O9({message:"Failed to process successful response",cause:H,statusCode:K.status,url:Q,responseHeaders:Z,requestBodyValues:J.values})}}catch(K){throw cq1({error:K,url:Q,requestBodyValues:J.values})}},yG=({errorSchema:Q,errorToMessage:X,isRetryable:J})=>async({response:G,url:Y,requestBodyValues:W})=>{let $=await G.text(),K=k2(G);if($.trim()==="")return{responseHeaders:K,value:new O9({message:G.statusText,url:Y,requestBodyValues:W,statusCode:G.status,responseHeaders:K,responseBody:$,isRetryable:J==null?void 0:J(G)})};try{let Z=await Ju4({text:$,schema:Q});return{responseHeaders:K,value:new O9({message:X(Z),url:Y,requestBodyValues:W,statusCode:G.status,responseHeaders:K,responseBody:$,data:Z,isRetryable:J==null?void 0:J(G,Z)})}}catch(Z){return{responseHeaders:K,value:new O9({message:G.statusText,url:Y,requestBodyValues:W,statusCode:G.status,responseHeaders:K,responseBody:$,isRetryable:J==null?void 0:J(G)})}}},XV1=(Q)=>async({response:X})=>{let J=k2(X);if(X.body==null)throw new $H1({});return{responseHeaders:J,value:QV1({stream:X.body,schema:Q})}},O$=(Q)=>async({response:X,url:J,requestBodyValues:G})=>{let Y=await X.text(),W=await TX({text:Y,schema:Q}),$=k2(X);if(!W.success)throw new O9({message:"Invalid JSON response",cause:W.error,statusCode:X.status,responseHeaders:$,responseBody:Y,url:J,requestBodyValues:G});return{responseHeaders:$,value:W.value,rawValue:W.rawValue}};var N6=_(()=>{x6();x6();x6();x6();x6();x6();x6();h5();_H();_H();_H();qs();x6();x6();hq1();({btoa:Xg4,atob:Jg4}=globalThis);pq1=`vercel.ai.error.${dq1}`,Yg4=Symbol.for(pq1),Qf=class extends(xq1=v1,bq1=Yg4,xq1){constructor({url:Q,statusCode:X,statusText:J,cause:G,message:Y=G==null?`Failed to download ${Q}: ${X} ${J}`:`Failed to download ${Q}: ${G}`}){super({name:dq1,message:Y,cause:G});this[bq1]=!0,this.url=Q,this.statusCode=X,this.statusText=J}static isInstance(Q){return v1.hasMarker(Q,pq1)}},Gg4=kG();Wg4=["fetch failed","failed to fetch"];Zg4=/"__proto__"\s*:/,Hg4=/"constructor"\s*:/;qg4=Symbol("Let zodToJsonSchema decide on which parser to use"),uq1={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};K7={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(nG0===void 0)nG0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return nG0},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ag4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");rG0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};aG0=Symbol.for("vercel.ai.schema")});var eG0=I((wa6,$V1)=>{var{defineProperty:tG0,getOwnPropertyDescriptor:$u4,getOwnPropertyNames:Ku4}=Object,Zu4=Object.prototype.hasOwnProperty,Hu4=(Q,X)=>{for(var J in X)tG0(Q,J,{get:X[J],enumerable:!0})},Fu4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of Ku4(X))if(!Zu4.call(Q,Y)&&Y!==J)tG0(Q,Y,{get:()=>X[Y],enumerable:!(G=$u4(X,Y))||G.enumerable})}return Q},qu4=(Q)=>Fu4(tG0({},"__esModule",{value:!0}),Q),GV1={};Hu4(GV1,{SYMBOL_FOR_REQ_CONTEXT:()=>WV1,getContext:()=>Vu4});$V1.exports=qu4(GV1);var WV1=Symbol.for("@vercel/request-context");function Vu4(){return globalThis[WV1]?.get?.()??{}}});var b2=I((Pa6,HV1)=>{var{defineProperty:QW0,getOwnPropertyDescriptor:zu4,getOwnPropertyNames:Uu4}=Object,Nu4=Object.prototype.hasOwnProperty,Bu4=(Q,X)=>{for(var J in X)QW0(Q,J,{get:X[J],enumerable:!0})},Ou4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of Uu4(X))if(!Nu4.call(Q,Y)&&Y!==J)QW0(Q,Y,{get:()=>X[Y],enumerable:!(G=zu4(X,Y))||G.enumerable})}return Q},Du4=(Q)=>Ou4(QW0({},"__esModule",{value:!0}),Q),KV1={};Bu4(KV1,{VercelOidcTokenError:()=>ZV1});HV1.exports=Du4(KV1);class ZV1 extends Error{constructor(Q,X){super(Q);this.name="VercelOidcTokenError",this.cause=X}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var UV1=I((Ma6,zV1)=>{var{create:Lu4,defineProperty:Jf,getOwnPropertyDescriptor:wu4,getOwnPropertyNames:Pu4,getPrototypeOf:Mu4}=Object,Tu4=Object.prototype.hasOwnProperty,Au4=(Q,X)=>{for(var J in X)Jf(Q,J,{get:X[J],enumerable:!0})},qV1=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of Pu4(X))if(!Tu4.call(Q,Y)&&Y!==J)Jf(Q,Y,{get:()=>X[Y],enumerable:!(G=wu4(X,Y))||G.enumerable})}return Q},JW0=(Q,X,J)=>(J=Q!=null?Lu4(Mu4(Q)):{},qV1(X||!Q||!Q.__esModule?Jf(J,"default",{value:Q,enumerable:!0}):J,Q)),Eu4=(Q)=>qV1(Jf({},"__esModule",{value:!0}),Q),VV1={};Au4(VV1,{findRootDir:()=>Iu4,getUserDataDir:()=>Cu4});zV1.exports=Eu4(VV1);var x2=JW0(A0("path")),ju4=JW0(A0("fs")),XW0=JW0(A0("os")),FV1=b2();function Iu4(){try{let Q=process.cwd();while(Q!==x2.default.dirname(Q)){let X=x2.default.join(Q,".vercel");if(ju4.default.existsSync(X))return Q;Q=x2.default.dirname(Q)}}catch(Q){throw new FV1.VercelOidcTokenError("Token refresh only supported in node server environments")}throw new FV1.VercelOidcTokenError("Unable to find root directory")}function Cu4(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(XW0.default.platform()){case"darwin":return x2.default.join(XW0.default.homedir(),"Library/Application Support");case"linux":return x2.default.join(XW0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var GW0=I((Ta6,LV1)=>{var{create:Ru4,defineProperty:Yf,getOwnPropertyDescriptor:Su4,getOwnPropertyNames:vu4,getPrototypeOf:ku4}=Object,_u4=Object.prototype.hasOwnProperty,yu4=(Q,X)=>{for(var J in X)Yf(Q,J,{get:X[J],enumerable:!0})},NV1=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of vu4(X))if(!_u4.call(Q,Y)&&Y!==J)Yf(Q,Y,{get:()=>X[Y],enumerable:!(G=Su4(X,Y))||G.enumerable})}return Q},BV1=(Q,X,J)=>(J=Q!=null?Ru4(ku4(Q)):{},NV1(X||!Q||!Q.__esModule?Yf(J,"default",{value:Q,enumerable:!0}):J,Q)),hu4=(Q)=>NV1(Yf({},"__esModule",{value:!0}),Q),OV1={};yu4(OV1,{assertVercelOidcTokenResponse:()=>YW0,findProjectInfo:()=>xu4,getTokenPayload:()=>mu4,getVercelCliToken:()=>fu4,getVercelDataDir:()=>DV1,getVercelOidcToken:()=>bu4,isExpired:()=>lu4,loadToken:()=>uu4,saveToken:()=>gu4});LV1.exports=hu4(OV1);var cN=BV1(A0("path")),D$=BV1(A0("fs")),L$=b2(),Gf=UV1();function DV1(){let X=(0,Gf.getUserDataDir)();if(!X)return null;return cN.join(X,"com.vercel.cli")}function fu4(){let Q=DV1();if(!Q)return null;let X=cN.join(Q,"auth.json");if(!D$.existsSync(X))return null;let J=D$.readFileSync(X,"utf8");if(!J)return null;return JSON.parse(J).token}async function bu4(Q,X,J){try{let G=`https://api.vercel.com/v1/projects/${X}/token?source=vercel-oidc-refresh${J?`&teamId=${J}`:""}`,Y=await fetch(G,{method:"POST",headers:{Authorization:`Bearer ${Q}`}});if(!Y.ok)throw new L$.VercelOidcTokenError(`Failed to refresh OIDC token: ${Y.statusText}`);let W=await Y.json();return YW0(W),W}catch(G){throw new L$.VercelOidcTokenError("Failed to refresh OIDC token",G)}}function YW0(Q){if(!Q||typeof Q!=="object")throw TypeError("Expected an object");if(!("token"in Q)||typeof Q.token!=="string")throw TypeError("Expected a string-valued token property")}function xu4(){let Q=(0,Gf.findRootDir)();if(!Q)throw new L$.VercelOidcTokenError("Unable to find root directory");try{let X=cN.join(Q,".vercel","project.json");if(!D$.existsSync(X))throw new L$.VercelOidcTokenError("project.json not found");let J=JSON.parse(D$.readFileSync(X,"utf8"));if(typeof J.projectId!=="string"&&typeof J.orgId!=="string")throw TypeError("Expected a string-valued projectId property");return{projectId:J.projectId,teamId:J.orgId}}catch(X){throw new L$.VercelOidcTokenError("Unable to find project ID",X)}}function gu4(Q,X){try{let J=(0,Gf.getUserDataDir)();if(!J)throw new L$.VercelOidcTokenError("Unable to find user data directory");let G=cN.join(J,"com.vercel.token",`${X}.json`),Y=JSON.stringify(Q);D$.mkdirSync(cN.dirname(G),{mode:504,recursive:!0}),D$.writeFileSync(G,Y),D$.chmodSync(G,432);return}catch(J){throw new L$.VercelOidcTokenError("Failed to save token",J)}}function uu4(Q){try{let X=(0,Gf.getUserDataDir)();if(!X)return null;let J=cN.join(X,"com.vercel.token",`${Q}.json`);if(!D$.existsSync(J))return null;let G=JSON.parse(D$.readFileSync(J,"utf8"));return YW0(G),G}catch(X){throw new L$.VercelOidcTokenError("Failed to load token",X)}}function mu4(Q){let X=Q.split(".");if(X.length!==3)throw new L$.VercelOidcTokenError("Invalid token");let J=X[1].replace(/-/g,"+").replace(/_/g,"/"),G=J.padEnd(J.length+(4-J.length%4)%4,"=");return JSON.parse(Buffer.from(G,"base64").toString("utf8"))}function lu4(Q){return Q.exp*1000<Date.now()}});var MV1=I((Aa6,PV1)=>{var{defineProperty:$W0,getOwnPropertyDescriptor:du4,getOwnPropertyNames:pu4}=Object,cu4=Object.prototype.hasOwnProperty,nu4=(Q,X)=>{for(var J in X)$W0(Q,J,{get:X[J],enumerable:!0})},iu4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of pu4(X))if(!cu4.call(Q,Y)&&Y!==J)$W0(Q,Y,{get:()=>X[Y],enumerable:!(G=du4(X,Y))||G.enumerable})}return Q},ru4=(Q)=>iu4($W0({},"__esModule",{value:!0}),Q),wV1={};nu4(wV1,{refreshToken:()=>au4});PV1.exports=ru4(wV1);var WW0=b2(),Gq=GW0();async function au4(){let{projectId:Q,teamId:X}=(0,Gq.findProjectInfo)(),J=(0,Gq.loadToken)(Q);if(!J||(0,Gq.isExpired)((0,Gq.getTokenPayload)(J.token))){let G=(0,Gq.getVercelCliToken)();if(!G)throw new WW0.VercelOidcTokenError("Failed to refresh OIDC token: login to vercel cli");if(!Q)throw new WW0.VercelOidcTokenError("Failed to refresh OIDC token: project id not found");if(J=await(0,Gq.getVercelOidcToken)(G,Q,X),!J)throw new WW0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Gq.saveToken)(J,Q)}process.env.VERCEL_OIDC_TOKEN=J.token;return}});var EV1=I((Ea6,AV1)=>{var{defineProperty:ZW0,getOwnPropertyDescriptor:ou4,getOwnPropertyNames:su4}=Object,tu4=Object.prototype.hasOwnProperty,eu4=(Q,X)=>{for(var J in X)ZW0(Q,J,{get:X[J],enumerable:!0})},Qm4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of su4(X))if(!tu4.call(Q,Y)&&Y!==J)ZW0(Q,Y,{get:()=>X[Y],enumerable:!(G=ou4(X,Y))||G.enumerable})}return Q},Xm4=(Q)=>Qm4(ZW0({},"__esModule",{value:!0}),Q),TV1={};eu4(TV1,{getVercelOidcToken:()=>Gm4,getVercelOidcTokenSync:()=>KW0});AV1.exports=Xm4(TV1);var Jm4=eG0(),Ym4=b2();async function Gm4(){let Q="",X;try{Q=KW0()}catch(J){X=J}try{let[{getTokenPayload:J,isExpired:G},{refreshToken:Y}]=await Promise.all([await Promise.resolve().then(() => y4(GW0())),await Promise.resolve().then(() => y4(MV1()))]);if(!Q||G(J(Q)))await Y(),Q=KW0()}catch(J){if(X?.message&&J instanceof Error)J.message=`${X.message}
1127
- ${J.message}`;throw new Ym4.VercelOidcTokenError("Failed to refresh OIDC token",J)}return Q}function KW0(){let Q=(0,Jm4.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Q)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return Q}});var FW0=I((ja6,CV1)=>{var{defineProperty:HW0,getOwnPropertyDescriptor:Wm4,getOwnPropertyNames:$m4}=Object,Km4=Object.prototype.hasOwnProperty,Zm4=(Q,X)=>{for(var J in X)HW0(Q,J,{get:X[J],enumerable:!0})},Hm4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of $m4(X))if(!Km4.call(Q,Y)&&Y!==J)HW0(Q,Y,{get:()=>X[Y],enumerable:!(G=Wm4(X,Y))||G.enumerable})}return Q},Fm4=(Q)=>Hm4(HW0({},"__esModule",{value:!0}),Q),IV1={};Zm4(IV1,{getContext:()=>qm4.getContext,getVercelOidcToken:()=>jV1.getVercelOidcToken,getVercelOidcTokenSync:()=>jV1.getVercelOidcTokenSync});CV1.exports=Fm4(IV1);var jV1=EV1(),qm4=eG0()});async function oV1({response:Q,statusCode:X,defaultMessage:J="Gateway request failed",cause:G,authMethod:Y}){let W=await dQ({value:Q,schema:Am4});if(!W.success)return new Tm4({message:`Invalid error response format: ${J}`,statusCode:X,response:Q,validationError:W.error,cause:G});let $=W.value,K=$.error.type,Z=$.error.message;switch(K){case"authentication_error":return Wf.createContextualError({apiKeyProvided:Y==="api-key",oidcTokenProvided:Y==="oidc",statusCode:X,cause:G});case"invalid_request_error":return new Nm4({message:Z,statusCode:X,cause:G});case"rate_limit_exceeded":return new Om4({message:Z,statusCode:X,cause:G});case"model_not_found":{let H=await dQ({value:$.error.param,schema:Lm4});return new wm4({message:Z,statusCode:X,modelId:H.success?H.value.modelId:void 0,cause:G})}case"internal_server_error":return new nV1({message:Z,statusCode:X,cause:G});default:return new nV1({message:Z,statusCode:X,cause:G})}}function gZ(Q,X){var J;if(KJ.isInstance(Q))return Q;if(O9.isInstance(Q))return oV1({response:Em4(Q),statusCode:(J=Q.statusCode)!=null?J:500,defaultMessage:"Gateway request failed",cause:Q,authMethod:X});return oV1({response:{},statusCode:500,defaultMessage:Q instanceof Error?`Gateway request failed: ${Q.message}`:"Unknown Gateway error",cause:Q,authMethod:X})}function Em4(Q){if(Q.data!==void 0)return Q.data;if(Q.responseBody!=null)try{return JSON.parse(Q.responseBody)}catch(X){return Q.responseBody}return{}}async function nN(Q){let X=await dQ({value:Q[Gz1],schema:jm4});return X.success?X.value:void 0}async function hm4(){var Q;return(Q=Wz1.getContext().headers)==null?void 0:Q["x-vercel-id"]}function xm4(Q={}){var X,J;let G=null,Y=null,W=(X=Q.metadataCacheRefreshMillis)!=null?X:300000,$=0,K=(J=JV1(Q.baseURL))!=null?J:"https://ai-gateway.vercel.sh/v3/ai",Z=async()=>{let N=await gm4(Q);if(N)return bZ({Authorization:`Bearer ${N.token}`,"ai-gateway-protocol-version":bm4,[Gz1]:N.authMethod,...Q.headers},`ai-sdk/gateway/${fm4}`);throw Wf.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401})},H=()=>{let N=h2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),D=h2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),P=h2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let j=await hm4();return{...N&&{"ai-o11y-deployment-id":N},...D&&{"ai-o11y-environment":D},...P&&{"ai-o11y-region":P},...j&&{"ai-o11y-request-id":j}}}},F=(N)=>{return new Rm4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})},q=async()=>{var N,D,P;let j=(P=(D=(N=Q._internal)==null?void 0:N.currentDate)==null?void 0:D.call(N).getTime())!=null?P:Date.now();if(!G||j-$>W)$=j,G=new sV1({baseURL:K,headers:Z,fetch:Q.fetch}).getAvailableModels().then((M)=>{return Y=M,M}).catch(async(M)=>{throw await gZ(M,await nN(await Z()))});return Y?Promise.resolve(Y):G},V=async()=>{return new sV1({baseURL:K,headers:Z,fetch:Q.fetch}).getCredits().catch(async(N)=>{throw await gZ(N,await nN(await Z()))})},z=function(N){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return F(N)};z.specificationVersion="v3",z.getAvailableModels=q,z.getCredits=V,z.imageModel=(N)=>{return new km4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})},z.languageModel=F;let U=(N)=>{return new Sm4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})};return z.embeddingModel=U,z.textEmbeddingModel=U,z}async function gm4(Q){let X=h2({settingValue:Q.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};try{return{token:await $z1.getVercelOidcToken(),authMethod:"oidc"}}catch(J){return null}}var Wz1,$z1,Vm4="vercel.ai.gateway.error",qW0,RV1,SV1,KJ,tV1="GatewayAuthenticationError",zm4,vV1,kV1,_V1,Wf,eV1="GatewayInvalidRequestError",Um4,yV1,hV1,fV1,Nm4,Qz1="GatewayRateLimitError",Bm4,bV1,xV1,gV1,Om4,Xz1="GatewayModelNotFoundError",Dm4,uV1,Lm4,mV1,lV1,wm4,Jz1="GatewayInternalServerError",Pm4,dV1,pV1,cV1,nV1,Yz1="GatewayResponseError",Mm4,iV1,rV1,aV1,Tm4,Am4,Gz1="ai-gateway-auth-method",jm4,sV1=class{constructor(Q){this.config=Q}async getAvailableModels(){try{let{value:Q}=await oG0({url:`${this.config.baseURL}/config`,headers:await b5(this.config.headers()),successfulResponseHandler:O$(Im4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Q}catch(Q){throw await gZ(Q)}}async getCredits(){try{let Q=new URL(this.config.baseURL),{value:X}=await oG0({url:`${Q.origin}/v1/credits`,headers:await b5(this.config.headers()),successfulResponseHandler:O$(Cm4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(J)=>J}),fetch:this.config.fetch});return X}catch(Q){throw await gZ(Q)}}},Im4,Cm4,Rm4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Q){let{abortSignal:X,...J}=Q;return{args:this.maybeEncodeFileParts(J),warnings:[]}}async doGenerate(Q){let{args:X,warnings:J}=await this.getArgs(Q),{abortSignal:G}=Q,Y=await b5(this.config.headers());try{let{responseHeaders:W,value:$,rawValue:K}=await Yq({url:this.getUrl(),headers:Xq(Y,Q.headers,this.getModelConfigHeaders(this.modelId,!1),await b5(this.config.o11yHeaders)),body:X,successfulResponseHandler:O$(g.any()),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(Z)=>Z}),...G&&{abortSignal:G},fetch:this.config.fetch});return{...$,request:{body:X},response:{headers:W,body:K},warnings:J}}catch(W){throw await gZ(W,await nN(Y))}}async doStream(Q){let{args:X,warnings:J}=await this.getArgs(Q),{abortSignal:G}=Q,Y=await b5(this.config.headers());try{let{value:W,responseHeaders:$}=await Yq({url:this.getUrl(),headers:Xq(Y,Q.headers,this.getModelConfigHeaders(this.modelId,!0),await b5(this.config.o11yHeaders)),body:X,successfulResponseHandler:XV1(g.any()),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(K)=>K}),...G&&{abortSignal:G},fetch:this.config.fetch});return{stream:W.pipeThrough(new TransformStream({start(K){if(J.length>0)K.enqueue({type:"stream-start",warnings:J})},transform(K,Z){if(K.success){let H=K.value;if(H.type==="raw"&&!Q.includeRawChunks)return;if(H.type==="response-metadata"&&H.timestamp&&typeof H.timestamp==="string")H.timestamp=new Date(H.timestamp);Z.enqueue(H)}else Z.error(K.error)}})),request:{body:X},response:{headers:$}}}catch(W){throw await gZ(W,await nN(Y))}}isFilePart(Q){return Q&&typeof Q==="object"&&"type"in Q&&Q.type==="file"}maybeEncodeFileParts(Q){for(let X of Q.prompt)for(let J of X.content)if(this.isFilePart(J)){let G=J;if(G.data instanceof Uint8Array){let Y=Uint8Array.from(G.data),W=Buffer.from(Y).toString("base64");G.data=new URL(`data:${G.mediaType||"application/octet-stream"};base64,${W}`)}}return Q}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Q,X){return{"ai-language-model-specification-version":"2","ai-language-model-id":Q,"ai-language-model-streaming":String(X)}}},Sm4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Q,headers:X,abortSignal:J,providerOptions:G}){var Y;let W=await b5(this.config.headers());try{let{responseHeaders:$,value:K,rawValue:Z}=await Yq({url:this.getUrl(),headers:Xq(W,X!=null?X:{},this.getModelConfigHeaders(),await b5(this.config.o11yHeaders)),body:{values:Q,...G?{providerOptions:G}:{}},successfulResponseHandler:O$(vm4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{embeddings:K.embeddings,usage:(Y=K.usage)!=null?Y:void 0,providerMetadata:K.providerMetadata,response:{headers:$,body:Z},warnings:[]}}catch($){throw await gZ($,await nN(W))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"2","ai-model-id":this.modelId}}},vm4,km4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Q,n:X,size:J,aspectRatio:G,seed:Y,providerOptions:W,headers:$,abortSignal:K}){var Z;let H=await b5(this.config.headers());try{let{responseHeaders:F,value:q,rawValue:V}=await Yq({url:this.getUrl(),headers:Xq(H,$!=null?$:{},this.getModelConfigHeaders(),await b5(this.config.o11yHeaders)),body:{prompt:Q,n:X,...J&&{size:J},...G&&{aspectRatio:G},...Y&&{seed:Y},...W&&{providerOptions:W}},successfulResponseHandler:O$(ym4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(z)=>z}),...K&&{abortSignal:K},fetch:this.config.fetch});return{images:q.images,warnings:(Z=q.warnings)!=null?Z:[],providerMetadata:q.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:F}}}catch(F){throw gZ(F,await nN(H))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"2","ai-model-id":this.modelId}}},_m4,ym4,fm4="3.0.2",bm4="0.0.1",Kz1;var VW0=_(()=>{N6();x6();h5();h5();N6();N6();h5();N6();N6();h5();N6();h5();N6();h5();N6();h5();N6();Wz1=y4(FW0(),1),$z1=y4(FW0(),1),qW0=Symbol.for(Vm4),KJ=class Q extends(SV1=Error,RV1=qW0,SV1){constructor({message:X,statusCode:J=500,cause:G}){super(X);this[RV1]=!0,this.statusCode=J,this.cause=G}static isInstance(X){return Q.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&qW0 in X&&X[qW0]===!0}},zm4=`vercel.ai.gateway.error.${tV1}`,vV1=Symbol.for(zm4),Wf=class Q extends(_V1=KJ,kV1=vV1,_V1){constructor({message:X="Authentication failed",statusCode:J=401,cause:G}={}){super({message:X,statusCode:J,cause:G});this[kV1]=!0,this.name=tV1,this.type="authentication_error"}static isInstance(X){return KJ.hasMarker(X)&&vV1 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:J,message:G="Authentication failed",statusCode:Y=401,cause:W}){let $;if(X)$=`AI Gateway authentication failed: Invalid API key.
1127
+ ${J.message}`;throw new Ym4.VercelOidcTokenError("Failed to refresh OIDC token",J)}return Q}function KW0(){let Q=(0,Jm4.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Q)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return Q}});var FW0=I((ja6,CV1)=>{var{defineProperty:HW0,getOwnPropertyDescriptor:Wm4,getOwnPropertyNames:$m4}=Object,Km4=Object.prototype.hasOwnProperty,Zm4=(Q,X)=>{for(var J in X)HW0(Q,J,{get:X[J],enumerable:!0})},Hm4=(Q,X,J,G)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let Y of $m4(X))if(!Km4.call(Q,Y)&&Y!==J)HW0(Q,Y,{get:()=>X[Y],enumerable:!(G=Wm4(X,Y))||G.enumerable})}return Q},Fm4=(Q)=>Hm4(HW0({},"__esModule",{value:!0}),Q),IV1={};Zm4(IV1,{getContext:()=>qm4.getContext,getVercelOidcToken:()=>jV1.getVercelOidcToken,getVercelOidcTokenSync:()=>jV1.getVercelOidcTokenSync});CV1.exports=Fm4(IV1);var jV1=EV1(),qm4=eG0()});async function oV1({response:Q,statusCode:X,defaultMessage:J="Gateway request failed",cause:G,authMethod:Y}){let W=await dQ({value:Q,schema:Am4});if(!W.success)return new Tm4({message:`Invalid error response format: ${J}`,statusCode:X,response:Q,validationError:W.error,cause:G});let $=W.value,K=$.error.type,Z=$.error.message;switch(K){case"authentication_error":return Wf.createContextualError({apiKeyProvided:Y==="api-key",oidcTokenProvided:Y==="oidc",statusCode:X,cause:G});case"invalid_request_error":return new Nm4({message:Z,statusCode:X,cause:G});case"rate_limit_exceeded":return new Om4({message:Z,statusCode:X,cause:G});case"model_not_found":{let H=await dQ({value:$.error.param,schema:Lm4});return new wm4({message:Z,statusCode:X,modelId:H.success?H.value.modelId:void 0,cause:G})}case"internal_server_error":return new nV1({message:Z,statusCode:X,cause:G});default:return new nV1({message:Z,statusCode:X,cause:G})}}function gZ(Q,X){var J;if(KJ.isInstance(Q))return Q;if(O9.isInstance(Q))return oV1({response:Em4(Q),statusCode:(J=Q.statusCode)!=null?J:500,defaultMessage:"Gateway request failed",cause:Q,authMethod:X});return oV1({response:{},statusCode:500,defaultMessage:Q instanceof Error?`Gateway request failed: ${Q.message}`:"Unknown Gateway error",cause:Q,authMethod:X})}function Em4(Q){if(Q.data!==void 0)return Q.data;if(Q.responseBody!=null)try{return JSON.parse(Q.responseBody)}catch(X){return Q.responseBody}return{}}async function nN(Q){let X=await dQ({value:Q[Gz1],schema:jm4});return X.success?X.value:void 0}async function hm4(){var Q;return(Q=Wz1.getContext().headers)==null?void 0:Q["x-vercel-id"]}function xm4(Q={}){var X,J;let G=null,Y=null,W=(X=Q.metadataCacheRefreshMillis)!=null?X:300000,$=0,K=(J=JV1(Q.baseURL))!=null?J:"https://ai-gateway.vercel.sh/v3/ai",Z=async()=>{try{let N=await gm4(Q);return bZ({Authorization:`Bearer ${N.token}`,"ai-gateway-protocol-version":bm4,[Gz1]:N.authMethod,...Q.headers},`ai-sdk/gateway/${fm4}`)}catch(N){throw Wf.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:N})}},H=()=>{let N=h2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),D=h2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),P=h2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let j=await hm4();return{...N&&{"ai-o11y-deployment-id":N},...D&&{"ai-o11y-environment":D},...P&&{"ai-o11y-region":P},...j&&{"ai-o11y-request-id":j}}}},F=(N)=>{return new Rm4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})},q=async()=>{var N,D,P;let j=(P=(D=(N=Q._internal)==null?void 0:N.currentDate)==null?void 0:D.call(N).getTime())!=null?P:Date.now();if(!G||j-$>W)$=j,G=new sV1({baseURL:K,headers:Z,fetch:Q.fetch}).getAvailableModels().then((M)=>{return Y=M,M}).catch(async(M)=>{throw await gZ(M,await nN(await Z()))});return Y?Promise.resolve(Y):G},V=async()=>{return new sV1({baseURL:K,headers:Z,fetch:Q.fetch}).getCredits().catch(async(N)=>{throw await gZ(N,await nN(await Z()))})},z=function(N){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return F(N)};z.specificationVersion="v3",z.getAvailableModels=q,z.getCredits=V,z.imageModel=(N)=>{return new km4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})},z.languageModel=F;let U=(N)=>{return new Sm4(N,{provider:"gateway",baseURL:K,headers:Z,fetch:Q.fetch,o11yHeaders:H()})};return z.embeddingModel=U,z.textEmbeddingModel=U,z}async function gm4(Q){let X=h2({settingValue:Q.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await $z1.getVercelOidcToken(),authMethod:"oidc"}}var Wz1,$z1,Vm4="vercel.ai.gateway.error",qW0,RV1,SV1,KJ,tV1="GatewayAuthenticationError",zm4,vV1,kV1,_V1,Wf,eV1="GatewayInvalidRequestError",Um4,yV1,hV1,fV1,Nm4,Qz1="GatewayRateLimitError",Bm4,bV1,xV1,gV1,Om4,Xz1="GatewayModelNotFoundError",Dm4,uV1,Lm4,mV1,lV1,wm4,Jz1="GatewayInternalServerError",Pm4,dV1,pV1,cV1,nV1,Yz1="GatewayResponseError",Mm4,iV1,rV1,aV1,Tm4,Am4,Gz1="ai-gateway-auth-method",jm4,sV1=class{constructor(Q){this.config=Q}async getAvailableModels(){try{let{value:Q}=await oG0({url:`${this.config.baseURL}/config`,headers:await b5(this.config.headers()),successfulResponseHandler:O$(Im4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Q}catch(Q){throw await gZ(Q)}}async getCredits(){try{let Q=new URL(this.config.baseURL),{value:X}=await oG0({url:`${Q.origin}/v1/credits`,headers:await b5(this.config.headers()),successfulResponseHandler:O$(Cm4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(J)=>J}),fetch:this.config.fetch});return X}catch(Q){throw await gZ(Q)}}},Im4,Cm4,Rm4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Q){let{abortSignal:X,...J}=Q;return{args:this.maybeEncodeFileParts(J),warnings:[]}}async doGenerate(Q){let{args:X,warnings:J}=await this.getArgs(Q),{abortSignal:G}=Q,Y=await b5(this.config.headers());try{let{responseHeaders:W,value:$,rawValue:K}=await Yq({url:this.getUrl(),headers:Xq(Y,Q.headers,this.getModelConfigHeaders(this.modelId,!1),await b5(this.config.o11yHeaders)),body:X,successfulResponseHandler:O$(g.any()),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(Z)=>Z}),...G&&{abortSignal:G},fetch:this.config.fetch});return{...$,request:{body:X},response:{headers:W,body:K},warnings:J}}catch(W){throw await gZ(W,await nN(Y))}}async doStream(Q){let{args:X,warnings:J}=await this.getArgs(Q),{abortSignal:G}=Q,Y=await b5(this.config.headers());try{let{value:W,responseHeaders:$}=await Yq({url:this.getUrl(),headers:Xq(Y,Q.headers,this.getModelConfigHeaders(this.modelId,!0),await b5(this.config.o11yHeaders)),body:X,successfulResponseHandler:XV1(g.any()),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(K)=>K}),...G&&{abortSignal:G},fetch:this.config.fetch});return{stream:W.pipeThrough(new TransformStream({start(K){if(J.length>0)K.enqueue({type:"stream-start",warnings:J})},transform(K,Z){if(K.success){let H=K.value;if(H.type==="raw"&&!Q.includeRawChunks)return;if(H.type==="response-metadata"&&H.timestamp&&typeof H.timestamp==="string")H.timestamp=new Date(H.timestamp);Z.enqueue(H)}else Z.error(K.error)}})),request:{body:X},response:{headers:$}}}catch(W){throw await gZ(W,await nN(Y))}}isFilePart(Q){return Q&&typeof Q==="object"&&"type"in Q&&Q.type==="file"}maybeEncodeFileParts(Q){for(let X of Q.prompt)for(let J of X.content)if(this.isFilePart(J)){let G=J;if(G.data instanceof Uint8Array){let Y=Uint8Array.from(G.data),W=Buffer.from(Y).toString("base64");G.data=new URL(`data:${G.mediaType||"application/octet-stream"};base64,${W}`)}}return Q}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Q,X){return{"ai-language-model-specification-version":"2","ai-language-model-id":Q,"ai-language-model-streaming":String(X)}}},Sm4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Q,headers:X,abortSignal:J,providerOptions:G}){var Y;let W=await b5(this.config.headers());try{let{responseHeaders:$,value:K,rawValue:Z}=await Yq({url:this.getUrl(),headers:Xq(W,X!=null?X:{},this.getModelConfigHeaders(),await b5(this.config.o11yHeaders)),body:{values:Q,...G?{providerOptions:G}:{}},successfulResponseHandler:O$(vm4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{embeddings:K.embeddings,usage:(Y=K.usage)!=null?Y:void 0,providerMetadata:K.providerMetadata,response:{headers:$,body:Z},warnings:[]}}catch($){throw await gZ($,await nN(W))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"2","ai-model-id":this.modelId}}},vm4,km4=class{constructor(Q,X){this.modelId=Q,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Q,n:X,size:J,aspectRatio:G,seed:Y,providerOptions:W,headers:$,abortSignal:K}){var Z;let H=await b5(this.config.headers());try{let{responseHeaders:F,value:q,rawValue:V}=await Yq({url:this.getUrl(),headers:Xq(H,$!=null?$:{},this.getModelConfigHeaders(),await b5(this.config.o11yHeaders)),body:{prompt:Q,n:X,...J&&{size:J},...G&&{aspectRatio:G},...Y&&{seed:Y},...W&&{providerOptions:W}},successfulResponseHandler:O$(ym4),failedResponseHandler:yG({errorSchema:g.any(),errorToMessage:(z)=>z}),...K&&{abortSignal:K},fetch:this.config.fetch});return{images:q.images,warnings:(Z=q.warnings)!=null?Z:[],providerMetadata:q.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:F}}}catch(F){throw gZ(F,await nN(H))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"2","ai-model-id":this.modelId}}},_m4,ym4,fm4="3.0.3",bm4="0.0.1",Kz1;var VW0=_(()=>{N6();x6();h5();h5();N6();N6();h5();N6();N6();h5();N6();h5();N6();h5();N6();h5();N6();Wz1=y4(FW0(),1),$z1=y4(FW0(),1),qW0=Symbol.for(Vm4),KJ=class Q extends(SV1=Error,RV1=qW0,SV1){constructor({message:X,statusCode:J=500,cause:G}){super(X);this[RV1]=!0,this.statusCode=J,this.cause=G}static isInstance(X){return Q.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&qW0 in X&&X[qW0]===!0}},zm4=`vercel.ai.gateway.error.${tV1}`,vV1=Symbol.for(zm4),Wf=class Q extends(_V1=KJ,kV1=vV1,_V1){constructor({message:X="Authentication failed",statusCode:J=401,cause:G}={}){super({message:X,statusCode:J,cause:G});this[kV1]=!0,this.name=tV1,this.type="authentication_error"}static isInstance(X){return KJ.hasMarker(X)&&vV1 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:J,message:G="Authentication failed",statusCode:Y=401,cause:W}){let $;if(X)$=`AI Gateway authentication failed: Invalid API key.
1128
1128
 
1129
1129
  Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
1130
1130
 
@@ -1147,7 +1147,7 @@ Alternatively, you can use a provider module instead of the AI Gateway.
1147
1147
 
1148
1148
  Learn more: \x1B[34m${J}\x1B[0m
1149
1149
 
1150
- `),{name:"GatewayAuthenticationError"})}function LW0({operationId:Q,telemetry:X}){return{"operation.name":`${Q}${(X==null?void 0:X.functionId)!=null?` ${X.functionId}`:""}`,"resource.name":X==null?void 0:X.functionId,"ai.operationId":Q,"ai.telemetry.functionId":X==null?void 0:X.functionId}}function tl4({model:Q,settings:X,telemetry:J,headers:G}){var Y;return{"ai.model.provider":Q.provider,"ai.model.id":Q.modelId,...Object.entries(X).reduce((W,[$,K])=>{return W[`ai.settings.${$}`]=K,W},{}),...Object.entries((Y=J==null?void 0:J.metadata)!=null?Y:{}).reduce((W,[$,K])=>{return W[`ai.telemetry.metadata.${$}`]=K,W},{}),...Object.entries(G!=null?G:{}).reduce((W,[$,K])=>{if(K!==void 0)W[`ai.request.headers.${$}`]=K;return W},{})}}function Xd4({isEnabled:Q=!1,tracer:X}={}){if(!Q)return el4;if(X)return X;return WU1.trace.getTracer("ai")}async function PW0({name:Q,tracer:X,attributes:J,fn:G,endWhenDone:Y=!0}){return X.startActiveSpan(Q,{attributes:await J},async(W)=>{try{let $=await G(W);if(Y)W.end();return $}catch($){try{$U1(W,$)}finally{W.end()}throw $}})}function $U1(Q,X){if(X instanceof Error)Q.recordException({name:X.name,message:X.message,stack:X.stack}),Q.setStatus({code:wW0.SpanStatusCode.ERROR,message:X.message});else Q.setStatus({code:wW0.SpanStatusCode.ERROR})}async function iN({telemetry:Q,attributes:X}){if((Q==null?void 0:Q.isEnabled)!==!0)return{};let J={};for(let[G,Y]of Object.entries(X)){if(Y==null)continue;if(typeof Y==="object"&&"input"in Y&&typeof Y.input==="function"){if((Q==null?void 0:Q.recordInputs)===!1)continue;let W=await Y.input();if(W!=null)J[G]=W;continue}if(typeof Y==="object"&&"output"in Y&&typeof Y.output==="function"){if((Q==null?void 0:Q.recordOutputs)===!1)continue;let W=await Y.output();if(W!=null)J[G]=W;continue}J[G]=Y}return J}function Jd4(Q){return JSON.stringify(Q.map((X)=>({...X,content:typeof X.content==="string"?X.content:X.content.map((J)=>J.type==="file"?{...J,data:J.data instanceof Uint8Array?vl4(J.data):J.data}:J)})))}function Yd4(Q){return{inputTokens:Q.inputTokens.total,inputTokenDetails:{noCacheTokens:Q.inputTokens.noCache,cacheReadTokens:Q.inputTokens.cacheRead,cacheWriteTokens:Q.inputTokens.cacheWrite},outputTokens:Q.outputTokens.total,outputTokenDetails:{textTokens:Q.outputTokens.text,reasoningTokens:Q.outputTokens.reasoning},totalTokens:H7(Q.inputTokens.total,Q.outputTokens.total),raw:Q.raw,reasoningTokens:Q.outputTokens.reasoning,cachedInputTokens:Q.inputTokens.cacheRead}}function zW0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function Gd4(Q,X){var J,G,Y,W,$,K,Z,H,F,q;return{inputTokens:H7(Q.inputTokens,X.inputTokens),inputTokenDetails:{noCacheTokens:H7((J=Q.inputTokenDetails)==null?void 0:J.noCacheTokens,(G=X.inputTokenDetails)==null?void 0:G.noCacheTokens),cacheReadTokens:H7((Y=Q.inputTokenDetails)==null?void 0:Y.cacheReadTokens,(W=X.inputTokenDetails)==null?void 0:W.cacheReadTokens),cacheWriteTokens:H7(($=Q.inputTokenDetails)==null?void 0:$.cacheWriteTokens,(K=X.inputTokenDetails)==null?void 0:K.cacheWriteTokens)},outputTokens:H7(Q.outputTokens,X.outputTokens),outputTokenDetails:{textTokens:H7((Z=Q.outputTokenDetails)==null?void 0:Z.textTokens,(H=X.outputTokenDetails)==null?void 0:H.textTokens),reasoningTokens:H7((F=Q.outputTokenDetails)==null?void 0:F.reasoningTokens,(q=X.outputTokenDetails)==null?void 0:q.reasoningTokens)},totalTokens:H7(Q.totalTokens,X.totalTokens),reasoningTokens:H7(Q.reasoningTokens,X.reasoningTokens),cachedInputTokens:H7(Q.cachedInputTokens,X.cachedInputTokens)}}function H7(Q,X){return Q==null&&X==null?void 0:(Q!=null?Q:0)+(X!=null?X:0)}function jW0(Q,X){if(Q===void 0&&X===void 0)return;if(Q===void 0)return X;if(X===void 0)return Q;let J={...Q};for(let G in X)if(Object.prototype.hasOwnProperty.call(X,G)){let Y=X[G];if(Y===void 0)continue;let W=G in Q?Q[G]:void 0,$=Y!==null&&typeof Y==="object"&&!Array.isArray(Y)&&!(Y instanceof Date)&&!(Y instanceof RegExp),K=W!==null&&W!==void 0&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp);if($&&K)J[G]=jW0(W,Y);else J[G]=Y}return J}function Wd4({error:Q,exponentialBackoffDelay:X}){let J=Q.responseHeaders;if(!J)return X;let G,Y=J["retry-after-ms"];if(Y){let $=parseFloat(Y);if(!Number.isNaN($))G=$}let W=J["retry-after"];if(W&&G===void 0){let $=parseFloat(W);if(!Number.isNaN($))G=$*1000;else G=Date.parse(W)-Date.now()}if(G!=null&&!Number.isNaN(G)&&0<=G&&(G<60000||G<X))return G;return X}async function KU1(Q,{maxRetries:X,delayInMs:J,backoffFactor:G,abortSignal:Y},W=[]){try{return await Q()}catch($){if(B$($))throw $;if(X===0)throw $;let K=y2($),Z=[...W,$],H=Z.length;if(H>X)throw new Zz1({message:`Failed after ${H} attempts. Last error: ${K}`,reason:"maxRetriesExceeded",errors:Z});if($ instanceof Error&&O9.isInstance($)&&$.isRetryable===!0&&H<=X)return await lq1(Wd4({error:$,exponentialBackoffDelay:J}),{abortSignal:Y}),KU1(Q,{maxRetries:X,delayInMs:G*J,backoffFactor:G,abortSignal:Y},Z);if(H===1)throw $;throw new Zz1({message:`Failed after ${H} attempts with non-retryable error: '${K}'`,reason:"errorNotRetryable",errors:Z})}}function Kd4({maxRetries:Q,abortSignal:X}){if(Q!=null){if(!Number.isInteger(Q))throw new hG({parameter:"maxRetries",value:Q,message:"maxRetries must be an integer"});if(Q<0)throw new hG({parameter:"maxRetries",value:Q,message:"maxRetries must be >= 0"})}let J=Q!=null?Q:2;return{maxRetries:J,retry:$d4({maxRetries:J,abortSignal:X})}}function Zd4({messages:Q}){let X=Q.at(-1);if((X==null?void 0:X.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let J={};for(let Z of Q)if(Z.role==="assistant"&&typeof Z.content!=="string"){let H=Z.content;for(let F of H)if(F.type==="tool-call")J[F.toolCallId]=F}let G={};for(let Z of Q)if(Z.role==="assistant"&&typeof Z.content!=="string"){let H=Z.content;for(let F of H)if(F.type==="tool-approval-request")G[F.approvalId]=F}let Y={};for(let Z of X.content)if(Z.type==="tool-result")Y[Z.toolCallId]=Z;let W=[],$=[],K=X.content.filter((Z)=>Z.type==="tool-approval-response");for(let Z of K){let H=G[Z.approvalId];if(H==null)throw new rm4({approvalId:Z.approvalId});if(Y[H.toolCallId]!=null)continue;let F=J[H.toolCallId];if(F==null)throw new Cz1({toolCallId:H.toolCallId,approvalId:H.approvalId});let q={approvalRequest:H,approvalResponse:Z,toolCall:F};if(Z.approved)W.push(q);else $.push(q)}return{approvedToolApprovals:W,deniedToolApprovals:$}}async function ZU1({toolCall:Q,tools:X,tracer:J,telemetry:G,messages:Y,abortSignal:W,experimental_context:$,onPreliminaryToolResult:K}){let{toolName:Z,toolCallId:H,input:F}=Q,q=X==null?void 0:X[Z];if((q==null?void 0:q.execute)==null)return;return PW0({name:"ai.toolCall",attributes:iN({telemetry:G,attributes:{...LW0({operationId:"ai.toolCall",telemetry:G}),"ai.toolCall.name":Z,"ai.toolCall.id":H,"ai.toolCall.args":{output:()=>JSON.stringify(F)}}}),tracer:J,fn:async(V)=>{let z;try{let U=YV1({execute:q.execute.bind(q),input:F,options:{toolCallId:H,messages:Y,abortSignal:W,experimental_context:$}});for await(let N of U)if(N.type==="preliminary")K==null||K({...Q,type:"tool-result",output:N.output,preliminary:!0});else z=N.output}catch(U){return $U1(V,U),{type:"tool-error",toolCallId:H,toolName:Z,input:F,error:U,dynamic:q.type==="dynamic",...Q.providerMetadata!=null?{providerMetadata:Q.providerMetadata}:{}}}try{V.setAttributes(await iN({telemetry:G,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(z)}}}))}catch(U){}return{type:"tool-result",toolCallId:H,toolName:Z,input:F,output:z,dynamic:q.type==="dynamic",...Q.providerMetadata!=null?{providerMetadata:Q.providerMetadata}:{}}}})}async function qd4({tool:Q,toolCall:X,messages:J,experimental_context:G}){if(Q.needsApproval==null)return!1;if(typeof Q.needsApproval==="boolean")return Q.needsApproval;return await Q.needsApproval(X.input,{toolCallId:X.toolCallId,messages:J,experimental_context:G})}function zd4(Q){let X=["ROOT"],J=-1,G=null;function Y(Z,H,F){switch(Z){case'"':{J=H,X.pop(),X.push(F),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{J=H,G=H,X.pop(),X.push(F),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(F),X.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=H,X.pop(),X.push(F),X.push("INSIDE_NUMBER");break}case"{":{J=H,X.pop(),X.push(F),X.push("INSIDE_OBJECT_START");break}case"[":{J=H,X.pop(),X.push(F),X.push("INSIDE_ARRAY_START");break}}}function W(Z,H){switch(Z){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{J=H,X.pop();break}}}function $(Z,H){switch(Z){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=H,X.pop();break}}}for(let Z=0;Z<Q.length;Z++){let H=Q[Z];switch(X[X.length-1]){case"ROOT":Y(H,Z,"FINISH");break;case"INSIDE_OBJECT_START":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{J=Z,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(H){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{Y(H,Z,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{W(H,Z);break}case"INSIDE_STRING":{switch(H){case'"':{X.pop(),J=Z;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:J=Z}break}case"INSIDE_ARRAY_START":{switch(H){case"]":{J=Z,X.pop();break}default:{J=Z,Y(H,Z,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=Z,X.pop();break}default:{J=Z;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{Y(H,Z,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),J=Z;break}case"INSIDE_NUMBER":{switch(H){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=Z;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let q=Q.substring(G,Z+1);if(!"false".startsWith(q)&&!"true".startsWith(q)&&!"null".startsWith(q)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z)}else J=Z;break}}}let K=Q.slice(0,J+1);for(let Z=X.length-1;Z>=0;Z--)switch(X[Z]){case"INSIDE_STRING":{K+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{K+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{K+="]";break}case"INSIDE_LITERAL":{let F=Q.substring(G,Q.length);if("true".startsWith(F))K+="true".slice(F.length);else if("false".startsWith(F))K+="false".slice(F.length);else if("null".startsWith(F))K+="null".slice(F.length)}}return K}async function m2(Q){if(Q===void 0)return{value:void 0,state:"undefined-input"};let X=await TX({text:Q});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await TX({text:zd4(Q)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function Dd4({toolCall:Q,tools:X,repairToolCall:J,system:G,messages:Y}){var W;try{if(X==null){if(Q.providerExecuted&&Q.dynamic)return await HU1(Q);throw new DW0({toolName:Q.toolName})}try{return await Vz1({toolCall:Q,tools:X})}catch($){if(J==null||!(DW0.isInstance($)||EW0.isInstance($)))throw $;let K=null;try{K=await J({toolCall:Q,tools:X,inputSchema:async({toolName:Z})=>{let{inputSchema:H}=X[Z];return await _G(H).jsonSchema},system:G,messages:Y,error:$})}catch(Z){throw new $l4({cause:Z,originalError:$})}if(K==null)throw $;return await Vz1({toolCall:K,tools:X})}}catch($){let K=await TX({text:Q.input}),Z=K.success?K.value:Q.input;return{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:Z,dynamic:!0,invalid:!0,error:$,title:(W=X==null?void 0:X[Q.toolName])==null?void 0:W.title,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata}}}async function HU1(Q){let X=Q.input.trim()===""?{success:!0,value:{}}:await TX({text:Q.input});if(X.success===!1)throw new EW0({toolName:Q.toolName,toolInput:Q.input,cause:X.error});return{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Q.providerMetadata}}async function Vz1({toolCall:Q,tools:X}){let J=Q.toolName,G=X[J];if(G==null){if(Q.providerExecuted&&Q.dynamic)return await HU1(Q);throw new DW0({toolName:Q.toolName,availableTools:Object.keys(X)})}let Y=_G(G.inputSchema),W=Q.input.trim()===""?await dQ({value:{},schema:Y}):await TX({text:Q.input,schema:Y});if(W.success===!1)throw new EW0({toolName:J,toolInput:Q.input,cause:W.error});return G.type==="dynamic"?{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:W.value,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata,dynamic:!0,title:G.title}:{type:"tool-call",toolCallId:Q.toolCallId,toolName:J,input:W.value,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata,title:G.title}}function IW0(Q){return({steps:X})=>X.length===Q}async function wd4({stopConditions:Q,steps:X}){return(await Promise.all(Q.map((J)=>J({steps:X})))).some((J)=>J)}async function zz1({content:Q,tools:X}){let J=[],G=[];for(let W of Q){if(W.type==="source")continue;if((W.type==="tool-result"||W.type==="tool-error")&&!W.providerExecuted)continue;if(W.type==="text"&&W.text.length===0)continue;switch(W.type){case"text":G.push({type:"text",text:W.text,providerOptions:W.providerMetadata});break;case"reasoning":G.push({type:"reasoning",text:W.text,providerOptions:W.providerMetadata});break;case"file":G.push({type:"file",data:W.file.base64,mediaType:W.file.mediaType,providerOptions:W.providerMetadata});break;case"tool-call":G.push({type:"tool-call",toolCallId:W.toolCallId,toolName:W.toolName,input:W.input,providerExecuted:W.providerExecuted,providerOptions:W.providerMetadata});break;case"tool-result":{let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.output,errorMode:"none"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,providerOptions:W.providerMetadata});break}case"tool-error":{let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.error,errorMode:"json"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,providerOptions:W.providerMetadata});break}case"tool-approval-request":G.push({type:"tool-approval-request",approvalId:W.approvalId,toolCallId:W.toolCall.toolCallId});break}}if(G.length>0)J.push({role:"assistant",content:G});let Y=[];for(let W of Q){if(!(W.type==="tool-result"||W.type==="tool-error")||W.providerExecuted)continue;let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.type==="tool-result"?W.output:W.error,errorMode:W.type==="tool-error"?"text":"none"});Y.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,...W.providerMetadata!=null?{providerOptions:W.providerMetadata}:{}})}if(Y.length>0)J.push({role:"tool",content:Y});return J}function Hf(Q,X){let J=new Headers(Q!=null?Q:{});for(let[G,Y]of Object.entries(X))if(!J.has(G))J.set(G,Y);return J}function Pd4({status:Q,statusText:X,headers:J,textStream:G}){return new Response(G.pipeThrough(new TextEncoderStream),{status:Q!=null?Q:200,statusText:X,headers:Hf(J,{"content-type":"text/plain; charset=utf-8"})})}function FU1({response:Q,status:X,statusText:J,headers:G,stream:Y}){let W=X!=null?X:200;if(J!==void 0)Q.writeHead(W,J,G);else Q.writeHead(W,G);let $=Y.getReader();(async()=>{try{while(!0){let{done:Z,value:H}=await $.read();if(Z)break;if(!Q.write(H))await new Promise((q)=>{Q.once("drain",q)})}}catch(Z){throw Z}finally{Q.end()}})()}function Md4({response:Q,status:X,statusText:J,headers:G,textStream:Y}){FU1({response:Q,status:X,statusText:J,headers:Object.fromEntries(Hf(G,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:Y.pipeThrough(new TextEncoderStream)})}function Td4({status:Q,statusText:X,headers:J,stream:G,consumeSseStream:Y}){let W=G.pipeThrough(new qU1);if(Y){let[$,K]=W.tee();W=$,Y({stream:K})}return new Response(W.pipeThrough(new TextEncoderStream),{status:Q,statusText:X,headers:Hf(J,VU1)})}function Ad4({originalMessages:Q,responseMessageId:X}){if(Q==null)return;let J=Q[Q.length-1];return(J==null?void 0:J.role)==="assistant"?J.id:typeof X==="function"?X():X}function Ed4(Q){return Q.type.startsWith("data-")}function UW0(Q){return Q.type.startsWith("data-")}function NW0(Q){return Q.type==="text"}function BW0(Q){return Q.type==="file"}function Uz1(Q){return Q.type==="reasoning"}function TW0(Q){return Q.type.startsWith("tool-")}function zU1(Q){return Q.type==="dynamic-tool"}function g2(Q){return TW0(Q)||zU1(Q)}function AW0(Q){return Q.type.split("-").slice(1).join("-")}function OW0(Q){return zU1(Q)?Q.toolName:AW0(Q)}function jd4({lastMessage:Q,messageId:X}){return{message:(Q==null?void 0:Q.role)==="assistant"?Q:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Id4({stream:Q,messageMetadataSchema:X,dataPartSchemas:J,runUpdateMessageJob:G,onError:Y,onToolCall:W,onData:$}){return Q.pipeThrough(new TransformStream({async transform(K,Z){await G(async({state:H,write:F})=>{var q,V,z,U;function N(M){let A=H.message.parts.filter(g2).find((E)=>E.toolCallId===M);if(A==null)throw Error(`no tool invocation found for tool call ${M}`);return A}function D(M){var T;let A=H.message.parts.find((v)=>TW0(v)&&v.toolCallId===M.toolCallId),E=M,C=A;if(A!=null){if(A.state=M.state,C.input=E.input,C.output=E.output,C.errorText=E.errorText,C.rawInput=E.rawInput,C.preliminary=E.preliminary,M.title!==void 0)C.title=M.title;if(C.providerExecuted=(T=E.providerExecuted)!=null?T:A.providerExecuted,E.providerMetadata!=null&&A.state==="input-available")A.callProviderMetadata=E.providerMetadata}else H.message.parts.push({type:`tool-${M.toolName}`,toolCallId:M.toolCallId,state:M.state,title:M.title,input:E.input,output:E.output,rawInput:E.rawInput,errorText:E.errorText,providerExecuted:E.providerExecuted,preliminary:E.preliminary,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}function P(M){var T,A;let E=H.message.parts.find((k)=>k.type==="dynamic-tool"&&k.toolCallId===M.toolCallId),C=M,v=E;if(E!=null){if(E.state=M.state,v.toolName=M.toolName,v.input=C.input,v.output=C.output,v.errorText=C.errorText,v.rawInput=(T=C.rawInput)!=null?T:v.rawInput,v.preliminary=C.preliminary,M.title!==void 0)v.title=M.title;if(v.providerExecuted=(A=C.providerExecuted)!=null?A:E.providerExecuted,C.providerMetadata!=null&&E.state==="input-available")E.callProviderMetadata=C.providerMetadata}else H.message.parts.push({type:"dynamic-tool",toolName:M.toolName,toolCallId:M.toolCallId,state:M.state,input:C.input,output:C.output,errorText:C.errorText,preliminary:C.preliminary,providerExecuted:C.providerExecuted,title:M.title,...C.providerMetadata!=null?{callProviderMetadata:C.providerMetadata}:{}})}async function j(M){if(M!=null){let T=H.message.metadata!=null?jW0(H.message.metadata,M):M;if(X!=null)await f2({value:T,schema:X});H.message.metadata=T}}switch(K.type){case"text-start":{let M={type:"text",text:"",providerMetadata:K.providerMetadata,state:"streaming"};H.activeTextParts[K.id]=M,H.message.parts.push(M),F();break}case"text-delta":{let M=H.activeTextParts[K.id];M.text+=K.delta,M.providerMetadata=(q=K.providerMetadata)!=null?q:M.providerMetadata,F();break}case"text-end":{let M=H.activeTextParts[K.id];M.state="done",M.providerMetadata=(V=K.providerMetadata)!=null?V:M.providerMetadata,delete H.activeTextParts[K.id],F();break}case"reasoning-start":{let M={type:"reasoning",text:"",providerMetadata:K.providerMetadata,state:"streaming"};H.activeReasoningParts[K.id]=M,H.message.parts.push(M),F();break}case"reasoning-delta":{let M=H.activeReasoningParts[K.id];M.text+=K.delta,M.providerMetadata=(z=K.providerMetadata)!=null?z:M.providerMetadata,F();break}case"reasoning-end":{let M=H.activeReasoningParts[K.id];M.providerMetadata=(U=K.providerMetadata)!=null?U:M.providerMetadata,M.state="done",delete H.activeReasoningParts[K.id],F();break}case"file":{H.message.parts.push({type:"file",mediaType:K.mediaType,url:K.url}),F();break}case"source-url":{H.message.parts.push({type:"source-url",sourceId:K.sourceId,url:K.url,title:K.title,providerMetadata:K.providerMetadata}),F();break}case"source-document":{H.message.parts.push({type:"source-document",sourceId:K.sourceId,mediaType:K.mediaType,title:K.title,filename:K.filename,providerMetadata:K.providerMetadata}),F();break}case"tool-input-start":{let M=H.message.parts.filter(TW0);if(H.partialToolCalls[K.toolCallId]={text:"",toolName:K.toolName,index:M.length,dynamic:K.dynamic,title:K.title},K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-streaming",input:void 0,providerExecuted:K.providerExecuted,title:K.title});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-streaming",input:void 0,providerExecuted:K.providerExecuted,title:K.title});F();break}case"tool-input-delta":{let M=H.partialToolCalls[K.toolCallId];M.text+=K.inputTextDelta;let{value:T}=await m2(M.text);if(M.dynamic)P({toolCallId:K.toolCallId,toolName:M.toolName,state:"input-streaming",input:T,title:M.title});else D({toolCallId:K.toolCallId,toolName:M.toolName,state:"input-streaming",input:T,title:M.title});F();break}case"tool-input-available":{if(K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-available",input:K.input,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata,title:K.title});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-available",input:K.input,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata,title:K.title});if(F(),W&&!K.providerExecuted)await W({toolCall:K});break}case"tool-input-error":{if(K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"output-error",input:K.input,errorText:K.errorText,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"output-error",input:void 0,rawInput:K.input,errorText:K.errorText,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata});F();break}case"tool-approval-request":{let M=N(K.toolCallId);M.state="approval-requested",M.approval={id:K.approvalId},F();break}case"tool-output-denied":{let M=N(K.toolCallId);M.state="output-denied",F();break}case"tool-output-available":{let M=N(K.toolCallId);if(M.type==="dynamic-tool")P({toolCallId:K.toolCallId,toolName:M.toolName,state:"output-available",input:M.input,output:K.output,preliminary:K.preliminary,providerExecuted:K.providerExecuted,title:M.title});else D({toolCallId:K.toolCallId,toolName:AW0(M),state:"output-available",input:M.input,output:K.output,providerExecuted:K.providerExecuted,preliminary:K.preliminary,title:M.title});F();break}case"tool-output-error":{let M=N(K.toolCallId);if(M.type==="dynamic-tool")P({toolCallId:K.toolCallId,toolName:M.toolName,state:"output-error",input:M.input,errorText:K.errorText,providerExecuted:K.providerExecuted,title:M.title});else D({toolCallId:K.toolCallId,toolName:AW0(M),state:"output-error",input:M.input,rawInput:M.rawInput,errorText:K.errorText,providerExecuted:K.providerExecuted,title:M.title});F();break}case"start-step":{H.message.parts.push({type:"step-start"});break}case"finish-step":{H.activeTextParts={},H.activeReasoningParts={};break}case"start":{if(K.messageId!=null)H.message.id=K.messageId;if(await j(K.messageMetadata),K.messageId!=null||K.messageMetadata!=null)F();break}case"finish":{if(K.finishReason!=null)H.finishReason=K.finishReason;if(await j(K.messageMetadata),K.messageMetadata!=null)F();break}case"message-metadata":{if(await j(K.messageMetadata),K.messageMetadata!=null)F();break}case"error":{Y==null||Y(Error(K.errorText));break}default:if(Ed4(K)){if((J==null?void 0:J[K.type])!=null)await f2({value:K.data,schema:J[K.type]});let M=K;if(M.transient){$==null||$(M);break}let T=M.id!=null?H.message.parts.find((A)=>M.type===A.type&&M.id===A.id):void 0;if(T!=null)T.data=M.data;else H.message.parts.push(M);$==null||$(M),F()}}Z.enqueue(K)})}}))}function Cd4({messageId:Q,originalMessages:X=[],onFinish:J,onError:G,stream:Y}){let W=X==null?void 0:X[X.length-1];if((W==null?void 0:W.role)!=="assistant")W=void 0;else Q=W.id;let $=!1,K=Y.pipeThrough(new TransformStream({transform(V,z){if(V.type==="start"){let U=V;if(U.messageId==null&&Q!=null)U.messageId=Q}if(V.type==="abort")$=!0;z.enqueue(V)}}));if(J==null)return K;let Z=jd4({lastMessage:W?structuredClone(W):void 0,messageId:Q!=null?Q:""}),H=async(V)=>{await V({state:Z,write:()=>{}})},F=!1,q=async()=>{if(F||!J)return;F=!0;let V=Z.message.id===(W==null?void 0:W.id);await J({isAborted:$,isContinuation:V,responseMessage:Z.message,messages:[...V?X.slice(0,-1):X,Z.message],finishReason:Z.finishReason})};return Id4({stream:K,runUpdateMessageJob:H,onError:G}).pipeThrough(new TransformStream({transform(V,z){z.enqueue(V)},async cancel(){await q()},async flush(){await q()}}))}function Rd4({response:Q,status:X,statusText:J,headers:G,stream:Y,consumeSseStream:W}){let $=Y.pipeThrough(new qU1);if(W){let[K,Z]=$.tee();$=K,W({stream:Z})}FU1({response:Q,status:X,statusText:J,headers:Object.fromEntries(Hf(G,VU1).entries()),stream:$.pipeThrough(new TextEncoderStream)})}function Kf(Q){let X=Q.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let J=this.getReader(),G=!1;async function Y(W){var $;G=!0;try{if(W)await(($=J.cancel)==null?void 0:$.call(J))}finally{try{J.releaseLock()}catch(K){}}}return{async next(){if(G)return{done:!0,value:void 0};let{done:W,value:$}=await J.read();if(W)return await Y(!0),{done:!0,value:void 0};return{done:!1,value:$}},async return(){return await Y(!0),{done:!0,value:void 0}},async throw(W){throw await Y(!0),W}}},X}async function Sd4({stream:Q,onError:X}){let J=Q.getReader();try{while(!0){let{done:G}=await J.read();if(G)break}}catch(G){X==null||X(G)}finally{J.releaseLock()}}function Nz1(){let Q,X;return{promise:new Promise((G,Y)=>{Q=G,X=Y}),resolve:Q,reject:X}}function vd4(){let Q=[],X=null,J=!1,G=Nz1(),Y=()=>{J=!0,G.resolve(),Q.forEach(($)=>$.cancel()),Q=[],X==null||X.close()},W=async()=>{if(J&&Q.length===0){X==null||X.close();return}if(Q.length===0)return G=Nz1(),await G.promise,W();try{let{value:$,done:K}=await Q[0].read();if(K)if(Q.shift(),Q.length===0&&J)X==null||X.close();else await W();else X==null||X.enqueue($)}catch($){X==null||X.error($),Q.shift(),Y()}};return{stream:new ReadableStream({start($){X=$},pull:W,async cancel(){for(let $ of Q)await $.cancel();Q=[],J=!0}}),addStream:($)=>{if(J)throw Error("Cannot add inner stream: outer stream is closed");Q.push($.getReader()),G.resolve()},close:()=>{if(J=!0,G.resolve(),Q.length===0)X==null||X.close()},terminate:Y}}function kd4(){var Q,X;return(X=(Q=globalThis==null?void 0:globalThis.performance)==null?void 0:Q.now())!=null?X:Date.now()}function _d4({tools:Q,generatorStream:X,tracer:J,telemetry:G,system:Y,messages:W,abortSignal:$,repairToolCall:K,experimental_context:Z,generateId:H}){let F=null,q=new ReadableStream({start(M){F=M}}),V=new Set,z=new Map,U=new Map,N=!1,D=void 0;function P(){if(N&&V.size===0){if(D!=null)F.enqueue(D);F.close()}}let j=new TransformStream({async transform(M,T){let A=M.type;switch(A){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{T.enqueue(M);break}case"file":{T.enqueue({type:"file",file:new Fd4({data:M.data,mediaType:M.mediaType})});break}case"finish":{D={type:"finish",finishReason:M.finishReason.unified,rawFinishReason:M.finishReason.raw,usage:Yd4(M.usage),providerMetadata:M.providerMetadata};break}case"tool-approval-request":{let E=U.get(M.toolCallId);if(E==null){F.enqueue({type:"error",error:new Cz1({toolCallId:M.toolCallId,approvalId:M.approvalId})});break}T.enqueue({type:"tool-approval-request",approvalId:M.approvalId,toolCall:E});break}case"tool-call":{try{let E=await Dd4({toolCall:M,tools:Q,repairToolCall:K,system:Y,messages:W});if(U.set(E.toolCallId,E),T.enqueue(E),E.invalid){F.enqueue({type:"tool-error",toolCallId:E.toolCallId,toolName:E.toolName,input:E.input,error:y2(E.error),dynamic:!0,title:E.title});break}let C=Q==null?void 0:Q[E.toolName];if(C==null)break;if(C.onInputAvailable!=null)await C.onInputAvailable({input:E.input,toolCallId:E.toolCallId,messages:W,abortSignal:$,experimental_context:Z});if(await qd4({tool:C,toolCall:E,messages:W,experimental_context:Z})){F.enqueue({type:"tool-approval-request",approvalId:H(),toolCall:E});break}if(z.set(E.toolCallId,E.input),C.execute!=null&&E.providerExecuted!==!0){let v=H();V.add(v),ZU1({toolCall:E,tools:Q,tracer:J,telemetry:G,messages:W,abortSignal:$,experimental_context:Z,onPreliminaryToolResult:(k)=>{F.enqueue(k)}}).then((k)=>{F.enqueue(k),V.delete(v),P()})}}catch(E){F.enqueue({type:"error",error:E})}break}case"tool-result":{let E=M.toolName;if(M.isError)F.enqueue({type:"tool-error",toolCallId:M.toolCallId,toolName:E,input:z.get(M.toolCallId),providerExecuted:!0,error:M.result,dynamic:M.dynamic});else T.enqueue({type:"tool-result",toolCallId:M.toolCallId,toolName:E,input:z.get(M.toolCallId),output:M.result,providerExecuted:!0,dynamic:M.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){N=!0,P()}});return new ReadableStream({async start(M){return Promise.all([X.pipeThrough(j).pipeTo(new WritableStream({write(T){M.enqueue(T)},close(){}})),q.pipeTo(new WritableStream({write(T){M.enqueue(T)},close(){M.close()}}))])}})}function UU1({model:Q,tools:X,toolChoice:J,system:G,prompt:Y,messages:W,maxRetries:$,abortSignal:K,headers:Z,stopWhen:H=IW0(1),experimental_output:F,output:q=F,experimental_telemetry:V,prepareStep:z,providerOptions:U,experimental_activeTools:N,activeTools:D=N,experimental_repairToolCall:P,experimental_transform:j,experimental_download:M,includeRawChunks:T=!1,onChunk:A,onError:E=({error:u})=>{console.error(u)},onFinish:C,onAbort:v,onStepFinish:k,experimental_context:y,_internal:{now:f=kd4,generateId:l=yd4,currentDate:x=()=>new Date}={},...S}){return new fd4({model:ez1(Q),telemetry:V,headers:Z,settings:S,maxRetries:$,abortSignal:K,system:G,prompt:Y,messages:W,tools:X,toolChoice:J,transforms:Zf(j),activeTools:D,repairToolCall:P,stopConditions:Zf(H),output:q,providerOptions:U,prepareStep:z,includeRawChunks:T,onChunk:A,onError:E,onFinish:C,onAbort:v,onStepFinish:k,now:f,currentDate:x,generateId:l,experimental_context:y,download:M})}function hd4(Q){let X=void 0,J="",G="",Y=void 0,W="";function $({controller:K,partialOutput:Z=void 0}){K.enqueue({part:{type:"text-delta",id:X,text:G,providerMetadata:Y},partialOutput:Z}),G=""}return new TransformStream({async transform(K,Z){var H;if(K.type==="finish-step"&&G.length>0)$({controller:Z});if(K.type!=="text-delta"&&K.type!=="text-start"&&K.type!=="text-end"){Z.enqueue({part:K,partialOutput:void 0});return}if(X==null)X=K.id;else if(K.id!==X){Z.enqueue({part:K,partialOutput:void 0});return}if(K.type==="text-start"){Z.enqueue({part:K,partialOutput:void 0});return}if(K.type==="text-end"){if(G.length>0)$({controller:Z});Z.enqueue({part:K,partialOutput:void 0});return}J+=K.text,G+=K.text,Y=(H=K.providerMetadata)!=null?H:Y;let F=await Q.parsePartialOutput({text:J});if(F!==void 0){let q=JSON.stringify(F.partial);if(q!==W)$({controller:Z,partialOutput:F.partial}),W=q}}})}async function NU1(Q,X){let J=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Q=Q.map((G)=>({...G,parts:G.parts.filter((Y)=>!g2(Y)||Y.state!=="input-streaming"&&Y.state!=="input-available")}));for(let G of Q)switch(G.role){case"system":{let Y=G.parts.filter(($)=>$.type==="text"),W=Y.reduce(($,K)=>{if(K.providerMetadata!=null)return{...$,...K.providerMetadata};return $},{});J.push({role:"system",content:Y.map(($)=>$.text).join(""),...Object.keys(W).length>0?{providerOptions:W}:{}});break}case"user":{J.push({role:"user",content:G.parts.map((Y)=>{var W;if(NW0(Y))return{type:"text",text:Y.text,...Y.providerMetadata!=null?{providerOptions:Y.providerMetadata}:{}};if(BW0(Y))return{type:"file",mediaType:Y.mediaType,filename:Y.filename,data:Y.url,...Y.providerMetadata!=null?{providerOptions:Y.providerMetadata}:{}};if(UW0(Y))return(W=X==null?void 0:X.convertDataPart)==null?void 0:W.call(X,Y)}).filter(iq1)});break}case"assistant":{if(G.parts!=null){let Y=[];async function W(){var $,K,Z,H,F,q;if(Y.length===0)return;let V=[];for(let U of Y)if(NW0(U))V.push({type:"text",text:U.text,...U.providerMetadata!=null?{providerOptions:U.providerMetadata}:{}});else if(BW0(U))V.push({type:"file",mediaType:U.mediaType,filename:U.filename,data:U.url});else if(Uz1(U))V.push({type:"reasoning",text:U.text,providerOptions:U.providerMetadata});else if(g2(U)){let N=OW0(U);if(U.state!=="input-streaming"){if(V.push({type:"tool-call",toolCallId:U.toolCallId,toolName:N,input:U.state==="output-error"?($=U.input)!=null?$:("rawInput"in U)?U.rawInput:void 0:U.input,providerExecuted:U.providerExecuted,...U.callProviderMetadata!=null?{providerOptions:U.callProviderMetadata}:{}}),U.approval!=null)V.push({type:"tool-approval-request",approvalId:U.approval.id,toolCallId:U.toolCallId});if(U.providerExecuted===!0&&U.state!=="approval-responded"&&(U.state==="output-available"||U.state==="output-error"))V.push({type:"tool-result",toolCallId:U.toolCallId,toolName:N,output:await rN({toolCallId:U.toolCallId,input:U.input,output:U.state==="output-error"?U.errorText:U.output,tool:(K=X==null?void 0:X.tools)==null?void 0:K[N],errorMode:U.state==="output-error"?"json":"none"}),...U.callProviderMetadata!=null?{providerOptions:U.callProviderMetadata}:{}})}}else if(UW0(U)){let N=(Z=X==null?void 0:X.convertDataPart)==null?void 0:Z.call(X,U);if(N!=null)V.push(N)}else throw Error(`Unsupported part: ${U}`);J.push({role:"assistant",content:V});let z=Y.filter((U)=>{var N;return g2(U)&&(U.providerExecuted!==!0||((N=U.approval)==null?void 0:N.approved)!=null)});if(z.length>0){let U=[];for(let N of z){if(((H=N.approval)==null?void 0:H.approved)!=null)U.push({type:"tool-approval-response",approvalId:N.approval.id,approved:N.approval.approved,reason:N.approval.reason,providerExecuted:N.providerExecuted});if(N.providerExecuted===!0)continue;switch(N.state){case"output-denied":{U.push({type:"tool-result",toolCallId:N.toolCallId,toolName:OW0(N),output:{type:"error-text",value:(F=N.approval.reason)!=null?F:"Tool execution denied."},...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let D=OW0(N);U.push({type:"tool-result",toolCallId:N.toolCallId,toolName:D,output:await rN({toolCallId:N.toolCallId,input:N.input,output:N.state==="output-error"?N.errorText:N.output,tool:(q=X==null?void 0:X.tools)==null?void 0:q[D],errorMode:N.state==="output-error"?"text":"none"}),...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}}}if(U.length>0)J.push({role:"tool",content:U})}Y=[]}for(let $ of G.parts)if(NW0($)||Uz1($)||BW0($)||g2($)||UW0($))Y.push($);else if($.type==="step-start")await W();await W();break}break}default:{let Y=G.role;throw new Nl4({originalMessage:G,message:`Unsupported role: ${Y}`})}}return J}function BU1({messages:Q,reasoning:X="none",toolCalls:J=[],emptyMessages:G="remove"}){if(X==="all"||X==="before-last-message")Q=Q.map((Y,W)=>{if(Y.role!=="assistant"||typeof Y.content==="string"||X==="before-last-message"&&W===Q.length-1)return Y;return{...Y,content:Y.content.filter(($)=>$.type!=="reasoning")}});if(J==="none")J=[];else if(J==="all")J=[{type:"all"}];else if(J==="before-last-message")J=[{type:"before-last-message"}];else if(typeof J==="string")J=[{type:J}];for(let Y of J){let W=Y.type==="all"?void 0:Y.type==="before-last-message"?1:Number(Y.type.slice(12).slice(0,-9)),$=new Set,K=new Set;if(W!=null){for(let Z of Q.slice(-W))if((Z.role==="assistant"||Z.role==="tool")&&typeof Z.content!=="string"){for(let H of Z.content)if(H.type==="tool-call"||H.type==="tool-result")$.add(H.toolCallId);else if(H.type==="tool-approval-request"||H.type==="tool-approval-response")K.add(H.approvalId)}}Q=Q.map((Z,H)=>{if(Z.role!=="assistant"&&Z.role!=="tool"||typeof Z.content==="string"||W&&H>=Q.length-W)return Z;let F={},q={};return{...Z,content:Z.content.filter((V)=>{if(V.type!=="tool-call"&&V.type!=="tool-result"&&V.type!=="tool-approval-request"&&V.type!=="tool-approval-response")return!0;if(V.type==="tool-call")F[V.toolCallId]=V.toolName;else if(V.type==="tool-approval-request")q[V.approvalId]=F[V.toolCallId];if((V.type==="tool-call"||V.type==="tool-result")&&$.has(V.toolCallId)||(V.type==="tool-approval-request"||V.type==="tool-approval-response")&&K.has(V.approvalId))return!0;return Y.tools!=null&&!Y.tools.includes(V.type==="tool-call"||V.type==="tool-result"?V.toolName:q[V.approvalId])})}})}if(G==="remove")Q=Q.filter((Y)=>Y.content.length>0);return Q}var WU1,wW0,um4,mm4=(Q,X)=>{for(var J in X)um4(Q,J,{get:X[J],enumerable:!0})},Bz1="AI_InvalidArgumentError",Oz1,lm4,Dz1,hG,dm4="AI_InvalidStreamPartError",pm4,cm4,nm4,Lz1="AI_InvalidToolApprovalError",wz1,im4,Pz1,rm4,Mz1="AI_InvalidToolInputError",Tz1,am4,Az1,EW0,Ez1="AI_ToolCallNotFoundForApprovalError",jz1,om4,Iz1,Cz1,sm4="AI_NoImageGeneratedError",tm4,em4,Ql4,Rz1="AI_NoObjectGeneratedError",Sz1,Xl4,vz1,uZ,kz1="AI_NoOutputGeneratedError",_z1,Jl4,yz1,Yl4,hz1="AI_NoSuchToolError",fz1,Gl4,bz1,DW0,xz1="AI_ToolCallRepairError",gz1,Wl4,uz1,$l4,Kl4,Zl4="AI_InvalidDataContentError",Hl4,Fl4,ql4,mz1="AI_InvalidMessageRoleError",lz1,Vl4,dz1,zl4,pz1="AI_MessageConversionError",cz1,Ul4,nz1,Nl4,iz1="AI_RetryError",rz1,Bl4,az1,Zz1,Dl4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",Hz1=!1,oz1=(Q)=>{if(Q.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Q);return}if(!Hz1)Hz1=!0,console.info(Dl4);for(let J of Q.warnings)console.warn(Ol4({warning:J,provider:Q.provider,model:Q.model}))},Tl4,Al4=(Q)=>{let X=typeof Q==="string"?pN(Q):Q,J=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(J+10)},Il4="6.0.3",Cl4=async({url:Q})=>{var X;let J=Q.toString();try{let G=await fetch(J,{headers:bZ({},`ai-sdk/${Il4}`,Xf())});if(!G.ok)throw new Qf({url:J,statusCode:G.status,statusText:G.statusText});return{data:new Uint8Array(await G.arrayBuffer()),mediaType:(X=G.headers.get("content-type"))!=null?X:void 0}}catch(G){if(Qf.isInstance(G))throw G;throw new Qf({url:J,cause:G})}},Rl4=(Q=Cl4)=>(X)=>Promise.all(X.map(async(J)=>J.isUrlSupportedByModel?null:Q(J))),QU1,u2,Q4,JU1,gl4,YU1,ul4,ml4,ll4,GU1,dl4,pl4,cl4,nl4,il4,rl4,al4,el4,$f,Qd4,$d4=({maxRetries:Q=2,initialDelayInMs:X=2000,backoffFactor:J=2,abortSignal:G}={})=>async(Y)=>KU1(Y,{maxRetries:Q,delayInMs:X,backoffFactor:J,abortSignal:G}),Hd4=class{constructor({data:Q,mediaType:X}){let J=Q instanceof Uint8Array;this.base64Data=J?void 0:Q,this.uint8ArrayData=J?Q:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=_2(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=pN(this.base64Data);return this.uint8ArrayData}},Fd4,Vd4,MW0=()=>({responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Q}){return Q},async parsePartialOutput({text:Q}){return{partial:Q}}}),Ud4=({schema:Q,name:X,description:J})=>{let G=_G(Q);return{responseFormat:b5(G.jsonSchema).then((Y)=>({type:"json",schema:Y,...X!=null&&{name:X},...J!=null&&{description:J}})),async parseCompleteOutput({text:Y},W){let $=await TX({text:Y});if(!$.success)throw new uZ({message:"No object generated: could not parse the response.",cause:$.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});let K=await dQ({value:$.value,schema:G});if(!K.success)throw new uZ({message:"No object generated: response did not match schema.",cause:K.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});return K.value},async parsePartialOutput({text:Y}){let W=await m2(Y);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:W.value}}}}},Nd4=({element:Q,name:X,description:J})=>{let G=_G(Q);return{responseFormat:b5(G.jsonSchema).then((Y)=>{let{$schema:W,...$}=Y;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:$}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...J!=null&&{description:J}}}),async parseCompleteOutput({text:Y},W){let $=await TX({text:Y});if(!$.success)throw new uZ({message:"No object generated: could not parse the response.",cause:$.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});let K=$.value;if(K==null||typeof K!=="object"||!("elements"in K)||!Array.isArray(K.elements))throw new uZ({message:"No object generated: response did not match schema.",cause:new $7({value:K,cause:"response must be an object with an elements array"}),text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});for(let Z of K.elements){let H=await dQ({value:Z,schema:G});if(!H.success)throw new uZ({message:"No object generated: response did not match schema.",cause:H.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason})}return K.elements},async parsePartialOutput({text:Y}){let W=await m2(Y);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let $=W.value;if($==null||typeof $!=="object"||!("elements"in $)||!Array.isArray($.elements))return;let K=W.state==="repaired-parse"&&$.elements.length>0?$.elements.slice(0,-1):$.elements,Z=[];for(let H of K){let F=await dQ({value:H,schema:G});if(F.success)Z.push(F.value)}return{partial:Z}}}}}},Bd4=({options:Q,name:X,description:J})=>{return{responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Q}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...J!=null&&{description:J}}),async parseCompleteOutput({text:G},Y){let W=await TX({text:G});if(!W.success)throw new uZ({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:Y.response,usage:Y.usage,finishReason:Y.finishReason});let $=W.value;if($==null||typeof $!=="object"||!("result"in $)||typeof $.result!=="string"||!Q.includes($.result))throw new uZ({message:"No object generated: response did not match schema.",cause:new $7({value:$,cause:"response must be an object that contains a choice value."}),text:G,response:Y.response,usage:Y.usage,finishReason:Y.finishReason});return $.result},async parsePartialOutput({text:G}){let Y=await m2(G);switch(Y.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=Y.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string")return;let $=Q.filter((K)=>K.startsWith(W.result));if(Y.state==="successful-parse")return $.includes(W.result)?{partial:W.result}:void 0;else return $.length===1?{partial:$[0]}:void 0}}}}},Od4=({name:Q,description:X}={})=>{return{responseFormat:Promise.resolve({type:"json",...Q!=null&&{name:Q},...X!=null&&{description:X}}),async parseCompleteOutput({text:J},G){let Y=await TX({text:J});if(!Y.success)throw new uZ({message:"No object generated: could not parse the response.",cause:Y.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return Y.value},async parsePartialOutput({text:J}){let G=await m2(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return G.value===void 0?void 0:{partial:G.value}}}}},Ld4=class{constructor({content:Q,finishReason:X,rawFinishReason:J,usage:G,warnings:Y,request:W,response:$,providerMetadata:K}){this.content=Q,this.finishReason=X,this.rawFinishReason=J,this.usage=G,this.warnings=Y,this.request=W,this.response=$,this.providerMetadata=K}get text(){return this.content.filter((Q)=>Q.type==="text").map((Q)=>Q.text).join("")}get reasoning(){return this.content.filter((Q)=>Q.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Q)=>Q.text).join("")}get files(){return this.content.filter((Q)=>Q.type==="file").map((Q)=>Q.file)}get sources(){return this.content.filter((Q)=>Q.type==="source")}get toolCalls(){return this.content.filter((Q)=>Q.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Q)=>Q.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Q)=>Q.dynamic===!0)}get toolResults(){return this.content.filter((Q)=>Q.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Q)=>Q.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Q)=>Q.dynamic===!0)}},lo6,qU1,VU1,ro6,yd4,fd4=class{constructor({model:Q,telemetry:X,headers:J,settings:G,maxRetries:Y,abortSignal:W,system:$,prompt:K,messages:Z,tools:H,toolChoice:F,transforms:q,activeTools:V,repairToolCall:z,stopConditions:U,output:N,providerOptions:D,prepareStep:P,includeRawChunks:j,now:M,currentDate:T,generateId:A,onChunk:E,onError:C,onFinish:v,onAbort:k,onStepFinish:y,experimental_context:f,download:l}){this._totalUsage=new Jq,this._finishReason=new Jq,this._rawFinishReason=new Jq,this._steps=new Jq,this.outputSpecification=N,this.includeRawChunks=j,this.tools=H;let x,S=[],u=[],X0=void 0,r=void 0,W0=void 0,V0={},G0=[],N0=[],R0=new Map,u0,c0={},O0={},H0=new TransformStream({async transform(p0,v0){var f0,W1,_1,o1;v0.enqueue(p0);let{part:l0}=p0;if(l0.type==="text-delta"||l0.type==="reasoning-delta"||l0.type==="source"||l0.type==="tool-call"||l0.type==="tool-result"||l0.type==="tool-input-start"||l0.type==="tool-input-delta"||l0.type==="raw")await(E==null?void 0:E({chunk:l0}));if(l0.type==="error")await C({error:sl4(l0.error)});if(l0.type==="text-start")c0[l0.id]={type:"text",text:"",providerMetadata:l0.providerMetadata},S.push(c0[l0.id]);if(l0.type==="text-delta"){let n0=c0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`text part ${l0.id} not found`},partialOutput:void 0});return}n0.text+=l0.text,n0.providerMetadata=(f0=l0.providerMetadata)!=null?f0:n0.providerMetadata}if(l0.type==="text-end"){let n0=c0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`text part ${l0.id} not found`},partialOutput:void 0});return}n0.providerMetadata=(W1=l0.providerMetadata)!=null?W1:n0.providerMetadata,delete c0[l0.id]}if(l0.type==="reasoning-start")O0[l0.id]={type:"reasoning",text:"",providerMetadata:l0.providerMetadata},S.push(O0[l0.id]);if(l0.type==="reasoning-delta"){let n0=O0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`reasoning part ${l0.id} not found`},partialOutput:void 0});return}n0.text+=l0.text,n0.providerMetadata=(_1=l0.providerMetadata)!=null?_1:n0.providerMetadata}if(l0.type==="reasoning-end"){let n0=O0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`reasoning part ${l0.id} not found`},partialOutput:void 0});return}n0.providerMetadata=(o1=l0.providerMetadata)!=null?o1:n0.providerMetadata,delete O0[l0.id]}if(l0.type==="file")S.push({type:"file",file:l0.file});if(l0.type==="source")S.push(l0);if(l0.type==="tool-call")S.push(l0);if(l0.type==="tool-result"&&!l0.preliminary)S.push(l0);if(l0.type==="tool-approval-request")S.push(l0);if(l0.type==="tool-error")S.push(l0);if(l0.type==="start-step")S=[],O0={},c0={},V0=l0.request,G0=l0.warnings;if(l0.type==="finish-step"){let n0=await zz1({content:S,tools:H}),k0=new Ld4({content:S,finishReason:l0.finishReason,rawFinishReason:l0.rawFinishReason,usage:l0.usage,warnings:G0,request:V0,response:{...l0.response,messages:[...u,...n0]},providerMetadata:l0.providerMetadata});await(y==null?void 0:y(k0)),oz1({warnings:G0,provider:Q.provider,model:Q.modelId}),N0.push(k0),u.push(...n0),x.resolve()}if(l0.type==="finish")W0=l0.totalUsage,X0=l0.finishReason,r=l0.rawFinishReason},async flush(p0){try{if(N0.length===0){let _1=new Yl4({message:"No output generated. Check the stream for errors."});L0._finishReason.reject(_1),L0._rawFinishReason.reject(_1),L0._totalUsage.reject(_1),L0._steps.reject(_1);return}let v0=X0!=null?X0:"other",f0=W0!=null?W0:zW0();L0._finishReason.resolve(v0),L0._rawFinishReason.resolve(r),L0._totalUsage.resolve(f0),L0._steps.resolve(N0);let W1=N0[N0.length-1];await(v==null?void 0:v({finishReason:W1.finishReason,rawFinishReason:W1.rawFinishReason,totalUsage:f0,usage:W1.usage,content:W1.content,text:W1.text,reasoningText:W1.reasoningText,reasoning:W1.reasoning,files:W1.files,sources:W1.sources,toolCalls:W1.toolCalls,staticToolCalls:W1.staticToolCalls,dynamicToolCalls:W1.dynamicToolCalls,toolResults:W1.toolResults,staticToolResults:W1.staticToolResults,dynamicToolResults:W1.dynamicToolResults,request:W1.request,response:W1.response,warnings:W1.warnings,providerMetadata:W1.providerMetadata,steps:N0,experimental_context:f})),u0.setAttributes(await iN({telemetry:X,attributes:{"ai.response.finishReason":v0,"ai.response.text":{output:()=>W1.text},"ai.response.toolCalls":{output:()=>{var _1;return((_1=W1.toolCalls)==null?void 0:_1.length)?JSON.stringify(W1.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(W1.providerMetadata),"ai.usage.inputTokens":f0.inputTokens,"ai.usage.outputTokens":f0.outputTokens,"ai.usage.totalTokens":f0.totalTokens,"ai.usage.reasoningTokens":f0.reasoningTokens,"ai.usage.cachedInputTokens":f0.cachedInputTokens}}))}catch(v0){p0.error(v0)}finally{u0.end()}}}),_0=vd4();this.addStream=_0.addStream,this.closeStream=_0.close;let x1=_0.stream.getReader(),S1=new ReadableStream({async start(p0){p0.enqueue({type:"start"})},async pull(p0){function v0(){k==null||k({steps:N0}),p0.enqueue({type:"abort"}),p0.close()}try{let{done:f0,value:W1}=await x1.read();if(f0){p0.close();return}if(W==null?void 0:W.aborted){v0();return}p0.enqueue(W1)}catch(f0){if(B$(f0)&&(W==null?void 0:W.aborted))v0();else p0.error(f0)}},cancel(p0){return _0.stream.cancel(p0)}});for(let p0 of q)S1=S1.pipeThrough(p0({tools:H,stopStream(){_0.terminate()}}));this.baseStream=S1.pipeThrough(hd4(N!=null?N:MW0())).pipeThrough(H0);let{maxRetries:x0,retry:D0}=Kd4({maxRetries:Y,abortSignal:W}),z0=Xd4(X),j0=fl4(G),K0=tl4({model:Q,telemetry:X,headers:J,settings:{...j0,maxRetries:x0}}),L0=this;PW0({name:"ai.streamText",attributes:iN({telemetry:X,attributes:{...LW0({operationId:"ai.streamText",telemetry:X}),...K0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:K,messages:Z})}}}),tracer:z0,endWhenDone:!1,fn:async(p0)=>{u0=p0;let v0=await ol4({system:$,prompt:K,messages:Z}),f0=v0.messages,W1=[],{approvedToolApprovals:_1,deniedToolApprovals:o1}=Zd4({messages:f0});if(o1.length>0||_1.length>0){let n0=[..._1,...o1].filter((C1)=>C1.toolCall.providerExecuted),k0=_1.filter((C1)=>!C1.toolCall.providerExecuted),X1=o1.filter((C1)=>!C1.toolCall.providerExecuted),$6=o1.filter((C1)=>C1.toolCall.providerExecuted),H4,F8=new ReadableStream({start(C1){H4=C1}});L0.addStream(F8);try{for(let y0 of[...X1,...$6])H4==null||H4.enqueue({type:"tool-output-denied",toolCallId:y0.toolCall.toolCallId,toolName:y0.toolCall.toolName});let C1=[];if(await Promise.all(k0.map(async(y0)=>{let n4=await ZU1({toolCall:y0.toolCall,tools:H,tracer:z0,telemetry:X,messages:f0,abortSignal:W,experimental_context:f,onPreliminaryToolResult:(O)=>{H4==null||H4.enqueue(O)}});if(n4!=null)H4==null||H4.enqueue(n4),C1.push(n4)})),n0.length>0)W1.push({role:"tool",content:n0.map((y0)=>({type:"tool-approval-response",approvalId:y0.approvalResponse.approvalId,approved:y0.approvalResponse.approved,reason:y0.approvalResponse.reason,providerExecuted:!0}))});if(C1.length>0||X1.length>0){let y0=[];for(let n4 of C1)y0.push({type:"tool-result",toolCallId:n4.toolCallId,toolName:n4.toolName,output:await rN({toolCallId:n4.toolCallId,input:n4.input,tool:H==null?void 0:H[n4.toolName],output:n4.type==="tool-result"?n4.output:n4.error,errorMode:n4.type==="tool-error"?"json":"none"})});for(let n4 of X1)y0.push({type:"tool-result",toolCallId:n4.toolCall.toolCallId,toolName:n4.toolCall.toolName,output:{type:"execution-denied",reason:n4.approvalResponse.reason}});W1.push({role:"tool",content:y0})}}finally{H4==null||H4.close()}}u.push(...W1);async function l0({currentStep:n0,responseMessages:k0,usage:X1}){var $6,H4,F8,C1,y0,n4;let O=L0.includeRawChunks;x=new Jq;let b=[...f0,...k0],Q0=await(P==null?void 0:P({model:Q,steps:N0,stepNumber:N0.length,messages:b,experimental_context:f})),F0=ez1(($6=Q0==null?void 0:Q0.model)!=null?$6:Q),B=await kl4({prompt:{system:(H4=Q0==null?void 0:Q0.system)!=null?H4:v0.system,messages:(F8=Q0==null?void 0:Q0.messages)!=null?F8:b},supportedUrls:await F0.supportedUrls,download:l}),{toolChoice:w,tools:h}=await xl4({tools:H,toolChoice:(C1=Q0==null?void 0:Q0.toolChoice)!=null?C1:F,activeTools:(y0=Q0==null?void 0:Q0.activeTools)!=null?y0:V});f=(n4=Q0==null?void 0:Q0.experimental_context)!=null?n4:f;let i=jW0(D,Q0==null?void 0:Q0.providerOptions),{result:{stream:s,response:p,request:S0},doStreamSpan:s0,startTimestampMs:R1}=await D0(()=>PW0({name:"ai.streamText.doStream",attributes:iN({telemetry:X,attributes:{...LW0({operationId:"ai.streamText.doStream",telemetry:X}),...K0,"ai.model.provider":F0.provider,"ai.model.id":F0.modelId,"ai.prompt.messages":{input:()=>Jd4(B)},"ai.prompt.tools":{input:()=>h==null?void 0:h.map((C0)=>JSON.stringify(C0))},"ai.prompt.toolChoice":{input:()=>w!=null?JSON.stringify(w):void 0},"gen_ai.system":F0.provider,"gen_ai.request.model":F0.modelId,"gen_ai.request.frequency_penalty":j0.frequencyPenalty,"gen_ai.request.max_tokens":j0.maxOutputTokens,"gen_ai.request.presence_penalty":j0.presencePenalty,"gen_ai.request.stop_sequences":j0.stopSequences,"gen_ai.request.temperature":j0.temperature,"gen_ai.request.top_k":j0.topK,"gen_ai.request.top_p":j0.topP}}),tracer:z0,endWhenDone:!1,fn:async(C0)=>({startTimestampMs:M(),doStreamSpan:C0,result:await F0.doStream({...j0,tools:h,toolChoice:w,responseFormat:await(N==null?void 0:N.responseFormat),prompt:B,providerOptions:i,abortSignal:W,headers:J,includeRawChunks:O})})})),d0=_d4({tools:H,generatorStream:s,tracer:z0,telemetry:X,system:$,messages:b,repairToolCall:z,abortSignal:W,experimental_context:f,generateId:A}),w1=S0!=null?S0:{},E4=[],B8=[],_4,q5={},ZJ="other",qY=void 0,t=zW0(),J0,q0=!0,E0={id:A(),timestamp:T(),modelId:Q.modelId},$0="";L0.addStream(d0.pipeThrough(new TransformStream({async transform(C0,P1){var $4,v4,O8,a1,R6;if(C0.type==="stream-start"){_4=C0.warnings;return}if(q0){let z4=M()-R1;q0=!1,s0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":z4}),s0.setAttributes({"ai.response.msToFirstChunk":z4}),P1.enqueue({type:"start-step",request:w1,warnings:_4!=null?_4:[]})}let I8=C0.type;switch(I8){case"tool-approval-request":case"text-start":case"text-end":{P1.enqueue(C0);break}case"text-delta":{if(C0.delta.length>0)P1.enqueue({type:"text-delta",id:C0.id,text:C0.delta,providerMetadata:C0.providerMetadata}),$0+=C0.delta;break}case"reasoning-start":case"reasoning-end":{P1.enqueue(C0);break}case"reasoning-delta":{P1.enqueue({type:"reasoning-delta",id:C0.id,text:C0.delta,providerMetadata:C0.providerMetadata});break}case"tool-call":{P1.enqueue(C0),E4.push(C0);break}case"tool-result":{if(P1.enqueue(C0),!C0.preliminary)B8.push(C0);break}case"tool-error":{P1.enqueue(C0),B8.push(C0);break}case"response-metadata":{E0={id:($4=C0.id)!=null?$4:E0.id,timestamp:(v4=C0.timestamp)!=null?v4:E0.timestamp,modelId:(O8=C0.modelId)!=null?O8:E0.modelId};break}case"finish":{t=C0.usage,ZJ=C0.finishReason,qY=C0.rawFinishReason,J0=C0.providerMetadata;let z4=M()-R1;s0.addEvent("ai.stream.finish"),s0.setAttributes({"ai.response.msToFinish":z4,"ai.response.avgOutputTokensPerSecond":1000*((a1=t.outputTokens)!=null?a1:0)/z4});break}case"file":{P1.enqueue(C0);break}case"source":{P1.enqueue(C0);break}case"tool-input-start":{q5[C0.id]=C0.toolName;let z4=H==null?void 0:H[C0.toolName];if((z4==null?void 0:z4.onInputStart)!=null)await z4.onInputStart({toolCallId:C0.id,messages:b,abortSignal:W,experimental_context:f});P1.enqueue({...C0,dynamic:(R6=C0.dynamic)!=null?R6:(z4==null?void 0:z4.type)==="dynamic",title:z4==null?void 0:z4.title});break}case"tool-input-end":{delete q5[C0.id],P1.enqueue(C0);break}case"tool-input-delta":{let z4=q5[C0.id],d4=H==null?void 0:H[z4];if((d4==null?void 0:d4.onInputDelta)!=null)await d4.onInputDelta({inputTextDelta:C0.delta,toolCallId:C0.id,messages:b,abortSignal:W,experimental_context:f});P1.enqueue(C0);break}case"error":{P1.enqueue(C0),ZJ="error";break}case"raw":{if(O)P1.enqueue(C0);break}default:throw Error(`Unknown chunk type: ${I8}`)}},async flush(C0){let P1=E4.length>0?JSON.stringify(E4):void 0;try{s0.setAttributes(await iN({telemetry:X,attributes:{"ai.response.finishReason":ZJ,"ai.response.text":{output:()=>$0},"ai.response.toolCalls":{output:()=>P1},"ai.response.id":E0.id,"ai.response.model":E0.modelId,"ai.response.timestamp":E0.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(J0),"ai.usage.inputTokens":t.inputTokens,"ai.usage.outputTokens":t.outputTokens,"ai.usage.totalTokens":t.totalTokens,"ai.usage.reasoningTokens":t.reasoningTokens,"ai.usage.cachedInputTokens":t.cachedInputTokens,"gen_ai.response.finish_reasons":[ZJ],"gen_ai.response.id":E0.id,"gen_ai.response.model":E0.modelId,"gen_ai.usage.input_tokens":t.inputTokens,"gen_ai.usage.output_tokens":t.outputTokens}}))}catch(a1){}finally{s0.end()}C0.enqueue({type:"finish-step",finishReason:ZJ,rawFinishReason:qY,usage:t,providerMetadata:J0,response:{...E0,headers:p==null?void 0:p.headers}});let $4=Gd4(X1,t);await x.promise;let v4=E4.filter((a1)=>a1.providerExecuted!==!0),O8=B8.filter((a1)=>a1.providerExecuted!==!0);for(let a1 of E4){if(a1.providerExecuted!==!0)continue;let R6=H==null?void 0:H[a1.toolName];if((R6==null?void 0:R6.type)==="provider"&&R6.supportsDeferredResults){if(!B8.some((z4)=>z4.type==="tool-result"&&z4.toolCallId===a1.toolCallId))R0.set(a1.toolCallId,{toolName:a1.toolName})}}for(let a1 of B8)if(a1.type==="tool-result")R0.delete(a1.toolCallId);if((v4.length>0&&O8.length===v4.length||R0.size>0)&&!await wd4({stopConditions:U,steps:N0})){k0.push(...await zz1({content:N0[N0.length-1].content,tools:H}));try{await l0({currentStep:n0+1,responseMessages:k0,usage:$4})}catch(a1){C0.enqueue({type:"error",error:a1}),L0.closeStream()}}else C0.enqueue({type:"finish",finishReason:ZJ,rawFinishReason:qY,totalUsage:$4}),L0.closeStream()}})))}await l0({currentStep:0,responseMessages:W1,usage:zW0()})}}).catch((p0)=>{L0.addStream(new ReadableStream({start(v0){v0.enqueue({type:"error",error:p0}),v0.close()}})),L0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((Q)=>Q[Q.length-1])}get content(){return this.finalStep.then((Q)=>Q.content)}get warnings(){return this.finalStep.then((Q)=>Q.warnings)}get providerMetadata(){return this.finalStep.then((Q)=>Q.providerMetadata)}get text(){return this.finalStep.then((Q)=>Q.text)}get reasoningText(){return this.finalStep.then((Q)=>Q.reasoningText)}get reasoning(){return this.finalStep.then((Q)=>Q.reasoning)}get sources(){return this.finalStep.then((Q)=>Q.sources)}get files(){return this.finalStep.then((Q)=>Q.files)}get toolCalls(){return this.finalStep.then((Q)=>Q.toolCalls)}get staticToolCalls(){return this.finalStep.then((Q)=>Q.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((Q)=>Q.dynamicToolCalls)}get toolResults(){return this.finalStep.then((Q)=>Q.toolResults)}get staticToolResults(){return this.finalStep.then((Q)=>Q.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((Q)=>Q.dynamicToolResults)}get usage(){return this.finalStep.then((Q)=>Q.usage)}get request(){return this.finalStep.then((Q)=>Q.request)}get response(){return this.finalStep.then((Q)=>Q.response)}get totalUsage(){return this.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){let[Q,X]=this.baseStream.tee();return this.baseStream=X,Q}get textStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({part:Q},X){if(Q.type==="text-delta")X.enqueue(Q.text)}})))}get fullStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({part:Q},X){X.enqueue(Q)}})))}async consumeStream(Q){var X;try{await Sd4({stream:this.fullStream,onError:Q==null?void 0:Q.onError})}catch(J){(X=Q==null?void 0:Q.onError)==null||X.call(Q,J)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:Q},X){if(Q!=null)X.enqueue(Q)}})))}get output(){return this.finalStep.then((Q)=>{var X;return((X=this.outputSpecification)!=null?X:MW0()).parseCompleteOutput({text:Q.text},{response:Q.response,usage:Q.usage,finishReason:Q.finishReason})})}toUIMessageStream({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y=!0,sendSources:W=!1,sendStart:$=!0,sendFinish:K=!0,onError:Z=SG}={}){let H=X!=null?Ad4({originalMessages:Q,responseMessageId:X}):void 0,F=(V)=>{var z;let U=(z=this.tools)==null?void 0:z[V.toolName];if(U==null)return V.dynamic;return(U==null?void 0:U.type)==="dynamic"?!0:void 0},q=this.fullStream.pipeThrough(new TransformStream({transform:async(V,z)=>{let U=G==null?void 0:G({part:V}),N=V.type;switch(N){case"text-start":{z.enqueue({type:"text-start",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"text-delta":{z.enqueue({type:"text-delta",id:V.id,delta:V.text,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"text-end":{z.enqueue({type:"text-end",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-start":{z.enqueue({type:"reasoning-start",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-delta":{if(Y)z.enqueue({type:"reasoning-delta",id:V.id,delta:V.text,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-end":{z.enqueue({type:"reasoning-end",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"file":{z.enqueue({type:"file",mediaType:V.file.mediaType,url:`data:${V.file.mediaType};base64,${V.file.base64}`});break}case"source":{if(W&&V.sourceType==="url")z.enqueue({type:"source-url",sourceId:V.id,url:V.url,title:V.title,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});if(W&&V.sourceType==="document")z.enqueue({type:"source-document",sourceId:V.id,mediaType:V.mediaType,title:V.title,filename:V.filename,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"tool-input-start":{let D=F(V);z.enqueue({type:"tool-input-start",toolCallId:V.id,toolName:V.toolName,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...D!=null?{dynamic:D}:{},...V.title!=null?{title:V.title}:{}});break}case"tool-input-delta":{z.enqueue({type:"tool-input-delta",toolCallId:V.id,inputTextDelta:V.delta});break}case"tool-call":{let D=F(V);if(V.invalid)z.enqueue({type:"tool-input-error",toolCallId:V.toolCallId,toolName:V.toolName,input:V.input,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{},...D!=null?{dynamic:D}:{},errorText:Z(V.error),...V.title!=null?{title:V.title}:{}});else z.enqueue({type:"tool-input-available",toolCallId:V.toolCallId,toolName:V.toolName,input:V.input,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{},...D!=null?{dynamic:D}:{},...V.title!=null?{title:V.title}:{}});break}case"tool-approval-request":{z.enqueue({type:"tool-approval-request",approvalId:V.approvalId,toolCallId:V.toolCall.toolCallId});break}case"tool-result":{let D=F(V);z.enqueue({type:"tool-output-available",toolCallId:V.toolCallId,output:V.output,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.preliminary!=null?{preliminary:V.preliminary}:{},...D!=null?{dynamic:D}:{}});break}case"tool-error":{let D=F(V);z.enqueue({type:"tool-output-error",toolCallId:V.toolCallId,errorText:Z(V.error),...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...D!=null?{dynamic:D}:{}});break}case"tool-output-denied":{z.enqueue({type:"tool-output-denied",toolCallId:V.toolCallId});break}case"error":{z.enqueue({type:"error",errorText:Z(V.error)});break}case"start-step":{z.enqueue({type:"start-step"});break}case"finish-step":{z.enqueue({type:"finish-step"});break}case"start":{if($)z.enqueue({type:"start",...U!=null?{messageMetadata:U}:{},...H!=null?{messageId:H}:{}});break}case"finish":{if(K)z.enqueue({type:"finish",finishReason:V.finishReason,...U!=null?{messageMetadata:U}:{}});break}case"abort":{z.enqueue(V);break}case"tool-input-end":break;case"raw":break;default:throw Error(`Unknown chunk type: ${N}`)}if(U!=null&&N!=="start"&&N!=="finish")z.enqueue({type:"message-metadata",messageMetadata:U})}}));return Kf(Cd4({stream:q,messageId:H!=null?H:X==null?void 0:X(),originalMessages:Q,onFinish:J,onError:Z}))}pipeUIMessageStreamToResponse(Q,{originalMessages:X,generateMessageId:J,onFinish:G,messageMetadata:Y,sendReasoning:W,sendSources:$,sendFinish:K,sendStart:Z,onError:H,...F}={}){Rd4({response:Q,stream:this.toUIMessageStream({originalMessages:X,generateMessageId:J,onFinish:G,messageMetadata:Y,sendReasoning:W,sendSources:$,sendFinish:K,sendStart:Z,onError:H}),...F})}pipeTextStreamToResponse(Q,X){Md4({response:Q,textStream:this.textStream,...X})}toUIMessageStreamResponse({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y,sendSources:W,sendFinish:$,sendStart:K,onError:Z,...H}={}){return Td4({stream:this.toUIMessageStream({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y,sendSources:W,sendFinish:$,sendStart:K,onError:Z}),...H})}toTextStreamResponse(Q){return Pd4({textStream:this.textStream,...Q})}},eo6,Xs6,Ys6,bd4="AI_NoSuchProviderError",xd4,gd4,ud4;var OU1=_(()=>{N6();N6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();VW0();N6();N6();N6();N6();x6();N6();h5();x6();N6();x6();N6();h5();h5();h5();h5();h5();VW0();x6();x6();N6();N6();N6();x6();N6();N6();N6();x6();N6();N6();h5();N6();N6();N6();N6();h5();N6();N6();WU1=y4(z1(),1),wW0=y4(z1(),1),um4=Object.defineProperty,Oz1=`vercel.ai.error.${Bz1}`,lm4=Symbol.for(Oz1),hG=class extends v1{constructor({parameter:Q,value:X,message:J}){super({name:Bz1,message:`Invalid argument for parameter ${Q}: ${J}`});this[Dz1]=!0,this.parameter=Q,this.value=X}static isInstance(Q){return v1.hasMarker(Q,Oz1)}};Dz1=lm4;pm4=`vercel.ai.error.${dm4}`,cm4=Symbol.for(pm4);nm4=cm4;wz1=`vercel.ai.error.${Lz1}`,im4=Symbol.for(wz1),rm4=class extends v1{constructor({approvalId:Q}){super({name:Lz1,message:`Tool approval response references unknown approvalId: "${Q}". No matching tool-approval-request found in message history.`});this[Pz1]=!0,this.approvalId=Q}static isInstance(Q){return v1.hasMarker(Q,wz1)}};Pz1=im4;Tz1=`vercel.ai.error.${Mz1}`,am4=Symbol.for(Tz1),EW0=class extends v1{constructor({toolInput:Q,toolName:X,cause:J,message:G=`Invalid input for tool ${X}: ${SG(J)}`}){super({name:Mz1,message:G,cause:J});this[Az1]=!0,this.toolInput=Q,this.toolName=X}static isInstance(Q){return v1.hasMarker(Q,Tz1)}};Az1=am4;jz1=`vercel.ai.error.${Ez1}`,om4=Symbol.for(jz1),Cz1=class extends v1{constructor({toolCallId:Q,approvalId:X}){super({name:Ez1,message:`Tool call "${Q}" not found for approval request "${X}".`});this[Iz1]=!0,this.toolCallId=Q,this.approvalId=X}static isInstance(Q){return v1.hasMarker(Q,jz1)}};Iz1=om4;tm4=`vercel.ai.error.${sm4}`,em4=Symbol.for(tm4);Ql4=em4;Sz1=`vercel.ai.error.${Rz1}`,Xl4=Symbol.for(Sz1),uZ=class extends v1{constructor({message:Q="No object generated.",cause:X,text:J,response:G,usage:Y,finishReason:W}){super({name:Rz1,message:Q,cause:X});this[vz1]=!0,this.text=J,this.response=G,this.usage=Y,this.finishReason=W}static isInstance(Q){return v1.hasMarker(Q,Sz1)}};vz1=Xl4;_z1=`vercel.ai.error.${kz1}`,Jl4=Symbol.for(_z1),Yl4=class extends v1{constructor({message:Q="No output generated.",cause:X}={}){super({name:kz1,message:Q,cause:X});this[yz1]=!0}static isInstance(Q){return v1.hasMarker(Q,_z1)}};yz1=Jl4;fz1=`vercel.ai.error.${hz1}`,Gl4=Symbol.for(fz1),DW0=class extends v1{constructor({toolName:Q,availableTools:X=void 0,message:J=`Model tried to call unavailable tool '${Q}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:hz1,message:J});this[bz1]=!0,this.toolName=Q,this.availableTools=X}static isInstance(Q){return v1.hasMarker(Q,fz1)}};bz1=Gl4;gz1=`vercel.ai.error.${xz1}`,Wl4=Symbol.for(gz1),$l4=class extends v1{constructor({cause:Q,originalError:X,message:J=`Error repairing tool call: ${SG(Q)}`}){super({name:xz1,message:J,cause:Q});this[uz1]=!0,this.originalError=X}static isInstance(Q){return v1.hasMarker(Q,gz1)}};uz1=Wl4;Kl4=class extends v1{constructor(Q){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${Q.version} for provider "${Q.provider}" and model "${Q.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=Q.version,this.provider=Q.provider,this.modelId=Q.modelId}},Hl4=`vercel.ai.error.${Zl4}`,Fl4=Symbol.for(Hl4);ql4=Fl4;lz1=`vercel.ai.error.${mz1}`,Vl4=Symbol.for(lz1),zl4=class extends v1{constructor({role:Q,message:X=`Invalid message role: '${Q}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:mz1,message:X});this[dz1]=!0,this.role=Q}static isInstance(Q){return v1.hasMarker(Q,lz1)}};dz1=Vl4;cz1=`vercel.ai.error.${pz1}`,Ul4=Symbol.for(cz1),Nl4=class extends v1{constructor({originalMessage:Q,message:X}){super({name:pz1,message:X});this[nz1]=!0,this.originalMessage=Q}static isInstance(Q){return v1.hasMarker(Q,cz1)}};nz1=Ul4;rz1=`vercel.ai.error.${iz1}`,Bl4=Symbol.for(rz1),Zz1=class extends v1{constructor({message:Q,reason:X,errors:J}){super({name:iz1,message:Q});this[az1]=!0,this.reason=X,this.errors=J,this.lastError=J[J.length-1]}static isInstance(Q){return v1.hasMarker(Q,rz1)}};az1=Bl4;Tl4=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}];QU1=g.union([g.string(),g.instanceof(Uint8Array),g.instanceof(ArrayBuffer),g.custom((Q)=>{var X,J;return(J=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Q))!=null?J:!1},{message:"Must be a Buffer"})]);u2=g.lazy(()=>g.union([g.null(),g.string(),g.number(),g.boolean(),g.record(g.string(),u2.optional()),g.array(u2)])),Q4=g.record(g.string(),g.record(g.string(),u2.optional())),JU1=g.object({type:g.literal("text"),text:g.string(),providerOptions:Q4.optional()}),gl4=g.object({type:g.literal("image"),image:g.union([QU1,g.instanceof(URL)]),mediaType:g.string().optional(),providerOptions:Q4.optional()}),YU1=g.object({type:g.literal("file"),data:g.union([QU1,g.instanceof(URL)]),filename:g.string().optional(),mediaType:g.string(),providerOptions:Q4.optional()}),ul4=g.object({type:g.literal("reasoning"),text:g.string(),providerOptions:Q4.optional()}),ml4=g.object({type:g.literal("tool-call"),toolCallId:g.string(),toolName:g.string(),input:g.unknown(),providerOptions:Q4.optional(),providerExecuted:g.boolean().optional()}),ll4=g.discriminatedUnion("type",[g.object({type:g.literal("text"),value:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("json"),value:u2,providerOptions:Q4.optional()}),g.object({type:g.literal("execution-denied"),reason:g.string().optional(),providerOptions:Q4.optional()}),g.object({type:g.literal("error-text"),value:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("error-json"),value:u2,providerOptions:Q4.optional()}),g.object({type:g.literal("content"),value:g.array(g.union([g.object({type:g.literal("text"),text:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("media"),data:g.string(),mediaType:g.string()}),g.object({type:g.literal("file-data"),data:g.string(),mediaType:g.string(),filename:g.string().optional(),providerOptions:Q4.optional()}),g.object({type:g.literal("file-url"),url:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("file-id"),fileId:g.union([g.string(),g.record(g.string(),g.string())]),providerOptions:Q4.optional()}),g.object({type:g.literal("image-data"),data:g.string(),mediaType:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("image-url"),url:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("image-file-id"),fileId:g.union([g.string(),g.record(g.string(),g.string())]),providerOptions:Q4.optional()}),g.object({type:g.literal("custom"),providerOptions:Q4.optional()})]))})]),GU1=g.object({type:g.literal("tool-result"),toolCallId:g.string(),toolName:g.string(),output:ll4,providerOptions:Q4.optional()}),dl4=g.object({type:g.literal("tool-approval-request"),approvalId:g.string(),toolCallId:g.string()}),pl4=g.object({type:g.literal("tool-approval-response"),approvalId:g.string(),approved:g.boolean(),reason:g.string().optional()}),cl4=g.object({role:g.literal("system"),content:g.string(),providerOptions:Q4.optional()}),nl4=g.object({role:g.literal("user"),content:g.union([g.string(),g.array(g.union([JU1,gl4,YU1]))]),providerOptions:Q4.optional()}),il4=g.object({role:g.literal("assistant"),content:g.union([g.string(),g.array(g.union([JU1,YU1,ul4,ml4,GU1,dl4]))]),providerOptions:Q4.optional()}),rl4=g.object({role:g.literal("tool"),content:g.array(g.union([GU1,pl4])),providerOptions:Q4.optional()}),al4=g.union([cl4,nl4,il4,rl4]);el4={startSpan(){return $f},startActiveSpan(Q,X,J,G){if(typeof X==="function")return X($f);if(typeof J==="function")return J($f);if(typeof G==="function")return G($f)}},$f={spanContext(){return Qd4},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Qd4={traceId:"",spanId:"",traceFlags:0};Fd4=class extends Hd4{constructor(Q){super(Q);this.type="file"}};Vd4={};mm4(Vd4,{array:()=>Nd4,choice:()=>Bd4,json:()=>Od4,object:()=>Ud4,text:()=>MW0});lo6=kG({prefix:"aitxt",size:24});qU1=class extends TransformStream{constructor(){super({transform(Q,X){X.enqueue(`data: ${JSON.stringify(Q)}
1150
+ `),{name:"GatewayAuthenticationError"})}function LW0({operationId:Q,telemetry:X}){return{"operation.name":`${Q}${(X==null?void 0:X.functionId)!=null?` ${X.functionId}`:""}`,"resource.name":X==null?void 0:X.functionId,"ai.operationId":Q,"ai.telemetry.functionId":X==null?void 0:X.functionId}}function tl4({model:Q,settings:X,telemetry:J,headers:G}){var Y;return{"ai.model.provider":Q.provider,"ai.model.id":Q.modelId,...Object.entries(X).reduce((W,[$,K])=>{return W[`ai.settings.${$}`]=K,W},{}),...Object.entries((Y=J==null?void 0:J.metadata)!=null?Y:{}).reduce((W,[$,K])=>{return W[`ai.telemetry.metadata.${$}`]=K,W},{}),...Object.entries(G!=null?G:{}).reduce((W,[$,K])=>{if(K!==void 0)W[`ai.request.headers.${$}`]=K;return W},{})}}function Xd4({isEnabled:Q=!1,tracer:X}={}){if(!Q)return el4;if(X)return X;return WU1.trace.getTracer("ai")}async function PW0({name:Q,tracer:X,attributes:J,fn:G,endWhenDone:Y=!0}){return X.startActiveSpan(Q,{attributes:await J},async(W)=>{try{let $=await G(W);if(Y)W.end();return $}catch($){try{$U1(W,$)}finally{W.end()}throw $}})}function $U1(Q,X){if(X instanceof Error)Q.recordException({name:X.name,message:X.message,stack:X.stack}),Q.setStatus({code:wW0.SpanStatusCode.ERROR,message:X.message});else Q.setStatus({code:wW0.SpanStatusCode.ERROR})}async function iN({telemetry:Q,attributes:X}){if((Q==null?void 0:Q.isEnabled)!==!0)return{};let J={};for(let[G,Y]of Object.entries(X)){if(Y==null)continue;if(typeof Y==="object"&&"input"in Y&&typeof Y.input==="function"){if((Q==null?void 0:Q.recordInputs)===!1)continue;let W=await Y.input();if(W!=null)J[G]=W;continue}if(typeof Y==="object"&&"output"in Y&&typeof Y.output==="function"){if((Q==null?void 0:Q.recordOutputs)===!1)continue;let W=await Y.output();if(W!=null)J[G]=W;continue}J[G]=Y}return J}function Jd4(Q){return JSON.stringify(Q.map((X)=>({...X,content:typeof X.content==="string"?X.content:X.content.map((J)=>J.type==="file"?{...J,data:J.data instanceof Uint8Array?vl4(J.data):J.data}:J)})))}function Yd4(Q){return{inputTokens:Q.inputTokens.total,inputTokenDetails:{noCacheTokens:Q.inputTokens.noCache,cacheReadTokens:Q.inputTokens.cacheRead,cacheWriteTokens:Q.inputTokens.cacheWrite},outputTokens:Q.outputTokens.total,outputTokenDetails:{textTokens:Q.outputTokens.text,reasoningTokens:Q.outputTokens.reasoning},totalTokens:H7(Q.inputTokens.total,Q.outputTokens.total),raw:Q.raw,reasoningTokens:Q.outputTokens.reasoning,cachedInputTokens:Q.inputTokens.cacheRead}}function zW0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function Gd4(Q,X){var J,G,Y,W,$,K,Z,H,F,q;return{inputTokens:H7(Q.inputTokens,X.inputTokens),inputTokenDetails:{noCacheTokens:H7((J=Q.inputTokenDetails)==null?void 0:J.noCacheTokens,(G=X.inputTokenDetails)==null?void 0:G.noCacheTokens),cacheReadTokens:H7((Y=Q.inputTokenDetails)==null?void 0:Y.cacheReadTokens,(W=X.inputTokenDetails)==null?void 0:W.cacheReadTokens),cacheWriteTokens:H7(($=Q.inputTokenDetails)==null?void 0:$.cacheWriteTokens,(K=X.inputTokenDetails)==null?void 0:K.cacheWriteTokens)},outputTokens:H7(Q.outputTokens,X.outputTokens),outputTokenDetails:{textTokens:H7((Z=Q.outputTokenDetails)==null?void 0:Z.textTokens,(H=X.outputTokenDetails)==null?void 0:H.textTokens),reasoningTokens:H7((F=Q.outputTokenDetails)==null?void 0:F.reasoningTokens,(q=X.outputTokenDetails)==null?void 0:q.reasoningTokens)},totalTokens:H7(Q.totalTokens,X.totalTokens),reasoningTokens:H7(Q.reasoningTokens,X.reasoningTokens),cachedInputTokens:H7(Q.cachedInputTokens,X.cachedInputTokens)}}function H7(Q,X){return Q==null&&X==null?void 0:(Q!=null?Q:0)+(X!=null?X:0)}function jW0(Q,X){if(Q===void 0&&X===void 0)return;if(Q===void 0)return X;if(X===void 0)return Q;let J={...Q};for(let G in X)if(Object.prototype.hasOwnProperty.call(X,G)){let Y=X[G];if(Y===void 0)continue;let W=G in Q?Q[G]:void 0,$=Y!==null&&typeof Y==="object"&&!Array.isArray(Y)&&!(Y instanceof Date)&&!(Y instanceof RegExp),K=W!==null&&W!==void 0&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp);if($&&K)J[G]=jW0(W,Y);else J[G]=Y}return J}function Wd4({error:Q,exponentialBackoffDelay:X}){let J=Q.responseHeaders;if(!J)return X;let G,Y=J["retry-after-ms"];if(Y){let $=parseFloat(Y);if(!Number.isNaN($))G=$}let W=J["retry-after"];if(W&&G===void 0){let $=parseFloat(W);if(!Number.isNaN($))G=$*1000;else G=Date.parse(W)-Date.now()}if(G!=null&&!Number.isNaN(G)&&0<=G&&(G<60000||G<X))return G;return X}async function KU1(Q,{maxRetries:X,delayInMs:J,backoffFactor:G,abortSignal:Y},W=[]){try{return await Q()}catch($){if(B$($))throw $;if(X===0)throw $;let K=y2($),Z=[...W,$],H=Z.length;if(H>X)throw new Zz1({message:`Failed after ${H} attempts. Last error: ${K}`,reason:"maxRetriesExceeded",errors:Z});if($ instanceof Error&&O9.isInstance($)&&$.isRetryable===!0&&H<=X)return await lq1(Wd4({error:$,exponentialBackoffDelay:J}),{abortSignal:Y}),KU1(Q,{maxRetries:X,delayInMs:G*J,backoffFactor:G,abortSignal:Y},Z);if(H===1)throw $;throw new Zz1({message:`Failed after ${H} attempts with non-retryable error: '${K}'`,reason:"errorNotRetryable",errors:Z})}}function Kd4({maxRetries:Q,abortSignal:X}){if(Q!=null){if(!Number.isInteger(Q))throw new hG({parameter:"maxRetries",value:Q,message:"maxRetries must be an integer"});if(Q<0)throw new hG({parameter:"maxRetries",value:Q,message:"maxRetries must be >= 0"})}let J=Q!=null?Q:2;return{maxRetries:J,retry:$d4({maxRetries:J,abortSignal:X})}}function Zd4({messages:Q}){let X=Q.at(-1);if((X==null?void 0:X.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let J={};for(let Z of Q)if(Z.role==="assistant"&&typeof Z.content!=="string"){let H=Z.content;for(let F of H)if(F.type==="tool-call")J[F.toolCallId]=F}let G={};for(let Z of Q)if(Z.role==="assistant"&&typeof Z.content!=="string"){let H=Z.content;for(let F of H)if(F.type==="tool-approval-request")G[F.approvalId]=F}let Y={};for(let Z of X.content)if(Z.type==="tool-result")Y[Z.toolCallId]=Z;let W=[],$=[],K=X.content.filter((Z)=>Z.type==="tool-approval-response");for(let Z of K){let H=G[Z.approvalId];if(H==null)throw new rm4({approvalId:Z.approvalId});if(Y[H.toolCallId]!=null)continue;let F=J[H.toolCallId];if(F==null)throw new Cz1({toolCallId:H.toolCallId,approvalId:H.approvalId});let q={approvalRequest:H,approvalResponse:Z,toolCall:F};if(Z.approved)W.push(q);else $.push(q)}return{approvedToolApprovals:W,deniedToolApprovals:$}}async function ZU1({toolCall:Q,tools:X,tracer:J,telemetry:G,messages:Y,abortSignal:W,experimental_context:$,onPreliminaryToolResult:K}){let{toolName:Z,toolCallId:H,input:F}=Q,q=X==null?void 0:X[Z];if((q==null?void 0:q.execute)==null)return;return PW0({name:"ai.toolCall",attributes:iN({telemetry:G,attributes:{...LW0({operationId:"ai.toolCall",telemetry:G}),"ai.toolCall.name":Z,"ai.toolCall.id":H,"ai.toolCall.args":{output:()=>JSON.stringify(F)}}}),tracer:J,fn:async(V)=>{let z;try{let U=YV1({execute:q.execute.bind(q),input:F,options:{toolCallId:H,messages:Y,abortSignal:W,experimental_context:$}});for await(let N of U)if(N.type==="preliminary")K==null||K({...Q,type:"tool-result",output:N.output,preliminary:!0});else z=N.output}catch(U){return $U1(V,U),{type:"tool-error",toolCallId:H,toolName:Z,input:F,error:U,dynamic:q.type==="dynamic",...Q.providerMetadata!=null?{providerMetadata:Q.providerMetadata}:{}}}try{V.setAttributes(await iN({telemetry:G,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(z)}}}))}catch(U){}return{type:"tool-result",toolCallId:H,toolName:Z,input:F,output:z,dynamic:q.type==="dynamic",...Q.providerMetadata!=null?{providerMetadata:Q.providerMetadata}:{}}}})}async function qd4({tool:Q,toolCall:X,messages:J,experimental_context:G}){if(Q.needsApproval==null)return!1;if(typeof Q.needsApproval==="boolean")return Q.needsApproval;return await Q.needsApproval(X.input,{toolCallId:X.toolCallId,messages:J,experimental_context:G})}function zd4(Q){let X=["ROOT"],J=-1,G=null;function Y(Z,H,F){switch(Z){case'"':{J=H,X.pop(),X.push(F),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{J=H,G=H,X.pop(),X.push(F),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(F),X.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=H,X.pop(),X.push(F),X.push("INSIDE_NUMBER");break}case"{":{J=H,X.pop(),X.push(F),X.push("INSIDE_OBJECT_START");break}case"[":{J=H,X.pop(),X.push(F),X.push("INSIDE_ARRAY_START");break}}}function W(Z,H){switch(Z){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{J=H,X.pop();break}}}function $(Z,H){switch(Z){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=H,X.pop();break}}}for(let Z=0;Z<Q.length;Z++){let H=Q[Z];switch(X[X.length-1]){case"ROOT":Y(H,Z,"FINISH");break;case"INSIDE_OBJECT_START":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{J=Z,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(H){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(H){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{Y(H,Z,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{W(H,Z);break}case"INSIDE_STRING":{switch(H){case'"':{X.pop(),J=Z;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:J=Z}break}case"INSIDE_ARRAY_START":{switch(H){case"]":{J=Z,X.pop();break}default:{J=Z,Y(H,Z,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=Z,X.pop();break}default:{J=Z;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{Y(H,Z,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),J=Z;break}case"INSIDE_NUMBER":{switch(H){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=Z;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let q=Q.substring(G,Z+1);if(!"false".startsWith(q)&&!"true".startsWith(q)&&!"null".startsWith(q)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,Z);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")$(H,Z)}else J=Z;break}}}let K=Q.slice(0,J+1);for(let Z=X.length-1;Z>=0;Z--)switch(X[Z]){case"INSIDE_STRING":{K+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{K+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{K+="]";break}case"INSIDE_LITERAL":{let F=Q.substring(G,Q.length);if("true".startsWith(F))K+="true".slice(F.length);else if("false".startsWith(F))K+="false".slice(F.length);else if("null".startsWith(F))K+="null".slice(F.length)}}return K}async function m2(Q){if(Q===void 0)return{value:void 0,state:"undefined-input"};let X=await TX({text:Q});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await TX({text:zd4(Q)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function Dd4({toolCall:Q,tools:X,repairToolCall:J,system:G,messages:Y}){var W;try{if(X==null){if(Q.providerExecuted&&Q.dynamic)return await HU1(Q);throw new DW0({toolName:Q.toolName})}try{return await Vz1({toolCall:Q,tools:X})}catch($){if(J==null||!(DW0.isInstance($)||EW0.isInstance($)))throw $;let K=null;try{K=await J({toolCall:Q,tools:X,inputSchema:async({toolName:Z})=>{let{inputSchema:H}=X[Z];return await _G(H).jsonSchema},system:G,messages:Y,error:$})}catch(Z){throw new $l4({cause:Z,originalError:$})}if(K==null)throw $;return await Vz1({toolCall:K,tools:X})}}catch($){let K=await TX({text:Q.input}),Z=K.success?K.value:Q.input;return{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:Z,dynamic:!0,invalid:!0,error:$,title:(W=X==null?void 0:X[Q.toolName])==null?void 0:W.title,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata}}}async function HU1(Q){let X=Q.input.trim()===""?{success:!0,value:{}}:await TX({text:Q.input});if(X.success===!1)throw new EW0({toolName:Q.toolName,toolInput:Q.input,cause:X.error});return{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Q.providerMetadata}}async function Vz1({toolCall:Q,tools:X}){let J=Q.toolName,G=X[J];if(G==null){if(Q.providerExecuted&&Q.dynamic)return await HU1(Q);throw new DW0({toolName:Q.toolName,availableTools:Object.keys(X)})}let Y=_G(G.inputSchema),W=Q.input.trim()===""?await dQ({value:{},schema:Y}):await TX({text:Q.input,schema:Y});if(W.success===!1)throw new EW0({toolName:J,toolInput:Q.input,cause:W.error});return G.type==="dynamic"?{type:"tool-call",toolCallId:Q.toolCallId,toolName:Q.toolName,input:W.value,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata,dynamic:!0,title:G.title}:{type:"tool-call",toolCallId:Q.toolCallId,toolName:J,input:W.value,providerExecuted:Q.providerExecuted,providerMetadata:Q.providerMetadata,title:G.title}}function IW0(Q){return({steps:X})=>X.length===Q}async function wd4({stopConditions:Q,steps:X}){return(await Promise.all(Q.map((J)=>J({steps:X})))).some((J)=>J)}async function zz1({content:Q,tools:X}){let J=[],G=[];for(let W of Q){if(W.type==="source")continue;if((W.type==="tool-result"||W.type==="tool-error")&&!W.providerExecuted)continue;if(W.type==="text"&&W.text.length===0)continue;switch(W.type){case"text":G.push({type:"text",text:W.text,providerOptions:W.providerMetadata});break;case"reasoning":G.push({type:"reasoning",text:W.text,providerOptions:W.providerMetadata});break;case"file":G.push({type:"file",data:W.file.base64,mediaType:W.file.mediaType,providerOptions:W.providerMetadata});break;case"tool-call":G.push({type:"tool-call",toolCallId:W.toolCallId,toolName:W.toolName,input:W.input,providerExecuted:W.providerExecuted,providerOptions:W.providerMetadata});break;case"tool-result":{let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.output,errorMode:"none"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,providerOptions:W.providerMetadata});break}case"tool-error":{let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.error,errorMode:"json"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,providerOptions:W.providerMetadata});break}case"tool-approval-request":G.push({type:"tool-approval-request",approvalId:W.approvalId,toolCallId:W.toolCall.toolCallId});break}}if(G.length>0)J.push({role:"assistant",content:G});let Y=[];for(let W of Q){if(!(W.type==="tool-result"||W.type==="tool-error")||W.providerExecuted)continue;let $=await rN({toolCallId:W.toolCallId,input:W.input,tool:X==null?void 0:X[W.toolName],output:W.type==="tool-result"?W.output:W.error,errorMode:W.type==="tool-error"?"text":"none"});Y.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:$,...W.providerMetadata!=null?{providerOptions:W.providerMetadata}:{}})}if(Y.length>0)J.push({role:"tool",content:Y});return J}function Hf(Q,X){let J=new Headers(Q!=null?Q:{});for(let[G,Y]of Object.entries(X))if(!J.has(G))J.set(G,Y);return J}function Pd4({status:Q,statusText:X,headers:J,textStream:G}){return new Response(G.pipeThrough(new TextEncoderStream),{status:Q!=null?Q:200,statusText:X,headers:Hf(J,{"content-type":"text/plain; charset=utf-8"})})}function FU1({response:Q,status:X,statusText:J,headers:G,stream:Y}){let W=X!=null?X:200;if(J!==void 0)Q.writeHead(W,J,G);else Q.writeHead(W,G);let $=Y.getReader();(async()=>{try{while(!0){let{done:Z,value:H}=await $.read();if(Z)break;if(!Q.write(H))await new Promise((q)=>{Q.once("drain",q)})}}catch(Z){throw Z}finally{Q.end()}})()}function Md4({response:Q,status:X,statusText:J,headers:G,textStream:Y}){FU1({response:Q,status:X,statusText:J,headers:Object.fromEntries(Hf(G,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:Y.pipeThrough(new TextEncoderStream)})}function Td4({status:Q,statusText:X,headers:J,stream:G,consumeSseStream:Y}){let W=G.pipeThrough(new qU1);if(Y){let[$,K]=W.tee();W=$,Y({stream:K})}return new Response(W.pipeThrough(new TextEncoderStream),{status:Q,statusText:X,headers:Hf(J,VU1)})}function Ad4({originalMessages:Q,responseMessageId:X}){if(Q==null)return;let J=Q[Q.length-1];return(J==null?void 0:J.role)==="assistant"?J.id:typeof X==="function"?X():X}function Ed4(Q){return Q.type.startsWith("data-")}function UW0(Q){return Q.type.startsWith("data-")}function NW0(Q){return Q.type==="text"}function BW0(Q){return Q.type==="file"}function Uz1(Q){return Q.type==="reasoning"}function TW0(Q){return Q.type.startsWith("tool-")}function zU1(Q){return Q.type==="dynamic-tool"}function g2(Q){return TW0(Q)||zU1(Q)}function AW0(Q){return Q.type.split("-").slice(1).join("-")}function OW0(Q){return zU1(Q)?Q.toolName:AW0(Q)}function jd4({lastMessage:Q,messageId:X}){return{message:(Q==null?void 0:Q.role)==="assistant"?Q:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Id4({stream:Q,messageMetadataSchema:X,dataPartSchemas:J,runUpdateMessageJob:G,onError:Y,onToolCall:W,onData:$}){return Q.pipeThrough(new TransformStream({async transform(K,Z){await G(async({state:H,write:F})=>{var q,V,z,U;function N(M){let A=H.message.parts.filter(g2).find((E)=>E.toolCallId===M);if(A==null)throw Error(`no tool invocation found for tool call ${M}`);return A}function D(M){var T;let A=H.message.parts.find((v)=>TW0(v)&&v.toolCallId===M.toolCallId),E=M,C=A;if(A!=null){if(A.state=M.state,C.input=E.input,C.output=E.output,C.errorText=E.errorText,C.rawInput=E.rawInput,C.preliminary=E.preliminary,M.title!==void 0)C.title=M.title;if(C.providerExecuted=(T=E.providerExecuted)!=null?T:A.providerExecuted,E.providerMetadata!=null&&A.state==="input-available")A.callProviderMetadata=E.providerMetadata}else H.message.parts.push({type:`tool-${M.toolName}`,toolCallId:M.toolCallId,state:M.state,title:M.title,input:E.input,output:E.output,rawInput:E.rawInput,errorText:E.errorText,providerExecuted:E.providerExecuted,preliminary:E.preliminary,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}function P(M){var T,A;let E=H.message.parts.find((k)=>k.type==="dynamic-tool"&&k.toolCallId===M.toolCallId),C=M,v=E;if(E!=null){if(E.state=M.state,v.toolName=M.toolName,v.input=C.input,v.output=C.output,v.errorText=C.errorText,v.rawInput=(T=C.rawInput)!=null?T:v.rawInput,v.preliminary=C.preliminary,M.title!==void 0)v.title=M.title;if(v.providerExecuted=(A=C.providerExecuted)!=null?A:E.providerExecuted,C.providerMetadata!=null&&E.state==="input-available")E.callProviderMetadata=C.providerMetadata}else H.message.parts.push({type:"dynamic-tool",toolName:M.toolName,toolCallId:M.toolCallId,state:M.state,input:C.input,output:C.output,errorText:C.errorText,preliminary:C.preliminary,providerExecuted:C.providerExecuted,title:M.title,...C.providerMetadata!=null?{callProviderMetadata:C.providerMetadata}:{}})}async function j(M){if(M!=null){let T=H.message.metadata!=null?jW0(H.message.metadata,M):M;if(X!=null)await f2({value:T,schema:X});H.message.metadata=T}}switch(K.type){case"text-start":{let M={type:"text",text:"",providerMetadata:K.providerMetadata,state:"streaming"};H.activeTextParts[K.id]=M,H.message.parts.push(M),F();break}case"text-delta":{let M=H.activeTextParts[K.id];M.text+=K.delta,M.providerMetadata=(q=K.providerMetadata)!=null?q:M.providerMetadata,F();break}case"text-end":{let M=H.activeTextParts[K.id];M.state="done",M.providerMetadata=(V=K.providerMetadata)!=null?V:M.providerMetadata,delete H.activeTextParts[K.id],F();break}case"reasoning-start":{let M={type:"reasoning",text:"",providerMetadata:K.providerMetadata,state:"streaming"};H.activeReasoningParts[K.id]=M,H.message.parts.push(M),F();break}case"reasoning-delta":{let M=H.activeReasoningParts[K.id];M.text+=K.delta,M.providerMetadata=(z=K.providerMetadata)!=null?z:M.providerMetadata,F();break}case"reasoning-end":{let M=H.activeReasoningParts[K.id];M.providerMetadata=(U=K.providerMetadata)!=null?U:M.providerMetadata,M.state="done",delete H.activeReasoningParts[K.id],F();break}case"file":{H.message.parts.push({type:"file",mediaType:K.mediaType,url:K.url}),F();break}case"source-url":{H.message.parts.push({type:"source-url",sourceId:K.sourceId,url:K.url,title:K.title,providerMetadata:K.providerMetadata}),F();break}case"source-document":{H.message.parts.push({type:"source-document",sourceId:K.sourceId,mediaType:K.mediaType,title:K.title,filename:K.filename,providerMetadata:K.providerMetadata}),F();break}case"tool-input-start":{let M=H.message.parts.filter(TW0);if(H.partialToolCalls[K.toolCallId]={text:"",toolName:K.toolName,index:M.length,dynamic:K.dynamic,title:K.title},K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-streaming",input:void 0,providerExecuted:K.providerExecuted,title:K.title});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-streaming",input:void 0,providerExecuted:K.providerExecuted,title:K.title});F();break}case"tool-input-delta":{let M=H.partialToolCalls[K.toolCallId];M.text+=K.inputTextDelta;let{value:T}=await m2(M.text);if(M.dynamic)P({toolCallId:K.toolCallId,toolName:M.toolName,state:"input-streaming",input:T,title:M.title});else D({toolCallId:K.toolCallId,toolName:M.toolName,state:"input-streaming",input:T,title:M.title});F();break}case"tool-input-available":{if(K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-available",input:K.input,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata,title:K.title});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"input-available",input:K.input,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata,title:K.title});if(F(),W&&!K.providerExecuted)await W({toolCall:K});break}case"tool-input-error":{if(K.dynamic)P({toolCallId:K.toolCallId,toolName:K.toolName,state:"output-error",input:K.input,errorText:K.errorText,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata});else D({toolCallId:K.toolCallId,toolName:K.toolName,state:"output-error",input:void 0,rawInput:K.input,errorText:K.errorText,providerExecuted:K.providerExecuted,providerMetadata:K.providerMetadata});F();break}case"tool-approval-request":{let M=N(K.toolCallId);M.state="approval-requested",M.approval={id:K.approvalId},F();break}case"tool-output-denied":{let M=N(K.toolCallId);M.state="output-denied",F();break}case"tool-output-available":{let M=N(K.toolCallId);if(M.type==="dynamic-tool")P({toolCallId:K.toolCallId,toolName:M.toolName,state:"output-available",input:M.input,output:K.output,preliminary:K.preliminary,providerExecuted:K.providerExecuted,title:M.title});else D({toolCallId:K.toolCallId,toolName:AW0(M),state:"output-available",input:M.input,output:K.output,providerExecuted:K.providerExecuted,preliminary:K.preliminary,title:M.title});F();break}case"tool-output-error":{let M=N(K.toolCallId);if(M.type==="dynamic-tool")P({toolCallId:K.toolCallId,toolName:M.toolName,state:"output-error",input:M.input,errorText:K.errorText,providerExecuted:K.providerExecuted,title:M.title});else D({toolCallId:K.toolCallId,toolName:AW0(M),state:"output-error",input:M.input,rawInput:M.rawInput,errorText:K.errorText,providerExecuted:K.providerExecuted,title:M.title});F();break}case"start-step":{H.message.parts.push({type:"step-start"});break}case"finish-step":{H.activeTextParts={},H.activeReasoningParts={};break}case"start":{if(K.messageId!=null)H.message.id=K.messageId;if(await j(K.messageMetadata),K.messageId!=null||K.messageMetadata!=null)F();break}case"finish":{if(K.finishReason!=null)H.finishReason=K.finishReason;if(await j(K.messageMetadata),K.messageMetadata!=null)F();break}case"message-metadata":{if(await j(K.messageMetadata),K.messageMetadata!=null)F();break}case"error":{Y==null||Y(Error(K.errorText));break}default:if(Ed4(K)){if((J==null?void 0:J[K.type])!=null)await f2({value:K.data,schema:J[K.type]});let M=K;if(M.transient){$==null||$(M);break}let T=M.id!=null?H.message.parts.find((A)=>M.type===A.type&&M.id===A.id):void 0;if(T!=null)T.data=M.data;else H.message.parts.push(M);$==null||$(M),F()}}Z.enqueue(K)})}}))}function Cd4({messageId:Q,originalMessages:X=[],onFinish:J,onError:G,stream:Y}){let W=X==null?void 0:X[X.length-1];if((W==null?void 0:W.role)!=="assistant")W=void 0;else Q=W.id;let $=!1,K=Y.pipeThrough(new TransformStream({transform(V,z){if(V.type==="start"){let U=V;if(U.messageId==null&&Q!=null)U.messageId=Q}if(V.type==="abort")$=!0;z.enqueue(V)}}));if(J==null)return K;let Z=jd4({lastMessage:W?structuredClone(W):void 0,messageId:Q!=null?Q:""}),H=async(V)=>{await V({state:Z,write:()=>{}})},F=!1,q=async()=>{if(F||!J)return;F=!0;let V=Z.message.id===(W==null?void 0:W.id);await J({isAborted:$,isContinuation:V,responseMessage:Z.message,messages:[...V?X.slice(0,-1):X,Z.message],finishReason:Z.finishReason})};return Id4({stream:K,runUpdateMessageJob:H,onError:G}).pipeThrough(new TransformStream({transform(V,z){z.enqueue(V)},async cancel(){await q()},async flush(){await q()}}))}function Rd4({response:Q,status:X,statusText:J,headers:G,stream:Y,consumeSseStream:W}){let $=Y.pipeThrough(new qU1);if(W){let[K,Z]=$.tee();$=K,W({stream:Z})}FU1({response:Q,status:X,statusText:J,headers:Object.fromEntries(Hf(G,VU1).entries()),stream:$.pipeThrough(new TextEncoderStream)})}function Kf(Q){let X=Q.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let J=this.getReader(),G=!1;async function Y(W){var $;G=!0;try{if(W)await(($=J.cancel)==null?void 0:$.call(J))}finally{try{J.releaseLock()}catch(K){}}}return{async next(){if(G)return{done:!0,value:void 0};let{done:W,value:$}=await J.read();if(W)return await Y(!0),{done:!0,value:void 0};return{done:!1,value:$}},async return(){return await Y(!0),{done:!0,value:void 0}},async throw(W){throw await Y(!0),W}}},X}async function Sd4({stream:Q,onError:X}){let J=Q.getReader();try{while(!0){let{done:G}=await J.read();if(G)break}}catch(G){X==null||X(G)}finally{J.releaseLock()}}function Nz1(){let Q,X;return{promise:new Promise((G,Y)=>{Q=G,X=Y}),resolve:Q,reject:X}}function vd4(){let Q=[],X=null,J=!1,G=Nz1(),Y=()=>{J=!0,G.resolve(),Q.forEach(($)=>$.cancel()),Q=[],X==null||X.close()},W=async()=>{if(J&&Q.length===0){X==null||X.close();return}if(Q.length===0)return G=Nz1(),await G.promise,W();try{let{value:$,done:K}=await Q[0].read();if(K)if(Q.shift(),Q.length===0&&J)X==null||X.close();else await W();else X==null||X.enqueue($)}catch($){X==null||X.error($),Q.shift(),Y()}};return{stream:new ReadableStream({start($){X=$},pull:W,async cancel(){for(let $ of Q)await $.cancel();Q=[],J=!0}}),addStream:($)=>{if(J)throw Error("Cannot add inner stream: outer stream is closed");Q.push($.getReader()),G.resolve()},close:()=>{if(J=!0,G.resolve(),Q.length===0)X==null||X.close()},terminate:Y}}function kd4(){var Q,X;return(X=(Q=globalThis==null?void 0:globalThis.performance)==null?void 0:Q.now())!=null?X:Date.now()}function _d4({tools:Q,generatorStream:X,tracer:J,telemetry:G,system:Y,messages:W,abortSignal:$,repairToolCall:K,experimental_context:Z,generateId:H}){let F=null,q=new ReadableStream({start(M){F=M}}),V=new Set,z=new Map,U=new Map,N=!1,D=void 0;function P(){if(N&&V.size===0){if(D!=null)F.enqueue(D);F.close()}}let j=new TransformStream({async transform(M,T){let A=M.type;switch(A){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{T.enqueue(M);break}case"file":{T.enqueue({type:"file",file:new Fd4({data:M.data,mediaType:M.mediaType})});break}case"finish":{D={type:"finish",finishReason:M.finishReason.unified,rawFinishReason:M.finishReason.raw,usage:Yd4(M.usage),providerMetadata:M.providerMetadata};break}case"tool-approval-request":{let E=U.get(M.toolCallId);if(E==null){F.enqueue({type:"error",error:new Cz1({toolCallId:M.toolCallId,approvalId:M.approvalId})});break}T.enqueue({type:"tool-approval-request",approvalId:M.approvalId,toolCall:E});break}case"tool-call":{try{let E=await Dd4({toolCall:M,tools:Q,repairToolCall:K,system:Y,messages:W});if(U.set(E.toolCallId,E),T.enqueue(E),E.invalid){F.enqueue({type:"tool-error",toolCallId:E.toolCallId,toolName:E.toolName,input:E.input,error:y2(E.error),dynamic:!0,title:E.title});break}let C=Q==null?void 0:Q[E.toolName];if(C==null)break;if(C.onInputAvailable!=null)await C.onInputAvailable({input:E.input,toolCallId:E.toolCallId,messages:W,abortSignal:$,experimental_context:Z});if(await qd4({tool:C,toolCall:E,messages:W,experimental_context:Z})){F.enqueue({type:"tool-approval-request",approvalId:H(),toolCall:E});break}if(z.set(E.toolCallId,E.input),C.execute!=null&&E.providerExecuted!==!0){let v=H();V.add(v),ZU1({toolCall:E,tools:Q,tracer:J,telemetry:G,messages:W,abortSignal:$,experimental_context:Z,onPreliminaryToolResult:(k)=>{F.enqueue(k)}}).then((k)=>{F.enqueue(k),V.delete(v),P()})}}catch(E){F.enqueue({type:"error",error:E})}break}case"tool-result":{let E=M.toolName;if(M.isError)F.enqueue({type:"tool-error",toolCallId:M.toolCallId,toolName:E,input:z.get(M.toolCallId),providerExecuted:!0,error:M.result,dynamic:M.dynamic});else T.enqueue({type:"tool-result",toolCallId:M.toolCallId,toolName:E,input:z.get(M.toolCallId),output:M.result,providerExecuted:!0,dynamic:M.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){N=!0,P()}});return new ReadableStream({async start(M){return Promise.all([X.pipeThrough(j).pipeTo(new WritableStream({write(T){M.enqueue(T)},close(){}})),q.pipeTo(new WritableStream({write(T){M.enqueue(T)},close(){M.close()}}))])}})}function UU1({model:Q,tools:X,toolChoice:J,system:G,prompt:Y,messages:W,maxRetries:$,abortSignal:K,headers:Z,stopWhen:H=IW0(1),experimental_output:F,output:q=F,experimental_telemetry:V,prepareStep:z,providerOptions:U,experimental_activeTools:N,activeTools:D=N,experimental_repairToolCall:P,experimental_transform:j,experimental_download:M,includeRawChunks:T=!1,onChunk:A,onError:E=({error:u})=>{console.error(u)},onFinish:C,onAbort:v,onStepFinish:k,experimental_context:y,_internal:{now:f=kd4,generateId:l=yd4,currentDate:x=()=>new Date}={},...S}){return new fd4({model:ez1(Q),telemetry:V,headers:Z,settings:S,maxRetries:$,abortSignal:K,system:G,prompt:Y,messages:W,tools:X,toolChoice:J,transforms:Zf(j),activeTools:D,repairToolCall:P,stopConditions:Zf(H),output:q,providerOptions:U,prepareStep:z,includeRawChunks:T,onChunk:A,onError:E,onFinish:C,onAbort:v,onStepFinish:k,now:f,currentDate:x,generateId:l,experimental_context:y,download:M})}function hd4(Q){let X=void 0,J="",G="",Y=void 0,W="";function $({controller:K,partialOutput:Z=void 0}){K.enqueue({part:{type:"text-delta",id:X,text:G,providerMetadata:Y},partialOutput:Z}),G=""}return new TransformStream({async transform(K,Z){var H;if(K.type==="finish-step"&&G.length>0)$({controller:Z});if(K.type!=="text-delta"&&K.type!=="text-start"&&K.type!=="text-end"){Z.enqueue({part:K,partialOutput:void 0});return}if(X==null)X=K.id;else if(K.id!==X){Z.enqueue({part:K,partialOutput:void 0});return}if(K.type==="text-start"){Z.enqueue({part:K,partialOutput:void 0});return}if(K.type==="text-end"){if(G.length>0)$({controller:Z});Z.enqueue({part:K,partialOutput:void 0});return}J+=K.text,G+=K.text,Y=(H=K.providerMetadata)!=null?H:Y;let F=await Q.parsePartialOutput({text:J});if(F!==void 0){let q=JSON.stringify(F.partial);if(q!==W)$({controller:Z,partialOutput:F.partial}),W=q}}})}async function NU1(Q,X){let J=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Q=Q.map((G)=>({...G,parts:G.parts.filter((Y)=>!g2(Y)||Y.state!=="input-streaming"&&Y.state!=="input-available")}));for(let G of Q)switch(G.role){case"system":{let Y=G.parts.filter(($)=>$.type==="text"),W=Y.reduce(($,K)=>{if(K.providerMetadata!=null)return{...$,...K.providerMetadata};return $},{});J.push({role:"system",content:Y.map(($)=>$.text).join(""),...Object.keys(W).length>0?{providerOptions:W}:{}});break}case"user":{J.push({role:"user",content:G.parts.map((Y)=>{var W;if(NW0(Y))return{type:"text",text:Y.text,...Y.providerMetadata!=null?{providerOptions:Y.providerMetadata}:{}};if(BW0(Y))return{type:"file",mediaType:Y.mediaType,filename:Y.filename,data:Y.url,...Y.providerMetadata!=null?{providerOptions:Y.providerMetadata}:{}};if(UW0(Y))return(W=X==null?void 0:X.convertDataPart)==null?void 0:W.call(X,Y)}).filter(iq1)});break}case"assistant":{if(G.parts!=null){let Y=[];async function W(){var $,K,Z,H,F,q;if(Y.length===0)return;let V=[];for(let U of Y)if(NW0(U))V.push({type:"text",text:U.text,...U.providerMetadata!=null?{providerOptions:U.providerMetadata}:{}});else if(BW0(U))V.push({type:"file",mediaType:U.mediaType,filename:U.filename,data:U.url});else if(Uz1(U))V.push({type:"reasoning",text:U.text,providerOptions:U.providerMetadata});else if(g2(U)){let N=OW0(U);if(U.state!=="input-streaming"){if(V.push({type:"tool-call",toolCallId:U.toolCallId,toolName:N,input:U.state==="output-error"?($=U.input)!=null?$:("rawInput"in U)?U.rawInput:void 0:U.input,providerExecuted:U.providerExecuted,...U.callProviderMetadata!=null?{providerOptions:U.callProviderMetadata}:{}}),U.approval!=null)V.push({type:"tool-approval-request",approvalId:U.approval.id,toolCallId:U.toolCallId});if(U.providerExecuted===!0&&U.state!=="approval-responded"&&(U.state==="output-available"||U.state==="output-error"))V.push({type:"tool-result",toolCallId:U.toolCallId,toolName:N,output:await rN({toolCallId:U.toolCallId,input:U.input,output:U.state==="output-error"?U.errorText:U.output,tool:(K=X==null?void 0:X.tools)==null?void 0:K[N],errorMode:U.state==="output-error"?"json":"none"}),...U.callProviderMetadata!=null?{providerOptions:U.callProviderMetadata}:{}})}}else if(UW0(U)){let N=(Z=X==null?void 0:X.convertDataPart)==null?void 0:Z.call(X,U);if(N!=null)V.push(N)}else throw Error(`Unsupported part: ${U}`);J.push({role:"assistant",content:V});let z=Y.filter((U)=>{var N;return g2(U)&&(U.providerExecuted!==!0||((N=U.approval)==null?void 0:N.approved)!=null)});if(z.length>0){let U=[];for(let N of z){if(((H=N.approval)==null?void 0:H.approved)!=null)U.push({type:"tool-approval-response",approvalId:N.approval.id,approved:N.approval.approved,reason:N.approval.reason,providerExecuted:N.providerExecuted});if(N.providerExecuted===!0)continue;switch(N.state){case"output-denied":{U.push({type:"tool-result",toolCallId:N.toolCallId,toolName:OW0(N),output:{type:"error-text",value:(F=N.approval.reason)!=null?F:"Tool execution denied."},...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let D=OW0(N);U.push({type:"tool-result",toolCallId:N.toolCallId,toolName:D,output:await rN({toolCallId:N.toolCallId,input:N.input,output:N.state==="output-error"?N.errorText:N.output,tool:(q=X==null?void 0:X.tools)==null?void 0:q[D],errorMode:N.state==="output-error"?"text":"none"}),...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}}}if(U.length>0)J.push({role:"tool",content:U})}Y=[]}for(let $ of G.parts)if(NW0($)||Uz1($)||BW0($)||g2($)||UW0($))Y.push($);else if($.type==="step-start")await W();await W();break}break}default:{let Y=G.role;throw new Nl4({originalMessage:G,message:`Unsupported role: ${Y}`})}}return J}function BU1({messages:Q,reasoning:X="none",toolCalls:J=[],emptyMessages:G="remove"}){if(X==="all"||X==="before-last-message")Q=Q.map((Y,W)=>{if(Y.role!=="assistant"||typeof Y.content==="string"||X==="before-last-message"&&W===Q.length-1)return Y;return{...Y,content:Y.content.filter(($)=>$.type!=="reasoning")}});if(J==="none")J=[];else if(J==="all")J=[{type:"all"}];else if(J==="before-last-message")J=[{type:"before-last-message"}];else if(typeof J==="string")J=[{type:J}];for(let Y of J){let W=Y.type==="all"?void 0:Y.type==="before-last-message"?1:Number(Y.type.slice(12).slice(0,-9)),$=new Set,K=new Set;if(W!=null){for(let Z of Q.slice(-W))if((Z.role==="assistant"||Z.role==="tool")&&typeof Z.content!=="string"){for(let H of Z.content)if(H.type==="tool-call"||H.type==="tool-result")$.add(H.toolCallId);else if(H.type==="tool-approval-request"||H.type==="tool-approval-response")K.add(H.approvalId)}}Q=Q.map((Z,H)=>{if(Z.role!=="assistant"&&Z.role!=="tool"||typeof Z.content==="string"||W&&H>=Q.length-W)return Z;let F={},q={};return{...Z,content:Z.content.filter((V)=>{if(V.type!=="tool-call"&&V.type!=="tool-result"&&V.type!=="tool-approval-request"&&V.type!=="tool-approval-response")return!0;if(V.type==="tool-call")F[V.toolCallId]=V.toolName;else if(V.type==="tool-approval-request")q[V.approvalId]=F[V.toolCallId];if((V.type==="tool-call"||V.type==="tool-result")&&$.has(V.toolCallId)||(V.type==="tool-approval-request"||V.type==="tool-approval-response")&&K.has(V.approvalId))return!0;return Y.tools!=null&&!Y.tools.includes(V.type==="tool-call"||V.type==="tool-result"?V.toolName:q[V.approvalId])})}})}if(G==="remove")Q=Q.filter((Y)=>Y.content.length>0);return Q}var WU1,wW0,um4,mm4=(Q,X)=>{for(var J in X)um4(Q,J,{get:X[J],enumerable:!0})},Bz1="AI_InvalidArgumentError",Oz1,lm4,Dz1,hG,dm4="AI_InvalidStreamPartError",pm4,cm4,nm4,Lz1="AI_InvalidToolApprovalError",wz1,im4,Pz1,rm4,Mz1="AI_InvalidToolInputError",Tz1,am4,Az1,EW0,Ez1="AI_ToolCallNotFoundForApprovalError",jz1,om4,Iz1,Cz1,sm4="AI_NoImageGeneratedError",tm4,em4,Ql4,Rz1="AI_NoObjectGeneratedError",Sz1,Xl4,vz1,uZ,kz1="AI_NoOutputGeneratedError",_z1,Jl4,yz1,Yl4,hz1="AI_NoSuchToolError",fz1,Gl4,bz1,DW0,xz1="AI_ToolCallRepairError",gz1,Wl4,uz1,$l4,Kl4,Zl4="AI_InvalidDataContentError",Hl4,Fl4,ql4,mz1="AI_InvalidMessageRoleError",lz1,Vl4,dz1,zl4,pz1="AI_MessageConversionError",cz1,Ul4,nz1,Nl4,iz1="AI_RetryError",rz1,Bl4,az1,Zz1,Dl4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",Hz1=!1,oz1=(Q)=>{if(Q.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Q);return}if(!Hz1)Hz1=!0,console.info(Dl4);for(let J of Q.warnings)console.warn(Ol4({warning:J,provider:Q.provider,model:Q.model}))},Tl4,Al4=(Q)=>{let X=typeof Q==="string"?pN(Q):Q,J=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(J+10)},Il4="6.0.4",Cl4=async({url:Q})=>{var X;let J=Q.toString();try{let G=await fetch(J,{headers:bZ({},`ai-sdk/${Il4}`,Xf())});if(!G.ok)throw new Qf({url:J,statusCode:G.status,statusText:G.statusText});return{data:new Uint8Array(await G.arrayBuffer()),mediaType:(X=G.headers.get("content-type"))!=null?X:void 0}}catch(G){if(Qf.isInstance(G))throw G;throw new Qf({url:J,cause:G})}},Rl4=(Q=Cl4)=>(X)=>Promise.all(X.map(async(J)=>J.isUrlSupportedByModel?null:Q(J))),QU1,u2,Q4,JU1,gl4,YU1,ul4,ml4,ll4,GU1,dl4,pl4,cl4,nl4,il4,rl4,al4,el4,$f,Qd4,$d4=({maxRetries:Q=2,initialDelayInMs:X=2000,backoffFactor:J=2,abortSignal:G}={})=>async(Y)=>KU1(Y,{maxRetries:Q,delayInMs:X,backoffFactor:J,abortSignal:G}),Hd4=class{constructor({data:Q,mediaType:X}){let J=Q instanceof Uint8Array;this.base64Data=J?void 0:Q,this.uint8ArrayData=J?Q:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=_2(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=pN(this.base64Data);return this.uint8ArrayData}},Fd4,Vd4,MW0=()=>({responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Q}){return Q},async parsePartialOutput({text:Q}){return{partial:Q}}}),Ud4=({schema:Q,name:X,description:J})=>{let G=_G(Q);return{responseFormat:b5(G.jsonSchema).then((Y)=>({type:"json",schema:Y,...X!=null&&{name:X},...J!=null&&{description:J}})),async parseCompleteOutput({text:Y},W){let $=await TX({text:Y});if(!$.success)throw new uZ({message:"No object generated: could not parse the response.",cause:$.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});let K=await dQ({value:$.value,schema:G});if(!K.success)throw new uZ({message:"No object generated: response did not match schema.",cause:K.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});return K.value},async parsePartialOutput({text:Y}){let W=await m2(Y);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:W.value}}}}},Nd4=({element:Q,name:X,description:J})=>{let G=_G(Q);return{responseFormat:b5(G.jsonSchema).then((Y)=>{let{$schema:W,...$}=Y;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:$}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...J!=null&&{description:J}}}),async parseCompleteOutput({text:Y},W){let $=await TX({text:Y});if(!$.success)throw new uZ({message:"No object generated: could not parse the response.",cause:$.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});let K=$.value;if(K==null||typeof K!=="object"||!("elements"in K)||!Array.isArray(K.elements))throw new uZ({message:"No object generated: response did not match schema.",cause:new $7({value:K,cause:"response must be an object with an elements array"}),text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason});for(let Z of K.elements){let H=await dQ({value:Z,schema:G});if(!H.success)throw new uZ({message:"No object generated: response did not match schema.",cause:H.error,text:Y,response:W.response,usage:W.usage,finishReason:W.finishReason})}return K.elements},async parsePartialOutput({text:Y}){let W=await m2(Y);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let $=W.value;if($==null||typeof $!=="object"||!("elements"in $)||!Array.isArray($.elements))return;let K=W.state==="repaired-parse"&&$.elements.length>0?$.elements.slice(0,-1):$.elements,Z=[];for(let H of K){let F=await dQ({value:H,schema:G});if(F.success)Z.push(F.value)}return{partial:Z}}}}}},Bd4=({options:Q,name:X,description:J})=>{return{responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Q}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...J!=null&&{description:J}}),async parseCompleteOutput({text:G},Y){let W=await TX({text:G});if(!W.success)throw new uZ({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:Y.response,usage:Y.usage,finishReason:Y.finishReason});let $=W.value;if($==null||typeof $!=="object"||!("result"in $)||typeof $.result!=="string"||!Q.includes($.result))throw new uZ({message:"No object generated: response did not match schema.",cause:new $7({value:$,cause:"response must be an object that contains a choice value."}),text:G,response:Y.response,usage:Y.usage,finishReason:Y.finishReason});return $.result},async parsePartialOutput({text:G}){let Y=await m2(G);switch(Y.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=Y.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string")return;let $=Q.filter((K)=>K.startsWith(W.result));if(Y.state==="successful-parse")return $.includes(W.result)?{partial:W.result}:void 0;else return $.length===1?{partial:$[0]}:void 0}}}}},Od4=({name:Q,description:X}={})=>{return{responseFormat:Promise.resolve({type:"json",...Q!=null&&{name:Q},...X!=null&&{description:X}}),async parseCompleteOutput({text:J},G){let Y=await TX({text:J});if(!Y.success)throw new uZ({message:"No object generated: could not parse the response.",cause:Y.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return Y.value},async parsePartialOutput({text:J}){let G=await m2(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return G.value===void 0?void 0:{partial:G.value}}}}},Ld4=class{constructor({content:Q,finishReason:X,rawFinishReason:J,usage:G,warnings:Y,request:W,response:$,providerMetadata:K}){this.content=Q,this.finishReason=X,this.rawFinishReason=J,this.usage=G,this.warnings=Y,this.request=W,this.response=$,this.providerMetadata=K}get text(){return this.content.filter((Q)=>Q.type==="text").map((Q)=>Q.text).join("")}get reasoning(){return this.content.filter((Q)=>Q.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Q)=>Q.text).join("")}get files(){return this.content.filter((Q)=>Q.type==="file").map((Q)=>Q.file)}get sources(){return this.content.filter((Q)=>Q.type==="source")}get toolCalls(){return this.content.filter((Q)=>Q.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Q)=>Q.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Q)=>Q.dynamic===!0)}get toolResults(){return this.content.filter((Q)=>Q.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Q)=>Q.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Q)=>Q.dynamic===!0)}},lo6,qU1,VU1,ro6,yd4,fd4=class{constructor({model:Q,telemetry:X,headers:J,settings:G,maxRetries:Y,abortSignal:W,system:$,prompt:K,messages:Z,tools:H,toolChoice:F,transforms:q,activeTools:V,repairToolCall:z,stopConditions:U,output:N,providerOptions:D,prepareStep:P,includeRawChunks:j,now:M,currentDate:T,generateId:A,onChunk:E,onError:C,onFinish:v,onAbort:k,onStepFinish:y,experimental_context:f,download:l}){this._totalUsage=new Jq,this._finishReason=new Jq,this._rawFinishReason=new Jq,this._steps=new Jq,this.outputSpecification=N,this.includeRawChunks=j,this.tools=H;let x,S=[],u=[],X0=void 0,r=void 0,W0=void 0,V0={},G0=[],N0=[],R0=new Map,u0,c0={},O0={},H0=new TransformStream({async transform(p0,v0){var f0,W1,_1,o1;v0.enqueue(p0);let{part:l0}=p0;if(l0.type==="text-delta"||l0.type==="reasoning-delta"||l0.type==="source"||l0.type==="tool-call"||l0.type==="tool-result"||l0.type==="tool-input-start"||l0.type==="tool-input-delta"||l0.type==="raw")await(E==null?void 0:E({chunk:l0}));if(l0.type==="error")await C({error:sl4(l0.error)});if(l0.type==="text-start")c0[l0.id]={type:"text",text:"",providerMetadata:l0.providerMetadata},S.push(c0[l0.id]);if(l0.type==="text-delta"){let n0=c0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`text part ${l0.id} not found`},partialOutput:void 0});return}n0.text+=l0.text,n0.providerMetadata=(f0=l0.providerMetadata)!=null?f0:n0.providerMetadata}if(l0.type==="text-end"){let n0=c0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`text part ${l0.id} not found`},partialOutput:void 0});return}n0.providerMetadata=(W1=l0.providerMetadata)!=null?W1:n0.providerMetadata,delete c0[l0.id]}if(l0.type==="reasoning-start")O0[l0.id]={type:"reasoning",text:"",providerMetadata:l0.providerMetadata},S.push(O0[l0.id]);if(l0.type==="reasoning-delta"){let n0=O0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`reasoning part ${l0.id} not found`},partialOutput:void 0});return}n0.text+=l0.text,n0.providerMetadata=(_1=l0.providerMetadata)!=null?_1:n0.providerMetadata}if(l0.type==="reasoning-end"){let n0=O0[l0.id];if(n0==null){v0.enqueue({part:{type:"error",error:`reasoning part ${l0.id} not found`},partialOutput:void 0});return}n0.providerMetadata=(o1=l0.providerMetadata)!=null?o1:n0.providerMetadata,delete O0[l0.id]}if(l0.type==="file")S.push({type:"file",file:l0.file});if(l0.type==="source")S.push(l0);if(l0.type==="tool-call")S.push(l0);if(l0.type==="tool-result"&&!l0.preliminary)S.push(l0);if(l0.type==="tool-approval-request")S.push(l0);if(l0.type==="tool-error")S.push(l0);if(l0.type==="start-step")S=[],O0={},c0={},V0=l0.request,G0=l0.warnings;if(l0.type==="finish-step"){let n0=await zz1({content:S,tools:H}),k0=new Ld4({content:S,finishReason:l0.finishReason,rawFinishReason:l0.rawFinishReason,usage:l0.usage,warnings:G0,request:V0,response:{...l0.response,messages:[...u,...n0]},providerMetadata:l0.providerMetadata});await(y==null?void 0:y(k0)),oz1({warnings:G0,provider:Q.provider,model:Q.modelId}),N0.push(k0),u.push(...n0),x.resolve()}if(l0.type==="finish")W0=l0.totalUsage,X0=l0.finishReason,r=l0.rawFinishReason},async flush(p0){try{if(N0.length===0){let _1=new Yl4({message:"No output generated. Check the stream for errors."});L0._finishReason.reject(_1),L0._rawFinishReason.reject(_1),L0._totalUsage.reject(_1),L0._steps.reject(_1);return}let v0=X0!=null?X0:"other",f0=W0!=null?W0:zW0();L0._finishReason.resolve(v0),L0._rawFinishReason.resolve(r),L0._totalUsage.resolve(f0),L0._steps.resolve(N0);let W1=N0[N0.length-1];await(v==null?void 0:v({finishReason:W1.finishReason,rawFinishReason:W1.rawFinishReason,totalUsage:f0,usage:W1.usage,content:W1.content,text:W1.text,reasoningText:W1.reasoningText,reasoning:W1.reasoning,files:W1.files,sources:W1.sources,toolCalls:W1.toolCalls,staticToolCalls:W1.staticToolCalls,dynamicToolCalls:W1.dynamicToolCalls,toolResults:W1.toolResults,staticToolResults:W1.staticToolResults,dynamicToolResults:W1.dynamicToolResults,request:W1.request,response:W1.response,warnings:W1.warnings,providerMetadata:W1.providerMetadata,steps:N0,experimental_context:f})),u0.setAttributes(await iN({telemetry:X,attributes:{"ai.response.finishReason":v0,"ai.response.text":{output:()=>W1.text},"ai.response.toolCalls":{output:()=>{var _1;return((_1=W1.toolCalls)==null?void 0:_1.length)?JSON.stringify(W1.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(W1.providerMetadata),"ai.usage.inputTokens":f0.inputTokens,"ai.usage.outputTokens":f0.outputTokens,"ai.usage.totalTokens":f0.totalTokens,"ai.usage.reasoningTokens":f0.reasoningTokens,"ai.usage.cachedInputTokens":f0.cachedInputTokens}}))}catch(v0){p0.error(v0)}finally{u0.end()}}}),_0=vd4();this.addStream=_0.addStream,this.closeStream=_0.close;let x1=_0.stream.getReader(),S1=new ReadableStream({async start(p0){p0.enqueue({type:"start"})},async pull(p0){function v0(){k==null||k({steps:N0}),p0.enqueue({type:"abort"}),p0.close()}try{let{done:f0,value:W1}=await x1.read();if(f0){p0.close();return}if(W==null?void 0:W.aborted){v0();return}p0.enqueue(W1)}catch(f0){if(B$(f0)&&(W==null?void 0:W.aborted))v0();else p0.error(f0)}},cancel(p0){return _0.stream.cancel(p0)}});for(let p0 of q)S1=S1.pipeThrough(p0({tools:H,stopStream(){_0.terminate()}}));this.baseStream=S1.pipeThrough(hd4(N!=null?N:MW0())).pipeThrough(H0);let{maxRetries:x0,retry:D0}=Kd4({maxRetries:Y,abortSignal:W}),z0=Xd4(X),j0=fl4(G),K0=tl4({model:Q,telemetry:X,headers:J,settings:{...j0,maxRetries:x0}}),L0=this;PW0({name:"ai.streamText",attributes:iN({telemetry:X,attributes:{...LW0({operationId:"ai.streamText",telemetry:X}),...K0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:K,messages:Z})}}}),tracer:z0,endWhenDone:!1,fn:async(p0)=>{u0=p0;let v0=await ol4({system:$,prompt:K,messages:Z}),f0=v0.messages,W1=[],{approvedToolApprovals:_1,deniedToolApprovals:o1}=Zd4({messages:f0});if(o1.length>0||_1.length>0){let n0=[..._1,...o1].filter((C1)=>C1.toolCall.providerExecuted),k0=_1.filter((C1)=>!C1.toolCall.providerExecuted),X1=o1.filter((C1)=>!C1.toolCall.providerExecuted),$6=o1.filter((C1)=>C1.toolCall.providerExecuted),H4,F8=new ReadableStream({start(C1){H4=C1}});L0.addStream(F8);try{for(let y0 of[...X1,...$6])H4==null||H4.enqueue({type:"tool-output-denied",toolCallId:y0.toolCall.toolCallId,toolName:y0.toolCall.toolName});let C1=[];if(await Promise.all(k0.map(async(y0)=>{let n4=await ZU1({toolCall:y0.toolCall,tools:H,tracer:z0,telemetry:X,messages:f0,abortSignal:W,experimental_context:f,onPreliminaryToolResult:(O)=>{H4==null||H4.enqueue(O)}});if(n4!=null)H4==null||H4.enqueue(n4),C1.push(n4)})),n0.length>0)W1.push({role:"tool",content:n0.map((y0)=>({type:"tool-approval-response",approvalId:y0.approvalResponse.approvalId,approved:y0.approvalResponse.approved,reason:y0.approvalResponse.reason,providerExecuted:!0}))});if(C1.length>0||X1.length>0){let y0=[];for(let n4 of C1)y0.push({type:"tool-result",toolCallId:n4.toolCallId,toolName:n4.toolName,output:await rN({toolCallId:n4.toolCallId,input:n4.input,tool:H==null?void 0:H[n4.toolName],output:n4.type==="tool-result"?n4.output:n4.error,errorMode:n4.type==="tool-error"?"json":"none"})});for(let n4 of X1)y0.push({type:"tool-result",toolCallId:n4.toolCall.toolCallId,toolName:n4.toolCall.toolName,output:{type:"execution-denied",reason:n4.approvalResponse.reason}});W1.push({role:"tool",content:y0})}}finally{H4==null||H4.close()}}u.push(...W1);async function l0({currentStep:n0,responseMessages:k0,usage:X1}){var $6,H4,F8,C1,y0,n4;let O=L0.includeRawChunks;x=new Jq;let b=[...f0,...k0],Q0=await(P==null?void 0:P({model:Q,steps:N0,stepNumber:N0.length,messages:b,experimental_context:f})),F0=ez1(($6=Q0==null?void 0:Q0.model)!=null?$6:Q),B=await kl4({prompt:{system:(H4=Q0==null?void 0:Q0.system)!=null?H4:v0.system,messages:(F8=Q0==null?void 0:Q0.messages)!=null?F8:b},supportedUrls:await F0.supportedUrls,download:l}),{toolChoice:w,tools:h}=await xl4({tools:H,toolChoice:(C1=Q0==null?void 0:Q0.toolChoice)!=null?C1:F,activeTools:(y0=Q0==null?void 0:Q0.activeTools)!=null?y0:V});f=(n4=Q0==null?void 0:Q0.experimental_context)!=null?n4:f;let i=jW0(D,Q0==null?void 0:Q0.providerOptions),{result:{stream:s,response:p,request:S0},doStreamSpan:s0,startTimestampMs:R1}=await D0(()=>PW0({name:"ai.streamText.doStream",attributes:iN({telemetry:X,attributes:{...LW0({operationId:"ai.streamText.doStream",telemetry:X}),...K0,"ai.model.provider":F0.provider,"ai.model.id":F0.modelId,"ai.prompt.messages":{input:()=>Jd4(B)},"ai.prompt.tools":{input:()=>h==null?void 0:h.map((C0)=>JSON.stringify(C0))},"ai.prompt.toolChoice":{input:()=>w!=null?JSON.stringify(w):void 0},"gen_ai.system":F0.provider,"gen_ai.request.model":F0.modelId,"gen_ai.request.frequency_penalty":j0.frequencyPenalty,"gen_ai.request.max_tokens":j0.maxOutputTokens,"gen_ai.request.presence_penalty":j0.presencePenalty,"gen_ai.request.stop_sequences":j0.stopSequences,"gen_ai.request.temperature":j0.temperature,"gen_ai.request.top_k":j0.topK,"gen_ai.request.top_p":j0.topP}}),tracer:z0,endWhenDone:!1,fn:async(C0)=>({startTimestampMs:M(),doStreamSpan:C0,result:await F0.doStream({...j0,tools:h,toolChoice:w,responseFormat:await(N==null?void 0:N.responseFormat),prompt:B,providerOptions:i,abortSignal:W,headers:J,includeRawChunks:O})})})),d0=_d4({tools:H,generatorStream:s,tracer:z0,telemetry:X,system:$,messages:b,repairToolCall:z,abortSignal:W,experimental_context:f,generateId:A}),w1=S0!=null?S0:{},E4=[],B8=[],_4,q5={},ZJ="other",qY=void 0,t=zW0(),J0,q0=!0,E0={id:A(),timestamp:T(),modelId:Q.modelId},$0="";L0.addStream(d0.pipeThrough(new TransformStream({async transform(C0,P1){var $4,v4,O8,a1,R6;if(C0.type==="stream-start"){_4=C0.warnings;return}if(q0){let z4=M()-R1;q0=!1,s0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":z4}),s0.setAttributes({"ai.response.msToFirstChunk":z4}),P1.enqueue({type:"start-step",request:w1,warnings:_4!=null?_4:[]})}let I8=C0.type;switch(I8){case"tool-approval-request":case"text-start":case"text-end":{P1.enqueue(C0);break}case"text-delta":{if(C0.delta.length>0)P1.enqueue({type:"text-delta",id:C0.id,text:C0.delta,providerMetadata:C0.providerMetadata}),$0+=C0.delta;break}case"reasoning-start":case"reasoning-end":{P1.enqueue(C0);break}case"reasoning-delta":{P1.enqueue({type:"reasoning-delta",id:C0.id,text:C0.delta,providerMetadata:C0.providerMetadata});break}case"tool-call":{P1.enqueue(C0),E4.push(C0);break}case"tool-result":{if(P1.enqueue(C0),!C0.preliminary)B8.push(C0);break}case"tool-error":{P1.enqueue(C0),B8.push(C0);break}case"response-metadata":{E0={id:($4=C0.id)!=null?$4:E0.id,timestamp:(v4=C0.timestamp)!=null?v4:E0.timestamp,modelId:(O8=C0.modelId)!=null?O8:E0.modelId};break}case"finish":{t=C0.usage,ZJ=C0.finishReason,qY=C0.rawFinishReason,J0=C0.providerMetadata;let z4=M()-R1;s0.addEvent("ai.stream.finish"),s0.setAttributes({"ai.response.msToFinish":z4,"ai.response.avgOutputTokensPerSecond":1000*((a1=t.outputTokens)!=null?a1:0)/z4});break}case"file":{P1.enqueue(C0);break}case"source":{P1.enqueue(C0);break}case"tool-input-start":{q5[C0.id]=C0.toolName;let z4=H==null?void 0:H[C0.toolName];if((z4==null?void 0:z4.onInputStart)!=null)await z4.onInputStart({toolCallId:C0.id,messages:b,abortSignal:W,experimental_context:f});P1.enqueue({...C0,dynamic:(R6=C0.dynamic)!=null?R6:(z4==null?void 0:z4.type)==="dynamic",title:z4==null?void 0:z4.title});break}case"tool-input-end":{delete q5[C0.id],P1.enqueue(C0);break}case"tool-input-delta":{let z4=q5[C0.id],d4=H==null?void 0:H[z4];if((d4==null?void 0:d4.onInputDelta)!=null)await d4.onInputDelta({inputTextDelta:C0.delta,toolCallId:C0.id,messages:b,abortSignal:W,experimental_context:f});P1.enqueue(C0);break}case"error":{P1.enqueue(C0),ZJ="error";break}case"raw":{if(O)P1.enqueue(C0);break}default:throw Error(`Unknown chunk type: ${I8}`)}},async flush(C0){let P1=E4.length>0?JSON.stringify(E4):void 0;try{s0.setAttributes(await iN({telemetry:X,attributes:{"ai.response.finishReason":ZJ,"ai.response.text":{output:()=>$0},"ai.response.toolCalls":{output:()=>P1},"ai.response.id":E0.id,"ai.response.model":E0.modelId,"ai.response.timestamp":E0.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(J0),"ai.usage.inputTokens":t.inputTokens,"ai.usage.outputTokens":t.outputTokens,"ai.usage.totalTokens":t.totalTokens,"ai.usage.reasoningTokens":t.reasoningTokens,"ai.usage.cachedInputTokens":t.cachedInputTokens,"gen_ai.response.finish_reasons":[ZJ],"gen_ai.response.id":E0.id,"gen_ai.response.model":E0.modelId,"gen_ai.usage.input_tokens":t.inputTokens,"gen_ai.usage.output_tokens":t.outputTokens}}))}catch(a1){}finally{s0.end()}C0.enqueue({type:"finish-step",finishReason:ZJ,rawFinishReason:qY,usage:t,providerMetadata:J0,response:{...E0,headers:p==null?void 0:p.headers}});let $4=Gd4(X1,t);await x.promise;let v4=E4.filter((a1)=>a1.providerExecuted!==!0),O8=B8.filter((a1)=>a1.providerExecuted!==!0);for(let a1 of E4){if(a1.providerExecuted!==!0)continue;let R6=H==null?void 0:H[a1.toolName];if((R6==null?void 0:R6.type)==="provider"&&R6.supportsDeferredResults){if(!B8.some((z4)=>z4.type==="tool-result"&&z4.toolCallId===a1.toolCallId))R0.set(a1.toolCallId,{toolName:a1.toolName})}}for(let a1 of B8)if(a1.type==="tool-result")R0.delete(a1.toolCallId);if((v4.length>0&&O8.length===v4.length||R0.size>0)&&!await wd4({stopConditions:U,steps:N0})){k0.push(...await zz1({content:N0[N0.length-1].content,tools:H}));try{await l0({currentStep:n0+1,responseMessages:k0,usage:$4})}catch(a1){C0.enqueue({type:"error",error:a1}),L0.closeStream()}}else C0.enqueue({type:"finish",finishReason:ZJ,rawFinishReason:qY,totalUsage:$4}),L0.closeStream()}})))}await l0({currentStep:0,responseMessages:W1,usage:zW0()})}}).catch((p0)=>{L0.addStream(new ReadableStream({start(v0){v0.enqueue({type:"error",error:p0}),v0.close()}})),L0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((Q)=>Q[Q.length-1])}get content(){return this.finalStep.then((Q)=>Q.content)}get warnings(){return this.finalStep.then((Q)=>Q.warnings)}get providerMetadata(){return this.finalStep.then((Q)=>Q.providerMetadata)}get text(){return this.finalStep.then((Q)=>Q.text)}get reasoningText(){return this.finalStep.then((Q)=>Q.reasoningText)}get reasoning(){return this.finalStep.then((Q)=>Q.reasoning)}get sources(){return this.finalStep.then((Q)=>Q.sources)}get files(){return this.finalStep.then((Q)=>Q.files)}get toolCalls(){return this.finalStep.then((Q)=>Q.toolCalls)}get staticToolCalls(){return this.finalStep.then((Q)=>Q.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((Q)=>Q.dynamicToolCalls)}get toolResults(){return this.finalStep.then((Q)=>Q.toolResults)}get staticToolResults(){return this.finalStep.then((Q)=>Q.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((Q)=>Q.dynamicToolResults)}get usage(){return this.finalStep.then((Q)=>Q.usage)}get request(){return this.finalStep.then((Q)=>Q.request)}get response(){return this.finalStep.then((Q)=>Q.response)}get totalUsage(){return this.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){let[Q,X]=this.baseStream.tee();return this.baseStream=X,Q}get textStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({part:Q},X){if(Q.type==="text-delta")X.enqueue(Q.text)}})))}get fullStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({part:Q},X){X.enqueue(Q)}})))}async consumeStream(Q){var X;try{await Sd4({stream:this.fullStream,onError:Q==null?void 0:Q.onError})}catch(J){(X=Q==null?void 0:Q.onError)==null||X.call(Q,J)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return Kf(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:Q},X){if(Q!=null)X.enqueue(Q)}})))}get output(){return this.finalStep.then((Q)=>{var X;return((X=this.outputSpecification)!=null?X:MW0()).parseCompleteOutput({text:Q.text},{response:Q.response,usage:Q.usage,finishReason:Q.finishReason})})}toUIMessageStream({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y=!0,sendSources:W=!1,sendStart:$=!0,sendFinish:K=!0,onError:Z=SG}={}){let H=X!=null?Ad4({originalMessages:Q,responseMessageId:X}):void 0,F=(V)=>{var z;let U=(z=this.tools)==null?void 0:z[V.toolName];if(U==null)return V.dynamic;return(U==null?void 0:U.type)==="dynamic"?!0:void 0},q=this.fullStream.pipeThrough(new TransformStream({transform:async(V,z)=>{let U=G==null?void 0:G({part:V}),N=V.type;switch(N){case"text-start":{z.enqueue({type:"text-start",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"text-delta":{z.enqueue({type:"text-delta",id:V.id,delta:V.text,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"text-end":{z.enqueue({type:"text-end",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-start":{z.enqueue({type:"reasoning-start",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-delta":{if(Y)z.enqueue({type:"reasoning-delta",id:V.id,delta:V.text,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"reasoning-end":{z.enqueue({type:"reasoning-end",id:V.id,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"file":{z.enqueue({type:"file",mediaType:V.file.mediaType,url:`data:${V.file.mediaType};base64,${V.file.base64}`});break}case"source":{if(W&&V.sourceType==="url")z.enqueue({type:"source-url",sourceId:V.id,url:V.url,title:V.title,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});if(W&&V.sourceType==="document")z.enqueue({type:"source-document",sourceId:V.id,mediaType:V.mediaType,title:V.title,filename:V.filename,...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{}});break}case"tool-input-start":{let D=F(V);z.enqueue({type:"tool-input-start",toolCallId:V.id,toolName:V.toolName,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...D!=null?{dynamic:D}:{},...V.title!=null?{title:V.title}:{}});break}case"tool-input-delta":{z.enqueue({type:"tool-input-delta",toolCallId:V.id,inputTextDelta:V.delta});break}case"tool-call":{let D=F(V);if(V.invalid)z.enqueue({type:"tool-input-error",toolCallId:V.toolCallId,toolName:V.toolName,input:V.input,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{},...D!=null?{dynamic:D}:{},errorText:Z(V.error),...V.title!=null?{title:V.title}:{}});else z.enqueue({type:"tool-input-available",toolCallId:V.toolCallId,toolName:V.toolName,input:V.input,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.providerMetadata!=null?{providerMetadata:V.providerMetadata}:{},...D!=null?{dynamic:D}:{},...V.title!=null?{title:V.title}:{}});break}case"tool-approval-request":{z.enqueue({type:"tool-approval-request",approvalId:V.approvalId,toolCallId:V.toolCall.toolCallId});break}case"tool-result":{let D=F(V);z.enqueue({type:"tool-output-available",toolCallId:V.toolCallId,output:V.output,...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...V.preliminary!=null?{preliminary:V.preliminary}:{},...D!=null?{dynamic:D}:{}});break}case"tool-error":{let D=F(V);z.enqueue({type:"tool-output-error",toolCallId:V.toolCallId,errorText:Z(V.error),...V.providerExecuted!=null?{providerExecuted:V.providerExecuted}:{},...D!=null?{dynamic:D}:{}});break}case"tool-output-denied":{z.enqueue({type:"tool-output-denied",toolCallId:V.toolCallId});break}case"error":{z.enqueue({type:"error",errorText:Z(V.error)});break}case"start-step":{z.enqueue({type:"start-step"});break}case"finish-step":{z.enqueue({type:"finish-step"});break}case"start":{if($)z.enqueue({type:"start",...U!=null?{messageMetadata:U}:{},...H!=null?{messageId:H}:{}});break}case"finish":{if(K)z.enqueue({type:"finish",finishReason:V.finishReason,...U!=null?{messageMetadata:U}:{}});break}case"abort":{z.enqueue(V);break}case"tool-input-end":break;case"raw":break;default:throw Error(`Unknown chunk type: ${N}`)}if(U!=null&&N!=="start"&&N!=="finish")z.enqueue({type:"message-metadata",messageMetadata:U})}}));return Kf(Cd4({stream:q,messageId:H!=null?H:X==null?void 0:X(),originalMessages:Q,onFinish:J,onError:Z}))}pipeUIMessageStreamToResponse(Q,{originalMessages:X,generateMessageId:J,onFinish:G,messageMetadata:Y,sendReasoning:W,sendSources:$,sendFinish:K,sendStart:Z,onError:H,...F}={}){Rd4({response:Q,stream:this.toUIMessageStream({originalMessages:X,generateMessageId:J,onFinish:G,messageMetadata:Y,sendReasoning:W,sendSources:$,sendFinish:K,sendStart:Z,onError:H}),...F})}pipeTextStreamToResponse(Q,X){Md4({response:Q,textStream:this.textStream,...X})}toUIMessageStreamResponse({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y,sendSources:W,sendFinish:$,sendStart:K,onError:Z,...H}={}){return Td4({stream:this.toUIMessageStream({originalMessages:Q,generateMessageId:X,onFinish:J,messageMetadata:G,sendReasoning:Y,sendSources:W,sendFinish:$,sendStart:K,onError:Z}),...H})}toTextStreamResponse(Q){return Pd4({textStream:this.textStream,...Q})}},eo6,Xs6,Ys6,bd4="AI_NoSuchProviderError",xd4,gd4,ud4;var OU1=_(()=>{N6();N6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();x6();VW0();N6();N6();N6();N6();x6();N6();h5();x6();N6();x6();N6();h5();h5();h5();h5();h5();VW0();x6();x6();N6();N6();N6();x6();N6();N6();N6();x6();N6();N6();h5();N6();N6();N6();N6();h5();N6();N6();WU1=y4(z1(),1),wW0=y4(z1(),1),um4=Object.defineProperty,Oz1=`vercel.ai.error.${Bz1}`,lm4=Symbol.for(Oz1),hG=class extends v1{constructor({parameter:Q,value:X,message:J}){super({name:Bz1,message:`Invalid argument for parameter ${Q}: ${J}`});this[Dz1]=!0,this.parameter=Q,this.value=X}static isInstance(Q){return v1.hasMarker(Q,Oz1)}};Dz1=lm4;pm4=`vercel.ai.error.${dm4}`,cm4=Symbol.for(pm4);nm4=cm4;wz1=`vercel.ai.error.${Lz1}`,im4=Symbol.for(wz1),rm4=class extends v1{constructor({approvalId:Q}){super({name:Lz1,message:`Tool approval response references unknown approvalId: "${Q}". No matching tool-approval-request found in message history.`});this[Pz1]=!0,this.approvalId=Q}static isInstance(Q){return v1.hasMarker(Q,wz1)}};Pz1=im4;Tz1=`vercel.ai.error.${Mz1}`,am4=Symbol.for(Tz1),EW0=class extends v1{constructor({toolInput:Q,toolName:X,cause:J,message:G=`Invalid input for tool ${X}: ${SG(J)}`}){super({name:Mz1,message:G,cause:J});this[Az1]=!0,this.toolInput=Q,this.toolName=X}static isInstance(Q){return v1.hasMarker(Q,Tz1)}};Az1=am4;jz1=`vercel.ai.error.${Ez1}`,om4=Symbol.for(jz1),Cz1=class extends v1{constructor({toolCallId:Q,approvalId:X}){super({name:Ez1,message:`Tool call "${Q}" not found for approval request "${X}".`});this[Iz1]=!0,this.toolCallId=Q,this.approvalId=X}static isInstance(Q){return v1.hasMarker(Q,jz1)}};Iz1=om4;tm4=`vercel.ai.error.${sm4}`,em4=Symbol.for(tm4);Ql4=em4;Sz1=`vercel.ai.error.${Rz1}`,Xl4=Symbol.for(Sz1),uZ=class extends v1{constructor({message:Q="No object generated.",cause:X,text:J,response:G,usage:Y,finishReason:W}){super({name:Rz1,message:Q,cause:X});this[vz1]=!0,this.text=J,this.response=G,this.usage=Y,this.finishReason=W}static isInstance(Q){return v1.hasMarker(Q,Sz1)}};vz1=Xl4;_z1=`vercel.ai.error.${kz1}`,Jl4=Symbol.for(_z1),Yl4=class extends v1{constructor({message:Q="No output generated.",cause:X}={}){super({name:kz1,message:Q,cause:X});this[yz1]=!0}static isInstance(Q){return v1.hasMarker(Q,_z1)}};yz1=Jl4;fz1=`vercel.ai.error.${hz1}`,Gl4=Symbol.for(fz1),DW0=class extends v1{constructor({toolName:Q,availableTools:X=void 0,message:J=`Model tried to call unavailable tool '${Q}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:hz1,message:J});this[bz1]=!0,this.toolName=Q,this.availableTools=X}static isInstance(Q){return v1.hasMarker(Q,fz1)}};bz1=Gl4;gz1=`vercel.ai.error.${xz1}`,Wl4=Symbol.for(gz1),$l4=class extends v1{constructor({cause:Q,originalError:X,message:J=`Error repairing tool call: ${SG(Q)}`}){super({name:xz1,message:J,cause:Q});this[uz1]=!0,this.originalError=X}static isInstance(Q){return v1.hasMarker(Q,gz1)}};uz1=Wl4;Kl4=class extends v1{constructor(Q){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${Q.version} for provider "${Q.provider}" and model "${Q.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=Q.version,this.provider=Q.provider,this.modelId=Q.modelId}},Hl4=`vercel.ai.error.${Zl4}`,Fl4=Symbol.for(Hl4);ql4=Fl4;lz1=`vercel.ai.error.${mz1}`,Vl4=Symbol.for(lz1),zl4=class extends v1{constructor({role:Q,message:X=`Invalid message role: '${Q}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:mz1,message:X});this[dz1]=!0,this.role=Q}static isInstance(Q){return v1.hasMarker(Q,lz1)}};dz1=Vl4;cz1=`vercel.ai.error.${pz1}`,Ul4=Symbol.for(cz1),Nl4=class extends v1{constructor({originalMessage:Q,message:X}){super({name:pz1,message:X});this[nz1]=!0,this.originalMessage=Q}static isInstance(Q){return v1.hasMarker(Q,cz1)}};nz1=Ul4;rz1=`vercel.ai.error.${iz1}`,Bl4=Symbol.for(rz1),Zz1=class extends v1{constructor({message:Q,reason:X,errors:J}){super({name:iz1,message:Q});this[az1]=!0,this.reason=X,this.errors=J,this.lastError=J[J.length-1]}static isInstance(Q){return v1.hasMarker(Q,rz1)}};az1=Bl4;Tl4=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}];QU1=g.union([g.string(),g.instanceof(Uint8Array),g.instanceof(ArrayBuffer),g.custom((Q)=>{var X,J;return(J=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Q))!=null?J:!1},{message:"Must be a Buffer"})]);u2=g.lazy(()=>g.union([g.null(),g.string(),g.number(),g.boolean(),g.record(g.string(),u2.optional()),g.array(u2)])),Q4=g.record(g.string(),g.record(g.string(),u2.optional())),JU1=g.object({type:g.literal("text"),text:g.string(),providerOptions:Q4.optional()}),gl4=g.object({type:g.literal("image"),image:g.union([QU1,g.instanceof(URL)]),mediaType:g.string().optional(),providerOptions:Q4.optional()}),YU1=g.object({type:g.literal("file"),data:g.union([QU1,g.instanceof(URL)]),filename:g.string().optional(),mediaType:g.string(),providerOptions:Q4.optional()}),ul4=g.object({type:g.literal("reasoning"),text:g.string(),providerOptions:Q4.optional()}),ml4=g.object({type:g.literal("tool-call"),toolCallId:g.string(),toolName:g.string(),input:g.unknown(),providerOptions:Q4.optional(),providerExecuted:g.boolean().optional()}),ll4=g.discriminatedUnion("type",[g.object({type:g.literal("text"),value:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("json"),value:u2,providerOptions:Q4.optional()}),g.object({type:g.literal("execution-denied"),reason:g.string().optional(),providerOptions:Q4.optional()}),g.object({type:g.literal("error-text"),value:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("error-json"),value:u2,providerOptions:Q4.optional()}),g.object({type:g.literal("content"),value:g.array(g.union([g.object({type:g.literal("text"),text:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("media"),data:g.string(),mediaType:g.string()}),g.object({type:g.literal("file-data"),data:g.string(),mediaType:g.string(),filename:g.string().optional(),providerOptions:Q4.optional()}),g.object({type:g.literal("file-url"),url:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("file-id"),fileId:g.union([g.string(),g.record(g.string(),g.string())]),providerOptions:Q4.optional()}),g.object({type:g.literal("image-data"),data:g.string(),mediaType:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("image-url"),url:g.string(),providerOptions:Q4.optional()}),g.object({type:g.literal("image-file-id"),fileId:g.union([g.string(),g.record(g.string(),g.string())]),providerOptions:Q4.optional()}),g.object({type:g.literal("custom"),providerOptions:Q4.optional()})]))})]),GU1=g.object({type:g.literal("tool-result"),toolCallId:g.string(),toolName:g.string(),output:ll4,providerOptions:Q4.optional()}),dl4=g.object({type:g.literal("tool-approval-request"),approvalId:g.string(),toolCallId:g.string()}),pl4=g.object({type:g.literal("tool-approval-response"),approvalId:g.string(),approved:g.boolean(),reason:g.string().optional()}),cl4=g.object({role:g.literal("system"),content:g.string(),providerOptions:Q4.optional()}),nl4=g.object({role:g.literal("user"),content:g.union([g.string(),g.array(g.union([JU1,gl4,YU1]))]),providerOptions:Q4.optional()}),il4=g.object({role:g.literal("assistant"),content:g.union([g.string(),g.array(g.union([JU1,YU1,ul4,ml4,GU1,dl4]))]),providerOptions:Q4.optional()}),rl4=g.object({role:g.literal("tool"),content:g.array(g.union([GU1,pl4])),providerOptions:Q4.optional()}),al4=g.union([cl4,nl4,il4,rl4]);el4={startSpan(){return $f},startActiveSpan(Q,X,J,G){if(typeof X==="function")return X($f);if(typeof J==="function")return J($f);if(typeof G==="function")return G($f)}},$f={spanContext(){return Qd4},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Qd4={traceId:"",spanId:"",traceFlags:0};Fd4=class extends Hd4{constructor(Q){super(Q);this.type="file"}};Vd4={};mm4(Vd4,{array:()=>Nd4,choice:()=>Bd4,json:()=>Od4,object:()=>Ud4,text:()=>MW0});lo6=kG({prefix:"aitxt",size:24});qU1=class extends TransformStream{constructor(){super({transform(Q,X){X.enqueue(`data: ${JSON.stringify(Q)}
1151
1151
 
1152
1152
  `)},flush(Q){Q.enqueue(`data: [DONE]
1153
1153