@decocms/mesh 2.82.1 → 2.83.0

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 (156) hide show
  1. package/dist/client/assets/{AlertCircle-BZ-CyZa1.js → AlertCircle-BPyXObkI.js} +1 -1
  2. package/dist/client/assets/{ArrowUp-NSnDVC4l.js → ArrowUp-FCHp4iCN.js} +1 -1
  3. package/dist/client/assets/{Calendar-CoVZYAE2.js → Calendar-BfLwT3NA.js} +1 -1
  4. package/dist/client/assets/{Check-UmtDrnpQ.js → Check-Cs75lN5s.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-LJB0nphc.js → CheckCircle-DBlwf1j4.js} +1 -1
  6. package/dist/client/assets/{CheckDone01-DRW8C0jC.js → CheckDone01-S0a0qNbM.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-Lb9sYBhA.js → ChevronDown-GKAjmf9-.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-DpU4grNv.js → ChevronRight-C2P7kbsg.js} +1 -1
  9. package/dist/client/assets/{Code01-CWm79KkF.js → Code01-BHLC4p1n.js} +1 -1
  10. package/dist/client/assets/{Copy01-BQUnMQ4j.js → Copy01-DoMQtYG8.js} +1 -1
  11. package/dist/client/assets/{DotsHorizontal-CJex2mj4.js → DotsHorizontal-CRij3zkT.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DFFhcQon.js → DotsVertical-k50WldC_.js} +1 -1
  13. package/dist/client/assets/{Download01-nphiB21H.js → Download01-OETwYsH7.js} +1 -1
  14. package/dist/client/assets/{Edit01-D8P8Sr8e.js → Edit01-DLdvPhN6.js} +1 -1
  15. package/dist/client/assets/{File02-BL4gKKAX.js → File02-CMC92Y7p.js} +1 -1
  16. package/dist/client/assets/{File06-BUJ_X_tw.js → File06-Cw5Qokj9.js} +1 -1
  17. package/dist/client/assets/{FilterLines-BiOt1NEr.js → FilterLines-DYaNswU3.js} +1 -1
  18. package/dist/client/assets/{Globe02-CZO7FIDq.js → Globe02-DvDX7kIY.js} +1 -1
  19. package/dist/client/assets/{Grid01-Z83jcxEK.js → Grid01-CRxXEj4c.js} +1 -1
  20. package/dist/client/assets/{Home02-BBAxpbxf.js → Home02-Bl5V3Eer.js} +1 -1
  21. package/dist/client/assets/{Image01-Dj0EPBoK.js → Image01-Da5y1xnZ.js} +1 -1
  22. package/dist/client/assets/{Inbox01-Cv3Of8EH.js → Inbox01-5raqmbyC.js} +1 -1
  23. package/dist/client/assets/{InfoCircle-C99uZ9Dm.js → InfoCircle-_vaPWgPM.js} +1 -1
  24. package/dist/client/assets/{LinkExternal01-D072PuxN.js → LinkExternal01-Djvm54UL.js} +1 -1
  25. package/dist/client/assets/{List-CT3eXyAB.js → List-6rUZwe-S.js} +1 -1
  26. package/dist/client/assets/{Loading01-Boa2vHJO.js → Loading01-MMZDbbza.js} +1 -1
  27. package/dist/client/assets/{Lock01-CXRHeHtY.js → Lock01-CkQyx7Eh.js} +1 -1
  28. package/dist/client/assets/{Pin01-B8zRlvtP.js → Pin01-DZ098jO8.js} +1 -1
  29. package/dist/client/assets/{Play-CVPFaIA1.js → Play-DT7fXdjA.js} +1 -1
  30. package/dist/client/assets/{Plus-BqAKVh_Y.js → Plus-D4aZ3IMW.js} +1 -1
  31. package/dist/client/assets/{RefreshCcw01-D9a8SeHu.js → RefreshCcw01-Cim3w8V-.js} +1 -1
  32. package/dist/client/assets/{SearchMd-UVwS_-fr.js → SearchMd-C_tQMyyy.js} +1 -1
  33. package/dist/client/assets/{Settings01-DwjX6qim.js → Settings01-DHLzOrWD.js} +1 -1
  34. package/dist/client/assets/{Settings02-Du3FLop1.js → Settings02-rhcgMUZ4.js} +1 -1
  35. package/dist/client/assets/{Share07-CxWRs2m3.js → Share07-Dy4fHf5t.js} +1 -1
  36. package/dist/client/assets/{Terminal-B88oyZk4.js → Terminal-n9aj2R3o.js} +1 -1
  37. package/dist/client/assets/{Tool01-kl3RL2lv.js → Tool01-Cl-4zuR9.js} +1 -1
  38. package/dist/client/assets/{Trash01-CzG1xfKz.js → Trash01-Elt9HT4h.js} +1 -1
  39. package/dist/client/assets/{Upload01-ByKmAM2f.js → Upload01-DIbRC7XB.js} +1 -1
  40. package/dist/client/assets/{Users03-DNM06KRo.js → Users03-B-mM8HW1.js} +1 -1
  41. package/dist/client/assets/{X-M_ES_qqi.js → X-CmvZcFQB.js} +1 -1
  42. package/dist/client/assets/{XClose-CQhRIiPs.js → XClose-BMnTDdZw.js} +1 -1
  43. package/dist/client/assets/{agent-connections-preview-Cch0blWE.js → agent-connections-preview-DmJOmFA4.js} +1 -1
  44. package/dist/client/assets/{agent-detail-Bf4iwU-Y.js → agent-detail-DPTr8Yf-.js} +1 -1
  45. package/dist/client/assets/{agents-Df8Q5wiY.js → agents-CEo_DHBF.js} +1 -1
  46. package/dist/client/assets/{alert-dialog-Cggt_nYx.js → alert-dialog-CMNJi4cu.js} +1 -1
  47. package/dist/client/assets/{auth-catchall-BQThJtBC.js → auth-catchall-CDUahCHd.js} +1 -1
  48. package/dist/client/assets/{avatar-Bgewflgt.js → avatar-BYpFPLC-.js} +1 -1
  49. package/dist/client/assets/{badge-Bn10PWiB.js → badge-DtKpOapD.js} +1 -1
  50. package/dist/client/assets/{binder-CimVeOHl.js → binder-CdlFZNUo.js} +1 -1
  51. package/dist/client/assets/{breadcrumb-BBH1RyZB.js → breadcrumb-CsszkVDc.js} +1 -1
  52. package/dist/client/assets/{button-CTB6JBFd.js → button-D4ybDyA6.js} +1 -1
  53. package/dist/client/assets/{card-v1MH1Mkh.js → card--mmH1q_H.js} +1 -1
  54. package/dist/client/assets/{checkbox-CQRkoYD-.js → checkbox-MWE-auvg.js} +1 -1
  55. package/dist/client/assets/{circle-alert-oCGD1a95.js → circle-alert-DCnEsE2A.js} +1 -1
  56. package/dist/client/assets/{collection-detail-Gz1dWeKF.js → collection-detail-B4WDsous.js} +1 -1
  57. package/dist/client/assets/{collection-search-BrFWYjne.js → collection-search-Bii84F4z.js} +1 -1
  58. package/dist/client/assets/{collection-tab-B4-T8UCe.js → collection-tab-CXAG_Gd5.js} +1 -1
  59. package/dist/client/assets/{collection-table-wrapper-CMrduhiz.js → collection-table-wrapper-wQINF_n7.js} +1 -1
  60. package/dist/client/assets/{collection-tabs-BAcu1YCF.js → collection-tabs-BdmTBaKU.js} +1 -1
  61. package/dist/client/assets/{command-CF2Bb3mx.js → command-D1IlC38C.js} +1 -1
  62. package/dist/client/assets/{connect-Ct-J54yH.js → connect-9NWYegXr.js} +1 -1
  63. package/dist/client/assets/{connection-card-ClHuU46c.js → connection-card-D4UIkmBy.js} +1 -1
  64. package/dist/client/assets/{connection-detail-3XxsP7V4.js → connection-detail-nbfuwO9R.js} +1 -1
  65. package/dist/client/assets/{connections-CwtjDJk3.js → connections-D9gdP5WF.js} +1 -1
  66. package/dist/client/assets/constants-BWVCSHbT.js +1 -0
  67. package/dist/client/assets/{constants-lUlA1P1G.js → constants-DaNibXfC.js} +1 -1
  68. package/dist/client/assets/{create-organization-dialog-ZkVao6nf.js → create-organization-dialog-6BWQsUK3.js} +1 -1
  69. package/dist/client/assets/{create-project-dialog-6M4yCSfT.js → create-project-dialog-DXg7_zQn.js} +1 -1
  70. package/dist/client/assets/{dialog-Ck-a1K_o.js → dialog-CMGr7rql.js} +1 -1
  71. package/dist/client/assets/{dropdown-menu-Cq8FJTUN.js → dropdown-menu-BuIL6Z9M.js} +1 -1
  72. package/dist/client/assets/{dynamic-plugin-layout-DWaeqoUn.js → dynamic-plugin-layout-Cayql-Em.js} +1 -1
  73. package/dist/client/assets/{empty-state-CWOQeS8Z.js → empty-state-DRvUMAVC.js} +1 -1
  74. package/dist/client/assets/{empty-state-Cbo2gkCA.js → empty-state-DTrg-Ql5.js} +1 -1
  75. package/dist/client/assets/{env-vars-editor-0nu0DlC8.js → env-vars-editor-B8Mya4cT.js} +1 -1
  76. package/dist/client/assets/{error-boundary-C3FJ9vA_.js → error-boundary-BtZ5XzHQ.js} +1 -1
  77. package/dist/client/assets/{extract-connection-data-CZ_dddPE.js → extract-connection-data-BF529_V9.js} +1 -1
  78. package/dist/client/assets/{file-browser-CZECCIeP.js → file-browser-w9s7soVF.js} +2 -2
  79. package/dist/client/assets/form-DMknnobv.js +1 -0
  80. package/dist/client/assets/{grid-view-EDwqYREw.js → grid-view-CKIDwWZj.js} +1 -1
  81. package/dist/client/assets/{home-BUMQNhoE.js → home-9ScChuE7.js} +1 -1
  82. package/dist/client/assets/{index-CDLVDbuW.js → index-6RZw3yFj.js} +1 -1
  83. package/dist/client/assets/{index-BK599lki.js → index-B3PXgRu6.js} +46 -46
  84. package/dist/client/assets/{index-BTRJVC1r.js → index-BxdkA_ZL.js} +2 -2
  85. package/dist/client/assets/{index-CDNp6Eso.js → index-CWCxcUgh.js} +1 -1
  86. package/dist/client/assets/{index-BcY7_dKI.js → index-DWuFhHja.js} +1 -1
  87. package/dist/client/assets/{index-CDnKGpUs.js → index-DkTwn_Zk.js} +1 -1
  88. package/dist/client/assets/{index-Bv_NnYaV.js → index-DoFuO1mJ.js} +1 -1
  89. package/dist/client/assets/{index-34L4NGZR.js → index-DybN8qgx.js} +1 -1
  90. package/dist/client/assets/{index-DH2TpY2d.js → index-jpYHaPrB.js} +1 -1
  91. package/dist/client/assets/{infiniteQueryObserver-Cg_eu0mh.js → infiniteQueryObserver-DxBV1LPI.js} +1 -1
  92. package/dist/client/assets/{input-czqT2Pad.js → input-z2jpeFYP.js} +1 -1
  93. package/dist/client/assets/{integration-icon-DtC8G4dh.js → integration-icon-jeb5kYQL.js} +1 -1
  94. package/dist/client/assets/{label-82zXKz6_.js → label-DXPngrTd.js} +1 -1
  95. package/dist/client/assets/{layout-Cpvq9nfA.js → layout-xAlXRb2v.js} +1 -1
  96. package/dist/client/assets/localstorage-keys-9xhTORbm.js +1 -0
  97. package/dist/client/assets/{login-WAw8xoZJ.js → login-P0jcEajh.js} +1 -1
  98. package/dist/client/assets/{mcp-oauth-CVRc58m3.js → mcp-oauth-CRtwYY4d.js} +1 -1
  99. package/dist/client/assets/{mcp-server-card-BE-psf3Y.js → mcp-server-card-BPMJKBms.js} +1 -1
  100. package/dist/client/assets/{mcp-server-detail-INhvNzNl.js → mcp-server-detail-D9Br32wD.js} +2 -2
  101. package/dist/client/assets/{members-DFl12zj4.js → members-D1lMQYLf.js} +1 -1
  102. package/dist/client/assets/{monaco-editor-fs2vSX-C.js → monaco-editor-DObrcQRA.js} +1 -1
  103. package/dist/client/assets/{monitoring-DCOip06j.js → monitoring-DuyI1XGQ.js} +1 -1
  104. package/dist/client/assets/{oauth-callback-DPgKxpk2.js → oauth-callback-CmUOx9kN.js} +1 -1
  105. package/dist/client/assets/{page-BVbxs4Vr.js → page-CiHJqxqc.js} +1 -1
  106. package/dist/client/assets/{page-MEvHa87w.js → page-DOMo_XpW.js} +1 -1
  107. package/dist/client/assets/{plugin-empty-state-6KPSw60T.js → plugin-empty-state-ChCtFVu4.js} +1 -1
  108. package/dist/client/assets/{plugin-header-Begx8cVw.js → plugin-header-DvSAgKvH.js} +1 -1
  109. package/dist/client/assets/{popover-BWgdCGw8.js → popover-BUw1D-k3.js} +1 -1
  110. package/dist/client/assets/{project-layout-0wyS2NDK.js → project-layout-DepNFK93.js} +1 -1
  111. package/dist/client/assets/{project-settings-BEJItoi8.js → project-settings-DXcKP6OZ.js} +1 -1
  112. package/dist/client/assets/{projects-list-DAl-12T4.js → projects-list-B7ZAgPRa.js} +1 -1
  113. package/dist/client/assets/{registry-utils-B51B3ioO.js → registry-utils-BHsSQAZM.js} +1 -1
  114. package/dist/client/assets/{resizable-A9piwx-2.js → resizable-BgnJryiK.js} +1 -1
  115. package/dist/client/assets/{select-N6brO6nx.js → select-CqT-RHOd.js} +1 -1
  116. package/dist/client/assets/shell-layout-ds4suCjz.js +12 -0
  117. package/dist/client/assets/{spinner-4fOXhVYy.js → spinner-UdN4XMK9.js} +1 -1
  118. package/dist/client/assets/{store-invite-CCgQTVqI.js → store-invite-BEDmgi9S.js} +1 -1
  119. package/dist/client/assets/{switch-B8rml8nx.js → switch-BNGnFJqx.js} +1 -1
  120. package/dist/client/assets/{table-BM7Y07ZM.js → table-C5twlOYa.js} +1 -1
  121. package/dist/client/assets/{tasks-DCZGVuP4.js → tasks-Cp1sI4Vw.js} +1 -1
  122. package/dist/client/assets/{textarea-TNhTHm9M.js → textarea-CkIVemYH.js} +1 -1
  123. package/dist/client/assets/{tools-list-DNNC-Spx.js → tools-list-Bx2rM27G.js} +1 -1
  124. package/dist/client/assets/{topbar-portal-CNX1YMp4.js → topbar-portal-CkY8cVoH.js} +1 -1
  125. package/dist/client/assets/{typewriter-title-bvAupgtJ.js → typewriter-title-C6Pd2n8m.js} +1 -1
  126. package/dist/client/assets/{use-binding-HxsRrLG4.js → use-binding-DPu07RT3.js} +1 -1
  127. package/dist/client/assets/{use-connection-D9uMTHOF.js → use-connection-BMDdHvgl.js} +1 -1
  128. package/dist/client/assets/{use-create-virtual-mcp-N5LfEC7r.js → use-create-virtual-mcp-Sw-q0DnQ.js} +1 -1
  129. package/dist/client/assets/{use-deco-chat-open-Dfir0-DC.js → use-deco-chat-open-CJyBdqlw.js} +3 -3
  130. package/dist/client/assets/{use-install-from-registry-Bhi2rpLv.js → use-install-from-registry-DqBKCnsO.js} +1 -1
  131. package/dist/client/assets/{use-list-state-Cqm8-cAF.js → use-list-state-C1QR4kf_.js} +1 -1
  132. package/dist/client/assets/{use-llm-DqBbxmSJ.js → use-llm-BboMgEwt.js} +1 -1
  133. package/dist/client/assets/{use-mcp-prompts-E0b1BnP-.js → use-mcp-prompts-CTqLi2Tn.js} +1 -1
  134. package/dist/client/assets/{use-mcp-tools-DJxxSoOb.js → use-mcp-tools-DkyQksFO.js} +1 -1
  135. package/dist/client/assets/{use-mobile-BdYz75f3.js → use-mobile-BKBuyZ1f.js} +1 -1
  136. package/dist/client/assets/{use-organization-settings-DVtsq9Dv.js → use-organization-settings-BRwXXMn8.js} +1 -1
  137. package/dist/client/assets/use-project-CLnw3Rsg.js +1 -0
  138. package/dist/client/assets/{use-virtual-mcp-BN_b8WqX.js → use-virtual-mcp-0bAaSKwj.js} +1 -1
  139. package/dist/client/assets/useInfiniteQuery-BiwY1sxo.js +1 -0
  140. package/dist/client/assets/{useMutation-ICNjK8hh.js → useMutation-CVJv5Jdm.js} +1 -1
  141. package/dist/client/assets/useQuery-CBE5-shC.js +1 -0
  142. package/dist/client/assets/utils-DYQC4wqD.js +1 -0
  143. package/dist/client/assets/{view-mode-toggle-BnUnMRA8.js → view-mode-toggle-CiRRW4Qf.js} +1 -1
  144. package/dist/client/assets/{workflow-xOeGR-7v.js → workflow-DuF6auLD.js} +1 -1
  145. package/dist/client/index.html +1 -1
  146. package/dist/server/cli.js +3 -3
  147. package/dist/server/server.js +3 -3
  148. package/package.json +1 -1
  149. package/dist/client/assets/constants-l3nmBC6x.js +0 -1
  150. package/dist/client/assets/form-CuiI4-Fw.js +0 -1
  151. package/dist/client/assets/localstorage-keys-DtejGC5i.js +0 -1
  152. package/dist/client/assets/shell-layout-D31-Amjt.js +0 -12
  153. package/dist/client/assets/use-project-khiYs8bh.js +0 -1
  154. package/dist/client/assets/useInfiniteQuery-BpdJ52hK.js +0 -1
  155. package/dist/client/assets/useQuery-BsoPjEaP.js +0 -1
  156. package/dist/client/assets/utils-JVych4vu.js +0 -1
@@ -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