@decocms/mesh 2.82.0 → 2.82.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-D3KDB3IA.js → AlertCircle-CtPpC9oJ.js} +1 -1
- package/dist/client/assets/{ArrowUp-3aAOnqRg.js → ArrowUp-CA8UDrfz.js} +1 -1
- package/dist/client/assets/{Calendar-BBdpCud_.js → Calendar-DAdOn9ua.js} +1 -1
- package/dist/client/assets/{Check-DDCtzM6Q.js → Check-DV18uyCH.js} +1 -1
- package/dist/client/assets/{CheckCircle-79X8LGfp.js → CheckCircle-DVOoxneM.js} +1 -1
- package/dist/client/assets/{CheckDone01-CQ4X60Dx.js → CheckDone01-DJo7aefF.js} +1 -1
- package/dist/client/assets/{ChevronDown-SBTaDy9t.js → ChevronDown-chI9ygNN.js} +1 -1
- package/dist/client/assets/{ChevronRight--SfBuQ6E.js → ChevronRight-CB340hEM.js} +1 -1
- package/dist/client/assets/{Code01-DjtWhPZC.js → Code01-CQm5gaxD.js} +1 -1
- package/dist/client/assets/{Copy01-BSA43WMM.js → Copy01-D92JBNrr.js} +1 -1
- package/dist/client/assets/{DotsHorizontal-B5RKGUR7.js → DotsHorizontal-BMV21-p8.js} +1 -1
- package/dist/client/assets/{DotsVertical-Cd8cYkR4.js → DotsVertical-7rEb7kkS.js} +1 -1
- package/dist/client/assets/{Download01-FxIredOf.js → Download01-DZw1ZV-P.js} +1 -1
- package/dist/client/assets/{Edit01-B5nyemfE.js → Edit01-Bz0rTH0G.js} +1 -1
- package/dist/client/assets/{File02-DA2x6ZM6.js → File02-DJ--0YIi.js} +1 -1
- package/dist/client/assets/{File06-Dk4vC3hU.js → File06-C7MXSBG7.js} +1 -1
- package/dist/client/assets/{FilterLines-DjOqiBJz.js → FilterLines-BQPG8gUH.js} +1 -1
- package/dist/client/assets/{Globe02-dRiPkeKW.js → Globe02-C_Brg8n4.js} +1 -1
- package/dist/client/assets/{Grid01-B4G9OfC4.js → Grid01-OeezW3lf.js} +1 -1
- package/dist/client/assets/{Home02-BHKRAEAu.js → Home02-CiAoUJCW.js} +1 -1
- package/dist/client/assets/{Image01-2WD6KqwM.js → Image01-3Ev_m9e4.js} +1 -1
- package/dist/client/assets/{Inbox01-C7RwTkoq.js → Inbox01-BFg8Kpze.js} +1 -1
- package/dist/client/assets/{InfoCircle-TiqDenvc.js → InfoCircle-BQTtj9Lu.js} +1 -1
- package/dist/client/assets/{LinkExternal01-x3gXIh53.js → LinkExternal01-BzBL3QFQ.js} +1 -1
- package/dist/client/assets/{List-8EK4DbDa.js → List-DdAc5rQI.js} +1 -1
- package/dist/client/assets/{Loading01-CJAWJaxG.js → Loading01-fu2UwFjW.js} +1 -1
- package/dist/client/assets/{Lock01-BjFkdlhS.js → Lock01-CgX3Rm-F.js} +1 -1
- package/dist/client/assets/{Pin01-cDub6-ui.js → Pin01-Ce-ttPXI.js} +1 -1
- package/dist/client/assets/{Play-DFjE4pw4.js → Play-C6e6Tl3o.js} +1 -1
- package/dist/client/assets/{Plus-BUcm60bY.js → Plus-BzwS2uDL.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-Cqf7w1A_.js → RefreshCcw01-Dhm-K7iO.js} +1 -1
- package/dist/client/assets/{SearchMd-DZftd0rG.js → SearchMd-jR4b2EL-.js} +1 -1
- package/dist/client/assets/{Settings01-BV96W3K6.js → Settings01-DNDgTyWY.js} +1 -1
- package/dist/client/assets/{Settings02-BSUzKPrW.js → Settings02-Cy2fGx6z.js} +1 -1
- package/dist/client/assets/{Share07-zbtOVHUV.js → Share07-B52v8g9u.js} +1 -1
- package/dist/client/assets/{Terminal-CSvhqBGB.js → Terminal-BTyUr8GR.js} +1 -1
- package/dist/client/assets/{Tool01-R1tL1Bnd.js → Tool01-Bk8TA_Uq.js} +1 -1
- package/dist/client/assets/{Trash01-ayUasD9O.js → Trash01-Bp3NiJll.js} +1 -1
- package/dist/client/assets/{Upload01-BashLf0-.js → Upload01-Bn3IXmrl.js} +1 -1
- package/dist/client/assets/{Users03-0nIh3Dmg.js → Users03-CFgTNgZk.js} +1 -1
- package/dist/client/assets/{X-BuzeH_Ys.js → X-BSTgQFsI.js} +1 -1
- package/dist/client/assets/{XClose-wa7qhUC2.js → XClose-DuIJbs14.js} +1 -1
- package/dist/client/assets/{agent-connections-preview-2q-Vv44D.js → agent-connections-preview-T4UOmgpU.js} +1 -1
- package/dist/client/assets/{agent-detail-2ytsz5ES.js → agent-detail-B1IhpFnP.js} +1 -1
- package/dist/client/assets/{agents-BOQt3EER.js → agents-D7BrCZPP.js} +1 -1
- package/dist/client/assets/{alert-dialog-Dozrlcm_.js → alert-dialog-S-joXgd4.js} +1 -1
- package/dist/client/assets/{auth-catchall-CkqPuCp2.js → auth-catchall-BkeBiPq2.js} +1 -1
- package/dist/client/assets/{avatar-CODuQ7wd.js → avatar-Bil6JAQg.js} +1 -1
- package/dist/client/assets/{badge-CBPiZjKH.js → badge-BpndODj5.js} +1 -1
- package/dist/client/assets/{binder-CMhpk7ub.js → binder-Dpol6G6A.js} +1 -1
- package/dist/client/assets/{breadcrumb-DxXS9FOV.js → breadcrumb-DRtoOyeX.js} +1 -1
- package/dist/client/assets/{button-BENLxTt6.js → button-Ch5u7eRH.js} +1 -1
- package/dist/client/assets/{card-DkcolAVH.js → card-BqZhR_AW.js} +1 -1
- package/dist/client/assets/{checkbox-cKpxYYrb.js → checkbox-CuKjdsq2.js} +1 -1
- package/dist/client/assets/{circle-alert-B6brOILB.js → circle-alert-CgKaVRDw.js} +1 -1
- package/dist/client/assets/{collection-detail-CAtk6NAX.js → collection-detail-CqV95I9_.js} +1 -1
- package/dist/client/assets/{collection-search-r4Iw28Tm.js → collection-search-_0tF8io7.js} +1 -1
- package/dist/client/assets/{collection-tab-BYjOSxk-.js → collection-tab-au6sJ7Km.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-g3QYov-u.js → collection-table-wrapper-VMN2cytB.js} +1 -1
- package/dist/client/assets/{collection-tabs-fNhO9GT7.js → collection-tabs-DGa30AlC.js} +1 -1
- package/dist/client/assets/{command-BKB4MrJQ.js → command-B2fcZygr.js} +1 -1
- package/dist/client/assets/{connect-DYc_gyWw.js → connect-pQUjHkbG.js} +1 -1
- package/dist/client/assets/{connection-card-DEFXimFX.js → connection-card-COn2s7U7.js} +1 -1
- package/dist/client/assets/{connection-detail-CvldKioB.js → connection-detail-DyDeJqsF.js} +1 -1
- package/dist/client/assets/{connections-BZpjI1Nt.js → connections-CxrJXX7p.js} +1 -1
- package/dist/client/assets/constants-BB3Jk5Dy.js +1 -0
- package/dist/client/assets/{constants-CyHzmdsR.js → constants-DzTrRG8y.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-CzJOBrOl.js → create-organization-dialog-hmjQ-94k.js} +1 -1
- package/dist/client/assets/{create-project-dialog-BSIrIXxq.js → create-project-dialog-CKFc_6nV.js} +1 -1
- package/dist/client/assets/{dialog-xIqrrw1k.js → dialog-DwZbI-ZP.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CdsuXytO.js → dropdown-menu-B1Sxz2ho.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-D2FjOsz_.js → dynamic-plugin-layout-BjD1bnWU.js} +1 -1
- package/dist/client/assets/{empty-state-CEqegtKr.js → empty-state-DAlz4ear.js} +1 -1
- package/dist/client/assets/{empty-state-CsMNFf2A.js → empty-state-rUpeLcXi.js} +1 -1
- package/dist/client/assets/{env-vars-editor-Bxq-afSh.js → env-vars-editor-CGE526Ih.js} +1 -1
- package/dist/client/assets/{error-boundary-Nf2CtbS6.js → error-boundary-BoIW4kUF.js} +1 -1
- package/dist/client/assets/{extract-connection-data-C2jhq8EX.js → extract-connection-data-BgGlgCP4.js} +1 -1
- package/dist/client/assets/{file-browser-D4P0OdDw.js → file-browser-HOAh5EYy.js} +2 -2
- package/dist/client/assets/{form-DnmMdQrj.js → form-D716Innf.js} +1 -1
- package/dist/client/assets/{grid-view-CoSLyQLn.js → grid-view-CcMdOys8.js} +1 -1
- package/dist/client/assets/{home-DoLTW53v.js → home-B8n0u1hb.js} +1 -1
- package/dist/client/assets/{index-BPEvdlWI.js → index-Bx4F-Qdw.js} +1 -1
- package/dist/client/assets/{index-CaiLEv_9.js → index-CZitZKra.js} +1 -1
- package/dist/client/assets/{index-CDo7YvLh.js → index-CmttBqa4.js} +1 -1
- package/dist/client/assets/{index-C_bldAJS.js → index-CrB2W5cn.js} +1 -1
- package/dist/client/assets/{index-RNBGcrtT.js → index-DS-lPaEH.js} +1 -1
- package/dist/client/assets/{index-fbicbDgU.js → index-DY0sYZIb.js} +1 -1
- package/dist/client/assets/{index-DQ9TOjsi.js → index-DhGwYl2I.js} +2 -2
- package/dist/client/assets/{index-icASHgYU.js → index-DlNYPxtl.js} +1 -1
- package/dist/client/assets/{index-A80QwZTd.js → index-aGc3cjDR.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-BsFCOv8W.js → infiniteQueryObserver-P5QH7JcL.js} +1 -1
- package/dist/client/assets/{input-BIL-SExV.js → input-DubEBJCo.js} +1 -1
- package/dist/client/assets/{integration-icon-FtYhgNKh.js → integration-icon-BVbVV44M.js} +1 -1
- package/dist/client/assets/{label-D0auY2sQ.js → label-PvsfzVsc.js} +1 -1
- package/dist/client/assets/{layout-2aG_RWhC.js → layout-DXnqLpsb.js} +1 -1
- package/dist/client/assets/{localstorage-keys-BE-3e1FV.js → localstorage-keys-D1TIK9yX.js} +1 -1
- package/dist/client/assets/{login-CxdL1FAe.js → login-M5CZ12pY.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CmQaUsni.js → mcp-oauth-CoQ7EUp8.js} +1 -1
- package/dist/client/assets/{mcp-server-card-CjUi-ujO.js → mcp-server-card-DDmoytaW.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-DJkCOqkB.js → mcp-server-detail-CrfO2Bgg.js} +2 -2
- package/dist/client/assets/{members-DORByuvn.js → members-BfPmdU8z.js} +1 -1
- package/dist/client/assets/{monaco-editor-_5dDXxkD.js → monaco-editor-C5NReNB4.js} +1 -1
- package/dist/client/assets/{monitoring-BMMeBiqJ.js → monitoring-B9ywR55c.js} +1 -1
- package/dist/client/assets/{oauth-callback-CravOpS3.js → oauth-callback-Ddy8TQPV.js} +1 -1
- package/dist/client/assets/{page-jKoS4SxK.js → page-6Ag0-i_C.js} +1 -1
- package/dist/client/assets/{page-BCwWDmou.js → page-lVUkYimj.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-BPiMrlyQ.js → plugin-empty-state-C0lIEopI.js} +1 -1
- package/dist/client/assets/{plugin-header-659f7GxU.js → plugin-header-DWY_K3QL.js} +1 -1
- package/dist/client/assets/{popover-CfGRS0cW.js → popover-D1j3DNg2.js} +1 -1
- package/dist/client/assets/{project-layout-D-SjsOBw.js → project-layout-BbuqVwLw.js} +1 -1
- package/dist/client/assets/{project-settings-yZDxK7lp.js → project-settings-DUzdivtT.js} +1 -1
- package/dist/client/assets/{projects-list-DRgR5yeA.js → projects-list-dYIShmBn.js} +1 -1
- package/dist/client/assets/{registry-utils-B4sygtBA.js → registry-utils-DYLA2GAG.js} +1 -1
- package/dist/client/assets/{resizable-DI-Suit4.js → resizable-Bqmb9uTu.js} +1 -1
- package/dist/client/assets/{select-BqfLrW4j.js → select-DVuYJCXR.js} +1 -1
- package/dist/client/assets/shell-layout-BwXP9h9b.js +12 -0
- package/dist/client/assets/{spinner-B6kkRxZ1.js → spinner-to9-HjF2.js} +1 -1
- package/dist/client/assets/{store-invite-BuYr-V_q.js → store-invite-BuIWWDk9.js} +1 -1
- package/dist/client/assets/{switch-Vy1LOfjy.js → switch-BTkAX0MY.js} +1 -1
- package/dist/client/assets/{table-Cp3wDHvL.js → table-DFBNpg6g.js} +1 -1
- package/dist/client/assets/{tasks-Wx_mgsd7.js → tasks-BTVpnuUj.js} +1 -1
- package/dist/client/assets/{textarea-Cz5doER1.js → textarea-YgG_nDLT.js} +1 -1
- package/dist/client/assets/{tools-list-DlaoFt8L.js → tools-list-B1NbbdcF.js} +1 -1
- package/dist/client/assets/{topbar-portal-CHBG2h8g.js → topbar-portal-CI5v_Db_.js} +1 -1
- package/dist/client/assets/{typewriter-title-BBlbeBEA.js → typewriter-title-CcsTk-FV.js} +1 -1
- package/dist/client/assets/{use-binding-Dr0O-jnm.js → use-binding-BUud5X_9.js} +1 -1
- package/dist/client/assets/{use-connection-EDeK5Svd.js → use-connection-BNzIomSU.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-99ACH3DH.js → use-create-virtual-mcp-Dl7pNYUh.js} +1 -1
- package/dist/client/assets/{use-deco-chat-open-DeWYX57x.js → use-deco-chat-open-CgqT5zU8.js} +2 -2
- package/dist/client/assets/{use-install-from-registry-OTkyDAEF.js → use-install-from-registry-B06N2OVp.js} +1 -1
- package/dist/client/assets/{use-list-state-CoHPwr3M.js → use-list-state-BlenLNMo.js} +1 -1
- package/dist/client/assets/{use-llm-jfUM8DGq.js → use-llm-CxWRBkRU.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-O2DarmsN.js → use-mcp-prompts-BbWrI2Kz.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CLb1GouZ.js → use-mcp-tools-CU86yk0M.js} +1 -1
- package/dist/client/assets/{use-mobile-CsekvTUr.js → use-mobile-CXHjsd0Z.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DXrVDIU7.js → use-organization-settings-vNapJjmq.js} +1 -1
- package/dist/client/assets/{use-project-6LlQxxph.js → use-project-D8b3OuY_.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BSj9UgeS.js → use-virtual-mcp-Cc8gGP0Z.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Dba6X6L3.js +1 -0
- package/dist/client/assets/{useMutation-BsQPbdYX.js → useMutation-C-Auzg0E.js} +1 -1
- package/dist/client/assets/useQuery-CtZFUsAH.js +1 -0
- package/dist/client/assets/utils-Bh97AhNq.js +1 -0
- package/dist/client/assets/{view-mode-toggle-D0YAiOPf.js → view-mode-toggle-DQMstpVb.js} +1 -1
- package/dist/client/assets/{workflow-DcXyyOJb.js → workflow-Bj5TO8Jq.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +4 -4
- package/dist/server/migrate.js +1 -1
- package/dist/server/server.js +4 -4
- package/package.json +1 -1
- package/dist/client/assets/constants-qizKrs2K.js +0 -1
- package/dist/client/assets/shell-layout-Db9ulLGU.js +0 -12
- package/dist/client/assets/useInfiniteQuery-CjTCzZMC.js +0 -1
- package/dist/client/assets/useQuery-KPhLL-WX.js +0 -1
- package/dist/client/assets/utils-Dm1G0W2O.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1186,7 +1186,7 @@ ${X.stack}`;return G}}catch{}if(typeof X.toString==="function")try{let G=X.toStr
|
|
|
1186
1186
|
const args = ${JSON.stringify(X)};
|
|
1187
1187
|
return await __virtualToolFn(tools, args);
|
|
1188
1188
|
};
|
|
1189
|
-
`,F=await O2({code:H,tools:W,timeoutMs:30000});if(F.error)return{content:[{type:"text",text:`Virtual tool error: ${F.error}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(F.returnValue??null)}]}}catch(Z){return{content:[{type:"text",text:`Virtual tool execution failed: ${Z instanceof Error?Z.message:String(Z)}`}],isError:!0}}}async listResources(){return{resources:(await this._cachedResources).data}}async readResource(Y){let[X,Q]=await Promise.all([this._cachedResources,this._clients]),J=X.mappings.get(Y.uri);if(!J)throw Error(`Resource not found: ${Y.uri}`);let G=Q.get(J);if(!G)throw Error(`Connection not found for resource: ${Y.uri}`);return await G.readResource(Y)}async listPrompts(){return{prompts:(await this._cachedPrompts).data}}async getPrompt(Y){let[X,Q]=await Promise.all([this._cachedPrompts,this._clients]),J=X.mappings.get(Y.name);if(!J)throw Error(`Prompt not found: ${Y.name}`);let G=Q.get(J);if(!G)throw Error(`Connection not found for prompt: ${Y.name}`);return await G.getPrompt(Y)}async callStreamableTool(Y,X){let[Q,J]=await Promise.all([this._cachedTools,this._clients]),G=Q.mappings.get(Y);if(G){let W=J.get(G);if(W&&"callStreamableTool"in W)return W.callStreamableTool(Y,X)}let K=await this.callTool({name:Y,arguments:X});return new Response(JSON.stringify(K),{headers:{"Content-Type":"application/json"}})}async[Symbol.asyncDispose](){let Y=await this._clients;if(Y)await _N1(Y)}async close(){let Y=await this._clients;if(Y)await _N1(Y);await super.close()}getInstructions(){return this.options.virtualMcp.metadata?.instructions??void 0}}});var yN1,BJ4,fN1,UJ4,n2;var W70=j(()=>{b0();Qq();G70();yN1=z.object({query:z.string().min(1).describe("Search query to find tools by name or description"),limit:z.number().default(10).describe("Maximum number of results to return")}),BJ4=z.toJSONSchema(yN1),fN1=z.object({tools:z.array(z.string()).min(1).describe("Array of tool names to get detailed schemas for")}),UJ4=z.toJSONSchema(fN1);n2=class n2 extends UO{constructor(Y,X){super(Y,X)}getSearchTool(Y){return{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas. Total tools: ${Y}.`,inputSchema:BJ4}}getDescribeTool(){return{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:UJ4}}async handleSearch(Y){let X=yN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,J=ZK(Q.data),G=Vu(X.data.query,J,X.data.limit);return N2({query:X.data.query,results:G.map((K)=>({name:K.name,description:K.description,connection:K._meta.connectionTitle})),totalAvailable:J.length})}async handleDescribe(Y){let X=fN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,J=ZK(Q.data),G=qu(X.data.tools,J);return N2({tools:G.tools,notFound:G.notFound})}async listTools(){let Y=await this._cachedTools,X=ZK(Y.data);return{tools:[this.getSearchTool(X.length),this.getDescribeTool()]}}async callTool(Y){if(Y.name==="GATEWAY_SEARCH_TOOLS")return this.handleSearch(Y.arguments??{});if(Y.name==="GATEWAY_DESCRIBE_TOOLS")return this.handleDescribe(Y.arguments??{});return{content:[{type:"text",text:`Unknown tool: ${Y.name}. Available: GATEWAY_SEARCH_TOOLS, GATEWAY_DESCRIBE_TOOLS`}],isError:!0}}async routeToolCall(Y){return UO.prototype.callTool.call(this,Y)}}});var hN1,DJ4,Z70;var bN1=j(()=>{b0();Qq();W70();hN1=z.object({code:z.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:z.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),DJ4=z.toJSONSchema(hN1);Z70=class Z70 extends n2{constructor(Y,X){super(Y,X)}getRunCodeTool(){return{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:DJ4}}async handleRunCode(Y){let X=hN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,G={tools:ZK(Q.data),callTool:async(W,Z)=>{return this.routeToolCall({name:W,arguments:Z})}},K=await zu(X.data.code,G,X.data.timeoutMs);if(K.error)return l3(K);return N2(K)}async listTools(){return{tools:[...(await super.listTools()).tools,this.getRunCodeTool()]}}async callTool(Y){if(Y.name==="GATEWAY_RUN_CODE")return this.handleRunCode(Y.arguments??{});return super.callTool(Y)}}});function uN1(Y){let X=Y.slice().sort().join(","),Q=xN1.get(X);if(!Q){let J=z.object({name:(Y.length>0?z.enum(Y):z.string()).describe("The name of the tool to execute"),arguments:z.record(z.string(),z.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:z.toJSONSchema(J)},xN1.set(X,Q)}return Q}var xN1,K70;var gN1=j(()=>{b0();Qq();W70();xN1=new Map;K70=class K70 extends n2{constructor(Y,X){super(Y,X)}async getCallTool(){let Y=await this._cachedTools,Q=ZK(Y.data).map((G)=>G.name),{jsonSchema:J}=uN1(Q);return{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:J}}async handleCallTool(Y){let X=await this._cachedTools,Q=ZK(X.data),J=Q.map((F)=>F.name),{schema:G}=uN1(J),K=G.safeParse(Y);if(!K.success)return l3({error:K.error.flatten()});let{name:W,arguments:Z}=K.data;if(!new Map(Q.map((F)=>[F.name,F])).has(W))return{content:[{type:"text",text:`Tool not found: ${W}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return this.routeToolCall({name:W,arguments:Z})}async listTools(){let Y=await super.listTools(),X=await this.getCallTool();return{tools:[...Y.tools,X]}}async callTool(Y){if(Y.name==="GATEWAY_CALL_TOOL")return this.handleCallTool(Y.arguments??{});return super.callTool(Y)}}});function H70(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}function OJ4(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;if(!X||iW(X))return!1;return Y.id===X}async function mN1(Y,X){let Q=Y.id,J=await X.storage.virtualMcps.findById(Q);if(!J)throw Error(`Virtual MCP not found: ${Q}`);return i2(J,X,"passthrough")}async function i2(Y,X,Q){let G=Y.connections.map(($)=>$.connection_id).map(($)=>X.storage.connections.findById($)),K=Y.id?await X.storage.connections.findById(Y.id):null,W=await Promise.all(G),Z=[];if(K?.tools){for(let $ of K.tools)if(p3($))Z.push($)}let F={connections:W.filter(($)=>$!==null&&$.status==="active"&&!OJ4($,Y.id)),virtualMcp:Y,virtualTools:Z.length>0?Z:void 0};return Q==="smart_tool_selection"?new K70(F,X):Q==="code_execution"?new Z70(F,X):new UO(F,X)}var Iu=j(()=>{RY();qK();bN1();G70();gN1()});async function GQ(Y,X,Q=!1){if(Y.connection_type==="VIRTUAL")return mN1(Y,X);return IN1(Y,X,Q)}var F70=j(()=>{RN1();Iu()});async function $70(Y,X,Q){let J=await GQ(Y,X,Q),G=gF(J,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:NJ4,instructions:J.getInstructions()});return G.server.setRequestHandler(cK,async()=>{return await J.listResources().catch(Gq({resources:[]}))}),G.server.setRequestHandler(nK,async()=>{return await J.listResourceTemplates().catch(Gq({resourceTemplates:[]}))}),G.server.setRequestHandler(iK,async()=>{return await J.listPrompts().catch(Gq({prompts:[]}))}),G}var NJ4;var lN1=j(()=>{RY();_9();F70();J70();NJ4={tools:{},resources:{},prompts:{}}});function V70(Y,X){let Q=Y.listTools.bind(Y),J=async()=>{if(X.connection_type!=="VIRTUAL"&&X.tools&&X.tools.length>0)return{tools:X.tools.map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema,outputSchema:K.outputSchema,annotations:K.annotations,_meta:K._meta}))};return await Q()};return Y.listTools=J,Y}function LJ4(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find(($)=>$.name===K)?._meta};return await new VK(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return new Response(JSON.stringify({error:`Authorization failed: ${K.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}function a2(Y,X,Q,J,G){let K=async(Z,H)=>{if(Q.connection_type==="VIRTUAL"){let B=await Y.callTool({name:Z,arguments:H});return new Response(JSON.stringify(B),{headers:{"Content-Type":"application/json"}})}if(!Q.connection_url)throw Error("Streamable tools require HTTP connection with URL");let F=Q.connection_url,$={method:"tools/call",params:{name:Z,arguments:H}};if(!G.superUser){let D=await LJ4(J,X,Y.listTools.bind(Y))($,async()=>{return new Response});if(!D.ok)return D}let V=J.connectionId&&J.connectionId!==X?J.connectionId:void 0;return TN1({ctx:J,enabled:ny().enabled,connectionId:X,connectionTitle:Q.title,virtualMcpId:V})($,async()=>{let B=await m2(Q,J,G.superUser),D=Q.connection_headers;if(D&&"headers"in D)Object.assign(B,D.headers);let O=new URL(F);O.pathname=O.pathname.replace(/\/$/,"")+`/call-tool/${$.params.name}`;let L=JSON.parse(JSON.stringify($.params.arguments,(I,P)=>{if(P instanceof AbortSignal)return;if(typeof P==="function"||typeof P==="symbol")return;if(P===void 0)return;return P})),w=JSON.stringify(L);return await J.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":X,"tool.name":$.params.name,"request.id":J.metadata.requestId}},async(I)=>{let P=Date.now();try{let T=await fetch(O.toString(),{method:"POST",redirect:"manual",body:w,headers:{...B,"Content-Type":"application/json"}}),A=Date.now()-P;return J.meter.createHistogram("connection.proxy.streamable.duration").record(A,{"connection.id":X,"tool.name":$.params.name,status:T.ok?"success":"error"}),J.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":X,"tool.name":$.params.name,status:T.ok?"success":"error"}),I.end(),T}catch(T){let A=T,R=Date.now()-P;throw console.error("[with-streaming-support] fetch error",{connectionId:X,toolName:$.params.name,error:A.message,errorStack:A.stack,duration:R}),J.meter.createHistogram("connection.proxy.streamable.duration").record(R,{"connection.id":X,"tool.name":$.params.name,status:"error"}),J.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":X,"tool.name":$.params.name,error:A.message}),I.recordException(A),I.end(),T}})})},W=Object.assign(Object.create(Object.getPrototypeOf(Y)),Y);return W.callStreamableTool=K,W}var dN1=j(()=>{aG0();p2();bA();X70()});var pN1=j(()=>{dN1()});var DO=j(()=>{F70();lN1();pN1()});async function AJ4(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=VN1(K),Z=Tu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=qN1(Y,X);for(let K of G){if(K.endsWith("_self"))continue;let W=await J.storage.connections.findById(K);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${K}`);try{await J.access.check(K)}catch(Z){throw Error(`Access denied to referenced connection: ${K}. ${Z.message}`)}}}var wJ4,MJ4,q70;var cN1=j(()=>{nG0();DO();Eu();b0();k1();Qu();QK();wJ4=z.object({id:z.string().describe("ID of the connection to update"),data:qw.describe("Partial connection data to update")}),MJ4=z.object({item:kX.describe("The updated connection entity")});q70=f0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:wJ4,outputSchema:MJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to update connection");let{id:G,data:K}=Y,W=await X.storage.connections.findById(G);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let Z=K.connection_type??W.connection_type,H=K.connection_url??W.connection_url;if(Z==="VIRTUAL"){let L=xF(H);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await X.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=uF(L)}let F=K.configuration_state??W.configuration_state??{},$=K.configuration_scopes??W.configuration_scopes??[];if(K.configuration_state!==void 0||K.configuration_scopes!==void 0){if(K.configuration_state!==void 0)F=K.configuration_state??{};else if(F===null||F===void 0)F={};if(K.configuration_scopes!==void 0)$=K.configuration_scopes??[];if($.length>0)await AJ4(F,$,Q.id,X)}let V=K.connection_token??W.connection_token;if(!V)try{let w=await new $K(X.db,X.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await QO({id:W.id,title:K.title??W.title,connection_type:Z,connection_url:H,connection_token:V,connection_headers:K.connection_headers??W.connection_headers}).catch(()=>null),B=q?.length?q:null,D={...K,connection_url:H,tools:B,configuration_state:F,configuration_scopes:$,updated_by:J},O=await X.storage.connections.update(G,D);if((K.configuration_state!==void 0||K.configuration_scopes!==void 0)&&F&&$)try{await(await GQ(O,X,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:F,scopes:$}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:O}}})});var z70;var nN1=j(()=>{_5();k1();QK();z70=f0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:P2,outputSchema:T2(kX),handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J)throw Error(`Connection not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");if(J.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");return await X.storage.connections.delete(Y.id),{item:J}}})});var B70;var iN1=j(()=>{b0();k1();B70=f0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:z.object({id:z.string()}),outputSchema:z.object({id:z.string(),healthy:z.boolean(),latencyMs:z.number()}),handler:async(Y,X)=>{let Q=q1(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await X.storage.connections.testConnection(Y.id);return{id:Y.id,...G}}})});var aN1=j(()=>{vO1();FN1();$N1();cN1();nN1();iN1()});import{sql as $4}from"kysely";function rN1(Y){if(Y===null||Y===void 0)return"NULL";if(typeof Y==="number")return String(Y);if(typeof Y==="boolean")return Y?"TRUE":"FALSE";if(typeof Y==="string")return`'${Y.replace(/'/g,"''")}'`;if(Y instanceof Date)return`'${Y.toISOString()}'`;return`'${JSON.stringify(Y).replace(/'/g,"''")}'`}function EJ4(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,rN1(X[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,X.length)-1;G>=0;G--){let K=J[G],W=rN1(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function oN1(Y){return Y.replace(/-/g,"_")}function IJ4(Y){return`app_${oN1(Y)}`}function RJ4(Y){return`app_role_${oN1(Y)}`}function jJ4(Y){if(Y instanceof Error){let X=Y.message.toLowerCase(),Q=Y.code;return Q==="3F000"||Q==="42704"||Q==="22023"||X.includes("schema")&&X.includes("does not exist")||X.includes("role")&&X.includes("does not exist")}return!1}async function SJ4(Y,X,Q){if(await $4`CREATE SCHEMA IF NOT EXISTS ${$4.id(X)}`.execute(Y),!(await $4`
|
|
1189
|
+
`,F=await O2({code:H,tools:W,timeoutMs:30000});if(F.error)return{content:[{type:"text",text:`Virtual tool error: ${F.error}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(F.returnValue??null)}]}}catch(Z){return{content:[{type:"text",text:`Virtual tool execution failed: ${Z instanceof Error?Z.message:String(Z)}`}],isError:!0}}}async listResources(){return{resources:(await this._cachedResources).data}}async readResource(Y){let[X,Q]=await Promise.all([this._cachedResources,this._clients]),J=X.mappings.get(Y.uri);if(!J)throw Error(`Resource not found: ${Y.uri}`);let G=Q.get(J);if(!G)throw Error(`Connection not found for resource: ${Y.uri}`);return await G.readResource(Y)}async listPrompts(){return{prompts:(await this._cachedPrompts).data}}async getPrompt(Y){let[X,Q]=await Promise.all([this._cachedPrompts,this._clients]),J=X.mappings.get(Y.name);if(!J)throw Error(`Prompt not found: ${Y.name}`);let G=Q.get(J);if(!G)throw Error(`Connection not found for prompt: ${Y.name}`);return await G.getPrompt(Y)}async callStreamableTool(Y,X){let[Q,J]=await Promise.all([this._cachedTools,this._clients]),G=Q.mappings.get(Y);if(G){let W=J.get(G);if(W&&"callStreamableTool"in W)return W.callStreamableTool(Y,X)}let K=await this.callTool({name:Y,arguments:X});return new Response(JSON.stringify(K),{headers:{"Content-Type":"application/json"}})}async[Symbol.asyncDispose](){let Y=await this._clients;if(Y)await _N1(Y)}async close(){let Y=await this._clients;if(Y)await _N1(Y);await super.close()}getInstructions(){return this.options.virtualMcp.metadata?.instructions??void 0}}});var yN1,BJ4,fN1,UJ4,n2;var W70=j(()=>{b0();Qq();G70();yN1=z.object({query:z.string().min(1).describe("Search query to find tools by name or description"),limit:z.number().default(10).describe("Maximum number of results to return")}),BJ4=z.toJSONSchema(yN1),fN1=z.object({tools:z.array(z.string()).min(1).describe("Array of tool names to get detailed schemas for")}),UJ4=z.toJSONSchema(fN1);n2=class n2 extends UO{constructor(Y,X){super(Y,X)}getSearchTool(Y){return{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas. Total tools: ${Y}.`,inputSchema:BJ4}}getDescribeTool(){return{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:UJ4}}async handleSearch(Y){let X=yN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,J=ZK(Q.data),G=Vu(X.data.query,J,X.data.limit);return N2({query:X.data.query,results:G.map((K)=>({name:K.name,description:K.description,connection:K._meta.connectionTitle})),totalAvailable:J.length})}async handleDescribe(Y){let X=fN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,J=ZK(Q.data),G=qu(X.data.tools,J);return N2({tools:G.tools,notFound:G.notFound})}async listTools(){let Y=await this._cachedTools,X=ZK(Y.data);return{tools:[this.getSearchTool(X.length),this.getDescribeTool()]}}async callTool(Y){if(Y.name==="GATEWAY_SEARCH_TOOLS")return this.handleSearch(Y.arguments??{});if(Y.name==="GATEWAY_DESCRIBE_TOOLS")return this.handleDescribe(Y.arguments??{});return{content:[{type:"text",text:`Unknown tool: ${Y.name}. Available: GATEWAY_SEARCH_TOOLS, GATEWAY_DESCRIBE_TOOLS`}],isError:!0}}async routeToolCall(Y){return UO.prototype.callTool.call(this,Y)}}});var hN1,DJ4,Z70;var bN1=j(()=>{b0();Qq();W70();hN1=z.object({code:z.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:z.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),DJ4=z.toJSONSchema(hN1);Z70=class Z70 extends n2{constructor(Y,X){super(Y,X)}getRunCodeTool(){return{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:DJ4}}async handleRunCode(Y){let X=hN1.safeParse(Y);if(!X.success)return l3({error:X.error.flatten()});let Q=await this._cachedTools,G={tools:ZK(Q.data),callTool:async(W,Z)=>{return this.routeToolCall({name:W,arguments:Z})}},K=await zu(X.data.code,G,X.data.timeoutMs);if(K.error)return l3(K);return N2(K)}async listTools(){return{tools:[...(await super.listTools()).tools,this.getRunCodeTool()]}}async callTool(Y){if(Y.name==="GATEWAY_RUN_CODE")return this.handleRunCode(Y.arguments??{});return super.callTool(Y)}}});function uN1(Y){let X=Y.slice().sort().join(","),Q=xN1.get(X);if(!Q){let J=z.object({name:(Y.length>0?z.enum(Y):z.string()).describe("The name of the tool to execute"),arguments:z.record(z.string(),z.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:z.toJSONSchema(J)},xN1.set(X,Q)}return Q}var xN1,K70;var gN1=j(()=>{b0();Qq();W70();xN1=new Map;K70=class K70 extends n2{constructor(Y,X){super(Y,X)}async getCallTool(){let Y=await this._cachedTools,Q=ZK(Y.data).map((G)=>G.name),{jsonSchema:J}=uN1(Q);return{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:J}}async handleCallTool(Y){let X=await this._cachedTools,Q=ZK(X.data),J=Q.map((F)=>F.name),{schema:G}=uN1(J),K=G.safeParse(Y);if(!K.success)return l3({error:K.error.flatten()});let{name:W,arguments:Z}=K.data;if(!new Map(Q.map((F)=>[F.name,F])).has(W))return{content:[{type:"text",text:`Tool not found: ${W}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return this.routeToolCall({name:W,arguments:Z})}async listTools(){let Y=await super.listTools(),X=await this.getCallTool();return{tools:[...Y.tools,X]}}async callTool(Y){if(Y.name==="GATEWAY_CALL_TOOL")return this.handleCallTool(Y.arguments??{});return super.callTool(Y)}}});function H70(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}function OJ4(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;if(!X||iW(X))return!1;return Y.id===X}async function mN1(Y,X){let Q=Y.id,J=await X.storage.virtualMcps.findById(Q);if(!J)throw Error(`Virtual MCP not found: ${Q}`);return i2(J,X,"passthrough")}async function i2(Y,X,Q){let G=Y.connections.map(($)=>$.connection_id).map(($)=>X.storage.connections.findById($)),K=Y.id?await X.storage.connections.findById(Y.id):null,W=await Promise.all(G),Z=[];if(K?.tools){for(let $ of K.tools)if(p3($))Z.push($)}let F={connections:W.filter(($)=>$!==null&&$.status==="active"&&!OJ4($,Y.id)),virtualMcp:Y,virtualTools:Z.length>0?Z:void 0};return Q==="smart_tool_selection"?new K70(F,X):Q==="code_execution"?new Z70(F,X):new UO(F,X)}var Iu=j(()=>{RY();qK();bN1();G70();gN1()});async function GQ(Y,X,Q=!1){if(Y.connection_type==="VIRTUAL")return mN1(Y,X);return IN1(Y,X,Q)}var F70=j(()=>{RN1();Iu()});async function $70(Y,X,Q){let J=await GQ(Y,X,Q),G=gF(J,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:NJ4,instructions:J.getInstructions()});return G.server.setRequestHandler(cK,async()=>{return await J.listResources().catch(Gq({resources:[]}))}),G.server.setRequestHandler(nK,async()=>{return await J.listResourceTemplates().catch(Gq({resourceTemplates:[]}))}),G.server.setRequestHandler(iK,async()=>{return await J.listPrompts().catch(Gq({prompts:[]}))}),G}var NJ4;var lN1=j(()=>{RY();_9();F70();J70();NJ4={tools:{},resources:{},prompts:{}}});function V70(Y,X){let Q=Y.listTools.bind(Y),J=async()=>{if(X.connection_type!=="VIRTUAL"&&X.tools&&X.tools.length>0)return{tools:X.tools.map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema,outputSchema:K.outputSchema,annotations:K.annotations,_meta:K._meta}))};return await Q()};return Y.listTools=J,Y}function LJ4(Y,X,Q){return async(J,G)=>{try{let K=J.params.name,W=async()=>{let{tools:H}=await Q();return H.find(($)=>$.name===K)?._meta};return await new VK(Y.authInstance,Y.auth.user?.id??Y.auth.apiKey?.userId,K,Y.boundAuth,Y.auth.user?.role,X,W).check(K),await G()}catch(K){return new Response(JSON.stringify({error:`Authorization failed: ${K.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}function a2(Y,X,Q,J,G){let K=async(Z,H)=>{if(Q.connection_type==="VIRTUAL"){let B=await Y.callTool({name:Z,arguments:H});return new Response(JSON.stringify(B),{headers:{"Content-Type":"application/json"}})}if(!Q.connection_url)throw Error("Streamable tools require HTTP connection with URL");let F=Q.connection_url,$={method:"tools/call",params:{name:Z,arguments:H}};if(!G.superUser){let D=await LJ4(J,X,Y.listTools.bind(Y))($,async()=>{return new Response});if(!D.ok)return D}let V=J.connectionId&&J.connectionId!==X?J.connectionId:void 0;return TN1({ctx:J,enabled:ny().enabled,connectionId:X,connectionTitle:Q.title,virtualMcpId:V})($,async()=>{let B=await m2(Q,J,G.superUser),D=Q.connection_headers;if(D&&"headers"in D)Object.assign(B,D.headers);let O=new URL(F);O.pathname=O.pathname.replace(/\/$/,"")+`/call-tool/${$.params.name}`;let L=JSON.parse(JSON.stringify($.params.arguments,(I,P)=>{if(P instanceof AbortSignal)return;if(typeof P==="function"||typeof P==="symbol")return;if(P===void 0)return;return P})),w=JSON.stringify(L);return await J.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":X,"tool.name":$.params.name,"request.id":J.metadata.requestId}},async(I)=>{let P=Date.now();try{let T=await fetch(O.toString(),{method:"POST",redirect:"manual",body:w,headers:{...B,"Content-Type":"application/json"}}),A=Date.now()-P;return J.meter.createHistogram("connection.proxy.streamable.duration").record(A,{"connection.id":X,"tool.name":$.params.name,status:T.ok?"success":"error"}),J.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":X,"tool.name":$.params.name,status:T.ok?"success":"error"}),I.end(),T}catch(T){let A=T,R=Date.now()-P;throw console.error("[with-streaming-support] fetch error",{connectionId:X,toolName:$.params.name,error:A.message,errorStack:A.stack,duration:R}),J.meter.createHistogram("connection.proxy.streamable.duration").record(R,{"connection.id":X,"tool.name":$.params.name,status:"error"}),J.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":X,"tool.name":$.params.name,error:A.message}),I.recordException(A),I.end(),T}})})},W=Object.assign(Object.create(Object.getPrototypeOf(Y)),Y);return W.callStreamableTool=K,W}var dN1=j(()=>{aG0();p2();bA();X70()});var pN1=j(()=>{dN1()});var DO=j(()=>{F70();lN1();pN1()});async function AJ4(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=VN1(K),Z=Tu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=qN1(Y,X);for(let K of G){if(K.endsWith("_self"))continue;let W=await J.storage.connections.findById(K);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${K}`);try{await J.access.check(K)}catch(Z){throw Error(`Access denied to referenced connection: ${K}. ${Z.message}`)}}}var wJ4,MJ4,q70;var cN1=j(()=>{nG0();DO();Eu();b0();k1();Qu();QK();wJ4=z.object({id:z.string().describe("ID of the connection to update"),data:qw.describe("Partial connection data to update")}),MJ4=z.object({item:kX.describe("The updated connection entity")});q70=f0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:wJ4,outputSchema:MJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to update connection");let{id:G,data:K}=Y,W=await X.storage.connections.findById(G);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let Z=K.connection_type??W.connection_type,H=K.connection_url??W.connection_url;if(Z==="VIRTUAL"){let L=xF(H);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await X.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=uF(L)}let F=K.configuration_state??W.configuration_state??{},$=K.configuration_scopes??W.configuration_scopes??[];if(K.configuration_state!==void 0||K.configuration_scopes!==void 0){if(K.configuration_state!==void 0)F=K.configuration_state??{};else if(F===null||F===void 0)F={};if(K.configuration_scopes!==void 0)$=K.configuration_scopes??[];if($.length>0)await AJ4(F,$,Q.id,X)}let V=K.connection_token??W.connection_token;if(!V)try{let w=await new $K(X.db,X.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await QO({id:W.id,title:K.title??W.title,connection_type:Z,connection_url:H,connection_token:V,connection_headers:K.connection_headers??W.connection_headers}).catch(()=>null),B=q?.length?q:null,D={...K,connection_url:H,tools:B,configuration_state:F,configuration_scopes:$,updated_by:J},O=await X.storage.connections.update(G,D);if((K.configuration_state!==void 0||K.configuration_scopes!==void 0)&&F&&$)try{await(await GQ(O,X,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:F,scopes:$}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:O}}})});var z70;var nN1=j(()=>{_5();k1();QK();z70=f0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:P2,outputSchema:T2(kX),handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J)throw Error(`Connection not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");if(J.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let K=await X.storage.virtualMcps.listByConnectionId(Q.id,Y.id);if(K.length>0){let W=K.map((Z)=>`"${Z.title}"`).join(", ");throw Error(`Cannot delete this connection because it is used by the following agent(s): ${W}. Remove it from those agents first.`)}return await X.storage.connections.delete(Y.id),{item:J}}})});var B70;var iN1=j(()=>{b0();k1();B70=f0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:z.object({id:z.string()}),outputSchema:z.object({id:z.string(),healthy:z.boolean(),latencyMs:z.number()}),handler:async(Y,X)=>{let Q=q1(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await X.storage.connections.testConnection(Y.id);return{id:Y.id,...G}}})});var aN1=j(()=>{vO1();FN1();$N1();cN1();nN1();iN1()});import{sql as $4}from"kysely";function rN1(Y){if(Y===null||Y===void 0)return"NULL";if(typeof Y==="number")return String(Y);if(typeof Y==="boolean")return Y?"TRUE":"FALSE";if(typeof Y==="string")return`'${Y.replace(/'/g,"''")}'`;if(Y instanceof Date)return`'${Y.toISOString()}'`;return`'${JSON.stringify(Y).replace(/'/g,"''")}'`}function EJ4(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,rN1(X[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,X.length)-1;G>=0;G--){let K=J[G],W=rN1(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function oN1(Y){return Y.replace(/-/g,"_")}function IJ4(Y){return`app_${oN1(Y)}`}function RJ4(Y){return`app_role_${oN1(Y)}`}function jJ4(Y){if(Y instanceof Error){let X=Y.message.toLowerCase(),Q=Y.code;return Q==="3F000"||Q==="42704"||Q==="22023"||X.includes("schema")&&X.includes("does not exist")||X.includes("role")&&X.includes("does not exist")}return!1}async function SJ4(Y,X,Q){if(await $4`CREATE SCHEMA IF NOT EXISTS ${$4.id(X)}`.execute(Y),!(await $4`
|
|
1190
1190
|
SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
|
|
1191
1191
|
`.execute(Y)).rows[0]?.exists)await $4`CREATE ROLE ${$4.id(Q)} NOLOGIN`.execute(Y);await $4`GRANT ${$4.id(Q)} TO CURRENT_USER`.execute(Y),await $4`GRANT USAGE, CREATE ON SCHEMA ${$4.id(X)} TO ${$4.id(Q)}`.execute(Y),await $4`GRANT ALL ON ALL TABLES IN SCHEMA ${$4.id(X)} TO ${$4.id(Q)}`.execute(Y),await $4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${$4.id(X)} TO ${$4.id(Q)}`.execute(Y),await $4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${$4.id(X)} GRANT ALL ON TABLES TO ${$4.id(Q)}`.execute(Y),await $4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${$4.id(X)} GRANT ALL ON SEQUENCES TO ${$4.id(Q)}`.execute(Y),await $4`REVOKE ALL ON SCHEMA public FROM ${$4.id(Q)}`.execute(Y)}async function kJ4(Y,X,Q,J){try{return await Y.transaction().execute(async(G)=>{return await $4`SET LOCAL ROLE ${$4.id(Q)}`.execute(G),await $4`SET LOCAL search_path TO ${$4.id(X)}`.execute(G),await $4.raw(J).execute(G)})}catch(G){if(jJ4(G))return await SJ4(Y,X,Q),await Y.transaction().execute(async(K)=>{return await $4`SET LOCAL ROLE ${$4.id(Q)}`.execute(K),await $4`SET LOCAL search_path TO ${$4.id(X)}`.execute(K),await $4.raw(J).execute(K)});throw G}}var TJ4,CJ4,sN1;var tN1=j(()=>{b0();k1();TJ4=z.object({results:z.array(z.unknown()).optional(),success:z.boolean().optional()});CJ4=z.object({sql:z.string().describe("The SQL query to run"),params:z.array(z.any()).describe("The parameters to pass to the SQL query").optional()});sN1=f0({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:CJ4,outputSchema:z.object({result:z.array(TJ4)}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=EJ4(Y.sql,Y.params||[]);if(!X.connectionId)throw Error("Connection context required for database access");let J=IJ4(X.connectionId),G=RJ4(X.connectionId);return{result:[{results:(await kJ4(X.db,J,G,Q)).rows,success:!0}]}}})});var eN1,_J4,YL1;var zK=j(()=>{b0();Lu();eN1=z.object({connectionId:z.string().optional().describe("Filter subscriptions by connection ID (optional)")}),_J4=z.object({id:z.string().describe("Subscription ID"),connectionId:z.string().describe("Subscriber connection ID"),eventType:z.string().describe("Event type pattern"),publisher:z.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:z.string().nullable().describe("JSONPath filter expression"),enabled:z.boolean().describe("Whether subscription is enabled"),createdAt:z.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:z.string().datetime().describe("Updated timestamp (ISO 8601)")}),YL1=z.object({subscriptions:z.array(_J4).describe("List of subscriptions")})});var U70;var XL1=j(()=>{k1();zK();U70=f0({name:"EVENT_PUBLISH",description:"Publish an event to the event bus. Supports immediate, scheduled (deliverAt), and recurring (cron) delivery. The source is automatically set to the caller's connection ID.",inputSchema:E2,outputSchema:C2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await X.eventBus.publish(Q.id,J,{type:Y.type,subject:Y.subject,data:Y.data,deliverAt:Y.deliverAt,cron:Y.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var D70;var QL1=j(()=>{k1();zK();D70=f0({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:I2,outputSchema:R2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await X.eventBus.subscribe(Q.id,{connectionId:J,eventType:Y.eventType,publisher:Y.publisher,filter:Y.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var O70;var JL1=j(()=>{k1();zK();O70=f0({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:k2,outputSchema:v2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await X.eventBus.getSubscription(Q.id,Y.subscriptionId);if(!G)throw Error(`Subscription not found: ${Y.subscriptionId}`);if(G.connectionId!==J)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await X.eventBus.unsubscribe(Q.id,Y.subscriptionId)).success,subscriptionId:Y.subscriptionId}}})});var N70;var GL1=j(()=>{k1();zK();N70=f0({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:_2,outputSchema:y2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await X.eventBus.getEvent(Q.id,Y.eventId))throw Error(`Event not found: ${Y.eventId}`);if(!(await X.eventBus.cancelEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:Y.eventId}}})});var L70;var WL1=j(()=>{k1();zK();L70=f0({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:f2,outputSchema:h2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await X.eventBus.ackEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to acknowledge event. Either the event was not found, already delivered, or you are not a subscriber.");return{success:!0,eventId:Y.eventId}}})});var w70;var ZL1=j(()=>{k1();zK();w70=f0({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:eN1,outputSchema:YL1,handler:async(Y,X)=>{g0(X);let Q=q1(X);return await X.access.check(),{subscriptions:(await X.eventBus.listSubscriptions(Q.id,Y.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}))}}})});var M70;var KL1=j(()=>{k1();zK();M70=f0({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:j2,outputSchema:S2,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await X.eventBus.syncSubscriptions(Q.id,{connectionId:J,subscriptions:Y.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map((K)=>({id:K.id,connectionId:K.connectionId,eventType:K.eventType,publisher:K.publisher,filter:K.filter,enabled:K.enabled,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var HL1=j(()=>{XL1();QL1();JL1();GL1();WL1();ZL1();KL1();zK()});var OO=j(()=>{yS()});var fJ4,hJ4,A70;var FL1=j(()=>{b0();k1();OO();fJ4=z.object({data:Bw.describe("Data for the new virtual MCP")}),hJ4=z.object({item:tQ.describe("The created virtual MCP entity")}),A70=f0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:fJ4,outputSchema:hJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to create virtual MCP");return{item:await X.storage.virtualMcps.create(Q.id,J,Y.data)}}})});function bJ4(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function c3(Y){return typeof Y==="string"||typeof Y==="number"}function P70(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function xJ4(Y,X){return Y.connections.some((Q)=>Q.connection_id===X)}function Ru(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>Ru(Y,F));case"or":return H.some((F)=>Ru(Y,F));case"not":return!H.every((F)=>Ru(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join(".");if(K==="connection_id"){if(J!=="eq"||typeof G!=="string")return!1;return xJ4(Y,G)}let W=P70(Y,K);switch(J){case"eq":return W===G;case"gt":return c3(W)&&c3(G)&&W>G;case"gte":return c3(W)&&c3(G)&&W>=G;case"lt":return c3(W)&&c3(G)&&W<G;case"lte":return c3(W)&&c3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=bJ4(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function uJ4(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=P70(Q,K),Z=P70(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var gJ4,mJ4,T70;var $L1=j(()=>{_5();k1();OO();gJ4=KK,mJ4=HK(tQ),T70=f0({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:gJ4,outputSchema:mJ4,handler:async(Y,X)=>{await X.access.check();let Q=q1(X),J=Y.where&&!("conditions"in Y.where)&&Y.where.field.join(".")==="connection_id"&&Y.where.operator==="eq"&&typeof Y.where.value==="string"?Y.where.value:void 0,K=J?await X.storage.virtualMcps.listByConnectionId(Q.id,J):await X.storage.virtualMcps.list(Q.id);if(Y.where)K=K.filter((V)=>Ru(V,Y.where));if(Y.orderBy&&Y.orderBy.length>0)K=uJ4(K,Y.orderBy);let W=K.length,Z=Y.offset??0,H=Y.limit??100,F=K.slice(Z,Z+H),$=Z+H<W;return{items:F,totalCount:W,hasMore:$}}})});var lJ4,dJ4,E70;var VL1=j(()=>{b0();k1();OO();lJ4=z.object({id:z.string().describe("ID of the virtual MCP to retrieve")}),dJ4=z.object({item:tQ.nullable().describe("The retrieved virtual MCP, or null if not found")}),E70=f0({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:lJ4,outputSchema:dJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(J&&J.organization_id!==Q.id)return{item:null};if(!J)return{item:null};return{item:J}}})});var pJ4,cJ4,C70;var qL1=j(()=>{b0();k1();OO();pJ4=z.object({id:z.string().describe("ID of the virtual MCP to update"),data:Uw.describe("Partial virtual MCP data to update")}),cJ4=z.object({item:tQ.describe("The updated virtual MCP entity")}),C70=f0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:pJ4,outputSchema:cJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to update virtual MCP");let G=await X.storage.virtualMcps.findById(Y.id);if(!G)throw Error(`Virtual MCP not found: ${Y.id}`);if(G.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return{item:await X.storage.virtualMcps.update(Y.id,J,Y.data)}}})});var nJ4,iJ4,I70;var zL1=j(()=>{b0();k1();OO();nJ4=z.object({id:z.string().describe("ID of the virtual MCP to delete")}),iJ4=z.object({item:tQ.describe("The deleted virtual MCP entity")}),I70=f0({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:nJ4,outputSchema:iJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(!J)throw Error(`Virtual MCP not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return await X.storage.virtualMcps.delete(Y.id),{item:J}}})});var BL1=j(()=>{FL1();$L1();VL1();qL1();zL1()});var rJ4,oJ4,R70;var UL1=j(()=>{b0();k1();qK();rJ4=z.object({virtual_mcp_id:z.string().describe("ID of the Virtual MCP to add the tool to"),data:jN1.describe("Virtual tool data")}),oJ4=z.object({item:MW.describe("The created virtual tool")}),R70=f0({name:"COLLECTION_VIRTUAL_TOOLS_CREATE",description:"Create a new virtual tool on a Virtual MCP. The tool code should be a JavaScript ES module that exports a default async function: export default async (tools, args) => { ... }. Specify connection_dependencies to indicate which connections this tool uses.",inputSchema:rJ4,outputSchema:oJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=Y.data.connection_dependencies??[];return{item:await X.storage.virtualMcps.createVirtualTool(Y.virtual_mcp_id,Y.data,G)}}})});var sJ4,tJ4,j70;var DL1=j(()=>{b0();k1();qK();sJ4=z.object({virtual_mcp_id:z.string().describe("ID of the Virtual MCP to list tools for"),limit:z.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:z.number().int().min(0).optional().describe("Number of items to skip")}),tJ4=z.object({items:z.array(MW).describe("Array of virtual tools"),totalCount:z.number().int().min(0).optional().describe("Total number of virtual tools"),hasMore:z.boolean().optional().describe("Whether there are more items available")}),j70=f0({name:"COLLECTION_VIRTUAL_TOOLS_LIST",description:"List all virtual tools for a Virtual MCP",inputSchema:sJ4,outputSchema:tJ4,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{items:[],totalCount:0,hasMore:!1};let G=await X.storage.virtualMcps.listVirtualTools(Y.virtual_mcp_id),K=G.length,W=Y.offset??0,Z=Y.limit??100,H=G.slice(W,W+Z),F=W+Z<K;return{items:H,totalCount:K,hasMore:F}}})});var eJ4,Y54,S70;var OL1=j(()=>{b0();k1();qK();eJ4=z.object({virtual_mcp_id:z.string().describe("ID of the Virtual MCP"),name:z.string().describe("Name of the virtual tool to retrieve")}),Y54=z.object({item:MW.nullable().describe("The retrieved virtual tool, or null if not found")}),S70=f0({name:"COLLECTION_VIRTUAL_TOOLS_GET",description:"Get a virtual tool by name from a Virtual MCP",inputSchema:eJ4,outputSchema:Y54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name)}}})});var X54,Q54,k70;var NL1=j(()=>{b0();k1();qK();X54=z.object({virtual_mcp_id:z.string().describe("ID of the Virtual MCP"),name:z.string().describe("Current name of the virtual tool to update"),data:SN1.describe("Partial virtual tool data to update")}),Q54=z.object({item:MW.describe("The updated virtual tool")}),k70=f0({name:"COLLECTION_VIRTUAL_TOOLS_UPDATE",description:"Update an existing virtual tool on a Virtual MCP. Specify connection_dependencies to update which connections this tool uses.",inputSchema:X54,outputSchema:Q54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);if(!await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name))throw Error(`Virtual tool not found: ${Y.name}`);let K=Y.data.connection_dependencies;return{item:await X.storage.virtualMcps.updateVirtualTool(Y.virtual_mcp_id,Y.name,Y.data,K)}}})});var J54,G54,v70;var LL1=j(()=>{b0();k1();qK();J54=z.object({virtual_mcp_id:z.string().describe("ID of the Virtual MCP"),name:z.string().describe("Name of the virtual tool to delete")}),G54=z.object({item:MW.describe("The deleted virtual tool")}),v70=f0({name:"COLLECTION_VIRTUAL_TOOLS_DELETE",description:"Delete a virtual tool from a Virtual MCP",inputSchema:J54,outputSchema:G54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name);if(!G)throw Error(`Virtual tool not found: ${Y.name}`);return await X.storage.virtualMcps.deleteVirtualTool(Y.virtual_mcp_id,Y.name),{item:G}}})});var wL1=j(()=>{UL1();DL1();OL1();NL1();LL1()});var Z54,_70;var ML1=j(()=>{k1();b0();Z54=z.object({id:z.string().optional().describe("Unique log identifier"),organizationId:z.string().describe("Organization ID"),connectionId:z.string().describe("Connection ID"),connectionTitle:z.string().describe("Connection display name"),toolName:z.string().describe("Name of the tool that was called"),input:z.record(z.string(),z.unknown()).describe("Redacted tool input"),output:z.record(z.string(),z.unknown()).describe("Redacted tool output"),isError:z.boolean().describe("Whether the call resulted in an error"),errorMessage:z.string().nullish().describe("Error message if applicable"),durationMs:z.number().describe("Call duration in milliseconds"),timestamp:z.string().describe("ISO 8601 timestamp of the call"),userId:z.string().nullish().describe("User who triggered the call"),requestId:z.string().describe("Unique request identifier"),userAgent:z.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:z.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:z.record(z.string(),z.string()).nullish().describe("Custom key-value metadata attached to the log")}),_70=f0({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:z.object({connectionId:z.string().optional().describe("Filter by connection ID"),excludeConnectionIds:z.array(z.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:z.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:z.string().optional().describe("Filter by tool name"),isError:z.boolean().optional().describe("Filter by error status"),startDate:z.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:z.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:z.number().default(20).describe("Maximum number of results"),offset:z.number().default(0).describe("Offset for pagination"),properties:z.record(z.string(),z.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:z.array(z.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:z.record(z.string(),z.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:z.record(z.string(),z.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:z.object({logs:z.array(Z54).describe("Array of monitoring logs"),total:z.number().describe("Total number of logs matching filters"),offset:z.number().describe("Current offset for pagination"),limit:z.number().describe("Current limit for pagination")}),handler:async(Y,X)=>{let Q=q1(X),G=Y.properties||Y.propertyKeys||Y.propertyPatterns||Y.propertyInValues?{properties:Y.properties,propertyKeys:Y.propertyKeys,propertyPatterns:Y.propertyPatterns,propertyInValues:Y.propertyInValues}:void 0,K={organizationId:Q.id,connectionId:Y.connectionId,excludeConnectionIds:Y.excludeConnectionIds,virtualMcpId:Y.virtualMcpId,toolName:Y.toolName,isError:Y.isError,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0,limit:Y.limit,offset:Y.offset,propertyFilters:G},W=await X.storage.monitoring.query(K);return{logs:W.logs.map((Z)=>({...Z,timestamp:Z.timestamp instanceof Date?Z.timestamp.toISOString():Z.timestamp})),total:W.total,offset:Y.offset,limit:Y.limit}}})});var y70;var AL1=j(()=>{k1();b0();y70=f0({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:z.object({startDate:z.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:z.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:z.object({totalCalls:z.number().describe("Total number of tool calls"),errorRate:z.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:z.number().describe("Average call duration in milliseconds"),errorRatePercent:z.string().describe("Error rate as a percentage string")}),handler:async(Y,X)=>{let J={organizationId:q1(X).id,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0},G=await X.storage.monitoring.getStats(J);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var PL1=j(()=>{ML1();AL1()});var f70;var TL1=j(()=>{b0();k1();f70=f0({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:z.object({slug:z.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:z.string().min(1).max(255),description:z.string().optional()}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),members:z.array(z.any()).optional()}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=g8(X);if(!Q)throw Error("User ID required to create organization");let J=await X.boundAuth.organization.create({name:Y.name,slug:Y.slug,metadata:Y.description?{description:Y.description}:void 0,userId:Q});if(!J)throw Error("Failed to create organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var h70;var EL1=j(()=>{b0();k1();h70=f0({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:z.object({userId:z.string().optional()}),outputSchema:z.object({organizations:z.array(z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=g8(X),J=Y.userId||Q;if(!J)throw Error("User ID required to list organizations");return{organizations:(await X.boundAuth.organization.list(J)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var b70;var CL1=j(()=>{b0();k1();b70=f0({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:z.object({}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),members:z.array(z.any()).optional(),invitations:z.array(z.any()).optional()}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=await X.boundAuth.organization.get();if(!Q)throw Error("No active organization found");let J=new Date,G=Q.invitations?.filter((K)=>new Date(K.expiresAt)>J);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});var x70;var IL1=j(()=>{b0();k1();x70=f0({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:z.object({id:z.string(),slug:z.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:z.string().min(1).max(255).optional(),description:z.string().optional()}),outputSchema:z.object({id:z.string(),name:z.string(),slug:z.string(),logo:z.string().nullable().optional(),metadata:z.any().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q={};if(Y.name)Q.name=Y.name;if(Y.slug)Q.slug=Y.slug;if(Y.description)Q.metadata={description:Y.description};let J=await X.boundAuth.organization.update({organizationId:Y.id,data:Q});if(!J)throw Error("Failed to update organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var u70;var RL1=j(()=>{b0();k1();u70=f0({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:z.object({id:z.string()}),outputSchema:z.object({success:z.boolean(),id:z.string()}),handler:async(Y,X)=>{return g0(X),await X.access.check(),await X.boundAuth.organization.delete(Y.id),{success:!0,id:Y.id}}})});var r2;var g70=j(()=>{b0();r2=z.object({title:z.string(),url:z.string(),icon:z.string()})});var m70;var jL1=j(()=>{b0();k1();g70();m70=f0({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:z.object({}),outputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(r2).nullable().optional(),enabled_plugins:z.array(z.string()).nullable().optional(),createdAt:z.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.storage.organizationSettings.get(Q);if(!J)return{organizationId:Q};return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}})});var l70;var SL1=j(()=>{b0();k1();g70();l70=f0({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(r2).optional(),enabled_plugins:z.array(z.string()).optional()}),outputSchema:z.object({organizationId:z.string(),sidebar_items:z.array(r2).nullable().optional(),enabled_plugins:z.array(z.string()).nullable().optional(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{if(g0(X),await X.access.check(),X.organization&&X.organization.id!==Y.organizationId)throw Error("Cannot update settings for a different organization");let Q=await X.storage.organizationSettings.upsert(Y.organizationId,{sidebar_items:Y.sidebar_items,enabled_plugins:Y.enabled_plugins});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});var d70;var kL1=j(()=>{b0();k1();d70=f0({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:z.object({organizationId:z.string().optional(),userId:z.string(),role:z.array(z.string())}),outputSchema:z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.union([z.string(),z.array(z.string())]),createdAt:z.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.addMember({organizationId:Q,userId:Y.userId,role:Y.role});if(!J)throw Error("Failed to add member");return{...J,role:J.role,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var p70;var vL1=j(()=>{b0();k1();p70=f0({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:z.object({organizationId:z.string().optional(),memberIdOrEmail:z.string()}),outputSchema:z.object({success:z.boolean(),memberIdOrEmail:z.string()}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return await X.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:Y.memberIdOrEmail}),{success:!0,memberIdOrEmail:Y.memberIdOrEmail}}})});var c70;var _L1=j(()=>{b0();k1();c70=f0({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:z.object({limit:z.number().optional(),offset:z.number().optional()}),outputSchema:z.object({members:z.array(z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.string(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),user:z.object({id:z.string(),name:z.string(),email:z.string(),image:z.string().optional()}).optional()}))}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.listMembers({organizationId:Q,limit:Y.limit,offset:Y.offset});return{members:(Array.isArray(J)?J:[]).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var n70;var yL1=j(()=>{b0();k1();n70=f0({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:z.object({organizationId:z.string().optional(),memberId:z.string(),role:z.array(z.string())}),outputSchema:z.object({id:z.string(),organizationId:z.string(),userId:z.string(),role:z.union([z.literal("admin"),z.literal("member"),z.literal("owner")]),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),user:z.object({email:z.string(),name:z.string(),image:z.string().optional()})}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:Y.memberId,role:Y.role});if(!J)throw Error("Failed to update member role");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var fL1=j(()=>{TL1();EL1();CL1();IL1();RL1();jL1();SL1();kL1();vL1();_L1();yL1()});var F54,ju,$54,Zq,hL1,Su;var Kq=j(()=>{b0();F54=z.object({banner:z.string().nullable(),bannerColor:z.string().nullable(),icon:z.string().nullable(),themeColor:z.string().nullable()}),ju=z.object({banner:z.string().nullable().optional(),bannerColor:z.string().nullable().optional(),icon:z.string().nullable().optional(),themeColor:z.string().nullable().optional()}),$54=z.object({id:z.string(),title:z.string(),icon:z.string().nullable()}),Zq=z.object({id:z.string(),organizationId:z.string(),slug:z.string(),name:z.string(),description:z.string().nullable(),enabledPlugins:z.array(z.string()).nullable(),ui:F54.nullable(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().describe("ISO 8601 timestamp")}),hL1=Zq.omit({organizationId:!0}).extend({boundConnections:z.array($54)}),Su=z.object({id:z.string(),projectId:z.string(),pluginId:z.string(),connectionId:z.string().nullable(),settings:z.record(z.string(),z.unknown()).nullable(),createdAt:z.string().datetime().describe("ISO 8601 timestamp"),updatedAt:z.string().datetime().describe("ISO 8601 timestamp")})});var i70;var bL1=j(()=>{b0();k1();Kq();i70=f0({name:"PROJECT_LIST",description:"List all projects in an organization",inputSchema:z.object({organizationId:z.string().describe("Organization ID to list projects for")}),outputSchema:z.object({projects:z.array(hL1)}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=await X.storage.projects.list(Y.organizationId),J=Q.map((K)=>K.id),G=await X.storage.projectPluginConfigs.getBoundConnectionsForProjects(J);return{projects:Q.map((K)=>({id:K.id,slug:K.slug,name:K.name,description:K.description,enabledPlugins:K.enabledPlugins,ui:K.ui,boundConnections:G.get(K.id)??[],createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var a70;var xL1=j(()=>{b0();k1();Kq();a70=f0({name:"PROJECT_GET",description:"Get a project by ID or slug",inputSchema:z.object({organizationId:z.string().describe("Organization ID"),projectId:z.string().optional().describe("Project ID (either this or slug required)"),slug:z.string().optional().describe("Project slug (either this or projectId required)")}).refine((Y)=>Y.projectId||Y.slug,{message:"Either projectId or slug must be provided"}),outputSchema:z.object({project:Zq.nullable()}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=null;if(Y.projectId)Q=await X.storage.projects.get(Y.projectId);else if(Y.slug)Q=await X.storage.projects.getBySlug(Y.organizationId,Y.slug);if(!Q)return{project:null};return{project:{id:Q.id,organizationId:Q.organizationId,slug:Q.slug,name:Q.name,description:Q.description,enabledPlugins:Q.enabledPlugins,ui:Q.ui,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}}})});var r70;var uL1=j(()=>{b0();RY();k1();Kq();r70=f0({name:"PROJECT_CREATE",description:"Create a new project in an organization",inputSchema:z.object({organizationId:z.string().describe("Organization ID"),slug:z.string().min(1).max(100).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").describe("URL-friendly identifier"),name:z.string().min(1).max(200).describe("Display name"),description:z.string().max(1000).nullable().optional().describe("Project description"),enabledPlugins:z.array(z.string()).nullable().optional().describe("Plugin IDs to enable"),ui:ju.nullable().optional().describe("UI customization")}),outputSchema:z.object({project:Zq}),handler:async(Y,X)=>{g0(X),await X.access.check();let{organizationId:Q,slug:J,name:G,description:K,enabledPlugins:W,ui:Z}=Y;if(J===x5)throw Error(`Slug "${x5}" is reserved`);if(await X.storage.projects.getBySlug(Q,J))throw Error(`Project with slug "${J}" already exists in this organization`);let F=Z?{banner:Z.banner??null,bannerColor:Z.bannerColor??null,icon:Z.icon??null,themeColor:Z.themeColor??null}:null,$=await X.storage.projects.create({organizationId:Q,slug:J,name:G,description:K??null,enabledPlugins:W??null,ui:F});return{project:{id:$.id,organizationId:$.organizationId,slug:$.slug,name:$.name,description:$.description,enabledPlugins:$.enabledPlugins,ui:$.ui,createdAt:$.createdAt instanceof Date?$.createdAt.toISOString():$.createdAt,updatedAt:$.updatedAt instanceof Date?$.updatedAt.toISOString():$.updatedAt}}}})});var o70;var gL1=j(()=>{b0();k1();Kq();o70=f0({name:"PROJECT_UPDATE",description:"Update a project's details",inputSchema:z.object({projectId:z.string().describe("Project ID to update"),name:z.string().min(1).max(200).optional().describe("New display name"),description:z.string().max(1000).nullable().optional().describe("New description"),enabledPlugins:z.array(z.string()).nullable().optional().describe("Updated plugin IDs"),ui:ju.nullable().optional().describe("Updated UI customization")}),outputSchema:z.object({project:Zq.nullable()}),handler:async(Y,X)=>{g0(X),await X.access.check();let{projectId:Q,name:J,description:G,enabledPlugins:K,ui:W}=Y,Z={};if(J!==void 0)Z.name=J;if(G!==void 0)Z.description=G;if(K!==void 0)Z.enabledPlugins=K;if(W!==void 0)Z.ui=W?{banner:W.banner??null,bannerColor:W.bannerColor??null,icon:W.icon??null,themeColor:W.themeColor??null}:null;let H=await X.storage.projects.update(Q,Z);if(!H)return{project:null};return{project:{id:H.id,organizationId:H.organizationId,slug:H.slug,name:H.name,description:H.description,enabledPlugins:H.enabledPlugins,ui:H.ui,createdAt:H.createdAt instanceof Date?H.createdAt.toISOString():H.createdAt,updatedAt:H.updatedAt instanceof Date?H.updatedAt.toISOString():H.updatedAt}}}})});var s70;var mL1=j(()=>{b0();RY();k1();s70=f0({name:"PROJECT_DELETE",description:"Delete a project (cannot delete org-admin)",inputSchema:z.object({projectId:z.string().describe("Project ID to delete")}),outputSchema:z.object({success:z.boolean(),message:z.string().optional()}),handler:async(Y,X)=>{g0(X),await X.access.check();let{projectId:Q}=Y,J=await X.storage.projects.get(Q);if(!J)return{success:!1,message:"Project not found"};if(J.slug===x5)return{success:!1,message:"Cannot delete the org-admin project"};return{success:await X.storage.projects.delete(Q)}}})});var t70;var lL1=j(()=>{b0();k1();Kq();t70=f0({name:"PROJECT_PLUGIN_CONFIG_GET",description:"Get plugin configuration for a project",inputSchema:z.object({projectId:z.string().describe("Project ID"),pluginId:z.string().describe("Plugin ID")}),outputSchema:z.object({config:Su.nullable()}),handler:async(Y,X)=>{g0(X),await X.access.check();let{projectId:Q,pluginId:J}=Y,G=await X.storage.projectPluginConfigs.get(Q,J);if(!G)return{config:null};return{config:{id:G.id,projectId:G.projectId,pluginId:G.pluginId,connectionId:G.connectionId,settings:G.settings,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var e70;var dL1=j(()=>{b0();k1();Kq();Au();e70=f0({name:"PROJECT_PLUGIN_CONFIG_UPDATE",description:"Update or create plugin configuration for a project",inputSchema:z.object({projectId:z.string().describe("Project ID"),pluginId:z.string().describe("Plugin ID"),connectionId:z.string().nullable().optional().describe("MCP connection to bind"),settings:z.record(z.string(),z.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:z.object({config:Su}),handler:async(Y,X)=>{g0(X),await X.access.check();let{projectId:Q,pluginId:J,connectionId:G,settings:K}=Y,W=g8(X),Z=await X.storage.projects.get(Q);if(!Z)throw Error(`Project not found: ${Q}`);let H=G?await X.storage.connections.findById(G):null;if(G&&Z.organizationId&&!H&&$O()){if(Mu(G,Z.organizationId)){if(!W)throw Error("User ID required to create dev-assets connection");let $=VO(Z.organizationId,LJ());await X.storage.connections.create({...$,organization_id:Z.organizationId,created_by:W})}}let F=await X.storage.projectPluginConfigs.upsert(Q,J,{connectionId:G,settings:K});return{config:{id:F.id,projectId:F.projectId,pluginId:F.pluginId,connectionId:F.connectionId,settings:F.settings,createdAt:F.createdAt instanceof Date?F.createdAt.toISOString():F.createdAt,updatedAt:F.updatedAt instanceof Date?F.updatedAt.toISOString():F.updatedAt}}}})});var pL1=j(()=>{bL1();xL1();uL1();gL1();mL1();lL1();dL1()});var YW0;var cL1=j(()=>{b0();k1();YW0=f0({name:"TAGS_LIST",description:"List all tags in an organization",inputSchema:z.object({}),outputSchema:z.object({tags:z.array(z.object({id:z.string(),organizationId:z.string(),name:z.string(),createdAt:z.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=q1(X);return{tags:(await X.storage.tags.listOrgTags(Q.id)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});var XW0;var nL1=j(()=>{b0();k1();XW0=f0({name:"TAGS_CREATE",description:"Create a new tag in an organization",inputSchema:z.object({name:z.string().min(1).max(50).describe("Tag name")}),outputSchema:z.object({tag:z.object({id:z.string(),organizationId:z.string(),name:z.string(),createdAt:z.string().describe("ISO 8601 timestamp")})}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=q1(X),J=await X.storage.tags.createTag(Q.id,Y.name);return{tag:{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():String(J.createdAt)}}}})});var QW0;var iL1=j(()=>{b0();k1();QW0=f0({name:"TAGS_DELETE",description:"Delete a tag from an organization (removes from all members)",inputSchema:z.object({tagId:z.string().describe("Tag ID to delete")}),outputSchema:z.object({success:z.boolean()}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=q1(X),J=await X.storage.tags.getTag(Y.tagId);if(!J)throw Error("Tag not found");if(J.organizationId!==Q.id)throw Error("Tag does not belong to this organization");return await X.storage.tags.deleteTag(Y.tagId),{success:!0}}})});var JW0;var aL1=j(()=>{b0();k1();JW0=f0({name:"MEMBER_TAGS_GET",description:"Get tags assigned to a member",inputSchema:z.object({memberId:z.string().describe("Member ID")}),outputSchema:z.object({tags:z.array(z.object({id:z.string(),organizationId:z.string(),name:z.string(),createdAt:z.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=q1(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);return{tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var GW0;var rL1=j(()=>{b0();k1();GW0=f0({name:"MEMBER_TAGS_SET",description:"Set tags for a member (replaces all existing tags)",inputSchema:z.object({memberId:z.string().describe("Member ID"),tagIds:z.array(z.string()).describe("Array of tag IDs to assign")}),outputSchema:z.object({success:z.boolean(),tags:z.array(z.object({id:z.string(),organizationId:z.string(),name:z.string(),createdAt:z.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{g0(X),await X.access.check();let Q=q1(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);for(let K of Y.tagIds){let W=await X.storage.tags.getTag(K);if(!W)throw Error(`Tag not found: ${K}`);if(W.organizationId!==Q.id)throw Error(`Tag does not belong to this organization: ${K}`)}return await X.storage.tags.setMemberTags(Y.memberId,Y.tagIds),{success:!0,tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var oL1=j(()=>{cL1();nL1();iL1();aL1();rL1()});var sL1,AW,tL1,eL1;var Hq=j(()=>{b0();sL1=z.object({id:z.string().describe("Unique message ID"),threadId:z.string().describe("ID of the parent thread"),metadata:z.unknown().optional().describe("Optional message metadata"),parts:z.array(z.record(z.string(),z.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:z.enum(["user","assistant","system"]).describe("Message role"),createdAt:z.string().datetime().describe("Timestamp of creation"),updatedAt:z.string().datetime().describe("Timestamp of last update")}),AW=z.object({id:z.string().describe("Unique thread ID"),organizationId:z.string().describe("Organization this thread belongs to"),title:z.string().describe("Thread title"),description:z.string().nullable().describe("Thread description"),createdAt:z.string().datetime().describe("Timestamp of creation"),updatedAt:z.string().datetime().describe("Timestamp of last update"),hidden:z.boolean().optional().describe("Whether the thread is hidden"),createdBy:z.string().describe("User ID who created the thread"),updatedBy:z.string().nullable().describe("User ID who last updated the thread")}),tL1=z.object({id:z.string().optional().describe("Optional custom ID for the thread"),title:z.string().describe("Thread title"),description:z.string().nullish().describe("Thread description")}),eL1=z.object({title:z.string().optional().describe("New thread title"),description:z.string().nullish().describe("New thread description"),hidden:z.boolean().optional().describe("Whether the thread is hidden")})});var z54,B54,WW0;var Yw1=j(()=>{b0();k1();Hq();v5();z54=z.object({data:tL1.describe("Data for the new thread (id is auto-generated if not provided)")}),B54=z.object({item:AW.describe("The created thread entity")}),WW0=f0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:z54,outputSchema:B54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to create thread");let G=Y.data.id??y4("thrd"),K=await X.storage.threads.create({id:G,organizationId:Q.id,title:Y.data.title,description:Y.data.description,createdBy:J});return{item:{...K,hidden:K.hidden??!1}}}})});var U54,D54,ZW0;var Xw1=j(()=>{_5();k1();Hq();b0();U54=KK.extend({where:z.object({created_by:z.string().optional()}).optional()}),D54=HK(AW),ZW0=f0({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:U54,outputSchema:D54,handler:async(Y,X)=>{await X.access.check();let Q=X.auth.user?.id;if(!Q)throw Error("User ID required to list threads");let J=q1(X),G=Y.offset??0,K=Y.limit??100,{threads:W,total:Z}=await X.storage.threads.list(J.id,Q,{limit:K,offset:G}),H=G+K<Z;return{items:W.map((F)=>({...F,hidden:F.hidden??!1})),totalCount:Z,hasMore:H}}})});var O54,KW0;var Qw1=j(()=>{_5();k1();Hq();O54=A2(AW),KW0=f0({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:M2,outputSchema:O54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J||J.organizationId!==Q.id)return{item:null};return{item:{...J,hidden:J.hidden??!1}}}})});var N54,L54,HW0;var Jw1=j(()=>{b0();k1();Hq();N54=z.object({id:z.string().describe("ID of the thread to update"),data:eL1.describe("Partial thread data to update")}),L54=z.object({item:AW.describe("The updated thread entity")}),HW0=f0({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:N54,outputSchema:L54,handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=g8(X);if(!J)throw Error("User ID required to update thread");let{id:G,data:K}=Y,W=await X.storage.threads.get(G);if(!W||W.organizationId!==Q.id)throw Error("Thread not found in organization");let Z=await X.storage.threads.update(G,{title:K.title,description:K.description,hidden:K.hidden,updatedBy:J});return{item:{...Z,hidden:Z.hidden??!1}}}})});var FW0;var Gw1=j(()=>{_5();k1();Hq();FW0=f0({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:P2,outputSchema:T2(AW),handler:async(Y,X)=>{g0(X);let Q=q1(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J)throw Error(`Thread not found: ${Y.id}`);if(J.organizationId!==Q.id)throw Error(`Thread not found: ${Y.id}`);return await X.storage.threads.delete(Y.id),{item:{...J,hidden:J.hidden??!1}}}})});function Ww1(Y){if(!Y)return null;if("field"in Y&&Y.field[0]==="threadId"&&Y.operator==="eq")return String(Y.value);if("conditions"in Y)for(let X of Y.conditions){let Q=Ww1(X);if(Q)return Q}return null}var w54,$W0;var Zw1=j(()=>{_5();k1();Hq();w54=HK(sL1),$W0=f0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:KK,outputSchema:w54,handler:async(Y,X)=>{let Q=q1(X);await X.access.check();let J=Ww1(Y.where);if(!J)throw Error("threadId filter is required in where clause");let G=await X.storage.threads.get(J);if(!G||G.organizationId!==Q.id)return{items:[],totalCount:0,hasMore:!1};let K=Y.offset??0,W=Y.limit??100,{messages:Z,total:H}=await X.storage.threads.listMessages(J,{limit:W,offset:K}),F=K+W<H;return{items:Z,totalCount:H,hasMore:F}}})});var Kw1=j(()=>{Yw1();Xw1();Qw1();Jw1();Gw1();Zw1()});var A54,P54,VW0;var Hw1=j(()=>{b0();k1();A54=z.object({id:z.string().min(1)}),P54=z.object({user:z.object({id:z.string(),name:z.string(),email:z.string(),image:z.string().nullable()}).nullable()}),VW0=f0({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:A54,outputSchema:P54,handler:async(Y,X)=>{await X.access.check(),g0(X);let Q=g8(X);if(!Q)throw Error("Authentication required");let J=await X.storage.users.findById(Y.id,Q);if(!J)return{user:null};return{user:{id:J.id,name:J.name,email:J.email,image:J.image??null}}}})});var Fw1=j(()=>{Hw1()});var Vw1={};l1(Vw1,{managementMCP:()=>qW0,ALL_TOOLS:()=>$w1});var E54,C54,$w1,qW0=async(Y)=>{let X=null;if(Y.organization)X=(await Y.storage.organizationSettings.get(Y.organization.id))?.enabled_plugins??null;let Q=PD1($w1,X),J=new Ow({name:"mcp-mesh-management",version:"1.0.0"},{capabilities:{tools:{}}});for(let G of Q){let K=G.inputSchema&&typeof G.inputSchema==="object"&&"shape"in G.inputSchema?G.inputSchema:z.object({}),W=G.outputSchema&&typeof G.outputSchema==="object"&&"shape"in G.outputSchema?G.outputSchema:void 0,Z=K.shape,H=W?.shape;J.registerTool(G.name,{description:G.description??"",inputSchema:Z,outputSchema:H},async(F)=>{Y.access.setToolName(G.name);try{let $=await G.execute(F,Y);return{content:[{type:"text",text:JSON.stringify($)}],structuredContent:$}}catch($){return{content:[{type:"text",text:`Error: ${$.message}`}],isError:!0}}})}return J};var zW0=j(()=>{Zu();ka();b0();mD1();kO1();aN1();tN1();HL1();BL1();wL1();PL1();fL1();pL1();oL1();Kw1();Fw1();E54=[f70,h70,b70,x70,u70,m70,l70,d70,p70,c70,n70,bG0,dG0,pG0,q70,z70,B70,A70,T70,E70,C70,I70,R70,j70,S70,k70,v70,sN1,_70,y70,VG0,zG0,BG0,qG0,U70,D70,O70,N70,L70,w70,M70,VW0,yG0,fG0,hG0,WW0,ZW0,KW0,HW0,FW0,$W0,YW0,XW0,QW0,JW0,GW0,i70,a70,r70,o70,s70,t70,e70],C54=TD1(),$w1=[...E54,...C54]});function I54(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (zW0(),Vw1));return X.map((Q)=>{return{name:Q.name,inputSchema:z.toJSONSchema(Q.inputSchema,{unrepresentable:"any"}),outputSchema:Q.outputSchema?z.toJSONSchema(Q.outputSchema,{unrepresentable:"any"}):void 0,description:Q.description}})},data:Da(LJ(),Y)},{data:Ua()},{data:Ba(Y)}]}async function qw1(Y,X){try{let Q=aV(),J=new rV(process.env.ENCRYPTION_KEY||""),G=new Q2(Q.db,J),K=new J2(Q.db),W=I54(Y);try{await K.create({organizationId:Y,slug:x5,name:Iq,description:"Organization administration and settings",enabledPlugins:null,ui:null})}catch(Z){console.warn("Could not create org-admin project (may already exist):",Z)}await Promise.all(W.map(async(Z)=>{let H=null;if(Z.permissions)H=(await fG.api.createApiKey({body:{name:`${Z.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:Z.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let F=await Z.getTools?.()??await QO({id:"pending",title:Z.data.title,connection_type:Z.data.connection_type,connection_url:Z.data.connection_url,connection_token:Z.data.connection_token,connection_headers:Z.data.connection_headers}).catch(()=>null),$=Z.data.id?Z.data.id.startsWith(`${Y}_`)?Z.data.id:`${Y}_${Z.data.id}`:void 0;await G.create({...Z.data,id:$,tools:F,organization_id:Y,created_by:X,connection_token:Z.data.connection_token??H})}))}catch(Q){console.error("Error creating default MCP connections:",Q)}}var zw1=j(()=>{RY();Y2();ox();k50();v50();Qu();b0();qO()});var BW0,ku;var vu=j(()=>{BW0=["owner","admin","user"],ku=["owner","admin"]});var R54=(Y)=>{return{defaultSSO:[{domain:Y.domain,providerId:Y.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:Y.MS_CLIENT_ID,clientSecret:Y.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${Y.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:Y.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified"}}}}]}},Bw1=(Y)=>{if(Y.providerId==="microsoft")return R54(Y);throw Error(`Unsupported provider: ${Y.providerId}`)};function j54(Y){return Y.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function S54(){let Y=Math.floor(Math.random()*Dw1.length),X=Math.floor(Math.random()*Uw1.length),Q=Dw1[Y]??"deco",J=Uw1[X]??"studio";return`${Q}-${J}`}var Uw1,Dw1,k54,v54,_u,_54,y54,f54,Ow1,O9,Nw1=void 0,h54,b54,x54,fG;var qO=j(()=>{$o();oI0();hj0();te();M10();RS0();bA();fS0();Y2();S50();CB1();zw1();vu();Uw1=["labs","agent","studio","workspace","systems","core","cloud","works"],Dw1=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];k54=Object.values(rw()).map((Y)=>Y.map((X)=>X.name)).flat(),v54={...Sy,self:["*",...k54]},_u=a7(v54),_54=_u.newRole({self:["*"],...IA.statements}),y54=_u.newRole({self:["*"],...IA.statements}),f54=_u.newRole({self:["*"],...IA.statements}),Ow1=Object.values(rw()).map((Y)=>Y.map((X)=>`self:${X.name}`)).flat(),O9=hA.auth;if(O9.inviteEmailProviderId&&O9.emailProviders&&O9.emailProviders.length>0){let Y=rx(O9.emailProviders,O9.inviteEmailProviderId);if(Y){let X=ax(Y);Nw1=async(Q)=>{let J=Q.inviter.user?.name||Q.inviter.user?.email,G=`${LJ()}/auth/accept-invitation?invitationId=${Q.invitation.id}&redirectTo=/`;await X({to:Q.email,subject:`Invitation to join ${Q.organization.name}`,html:`
|
|
1192
1192
|
<h2>You've been invited!</h2>
|
|
@@ -1232,14 +1232,14 @@ data:
|
|
|
1232
1232
|
`;if(J)G+=`id: ${J}
|
|
1233
1233
|
`;return G+=`data: ${JSON.stringify(Q)}
|
|
1234
1234
|
|
|
1235
|
-
`,Y.enqueue(X.encode(G)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32000,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(Y,X){try{let Q=Y.headers.get("accept");if(!Q?.includes("application/json")||!Q.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let J=Y.headers.get("content-type");if(!J||!J.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(Y.headers.entries())},K;if(X?.parsedBody!==void 0)K=X.parsedBody;else try{K=await Y.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray(K))W=K.map((L)=>oQ.parse(L));else W=[oQ.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(nc);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let L=this.validateSession(Y);if(L)return L;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(Q7)){for(let L of W)this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G});return new Response(null,{status:202})}let F=crypto.randomUUID(),$=W.find((L)=>nc(L)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??BF0;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set(F,{resolveJson:L,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(Q7(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:X?.authInfo,requestInfo:G})});let q=new TextEncoder,B,D=new ReadableStream({start:(L)=>{B=L},cancel:()=>{this._streamMapping.delete(F)}}),O={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)O["mcp-session-id"]=this.sessionId;for(let L of W)if(Q7(L))this._streamMapping.set(F,{controller:B,encoder:q,cleanup:()=>{this._streamMapping.delete(F);try{B.close()}catch{}}}),this._requestToStreamMapping.set(L.id,F);await this.writePrimingEvent(B,q,F,V);for(let L of W){let w,I;if(Q7(L)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(L.id)},I=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:I})}return new Response(D,{status:200,headers:O})}catch(Q){return this.onerror?.(Q),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(Q)})}}async handleDeleteRequest(Y){let X=this.validateSession(Y);if(X)return X;let Q=this.validateProtocolVersion(Y);if(Q)return Q;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(Y){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let X=Y.headers.get("mcp-session-id");if(!X)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(X!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(Y){let X=Y.headers.get("mcp-protocol-version");if(X!==null&&!jF.includes(X))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${X} (supported versions: ${jF.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:Y})=>{Y()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(Y){let X=this._requestToStreamMapping.get(Y);if(!X)return;let Q=this._streamMapping.get(X);if(Q)Q.cleanup()}closeStandaloneSSEStream(){let Y=this._streamMapping.get(this._standaloneSseStreamId);if(Y)Y.cleanup()}async send(Y,X){let Q=X?.relatedRequestId;if(p5(Y)||Uz(Y))Q=Y.id;if(Q===void 0){if(p5(Y)||Uz(Y))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let K;if(this._eventStore)K=await this._eventStore.storeEvent(this._standaloneSseStreamId,Y);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,Y,K);return}let J=this._requestToStreamMapping.get(Q);if(!J)throw Error(`No connection established for request ID: ${String(Q)}`);let G=this._streamMapping.get(J);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let K;if(this._eventStore)K=await this._eventStore.storeEvent(J,Y);this.writeSSEEvent(G.controller,G.encoder,Y,K)}if(p5(Y)||Uz(Y)){this._requestResponseMap.set(Q,Y);let K=Array.from(this._requestToStreamMapping.entries()).filter(([Z,H])=>H===J).map(([Z])=>Z);if(K.every((Z)=>this._requestResponseMap.has(Z))){if(!G)throw Error(`No connection established for request ID: ${String(Q)}`);if(this._enableJsonResponse&&G.resolveJson){let Z={"Content-Type":"application/json"};if(this.sessionId!==void 0)Z["mcp-session-id"]=this.sessionId;let H=K.map((F)=>this._requestResponseMap.get(F));if(H.length===1)G.resolveJson(new Response(JSON.stringify(H[0]),{status:200,headers:Z}));else G.resolveJson(new Response(JSON.stringify(H),{status:200,headers:Z}))}else G.cleanup();for(let Z of K)this._requestResponseMap.delete(Z),this._requestToStreamMapping.delete(Z)}}}}var pu=j(()=>{_9()});async function fM1(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function MG4(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function hM1(Y,X={}){try{let Q=await fetch(Y,{method:"POST",headers:{...X,"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"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(MG4(J))return J}if(await AG4(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function AG4(Y){try{let X=new URL(Y),Q=new URL("/.well-known/oauth-authorization-server",X.origin),J=await fetch(Q.toString(),{method:"GET",headers:{Accept:"application/json"}});if(J.ok){let G=await J.json();if(G.authorization_endpoint||G.token_endpoint||G.issuer)return!0}return!1}catch{return!1}}async function nu(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(Y);J.pathname=`${Q}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!hW0.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!hW0.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function PG4(Y,X){let Q=await fM1(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await nu(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function bM1(Y){let X=Y.get("meshContext");if(!X)X=await n3.create(Y.req.raw),Y.set("meshContext",X);return X}async function xM1({error:Y,reqUrl:X,connectionId:Q,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await hM1(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${Q}/.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 bW0(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${Q}`,G.push(Z);let H=new URL(Y);H.pathname=`${Q}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}var cu,hW0,uM1=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},gM1=async(Y)=>{let X=Y.req.param("connectionId"),Q=await bM1(Y),J=await fM1(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=uM1(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await nu(J);if(!Z.ok&&hW0.includes(Z.status)){if(await hM1(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let H=await Z.json();if("issuer"in H&&!("resource"in H)&&(("authorization_endpoint"in H)||("token_endpoint"in H))){let V={resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:"scopes_supported"in H&&Array.isArray(H.scopes_supported)&&H.scopes_supported.length>0?H.scopes_supported:["*"]};return new Response(JSON.stringify(V),{status:200,headers:{"Content-Type":"application/json"}})}let $={...H,resource:K,authorization_servers:[W]};return new Response(JSON.stringify($),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}},mM1;var xW0=j(()=>{hG();iu();cu=new N9,hW0=[404,401,406];cu.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>gM1(Y));cu.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>gM1(Y));cu.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await bM1(Y),J=await PG4(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await bW0(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${uM1(new URL(Y.req.url)).origin}/oauth-proxy/${X}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});mM1=cu});async function au(Y,X){let Q=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((B)=>B?.id):null,W=X?X:K?vS(K):null;if(!W)return Y.json({error:"Agent ID or organization ID is required"},400);let Z=await Q.storage.virtualMcps.findById(W,K??void 0);if(!Z)return Y.json({error:"Agent not found"},404);if(K&&Z.organization_id!==K)return Y.json({error:"Agent not found"},404);if(Z.status!=="active")return Y.json({error:`Agent is inactive: ${Z.id??"Decopilot"}`},503);Q.connectionId=Z.id??void 0;let H=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if(H)Q.organization={id:H.id,slug:H.slug,name:H.name};let F=H70(Y.req.query("mode")),$=await i2(Z,Q,F),V=gF($,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new Bq({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});return await V.connect(q),await q.handleRequest(Y.req.raw)}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}var uW0,lM1;var gW0=j(()=>{RY();pu();hG();Iu();uW0=new N9;uW0.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return au(Y,X)});uW0.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return au(Y,X)});lM1=uW0});function Uq(Y){let X={client:{callTool:Y.callTool.bind(Y),listTools:Y.listTools.bind(Y)}};if("callStreamableTool"in Y&&Y.callStreamableTool)return{...X,callStreamableTool:Y.callStreamableTool.bind(Y)};return X}async function pM1(Y,X,{superUser:Q}){let J=typeof Y==="string"?await X.storage.connections.findById(Y,X.organization?.id):Y;if(!J)throw Error("Connection not found");if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await GQ(J,X,Q),K=V70(G,J),W=gF(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:K.getServerCapabilities(),instructions:K.getInstructions()}),{client:Z,server:H}=Ta();await W.connect(H);let F=new OQ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(Z),F}async function cM1(Y,X){return pM1(Y,X,{superUser:!1})}async function nM1(Y,X){return pM1(Y,X,{superUser:!0})}var ru,dM1=300000,iM1=(Y,X)=>{if(Y.message.includes("not found"))return X.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return X.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return X.json({error:Y.message},503);return X.json({error:"Internal server error",message:Y.message},500)},aM1;var Dq=j(()=>{DO();RY();hF();pu();hG();xW0();gW0();ru=new N9;ru.all("/",async(Y)=>{return au(Y,void 0)});ru.all("/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.get("meshContext");try{try{let J=await Q.storage.connections.findById(X,Q.organization?.id);if(!J)throw Error("Connection not found");if(Q.organization&&J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");if(Q.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await $70(J,Q,!1),K=new Bq({enableJsonResponse:Y.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),await K.handleRequest(Y.req.raw)}catch(J){let G=await Q.storage.connections.findById(X,Q.organization?.id);if(G?.connection_url){let K=await xM1({error:J,reqUrl:new URL(Y.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{}});if(K)return K}throw J}}catch(J){return iM1(J,Y)}});ru.all("/:connectionId/call-tool/:toolName",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.req.param("toolName"),J=Y.get("meshContext");try{let G=await J.storage.connections.findById(X,J.organization?.id);if(!G)return Y.json({error:"Connection not found"},404);let W=await(await GQ(G,J,!1)).callTool({name:Q,arguments:await Y.req.json()});if(W instanceof Response)return W;if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(G){return iM1(G,Y)}});aM1=ru});class mW0{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??y4("thrd"),Q=new Date().toISOString();if(!Y.organizationId)throw Error("organizationId is required");if(!Y.createdBy)throw Error("createdBy is required");if(!Y.title)Y.title="New Thread - "+Q;let J={id:X,organization_id:Y.organizationId,title:Y.title,description:Y.description??null,created_at:Q,updated_at:Q,created_by:Y.createdBy,updated_by:Y.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let X=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update(Y,X){let J={updated_at:new Date().toISOString()};if(X.title!==void 0)J.title=X.title;if(X.description!==void 0)J.description=X.description;if(X.updatedBy!==void 0)J.updated_by=X.updatedBy;if(X.hidden!==void 0)J.hidden=X.hidden;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,X,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(X)J=J.where("created_by","=",X);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(X)G=G.where("created_by","=",X);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let X=new Date().toISOString(),Q=Y[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=Y.find((K)=>K.threadId!==Q);if(J)throw Error(`All messages must target the same thread. Expected threadId "${Q}", but message "${J.id}" has threadId "${J.threadId}"`);let G=Y.map((K)=>({id:K.id,thread_id:Q,metadata:K.metadata?JSON.stringify(K.metadata):null,parts:JSON.stringify(K.parts),role:K.role,created_at:K.createdAt??X,updated_at:X}));await this.db.transaction().execute(async(K)=>{await K.insertInto("thread_messages").values(G).execute(),await K.updateTable("threads").set({updated_at:X}).where("id","=",Q).execute()})}async listMessages(Y,X){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",Y);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,K]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((W)=>this.messageFromDbRow(W)),total:Number(K?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,title:Y.title,description:Y.description,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString(),createdBy:Y.created_by,updatedBy:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let X,Q;try{X=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),X=void 0}try{Q=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),Q=[]}return{id:Y.id,threadId:Y.thread_id,metadata:X,parts:Q,role:Y.role,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString()}}}var rM1=j(()=>{v5()});function TG4(Y){if(!Y)return;try{let X=JSON.parse(Y);if(typeof X!=="object"||X===null||Array.isArray(X))return;let Q={};for(let[J,G]of Object.entries(X))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function EG4(Y,X){for(let[Q,J]of Object.entries(X)){let G=Y[Q];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function CG4(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&BW0.includes(J))return!0;if(G)return EG4(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:Q,body:{permission:Z}}))?.success===!0)return!0;let F={};for(let V of Object.keys(Z))F[V]=["*"];return(await W({headers:Q,body:{permission:F}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return X.api.createOrganization({headers:Q,body:Z})},update:async(Z)=>{return X.api.updateOrganization({headers:Q,body:Z})},delete:async(Z)=>{await X.api.deleteOrganization({headers:Q,body:{organizationId:Z}})},get:async(Z)=>{return X.api.getFullOrganization({headers:Q,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return X.api.listOrganizations({headers:Q,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return X.api.addMember({headers:Q,body:Z})},removeMember:async(Z)=>{await X.api.removeMember({headers:Q,body:Z})},listMembers:async(Z)=>{return X.api.listMembers({headers:Q,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return X.api.updateMemberRole({headers:Q,body:Z})}},apiKey:{create:async(Z)=>{return X.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return X.api.listApiKeys({headers:Q})},update:async(Z)=>{return X.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await X.api.deleteApiKey({headers:Q,body:{keyId:Z}})}}}}async function IG4(Y,X,Q){if(BW0.includes(Q))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",Q).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}async function RG4(Y,X,Q,J=sM1){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>X.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>Q.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","=",Z).executeTakeFirst()),F=H?.role,$=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,V;if(H&&F)V=await J.measure("auth_fetch_role_permissions",()=>IG4(Q,H.organizationId,F));return{user:{id:Z,role:F},role:F,permissions:V,organization:$}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>UN1(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>X.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,F,$=W.key.userId;if($&&Z?.id)F=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",$).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:F},role:F,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=new Headers(Y.headers);K.delete("Authorization");let W=await J.measure("auth_get_session",()=>X.api.getSession({headers:K}));if(W){let Z,H;if(W.session.activeOrganizationId){let F=await J.measure("auth_get_full_organization",()=>X.api.getFullOrganization({headers:K}).catch(()=>null));if(F)Z={id:F.id,slug:F.slug,name:F.name},H=F.members?.find((V)=>V.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:H},role:H,organization:Z}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}async function tM1(Y){let X=new rV(Y.encryption.key),Q={connections:new Q2(Y.db,X),organizationSettings:new vW0(Y.db),monitoring:new kW0(Y.db,Y.databaseType),virtualMcps:new jW0(Y.db),users:new fW0(Y.db),threads:new mW0(Y.db),tags:new yW0(Y.db),projects:new J2(Y.db),projectPluginConfigs:new _W0(Y.db)};return async(J,G)=>{let K=G?.timings??sM1,W=Cu(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await RG4(J,Y.auth,Y.db,K):{user:void 0},F=CG4({auth:Y.auth,headers:J?.headers??new Headers,role:H.role,permissions:H.permissions,userId:H.user?.id}),$={user:H.user};if(H.apiKeyId)$.apiKey={id:H.apiKeyId,name:"",userId:""};let V=H.organization,q=J?process.env.BASE_URL??`${new URL(J.url).origin}`:LJ(),B=new VK(Y.auth,$.user?.id,void 0,F,H.role,"self"),D={timings:K,auth:$,connectionId:Z,organization:V,storage:Q,vault:X,authInstance:Y.auth,boundAuth:F,access:B,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(jG4.map((O)=>[O,J?.headers.get(O)??null]).filter(([O,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:TG4(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await cM1(O,D)},getOrCreateClient:W};return D}}var oM1,n3,sM1,jG4;var iu=j(()=>{iG0();ox();k50();kM1();vM1();v50();_M1();yM1();p2();Dq();vu();rM1();rG0();n3={set:(Y)=>{oM1=Y},create:async(Y,X)=>{return await oM1(Y,X)}},sM1={measure:async(Y,X)=>{return await X()}},jG4=["x-hub-signature-256"]});class eM1{db;constructor(Y){this.db=Y}async publishEvent(Y){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Y){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)X=X.where("publisher","=",Y.publisher);else X=X.where("publisher","is",null);if(Y.filter)X=X.where("filter","=",Y.filter);else X=X.where("filter","is",null);let Q=await X.executeTakeFirst();if(Q)return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,X){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(X)Q=Q.where("connection_id","=",X);return(await Q.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,X){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",Y.source)])).execute()).map((Q)=>({id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}))}async createDeliveries(Y,X,Q){if(X.length===0)return;let J=new Date().toISOString(),G=Q??null,K=X.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let X=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.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(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=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((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];Q=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",Q).where("status","=","pending").execute()}if(Q.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",Q).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,X,Q=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=Q)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),F=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"pending",next_retry_at:F}).where("id","=",K).execute()}}}async updateEventStatus(Y){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(X.length===0)return;let Q=X.every((K)=>K.status==="delivered"),J=X.some((K)=>K.status==="failed"),G=X.some((K)=>K.status==="pending"||K.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,X){let Q=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,type:Q.type,source:Q.source,specversion:Q.specversion,subject:Q.subject,time:Q.time,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema,data:Q.data?JSON.parse(Q.data):null,cron:Q.cron,status:Q.status,attempts:Q.attempts,lastError:Q.last_error,nextRetryAt:Q.next_retry_at,createdAt:Q.created_at,updatedAt:Q.updated_at}}async findActiveCronEvent(Y,X,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",X).where("source","=",Q).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,X,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",X).where("source","=",Q).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,X){if(Y.length===0)return;let Q=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",Y).execute()}async ackDelivery(Y,X,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",X).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:X,connectionId:Q,subscriptions:J}=Y,G=(w,I)=>{return`${w}::${I??""}`},K=await this.listSubscriptions(X,Q),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),F=[],$=[],V=[],q=0;for(let[w,I]of Z){let P=W.get(w);if(!P)F.push({id:crypto.randomUUID(),organization_id:X,connection_id:Q,event_type:I.eventType,publisher:I.publisher??null,filter:I.filter??null,enabled:1,created_at:H,updated_at:H});else{let T=P.filter??null,A=I.filter??null;if(T!==A)$.push({id:P.id,filter:A});else q++}}for(let[w,I]of W)if(!Z.has(w))V.push(I.id);if(F.length>0)await this.db.insertInto("event_subscriptions").values(F).execute();if($.length>0)await Promise.all($.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let B=F.length,D=$.length,O=V.length,L=await this.listSubscriptions(X,Q);return{created:B,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function YA1(Y){return new eM1(Y)}function wX(Y,X,Q,J,G,K,W,Z){return wX.fromTZ(wX.tp(Y,X,Q,J,G,K,W),Z)}function lW0(Y,X=new Date){let Q=X.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function SG4(Y,X){let Q=new Date(Date.parse(Y));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?wX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):wX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}function kG4(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new y5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new y5(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function GE(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function vG4(Y){return GE(Y)}function _G4(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var dW0=32,WE,GA1,XA1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,X){this.pattern=Y,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 Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new y5(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",X.getSeconds().toString()),Y[1]=Y[1].replace("?",X.getMinutes().toString()),Y[2]=Y[2].replace("?",X.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",X.getDate().toString())),Y[4]=Y[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,WE),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,X,Q,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(X===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return G.fill(J);let W=X.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],Q,J);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Y,Q,J):X.indexOf("-")!==-1?this.handleRange(X,Y,Q,J):X.indexOf("/")!==-1?this.handleStepping(X,Y,Q,J):X!==""&&this.handleNumber(X,Y,Q,J)}throwAtIllegalCharacters(Y){for(let X=0;X<Y.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Y[X]+") contains illegal characters.")}handleNumber(Y,X,Q,J){let G=this.extractNth(Y,X),K=parseInt(G[0],10)+Q;if(isNaN(K))throw TypeError("CronPattern: "+X+" is not a number: '"+Y+"'");this.setPart(X,K,G[1]||J)}setPart(Y,X,Q){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,Q);return}if(Y==="second"||Y==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+X);this[Y][X]=Q}handleRangeWithStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,F=parseInt(W,10)+Q,$=parseInt(Z,10)+Q,V=parseInt(H,10);if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(F>$)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let q=F;q<=$;q+=V)this.setPart(X,q,G[1]||J)}extractNth(Y,X){let Q=Y,J;if(Q.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+Q,Z=parseInt(K[1],10)+Q;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(X,H,G[1]||J)}handleStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+Q);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let H=W;H<this[X].length;H+=Z)this.setPart(X,H,G[1]||J)}replaceAlphaDays(Y){return Y.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(Y){return Y.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(Y){let X=Y.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 * * * *":Y}setNthWeekdayOfMonth(Y,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|dW0;else if(X===WE)this.dayOfWeek[Y]=WE;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|GA1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},QA1,DK,y5=class Y{tz;ms;second;minute;hour;day;month;year;constructor(X,Q){if(this.tz=Q,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 Y)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,Q,J,G){let K=new Date(Date.UTC(X,Q,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(X,Q,Z)).getUTCDay()===K&&W++;if(G&WE&&GA1[W-1]&G)return!0;if(G&dW0){let Z=new Date(Date.UTC(X,Q+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(X,Q,H)).getUTCDay()===K)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 Q=wX.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=Q.s,this.minute=Q.i,this.hour=Q.h,this.day=Q.d,this.month=Q.m-1,this.year=Q.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>QA1[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 Q=wX.fromTZISO(X);this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply()}else return this.fromDate(wX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=QA1[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[Q]+G;H<J[Q].length;H++){let F=J[Q][H];if(Q==="day"&&J.lastDayOfMonth&&H-G==W&&(F=1),Q==="day"&&!J.starDOW){let $=J.dayOfWeek[(Z+(H-G-1))%7];if($&&$&WE)$=this.isNthWeekdayOfMonth(this.year,this.month,H-G,$)?1:0;else if($)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${$}`);X.legacyMode&&!J.starDOM?F=F||$:F=F&&$}if(F)return this[Q]=H-G,K!==this[Q]?2:1}return 3}recurse(X,Q,J){let G=this.findNext(Q,DK[J][0],X,DK[J][2]);if(G>1){let K=J+1;for(;K<DK.length;)this[DK[K][0]]=-DK[K][2],K++;if(G===3)return this[DK[J][1]]++,this[DK[J][0]]=-DK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=DK.length?this:this.year>=3000?null:this.recurse(X,Q,J)}increment(X,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(X,Q,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)):wX.fromTZ(wX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},JA1=30000,ou,su=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(GE(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(GE(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=kG4(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new XA1("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new y5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new XA1(Y,this.options.timezone),this.name){if(ou.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");ou.push(this)}return G!==void 0&&vG4(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let X=this._next(Y);return X?X.getDate(!1):null}nextRuns(Y,X){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let Q=[],J=X||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),X=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return X&&Q&&J&&Y!==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(Y){let X=this._next(Y);return X?Y instanceof y5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new y5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=ou.indexOf(this);Y>=0&&ou.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let X=this.msToNext(),Q=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||Q===null?this:(X>JA1&&(X=JA1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&_G4(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new y5(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){GE(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new y5(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let X=new Date,Q=!this._states.paused&&X.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&GE(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let X=!!(Y||this._states.currentRun),Q=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,X]=this._calculatePreviousRun(Y,X),Q=!Y),Y=new y5(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new y5(Y,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,X){let Q=new y5(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=Q.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=Q.getTime();)J=new y5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;X=!0}return J===null&&(J=void 0),[J,X]}};var pW0=j(()=>{wX.fromTZISO=(Y,X,Q)=>wX.fromTZ(SG4(Y,X),Q);wX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=lW0(Y.tz,Q),G=new Date(Q.getTime()-J),K=lW0(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=lW0(Y.tz,W);if(Z-K===0)return W;if(!X&&Z-K>0)return W;if(X)throw Error("Invalid date passed to fromTZ()");return G}};wX.toTZ=function(Y,X){let Q=Y.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),J=new Date(Q);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:X}};wX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});wX.minitz=wX;WE=31|dW0,GA1=[1,2,4,8,16],QA1=[31,28,31,30,31,30,31,31,30,31,30,31],DK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];ou=[]});var tu;var cW0=j(()=>{tu={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function WA1(){return async(Y,X)=>{try{let Q=await n3.create(),J=await nM1(Y,Q),K=await gG0.forClient(Uq(J)).ON_EVENTS({events:X});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}var ZA1=j(()=>{iu();Lu();Dq()});function KA1(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function yG4(Y){let X=new Map;for(let J of Y){let G=J.subscription.connectionId,K=X.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(KA1(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[KA1(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of X)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class nW0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=WA1(),this.config={...tu,...X}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} 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(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let X=yG4(Y),Q=new Set;await Promise.allSettled(Array.from(X.entries()).map(async([J,G])=>{try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))Q.add(K.event.id)}));for(let J of Q)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,X){let Q=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=X.results?.[W.id];if(H)if(H.success)Q.push(Z);else if(H.retryAfter&&H.retryAfter>0){let F=J.get(H.retryAfter)||[];F.push(Z),J.set(H.retryAfter,F)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(X.success)Q.push(Z);else if(X.retryAfter&&X.retryAfter>0){let F=J.get(X.retryAfter)||[];F.push(Z),J.set(X.retryAfter,F)}else G.push({deliveryId:Z,error:X.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let F=W.get(H)||[];F.push(Z),W.set(H,F)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let Q=new su(Y.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,X)}}}var HA1=j(()=>{pW0();cW0();ZA1()});class iW0{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new nW0(this.storage,Y.config)}async publish(Y,X,Q){if(Q.deliverAt&&Q.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(Q.cron){try{let $=new su(Q.cron).nextRun();if(!$)throw Error("Cron expression does not produce a next run time");J=$.toISOString()}catch(F){throw Error(`Invalid cron expression: ${F instanceof Error?F.message:String(F)}`)}let H=await this.storage.findActiveCronEvent(Y,Q.type,X,Q.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:Q.type,source:X,subject:Q.subject,time:K,data:Q.data,cron:Q.cron}),Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=Q.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map((F)=>F.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch((F)=>{console.warn("[EventBus] Notify failed (non-critical):",F)})}return W}async subscribe(Y,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Y,X){return this.storage.unsubscribe(X,Y)}async listSubscriptions(Y,X){return this.storage.listSubscriptions(Y,X)}async getSubscription(Y,X){return this.storage.getSubscription(X,Y)}async getEvent(Y,X){return this.storage.getEvent(X,Y)}async cancelEvent(Y,X,Q){return this.storage.cancelEvent(X,Y,Q)}async ackEvent(Y,X,Q){return this.storage.ackDelivery(X,Y,Q)}async syncSubscriptions(Y,X){return this.storage.syncSubscriptions({organizationId:Y,...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((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var FA1=j(()=>{pW0();HA1()});function $A1(...Y){return{async start(X){await Promise.all(Y.map((Q)=>Q.start(X)))},async stop(){await Promise.all(Y.map((X)=>X.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(X){await Promise.all(Y.map((Q)=>Q.notify(X).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class eu{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,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(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as fG4}from"kysely";class aW0{db;pool;listenClient=null;onNotify=null;constructor(Y,X){this.db=Y;this.pool=X}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===MO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${MO}`),console.log("[PostgresNotify] Started LISTEN on",MO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${MO}`),console.log("[PostgresNotify] Stopped LISTEN on",MO)}catch{}this.cleanup()}}async notify(Y){try{await fG4`SELECT pg_notify(${MO}, ${Y})`.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 MO="mesh_events";var VA1=()=>{};function qA1(Y,X){let Q=YA1(Y.db),J=X?.pollIntervalMs??tu.pollIntervalMs,G=Y.type==="postgres"?$A1(new eu(J),new aW0(Y.db,Y.pool)):new eu(J);return new iW0({storage:Q,config:X,notifyStrategy:G})}var zA1=j(()=>{FA1();cW0();VA1()});var BA1;var UA1=j(()=>{BA1={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 DA1,OA1;var NA1=j(()=>{hG();qO();UA1();DA1=new N9;DA1.get("/config",async(Y)=>{try{let X=Object.keys(O9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:BA1[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:O9.emailAndPassword?.enabled??!1},magicLink:{enabled:O9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:O9.ssoConfig?{enabled:!0,providerId:O9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return Y.json({success:!0,config:K})}catch(X){let Q=X instanceof Error?X.message:"Failed to load auth config";return Y.json({success:!1,error:Q},500)}});OA1=DA1});function bG(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}var iA1="vercel.ai.error",hG4,LA1,wA1,M1,aA1="AI_APICallError",rA1,bG4,MA1,AA1,Q9,oA1="AI_EmptyResponseBodyError",sA1,xG4,PA1,TA1,tA1,eA1="AI_InvalidArgumentError",YP1,uG4,EA1,CA1,XP1,QP1="AI_InvalidPromptError",JP1,gG4,IA1,RA1,Oq,GP1="AI_InvalidResponseDataError",WP1,mG4,jA1,SA1,UE8,ZP1="AI_JSONParseError",KP1,lG4,kA1,vA1,ZE,HP1="AI_LoadAPIKeyError",FP1,dG4,_A1,yA1,DE8,$P1="AI_LoadSettingError",VP1,pG4,fA1,hA1,OE8,qP1="AI_NoContentGeneratedError",zP1,cG4,bA1,xA1,NE8,BP1="AI_NoSuchModelError",UP1,nG4,uA1,gA1,LE8,DP1="AI_TooManyEmbeddingValuesForCallError",OP1,iG4,mA1,lA1,wE8,NP1="AI_TypeValidationError",LP1,aG4,dA1,pA1,pQ,wP1="AI_UnsupportedFunctionalityError",MP1,rG4,cA1,nA1,AP1;var A4=j(()=>{hG4=Symbol.for(iA1),M1=class Y extends(wA1=Error,LA1=hG4,wA1){constructor({name:X,message:Q,cause:J}){super(Q);this[LA1]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,iA1)}static hasMarker(X,Q){let J=Symbol.for(Q);return X!=null&&typeof X==="object"&&J in X&&typeof X[J]==="boolean"&&X[J]===!0}},rA1=`vercel.ai.error.${aA1}`,bG4=Symbol.for(rA1),Q9=class extends(AA1=M1,MA1=bG4,AA1){constructor({message:Y,url:X,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:K,cause:W,isRetryable:Z=J!=null&&(J===408||J===409||J===429||J>=500),data:H}){super({name:aA1,message:Y,cause:W});this[MA1]=!0,this.url=X,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=K,this.isRetryable=Z,this.data=H}static isInstance(Y){return M1.hasMarker(Y,rA1)}},sA1=`vercel.ai.error.${oA1}`,xG4=Symbol.for(sA1),tA1=class extends(TA1=M1,PA1=xG4,TA1){constructor({message:Y="Empty response body"}={}){super({name:oA1,message:Y});this[PA1]=!0}static isInstance(Y){return M1.hasMarker(Y,sA1)}};YP1=`vercel.ai.error.${eA1}`,uG4=Symbol.for(YP1),XP1=class extends(CA1=M1,EA1=uG4,CA1){constructor({message:Y,cause:X,argument:Q}){super({name:eA1,message:Y,cause:X});this[EA1]=!0,this.argument=Q}static isInstance(Y){return M1.hasMarker(Y,YP1)}},JP1=`vercel.ai.error.${QP1}`,gG4=Symbol.for(JP1),Oq=class extends(RA1=M1,IA1=gG4,RA1){constructor({prompt:Y,message:X,cause:Q}){super({name:QP1,message:`Invalid prompt: ${X}`,cause:Q});this[IA1]=!0,this.prompt=Y}static isInstance(Y){return M1.hasMarker(Y,JP1)}},WP1=`vercel.ai.error.${GP1}`,mG4=Symbol.for(WP1),UE8=class extends(SA1=M1,jA1=mG4,SA1){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:GP1,message:X});this[jA1]=!0,this.data=Y}static isInstance(Y){return M1.hasMarker(Y,WP1)}},KP1=`vercel.ai.error.${ZP1}`,lG4=Symbol.for(KP1),ZE=class extends(vA1=M1,kA1=lG4,vA1){constructor({text:Y,cause:X}){super({name:ZP1,message:`JSON parsing failed: Text: ${Y}.
|
|
1235
|
+
`,Y.enqueue(X.encode(G)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32000,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(Y,X){try{let Q=Y.headers.get("accept");if(!Q?.includes("application/json")||!Q.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let J=Y.headers.get("content-type");if(!J||!J.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(Y.headers.entries())},K;if(X?.parsedBody!==void 0)K=X.parsedBody;else try{K=await Y.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray(K))W=K.map((L)=>oQ.parse(L));else W=[oQ.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(nc);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let L=this.validateSession(Y);if(L)return L;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(Q7)){for(let L of W)this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G});return new Response(null,{status:202})}let F=crypto.randomUUID(),$=W.find((L)=>nc(L)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??BF0;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set(F,{resolveJson:L,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(Q7(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:X?.authInfo,requestInfo:G})});let q=new TextEncoder,B,D=new ReadableStream({start:(L)=>{B=L},cancel:()=>{this._streamMapping.delete(F)}}),O={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)O["mcp-session-id"]=this.sessionId;for(let L of W)if(Q7(L))this._streamMapping.set(F,{controller:B,encoder:q,cleanup:()=>{this._streamMapping.delete(F);try{B.close()}catch{}}}),this._requestToStreamMapping.set(L.id,F);await this.writePrimingEvent(B,q,F,V);for(let L of W){let w,I;if(Q7(L)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(L.id)},I=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(L,{authInfo:X?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:I})}return new Response(D,{status:200,headers:O})}catch(Q){return this.onerror?.(Q),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(Q)})}}async handleDeleteRequest(Y){let X=this.validateSession(Y);if(X)return X;let Q=this.validateProtocolVersion(Y);if(Q)return Q;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(Y){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let X=Y.headers.get("mcp-session-id");if(!X)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(X!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(Y){let X=Y.headers.get("mcp-protocol-version");if(X!==null&&!jF.includes(X))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${X} (supported versions: ${jF.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:Y})=>{Y()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(Y){let X=this._requestToStreamMapping.get(Y);if(!X)return;let Q=this._streamMapping.get(X);if(Q)Q.cleanup()}closeStandaloneSSEStream(){let Y=this._streamMapping.get(this._standaloneSseStreamId);if(Y)Y.cleanup()}async send(Y,X){let Q=X?.relatedRequestId;if(p5(Y)||Uz(Y))Q=Y.id;if(Q===void 0){if(p5(Y)||Uz(Y))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let K;if(this._eventStore)K=await this._eventStore.storeEvent(this._standaloneSseStreamId,Y);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,Y,K);return}let J=this._requestToStreamMapping.get(Q);if(!J)throw Error(`No connection established for request ID: ${String(Q)}`);let G=this._streamMapping.get(J);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let K;if(this._eventStore)K=await this._eventStore.storeEvent(J,Y);this.writeSSEEvent(G.controller,G.encoder,Y,K)}if(p5(Y)||Uz(Y)){this._requestResponseMap.set(Q,Y);let K=Array.from(this._requestToStreamMapping.entries()).filter(([Z,H])=>H===J).map(([Z])=>Z);if(K.every((Z)=>this._requestResponseMap.has(Z))){if(!G)throw Error(`No connection established for request ID: ${String(Q)}`);if(this._enableJsonResponse&&G.resolveJson){let Z={"Content-Type":"application/json"};if(this.sessionId!==void 0)Z["mcp-session-id"]=this.sessionId;let H=K.map((F)=>this._requestResponseMap.get(F));if(H.length===1)G.resolveJson(new Response(JSON.stringify(H[0]),{status:200,headers:Z}));else G.resolveJson(new Response(JSON.stringify(H),{status:200,headers:Z}))}else G.cleanup();for(let Z of K)this._requestResponseMap.delete(Z),this._requestToStreamMapping.delete(Z)}}}}var pu=j(()=>{_9()});async function fM1(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function MG4(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function hM1(Y,X={}){try{let Q=await fetch(Y,{method:"POST",headers:{...X,"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"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(MG4(J))return J}if(await AG4(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function AG4(Y){try{let X=new URL(Y),Q=new URL("/.well-known/oauth-authorization-server",X.origin),J=await fetch(Q.toString(),{method:"GET",headers:{Accept:"application/json"}});if(J.ok){let G=await J.json();if(G.authorization_endpoint||G.token_endpoint||G.issuer)return!0}return!1}catch{return!1}}async function nu(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(Y);J.pathname=`${Q}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!hW0.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!hW0.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function PG4(Y,X){let Q=await fM1(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await nu(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function bM1(Y){let X=Y.get("meshContext");if(!X)X=await n3.create(Y.req.raw),Y.set("meshContext",X);return X}async function xM1({error:Y,reqUrl:X,connectionId:Q,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await hM1(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${X.origin}/mcp/${Q}/.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 bW0(Y){let Q=new URL(Y).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${Q}`,G.push(Z);let H=new URL(Y);H.pathname=`${Q}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}var cu,hW0,uM1=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},gM1=async(Y)=>{let X=Y.req.param("connectionId"),Q=await bM1(Y),J=await fM1(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=uM1(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await nu(J);if(!Z.ok&&hW0.includes(Z.status)){if(await hM1(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let H=await Z.json();if("issuer"in H&&!("resource"in H)&&(("authorization_endpoint"in H)||("token_endpoint"in H))){let V={resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:"scopes_supported"in H&&Array.isArray(H.scopes_supported)&&H.scopes_supported.length>0?H.scopes_supported:["*"]};return new Response(JSON.stringify(V),{status:200,headers:{"Content-Type":"application/json"}})}let $={...H,resource:K,authorization_servers:[W]};return new Response(JSON.stringify($),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}},mM1;var xW0=j(()=>{hG();iu();cu=new N9,hW0=[404,401,406];cu.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>gM1(Y));cu.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>gM1(Y));cu.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await bM1(Y),J=await PG4(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await bW0(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${uM1(new URL(Y.req.url)).origin}/oauth-proxy/${X}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});mM1=cu});async function au(Y,X){let Q=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((B)=>B?.id):null,W=X?X:K?vS(K):null;if(!W)return Y.json({error:"Agent ID or organization ID is required"},400);let Z=await Q.storage.virtualMcps.findById(W,K??void 0);if(!Z)return Y.json({error:"Agent not found"},404);if(K&&Z.organization_id!==K)return Y.json({error:"Agent not found"},404);if(Z.status!=="active")return Y.json({error:`Agent is inactive: ${Z.id??"Decopilot"}`},503);Q.connectionId=Z.id??void 0;let H=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if(H)Q.organization={id:H.id,slug:H.slug,name:H.name};let F=H70(Y.req.query("mode")),$=await i2(Z,Q,F),V=gF($,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new Bq({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});return await V.connect(q),await q.handleRequest(Y.req.raw)}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}var uW0,lM1;var gW0=j(()=>{RY();pu();hG();Iu();uW0=new N9;uW0.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return au(Y,X)});uW0.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return au(Y,X)});lM1=uW0});function Uq(Y){let X={client:{callTool:Y.callTool.bind(Y),listTools:Y.listTools.bind(Y)}};if("callStreamableTool"in Y&&Y.callStreamableTool)return{...X,callStreamableTool:Y.callStreamableTool.bind(Y)};return X}async function pM1(Y,X,{superUser:Q}){let J=typeof Y==="string"?await X.storage.connections.findById(Y,X.organization?.id):Y;if(!J)throw Error("Connection not found");if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await GQ(J,X,Q),K=V70(G,J),W=gF(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:K.getServerCapabilities(),instructions:K.getInstructions()}),{client:Z,server:H}=Ta();await W.connect(H);let F=new OQ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(Z),F}async function cM1(Y,X){return pM1(Y,X,{superUser:!1})}async function nM1(Y,X){return pM1(Y,X,{superUser:!0})}var ru,dM1=300000,iM1=(Y,X)=>{if(Y.message.includes("not found"))return X.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return X.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return X.json({error:Y.message},503);return X.json({error:"Internal server error",message:Y.message},500)},aM1;var Dq=j(()=>{DO();RY();hF();pu();hG();xW0();gW0();ru=new N9;ru.all("/",async(Y)=>{return au(Y,void 0)});ru.all("/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.get("meshContext");try{try{let J=await Q.storage.connections.findById(X,Q.organization?.id);if(!J)throw Error("Connection not found");if(Q.organization&&J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");if(Q.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await $70(J,Q,!1),K=new Bq({enableJsonResponse:Y.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),await K.handleRequest(Y.req.raw)}catch(J){let G=await Q.storage.connections.findById(X,Q.organization?.id);if(G?.connection_url){let K=await xM1({error:J,reqUrl:new URL(Y.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{}});if(K)return K}throw J}}catch(J){return iM1(J,Y)}});ru.all("/:connectionId/call-tool/:toolName",async(Y)=>{let X=Y.req.param("connectionId"),Q=Y.req.param("toolName"),J=Y.get("meshContext");try{let G=await J.storage.connections.findById(X,J.organization?.id);if(!G)return Y.json({error:"Connection not found"},404);let W=await(await GQ(G,J,!1)).callTool({name:Q,arguments:await Y.req.json()});if(W instanceof Response)return W;if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(G){return iM1(G,Y)}});aM1=ru});class mW0{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??y4("thrd"),Q=new Date().toISOString();if(!Y.organizationId)throw Error("organizationId is required");if(!Y.createdBy)throw Error("createdBy is required");if(!Y.title)Y.title="New Thread - "+Q;let J={id:X,organization_id:Y.organizationId,title:Y.title,description:Y.description??null,created_at:Q,updated_at:Q,created_by:Y.createdBy,updated_by:Y.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let X=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update(Y,X){let J={updated_at:new Date().toISOString()};if(X.title!==void 0)J.title=X.title;if(X.description!==void 0)J.description=X.description;if(X.updatedBy!==void 0)J.updated_by=X.updatedBy;if(X.hidden!==void 0)J.hidden=X.hidden;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,X,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(X)J=J.where("created_by","=",X);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(X)G=G.where("created_by","=",X);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let X=new Date().toISOString(),Q=Y[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=Y.find((K)=>K.threadId!==Q);if(J)throw Error(`All messages must target the same thread. Expected threadId "${Q}", but message "${J.id}" has threadId "${J.threadId}"`);let G=Y.map((K)=>({id:K.id,thread_id:Q,metadata:K.metadata?JSON.stringify(K.metadata):null,parts:JSON.stringify(K.parts),role:K.role,created_at:K.createdAt??X,updated_at:X}));await this.db.transaction().execute(async(K)=>{await K.insertInto("thread_messages").values(G).execute(),await K.updateTable("threads").set({updated_at:X}).where("id","=",Q).execute()})}async listMessages(Y,X){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",Y);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,K]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((W)=>this.messageFromDbRow(W)),total:Number(K?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,title:Y.title,description:Y.description,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString(),createdBy:Y.created_by,updatedBy:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let X,Q;try{X=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),X=void 0}try{Q=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),Q=[]}return{id:Y.id,threadId:Y.thread_id,metadata:X,parts:Q,role:Y.role,createdAt:typeof Y.created_at==="string"?Y.created_at:Y.created_at.toISOString(),updatedAt:typeof Y.updated_at==="string"?Y.updated_at:Y.updated_at.toISOString()}}}var rM1=j(()=>{v5()});function TG4(Y){if(!Y)return;try{let X=JSON.parse(Y);if(typeof X!=="object"||X===null||Array.isArray(X))return;let Q={};for(let[J,G]of Object.entries(X))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function EG4(Y,X){for(let[Q,J]of Object.entries(X)){let G=Y[Q];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function CG4(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&BW0.includes(J))return!0;if(G)return EG4(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:Q,body:{permission:Z}}))?.success===!0)return!0;let F={};for(let V of Object.keys(Z))F[V]=["*"];return(await W({headers:Q,body:{permission:F}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return X.api.createOrganization({headers:Q,body:Z})},update:async(Z)=>{return X.api.updateOrganization({headers:Q,body:Z})},delete:async(Z)=>{await X.api.deleteOrganization({headers:Q,body:{organizationId:Z}})},get:async(Z)=>{return X.api.getFullOrganization({headers:Q,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return X.api.listOrganizations({headers:Q,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return X.api.addMember({headers:Q,body:Z})},removeMember:async(Z)=>{await X.api.removeMember({headers:Q,body:Z})},listMembers:async(Z)=>{return X.api.listMembers({headers:Q,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return X.api.updateMemberRole({headers:Q,body:Z})}},apiKey:{create:async(Z)=>{return X.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return X.api.listApiKeys({headers:Q})},update:async(Z)=>{return X.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await X.api.deleteApiKey({headers:Q,body:{keyId:Z}})}}}}async function IG4(Y,X,Q){if(BW0.includes(Q))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",Q).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}async function RG4(Y,X,Q,J=sM1){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>X.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>Q.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","=",Z).executeTakeFirst()),F=H?.role,$=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,V;if(H&&F)V=await J.measure("auth_fetch_role_permissions",()=>IG4(Q,H.organizationId,F));return{user:{id:Z,role:F},role:F,permissions:V,organization:$}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>UN1(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>X.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,F,$=W.key.userId;if($&&Z?.id)F=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",$).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:F},role:F,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=new Headers(Y.headers);K.delete("Authorization");let W=await J.measure("auth_get_session",()=>X.api.getSession({headers:K}));if(W){let Z,H;if(W.session.activeOrganizationId){let F=await J.measure("auth_get_full_organization",()=>X.api.getFullOrganization({headers:K}).catch(()=>null));if(F)Z={id:F.id,slug:F.slug,name:F.name},H=F.members?.find((V)=>V.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:H},role:H,organization:Z}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}async function tM1(Y){let X=new rV(Y.encryption.key),Q={connections:new Q2(Y.db,X),organizationSettings:new vW0(Y.db),monitoring:new kW0(Y.db,Y.databaseType),virtualMcps:new jW0(Y.db),users:new fW0(Y.db),threads:new mW0(Y.db),tags:new yW0(Y.db),projects:new J2(Y.db),projectPluginConfigs:new _W0(Y.db)};return async(J,G)=>{let K=G?.timings??sM1,W=Cu(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await RG4(J,Y.auth,Y.db,K):{user:void 0},F=CG4({auth:Y.auth,headers:J?.headers??new Headers,role:H.role,permissions:H.permissions,userId:H.user?.id}),$={user:H.user};if(H.apiKeyId)$.apiKey={id:H.apiKeyId,name:"",userId:""};let V=H.organization,q=J?process.env.BASE_URL??`${new URL(J.url).origin}`:LJ(),B=new VK(Y.auth,$.user?.id,void 0,F,H.role,"self"),D={timings:K,auth:$,connectionId:Z,organization:V,storage:Q,vault:X,authInstance:Y.auth,boundAuth:F,access:B,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(jG4.map((O)=>[O,J?.headers.get(O)??null]).filter(([O,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:TG4(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await cM1(O,D)},getOrCreateClient:W};return D}}var oM1,n3,sM1,jG4;var iu=j(()=>{iG0();ox();k50();kM1();vM1();v50();_M1();yM1();p2();Dq();vu();rM1();rG0();n3={set:(Y)=>{oM1=Y},create:async(Y,X)=>{return await oM1(Y,X)}},sM1={measure:async(Y,X)=>{return await X()}},jG4=["x-hub-signature-256"]});class eM1{db;constructor(Y){this.db=Y}async publishEvent(Y){let X=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:X,updated_at:X}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:X,updatedAt:X}}async subscribe(Y){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)X=X.where("publisher","=",Y.publisher);else X=X.where("publisher","is",null);if(Y.filter)X=X.where("filter","=",Y.filter);else X=X.where("filter","is",null);let Q=await X.executeTakeFirst();if(Q)return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,X){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",X).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,X){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(X)Q=Q.where("connection_id","=",X);return(await Q.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,X){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",Y.source)])).execute()).map((Q)=>({id:Q.id,organizationId:Q.organization_id,connectionId:Q.connection_id,publisher:Q.publisher,eventType:Q.event_type,filter:Q.filter,enabled:Q.enabled===1,createdAt:Q.created_at,updatedAt:Q.updated_at}))}async createDeliveries(Y,X,Q){if(X.length===0)return;let J=new Date().toISOString(),G=Q??null,K=X.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let X=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.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(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=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((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",X)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];Q=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",Q).where("status","=","pending").execute()}if(Q.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",Q).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let X=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:X}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,X,Q=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=Q)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),F=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:X,status:"pending",next_retry_at:F}).where("id","=",K).execute()}}}async updateEventStatus(Y){let X=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(X.length===0)return;let Q=X.every((K)=>K.status==="delivered"),J=X.some((K)=>K.status==="failed"),G=X.some((K)=>K.status==="pending"||K.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,X){let Q=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",X).executeTakeFirst();if(!Q)return null;return{id:Q.id,organizationId:Q.organization_id,type:Q.type,source:Q.source,specversion:Q.specversion,subject:Q.subject,time:Q.time,datacontenttype:Q.datacontenttype,dataschema:Q.dataschema,data:Q.data?JSON.parse(Q.data):null,cron:Q.cron,status:Q.status,attempts:Q.attempts,lastError:Q.last_error,nextRetryAt:Q.next_retry_at,createdAt:Q.created_at,updatedAt:Q.updated_at}}async findActiveCronEvent(Y,X,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",X).where("source","=",Q).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,X,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",X).where("source","=",Q).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,X){if(Y.length===0)return;let Q=new Date(Date.now()+X).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",Y).execute()}async ackDelivery(Y,X,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",X).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",X))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:X,connectionId:Q,subscriptions:J}=Y,G=(w,I)=>{return`${w}::${I??""}`},K=await this.listSubscriptions(X,Q),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),F=[],$=[],V=[],q=0;for(let[w,I]of Z){let P=W.get(w);if(!P)F.push({id:crypto.randomUUID(),organization_id:X,connection_id:Q,event_type:I.eventType,publisher:I.publisher??null,filter:I.filter??null,enabled:1,created_at:H,updated_at:H});else{let T=P.filter??null,A=I.filter??null;if(T!==A)$.push({id:P.id,filter:A});else q++}}for(let[w,I]of W)if(!Z.has(w))V.push(I.id);if(F.length>0)await this.db.insertInto("event_subscriptions").values(F).execute();if($.length>0)await Promise.all($.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let B=F.length,D=$.length,O=V.length,L=await this.listSubscriptions(X,Q);return{created:B,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function YA1(Y){return new eM1(Y)}function wX(Y,X,Q,J,G,K,W,Z){return wX.fromTZ(wX.tp(Y,X,Q,J,G,K,W),Z)}function lW0(Y,X=new Date){let Q=X.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=X.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function SG4(Y,X){let Q=new Date(Date.parse(Y));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?wX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):wX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}function kG4(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new y5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new y5(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function GE(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function vG4(Y){return GE(Y)}function _G4(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var dW0=32,WE,GA1,XA1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,X){this.pattern=Y,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 Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let X=new y5(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",X.getSeconds().toString()),Y[1]=Y[1].replace("?",X.getMinutes().toString()),Y[2]=Y[2].replace("?",X.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",X.getDate().toString())),Y[4]=Y[4].replace("?",(X.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",X.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,WE),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,X,Q,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(X===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+X+") is empty, check for trailing spaces.");if(X==="*")return G.fill(J);let W=X.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],Q,J);else X.indexOf("-")!==-1&&X.indexOf("/")!==-1?this.handleRangeWithStepping(X,Y,Q,J):X.indexOf("-")!==-1?this.handleRange(X,Y,Q,J):X.indexOf("/")!==-1?this.handleStepping(X,Y,Q,J):X!==""&&this.handleNumber(X,Y,Q,J)}throwAtIllegalCharacters(Y){for(let X=0;X<Y.length;X++)if((X===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[X]))throw TypeError("CronPattern: configuration entry "+X+" ("+Y[X]+") contains illegal characters.")}handleNumber(Y,X,Q,J){let G=this.extractNth(Y,X),K=parseInt(G[0],10)+Q;if(isNaN(K))throw TypeError("CronPattern: "+X+" is not a number: '"+Y+"'");this.setPart(X,K,G[1]||J)}setPart(Y,X,Q){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(X===7&&(X=0),X<0||X>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+X);this.setNthWeekdayOfMonth(X,Q);return}if(Y==="second"||Y==="minute"){if(X<0||X>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="hour"){if(X<0||X>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="day"){if(X<0||X>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+X)}else if(Y==="month"&&(X<0||X>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+X);this[Y][X]=Q}handleRangeWithStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,F=parseInt(W,10)+Q,$=parseInt(Z,10)+Q,V=parseInt(H,10);if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[X].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[X].length+")");if(F>$)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let q=F;q<=$;q+=V)this.setPart(X,q,G[1]||J)}extractNth(Y,X){let Q=Y,J;if(Q.includes("#")){if(X!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+Q,Z=parseInt(K[1],10)+Q;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(X,H,G[1]||J)}handleStepping(Y,X,Q,J){let G=this.extractNth(Y,X),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+Q);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[X].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[X].length+")");for(let H=W;H<this[X].length;H+=Z)this.setPart(X,H,G[1]||J)}replaceAlphaDays(Y){return Y.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(Y){return Y.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(Y){let X=Y.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 * * * *":Y}setNthWeekdayOfMonth(Y,X){if(typeof X!="number"&&X==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|dW0;else if(X===WE)this.dayOfWeek[Y]=WE;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|GA1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},QA1,DK,y5=class Y{tz;ms;second;minute;hour;day;month;year;constructor(X,Q){if(this.tz=Q,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 Y)this.fromCronDate(X);else throw TypeError("CronDate: Invalid type ("+typeof X+") passed to CronDate constructor")}isNthWeekdayOfMonth(X,Q,J,G){let K=new Date(Date.UTC(X,Q,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(X,Q,Z)).getUTCDay()===K&&W++;if(G&WE&&GA1[W-1]&G)return!0;if(G&dW0){let Z=new Date(Date.UTC(X,Q+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(X,Q,H)).getUTCDay()===K)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 Q=wX.toTZ(X,this.tz);this.ms=X.getMilliseconds(),this.second=Q.s,this.minute=Q.i,this.hour=Q.h,this.day=Q.d,this.month=Q.m-1,this.year=Q.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>QA1[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 Q=wX.fromTZISO(X);this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply()}else return this.fromDate(wX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=QA1[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[Q]+G;H<J[Q].length;H++){let F=J[Q][H];if(Q==="day"&&J.lastDayOfMonth&&H-G==W&&(F=1),Q==="day"&&!J.starDOW){let $=J.dayOfWeek[(Z+(H-G-1))%7];if($&&$&WE)$=this.isNthWeekdayOfMonth(this.year,this.month,H-G,$)?1:0;else if($)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${$}`);X.legacyMode&&!J.starDOM?F=F||$:F=F&&$}if(F)return this[Q]=H-G,K!==this[Q]?2:1}return 3}recurse(X,Q,J){let G=this.findNext(Q,DK[J][0],X,DK[J][2]);if(G>1){let K=J+1;for(;K<DK.length;)this[DK[K][0]]=-DK[K][2],K++;if(G===3)return this[DK[J][1]]++,this[DK[J][0]]=-DK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=DK.length?this:this.year>=3000?null:this.recurse(X,Q,J)}increment(X,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(X,Q,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)):wX.fromTZ(wX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},JA1=30000,ou,su=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(GE(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(GE(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=kG4(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new XA1("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new y5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new XA1(Y,this.options.timezone),this.name){if(ou.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");ou.push(this)}return G!==void 0&&vG4(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let X=this._next(Y);return X?X.getDate(!1):null}nextRuns(Y,X){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let Q=[],J=X||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),X=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return X&&Q&&J&&Y!==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(Y){let X=this._next(Y);return X?Y instanceof y5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new y5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=ou.indexOf(this);Y>=0&&ou.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let X=this.msToNext(),Q=this.nextRun(this._states.currentRun);return X==null||isNaN(X)||Q===null?this:(X>JA1&&(X=JA1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&_G4(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new y5(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){GE(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new y5(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let X=new Date,Q=!this._states.paused&&X.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&GE(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let X=!!(Y||this._states.currentRun),Q=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,X]=this._calculatePreviousRun(Y,X),Q=!Y),Y=new y5(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new y5(Y,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,X)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,X){let Q=new y5(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=Q.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=Q.getTime();)J=new y5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;X=!0}return J===null&&(J=void 0),[J,X]}};var pW0=j(()=>{wX.fromTZISO=(Y,X,Q)=>wX.fromTZ(SG4(Y,X),Q);wX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=lW0(Y.tz,Q),G=new Date(Q.getTime()-J),K=lW0(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=lW0(Y.tz,W);if(Z-K===0)return W;if(!X&&Z-K>0)return W;if(X)throw Error("Invalid date passed to fromTZ()");return G}};wX.toTZ=function(Y,X){let Q=Y.toLocaleString("en-US",{timeZone:X}).replace(/[\u202f]/," "),J=new Date(Q);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:X}};wX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});wX.minitz=wX;WE=31|dW0,GA1=[1,2,4,8,16],QA1=[31,28,31,30,31,30,31,31,30,31,30,31],DK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];ou=[]});var tu;var cW0=j(()=>{tu={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function WA1(){return async(Y,X)=>{try{let Q=await n3.create(),J=await nM1(Y,Q),K=await gG0.forClient(Uq(J)).ON_EVENTS({events:X});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}var ZA1=j(()=>{iu();Lu();Dq()});function KA1(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function yG4(Y){let X=new Map;for(let J of Y){let G=J.subscription.connectionId,K=X.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(KA1(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[KA1(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of X)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class nW0{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=WA1(),this.config={...tu,...X}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} 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){this.pendingNotify=!0;return}this.processing=!0;try{do this.pendingNotify=!1,await this.processEvents();while(this.pendingNotify)}catch(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let X=yG4(Y),Q=new Set;await Promise.allSettled(Array.from(X.entries()).map(async([J,G])=>{try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))Q.add(K.event.id)}));for(let J of Q)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,X){let Q=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=X.results?.[W.id];if(H)if(H.success)Q.push(Z);else if(H.retryAfter&&H.retryAfter>0){let F=J.get(H.retryAfter)||[];F.push(Z),J.set(H.retryAfter,F)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(X.success)Q.push(Z);else if(X.retryAfter&&X.retryAfter>0){let F=J.get(X.retryAfter)||[];F.push(Z),J.set(X.retryAfter,F)}else G.push({deliveryId:Z,error:X.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let F=W.get(H)||[];F.push(Z),W.set(H,F)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let Q=new su(Y.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(X){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,X)}}}var HA1=j(()=>{pW0();cW0();ZA1()});class iW0{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new nW0(this.storage,Y.config)}async publish(Y,X,Q){if(Q.deliverAt&&Q.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(Q.cron){try{let $=new su(Q.cron).nextRun();if(!$)throw Error("Cron expression does not produce a next run time");J=$.toISOString()}catch(F){throw Error(`Invalid cron expression: ${F instanceof Error?F.message:String(F)}`)}let H=await this.storage.findActiveCronEvent(Y,Q.type,X,Q.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:Q.type,source:X,subject:Q.subject,time:K,data:Q.data,cron:Q.cron}),Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=Q.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map((F)=>F.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch((F)=>{console.warn("[EventBus] Notify failed (non-critical):",F)})}return W}async subscribe(Y,X){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:X.connectionId,publisher:X.publisher,eventType:X.eventType,filter:X.filter})}async unsubscribe(Y,X){return this.storage.unsubscribe(X,Y)}async listSubscriptions(Y,X){return this.storage.listSubscriptions(Y,X)}async getSubscription(Y,X){return this.storage.getSubscription(X,Y)}async getEvent(Y,X){return this.storage.getEvent(X,Y)}async cancelEvent(Y,X,Q){return this.storage.cancelEvent(X,Y,Q)}async ackEvent(Y,X,Q){return this.storage.ackDelivery(X,Y,Q)}async syncSubscriptions(Y,X){return this.storage.syncSubscriptions({organizationId:Y,...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((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var FA1=j(()=>{pW0();HA1()});function $A1(...Y){return{async start(X){await Promise.all(Y.map((Q)=>Q.start(X)))},async stop(){await Promise.all(Y.map((X)=>X.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(X){await Promise.all(Y.map((Q)=>Q.notify(X).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class eu{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,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(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as fG4}from"kysely";class aW0{db;pool;listenClient=null;onNotify=null;constructor(Y,X){this.db=Y;this.pool=X}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(X)=>{if(X.channel===MO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${MO}`),console.log("[PostgresNotify] Started LISTEN on",MO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${MO}`),console.log("[PostgresNotify] Stopped LISTEN on",MO)}catch{}this.cleanup()}}async notify(Y){try{await fG4`SELECT pg_notify(${MO}, ${Y})`.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 MO="mesh_events";var VA1=()=>{};function qA1(Y,X){let Q=YA1(Y.db),J=X?.pollIntervalMs??tu.pollIntervalMs,G=Y.type==="postgres"?$A1(new eu(J),new aW0(Y.db,Y.pool)):new eu(J);return new iW0({storage:Q,config:X,notifyStrategy:G})}var zA1=j(()=>{FA1();cW0();VA1()});var BA1;var UA1=j(()=>{BA1={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 DA1,OA1;var NA1=j(()=>{hG();qO();UA1();DA1=new N9;DA1.get("/config",async(Y)=>{try{let X=Object.keys(O9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:BA1[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:O9.emailAndPassword?.enabled??!1},magicLink:{enabled:O9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:O9.ssoConfig?{enabled:!0,providerId:O9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return Y.json({success:!0,config:K})}catch(X){let Q=X instanceof Error?X.message:"Failed to load auth config";return Y.json({success:!1,error:Q},500)}});OA1=DA1});function bG(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}var iA1="vercel.ai.error",hG4,LA1,wA1,M1,aA1="AI_APICallError",rA1,bG4,MA1,AA1,Q9,oA1="AI_EmptyResponseBodyError",sA1,xG4,PA1,TA1,tA1,eA1="AI_InvalidArgumentError",YP1,uG4,EA1,CA1,XP1,QP1="AI_InvalidPromptError",JP1,gG4,IA1,RA1,Oq,GP1="AI_InvalidResponseDataError",WP1,mG4,jA1,SA1,UE8,ZP1="AI_JSONParseError",KP1,lG4,kA1,vA1,ZE,HP1="AI_LoadAPIKeyError",FP1,dG4,_A1,yA1,DE8,$P1="AI_LoadSettingError",VP1,pG4,fA1,hA1,OE8,qP1="AI_NoContentGeneratedError",zP1,cG4,bA1,xA1,NE8,BP1="AI_NoSuchModelError",UP1,nG4,uA1,gA1,LE8,DP1="AI_TooManyEmbeddingValuesForCallError",OP1,iG4,mA1,lA1,wE8,NP1="AI_TypeValidationError",LP1,aG4,dA1,pA1,pQ,wP1="AI_UnsupportedFunctionalityError",MP1,rG4,cA1,nA1,AP1;var A4=j(()=>{hG4=Symbol.for(iA1),M1=class Y extends(wA1=Error,LA1=hG4,wA1){constructor({name:X,message:Q,cause:J}){super(Q);this[LA1]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,iA1)}static hasMarker(X,Q){let J=Symbol.for(Q);return X!=null&&typeof X==="object"&&J in X&&typeof X[J]==="boolean"&&X[J]===!0}},rA1=`vercel.ai.error.${aA1}`,bG4=Symbol.for(rA1),Q9=class extends(AA1=M1,MA1=bG4,AA1){constructor({message:Y,url:X,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:K,cause:W,isRetryable:Z=J!=null&&(J===408||J===409||J===429||J>=500),data:H}){super({name:aA1,message:Y,cause:W});this[MA1]=!0,this.url=X,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=K,this.isRetryable=Z,this.data=H}static isInstance(Y){return M1.hasMarker(Y,rA1)}},sA1=`vercel.ai.error.${oA1}`,xG4=Symbol.for(sA1),tA1=class extends(TA1=M1,PA1=xG4,TA1){constructor({message:Y="Empty response body"}={}){super({name:oA1,message:Y});this[PA1]=!0}static isInstance(Y){return M1.hasMarker(Y,sA1)}};YP1=`vercel.ai.error.${eA1}`,uG4=Symbol.for(YP1),XP1=class extends(CA1=M1,EA1=uG4,CA1){constructor({message:Y,cause:X,argument:Q}){super({name:eA1,message:Y,cause:X});this[EA1]=!0,this.argument=Q}static isInstance(Y){return M1.hasMarker(Y,YP1)}},JP1=`vercel.ai.error.${QP1}`,gG4=Symbol.for(JP1),Oq=class extends(RA1=M1,IA1=gG4,RA1){constructor({prompt:Y,message:X,cause:Q}){super({name:QP1,message:`Invalid prompt: ${X}`,cause:Q});this[IA1]=!0,this.prompt=Y}static isInstance(Y){return M1.hasMarker(Y,JP1)}},WP1=`vercel.ai.error.${GP1}`,mG4=Symbol.for(WP1),UE8=class extends(SA1=M1,jA1=mG4,SA1){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:GP1,message:X});this[jA1]=!0,this.data=Y}static isInstance(Y){return M1.hasMarker(Y,WP1)}},KP1=`vercel.ai.error.${ZP1}`,lG4=Symbol.for(KP1),ZE=class extends(vA1=M1,kA1=lG4,vA1){constructor({text:Y,cause:X}){super({name:ZP1,message:`JSON parsing failed: Text: ${Y}.
|
|
1236
1236
|
Error message: ${bG(X)}`,cause:X});this[kA1]=!0,this.text=Y}static isInstance(Y){return M1.hasMarker(Y,KP1)}},FP1=`vercel.ai.error.${HP1}`,dG4=Symbol.for(FP1),DE8=class extends(yA1=M1,_A1=dG4,yA1){constructor({message:Y}){super({name:HP1,message:Y});this[_A1]=!0}static isInstance(Y){return M1.hasMarker(Y,FP1)}},VP1=`vercel.ai.error.${$P1}`,pG4=Symbol.for(VP1),OE8=class extends(hA1=M1,fA1=pG4,hA1){constructor({message:Y}){super({name:$P1,message:Y});this[fA1]=!0}static isInstance(Y){return M1.hasMarker(Y,VP1)}},zP1=`vercel.ai.error.${qP1}`,cG4=Symbol.for(zP1),NE8=class extends(xA1=M1,bA1=cG4,xA1){constructor({message:Y="No content generated."}={}){super({name:qP1,message:Y});this[bA1]=!0}static isInstance(Y){return M1.hasMarker(Y,zP1)}},UP1=`vercel.ai.error.${BP1}`,nG4=Symbol.for(UP1),LE8=class extends(gA1=M1,uA1=nG4,gA1){constructor({errorName:Y=BP1,modelId:X,modelType:Q,message:J=`No such ${Q}: ${X}`}){super({name:Y,message:J});this[uA1]=!0,this.modelId=X,this.modelType=Q}static isInstance(Y){return M1.hasMarker(Y,UP1)}},OP1=`vercel.ai.error.${DP1}`,iG4=Symbol.for(OP1),wE8=class extends(lA1=M1,mA1=iG4,lA1){constructor(Y){super({name:DP1,message:`Too many values for a single embedding call. The ${Y.provider} model "${Y.modelId}" can only embed up to ${Y.maxEmbeddingsPerCall} values per call, but ${Y.values.length} values were provided.`});this[mA1]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return M1.hasMarker(Y,OP1)}},LP1=`vercel.ai.error.${NP1}`,aG4=Symbol.for(LP1),pQ=class Y extends(pA1=M1,dA1=aG4,pA1){constructor({value:X,cause:Q,context:J}){let G="Type validation failed";if(J==null?void 0:J.field)G+=` for ${J.field}`;if((J==null?void 0:J.entityName)||(J==null?void 0:J.entityId)){G+=" (";let K=[];if(J.entityName)K.push(J.entityName);if(J.entityId)K.push(`id: "${J.entityId}"`);G+=K.join(", "),G+=")"}super({name:NP1,message:`${G}: Value: ${JSON.stringify(X)}.
|
|
1237
1237
|
Error message: ${bG(Q)}`,cause:Q});this[dA1]=!0,this.value=X,this.context=J}static isInstance(X){return M1.hasMarker(X,LP1)}static wrap({value:X,cause:Q,context:J}){var G,K,W;if(Y.isInstance(Q)&&Q.value===X&&((G=Q.context)==null?void 0:G.field)===(J==null?void 0:J.field)&&((K=Q.context)==null?void 0:K.entityName)===(J==null?void 0:J.entityName)&&((W=Q.context)==null?void 0:W.entityId)===(J==null?void 0:J.entityId))return Q;return new Y({value:X,cause:Q,context:J})}},MP1=`vercel.ai.error.${wP1}`,rG4=Symbol.for(MP1),AP1=class extends(nA1=M1,cA1=rG4,nA1){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:wP1,message:X});this[cA1]=!0,this.functionality=Y}static isInstance(Y){return M1.hasMarker(Y,MP1)}}});function NK(...Y){return Y.reduce((X,Q)=>({...X,...Q!=null?Q:{}}),{})}async function jP1(Y,X){if(Y==null)return Promise.resolve();let Q=X==null?void 0:X.abortSignal;return new Promise((J,G)=>{if(Q==null?void 0:Q.aborted){G(PP1());return}let K=setTimeout(()=>{W(),J()},Y),W=()=>{clearTimeout(K),Q==null||Q.removeEventListener("abort",Z)},Z=()=>{W(),G(PP1())};Q==null||Q.addEventListener("abort",Z)})}function PP1(){return new DOMException("Delay was aborted","AbortError")}function KE(Y){return Object.fromEntries([...Y.headers])}function AO(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),Q=sG4(X);return Uint8Array.from(Q,(J)=>J.codePointAt(0))}function LK(Y){let X="";for(let Q=0;Q<Y.length;Q++)X+=String.fromCodePoint(Y[Q]);return oG4(X)}function PO(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.message;return JSON.stringify(Y)}function OK(Y){return(Y instanceof Error||Y instanceof DOMException)&&(Y.name==="AbortError"||Y.name==="ResponseAborted"||Y.name==="TimeoutError")}function Q74(Y){if(!(Y instanceof Error))return!1;let X=Y.code;if(typeof X==="string"&&X74.includes(X))return!0;return!1}function vP1({error:Y,url:X,requestBodyValues:Q}){if(OK(Y))return Y;if(Y instanceof TypeError&&Y74.includes(Y.message.toLowerCase())){let J=Y.cause;if(J!=null)return new Q9({message:`Cannot connect to API: ${J.message}`,cause:J,url:X,requestBodyValues:Q,isRetryable:!0})}if(Q74(Y))return new Q9({message:`Cannot connect to API: ${Y.message}`,cause:Y,url:X,requestBodyValues:Q,isRetryable:!0});return Y}function Xg(Y=globalThis){var X,Q,J;if(Y.window)return"runtime/browser";if((X=Y.navigator)==null?void 0:X.userAgent)return`runtime/${Y.navigator.userAgent.toLowerCase()}`;if((J=(Q=Y.process)==null?void 0:Q.versions)==null?void 0:J.node)return`runtime/node.js/${Y.process.version.substring(0)}`;if(Y.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function J74(Y){if(Y==null)return{};let X={};if(Y instanceof Headers)Y.forEach((Q,J)=>{X[J.toLowerCase()]=Q});else{if(!Array.isArray(Y))Y=Object.entries(Y);for(let[Q,J]of Y)if(J!=null)X[Q.toLowerCase()]=J}return X}function wK(Y,...X){let Q=new Headers(J74(Y)),J=Q.get("user-agent")||"";return Q.set("user-agent",[J,...X].filter(Boolean).join(" ")),Object.fromEntries(Q.entries())}function yP1(Y){return Y!=null}function fP1({mediaType:Y,url:X,supportedUrls:Q}){return X=X.toLowerCase(),Y=Y.toLowerCase(),Object.entries(Q).map(([J,G])=>{let K=J.toLowerCase();return K==="*"||K==="*/*"?{mediaTypePrefix:"",regexes:G}:{mediaTypePrefix:K.replace(/\*/,""),regexes:G}}).filter(({mediaTypePrefix:J})=>Y.startsWith(J)).flatMap(({regexes:J})=>J).some((J)=>J.test(X))}function HE({settingValue:Y,environmentVariableName:X}){if(typeof Y==="string")return Y;if(Y!=null||typeof process>"u")return;if(Y=process.env[X],Y==null||typeof Y!=="string")return;return Y}function CP1(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(W74.test(Y)===!1&&Z74.test(Y)===!1)return X;return K74(X)}function K74(Y){let X=[Y];while(X.length){let Q=X;X=[];for(let J of Q){if(Object.prototype.hasOwnProperty.call(J,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(J,"constructor")&&Object.prototype.hasOwnProperty.call(J.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let G in J){let K=J[G];if(K&&typeof K==="object")X.push(K)}}}return Y}function hP1(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(Q){return CP1(Y)}try{return CP1(Y)}finally{Error.stackTraceLimit=X}}function YZ0(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){Y.additionalProperties=!1;let{properties:Q}=Y;if(Q!=null)for(let J of Object.keys(Q))Q[J]=Nq(Q[J])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(Nq):Nq(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(Nq);if(Y.allOf!=null)Y.allOf=Y.allOf.map(Nq);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(Nq);let{definitions:X}=Y;if(X!=null)for(let Q of Object.keys(X))X[Q]=Nq(X[Q]);return Y}function Nq(Y){if(typeof Y==="boolean")return Y;return YZ0(Y)}function IJ(){return{}}function $74(Y,X){var Q,J,G;let K={type:"array"};if(((Q=Y.type)==null?void 0:Q._def)&&((G=(J=Y.type)==null?void 0:J._def)==null?void 0:G.typeName)!==j0.ZodAny)K.items=r4(Y.type._def,{...X,currentPath:[...X.currentPath,"items"]});if(Y.minLength)K.minItems=Y.minLength.value;if(Y.maxLength)K.maxItems=Y.maxLength.value;if(Y.exactLength)K.minItems=Y.exactLength.value,K.maxItems=Y.exactLength.value;return K}function V74(Y){let X={type:"integer",format:"int64"};if(!Y.checks)return X;for(let Q of Y.checks)switch(Q.kind){case"min":if(Q.inclusive)X.minimum=Q.value;else X.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)X.maximum=Q.value;else X.exclusiveMaximum=Q.value;break;case"multipleOf":X.multipleOf=Q.value;break}return X}function q74(){return{type:"boolean"}}function bP1(Y,X){return r4(Y.type._def,X)}function xP1(Y,X,Q){let J=Q!=null?Q:X.dateStrategy;if(Array.isArray(J))return{anyOf:J.map((G,K)=>xP1(Y,X,G))};switch(J){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return B74(Y)}}function U74(Y,X){return{...r4(Y.innerType._def,X),default:Y.defaultValue()}}function D74(Y,X){return X.effectStrategy==="input"?r4(Y.schema._def,X):IJ()}function O74(Y){return{type:"string",enum:Array.from(Y.values)}}function L74(Y,X){let Q=[r4(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),r4(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter((G)=>!!G),J=[];return Q.forEach((G)=>{if(N74(G))J.push(...G.allOf);else{let K=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:W,...Z}=G;K=Z}J.push(K)}}),J.length?{allOf:J}:void 0}function w74(Y){let X=typeof Y.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray(Y.value)?"array":"object"};return{type:X==="bigint"?"integer":X,const:Y.value}}function uP1(Y,X){let Q={type:"string"};if(Y.checks)for(let J of Y.checks)switch(J.kind){case"min":Q.minLength=typeof Q.minLength==="number"?Math.max(Q.minLength,J.value):J.value;break;case"max":Q.maxLength=typeof Q.maxLength==="number"?Math.min(Q.maxLength,J.value):J.value;break;case"email":switch(X.emailStrategy){case"format:email":uG(Q,"email",J.message,X);break;case"format:idn-email":uG(Q,"idn-email",J.message,X);break;case"pattern:zod":WQ(Q,xG.email,J.message,X);break}break;case"url":uG(Q,"uri",J.message,X);break;case"uuid":uG(Q,"uuid",J.message,X);break;case"regex":WQ(Q,J.regex,J.message,X);break;case"cuid":WQ(Q,xG.cuid,J.message,X);break;case"cuid2":WQ(Q,xG.cuid2,J.message,X);break;case"startsWith":WQ(Q,RegExp(`^${oW0(J.value,X)}`),J.message,X);break;case"endsWith":WQ(Q,RegExp(`${oW0(J.value,X)}$`),J.message,X);break;case"datetime":uG(Q,"date-time",J.message,X);break;case"date":uG(Q,"date",J.message,X);break;case"time":uG(Q,"time",J.message,X);break;case"duration":uG(Q,"duration",J.message,X);break;case"length":Q.minLength=typeof Q.minLength==="number"?Math.max(Q.minLength,J.value):J.value,Q.maxLength=typeof Q.maxLength==="number"?Math.min(Q.maxLength,J.value):J.value;break;case"includes":{WQ(Q,RegExp(oW0(J.value,X)),J.message,X);break}case"ip":{if(J.version!=="v6")uG(Q,"ipv4",J.message,X);if(J.version!=="v4")uG(Q,"ipv6",J.message,X);break}case"base64url":WQ(Q,xG.base64url,J.message,X);break;case"jwt":WQ(Q,xG.jwt,J.message,X);break;case"cidr":{if(J.version!=="v6")WQ(Q,xG.ipv4Cidr,J.message,X);if(J.version!=="v4")WQ(Q,xG.ipv6Cidr,J.message,X);break}case"emoji":WQ(Q,xG.emoji(),J.message,X);break;case"ulid":{WQ(Q,xG.ulid,J.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{uG(Q,"binary",J.message,X);break}case"contentEncoding:base64":{Q.contentEncoding="base64";break}case"pattern:zod":{WQ(Q,xG.base64,J.message,X);break}}break}case"nanoid":WQ(Q,xG.nanoid,J.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return Q}function oW0(Y,X){return X.patternStrategy==="escape"?A74(Y):Y}function A74(Y){let X="";for(let Q=0;Q<Y.length;Q++){if(!M74.has(Y[Q]))X+="\\";X+=Y[Q]}return X}function uG(Y,X,Q,J){var G;if(Y.format||((G=Y.anyOf)==null?void 0:G.some((K)=>K.format))){if(!Y.anyOf)Y.anyOf=[];if(Y.format)Y.anyOf.push({format:Y.format}),delete Y.format;Y.anyOf.push({format:X,...Q&&J.errorMessages&&{errorMessage:{format:Q}}})}else Y.format=X}function WQ(Y,X,Q,J){var G;if(Y.pattern||((G=Y.allOf)==null?void 0:G.some((K)=>K.pattern))){if(!Y.allOf)Y.allOf=[];if(Y.pattern)Y.allOf.push({pattern:Y.pattern}),delete Y.pattern;Y.allOf.push({pattern:RP1(X,J),...Q&&J.errorMessages&&{errorMessage:{pattern:Q}}})}else Y.pattern=RP1(X,J)}function RP1(Y,X){var Q;if(!X.applyRegexFlags||!Y.flags)return Y.source;let J={i:Y.flags.includes("i"),m:Y.flags.includes("m"),s:Y.flags.includes("s")},G=J.i?Y.source.toLowerCase():Y.source,K="",W=!1,Z=!1,H=!1;for(let F=0;F<G.length;F++){if(W){K+=G[F],W=!1;continue}if(J.i){if(Z){if(G[F].match(/[a-z]/)){if(H)K+=G[F],K+=`${G[F-2]}-${G[F]}`.toUpperCase(),H=!1;else if(G[F+1]==="-"&&((Q=G[F+2])==null?void 0:Q.match(/[a-z]/)))K+=G[F],H=!0;else K+=`${G[F]}${G[F].toUpperCase()}`;continue}}else if(G[F].match(/[a-z]/)){K+=`[${G[F]}${G[F].toUpperCase()}]`;continue}}if(J.m){if(G[F]==="^"){K+=`(^|(?<=[\r
|
|
1238
1238
|
]))`;continue}else if(G[F]==="$"){K+=`($|(?=[\r
|
|
1239
1239
|
]))`;continue}}if(J.s&&G[F]==="."){K+=Z?`${G[F]}\r
|
|
1240
1240
|
`:`[${G[F]}\r
|
|
1241
1241
|
]`;continue}if(K+=G[F],G[F]==="\\")W=!0;else if(Z&&G[F]==="]")Z=!1;else if(!Z&&G[F]==="[")Z=!0}try{new RegExp(K)}catch(F){return console.warn(`Could not convert regex pattern at ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return K}function gP1(Y,X){var Q,J,G,K,W,Z;let H={type:"object",additionalProperties:(Q=r4(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?Q:X.allowedAdditionalProperties};if(((J=Y.keyType)==null?void 0:J._def.typeName)===j0.ZodString&&((G=Y.keyType._def.checks)==null?void 0:G.length)){let{type:F,...$}=uP1(Y.keyType._def,X);return{...H,propertyNames:$}}else if(((K=Y.keyType)==null?void 0:K._def.typeName)===j0.ZodEnum)return{...H,propertyNames:{enum:Y.keyType._def.values}};else if(((W=Y.keyType)==null?void 0:W._def.typeName)===j0.ZodBranded&&Y.keyType._def.type._def.typeName===j0.ZodString&&((Z=Y.keyType._def.type._def.checks)==null?void 0:Z.length)){let{type:F,...$}=bP1(Y.keyType._def,X);return{...H,propertyNames:$}}return H}function P74(Y,X){if(X.mapStrategy==="record")return gP1(Y,X);let Q=r4(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||IJ(),J=r4(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||IJ();return{type:"array",maxItems:125,items:{type:"array",items:[Q,J],minItems:2,maxItems:2}}}function T74(Y){let X=Y.values,J=Object.keys(Y.values).filter((K)=>{return typeof X[X[K]]!=="number"}).map((K)=>X[K]),G=Array.from(new Set(J.map((K)=>typeof K)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:J}}function E74(){return{not:IJ()}}function C74(){return{type:"null"}}function I74(Y,X){let Q=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(Q.every((J)=>(J._def.typeName in sW0)&&(!J._def.checks||!J._def.checks.length))){let J=Q.reduce((G,K)=>{let W=sW0[K._def.typeName];return W&&!G.includes(W)?[...G,W]:G},[]);return{type:J.length>1?J:J[0]}}else if(Q.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=Q.reduce((G,K)=>{let W=typeof K._def.value;switch(W){case"string":case"number":case"boolean":return[...G,W];case"bigint":return[...G,"integer"];case"object":if(K._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(J.length===Q.length){let G=J.filter((K,W,Z)=>Z.indexOf(K)===W);return{type:G.length>1?G:G[0],enum:Q.reduce((K,W)=>{return K.includes(W._def.value)?K:[...K,W._def.value]},[])}}}else if(Q.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((J,G)=>[...J,...G._def.values.filter((K)=>!J.includes(K))],[])};return R74(Y,X)}function j74(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[sW0[Y.innerType._def.typeName],"null"]};let Q=r4(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function S74(Y){let X={type:"number"};if(!Y.checks)return X;for(let Q of Y.checks)switch(Q.kind){case"int":X.type="integer";break;case"min":if(Q.inclusive)X.minimum=Q.value;else X.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)X.maximum=Q.value;else X.exclusiveMaximum=Q.value;break;case"multipleOf":X.multipleOf=Q.value;break}return X}function k74(Y,X){let Q={type:"object",properties:{}},J=[],G=Y.shape();for(let W in G){let Z=G[W];if(Z===void 0||Z._def===void 0)continue;let H=_74(Z),F=r4(Z._def,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(F===void 0)continue;if(Q.properties[W]=F,!H)J.push(W)}if(J.length)Q.required=J;let K=v74(Y,X);if(K!==void 0)Q.additionalProperties=K;return Q}function v74(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return r4(Y.catchall._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return X.allowedAdditionalProperties;case"strict":return X.rejectedAdditionalProperties;case"strip":return X.removeAdditionalStrategy==="strict"?X.allowedAdditionalProperties:X.rejectedAdditionalProperties}}function _74(Y){try{return Y.isOptional()}catch(X){return!0}}function h74(Y,X){return r4(Y.type._def,X)}function b74(Y,X){let J={type:"array",uniqueItems:!0,items:r4(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items"]})};if(Y.minSize)J.minItems=Y.minSize.value;if(Y.maxSize)J.maxItems=Y.maxSize.value;return J}function x74(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((Q,J)=>r4(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[]),additionalItems:r4(Y.rest._def,{...X,currentPath:[...X.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((Q,J)=>r4(Q._def,{...X,currentPath:[...X.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[])}}function u74(){return{not:IJ()}}function g74(){return IJ()}function r4(Y,X,Q=!1){var J;let G=X.seen.get(Y);if(X.override){let H=(J=X.override)==null?void 0:J.call(X,Y,X,G,Q);if(H!==H74)return H}if(G&&!Q){let H=p74(G,X);if(H!==void 0)return H}let K={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,K);let W=l74(Y,Y.typeName,X),Z=typeof W==="function"?r4(W(),X):W;if(Z)c74(Y,X,Z);if(X.postProcess){let H=X.postProcess(Z,Y,X);return K.jsonSchema=Z,H}return K.jsonSchema=Z,Z}function L9(Y){let X;return()=>{if(X==null)X=Y();return X}}function gG(Y,{validate:X}={}){return{[tW0]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function a74(Y){return typeof Y==="object"&&Y!==null&&tW0 in Y&&Y[tW0]===!0&&"jsonSchema"in Y&&"validate"in Y}function EW(Y){return Y==null?gG({properties:{},additionalProperties:!1}):a74(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?i8(Y):r74(Y):Y()}function r74(Y){return gG(()=>YZ0(Y["~standard"].jsonSchema.input({target:"draft-07"})),{validate:async(X)=>{let Q=await Y["~standard"].validate(X);return"value"in Q?{success:!0,value:Q.value}:{success:!1,error:new pQ({value:X,cause:Q.issues})}}})}function o74(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return gG(()=>i74(Y,{$refStrategy:J?"root":"none"}),{validate:async(G)=>{let K=await Y.safeParseAsync(G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function s74(Y,X){var Q;let J=(Q=X==null?void 0:X.useReferences)!=null?Q:!1;return gG(()=>YZ0(Y7(Y,{target:"draft-7",io:"input",reused:J?"ref":"inline"})),{validate:async(G)=>{let K=await Qz(Y,G);return K.success?{success:!0,value:K.data}:{success:!1,error:K.error}}})}function t74(Y){return"_zod"in Y}function i8(Y,X){if(t74(Y))return s74(Y,X);else return o74(Y,X)}async function CW({value:Y,schema:X,context:Q}){let J=await ZQ({value:Y,schema:X,context:Q});if(!J.success)throw pQ.wrap({value:Y,cause:J.error,context:Q});return J.value}async function ZQ({value:Y,schema:X,context:Q}){let J=EW(X);try{if(J.validate==null)return{success:!0,value:Y,rawValue:Y};let G=await J.validate(Y);if(G.success)return{success:!0,value:G.value,rawValue:Y};return{success:!1,error:pQ.wrap({value:Y,cause:G.error,context:Q}),rawValue:Y}}catch(G){return{success:!1,error:pQ.wrap({value:Y,cause:G,context:Q}),rawValue:Y}}}async function e74({text:Y,schema:X}){try{let Q=hP1(Y);if(X==null)return Q;return CW({value:Q,schema:X})}catch(Q){if(ZE.isInstance(Q)||pQ.isInstance(Q))throw Q;throw new ZE({text:Y,cause:Q})}}async function cQ({text:Y,schema:X}){try{let Q=hP1(Y);if(X==null)return{success:!0,value:Q,rawValue:Q};return await ZQ({value:Q,schema:X})}catch(Q){return{success:!1,error:ZE.isInstance(Q)?Q:new ZE({text:Y,cause:Q}),rawValue:void 0}}}function mP1({stream:Y,schema:X}){return Y.pipeThrough(new TextDecoderStream).pipeThrough(new Fw).pipeThrough(new TransformStream({async transform({data:Q},J){if(Q==="[DONE]")return;J.enqueue(await cQ({text:Q,schema:X}))}}))}function TO(Y){return Y}function Qg({id:Y,inputSchema:X,outputSchema:Q,supportsDeferredResults:J}){return({execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,...$})=>TO({type:"provider",id:Y,args:$,inputSchema:X,outputSchema:Q,execute:G,needsApproval:K,toModelOutput:W,onInputStart:Z,onInputDelta:H,onInputAvailable:F,supportsDeferredResults:J})}async function k9(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}function dP1(Y){return Y==null?void 0:Y.replace(/\/$/,"")}function QW4(Y){return Y!=null&&typeof Y[Symbol.asyncIterator]==="function"}async function*pP1({execute:Y,input:X,options:Q}){let J=Y(X,Q);if(QW4(J)){let G;for await(let K of J)G=K,yield{type:"preliminary",output:K};yield{type:"final",output:G}}else yield{type:"final",output:await J}}var Lq=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((Y,X)=>{if(this.status.type==="resolved")Y(this.status.value);else if(this.status.type==="rejected")X(this.status.error);this._resolve=Y,this._reject=X}),this._promise}resolve(Y){var X;if(this.status={type:"resolved",value:Y},this._promise)(X=this._resolve)==null||X.call(this,Y)}reject(Y){var X;if(this.status={type:"rejected",error:Y},this._promise)(X=this._reject)==null||X.call(this,Y)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},oG4,sG4,SP1="AI_DownloadError",kP1,tG4,TP1,EP1,Yg,TW=({prefix:Y,size:X=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:J="-"}={})=>{let G=()=>{let K=Q.length,W=Array(X);for(let Z=0;Z<X;Z++)W[Z]=Q[Math.random()*K|0];return W.join("")};if(Y==null)return G;if(Q.includes(J))throw new XP1({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${Y}${J}${G()}`},eG4,Y74,X74,_P1="4.0.14",G74=()=>globalThis.fetch,eW0=async({url:Y,headers:X={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:K=G74()})=>{try{let W=await K(Y,{method:"GET",headers:wK(X,`ai-sdk/provider-utils/${_P1}`,Xg()),signal:G}),Z=KE(W);if(!W.ok){let H;try{H=await J({response:W,url:Y,requestBodyValues:{}})}catch(F){if(OK(F)||Q9.isInstance(F))throw F;throw new Q9({message:"Failed to process error response",cause:F,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}throw H.value}try{return await Q({response:W,url:Y,requestBodyValues:{}})}catch(H){if(H instanceof Error){if(OK(H)||Q9.isInstance(H))throw H}throw new Q9({message:"Failed to process successful response",cause:H,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}}catch(W){throw vP1({error:W,url:Y,requestBodyValues:{}})}},W74,Z74,H74,IP1,F74=(Y)=>typeof Y==="string"?{...IP1,name:Y}:{...IP1,...Y},z74=(Y,X)=>{return r4(Y.innerType._def,X)},B74=(Y)=>{let X={type:"integer",format:"unix-time"};for(let Q of Y.checks)switch(Q.kind){case"min":X.minimum=Q.value;break;case"max":X.maximum=Q.value;break}return X},N74=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y},rW0=void 0,xG,M74,sW0,R74=(Y,X)=>{let Q=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((J,G)=>r4(J._def,{...X,currentPath:[...X.currentPath,"anyOf",`${G}`]})).filter((J)=>!!J&&(!X.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return Q.length?{anyOf:Q}:void 0},y74=(Y,X)=>{var Q;if(X.currentPath.toString()===((Q=X.propertyPath)==null?void 0:Q.toString()))return r4(Y.innerType._def,X);let J=r4(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return J?{anyOf:[{not:IJ()},J]}:IJ()},f74=(Y,X)=>{if(X.pipeStrategy==="input")return r4(Y.in._def,X);else if(X.pipeStrategy==="output")return r4(Y.out._def,X);let Q=r4(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),J=r4(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,J].filter((G)=>G!==void 0)}},m74=(Y,X)=>{return r4(Y.innerType._def,X)},l74=(Y,X,Q)=>{switch(X){case j0.ZodString:return uP1(Y,Q);case j0.ZodNumber:return S74(Y);case j0.ZodObject:return k74(Y,Q);case j0.ZodBigInt:return V74(Y);case j0.ZodBoolean:return q74();case j0.ZodDate:return xP1(Y,Q);case j0.ZodUndefined:return u74();case j0.ZodNull:return C74();case j0.ZodArray:return $74(Y,Q);case j0.ZodUnion:case j0.ZodDiscriminatedUnion:return I74(Y,Q);case j0.ZodIntersection:return L74(Y,Q);case j0.ZodTuple:return x74(Y,Q);case j0.ZodRecord:return gP1(Y,Q);case j0.ZodLiteral:return w74(Y);case j0.ZodEnum:return O74(Y);case j0.ZodNativeEnum:return T74(Y);case j0.ZodNullable:return j74(Y,Q);case j0.ZodOptional:return y74(Y,Q);case j0.ZodMap:return P74(Y,Q);case j0.ZodSet:return b74(Y,Q);case j0.ZodLazy:return()=>Y.getter()._def;case j0.ZodPromise:return h74(Y,Q);case j0.ZodNaN:case j0.ZodNever:return E74();case j0.ZodEffects:return D74(Y,Q);case j0.ZodAny:return IJ();case j0.ZodUnknown:return g74();case j0.ZodDefault:return U74(Y,Q);case j0.ZodBranded:return bP1(Y,Q);case j0.ZodReadonly:return m74(Y,Q);case j0.ZodCatch:return z74(Y,Q);case j0.ZodPipeline:return f74(Y,Q);case j0.ZodFunction:case j0.ZodVoid:case j0.ZodSymbol:return;default:return((J)=>{return})(X)}},d74=(Y,X)=>{let Q=0;for(;Q<Y.length&&Q<X.length;Q++)if(Y[Q]!==X[Q])break;return[(Y.length-Q).toString(),...X.slice(Q)].join("/")},p74=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:d74(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((Q,J)=>X.currentPath[J]===Q))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),IJ();return X.$refStrategy==="seen"?IJ():void 0}}},c74=(Y,X,Q)=>{if(Y.description)Q.description=Y.description;return Q},n74=(Y)=>{let X=F74(Y),Q=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return{...X,currentPath:Q,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([J,G])=>[G._def,{def:G._def,path:[...X.basePath,X.definitionPath,J],jsonSchema:void 0}]))}},i74=(Y,X)=>{var Q;let J=n74(X),G=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((F,[$,V])=>{var q;return{...F,[$]:(q=r4(V._def,{...J,currentPath:[...J.basePath,J.definitionPath,$]},!0))!=null?q:IJ()}},{}):void 0,K=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(Q=r4(Y._def,K===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,K]},!1))!=null?Q:IJ(),Z=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(Z!==void 0)W.title=Z;let H=K===void 0?G?{...W,[J.definitionPath]:G}:W:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,K].join("/"),[J.definitionPath]:{...G,[K]:W}};return H.$schema="http://json-schema.org/draft-07/schema#",H},tW0,YW4=()=>globalThis.fetch,MK=async({url:Y,headers:X,body:Q,failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W})=>XW4({url:Y,headers:{"Content-Type":"application/json",...X},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:J,successfulResponseHandler:G,abortSignal:K,fetch:W}),XW4=async({url:Y,headers:X={},body:Q,successfulResponseHandler:J,failedResponseHandler:G,abortSignal:K,fetch:W=YW4()})=>{try{let Z=await W(Y,{method:"POST",headers:wK(X,`ai-sdk/provider-utils/${_P1}`,Xg()),body:Q.content,signal:K}),H=KE(Z);if(!Z.ok){let F;try{F=await G({response:Z,url:Y,requestBodyValues:Q.values})}catch($){if(OK($)||Q9.isInstance($))throw $;throw new Q9({message:"Failed to process error response",cause:$,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}throw F.value}try{return await J({response:Z,url:Y,requestBodyValues:Q.values})}catch(F){if(F instanceof Error){if(OK(F)||Q9.isInstance(F))throw F}throw new Q9({message:"Failed to process successful response",cause:F,statusCode:Z.status,url:Y,responseHeaders:H,requestBodyValues:Q.values})}}catch(Z){throw vP1({error:Z,url:Y,requestBodyValues:Q.values})}},f5=({errorSchema:Y,errorToMessage:X,isRetryable:Q})=>async({response:J,url:G,requestBodyValues:K})=>{let W=await J.text(),Z=KE(J);if(W.trim()==="")return{responseHeaders:Z,value:new Q9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})};try{let H=await e74({text:W,schema:Y});return{responseHeaders:Z,value:new Q9({message:X(H),url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,data:H,isRetryable:Q==null?void 0:Q(J,H)})}}catch(H){return{responseHeaders:Z,value:new Q9({message:J.statusText,url:G,requestBodyValues:K,statusCode:J.status,responseHeaders:Z,responseBody:W,isRetryable:Q==null?void 0:Q(J)})}}},lP1=(Y)=>async({response:X})=>{let Q=KE(X);if(X.body==null)throw new tA1({});return{responseHeaders:Q,value:mP1({stream:X.body,schema:Y})}},mG=(Y)=>async({response:X,url:Q,requestBodyValues:J})=>{let G=await X.text(),K=await cQ({text:G,schema:Y}),W=KE(X);if(!K.success)throw new Q9({message:"Invalid JSON response",cause:K.error,statusCode:X.status,responseHeaders:W,responseBody:G,url:Q,requestBodyValues:J});return{responseHeaders:W,value:K.value,rawValue:K.rawValue}};var i6=j(()=>{A4();A4();A4();A4();A4();A4();A4();a6();RK();RK();RK();Va();A4();A4();({btoa:oG4,atob:sG4}=globalThis);kP1=`vercel.ai.error.${SP1}`,tG4=Symbol.for(kP1),Yg=class extends(EP1=M1,TP1=tG4,EP1){constructor({url:Y,statusCode:X,statusText:Q,cause:J,message:G=J==null?`Failed to download ${Y}: ${X} ${Q}`:`Failed to download ${Y}: ${J}`}){super({name:SP1,message:G,cause:J});this[TP1]=!0,this.url=Y,this.statusCode=X,this.statusText=Q}static isInstance(Y){return M1.hasMarker(Y,kP1)}},eG4=TW();Y74=["fetch failed","failed to fetch"],X74=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];W74=/"__proto__"\s*:/,Z74=/"constructor"\s*:/;H74=Symbol("Let zodToJsonSchema decide on which parser to use"),IP1={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"};xG={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(rW0===void 0)rW0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return rW0},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-_]*$/};M74=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");sW0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};tW0=Symbol.for("vercel.ai.schema")});var QZ0=E((oE8,iP1)=>{var{defineProperty:XZ0,getOwnPropertyDescriptor:JW4,getOwnPropertyNames:GW4}=Object,WW4=Object.prototype.hasOwnProperty,ZW4=(Y,X)=>{for(var Q in X)XZ0(Y,Q,{get:X[Q],enumerable:!0})},KW4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of GW4(X))if(!WW4.call(Y,G)&&G!==Q)XZ0(Y,G,{get:()=>X[G],enumerable:!(J=JW4(X,G))||J.enumerable})}return Y},HW4=(Y)=>KW4(XZ0({},"__esModule",{value:!0}),Y),cP1={};ZW4(cP1,{SYMBOL_FOR_REQ_CONTEXT:()=>nP1,getContext:()=>FW4});iP1.exports=HW4(cP1);var nP1=Symbol.for("@vercel/request-context");function FW4(){return globalThis[nP1]?.get?.()??{}}});var FE=E((sE8,oP1)=>{var{defineProperty:JZ0,getOwnPropertyDescriptor:$W4,getOwnPropertyNames:VW4}=Object,qW4=Object.prototype.hasOwnProperty,zW4=(Y,X)=>{for(var Q in X)JZ0(Y,Q,{get:X[Q],enumerable:!0})},BW4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of VW4(X))if(!qW4.call(Y,G)&&G!==Q)JZ0(Y,G,{get:()=>X[G],enumerable:!(J=$W4(X,G))||J.enumerable})}return Y},UW4=(Y)=>BW4(JZ0({},"__esModule",{value:!0}),Y),aP1={};zW4(aP1,{VercelOidcTokenError:()=>rP1});oP1.exports=UW4(aP1);class rP1 extends Error{constructor(Y,X){super(Y);this.name="VercelOidcTokenError",this.cause=X}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var YT1=E((tE8,eP1)=>{var{create:DW4,defineProperty:Jg,getOwnPropertyDescriptor:OW4,getOwnPropertyNames:NW4,getPrototypeOf:LW4}=Object,wW4=Object.prototype.hasOwnProperty,MW4=(Y,X)=>{for(var Q in X)Jg(Y,Q,{get:X[Q],enumerable:!0})},sP1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of NW4(X))if(!wW4.call(Y,G)&&G!==Q)Jg(Y,G,{get:()=>X[G],enumerable:!(J=OW4(X,G))||J.enumerable})}return Y},WZ0=(Y,X,Q)=>(Q=Y!=null?DW4(LW4(Y)):{},sP1(X||!Y||!Y.__esModule?Jg(Q,"default",{value:Y,enumerable:!0}):Q,Y)),AW4=(Y)=>sP1(Jg({},"__esModule",{value:!0}),Y),tP1={};MW4(tP1,{findRootDir:()=>EW4,getUserDataDir:()=>CW4});eP1.exports=AW4(tP1);var $E=WZ0(F0("path")),PW4=WZ0(F0("fs")),GZ0=WZ0(F0("os")),TW4=FE();function EW4(){try{let Y=process.cwd();while(Y!==$E.default.dirname(Y)){let X=$E.default.join(Y,".vercel");if(PW4.default.existsSync(X))return Y;Y=$E.default.dirname(Y)}}catch(Y){throw new TW4.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function CW4(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(GZ0.default.platform()){case"darwin":return $E.default.join(GZ0.default.homedir(),"Library/Application Support");case"linux":return $E.default.join(GZ0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var KT1=E((eE8,ZT1)=>{var{create:IW4,defineProperty:Gg,getOwnPropertyDescriptor:RW4,getOwnPropertyNames:jW4,getPrototypeOf:SW4}=Object,kW4=Object.prototype.hasOwnProperty,vW4=(Y,X)=>{for(var Q in X)Gg(Y,Q,{get:X[Q],enumerable:!0})},XT1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of jW4(X))if(!kW4.call(Y,G)&&G!==Q)Gg(Y,G,{get:()=>X[G],enumerable:!(J=RW4(X,G))||J.enumerable})}return Y},QT1=(Y,X,Q)=>(Q=Y!=null?IW4(SW4(Y)):{},XT1(X||!Y||!Y.__esModule?Gg(Q,"default",{value:Y,enumerable:!0}):Q,Y)),_W4=(Y)=>XT1(Gg({},"__esModule",{value:!0}),Y),JT1={};vW4(JT1,{isValidAccessToken:()=>bW4,readAuthConfig:()=>fW4,writeAuthConfig:()=>hW4});ZT1.exports=_W4(JT1);var VE=QT1(F0("fs")),GT1=QT1(F0("path")),yW4=Wg();function WT1(){let Y=(0,yW4.getVercelDataDir)();if(!Y)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return GT1.join(Y,"auth.json")}function fW4(){try{let Y=WT1();if(!VE.existsSync(Y))return null;let X=VE.readFileSync(Y,"utf8");if(!X)return null;return JSON.parse(X)}catch(Y){return null}}function hW4(Y){let X=WT1(),Q=GT1.dirname(X);if(!VE.existsSync(Q))VE.mkdirSync(Q,{mode:504,recursive:!0});VE.writeFileSync(X,JSON.stringify(Y,null,2),{mode:384})}function bW4(Y){if(!Y.token)return!1;if(typeof Y.expiresAt!=="number")return!0;let X=Math.floor(Date.now()/1000);return Y.expiresAt>=X}});var VT1=E((YC8,$T1)=>{var{defineProperty:HZ0,getOwnPropertyDescriptor:xW4,getOwnPropertyNames:uW4}=Object,gW4=Object.prototype.hasOwnProperty,mW4=(Y,X)=>{for(var Q in X)HZ0(Y,Q,{get:X[Q],enumerable:!0})},lW4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of uW4(X))if(!gW4.call(Y,G)&&G!==Q)HZ0(Y,G,{get:()=>X[G],enumerable:!(J=xW4(X,G))||J.enumerable})}return Y},dW4=(Y)=>lW4(HZ0({},"__esModule",{value:!0}),Y),HT1={};mW4(HT1,{processTokenResponse:()=>aW4,refreshTokenRequest:()=>iW4});$T1.exports=dW4(HT1);var ZZ0=F0("os"),pW4="https://vercel.com",cW4="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",FT1=`@vercel/oidc node-${process.version} ${(0,ZZ0.platform)()} (${(0,ZZ0.arch)()}) ${(0,ZZ0.hostname)()}`,KZ0=null;async function nW4(){if(KZ0)return KZ0;let Y=`${pW4}/.well-known/openid-configuration`,X=await fetch(Y,{headers:{"user-agent":FT1}});if(!X.ok)throw Error("Failed to discover OAuth endpoints");let Q=await X.json();if(!Q||typeof Q.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let J=Q.token_endpoint;return KZ0=J,J}async function iW4(Y){let X=await nW4();return await fetch(X,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":FT1},body:new URLSearchParams({client_id:cW4,grant_type:"refresh_token",...Y})})}async function aW4(Y){let X=await Y.json();if(!Y.ok){let Q=typeof X==="object"&&X&&"error"in X?String(X.error):"Token refresh failed";return[Error(Q)]}if(typeof X!=="object"||X===null)return[Error("Invalid token response")];if(typeof X.access_token!=="string")return[Error("Missing access_token in response")];if(X.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof X.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,X]}});var Wg=E((XC8,DT1)=>{var{create:rW4,defineProperty:Zg,getOwnPropertyDescriptor:oW4,getOwnPropertyNames:sW4,getPrototypeOf:tW4}=Object,eW4=Object.prototype.hasOwnProperty,YZ4=(Y,X)=>{for(var Q in X)Zg(Y,Q,{get:X[Q],enumerable:!0})},zT1=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of sW4(X))if(!eW4.call(Y,G)&&G!==Q)Zg(Y,G,{get:()=>X[G],enumerable:!(J=oW4(X,G))||J.enumerable})}return Y},BT1=(Y,X,Q)=>(Q=Y!=null?rW4(tW4(Y)):{},zT1(X||!Y||!Y.__esModule?Zg(Q,"default",{value:Y,enumerable:!0}):Q,Y)),XZ4=(Y)=>zT1(Zg({},"__esModule",{value:!0}),Y),UT1={};YZ4(UT1,{assertVercelOidcTokenResponse:()=>FZ0,findProjectInfo:()=>WZ4,getTokenPayload:()=>HZ4,getVercelCliToken:()=>JZ4,getVercelDataDir:()=>QZ4,getVercelOidcToken:()=>GZ4,isExpired:()=>FZ4,loadToken:()=>KZ4,saveToken:()=>ZZ4});DT1.exports=XZ4(UT1);var qE=BT1(F0("path")),wq=BT1(F0("fs")),CO=FE(),Kg=YT1(),EO=KT1(),qT1=VT1();function QZ4(){let X=(0,Kg.getUserDataDir)();if(!X)return null;return qE.join(X,"com.vercel.cli")}async function JZ4(){let Y=(0,EO.readAuthConfig)();if(!Y)return null;if((0,EO.isValidAccessToken)(Y))return Y.token||null;if(!Y.refreshToken)return(0,EO.writeAuthConfig)({}),null;try{let X=await(0,qT1.refreshTokenRequest)({refresh_token:Y.refreshToken}),[Q,J]=await(0,qT1.processTokenResponse)(X);if(Q||!J)return(0,EO.writeAuthConfig)({}),null;let G={token:J.access_token,expiresAt:Math.floor(Date.now()/1000)+J.expires_in};if(J.refresh_token)G.refreshToken=J.refresh_token;return(0,EO.writeAuthConfig)(G),G.token??null}catch(X){return(0,EO.writeAuthConfig)({}),null}}async function GZ4(Y,X,Q){let J=`https://api.vercel.com/v1/projects/${X}/token?source=vercel-oidc-refresh${Q?`&teamId=${Q}`:""}`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${Y}`}});if(!G.ok)throw new CO.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let K=await G.json();return FZ0(K),K}function FZ0(Y){if(!Y||typeof Y!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in Y)||typeof Y.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function WZ4(){let Y=(0,Kg.findRootDir)();if(!Y)throw new CO.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let X=qE.join(Y,".vercel","project.json");if(!wq.existsSync(X))throw new CO.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let Q=JSON.parse(wq.readFileSync(X,"utf8"));if(typeof Q.projectId!=="string"&&typeof Q.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:Q.projectId,teamId:Q.orgId}}function ZZ4(Y,X){let Q=(0,Kg.getUserDataDir)();if(!Q)throw new CO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let J=qE.join(Q,"com.vercel.token",`${X}.json`),G=JSON.stringify(Y);wq.mkdirSync(qE.dirname(J),{mode:504,recursive:!0}),wq.writeFileSync(J,G),wq.chmodSync(J,432);return}function KZ4(Y){let X=(0,Kg.getUserDataDir)();if(!X)throw new CO.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let Q=qE.join(X,"com.vercel.token",`${Y}.json`);if(!wq.existsSync(Q))return null;let J=JSON.parse(wq.readFileSync(Q,"utf8"));return FZ0(J),J}function HZ4(Y){let X=Y.split(".");if(X.length!==3)throw new CO.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let Q=X[1].replace(/-/g,"+").replace(/_/g,"/"),J=Q.padEnd(Q.length+(4-Q.length%4)%4,"=");return JSON.parse(Buffer.from(J,"base64").toString("utf8"))}function FZ4(Y){return Y.exp*1000<Date.now()}});var LT1=E((QC8,NT1)=>{var{defineProperty:VZ0,getOwnPropertyDescriptor:$Z4,getOwnPropertyNames:VZ4}=Object,qZ4=Object.prototype.hasOwnProperty,zZ4=(Y,X)=>{for(var Q in X)VZ0(Y,Q,{get:X[Q],enumerable:!0})},BZ4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of VZ4(X))if(!qZ4.call(Y,G)&&G!==Q)VZ0(Y,G,{get:()=>X[G],enumerable:!(J=$Z4(X,G))||J.enumerable})}return Y},UZ4=(Y)=>BZ4(VZ0({},"__esModule",{value:!0}),Y),OT1={};zZ4(OT1,{refreshToken:()=>DZ4});NT1.exports=UZ4(OT1);var $Z0=FE(),Mq=Wg();async function DZ4(){let{projectId:Y,teamId:X}=(0,Mq.findProjectInfo)(),Q=(0,Mq.loadToken)(Y);if(!Q||(0,Mq.isExpired)((0,Mq.getTokenPayload)(Q.token))){let J=await(0,Mq.getVercelCliToken)();if(!J)throw new $Z0.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!Y)throw new $Z0.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(Q=await(0,Mq.getVercelOidcToken)(J,Y,X),!Q)throw new $Z0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Mq.saveToken)(Q,Y)}process.env.VERCEL_OIDC_TOKEN=Q.token;return}});var AT1=E((JC8,MT1)=>{var{defineProperty:zZ0,getOwnPropertyDescriptor:OZ4,getOwnPropertyNames:NZ4}=Object,LZ4=Object.prototype.hasOwnProperty,wZ4=(Y,X)=>{for(var Q in X)zZ0(Y,Q,{get:X[Q],enumerable:!0})},MZ4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of NZ4(X))if(!LZ4.call(Y,G)&&G!==Q)zZ0(Y,G,{get:()=>X[G],enumerable:!(J=OZ4(X,G))||J.enumerable})}return Y},AZ4=(Y)=>MZ4(zZ0({},"__esModule",{value:!0}),Y),wT1={};wZ4(wT1,{getVercelOidcToken:()=>EZ4,getVercelOidcTokenSync:()=>qZ0});MT1.exports=AZ4(wT1);var PZ4=QZ0(),TZ4=FE();async function EZ4(){let Y="",X;try{Y=qZ0()}catch(Q){X=Q}try{let[{getTokenPayload:Q,isExpired:J},{refreshToken:G}]=await Promise.all([await Promise.resolve().then(() => d6(Wg())),await Promise.resolve().then(() => d6(LT1()))]);if(!Y||J(Q(Y)))await G(),Y=qZ0()}catch(Q){let J=X instanceof Error?X.message:"";if(Q instanceof Error)J=`${J}
|
|
1242
|
-
${Q.message}`;if(J)throw new TZ4.VercelOidcTokenError(J);throw Q}return Y}function qZ0(){let Y=(0,PZ4.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Y)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 Y}});var UZ0=E((GC8,ET1)=>{var{defineProperty:BZ0,getOwnPropertyDescriptor:CZ4,getOwnPropertyNames:IZ4}=Object,RZ4=Object.prototype.hasOwnProperty,jZ4=(Y,X)=>{for(var Q in X)BZ0(Y,Q,{get:X[Q],enumerable:!0})},SZ4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of IZ4(X))if(!RZ4.call(Y,G)&&G!==Q)BZ0(Y,G,{get:()=>X[G],enumerable:!(J=CZ4(X,G))||J.enumerable})}return Y},kZ4=(Y)=>SZ4(BZ0({},"__esModule",{value:!0}),Y),TT1={};jZ4(TT1,{getContext:()=>vZ4.getContext,getVercelOidcToken:()=>PT1.getVercelOidcToken,getVercelOidcTokenSync:()=>PT1.getVercelOidcTokenSync});ET1.exports=kZ4(TT1);var PT1=AT1(),vZ4=QZ0()});async function iT1({response:Y,statusCode:X,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var K;let W=await ZQ({value:Y,schema:cZ4});if(!W.success){let V=typeof Y==="object"&&Y!==null&&"generationId"in Y?Y.generationId:void 0;return new pZ4({message:`Invalid error response format: ${Q}`,statusCode:X,response:Y,validationError:W.error,cause:J,generationId:V})}let Z=W.value,H=Z.error.type,F=Z.error.message,$=(K=Z.generationId)!=null?K:void 0;switch(H){case"authentication_error":return Hg.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:X,cause:J,generationId:$});case"invalid_request_error":return new hZ4({message:F,statusCode:X,cause:J,generationId:$});case"rate_limit_exceeded":return new xZ4({message:F,statusCode:X,cause:J,generationId:$});case"model_not_found":{let V=await ZQ({value:Z.error.param,schema:gZ4});return new mZ4({message:F,statusCode:X,modelId:V.success?V.value.modelId:void 0,cause:J,generationId:$})}case"internal_server_error":return new dT1({message:F,statusCode:X,cause:J,generationId:$});default:return new dT1({message:F,statusCode:X,cause:J,generationId:$})}}function tT1(Y){if(!(Y instanceof Error))return!1;let X=Y.code;if(typeof X==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(X);return!1}async function AK(Y,X){var Q;if(KQ.isInstance(Y))return Y;if(tT1(Y))return sT1.createTimeoutError({originalMessage:Y instanceof Error?Y.message:"Unknown error",cause:Y});if(Q9.isInstance(Y)){if(Y.cause&&tT1(Y.cause))return sT1.createTimeoutError({originalMessage:Y.message,cause:Y});return await iT1({response:iZ4(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X})}return await iT1({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function iZ4(Y){if(Y.data!==void 0)return Y.data;if(Y.responseBody!=null)try{return JSON.parse(Y.responseBody)}catch(X){return Y.responseBody}return{}}async function Aq(Y){let X=await ZQ({value:Y[H21],schema:aZ4});return X.success?X.value:void 0}function Y21(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:LK(Y.data)};return Y}function ZK4(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:LK(Y.data)};return Y}async function LK4(){var Y;return(Y=F21.getContext().headers)==null?void 0:Y["x-vercel-id"]}function AK4(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=dP1(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await PK4(Y);return wK({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":MK4,[H21]:O.authMethod,...Y.headers},`ai-sdk/gateway/${wK4}`)}catch(O){throw Hg.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=HE({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=HE({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=HE({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await LK4();return{...O&&{"ai-o11y-deployment-id":O},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...I&&{"ai-o11y-request-id":I}}}},$=(O)=>{return new sZ4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},V=async()=>{var O,L,w;let I=(w=(L=(O=Y._internal)==null?void 0:O.currentDate)==null?void 0:L.call(O).getTime())!=null?w:Date.now();if(!J||I-W>K)W=I,J=new eT1({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((P)=>{return G=P,P}).catch(async(P)=>{throw await AK(P,await Aq(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new eT1({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await AK(O,await Aq(await H()))})},B=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return $(O)};B.specificationVersion="v3",B.getAvailableModels=V,B.getCredits=q,B.imageModel=(O)=>{return new YK4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.languageModel=$;let D=(O)=>{return new tZ4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return B.embeddingModel=D,B.textEmbeddingModel=D,B.videoModel=(O)=>{return new WK4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.chat=B.languageModel,B.embedding=B.embeddingModel,B.image=B.imageModel,B.video=B.videoModel,B.tools=NK4,B}async function PK4(Y){let X=HE({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await $21.getVercelOidcToken(),authMethod:"oidc"}}var F21,$21,_Z4="vercel.ai.gateway.error",DZ0,CT1,IT1,KQ,X21="GatewayAuthenticationError",yZ4,RT1,jT1,ST1,Hg,Q21="GatewayInvalidRequestError",fZ4,kT1,vT1,_T1,hZ4,J21="GatewayRateLimitError",bZ4,yT1,fT1,hT1,xZ4,G21="GatewayModelNotFoundError",uZ4,bT1,gZ4,xT1,uT1,mZ4,W21="GatewayInternalServerError",lZ4,gT1,mT1,lT1,dT1,Z21="GatewayResponseError",dZ4,pT1,cT1,nT1,pZ4,cZ4,K21="GatewayTimeoutError",nZ4,aT1,rT1,oT1,sT1,H21="ai-gateway-auth-method",aZ4,eT1=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await eW0({url:`${this.config.baseURL}/config`,headers:await k9(this.config.headers()),successfulResponseHandler:mG(rZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await AK(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await eW0({url:`${Y.origin}/v1/credits`,headers:await k9(this.config.headers()),successfulResponseHandler:mG(oZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await AK(Y)}}},rZ4,oZ4,sZ4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Y){let{abortSignal:X,...Q}=Y;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await k9(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await MK({url:this.getUrl(),headers:NK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await k9(this.config.o11yHeaders)),body:X,successfulResponseHandler:mG(z.any()),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...W,request:{body:X},response:{headers:K,body:Z},warnings:Q}}catch(K){throw await AK(K,await Aq(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await k9(this.config.headers());try{let{value:K,responseHeaders:W}=await MK({url:this.getUrl(),headers:NK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await k9(this.config.o11yHeaders)),body:X,successfulResponseHandler:lP1(z.any()),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(Z)=>Z}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:K.pipeThrough(new TransformStream({start(Z){if(Q.length>0)Z.enqueue({type:"stream-start",warnings:Q})},transform(Z,H){if(Z.success){let F=Z.value;if(F.type==="raw"&&!Y.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);H.enqueue(F)}else H.error(Z.error)}})),request:{body:X},response:{headers:W}}}catch(K){throw await AK(K,await Aq(G))}}isFilePart(Y){return Y&&typeof Y==="object"&&"type"in Y&&Y.type==="file"}maybeEncodeFileParts(Y){for(let X of Y.prompt)for(let Q of X.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),K=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${K}`)}}return Y}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Y,X){return{"ai-language-model-specification-version":"3","ai-language-model-id":Y,"ai-language-model-streaming":String(X)}}},tZ4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Y,headers:X,abortSignal:Q,providerOptions:J}){var G;let K=await k9(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await MK({url:this.getUrl(),headers:NK(K,X!=null?X:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:mG(eZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:Z.embeddings,usage:(G=Z.usage)!=null?G:void 0,providerMetadata:Z.providerMetadata,response:{headers:W,body:H},warnings:[]}}catch(W){throw await AK(W,await Aq(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},eZ4,YK4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,size:Q,aspectRatio:J,seed:G,files:K,mask:W,providerOptions:Z,headers:H,abortSignal:F}){var $,V,q,B;let D=await k9(this.config.headers());try{let{responseHeaders:O,value:L,rawValue:w}=await MK({url:this.getUrl(),headers:NK(D,H!=null?H:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...Z&&{providerOptions:Z},...K&&{files:K.map((I)=>Y21(I))},...W&&{mask:Y21(W)}},successfulResponseHandler:mG(GK4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(I)=>I}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:L.images,warnings:($=L.warnings)!=null?$:[],providerMetadata:L.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:O},...L.usage!=null&&{usage:{inputTokens:(V=L.usage.inputTokens)!=null?V:void 0,outputTokens:(q=L.usage.outputTokens)!=null?q:void 0,totalTokens:(B=L.usage.totalTokens)!=null?B:void 0}}}}catch(O){throw AK(O,await Aq(D))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},XK4,QK4,JK4,GK4,WK4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,aspectRatio:Q,resolution:J,duration:G,fps:K,seed:W,image:Z,providerOptions:H,headers:F,abortSignal:$}){var V;let q=await k9(this.config.headers());try{let{responseHeaders:B,value:D,rawValue:O}=await MK({url:this.getUrl(),headers:NK(q,F!=null?F:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{aspectRatio:Q},...J&&{resolution:J},...G&&{duration:G},...K&&{fps:K},...W&&{seed:W},...H&&{providerOptions:H},...Z&&{image:ZK4(Z)}},successfulResponseHandler:mG(FK4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(L)=>L}),...$&&{abortSignal:$},fetch:this.config.fetch});return{videos:D.videos,warnings:(V=D.warnings)!=null?V:[],providerMetadata:D.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:B}}}catch(B){throw AK(B,await Aq(q))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}},KK4,HK4,FK4,$K4,VK4,qK4,zK4=(Y={})=>qK4(Y),BK4,UK4,DK4,OK4=(Y={})=>DK4(Y),NK4,wK4="3.0.40",MK4="0.0.1",V21;var OZ0=j(()=>{i6();A4();a6();a6();i6();i6();a6();i6();i6();a6();i6();a6();i6();a6();i6();a6();i6();a6();i6();b0();i6();b0();i6();F21=d6(UZ0(),1),$21=d6(UZ0(),1),DZ0=Symbol.for(_Z4),KQ=class Y extends(IT1=Error,CT1=DZ0,IT1){constructor({message:X,statusCode:Q=500,cause:J,generationId:G}){super(G?`${X} [${G}]`:X);this[CT1]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(X){return Y.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&DZ0 in X&&X[DZ0]===!0}},yZ4=`vercel.ai.gateway.error.${X21}`,RT1=Symbol.for(yZ4),Hg=class Y extends(ST1=KQ,jT1=RT1,ST1){constructor({message:X="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:X,statusCode:Q,cause:J,generationId:G});this[jT1]=!0,this.name=X21,this.type="authentication_error"}static isInstance(X){return KQ.hasMarker(X)&&RT1 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:K,generationId:W}){let Z;if(X)Z=`AI Gateway authentication failed: Invalid API key.
|
|
1242
|
+
${Q.message}`;if(J)throw new TZ4.VercelOidcTokenError(J);throw Q}return Y}function qZ0(){let Y=(0,PZ4.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!Y)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 Y}});var UZ0=E((GC8,ET1)=>{var{defineProperty:BZ0,getOwnPropertyDescriptor:CZ4,getOwnPropertyNames:IZ4}=Object,RZ4=Object.prototype.hasOwnProperty,jZ4=(Y,X)=>{for(var Q in X)BZ0(Y,Q,{get:X[Q],enumerable:!0})},SZ4=(Y,X,Q,J)=>{if(X&&typeof X==="object"||typeof X==="function"){for(let G of IZ4(X))if(!RZ4.call(Y,G)&&G!==Q)BZ0(Y,G,{get:()=>X[G],enumerable:!(J=CZ4(X,G))||J.enumerable})}return Y},kZ4=(Y)=>SZ4(BZ0({},"__esModule",{value:!0}),Y),TT1={};jZ4(TT1,{getContext:()=>vZ4.getContext,getVercelOidcToken:()=>PT1.getVercelOidcToken,getVercelOidcTokenSync:()=>PT1.getVercelOidcTokenSync});ET1.exports=kZ4(TT1);var PT1=AT1(),vZ4=QZ0()});async function iT1({response:Y,statusCode:X,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var K;let W=await ZQ({value:Y,schema:cZ4});if(!W.success){let V=typeof Y==="object"&&Y!==null&&"generationId"in Y?Y.generationId:void 0;return new pZ4({message:`Invalid error response format: ${Q}`,statusCode:X,response:Y,validationError:W.error,cause:J,generationId:V})}let Z=W.value,H=Z.error.type,F=Z.error.message,$=(K=Z.generationId)!=null?K:void 0;switch(H){case"authentication_error":return Hg.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:X,cause:J,generationId:$});case"invalid_request_error":return new hZ4({message:F,statusCode:X,cause:J,generationId:$});case"rate_limit_exceeded":return new xZ4({message:F,statusCode:X,cause:J,generationId:$});case"model_not_found":{let V=await ZQ({value:Z.error.param,schema:gZ4});return new mZ4({message:F,statusCode:X,modelId:V.success?V.value.modelId:void 0,cause:J,generationId:$})}case"internal_server_error":return new dT1({message:F,statusCode:X,cause:J,generationId:$});default:return new dT1({message:F,statusCode:X,cause:J,generationId:$})}}function tT1(Y){if(!(Y instanceof Error))return!1;let X=Y.code;if(typeof X==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(X);return!1}async function AK(Y,X){var Q;if(KQ.isInstance(Y))return Y;if(tT1(Y))return sT1.createTimeoutError({originalMessage:Y instanceof Error?Y.message:"Unknown error",cause:Y});if(Q9.isInstance(Y)){if(Y.cause&&tT1(Y.cause))return sT1.createTimeoutError({originalMessage:Y.message,cause:Y});return await iT1({response:iZ4(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X})}return await iT1({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function iZ4(Y){if(Y.data!==void 0)return Y.data;if(Y.responseBody!=null)try{return JSON.parse(Y.responseBody)}catch(X){return Y.responseBody}return{}}async function Aq(Y){let X=await ZQ({value:Y[H21],schema:aZ4});return X.success?X.value:void 0}function Y21(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:LK(Y.data)};return Y}function ZK4(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:LK(Y.data)};return Y}async function LK4(){var Y;return(Y=F21.getContext().headers)==null?void 0:Y["x-vercel-id"]}function AK4(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=dP1(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await PK4(Y);return wK({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":MK4,[H21]:O.authMethod,...Y.headers},`ai-sdk/gateway/${wK4}`)}catch(O){throw Hg.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=HE({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=HE({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=HE({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await LK4();return{...O&&{"ai-o11y-deployment-id":O},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...I&&{"ai-o11y-request-id":I}}}},$=(O)=>{return new sZ4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},V=async()=>{var O,L,w;let I=(w=(L=(O=Y._internal)==null?void 0:O.currentDate)==null?void 0:L.call(O).getTime())!=null?w:Date.now();if(!J||I-W>K)W=I,J=new eT1({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((P)=>{return G=P,P}).catch(async(P)=>{throw await AK(P,await Aq(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new eT1({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await AK(O,await Aq(await H()))})},B=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return $(O)};B.specificationVersion="v3",B.getAvailableModels=V,B.getCredits=q,B.imageModel=(O)=>{return new YK4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.languageModel=$;let D=(O)=>{return new tZ4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return B.embeddingModel=D,B.textEmbeddingModel=D,B.videoModel=(O)=>{return new WK4(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},B.chat=B.languageModel,B.embedding=B.embeddingModel,B.image=B.imageModel,B.video=B.videoModel,B.tools=NK4,B}async function PK4(Y){let X=HE({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await $21.getVercelOidcToken(),authMethod:"oidc"}}var F21,$21,_Z4="vercel.ai.gateway.error",DZ0,CT1,IT1,KQ,X21="GatewayAuthenticationError",yZ4,RT1,jT1,ST1,Hg,Q21="GatewayInvalidRequestError",fZ4,kT1,vT1,_T1,hZ4,J21="GatewayRateLimitError",bZ4,yT1,fT1,hT1,xZ4,G21="GatewayModelNotFoundError",uZ4,bT1,gZ4,xT1,uT1,mZ4,W21="GatewayInternalServerError",lZ4,gT1,mT1,lT1,dT1,Z21="GatewayResponseError",dZ4,pT1,cT1,nT1,pZ4,cZ4,K21="GatewayTimeoutError",nZ4,aT1,rT1,oT1,sT1,H21="ai-gateway-auth-method",aZ4,eT1=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await eW0({url:`${this.config.baseURL}/config`,headers:await k9(this.config.headers()),successfulResponseHandler:mG(rZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await AK(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await eW0({url:`${Y.origin}/v1/credits`,headers:await k9(this.config.headers()),successfulResponseHandler:mG(oZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await AK(Y)}}},rZ4,oZ4,sZ4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(Y){let{abortSignal:X,...Q}=Y;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await k9(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await MK({url:this.getUrl(),headers:NK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await k9(this.config.o11yHeaders)),body:X,successfulResponseHandler:mG(z.any()),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(H)=>H}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...W,request:{body:X},response:{headers:K,body:Z},warnings:Q}}catch(K){throw await AK(K,await Aq(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await k9(this.config.headers());try{let{value:K,responseHeaders:W}=await MK({url:this.getUrl(),headers:NK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await k9(this.config.o11yHeaders)),body:X,successfulResponseHandler:lP1(z.any()),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(Z)=>Z}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:K.pipeThrough(new TransformStream({start(Z){if(Q.length>0)Z.enqueue({type:"stream-start",warnings:Q})},transform(Z,H){if(Z.success){let F=Z.value;if(F.type==="raw"&&!Y.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);H.enqueue(F)}else H.error(Z.error)}})),request:{body:X},response:{headers:W}}}catch(K){throw await AK(K,await Aq(G))}}isFilePart(Y){return Y&&typeof Y==="object"&&"type"in Y&&Y.type==="file"}maybeEncodeFileParts(Y){for(let X of Y.prompt)for(let Q of X.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),K=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${K}`)}}return Y}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(Y,X){return{"ai-language-model-specification-version":"3","ai-language-model-id":Y,"ai-language-model-streaming":String(X)}}},tZ4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:Y,headers:X,abortSignal:Q,providerOptions:J}){var G;let K=await k9(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await MK({url:this.getUrl(),headers:NK(K,X!=null?X:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:mG(eZ4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:Z.embeddings,usage:(G=Z.usage)!=null?G:void 0,providerMetadata:Z.providerMetadata,response:{headers:W,body:H},warnings:[]}}catch(W){throw await AK(W,await Aq(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},eZ4,YK4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,size:Q,aspectRatio:J,seed:G,files:K,mask:W,providerOptions:Z,headers:H,abortSignal:F}){var $,V,q,B;let D=await k9(this.config.headers());try{let{responseHeaders:O,value:L,rawValue:w}=await MK({url:this.getUrl(),headers:NK(D,H!=null?H:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...Z&&{providerOptions:Z},...K&&{files:K.map((I)=>Y21(I))},...W&&{mask:Y21(W)}},successfulResponseHandler:mG(GK4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(I)=>I}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:L.images,warnings:($=L.warnings)!=null?$:[],providerMetadata:L.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:O},...L.usage!=null&&{usage:{inputTokens:(V=L.usage.inputTokens)!=null?V:void 0,outputTokens:(q=L.usage.outputTokens)!=null?q:void 0,totalTokens:(B=L.usage.totalTokens)!=null?B:void 0}}}}catch(O){throw AK(O,await Aq(D))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},XK4,QK4,JK4,GK4,WK4=class{constructor(Y,X){this.modelId=Y,this.config=X,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:Y,n:X,aspectRatio:Q,resolution:J,duration:G,fps:K,seed:W,image:Z,providerOptions:H,headers:F,abortSignal:$}){var V;let q=await k9(this.config.headers());try{let{responseHeaders:B,value:D,rawValue:O}=await MK({url:this.getUrl(),headers:NK(q,F!=null?F:{},this.getModelConfigHeaders(),await k9(this.config.o11yHeaders)),body:{prompt:Y,n:X,...Q&&{aspectRatio:Q},...J&&{resolution:J},...G&&{duration:G},...K&&{fps:K},...W&&{seed:W},...H&&{providerOptions:H},...Z&&{image:ZK4(Z)}},successfulResponseHandler:mG(FK4),failedResponseHandler:f5({errorSchema:z.any(),errorToMessage:(L)=>L}),...$&&{abortSignal:$},fetch:this.config.fetch});return{videos:D.videos,warnings:(V=D.warnings)!=null?V:[],providerMetadata:D.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:B}}}catch(B){throw AK(B,await Aq(q))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}},KK4,HK4,FK4,$K4,VK4,qK4,zK4=(Y={})=>qK4(Y),BK4,UK4,DK4,OK4=(Y={})=>DK4(Y),NK4,wK4="3.0.41",MK4="0.0.1",V21;var OZ0=j(()=>{i6();A4();a6();a6();i6();i6();a6();i6();i6();a6();i6();a6();i6();a6();i6();a6();i6();a6();i6();b0();i6();b0();i6();F21=d6(UZ0(),1),$21=d6(UZ0(),1),DZ0=Symbol.for(_Z4),KQ=class Y extends(IT1=Error,CT1=DZ0,IT1){constructor({message:X,statusCode:Q=500,cause:J,generationId:G}){super(G?`${X} [${G}]`:X);this[CT1]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(X){return Y.hasMarker(X)}static hasMarker(X){return typeof X==="object"&&X!==null&&DZ0 in X&&X[DZ0]===!0}},yZ4=`vercel.ai.gateway.error.${X21}`,RT1=Symbol.for(yZ4),Hg=class Y extends(ST1=KQ,jT1=RT1,ST1){constructor({message:X="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:X,statusCode:Q,cause:J,generationId:G});this[jT1]=!0,this.name=X21,this.type="authentication_error"}static isInstance(X){return KQ.hasMarker(X)&&RT1 in X}static createContextualError({apiKeyProvided:X,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:K,generationId:W}){let Z;if(X)Z=`AI Gateway authentication failed: Invalid API key.
|
|
1243
1243
|
|
|
1244
1244
|
Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
1245
1245
|
|
|
@@ -1265,7 +1265,7 @@ Alternatively, you can use a provider module instead of the AI Gateway.
|
|
|
1265
1265
|
Learn more: \x1B[34m${Q}\x1B[0m
|
|
1266
1266
|
|
|
1267
1267
|
`),{name:"GatewayAuthenticationError"})}function OE({operationId:Y,telemetry:X}){return{"operation.name":`${Y}${(X==null?void 0:X.functionId)!=null?` ${X.functionId}`:""}`,"resource.name":X==null?void 0:X.functionId,"ai.operationId":Y,"ai.telemetry.functionId":X==null?void 0:X.functionId}}function PE1({model:Y,settings:X,telemetry:Q,headers:J}){var G;return{"ai.model.provider":Y.provider,"ai.model.id":Y.modelId,...Object.entries(X).reduce((K,[W,Z])=>{if(W==="timeout"){let H=kZ0(Z);if(H!=null)K[`ai.settings.${W}`]=H}else K[`ai.settings.${W}`]=Z;return K},{}),...Object.entries((G=Q==null?void 0:Q.metadata)!=null?G:{}).reduce((K,[W,Z])=>{return K[`ai.telemetry.metadata.${W}`]=Z,K},{}),...Object.entries(J!=null?J:{}).reduce((K,[W,Z])=>{if(Z!==void 0)K[`ai.request.headers.${W}`]=Z;return K},{})}}function EE1({isEnabled:Y=!1,tracer:X}={}){if(!Y)return pH4;if(X)return X;return TE1.trace.getTracer("ai")}async function NE({name:Y,tracer:X,attributes:Q,fn:J,endWhenDone:G=!0}){return X.startActiveSpan(Y,{attributes:await Q},async(K)=>{let W=RO.context.active();try{let Z=await RO.context.with(W,()=>J(K));if(G)K.end();return Z}catch(Z){try{CE1(K,Z)}finally{K.end()}throw Z}})}function CE1(Y,X){if(X instanceof Error)Y.recordException({name:X.name,message:X.message,stack:X.stack}),Y.setStatus({code:RO.SpanStatusCode.ERROR,message:X.message});else Y.setStatus({code:RO.SpanStatusCode.ERROR})}async function IW({telemetry:Y,attributes:X}){if((Y==null?void 0:Y.isEnabled)!==!0)return{};let Q={};for(let[J,G]of Object.entries(X)){if(G==null)continue;if(typeof G==="object"&&"input"in G&&typeof G.input==="function"){if((Y==null?void 0:Y.recordInputs)===!1)continue;let K=await G.input();if(K!=null)Q[J]=K;continue}if(typeof G==="object"&&"output"in G&&typeof G.output==="function"){if((Y==null?void 0:Y.recordOutputs)===!1)continue;let K=await G.output();if(K!=null)Q[J]=K;continue}Q[J]=G}return Q}function IE1(Y){return JSON.stringify(Y.map((X)=>({...X,content:typeof X.content==="string"?X.content:X.content.map((Q)=>Q.type==="file"?{...Q,data:Q.data instanceof Uint8Array?RH4(Q.data):Q.data}:Q)})))}function RE1(Y){return{inputTokens:Y.inputTokens.total,inputTokenDetails:{noCacheTokens:Y.inputTokens.noCache,cacheReadTokens:Y.inputTokens.cacheRead,cacheWriteTokens:Y.inputTokens.cacheWrite},outputTokens:Y.outputTokens.total,outputTokenDetails:{textTokens:Y.outputTokens.text,reasoningTokens:Y.outputTokens.reasoning},totalTokens:lG(Y.inputTokens.total,Y.outputTokens.total),raw:Y.raw,reasoningTokens:Y.outputTokens.reasoning,cachedInputTokens:Y.inputTokens.cacheRead}}function NZ0(){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 jE1(Y,X){var Q,J,G,K,W,Z,H,F,$,V;return{inputTokens:lG(Y.inputTokens,X.inputTokens),inputTokenDetails:{noCacheTokens:lG((Q=Y.inputTokenDetails)==null?void 0:Q.noCacheTokens,(J=X.inputTokenDetails)==null?void 0:J.noCacheTokens),cacheReadTokens:lG((G=Y.inputTokenDetails)==null?void 0:G.cacheReadTokens,(K=X.inputTokenDetails)==null?void 0:K.cacheReadTokens),cacheWriteTokens:lG((W=Y.inputTokenDetails)==null?void 0:W.cacheWriteTokens,(Z=X.inputTokenDetails)==null?void 0:Z.cacheWriteTokens)},outputTokens:lG(Y.outputTokens,X.outputTokens),outputTokenDetails:{textTokens:lG((H=Y.outputTokenDetails)==null?void 0:H.textTokens,(F=X.outputTokenDetails)==null?void 0:F.textTokens),reasoningTokens:lG(($=Y.outputTokenDetails)==null?void 0:$.reasoningTokens,(V=X.outputTokenDetails)==null?void 0:V.reasoningTokens)},totalTokens:lG(Y.totalTokens,X.totalTokens),reasoningTokens:lG(Y.reasoningTokens,X.reasoningTokens),cachedInputTokens:lG(Y.cachedInputTokens,X.cachedInputTokens)}}function lG(Y,X){return Y==null&&X==null?void 0:(Y!=null?Y:0)+(X!=null?X:0)}function qg(Y,X){if(Y===void 0&&X===void 0)return;if(Y===void 0)return X;if(X===void 0)return Y;let Q={...Y};for(let J in X)if(Object.prototype.hasOwnProperty.call(X,J)){let G=X[J];if(G===void 0)continue;let K=J in Y?Y[J]:void 0,W=G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Date)&&!(G instanceof RegExp),Z=K!==null&&K!==void 0&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Date)&&!(K instanceof RegExp);if(W&&Z)Q[J]=qg(K,G);else Q[J]=G}return Q}function nH4({error:Y,exponentialBackoffDelay:X}){let Q=Y.responseHeaders;if(!Q)return X;let J,G=Q["retry-after-ms"];if(G){let W=parseFloat(G);if(!Number.isNaN(W))J=W}let K=Q["retry-after"];if(K&&J===void 0){let W=parseFloat(K);if(!Number.isNaN(W))J=W*1000;else J=Date.parse(K)-Date.now()}if(J!=null&&!Number.isNaN(J)&&0<=J&&(J<60000||J<X))return J;return X}async function SE1(Y,{maxRetries:X,delayInMs:Q,backoffFactor:J,abortSignal:G},K=[]){try{return await Y()}catch(W){if(OK(W))throw W;if(X===0)throw W;let Z=PO(W),H=[...K,W],F=H.length;if(F>X)throw new z21({message:`Failed after ${F} attempts. Last error: ${Z}`,reason:"maxRetriesExceeded",errors:H});if(W instanceof Error&&Q9.isInstance(W)&&W.isRetryable===!0&&F<=X)return await jP1(nH4({error:W,exponentialBackoffDelay:Q}),{abortSignal:G}),SE1(Y,{maxRetries:X,delayInMs:J*Q,backoffFactor:J,abortSignal:G},H);if(F===1)throw W;throw new z21({message:`Failed after ${F} attempts with non-retryable error: '${Z}'`,reason:"errorNotRetryable",errors:H})}}function kE1({maxRetries:Y,abortSignal:X}){if(Y!=null){if(!Number.isInteger(Y))throw new dG({parameter:"maxRetries",value:Y,message:"maxRetries must be an integer"});if(Y<0)throw new dG({parameter:"maxRetries",value:Y,message:"maxRetries must be >= 0"})}let Q=Y!=null?Y:2;return{maxRetries:Q,retry:iH4({maxRetries:Q,abortSignal:X})}}function vE1({messages:Y}){let X=Y.at(-1);if((X==null?void 0:X.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let Q={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let $ of F)if($.type==="tool-call")Q[$.toolCallId]=$}let J={};for(let H of Y)if(H.role==="assistant"&&typeof H.content!=="string"){let F=H.content;for(let $ of F)if($.type==="tool-approval-request")J[$.approvalId]=$}let G={};for(let H of X.content)if(H.type==="tool-result")G[H.toolCallId]=H;let K=[],W=[],Z=X.content.filter((H)=>H.type==="tool-approval-response");for(let H of Z){let F=J[H.approvalId];if(F==null)throw new vK4({approvalId:H.approvalId});if(G[F.toolCallId]!=null)continue;let $=Q[F.toolCallId];if($==null)throw new jZ0({toolCallId:F.toolCallId,approvalId:F.approvalId});let V={approvalRequest:F,approvalResponse:H,toolCall:$};if(H.approved)K.push(V);else W.push(V)}return{approvedToolApprovals:K,deniedToolApprovals:W}}async function vZ0({toolCall:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W,onPreliminaryToolResult:Z}){let{toolName:H,toolCallId:F,input:$}=Y,V=X==null?void 0:X[H];if((V==null?void 0:V.execute)==null)return;return NE({name:"ai.toolCall",attributes:IW({telemetry:J,attributes:{...OE({operationId:"ai.toolCall",telemetry:J}),"ai.toolCall.name":H,"ai.toolCall.id":F,"ai.toolCall.args":{output:()=>JSON.stringify($)}}}),tracer:Q,fn:async(q)=>{let B;try{let D=pP1({execute:V.execute.bind(V),input:$,options:{toolCallId:F,messages:G,abortSignal:K,experimental_context:W}});for await(let O of D)if(O.type==="preliminary")Z==null||Z({...Y,type:"tool-result",output:O.output,preliminary:!0});else B=O.output}catch(D){return CE1(q,D),{type:"tool-error",toolCallId:F,toolName:H,input:$,error:D,dynamic:V.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}try{q.setAttributes(await IW({telemetry:J,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(B)}}}))}catch(D){}return{type:"tool-result",toolCallId:F,toolName:H,input:$,output:B,dynamic:V.type==="dynamic",...Y.providerMetadata!=null?{providerMetadata:Y.providerMetadata}:{}}}})}function O21(Y){let X=Y.filter((Q)=>Q.type==="reasoning");return X.length===0?void 0:X.map((Q)=>Q.text).join(`
|
|
1268
|
-
`)}function N21(Y){let X=Y.filter((Q)=>Q.type==="text");if(X.length===0)return;return X.map((Q)=>Q.text).join("")}async function yE1({tool:Y,toolCall:X,messages:Q,experimental_context:J}){if(Y.needsApproval==null)return!1;if(typeof Y.needsApproval==="boolean")return Y.needsApproval;return await Y.needsApproval(X.input,{toolCallId:X.toolCallId,messages:Q,experimental_context:J})}function oH4(Y){let X=["ROOT"],Q=-1,J=null;function G(H,F,$){switch(H){case'"':{Q=F,X.pop(),X.push($),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=F,J=F,X.pop(),X.push($),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push($),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":{Q=F,X.pop(),X.push($),X.push("INSIDE_NUMBER");break}case"{":{Q=F,X.pop(),X.push($),X.push("INSIDE_OBJECT_START");break}case"[":{Q=F,X.pop(),X.push($),X.push("INSIDE_ARRAY_START");break}}}function K(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=F,X.pop();break}}}function W(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=F,X.pop();break}}}for(let H=0;H<Y.length;H++){let F=Y[H];switch(X[X.length-1]){case"ROOT":G(F,H,"FINISH");break;case"INSIDE_OBJECT_START":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{Q=H,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(F){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(F,H,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(F,H);break}case"INSIDE_STRING":{switch(F){case'"':{X.pop(),Q=H;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:Q=H}break}case"INSIDE_ARRAY_START":{switch(F){case"]":{Q=H,X.pop();break}default:{Q=H,G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(F){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,X.pop();break}default:{Q=H;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),Q=H;break}case"INSIDE_NUMBER":{switch(F){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let V=Y.substring(J,H+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H)}else Q=H;break}}}let Z=Y.slice(0,Q+1);for(let H=X.length-1;H>=0;H--)switch(X[H]){case"INSIDE_STRING":{Z+='"';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":{Z+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{Z+="]";break}case"INSIDE_LITERAL":{let $=Y.substring(J,Y.length);if("true".startsWith($))Z+="true".slice($.length);else if("false".startsWith($))Z+="false".slice($.length);else if("null".startsWith($))Z+="null".slice($.length)}}return Z}async function LE(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await cQ({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await cQ({text:oH4(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function fE1({toolCall:Y,tools:X,repairToolCall:Q,system:J,messages:G}){var K;try{if(X==null){if(Y.providerExecuted&&Y.dynamic)return await hE1(Y);throw new PZ0({toolName:Y.toolName})}try{return await L21({toolCall:Y,tools:X})}catch(W){if(Q==null||!(PZ0.isInstance(W)||RZ0.isInstance(W)))throw W;let Z=null;try{Z=await Q({toolCall:Y,tools:X,inputSchema:async({toolName:H})=>{let{inputSchema:F}=X[H];return await EW(F).jsonSchema},system:J,messages:G,error:W})}catch(H){throw new QH4({cause:H,originalError:W})}if(Z==null)throw W;return await L21({toolCall:Z,tools:X})}}catch(W){let Z=await cQ({text:Y.input}),H=Z.success?Z.value:Y.input;return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:H,dynamic:!0,invalid:!0,error:W,title:(K=X==null?void 0:X[Y.toolName])==null?void 0:K.title,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata}}}async function hE1(Y){let X=Y.input.trim()===""?{success:!0,value:{}}:await cQ({text:Y.input});if(X.success===!1)throw new RZ0({toolName:Y.toolName,toolInput:Y.input,cause:X.error});return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Y.providerMetadata}}async function L21({toolCall:Y,tools:X}){let Q=Y.toolName,J=X[Q];if(J==null){if(Y.providerExecuted&&Y.dynamic)return await hE1(Y);throw new PZ0({toolName:Y.toolName,availableTools:Object.keys(X)})}let G=EW(J.inputSchema),K=Y.input.trim()===""?await ZQ({value:{},schema:G}):await cQ({text:Y.input,schema:G});if(K.success===!1)throw new RZ0({toolName:Q,toolInput:Y.input,cause:K.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:Y.toolCallId,toolName:Q,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,title:J.title}}function zg(Y){return({steps:X})=>X.length===Y}async function xE1({stopConditions:Y,steps:X}){return(await Promise.all(Y.map((Q)=>Q({steps:X})))).some((Q)=>Q)}async function EZ0({content:Y,tools:X}){let Q=[],J=[];for(let K of Y){if(K.type==="source")continue;if((K.type==="tool-result"||K.type==="tool-error")&&!K.providerExecuted)continue;if(K.type==="text"&&K.text.length===0)continue;switch(K.type){case"text":J.push({type:"text",text:K.text,providerOptions:K.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:K.text,providerOptions:K.providerMetadata});break;case"file":J.push({type:"file",data:K.file.base64,mediaType:K.file.mediaType,providerOptions:K.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:K.toolCallId,toolName:K.toolName,input:K.input,providerExecuted:K.providerExecuted,providerOptions:K.providerMetadata});break;case"tool-result":{let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-error":{let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:K.approvalId,toolCallId:K.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let K of Y){if(!(K.type==="tool-result"||K.type==="tool-error")||K.providerExecuted)continue;let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.type==="tool-result"?K.output:K.error,errorMode:K.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,...K.providerMetadata!=null?{providerOptions:K.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function uE1(...Y){let X=Y.filter((J)=>J!=null);if(X.length===0)return;if(X.length===1)return X[0];let Q=new AbortController;for(let J of X){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function Bg({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=zg(1),experimental_output:V,output:q=V,experimental_telemetry:B,providerOptions:D,experimental_activeTools:O,activeTools:L=O,experimental_prepareStep:w,prepareStep:I=w,experimental_repairToolCall:P,experimental_download:T,experimental_context:A,experimental_include:R,_internal:{generateId:S=X34}={},onStepFinish:k,onFinish:y,...f}){let h=$g(Y),o=UE($),u=kZ0(H),_=qE1(H),l=_!=null?new AbortController:void 0,Y0=uE1(Z,u!=null?AbortSignal.timeout(u):void 0,l==null?void 0:l.signal),{maxRetries:s,retry:W0}=kE1({maxRetries:W,abortSignal:Y0}),N0=TZ0(f),K0=wK(F!=null?F:{},`ai/${zE1}`),L0=PE1({model:h,telemetry:B,headers:K0,settings:{...N0,maxRetries:s}}),E0=await ME1({system:J,prompt:G,messages:K}),x0=EE1(B);try{return await NE({name:"ai.generateText",attributes:IW({telemetry:B,attributes:{...OE({operationId:"ai.generateText",telemetry:B}),...L0,"ai.model.provider":h.provider,"ai.model.id":h.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:K})}}}),tracer:x0,fn:async(O1)=>{var U0,Z0,k0,y1,_1,l0,w0,V0,R0,q0,M0;let H1=E0.messages,v0=[],{approvedToolApprovals:u0,deniedToolApprovals:m1}=vE1({messages:H1}),x1=u0.filter((h6)=>!h6.toolCall.providerExecuted);if(m1.length>0||x1.length>0){let h6=await w21({toolCalls:x1.map((v)=>v.toolCall),tools:X,tracer:x0,telemetry:B,messages:H1,abortSignal:Y0,experimental_context:A}),N=[];for(let v of h6){let t=await Pq({toolCallId:v.toolCallId,input:v.input,tool:X==null?void 0:X[v.toolName],output:v.type==="tool-result"?v.output:v.error,errorMode:v.type==="tool-error"?"json":"none"});N.push({type:"tool-result",toolCallId:v.toolCallId,toolName:v.toolName,output:t})}for(let v of m1)N.push({type:"tool-result",toolCallId:v.toolCall.toolCallId,toolName:v.toolCall.toolName,output:{type:"execution-denied",reason:v.approvalResponse.reason,...v.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:v.approvalResponse.approvalId}}}}});v0.push({role:"tool",content:N})}let W6=[...u0,...m1].filter((h6)=>h6.toolCall.providerExecuted);if(W6.length>0)v0.push({role:"tool",content:W6.map((h6)=>({type:"tool-approval-response",approvalId:h6.approvalResponse.approvalId,approved:h6.approvalResponse.approved,reason:h6.approvalResponse.reason,providerExecuted:!0}))});let O6=TZ0(f),_0,C0=[],K1=[],r0=[],V6=new Map;do{let h6=_!=null?setTimeout(()=>l.abort(),_):void 0;try{let N=[...H1,...v0],v=await(I==null?void 0:I({model:h,steps:r0,stepNumber:r0.length,messages:N,experimental_context:A})),t=$g((U0=v==null?void 0:v.model)!=null?U0:h),Q0=await DE1({prompt:{system:(Z0=v==null?void 0:v.system)!=null?Z0:E0.system,messages:(k0=v==null?void 0:v.messages)!=null?k0:N},supportedUrls:await t.supportedUrls,download:T});A=(y1=v==null?void 0:v.experimental_context)!=null?y1:A;let{toolChoice:U,tools:C}=await OE1({tools:X,toolChoice:(_1=v==null?void 0:v.toolChoice)!=null?_1:Q,activeTools:(l0=v==null?void 0:v.activeTools)!=null?l0:L});_0=await W0(()=>{var T0;return NE({name:"ai.generateText.doGenerate",attributes:IW({telemetry:B,attributes:{...OE({operationId:"ai.generateText.doGenerate",telemetry:B}),...L0,"ai.model.provider":t.provider,"ai.model.id":t.modelId,"ai.prompt.messages":{input:()=>IE1(Q0)},"ai.prompt.tools":{input:()=>C==null?void 0:C.map((T1)=>JSON.stringify(T1))},"ai.prompt.toolChoice":{input:()=>U!=null?JSON.stringify(U):void 0},"gen_ai.system":t.provider,"gen_ai.request.model":t.modelId,"gen_ai.request.frequency_penalty":f.frequencyPenalty,"gen_ai.request.max_tokens":f.maxOutputTokens,"gen_ai.request.presence_penalty":f.presencePenalty,"gen_ai.request.stop_sequences":f.stopSequences,"gen_ai.request.temperature":(T0=f.temperature)!=null?T0:void 0,"gen_ai.request.top_k":f.topK,"gen_ai.request.top_p":f.topP}}),tracer:x0,fn:async(T1)=>{var D8,m8,l6,MX,SW,h5,e0,E6;let w9=qg(D,v==null?void 0:v.providerOptions),l4=await t.doGenerate({...O6,tools:C,toolChoice:U,responseFormat:await(q==null?void 0:q.responseFormat),prompt:Q0,providerOptions:w9,abortSignal:Y0,headers:K0}),o0={id:(m8=(D8=l4.response)==null?void 0:D8.id)!=null?m8:S(),timestamp:(MX=(l6=l4.response)==null?void 0:l6.timestamp)!=null?MX:new Date,modelId:(h5=(SW=l4.response)==null?void 0:SW.modelId)!=null?h5:t.modelId,headers:(e0=l4.response)==null?void 0:e0.headers,body:(E6=l4.response)==null?void 0:E6.body};return T1.setAttributes(await IW({telemetry:B,attributes:{"ai.response.finishReason":l4.finishReason.unified,"ai.response.text":{output:()=>N21(l4.content)},"ai.response.reasoning":{output:()=>O21(l4.content)},"ai.response.toolCalls":{output:()=>{let L6=M21(l4.content);return L6==null?void 0:JSON.stringify(L6)}},"ai.response.id":o0.id,"ai.response.model":o0.modelId,"ai.response.timestamp":o0.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(l4.providerMetadata),"ai.usage.promptTokens":l4.usage.inputTokens.total,"ai.usage.completionTokens":l4.usage.outputTokens.total,"gen_ai.response.finish_reasons":[l4.finishReason.unified],"gen_ai.response.id":o0.id,"gen_ai.response.model":o0.modelId,"gen_ai.usage.input_tokens":l4.usage.inputTokens.total,"gen_ai.usage.output_tokens":l4.usage.outputTokens.total}})),{...l4,response:o0}}})});let c=await Promise.all(_0.content.filter((T0)=>T0.type==="tool-call").map((T0)=>fE1({toolCall:T0,tools:X,repairToolCall:P,system:J,messages:N}))),X0={};for(let T0 of c){if(T0.invalid)continue;let T1=X==null?void 0:X[T0.toolName];if(T1==null)continue;if((T1==null?void 0:T1.onInputAvailable)!=null)await T1.onInputAvailable({input:T0.input,toolCallId:T0.toolCallId,messages:N,abortSignal:Y0,experimental_context:A});if(await yE1({tool:T1,toolCall:T0,messages:N,experimental_context:A}))X0[T0.toolCallId]={type:"tool-approval-request",approvalId:S(),toolCall:T0}}let G0=c.filter((T0)=>T0.invalid&&T0.dynamic);K1=[];for(let T0 of G0)K1.push({type:"tool-error",toolCallId:T0.toolCallId,toolName:T0.toolName,input:T0.input,error:PO(T0.error),dynamic:!0});if(C0=c.filter((T0)=>!T0.providerExecuted),X!=null)K1.push(...await w21({toolCalls:C0.filter((T0)=>!T0.invalid&&X0[T0.toolCallId]==null),tools:X,tracer:x0,telemetry:B,messages:N,abortSignal:Y0,experimental_context:A}));for(let T0 of c){if(!T0.providerExecuted)continue;let T1=X==null?void 0:X[T0.toolName];if((T1==null?void 0:T1.type)==="provider"&&T1.supportsDeferredResults){if(!_0.content.some((m8)=>m8.type==="tool-result"&&m8.toolCallId===T0.toolCallId))V6.set(T0.toolCallId,{toolName:T0.toolName})}}for(let T0 of _0.content)if(T0.type==="tool-result")V6.delete(T0.toolCallId);let a=J34({content:_0.content,toolCalls:c,toolOutputs:K1,toolApprovalRequests:Object.values(X0),tools:X});v0.push(...await EZ0({content:a,tools:X}));let h0=((w0=R==null?void 0:R.requestBody)!=null?w0:!0)?(V0=_0.request)!=null?V0:{}:{..._0.request,body:void 0},I1={..._0.response,messages:structuredClone(v0),body:((R0=R==null?void 0:R.responseBody)!=null?R0:!0)?(q0=_0.response)==null?void 0:q0.body:void 0},S1=new bE1({content:a,finishReason:_0.finishReason.unified,rawFinishReason:_0.finishReason.raw,usage:RE1(_0.usage),warnings:_0.warnings,providerMetadata:_0.providerMetadata,request:h0,response:I1});SZ0({warnings:(M0=_0.warnings)!=null?M0:[],provider:t.provider,model:t.modelId}),r0.push(S1),await(k==null?void 0:k(S1))}finally{if(h6!=null)clearTimeout(h6)}}while((C0.length>0&&K1.length===C0.length||V6.size>0)&&!await xE1({stopConditions:o,steps:r0}));O1.setAttributes(await IW({telemetry:B,attributes:{"ai.response.finishReason":_0.finishReason.unified,"ai.response.text":{output:()=>N21(_0.content)},"ai.response.reasoning":{output:()=>O21(_0.content)},"ai.response.toolCalls":{output:()=>{let h6=M21(_0.content);return h6==null?void 0:JSON.stringify(h6)}},"ai.response.providerMetadata":JSON.stringify(_0.providerMetadata),"ai.usage.promptTokens":_0.usage.inputTokens.total,"ai.usage.completionTokens":_0.usage.outputTokens.total}}));let z6=r0[r0.length-1],c1=r0.reduce((h6,N)=>{return jE1(h6,N.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(y==null?void 0:y({finishReason:z6.finishReason,rawFinishReason:z6.rawFinishReason,usage:z6.usage,content:z6.content,text:z6.text,reasoningText:z6.reasoningText,reasoning:z6.reasoning,files:z6.files,sources:z6.sources,toolCalls:z6.toolCalls,staticToolCalls:z6.staticToolCalls,dynamicToolCalls:z6.dynamicToolCalls,toolResults:z6.toolResults,staticToolResults:z6.staticToolResults,dynamicToolResults:z6.dynamicToolResults,request:z6.request,response:z6.response,warnings:z6.warnings,providerMetadata:z6.providerMetadata,steps:r0,totalUsage:c1,experimental_context:A}));let t1;if(z6.finishReason==="stop")t1=await(q!=null?q:Vg()).parseCompleteOutput({text:z6.text},{response:z6.response,usage:z6.usage,finishReason:z6.finishReason});return new Q34({steps:r0,totalUsage:c1,output:t1})}})}catch(O1){throw AE1(O1)}}async function w21({toolCalls:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W}){return(await Promise.all(Y.map(async(H)=>vZ0({toolCall:H,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W})))).filter((H)=>H!=null)}function M21(Y){let X=Y.filter((Q)=>Q.type==="tool-call");if(X.length===0)return;return X.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function J34({content:Y,toolCalls:X,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let K=[];for(let W of Y)switch(W.type){case"text":case"reasoning":case"source":K.push(W);break;case"file":{K.push({type:"file",file:new _E1(W),...W.providerMetadata!=null?{providerMetadata:W.providerMetadata}:{}});break}case"tool-call":{K.push(X.find((Z)=>Z.toolCallId===W.toolCallId));break}case"tool-result":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null){let H=G==null?void 0:G[W.toolName];if(!((H==null?void 0:H.type)==="provider"&&H.supportsDeferredResults))throw Error(`Tool call ${W.toolCallId} not found.`);if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,error:W.result,providerExecuted:!0,dynamic:W.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,output:W.result,providerExecuted:!0,dynamic:W.dynamic});break}if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,error:W.result,providerExecuted:!0,dynamic:Z.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,output:W.result,providerExecuted:!0,dynamic:Z.dynamic});break}case"tool-approval-request":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null)throw new jZ0({toolCallId:W.toolCallId,approvalId:W.approvalId});K.push({type:"tool-approval-request",approvalId:W.approvalId,toolCall:Z});break}}return[...K,...Q,...J]}function Ug(Y,X){let Q=new Headers(Y!=null?Y:{});for(let[J,G]of Object.entries(X))if(!Q.has(J))Q.set(J,G);return Q}function G34({status:Y,statusText:X,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:Y!=null?Y:200,statusText:X,headers:Ug(Q,{"content-type":"text/plain; charset=utf-8"})})}function gE1({response:Y,status:X,statusText:Q,headers:J,stream:G}){let K=X!=null?X:200;if(Q!==void 0)Y.writeHead(K,Q,J);else Y.writeHead(K,J);let W=G.getReader();(async()=>{try{while(!0){let{done:H,value:F}=await W.read();if(H)break;if(!Y.write(F))await new Promise((V)=>{Y.once("drain",V)})}}catch(H){throw H}finally{Y.end()}})()}function W34({response:Y,status:X,statusText:Q,headers:J,textStream:G}){gE1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(Ug(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function Z34({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new mE1);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:Ug(Q,lE1)})}function K34({originalMessages:Y,responseMessageId:X}){if(Y==null)return;let Q=Y[Y.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof X==="function"?X():X}function H34(Y){return Y.type.startsWith("data-")}function LZ0(Y){return Y.type.startsWith("data-")}function wZ0(Y){return Y.type==="text"}function MZ0(Y){return Y.type==="file"}function A21(Y){return Y.type==="reasoning"}function CZ0(Y){return Y.type.startsWith("tool-")}function dE1(Y){return Y.type==="dynamic-tool"}function BE(Y){return CZ0(Y)||dE1(Y)}function IZ0(Y){return Y.type.split("-").slice(1).join("-")}function AZ0(Y){return dE1(Y)?Y.toolName:IZ0(Y)}function F34({lastMessage:Y,messageId:X}){return{message:(Y==null?void 0:Y.role)==="assistant"?Y:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function $34({stream:Y,messageMetadataSchema:X,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:K,onData:W}){return Y.pipeThrough(new TransformStream({async transform(Z,H){await J(async({state:F,write:$})=>{var V,q,B,D;function O(P){let A=F.message.parts.filter(BE).find((R)=>R.toolCallId===P);if(A==null)throw new IO({chunkType:"tool-invocation",chunkId:P,message:`No tool invocation found for tool call ID "${P}".`});return A}function L(P){var T;let A=F.message.parts.find((k)=>CZ0(k)&&k.toolCallId===P.toolCallId),R=P,S=A;if(A!=null){if(A.state=P.state,S.input=R.input,S.output=R.output,S.errorText=R.errorText,S.rawInput=R.rawInput,S.preliminary=R.preliminary,P.title!==void 0)S.title=P.title;if(S.providerExecuted=(T=R.providerExecuted)!=null?T:A.providerExecuted,R.providerMetadata!=null)A.callProviderMetadata=R.providerMetadata}else F.message.parts.push({type:`tool-${P.toolName}`,toolCallId:P.toolCallId,state:P.state,title:P.title,input:R.input,output:R.output,rawInput:R.rawInput,errorText:R.errorText,providerExecuted:R.providerExecuted,preliminary:R.preliminary,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}function w(P){var T,A;let R=F.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===P.toolCallId),S=P,k=R;if(R!=null){if(R.state=P.state,k.toolName=P.toolName,k.input=S.input,k.output=S.output,k.errorText=S.errorText,k.rawInput=(T=S.rawInput)!=null?T:k.rawInput,k.preliminary=S.preliminary,P.title!==void 0)k.title=P.title;if(k.providerExecuted=(A=S.providerExecuted)!=null?A:R.providerExecuted,S.providerMetadata!=null)R.callProviderMetadata=S.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:P.toolName,toolCallId:P.toolCallId,state:P.state,input:S.input,output:S.output,errorText:S.errorText,preliminary:S.preliminary,providerExecuted:S.providerExecuted,title:P.title,...S.providerMetadata!=null?{callProviderMetadata:S.providerMetadata}:{}})}async function I(P){if(P!=null){let T=F.message.metadata!=null?qg(F.message.metadata,P):P;if(X!=null)await CW({value:T,schema:X,context:{field:"message.metadata",entityId:F.message.id}});F.message.metadata=T}}switch(Z.type){case"text-start":{let P={type:"text",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeTextParts[Z.id]=P,F.message.parts.push(P),$();break}case"text-delta":{let P=F.activeTextParts[Z.id];if(P==null)throw new IO({chunkType:"text-delta",chunkId:Z.id,message:`Received text-delta for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});P.text+=Z.delta,P.providerMetadata=(V=Z.providerMetadata)!=null?V:P.providerMetadata,$();break}case"text-end":{let P=F.activeTextParts[Z.id];if(P==null)throw new IO({chunkType:"text-end",chunkId:Z.id,message:`Received text-end for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});P.state="done",P.providerMetadata=(q=Z.providerMetadata)!=null?q:P.providerMetadata,delete F.activeTextParts[Z.id],$();break}case"reasoning-start":{let P={type:"reasoning",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeReasoningParts[Z.id]=P,F.message.parts.push(P),$();break}case"reasoning-delta":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new IO({chunkType:"reasoning-delta",chunkId:Z.id,message:`Received reasoning-delta for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});P.text+=Z.delta,P.providerMetadata=(B=Z.providerMetadata)!=null?B:P.providerMetadata,$();break}case"reasoning-end":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new IO({chunkType:"reasoning-end",chunkId:Z.id,message:`Received reasoning-end for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});P.providerMetadata=(D=Z.providerMetadata)!=null?D:P.providerMetadata,P.state="done",delete F.activeReasoningParts[Z.id],$();break}case"file":{F.message.parts.push({type:"file",mediaType:Z.mediaType,url:Z.url}),$();break}case"source-url":{F.message.parts.push({type:"source-url",sourceId:Z.sourceId,url:Z.url,title:Z.title,providerMetadata:Z.providerMetadata}),$();break}case"source-document":{F.message.parts.push({type:"source-document",sourceId:Z.sourceId,mediaType:Z.mediaType,title:Z.title,filename:Z.filename,providerMetadata:Z.providerMetadata}),$();break}case"tool-input-start":{let P=F.message.parts.filter(CZ0);if(F.partialToolCalls[Z.toolCallId]={text:"",toolName:Z.toolName,index:P.length,dynamic:Z.dynamic,title:Z.title},Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});$();break}case"tool-input-delta":{let P=F.partialToolCalls[Z.toolCallId];if(P==null)throw new IO({chunkType:"tool-input-delta",chunkId:Z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${Z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});P.text+=Z.inputTextDelta;let{value:T}=await LE(P.text);if(P.dynamic)w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"input-streaming",input:T,title:P.title});else L({toolCallId:Z.toolCallId,toolName:P.toolName,state:"input-streaming",input:T,title:P.title});$();break}case"tool-input-available":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});if($(),K&&!Z.providerExecuted)await K({toolCall:Z});break}case"tool-input-error":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:void 0,rawInput:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});$();break}case"tool-approval-request":{let P=O(Z.toolCallId);P.state="approval-requested",P.approval={id:Z.approvalId},$();break}case"tool-output-denied":{let P=O(Z.toolCallId);P.state="output-denied",$();break}case"tool-output-available":{let P=O(Z.toolCallId);if(P.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"output-available",input:P.input,output:Z.output,preliminary:Z.preliminary,providerExecuted:Z.providerExecuted,title:P.title});else L({toolCallId:Z.toolCallId,toolName:IZ0(P),state:"output-available",input:P.input,output:Z.output,providerExecuted:Z.providerExecuted,preliminary:Z.preliminary,title:P.title});$();break}case"tool-output-error":{let P=O(Z.toolCallId);if(P.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"output-error",input:P.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:P.title});else L({toolCallId:Z.toolCallId,toolName:IZ0(P),state:"output-error",input:P.input,rawInput:P.rawInput,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:P.title});$();break}case"start-step":{F.message.parts.push({type:"step-start"});break}case"finish-step":{F.activeTextParts={},F.activeReasoningParts={};break}case"start":{if(Z.messageId!=null)F.message.id=Z.messageId;if(await I(Z.messageMetadata),Z.messageId!=null||Z.messageMetadata!=null)$();break}case"finish":{if(Z.finishReason!=null)F.finishReason=Z.finishReason;if(await I(Z.messageMetadata),Z.messageMetadata!=null)$();break}case"message-metadata":{if(await I(Z.messageMetadata),Z.messageMetadata!=null)$();break}case"error":{G==null||G(Error(Z.errorText));break}default:if(H34(Z)){if((Q==null?void 0:Q[Z.type])!=null){let A=F.message.parts.findIndex((S)=>("id"in S)&&("data"in S)&&S.id===Z.id&&S.type===Z.type),R=A>=0?A:F.message.parts.length;await CW({value:Z.data,schema:Q[Z.type],context:{field:`message.parts[${R}].data`,entityName:Z.type,entityId:Z.id}})}let P=Z;if(P.transient){W==null||W(P);break}let T=P.id!=null?F.message.parts.find((A)=>P.type===A.type&&P.id===A.id):void 0;if(T!=null)T.data=P.data;else F.message.parts.push(P);W==null||W(P),$()}}H.enqueue(Z)})}}))}function V34({messageId:Y,originalMessages:X=[],onFinish:Q,onError:J,stream:G}){let K=X==null?void 0:X[X.length-1];if((K==null?void 0:K.role)!=="assistant")K=void 0;else Y=K.id;let W=!1,Z=G.pipeThrough(new TransformStream({transform(q,B){if(q.type==="start"){let D=q;if(D.messageId==null&&Y!=null)D.messageId=Y}if(q.type==="abort")W=!0;B.enqueue(q)}}));if(Q==null)return Z;let H=F34({lastMessage:K?structuredClone(K):void 0,messageId:Y!=null?Y:""}),F=async(q)=>{await q({state:H,write:()=>{}})},$=!1,V=async()=>{if($||!Q)return;$=!0;let q=H.message.id===(K==null?void 0:K.id);await Q({isAborted:W,isContinuation:q,responseMessage:H.message,messages:[...q?X.slice(0,-1):X,H.message],finishReason:H.finishReason})};return $34({stream:Z,runUpdateMessageJob:F,onError:J}).pipeThrough(new TransformStream({transform(q,B){B.enqueue(q)},async cancel(){await V()},async flush(){await V()}}))}function q34({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new mE1);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}gE1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(Ug(J,lE1).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function zE(Y){let X=Y.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(K){var W;if(J)return;J=!0;try{if(K)await((W=Q.cancel)==null?void 0:W.call(Q))}finally{try{Q.releaseLock()}catch(Z){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:K,value:W}=await Q.read();if(K)return await G(!0),{done:!0,value:void 0};return{done:!1,value:W}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(K){throw await G(!0),K}}},X}async function _Z0({stream:Y,onError:X}){let Q=Y.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){X==null||X(J)}finally{Q.releaseLock()}}function P21(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function z34(){let Y=[],X=null,Q=!1,J=P21(),G=()=>{Q=!0,J.resolve(),Y.forEach((W)=>W.cancel()),Y=[],X==null||X.close()},K=async()=>{if(Q&&Y.length===0){X==null||X.close();return}if(Y.length===0)return J=P21(),await J.promise,K();try{let{value:W,done:Z}=await Y[0].read();if(Z)if(Y.shift(),Y.length===0&&Q)X==null||X.close();else await K();else X==null||X.enqueue(W)}catch(W){X==null||X.error(W),Y.shift(),G()}};return{stream:new ReadableStream({start(W){X=W},pull:K,async cancel(){for(let W of Y)await W.cancel();Y=[],Q=!0}}),addStream:(W)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");Y.push(W.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),Y.length===0)X==null||X.close()},terminate:G}}function B34(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function U34({tools:Y,generatorStream:X,tracer:Q,telemetry:J,system:G,messages:K,abortSignal:W,repairToolCall:Z,experimental_context:H,generateId:F}){let $=null,V=new ReadableStream({start(P){$=P}}),q=new Set,B=new Map,D=new Map,O=!1,L=void 0;function w(){if(O&&q.size===0){if(L!=null)$.enqueue(L);$.close()}}let I=new TransformStream({async transform(P,T){let A=P.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(P);break}case"file":{T.enqueue({type:"file",file:new aH4({data:P.data,mediaType:P.mediaType})});break}case"finish":{L={type:"finish",finishReason:P.finishReason.unified,rawFinishReason:P.finishReason.raw,usage:RE1(P.usage),providerMetadata:P.providerMetadata};break}case"tool-approval-request":{let R=D.get(P.toolCallId);if(R==null){$.enqueue({type:"error",error:new jZ0({toolCallId:P.toolCallId,approvalId:P.approvalId})});break}T.enqueue({type:"tool-approval-request",approvalId:P.approvalId,toolCall:R});break}case"tool-call":{try{let R=await fE1({toolCall:P,tools:Y,repairToolCall:Z,system:G,messages:K});if(D.set(R.toolCallId,R),T.enqueue(R),R.invalid){$.enqueue({type:"tool-error",toolCallId:R.toolCallId,toolName:R.toolName,input:R.input,error:PO(R.error),dynamic:!0,title:R.title});break}let S=Y==null?void 0:Y[R.toolName];if(S==null)break;if(S.onInputAvailable!=null)await S.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await yE1({tool:S,toolCall:R,messages:K,experimental_context:H})){$.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(B.set(R.toolCallId,R.input),S.execute!=null&&R.providerExecuted!==!0){let k=F();q.add(k),vZ0({toolCall:R,tools:Y,tracer:Q,telemetry:J,messages:K,abortSignal:W,experimental_context:H,onPreliminaryToolResult:(y)=>{$.enqueue(y)}}).then((y)=>{$.enqueue(y)}).catch((y)=>{$.enqueue({type:"error",error:y})}).finally(()=>{q.delete(k),w()})}}catch(R){$.enqueue({type:"error",error:R})}break}case"tool-result":{let R=P.toolName;if(P.isError)$.enqueue({type:"tool-error",toolCallId:P.toolCallId,toolName:R,input:B.get(P.toolCallId),providerExecuted:!0,error:P.result,dynamic:P.dynamic});else T.enqueue({type:"tool-result",toolCallId:P.toolCallId,toolName:R,input:B.get(P.toolCallId),output:P.result,providerExecuted:!0,dynamic:P.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){O=!0,w()}});return new ReadableStream({async start(P){return Promise.all([X.pipeThrough(I).pipeTo(new WritableStream({write(T){P.enqueue(T)},close(){}})),V.pipeTo(new WritableStream({write(T){P.enqueue(T)},close(){P.close()}}))])}})}function Dg({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=zg(1),experimental_output:V,output:q=V,experimental_telemetry:B,prepareStep:D,providerOptions:O,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:I,experimental_transform:P,experimental_download:T,includeRawChunks:A=!1,onChunk:R,onError:S=({error:Y0})=>{console.error(Y0)},onFinish:k,onAbort:y,onStepFinish:f,experimental_context:h,experimental_include:o,_internal:{now:u=B34,generateId:_=D34}={},...l}){let Y0=kZ0(H),s=qE1(H),W0=wH4(H),N0=s!=null?new AbortController:void 0,K0=W0!=null?new AbortController:void 0;return new N34({model:$g(Y),telemetry:B,headers:F,settings:l,maxRetries:W,abortSignal:uE1(Z,Y0!=null?AbortSignal.timeout(Y0):void 0,N0==null?void 0:N0.signal,K0==null?void 0:K0.signal),stepTimeoutMs:s,stepAbortController:N0,chunkTimeoutMs:W0,chunkAbortController:K0,system:J,prompt:G,messages:K,tools:X,toolChoice:Q,transforms:UE(P),activeTools:w,repairToolCall:I,stopConditions:UE($),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:S,onFinish:k,onAbort:y,onStepFinish:f,now:u,generateId:_,experimental_context:h,download:T,include:o})}function O34(Y){let X=void 0,Q="",J="",G=void 0,K="";function W({controller:Z,partialOutput:H=void 0}){Z.enqueue({part:{type:"text-delta",id:X,text:J,providerMetadata:G},partialOutput:H}),J=""}return new TransformStream({async transform(Z,H){var F;if(Z.type==="finish-step"&&J.length>0)W({controller:H});if(Z.type!=="text-delta"&&Z.type!=="text-start"&&Z.type!=="text-end"){H.enqueue({part:Z,partialOutput:void 0});return}if(X==null)X=Z.id;else if(Z.id!==X){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-start"){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-end"){if(J.length>0)W({controller:H});H.enqueue({part:Z,partialOutput:void 0});return}Q+=Z.text,J+=Z.text,G=(F=Z.providerMetadata)!=null?F:G;let $=await Y.parsePartialOutput({text:Q});if($!==void 0){let V=JSON.stringify($.partial);if(V!==K)W({controller:H,partialOutput:$.partial}),K=V}}})}async function pE1(Y,X){let Q=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Y=Y.map((J)=>({...J,parts:J.parts.filter((G)=>!BE(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of Y)switch(J.role){case"system":{let G=J.parts.filter((W)=>W.type==="text"),K=G.reduce((W,Z)=>{if(Z.providerMetadata!=null)return{...W,...Z.providerMetadata};return W},{});Q.push({role:"system",content:G.map((W)=>W.text).join(""),...Object.keys(K).length>0?{providerOptions:K}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var K;if(wZ0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(MZ0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(LZ0(G))return(K=X==null?void 0:X.convertDataPart)==null?void 0:K.call(X,G)}).filter(yP1)});break}case"assistant":{if(J.parts!=null){let G=[];async function K(){var W,Z,H,F,$,V;if(G.length===0)return;let q=[];for(let D of G)if(wZ0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(MZ0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(A21(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(BE(D)){let O=AZ0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:O,input:D.state==="output-error"?(W=D.input)!=null?W:("rawInput"in D)?D.rawInput:void 0:D.input,providerExecuted:D.providerExecuted,...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}}),D.approval!=null)q.push({type:"tool-approval-request",approvalId:D.approval.id,toolCallId:D.toolCallId});if(D.providerExecuted===!0&&D.state!=="approval-responded"&&(D.state==="output-available"||D.state==="output-error"))q.push({type:"tool-result",toolCallId:D.toolCallId,toolName:O,output:await Pq({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:(Z=X==null?void 0:X.tools)==null?void 0:Z[O],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(LZ0(D)){let O=(H=X==null?void 0:X.convertDataPart)==null?void 0:H.call(X,D);if(O!=null)q.push(O)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let B=G.filter((D)=>{var O;return BE(D)&&(D.providerExecuted!==!0||((O=D.approval)==null?void 0:O.approved)!=null)});if(B.length>0){let D=[];for(let O of B){if(((F=O.approval)==null?void 0:F.approved)!=null)D.push({type:"tool-approval-response",approvalId:O.approval.id,approved:O.approval.approved,reason:O.approval.reason,providerExecuted:O.providerExecuted});if(O.providerExecuted===!0)continue;switch(O.state){case"output-denied":{D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:AZ0(O),output:{type:"error-text",value:($=O.approval.reason)!=null?$:"Tool execution denied."},...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=AZ0(O);D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:L,output:await Pq({toolCallId:O.toolCallId,input:O.input,output:O.state==="output-error"?O.errorText:O.output,tool:(V=X==null?void 0:X.tools)==null?void 0:V[L],errorMode:O.state==="output-error"?"text":"none"}),...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let W of J.parts)if(wZ0(W)||A21(W)||MZ0(W)||BE(W)||LZ0(W))G.push(W);else if(W.type==="step-start")await K();await K();break}break}default:{let G=J.role;throw new qH4({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function w34({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){try{if(Y==null)return{success:!1,error:new dG({parameter:"messages",value:Y,message:"messages parameter must be provided"})};let G=await CW({value:Y,schema:L34});if(X)for(let[K,W]of G.entries())await CW({value:W.metadata,schema:X,context:{field:`messages[${K}].metadata`,entityId:W.id}});if(Q||J)for(let[K,W]of G.entries())for(let[Z,H]of W.parts.entries()){if(Q&&H.type.startsWith("data-")){let F=H,$=F.type.slice(5),V=Q[$];if(!V)return{success:!1,error:new pQ({value:F.data,cause:`No data schema found for data part ${$}`,context:{field:`messages[${K}].parts[${Z}].data`,entityName:$,entityId:F.id}})};await CW({value:F.data,schema:V,context:{field:`messages[${K}].parts[${Z}].data`,entityName:$,entityId:F.id}})}if(J&&H.type.startsWith("tool-")){let F=H,$=F.type.slice(5),V=J[$];if(!V)return{success:!1,error:new pQ({value:F.input,cause:`No tool schema found for tool part ${$}`,context:{field:`messages[${K}].parts[${Z}].input`,entityName:$,entityId:F.toolCallId}})};if(F.state==="input-available"||F.state==="output-available"||F.state==="output-error"&&F.input!==void 0)await CW({value:F.input,schema:V.inputSchema,context:{field:`messages[${K}].parts[${Z}].input`,entityName:$,entityId:F.toolCallId}});if(F.state==="output-available"&&V.outputSchema)await CW({value:F.output,schema:V.outputSchema,context:{field:`messages[${K}].parts[${Z}].output`,entityName:$,entityId:F.toolCallId}})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function cE1({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){let G=await w34({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function nE1({messages:Y,reasoning:X="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(X==="all"||X==="before-last-message")Y=Y.map((G,K)=>{if(G.role!=="assistant"||typeof G.content==="string"||X==="before-last-message"&&K===Y.length-1)return G;return{...G,content:G.content.filter((W)=>W.type!=="reasoning")}});if(Q==="none")Q=[];else if(Q==="all")Q=[{type:"all"}];else if(Q==="before-last-message")Q=[{type:"before-last-message"}];else if(typeof Q==="string")Q=[{type:Q}];for(let G of Q){let K=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),W=new Set,Z=new Set;if(K!=null){for(let H of Y.slice(-K))if((H.role==="assistant"||H.role==="tool")&&typeof H.content!=="string"){for(let F of H.content)if(F.type==="tool-call"||F.type==="tool-result")W.add(F.toolCallId);else if(F.type==="tool-approval-request"||F.type==="tool-approval-response")Z.add(F.approvalId)}}Y=Y.map((H,F)=>{if(H.role!=="assistant"&&H.role!=="tool"||typeof H.content==="string"||K&&F>=Y.length-K)return H;let $={},V={};return{...H,content:H.content.filter((q)=>{if(q.type!=="tool-call"&&q.type!=="tool-result"&&q.type!=="tool-approval-request"&&q.type!=="tool-approval-response")return!0;if(q.type==="tool-call")$[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")V[q.approvalId]=$[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&W.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&Z.has(q.approvalId))return!0;return G.tools!=null&&!G.tools.includes(q.type==="tool-call"||q.type==="tool-result"?q.toolName:V[q.approvalId])})}})}if(J==="remove")Y=Y.filter((G)=>G.content.length>0);return Y}var TE1,RO,TK4,EK4=(Y,X)=>{for(var Q in X)TK4(Y,Q,{get:X[Q],enumerable:!0})},T21="AI_InvalidArgumentError",E21,CK4,C21,dG,IK4="AI_InvalidStreamPartError",RK4,jK4,SK4,I21="AI_InvalidToolApprovalError",R21,kK4,j21,vK4,S21="AI_InvalidToolInputError",k21,_K4,v21,RZ0,_21="AI_ToolCallNotFoundForApprovalError",y21,yK4,f21,jZ0,h21="AI_MissingToolResultsError",b21,fK4,x21,q21,hK4="AI_NoImageGeneratedError",bK4,xK4,uK4,u21="AI_NoObjectGeneratedError",g21,gK4,m21,i3,l21="AI_NoOutputGeneratedError",d21,mK4,p21,c21,lK4="AI_NoSpeechGeneratedError",dK4,pK4,cK4,nK4="AI_NoTranscriptGeneratedError",iK4,aK4,rK4,oK4="AI_NoVideoGeneratedError",sK4,tK4,eK4,n21="AI_NoSuchToolError",i21,YH4,a21,PZ0,r21="AI_ToolCallRepairError",o21,XH4,s21,QH4,JH4,t21="AI_UIMessageStreamError",e21,GH4,YE1,IO,WH4="AI_InvalidDataContentError",ZH4,KH4,HH4,XE1="AI_InvalidMessageRoleError",QE1,FH4,JE1,$H4,GE1="AI_MessageConversionError",WE1,VH4,ZE1,qH4,KE1="AI_RetryError",HE1,zH4,FE1,z21,UH4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",B21=!1,SZ0=(Y)=>{if(Y.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Y);return}if(!B21)B21=!0,console.info(UH4);for(let Q of Y.warnings)console.warn(BH4({warning:Q,provider:Y.provider,model:Y.model}))},MH4,AH4=(Y)=>{let X=typeof Y==="string"?AO(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)},zE1="6.0.79",EH4=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:wK({},`ai-sdk/${zE1}`,Xg())});if(!J.ok)throw new Yg({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(X=J.headers.get("content-type"))!=null?X:void 0}}catch(J){if(Yg.isInstance(J))throw J;throw new Yg({url:Q,cause:J})}},CH4=(Y=EH4)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q))),BE1,DE,s1,NE1,_H4,LE1,yH4,fH4,hH4,wE1,bH4,xH4,uH4,gH4,mH4,lH4,dH4,pH4,Fg,cH4,iH4=({maxRetries:Y=2,initialDelayInMs:X=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>SE1(G,{maxRetries:Y,delayInMs:X,backoffFactor:Q,abortSignal:J}),_E1=class{constructor({data:Y,mediaType:X}){let Q=Y instanceof Uint8Array;this.base64Data=Q?void 0:Y,this.uint8ArrayData=Q?Y:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=LK(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=AO(this.base64Data);return this.uint8ArrayData}},aH4,rH4,Vg=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),sH4=({schema:Y,name:X,description:Q})=>{let J=EW(Y);return{name:"object",responseFormat:k9(J.jsonSchema).then((G)=>({type:"json",schema:G,...X!=null&&{name:X},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},K){let W=await cQ({text:G});if(!W.success)throw new i3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=await ZQ({value:W.value,schema:J});if(!Z.success)throw new i3({message:"No object generated: response did not match schema.",cause:Z.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});return Z.value},async parsePartialOutput({text:G}){let K=await LE(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:K.value}}},createElementStreamTransform(){return}}},tH4=({element:Y,name:X,description:Q})=>{let J=EW(Y);return{name:"array",responseFormat:k9(J.jsonSchema).then((G)=>{let{$schema:K,...W}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:W}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},K){let W=await cQ({text:G});if(!W.success)throw new i3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))throw new i3({message:"No object generated: response did not match schema.",cause:new pQ({value:Z,cause:"response must be an object with an elements array"}),text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});for(let H of Z.elements){let F=await ZQ({value:H,schema:J});if(!F.success)throw new i3({message:"No object generated: response did not match schema.",cause:F.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason})}return Z.elements},async parsePartialOutput({text:G}){let K=await LE(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=K.value;if(W==null||typeof W!=="object"||!("elements"in W)||!Array.isArray(W.elements))return;let Z=K.state==="repaired-parse"&&W.elements.length>0?W.elements.slice(0,-1):W.elements,H=[];for(let F of Z){let $=await ZQ({value:F,schema:J});if($.success)H.push($.value)}return{partial:H}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:K},W){if(K!=null)for(;G<K.length;G++)W.enqueue(K[G])}})}}},eH4=({options:Y,name:X,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let K=await cQ({text:J});if(!K.success)throw new i3({message:"No object generated: could not parse the response.",cause:K.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let W=K.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new i3({message:"No object generated: response did not match schema.",cause:new pQ({value:W,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return W.result},async parsePartialOutput({text:J}){let G=await LE(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let K=G.value;if(K==null||typeof K!=="object"||!("result"in K)||typeof K.result!=="string")return;let W=Y.filter((Z)=>Z.startsWith(K.result));if(G.state==="successful-parse")return W.includes(K.result)?{partial:K.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},Y34=({name:Y,description:X}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...X!=null&&{description:X}}),async parseCompleteOutput({text:Q},J){let G=await cQ({text:Q});if(!G.success)throw new i3({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await LE(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},bE1=class{constructor({content:Y,finishReason:X,rawFinishReason:Q,usage:J,warnings:G,request:K,response:W,providerMetadata:Z}){this.content=Y,this.finishReason=X,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=K,this.response=W,this.providerMetadata=Z}get text(){return this.content.filter((Y)=>Y.type==="text").map((Y)=>Y.text).join("")}get reasoning(){return this.content.filter((Y)=>Y.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Y)=>Y.text).join("")}get files(){return this.content.filter((Y)=>Y.type==="file").map((Y)=>Y.file)}get sources(){return this.content.filter((Y)=>Y.type==="source")}get toolCalls(){return this.content.filter((Y)=>Y.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic===!0)}get toolResults(){return this.content.filter((Y)=>Y.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Y)=>Y.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Y)=>Y.dynamic===!0)}},X34,Q34=class{constructor(Y){this.steps=Y.steps,this._output=Y.output,this.totalUsage=Y.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new c21;return this._output}},mE1,lE1,yI8,D34,N34=class{constructor({model:Y,telemetry:X,headers:Q,settings:J,maxRetries:G,abortSignal:K,stepTimeoutMs:W,stepAbortController:Z,chunkTimeoutMs:H,chunkAbortController:F,system:$,prompt:V,messages:q,tools:B,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:P,providerOptions:T,prepareStep:A,includeRawChunks:R,now:S,generateId:k,onChunk:y,onError:f,onFinish:h,onAbort:o,onStepFinish:u,experimental_context:_,download:l,include:Y0}){this._totalUsage=new Lq,this._finishReason=new Lq,this._rawFinishReason=new Lq,this._steps=new Lq,this.outputSpecification=P,this.includeRawChunks=R,this.tools=B;let s,W0=[],N0=[],K0=void 0,L0=void 0,E0=void 0,x0={},O1=[],U0=[],Z0=new Map,k0,y1={},_1={},l0=new TransformStream({async transform(x1,W6){var O6,_0,C0,K1;W6.enqueue(x1);let{part:r0}=x1;if(r0.type==="text-delta"||r0.type==="reasoning-delta"||r0.type==="source"||r0.type==="tool-call"||r0.type==="tool-result"||r0.type==="tool-input-start"||r0.type==="tool-input-delta"||r0.type==="raw")await(y==null?void 0:y({chunk:r0}));if(r0.type==="error")await f({error:AE1(r0.error)});if(r0.type==="text-start")y1[r0.id]={type:"text",text:"",providerMetadata:r0.providerMetadata},W0.push(y1[r0.id]);if(r0.type==="text-delta"){let V6=y1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`text part ${r0.id} not found`},partialOutput:void 0});return}V6.text+=r0.text,V6.providerMetadata=(O6=r0.providerMetadata)!=null?O6:V6.providerMetadata}if(r0.type==="text-end"){let V6=y1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`text part ${r0.id} not found`},partialOutput:void 0});return}V6.providerMetadata=(_0=r0.providerMetadata)!=null?_0:V6.providerMetadata,delete y1[r0.id]}if(r0.type==="reasoning-start")_1[r0.id]={type:"reasoning",text:"",providerMetadata:r0.providerMetadata},W0.push(_1[r0.id]);if(r0.type==="reasoning-delta"){let V6=_1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`reasoning part ${r0.id} not found`},partialOutput:void 0});return}V6.text+=r0.text,V6.providerMetadata=(C0=r0.providerMetadata)!=null?C0:V6.providerMetadata}if(r0.type==="reasoning-end"){let V6=_1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`reasoning part ${r0.id} not found`},partialOutput:void 0});return}V6.providerMetadata=(K1=r0.providerMetadata)!=null?K1:V6.providerMetadata,delete _1[r0.id]}if(r0.type==="file")W0.push({type:"file",file:r0.file});if(r0.type==="source")W0.push(r0);if(r0.type==="tool-call")W0.push(r0);if(r0.type==="tool-result"&&!r0.preliminary)W0.push(r0);if(r0.type==="tool-approval-request")W0.push(r0);if(r0.type==="tool-error")W0.push(r0);if(r0.type==="start-step")W0=[],_1={},y1={},x0=r0.request,O1=r0.warnings;if(r0.type==="finish-step"){let V6=await EZ0({content:W0,tools:B}),z6=new bE1({content:W0,finishReason:r0.finishReason,rawFinishReason:r0.rawFinishReason,usage:r0.usage,warnings:O1,request:x0,response:{...r0.response,messages:[...N0,...V6]},providerMetadata:r0.providerMetadata});await(u==null?void 0:u(z6)),SZ0({warnings:O1,provider:Y.provider,model:Y.modelId}),U0.push(z6),N0.push(...V6),s.resolve()}if(r0.type==="finish")E0=r0.totalUsage,K0=r0.finishReason,L0=r0.rawFinishReason},async flush(x1){try{if(U0.length===0){let C0=(K==null?void 0:K.aborted)?K.reason:new c21({message:"No output generated. Check the stream for errors."});m1._finishReason.reject(C0),m1._rawFinishReason.reject(C0),m1._totalUsage.reject(C0),m1._steps.reject(C0);return}let W6=K0!=null?K0:"other",O6=E0!=null?E0:NZ0();m1._finishReason.resolve(W6),m1._rawFinishReason.resolve(L0),m1._totalUsage.resolve(O6),m1._steps.resolve(U0);let _0=U0[U0.length-1];await(h==null?void 0:h({finishReason:_0.finishReason,rawFinishReason:_0.rawFinishReason,totalUsage:O6,usage:_0.usage,content:_0.content,text:_0.text,reasoningText:_0.reasoningText,reasoning:_0.reasoning,files:_0.files,sources:_0.sources,toolCalls:_0.toolCalls,staticToolCalls:_0.staticToolCalls,dynamicToolCalls:_0.dynamicToolCalls,toolResults:_0.toolResults,staticToolResults:_0.staticToolResults,dynamicToolResults:_0.dynamicToolResults,request:_0.request,response:_0.response,warnings:_0.warnings,providerMetadata:_0.providerMetadata,steps:U0,experimental_context:_})),k0.setAttributes(await IW({telemetry:X,attributes:{"ai.response.finishReason":W6,"ai.response.text":{output:()=>_0.text},"ai.response.reasoning":{output:()=>_0.reasoningText},"ai.response.toolCalls":{output:()=>{var C0;return((C0=_0.toolCalls)==null?void 0:C0.length)?JSON.stringify(_0.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(_0.providerMetadata),"ai.usage.inputTokens":O6.inputTokens,"ai.usage.outputTokens":O6.outputTokens,"ai.usage.totalTokens":O6.totalTokens,"ai.usage.reasoningTokens":O6.reasoningTokens,"ai.usage.cachedInputTokens":O6.cachedInputTokens}}))}catch(W6){x1.error(W6)}finally{k0.end()}}}),w0=z34();this.addStream=w0.addStream,this.closeStream=w0.close;let V0=w0.stream.getReader(),R0=new ReadableStream({async start(x1){x1.enqueue({type:"start"})},async pull(x1){function W6(){o==null||o({steps:U0}),x1.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:bG(K.reason)}:{}}),x1.close()}try{let{done:O6,value:_0}=await V0.read();if(O6){x1.close();return}if(K==null?void 0:K.aborted){W6();return}x1.enqueue(_0)}catch(O6){if(OK(O6)&&(K==null?void 0:K.aborted))W6();else x1.error(O6)}},cancel(x1){return w0.stream.cancel(x1)}});for(let x1 of O)R0=R0.pipeThrough(x1({tools:B,stopStream(){w0.terminate()}}));this.baseStream=R0.pipeThrough(O34(P!=null?P:Vg())).pipeThrough(l0);let{maxRetries:q0,retry:M0}=kE1({maxRetries:G,abortSignal:K}),H1=EE1(X),v0=TZ0(J),u0=PE1({model:Y,telemetry:X,headers:Q,settings:{...v0,maxRetries:q0}}),m1=this;NE({name:"ai.streamText",attributes:IW({telemetry:X,attributes:{...OE({operationId:"ai.streamText",telemetry:X}),...u0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:V,messages:q})}}}),tracer:H1,endWhenDone:!1,fn:async(x1)=>{k0=x1;let W6=await ME1({system:$,prompt:V,messages:q}),O6=W6.messages,_0=[],{approvedToolApprovals:C0,deniedToolApprovals:K1}=vE1({messages:O6});if(K1.length>0||C0.length>0){let V6=[...C0,...K1].filter((v)=>v.toolCall.providerExecuted),z6=C0.filter((v)=>!v.toolCall.providerExecuted),c1=K1.filter((v)=>!v.toolCall.providerExecuted),t1=K1.filter((v)=>v.toolCall.providerExecuted),h6,N=new ReadableStream({start(v){h6=v}});m1.addStream(N);try{for(let t of[...c1,...t1])h6==null||h6.enqueue({type:"tool-output-denied",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName});let v=[];if(await Promise.all(z6.map(async(t)=>{let Q0=await vZ0({toolCall:t.toolCall,tools:B,tracer:H1,telemetry:X,messages:O6,abortSignal:K,experimental_context:_,onPreliminaryToolResult:(U)=>{h6==null||h6.enqueue(U)}});if(Q0!=null)h6==null||h6.enqueue(Q0),v.push(Q0)})),V6.length>0)_0.push({role:"tool",content:V6.map((t)=>({type:"tool-approval-response",approvalId:t.approvalResponse.approvalId,approved:t.approvalResponse.approved,reason:t.approvalResponse.reason,providerExecuted:!0}))});if(v.length>0||c1.length>0){let t=[];for(let Q0 of v)t.push({type:"tool-result",toolCallId:Q0.toolCallId,toolName:Q0.toolName,output:await Pq({toolCallId:Q0.toolCallId,input:Q0.input,tool:B==null?void 0:B[Q0.toolName],output:Q0.type==="tool-result"?Q0.output:Q0.error,errorMode:Q0.type==="tool-error"?"json":"none"})});for(let Q0 of c1)t.push({type:"tool-result",toolCallId:Q0.toolCall.toolCallId,toolName:Q0.toolCall.toolName,output:{type:"execution-denied",reason:Q0.approvalResponse.reason}});_0.push({role:"tool",content:t})}}finally{h6==null||h6.close()}}N0.push(..._0);async function r0({currentStep:V6,responseMessages:z6,usage:c1}){var t1,h6,N,v,t,Q0,U;let C=m1.includeRawChunks,c=W!=null?setTimeout(()=>Z.abort(),W):void 0,X0=void 0;function G0(){if(H!=null){if(X0!=null)clearTimeout(X0);X0=setTimeout(()=>F.abort(),H)}}function a(){if(X0!=null)clearTimeout(X0),X0=void 0}function h0(){if(c!=null)clearTimeout(c)}try{s=new Lq;let I1=[...O6,...z6],S1=await(A==null?void 0:A({model:Y,steps:U0,stepNumber:U0.length,messages:I1,experimental_context:_})),T0=$g((t1=S1==null?void 0:S1.model)!=null?t1:Y),T1=await DE1({prompt:{system:(h6=S1==null?void 0:S1.system)!=null?h6:W6.system,messages:(N=S1==null?void 0:S1.messages)!=null?N:I1},supportedUrls:await T0.supportedUrls,download:l}),{toolChoice:D8,tools:m8}=await OE1({tools:B,toolChoice:(v=S1==null?void 0:S1.toolChoice)!=null?v:D,activeTools:(t=S1==null?void 0:S1.activeTools)!=null?t:L});_=(Q0=S1==null?void 0:S1.experimental_context)!=null?Q0:_;let l6=qg(T,S1==null?void 0:S1.providerOptions),{result:{stream:MX,response:SW,request:h5},doStreamSpan:e0,startTimestampMs:E6}=await M0(()=>NE({name:"ai.streamText.doStream",attributes:IW({telemetry:X,attributes:{...OE({operationId:"ai.streamText.doStream",telemetry:X}),...u0,"ai.model.provider":T0.provider,"ai.model.id":T0.modelId,"ai.prompt.messages":{input:()=>IE1(T1)},"ai.prompt.tools":{input:()=>m8==null?void 0:m8.map((e1)=>JSON.stringify(e1))},"ai.prompt.toolChoice":{input:()=>D8!=null?JSON.stringify(D8):void 0},"gen_ai.system":T0.provider,"gen_ai.request.model":T0.modelId,"gen_ai.request.frequency_penalty":v0.frequencyPenalty,"gen_ai.request.max_tokens":v0.maxOutputTokens,"gen_ai.request.presence_penalty":v0.presencePenalty,"gen_ai.request.stop_sequences":v0.stopSequences,"gen_ai.request.temperature":v0.temperature,"gen_ai.request.top_k":v0.topK,"gen_ai.request.top_p":v0.topP}}),tracer:H1,endWhenDone:!1,fn:async(e1)=>({startTimestampMs:S(),doStreamSpan:e1,result:await T0.doStream({...v0,tools:m8,toolChoice:D8,responseFormat:await(P==null?void 0:P.responseFormat),prompt:T1,providerOptions:l6,abortSignal:K,headers:Q,includeRawChunks:C})})})),w9=U34({tools:B,generatorStream:MX,tracer:H1,telemetry:X,system:$,messages:I1,repairToolCall:w,abortSignal:K,experimental_context:_,generateId:k}),l4=((U=Y0==null?void 0:Y0.requestBody)!=null?U:!0)?h5!=null?h5:{}:{...h5,body:void 0},o0=[],L6=[],p9,RJ={},TK="other",Ag=void 0,b5=NZ0(),Pg,oZ0=!0,pG={id:k(),timestamp:new Date,modelId:Y.modelId},sZ0="";m1.addStream(w9.pipeThrough(new TransformStream({async transform(e1,MY){var _O,yO,AE,a8,cG;if(G0(),e1.type==="stream-start"){p9=e1.warnings;return}if(oZ0){let M9=S()-E6;oZ0=!1,e0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":M9}),e0.setAttributes({"ai.response.msToFirstChunk":M9}),MY.enqueue({type:"start-step",request:l4,warnings:p9!=null?p9:[]})}let Tg=e1.type;switch(Tg){case"tool-approval-request":case"text-start":case"text-end":{MY.enqueue(e1);break}case"text-delta":{if(e1.delta.length>0)MY.enqueue({type:"text-delta",id:e1.id,text:e1.delta,providerMetadata:e1.providerMetadata}),sZ0+=e1.delta;break}case"reasoning-start":case"reasoning-end":{MY.enqueue(e1);break}case"reasoning-delta":{MY.enqueue({type:"reasoning-delta",id:e1.id,text:e1.delta,providerMetadata:e1.providerMetadata});break}case"tool-call":{MY.enqueue(e1),o0.push(e1);break}case"tool-result":{if(MY.enqueue(e1),!e1.preliminary)L6.push(e1);break}case"tool-error":{MY.enqueue(e1),L6.push(e1);break}case"response-metadata":{pG={id:(_O=e1.id)!=null?_O:pG.id,timestamp:(yO=e1.timestamp)!=null?yO:pG.timestamp,modelId:(AE=e1.modelId)!=null?AE:pG.modelId};break}case"finish":{b5=e1.usage,TK=e1.finishReason,Ag=e1.rawFinishReason,Pg=e1.providerMetadata;let M9=S()-E6;e0.addEvent("ai.stream.finish"),e0.setAttributes({"ai.response.msToFinish":M9,"ai.response.avgOutputTokensPerSecond":1000*((a8=b5.outputTokens)!=null?a8:0)/M9});break}case"file":{MY.enqueue(e1);break}case"source":{MY.enqueue(e1);break}case"tool-input-start":{RJ[e1.id]=e1.toolName;let M9=B==null?void 0:B[e1.toolName];if((M9==null?void 0:M9.onInputStart)!=null)await M9.onInputStart({toolCallId:e1.id,messages:I1,abortSignal:K,experimental_context:_});MY.enqueue({...e1,dynamic:(cG=e1.dynamic)!=null?cG:(M9==null?void 0:M9.type)==="dynamic",title:M9==null?void 0:M9.title});break}case"tool-input-end":{delete RJ[e1.id],MY.enqueue(e1);break}case"tool-input-delta":{let M9=RJ[e1.id],Eg=B==null?void 0:B[M9];if((Eg==null?void 0:Eg.onInputDelta)!=null)await Eg.onInputDelta({inputTextDelta:e1.delta,toolCallId:e1.id,messages:I1,abortSignal:K,experimental_context:_});MY.enqueue(e1);break}case"error":{MY.enqueue(e1),TK="error";break}case"raw":{if(C)MY.enqueue(e1);break}default:throw Error(`Unknown chunk type: ${Tg}`)}},async flush(e1){let MY=o0.length>0?JSON.stringify(o0):void 0;try{e0.setAttributes(await IW({telemetry:X,attributes:{"ai.response.finishReason":TK,"ai.response.text":{output:()=>sZ0},"ai.response.reasoning":{output:()=>{let a8=W0.filter((cG)=>cG.type==="reasoning");return a8.length>0?a8.map((cG)=>cG.text).join(`
|
|
1268
|
+
`)}function N21(Y){let X=Y.filter((Q)=>Q.type==="text");if(X.length===0)return;return X.map((Q)=>Q.text).join("")}async function yE1({tool:Y,toolCall:X,messages:Q,experimental_context:J}){if(Y.needsApproval==null)return!1;if(typeof Y.needsApproval==="boolean")return Y.needsApproval;return await Y.needsApproval(X.input,{toolCallId:X.toolCallId,messages:Q,experimental_context:J})}function oH4(Y){let X=["ROOT"],Q=-1,J=null;function G(H,F,$){switch(H){case'"':{Q=F,X.pop(),X.push($),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=F,J=F,X.pop(),X.push($),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push($),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":{Q=F,X.pop(),X.push($),X.push("INSIDE_NUMBER");break}case"{":{Q=F,X.pop(),X.push($),X.push("INSIDE_OBJECT_START");break}case"[":{Q=F,X.pop(),X.push($),X.push("INSIDE_ARRAY_START");break}}}function K(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=F,X.pop();break}}}function W(H,F){switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=F,X.pop();break}}}for(let H=0;H<Y.length;H++){let F=Y[H];switch(X[X.length-1]){case"ROOT":G(F,H,"FINISH");break;case"INSIDE_OBJECT_START":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{Q=H,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(F){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(F,H,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(F,H);break}case"INSIDE_STRING":{switch(F){case'"':{X.pop(),Q=H;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:Q=H}break}case"INSIDE_ARRAY_START":{switch(F){case"]":{Q=H,X.pop();break}default:{Q=H,G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(F){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,X.pop();break}default:{Q=H;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(F,H,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{X.pop(),Q=H;break}case"INSIDE_NUMBER":{switch(F){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let V=Y.substring(J,H+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,H);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")W(F,H)}else Q=H;break}}}let Z=Y.slice(0,Q+1);for(let H=X.length-1;H>=0;H--)switch(X[H]){case"INSIDE_STRING":{Z+='"';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":{Z+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{Z+="]";break}case"INSIDE_LITERAL":{let $=Y.substring(J,Y.length);if("true".startsWith($))Z+="true".slice($.length);else if("false".startsWith($))Z+="false".slice($.length);else if("null".startsWith($))Z+="null".slice($.length)}}return Z}async function LE(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await cQ({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await cQ({text:oH4(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function fE1({toolCall:Y,tools:X,repairToolCall:Q,system:J,messages:G}){var K;try{if(X==null){if(Y.providerExecuted&&Y.dynamic)return await hE1(Y);throw new PZ0({toolName:Y.toolName})}try{return await L21({toolCall:Y,tools:X})}catch(W){if(Q==null||!(PZ0.isInstance(W)||RZ0.isInstance(W)))throw W;let Z=null;try{Z=await Q({toolCall:Y,tools:X,inputSchema:async({toolName:H})=>{let{inputSchema:F}=X[H];return await EW(F).jsonSchema},system:J,messages:G,error:W})}catch(H){throw new QH4({cause:H,originalError:W})}if(Z==null)throw W;return await L21({toolCall:Z,tools:X})}}catch(W){let Z=await cQ({text:Y.input}),H=Z.success?Z.value:Y.input;return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:H,dynamic:!0,invalid:!0,error:W,title:(K=X==null?void 0:X[Y.toolName])==null?void 0:K.title,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata}}}async function hE1(Y){let X=Y.input.trim()===""?{success:!0,value:{}}:await cQ({text:Y.input});if(X.success===!1)throw new RZ0({toolName:Y.toolName,toolInput:Y.input,cause:X.error});return{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:X.value,providerExecuted:!0,dynamic:!0,providerMetadata:Y.providerMetadata}}async function L21({toolCall:Y,tools:X}){let Q=Y.toolName,J=X[Q];if(J==null){if(Y.providerExecuted&&Y.dynamic)return await hE1(Y);throw new PZ0({toolName:Y.toolName,availableTools:Object.keys(X)})}let G=EW(J.inputSchema),K=Y.input.trim()===""?await ZQ({value:{},schema:G}):await cQ({text:Y.input,schema:G});if(K.success===!1)throw new RZ0({toolName:Q,toolInput:Y.input,cause:K.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:Y.toolCallId,toolName:Y.toolName,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:Y.toolCallId,toolName:Q,input:K.value,providerExecuted:Y.providerExecuted,providerMetadata:Y.providerMetadata,title:J.title}}function zg(Y){return({steps:X})=>X.length===Y}async function xE1({stopConditions:Y,steps:X}){return(await Promise.all(Y.map((Q)=>Q({steps:X})))).some((Q)=>Q)}async function EZ0({content:Y,tools:X}){let Q=[],J=[];for(let K of Y){if(K.type==="source")continue;if((K.type==="tool-result"||K.type==="tool-error")&&!K.providerExecuted)continue;if(K.type==="text"&&K.text.length===0)continue;switch(K.type){case"text":J.push({type:"text",text:K.text,providerOptions:K.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:K.text,providerOptions:K.providerMetadata});break;case"file":J.push({type:"file",data:K.file.base64,mediaType:K.file.mediaType,providerOptions:K.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:K.toolCallId,toolName:K.toolName,input:K.input,providerExecuted:K.providerExecuted,providerOptions:K.providerMetadata});break;case"tool-result":{let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-error":{let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,providerOptions:K.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:K.approvalId,toolCallId:K.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let K of Y){if(!(K.type==="tool-result"||K.type==="tool-error")||K.providerExecuted)continue;let W=await Pq({toolCallId:K.toolCallId,input:K.input,tool:X==null?void 0:X[K.toolName],output:K.type==="tool-result"?K.output:K.error,errorMode:K.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:K.toolCallId,toolName:K.toolName,output:W,...K.providerMetadata!=null?{providerOptions:K.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function uE1(...Y){let X=Y.filter((J)=>J!=null);if(X.length===0)return;if(X.length===1)return X[0];let Q=new AbortController;for(let J of X){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function Bg({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=zg(1),experimental_output:V,output:q=V,experimental_telemetry:B,providerOptions:D,experimental_activeTools:O,activeTools:L=O,experimental_prepareStep:w,prepareStep:I=w,experimental_repairToolCall:P,experimental_download:T,experimental_context:A,experimental_include:R,_internal:{generateId:S=X34}={},onStepFinish:k,onFinish:y,...f}){let h=$g(Y),o=UE($),u=kZ0(H),_=qE1(H),l=_!=null?new AbortController:void 0,Y0=uE1(Z,u!=null?AbortSignal.timeout(u):void 0,l==null?void 0:l.signal),{maxRetries:s,retry:W0}=kE1({maxRetries:W,abortSignal:Y0}),N0=TZ0(f),K0=wK(F!=null?F:{},`ai/${zE1}`),L0=PE1({model:h,telemetry:B,headers:K0,settings:{...N0,maxRetries:s}}),E0=await ME1({system:J,prompt:G,messages:K}),x0=EE1(B);try{return await NE({name:"ai.generateText",attributes:IW({telemetry:B,attributes:{...OE({operationId:"ai.generateText",telemetry:B}),...L0,"ai.model.provider":h.provider,"ai.model.id":h.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:K})}}}),tracer:x0,fn:async(O1)=>{var U0,Z0,k0,y1,_1,l0,w0,V0,R0,q0,M0;let H1=E0.messages,v0=[],{approvedToolApprovals:u0,deniedToolApprovals:m1}=vE1({messages:H1}),x1=u0.filter((h6)=>!h6.toolCall.providerExecuted);if(m1.length>0||x1.length>0){let h6=await w21({toolCalls:x1.map((v)=>v.toolCall),tools:X,tracer:x0,telemetry:B,messages:H1,abortSignal:Y0,experimental_context:A}),N=[];for(let v of h6){let t=await Pq({toolCallId:v.toolCallId,input:v.input,tool:X==null?void 0:X[v.toolName],output:v.type==="tool-result"?v.output:v.error,errorMode:v.type==="tool-error"?"json":"none"});N.push({type:"tool-result",toolCallId:v.toolCallId,toolName:v.toolName,output:t})}for(let v of m1)N.push({type:"tool-result",toolCallId:v.toolCall.toolCallId,toolName:v.toolCall.toolName,output:{type:"execution-denied",reason:v.approvalResponse.reason,...v.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:v.approvalResponse.approvalId}}}}});v0.push({role:"tool",content:N})}let W6=[...u0,...m1].filter((h6)=>h6.toolCall.providerExecuted);if(W6.length>0)v0.push({role:"tool",content:W6.map((h6)=>({type:"tool-approval-response",approvalId:h6.approvalResponse.approvalId,approved:h6.approvalResponse.approved,reason:h6.approvalResponse.reason,providerExecuted:!0}))});let O6=TZ0(f),_0,C0=[],K1=[],r0=[],V6=new Map;do{let h6=_!=null?setTimeout(()=>l.abort(),_):void 0;try{let N=[...H1,...v0],v=await(I==null?void 0:I({model:h,steps:r0,stepNumber:r0.length,messages:N,experimental_context:A})),t=$g((U0=v==null?void 0:v.model)!=null?U0:h),Q0=await DE1({prompt:{system:(Z0=v==null?void 0:v.system)!=null?Z0:E0.system,messages:(k0=v==null?void 0:v.messages)!=null?k0:N},supportedUrls:await t.supportedUrls,download:T});A=(y1=v==null?void 0:v.experimental_context)!=null?y1:A;let{toolChoice:U,tools:C}=await OE1({tools:X,toolChoice:(_1=v==null?void 0:v.toolChoice)!=null?_1:Q,activeTools:(l0=v==null?void 0:v.activeTools)!=null?l0:L});_0=await W0(()=>{var T0;return NE({name:"ai.generateText.doGenerate",attributes:IW({telemetry:B,attributes:{...OE({operationId:"ai.generateText.doGenerate",telemetry:B}),...L0,"ai.model.provider":t.provider,"ai.model.id":t.modelId,"ai.prompt.messages":{input:()=>IE1(Q0)},"ai.prompt.tools":{input:()=>C==null?void 0:C.map((T1)=>JSON.stringify(T1))},"ai.prompt.toolChoice":{input:()=>U!=null?JSON.stringify(U):void 0},"gen_ai.system":t.provider,"gen_ai.request.model":t.modelId,"gen_ai.request.frequency_penalty":f.frequencyPenalty,"gen_ai.request.max_tokens":f.maxOutputTokens,"gen_ai.request.presence_penalty":f.presencePenalty,"gen_ai.request.stop_sequences":f.stopSequences,"gen_ai.request.temperature":(T0=f.temperature)!=null?T0:void 0,"gen_ai.request.top_k":f.topK,"gen_ai.request.top_p":f.topP}}),tracer:x0,fn:async(T1)=>{var D8,m8,l6,MX,SW,h5,e0,E6;let w9=qg(D,v==null?void 0:v.providerOptions),l4=await t.doGenerate({...O6,tools:C,toolChoice:U,responseFormat:await(q==null?void 0:q.responseFormat),prompt:Q0,providerOptions:w9,abortSignal:Y0,headers:K0}),o0={id:(m8=(D8=l4.response)==null?void 0:D8.id)!=null?m8:S(),timestamp:(MX=(l6=l4.response)==null?void 0:l6.timestamp)!=null?MX:new Date,modelId:(h5=(SW=l4.response)==null?void 0:SW.modelId)!=null?h5:t.modelId,headers:(e0=l4.response)==null?void 0:e0.headers,body:(E6=l4.response)==null?void 0:E6.body};return T1.setAttributes(await IW({telemetry:B,attributes:{"ai.response.finishReason":l4.finishReason.unified,"ai.response.text":{output:()=>N21(l4.content)},"ai.response.reasoning":{output:()=>O21(l4.content)},"ai.response.toolCalls":{output:()=>{let L6=M21(l4.content);return L6==null?void 0:JSON.stringify(L6)}},"ai.response.id":o0.id,"ai.response.model":o0.modelId,"ai.response.timestamp":o0.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(l4.providerMetadata),"ai.usage.promptTokens":l4.usage.inputTokens.total,"ai.usage.completionTokens":l4.usage.outputTokens.total,"gen_ai.response.finish_reasons":[l4.finishReason.unified],"gen_ai.response.id":o0.id,"gen_ai.response.model":o0.modelId,"gen_ai.usage.input_tokens":l4.usage.inputTokens.total,"gen_ai.usage.output_tokens":l4.usage.outputTokens.total}})),{...l4,response:o0}}})});let c=await Promise.all(_0.content.filter((T0)=>T0.type==="tool-call").map((T0)=>fE1({toolCall:T0,tools:X,repairToolCall:P,system:J,messages:N}))),X0={};for(let T0 of c){if(T0.invalid)continue;let T1=X==null?void 0:X[T0.toolName];if(T1==null)continue;if((T1==null?void 0:T1.onInputAvailable)!=null)await T1.onInputAvailable({input:T0.input,toolCallId:T0.toolCallId,messages:N,abortSignal:Y0,experimental_context:A});if(await yE1({tool:T1,toolCall:T0,messages:N,experimental_context:A}))X0[T0.toolCallId]={type:"tool-approval-request",approvalId:S(),toolCall:T0}}let G0=c.filter((T0)=>T0.invalid&&T0.dynamic);K1=[];for(let T0 of G0)K1.push({type:"tool-error",toolCallId:T0.toolCallId,toolName:T0.toolName,input:T0.input,error:PO(T0.error),dynamic:!0});if(C0=c.filter((T0)=>!T0.providerExecuted),X!=null)K1.push(...await w21({toolCalls:C0.filter((T0)=>!T0.invalid&&X0[T0.toolCallId]==null),tools:X,tracer:x0,telemetry:B,messages:N,abortSignal:Y0,experimental_context:A}));for(let T0 of c){if(!T0.providerExecuted)continue;let T1=X==null?void 0:X[T0.toolName];if((T1==null?void 0:T1.type)==="provider"&&T1.supportsDeferredResults){if(!_0.content.some((m8)=>m8.type==="tool-result"&&m8.toolCallId===T0.toolCallId))V6.set(T0.toolCallId,{toolName:T0.toolName})}}for(let T0 of _0.content)if(T0.type==="tool-result")V6.delete(T0.toolCallId);let a=J34({content:_0.content,toolCalls:c,toolOutputs:K1,toolApprovalRequests:Object.values(X0),tools:X});v0.push(...await EZ0({content:a,tools:X}));let h0=((w0=R==null?void 0:R.requestBody)!=null?w0:!0)?(V0=_0.request)!=null?V0:{}:{..._0.request,body:void 0},I1={..._0.response,messages:structuredClone(v0),body:((R0=R==null?void 0:R.responseBody)!=null?R0:!0)?(q0=_0.response)==null?void 0:q0.body:void 0},S1=new bE1({content:a,finishReason:_0.finishReason.unified,rawFinishReason:_0.finishReason.raw,usage:RE1(_0.usage),warnings:_0.warnings,providerMetadata:_0.providerMetadata,request:h0,response:I1});SZ0({warnings:(M0=_0.warnings)!=null?M0:[],provider:t.provider,model:t.modelId}),r0.push(S1),await(k==null?void 0:k(S1))}finally{if(h6!=null)clearTimeout(h6)}}while((C0.length>0&&K1.length===C0.length||V6.size>0)&&!await xE1({stopConditions:o,steps:r0}));O1.setAttributes(await IW({telemetry:B,attributes:{"ai.response.finishReason":_0.finishReason.unified,"ai.response.text":{output:()=>N21(_0.content)},"ai.response.reasoning":{output:()=>O21(_0.content)},"ai.response.toolCalls":{output:()=>{let h6=M21(_0.content);return h6==null?void 0:JSON.stringify(h6)}},"ai.response.providerMetadata":JSON.stringify(_0.providerMetadata),"ai.usage.promptTokens":_0.usage.inputTokens.total,"ai.usage.completionTokens":_0.usage.outputTokens.total}}));let z6=r0[r0.length-1],c1=r0.reduce((h6,N)=>{return jE1(h6,N.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(y==null?void 0:y({finishReason:z6.finishReason,rawFinishReason:z6.rawFinishReason,usage:z6.usage,content:z6.content,text:z6.text,reasoningText:z6.reasoningText,reasoning:z6.reasoning,files:z6.files,sources:z6.sources,toolCalls:z6.toolCalls,staticToolCalls:z6.staticToolCalls,dynamicToolCalls:z6.dynamicToolCalls,toolResults:z6.toolResults,staticToolResults:z6.staticToolResults,dynamicToolResults:z6.dynamicToolResults,request:z6.request,response:z6.response,warnings:z6.warnings,providerMetadata:z6.providerMetadata,steps:r0,totalUsage:c1,experimental_context:A}));let t1;if(z6.finishReason==="stop")t1=await(q!=null?q:Vg()).parseCompleteOutput({text:z6.text},{response:z6.response,usage:z6.usage,finishReason:z6.finishReason});return new Q34({steps:r0,totalUsage:c1,output:t1})}})}catch(O1){throw AE1(O1)}}async function w21({toolCalls:Y,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W}){return(await Promise.all(Y.map(async(H)=>vZ0({toolCall:H,tools:X,tracer:Q,telemetry:J,messages:G,abortSignal:K,experimental_context:W})))).filter((H)=>H!=null)}function M21(Y){let X=Y.filter((Q)=>Q.type==="tool-call");if(X.length===0)return;return X.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function J34({content:Y,toolCalls:X,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let K=[];for(let W of Y)switch(W.type){case"text":case"reasoning":case"source":K.push(W);break;case"file":{K.push({type:"file",file:new _E1(W),...W.providerMetadata!=null?{providerMetadata:W.providerMetadata}:{}});break}case"tool-call":{K.push(X.find((Z)=>Z.toolCallId===W.toolCallId));break}case"tool-result":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null){let H=G==null?void 0:G[W.toolName];if(!((H==null?void 0:H.type)==="provider"&&H.supportsDeferredResults))throw Error(`Tool call ${W.toolCallId} not found.`);if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,error:W.result,providerExecuted:!0,dynamic:W.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:void 0,output:W.result,providerExecuted:!0,dynamic:W.dynamic});break}if(W.isError)K.push({type:"tool-error",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,error:W.result,providerExecuted:!0,dynamic:Z.dynamic});else K.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,input:Z.input,output:W.result,providerExecuted:!0,dynamic:Z.dynamic});break}case"tool-approval-request":{let Z=X.find((H)=>H.toolCallId===W.toolCallId);if(Z==null)throw new jZ0({toolCallId:W.toolCallId,approvalId:W.approvalId});K.push({type:"tool-approval-request",approvalId:W.approvalId,toolCall:Z});break}}return[...K,...Q,...J]}function Ug(Y,X){let Q=new Headers(Y!=null?Y:{});for(let[J,G]of Object.entries(X))if(!Q.has(J))Q.set(J,G);return Q}function G34({status:Y,statusText:X,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:Y!=null?Y:200,statusText:X,headers:Ug(Q,{"content-type":"text/plain; charset=utf-8"})})}function gE1({response:Y,status:X,statusText:Q,headers:J,stream:G}){let K=X!=null?X:200;if(Q!==void 0)Y.writeHead(K,Q,J);else Y.writeHead(K,J);let W=G.getReader();(async()=>{try{while(!0){let{done:H,value:F}=await W.read();if(H)break;if(!Y.write(F))await new Promise((V)=>{Y.once("drain",V)})}}catch(H){throw H}finally{Y.end()}})()}function W34({response:Y,status:X,statusText:Q,headers:J,textStream:G}){gE1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(Ug(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function Z34({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new mE1);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:Ug(Q,lE1)})}function K34({originalMessages:Y,responseMessageId:X}){if(Y==null)return;let Q=Y[Y.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof X==="function"?X():X}function H34(Y){return Y.type.startsWith("data-")}function LZ0(Y){return Y.type.startsWith("data-")}function wZ0(Y){return Y.type==="text"}function MZ0(Y){return Y.type==="file"}function A21(Y){return Y.type==="reasoning"}function CZ0(Y){return Y.type.startsWith("tool-")}function dE1(Y){return Y.type==="dynamic-tool"}function BE(Y){return CZ0(Y)||dE1(Y)}function IZ0(Y){return Y.type.split("-").slice(1).join("-")}function AZ0(Y){return dE1(Y)?Y.toolName:IZ0(Y)}function F34({lastMessage:Y,messageId:X}){return{message:(Y==null?void 0:Y.role)==="assistant"?Y:{id:X,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function $34({stream:Y,messageMetadataSchema:X,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:K,onData:W}){return Y.pipeThrough(new TransformStream({async transform(Z,H){await J(async({state:F,write:$})=>{var V,q,B,D;function O(P){let A=F.message.parts.filter(BE).find((R)=>R.toolCallId===P);if(A==null)throw new IO({chunkType:"tool-invocation",chunkId:P,message:`No tool invocation found for tool call ID "${P}".`});return A}function L(P){var T;let A=F.message.parts.find((k)=>CZ0(k)&&k.toolCallId===P.toolCallId),R=P,S=A;if(A!=null){if(A.state=P.state,S.input=R.input,S.output=R.output,S.errorText=R.errorText,S.rawInput=R.rawInput,S.preliminary=R.preliminary,P.title!==void 0)S.title=P.title;if(S.providerExecuted=(T=R.providerExecuted)!=null?T:A.providerExecuted,R.providerMetadata!=null)A.callProviderMetadata=R.providerMetadata}else F.message.parts.push({type:`tool-${P.toolName}`,toolCallId:P.toolCallId,state:P.state,title:P.title,input:R.input,output:R.output,rawInput:R.rawInput,errorText:R.errorText,providerExecuted:R.providerExecuted,preliminary:R.preliminary,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}function w(P){var T,A;let R=F.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===P.toolCallId),S=P,k=R;if(R!=null){if(R.state=P.state,k.toolName=P.toolName,k.input=S.input,k.output=S.output,k.errorText=S.errorText,k.rawInput=(T=S.rawInput)!=null?T:k.rawInput,k.preliminary=S.preliminary,P.title!==void 0)k.title=P.title;if(k.providerExecuted=(A=S.providerExecuted)!=null?A:R.providerExecuted,S.providerMetadata!=null)R.callProviderMetadata=S.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:P.toolName,toolCallId:P.toolCallId,state:P.state,input:S.input,output:S.output,errorText:S.errorText,preliminary:S.preliminary,providerExecuted:S.providerExecuted,title:P.title,...S.providerMetadata!=null?{callProviderMetadata:S.providerMetadata}:{}})}async function I(P){if(P!=null){let T=F.message.metadata!=null?qg(F.message.metadata,P):P;if(X!=null)await CW({value:T,schema:X,context:{field:"message.metadata",entityId:F.message.id}});F.message.metadata=T}}switch(Z.type){case"text-start":{let P={type:"text",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeTextParts[Z.id]=P,F.message.parts.push(P),$();break}case"text-delta":{let P=F.activeTextParts[Z.id];if(P==null)throw new IO({chunkType:"text-delta",chunkId:Z.id,message:`Received text-delta for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});P.text+=Z.delta,P.providerMetadata=(V=Z.providerMetadata)!=null?V:P.providerMetadata,$();break}case"text-end":{let P=F.activeTextParts[Z.id];if(P==null)throw new IO({chunkType:"text-end",chunkId:Z.id,message:`Received text-end for missing text part with ID "${Z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});P.state="done",P.providerMetadata=(q=Z.providerMetadata)!=null?q:P.providerMetadata,delete F.activeTextParts[Z.id],$();break}case"reasoning-start":{let P={type:"reasoning",text:"",providerMetadata:Z.providerMetadata,state:"streaming"};F.activeReasoningParts[Z.id]=P,F.message.parts.push(P),$();break}case"reasoning-delta":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new IO({chunkType:"reasoning-delta",chunkId:Z.id,message:`Received reasoning-delta for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});P.text+=Z.delta,P.providerMetadata=(B=Z.providerMetadata)!=null?B:P.providerMetadata,$();break}case"reasoning-end":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new IO({chunkType:"reasoning-end",chunkId:Z.id,message:`Received reasoning-end for missing reasoning part with ID "${Z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});P.providerMetadata=(D=Z.providerMetadata)!=null?D:P.providerMetadata,P.state="done",delete F.activeReasoningParts[Z.id],$();break}case"file":{F.message.parts.push({type:"file",mediaType:Z.mediaType,url:Z.url}),$();break}case"source-url":{F.message.parts.push({type:"source-url",sourceId:Z.sourceId,url:Z.url,title:Z.title,providerMetadata:Z.providerMetadata}),$();break}case"source-document":{F.message.parts.push({type:"source-document",sourceId:Z.sourceId,mediaType:Z.mediaType,title:Z.title,filename:Z.filename,providerMetadata:Z.providerMetadata}),$();break}case"tool-input-start":{let P=F.message.parts.filter(CZ0);if(F.partialToolCalls[Z.toolCallId]={text:"",toolName:Z.toolName,index:P.length,dynamic:Z.dynamic,title:Z.title},Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-streaming",input:void 0,providerExecuted:Z.providerExecuted,title:Z.title,providerMetadata:Z.providerMetadata});$();break}case"tool-input-delta":{let P=F.partialToolCalls[Z.toolCallId];if(P==null)throw new IO({chunkType:"tool-input-delta",chunkId:Z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${Z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});P.text+=Z.inputTextDelta;let{value:T}=await LE(P.text);if(P.dynamic)w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"input-streaming",input:T,title:P.title});else L({toolCallId:Z.toolCallId,toolName:P.toolName,state:"input-streaming",input:T,title:P.title});$();break}case"tool-input-available":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"input-available",input:Z.input,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata,title:Z.title});if($(),K&&!Z.providerExecuted)await K({toolCall:Z});break}case"tool-input-error":{if(Z.dynamic)w({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});else L({toolCallId:Z.toolCallId,toolName:Z.toolName,state:"output-error",input:void 0,rawInput:Z.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,providerMetadata:Z.providerMetadata});$();break}case"tool-approval-request":{let P=O(Z.toolCallId);P.state="approval-requested",P.approval={id:Z.approvalId},$();break}case"tool-output-denied":{let P=O(Z.toolCallId);P.state="output-denied",$();break}case"tool-output-available":{let P=O(Z.toolCallId);if(P.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"output-available",input:P.input,output:Z.output,preliminary:Z.preliminary,providerExecuted:Z.providerExecuted,title:P.title});else L({toolCallId:Z.toolCallId,toolName:IZ0(P),state:"output-available",input:P.input,output:Z.output,providerExecuted:Z.providerExecuted,preliminary:Z.preliminary,title:P.title});$();break}case"tool-output-error":{let P=O(Z.toolCallId);if(P.type==="dynamic-tool")w({toolCallId:Z.toolCallId,toolName:P.toolName,state:"output-error",input:P.input,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:P.title});else L({toolCallId:Z.toolCallId,toolName:IZ0(P),state:"output-error",input:P.input,rawInput:P.rawInput,errorText:Z.errorText,providerExecuted:Z.providerExecuted,title:P.title});$();break}case"start-step":{F.message.parts.push({type:"step-start"});break}case"finish-step":{F.activeTextParts={},F.activeReasoningParts={};break}case"start":{if(Z.messageId!=null)F.message.id=Z.messageId;if(await I(Z.messageMetadata),Z.messageId!=null||Z.messageMetadata!=null)$();break}case"finish":{if(Z.finishReason!=null)F.finishReason=Z.finishReason;if(await I(Z.messageMetadata),Z.messageMetadata!=null)$();break}case"message-metadata":{if(await I(Z.messageMetadata),Z.messageMetadata!=null)$();break}case"error":{G==null||G(Error(Z.errorText));break}default:if(H34(Z)){if((Q==null?void 0:Q[Z.type])!=null){let A=F.message.parts.findIndex((S)=>("id"in S)&&("data"in S)&&S.id===Z.id&&S.type===Z.type),R=A>=0?A:F.message.parts.length;await CW({value:Z.data,schema:Q[Z.type],context:{field:`message.parts[${R}].data`,entityName:Z.type,entityId:Z.id}})}let P=Z;if(P.transient){W==null||W(P);break}let T=P.id!=null?F.message.parts.find((A)=>P.type===A.type&&P.id===A.id):void 0;if(T!=null)T.data=P.data;else F.message.parts.push(P);W==null||W(P),$()}}H.enqueue(Z)})}}))}function V34({messageId:Y,originalMessages:X=[],onStepFinish:Q,onFinish:J,onError:G,stream:K}){let W=X==null?void 0:X[X.length-1];if((W==null?void 0:W.role)!=="assistant")W=void 0;else Y=W.id;let Z=!1,H=K.pipeThrough(new TransformStream({transform(D,O){if(D.type==="start"){let L=D;if(L.messageId==null&&Y!=null)L.messageId=Y}if(D.type==="abort")Z=!0;O.enqueue(D)}}));if(J==null&&Q==null)return H;let F=F34({lastMessage:W?structuredClone(W):void 0,messageId:Y!=null?Y:""}),$=async(D)=>{await D({state:F,write:()=>{}})},V=!1,q=async()=>{if(V||!J)return;V=!0;let D=F.message.id===(W==null?void 0:W.id);await J({isAborted:Z,isContinuation:D,responseMessage:F.message,messages:[...D?X.slice(0,-1):X,F.message],finishReason:F.finishReason})},B=async()=>{if(!Q)return;let D=F.message.id===(W==null?void 0:W.id);try{await Q({isContinuation:D,responseMessage:structuredClone(F.message),messages:[...D?X.slice(0,-1):X,structuredClone(F.message)]})}catch(O){G(O)}};return $34({stream:H,runUpdateMessageJob:$,onError:G}).pipeThrough(new TransformStream({async transform(D,O){if(D.type==="finish-step")await B();O.enqueue(D)},async cancel(){await q()},async flush(){await q()}}))}function q34({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new mE1);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}gE1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(Ug(J,lE1).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function zE(Y){let X=Y.pipeThrough(new TransformStream);return X[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(K){var W;if(J)return;J=!0;try{if(K)await((W=Q.cancel)==null?void 0:W.call(Q))}finally{try{Q.releaseLock()}catch(Z){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:K,value:W}=await Q.read();if(K)return await G(!0),{done:!0,value:void 0};return{done:!1,value:W}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(K){throw await G(!0),K}}},X}async function _Z0({stream:Y,onError:X}){let Q=Y.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){X==null||X(J)}finally{Q.releaseLock()}}function P21(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function z34(){let Y=[],X=null,Q=!1,J=P21(),G=()=>{Q=!0,J.resolve(),Y.forEach((W)=>W.cancel()),Y=[],X==null||X.close()},K=async()=>{if(Q&&Y.length===0){X==null||X.close();return}if(Y.length===0)return J=P21(),await J.promise,K();try{let{value:W,done:Z}=await Y[0].read();if(Z)if(Y.shift(),Y.length===0&&Q)X==null||X.close();else await K();else X==null||X.enqueue(W)}catch(W){X==null||X.error(W),Y.shift(),G()}};return{stream:new ReadableStream({start(W){X=W},pull:K,async cancel(){for(let W of Y)await W.cancel();Y=[],Q=!0}}),addStream:(W)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");Y.push(W.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),Y.length===0)X==null||X.close()},terminate:G}}function B34(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function U34({tools:Y,generatorStream:X,tracer:Q,telemetry:J,system:G,messages:K,abortSignal:W,repairToolCall:Z,experimental_context:H,generateId:F}){let $=null,V=new ReadableStream({start(P){$=P}}),q=new Set,B=new Map,D=new Map,O=!1,L=void 0;function w(){if(O&&q.size===0){if(L!=null)$.enqueue(L);$.close()}}let I=new TransformStream({async transform(P,T){let A=P.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(P);break}case"file":{T.enqueue({type:"file",file:new aH4({data:P.data,mediaType:P.mediaType})});break}case"finish":{L={type:"finish",finishReason:P.finishReason.unified,rawFinishReason:P.finishReason.raw,usage:RE1(P.usage),providerMetadata:P.providerMetadata};break}case"tool-approval-request":{let R=D.get(P.toolCallId);if(R==null){$.enqueue({type:"error",error:new jZ0({toolCallId:P.toolCallId,approvalId:P.approvalId})});break}T.enqueue({type:"tool-approval-request",approvalId:P.approvalId,toolCall:R});break}case"tool-call":{try{let R=await fE1({toolCall:P,tools:Y,repairToolCall:Z,system:G,messages:K});if(D.set(R.toolCallId,R),T.enqueue(R),R.invalid){$.enqueue({type:"tool-error",toolCallId:R.toolCallId,toolName:R.toolName,input:R.input,error:PO(R.error),dynamic:!0,title:R.title});break}let S=Y==null?void 0:Y[R.toolName];if(S==null)break;if(S.onInputAvailable!=null)await S.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await yE1({tool:S,toolCall:R,messages:K,experimental_context:H})){$.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(B.set(R.toolCallId,R.input),S.execute!=null&&R.providerExecuted!==!0){let k=F();q.add(k),vZ0({toolCall:R,tools:Y,tracer:Q,telemetry:J,messages:K,abortSignal:W,experimental_context:H,onPreliminaryToolResult:(y)=>{$.enqueue(y)}}).then((y)=>{$.enqueue(y)}).catch((y)=>{$.enqueue({type:"error",error:y})}).finally(()=>{q.delete(k),w()})}}catch(R){$.enqueue({type:"error",error:R})}break}case"tool-result":{let R=P.toolName;if(P.isError)$.enqueue({type:"tool-error",toolCallId:P.toolCallId,toolName:R,input:B.get(P.toolCallId),providerExecuted:!0,error:P.result,dynamic:P.dynamic});else T.enqueue({type:"tool-result",toolCallId:P.toolCallId,toolName:R,input:B.get(P.toolCallId),output:P.result,providerExecuted:!0,dynamic:P.dynamic});break}default:throw Error(`Unhandled chunk type: ${A}`)}},flush(){O=!0,w()}});return new ReadableStream({async start(P){return Promise.all([X.pipeThrough(I).pipeTo(new WritableStream({write(T){P.enqueue(T)},close(){}})),V.pipeTo(new WritableStream({write(T){P.enqueue(T)},close(){P.close()}}))])}})}function Dg({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=zg(1),experimental_output:V,output:q=V,experimental_telemetry:B,prepareStep:D,providerOptions:O,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:I,experimental_transform:P,experimental_download:T,includeRawChunks:A=!1,onChunk:R,onError:S=({error:Y0})=>{console.error(Y0)},onFinish:k,onAbort:y,onStepFinish:f,experimental_context:h,experimental_include:o,_internal:{now:u=B34,generateId:_=D34}={},...l}){let Y0=kZ0(H),s=qE1(H),W0=wH4(H),N0=s!=null?new AbortController:void 0,K0=W0!=null?new AbortController:void 0;return new N34({model:$g(Y),telemetry:B,headers:F,settings:l,maxRetries:W,abortSignal:uE1(Z,Y0!=null?AbortSignal.timeout(Y0):void 0,N0==null?void 0:N0.signal,K0==null?void 0:K0.signal),stepTimeoutMs:s,stepAbortController:N0,chunkTimeoutMs:W0,chunkAbortController:K0,system:J,prompt:G,messages:K,tools:X,toolChoice:Q,transforms:UE(P),activeTools:w,repairToolCall:I,stopConditions:UE($),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:S,onFinish:k,onAbort:y,onStepFinish:f,now:u,generateId:_,experimental_context:h,download:T,include:o})}function O34(Y){let X=void 0,Q="",J="",G=void 0,K="";function W({controller:Z,partialOutput:H=void 0}){Z.enqueue({part:{type:"text-delta",id:X,text:J,providerMetadata:G},partialOutput:H}),J=""}return new TransformStream({async transform(Z,H){var F;if(Z.type==="finish-step"&&J.length>0)W({controller:H});if(Z.type!=="text-delta"&&Z.type!=="text-start"&&Z.type!=="text-end"){H.enqueue({part:Z,partialOutput:void 0});return}if(X==null)X=Z.id;else if(Z.id!==X){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-start"){H.enqueue({part:Z,partialOutput:void 0});return}if(Z.type==="text-end"){if(J.length>0)W({controller:H});H.enqueue({part:Z,partialOutput:void 0});return}Q+=Z.text,J+=Z.text,G=(F=Z.providerMetadata)!=null?F:G;let $=await Y.parsePartialOutput({text:Q});if($!==void 0){let V=JSON.stringify($.partial);if(V!==K)W({controller:H,partialOutput:$.partial}),K=V}}})}async function pE1(Y,X){let Q=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Y=Y.map((J)=>({...J,parts:J.parts.filter((G)=>!BE(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of Y)switch(J.role){case"system":{let G=J.parts.filter((W)=>W.type==="text"),K=G.reduce((W,Z)=>{if(Z.providerMetadata!=null)return{...W,...Z.providerMetadata};return W},{});Q.push({role:"system",content:G.map((W)=>W.text).join(""),...Object.keys(K).length>0?{providerOptions:K}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var K;if(wZ0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(MZ0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(LZ0(G))return(K=X==null?void 0:X.convertDataPart)==null?void 0:K.call(X,G)}).filter(yP1)});break}case"assistant":{if(J.parts!=null){let G=[];async function K(){var W,Z,H,F,$,V;if(G.length===0)return;let q=[];for(let D of G)if(wZ0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(MZ0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(A21(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(BE(D)){let O=AZ0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:O,input:D.state==="output-error"?(W=D.input)!=null?W:("rawInput"in D)?D.rawInput:void 0:D.input,providerExecuted:D.providerExecuted,...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}}),D.approval!=null)q.push({type:"tool-approval-request",approvalId:D.approval.id,toolCallId:D.toolCallId});if(D.providerExecuted===!0&&D.state!=="approval-responded"&&(D.state==="output-available"||D.state==="output-error"))q.push({type:"tool-result",toolCallId:D.toolCallId,toolName:O,output:await Pq({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:(Z=X==null?void 0:X.tools)==null?void 0:Z[O],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(LZ0(D)){let O=(H=X==null?void 0:X.convertDataPart)==null?void 0:H.call(X,D);if(O!=null)q.push(O)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let B=G.filter((D)=>{var O;return BE(D)&&(D.providerExecuted!==!0||((O=D.approval)==null?void 0:O.approved)!=null)});if(B.length>0){let D=[];for(let O of B){if(((F=O.approval)==null?void 0:F.approved)!=null)D.push({type:"tool-approval-response",approvalId:O.approval.id,approved:O.approval.approved,reason:O.approval.reason,providerExecuted:O.providerExecuted});if(O.providerExecuted===!0)continue;switch(O.state){case"output-denied":{D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:AZ0(O),output:{type:"error-text",value:($=O.approval.reason)!=null?$:"Tool execution denied."},...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=AZ0(O);D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:L,output:await Pq({toolCallId:O.toolCallId,input:O.input,output:O.state==="output-error"?O.errorText:O.output,tool:(V=X==null?void 0:X.tools)==null?void 0:V[L],errorMode:O.state==="output-error"?"text":"none"}),...O.callProviderMetadata!=null?{providerOptions:O.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let W of J.parts)if(wZ0(W)||A21(W)||MZ0(W)||BE(W)||LZ0(W))G.push(W);else if(W.type==="step-start")await K();await K();break}break}default:{let G=J.role;throw new qH4({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function w34({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){try{if(Y==null)return{success:!1,error:new dG({parameter:"messages",value:Y,message:"messages parameter must be provided"})};let G=await CW({value:Y,schema:L34});if(X)for(let[K,W]of G.entries())await CW({value:W.metadata,schema:X,context:{field:`messages[${K}].metadata`,entityId:W.id}});if(Q||J)for(let[K,W]of G.entries())for(let[Z,H]of W.parts.entries()){if(Q&&H.type.startsWith("data-")){let F=H,$=F.type.slice(5),V=Q[$];if(!V)return{success:!1,error:new pQ({value:F.data,cause:`No data schema found for data part ${$}`,context:{field:`messages[${K}].parts[${Z}].data`,entityName:$,entityId:F.id}})};await CW({value:F.data,schema:V,context:{field:`messages[${K}].parts[${Z}].data`,entityName:$,entityId:F.id}})}if(J&&H.type.startsWith("tool-")){let F=H,$=F.type.slice(5),V=J[$];if(!V)return{success:!1,error:new pQ({value:F.input,cause:`No tool schema found for tool part ${$}`,context:{field:`messages[${K}].parts[${Z}].input`,entityName:$,entityId:F.toolCallId}})};if(F.state==="input-available"||F.state==="output-available"||F.state==="output-error"&&F.input!==void 0)await CW({value:F.input,schema:V.inputSchema,context:{field:`messages[${K}].parts[${Z}].input`,entityName:$,entityId:F.toolCallId}});if(F.state==="output-available"&&V.outputSchema)await CW({value:F.output,schema:V.outputSchema,context:{field:`messages[${K}].parts[${Z}].output`,entityName:$,entityId:F.toolCallId}})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function cE1({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){let G=await w34({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function nE1({messages:Y,reasoning:X="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(X==="all"||X==="before-last-message")Y=Y.map((G,K)=>{if(G.role!=="assistant"||typeof G.content==="string"||X==="before-last-message"&&K===Y.length-1)return G;return{...G,content:G.content.filter((W)=>W.type!=="reasoning")}});if(Q==="none")Q=[];else if(Q==="all")Q=[{type:"all"}];else if(Q==="before-last-message")Q=[{type:"before-last-message"}];else if(typeof Q==="string")Q=[{type:Q}];for(let G of Q){let K=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),W=new Set,Z=new Set;if(K!=null){for(let H of Y.slice(-K))if((H.role==="assistant"||H.role==="tool")&&typeof H.content!=="string"){for(let F of H.content)if(F.type==="tool-call"||F.type==="tool-result")W.add(F.toolCallId);else if(F.type==="tool-approval-request"||F.type==="tool-approval-response")Z.add(F.approvalId)}}Y=Y.map((H,F)=>{if(H.role!=="assistant"&&H.role!=="tool"||typeof H.content==="string"||K&&F>=Y.length-K)return H;let $={},V={};return{...H,content:H.content.filter((q)=>{if(q.type!=="tool-call"&&q.type!=="tool-result"&&q.type!=="tool-approval-request"&&q.type!=="tool-approval-response")return!0;if(q.type==="tool-call")$[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")V[q.approvalId]=$[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&W.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&Z.has(q.approvalId))return!0;return G.tools!=null&&!G.tools.includes(q.type==="tool-call"||q.type==="tool-result"?q.toolName:V[q.approvalId])})}})}if(J==="remove")Y=Y.filter((G)=>G.content.length>0);return Y}var TE1,RO,TK4,EK4=(Y,X)=>{for(var Q in X)TK4(Y,Q,{get:X[Q],enumerable:!0})},T21="AI_InvalidArgumentError",E21,CK4,C21,dG,IK4="AI_InvalidStreamPartError",RK4,jK4,SK4,I21="AI_InvalidToolApprovalError",R21,kK4,j21,vK4,S21="AI_InvalidToolInputError",k21,_K4,v21,RZ0,_21="AI_ToolCallNotFoundForApprovalError",y21,yK4,f21,jZ0,h21="AI_MissingToolResultsError",b21,fK4,x21,q21,hK4="AI_NoImageGeneratedError",bK4,xK4,uK4,u21="AI_NoObjectGeneratedError",g21,gK4,m21,i3,l21="AI_NoOutputGeneratedError",d21,mK4,p21,c21,lK4="AI_NoSpeechGeneratedError",dK4,pK4,cK4,nK4="AI_NoTranscriptGeneratedError",iK4,aK4,rK4,oK4="AI_NoVideoGeneratedError",sK4,tK4,eK4,n21="AI_NoSuchToolError",i21,YH4,a21,PZ0,r21="AI_ToolCallRepairError",o21,XH4,s21,QH4,JH4,t21="AI_UIMessageStreamError",e21,GH4,YE1,IO,WH4="AI_InvalidDataContentError",ZH4,KH4,HH4,XE1="AI_InvalidMessageRoleError",QE1,FH4,JE1,$H4,GE1="AI_MessageConversionError",WE1,VH4,ZE1,qH4,KE1="AI_RetryError",HE1,zH4,FE1,z21,UH4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",B21=!1,SZ0=(Y)=>{if(Y.warnings.length===0)return;let X=globalThis.AI_SDK_LOG_WARNINGS;if(X===!1)return;if(typeof X==="function"){X(Y);return}if(!B21)B21=!0,console.info(UH4);for(let Q of Y.warnings)console.warn(BH4({warning:Q,provider:Y.provider,model:Y.model}))},MH4,AH4=(Y)=>{let X=typeof Y==="string"?AO(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)},zE1="6.0.81",EH4=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:wK({},`ai-sdk/${zE1}`,Xg())});if(!J.ok)throw new Yg({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(X=J.headers.get("content-type"))!=null?X:void 0}}catch(J){if(Yg.isInstance(J))throw J;throw new Yg({url:Q,cause:J})}},CH4=(Y=EH4)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q))),BE1,DE,s1,NE1,_H4,LE1,yH4,fH4,hH4,wE1,bH4,xH4,uH4,gH4,mH4,lH4,dH4,pH4,Fg,cH4,iH4=({maxRetries:Y=2,initialDelayInMs:X=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>SE1(G,{maxRetries:Y,delayInMs:X,backoffFactor:Q,abortSignal:J}),_E1=class{constructor({data:Y,mediaType:X}){let Q=Y instanceof Uint8Array;this.base64Data=Q?void 0:Y,this.uint8ArrayData=Q?Y:void 0,this.mediaType=X}get base64(){if(this.base64Data==null)this.base64Data=LK(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=AO(this.base64Data);return this.uint8ArrayData}},aH4,rH4,Vg=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),sH4=({schema:Y,name:X,description:Q})=>{let J=EW(Y);return{name:"object",responseFormat:k9(J.jsonSchema).then((G)=>({type:"json",schema:G,...X!=null&&{name:X},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},K){let W=await cQ({text:G});if(!W.success)throw new i3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=await ZQ({value:W.value,schema:J});if(!Z.success)throw new i3({message:"No object generated: response did not match schema.",cause:Z.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});return Z.value},async parsePartialOutput({text:G}){let K=await LE(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:K.value}}},createElementStreamTransform(){return}}},tH4=({element:Y,name:X,description:Q})=>{let J=EW(Y);return{name:"array",responseFormat:k9(J.jsonSchema).then((G)=>{let{$schema:K,...W}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:W}},required:["elements"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},K){let W=await cQ({text:G});if(!W.success)throw new i3({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))throw new i3({message:"No object generated: response did not match schema.",cause:new pQ({value:Z,cause:"response must be an object with an elements array"}),text:G,response:K.response,usage:K.usage,finishReason:K.finishReason});for(let H of Z.elements){let F=await ZQ({value:H,schema:J});if(!F.success)throw new i3({message:"No object generated: response did not match schema.",cause:F.error,text:G,response:K.response,usage:K.usage,finishReason:K.finishReason})}return Z.elements},async parsePartialOutput({text:G}){let K=await LE(G);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=K.value;if(W==null||typeof W!=="object"||!("elements"in W)||!Array.isArray(W.elements))return;let Z=K.state==="repaired-parse"&&W.elements.length>0?W.elements.slice(0,-1):W.elements,H=[];for(let F of Z){let $=await ZQ({value:F,schema:J});if($.success)H.push($.value)}return{partial:H}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:K},W){if(K!=null)for(;G<K.length;G++)W.enqueue(K[G])}})}}},eH4=({options:Y,name:X,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let K=await cQ({text:J});if(!K.success)throw new i3({message:"No object generated: could not parse the response.",cause:K.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let W=K.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new i3({message:"No object generated: response did not match schema.",cause:new pQ({value:W,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return W.result},async parsePartialOutput({text:J}){let G=await LE(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let K=G.value;if(K==null||typeof K!=="object"||!("result"in K)||typeof K.result!=="string")return;let W=Y.filter((Z)=>Z.startsWith(K.result));if(G.state==="successful-parse")return W.includes(K.result)?{partial:K.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},Y34=({name:Y,description:X}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...X!=null&&{description:X}}),async parseCompleteOutput({text:Q},J){let G=await cQ({text:Q});if(!G.success)throw new i3({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await LE(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},bE1=class{constructor({content:Y,finishReason:X,rawFinishReason:Q,usage:J,warnings:G,request:K,response:W,providerMetadata:Z}){this.content=Y,this.finishReason=X,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=K,this.response=W,this.providerMetadata=Z}get text(){return this.content.filter((Y)=>Y.type==="text").map((Y)=>Y.text).join("")}get reasoning(){return this.content.filter((Y)=>Y.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((Y)=>Y.text).join("")}get files(){return this.content.filter((Y)=>Y.type==="file").map((Y)=>Y.file)}get sources(){return this.content.filter((Y)=>Y.type==="source")}get toolCalls(){return this.content.filter((Y)=>Y.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((Y)=>Y.dynamic===!0)}get toolResults(){return this.content.filter((Y)=>Y.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((Y)=>Y.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((Y)=>Y.dynamic===!0)}},X34,Q34=class{constructor(Y){this.steps=Y.steps,this._output=Y.output,this.totalUsage=Y.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new c21;return this._output}},mE1,lE1,yI8,D34,N34=class{constructor({model:Y,telemetry:X,headers:Q,settings:J,maxRetries:G,abortSignal:K,stepTimeoutMs:W,stepAbortController:Z,chunkTimeoutMs:H,chunkAbortController:F,system:$,prompt:V,messages:q,tools:B,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:P,providerOptions:T,prepareStep:A,includeRawChunks:R,now:S,generateId:k,onChunk:y,onError:f,onFinish:h,onAbort:o,onStepFinish:u,experimental_context:_,download:l,include:Y0}){this._totalUsage=new Lq,this._finishReason=new Lq,this._rawFinishReason=new Lq,this._steps=new Lq,this.outputSpecification=P,this.includeRawChunks=R,this.tools=B;let s,W0=[],N0=[],K0=void 0,L0=void 0,E0=void 0,x0={},O1=[],U0=[],Z0=new Map,k0,y1={},_1={},l0=new TransformStream({async transform(x1,W6){var O6,_0,C0,K1;W6.enqueue(x1);let{part:r0}=x1;if(r0.type==="text-delta"||r0.type==="reasoning-delta"||r0.type==="source"||r0.type==="tool-call"||r0.type==="tool-result"||r0.type==="tool-input-start"||r0.type==="tool-input-delta"||r0.type==="raw")await(y==null?void 0:y({chunk:r0}));if(r0.type==="error")await f({error:AE1(r0.error)});if(r0.type==="text-start")y1[r0.id]={type:"text",text:"",providerMetadata:r0.providerMetadata},W0.push(y1[r0.id]);if(r0.type==="text-delta"){let V6=y1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`text part ${r0.id} not found`},partialOutput:void 0});return}V6.text+=r0.text,V6.providerMetadata=(O6=r0.providerMetadata)!=null?O6:V6.providerMetadata}if(r0.type==="text-end"){let V6=y1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`text part ${r0.id} not found`},partialOutput:void 0});return}V6.providerMetadata=(_0=r0.providerMetadata)!=null?_0:V6.providerMetadata,delete y1[r0.id]}if(r0.type==="reasoning-start")_1[r0.id]={type:"reasoning",text:"",providerMetadata:r0.providerMetadata},W0.push(_1[r0.id]);if(r0.type==="reasoning-delta"){let V6=_1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`reasoning part ${r0.id} not found`},partialOutput:void 0});return}V6.text+=r0.text,V6.providerMetadata=(C0=r0.providerMetadata)!=null?C0:V6.providerMetadata}if(r0.type==="reasoning-end"){let V6=_1[r0.id];if(V6==null){W6.enqueue({part:{type:"error",error:`reasoning part ${r0.id} not found`},partialOutput:void 0});return}V6.providerMetadata=(K1=r0.providerMetadata)!=null?K1:V6.providerMetadata,delete _1[r0.id]}if(r0.type==="file")W0.push({type:"file",file:r0.file});if(r0.type==="source")W0.push(r0);if(r0.type==="tool-call")W0.push(r0);if(r0.type==="tool-result"&&!r0.preliminary)W0.push(r0);if(r0.type==="tool-approval-request")W0.push(r0);if(r0.type==="tool-error")W0.push(r0);if(r0.type==="start-step")W0=[],_1={},y1={},x0=r0.request,O1=r0.warnings;if(r0.type==="finish-step"){let V6=await EZ0({content:W0,tools:B}),z6=new bE1({content:W0,finishReason:r0.finishReason,rawFinishReason:r0.rawFinishReason,usage:r0.usage,warnings:O1,request:x0,response:{...r0.response,messages:[...N0,...V6]},providerMetadata:r0.providerMetadata});await(u==null?void 0:u(z6)),SZ0({warnings:O1,provider:Y.provider,model:Y.modelId}),U0.push(z6),N0.push(...V6),s.resolve()}if(r0.type==="finish")E0=r0.totalUsage,K0=r0.finishReason,L0=r0.rawFinishReason},async flush(x1){try{if(U0.length===0){let C0=(K==null?void 0:K.aborted)?K.reason:new c21({message:"No output generated. Check the stream for errors."});m1._finishReason.reject(C0),m1._rawFinishReason.reject(C0),m1._totalUsage.reject(C0),m1._steps.reject(C0);return}let W6=K0!=null?K0:"other",O6=E0!=null?E0:NZ0();m1._finishReason.resolve(W6),m1._rawFinishReason.resolve(L0),m1._totalUsage.resolve(O6),m1._steps.resolve(U0);let _0=U0[U0.length-1];await(h==null?void 0:h({finishReason:_0.finishReason,rawFinishReason:_0.rawFinishReason,totalUsage:O6,usage:_0.usage,content:_0.content,text:_0.text,reasoningText:_0.reasoningText,reasoning:_0.reasoning,files:_0.files,sources:_0.sources,toolCalls:_0.toolCalls,staticToolCalls:_0.staticToolCalls,dynamicToolCalls:_0.dynamicToolCalls,toolResults:_0.toolResults,staticToolResults:_0.staticToolResults,dynamicToolResults:_0.dynamicToolResults,request:_0.request,response:_0.response,warnings:_0.warnings,providerMetadata:_0.providerMetadata,steps:U0,experimental_context:_})),k0.setAttributes(await IW({telemetry:X,attributes:{"ai.response.finishReason":W6,"ai.response.text":{output:()=>_0.text},"ai.response.reasoning":{output:()=>_0.reasoningText},"ai.response.toolCalls":{output:()=>{var C0;return((C0=_0.toolCalls)==null?void 0:C0.length)?JSON.stringify(_0.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(_0.providerMetadata),"ai.usage.inputTokens":O6.inputTokens,"ai.usage.outputTokens":O6.outputTokens,"ai.usage.totalTokens":O6.totalTokens,"ai.usage.reasoningTokens":O6.reasoningTokens,"ai.usage.cachedInputTokens":O6.cachedInputTokens}}))}catch(W6){x1.error(W6)}finally{k0.end()}}}),w0=z34();this.addStream=w0.addStream,this.closeStream=w0.close;let V0=w0.stream.getReader(),R0=new ReadableStream({async start(x1){x1.enqueue({type:"start"})},async pull(x1){function W6(){o==null||o({steps:U0}),x1.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:bG(K.reason)}:{}}),x1.close()}try{let{done:O6,value:_0}=await V0.read();if(O6){x1.close();return}if(K==null?void 0:K.aborted){W6();return}x1.enqueue(_0)}catch(O6){if(OK(O6)&&(K==null?void 0:K.aborted))W6();else x1.error(O6)}},cancel(x1){return w0.stream.cancel(x1)}});for(let x1 of O)R0=R0.pipeThrough(x1({tools:B,stopStream(){w0.terminate()}}));this.baseStream=R0.pipeThrough(O34(P!=null?P:Vg())).pipeThrough(l0);let{maxRetries:q0,retry:M0}=kE1({maxRetries:G,abortSignal:K}),H1=EE1(X),v0=TZ0(J),u0=PE1({model:Y,telemetry:X,headers:Q,settings:{...v0,maxRetries:q0}}),m1=this;NE({name:"ai.streamText",attributes:IW({telemetry:X,attributes:{...OE({operationId:"ai.streamText",telemetry:X}),...u0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:V,messages:q})}}}),tracer:H1,endWhenDone:!1,fn:async(x1)=>{k0=x1;let W6=await ME1({system:$,prompt:V,messages:q}),O6=W6.messages,_0=[],{approvedToolApprovals:C0,deniedToolApprovals:K1}=vE1({messages:O6});if(K1.length>0||C0.length>0){let V6=[...C0,...K1].filter((v)=>v.toolCall.providerExecuted),z6=C0.filter((v)=>!v.toolCall.providerExecuted),c1=K1.filter((v)=>!v.toolCall.providerExecuted),t1=K1.filter((v)=>v.toolCall.providerExecuted),h6,N=new ReadableStream({start(v){h6=v}});m1.addStream(N);try{for(let t of[...c1,...t1])h6==null||h6.enqueue({type:"tool-output-denied",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName});let v=[];if(await Promise.all(z6.map(async(t)=>{let Q0=await vZ0({toolCall:t.toolCall,tools:B,tracer:H1,telemetry:X,messages:O6,abortSignal:K,experimental_context:_,onPreliminaryToolResult:(U)=>{h6==null||h6.enqueue(U)}});if(Q0!=null)h6==null||h6.enqueue(Q0),v.push(Q0)})),V6.length>0)_0.push({role:"tool",content:V6.map((t)=>({type:"tool-approval-response",approvalId:t.approvalResponse.approvalId,approved:t.approvalResponse.approved,reason:t.approvalResponse.reason,providerExecuted:!0}))});if(v.length>0||c1.length>0){let t=[];for(let Q0 of v)t.push({type:"tool-result",toolCallId:Q0.toolCallId,toolName:Q0.toolName,output:await Pq({toolCallId:Q0.toolCallId,input:Q0.input,tool:B==null?void 0:B[Q0.toolName],output:Q0.type==="tool-result"?Q0.output:Q0.error,errorMode:Q0.type==="tool-error"?"json":"none"})});for(let Q0 of c1)t.push({type:"tool-result",toolCallId:Q0.toolCall.toolCallId,toolName:Q0.toolCall.toolName,output:{type:"execution-denied",reason:Q0.approvalResponse.reason}});_0.push({role:"tool",content:t})}}finally{h6==null||h6.close()}}N0.push(..._0);async function r0({currentStep:V6,responseMessages:z6,usage:c1}){var t1,h6,N,v,t,Q0,U;let C=m1.includeRawChunks,c=W!=null?setTimeout(()=>Z.abort(),W):void 0,X0=void 0;function G0(){if(H!=null){if(X0!=null)clearTimeout(X0);X0=setTimeout(()=>F.abort(),H)}}function a(){if(X0!=null)clearTimeout(X0),X0=void 0}function h0(){if(c!=null)clearTimeout(c)}try{s=new Lq;let I1=[...O6,...z6],S1=await(A==null?void 0:A({model:Y,steps:U0,stepNumber:U0.length,messages:I1,experimental_context:_})),T0=$g((t1=S1==null?void 0:S1.model)!=null?t1:Y),T1=await DE1({prompt:{system:(h6=S1==null?void 0:S1.system)!=null?h6:W6.system,messages:(N=S1==null?void 0:S1.messages)!=null?N:I1},supportedUrls:await T0.supportedUrls,download:l}),{toolChoice:D8,tools:m8}=await OE1({tools:B,toolChoice:(v=S1==null?void 0:S1.toolChoice)!=null?v:D,activeTools:(t=S1==null?void 0:S1.activeTools)!=null?t:L});_=(Q0=S1==null?void 0:S1.experimental_context)!=null?Q0:_;let l6=qg(T,S1==null?void 0:S1.providerOptions),{result:{stream:MX,response:SW,request:h5},doStreamSpan:e0,startTimestampMs:E6}=await M0(()=>NE({name:"ai.streamText.doStream",attributes:IW({telemetry:X,attributes:{...OE({operationId:"ai.streamText.doStream",telemetry:X}),...u0,"ai.model.provider":T0.provider,"ai.model.id":T0.modelId,"ai.prompt.messages":{input:()=>IE1(T1)},"ai.prompt.tools":{input:()=>m8==null?void 0:m8.map((e1)=>JSON.stringify(e1))},"ai.prompt.toolChoice":{input:()=>D8!=null?JSON.stringify(D8):void 0},"gen_ai.system":T0.provider,"gen_ai.request.model":T0.modelId,"gen_ai.request.frequency_penalty":v0.frequencyPenalty,"gen_ai.request.max_tokens":v0.maxOutputTokens,"gen_ai.request.presence_penalty":v0.presencePenalty,"gen_ai.request.stop_sequences":v0.stopSequences,"gen_ai.request.temperature":v0.temperature,"gen_ai.request.top_k":v0.topK,"gen_ai.request.top_p":v0.topP}}),tracer:H1,endWhenDone:!1,fn:async(e1)=>({startTimestampMs:S(),doStreamSpan:e1,result:await T0.doStream({...v0,tools:m8,toolChoice:D8,responseFormat:await(P==null?void 0:P.responseFormat),prompt:T1,providerOptions:l6,abortSignal:K,headers:Q,includeRawChunks:C})})})),w9=U34({tools:B,generatorStream:MX,tracer:H1,telemetry:X,system:$,messages:I1,repairToolCall:w,abortSignal:K,experimental_context:_,generateId:k}),l4=((U=Y0==null?void 0:Y0.requestBody)!=null?U:!0)?h5!=null?h5:{}:{...h5,body:void 0},o0=[],L6=[],p9,RJ={},TK="other",Ag=void 0,b5=NZ0(),Pg,oZ0=!0,pG={id:k(),timestamp:new Date,modelId:Y.modelId},sZ0="";m1.addStream(w9.pipeThrough(new TransformStream({async transform(e1,MY){var _O,yO,AE,a8,cG;if(G0(),e1.type==="stream-start"){p9=e1.warnings;return}if(oZ0){let M9=S()-E6;oZ0=!1,e0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":M9}),e0.setAttributes({"ai.response.msToFirstChunk":M9}),MY.enqueue({type:"start-step",request:l4,warnings:p9!=null?p9:[]})}let Tg=e1.type;switch(Tg){case"tool-approval-request":case"text-start":case"text-end":{MY.enqueue(e1);break}case"text-delta":{if(e1.delta.length>0)MY.enqueue({type:"text-delta",id:e1.id,text:e1.delta,providerMetadata:e1.providerMetadata}),sZ0+=e1.delta;break}case"reasoning-start":case"reasoning-end":{MY.enqueue(e1);break}case"reasoning-delta":{MY.enqueue({type:"reasoning-delta",id:e1.id,text:e1.delta,providerMetadata:e1.providerMetadata});break}case"tool-call":{MY.enqueue(e1),o0.push(e1);break}case"tool-result":{if(MY.enqueue(e1),!e1.preliminary)L6.push(e1);break}case"tool-error":{MY.enqueue(e1),L6.push(e1);break}case"response-metadata":{pG={id:(_O=e1.id)!=null?_O:pG.id,timestamp:(yO=e1.timestamp)!=null?yO:pG.timestamp,modelId:(AE=e1.modelId)!=null?AE:pG.modelId};break}case"finish":{b5=e1.usage,TK=e1.finishReason,Ag=e1.rawFinishReason,Pg=e1.providerMetadata;let M9=S()-E6;e0.addEvent("ai.stream.finish"),e0.setAttributes({"ai.response.msToFinish":M9,"ai.response.avgOutputTokensPerSecond":1000*((a8=b5.outputTokens)!=null?a8:0)/M9});break}case"file":{MY.enqueue(e1);break}case"source":{MY.enqueue(e1);break}case"tool-input-start":{RJ[e1.id]=e1.toolName;let M9=B==null?void 0:B[e1.toolName];if((M9==null?void 0:M9.onInputStart)!=null)await M9.onInputStart({toolCallId:e1.id,messages:I1,abortSignal:K,experimental_context:_});MY.enqueue({...e1,dynamic:(cG=e1.dynamic)!=null?cG:(M9==null?void 0:M9.type)==="dynamic",title:M9==null?void 0:M9.title});break}case"tool-input-end":{delete RJ[e1.id],MY.enqueue(e1);break}case"tool-input-delta":{let M9=RJ[e1.id],Eg=B==null?void 0:B[M9];if((Eg==null?void 0:Eg.onInputDelta)!=null)await Eg.onInputDelta({inputTextDelta:e1.delta,toolCallId:e1.id,messages:I1,abortSignal:K,experimental_context:_});MY.enqueue(e1);break}case"error":{MY.enqueue(e1),TK="error";break}case"raw":{if(C)MY.enqueue(e1);break}default:throw Error(`Unknown chunk type: ${Tg}`)}},async flush(e1){let MY=o0.length>0?JSON.stringify(o0):void 0;try{e0.setAttributes(await IW({telemetry:X,attributes:{"ai.response.finishReason":TK,"ai.response.text":{output:()=>sZ0},"ai.response.reasoning":{output:()=>{let a8=W0.filter((cG)=>cG.type==="reasoning");return a8.length>0?a8.map((cG)=>cG.text).join(`
|
|
1269
1269
|
`):void 0}},"ai.response.toolCalls":{output:()=>MY},"ai.response.id":pG.id,"ai.response.model":pG.modelId,"ai.response.timestamp":pG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Pg),"ai.usage.inputTokens":b5.inputTokens,"ai.usage.outputTokens":b5.outputTokens,"ai.usage.totalTokens":b5.totalTokens,"ai.usage.reasoningTokens":b5.reasoningTokens,"ai.usage.cachedInputTokens":b5.cachedInputTokens,"gen_ai.response.finish_reasons":[TK],"gen_ai.response.id":pG.id,"gen_ai.response.model":pG.modelId,"gen_ai.usage.input_tokens":b5.inputTokens,"gen_ai.usage.output_tokens":b5.outputTokens}}))}catch(a8){}finally{e0.end()}e1.enqueue({type:"finish-step",finishReason:TK,rawFinishReason:Ag,usage:b5,providerMetadata:Pg,response:{...pG,headers:SW==null?void 0:SW.headers}});let _O=jE1(c1,b5);await s.promise;let yO=o0.filter((a8)=>a8.providerExecuted!==!0),AE=L6.filter((a8)=>a8.providerExecuted!==!0);for(let a8 of o0){if(a8.providerExecuted!==!0)continue;let cG=B==null?void 0:B[a8.toolName];if((cG==null?void 0:cG.type)==="provider"&&cG.supportsDeferredResults){if(!L6.some((M9)=>(M9.type==="tool-result"||M9.type==="tool-error")&&M9.toolCallId===a8.toolCallId))Z0.set(a8.toolCallId,{toolName:a8.toolName})}}for(let a8 of L6)if(a8.type==="tool-result"||a8.type==="tool-error")Z0.delete(a8.toolCallId);if(h0(),a(),(yO.length>0&&AE.length===yO.length||Z0.size>0)&&!await xE1({stopConditions:I,steps:U0})){z6.push(...await EZ0({content:U0[U0.length-1].content,tools:B}));try{await r0({currentStep:V6+1,responseMessages:z6,usage:_O})}catch(a8){e1.enqueue({type:"error",error:a8}),m1.closeStream()}}else e1.enqueue({type:"finish",finishReason:TK,rawFinishReason:Ag,totalUsage:_O}),m1.closeStream()}})))}finally{h0(),a()}}await r0({currentStep:0,responseMessages:_0,usage:NZ0()})}}).catch((x1)=>{m1.addStream(new ReadableStream({start(W6){W6.enqueue({type:"error",error:x1}),W6.close()}})),m1.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((Y)=>Y[Y.length-1])}get content(){return this.finalStep.then((Y)=>Y.content)}get warnings(){return this.finalStep.then((Y)=>Y.warnings)}get providerMetadata(){return this.finalStep.then((Y)=>Y.providerMetadata)}get text(){return this.finalStep.then((Y)=>Y.text)}get reasoningText(){return this.finalStep.then((Y)=>Y.reasoningText)}get reasoning(){return this.finalStep.then((Y)=>Y.reasoning)}get sources(){return this.finalStep.then((Y)=>Y.sources)}get files(){return this.finalStep.then((Y)=>Y.files)}get toolCalls(){return this.finalStep.then((Y)=>Y.toolCalls)}get staticToolCalls(){return this.finalStep.then((Y)=>Y.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((Y)=>Y.dynamicToolCalls)}get toolResults(){return this.finalStep.then((Y)=>Y.toolResults)}get staticToolResults(){return this.finalStep.then((Y)=>Y.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((Y)=>Y.dynamicToolResults)}get usage(){return this.finalStep.then((Y)=>Y.usage)}get request(){return this.finalStep.then((Y)=>Y.request)}get response(){return this.finalStep.then((Y)=>Y.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[Y,X]=this.baseStream.tee();return this.baseStream=X,Y}get textStream(){return zE(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){if(Y.type==="text-delta")X.enqueue(Y.text)}})))}get fullStream(){return zE(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){X.enqueue(Y)}})))}async consumeStream(Y){var X;try{await _Z0({stream:this.fullStream,onError:Y==null?void 0:Y.onError})}catch(Q){(X=Y==null?void 0:Y.onError)==null||X.call(Y,Q)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return zE(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:Y},X){if(Y!=null)X.enqueue(Y)}})))}get elementStream(){var Y,X,Q;let J=(Y=this.outputSpecification)==null?void 0:Y.createElementStreamTransform();if(J==null)throw new AP1({functionality:`element streams in ${(Q=(X=this.outputSpecification)==null?void 0:X.name)!=null?Q:"text"} mode`});return zE(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((Y)=>{var X;return((X=this.outputSpecification)!=null?X:Vg()).parseCompleteOutput({text:Y.text},{response:Y.response,usage:Y.usage,finishReason:Y.finishReason})})}toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G=!0,sendSources:K=!1,sendStart:W=!0,sendFinish:Z=!0,onError:H=bG}={}){let F=X!=null?K34({originalMessages:Y,responseMessageId:X}):void 0,$=(q)=>{var B;let D=(B=this.tools)==null?void 0:B[q.toolName];if(D==null)return q.dynamic;return(D==null?void 0:D.type)==="dynamic"?!0:void 0},V=this.fullStream.pipeThrough(new TransformStream({transform:async(q,B)=>{let D=J==null?void 0:J({part:q}),O=q.type;switch(O){case"text-start":{B.enqueue({type:"text-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-delta":{B.enqueue({type:"text-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-end":{B.enqueue({type:"text-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-start":{B.enqueue({type:"reasoning-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-delta":{if(G)B.enqueue({type:"reasoning-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-end":{B.enqueue({type:"reasoning-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"file":{B.enqueue({type:"file",mediaType:q.file.mediaType,url:`data:${q.file.mediaType};base64,${q.file.base64}`});break}case"source":{if(K&&q.sourceType==="url")B.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(K&&q.sourceType==="document")B.enqueue({type:"source-document",sourceId:q.id,mediaType:q.mediaType,title:q.title,filename:q.filename,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"tool-input-start":{let L=$(q);B.enqueue({type:"tool-input-start",toolCallId:q.id,toolName:q.toolName,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-input-delta":{B.enqueue({type:"tool-input-delta",toolCallId:q.id,inputTextDelta:q.delta});break}case"tool-call":{let L=$(q);if(q.invalid)B.enqueue({type:"tool-input-error",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},errorText:H(q.error),...q.title!=null?{title:q.title}:{}});else B.enqueue({type:"tool-input-available",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{},...L!=null?{dynamic:L}:{},...q.title!=null?{title:q.title}:{}});break}case"tool-approval-request":{B.enqueue({type:"tool-approval-request",approvalId:q.approvalId,toolCallId:q.toolCall.toolCallId});break}case"tool-result":{let L=$(q);B.enqueue({type:"tool-output-available",toolCallId:q.toolCallId,output:q.output,...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...q.preliminary!=null?{preliminary:q.preliminary}:{},...L!=null?{dynamic:L}:{}});break}case"tool-error":{let L=$(q);B.enqueue({type:"tool-output-error",toolCallId:q.toolCallId,errorText:H(q.error),...q.providerExecuted!=null?{providerExecuted:q.providerExecuted}:{},...L!=null?{dynamic:L}:{}});break}case"tool-output-denied":{B.enqueue({type:"tool-output-denied",toolCallId:q.toolCallId});break}case"error":{B.enqueue({type:"error",errorText:H(q.error)});break}case"start-step":{B.enqueue({type:"start-step"});break}case"finish-step":{B.enqueue({type:"finish-step"});break}case"start":{if(W)B.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...F!=null?{messageId:F}:{}});break}case"finish":{if(Z)B.enqueue({type:"finish",finishReason:q.finishReason,...D!=null?{messageMetadata:D}:{}});break}case"abort":{B.enqueue(q);break}case"tool-input-end":break;case"raw":break;default:throw Error(`Unknown chunk type: ${O}`)}if(D!=null&&O!=="start"&&O!=="finish")B.enqueue({type:"message-metadata",messageMetadata:D})}}));return zE(V34({stream:V,messageId:F!=null?F:X==null?void 0:X(),originalMessages:Y,onFinish:Q,onError:H}))}pipeUIMessageStreamToResponse(Y,{originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F,...$}={}){q34({response:Y,stream:this.toUIMessageStream({originalMessages:X,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:K,sendSources:W,sendFinish:Z,sendStart:H,onError:F}),...$})}pipeTextStreamToResponse(Y,X){W34({response:Y,textStream:this.textStream,...X})}toUIMessageStreamResponse({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H,...F}={}){return Z34({stream:this.toUIMessageStream({originalMessages:Y,generateMessageId:X,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:K,sendFinish:W,sendStart:Z,onError:H}),...F})}toTextStreamResponse(Y){return G34({textStream:this.textStream,...Y})}},L34,mI8,dI8,M34="AI_NoSuchProviderError",A34,P34,T34;var jO=j(()=>{i6();i6();A4();A4();A4();A4();A4();A4();A4();A4();A4();A4();A4();A4();A4();A4();OZ0();i6();i6();i6();i6();A4();i6();a6();A4();i6();A4();i6();a6();a6();a6();a6();a6();OZ0();A4();A4();i6();i6();i6();A4();i6();i6();i6();A4();i6();i6();a6();i6();i6();i6();A4();i6();a6();i6();i6();TE1=d6(d0(),1),RO=d6(d0(),1),TK4=Object.defineProperty,E21=`vercel.ai.error.${T21}`,CK4=Symbol.for(E21),dG=class extends M1{constructor({parameter:Y,value:X,message:Q}){super({name:T21,message:`Invalid argument for parameter ${Y}: ${Q}`});this[C21]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return M1.hasMarker(Y,E21)}};C21=CK4;RK4=`vercel.ai.error.${IK4}`,jK4=Symbol.for(RK4);SK4=jK4;R21=`vercel.ai.error.${I21}`,kK4=Symbol.for(R21),vK4=class extends M1{constructor({approvalId:Y}){super({name:I21,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[j21]=!0,this.approvalId=Y}static isInstance(Y){return M1.hasMarker(Y,R21)}};j21=kK4;k21=`vercel.ai.error.${S21}`,_K4=Symbol.for(k21),RZ0=class extends M1{constructor({toolInput:Y,toolName:X,cause:Q,message:J=`Invalid input for tool ${X}: ${bG(Q)}`}){super({name:S21,message:J,cause:Q});this[v21]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return M1.hasMarker(Y,k21)}};v21=_K4;y21=`vercel.ai.error.${_21}`,yK4=Symbol.for(y21),jZ0=class extends M1{constructor({toolCallId:Y,approvalId:X}){super({name:_21,message:`Tool call "${Y}" not found for approval request "${X}".`});this[f21]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return M1.hasMarker(Y,y21)}};f21=yK4;b21=`vercel.ai.error.${h21}`,fK4=Symbol.for(b21),q21=class extends M1{constructor({toolCallIds:Y}){super({name:h21,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[x21]=!0,this.toolCallIds=Y}static isInstance(Y){return M1.hasMarker(Y,b21)}};x21=fK4;bK4=`vercel.ai.error.${hK4}`,xK4=Symbol.for(bK4);uK4=xK4;g21=`vercel.ai.error.${u21}`,gK4=Symbol.for(g21),i3=class extends M1{constructor({message:Y="No object generated.",cause:X,text:Q,response:J,usage:G,finishReason:K}){super({name:u21,message:Y,cause:X});this[m21]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=K}static isInstance(Y){return M1.hasMarker(Y,g21)}};m21=gK4;d21=`vercel.ai.error.${l21}`,mK4=Symbol.for(d21),c21=class extends M1{constructor({message:Y="No output generated.",cause:X}={}){super({name:l21,message:Y,cause:X});this[p21]=!0}static isInstance(Y){return M1.hasMarker(Y,d21)}};p21=mK4;dK4=`vercel.ai.error.${lK4}`,pK4=Symbol.for(dK4);cK4=pK4;iK4=`vercel.ai.error.${nK4}`,aK4=Symbol.for(iK4);rK4=aK4;sK4=`vercel.ai.error.${oK4}`,tK4=Symbol.for(sK4);eK4=tK4;i21=`vercel.ai.error.${n21}`,YH4=Symbol.for(i21),PZ0=class extends M1{constructor({toolName:Y,availableTools:X=void 0,message:Q=`Model tried to call unavailable tool '${Y}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:n21,message:Q});this[a21]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return M1.hasMarker(Y,i21)}};a21=YH4;o21=`vercel.ai.error.${r21}`,XH4=Symbol.for(o21),QH4=class extends M1{constructor({cause:Y,originalError:X,message:Q=`Error repairing tool call: ${bG(Y)}`}){super({name:r21,message:Q,cause:Y});this[s21]=!0,this.originalError=X}static isInstance(Y){return M1.hasMarker(Y,o21)}};s21=XH4;JH4=class extends M1{constructor(Y){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${Y.version} for provider "${Y.provider}" and model "${Y.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=Y.version,this.provider=Y.provider,this.modelId=Y.modelId}},e21=`vercel.ai.error.${t21}`,GH4=Symbol.for(e21),IO=class extends M1{constructor({chunkType:Y,chunkId:X,message:Q}){super({name:t21,message:Q});this[YE1]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return M1.hasMarker(Y,e21)}};YE1=GH4;ZH4=`vercel.ai.error.${WH4}`,KH4=Symbol.for(ZH4);HH4=KH4;QE1=`vercel.ai.error.${XE1}`,FH4=Symbol.for(QE1),$H4=class extends M1{constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:XE1,message:X});this[JE1]=!0,this.role=Y}static isInstance(Y){return M1.hasMarker(Y,QE1)}};JE1=FH4;WE1=`vercel.ai.error.${GE1}`,VH4=Symbol.for(WE1),qH4=class extends M1{constructor({originalMessage:Y,message:X}){super({name:GE1,message:X});this[ZE1]=!0,this.originalMessage=Y}static isInstance(Y){return M1.hasMarker(Y,WE1)}};ZE1=VH4;HE1=`vercel.ai.error.${KE1}`,zH4=Symbol.for(HE1),z21=class extends M1{constructor({message:Y,reason:X,errors:Q}){super({name:KE1,message:Y});this[FE1]=!0,this.reason=X,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(Y){return M1.hasMarker(Y,HE1)}};FE1=zH4;MH4=[{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]}];BE1=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom((Y)=>{var X,Q;return(Q=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?Q:!1},{message:"Must be a Buffer"})]);DE=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),DE.optional()),z.array(DE)])),s1=z.record(z.string(),z.record(z.string(),DE.optional())),NE1=z.object({type:z.literal("text"),text:z.string(),providerOptions:s1.optional()}),_H4=z.object({type:z.literal("image"),image:z.union([BE1,z.instanceof(URL)]),mediaType:z.string().optional(),providerOptions:s1.optional()}),LE1=z.object({type:z.literal("file"),data:z.union([BE1,z.instanceof(URL)]),filename:z.string().optional(),mediaType:z.string(),providerOptions:s1.optional()}),yH4=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:s1.optional()}),fH4=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:s1.optional(),providerExecuted:z.boolean().optional()}),hH4=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("json"),value:DE,providerOptions:s1.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:s1.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("error-json"),value:DE,providerOptions:s1.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("media"),data:z.string(),mediaType:z.string()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:s1.optional()}),z.object({type:z.literal("file-url"),url:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:s1.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:s1.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:s1.optional()}),z.object({type:z.literal("custom"),providerOptions:s1.optional()})]))})]),wE1=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:hH4,providerOptions:s1.optional()}),bH4=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string()}),xH4=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),uH4=z.object({role:z.literal("system"),content:z.string(),providerOptions:s1.optional()}),gH4=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([NE1,_H4,LE1]))]),providerOptions:s1.optional()}),mH4=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([NE1,LE1,yH4,fH4,wE1,bH4]))]),providerOptions:s1.optional()}),lH4=z.object({role:z.literal("tool"),content:z.array(z.union([wE1,xH4])),providerOptions:s1.optional()}),dH4=z.union([uH4,gH4,mH4,lH4]);pH4={startSpan(){return Fg},startActiveSpan(Y,X,Q,J){if(typeof X==="function")return X(Fg);if(typeof Q==="function")return Q(Fg);if(typeof J==="function")return J(Fg)}},Fg={spanContext(){return cH4},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}},cH4={traceId:"",spanId:"",traceFlags:0};aH4=class extends _E1{constructor(Y){super(Y);this.type="file"}};rH4={};EK4(rH4,{array:()=>tH4,choice:()=>eH4,json:()=>Y34,object:()=>sH4,text:()=>Vg});X34=TW({prefix:"aitxt",size:24});mE1=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
1270
1270
|
|
|
1271
1271
|
`)},flush(Y){Y.enqueue(`data: [DONE]
|