@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.
Files changed (154) hide show
  1. package/dist/client/assets/{AlertCircle-D3KDB3IA.js → AlertCircle-CtPpC9oJ.js} +1 -1
  2. package/dist/client/assets/{ArrowUp-3aAOnqRg.js → ArrowUp-CA8UDrfz.js} +1 -1
  3. package/dist/client/assets/{Calendar-BBdpCud_.js → Calendar-DAdOn9ua.js} +1 -1
  4. package/dist/client/assets/{Check-DDCtzM6Q.js → Check-DV18uyCH.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-79X8LGfp.js → CheckCircle-DVOoxneM.js} +1 -1
  6. package/dist/client/assets/{CheckDone01-CQ4X60Dx.js → CheckDone01-DJo7aefF.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-SBTaDy9t.js → ChevronDown-chI9ygNN.js} +1 -1
  8. package/dist/client/assets/{ChevronRight--SfBuQ6E.js → ChevronRight-CB340hEM.js} +1 -1
  9. package/dist/client/assets/{Code01-DjtWhPZC.js → Code01-CQm5gaxD.js} +1 -1
  10. package/dist/client/assets/{Copy01-BSA43WMM.js → Copy01-D92JBNrr.js} +1 -1
  11. package/dist/client/assets/{DotsHorizontal-B5RKGUR7.js → DotsHorizontal-BMV21-p8.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-Cd8cYkR4.js → DotsVertical-7rEb7kkS.js} +1 -1
  13. package/dist/client/assets/{Download01-FxIredOf.js → Download01-DZw1ZV-P.js} +1 -1
  14. package/dist/client/assets/{Edit01-B5nyemfE.js → Edit01-Bz0rTH0G.js} +1 -1
  15. package/dist/client/assets/{File02-DA2x6ZM6.js → File02-DJ--0YIi.js} +1 -1
  16. package/dist/client/assets/{File06-Dk4vC3hU.js → File06-C7MXSBG7.js} +1 -1
  17. package/dist/client/assets/{FilterLines-DjOqiBJz.js → FilterLines-BQPG8gUH.js} +1 -1
  18. package/dist/client/assets/{Globe02-dRiPkeKW.js → Globe02-C_Brg8n4.js} +1 -1
  19. package/dist/client/assets/{Grid01-B4G9OfC4.js → Grid01-OeezW3lf.js} +1 -1
  20. package/dist/client/assets/{Home02-BHKRAEAu.js → Home02-CiAoUJCW.js} +1 -1
  21. package/dist/client/assets/{Image01-2WD6KqwM.js → Image01-3Ev_m9e4.js} +1 -1
  22. package/dist/client/assets/{Inbox01-C7RwTkoq.js → Inbox01-BFg8Kpze.js} +1 -1
  23. package/dist/client/assets/{InfoCircle-TiqDenvc.js → InfoCircle-BQTtj9Lu.js} +1 -1
  24. package/dist/client/assets/{LinkExternal01-x3gXIh53.js → LinkExternal01-BzBL3QFQ.js} +1 -1
  25. package/dist/client/assets/{List-8EK4DbDa.js → List-DdAc5rQI.js} +1 -1
  26. package/dist/client/assets/{Loading01-CJAWJaxG.js → Loading01-fu2UwFjW.js} +1 -1
  27. package/dist/client/assets/{Lock01-BjFkdlhS.js → Lock01-CgX3Rm-F.js} +1 -1
  28. package/dist/client/assets/{Pin01-cDub6-ui.js → Pin01-Ce-ttPXI.js} +1 -1
  29. package/dist/client/assets/{Play-DFjE4pw4.js → Play-C6e6Tl3o.js} +1 -1
  30. package/dist/client/assets/{Plus-BUcm60bY.js → Plus-BzwS2uDL.js} +1 -1
  31. package/dist/client/assets/{RefreshCcw01-Cqf7w1A_.js → RefreshCcw01-Dhm-K7iO.js} +1 -1
  32. package/dist/client/assets/{SearchMd-DZftd0rG.js → SearchMd-jR4b2EL-.js} +1 -1
  33. package/dist/client/assets/{Settings01-BV96W3K6.js → Settings01-DNDgTyWY.js} +1 -1
  34. package/dist/client/assets/{Settings02-BSUzKPrW.js → Settings02-Cy2fGx6z.js} +1 -1
  35. package/dist/client/assets/{Share07-zbtOVHUV.js → Share07-B52v8g9u.js} +1 -1
  36. package/dist/client/assets/{Terminal-CSvhqBGB.js → Terminal-BTyUr8GR.js} +1 -1
  37. package/dist/client/assets/{Tool01-R1tL1Bnd.js → Tool01-Bk8TA_Uq.js} +1 -1
  38. package/dist/client/assets/{Trash01-ayUasD9O.js → Trash01-Bp3NiJll.js} +1 -1
  39. package/dist/client/assets/{Upload01-BashLf0-.js → Upload01-Bn3IXmrl.js} +1 -1
  40. package/dist/client/assets/{Users03-0nIh3Dmg.js → Users03-CFgTNgZk.js} +1 -1
  41. package/dist/client/assets/{X-BuzeH_Ys.js → X-BSTgQFsI.js} +1 -1
  42. package/dist/client/assets/{XClose-wa7qhUC2.js → XClose-DuIJbs14.js} +1 -1
  43. package/dist/client/assets/{agent-connections-preview-2q-Vv44D.js → agent-connections-preview-T4UOmgpU.js} +1 -1
  44. package/dist/client/assets/{agent-detail-2ytsz5ES.js → agent-detail-B1IhpFnP.js} +1 -1
  45. package/dist/client/assets/{agents-BOQt3EER.js → agents-D7BrCZPP.js} +1 -1
  46. package/dist/client/assets/{alert-dialog-Dozrlcm_.js → alert-dialog-S-joXgd4.js} +1 -1
  47. package/dist/client/assets/{auth-catchall-CkqPuCp2.js → auth-catchall-BkeBiPq2.js} +1 -1
  48. package/dist/client/assets/{avatar-CODuQ7wd.js → avatar-Bil6JAQg.js} +1 -1
  49. package/dist/client/assets/{badge-CBPiZjKH.js → badge-BpndODj5.js} +1 -1
  50. package/dist/client/assets/{binder-CMhpk7ub.js → binder-Dpol6G6A.js} +1 -1
  51. package/dist/client/assets/{breadcrumb-DxXS9FOV.js → breadcrumb-DRtoOyeX.js} +1 -1
  52. package/dist/client/assets/{button-BENLxTt6.js → button-Ch5u7eRH.js} +1 -1
  53. package/dist/client/assets/{card-DkcolAVH.js → card-BqZhR_AW.js} +1 -1
  54. package/dist/client/assets/{checkbox-cKpxYYrb.js → checkbox-CuKjdsq2.js} +1 -1
  55. package/dist/client/assets/{circle-alert-B6brOILB.js → circle-alert-CgKaVRDw.js} +1 -1
  56. package/dist/client/assets/{collection-detail-CAtk6NAX.js → collection-detail-CqV95I9_.js} +1 -1
  57. package/dist/client/assets/{collection-search-r4Iw28Tm.js → collection-search-_0tF8io7.js} +1 -1
  58. package/dist/client/assets/{collection-tab-BYjOSxk-.js → collection-tab-au6sJ7Km.js} +1 -1
  59. package/dist/client/assets/{collection-table-wrapper-g3QYov-u.js → collection-table-wrapper-VMN2cytB.js} +1 -1
  60. package/dist/client/assets/{collection-tabs-fNhO9GT7.js → collection-tabs-DGa30AlC.js} +1 -1
  61. package/dist/client/assets/{command-BKB4MrJQ.js → command-B2fcZygr.js} +1 -1
  62. package/dist/client/assets/{connect-DYc_gyWw.js → connect-pQUjHkbG.js} +1 -1
  63. package/dist/client/assets/{connection-card-DEFXimFX.js → connection-card-COn2s7U7.js} +1 -1
  64. package/dist/client/assets/{connection-detail-CvldKioB.js → connection-detail-DyDeJqsF.js} +1 -1
  65. package/dist/client/assets/{connections-BZpjI1Nt.js → connections-CxrJXX7p.js} +1 -1
  66. package/dist/client/assets/constants-BB3Jk5Dy.js +1 -0
  67. package/dist/client/assets/{constants-CyHzmdsR.js → constants-DzTrRG8y.js} +1 -1
  68. package/dist/client/assets/{create-organization-dialog-CzJOBrOl.js → create-organization-dialog-hmjQ-94k.js} +1 -1
  69. package/dist/client/assets/{create-project-dialog-BSIrIXxq.js → create-project-dialog-CKFc_6nV.js} +1 -1
  70. package/dist/client/assets/{dialog-xIqrrw1k.js → dialog-DwZbI-ZP.js} +1 -1
  71. package/dist/client/assets/{dropdown-menu-CdsuXytO.js → dropdown-menu-B1Sxz2ho.js} +1 -1
  72. package/dist/client/assets/{dynamic-plugin-layout-D2FjOsz_.js → dynamic-plugin-layout-BjD1bnWU.js} +1 -1
  73. package/dist/client/assets/{empty-state-CEqegtKr.js → empty-state-DAlz4ear.js} +1 -1
  74. package/dist/client/assets/{empty-state-CsMNFf2A.js → empty-state-rUpeLcXi.js} +1 -1
  75. package/dist/client/assets/{env-vars-editor-Bxq-afSh.js → env-vars-editor-CGE526Ih.js} +1 -1
  76. package/dist/client/assets/{error-boundary-Nf2CtbS6.js → error-boundary-BoIW4kUF.js} +1 -1
  77. package/dist/client/assets/{extract-connection-data-C2jhq8EX.js → extract-connection-data-BgGlgCP4.js} +1 -1
  78. package/dist/client/assets/{file-browser-D4P0OdDw.js → file-browser-HOAh5EYy.js} +2 -2
  79. package/dist/client/assets/{form-DnmMdQrj.js → form-D716Innf.js} +1 -1
  80. package/dist/client/assets/{grid-view-CoSLyQLn.js → grid-view-CcMdOys8.js} +1 -1
  81. package/dist/client/assets/{home-DoLTW53v.js → home-B8n0u1hb.js} +1 -1
  82. package/dist/client/assets/{index-BPEvdlWI.js → index-Bx4F-Qdw.js} +1 -1
  83. package/dist/client/assets/{index-CaiLEv_9.js → index-CZitZKra.js} +1 -1
  84. package/dist/client/assets/{index-CDo7YvLh.js → index-CmttBqa4.js} +1 -1
  85. package/dist/client/assets/{index-C_bldAJS.js → index-CrB2W5cn.js} +1 -1
  86. package/dist/client/assets/{index-RNBGcrtT.js → index-DS-lPaEH.js} +1 -1
  87. package/dist/client/assets/{index-fbicbDgU.js → index-DY0sYZIb.js} +1 -1
  88. package/dist/client/assets/{index-DQ9TOjsi.js → index-DhGwYl2I.js} +2 -2
  89. package/dist/client/assets/{index-icASHgYU.js → index-DlNYPxtl.js} +1 -1
  90. package/dist/client/assets/{index-A80QwZTd.js → index-aGc3cjDR.js} +1 -1
  91. package/dist/client/assets/{infiniteQueryObserver-BsFCOv8W.js → infiniteQueryObserver-P5QH7JcL.js} +1 -1
  92. package/dist/client/assets/{input-BIL-SExV.js → input-DubEBJCo.js} +1 -1
  93. package/dist/client/assets/{integration-icon-FtYhgNKh.js → integration-icon-BVbVV44M.js} +1 -1
  94. package/dist/client/assets/{label-D0auY2sQ.js → label-PvsfzVsc.js} +1 -1
  95. package/dist/client/assets/{layout-2aG_RWhC.js → layout-DXnqLpsb.js} +1 -1
  96. package/dist/client/assets/{localstorage-keys-BE-3e1FV.js → localstorage-keys-D1TIK9yX.js} +1 -1
  97. package/dist/client/assets/{login-CxdL1FAe.js → login-M5CZ12pY.js} +1 -1
  98. package/dist/client/assets/{mcp-oauth-CmQaUsni.js → mcp-oauth-CoQ7EUp8.js} +1 -1
  99. package/dist/client/assets/{mcp-server-card-CjUi-ujO.js → mcp-server-card-DDmoytaW.js} +1 -1
  100. package/dist/client/assets/{mcp-server-detail-DJkCOqkB.js → mcp-server-detail-CrfO2Bgg.js} +2 -2
  101. package/dist/client/assets/{members-DORByuvn.js → members-BfPmdU8z.js} +1 -1
  102. package/dist/client/assets/{monaco-editor-_5dDXxkD.js → monaco-editor-C5NReNB4.js} +1 -1
  103. package/dist/client/assets/{monitoring-BMMeBiqJ.js → monitoring-B9ywR55c.js} +1 -1
  104. package/dist/client/assets/{oauth-callback-CravOpS3.js → oauth-callback-Ddy8TQPV.js} +1 -1
  105. package/dist/client/assets/{page-jKoS4SxK.js → page-6Ag0-i_C.js} +1 -1
  106. package/dist/client/assets/{page-BCwWDmou.js → page-lVUkYimj.js} +1 -1
  107. package/dist/client/assets/{plugin-empty-state-BPiMrlyQ.js → plugin-empty-state-C0lIEopI.js} +1 -1
  108. package/dist/client/assets/{plugin-header-659f7GxU.js → plugin-header-DWY_K3QL.js} +1 -1
  109. package/dist/client/assets/{popover-CfGRS0cW.js → popover-D1j3DNg2.js} +1 -1
  110. package/dist/client/assets/{project-layout-D-SjsOBw.js → project-layout-BbuqVwLw.js} +1 -1
  111. package/dist/client/assets/{project-settings-yZDxK7lp.js → project-settings-DUzdivtT.js} +1 -1
  112. package/dist/client/assets/{projects-list-DRgR5yeA.js → projects-list-dYIShmBn.js} +1 -1
  113. package/dist/client/assets/{registry-utils-B4sygtBA.js → registry-utils-DYLA2GAG.js} +1 -1
  114. package/dist/client/assets/{resizable-DI-Suit4.js → resizable-Bqmb9uTu.js} +1 -1
  115. package/dist/client/assets/{select-BqfLrW4j.js → select-DVuYJCXR.js} +1 -1
  116. package/dist/client/assets/shell-layout-BwXP9h9b.js +12 -0
  117. package/dist/client/assets/{spinner-B6kkRxZ1.js → spinner-to9-HjF2.js} +1 -1
  118. package/dist/client/assets/{store-invite-BuYr-V_q.js → store-invite-BuIWWDk9.js} +1 -1
  119. package/dist/client/assets/{switch-Vy1LOfjy.js → switch-BTkAX0MY.js} +1 -1
  120. package/dist/client/assets/{table-Cp3wDHvL.js → table-DFBNpg6g.js} +1 -1
  121. package/dist/client/assets/{tasks-Wx_mgsd7.js → tasks-BTVpnuUj.js} +1 -1
  122. package/dist/client/assets/{textarea-Cz5doER1.js → textarea-YgG_nDLT.js} +1 -1
  123. package/dist/client/assets/{tools-list-DlaoFt8L.js → tools-list-B1NbbdcF.js} +1 -1
  124. package/dist/client/assets/{topbar-portal-CHBG2h8g.js → topbar-portal-CI5v_Db_.js} +1 -1
  125. package/dist/client/assets/{typewriter-title-BBlbeBEA.js → typewriter-title-CcsTk-FV.js} +1 -1
  126. package/dist/client/assets/{use-binding-Dr0O-jnm.js → use-binding-BUud5X_9.js} +1 -1
  127. package/dist/client/assets/{use-connection-EDeK5Svd.js → use-connection-BNzIomSU.js} +1 -1
  128. package/dist/client/assets/{use-create-virtual-mcp-99ACH3DH.js → use-create-virtual-mcp-Dl7pNYUh.js} +1 -1
  129. package/dist/client/assets/{use-deco-chat-open-DeWYX57x.js → use-deco-chat-open-CgqT5zU8.js} +2 -2
  130. package/dist/client/assets/{use-install-from-registry-OTkyDAEF.js → use-install-from-registry-B06N2OVp.js} +1 -1
  131. package/dist/client/assets/{use-list-state-CoHPwr3M.js → use-list-state-BlenLNMo.js} +1 -1
  132. package/dist/client/assets/{use-llm-jfUM8DGq.js → use-llm-CxWRBkRU.js} +1 -1
  133. package/dist/client/assets/{use-mcp-prompts-O2DarmsN.js → use-mcp-prompts-BbWrI2Kz.js} +1 -1
  134. package/dist/client/assets/{use-mcp-tools-CLb1GouZ.js → use-mcp-tools-CU86yk0M.js} +1 -1
  135. package/dist/client/assets/{use-mobile-CsekvTUr.js → use-mobile-CXHjsd0Z.js} +1 -1
  136. package/dist/client/assets/{use-organization-settings-DXrVDIU7.js → use-organization-settings-vNapJjmq.js} +1 -1
  137. package/dist/client/assets/{use-project-6LlQxxph.js → use-project-D8b3OuY_.js} +1 -1
  138. package/dist/client/assets/{use-virtual-mcp-BSj9UgeS.js → use-virtual-mcp-Cc8gGP0Z.js} +1 -1
  139. package/dist/client/assets/useInfiniteQuery-Dba6X6L3.js +1 -0
  140. package/dist/client/assets/{useMutation-BsQPbdYX.js → useMutation-C-Auzg0E.js} +1 -1
  141. package/dist/client/assets/useQuery-CtZFUsAH.js +1 -0
  142. package/dist/client/assets/utils-Bh97AhNq.js +1 -0
  143. package/dist/client/assets/{view-mode-toggle-D0YAiOPf.js → view-mode-toggle-DQMstpVb.js} +1 -1
  144. package/dist/client/assets/{workflow-DcXyyOJb.js → workflow-Bj5TO8Jq.js} +1 -1
  145. package/dist/client/index.html +1 -1
  146. package/dist/server/cli.js +4 -4
  147. package/dist/server/migrate.js +1 -1
  148. package/dist/server/server.js +4 -4
  149. package/package.json +1 -1
  150. package/dist/client/assets/constants-qizKrs2K.js +0 -1
  151. package/dist/client/assets/shell-layout-Db9ulLGU.js +0 -12
  152. package/dist/client/assets/useInfiniteQuery-CjTCzZMC.js +0 -1
  153. package/dist/client/assets/useQuery-KPhLL-WX.js +0 -1
  154. package/dist/client/assets/utils-Dm1G0W2O.js +0 -1
@@ -1036,7 +1036,7 @@ ${X.stack}`;return G}}catch{}if(typeof X.toString==="function")try{let G=X.toStr
1036
1036
  const args = ${JSON.stringify(X)};
1037
1037
  return await __virtualToolFn(tools, args);
1038
1038
  };
1039
- `,F=await Q2({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 KO1(Y)}async close(){let Y=await this._clients;if(Y)await KO1(Y);await super.close()}getInstructions(){return this.options.virtualMcp.metadata?.instructions??void 0}}});var HO1,O94,FO1,N94,v2;var e50=v(()=>{h0();rV();t50();HO1=B.object({query:B.string().min(1).describe("Search query to find tools by name or description"),limit:B.number().default(10).describe("Maximum number of results to return")}),O94=B.toJSONSchema(HO1),FO1=B.object({tools:B.array(B.string()).min(1).describe("Array of tool names to get detailed schemas for")}),N94=B.toJSONSchema(FO1);v2=class v2 extends JO{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:O94}}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:N94}}async handleSearch(Y){let X=HO1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,J=oZ(Q.data),G=ix(X.data.query,J,X.data.limit);return J2({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=FO1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,J=oZ(Q.data),G=ax(X.data.tools,J);return J2({tools:G.tools,notFound:G.notFound})}async listTools(){let Y=await this._cachedTools,X=oZ(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 JO.prototype.callTool.call(this,Y)}}});var $O1,L94,YG0;var VO1=v(()=>{h0();rV();e50();$O1=B.object({code:B.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:B.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),L94=B.toJSONSchema($O1);YG0=class YG0 extends v2{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:L94}}async handleRunCode(Y){let X=$O1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,G={tools:oZ(Q.data),callTool:async(W,Z)=>{return this.routeToolCall({name:W,arguments:Z})}},K=await rx(X.data.code,G,X.data.timeoutMs);if(K.error)return v3(K);return J2(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 BO1(Y){let X=Y.slice().sort().join(","),Q=qO1.get(X);if(!Q){let J=B.object({name:(Y.length>0?B.enum(Y):B.string()).describe("The name of the tool to execute"),arguments:B.record(B.string(),B.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:B.toJSONSchema(J)},qO1.set(X,Q)}return Q}var qO1,XG0;var zO1=v(()=>{h0();rV();e50();qO1=new Map;XG0=class XG0 extends v2{constructor(Y,X){super(Y,X)}async getCallTool(){let Y=await this._cachedTools,Q=oZ(Y.data).map((G)=>G.name),{jsonSchema:J}=BO1(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=oZ(X.data),J=Q.map((F)=>F.name),{schema:G}=BO1(J),K=G.safeParse(Y);if(!K.success)return v3({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 QG0(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}function w94(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;if(!X||ZZ(X))return!1;return Y.id===X}async function UO1(Y,X){let Q=Y.id,J=await X.storage.virtualMcps.findById(Q);if(!J)throw Error(`Virtual MCP not found: ${Q}`);return _2(J,X,"passthrough")}async function _2(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(y3($))Z.push($)}let F={connections:W.filter(($)=>$!==null&&$.status==="active"&&!w94($,Y.id)),virtualMcp:Y,virtualTools:Z.length>0?Z:void 0};return Q==="smart_tool_selection"?new XG0(F,X):Q==="code_execution"?new YG0(F,X):new JO(F,X)}var Fu=v(()=>{YX();QK();VO1();t50();zO1()});async function XQ(Y,X,Q=!1){if(Y.connection_type==="VIRTUAL")return UO1(Y,X);return XO1(Y,X,Q)}var JG0=v(()=>{QO1();Fu()});async function GG0(Y,X,Q){let J=await XQ(Y,X,Q),G=k$(J,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:M94,instructions:J.getInstructions()});return G.server.setRequestHandler(BH,async()=>{return await J.listResources().catch(sV({resources:[]}))}),G.server.setRequestHandler(zH,async()=>{return await J.listResourceTemplates().catch(sV({resourceTemplates:[]}))}),G.server.setRequestHandler(UH,async()=>{return await J.listPrompts().catch(sV({prompts:[]}))}),G}var M94;var DO1=v(()=>{YX();v9();JG0();s50();M94={tools:{},resources:{},prompts:{}}});function WG0(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 A94(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 XK(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 y2(Y,X,Q,J,G){let K=async(Z,H)=>{if(Q.connection_type==="VIRTUAL"){let z=await Y.callTool({name:Z,arguments:H});return new Response(JSON.stringify(z),{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 A94(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 tD1({ctx:J,enabled:zx().enabled,connectionId:X,connectionTitle:Q.title,virtualMcpId:V})($,async()=>{let z=await I2(Q,J,G.superUser),D=Q.connection_headers;if(D&&"headers"in D)Object.assign(z,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:{...z,"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 OO1=v(()=>{l50();S2();kT();r50()});var NO1=v(()=>{OO1()});var GO=v(()=>{JG0();DO1();NO1()});async function E94(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=uD1(K),Z=Zu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=gD1(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 P94,T94,ZG0;var LO1=v(()=>{g50();GO();Ku();h0();k1();xx();nZ();P94=B.object({id:B.string().describe("ID of the connection to update"),data:XA.describe("Partial connection data to update")}),T94=B.object({item:yX.describe("The updated connection entity")});ZG0=y0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:P94,outputSchema:T94,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(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=j$(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=S$(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 E94(F,$,Q.id,X)}let V=K.connection_token??W.connection_token;if(!V)try{let w=await new YK(X.db,X.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await cD({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),z=q?.length?q:null,D={...K,connection_url:H,tools:z,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 XQ(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 KG0;var wO1=v(()=>{j5();k1();nZ();KG0=y0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:H2,outputSchema:F2(yX),handler:async(Y,X)=>{u0(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 HG0;var MO1=v(()=>{h0();k1();HG0=y0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:B.object({id:B.string()}),outputSchema:B.object({id:B.string(),healthy:B.boolean(),latencyMs:B.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 AO1=v(()=>{ZD1();bD1();xD1();LO1();wO1();MO1()});import{sql as H4}from"kysely";function PO1(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 R94(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,PO1(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=PO1(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function TO1(Y){return Y.replace(/-/g,"_")}function S94(Y){return`app_${TO1(Y)}`}function k94(Y){return`app_role_${TO1(Y)}`}function v94(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 _94(Y,X,Q){if(await H4`CREATE SCHEMA IF NOT EXISTS ${H4.id(X)}`.execute(Y),!(await H4`
1039
+ `,F=await Q2({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 KO1(Y)}async close(){let Y=await this._clients;if(Y)await KO1(Y);await super.close()}getInstructions(){return this.options.virtualMcp.metadata?.instructions??void 0}}});var HO1,O94,FO1,N94,v2;var e50=v(()=>{h0();rV();t50();HO1=B.object({query:B.string().min(1).describe("Search query to find tools by name or description"),limit:B.number().default(10).describe("Maximum number of results to return")}),O94=B.toJSONSchema(HO1),FO1=B.object({tools:B.array(B.string()).min(1).describe("Array of tool names to get detailed schemas for")}),N94=B.toJSONSchema(FO1);v2=class v2 extends JO{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:O94}}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:N94}}async handleSearch(Y){let X=HO1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,J=oZ(Q.data),G=ix(X.data.query,J,X.data.limit);return J2({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=FO1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,J=oZ(Q.data),G=ax(X.data.tools,J);return J2({tools:G.tools,notFound:G.notFound})}async listTools(){let Y=await this._cachedTools,X=oZ(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 JO.prototype.callTool.call(this,Y)}}});var $O1,L94,YG0;var VO1=v(()=>{h0();rV();e50();$O1=B.object({code:B.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:B.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),L94=B.toJSONSchema($O1);YG0=class YG0 extends v2{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:L94}}async handleRunCode(Y){let X=$O1.safeParse(Y);if(!X.success)return v3({error:X.error.flatten()});let Q=await this._cachedTools,G={tools:oZ(Q.data),callTool:async(W,Z)=>{return this.routeToolCall({name:W,arguments:Z})}},K=await rx(X.data.code,G,X.data.timeoutMs);if(K.error)return v3(K);return J2(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 BO1(Y){let X=Y.slice().sort().join(","),Q=qO1.get(X);if(!Q){let J=B.object({name:(Y.length>0?B.enum(Y):B.string()).describe("The name of the tool to execute"),arguments:B.record(B.string(),B.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:B.toJSONSchema(J)},qO1.set(X,Q)}return Q}var qO1,XG0;var zO1=v(()=>{h0();rV();e50();qO1=new Map;XG0=class XG0 extends v2{constructor(Y,X){super(Y,X)}async getCallTool(){let Y=await this._cachedTools,Q=oZ(Y.data).map((G)=>G.name),{jsonSchema:J}=BO1(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=oZ(X.data),J=Q.map((F)=>F.name),{schema:G}=BO1(J),K=G.safeParse(Y);if(!K.success)return v3({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 QG0(Y){switch(Y){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}function w94(Y,X){if(Y.connection_type!=="VIRTUAL")return!1;if(!X||ZZ(X))return!1;return Y.id===X}async function UO1(Y,X){let Q=Y.id,J=await X.storage.virtualMcps.findById(Q);if(!J)throw Error(`Virtual MCP not found: ${Q}`);return _2(J,X,"passthrough")}async function _2(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(y3($))Z.push($)}let F={connections:W.filter(($)=>$!==null&&$.status==="active"&&!w94($,Y.id)),virtualMcp:Y,virtualTools:Z.length>0?Z:void 0};return Q==="smart_tool_selection"?new XG0(F,X):Q==="code_execution"?new YG0(F,X):new JO(F,X)}var Fu=v(()=>{YX();QK();VO1();t50();zO1()});async function XQ(Y,X,Q=!1){if(Y.connection_type==="VIRTUAL")return UO1(Y,X);return XO1(Y,X,Q)}var JG0=v(()=>{QO1();Fu()});async function GG0(Y,X,Q){let J=await XQ(Y,X,Q),G=k$(J,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:M94,instructions:J.getInstructions()});return G.server.setRequestHandler(BH,async()=>{return await J.listResources().catch(sV({resources:[]}))}),G.server.setRequestHandler(zH,async()=>{return await J.listResourceTemplates().catch(sV({resourceTemplates:[]}))}),G.server.setRequestHandler(UH,async()=>{return await J.listPrompts().catch(sV({prompts:[]}))}),G}var M94;var DO1=v(()=>{YX();v9();JG0();s50();M94={tools:{},resources:{},prompts:{}}});function WG0(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 A94(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 XK(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 y2(Y,X,Q,J,G){let K=async(Z,H)=>{if(Q.connection_type==="VIRTUAL"){let z=await Y.callTool({name:Z,arguments:H});return new Response(JSON.stringify(z),{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 A94(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 tD1({ctx:J,enabled:zx().enabled,connectionId:X,connectionTitle:Q.title,virtualMcpId:V})($,async()=>{let z=await I2(Q,J,G.superUser),D=Q.connection_headers;if(D&&"headers"in D)Object.assign(z,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:{...z,"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 OO1=v(()=>{l50();S2();kT();r50()});var NO1=v(()=>{OO1()});var GO=v(()=>{JG0();DO1();NO1()});async function E94(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=uD1(K),Z=Zu(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=gD1(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 P94,T94,ZG0;var LO1=v(()=>{g50();GO();Ku();h0();k1();xx();nZ();P94=B.object({id:B.string().describe("ID of the connection to update"),data:XA.describe("Partial connection data to update")}),T94=B.object({item:yX.describe("The updated connection entity")});ZG0=y0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:P94,outputSchema:T94,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(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=j$(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=S$(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 E94(F,$,Q.id,X)}let V=K.connection_token??W.connection_token;if(!V)try{let w=await new YK(X.db,X.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await cD({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),z=q?.length?q:null,D={...K,connection_url:H,tools:z,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 XQ(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 KG0;var wO1=v(()=>{j5();k1();nZ();KG0=y0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:H2,outputSchema:F2(yX),handler:async(Y,X)=>{u0(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 HG0;var MO1=v(()=>{h0();k1();HG0=y0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:B.object({id:B.string()}),outputSchema:B.object({id:B.string(),healthy:B.boolean(),latencyMs:B.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 AO1=v(()=>{ZD1();bD1();xD1();LO1();wO1();MO1()});import{sql as H4}from"kysely";function PO1(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 R94(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,PO1(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=PO1(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function TO1(Y){return Y.replace(/-/g,"_")}function S94(Y){return`app_${TO1(Y)}`}function k94(Y){return`app_role_${TO1(Y)}`}function v94(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 _94(Y,X,Q){if(await H4`CREATE SCHEMA IF NOT EXISTS ${H4.id(X)}`.execute(Y),!(await H4`
1040
1040
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
1041
1041
  `.execute(Y)).rows[0]?.exists)await H4`CREATE ROLE ${H4.id(Q)} NOLOGIN`.execute(Y);await H4`GRANT ${H4.id(Q)} TO CURRENT_USER`.execute(Y),await H4`GRANT USAGE, CREATE ON SCHEMA ${H4.id(X)} TO ${H4.id(Q)}`.execute(Y),await H4`GRANT ALL ON ALL TABLES IN SCHEMA ${H4.id(X)} TO ${H4.id(Q)}`.execute(Y),await H4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${H4.id(X)} TO ${H4.id(Q)}`.execute(Y),await H4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${H4.id(X)} GRANT ALL ON TABLES TO ${H4.id(Q)}`.execute(Y),await H4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${H4.id(X)} GRANT ALL ON SEQUENCES TO ${H4.id(Q)}`.execute(Y),await H4`REVOKE ALL ON SCHEMA public FROM ${H4.id(Q)}`.execute(Y)}async function y94(Y,X,Q,J){try{return await Y.transaction().execute(async(G)=>{return await H4`SET LOCAL ROLE ${H4.id(Q)}`.execute(G),await H4`SET LOCAL search_path TO ${H4.id(X)}`.execute(G),await H4.raw(J).execute(G)})}catch(G){if(v94(G))return await _94(Y,X,Q),await Y.transaction().execute(async(K)=>{return await H4`SET LOCAL ROLE ${H4.id(Q)}`.execute(K),await H4`SET LOCAL search_path TO ${H4.id(X)}`.execute(K),await H4.raw(J).execute(K)});throw G}}var I94,j94,EO1;var CO1=v(()=>{h0();k1();I94=B.object({results:B.array(B.unknown()).optional(),success:B.boolean().optional()});j94=B.object({sql:B.string().describe("The SQL query to run"),params:B.array(B.any()).describe("The parameters to pass to the SQL query").optional()});EO1=y0({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:j94,outputSchema:B.object({result:B.array(I94)}),handler:async(Y,X)=>{u0(X),await X.access.check();let Q=R94(Y.sql,Y.params||[]);if(!X.connectionId)throw Error("Connection context required for database access");let J=S94(X.connectionId),G=k94(X.connectionId);return{result:[{results:(await y94(X.db,J,G,Q)).rows,success:!0}]}}})});var IO1,h94,RO1;var JK=v(()=>{h0();Xu();IO1=B.object({connectionId:B.string().optional().describe("Filter subscriptions by connection ID (optional)")}),h94=B.object({id:B.string().describe("Subscription ID"),connectionId:B.string().describe("Subscriber connection ID"),eventType:B.string().describe("Event type pattern"),publisher:B.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:B.string().nullable().describe("JSONPath filter expression"),enabled:B.boolean().describe("Whether subscription is enabled"),createdAt:B.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:B.string().datetime().describe("Updated timestamp (ISO 8601)")}),RO1=B.object({subscriptions:B.array(h94).describe("List of subscriptions")})});var FG0;var jO1=v(()=>{k1();JK();FG0=y0({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:$2,outputSchema:V2,handler:async(Y,X)=>{u0(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 $G0;var SO1=v(()=>{k1();JK();$G0=y0({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:q2,outputSchema:B2,handler:async(Y,X)=>{u0(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 VG0;var kO1=v(()=>{k1();JK();VG0=y0({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:D2,outputSchema:O2,handler:async(Y,X)=>{u0(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 qG0;var vO1=v(()=>{k1();JK();qG0=y0({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:N2,outputSchema:L2,handler:async(Y,X)=>{u0(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 BG0;var _O1=v(()=>{k1();JK();BG0=y0({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:w2,outputSchema:M2,handler:async(Y,X)=>{u0(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 zG0;var yO1=v(()=>{k1();JK();zG0=y0({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:IO1,outputSchema:RO1,handler:async(Y,X)=>{u0(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 UG0;var fO1=v(()=>{k1();JK();UG0=y0({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:z2,outputSchema:U2,handler:async(Y,X)=>{u0(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 hO1=v(()=>{jO1();SO1();kO1();vO1();_O1();yO1();fO1();JK()});var WO=v(()=>{o_()});var x94,u94,DG0;var bO1=v(()=>{h0();k1();WO();x94=B.object({data:JA.describe("Data for the new virtual MCP")}),u94=B.object({item:QJ.describe("The created virtual MCP entity")}),DG0=y0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:x94,outputSchema:u94,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(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 g94(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 f3(Y){return typeof Y==="string"||typeof Y==="number"}function OG0(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 m94(Y,X){return Y.connections.some((Q)=>Q.connection_id===X)}function $u(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>$u(Y,F));case"or":return H.some((F)=>$u(Y,F));case"not":return!H.every((F)=>$u(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 m94(Y,G)}let W=OG0(Y,K);switch(J){case"eq":return W===G;case"gt":return f3(W)&&f3(G)&&W>G;case"gte":return f3(W)&&f3(G)&&W>=G;case"lt":return f3(W)&&f3(G)&&W<G;case"lte":return f3(W)&&f3(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=g94(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 l94(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=OG0(Q,K),Z=OG0(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 d94,p94,NG0;var xO1=v(()=>{j5();k1();WO();d94=sZ,p94=tZ(QJ),NG0=y0({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:d94,outputSchema:p94,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)=>$u(V,Y.where));if(Y.orderBy&&Y.orderBy.length>0)K=l94(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 c94,n94,LG0;var uO1=v(()=>{h0();k1();WO();c94=B.object({id:B.string().describe("ID of the virtual MCP to retrieve")}),n94=B.object({item:QJ.nullable().describe("The retrieved virtual MCP, or null if not found")}),LG0=y0({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:c94,outputSchema:n94,handler:async(Y,X)=>{u0(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 i94,a94,wG0;var gO1=v(()=>{h0();k1();WO();i94=B.object({id:B.string().describe("ID of the virtual MCP to update"),data:GA.describe("Partial virtual MCP data to update")}),a94=B.object({item:QJ.describe("The updated virtual MCP entity")}),wG0=y0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:i94,outputSchema:a94,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(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 r94,o94,MG0;var mO1=v(()=>{h0();k1();WO();r94=B.object({id:B.string().describe("ID of the virtual MCP to delete")}),o94=B.object({item:QJ.describe("The deleted virtual MCP entity")}),MG0=y0({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:r94,outputSchema:o94,handler:async(Y,X)=>{u0(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 lO1=v(()=>{bO1();xO1();uO1();gO1();mO1()});var t94,e94,AG0;var dO1=v(()=>{h0();k1();QK();t94=B.object({virtual_mcp_id:B.string().describe("ID of the Virtual MCP to add the tool to"),data:JO1.describe("Virtual tool data")}),e94=B.object({item:qW.describe("The created virtual tool")}),AG0=y0({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:t94,outputSchema:e94,handler:async(Y,X)=>{u0(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 YY4,XY4,PG0;var pO1=v(()=>{h0();k1();QK();YY4=B.object({virtual_mcp_id:B.string().describe("ID of the Virtual MCP to list tools for"),limit:B.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:B.number().int().min(0).optional().describe("Number of items to skip")}),XY4=B.object({items:B.array(qW).describe("Array of virtual tools"),totalCount:B.number().int().min(0).optional().describe("Total number of virtual tools"),hasMore:B.boolean().optional().describe("Whether there are more items available")}),PG0=y0({name:"COLLECTION_VIRTUAL_TOOLS_LIST",description:"List all virtual tools for a Virtual MCP",inputSchema:YY4,outputSchema:XY4,handler:async(Y,X)=>{u0(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 QY4,JY4,TG0;var cO1=v(()=>{h0();k1();QK();QY4=B.object({virtual_mcp_id:B.string().describe("ID of the Virtual MCP"),name:B.string().describe("Name of the virtual tool to retrieve")}),JY4=B.object({item:qW.nullable().describe("The retrieved virtual tool, or null if not found")}),TG0=y0({name:"COLLECTION_VIRTUAL_TOOLS_GET",description:"Get a virtual tool by name from a Virtual MCP",inputSchema:QY4,outputSchema:JY4,handler:async(Y,X)=>{u0(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 GY4,WY4,EG0;var nO1=v(()=>{h0();k1();QK();GY4=B.object({virtual_mcp_id:B.string().describe("ID of the Virtual MCP"),name:B.string().describe("Current name of the virtual tool to update"),data:GO1.describe("Partial virtual tool data to update")}),WY4=B.object({item:qW.describe("The updated virtual tool")}),EG0=y0({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:GY4,outputSchema:WY4,handler:async(Y,X)=>{u0(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 ZY4,KY4,CG0;var iO1=v(()=>{h0();k1();QK();ZY4=B.object({virtual_mcp_id:B.string().describe("ID of the Virtual MCP"),name:B.string().describe("Name of the virtual tool to delete")}),KY4=B.object({item:qW.describe("The deleted virtual tool")}),CG0=y0({name:"COLLECTION_VIRTUAL_TOOLS_DELETE",description:"Delete a virtual tool from a Virtual MCP",inputSchema:ZY4,outputSchema:KY4,handler:async(Y,X)=>{u0(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 aO1=v(()=>{dO1();pO1();cO1();nO1();iO1()});var FY4,IG0;var rO1=v(()=>{k1();h0();FY4=B.object({id:B.string().optional().describe("Unique log identifier"),organizationId:B.string().describe("Organization ID"),connectionId:B.string().describe("Connection ID"),connectionTitle:B.string().describe("Connection display name"),toolName:B.string().describe("Name of the tool that was called"),input:B.record(B.string(),B.unknown()).describe("Redacted tool input"),output:B.record(B.string(),B.unknown()).describe("Redacted tool output"),isError:B.boolean().describe("Whether the call resulted in an error"),errorMessage:B.string().nullish().describe("Error message if applicable"),durationMs:B.number().describe("Call duration in milliseconds"),timestamp:B.string().describe("ISO 8601 timestamp of the call"),userId:B.string().nullish().describe("User who triggered the call"),requestId:B.string().describe("Unique request identifier"),userAgent:B.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:B.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:B.record(B.string(),B.string()).nullish().describe("Custom key-value metadata attached to the log")}),IG0=y0({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:B.object({connectionId:B.string().optional().describe("Filter by connection ID"),excludeConnectionIds:B.array(B.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:B.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:B.string().optional().describe("Filter by tool name"),isError:B.boolean().optional().describe("Filter by error status"),startDate:B.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:B.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:B.number().default(20).describe("Maximum number of results"),offset:B.number().default(0).describe("Offset for pagination"),properties:B.record(B.string(),B.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:B.array(B.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:B.record(B.string(),B.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:B.record(B.string(),B.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:B.object({logs:B.array(FY4).describe("Array of monitoring logs"),total:B.number().describe("Total number of logs matching filters"),offset:B.number().describe("Current offset for pagination"),limit:B.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 RG0;var oO1=v(()=>{k1();h0();RG0=y0({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:B.object({startDate:B.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:B.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:B.object({totalCalls:B.number().describe("Total number of tool calls"),errorRate:B.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:B.number().describe("Average call duration in milliseconds"),errorRatePercent:B.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 sO1=v(()=>{rO1();oO1()});var jG0;var tO1=v(()=>{h0();k1();jG0=y0({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:B.object({slug:B.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:B.string().min(1).max(255),description:B.string().optional()}),outputSchema:B.object({id:B.string(),name:B.string(),slug:B.string(),logo:B.string().nullable().optional(),metadata:B.any().optional(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),members:B.array(B.any()).optional()}),handler:async(Y,X)=>{u0(X),await X.access.check();let Q=b8(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 SG0;var eO1=v(()=>{h0();k1();SG0=y0({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:B.object({userId:B.string().optional()}),outputSchema:B.object({organizations:B.array(B.object({id:B.string(),name:B.string(),slug:B.string(),logo:B.string().nullable().optional(),metadata:B.any().optional(),createdAt:B.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{u0(X),await X.access.check();let Q=b8(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 kG0;var YN1=v(()=>{h0();k1();kG0=y0({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:B.object({}),outputSchema:B.object({id:B.string(),name:B.string(),slug:B.string(),logo:B.string().nullable().optional(),metadata:B.any().optional(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),members:B.array(B.any()).optional(),invitations:B.array(B.any()).optional()}),handler:async(Y,X)=>{u0(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 vG0;var XN1=v(()=>{h0();k1();vG0=y0({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:B.object({id:B.string(),slug:B.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:B.string().min(1).max(255).optional(),description:B.string().optional()}),outputSchema:B.object({id:B.string(),name:B.string(),slug:B.string(),logo:B.string().nullable().optional(),metadata:B.any().optional(),createdAt:B.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{u0(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 _G0;var QN1=v(()=>{h0();k1();_G0=y0({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:B.object({id:B.string()}),outputSchema:B.object({success:B.boolean(),id:B.string()}),handler:async(Y,X)=>{return u0(X),await X.access.check(),await X.boundAuth.organization.delete(Y.id),{success:!0,id:Y.id}}})});var f2;var yG0=v(()=>{h0();f2=B.object({title:B.string(),url:B.string(),icon:B.string()})});var fG0;var JN1=v(()=>{h0();k1();yG0();fG0=y0({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:B.object({}),outputSchema:B.object({organizationId:B.string(),sidebar_items:B.array(f2).nullable().optional(),enabled_plugins:B.array(B.string()).nullable().optional(),createdAt:B.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:B.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{u0(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 hG0;var GN1=v(()=>{h0();k1();yG0();hG0=y0({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:B.object({organizationId:B.string(),sidebar_items:B.array(f2).optional(),enabled_plugins:B.array(B.string()).optional()}),outputSchema:B.object({organizationId:B.string(),sidebar_items:B.array(f2).nullable().optional(),enabled_plugins:B.array(B.string()).nullable().optional(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),updatedAt:B.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{if(u0(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 bG0;var WN1=v(()=>{h0();k1();bG0=y0({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:B.object({organizationId:B.string().optional(),userId:B.string(),role:B.array(B.string())}),outputSchema:B.object({id:B.string(),organizationId:B.string(),userId:B.string(),role:B.union([B.string(),B.array(B.string())]),createdAt:B.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{u0(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 xG0;var ZN1=v(()=>{h0();k1();xG0=y0({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:B.object({organizationId:B.string().optional(),memberIdOrEmail:B.string()}),outputSchema:B.object({success:B.boolean(),memberIdOrEmail:B.string()}),handler:async(Y,X)=>{u0(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 uG0;var KN1=v(()=>{h0();k1();uG0=y0({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:B.object({limit:B.number().optional(),offset:B.number().optional()}),outputSchema:B.object({members:B.array(B.object({id:B.string(),organizationId:B.string(),userId:B.string(),role:B.string(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),user:B.object({id:B.string(),name:B.string(),email:B.string(),image:B.string().optional()}).optional()}))}),handler:async(Y,X)=>{u0(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 gG0;var HN1=v(()=>{h0();k1();gG0=y0({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:B.object({organizationId:B.string().optional(),memberId:B.string(),role:B.array(B.string())}),outputSchema:B.object({id:B.string(),organizationId:B.string(),userId:B.string(),role:B.union([B.literal("admin"),B.literal("member"),B.literal("owner")]),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),user:B.object({email:B.string(),name:B.string(),image:B.string().optional()})}),handler:async(Y,X)=>{u0(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 FN1=v(()=>{tO1();eO1();YN1();XN1();QN1();JN1();GN1();WN1();ZN1();KN1();HN1()});var qY4,Vu,BY4,eV,$N1,qu;var Yq=v(()=>{h0();qY4=B.object({banner:B.string().nullable(),bannerColor:B.string().nullable(),icon:B.string().nullable(),themeColor:B.string().nullable()}),Vu=B.object({banner:B.string().nullable().optional(),bannerColor:B.string().nullable().optional(),icon:B.string().nullable().optional(),themeColor:B.string().nullable().optional()}),BY4=B.object({id:B.string(),title:B.string(),icon:B.string().nullable()}),eV=B.object({id:B.string(),organizationId:B.string(),slug:B.string(),name:B.string(),description:B.string().nullable(),enabledPlugins:B.array(B.string()).nullable(),ui:qY4.nullable(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),updatedAt:B.string().datetime().describe("ISO 8601 timestamp")}),$N1=eV.omit({organizationId:!0}).extend({boundConnections:B.array(BY4)}),qu=B.object({id:B.string(),projectId:B.string(),pluginId:B.string(),connectionId:B.string().nullable(),settings:B.record(B.string(),B.unknown()).nullable(),createdAt:B.string().datetime().describe("ISO 8601 timestamp"),updatedAt:B.string().datetime().describe("ISO 8601 timestamp")})});var mG0;var VN1=v(()=>{h0();k1();Yq();mG0=y0({name:"PROJECT_LIST",description:"List all projects in an organization",inputSchema:B.object({organizationId:B.string().describe("Organization ID to list projects for")}),outputSchema:B.object({projects:B.array($N1)}),handler:async(Y,X)=>{u0(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 lG0;var qN1=v(()=>{h0();k1();Yq();lG0=y0({name:"PROJECT_GET",description:"Get a project by ID or slug",inputSchema:B.object({organizationId:B.string().describe("Organization ID"),projectId:B.string().optional().describe("Project ID (either this or slug required)"),slug:B.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:B.object({project:eV.nullable()}),handler:async(Y,X)=>{u0(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 dG0;var BN1=v(()=>{h0();YX();k1();Yq();dG0=y0({name:"PROJECT_CREATE",description:"Create a new project in an organization",inputSchema:B.object({organizationId:B.string().describe("Organization ID"),slug:B.string().min(1).max(100).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").describe("URL-friendly identifier"),name:B.string().min(1).max(200).describe("Display name"),description:B.string().max(1000).nullable().optional().describe("Project description"),enabledPlugins:B.array(B.string()).nullable().optional().describe("Plugin IDs to enable"),ui:Vu.nullable().optional().describe("UI customization")}),outputSchema:B.object({project:eV}),handler:async(Y,X)=>{u0(X),await X.access.check();let{organizationId:Q,slug:J,name:G,description:K,enabledPlugins:W,ui:Z}=Y;if(J===dW)throw Error(`Slug "${dW}" 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 pG0;var zN1=v(()=>{h0();k1();Yq();pG0=y0({name:"PROJECT_UPDATE",description:"Update a project's details",inputSchema:B.object({projectId:B.string().describe("Project ID to update"),name:B.string().min(1).max(200).optional().describe("New display name"),description:B.string().max(1000).nullable().optional().describe("New description"),enabledPlugins:B.array(B.string()).nullable().optional().describe("Updated plugin IDs"),ui:Vu.nullable().optional().describe("Updated UI customization")}),outputSchema:B.object({project:eV.nullable()}),handler:async(Y,X)=>{u0(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 cG0;var UN1=v(()=>{h0();YX();k1();cG0=y0({name:"PROJECT_DELETE",description:"Delete a project (cannot delete org-admin)",inputSchema:B.object({projectId:B.string().describe("Project ID to delete")}),outputSchema:B.object({success:B.boolean(),message:B.string().optional()}),handler:async(Y,X)=>{u0(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===dW)return{success:!1,message:"Cannot delete the org-admin project"};return{success:await X.storage.projects.delete(Q)}}})});var nG0;var DN1=v(()=>{h0();k1();Yq();nG0=y0({name:"PROJECT_PLUGIN_CONFIG_GET",description:"Get plugin configuration for a project",inputSchema:B.object({projectId:B.string().describe("Project ID"),pluginId:B.string().describe("Plugin ID")}),outputSchema:B.object({config:qu.nullable()}),handler:async(Y,X)=>{u0(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 iG0;var ON1=v(()=>{h0();k1();Yq();Gu();iG0=y0({name:"PROJECT_PLUGIN_CONFIG_UPDATE",description:"Update or create plugin configuration for a project",inputSchema:B.object({projectId:B.string().describe("Project ID"),pluginId:B.string().describe("Plugin ID"),connectionId:B.string().nullable().optional().describe("MCP connection to bind"),settings:B.record(B.string(),B.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:B.object({config:qu}),handler:async(Y,X)=>{u0(X),await X.access.check();let{projectId:Q,pluginId:J,connectionId:G,settings:K}=Y,W=b8(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&&eD()){if(Ju(G,Z.organizationId)){if(!W)throw Error("User ID required to create dev-assets connection");let $=YO(Z.organizationId,AJ());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 NN1=v(()=>{VN1();qN1();BN1();zN1();UN1();DN1();ON1()});var aG0;var LN1=v(()=>{h0();k1();aG0=y0({name:"TAGS_LIST",description:"List all tags in an organization",inputSchema:B.object({}),outputSchema:B.object({tags:B.array(B.object({id:B.string(),organizationId:B.string(),name:B.string(),createdAt:B.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{u0(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 rG0;var wN1=v(()=>{h0();k1();rG0=y0({name:"TAGS_CREATE",description:"Create a new tag in an organization",inputSchema:B.object({name:B.string().min(1).max(50).describe("Tag name")}),outputSchema:B.object({tag:B.object({id:B.string(),organizationId:B.string(),name:B.string(),createdAt:B.string().describe("ISO 8601 timestamp")})}),handler:async(Y,X)=>{u0(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 oG0;var MN1=v(()=>{h0();k1();oG0=y0({name:"TAGS_DELETE",description:"Delete a tag from an organization (removes from all members)",inputSchema:B.object({tagId:B.string().describe("Tag ID to delete")}),outputSchema:B.object({success:B.boolean()}),handler:async(Y,X)=>{u0(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 sG0;var AN1=v(()=>{h0();k1();sG0=y0({name:"MEMBER_TAGS_GET",description:"Get tags assigned to a member",inputSchema:B.object({memberId:B.string().describe("Member ID")}),outputSchema:B.object({tags:B.array(B.object({id:B.string(),organizationId:B.string(),name:B.string(),createdAt:B.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{u0(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 tG0;var PN1=v(()=>{h0();k1();tG0=y0({name:"MEMBER_TAGS_SET",description:"Set tags for a member (replaces all existing tags)",inputSchema:B.object({memberId:B.string().describe("Member ID"),tagIds:B.array(B.string()).describe("Array of tag IDs to assign")}),outputSchema:B.object({success:B.boolean(),tags:B.array(B.object({id:B.string(),organizationId:B.string(),name:B.string(),createdAt:B.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{u0(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 TN1=v(()=>{LN1();wN1();MN1();AN1();PN1()});var EN1,BW,CN1,IN1;var Xq=v(()=>{h0();EN1=B.object({id:B.string().describe("Unique message ID"),threadId:B.string().describe("ID of the parent thread"),metadata:B.unknown().optional().describe("Optional message metadata"),parts:B.array(B.record(B.string(),B.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:B.enum(["user","assistant","system"]).describe("Message role"),createdAt:B.string().datetime().describe("Timestamp of creation"),updatedAt:B.string().datetime().describe("Timestamp of last update")}),BW=B.object({id:B.string().describe("Unique thread ID"),organizationId:B.string().describe("Organization this thread belongs to"),title:B.string().describe("Thread title"),description:B.string().nullable().describe("Thread description"),createdAt:B.string().datetime().describe("Timestamp of creation"),updatedAt:B.string().datetime().describe("Timestamp of last update"),hidden:B.boolean().optional().describe("Whether the thread is hidden"),createdBy:B.string().describe("User ID who created the thread"),updatedBy:B.string().nullable().describe("User ID who last updated the thread")}),CN1=B.object({id:B.string().optional().describe("Optional custom ID for the thread"),title:B.string().describe("Thread title"),description:B.string().nullish().describe("Thread description")}),IN1=B.object({title:B.string().optional().describe("New thread title"),description:B.string().nullish().describe("New thread description"),hidden:B.boolean().optional().describe("Whether the thread is hidden")})});var DY4,OY4,eG0;var RN1=v(()=>{h0();k1();Xq();R5();DY4=B.object({data:CN1.describe("Data for the new thread (id is auto-generated if not provided)")}),OY4=B.object({item:BW.describe("The created thread entity")}),eG0=y0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:DY4,outputSchema:OY4,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(X);if(!J)throw Error("User ID required to create thread");let G=Y.data.id??k4("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 NY4,LY4,Y70;var jN1=v(()=>{j5();k1();Xq();h0();NY4=sZ.extend({where:B.object({created_by:B.string().optional()}).optional()}),LY4=tZ(BW),Y70=y0({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:NY4,outputSchema:LY4,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 wY4,X70;var SN1=v(()=>{j5();k1();Xq();wY4=K2(BW),X70=y0({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:Z2,outputSchema:wY4,handler:async(Y,X)=>{u0(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 MY4,AY4,Q70;var kN1=v(()=>{h0();k1();Xq();MY4=B.object({id:B.string().describe("ID of the thread to update"),data:IN1.describe("Partial thread data to update")}),AY4=B.object({item:BW.describe("The updated thread entity")}),Q70=y0({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:MY4,outputSchema:AY4,handler:async(Y,X)=>{u0(X);let Q=q1(X);await X.access.check();let J=b8(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 J70;var vN1=v(()=>{j5();k1();Xq();J70=y0({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:H2,outputSchema:F2(BW),handler:async(Y,X)=>{u0(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 _N1(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=_N1(X);if(Q)return Q}return null}var PY4,G70;var yN1=v(()=>{j5();k1();Xq();PY4=tZ(EN1),G70=y0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:sZ,outputSchema:PY4,handler:async(Y,X)=>{let Q=q1(X);await X.access.check();let J=_N1(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 fN1=v(()=>{RN1();jN1();SN1();kN1();vN1();yN1()});var EY4,CY4,W70;var hN1=v(()=>{h0();k1();EY4=B.object({id:B.string().min(1)}),CY4=B.object({user:B.object({id:B.string(),name:B.string(),email:B.string(),image:B.string().nullable()}).nullable()}),W70=y0({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:EY4,outputSchema:CY4,handler:async(Y,X)=>{await X.access.check(),u0(X);let Q=b8(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 bN1=v(()=>{hN1()});var uN1={};u8(uN1,{managementMCP:()=>Z70,ALL_TOOLS:()=>xN1});var RY4,jY4,xN1,Z70=async(Y)=>{let X=null;if(Y.organization)X=(await Y.storage.organizationSettings.get(Y.organization.id))?.enabled_plugins??null;let Q=tz1(xN1,X),J=new ZA({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:B.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 K70=v(()=>{J50();l10();h0();UU1();WD1();AO1();CO1();hO1();lO1();aO1();sO1();FN1();NN1();TN1();fN1();bN1();RY4=[jG0,SG0,kG0,vG0,_G0,fG0,hG0,bG0,xG0,uG0,gG0,k50,b50,x50,ZG0,KG0,HG0,DG0,NG0,LG0,wG0,MG0,AG0,PG0,TG0,EG0,CG0,EO1,IG0,RG0,W50,K50,H50,Z50,FG0,$G0,VG0,qG0,BG0,zG0,UG0,W70,R50,j50,S50,eG0,Y70,X70,Q70,J70,G70,aG0,rG0,oG0,sG0,tG0,mG0,lG0,dG0,pG0,cG0,nG0,iG0],jY4=ez1(),xN1=[...RY4,...jY4]});function SY4(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (K70(),uN1));return X.map((Q)=>{return{name:Q.name,inputSchema:B.toJSONSchema(Q.inputSchema,{unrepresentable:"any"}),outputSchema:Q.outputSchema?B.toJSONSchema(Q.outputSchema,{unrepresentable:"any"}):void 0,description:Q.description}})},data:I10(AJ(),Y)},{data:C10()},{data:E10(Y)}]}async function gN1(Y,X){try{let Q=Rx(),J=new mV(process.env.ENCRYPTION_KEY||""),G=new lT(Q.db,J),K=new dT(Q.db),W=SY4(Y);try{await K.create({organizationId:Y,slug:dW,name:pR,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 GK.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 cD({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 mN1=v(()=>{YX();jx();vx();TJ0();EJ0();xx();h0();C2()});var H70,Bu;var zu=v(()=>{H70=["owner","admin","user"],Bu=["owner","admin"]});var kY4=(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"}}}}]}},lN1=(Y)=>{if(Y.providerId==="microsoft")return kY4(Y);throw Error(`Unsupported provider: ${Y.providerId}`)};function vY4(Y){return Y.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function _Y4(){let Y=Math.floor(Math.random()*pN1.length),X=Math.floor(Math.random()*dN1.length),Q=pN1[Y]??"deco",J=dN1[X]??"studio";return`${Q}-${J}`}var dN1,pN1,yY4,fY4,Uu,hY4,bY4,xY4,cN1,D9,nN1=void 0,uY4,gY4,mY4,GK;var C2=v(()=>{X60();RH1();zF1();qX0();fQ0();Z$1();kT();B$1();jx();PJ0();sq1();mN1();zu();dN1=["labs","agent","studio","workspace","systems","core","cloud","works"],pN1=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];yY4=Object.values(BA()).map((Y)=>Y.map((X)=>X.name)).flat(),fY4={...tb,self:["*",...yY4]},Uu=$W(fY4),hY4=Uu.newRole({self:["*"],...MT.statements}),bY4=Uu.newRole({self:["*"],...MT.statements}),xY4=Uu.newRole({self:["*"],...MT.statements}),cN1=Object.values(BA()).map((Y)=>Y.map((X)=>`self:${X.name}`)).flat(),D9=ST.auth;if(D9.inviteEmailProviderId&&D9.emailProviders&&D9.emailProviders.length>0){let Y=kx(D9.emailProviders,D9.inviteEmailProviderId);if(Y){let X=Sx(Y);nN1=async(Q)=>{let J=Q.inviter.user?.name||Q.inviter.user?.email,G=`${AJ()}/auth/accept-invitation?invitationId=${Q.invitation.id}&redirectTo=/`;await X({to:Q.email,subject:`Invitation to join ${Q.organization.name}`,html:`
1042
1042
  <h2>You've been invited!</h2>
@@ -1054,7 +1054,7 @@ data:
1054
1054
  `;if(J)G+=`id: ${J}
1055
1055
  `;return G+=`data: ${JSON.stringify(Q)}
1056
1056
 
1057
- `,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)=>YJ.parse(L));else W=[YJ.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(We);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(w7)){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)=>We(L)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??Eo0;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set(F,{resolveJson:L,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(w7(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:X?.authInfo,requestInfo:G})});let q=new TextEncoder,z,D=new ReadableStream({start:(L)=>{z=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(w7(L))this._streamMapping.set(F,{controller:z,encoder:q,cleanup:()=>{this._streamMapping.delete(F);try{z.close()}catch{}}}),this._requestToStreamMapping.set(L.id,F);await this.writePrimingEvent(z,q,F,V);for(let L of W){let w,I;if(w7(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&&!w$.includes(X))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${X} (supported versions: ${w$.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(GG(Y)||wz(Y))Q=Y.id;if(Q===void 0){if(GG(Y)||wz(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(GG(Y)||wz(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 Du=new H9,D70=[404,401,406];async function iN1(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function lY4(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function aN1(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(lY4(J))return J}if(await dY4(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function dY4(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 Ou(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(!D70.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"}}),!D70.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 pY4(Y,X){let Q=await iN1(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await Ou(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function rN1(Y){let X=Y.get("meshContext");if(!X)X=await h3.create(Y.req.raw),Y.set("meshContext",X);return X}async function oN1({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 aN1(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"}})}var sN1=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},tN1=async(Y)=>{let X=Y.req.param("connectionId"),Q=await rN1(Y),J=await iN1(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=sN1(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await Ou(J);if(!Z.ok&&D70.includes(Z.status)){if(await aN1(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)}};Du.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>tN1(Y));Du.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>tN1(Y));async function O70(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}Du.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await rN1(Y),J=await pY4(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await O70(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=`${sN1(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)}});var eN1=Du;YX();Fu();var N70=new H9;async function Nu(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((z)=>z?.id):null,W=X?X:K?a_(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=QG0(Y.req.query("mode")),$=await _2(Z,Q,F),V=k$($,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new Qq({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)}}N70.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Nu(Y,X)});N70.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Nu(Y,X)});var YL1=N70;var Lu=new H9,XL1=300000;function Jq(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 QL1(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 XQ(J,X,Q),K=WG0(G,J),W=k$(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:K.getServerCapabilities(),instructions:K.getInstructions()}),{client:Z,server:H}=f10();await W.connect(H);let F=new AQ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(Z),F}async function JL1(Y,X){return QL1(Y,X,{superUser:!1})}async function GL1(Y,X){return QL1(Y,X,{superUser:!0})}Lu.all("/",async(Y)=>{return Nu(Y,void 0)});Lu.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 GG0(J,Q,!1),K=new Qq({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 oN1({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 WL1(J,Y)}});var WL1=(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)};Lu.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 XQ(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 WL1(G,Y)}});var ZL1=Lu;zu();R5();class L70{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??k4("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()}}}d50();function cY4(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 nY4(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 iY4(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&H70.includes(J))return!0;if(G)return nY4(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 aY4(Y,X,Q){if(H70.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 rY4(Y,X,Q,J=HL1){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",()=>aY4(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",()=>dD1(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}}var KL1,h3={set:(Y)=>{KL1=Y},create:async(Y,X)=>{return await KL1(Y,X)}},HL1={measure:async(Y,X)=>{return await X()}},oY4=["x-hub-signature-256"];async function FL1(Y){let X=new mV(Y.encryption.key),Q={connections:new lT(Y.db,X),organizationSettings:new q70(Y.db),monitoring:new V70(Y.db,Y.databaseType),virtualMcps:new F70(Y.db),users:new U70(Y.db),threads:new L70(Y.db),tags:new z70(Y.db),projects:new dT(Y.db),projectPluginConfigs:new B70(Y.db)};return async(J,G)=>{let K=G?.timings??HL1,W=Hu(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await rY4(J,Y.auth,Y.db,K):{user:void 0},F=iY4({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}`:AJ(),z=new XK(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:z,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(oY4.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:cY4(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await JL1(O,D)},getOrCreateClient:W};return D}}jx();class $L1{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 z=F.length,D=$.length,O=V.length,L=await this.listSubscriptions(X,Q);return{created:z,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function VL1(Y){return new $L1(Y)}function DX(Y,X,Q,J,G,K,W,Z){return DX.fromTZ(DX.tp(Y,X,Q,J,G,K,W),Z)}DX.fromTZISO=(Y,X,Q)=>DX.fromTZ(sY4(Y,X),Q);DX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=w70(Y.tz,Q),G=new Date(Q.getTime()-J),K=w70(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=w70(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}};DX.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}};DX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});function w70(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 sY4(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("+")?DX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):DX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}DX.minitz=DX;var M70=32,b2=31|M70,UL1=[1,2,4,8,16],qL1=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 S5(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,b2),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]|M70;else if(X===b2)this.dayOfWeek[Y]=b2;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|UL1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},BL1=[31,28,31,30,31,30,31,31,30,31,30,31],ZK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]],S5=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&b2&&UL1[W-1]&G)return!0;if(G&M70){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=DX.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>BL1[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=DX.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(DX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=BL1[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($&&$&b2)$=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,ZK[J][0],X,ZK[J][2]);if(G>1){let K=J+1;for(;K<ZK.length;)this[ZK[K][0]]=-ZK[K][2],K++;if(G===3)return this[ZK[J][1]]++,this[ZK[J][0]]=-ZK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=ZK.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)):DX.fromTZ(DX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function tY4(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 S5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new S5(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 h2(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function eY4(Y){return h2(Y)}function YX4(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var zL1=30000,wu=[],Mu=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(h2(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(h2(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=tY4(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 qL1("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new S5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new qL1(Y,this.options.timezone),this.name){if(wu.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");wu.push(this)}return G!==void 0&&eY4(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 S5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new S5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=wu.indexOf(this);Y>=0&&wu.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>zL1&&(X=zL1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&YX4(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new S5(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){h2(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new S5(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&&h2(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 S5(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 S5(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 S5(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 S5(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 Au={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000};Xu();function DL1(){return async(Y,X)=>{try{let Q=await h3.create(),J=await GL1(Y,Q),K=await y50.forClient(Jq(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}}}}function OL1(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 XX4(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(OL1(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[OL1(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 A70{storage;notifySubscriber;running=!1;processing=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=DL1(),this.config={...Au,...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=XX4(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 Mu(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)}}}class P70{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new A70(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 Mu(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}}function NL1(...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 Pu{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 QX4}from"kysely";var ZO="mesh_events";class T70{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===ZO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${ZO}`),console.log("[PostgresNotify] Started LISTEN on",ZO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${ZO}`),console.log("[PostgresNotify] Stopped LISTEN on",ZO)}catch{}this.cleanup()}}async notify(Y){try{await QX4`SELECT pg_notify(${ZO}, ${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}}function LL1(Y,X){let Q=VL1(Y.db),J=X?.pollIntervalMs??Au.pollIntervalMs,G=Y.type==="postgres"?NL1(new Pu(J),new T70(Y.db,Y.pool)):new Pu(J);return new P70({storage:Q,config:X,notifyStrategy:G})}lq();C2();var wL1={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 ML1=new H9;ML1.get("/config",async(Y)=>{try{let X=Object.keys(D9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:wL1[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:D9.emailAndPassword?.enabled??!1},magicLink:{enabled:D9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:D9.ssoConfig?{enabled:!0,providerId:D9.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)}});var AL1=ML1;var sL1="vercel.ai.error",JX4=Symbol.for(sL1),PL1,TL1,M1=class Y extends(TL1=Error,PL1=JX4,TL1){constructor({name:X,message:Q,cause:J}){super(Q);this[PL1]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,sL1)}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}},tL1="AI_APICallError",eL1=`vercel.ai.error.${tL1}`,GX4=Symbol.for(eL1),EL1,CL1,Y9=class extends(CL1=M1,EL1=GX4,CL1){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:tL1,message:Y,cause:W});this[EL1]=!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,eL1)}},Yw1="AI_EmptyResponseBodyError",Xw1=`vercel.ai.error.${Yw1}`,WX4=Symbol.for(Xw1),IL1,RL1,Qw1=class extends(RL1=M1,IL1=WX4,RL1){constructor({message:Y="Empty response body"}={}){super({name:Yw1,message:Y});this[IL1]=!0}static isInstance(Y){return M1.hasMarker(Y,Xw1)}};function kG(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 Jw1="AI_InvalidArgumentError",Gw1=`vercel.ai.error.${Jw1}`,ZX4=Symbol.for(Gw1),jL1,SL1,Ww1=class extends(SL1=M1,jL1=ZX4,SL1){constructor({message:Y,cause:X,argument:Q}){super({name:Jw1,message:Y,cause:X});this[jL1]=!0,this.argument=Q}static isInstance(Y){return M1.hasMarker(Y,Gw1)}},Zw1="AI_InvalidPromptError",Kw1=`vercel.ai.error.${Zw1}`,KX4=Symbol.for(Kw1),kL1,vL1,Gq=class extends(vL1=M1,kL1=KX4,vL1){constructor({prompt:Y,message:X,cause:Q}){super({name:Zw1,message:`Invalid prompt: ${X}`,cause:Q});this[kL1]=!0,this.prompt=Y}static isInstance(Y){return M1.hasMarker(Y,Kw1)}},Hw1="AI_InvalidResponseDataError",Fw1=`vercel.ai.error.${Hw1}`,HX4=Symbol.for(Fw1),_L1,yL1,Tw8=class extends(yL1=M1,_L1=HX4,yL1){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:Hw1,message:X});this[_L1]=!0,this.data=Y}static isInstance(Y){return M1.hasMarker(Y,Fw1)}},$w1="AI_JSONParseError",Vw1=`vercel.ai.error.${$w1}`,FX4=Symbol.for(Vw1),fL1,hL1,x2=class extends(hL1=M1,fL1=FX4,hL1){constructor({text:Y,cause:X}){super({name:$w1,message:`JSON parsing failed: Text: ${Y}.
1057
+ `,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)=>YJ.parse(L));else W=[YJ.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(We);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(w7)){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)=>We(L)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??Eo0;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set(F,{resolveJson:L,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(w7(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:X?.authInfo,requestInfo:G})});let q=new TextEncoder,z,D=new ReadableStream({start:(L)=>{z=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(w7(L))this._streamMapping.set(F,{controller:z,encoder:q,cleanup:()=>{this._streamMapping.delete(F);try{z.close()}catch{}}}),this._requestToStreamMapping.set(L.id,F);await this.writePrimingEvent(z,q,F,V);for(let L of W){let w,I;if(w7(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&&!w$.includes(X))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${X} (supported versions: ${w$.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(GG(Y)||wz(Y))Q=Y.id;if(Q===void 0){if(GG(Y)||wz(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(GG(Y)||wz(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 Du=new H9,D70=[404,401,406];async function iN1(Y,X){return(await X.storage.connections.findById(Y))?.connection_url??null}function lY4(Y){let X=Y.toLowerCase();return X.includes("resource_metadata=")||X.includes("invalid_token")||X.includes("oauth")}async function aN1(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(lY4(J))return J}if(await dY4(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function dY4(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 Ou(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(!D70.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"}}),!D70.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 pY4(Y,X){let Q=await iN1(Y,X);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await Ou(Q);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function rN1(Y){let X=Y.get("meshContext");if(!X)X=await h3.create(Y.req.raw),Y.set("meshContext",X);return X}async function oN1({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 aN1(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"}})}var sN1=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},tN1=async(Y)=>{let X=Y.req.param("connectionId"),Q=await rN1(Y),J=await iN1(X,Q);if(!J)return Y.json({error:"Connection not found"},404);let G=sN1(new URL(Y.req.url)),K=`${G.origin}/mcp/${X}`,W=`${G.origin}/oauth-proxy/${X}`;try{let Z=await Ou(J);if(!Z.ok&&D70.includes(Z.status)){if(await aN1(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)}};Du.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>tN1(Y));Du.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>tN1(Y));async function O70(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}Du.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let X=Y.req.param("connectionId"),Q=await rN1(Y),J=await pY4(X,Q);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await O70(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=`${sN1(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)}});var eN1=Du;YX();Fu();var N70=new H9;async function Nu(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((z)=>z?.id):null,W=X?X:K?a_(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=QG0(Y.req.query("mode")),$=await _2(Z,Q,F),V=k$($,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new Qq({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)}}N70.all("/gateway/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Nu(Y,X)});N70.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let X=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Nu(Y,X)});var YL1=N70;var Lu=new H9,XL1=300000;function Jq(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 QL1(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 XQ(J,X,Q),K=WG0(G,J),W=k$(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:K.getServerCapabilities(),instructions:K.getInstructions()}),{client:Z,server:H}=f10();await W.connect(H);let F=new AQ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(Z),F}async function JL1(Y,X){return QL1(Y,X,{superUser:!1})}async function GL1(Y,X){return QL1(Y,X,{superUser:!0})}Lu.all("/",async(Y)=>{return Nu(Y,void 0)});Lu.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 GG0(J,Q,!1),K=new Qq({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 oN1({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 WL1(J,Y)}});var WL1=(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)};Lu.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 XQ(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 WL1(G,Y)}});var ZL1=Lu;zu();R5();class L70{db;constructor(Y){this.db=Y}async create(Y){let X=Y.id??k4("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()}}}d50();function cY4(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 nY4(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 iY4(Y){let{auth:X,headers:Q,role:J,permissions:G,userId:K}=Y,W=X.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&H70.includes(J))return!0;if(G)return nY4(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 aY4(Y,X,Q){if(H70.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 rY4(Y,X,Q,J=HL1){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",()=>aY4(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",()=>dD1(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}}var KL1,h3={set:(Y)=>{KL1=Y},create:async(Y,X)=>{return await KL1(Y,X)}},HL1={measure:async(Y,X)=>{return await X()}},oY4=["x-hub-signature-256"];async function FL1(Y){let X=new mV(Y.encryption.key),Q={connections:new lT(Y.db,X),organizationSettings:new q70(Y.db),monitoring:new V70(Y.db,Y.databaseType),virtualMcps:new F70(Y.db),users:new U70(Y.db),threads:new L70(Y.db),tags:new z70(Y.db),projects:new dT(Y.db),projectPluginConfigs:new B70(Y.db)};return async(J,G)=>{let K=G?.timings??HL1,W=Hu(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await rY4(J,Y.auth,Y.db,K):{user:void 0},F=iY4({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}`:AJ(),z=new XK(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:z,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(oY4.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:cY4(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(O)=>{return await JL1(O,D)},getOrCreateClient:W};return D}}jx();class $L1{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 z=F.length,D=$.length,O=V.length,L=await this.listSubscriptions(X,Q);return{created:z,updated:D,deleted:O,unchanged:q,subscriptions:L}}}function VL1(Y){return new $L1(Y)}function DX(Y,X,Q,J,G,K,W,Z){return DX.fromTZ(DX.tp(Y,X,Q,J,G,K,W),Z)}DX.fromTZISO=(Y,X,Q)=>DX.fromTZ(sY4(Y,X),Q);DX.fromTZ=function(Y,X){let Q=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=w70(Y.tz,Q),G=new Date(Q.getTime()-J),K=w70(Y.tz,G);if(K-J===0)return G;{let W=new Date(Q.getTime()-K),Z=w70(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}};DX.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}};DX.tp=(Y,X,Q,J,G,K,W)=>({y:Y,m:X,d:Q,h:J,i:G,s:K,tz:W});function w70(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 sY4(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("+")?DX.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):DX.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),X)}DX.minitz=DX;var M70=32,b2=31|M70,UL1=[1,2,4,8,16],qL1=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 S5(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,b2),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]|M70;else if(X===b2)this.dayOfWeek[Y]=b2;else if(X<6&&X>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|UL1[X-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${X}, Type: ${typeof X}`)}},BL1=[31,28,31,30,31,30,31,31,30,31,30,31],ZK=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]],S5=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&b2&&UL1[W-1]&G)return!0;if(G&M70){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=DX.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>BL1[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=DX.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(DX.fromTZISO(X,this.tz))}findNext(X,Q,J,G){let K=this[Q],W;J.lastDayOfMonth&&(this.month!==1?W=BL1[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($&&$&b2)$=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,ZK[J][0],X,ZK[J][2]);if(G>1){let K=J+1;for(;K<ZK.length;)this[ZK[K][0]]=-ZK[K][2],K++;if(G===3)return this[ZK[J][1]]++,this[ZK[J][0]]=-ZK[J][2],this.apply(),this.recurse(X,Q,0);if(this.apply())return this.recurse(X,Q,J-1)}return J+=1,J>=ZK.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)):DX.fromTZ(DX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function tY4(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 S5(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new S5(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 h2(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function eY4(Y){return h2(Y)}function YX4(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var zL1=30000,wu=[],Mu=class{name;options;_states;fn;constructor(Y,X,Q){let J,G;if(h2(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(h2(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=tY4(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 qL1("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new S5(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new qL1(Y,this.options.timezone),this.name){if(wu.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");wu.push(this)}return G!==void 0&&eY4(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 S5||Y instanceof Date?X.getTime()-Y.getTime():X.getTime()-new S5(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=wu.indexOf(this);Y>=0&&wu.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>zL1&&(X=zL1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),X),this._states.currentTimeout&&this.options.unref&&YX4(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new S5(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){h2(this.options.catch)&&this.options.catch(X,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new S5(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&&h2(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 S5(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 S5(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 S5(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 S5(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 Au={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000};Xu();function DL1(){return async(Y,X)=>{try{let Q=await h3.create(),J=await GL1(Y,Q),K=await y50.forClient(Jq(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}}}}function OL1(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 XX4(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(OL1(J.event))}else X.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[OL1(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 A70{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,X){this.storage=Y;this.notifySubscriber=DL1(),this.config={...Au,...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=XX4(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 Mu(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)}}}class P70{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new A70(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 Mu(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}}function NL1(...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 Pu{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 QX4}from"kysely";var ZO="mesh_events";class T70{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===ZO&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(X)=>{console.error("[PostgresNotify] Connection error:",X),this.cleanup()}),await this.listenClient.query(`LISTEN ${ZO}`),console.log("[PostgresNotify] Started LISTEN on",ZO)}catch(X){console.error("[PostgresNotify] Failed to start LISTEN:",X),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${ZO}`),console.log("[PostgresNotify] Stopped LISTEN on",ZO)}catch{}this.cleanup()}}async notify(Y){try{await QX4`SELECT pg_notify(${ZO}, ${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}}function LL1(Y,X){let Q=VL1(Y.db),J=X?.pollIntervalMs??Au.pollIntervalMs,G=Y.type==="postgres"?NL1(new Pu(J),new T70(Y.db,Y.pool)):new Pu(J);return new P70({storage:Q,config:X,notifyStrategy:G})}lq();C2();var wL1={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 ML1=new H9;ML1.get("/config",async(Y)=>{try{let X=Object.keys(D9.socialProviders??{}),Q=X.length>0,J=X.map((W)=>({name:W,icon:wL1[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:D9.emailAndPassword?.enabled??!1},magicLink:{enabled:D9.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:D9.ssoConfig?{enabled:!0,providerId:D9.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)}});var AL1=ML1;var sL1="vercel.ai.error",JX4=Symbol.for(sL1),PL1,TL1,M1=class Y extends(TL1=Error,PL1=JX4,TL1){constructor({name:X,message:Q,cause:J}){super(Q);this[PL1]=!0,this.name=X,this.cause=J}static isInstance(X){return Y.hasMarker(X,sL1)}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}},tL1="AI_APICallError",eL1=`vercel.ai.error.${tL1}`,GX4=Symbol.for(eL1),EL1,CL1,Y9=class extends(CL1=M1,EL1=GX4,CL1){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:tL1,message:Y,cause:W});this[EL1]=!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,eL1)}},Yw1="AI_EmptyResponseBodyError",Xw1=`vercel.ai.error.${Yw1}`,WX4=Symbol.for(Xw1),IL1,RL1,Qw1=class extends(RL1=M1,IL1=WX4,RL1){constructor({message:Y="Empty response body"}={}){super({name:Yw1,message:Y});this[IL1]=!0}static isInstance(Y){return M1.hasMarker(Y,Xw1)}};function kG(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 Jw1="AI_InvalidArgumentError",Gw1=`vercel.ai.error.${Jw1}`,ZX4=Symbol.for(Gw1),jL1,SL1,Ww1=class extends(SL1=M1,jL1=ZX4,SL1){constructor({message:Y,cause:X,argument:Q}){super({name:Jw1,message:Y,cause:X});this[jL1]=!0,this.argument=Q}static isInstance(Y){return M1.hasMarker(Y,Gw1)}},Zw1="AI_InvalidPromptError",Kw1=`vercel.ai.error.${Zw1}`,KX4=Symbol.for(Kw1),kL1,vL1,Gq=class extends(vL1=M1,kL1=KX4,vL1){constructor({prompt:Y,message:X,cause:Q}){super({name:Zw1,message:`Invalid prompt: ${X}`,cause:Q});this[kL1]=!0,this.prompt=Y}static isInstance(Y){return M1.hasMarker(Y,Kw1)}},Hw1="AI_InvalidResponseDataError",Fw1=`vercel.ai.error.${Hw1}`,HX4=Symbol.for(Fw1),_L1,yL1,Tw8=class extends(yL1=M1,_L1=HX4,yL1){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:Hw1,message:X});this[_L1]=!0,this.data=Y}static isInstance(Y){return M1.hasMarker(Y,Fw1)}},$w1="AI_JSONParseError",Vw1=`vercel.ai.error.${$w1}`,FX4=Symbol.for(Vw1),fL1,hL1,x2=class extends(hL1=M1,fL1=FX4,hL1){constructor({text:Y,cause:X}){super({name:$w1,message:`JSON parsing failed: Text: ${Y}.
1058
1058
  Error message: ${kG(X)}`,cause:X});this[fL1]=!0,this.text=Y}static isInstance(Y){return M1.hasMarker(Y,Vw1)}},qw1="AI_LoadAPIKeyError",Bw1=`vercel.ai.error.${qw1}`,$X4=Symbol.for(Bw1),bL1,xL1,Ew8=class extends(xL1=M1,bL1=$X4,xL1){constructor({message:Y}){super({name:qw1,message:Y});this[bL1]=!0}static isInstance(Y){return M1.hasMarker(Y,Bw1)}},zw1="AI_LoadSettingError",Uw1=`vercel.ai.error.${zw1}`,VX4=Symbol.for(Uw1),uL1,gL1,Cw8=class extends(gL1=M1,uL1=VX4,gL1){constructor({message:Y}){super({name:zw1,message:Y});this[uL1]=!0}static isInstance(Y){return M1.hasMarker(Y,Uw1)}},Dw1="AI_NoContentGeneratedError",Ow1=`vercel.ai.error.${Dw1}`,qX4=Symbol.for(Ow1),mL1,lL1,Iw8=class extends(lL1=M1,mL1=qX4,lL1){constructor({message:Y="No content generated."}={}){super({name:Dw1,message:Y});this[mL1]=!0}static isInstance(Y){return M1.hasMarker(Y,Ow1)}},Nw1="AI_NoSuchModelError",Lw1=`vercel.ai.error.${Nw1}`,BX4=Symbol.for(Lw1),dL1,pL1,Rw8=class extends(pL1=M1,dL1=BX4,pL1){constructor({errorName:Y=Nw1,modelId:X,modelType:Q,message:J=`No such ${Q}: ${X}`}){super({name:Y,message:J});this[dL1]=!0,this.modelId=X,this.modelType=Q}static isInstance(Y){return M1.hasMarker(Y,Lw1)}},ww1="AI_TooManyEmbeddingValuesForCallError",Mw1=`vercel.ai.error.${ww1}`,zX4=Symbol.for(Mw1),cL1,nL1,jw8=class extends(nL1=M1,cL1=zX4,nL1){constructor(Y){super({name:ww1,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[cL1]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return M1.hasMarker(Y,Mw1)}},Aw1="AI_TypeValidationError",Pw1=`vercel.ai.error.${Aw1}`,UX4=Symbol.for(Pw1),iL1,aL1,lQ=class Y extends(aL1=M1,iL1=UX4,aL1){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:Aw1,message:`${G}: Value: ${JSON.stringify(X)}.
1059
1059
  Error message: ${kG(Q)}`,cause:Q});this[iL1]=!0,this.value=X,this.context=J}static isInstance(X){return M1.hasMarker(X,Pw1)}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})}},Tw1="AI_UnsupportedFunctionalityError",Ew1=`vercel.ai.error.${Tw1}`,DX4=Symbol.for(Ew1),rL1,oL1,Cw1=class extends(oL1=M1,rL1=DX4,oL1){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:Tw1,message:X});this[rL1]=!0,this.functionality=Y}static isInstance(Y){return M1.hasMarker(Y,Ew1)}};n6();oK();oK();oK();A10();function HK(...Y){return Y.reduce((X,Q)=>({...X,...Q!=null?Q:{}}),{})}async function _w1(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(Iw1());return}let K=setTimeout(()=>{W(),J()},Y),W=()=>{clearTimeout(K),Q==null||Q.removeEventListener("abort",Z)},Z=()=>{W(),G(Iw1())};Q==null||Q.addEventListener("abort",Z)})}function Iw1(){return new DOMException("Delay was aborted","AbortError")}var Zq=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"}};function u2(Y){return Object.fromEntries([...Y.headers])}var{btoa:OX4,atob:NX4}=globalThis;function KO(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),Q=NX4(X);return Uint8Array.from(Q,(J)=>J.codePointAt(0))}function FK(Y){let X="";for(let Q=0;Q<Y.length;Q++)X+=String.fromCodePoint(Y[Q]);return OX4(X)}var yw1="AI_DownloadError",fw1=`vercel.ai.error.${yw1}`,LX4=Symbol.for(fw1),Rw1,jw1,Tu=class extends(jw1=M1,Rw1=LX4,jw1){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:yw1,message:G,cause:J});this[Rw1]=!0,this.url=Y,this.statusCode=X,this.statusText=Q}static isInstance(Y){return M1.hasMarker(Y,fw1)}};var zW=({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 Ww1({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${Y}${J}${G()}`},wX4=zW();function HO(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 KK(Y){return(Y instanceof Error||Y instanceof DOMException)&&(Y.name==="AbortError"||Y.name==="ResponseAborted"||Y.name==="TimeoutError")}var MX4=["fetch failed","failed to fetch"],AX4=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];function PX4(Y){if(!(Y instanceof Error))return!1;let X=Y.code;if(typeof X==="string"&&AX4.includes(X))return!0;return!1}function hw1({error:Y,url:X,requestBodyValues:Q}){if(KK(Y))return Y;if(Y instanceof TypeError&&MX4.includes(Y.message.toLowerCase())){let J=Y.cause;if(J!=null)return new Y9({message:`Cannot connect to API: ${J.message}`,cause:J,url:X,requestBodyValues:Q,isRetryable:!0})}if(PX4(Y))return new Y9({message:`Cannot connect to API: ${Y.message}`,cause:Y,url:X,requestBodyValues:Q,isRetryable:!0});return Y}function Eu(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 TX4(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 $K(Y,...X){let Q=new Headers(TX4(Y)),J=Q.get("user-agent")||"";return Q.set("user-agent",[J,...X].filter(Boolean).join(" ")),Object.fromEntries(Q.entries())}var bw1="4.0.14",EX4=()=>globalThis.fetch,j70=async({url:Y,headers:X={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:K=EX4()})=>{try{let W=await K(Y,{method:"GET",headers:$K(X,`ai-sdk/provider-utils/${bw1}`,Eu()),signal:G}),Z=u2(W);if(!W.ok){let H;try{H=await J({response:W,url:Y,requestBodyValues:{}})}catch(F){if(KK(F)||Y9.isInstance(F))throw F;throw new Y9({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(KK(H)||Y9.isInstance(H))throw H}throw new Y9({message:"Failed to process successful response",cause:H,statusCode:W.status,url:Y,responseHeaders:Z,requestBodyValues:{}})}}catch(W){throw hw1({error:W,url:Y,requestBodyValues:{}})}};function xw1(Y){return Y!=null}function uw1({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 g2({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}var CX4=/"__proto__"\s*:/,IX4=/"constructor"\s*:/;function Sw1(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(CX4.test(Y)===!1&&IX4.test(Y)===!1)return X;return RX4(X)}function RX4(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 gw1(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(Q){return Sw1(Y)}try{return Sw1(Y)}finally{Error.stackTraceLimit=X}}function S70(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]=Wq(Q[J])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(Wq):Wq(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(Wq);if(Y.allOf!=null)Y.allOf=Y.allOf.map(Wq);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(Wq);let{definitions:X}=Y;if(X!=null)for(let Q of Object.keys(X))X[Q]=Wq(X[Q]);return Y}function Wq(Y){if(typeof Y==="boolean")return Y;return S70(Y)}var jX4=Symbol("Let zodToJsonSchema decide on which parser to use"),kw1={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"},SX4=(Y)=>typeof Y==="string"?{...kw1,name:Y}:{...kw1,...Y};function TJ(){return{}}function kX4(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=n4(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 vX4(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 _X4(){return{type:"boolean"}}function mw1(Y,X){return n4(Y.type._def,X)}var yX4=(Y,X)=>{return n4(Y.innerType._def,X)};function lw1(Y,X,Q){let J=Q!=null?Q:X.dateStrategy;if(Array.isArray(J))return{anyOf:J.map((G,K)=>lw1(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 fX4(Y)}}var fX4=(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};function hX4(Y,X){return{...n4(Y.innerType._def,X),default:Y.defaultValue()}}function bX4(Y,X){return X.effectStrategy==="input"?n4(Y.schema._def,X):TJ()}function xX4(Y){return{type:"string",enum:Array.from(Y.values)}}var uX4=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function gX4(Y,X){let Q=[n4(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),n4(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter((G)=>!!G),J=[];return Q.forEach((G)=>{if(uX4(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 mX4(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}}var E70=void 0,vG={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(E70===void 0)E70=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return E70},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-_]*$/};function dw1(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":_G(Q,"email",J.message,X);break;case"format:idn-email":_G(Q,"idn-email",J.message,X);break;case"pattern:zod":QQ(Q,vG.email,J.message,X);break}break;case"url":_G(Q,"uri",J.message,X);break;case"uuid":_G(Q,"uuid",J.message,X);break;case"regex":QQ(Q,J.regex,J.message,X);break;case"cuid":QQ(Q,vG.cuid,J.message,X);break;case"cuid2":QQ(Q,vG.cuid2,J.message,X);break;case"startsWith":QQ(Q,RegExp(`^${C70(J.value,X)}`),J.message,X);break;case"endsWith":QQ(Q,RegExp(`${C70(J.value,X)}$`),J.message,X);break;case"datetime":_G(Q,"date-time",J.message,X);break;case"date":_G(Q,"date",J.message,X);break;case"time":_G(Q,"time",J.message,X);break;case"duration":_G(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":{QQ(Q,RegExp(C70(J.value,X)),J.message,X);break}case"ip":{if(J.version!=="v6")_G(Q,"ipv4",J.message,X);if(J.version!=="v4")_G(Q,"ipv6",J.message,X);break}case"base64url":QQ(Q,vG.base64url,J.message,X);break;case"jwt":QQ(Q,vG.jwt,J.message,X);break;case"cidr":{if(J.version!=="v6")QQ(Q,vG.ipv4Cidr,J.message,X);if(J.version!=="v4")QQ(Q,vG.ipv6Cidr,J.message,X);break}case"emoji":QQ(Q,vG.emoji(),J.message,X);break;case"ulid":{QQ(Q,vG.ulid,J.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{_G(Q,"binary",J.message,X);break}case"contentEncoding:base64":{Q.contentEncoding="base64";break}case"pattern:zod":{QQ(Q,vG.base64,J.message,X);break}}break}case"nanoid":QQ(Q,vG.nanoid,J.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return Q}function C70(Y,X){return X.patternStrategy==="escape"?dX4(Y):Y}var lX4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function dX4(Y){let X="";for(let Q=0;Q<Y.length;Q++){if(!lX4.has(Y[Q]))X+="\\";X+=Y[Q]}return X}function _G(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 QQ(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:vw1(X,J),...Q&&J.errorMessages&&{errorMessage:{pattern:Q}}})}else Y.pattern=vw1(X,J)}function vw1(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
1060
1060
  ]))`;continue}else if(G[F]==="$"){K+=`($|(?=[\r
@@ -1077,7 +1077,7 @@ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
1077
1077
  Option 2 - OIDC token:
1078
1078
  Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;return new Y({message:Z,statusCode:G,cause:K,generationId:W})}},ZA1="GatewayInvalidRequestError",Q54=`vercel.ai.gateway.error.${ZA1}`,fM1=Symbol.for(Q54),hM1,bM1,J54=class extends(bM1=GQ,hM1=fM1,bM1){constructor({message:Y="Invalid request",statusCode:X=400,cause:Q,generationId:J}={}){super({message:Y,statusCode:X,cause:Q,generationId:J});this[hM1]=!0,this.name=ZA1,this.type="invalid_request_error"}static isInstance(Y){return GQ.hasMarker(Y)&&fM1 in Y}},KA1="GatewayRateLimitError",G54=`vercel.ai.gateway.error.${KA1}`,xM1=Symbol.for(G54),uM1,gM1,W54=class extends(gM1=GQ,uM1=xM1,gM1){constructor({message:Y="Rate limit exceeded",statusCode:X=429,cause:Q,generationId:J}={}){super({message:Y,statusCode:X,cause:Q,generationId:J});this[uM1]=!0,this.name=KA1,this.type="rate_limit_exceeded"}static isInstance(Y){return GQ.hasMarker(Y)&&xM1 in Y}},HA1="GatewayModelNotFoundError",Z54=`vercel.ai.gateway.error.${HA1}`,mM1=Symbol.for(Z54),K54=O9(()=>p8(B.object({modelId:B.string()}))),lM1,dM1,H54=class extends(dM1=GQ,lM1=mM1,dM1){constructor({message:Y="Model not found",statusCode:X=404,modelId:Q,cause:J,generationId:G}={}){super({message:Y,statusCode:X,cause:J,generationId:G});this[lM1]=!0,this.name=HA1,this.type="model_not_found",this.modelId=Q}static isInstance(Y){return GQ.hasMarker(Y)&&mM1 in Y}},FA1="GatewayInternalServerError",F54=`vercel.ai.gateway.error.${FA1}`,pM1=Symbol.for(F54),cM1,nM1,iM1=class extends(nM1=GQ,cM1=pM1,nM1){constructor({message:Y="Internal server error",statusCode:X=500,cause:Q,generationId:J}={}){super({message:Y,statusCode:X,cause:Q,generationId:J});this[cM1]=!0,this.name=FA1,this.type="internal_server_error"}static isInstance(Y){return GQ.hasMarker(Y)&&pM1 in Y}},$A1="GatewayResponseError",$54=`vercel.ai.gateway.error.${$A1}`,aM1=Symbol.for($54),rM1,oM1,V54=class extends(oM1=GQ,rM1=aM1,oM1){constructor({message:Y="Invalid response from Gateway",statusCode:X=502,response:Q,validationError:J,cause:G,generationId:K}={}){super({message:Y,statusCode:X,cause:G,generationId:K});this[rM1]=!0,this.name=$A1,this.type="response_error",this.response=Q,this.validationError=J}static isInstance(Y){return GQ.hasMarker(Y)&&aM1 in Y}};async function sM1({response:Y,statusCode:X,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var K;let W=await JQ({value:Y,schema:q54});if(!W.success){let V=typeof Y==="object"&&Y!==null&&"generationId"in Y?Y.generationId:void 0;return new V54({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 vu.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:X,cause:J,generationId:$});case"invalid_request_error":return new J54({message:F,statusCode:X,cause:J,generationId:$});case"rate_limit_exceeded":return new W54({message:F,statusCode:X,cause:J,generationId:$});case"model_not_found":{let V=await JQ({value:Z.error.param,schema:K54});return new H54({message:F,statusCode:X,modelId:V.success?V.value.modelId:void 0,cause:J,generationId:$})}case"internal_server_error":return new iM1({message:F,statusCode:X,cause:J,generationId:$});default:return new iM1({message:F,statusCode:X,cause:J,generationId:$})}}var q54=O9(()=>p8(B.object({error:B.object({message:B.string(),type:B.string().nullish(),param:B.unknown().nullish(),code:B.union([B.string(),B.number()]).nullish()}),generationId:B.string().nullish()}))),VA1="GatewayTimeoutError",B54=`vercel.ai.gateway.error.${VA1}`,tM1=Symbol.for(B54),eM1,YA1,XA1=class Y extends(YA1=GQ,eM1=tM1,YA1){constructor({message:X="Request timed out",statusCode:Q=408,cause:J,generationId:G}={}){super({message:X,statusCode:Q,cause:J,generationId:G});this[eM1]=!0,this.name=VA1,this.type="timeout_error"}static isInstance(X){return GQ.hasMarker(X)&&tM1 in X}static createTimeoutError({originalMessage:X,statusCode:Q=408,cause:J,generationId:G}){let K=`Gateway request timed out: ${X}
1079
1079
 
1080
- This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;return new Y({message:K,statusCode:Q,cause:J,generationId:G})}};function QA1(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 qK(Y,X){var Q;if(GQ.isInstance(Y))return Y;if(QA1(Y))return XA1.createTimeoutError({originalMessage:Y instanceof Error?Y.message:"Unknown error",cause:Y});if(Y9.isInstance(Y)){if(Y.cause&&QA1(Y.cause))return XA1.createTimeoutError({originalMessage:Y.message,cause:Y});return await sM1({response:z54(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X})}return await sM1({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function z54(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{}}var qA1="ai-gateway-auth-method";async function Fq(Y){let X=await JQ({value:Y[qA1],schema:U54});return X.success?X.value:void 0}var U54=O9(()=>p8(B.union([B.literal("api-key"),B.literal("oidc")]))),JA1=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await j70({url:`${this.config.baseURL}/config`,headers:await j9(this.config.headers()),successfulResponseHandler:fG(D54),failedResponseHandler:k5({errorSchema:B.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await qK(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await j70({url:`${Y.origin}/v1/credits`,headers:await j9(this.config.headers()),successfulResponseHandler:fG(O54),failedResponseHandler:k5({errorSchema:B.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await qK(Y)}}},D54=O9(()=>p8(B.object({models:B.array(B.object({id:B.string(),name:B.string(),description:B.string().nullish(),pricing:B.object({input:B.string(),output:B.string(),input_cache_read:B.string().nullish(),input_cache_write:B.string().nullish()}).transform(({input:Y,output:X,input_cache_read:Q,input_cache_write:J})=>({input:Y,output:X,...Q?{cachedInputTokens:Q}:{},...J?{cacheCreationInputTokens:J}:{}})).nullish(),specification:B.object({specificationVersion:B.literal("v3"),provider:B.string(),modelId:B.string()}),modelType:B.enum(["embedding","image","language","video"]).nullish()}))}))),O54=O9(()=>p8(B.object({balance:B.string(),total_used:B.string()}).transform(({balance:Y,total_used:X})=>({balance:Y,totalUsed:X})))),N54=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 j9(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await VK({url:this.getUrl(),headers:HK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await j9(this.config.o11yHeaders)),body:X,successfulResponseHandler:fG(B.any()),failedResponseHandler:k5({errorSchema:B.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 qK(K,await Fq(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await j9(this.config.headers());try{let{value:K,responseHeaders:W}=await VK({url:this.getUrl(),headers:HK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await j9(this.config.o11yHeaders)),body:X,successfulResponseHandler:nw1(B.any()),failedResponseHandler:k5({errorSchema:B.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 qK(K,await Fq(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)}}},L54=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 j9(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await VK({url:this.getUrl(),headers:HK(K,X!=null?X:{},this.getModelConfigHeaders(),await j9(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:fG(w54),failedResponseHandler:k5({errorSchema:B.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 qK(W,await Fq(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},w54=O9(()=>p8(B.object({embeddings:B.array(B.array(B.number())),usage:B.object({tokens:B.number()}).nullish(),providerMetadata:B.record(B.string(),B.record(B.string(),B.unknown())).optional()}))),M54=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,z;let D=await j9(this.config.headers());try{let{responseHeaders:O,value:L,rawValue:w}=await VK({url:this.getUrl(),headers:HK(D,H!=null?H:{},this.getModelConfigHeaders(),await j9(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)=>GA1(I))},...W&&{mask:GA1(W)}},successfulResponseHandler:fG(E54),failedResponseHandler:k5({errorSchema:B.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:(z=L.usage.totalTokens)!=null?z:void 0}}}}catch(O){throw qK(O,await Fq(D))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}};function GA1(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:FK(Y.data)};return Y}var A54=B.object({images:B.array(B.unknown()).optional()}).catchall(B.unknown()),P54=B.discriminatedUnion("type",[B.object({type:B.literal("unsupported"),feature:B.string(),details:B.string().optional()}),B.object({type:B.literal("compatibility"),feature:B.string(),details:B.string().optional()}),B.object({type:B.literal("other"),message:B.string()})]),T54=B.object({inputTokens:B.number().nullish(),outputTokens:B.number().nullish(),totalTokens:B.number().nullish()}),E54=B.object({images:B.array(B.string()),warnings:B.array(P54).optional(),providerMetadata:B.record(B.string(),A54).optional(),usage:T54.optional()}),C54=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 j9(this.config.headers());try{let{responseHeaders:z,value:D,rawValue:O}=await VK({url:this.getUrl(),headers:HK(q,F!=null?F:{},this.getModelConfigHeaders(),await j9(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:I54(Z)}},successfulResponseHandler:fG(S54),failedResponseHandler:k5({errorSchema:B.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:z}}}catch(z){throw qK(z,await Fq(q))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}};function I54(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:FK(Y.data)};return Y}var R54=B.object({videos:B.array(B.unknown()).optional()}).catchall(B.unknown()),j54=B.union([B.object({type:B.literal("url"),url:B.string(),mediaType:B.string()}),B.object({type:B.literal("base64"),data:B.string(),mediaType:B.string()})]),S54=B.object({videos:B.array(j54),warnings:B.array(B.object({type:B.literal("other"),message:B.string()})).optional(),providerMetadata:B.record(B.string(),R54).optional()}),k54=O9(()=>p8(B.object({objective:B.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:B.array(B.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:B.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:B.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:B.object({include_domains:B.array(B.string()).optional().describe("List of domains to include in search results."),exclude_domains:B.array(B.string()).optional().describe("List of domains to exclude from search results."),after_date:B.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:B.object({max_chars_per_result:B.number().optional().describe("Maximum characters per result."),max_chars_total:B.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:B.object({max_age_seconds:B.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),v54=O9(()=>p8(B.union([B.object({searchId:B.string(),results:B.array(B.object({url:B.string(),title:B.string(),excerpt:B.string(),publishDate:B.string().nullable().optional(),relevanceScore:B.number().optional()}))}),B.object({error:B.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:B.number().optional(),message:B.string()})]))),_54=Cu({id:"gateway.parallel_search",inputSchema:k54,outputSchema:v54}),y54=(Y={})=>_54(Y),f54=O9(()=>p8(B.object({query:B.union([B.string(),B.array(B.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:B.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:B.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:B.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:B.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:B.array(B.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:B.array(B.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:B.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:B.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:B.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:B.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:B.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),h54=O9(()=>p8(B.union([B.object({results:B.array(B.object({title:B.string(),url:B.string(),snippet:B.string(),date:B.string().optional(),lastUpdated:B.string().optional()})),id:B.string()}),B.object({error:B.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:B.number().optional(),message:B.string()})]))),b54=Cu({id:"gateway.perplexity_search",inputSchema:f54,outputSchema:h54}),x54=(Y={})=>b54(Y),u54={parallelSearch:y54,perplexitySearch:x54};async function g54(){var Y;return(Y=BA1.getContext().headers)==null?void 0:Y["x-vercel-id"]}var m54="3.0.40",l54="0.0.1";function d54(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=iw1(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await p54(Y);return $K({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":l54,[qA1]:O.authMethod,...Y.headers},`ai-sdk/gateway/${m54}`)}catch(O){throw vu.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=g2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=g2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=g2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await g54();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 N54(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 JA1({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((P)=>{return G=P,P}).catch(async(P)=>{throw await qK(P,await Fq(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new JA1({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await qK(O,await Fq(await H()))})},z=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return $(O)};z.specificationVersion="v3",z.getAvailableModels=V,z.getCredits=q,z.imageModel=(O)=>{return new M54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},z.languageModel=$;let D=(O)=>{return new L54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return z.embeddingModel=D,z.textEmbeddingModel=D,z.videoModel=(O)=>{return new C54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},z.chat=z.languageModel,z.embedding=z.embeddingModel,z.image=z.imageModel,z.video=z.videoModel,z.tools=u54,z}var UA1=d54();async function p54(Y){let X=g2({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await zA1.getVercelOidcToken(),authMethod:"oidc"}}n6();n6();n6();n6();n6();n6();var RP1=l6(l0(),1),BO=l6(l0(),1);n6();n6();var c54=Object.defineProperty,n54=(Y,X)=>{for(var Q in X)c54(Y,Q,{get:X[Q],enumerable:!0})},RA1="AI_InvalidArgumentError",jA1=`vercel.ai.error.${RA1}`,i54=Symbol.for(jA1),SA1,bG=class extends M1{constructor({parameter:Y,value:X,message:Q}){super({name:RA1,message:`Invalid argument for parameter ${Y}: ${Q}`});this[SA1]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return M1.hasMarker(Y,jA1)}};SA1=i54;var a54="AI_InvalidStreamPartError",r54=`vercel.ai.error.${a54}`,o54=Symbol.for(r54),s54;s54=o54;var kA1="AI_InvalidToolApprovalError",vA1=`vercel.ai.error.${kA1}`,t54=Symbol.for(vA1),_A1,e54=class extends M1{constructor({approvalId:Y}){super({name:kA1,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[_A1]=!0,this.approvalId=Y}static isInstance(Y){return M1.hasMarker(Y,vA1)}};_A1=t54;var yA1="AI_InvalidToolInputError",fA1=`vercel.ai.error.${yA1}`,YG4=Symbol.for(fA1),hA1,JW0=class extends M1{constructor({toolInput:Y,toolName:X,cause:Q,message:J=`Invalid input for tool ${X}: ${kG(Q)}`}){super({name:yA1,message:J,cause:Q});this[hA1]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return M1.hasMarker(Y,fA1)}};hA1=YG4;var bA1="AI_ToolCallNotFoundForApprovalError",xA1=`vercel.ai.error.${bA1}`,XG4=Symbol.for(xA1),uA1,GW0=class extends M1{constructor({toolCallId:Y,approvalId:X}){super({name:bA1,message:`Tool call "${Y}" not found for approval request "${X}".`});this[uA1]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return M1.hasMarker(Y,xA1)}};uA1=XG4;var gA1="AI_MissingToolResultsError",mA1=`vercel.ai.error.${gA1}`,QG4=Symbol.for(mA1),lA1,DA1=class extends M1{constructor({toolCallIds:Y}){super({name:gA1,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[lA1]=!0,this.toolCallIds=Y}static isInstance(Y){return M1.hasMarker(Y,mA1)}};lA1=QG4;var JG4="AI_NoImageGeneratedError",GG4=`vercel.ai.error.${JG4}`,WG4=Symbol.for(GG4),ZG4;ZG4=WG4;var dA1="AI_NoObjectGeneratedError",pA1=`vercel.ai.error.${dA1}`,KG4=Symbol.for(pA1),cA1,b3=class extends M1{constructor({message:Y="No object generated.",cause:X,text:Q,response:J,usage:G,finishReason:K}){super({name:dA1,message:Y,cause:X});this[cA1]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=K}static isInstance(Y){return M1.hasMarker(Y,pA1)}};cA1=KG4;var nA1="AI_NoOutputGeneratedError",iA1=`vercel.ai.error.${nA1}`,HG4=Symbol.for(iA1),aA1,rA1=class extends M1{constructor({message:Y="No output generated.",cause:X}={}){super({name:nA1,message:Y,cause:X});this[aA1]=!0}static isInstance(Y){return M1.hasMarker(Y,iA1)}};aA1=HG4;var FG4="AI_NoSpeechGeneratedError",$G4=`vercel.ai.error.${FG4}`,VG4=Symbol.for($G4),qG4;qG4=VG4;var BG4="AI_NoTranscriptGeneratedError",zG4=`vercel.ai.error.${BG4}`,UG4=Symbol.for(zG4),DG4;DG4=UG4;var OG4="AI_NoVideoGeneratedError",NG4=`vercel.ai.error.${OG4}`,LG4=Symbol.for(NG4),wG4;wG4=LG4;var oA1="AI_NoSuchToolError",sA1=`vercel.ai.error.${oA1}`,MG4=Symbol.for(sA1),tA1,t70=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:oA1,message:Q});this[tA1]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return M1.hasMarker(Y,sA1)}};tA1=MG4;var eA1="AI_ToolCallRepairError",YP1=`vercel.ai.error.${eA1}`,AG4=Symbol.for(YP1),XP1,PG4=class extends M1{constructor({cause:Y,originalError:X,message:Q=`Error repairing tool call: ${kG(Y)}`}){super({name:eA1,message:Q,cause:Y});this[XP1]=!0,this.originalError=X}static isInstance(Y){return M1.hasMarker(Y,YP1)}};XP1=AG4;var TG4=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}},QP1="AI_UIMessageStreamError",JP1=`vercel.ai.error.${QP1}`,EG4=Symbol.for(JP1),GP1,qO=class extends M1{constructor({chunkType:Y,chunkId:X,message:Q}){super({name:QP1,message:Q});this[GP1]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return M1.hasMarker(Y,JP1)}};GP1=EG4;var CG4="AI_InvalidDataContentError",IG4=`vercel.ai.error.${CG4}`,RG4=Symbol.for(IG4),jG4;jG4=RG4;var WP1="AI_InvalidMessageRoleError",ZP1=`vercel.ai.error.${WP1}`,SG4=Symbol.for(ZP1),KP1,kG4=class extends M1{constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:WP1,message:X});this[KP1]=!0,this.role=Y}static isInstance(Y){return M1.hasMarker(Y,ZP1)}};KP1=SG4;var HP1="AI_MessageConversionError",FP1=`vercel.ai.error.${HP1}`,vG4=Symbol.for(FP1),$P1,_G4=class extends M1{constructor({originalMessage:Y,message:X}){super({name:HP1,message:X});this[$P1]=!0,this.originalMessage=Y}static isInstance(Y){return M1.hasMarker(Y,FP1)}};$P1=vG4;var VP1="AI_RetryError",qP1=`vercel.ai.error.${VP1}`,yG4=Symbol.for(qP1),BP1,OA1=class extends M1{constructor({message:Y,reason:X,errors:Q}){super({name:VP1,message:Y});this[BP1]=!0,this.reason=X,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(Y){return M1.hasMarker(Y,qP1)}};BP1=yG4;function fG4({warning:Y,provider:X,model:Q}){let J=`AI SDK Warning (${X} / ${Q}):`;switch(Y.type){case"unsupported":{let G=`${J} The feature "${Y.feature}" is not supported.`;if(Y.details)G+=` ${Y.details}`;return G}case"compatibility":{let G=`${J} The feature "${Y.feature}" is used in a compatibility mode.`;if(Y.details)G+=` ${Y.details}`;return G}case"other":return`${J} ${Y.message}`;default:return`${J} ${JSON.stringify(Y,null,2)}`}}var hG4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",NA1=!1,WW0=(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(!NA1)NA1=!0,console.info(hG4);for(let Q of Y.warnings)console.warn(fG4({warning:Q,provider:Y.provider,model:Y.model}))};function bG4({provider:Y,modelId:X}){WW0({warnings:[{type:"compatibility",feature:"specificationVersion",details:"Using v2 specification compatibility mode. Some features may not be available."}],provider:Y,model:X})}function xG4(Y){if(Y.specificationVersion==="v3")return Y;return bG4({provider:Y.provider,modelId:Y.modelId}),new Proxy(Y,{get(X,Q){switch(Q){case"specificationVersion":return"v3";case"doGenerate":return async(...J)=>{let G=await X.doGenerate(...J);return{...G,finishReason:zP1(G.finishReason),usage:UP1(G.usage)}};case"doStream":return async(...J)=>{let G=await X.doStream(...J);return{...G,stream:uG4(G.stream)}};default:return X[Q]}}})}function uG4(Y){return Y.pipeThrough(new TransformStream({transform(X,Q){switch(X.type){case"finish":Q.enqueue({...X,finishReason:zP1(X.finishReason),usage:UP1(X.usage)});break;default:Q.enqueue(X);break}}}))}function zP1(Y){return{unified:Y==="unknown"?"other":Y,raw:void 0}}function UP1(Y){return{inputTokens:{total:Y.inputTokens,noCache:void 0,cacheRead:Y.cachedInputTokens,cacheWrite:void 0},outputTokens:{total:Y.outputTokens,text:void 0,reasoning:Y.reasoningTokens}}}function yu(Y){if(typeof Y!=="string"){if(Y.specificationVersion!=="v3"&&Y.specificationVersion!=="v2"){let X=Y;throw new TG4({version:X.specificationVersion,provider:X.provider,modelId:X.modelId})}return xG4(Y)}return gG4().languageModel(Y)}function gG4(){var Y;return(Y=globalThis.AI_SDK_DEFAULT_PROVIDER)!=null?Y:UA1}function ZW0(Y){if(Y==null)return;if(typeof Y==="number")return Y;return Y.totalMs}function DP1(Y){if(Y==null||typeof Y==="number")return;return Y.stepMs}function mG4(Y){if(Y==null||typeof Y==="number")return;return Y.chunkMs}var lG4=[{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]}];var dG4=(Y)=>{let X=typeof Y==="string"?KO(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)};function pG4(Y){return typeof Y==="string"&&Y.startsWith("SUQz")||typeof Y!=="string"&&Y.length>10&&Y[0]===73&&Y[1]===68&&Y[2]===51?dG4(Y):Y}function cG4({data:Y,signatures:X}){let Q=pG4(Y),J=typeof Q==="string"?KO(Q.substring(0,Math.min(Q.length,24))):Q;for(let G of X)if(J.length>=G.bytesPrefix.length&&G.bytesPrefix.every((K,W)=>K===null||J[W]===K))return G.mediaType;return}var OP1="6.0.79",nG4=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:$K({},`ai-sdk/${OP1}`,Eu())});if(!J.ok)throw new Tu({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(Tu.isInstance(J))throw J;throw new Tu({url:Q,cause:J})}},iG4=(Y=nG4)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q)));function aG4(Y){try{let[X,Q]=Y.split(",");return{mediaType:X.split(";")[0].split(":")[1],base64Content:Q}}catch(X){return{mediaType:void 0,base64Content:void 0}}}var NP1=B.union([B.string(),B.instanceof(Uint8Array),B.instanceof(ArrayBuffer),B.custom((Y)=>{var X,Q;return(Q=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?Q:!1},{message:"Must be a Buffer"})]);function LP1(Y){if(Y instanceof Uint8Array)return{data:Y,mediaType:void 0};if(Y instanceof ArrayBuffer)return{data:new Uint8Array(Y),mediaType:void 0};if(typeof Y==="string")try{Y=new URL(Y)}catch(X){}if(Y instanceof URL&&Y.protocol==="data:"){let{mediaType:X,base64Content:Q}=aG4(Y.toString());if(X==null||Q==null)throw new M1({name:"InvalidDataContentError",message:`Invalid data URL format in content ${Y.toString()}`});return{data:Q,mediaType:X}}return{data:Y,mediaType:void 0}}function rG4(Y){if(typeof Y==="string")return Y;if(Y instanceof ArrayBuffer)return FK(new Uint8Array(Y));return FK(Y)}function i2(Y){return Y===void 0?[]:Array.isArray(Y)?Y:[Y]}async function wP1({prompt:Y,supportedUrls:X,download:Q=iG4()}){let J=await sG4(Y.messages,Q,X),G=new Map;for(let F of Y.messages)if(F.role==="assistant"&&Array.isArray(F.content)){for(let $ of F.content)if($.type==="tool-approval-request"&&"approvalId"in $&&"toolCallId"in $)G.set($.approvalId,$.toolCallId)}let K=new Set;for(let F of Y.messages)if(F.role==="tool"){for(let $ of F.content)if($.type==="tool-approval-response"){let V=G.get($.approvalId);if(V)K.add(V)}}let W=[...Y.system!=null?typeof Y.system==="string"?[{role:"system",content:Y.system}]:i2(Y.system).map((F)=>({role:"system",content:F.content,providerOptions:F.providerOptions})):[],...Y.messages.map((F)=>oG4({message:F,downloadedAssets:J}))],Z=[];for(let F of W){if(F.role!=="tool"){Z.push(F);continue}let $=Z.at(-1);if(($==null?void 0:$.role)==="tool")$.content.push(...F.content);else Z.push(F)}let H=new Set;for(let F of Z)switch(F.role){case"assistant":{for(let $ of F.content)if($.type==="tool-call"&&!$.providerExecuted)H.add($.toolCallId);break}case"tool":{for(let $ of F.content)if($.type==="tool-result")H.delete($.toolCallId);break}case"user":case"system":for(let $ of K)H.delete($);if(H.size>0)throw new DA1({toolCallIds:Array.from(H)});break}for(let F of K)H.delete(F);if(H.size>0)throw new DA1({toolCallIds:Array.from(H)});return Z.filter((F)=>F.role!=="tool"||F.content.length>0)}function oG4({message:Y,downloadedAssets:X}){let Q=Y.role;switch(Q){case"system":return{role:"system",content:Y.content,providerOptions:Y.providerOptions};case"user":{if(typeof Y.content==="string")return{role:"user",content:[{type:"text",text:Y.content}],providerOptions:Y.providerOptions};return{role:"user",content:Y.content.map((J)=>tG4(J,X)).filter((J)=>J.type!=="text"||J.text!==""),providerOptions:Y.providerOptions}}case"assistant":{if(typeof Y.content==="string")return{role:"assistant",content:[{type:"text",text:Y.content}],providerOptions:Y.providerOptions};return{role:"assistant",content:Y.content.filter((J)=>J.type!=="text"||J.text!==""||J.providerOptions!=null).filter((J)=>J.type!=="tool-approval-request").map((J)=>{let G=J.providerOptions;switch(J.type){case"file":{let{data:K,mediaType:W}=LP1(J.data);return{type:"file",data:K,filename:J.filename,mediaType:W!=null?W:J.mediaType,providerOptions:G}}case"reasoning":return{type:"reasoning",text:J.text,providerOptions:G};case"text":return{type:"text",text:J.text,providerOptions:G};case"tool-call":return{type:"tool-call",toolCallId:J.toolCallId,toolName:J.toolName,input:J.input,providerExecuted:J.providerExecuted,providerOptions:G};case"tool-result":return{type:"tool-result",toolCallId:J.toolCallId,toolName:J.toolName,output:LA1(J.output),providerOptions:G}}}),providerOptions:Y.providerOptions}}case"tool":return{role:"tool",content:Y.content.filter((J)=>J.type!=="tool-approval-response"||J.providerExecuted).map((J)=>{switch(J.type){case"tool-result":return{type:"tool-result",toolCallId:J.toolCallId,toolName:J.toolName,output:LA1(J.output),providerOptions:J.providerOptions};case"tool-approval-response":return{type:"tool-approval-response",approvalId:J.approvalId,approved:J.approved,reason:J.reason}}}),providerOptions:Y.providerOptions};default:throw new kG4({role:Q})}}async function sG4(Y,X,Q){let J=Y.filter((K)=>K.role==="user").map((K)=>K.content).filter((K)=>Array.isArray(K)).flat().filter((K)=>K.type==="image"||K.type==="file").map((K)=>{var W;let Z=(W=K.mediaType)!=null?W:K.type==="image"?"image/*":void 0,H=K.type==="image"?K.image:K.data;if(typeof H==="string")try{H=new URL(H)}catch(F){}return{mediaType:Z,data:H}}).filter((K)=>K.data instanceof URL).map((K)=>({url:K.data,isUrlSupportedByModel:K.mediaType!=null&&uw1({url:K.data.toString(),mediaType:K.mediaType,supportedUrls:Q})})),G=await X(J);return Object.fromEntries(G.map((K,W)=>K==null?null:[J[W].url.toString(),{data:K.data,mediaType:K.mediaType}]).filter((K)=>K!=null))}function tG4(Y,X){var Q;if(Y.type==="text")return{type:"text",text:Y.text,providerOptions:Y.providerOptions};let J,G=Y.type;switch(G){case"image":J=Y.image;break;case"file":J=Y.data;break;default:throw Error(`Unsupported part type: ${G}`)}let{data:K,mediaType:W}=LP1(J),Z=W!=null?W:Y.mediaType,H=K;if(H instanceof URL){let F=X[H.toString()];if(F)H=F.data,Z!=null||(Z=F.mediaType)}switch(G){case"image":{if(H instanceof Uint8Array||typeof H==="string")Z=(Q=cG4({data:H,signatures:lG4}))!=null?Q:Z;return{type:"file",mediaType:Z!=null?Z:"image/*",filename:void 0,data:H,providerOptions:Y.providerOptions}}case"file":{if(Z==null)throw Error("Media type is missing for file part");return{type:"file",mediaType:Z,filename:Y.filename,data:H,providerOptions:Y.providerOptions}}}}function LA1(Y){if(Y.type!=="content")return Y;return{type:"content",value:Y.value.map((X)=>{if(X.type!=="media")return X;if(X.mediaType.startsWith("image/"))return{type:"image-data",data:X.data,mediaType:X.mediaType};return{type:"file-data",data:X.data,mediaType:X.mediaType}})}}async function $q({toolCallId:Y,input:X,output:Q,tool:J,errorMode:G}){if(G==="text")return{type:"error-text",value:kG(Q)};else if(G==="json")return{type:"error-json",value:wA1(Q)};if(J==null?void 0:J.toModelOutput)return await J.toModelOutput({toolCallId:Y,input:X,output:Q});return typeof Q==="string"?{type:"text",value:Q}:{type:"json",value:wA1(Q)}}function wA1(Y){return Y===void 0?null:Y}function e70({maxOutputTokens:Y,temperature:X,topP:Q,topK:J,presencePenalty:G,frequencyPenalty:K,seed:W,stopSequences:Z}){if(Y!=null){if(!Number.isInteger(Y))throw new bG({parameter:"maxOutputTokens",value:Y,message:"maxOutputTokens must be an integer"});if(Y<1)throw new bG({parameter:"maxOutputTokens",value:Y,message:"maxOutputTokens must be >= 1"})}if(X!=null){if(typeof X!=="number")throw new bG({parameter:"temperature",value:X,message:"temperature must be a number"})}if(Q!=null){if(typeof Q!=="number")throw new bG({parameter:"topP",value:Q,message:"topP must be a number"})}if(J!=null){if(typeof J!=="number")throw new bG({parameter:"topK",value:J,message:"topK must be a number"})}if(G!=null){if(typeof G!=="number")throw new bG({parameter:"presencePenalty",value:G,message:"presencePenalty must be a number"})}if(K!=null){if(typeof K!=="number")throw new bG({parameter:"frequencyPenalty",value:K,message:"frequencyPenalty must be a number"})}if(W!=null){if(!Number.isInteger(W))throw new bG({parameter:"seed",value:W,message:"seed must be an integer"})}return{maxOutputTokens:Y,temperature:X,topP:Q,topK:J,presencePenalty:G,frequencyPenalty:K,stopSequences:Z,seed:W}}function eG4(Y){return Y!=null&&Object.keys(Y).length>0}async function MP1({tools:Y,toolChoice:X,activeTools:Q}){if(!eG4(Y))return{tools:void 0,toolChoice:void 0};let J=Q!=null?Object.entries(Y).filter(([K])=>Q.includes(K)):Object.entries(Y),G=[];for(let[K,W]of J){let Z=W.type;switch(Z){case void 0:case"dynamic":case"function":G.push({type:"function",name:K,description:W.description,inputSchema:await UW(W.inputSchema).jsonSchema,...W.inputExamples!=null?{inputExamples:W.inputExamples}:{},providerOptions:W.providerOptions,...W.strict!=null?{strict:W.strict}:{}});break;case"provider":G.push({type:"provider",name:K,id:W.id,args:W.args});break;default:throw Error(`Unsupported tool type: ${Z}`)}}return{tools:G,toolChoice:X==null?{type:"auto"}:typeof X==="string"?{type:X}:{type:"tool",toolName:X.toolName}}}var a2=B.lazy(()=>B.union([B.null(),B.string(),B.number(),B.boolean(),B.record(B.string(),a2.optional()),B.array(a2)])),o1=B.record(B.string(),B.record(B.string(),a2.optional())),AP1=B.object({type:B.literal("text"),text:B.string(),providerOptions:o1.optional()}),Y74=B.object({type:B.literal("image"),image:B.union([NP1,B.instanceof(URL)]),mediaType:B.string().optional(),providerOptions:o1.optional()}),PP1=B.object({type:B.literal("file"),data:B.union([NP1,B.instanceof(URL)]),filename:B.string().optional(),mediaType:B.string(),providerOptions:o1.optional()}),X74=B.object({type:B.literal("reasoning"),text:B.string(),providerOptions:o1.optional()}),Q74=B.object({type:B.literal("tool-call"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerOptions:o1.optional(),providerExecuted:B.boolean().optional()}),J74=B.discriminatedUnion("type",[B.object({type:B.literal("text"),value:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("json"),value:a2,providerOptions:o1.optional()}),B.object({type:B.literal("execution-denied"),reason:B.string().optional(),providerOptions:o1.optional()}),B.object({type:B.literal("error-text"),value:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("error-json"),value:a2,providerOptions:o1.optional()}),B.object({type:B.literal("content"),value:B.array(B.union([B.object({type:B.literal("text"),text:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("media"),data:B.string(),mediaType:B.string()}),B.object({type:B.literal("file-data"),data:B.string(),mediaType:B.string(),filename:B.string().optional(),providerOptions:o1.optional()}),B.object({type:B.literal("file-url"),url:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("file-id"),fileId:B.union([B.string(),B.record(B.string(),B.string())]),providerOptions:o1.optional()}),B.object({type:B.literal("image-data"),data:B.string(),mediaType:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("image-url"),url:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("image-file-id"),fileId:B.union([B.string(),B.record(B.string(),B.string())]),providerOptions:o1.optional()}),B.object({type:B.literal("custom"),providerOptions:o1.optional()})]))})]),TP1=B.object({type:B.literal("tool-result"),toolCallId:B.string(),toolName:B.string(),output:J74,providerOptions:o1.optional()}),G74=B.object({type:B.literal("tool-approval-request"),approvalId:B.string(),toolCallId:B.string()}),W74=B.object({type:B.literal("tool-approval-response"),approvalId:B.string(),approved:B.boolean(),reason:B.string().optional()}),Z74=B.object({role:B.literal("system"),content:B.string(),providerOptions:o1.optional()}),K74=B.object({role:B.literal("user"),content:B.union([B.string(),B.array(B.union([AP1,Y74,PP1]))]),providerOptions:o1.optional()}),H74=B.object({role:B.literal("assistant"),content:B.union([B.string(),B.array(B.union([AP1,PP1,X74,Q74,TP1,G74]))]),providerOptions:o1.optional()}),F74=B.object({role:B.literal("tool"),content:B.array(B.union([TP1,W74])),providerOptions:o1.optional()}),$74=B.union([Z74,K74,H74,F74]);async function EP1(Y){if(Y.prompt==null&&Y.messages==null)throw new Gq({prompt:Y,message:"prompt or messages must be defined"});if(Y.prompt!=null&&Y.messages!=null)throw new Gq({prompt:Y,message:"prompt and messages cannot be defined at the same time"});if(Y.system!=null&&typeof Y.system!=="string"&&!i2(Y.system).every((J)=>typeof J==="object"&&J!==null&&("role"in J)&&J.role==="system"))throw new Gq({prompt:Y,message:"system must be a string, SystemModelMessage, or array of SystemModelMessage"});let X;if(Y.prompt!=null&&typeof Y.prompt==="string")X=[{role:"user",content:Y.prompt}];else if(Y.prompt!=null&&Array.isArray(Y.prompt))X=Y.prompt;else if(Y.messages!=null)X=Y.messages;else throw new Gq({prompt:Y,message:"prompt or messages must be defined"});if(X.length===0)throw new Gq({prompt:Y,message:"messages must not be empty"});let Q=await JQ({value:X,schema:B.array($74)});if(!Q.success)throw new Gq({prompt:Y,message:"The messages do not match the ModelMessage[] schema.",cause:Q.error});return{messages:X,system:Y.system}}function CP1(Y){if(!vu.isInstance(Y))return Y;let X=(process==null?void 0:"production")==="production",Q="https://ai-sdk.dev/unauthenticated-ai-gateway";if(X)return new M1({name:"GatewayError",message:`Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${Q}`});return Object.assign(Error(`\x1B[1m\x1B[31mUnauthenticated request to AI Gateway.\x1B[0m
1080
+ This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;return new Y({message:K,statusCode:Q,cause:J,generationId:G})}};function QA1(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 qK(Y,X){var Q;if(GQ.isInstance(Y))return Y;if(QA1(Y))return XA1.createTimeoutError({originalMessage:Y instanceof Error?Y.message:"Unknown error",cause:Y});if(Y9.isInstance(Y)){if(Y.cause&&QA1(Y.cause))return XA1.createTimeoutError({originalMessage:Y.message,cause:Y});return await sM1({response:z54(Y),statusCode:(Q=Y.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:Y,authMethod:X})}return await sM1({response:{},statusCode:500,defaultMessage:Y instanceof Error?`Gateway request failed: ${Y.message}`:"Unknown Gateway error",cause:Y,authMethod:X})}function z54(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{}}var qA1="ai-gateway-auth-method";async function Fq(Y){let X=await JQ({value:Y[qA1],schema:U54});return X.success?X.value:void 0}var U54=O9(()=>p8(B.union([B.literal("api-key"),B.literal("oidc")]))),JA1=class{constructor(Y){this.config=Y}async getAvailableModels(){try{let{value:Y}=await j70({url:`${this.config.baseURL}/config`,headers:await j9(this.config.headers()),successfulResponseHandler:fG(D54),failedResponseHandler:k5({errorSchema:B.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Y}catch(Y){throw await qK(Y)}}async getCredits(){try{let Y=new URL(this.config.baseURL),{value:X}=await j70({url:`${Y.origin}/v1/credits`,headers:await j9(this.config.headers()),successfulResponseHandler:fG(O54),failedResponseHandler:k5({errorSchema:B.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return X}catch(Y){throw await qK(Y)}}},D54=O9(()=>p8(B.object({models:B.array(B.object({id:B.string(),name:B.string(),description:B.string().nullish(),pricing:B.object({input:B.string(),output:B.string(),input_cache_read:B.string().nullish(),input_cache_write:B.string().nullish()}).transform(({input:Y,output:X,input_cache_read:Q,input_cache_write:J})=>({input:Y,output:X,...Q?{cachedInputTokens:Q}:{},...J?{cacheCreationInputTokens:J}:{}})).nullish(),specification:B.object({specificationVersion:B.literal("v3"),provider:B.string(),modelId:B.string()}),modelType:B.enum(["embedding","image","language","video"]).nullish()}))}))),O54=O9(()=>p8(B.object({balance:B.string(),total_used:B.string()}).transform(({balance:Y,total_used:X})=>({balance:Y,totalUsed:X})))),N54=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 j9(this.config.headers());try{let{responseHeaders:K,value:W,rawValue:Z}=await VK({url:this.getUrl(),headers:HK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!1),await j9(this.config.o11yHeaders)),body:X,successfulResponseHandler:fG(B.any()),failedResponseHandler:k5({errorSchema:B.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 qK(K,await Fq(G))}}async doStream(Y){let{args:X,warnings:Q}=await this.getArgs(Y),{abortSignal:J}=Y,G=await j9(this.config.headers());try{let{value:K,responseHeaders:W}=await VK({url:this.getUrl(),headers:HK(G,Y.headers,this.getModelConfigHeaders(this.modelId,!0),await j9(this.config.o11yHeaders)),body:X,successfulResponseHandler:nw1(B.any()),failedResponseHandler:k5({errorSchema:B.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 qK(K,await Fq(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)}}},L54=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 j9(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:H}=await VK({url:this.getUrl(),headers:HK(K,X!=null?X:{},this.getModelConfigHeaders(),await j9(this.config.o11yHeaders)),body:{values:Y,...J?{providerOptions:J}:{}},successfulResponseHandler:fG(w54),failedResponseHandler:k5({errorSchema:B.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 qK(W,await Fq(K))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},w54=O9(()=>p8(B.object({embeddings:B.array(B.array(B.number())),usage:B.object({tokens:B.number()}).nullish(),providerMetadata:B.record(B.string(),B.record(B.string(),B.unknown())).optional()}))),M54=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,z;let D=await j9(this.config.headers());try{let{responseHeaders:O,value:L,rawValue:w}=await VK({url:this.getUrl(),headers:HK(D,H!=null?H:{},this.getModelConfigHeaders(),await j9(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)=>GA1(I))},...W&&{mask:GA1(W)}},successfulResponseHandler:fG(E54),failedResponseHandler:k5({errorSchema:B.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:(z=L.usage.totalTokens)!=null?z:void 0}}}}catch(O){throw qK(O,await Fq(D))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}};function GA1(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:FK(Y.data)};return Y}var A54=B.object({images:B.array(B.unknown()).optional()}).catchall(B.unknown()),P54=B.discriminatedUnion("type",[B.object({type:B.literal("unsupported"),feature:B.string(),details:B.string().optional()}),B.object({type:B.literal("compatibility"),feature:B.string(),details:B.string().optional()}),B.object({type:B.literal("other"),message:B.string()})]),T54=B.object({inputTokens:B.number().nullish(),outputTokens:B.number().nullish(),totalTokens:B.number().nullish()}),E54=B.object({images:B.array(B.string()),warnings:B.array(P54).optional(),providerMetadata:B.record(B.string(),A54).optional(),usage:T54.optional()}),C54=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 j9(this.config.headers());try{let{responseHeaders:z,value:D,rawValue:O}=await VK({url:this.getUrl(),headers:HK(q,F!=null?F:{},this.getModelConfigHeaders(),await j9(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:I54(Z)}},successfulResponseHandler:fG(S54),failedResponseHandler:k5({errorSchema:B.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:z}}}catch(z){throw qK(z,await Fq(q))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}};function I54(Y){if(Y.type==="file"&&Y.data instanceof Uint8Array)return{...Y,data:FK(Y.data)};return Y}var R54=B.object({videos:B.array(B.unknown()).optional()}).catchall(B.unknown()),j54=B.union([B.object({type:B.literal("url"),url:B.string(),mediaType:B.string()}),B.object({type:B.literal("base64"),data:B.string(),mediaType:B.string()})]),S54=B.object({videos:B.array(j54),warnings:B.array(B.object({type:B.literal("other"),message:B.string()})).optional(),providerMetadata:B.record(B.string(),R54).optional()}),k54=O9(()=>p8(B.object({objective:B.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:B.array(B.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:B.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:B.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:B.object({include_domains:B.array(B.string()).optional().describe("List of domains to include in search results."),exclude_domains:B.array(B.string()).optional().describe("List of domains to exclude from search results."),after_date:B.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:B.object({max_chars_per_result:B.number().optional().describe("Maximum characters per result."),max_chars_total:B.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:B.object({max_age_seconds:B.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),v54=O9(()=>p8(B.union([B.object({searchId:B.string(),results:B.array(B.object({url:B.string(),title:B.string(),excerpt:B.string(),publishDate:B.string().nullable().optional(),relevanceScore:B.number().optional()}))}),B.object({error:B.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:B.number().optional(),message:B.string()})]))),_54=Cu({id:"gateway.parallel_search",inputSchema:k54,outputSchema:v54}),y54=(Y={})=>_54(Y),f54=O9(()=>p8(B.object({query:B.union([B.string(),B.array(B.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:B.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:B.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:B.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:B.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:B.array(B.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:B.array(B.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:B.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:B.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:B.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:B.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:B.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),h54=O9(()=>p8(B.union([B.object({results:B.array(B.object({title:B.string(),url:B.string(),snippet:B.string(),date:B.string().optional(),lastUpdated:B.string().optional()})),id:B.string()}),B.object({error:B.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:B.number().optional(),message:B.string()})]))),b54=Cu({id:"gateway.perplexity_search",inputSchema:f54,outputSchema:h54}),x54=(Y={})=>b54(Y),u54={parallelSearch:y54,perplexitySearch:x54};async function g54(){var Y;return(Y=BA1.getContext().headers)==null?void 0:Y["x-vercel-id"]}var m54="3.0.41",l54="0.0.1";function d54(Y={}){var X,Q;let J=null,G=null,K=(X=Y.metadataCacheRefreshMillis)!=null?X:300000,W=0,Z=(Q=iw1(Y.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",H=async()=>{try{let O=await p54(Y);return $K({Authorization:`Bearer ${O.token}`,"ai-gateway-protocol-version":l54,[qA1]:O.authMethod,...Y.headers},`ai-sdk/gateway/${m54}`)}catch(O){throw vu.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:O})}},F=()=>{let O=g2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=g2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=g2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let I=await g54();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 N54(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 JA1({baseURL:Z,headers:H,fetch:Y.fetch}).getAvailableModels().then((P)=>{return G=P,P}).catch(async(P)=>{throw await qK(P,await Fq(await H()))});return G?Promise.resolve(G):J},q=async()=>{return new JA1({baseURL:Z,headers:H,fetch:Y.fetch}).getCredits().catch(async(O)=>{throw await qK(O,await Fq(await H()))})},z=function(O){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return $(O)};z.specificationVersion="v3",z.getAvailableModels=V,z.getCredits=q,z.imageModel=(O)=>{return new M54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},z.languageModel=$;let D=(O)=>{return new L54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})};return z.embeddingModel=D,z.textEmbeddingModel=D,z.videoModel=(O)=>{return new C54(O,{provider:"gateway",baseURL:Z,headers:H,fetch:Y.fetch,o11yHeaders:F()})},z.chat=z.languageModel,z.embedding=z.embeddingModel,z.image=z.imageModel,z.video=z.videoModel,z.tools=u54,z}var UA1=d54();async function p54(Y){let X=g2({settingValue:Y.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(X)return{token:X,authMethod:"api-key"};return{token:await zA1.getVercelOidcToken(),authMethod:"oidc"}}n6();n6();n6();n6();n6();n6();var RP1=l6(l0(),1),BO=l6(l0(),1);n6();n6();var c54=Object.defineProperty,n54=(Y,X)=>{for(var Q in X)c54(Y,Q,{get:X[Q],enumerable:!0})},RA1="AI_InvalidArgumentError",jA1=`vercel.ai.error.${RA1}`,i54=Symbol.for(jA1),SA1,bG=class extends M1{constructor({parameter:Y,value:X,message:Q}){super({name:RA1,message:`Invalid argument for parameter ${Y}: ${Q}`});this[SA1]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return M1.hasMarker(Y,jA1)}};SA1=i54;var a54="AI_InvalidStreamPartError",r54=`vercel.ai.error.${a54}`,o54=Symbol.for(r54),s54;s54=o54;var kA1="AI_InvalidToolApprovalError",vA1=`vercel.ai.error.${kA1}`,t54=Symbol.for(vA1),_A1,e54=class extends M1{constructor({approvalId:Y}){super({name:kA1,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[_A1]=!0,this.approvalId=Y}static isInstance(Y){return M1.hasMarker(Y,vA1)}};_A1=t54;var yA1="AI_InvalidToolInputError",fA1=`vercel.ai.error.${yA1}`,YG4=Symbol.for(fA1),hA1,JW0=class extends M1{constructor({toolInput:Y,toolName:X,cause:Q,message:J=`Invalid input for tool ${X}: ${kG(Q)}`}){super({name:yA1,message:J,cause:Q});this[hA1]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return M1.hasMarker(Y,fA1)}};hA1=YG4;var bA1="AI_ToolCallNotFoundForApprovalError",xA1=`vercel.ai.error.${bA1}`,XG4=Symbol.for(xA1),uA1,GW0=class extends M1{constructor({toolCallId:Y,approvalId:X}){super({name:bA1,message:`Tool call "${Y}" not found for approval request "${X}".`});this[uA1]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return M1.hasMarker(Y,xA1)}};uA1=XG4;var gA1="AI_MissingToolResultsError",mA1=`vercel.ai.error.${gA1}`,QG4=Symbol.for(mA1),lA1,DA1=class extends M1{constructor({toolCallIds:Y}){super({name:gA1,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[lA1]=!0,this.toolCallIds=Y}static isInstance(Y){return M1.hasMarker(Y,mA1)}};lA1=QG4;var JG4="AI_NoImageGeneratedError",GG4=`vercel.ai.error.${JG4}`,WG4=Symbol.for(GG4),ZG4;ZG4=WG4;var dA1="AI_NoObjectGeneratedError",pA1=`vercel.ai.error.${dA1}`,KG4=Symbol.for(pA1),cA1,b3=class extends M1{constructor({message:Y="No object generated.",cause:X,text:Q,response:J,usage:G,finishReason:K}){super({name:dA1,message:Y,cause:X});this[cA1]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=K}static isInstance(Y){return M1.hasMarker(Y,pA1)}};cA1=KG4;var nA1="AI_NoOutputGeneratedError",iA1=`vercel.ai.error.${nA1}`,HG4=Symbol.for(iA1),aA1,rA1=class extends M1{constructor({message:Y="No output generated.",cause:X}={}){super({name:nA1,message:Y,cause:X});this[aA1]=!0}static isInstance(Y){return M1.hasMarker(Y,iA1)}};aA1=HG4;var FG4="AI_NoSpeechGeneratedError",$G4=`vercel.ai.error.${FG4}`,VG4=Symbol.for($G4),qG4;qG4=VG4;var BG4="AI_NoTranscriptGeneratedError",zG4=`vercel.ai.error.${BG4}`,UG4=Symbol.for(zG4),DG4;DG4=UG4;var OG4="AI_NoVideoGeneratedError",NG4=`vercel.ai.error.${OG4}`,LG4=Symbol.for(NG4),wG4;wG4=LG4;var oA1="AI_NoSuchToolError",sA1=`vercel.ai.error.${oA1}`,MG4=Symbol.for(sA1),tA1,t70=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:oA1,message:Q});this[tA1]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return M1.hasMarker(Y,sA1)}};tA1=MG4;var eA1="AI_ToolCallRepairError",YP1=`vercel.ai.error.${eA1}`,AG4=Symbol.for(YP1),XP1,PG4=class extends M1{constructor({cause:Y,originalError:X,message:Q=`Error repairing tool call: ${kG(Y)}`}){super({name:eA1,message:Q,cause:Y});this[XP1]=!0,this.originalError=X}static isInstance(Y){return M1.hasMarker(Y,YP1)}};XP1=AG4;var TG4=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}},QP1="AI_UIMessageStreamError",JP1=`vercel.ai.error.${QP1}`,EG4=Symbol.for(JP1),GP1,qO=class extends M1{constructor({chunkType:Y,chunkId:X,message:Q}){super({name:QP1,message:Q});this[GP1]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return M1.hasMarker(Y,JP1)}};GP1=EG4;var CG4="AI_InvalidDataContentError",IG4=`vercel.ai.error.${CG4}`,RG4=Symbol.for(IG4),jG4;jG4=RG4;var WP1="AI_InvalidMessageRoleError",ZP1=`vercel.ai.error.${WP1}`,SG4=Symbol.for(ZP1),KP1,kG4=class extends M1{constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:WP1,message:X});this[KP1]=!0,this.role=Y}static isInstance(Y){return M1.hasMarker(Y,ZP1)}};KP1=SG4;var HP1="AI_MessageConversionError",FP1=`vercel.ai.error.${HP1}`,vG4=Symbol.for(FP1),$P1,_G4=class extends M1{constructor({originalMessage:Y,message:X}){super({name:HP1,message:X});this[$P1]=!0,this.originalMessage=Y}static isInstance(Y){return M1.hasMarker(Y,FP1)}};$P1=vG4;var VP1="AI_RetryError",qP1=`vercel.ai.error.${VP1}`,yG4=Symbol.for(qP1),BP1,OA1=class extends M1{constructor({message:Y,reason:X,errors:Q}){super({name:VP1,message:Y});this[BP1]=!0,this.reason=X,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(Y){return M1.hasMarker(Y,qP1)}};BP1=yG4;function fG4({warning:Y,provider:X,model:Q}){let J=`AI SDK Warning (${X} / ${Q}):`;switch(Y.type){case"unsupported":{let G=`${J} The feature "${Y.feature}" is not supported.`;if(Y.details)G+=` ${Y.details}`;return G}case"compatibility":{let G=`${J} The feature "${Y.feature}" is used in a compatibility mode.`;if(Y.details)G+=` ${Y.details}`;return G}case"other":return`${J} ${Y.message}`;default:return`${J} ${JSON.stringify(Y,null,2)}`}}var hG4="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",NA1=!1,WW0=(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(!NA1)NA1=!0,console.info(hG4);for(let Q of Y.warnings)console.warn(fG4({warning:Q,provider:Y.provider,model:Y.model}))};function bG4({provider:Y,modelId:X}){WW0({warnings:[{type:"compatibility",feature:"specificationVersion",details:"Using v2 specification compatibility mode. Some features may not be available."}],provider:Y,model:X})}function xG4(Y){if(Y.specificationVersion==="v3")return Y;return bG4({provider:Y.provider,modelId:Y.modelId}),new Proxy(Y,{get(X,Q){switch(Q){case"specificationVersion":return"v3";case"doGenerate":return async(...J)=>{let G=await X.doGenerate(...J);return{...G,finishReason:zP1(G.finishReason),usage:UP1(G.usage)}};case"doStream":return async(...J)=>{let G=await X.doStream(...J);return{...G,stream:uG4(G.stream)}};default:return X[Q]}}})}function uG4(Y){return Y.pipeThrough(new TransformStream({transform(X,Q){switch(X.type){case"finish":Q.enqueue({...X,finishReason:zP1(X.finishReason),usage:UP1(X.usage)});break;default:Q.enqueue(X);break}}}))}function zP1(Y){return{unified:Y==="unknown"?"other":Y,raw:void 0}}function UP1(Y){return{inputTokens:{total:Y.inputTokens,noCache:void 0,cacheRead:Y.cachedInputTokens,cacheWrite:void 0},outputTokens:{total:Y.outputTokens,text:void 0,reasoning:Y.reasoningTokens}}}function yu(Y){if(typeof Y!=="string"){if(Y.specificationVersion!=="v3"&&Y.specificationVersion!=="v2"){let X=Y;throw new TG4({version:X.specificationVersion,provider:X.provider,modelId:X.modelId})}return xG4(Y)}return gG4().languageModel(Y)}function gG4(){var Y;return(Y=globalThis.AI_SDK_DEFAULT_PROVIDER)!=null?Y:UA1}function ZW0(Y){if(Y==null)return;if(typeof Y==="number")return Y;return Y.totalMs}function DP1(Y){if(Y==null||typeof Y==="number")return;return Y.stepMs}function mG4(Y){if(Y==null||typeof Y==="number")return;return Y.chunkMs}var lG4=[{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]}];var dG4=(Y)=>{let X=typeof Y==="string"?KO(Y):Y,Q=(X[6]&127)<<21|(X[7]&127)<<14|(X[8]&127)<<7|X[9]&127;return X.slice(Q+10)};function pG4(Y){return typeof Y==="string"&&Y.startsWith("SUQz")||typeof Y!=="string"&&Y.length>10&&Y[0]===73&&Y[1]===68&&Y[2]===51?dG4(Y):Y}function cG4({data:Y,signatures:X}){let Q=pG4(Y),J=typeof Q==="string"?KO(Q.substring(0,Math.min(Q.length,24))):Q;for(let G of X)if(J.length>=G.bytesPrefix.length&&G.bytesPrefix.every((K,W)=>K===null||J[W]===K))return G.mediaType;return}var OP1="6.0.81",nG4=async({url:Y})=>{var X;let Q=Y.toString();try{let J=await fetch(Q,{headers:$K({},`ai-sdk/${OP1}`,Eu())});if(!J.ok)throw new Tu({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(Tu.isInstance(J))throw J;throw new Tu({url:Q,cause:J})}},iG4=(Y=nG4)=>(X)=>Promise.all(X.map(async(Q)=>Q.isUrlSupportedByModel?null:Y(Q)));function aG4(Y){try{let[X,Q]=Y.split(",");return{mediaType:X.split(";")[0].split(":")[1],base64Content:Q}}catch(X){return{mediaType:void 0,base64Content:void 0}}}var NP1=B.union([B.string(),B.instanceof(Uint8Array),B.instanceof(ArrayBuffer),B.custom((Y)=>{var X,Q;return(Q=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?Q:!1},{message:"Must be a Buffer"})]);function LP1(Y){if(Y instanceof Uint8Array)return{data:Y,mediaType:void 0};if(Y instanceof ArrayBuffer)return{data:new Uint8Array(Y),mediaType:void 0};if(typeof Y==="string")try{Y=new URL(Y)}catch(X){}if(Y instanceof URL&&Y.protocol==="data:"){let{mediaType:X,base64Content:Q}=aG4(Y.toString());if(X==null||Q==null)throw new M1({name:"InvalidDataContentError",message:`Invalid data URL format in content ${Y.toString()}`});return{data:Q,mediaType:X}}return{data:Y,mediaType:void 0}}function rG4(Y){if(typeof Y==="string")return Y;if(Y instanceof ArrayBuffer)return FK(new Uint8Array(Y));return FK(Y)}function i2(Y){return Y===void 0?[]:Array.isArray(Y)?Y:[Y]}async function wP1({prompt:Y,supportedUrls:X,download:Q=iG4()}){let J=await sG4(Y.messages,Q,X),G=new Map;for(let F of Y.messages)if(F.role==="assistant"&&Array.isArray(F.content)){for(let $ of F.content)if($.type==="tool-approval-request"&&"approvalId"in $&&"toolCallId"in $)G.set($.approvalId,$.toolCallId)}let K=new Set;for(let F of Y.messages)if(F.role==="tool"){for(let $ of F.content)if($.type==="tool-approval-response"){let V=G.get($.approvalId);if(V)K.add(V)}}let W=[...Y.system!=null?typeof Y.system==="string"?[{role:"system",content:Y.system}]:i2(Y.system).map((F)=>({role:"system",content:F.content,providerOptions:F.providerOptions})):[],...Y.messages.map((F)=>oG4({message:F,downloadedAssets:J}))],Z=[];for(let F of W){if(F.role!=="tool"){Z.push(F);continue}let $=Z.at(-1);if(($==null?void 0:$.role)==="tool")$.content.push(...F.content);else Z.push(F)}let H=new Set;for(let F of Z)switch(F.role){case"assistant":{for(let $ of F.content)if($.type==="tool-call"&&!$.providerExecuted)H.add($.toolCallId);break}case"tool":{for(let $ of F.content)if($.type==="tool-result")H.delete($.toolCallId);break}case"user":case"system":for(let $ of K)H.delete($);if(H.size>0)throw new DA1({toolCallIds:Array.from(H)});break}for(let F of K)H.delete(F);if(H.size>0)throw new DA1({toolCallIds:Array.from(H)});return Z.filter((F)=>F.role!=="tool"||F.content.length>0)}function oG4({message:Y,downloadedAssets:X}){let Q=Y.role;switch(Q){case"system":return{role:"system",content:Y.content,providerOptions:Y.providerOptions};case"user":{if(typeof Y.content==="string")return{role:"user",content:[{type:"text",text:Y.content}],providerOptions:Y.providerOptions};return{role:"user",content:Y.content.map((J)=>tG4(J,X)).filter((J)=>J.type!=="text"||J.text!==""),providerOptions:Y.providerOptions}}case"assistant":{if(typeof Y.content==="string")return{role:"assistant",content:[{type:"text",text:Y.content}],providerOptions:Y.providerOptions};return{role:"assistant",content:Y.content.filter((J)=>J.type!=="text"||J.text!==""||J.providerOptions!=null).filter((J)=>J.type!=="tool-approval-request").map((J)=>{let G=J.providerOptions;switch(J.type){case"file":{let{data:K,mediaType:W}=LP1(J.data);return{type:"file",data:K,filename:J.filename,mediaType:W!=null?W:J.mediaType,providerOptions:G}}case"reasoning":return{type:"reasoning",text:J.text,providerOptions:G};case"text":return{type:"text",text:J.text,providerOptions:G};case"tool-call":return{type:"tool-call",toolCallId:J.toolCallId,toolName:J.toolName,input:J.input,providerExecuted:J.providerExecuted,providerOptions:G};case"tool-result":return{type:"tool-result",toolCallId:J.toolCallId,toolName:J.toolName,output:LA1(J.output),providerOptions:G}}}),providerOptions:Y.providerOptions}}case"tool":return{role:"tool",content:Y.content.filter((J)=>J.type!=="tool-approval-response"||J.providerExecuted).map((J)=>{switch(J.type){case"tool-result":return{type:"tool-result",toolCallId:J.toolCallId,toolName:J.toolName,output:LA1(J.output),providerOptions:J.providerOptions};case"tool-approval-response":return{type:"tool-approval-response",approvalId:J.approvalId,approved:J.approved,reason:J.reason}}}),providerOptions:Y.providerOptions};default:throw new kG4({role:Q})}}async function sG4(Y,X,Q){let J=Y.filter((K)=>K.role==="user").map((K)=>K.content).filter((K)=>Array.isArray(K)).flat().filter((K)=>K.type==="image"||K.type==="file").map((K)=>{var W;let Z=(W=K.mediaType)!=null?W:K.type==="image"?"image/*":void 0,H=K.type==="image"?K.image:K.data;if(typeof H==="string")try{H=new URL(H)}catch(F){}return{mediaType:Z,data:H}}).filter((K)=>K.data instanceof URL).map((K)=>({url:K.data,isUrlSupportedByModel:K.mediaType!=null&&uw1({url:K.data.toString(),mediaType:K.mediaType,supportedUrls:Q})})),G=await X(J);return Object.fromEntries(G.map((K,W)=>K==null?null:[J[W].url.toString(),{data:K.data,mediaType:K.mediaType}]).filter((K)=>K!=null))}function tG4(Y,X){var Q;if(Y.type==="text")return{type:"text",text:Y.text,providerOptions:Y.providerOptions};let J,G=Y.type;switch(G){case"image":J=Y.image;break;case"file":J=Y.data;break;default:throw Error(`Unsupported part type: ${G}`)}let{data:K,mediaType:W}=LP1(J),Z=W!=null?W:Y.mediaType,H=K;if(H instanceof URL){let F=X[H.toString()];if(F)H=F.data,Z!=null||(Z=F.mediaType)}switch(G){case"image":{if(H instanceof Uint8Array||typeof H==="string")Z=(Q=cG4({data:H,signatures:lG4}))!=null?Q:Z;return{type:"file",mediaType:Z!=null?Z:"image/*",filename:void 0,data:H,providerOptions:Y.providerOptions}}case"file":{if(Z==null)throw Error("Media type is missing for file part");return{type:"file",mediaType:Z,filename:Y.filename,data:H,providerOptions:Y.providerOptions}}}}function LA1(Y){if(Y.type!=="content")return Y;return{type:"content",value:Y.value.map((X)=>{if(X.type!=="media")return X;if(X.mediaType.startsWith("image/"))return{type:"image-data",data:X.data,mediaType:X.mediaType};return{type:"file-data",data:X.data,mediaType:X.mediaType}})}}async function $q({toolCallId:Y,input:X,output:Q,tool:J,errorMode:G}){if(G==="text")return{type:"error-text",value:kG(Q)};else if(G==="json")return{type:"error-json",value:wA1(Q)};if(J==null?void 0:J.toModelOutput)return await J.toModelOutput({toolCallId:Y,input:X,output:Q});return typeof Q==="string"?{type:"text",value:Q}:{type:"json",value:wA1(Q)}}function wA1(Y){return Y===void 0?null:Y}function e70({maxOutputTokens:Y,temperature:X,topP:Q,topK:J,presencePenalty:G,frequencyPenalty:K,seed:W,stopSequences:Z}){if(Y!=null){if(!Number.isInteger(Y))throw new bG({parameter:"maxOutputTokens",value:Y,message:"maxOutputTokens must be an integer"});if(Y<1)throw new bG({parameter:"maxOutputTokens",value:Y,message:"maxOutputTokens must be >= 1"})}if(X!=null){if(typeof X!=="number")throw new bG({parameter:"temperature",value:X,message:"temperature must be a number"})}if(Q!=null){if(typeof Q!=="number")throw new bG({parameter:"topP",value:Q,message:"topP must be a number"})}if(J!=null){if(typeof J!=="number")throw new bG({parameter:"topK",value:J,message:"topK must be a number"})}if(G!=null){if(typeof G!=="number")throw new bG({parameter:"presencePenalty",value:G,message:"presencePenalty must be a number"})}if(K!=null){if(typeof K!=="number")throw new bG({parameter:"frequencyPenalty",value:K,message:"frequencyPenalty must be a number"})}if(W!=null){if(!Number.isInteger(W))throw new bG({parameter:"seed",value:W,message:"seed must be an integer"})}return{maxOutputTokens:Y,temperature:X,topP:Q,topK:J,presencePenalty:G,frequencyPenalty:K,stopSequences:Z,seed:W}}function eG4(Y){return Y!=null&&Object.keys(Y).length>0}async function MP1({tools:Y,toolChoice:X,activeTools:Q}){if(!eG4(Y))return{tools:void 0,toolChoice:void 0};let J=Q!=null?Object.entries(Y).filter(([K])=>Q.includes(K)):Object.entries(Y),G=[];for(let[K,W]of J){let Z=W.type;switch(Z){case void 0:case"dynamic":case"function":G.push({type:"function",name:K,description:W.description,inputSchema:await UW(W.inputSchema).jsonSchema,...W.inputExamples!=null?{inputExamples:W.inputExamples}:{},providerOptions:W.providerOptions,...W.strict!=null?{strict:W.strict}:{}});break;case"provider":G.push({type:"provider",name:K,id:W.id,args:W.args});break;default:throw Error(`Unsupported tool type: ${Z}`)}}return{tools:G,toolChoice:X==null?{type:"auto"}:typeof X==="string"?{type:X}:{type:"tool",toolName:X.toolName}}}var a2=B.lazy(()=>B.union([B.null(),B.string(),B.number(),B.boolean(),B.record(B.string(),a2.optional()),B.array(a2)])),o1=B.record(B.string(),B.record(B.string(),a2.optional())),AP1=B.object({type:B.literal("text"),text:B.string(),providerOptions:o1.optional()}),Y74=B.object({type:B.literal("image"),image:B.union([NP1,B.instanceof(URL)]),mediaType:B.string().optional(),providerOptions:o1.optional()}),PP1=B.object({type:B.literal("file"),data:B.union([NP1,B.instanceof(URL)]),filename:B.string().optional(),mediaType:B.string(),providerOptions:o1.optional()}),X74=B.object({type:B.literal("reasoning"),text:B.string(),providerOptions:o1.optional()}),Q74=B.object({type:B.literal("tool-call"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerOptions:o1.optional(),providerExecuted:B.boolean().optional()}),J74=B.discriminatedUnion("type",[B.object({type:B.literal("text"),value:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("json"),value:a2,providerOptions:o1.optional()}),B.object({type:B.literal("execution-denied"),reason:B.string().optional(),providerOptions:o1.optional()}),B.object({type:B.literal("error-text"),value:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("error-json"),value:a2,providerOptions:o1.optional()}),B.object({type:B.literal("content"),value:B.array(B.union([B.object({type:B.literal("text"),text:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("media"),data:B.string(),mediaType:B.string()}),B.object({type:B.literal("file-data"),data:B.string(),mediaType:B.string(),filename:B.string().optional(),providerOptions:o1.optional()}),B.object({type:B.literal("file-url"),url:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("file-id"),fileId:B.union([B.string(),B.record(B.string(),B.string())]),providerOptions:o1.optional()}),B.object({type:B.literal("image-data"),data:B.string(),mediaType:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("image-url"),url:B.string(),providerOptions:o1.optional()}),B.object({type:B.literal("image-file-id"),fileId:B.union([B.string(),B.record(B.string(),B.string())]),providerOptions:o1.optional()}),B.object({type:B.literal("custom"),providerOptions:o1.optional()})]))})]),TP1=B.object({type:B.literal("tool-result"),toolCallId:B.string(),toolName:B.string(),output:J74,providerOptions:o1.optional()}),G74=B.object({type:B.literal("tool-approval-request"),approvalId:B.string(),toolCallId:B.string()}),W74=B.object({type:B.literal("tool-approval-response"),approvalId:B.string(),approved:B.boolean(),reason:B.string().optional()}),Z74=B.object({role:B.literal("system"),content:B.string(),providerOptions:o1.optional()}),K74=B.object({role:B.literal("user"),content:B.union([B.string(),B.array(B.union([AP1,Y74,PP1]))]),providerOptions:o1.optional()}),H74=B.object({role:B.literal("assistant"),content:B.union([B.string(),B.array(B.union([AP1,PP1,X74,Q74,TP1,G74]))]),providerOptions:o1.optional()}),F74=B.object({role:B.literal("tool"),content:B.array(B.union([TP1,W74])),providerOptions:o1.optional()}),$74=B.union([Z74,K74,H74,F74]);async function EP1(Y){if(Y.prompt==null&&Y.messages==null)throw new Gq({prompt:Y,message:"prompt or messages must be defined"});if(Y.prompt!=null&&Y.messages!=null)throw new Gq({prompt:Y,message:"prompt and messages cannot be defined at the same time"});if(Y.system!=null&&typeof Y.system!=="string"&&!i2(Y.system).every((J)=>typeof J==="object"&&J!==null&&("role"in J)&&J.role==="system"))throw new Gq({prompt:Y,message:"system must be a string, SystemModelMessage, or array of SystemModelMessage"});let X;if(Y.prompt!=null&&typeof Y.prompt==="string")X=[{role:"user",content:Y.prompt}];else if(Y.prompt!=null&&Array.isArray(Y.prompt))X=Y.prompt;else if(Y.messages!=null)X=Y.messages;else throw new Gq({prompt:Y,message:"prompt or messages must be defined"});if(X.length===0)throw new Gq({prompt:Y,message:"messages must not be empty"});let Q=await JQ({value:X,schema:B.array($74)});if(!Q.success)throw new Gq({prompt:Y,message:"The messages do not match the ModelMessage[] schema.",cause:Q.error});return{messages:X,system:Y.system}}function CP1(Y){if(!vu.isInstance(Y))return Y;let X=(process==null?void 0:"production")==="production",Q="https://ai-sdk.dev/unauthenticated-ai-gateway";if(X)return new M1({name:"GatewayError",message:`Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${Q}`});return Object.assign(Error(`\x1B[1m\x1B[31mUnauthenticated request to AI Gateway.\x1B[0m
1081
1081
 
1082
1082
  To authenticate, set the \x1B[33mAI_GATEWAY_API_KEY\x1B[0m environment variable with your API key.
1083
1083
 
@@ -1090,7 +1090,7 @@ Learn more: \x1B[34m${Q}\x1B[0m
1090
1090
 
1091
1091
  `)},flush(Y){Y.enqueue(`data: [DONE]
1092
1092
 
1093
- `)}})}},nP1={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function I74({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new cP1);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:uu(Q,nP1)})}function R74({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}var dA8=O9(()=>p8(B.union([B.strictObject({type:B.literal("text-start"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("text-delta"),id:B.string(),delta:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("text-end"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("error"),errorText:B.string()}),B.strictObject({type:B.literal("tool-input-start"),toolCallId:B.string(),toolName:B.string(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-input-delta"),toolCallId:B.string(),inputTextDelta:B.string()}),B.strictObject({type:B.literal("tool-input-available"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-input-error"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),errorText:B.string(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-approval-request"),approvalId:B.string(),toolCallId:B.string()}),B.strictObject({type:B.literal("tool-output-available"),toolCallId:B.string(),output:B.unknown(),providerExecuted:B.boolean().optional(),dynamic:B.boolean().optional(),preliminary:B.boolean().optional()}),B.strictObject({type:B.literal("tool-output-error"),toolCallId:B.string(),errorText:B.string(),providerExecuted:B.boolean().optional(),dynamic:B.boolean().optional()}),B.strictObject({type:B.literal("tool-output-denied"),toolCallId:B.string()}),B.strictObject({type:B.literal("reasoning-start"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("reasoning-delta"),id:B.string(),delta:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("reasoning-end"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("source-url"),sourceId:B.string(),url:B.string(),title:B.string().optional(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("source-document"),sourceId:B.string(),mediaType:B.string(),title:B.string(),filename:B.string().optional(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("file"),url:B.string(),mediaType:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.custom((Y)=>typeof Y==="string"&&Y.startsWith("data-"),{message:'Type must start with "data-"'}),id:B.string().optional(),data:B.unknown(),transient:B.boolean().optional()}),B.strictObject({type:B.literal("start-step")}),B.strictObject({type:B.literal("finish-step")}),B.strictObject({type:B.literal("start"),messageId:B.string().optional(),messageMetadata:B.unknown().optional()}),B.strictObject({type:B.literal("finish"),finishReason:B.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:B.unknown().optional()}),B.strictObject({type:B.literal("abort"),reason:B.string().optional()}),B.strictObject({type:B.literal("message-metadata"),messageMetadata:B.unknown()})])));function j74(Y){return Y.type.startsWith("data-")}function a70(Y){return Y.type.startsWith("data-")}function r70(Y){return Y.type==="text"}function o70(Y){return Y.type==="file"}function CA1(Y){return Y.type==="reasoning"}function XW0(Y){return Y.type.startsWith("tool-")}function iP1(Y){return Y.type==="dynamic-tool"}function n2(Y){return XW0(Y)||iP1(Y)}function QW0(Y){return Y.type.split("-").slice(1).join("-")}function s70(Y){return iP1(Y)?Y.toolName:QW0(Y)}function S74({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 k74({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,z,D;function O(P){let A=F.message.parts.filter(n2).find((R)=>R.toolCallId===P);if(A==null)throw new qO({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((S)=>XW0(S)&&S.toolCallId===P.toolCallId),R=P,j=A;if(A!=null){if(A.state=P.state,j.input=R.input,j.output=R.output,j.errorText=R.errorText,j.rawInput=R.rawInput,j.preliminary=R.preliminary,P.title!==void 0)j.title=P.title;if(j.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),j=P,S=R;if(R!=null){if(R.state=P.state,S.toolName=P.toolName,S.input=j.input,S.output=j.output,S.errorText=j.errorText,S.rawInput=(T=j.rawInput)!=null?T:S.rawInput,S.preliminary=j.preliminary,P.title!==void 0)S.title=P.title;if(S.providerExecuted=(A=j.providerExecuted)!=null?A:R.providerExecuted,j.providerMetadata!=null)R.callProviderMetadata=j.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:P.toolName,toolCallId:P.toolCallId,state:P.state,input:j.input,output:j.output,errorText:j.errorText,preliminary:j.preliminary,providerExecuted:j.providerExecuted,title:P.title,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}async function I(P){if(P!=null){let T=F.message.metadata!=null?hu(F.message.metadata,P):P;if(X!=null)await DW({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 qO({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 qO({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 qO({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=(z=Z.providerMetadata)!=null?z:P.providerMetadata,$();break}case"reasoning-end":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new qO({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(XW0);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 qO({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 s2(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:QW0(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:QW0(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(j74(Z)){if((Q==null?void 0:Q[Z.type])!=null){let A=F.message.parts.findIndex((j)=>("id"in j)&&("data"in j)&&j.id===Z.id&&j.type===Z.type),R=A>=0?A:F.message.parts.length;await DW({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 v74({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,z){if(q.type==="start"){let D=q;if(D.messageId==null&&Y!=null)D.messageId=Y}if(q.type==="abort")W=!0;z.enqueue(q)}}));if(Q==null)return Z;let H=S74({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 k74({stream:Z,runUpdateMessageJob:F,onError:J}).pipeThrough(new TransformStream({transform(q,z){z.enqueue(q)},async cancel(){await V()},async flush(){await V()}}))}function _74({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new cP1);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}pP1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(uu(J,nP1).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function c2(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 HW0({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 IA1(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function y74(){let Y=[],X=null,Q=!1,J=IA1(),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=IA1(),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 f74(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function h74({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,z=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 U74({data:P.data,mediaType:P.mediaType})});break}case"finish":{L={type:"finish",finishReason:P.finishReason.unified,rawFinishReason:P.finishReason.raw,usage:vP1(P.usage),providerMetadata:P.providerMetadata};break}case"tool-approval-request":{let R=D.get(P.toolCallId);if(R==null){$.enqueue({type:"error",error:new GW0({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 uP1({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:HO(R.error),dynamic:!0,title:R.title});break}let j=Y==null?void 0:Y[R.toolName];if(j==null)break;if(j.onInputAvailable!=null)await j.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await xP1({tool:j,toolCall:R,messages:K,experimental_context:H})){$.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(z.set(R.toolCallId,R.input),j.execute!=null&&R.providerExecuted!==!0){let S=F();q.add(S),KW0({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(S),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:z.get(P.toolCallId),providerExecuted:!0,error:P.result,dynamic:P.dynamic});else T.enqueue({type:"tool-result",toolCallId:P.toolCallId,toolName:R,input:z.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()}}))])}})}var b74=zW({prefix:"aitxt",size:24});function gu({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=bu(1),experimental_output:V,output:q=V,experimental_telemetry:z,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:j=({error:Y0})=>{console.error(Y0)},onFinish:S,onAbort:y,onStepFinish:f,experimental_context:h,experimental_include:o,_internal:{now:u=f74,generateId:_=b74}={},...l}){let Y0=ZW0(H),s=DP1(H),W0=mG4(H),N0=s!=null?new AbortController:void 0,K0=W0!=null?new AbortController:void 0;return new u74({model:yu(Y),telemetry:z,headers:F,settings:l,maxRetries:W,abortSignal:dP1(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:i2(P),activeTools:w,repairToolCall:I,stopConditions:i2($),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:j,onFinish:S,onAbort:y,onStepFinish:f,now:u,generateId:_,experimental_context:h,download:T,include:o})}function x74(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}}})}var u74=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:z,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:P,providerOptions:T,prepareStep:A,includeRawChunks:R,now:j,generateId:S,onChunk:y,onError:f,onFinish:h,onAbort:o,onStepFinish:u,experimental_context:_,download:l,include:Y0}){this._totalUsage=new Zq,this._finishReason=new Zq,this._rawFinishReason=new Zq,this._steps=new Zq,this.outputSpecification=P,this.includeRawChunks=R,this.tools=z;let s,W0=[],N0=[],K0=void 0,L0=void 0,E0=void 0,b0={},O1=[],U0=[],Z0=new Map,S0,y1={},_1={},m0=new TransformStream({async transform(x1,G6){var D6,v0,C0,Z1;G6.enqueue(x1);let{part:a0}=x1;if(a0.type==="text-delta"||a0.type==="reasoning-delta"||a0.type==="source"||a0.type==="tool-call"||a0.type==="tool-result"||a0.type==="tool-input-start"||a0.type==="tool-input-delta"||a0.type==="raw")await(y==null?void 0:y({chunk:a0}));if(a0.type==="error")await f({error:CP1(a0.error)});if(a0.type==="text-start")y1[a0.id]={type:"text",text:"",providerMetadata:a0.providerMetadata},W0.push(y1[a0.id]);if(a0.type==="text-delta"){let $6=y1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`text part ${a0.id} not found`},partialOutput:void 0});return}$6.text+=a0.text,$6.providerMetadata=(D6=a0.providerMetadata)!=null?D6:$6.providerMetadata}if(a0.type==="text-end"){let $6=y1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`text part ${a0.id} not found`},partialOutput:void 0});return}$6.providerMetadata=(v0=a0.providerMetadata)!=null?v0:$6.providerMetadata,delete y1[a0.id]}if(a0.type==="reasoning-start")_1[a0.id]={type:"reasoning",text:"",providerMetadata:a0.providerMetadata},W0.push(_1[a0.id]);if(a0.type==="reasoning-delta"){let $6=_1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`reasoning part ${a0.id} not found`},partialOutput:void 0});return}$6.text+=a0.text,$6.providerMetadata=(C0=a0.providerMetadata)!=null?C0:$6.providerMetadata}if(a0.type==="reasoning-end"){let $6=_1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`reasoning part ${a0.id} not found`},partialOutput:void 0});return}$6.providerMetadata=(Z1=a0.providerMetadata)!=null?Z1:$6.providerMetadata,delete _1[a0.id]}if(a0.type==="file")W0.push({type:"file",file:a0.file});if(a0.type==="source")W0.push(a0);if(a0.type==="tool-call")W0.push(a0);if(a0.type==="tool-result"&&!a0.preliminary)W0.push(a0);if(a0.type==="tool-approval-request")W0.push(a0);if(a0.type==="tool-error")W0.push(a0);if(a0.type==="start-step")W0=[],_1={},y1={},b0=a0.request,O1=a0.warnings;if(a0.type==="finish-step"){let $6=await YW0({content:W0,tools:z}),q6=new mP1({content:W0,finishReason:a0.finishReason,rawFinishReason:a0.rawFinishReason,usage:a0.usage,warnings:O1,request:b0,response:{...a0.response,messages:[...N0,...$6]},providerMetadata:a0.providerMetadata});await(u==null?void 0:u(q6)),WW0({warnings:O1,provider:Y.provider,model:Y.modelId}),U0.push(q6),N0.push(...$6),s.resolve()}if(a0.type==="finish")E0=a0.totalUsage,K0=a0.finishReason,L0=a0.rawFinishReason},async flush(x1){try{if(U0.length===0){let C0=(K==null?void 0:K.aborted)?K.reason:new rA1({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 G6=K0!=null?K0:"other",D6=E0!=null?E0:i70();m1._finishReason.resolve(G6),m1._rawFinishReason.resolve(L0),m1._totalUsage.resolve(D6),m1._steps.resolve(U0);let v0=U0[U0.length-1];await(h==null?void 0:h({finishReason:v0.finishReason,rawFinishReason:v0.rawFinishReason,totalUsage:D6,usage:v0.usage,content:v0.content,text:v0.text,reasoningText:v0.reasoningText,reasoning:v0.reasoning,files:v0.files,sources:v0.sources,toolCalls:v0.toolCalls,staticToolCalls:v0.staticToolCalls,dynamicToolCalls:v0.dynamicToolCalls,toolResults:v0.toolResults,staticToolResults:v0.staticToolResults,dynamicToolResults:v0.dynamicToolResults,request:v0.request,response:v0.response,warnings:v0.warnings,providerMetadata:v0.providerMetadata,steps:U0,experimental_context:_})),S0.setAttributes(await OW({telemetry:X,attributes:{"ai.response.finishReason":G6,"ai.response.text":{output:()=>v0.text},"ai.response.reasoning":{output:()=>v0.reasoningText},"ai.response.toolCalls":{output:()=>{var C0;return((C0=v0.toolCalls)==null?void 0:C0.length)?JSON.stringify(v0.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(v0.providerMetadata),"ai.usage.inputTokens":D6.inputTokens,"ai.usage.outputTokens":D6.outputTokens,"ai.usage.totalTokens":D6.totalTokens,"ai.usage.reasoningTokens":D6.reasoningTokens,"ai.usage.cachedInputTokens":D6.cachedInputTokens}}))}catch(G6){x1.error(G6)}finally{S0.end()}}}),w0=y74();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 G6(){o==null||o({steps:U0}),x1.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:kG(K.reason)}:{}}),x1.close()}try{let{done:D6,value:v0}=await V0.read();if(D6){x1.close();return}if(K==null?void 0:K.aborted){G6();return}x1.enqueue(v0)}catch(D6){if(KK(D6)&&(K==null?void 0:K.aborted))G6();else x1.error(D6)}},cancel(x1){return w0.stream.cancel(x1)}});for(let x1 of O)R0=R0.pipeThrough(x1({tools:z,stopStream(){w0.terminate()}}));this.baseStream=R0.pipeThrough(x74(P!=null?P:fu())).pipeThrough(m0);let{maxRetries:q0,retry:M0}=fP1({maxRetries:G,abortSignal:K}),K1=jP1(X),k0=e70(J),x0=IP1({model:Y,telemetry:X,headers:Q,settings:{...k0,maxRetries:q0}}),m1=this;o2({name:"ai.streamText",attributes:OW({telemetry:X,attributes:{...r2({operationId:"ai.streamText",telemetry:X}),...x0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:V,messages:q})}}}),tracer:K1,endWhenDone:!1,fn:async(x1)=>{S0=x1;let G6=await EP1({system:$,prompt:V,messages:q}),D6=G6.messages,v0=[],{approvedToolApprovals:C0,deniedToolApprovals:Z1}=hP1({messages:D6});if(Z1.length>0||C0.length>0){let $6=[...C0,...Z1].filter((k)=>k.toolCall.providerExecuted),q6=C0.filter((k)=>!k.toolCall.providerExecuted),p1=Z1.filter((k)=>!k.toolCall.providerExecuted),s1=Z1.filter((k)=>k.toolCall.providerExecuted),f6,N=new ReadableStream({start(k){f6=k}});m1.addStream(N);try{for(let t of[...p1,...s1])f6==null||f6.enqueue({type:"tool-output-denied",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName});let k=[];if(await Promise.all(q6.map(async(t)=>{let Q0=await KW0({toolCall:t.toolCall,tools:z,tracer:K1,telemetry:X,messages:D6,abortSignal:K,experimental_context:_,onPreliminaryToolResult:(U)=>{f6==null||f6.enqueue(U)}});if(Q0!=null)f6==null||f6.enqueue(Q0),k.push(Q0)})),$6.length>0)v0.push({role:"tool",content:$6.map((t)=>({type:"tool-approval-response",approvalId:t.approvalResponse.approvalId,approved:t.approvalResponse.approved,reason:t.approvalResponse.reason,providerExecuted:!0}))});if(k.length>0||p1.length>0){let t=[];for(let Q0 of k)t.push({type:"tool-result",toolCallId:Q0.toolCallId,toolName:Q0.toolName,output:await $q({toolCallId:Q0.toolCallId,input:Q0.input,tool:z==null?void 0:z[Q0.toolName],output:Q0.type==="tool-result"?Q0.output:Q0.error,errorMode:Q0.type==="tool-error"?"json":"none"})});for(let Q0 of p1)t.push({type:"tool-result",toolCallId:Q0.toolCall.toolCallId,toolName:Q0.toolCall.toolName,output:{type:"execution-denied",reason:Q0.approvalResponse.reason}});v0.push({role:"tool",content:t})}}finally{f6==null||f6.close()}}N0.push(...v0);async function a0({currentStep:$6,responseMessages:q6,usage:p1}){var s1,f6,N,k,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 f0(){if(c!=null)clearTimeout(c)}try{s=new Zq;let I1=[...D6,...q6],S1=await(A==null?void 0:A({model:Y,steps:U0,stepNumber:U0.length,messages:I1,experimental_context:_})),T0=yu((s1=S1==null?void 0:S1.model)!=null?s1:Y),T1=await wP1({prompt:{system:(f6=S1==null?void 0:S1.system)!=null?f6:G6.system,messages:(N=S1==null?void 0:S1.messages)!=null?N:I1},supportedUrls:await T0.supportedUrls,download:l}),{toolChoice:B8,tools:x8}=await MP1({tools:z,toolChoice:(k=S1==null?void 0:S1.toolChoice)!=null?k:D,activeTools:(t=S1==null?void 0:S1.activeTools)!=null?t:L});_=(Q0=S1==null?void 0:S1.experimental_context)!=null?Q0:_;let m6=hu(T,S1==null?void 0:S1.providerOptions),{result:{stream:OX,response:LW,request:v5},doStreamSpan:t0,startTimestampMs:T6}=await M0(()=>o2({name:"ai.streamText.doStream",attributes:OW({telemetry:X,attributes:{...r2({operationId:"ai.streamText.doStream",telemetry:X}),...x0,"ai.model.provider":T0.provider,"ai.model.id":T0.modelId,"ai.prompt.messages":{input:()=>kP1(T1)},"ai.prompt.tools":{input:()=>x8==null?void 0:x8.map((t1)=>JSON.stringify(t1))},"ai.prompt.toolChoice":{input:()=>B8!=null?JSON.stringify(B8):void 0},"gen_ai.system":T0.provider,"gen_ai.request.model":T0.modelId,"gen_ai.request.frequency_penalty":k0.frequencyPenalty,"gen_ai.request.max_tokens":k0.maxOutputTokens,"gen_ai.request.presence_penalty":k0.presencePenalty,"gen_ai.request.stop_sequences":k0.stopSequences,"gen_ai.request.temperature":k0.temperature,"gen_ai.request.top_k":k0.topK,"gen_ai.request.top_p":k0.topP}}),tracer:K1,endWhenDone:!1,fn:async(t1)=>({startTimestampMs:j(),doStreamSpan:t1,result:await T0.doStream({...k0,tools:x8,toolChoice:B8,responseFormat:await(P==null?void 0:P.responseFormat),prompt:T1,providerOptions:m6,abortSignal:K,headers:Q,includeRawChunks:C})})})),N9=h74({tools:z,generatorStream:OX,tracer:K1,telemetry:X,system:$,messages:I1,repairToolCall:w,abortSignal:K,experimental_context:_,generateId:S}),u4=((U=Y0==null?void 0:Y0.requestBody)!=null?U:!0)?v5!=null?v5:{}:{...v5,body:void 0},r0=[],N6=[],l9,EJ={},BK="other",cu=void 0,_5=i70(),nu,UW0=!0,xG={id:S(),timestamp:new Date,modelId:Y.modelId},DW0="";m1.addStream(N9.pipeThrough(new TransformStream({async transform(t1,NY){var DO,OO,YE,c8,uG;if(G0(),t1.type==="stream-start"){l9=t1.warnings;return}if(UW0){let L9=j()-T6;UW0=!1,t0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":L9}),t0.setAttributes({"ai.response.msToFirstChunk":L9}),NY.enqueue({type:"start-step",request:u4,warnings:l9!=null?l9:[]})}let iu=t1.type;switch(iu){case"tool-approval-request":case"text-start":case"text-end":{NY.enqueue(t1);break}case"text-delta":{if(t1.delta.length>0)NY.enqueue({type:"text-delta",id:t1.id,text:t1.delta,providerMetadata:t1.providerMetadata}),DW0+=t1.delta;break}case"reasoning-start":case"reasoning-end":{NY.enqueue(t1);break}case"reasoning-delta":{NY.enqueue({type:"reasoning-delta",id:t1.id,text:t1.delta,providerMetadata:t1.providerMetadata});break}case"tool-call":{NY.enqueue(t1),r0.push(t1);break}case"tool-result":{if(NY.enqueue(t1),!t1.preliminary)N6.push(t1);break}case"tool-error":{NY.enqueue(t1),N6.push(t1);break}case"response-metadata":{xG={id:(DO=t1.id)!=null?DO:xG.id,timestamp:(OO=t1.timestamp)!=null?OO:xG.timestamp,modelId:(YE=t1.modelId)!=null?YE:xG.modelId};break}case"finish":{_5=t1.usage,BK=t1.finishReason,cu=t1.rawFinishReason,nu=t1.providerMetadata;let L9=j()-T6;t0.addEvent("ai.stream.finish"),t0.setAttributes({"ai.response.msToFinish":L9,"ai.response.avgOutputTokensPerSecond":1000*((c8=_5.outputTokens)!=null?c8:0)/L9});break}case"file":{NY.enqueue(t1);break}case"source":{NY.enqueue(t1);break}case"tool-input-start":{EJ[t1.id]=t1.toolName;let L9=z==null?void 0:z[t1.toolName];if((L9==null?void 0:L9.onInputStart)!=null)await L9.onInputStart({toolCallId:t1.id,messages:I1,abortSignal:K,experimental_context:_});NY.enqueue({...t1,dynamic:(uG=t1.dynamic)!=null?uG:(L9==null?void 0:L9.type)==="dynamic",title:L9==null?void 0:L9.title});break}case"tool-input-end":{delete EJ[t1.id],NY.enqueue(t1);break}case"tool-input-delta":{let L9=EJ[t1.id],au=z==null?void 0:z[L9];if((au==null?void 0:au.onInputDelta)!=null)await au.onInputDelta({inputTextDelta:t1.delta,toolCallId:t1.id,messages:I1,abortSignal:K,experimental_context:_});NY.enqueue(t1);break}case"error":{NY.enqueue(t1),BK="error";break}case"raw":{if(C)NY.enqueue(t1);break}default:throw Error(`Unknown chunk type: ${iu}`)}},async flush(t1){let NY=r0.length>0?JSON.stringify(r0):void 0;try{t0.setAttributes(await OW({telemetry:X,attributes:{"ai.response.finishReason":BK,"ai.response.text":{output:()=>DW0},"ai.response.reasoning":{output:()=>{let c8=W0.filter((uG)=>uG.type==="reasoning");return c8.length>0?c8.map((uG)=>uG.text).join(`
1093
+ `)}})}},nP1={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function I74({status:Y,statusText:X,headers:Q,stream:J,consumeSseStream:G}){let K=J.pipeThrough(new cP1);if(G){let[W,Z]=K.tee();K=W,G({stream:Z})}return new Response(K.pipeThrough(new TextEncoderStream),{status:Y,statusText:X,headers:uu(Q,nP1)})}function R74({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}var dA8=O9(()=>p8(B.union([B.strictObject({type:B.literal("text-start"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("text-delta"),id:B.string(),delta:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("text-end"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("error"),errorText:B.string()}),B.strictObject({type:B.literal("tool-input-start"),toolCallId:B.string(),toolName:B.string(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-input-delta"),toolCallId:B.string(),inputTextDelta:B.string()}),B.strictObject({type:B.literal("tool-input-available"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-input-error"),toolCallId:B.string(),toolName:B.string(),input:B.unknown(),providerExecuted:B.boolean().optional(),providerMetadata:o1.optional(),dynamic:B.boolean().optional(),errorText:B.string(),title:B.string().optional()}),B.strictObject({type:B.literal("tool-approval-request"),approvalId:B.string(),toolCallId:B.string()}),B.strictObject({type:B.literal("tool-output-available"),toolCallId:B.string(),output:B.unknown(),providerExecuted:B.boolean().optional(),dynamic:B.boolean().optional(),preliminary:B.boolean().optional()}),B.strictObject({type:B.literal("tool-output-error"),toolCallId:B.string(),errorText:B.string(),providerExecuted:B.boolean().optional(),dynamic:B.boolean().optional()}),B.strictObject({type:B.literal("tool-output-denied"),toolCallId:B.string()}),B.strictObject({type:B.literal("reasoning-start"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("reasoning-delta"),id:B.string(),delta:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("reasoning-end"),id:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("source-url"),sourceId:B.string(),url:B.string(),title:B.string().optional(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("source-document"),sourceId:B.string(),mediaType:B.string(),title:B.string(),filename:B.string().optional(),providerMetadata:o1.optional()}),B.strictObject({type:B.literal("file"),url:B.string(),mediaType:B.string(),providerMetadata:o1.optional()}),B.strictObject({type:B.custom((Y)=>typeof Y==="string"&&Y.startsWith("data-"),{message:'Type must start with "data-"'}),id:B.string().optional(),data:B.unknown(),transient:B.boolean().optional()}),B.strictObject({type:B.literal("start-step")}),B.strictObject({type:B.literal("finish-step")}),B.strictObject({type:B.literal("start"),messageId:B.string().optional(),messageMetadata:B.unknown().optional()}),B.strictObject({type:B.literal("finish"),finishReason:B.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:B.unknown().optional()}),B.strictObject({type:B.literal("abort"),reason:B.string().optional()}),B.strictObject({type:B.literal("message-metadata"),messageMetadata:B.unknown()})])));function j74(Y){return Y.type.startsWith("data-")}function a70(Y){return Y.type.startsWith("data-")}function r70(Y){return Y.type==="text"}function o70(Y){return Y.type==="file"}function CA1(Y){return Y.type==="reasoning"}function XW0(Y){return Y.type.startsWith("tool-")}function iP1(Y){return Y.type==="dynamic-tool"}function n2(Y){return XW0(Y)||iP1(Y)}function QW0(Y){return Y.type.split("-").slice(1).join("-")}function s70(Y){return iP1(Y)?Y.toolName:QW0(Y)}function S74({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 k74({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,z,D;function O(P){let A=F.message.parts.filter(n2).find((R)=>R.toolCallId===P);if(A==null)throw new qO({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((S)=>XW0(S)&&S.toolCallId===P.toolCallId),R=P,j=A;if(A!=null){if(A.state=P.state,j.input=R.input,j.output=R.output,j.errorText=R.errorText,j.rawInput=R.rawInput,j.preliminary=R.preliminary,P.title!==void 0)j.title=P.title;if(j.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),j=P,S=R;if(R!=null){if(R.state=P.state,S.toolName=P.toolName,S.input=j.input,S.output=j.output,S.errorText=j.errorText,S.rawInput=(T=j.rawInput)!=null?T:S.rawInput,S.preliminary=j.preliminary,P.title!==void 0)S.title=P.title;if(S.providerExecuted=(A=j.providerExecuted)!=null?A:R.providerExecuted,j.providerMetadata!=null)R.callProviderMetadata=j.providerMetadata}else F.message.parts.push({type:"dynamic-tool",toolName:P.toolName,toolCallId:P.toolCallId,state:P.state,input:j.input,output:j.output,errorText:j.errorText,preliminary:j.preliminary,providerExecuted:j.providerExecuted,title:P.title,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}async function I(P){if(P!=null){let T=F.message.metadata!=null?hu(F.message.metadata,P):P;if(X!=null)await DW({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 qO({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 qO({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 qO({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=(z=Z.providerMetadata)!=null?z:P.providerMetadata,$();break}case"reasoning-end":{let P=F.activeReasoningParts[Z.id];if(P==null)throw new qO({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(XW0);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 qO({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 s2(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:QW0(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:QW0(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(j74(Z)){if((Q==null?void 0:Q[Z.type])!=null){let A=F.message.parts.findIndex((j)=>("id"in j)&&("data"in j)&&j.id===Z.id&&j.type===Z.type),R=A>=0?A:F.message.parts.length;await DW({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 v74({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=S74({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})},z=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 k74({stream:H,runUpdateMessageJob:$,onError:G}).pipeThrough(new TransformStream({async transform(D,O){if(D.type==="finish-step")await z();O.enqueue(D)},async cancel(){await q()},async flush(){await q()}}))}function _74({response:Y,status:X,statusText:Q,headers:J,stream:G,consumeSseStream:K}){let W=G.pipeThrough(new cP1);if(K){let[Z,H]=W.tee();W=Z,K({stream:H})}pP1({response:Y,status:X,statusText:Q,headers:Object.fromEntries(uu(J,nP1).entries()),stream:W.pipeThrough(new TextEncoderStream)})}function c2(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 HW0({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 IA1(){let Y,X;return{promise:new Promise((J,G)=>{Y=J,X=G}),resolve:Y,reject:X}}function y74(){let Y=[],X=null,Q=!1,J=IA1(),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=IA1(),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 f74(){var Y,X;return(X=(Y=globalThis==null?void 0:globalThis.performance)==null?void 0:Y.now())!=null?X:Date.now()}function h74({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,z=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 U74({data:P.data,mediaType:P.mediaType})});break}case"finish":{L={type:"finish",finishReason:P.finishReason.unified,rawFinishReason:P.finishReason.raw,usage:vP1(P.usage),providerMetadata:P.providerMetadata};break}case"tool-approval-request":{let R=D.get(P.toolCallId);if(R==null){$.enqueue({type:"error",error:new GW0({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 uP1({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:HO(R.error),dynamic:!0,title:R.title});break}let j=Y==null?void 0:Y[R.toolName];if(j==null)break;if(j.onInputAvailable!=null)await j.onInputAvailable({input:R.input,toolCallId:R.toolCallId,messages:K,abortSignal:W,experimental_context:H});if(await xP1({tool:j,toolCall:R,messages:K,experimental_context:H})){$.enqueue({type:"tool-approval-request",approvalId:F(),toolCall:R});break}if(z.set(R.toolCallId,R.input),j.execute!=null&&R.providerExecuted!==!0){let S=F();q.add(S),KW0({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(S),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:z.get(P.toolCallId),providerExecuted:!0,error:P.result,dynamic:P.dynamic});else T.enqueue({type:"tool-result",toolCallId:P.toolCallId,toolName:R,input:z.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()}}))])}})}var b74=zW({prefix:"aitxt",size:24});function gu({model:Y,tools:X,toolChoice:Q,system:J,prompt:G,messages:K,maxRetries:W,abortSignal:Z,timeout:H,headers:F,stopWhen:$=bu(1),experimental_output:V,output:q=V,experimental_telemetry:z,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:j=({error:Y0})=>{console.error(Y0)},onFinish:S,onAbort:y,onStepFinish:f,experimental_context:h,experimental_include:o,_internal:{now:u=f74,generateId:_=b74}={},...l}){let Y0=ZW0(H),s=DP1(H),W0=mG4(H),N0=s!=null?new AbortController:void 0,K0=W0!=null?new AbortController:void 0;return new u74({model:yu(Y),telemetry:z,headers:F,settings:l,maxRetries:W,abortSignal:dP1(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:i2(P),activeTools:w,repairToolCall:I,stopConditions:i2($),output:q,providerOptions:O,prepareStep:D,includeRawChunks:A,onChunk:R,onError:j,onFinish:S,onAbort:y,onStepFinish:f,now:u,generateId:_,experimental_context:h,download:T,include:o})}function x74(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}}})}var u74=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:z,toolChoice:D,transforms:O,activeTools:L,repairToolCall:w,stopConditions:I,output:P,providerOptions:T,prepareStep:A,includeRawChunks:R,now:j,generateId:S,onChunk:y,onError:f,onFinish:h,onAbort:o,onStepFinish:u,experimental_context:_,download:l,include:Y0}){this._totalUsage=new Zq,this._finishReason=new Zq,this._rawFinishReason=new Zq,this._steps=new Zq,this.outputSpecification=P,this.includeRawChunks=R,this.tools=z;let s,W0=[],N0=[],K0=void 0,L0=void 0,E0=void 0,b0={},O1=[],U0=[],Z0=new Map,S0,y1={},_1={},m0=new TransformStream({async transform(x1,G6){var D6,v0,C0,Z1;G6.enqueue(x1);let{part:a0}=x1;if(a0.type==="text-delta"||a0.type==="reasoning-delta"||a0.type==="source"||a0.type==="tool-call"||a0.type==="tool-result"||a0.type==="tool-input-start"||a0.type==="tool-input-delta"||a0.type==="raw")await(y==null?void 0:y({chunk:a0}));if(a0.type==="error")await f({error:CP1(a0.error)});if(a0.type==="text-start")y1[a0.id]={type:"text",text:"",providerMetadata:a0.providerMetadata},W0.push(y1[a0.id]);if(a0.type==="text-delta"){let $6=y1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`text part ${a0.id} not found`},partialOutput:void 0});return}$6.text+=a0.text,$6.providerMetadata=(D6=a0.providerMetadata)!=null?D6:$6.providerMetadata}if(a0.type==="text-end"){let $6=y1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`text part ${a0.id} not found`},partialOutput:void 0});return}$6.providerMetadata=(v0=a0.providerMetadata)!=null?v0:$6.providerMetadata,delete y1[a0.id]}if(a0.type==="reasoning-start")_1[a0.id]={type:"reasoning",text:"",providerMetadata:a0.providerMetadata},W0.push(_1[a0.id]);if(a0.type==="reasoning-delta"){let $6=_1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`reasoning part ${a0.id} not found`},partialOutput:void 0});return}$6.text+=a0.text,$6.providerMetadata=(C0=a0.providerMetadata)!=null?C0:$6.providerMetadata}if(a0.type==="reasoning-end"){let $6=_1[a0.id];if($6==null){G6.enqueue({part:{type:"error",error:`reasoning part ${a0.id} not found`},partialOutput:void 0});return}$6.providerMetadata=(Z1=a0.providerMetadata)!=null?Z1:$6.providerMetadata,delete _1[a0.id]}if(a0.type==="file")W0.push({type:"file",file:a0.file});if(a0.type==="source")W0.push(a0);if(a0.type==="tool-call")W0.push(a0);if(a0.type==="tool-result"&&!a0.preliminary)W0.push(a0);if(a0.type==="tool-approval-request")W0.push(a0);if(a0.type==="tool-error")W0.push(a0);if(a0.type==="start-step")W0=[],_1={},y1={},b0=a0.request,O1=a0.warnings;if(a0.type==="finish-step"){let $6=await YW0({content:W0,tools:z}),q6=new mP1({content:W0,finishReason:a0.finishReason,rawFinishReason:a0.rawFinishReason,usage:a0.usage,warnings:O1,request:b0,response:{...a0.response,messages:[...N0,...$6]},providerMetadata:a0.providerMetadata});await(u==null?void 0:u(q6)),WW0({warnings:O1,provider:Y.provider,model:Y.modelId}),U0.push(q6),N0.push(...$6),s.resolve()}if(a0.type==="finish")E0=a0.totalUsage,K0=a0.finishReason,L0=a0.rawFinishReason},async flush(x1){try{if(U0.length===0){let C0=(K==null?void 0:K.aborted)?K.reason:new rA1({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 G6=K0!=null?K0:"other",D6=E0!=null?E0:i70();m1._finishReason.resolve(G6),m1._rawFinishReason.resolve(L0),m1._totalUsage.resolve(D6),m1._steps.resolve(U0);let v0=U0[U0.length-1];await(h==null?void 0:h({finishReason:v0.finishReason,rawFinishReason:v0.rawFinishReason,totalUsage:D6,usage:v0.usage,content:v0.content,text:v0.text,reasoningText:v0.reasoningText,reasoning:v0.reasoning,files:v0.files,sources:v0.sources,toolCalls:v0.toolCalls,staticToolCalls:v0.staticToolCalls,dynamicToolCalls:v0.dynamicToolCalls,toolResults:v0.toolResults,staticToolResults:v0.staticToolResults,dynamicToolResults:v0.dynamicToolResults,request:v0.request,response:v0.response,warnings:v0.warnings,providerMetadata:v0.providerMetadata,steps:U0,experimental_context:_})),S0.setAttributes(await OW({telemetry:X,attributes:{"ai.response.finishReason":G6,"ai.response.text":{output:()=>v0.text},"ai.response.reasoning":{output:()=>v0.reasoningText},"ai.response.toolCalls":{output:()=>{var C0;return((C0=v0.toolCalls)==null?void 0:C0.length)?JSON.stringify(v0.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(v0.providerMetadata),"ai.usage.inputTokens":D6.inputTokens,"ai.usage.outputTokens":D6.outputTokens,"ai.usage.totalTokens":D6.totalTokens,"ai.usage.reasoningTokens":D6.reasoningTokens,"ai.usage.cachedInputTokens":D6.cachedInputTokens}}))}catch(G6){x1.error(G6)}finally{S0.end()}}}),w0=y74();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 G6(){o==null||o({steps:U0}),x1.enqueue({type:"abort",...(K==null?void 0:K.reason)!==void 0?{reason:kG(K.reason)}:{}}),x1.close()}try{let{done:D6,value:v0}=await V0.read();if(D6){x1.close();return}if(K==null?void 0:K.aborted){G6();return}x1.enqueue(v0)}catch(D6){if(KK(D6)&&(K==null?void 0:K.aborted))G6();else x1.error(D6)}},cancel(x1){return w0.stream.cancel(x1)}});for(let x1 of O)R0=R0.pipeThrough(x1({tools:z,stopStream(){w0.terminate()}}));this.baseStream=R0.pipeThrough(x74(P!=null?P:fu())).pipeThrough(m0);let{maxRetries:q0,retry:M0}=fP1({maxRetries:G,abortSignal:K}),K1=jP1(X),k0=e70(J),x0=IP1({model:Y,telemetry:X,headers:Q,settings:{...k0,maxRetries:q0}}),m1=this;o2({name:"ai.streamText",attributes:OW({telemetry:X,attributes:{...r2({operationId:"ai.streamText",telemetry:X}),...x0,"ai.prompt":{input:()=>JSON.stringify({system:$,prompt:V,messages:q})}}}),tracer:K1,endWhenDone:!1,fn:async(x1)=>{S0=x1;let G6=await EP1({system:$,prompt:V,messages:q}),D6=G6.messages,v0=[],{approvedToolApprovals:C0,deniedToolApprovals:Z1}=hP1({messages:D6});if(Z1.length>0||C0.length>0){let $6=[...C0,...Z1].filter((k)=>k.toolCall.providerExecuted),q6=C0.filter((k)=>!k.toolCall.providerExecuted),p1=Z1.filter((k)=>!k.toolCall.providerExecuted),s1=Z1.filter((k)=>k.toolCall.providerExecuted),f6,N=new ReadableStream({start(k){f6=k}});m1.addStream(N);try{for(let t of[...p1,...s1])f6==null||f6.enqueue({type:"tool-output-denied",toolCallId:t.toolCall.toolCallId,toolName:t.toolCall.toolName});let k=[];if(await Promise.all(q6.map(async(t)=>{let Q0=await KW0({toolCall:t.toolCall,tools:z,tracer:K1,telemetry:X,messages:D6,abortSignal:K,experimental_context:_,onPreliminaryToolResult:(U)=>{f6==null||f6.enqueue(U)}});if(Q0!=null)f6==null||f6.enqueue(Q0),k.push(Q0)})),$6.length>0)v0.push({role:"tool",content:$6.map((t)=>({type:"tool-approval-response",approvalId:t.approvalResponse.approvalId,approved:t.approvalResponse.approved,reason:t.approvalResponse.reason,providerExecuted:!0}))});if(k.length>0||p1.length>0){let t=[];for(let Q0 of k)t.push({type:"tool-result",toolCallId:Q0.toolCallId,toolName:Q0.toolName,output:await $q({toolCallId:Q0.toolCallId,input:Q0.input,tool:z==null?void 0:z[Q0.toolName],output:Q0.type==="tool-result"?Q0.output:Q0.error,errorMode:Q0.type==="tool-error"?"json":"none"})});for(let Q0 of p1)t.push({type:"tool-result",toolCallId:Q0.toolCall.toolCallId,toolName:Q0.toolCall.toolName,output:{type:"execution-denied",reason:Q0.approvalResponse.reason}});v0.push({role:"tool",content:t})}}finally{f6==null||f6.close()}}N0.push(...v0);async function a0({currentStep:$6,responseMessages:q6,usage:p1}){var s1,f6,N,k,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 f0(){if(c!=null)clearTimeout(c)}try{s=new Zq;let I1=[...D6,...q6],S1=await(A==null?void 0:A({model:Y,steps:U0,stepNumber:U0.length,messages:I1,experimental_context:_})),T0=yu((s1=S1==null?void 0:S1.model)!=null?s1:Y),T1=await wP1({prompt:{system:(f6=S1==null?void 0:S1.system)!=null?f6:G6.system,messages:(N=S1==null?void 0:S1.messages)!=null?N:I1},supportedUrls:await T0.supportedUrls,download:l}),{toolChoice:B8,tools:x8}=await MP1({tools:z,toolChoice:(k=S1==null?void 0:S1.toolChoice)!=null?k:D,activeTools:(t=S1==null?void 0:S1.activeTools)!=null?t:L});_=(Q0=S1==null?void 0:S1.experimental_context)!=null?Q0:_;let m6=hu(T,S1==null?void 0:S1.providerOptions),{result:{stream:OX,response:LW,request:v5},doStreamSpan:t0,startTimestampMs:T6}=await M0(()=>o2({name:"ai.streamText.doStream",attributes:OW({telemetry:X,attributes:{...r2({operationId:"ai.streamText.doStream",telemetry:X}),...x0,"ai.model.provider":T0.provider,"ai.model.id":T0.modelId,"ai.prompt.messages":{input:()=>kP1(T1)},"ai.prompt.tools":{input:()=>x8==null?void 0:x8.map((t1)=>JSON.stringify(t1))},"ai.prompt.toolChoice":{input:()=>B8!=null?JSON.stringify(B8):void 0},"gen_ai.system":T0.provider,"gen_ai.request.model":T0.modelId,"gen_ai.request.frequency_penalty":k0.frequencyPenalty,"gen_ai.request.max_tokens":k0.maxOutputTokens,"gen_ai.request.presence_penalty":k0.presencePenalty,"gen_ai.request.stop_sequences":k0.stopSequences,"gen_ai.request.temperature":k0.temperature,"gen_ai.request.top_k":k0.topK,"gen_ai.request.top_p":k0.topP}}),tracer:K1,endWhenDone:!1,fn:async(t1)=>({startTimestampMs:j(),doStreamSpan:t1,result:await T0.doStream({...k0,tools:x8,toolChoice:B8,responseFormat:await(P==null?void 0:P.responseFormat),prompt:T1,providerOptions:m6,abortSignal:K,headers:Q,includeRawChunks:C})})})),N9=h74({tools:z,generatorStream:OX,tracer:K1,telemetry:X,system:$,messages:I1,repairToolCall:w,abortSignal:K,experimental_context:_,generateId:S}),u4=((U=Y0==null?void 0:Y0.requestBody)!=null?U:!0)?v5!=null?v5:{}:{...v5,body:void 0},r0=[],N6=[],l9,EJ={},BK="other",cu=void 0,_5=i70(),nu,UW0=!0,xG={id:S(),timestamp:new Date,modelId:Y.modelId},DW0="";m1.addStream(N9.pipeThrough(new TransformStream({async transform(t1,NY){var DO,OO,YE,c8,uG;if(G0(),t1.type==="stream-start"){l9=t1.warnings;return}if(UW0){let L9=j()-T6;UW0=!1,t0.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":L9}),t0.setAttributes({"ai.response.msToFirstChunk":L9}),NY.enqueue({type:"start-step",request:u4,warnings:l9!=null?l9:[]})}let iu=t1.type;switch(iu){case"tool-approval-request":case"text-start":case"text-end":{NY.enqueue(t1);break}case"text-delta":{if(t1.delta.length>0)NY.enqueue({type:"text-delta",id:t1.id,text:t1.delta,providerMetadata:t1.providerMetadata}),DW0+=t1.delta;break}case"reasoning-start":case"reasoning-end":{NY.enqueue(t1);break}case"reasoning-delta":{NY.enqueue({type:"reasoning-delta",id:t1.id,text:t1.delta,providerMetadata:t1.providerMetadata});break}case"tool-call":{NY.enqueue(t1),r0.push(t1);break}case"tool-result":{if(NY.enqueue(t1),!t1.preliminary)N6.push(t1);break}case"tool-error":{NY.enqueue(t1),N6.push(t1);break}case"response-metadata":{xG={id:(DO=t1.id)!=null?DO:xG.id,timestamp:(OO=t1.timestamp)!=null?OO:xG.timestamp,modelId:(YE=t1.modelId)!=null?YE:xG.modelId};break}case"finish":{_5=t1.usage,BK=t1.finishReason,cu=t1.rawFinishReason,nu=t1.providerMetadata;let L9=j()-T6;t0.addEvent("ai.stream.finish"),t0.setAttributes({"ai.response.msToFinish":L9,"ai.response.avgOutputTokensPerSecond":1000*((c8=_5.outputTokens)!=null?c8:0)/L9});break}case"file":{NY.enqueue(t1);break}case"source":{NY.enqueue(t1);break}case"tool-input-start":{EJ[t1.id]=t1.toolName;let L9=z==null?void 0:z[t1.toolName];if((L9==null?void 0:L9.onInputStart)!=null)await L9.onInputStart({toolCallId:t1.id,messages:I1,abortSignal:K,experimental_context:_});NY.enqueue({...t1,dynamic:(uG=t1.dynamic)!=null?uG:(L9==null?void 0:L9.type)==="dynamic",title:L9==null?void 0:L9.title});break}case"tool-input-end":{delete EJ[t1.id],NY.enqueue(t1);break}case"tool-input-delta":{let L9=EJ[t1.id],au=z==null?void 0:z[L9];if((au==null?void 0:au.onInputDelta)!=null)await au.onInputDelta({inputTextDelta:t1.delta,toolCallId:t1.id,messages:I1,abortSignal:K,experimental_context:_});NY.enqueue(t1);break}case"error":{NY.enqueue(t1),BK="error";break}case"raw":{if(C)NY.enqueue(t1);break}default:throw Error(`Unknown chunk type: ${iu}`)}},async flush(t1){let NY=r0.length>0?JSON.stringify(r0):void 0;try{t0.setAttributes(await OW({telemetry:X,attributes:{"ai.response.finishReason":BK,"ai.response.text":{output:()=>DW0},"ai.response.reasoning":{output:()=>{let c8=W0.filter((uG)=>uG.type==="reasoning");return c8.length>0?c8.map((uG)=>uG.text).join(`
1094
1094
  `):void 0}},"ai.response.toolCalls":{output:()=>NY},"ai.response.id":xG.id,"ai.response.model":xG.modelId,"ai.response.timestamp":xG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(nu),"ai.usage.inputTokens":_5.inputTokens,"ai.usage.outputTokens":_5.outputTokens,"ai.usage.totalTokens":_5.totalTokens,"ai.usage.reasoningTokens":_5.reasoningTokens,"ai.usage.cachedInputTokens":_5.cachedInputTokens,"gen_ai.response.finish_reasons":[BK],"gen_ai.response.id":xG.id,"gen_ai.response.model":xG.modelId,"gen_ai.usage.input_tokens":_5.inputTokens,"gen_ai.usage.output_tokens":_5.outputTokens}}))}catch(c8){}finally{t0.end()}t1.enqueue({type:"finish-step",finishReason:BK,rawFinishReason:cu,usage:_5,providerMetadata:nu,response:{...xG,headers:LW==null?void 0:LW.headers}});let DO=_P1(p1,_5);await s.promise;let OO=r0.filter((c8)=>c8.providerExecuted!==!0),YE=N6.filter((c8)=>c8.providerExecuted!==!0);for(let c8 of r0){if(c8.providerExecuted!==!0)continue;let uG=z==null?void 0:z[c8.toolName];if((uG==null?void 0:uG.type)==="provider"&&uG.supportsDeferredResults){if(!N6.some((L9)=>(L9.type==="tool-result"||L9.type==="tool-error")&&L9.toolCallId===c8.toolCallId))Z0.set(c8.toolCallId,{toolName:c8.toolName})}}for(let c8 of N6)if(c8.type==="tool-result"||c8.type==="tool-error")Z0.delete(c8.toolCallId);if(f0(),a(),(OO.length>0&&YE.length===OO.length||Z0.size>0)&&!await lP1({stopConditions:I,steps:U0})){q6.push(...await YW0({content:U0[U0.length-1].content,tools:z}));try{await a0({currentStep:$6+1,responseMessages:q6,usage:DO})}catch(c8){t1.enqueue({type:"error",error:c8}),m1.closeStream()}}else t1.enqueue({type:"finish",finishReason:BK,rawFinishReason:cu,totalUsage:DO}),m1.closeStream()}})))}finally{f0(),a()}}await a0({currentStep:0,responseMessages:v0,usage:i70()})}}).catch((x1)=>{m1.addStream(new ReadableStream({start(G6){G6.enqueue({type:"error",error:x1}),G6.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 c2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){if(Y.type==="text-delta")X.enqueue(Y.text)}})))}get fullStream(){return c2(this.teeStream().pipeThrough(new TransformStream({transform({part:Y},X){X.enqueue(Y)}})))}async consumeStream(Y){var X;try{await HW0({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 c2(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 Cw1({functionality:`element streams in ${(Q=(X=this.outputSpecification)==null?void 0:X.name)!=null?Q:"text"} mode`});return c2(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((Y)=>{var X;return((X=this.outputSpecification)!=null?X:fu()).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=kG}={}){let F=X!=null?R74({originalMessages:Y,responseMessageId:X}):void 0,$=(q)=>{var z;let D=(z=this.tools)==null?void 0:z[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,z)=>{let D=J==null?void 0:J({part:q}),O=q.type;switch(O){case"text-start":{z.enqueue({type:"text-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-delta":{z.enqueue({type:"text-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"text-end":{z.enqueue({type:"text-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-start":{z.enqueue({type:"reasoning-start",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-delta":{if(G)z.enqueue({type:"reasoning-delta",id:q.id,delta:q.text,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"reasoning-end":{z.enqueue({type:"reasoning-end",id:q.id,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});break}case"file":{z.enqueue({type:"file",mediaType:q.file.mediaType,url:`data:${q.file.mediaType};base64,${q.file.base64}`});break}case"source":{if(K&&q.sourceType==="url")z.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(K&&q.sourceType==="document")z.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);z.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":{z.enqueue({type:"tool-input-delta",toolCallId:q.id,inputTextDelta:q.delta});break}case"tool-call":{let L=$(q);if(q.invalid)z.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 z.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":{z.enqueue({type:"tool-approval-request",approvalId:q.approvalId,toolCallId:q.toolCall.toolCallId});break}case"tool-result":{let L=$(q);z.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);z.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":{z.enqueue({type:"tool-output-denied",toolCallId:q.toolCallId});break}case"error":{z.enqueue({type:"error",errorText:H(q.error)});break}case"start-step":{z.enqueue({type:"start-step"});break}case"finish-step":{z.enqueue({type:"finish-step"});break}case"start":{if(W)z.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...F!=null?{messageId:F}:{}});break}case"finish":{if(Z)z.enqueue({type:"finish",finishReason:q.finishReason,...D!=null?{messageMetadata:D}:{}});break}case"abort":{z.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")z.enqueue({type:"message-metadata",messageMetadata:D})}}));return c2(v74({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,...$}={}){_74({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){C74({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 I74({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 E74({textStream:this.textStream,...Y})}};async function aP1(Y,X){let Q=[];if(X==null?void 0:X.ignoreIncompleteToolCalls)Y=Y.map((J)=>({...J,parts:J.parts.filter((G)=>!n2(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(r70(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(o70(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(a70(G))return(K=X==null?void 0:X.convertDataPart)==null?void 0:K.call(X,G)}).filter(xw1)});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(r70(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(o70(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(CA1(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(n2(D)){let O=s70(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 $q({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(a70(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 z=G.filter((D)=>{var O;return n2(D)&&(D.providerExecuted!==!0||((O=D.approval)==null?void 0:O.approved)!=null)});if(z.length>0){let D=[];for(let O of z){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:s70(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=s70(O);D.push({type:"tool-result",toolCallId:O.toolCallId,toolName:L,output:await $q({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(r70(W)||CA1(W)||o70(W)||n2(W)||a70(W))G.push(W);else if(W.type==="step-start")await K();await K();break}break}default:{let G=J.role;throw new _G4({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}var g74=O9(()=>p8(B.array(B.object({id:B.string(),role:B.enum(["system","user","assistant"]),metadata:B.unknown().optional(),parts:B.array(B.union([B.object({type:B.literal("text"),text:B.string(),state:B.enum(["streaming","done"]).optional(),providerMetadata:o1.optional()}),B.object({type:B.literal("reasoning"),text:B.string(),state:B.enum(["streaming","done"]).optional(),providerMetadata:o1.optional()}),B.object({type:B.literal("source-url"),sourceId:B.string(),url:B.string(),title:B.string().optional(),providerMetadata:o1.optional()}),B.object({type:B.literal("source-document"),sourceId:B.string(),mediaType:B.string(),title:B.string(),filename:B.string().optional(),providerMetadata:o1.optional()}),B.object({type:B.literal("file"),mediaType:B.string(),filename:B.string().optional(),url:B.string(),providerMetadata:o1.optional()}),B.object({type:B.literal("step-start")}),B.object({type:B.string().startsWith("data-"),id:B.string().optional(),data:B.unknown()}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("input-streaming"),input:B.unknown().optional(),providerExecuted:B.boolean().optional(),callProviderMetadata:o1.optional(),output:B.never().optional(),errorText:B.never().optional(),approval:B.never().optional()}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("input-available"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.never().optional()}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("approval-requested"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.never().optional(),reason:B.never().optional()})}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("approval-responded"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.boolean(),reason:B.string().optional()})}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("output-available"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.unknown(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),preliminary:B.boolean().optional(),approval:B.object({id:B.string(),approved:B.literal(!0),reason:B.string().optional()}).optional()}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("output-error"),input:B.unknown(),rawInput:B.unknown().optional(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.string(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.literal(!0),reason:B.string().optional()}).optional()}),B.object({type:B.literal("dynamic-tool"),toolName:B.string(),toolCallId:B.string(),state:B.literal("output-denied"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.literal(!1),reason:B.string().optional()})}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("input-streaming"),providerExecuted:B.boolean().optional(),callProviderMetadata:o1.optional(),input:B.unknown().optional(),output:B.never().optional(),errorText:B.never().optional(),approval:B.never().optional()}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("input-available"),providerExecuted:B.boolean().optional(),input:B.unknown(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.never().optional()}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("approval-requested"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.never().optional(),reason:B.never().optional()})}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("approval-responded"),input:B.unknown(),providerExecuted:B.boolean().optional(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.boolean(),reason:B.string().optional()})}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("output-available"),providerExecuted:B.boolean().optional(),input:B.unknown(),output:B.unknown(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),preliminary:B.boolean().optional(),approval:B.object({id:B.string(),approved:B.literal(!0),reason:B.string().optional()}).optional()}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("output-error"),providerExecuted:B.boolean().optional(),input:B.unknown(),rawInput:B.unknown().optional(),output:B.never().optional(),errorText:B.string(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.literal(!0),reason:B.string().optional()}).optional()}),B.object({type:B.string().startsWith("tool-"),toolCallId:B.string(),state:B.literal("output-denied"),providerExecuted:B.boolean().optional(),input:B.unknown(),output:B.never().optional(),errorText:B.never().optional(),callProviderMetadata:o1.optional(),approval:B.object({id:B.string(),approved:B.literal(!1),reason:B.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));async function m74({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){try{if(Y==null)return{success:!1,error:new bG({parameter:"messages",value:Y,message:"messages parameter must be provided"})};let G=await DW({value:Y,schema:g74});if(X)for(let[K,W]of G.entries())await DW({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 lQ({value:F.data,cause:`No data schema found for data part ${$}`,context:{field:`messages[${K}].parts[${Z}].data`,entityName:$,entityId:F.id}})};await DW({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 lQ({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 DW({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 DW({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 rP1({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J}){let G=await m74({messages:Y,metadataSchema:X,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}var oA8=zW({prefix:"aiobj",size:24});var tA8=zW({prefix:"aiobj",size:24});function oP1({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 l74="AI_NoSuchProviderError",d74=`vercel.ai.error.${l74}`,p74=Symbol.for(d74),c74;c74=p74;GO();Fu();R5();YX();var sP1=32768,mu=50;function tP1(Y){if(!Y?.trim())return`You are an AI assistant running in an MCP Mesh environment.
1095
1095
 
1096
1096
  ## About MCP Mesh