@decocms/mesh 2.38.1 → 2.38.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/client/assets/{AlertCircle-CS-jIuIG.js → AlertCircle-z3xwiUwg.js} +1 -1
  2. package/dist/client/assets/{ArrowLeft-CBmwJeeK.js → ArrowLeft-BkoJglZy.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-BcJ8dyfU.js → ArrowUp-BAMBJKzk.js} +1 -1
  4. package/dist/client/assets/{Check-DLju1Q3r.js → Check-BK9-0hKa.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-B_x9h_g5.js → ChevronDown-PIP2u0bO.js} +1 -1
  6. package/dist/client/assets/{Code01-BoyKbSDG.js → Code01-Bur40qHc.js} +1 -1
  7. package/dist/client/assets/{Copy01-BQ64h9yo.js → Copy01-BOhF0ZEB.js} +1 -1
  8. package/dist/client/assets/{CpuChip02-CK9Ts0sS.js → CpuChip02-BTAUjBs1.js} +1 -1
  9. package/dist/client/assets/{DotsHorizontal-Dh8zepi-.js → DotsHorizontal-DxGrUc9a.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-BLF-yOlJ.js → DotsVertical-D61roAg3.js} +1 -1
  11. package/dist/client/assets/{Download01-C789DWeK.js → Download01-DH0bL3Nt.js} +1 -1
  12. package/dist/client/assets/{Edit01-Cd37cNP3.js → Edit01-DINJ246_.js} +1 -1
  13. package/dist/client/assets/{File06-kaLJFm-q.js → File06-DVkrNas0.js} +1 -1
  14. package/dist/client/assets/{FilterLines-Cn2eFuFa.js → FilterLines-so_Nzmiv.js} +1 -1
  15. package/dist/client/assets/{FlipBackward-C5qdQsCz.js → FlipBackward-iQ8t51Yv.js} +1 -1
  16. package/dist/client/assets/{GitBranch01-Drx3lD6H.js → GitBranch01-T4MUtqYK.js} +1 -1
  17. package/dist/client/assets/{Grid01-WefRlQ2V.js → Grid01-CN_8958k.js} +1 -1
  18. package/dist/client/assets/{Home02-B8IjkIhq.js → Home02-DuEnlN2j.js} +1 -1
  19. package/dist/client/assets/{Image01-BBteb9lT.js → Image01-CAZIUcM5.js} +1 -1
  20. package/dist/client/assets/{Inbox01-DK5akTSt.js → Inbox01-CM3kHNUT.js} +1 -1
  21. package/dist/client/assets/{InfoCircle-C-QuElqT.js → InfoCircle-yeMjcoma.js} +1 -1
  22. package/dist/client/assets/{Key01-gcJPy5EX.js → Key01-9yBwokED.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-DkEBvdnT.js → LinkExternal01-DVQPzyFK.js} +1 -1
  24. package/dist/client/assets/{List-BOcQ_qLY.js → List-BuWxjuK8.js} +1 -1
  25. package/dist/client/assets/{Loading01-BnIxMZF3.js → Loading01-D1yLQLik.js} +1 -1
  26. package/dist/client/assets/{Lock01-B5oFbCso.js → Lock01-RqyglEYd.js} +1 -1
  27. package/dist/client/assets/{Play-UDbziv3X.js → Play-DVdw4qV-.js} +1 -1
  28. package/dist/client/assets/{Plus-CgVSBG5y.js → Plus-Je-soon7.js} +1 -1
  29. package/dist/client/assets/{SearchMd-BROWz6ah.js → SearchMd-CbtolPap.js} +1 -1
  30. package/dist/client/assets/{Terminal-Zq1E1BM4.js → Terminal-DYGeKWvi.js} +1 -1
  31. package/dist/client/assets/{Trash01-C--EdsjR.js → Trash01-CZvA_s0Y.js} +1 -1
  32. package/dist/client/assets/{Upload01-DPoHWsHP.js → Upload01-DhaDMFFD.js} +1 -1
  33. package/dist/client/assets/{X-DfAyL_Oh.js → X-sxVQmAsr.js} +1 -1
  34. package/dist/client/assets/{XClose-CzVie8T0.js → XClose-zzu-jidq.js} +1 -1
  35. package/dist/client/assets/{agent-detail-BxLsPk1-.js → agent-detail-BlRpinmR.js} +1 -1
  36. package/dist/client/assets/{agents-B5isnr1e.js → agents-DknJreAQ.js} +1 -1
  37. package/dist/client/assets/{alert-dialog-5PVdPXcK.js → alert-dialog-CVkwkecf.js} +1 -1
  38. package/dist/client/assets/{auth-catchall-GW49jJBl.js → auth-catchall-w4I8mOfz.js} +1 -1
  39. package/dist/client/assets/{avatar-CDCsOqPW.js → avatar-C9tVSVlv.js} +1 -1
  40. package/dist/client/assets/{badge-DdUz_4zF.js → badge-C7J4I2Hj.js} +1 -1
  41. package/dist/client/assets/{binder-CaMfr2RD.js → binder-CbjhFDGc.js} +1 -1
  42. package/dist/client/assets/{button-BIjHWY-p.js → button-CceSuFKi.js} +1 -1
  43. package/dist/client/assets/{card-O_szO-vK.js → card-BGHb8OmC.js} +1 -1
  44. package/dist/client/assets/{checkbox-C4yURLAg.js → checkbox-Cu04V43g.js} +1 -1
  45. package/dist/client/assets/{collection-detail-C-jqXdoZ.js → collection-detail-D2oIsKq-.js} +1 -1
  46. package/dist/client/assets/{collection-display-button-Ds1zEKL2.js → collection-display-button-Df_9WgFb.js} +1 -1
  47. package/dist/client/assets/{collection-header-TKDCFPjw.js → collection-header-COgMCOx8.js} +1 -1
  48. package/dist/client/assets/{collection-page-c7j4IfUq.js → collection-page-DVakSZpa.js} +1 -1
  49. package/dist/client/assets/{collection-search-DKhAjxez.js → collection-search-Fe3W5Myr.js} +1 -1
  50. package/dist/client/assets/{collection-tab-D5IqjP-f.js → collection-tab-_C4vj95J.js} +1 -1
  51. package/dist/client/assets/{collection-table-wrapper-4B7cZeoV.js → collection-table-wrapper-VkF3O5dC.js} +1 -1
  52. package/dist/client/assets/{connection-card-DH1wTNCc.js → connection-card-Bq9AH0T5.js} +1 -1
  53. package/dist/client/assets/{connection-detail-DfX4RZhC.js → connection-detail-CbrkwDLO.js} +1 -1
  54. package/dist/client/assets/{connections-BKodQMhu.js → connections-unSJ25xy.js} +1 -1
  55. package/dist/client/assets/constants-CrS7edVE.js +1 -0
  56. package/dist/client/assets/{constants-D4amfH_3.js → constants-DqnLzZpL.js} +1 -1
  57. package/dist/client/assets/{create-organization-dialog-C1ErfiJc.js → create-organization-dialog-DCA75BPi.js} +1 -1
  58. package/dist/client/assets/{dialog-DPTEgXq7.js → dialog-CL6M-Xmi.js} +1 -1
  59. package/dist/client/assets/{dropdown-menu-Qz_CAQar.js → dropdown-menu-BMu3zBVo.js} +1 -1
  60. package/dist/client/assets/{dynamic-plugin-layout-Dn93wPdR.js → dynamic-plugin-layout-CKzehx9R.js} +1 -1
  61. package/dist/client/assets/{empty-state-Cw_XUF0K.js → empty-state-B0xeJKH5.js} +1 -1
  62. package/dist/client/assets/{empty-state-DRkabEGg.js → empty-state-BHdJzPJs.js} +1 -1
  63. package/dist/client/assets/{env-vars-editor-DAoIabTH.js → env-vars-editor-CtvDpSON.js} +1 -1
  64. package/dist/client/assets/{error-boundary-CMaeLt6A.js → error-boundary-vgLVbtql.js} +1 -1
  65. package/dist/client/assets/{extract-connection-data-DxwUvuRo.js → extract-connection-data-w2VKbBVM.js} +1 -1
  66. package/dist/client/assets/{file-browser-DfLYy3MD.js → file-browser-C_o-XRN_.js} +2 -2
  67. package/dist/client/assets/{form-DaYDBDTX.js → form-DWBp_92q.js} +1 -1
  68. package/dist/client/assets/{grid-view-DIZOiKOZ.js → grid-view-D4uG2rz_.js} +1 -1
  69. package/dist/client/assets/{home-9pZ2RDY-.js → home-tcH3yRYZ.js} +1 -1
  70. package/dist/client/assets/{index-BC2cNq-q.js → index-BfBspZNA.js} +1 -1
  71. package/dist/client/assets/{index-CuL2eg3H.js → index-CQ6L3uZi.js} +1 -1
  72. package/dist/client/assets/{index-o1FfD36Q.js → index-CUpy3pKS.js} +1 -1
  73. package/dist/client/assets/{index-CfH8pE7r.js → index-D1MpJYf1.js} +1 -1
  74. package/dist/client/assets/{index-8Hmhn75x.js → index-D4QmV-sc.js} +1 -1
  75. package/dist/client/assets/{index-BwwBEfrO.js → index-DimTMp-G.js} +2 -2
  76. package/dist/client/assets/{infiniteQueryObserver-CwT1UjVu.js → infiniteQueryObserver-DeWE7Mv6.js} +1 -1
  77. package/dist/client/assets/{input-CVOvOgSp.js → input-BzZt5UMQ.js} +1 -1
  78. package/dist/client/assets/{layout-nyIHcSTg.js → layout-DqvUpliw.js} +1 -1
  79. package/dist/client/assets/{localstorage-keys-Rwfudbas.js → localstorage-keys-Pb1bSOSH.js} +1 -1
  80. package/dist/client/assets/{login-C8oIX0L8.js → login-Bw3mNwou.js} +1 -1
  81. package/dist/client/assets/{mcp-oauth-CAZFpyb5.js → mcp-oauth-DVTAVhIy.js} +1 -1
  82. package/dist/client/assets/{mcp-server-card-5ntetetx.js → mcp-server-card-BOsrfsoy.js} +1 -1
  83. package/dist/client/assets/{mcp-server-detail-CTvj-b2O.js → mcp-server-detail-DL4a0l-I.js} +2 -2
  84. package/dist/client/assets/{members-DAPobsBd.js → members-CaWwLwBY.js} +1 -1
  85. package/dist/client/assets/{monaco-editor-CrvW2h3k.js → monaco-editor-C3l8YLnM.js} +1 -1
  86. package/dist/client/assets/monitoring-BXzU__Q2.js +49 -0
  87. package/dist/client/assets/{oauth-callback-HrS0pWbo.js → oauth-callback-C29sykPI.js} +1 -1
  88. package/dist/client/assets/{page-Ci59OqVQ.js → page-D9f3s0Zn.js} +1 -1
  89. package/dist/client/assets/{page-DsaotdUI.js → page-DFTluz6T.js} +1 -1
  90. package/dist/client/assets/{pin-to-sidebar-button-DECaOYqz.js → pin-to-sidebar-button-a3_Q5PIg.js} +1 -1
  91. package/dist/client/assets/{plugin-empty-state-bbMDebZX.js → plugin-empty-state-gioOq0db.js} +1 -1
  92. package/dist/client/assets/{plugin-header-D9hNPIw1.js → plugin-header-OS_VhXuY.js} +1 -1
  93. package/dist/client/assets/{plugins-CzrAKKa7.js → plugins-6jaAX9OI.js} +1 -1
  94. package/dist/client/assets/{popover-CLj7Qdgu.js → popover-DCXtR4UV.js} +1 -1
  95. package/dist/client/assets/{registry-utils-CI8LbcR3.js → registry-utils-B1EtgBkU.js} +1 -1
  96. package/dist/client/assets/{resizable-DfGY2wYp.js → resizable-C5jfRumR.js} +1 -1
  97. package/dist/client/assets/{resource-tabs-C2i6zXNV.js → resource-tabs-BNBJ-3ue.js} +1 -1
  98. package/dist/client/assets/{select-DFt33nTB.js → select-DVxy4dZt.js} +1 -1
  99. package/dist/client/assets/{settings-5bD3UVMS.js → settings-DlMrUAFl.js} +1 -1
  100. package/dist/client/assets/{shell-layout-DzFavLHo.js → shell-layout-C02QmtDM.js} +1 -1
  101. package/dist/client/assets/{spinner-D1gxL93c.js → spinner-BK_gptNQ.js} +1 -1
  102. package/dist/client/assets/{switch-r-FGf2jr.js → switch-BEUY1ZkG.js} +1 -1
  103. package/dist/client/assets/{textarea-uS4eDm3T.js → textarea-Dok2BUMd.js} +1 -1
  104. package/dist/client/assets/{tool-set-selector-D6ybKjEp.js → tool-set-selector-BPpD_gne.js} +1 -1
  105. package/dist/client/assets/{tools-list-Cye7rRj9.js → tools-list-eucrhDw_.js} +1 -1
  106. package/dist/client/assets/{tooltip-Chg2rsW2.js → tooltip-BotDoy6T.js} +1 -1
  107. package/dist/client/assets/{typewriter-title-4XaunTHF.js → typewriter-title-C0AyXxMG.js} +1 -1
  108. package/dist/client/assets/{use-binding-Zcc6NZnM.js → use-binding-Dj1HVNst.js} +1 -1
  109. package/dist/client/assets/{use-collections-3NjL2Hto.js → use-collections-Vpvt2q4e.js} +1 -1
  110. package/dist/client/assets/{use-connection-QZl4Exm0.js → use-connection-DTjI_RtQ.js} +1 -1
  111. package/dist/client/assets/{use-create-virtual-mcp-V9sGOQA9.js → use-create-virtual-mcp-Jf2xsGTe.js} +1 -1
  112. package/dist/client/assets/{use-list-state-BJqScqZU.js → use-list-state-Bzarl2oM.js} +1 -1
  113. package/dist/client/assets/{use-members-prrLrEOF.js → use-members-BtNqo2oh.js} +1 -1
  114. package/dist/client/assets/{use-mobile-AgFIjOpH.js → use-mobile-CcOC6HBd.js} +1 -1
  115. package/dist/client/assets/{use-organization-settings-TgD9q9k_.js → use-organization-settings-CwiS3zFY.js} +1 -1
  116. package/dist/client/assets/{use-virtual-mcp-Cc3PLd72.js → use-virtual-mcp-hN6G5B_j.js} +1 -1
  117. package/dist/client/assets/useInfiniteQuery-B-B7Ix7h.js +1 -0
  118. package/dist/client/assets/{useMutation-CYk72WrK.js → useMutation-d4_WWA7-.js} +1 -1
  119. package/dist/client/assets/useQuery-BMYUlGUP.js +1 -0
  120. package/dist/client/assets/{value-CqS8gzSp.js → value-BHid2kuo.js} +1 -1
  121. package/dist/client/assets/{view-mode-toggle-0FnK0xP6.js → view-mode-toggle-DhWV5fbM.js} +1 -1
  122. package/dist/client/assets/{virtual-mcp-BNJP8KXe.js → virtual-mcp-Dyh0Ag7o.js} +1 -1
  123. package/dist/client/assets/{workflow-DvgbeJZ5.js → workflow-Bw7jESqY.js} +1 -1
  124. package/dist/client/index.html +1 -1
  125. package/dist/server/cli.js +7 -7
  126. package/dist/server/migrate.js +2 -2
  127. package/dist/server/server.js +6 -6
  128. package/package.json +1 -1
  129. package/dist/client/assets/constants-B4lpp64j.js +0 -1
  130. package/dist/client/assets/monitoring-CgnxsI_0.js +0 -49
  131. package/dist/client/assets/useInfiniteQuery-CJoNaoTX.js +0 -1
  132. package/dist/client/assets/useQuery-BNVmK_tg.js +0 -1
@@ -1179,20 +1179,20 @@ ${X.stack}`;return Y}if(typeof X==="object"&&X!==null){let Y=X,Q="";if(typeof Y.
1179
1179
  ${Y.stack}`;return Q}try{let G=JSON.stringify(Y,null,2);if(G!=="{}"&&G.length<1000){if(typeof Y.stack==="string"&&Y.stack&&Y.stack.length<2000)return`${G}
1180
1180
 
1181
1181
  Stack trace:
1182
- ${Y.stack}`;return G}}catch{}if(typeof Y.toString==="function")try{let G=Y.toString();if(G!=="[object Object]")return G}catch{}let J=Object.keys(Y);if(J.length>0)return`Object with keys: ${J.join(", ")}`;return"[object Object]"}if(typeof X==="string")return X;if(typeof X==="number"||typeof X==="boolean")return String(X);if(typeof X==="function")return`[Function: ${X.name||"anon"}]`;if(typeof X==="symbol")return X.toString();if(typeof X==="bigint")return X.toString();try{return String(X)}catch{return"Unknown value (could not convert to string)"}}function yB(X,Y){switch(typeof Y){case"string":return X.newString(Y);case"number":return X.newNumber(Y);case"boolean":return Y?X.true:X.false;case"undefined":return X.undefined;case"object":{if(Y===null)return X.null;if(Array.isArray(Y)){let J=X.newArray();return Y.forEach((G,W)=>{let Z=yB(X,G);try{X.setProp(J,String(W),Z)}finally{Z.dispose?.()}}),J}let Q=X.newObject();for(let[J,G]of Object.entries(Y)){let W=yB(X,G);try{X.setProp(Q,J,W)}finally{W.dispose?.()}}return Q}case"function":{let Q=`__hostFn_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return X.newFunction(Q,(...G)=>{try{let W=G.map(($)=>X.dump($)),Z=Y(...W);if(Z&&typeof Z.then==="function"){let $=X.newPromise();return Z.then((K)=>{try{let H=yB(X,K);$.resolve(H),H.dispose(),X.runtime.executePendingJobs()}catch(H){let F=_B(H),V=X.newString(`Promise resolution error: ${F}`);$.reject(V),V.dispose(),X.runtime.executePendingJobs()}}).catch((K)=>{let H=_B(K),F=X.newString(`Promise rejection: ${H}`);$.reject(F),F.dispose(),X.runtime.executePendingJobs()}),$.handle}return yB(X,Z)}catch(W){let Z=_B(W);return X.newString(`HostFunctionError: ${Z}`)}finally{G.forEach((W)=>W.dispose())}})}case"bigint":return X.newString(Y.toString());case"symbol":return X.newString(Y.toString());default:try{return X.newString(String(Y))}catch{return X.undefined}}}var VW1=()=>{};function UW1(X){let Y=X.runtime.executePendingJobs(100);try{if("unwrap"in Y&&typeof Y.unwrap==="function")Y.unwrap()}finally{if("dispose"in Y&&typeof Y.dispose==="function")Y.dispose()}}async function qW1(X,Y,Q){let J=Date.now(),G=X.resolvePromise(Y);while(!0){UW1(X);let W=await Promise.race([G,wu6(0).then(()=>null)]);if(W!==null)return W;if(Date.now()-J>Q)throw Error(`Timed out after ${Q}ms while awaiting a QuickJS promise`)}}async function tY0({tools:X,code:Y,timeoutMs:Q}){let Z=[];try{let J=await HW1({memoryLimitBytes:33554432,stackSizeBytes:524288});const G=Eh(Z,J.newContext({interruptAfterMs:Q}),0);const W=Eh(Z,f71(G),0);try{let F=G.evalCode(Y,"index.mjs",{strip:!0,strict:!0,type:"module"}),V=G.unwrapResult(F),q=yB(G,X);G.setProp(G.global,"tools",q);let z=G.runtime.hasPendingJob()?G.unwrapResult(await qW1(G,V,Q)):V;if(z!==V)V.dispose();let D=G.getProp(z,"default"),N=G.typeof(D);if(N!=="function")return{error:`Code must export default a function (tools). Got ${N}. Example: export default async (tools) => { /* ... */ }`,consoleLogs:W.logs};let L=G.callFunction(D,G.undefined,q),w=G.unwrapResult(L),C=await qW1(G,w,Q),T=G.unwrapResult(C);if(G.runtime.hasPendingJob())UW1(G);return{returnValue:G.dump(T),consoleLogs:W.logs}}catch(F){return console.log(F),{error:_B(F),consoleLogs:W.logs}}}catch($){var K=$,H=1}finally{uJ0(Z,K,H)}}var wu6=(X)=>new Promise((Y)=>setTimeout(Y,X));var zW1=S(()=>{FW1();VW1()});var BW1=S(()=>{zW1()});async function Mu6(X,Y){let Q;if(X.tool_selection_mode==="exclusion"){let G=(await Y.storage.connections.list(X.organization_id)).filter((Z)=>Z.status==="active"),W=new Map;for(let Z of X.connections)W.set(Z.connection_id,{selectedTools:Z.selected_tools,selectedResources:Z.selected_resources,selectedPrompts:Z.selected_prompts});Q=[];for(let Z of G){let $=W.get(Z.id);if($===void 0)Q.push({connection:Z,selectedTools:null,selectedResources:null,selectedPrompts:null});else if(($.selectedTools===null||$.selectedTools.length===0)&&($.selectedResources===null||$.selectedResources.length===0)&&($.selectedPrompts===null||$.selectedPrompts.length===0));else Q.push({connection:Z,selectedTools:$.selectedTools,selectedResources:$.selectedResources,selectedPrompts:$.selectedPrompts})}}else{let J=X.connections.map((W)=>W.connection_id),G=[];for(let W of J){let Z=await Y.storage.connections.findById(W);if(Z&&Z.status==="active")G.push(Z)}Q=G.map((W)=>{let Z=X.connections.find(($)=>$.connection_id===W.id);return{connection:W,selectedTools:Z?.selected_tools??null,selectedResources:Z?.selected_resources??null,selectedPrompts:Z?.selected_prompts??null}})}return Q}async function DW1(X,Y){return(await Y.storage.connections.list(X)).filter((J)=>J.status==="active").map((J)=>({connection:J,selectedTools:null,selectedResources:null,selectedPrompts:null}))}async function Pu6(X,Y,Q){let J=await kB.create(X,Q),G=await J.mapSettled(async(F,V)=>{try{let z=(await F.proxy.client.listTools()).tools;if(Y==="exclusion"){if(F.selectedTools&&F.selectedTools.length>0){let D=new Set(F.selectedTools);z=z.filter((N)=>!D.has(N.name))}}else if(F.selectedTools&&F.selectedTools.length>0){let D=new Set(F.selectedTools);z=z.filter((N)=>D.has(N.name))}return{connectionId:V,connectionTitle:F.connection.title,tools:z}}catch(q){return console.error(`[code-execution] Failed to list tools for connection ${V}:`,q),null}}),W=new Set,Z=[],$=new Map,K=new Set;for(let F of G){if(F.status!=="fulfilled"||!F.value)continue;let{connectionId:V,connectionTitle:q,tools:z}=F.value;K.add(q);for(let D of z){if(W.has(D.name))continue;W.add(D.name),Z.push({...D,_meta:{connectionId:V,connectionTitle:q}}),$.set(D.name,{connectionId:V,originalName:D.name})}}return{tools:Z,callTool:async(F,V)=>{let q=$.get(F);if(!q)return{content:[{type:"text",text:`Tool not found: ${F}`}],isError:!0};let z=J.get(q.connectionId);if(!z)return{content:[{type:"text",text:`Connection not found for tool: ${F}`}],isError:!0};return await z.proxy.client.callTool({name:q.originalName,arguments:V})},categories:Array.from(K).sort()}}async function bB(X){let Y=_1(X),Q,J="inclusion";if(X.connectionId){let G=await X.storage.virtualMcps.findById(X.connectionId);if(G)Q=await Mu6(G,X),J=G.tool_selection_mode;else Q=await DW1(Y.id,X)}else Q=await DW1(Y.id,X);return Pu6(Q,J,X)}function Au6(X){return X.toLowerCase().split(/[\s_\-./]+/).filter((Y)=>Y.length>=2)}function Tu6(X,Y){let Q=0,J=Y.name.toLowerCase(),G=(Y.description??"").toLowerCase(),W=Y._meta.connectionTitle.toLowerCase();for(let Z of X){if(J===Z)Q+=10;else if(J.includes(Z))Q+=3;if(G.includes(Z))Q+=2;if(W.includes(Z))Q+=1}return Q}function Uf(X,Y,Q){let J=Au6(X);if(J.length===0)return Y.slice(0,Q);return Y.map((G)=>({tool:G,score:Tu6(J,G)})).filter((G)=>G.score>0).sort((G,W)=>W.score-G.score).slice(0,Q).map((G)=>G.tool)}function zf(X,Y){let Q=new Map(Y.map((G)=>[G.name,G]));return{tools:X.map((G)=>Q.get(G)).filter((G)=>G!==void 0).map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle,inputSchema:G.inputSchema,outputSchema:G.outputSchema})),notFound:X.filter((G)=>!Q.has(G))}}async function Bf(X,Y,Q){let J=Object.fromEntries(Y.tools.map((G)=>[G.name,async(W)=>Y.callTool(G.name,W??{})]));return tY0({code:X,tools:J,timeoutMs:Q})}function Df(X){return{content:[{type:"text",text:JSON.stringify(X,null,2)}]}}function fB(X){return{content:[{type:"text",text:JSON.stringify(X,null,2)}],isError:!0}}function zA(X){let Y=new Set(Eu6);return X.filter((Q)=>!Y.has(Q.name))}var Eu6;var BA=S(()=>{BW1();Eu6=["CODE_EXECUTION_SEARCH_TOOLS","CODE_EXECUTION_DESCRIBE_TOOLS","CODE_EXECUTION_RUN_CODE"]});var eY0;var NW1=S(()=>{$6();qA();BA();eY0=e0({name:"CODE_EXECUTION_SEARCH_TOOLS",description:"Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling CODE_EXECUTION_DESCRIBE_TOOLS for detailed schemas.",inputSchema:S71,outputSchema:k71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y),J=Uf(X.query,Q.tools,X.limit);return{query:X.query,results:J.map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle})),totalAvailable:Q.tools.length}}})});var X90;var OW1=S(()=>{$6();qA();BA();X90=e0({name:"CODE_EXECUTION_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after CODE_EXECUTION_SEARCH_TOOLS to get full input/output schemas before executing code.",inputSchema:v71,outputSchema:_71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y);return zf(X.tools,Q.tools)}})});var Y90;var LW1=S(()=>{$6();qA();BA();Y90=e0({name:"CODE_EXECUTION_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use CODE_EXECUTION_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:y71,outputSchema:b71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y);return await Bf(X.code,Q,X.timeoutMs)}})});var wW1=S(()=>{NW1();OW1();LW1();qA()});var Cu6,Iu6,Q90;var MW1=S(()=>{YA();r0();$6();Zf();g7();Cu6=U.object({data:QG1.describe("Data for the new connection (id is auto-generated if not provided)")}),Iu6=U.object({item:F5.describe("The created connection entity")}),Q90=e0({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:Cu6,outputSchema:Iu6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to create connection");let G={...X.data,organization_id:Q.id,created_by:J};if(G.connection_type==="VIRTUAL"){let K=fK(G.connection_url);if(!K)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let H=await Y.storage.virtualMcps.findById(K);if(!H)throw Error(`Virtual MCP not found: ${K}`);if(H.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");G.connection_url=Xf(K)}let W=await RB({id:`pending-${Date.now()}`,title:G.title,connection_type:G.connection_type,connection_url:G.connection_url,connection_token:G.connection_token,connection_headers:G.connection_headers}).catch(()=>null),Z=W?.length?W:null,$=await Y.storage.connections.create({...G,tools:Z});return await Y.eventBus.publish(Q.id,LZ.SELF(Q.id),{type:"connection.created",data:$}),{item:$}}})});function DA(X,Y){if(X===Y)return!0;if(X==null||Y==null)return X===Y;if(typeof X!==typeof Y)return!1;if(Array.isArray(X)&&Array.isArray(Y)){if(X.length!==Y.length)return!1;return X.every((Q,J)=>DA(Q,Y[J]))}if(typeof X==="object"&&typeof Y==="object"){let Q=Object.keys(X),J=Object.keys(Y);if(Q.length!==J.length)return!1;return Q.every((G)=>J.includes(G)&&DA(X[G],Y[G]))}return!1}function su6(){return(X)=>{if(!Array.isArray(X))return!0;let Y=[];return X.every((Q)=>{if(Y.some((G)=>DA(Q,G)))return!1;return Y.push(Q),!0})}}function Nf(X,Y){return X.safeParse(Y).success}function bY(X){if(typeof X==="boolean")return X?U.any():U.never();let Y={};for(let G of Vm6)G.apply(Y,X);let Q=[];if(Y.string!==!1)Q.push(Y.string||U.string());if(Y.number!==!1)Q.push(Y.number||U.number());if(Y.boolean!==!1)Q.push(Y.boolean||U.boolean());if(Y.null!==!1)Q.push(Y.null||U.null());if(Y.array!==!1)Q.push(Y.array||U.array(U.any()));if(Y.tuple!==!1&&Y.tuple!==void 0)Q.push(Y.tuple);if(Y.object!==!1)if(Y.object)Q.push(Y.object);else{let G=U.custom((W)=>{return typeof W==="object"&&W!==null&&!Array.isArray(W)},"Must be an object, not an array");Q.push(G)}if(Y.file!==!1&&Y.file!==void 0)Q.push(Y.file);let J;if(Q.length===0)J=U.never();else if(Q.length===1)J=Q[0];else if(!Object.keys(X).some((W)=>W!=="$schema"&&W!=="title"&&W!=="description"))J=U.any();else J=U.union(Q);for(let G of qm6)J=G.apply(J,X);return J}var Ru6=class{apply(X,Y){if(!Y.type)return;let Q=Array.isArray(Y.type)?Y.type:[Y.type],J=new Set(Q);if(!J.has("string"))X.string=!1;if(!J.has("number")&&!J.has("integer"))X.number=!1;if(!J.has("boolean"))X.boolean=!1;if(!J.has("null"))X.null=!1;if(!J.has("array"))X.array=!1;if(!J.has("object"))X.object=!1;if(J.has("integer")&&X.number!==!1){let G=X.number||U.number();if(G instanceof U.ZodNumber)X.number=G.int()}}},Su6=class{apply(X,Y){if(Y.const===void 0)return;let Q=Y.const;if(X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1,typeof Q==="string")X.string=U.literal(Q);else if(typeof Q==="number")X.number=U.literal(Q);else if(typeof Q==="boolean")X.boolean=U.literal(Q);else if(Q===null)X.null=U.null();else if(Array.isArray(Q))X.array=void 0;else if(typeof Q==="object")X.object=void 0}},ku6=class{apply(X,Y){if(!Y.enum)return;if(Y.enum.length===0){if(!Y.type)X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1;return}let Q={string:Y.enum.filter((J)=>typeof J==="string"),number:Y.enum.filter((J)=>typeof J==="number"),boolean:Y.enum.filter((J)=>typeof J==="boolean"),null:Y.enum.filter((J)=>J===null),array:Y.enum.filter((J)=>Array.isArray(J)),object:Y.enum.filter((J)=>typeof J==="object"&&J!==null&&!Array.isArray(J))};X.string=this.createTypeSchema(Q.string,"string"),X.number=this.createTypeSchema(Q.number,"number"),X.boolean=this.createTypeSchema(Q.boolean,"boolean"),X.null=Q.null.length>0?U.null():!1,X.array=Q.array.length>0?void 0:!1,X.object=Q.object.length>0?void 0:!1}createTypeSchema(X,Y){if(X.length===0)return!1;if(X.length===1)return U.literal(X[0]);if(Y==="string")return U.enum(X);if(Y==="number"){let[Q,J,...G]=X;return U.union([U.literal(Q),U.literal(J),...G.map((W)=>U.literal(W))])}if(Y==="boolean")return U.union([U.literal(!0),U.literal(!1)]);return!1}},vu6=class{apply(X,Y){let Q=Y;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let J=U.file();if(Q.minLength!==void 0)J=J.min(Q.minLength);if(Q.maxLength!==void 0)J=J.max(Q.maxLength);if(Q.contentMediaType!==void 0)J=J.mime(Q.contentMediaType);X.file=J,X.string=!1}}},_u6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if(X.string===void 0)X.string=U.string()}}},yu6=class{apply(X,Y){let Q=Y;if(Q.minLength===void 0)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString)X.string=J.refine((G)=>{return Array.from(G).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},bu6=class{apply(X,Y){let Q=Y;if(Q.maxLength===void 0)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString)X.string=J.refine((G)=>{return Array.from(G).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},fu6=class{apply(X,Y){let Q=Y;if(!Q.pattern)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString){let G=new RegExp(Q.pattern);X.string=J.regex(G)}}}},hu6=class{apply(X,Y){let Q=Y;if(Q.minimum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.min(Q.minimum)}}},xu6=class{apply(X,Y){let Q=Y;if(Q.maximum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.max(Q.maximum)}}},gu6=class{apply(X,Y){let Q=Y;if(Q.exclusiveMinimum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)if(typeof Q.exclusiveMinimum==="number")X.number=J.gt(Q.exclusiveMinimum);else X.number=!1}}},uu6=class{apply(X,Y){let Q=Y;if(Q.exclusiveMaximum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)if(typeof Q.exclusiveMaximum==="number")X.number=J.lt(Q.exclusiveMaximum);else X.number=!1}}},mu6=class{apply(X,Y){let Q=Y;if(Q.multipleOf===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.refine((G)=>{if(Q.multipleOf===0)return!1;let W=G/Q.multipleOf,Z=Math.round(W),$=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(W-Z)<=$/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},lu6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if(X.array===void 0)X.array=U.array(U.any())}}},du6=class{apply(X,Y){let Q=Y;if(Q.minItems===void 0)return;if(X.array!==!1)X.array=(X.array||U.array(U.any())).min(Q.minItems)}},pu6=class{apply(X,Y){let Q=Y;if(Q.maxItems===void 0)return;if(X.array!==!1)X.array=(X.array||U.array(U.any())).max(Q.maxItems)}},cu6=class{apply(X,Y){let Q=Y;if(X.array===!1)return;if(Array.isArray(Q.items))X.array=X.array||U.array(U.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let J=bY(Q.items),G=U.array(J);if(X.array&&X.array instanceof U.ZodArray){let W=X.array._def;if(W.checks)W.checks.forEach((Z)=>{if(Z._zod&&Z._zod.def){let $=Z._zod.def;if($.check==="min_length"&&$.minimum!==void 0)G=G.min($.minimum);else if($.check==="max_length"&&$.maximum!==void 0)G=G.max($.maximum)}})}X.array=G}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)X.array=U.array(U.any()).max(0);else X.array=X.array||U.array(U.any());else if(typeof Q.items==="boolean"&&Q.items===!0)X.array=X.array||U.array(U.any());else if(Q.prefixItems)X.array=X.array||U.array(U.any())}},nu6=class{apply(X,Y){if(Y.type!=="array")return;let Q=Y;if(!Array.isArray(Q.items))return;if(X.array===!1)return;let J=Q.items.map((W)=>bY(W)),G;if(J.length===0)G=U.tuple([]);else G=U.tuple(J);if(Q.minItems!==void 0&&Q.minItems>J.length)G=!1;if(Q.maxItems!==void 0&&Q.maxItems<J.length)G=!1;X.tuple=G,X.array=!1}},iu6=class{apply(X,Y){let Q=Y;if(X.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)X.object=X.object||U.object({}).passthrough()}},au6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if(X.object===void 0)X.object=U.object({}).passthrough()}}},ru6=class{apply(X,Y){let Q=Y;if(Q.maxProperties===void 0)return;if(X.object!==!1){let J=X.object||U.object({}).passthrough();X.object=J.refine((G)=>Object.keys(G).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},ou6=class{apply(X,Y){let Q=Y;if(Q.minProperties===void 0)return;if(X.object!==!1){let J=X.object||U.object({}).passthrough();X.object=J.refine((G)=>Object.keys(G).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},tu6=class{apply(X,Y){if(!Y.not)return X;let Q=bY(Y.not);return X.refine((J)=>!Nf(Q,J),{message:"Value must not match the 'not' schema"})}},eu6=class{apply(X,Y){if(Y.uniqueItems!==!0)return X;return X.refine(su6(),{message:"Array items must be unique"})}},Xm6=class{apply(X,Y){if(!Y.allOf||Y.allOf.length===0)return X;return Y.allOf.map((J)=>bY(J)).reduce((J,G)=>U.intersection(J,G),X)}},Ym6=class{apply(X,Y){if(!Y.anyOf||Y.anyOf.length===0)return X;let Q=Y.anyOf.length===1?bY(Y.anyOf[0]):U.union([bY(Y.anyOf[0]),bY(Y.anyOf[1]),...Y.anyOf.slice(2).map((J)=>bY(J))]);return U.intersection(X,Q)}},Qm6=class{apply(X,Y){if(!Y.oneOf||Y.oneOf.length===0)return X;let Q=Y.oneOf.map((J)=>bY(J));return X.refine((J)=>{let G=0;for(let W of Q)if(W.safeParse(J).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},Jm6=class{apply(X,Y){let Q=Y;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let G=Q.prefixItems.map((W)=>bY(W));return X.refine((W)=>{if(!Array.isArray(W))return!0;for(let Z=0;Z<Math.min(W.length,G.length);Z++)if(!Nf(G[Z],W[Z]))return!1;if(W.length>G.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let Z=bY(Q.items);for(let $=G.length;$<W.length;$++)if(!Nf(Z,W[$]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return X}},Gm6=class{apply(X,Y){let Q=Y;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return X;if(X instanceof U.ZodObject||X instanceof U.ZodRecord){let J={};if(Q.properties){for(let[G,W]of Object.entries(Q.properties))if(W!==void 0)J[G]=bY(W)}if(Q.required&&Array.isArray(Q.required)){let G=new Set(Q.required);for(let W of Object.keys(J))if(!G.has(W))J[W]=J[W].optional()}else for(let G of Object.keys(J))J[G]=J[G].optional();if(Q.additionalProperties===!1)return U.object(J);else return U.object(J).passthrough()}return X.refine((J)=>{if(typeof J!=="object"||J===null||Array.isArray(J))return!0;if(Q.properties){for(let[G,W]of Object.entries(Q.properties))if(W!==void 0){if(Object.getOwnPropertyDescriptor(J,G)!==void 0){if(!bY(W).safeParse(J[G]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let G of Q.required)if(Object.getOwnPropertyDescriptor(J,G)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let G=new Set(Object.keys(Q.properties));for(let W in J)if(!G.has(W))return!1}return!0},{message:"Object constraints validation failed"})}},Wm6=class{apply(X,Y){if(!Y.enum||Y.enum.length===0)return X;let Q=Y.enum.filter((J)=>Array.isArray(J)||typeof J==="object"&&J!==null);if(Q.length===0)return X;return X.refine((J)=>{if(typeof J!=="object"||J===null)return!0;return Q.some((G)=>DA(J,G))},{message:"Value must match one of the enum values"})}},Zm6=class{apply(X,Y){if(Y.const===void 0)return X;let Q=Y.const;if(typeof Q!=="object"||Q===null)return X;return X.refine((J)=>DA(J,Q),{message:"Value must equal the const value"})}},$m6=class{apply(X,Y){if(Y.description)X=X.describe(Y.description);return X}},Km6=class{apply(X,Y){var Q;let J=Y;if(!((Q=J.required)==null?void 0:Q.includes("__proto__"))||Y.type!==void 0)return X;return U.any().refine((G)=>this.validateRequired(G,J.required),{message:"Missing required properties"})}validateRequired(X,Y){if(typeof X!=="object"||X===null||Array.isArray(X))return!0;return Y.every((Q)=>Object.prototype.hasOwnProperty.call(X,Q))}},Hm6=class{apply(X,Y){var Q;let J=Y;if(J.contains===void 0)return X;let G=bY(J.contains),W=(Q=J.minContains)!=null?Q:1,Z=J.maxContains;return X.refine(($)=>{if(!Array.isArray($))return!0;let K=0;for(let H of $)if(Nf(G,H))K++;if(K<W)return!1;if(Z!==void 0&&K>Z)return!1;return!0},{message:"Array must contain required items matching the schema"})}},Fm6=class{apply(X,Y){let{default:Q}=Y;if(Q===void 0)return X;if(!X.safeParse(Q).success)return X;return X.default(Q)}},Vm6,qm6;var PW1=S(()=>{r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();Vm6=[new Su6,new ku6,new Ru6,new vu6,new _u6,new lu6,new au6,new yu6,new bu6,new fu6,new hu6,new xu6,new gu6,new uu6,new mu6,new nu6,new du6,new pu6,new cu6,new ru6,new ou6,new iu6],qm6=[new Km6,new Wm6,new Zm6,new Xm6,new Ym6,new Qm6,new Jm6,new Gm6,new Hm6,new tu6,new eu6,new Fm6,new $m6]});class J90{constructor(X){this._url=X}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((X,Y)=>{this._socket=new WebSocket(this._url,Um6),this._socket.onerror=(Q)=>{let J="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);Y(J),this.onerror?.(J)},this._socket.onopen=()=>{X()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let J;try{J=ZJ.parse(JSON.parse(Q.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(J)}})}async close(){this._socket?.close()}send(X){return new Promise((Y,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify(X)),Y()})}}var Um6="mcp";var AW1=S(()=>{RX()});function zm6(X){let Y=X;if(!Y||typeof Y!=="object"||!("method"in Y))return null;switch(Y.method){case"initialize":{let Q=Y?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Y.jsonrpc??"2.0",id:Y.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var G90;var TW1=S(()=>{LB();G90=class G90 extends x7{constructor(X,Y){super(X,Y)}send(X,Y){let Q=zm6(X);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send(X,Y)}}});var EW1,jW1=async(X,Y,Q)=>{let J=Bm6(X.connection,Y,Q);if(!J)throw Error("Unknown MCP connection type");let G=new EW1({name:X?.name??"MCP Client",version:"1.0.0"});return await G.connect(J),{client:G,callStreamableTool:(W,Z)=>{if(X.connection.type!=="HTTP")throw Error("HTTP connection required");let $=new Headers(Q);if(!$.has("Authorization"))$.set("Authorization",`Bearer ${X.connection.token}`);for(let[F,V]of Object.entries(X.connection.headers??{}))$.set(F,V);let K=new URL(X.connection.url),H=K.pathname.replace(/\/+$/,"")||"/";return K.pathname=`${H}/call-tool/${encodeURIComponent(W)}`,fetch(K.href,{method:"POST",redirect:"manual",body:JSON.stringify(Z),headers:$})}}},Bm6=(X,Y,Q)=>{if(X.type==="Websocket")return new J90(new URL(X.url));if(X.type!=="SSE"&&X.type!=="HTTP")return null;let G={...X.token?{authorization:`Bearer ${X.token}`}:{},...Q??{},..."headers"in X?X.headers||{}:{}};if(X.type==="SSE"){let W={requestInit:{headers:G,signal:Y}};if(X.token)W.eventSourceInit={fetch:(Z,$)=>{return fetch(Z,{...$,headers:{...G,Accept:"text/event-stream"},signal:Y})}};return new gF(new URL(X.url),W)}return new G90(new URL(X.url),{requestInit:{headers:G,signal:Y,credentials:"include"}})};var CW1=S(()=>{yF();Jf();AW1();RX();TW1();EW1=class EW1 extends PQ{constructor(X,Y){super(X,Y)}async listTools(X,Y){return await this.request({method:"tools/list",params:X},EP,Y)}}});function RW1(X){let Y=(Q)=>{if("connection"in X)return jW1({connection:X.connection},void 0,Q);return X.client};return new Proxy({},{get(Q,J){if(J==="toJSON")return null;if(typeof J!=="string")throw Error("Name must be a string");if(J==="listTools")return $;async function G(K,H=J){let F=X?.debugId?.(),V=F?{"x-trace-debug-id":F}:void 0,{client:q,callStreamableTool:z}=await Y(V);if(X?.streamable?.[String(H)])return z(String(H),K);let{structuredContent:D,isError:N,content:L}=await q.callTool({name:String(H),arguments:K});if(N){let w=L?.[0]?.text,C=typeof w==="string"?Dm6(w):null,T=C?.code&&typeof X?.getErrorByStatusCode==="function"?X.getErrorByStatusCode(C.code,C.message,C.traceId):null;if(T)throw T;throw Error(`Tool ${String(H)} returned an error: ${JSON.stringify(D??L)}`)}return D}async function W(){let{client:K}=await Y(),{tools:H}=await K.listTools();return H}async function Z(){if(!("connection"in X))return W();let K=X.connection,H=JSON.stringify(K);try{if(!Of.has(H))Of.set(H,W());return await Of.get(H)}catch(F){console.error("Failed to list tools",F),Of.delete(H);return}}async function $(){return(await Z()??[]).map((H)=>IW1(H,G))}return G.asTool=async()=>{let H=(await Z()??[]).find((F)=>F.name===J);if(!H)throw Error(`Tool ${J} not found`);return IW1(H,G)},G}})}var Dm6=(X)=>{try{return JSON.parse(X)}catch{return X}},Of,IW1=(X,Y)=>{return{...X,id:X.name,inputSchema:X.inputSchema?bY(X.inputSchema):void 0,outputSchema:X.outputSchema?bY(X.outputSchema):void 0,execute:(Q)=>{return Y(Q.context,X.name)}}};var SW1=S(()=>{PW1();CW1();Of=new Map});function Lf(X){return RW1(X)}var ja4;var kW1=S(()=>{SW1();ja4=new Proxy({},{get(X,Y){if(Y==="toJSON")return null;if(Y==="forConnection")return(Q)=>Lf({connection:Q});return global[Y]}})});function wf(X){return{isImplementedBy:(Y)=>{for(let Q of X){let J=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,G=Y.find((W)=>J.test(W.name));if(!G&&Q.opt)continue;if(!G)return!1}return!0}}}var cF=(X)=>{return{...wf(X),forClient:(Y)=>{return Lf({client:Y,streamable:X.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})},forConnection:(Y)=>{return Lf({connection:Y,streamable:X.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})}}};var NA=S(()=>{kW1()});var W90,ka4;var vW1=S(()=>{XP();W90=w6(eM(),1),ka4=W90.createContext(null)});function iF(X){return U.object({items:U.array(X).describe("Array of collection items"),totalCount:U.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:U.boolean().optional().describe("Whether there are more items available")})}function LA(X){return U.object({item:X.nullable().describe("The retrieved item, or null if not found")})}function Lm6(X){return U.object({data:X.partial().describe("Data for the new entity (id may be auto-generated)")})}function wm6(X){return U.object({item:X.describe("The created entity with generated id")})}function Mm6(X){return U.object({id:U.string().describe("ID of the entity to update"),data:X.partial().describe("Partial entity data to update")})}function Pm6(X){return U.object({item:X.describe("The updated entity")})}function MA(X){return U.object({item:X.describe("The deleted entity")})}function xB(X,Y,Q){let J=X.toUpperCase(),G=Q?.readOnly??!1,W=[{name:`COLLECTION_${J}_LIST`,inputSchema:nF,outputSchema:iF(Y)},{name:`COLLECTION_${J}_GET`,inputSchema:OA,outputSchema:LA(Y)}];if(!G)W.push({name:`COLLECTION_${J}_CREATE`,inputSchema:Lm6(Y),outputSchema:wm6(Y),opt:!0},{name:`COLLECTION_${J}_UPDATE`,inputSchema:Mm6(Y),outputSchema:Pm6(Y),opt:!0},{name:`COLLECTION_${J}_DELETE`,inputSchema:wA,outputSchema:MA(Y),opt:!0});return W}var hB,Nm6,_W1,Om6,nF,OA,wA;var GG=S(()=>{r0();hB=U.object({id:U.string().describe("Unique identifier for the entity"),title:U.string().describe("Human-readable title for the entity"),description:U.string().nullish().describe("Description of the entity"),created_at:U.string().datetime(),updated_at:U.string().datetime(),created_by:U.string().optional(),updated_by:U.string().optional()}),Nm6=U.object({field:U.array(U.string()),operator:U.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:U.unknown()}),_W1=U.lazy(()=>U.union([Nm6,U.object({operator:U.enum(["and","or","not"]),conditions:U.array(_W1)})])),Om6=U.object({field:U.array(U.string()),direction:U.enum(["asc","desc"]),nulls:U.enum(["first","last"]).optional()}),nF=U.object({where:_W1.optional().describe("Filter expression"),orderBy:U.array(Om6).optional().describe("Sort expressions"),limit:U.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:U.number().int().min(0).optional().describe("Number of items to skip")});OA=U.object({id:U.string().describe("ID of the entity to retrieve")});wA=U.object({id:U.string().describe("ID of the entity to delete")})});var Am6,yW1,xa4;var bW1=S(()=>{r0();GG();Am6=U.object({id:U.string(),name:U.string(),description:U.string().optional(),inputSchema:U.record(U.string(),U.unknown()),outputSchema:U.record(U.string(),U.unknown()).optional()}),yW1=hB.extend({_meta:U.object({"io.decocms":U.object({id:U.string(),verified:U.boolean(),scopeName:U.string(),appName:U.string(),friendlyName:U.string().nullable().optional(),metadata:U.record(U.string(),U.unknown()).nullable().optional(),publishedAt:U.string().datetime().optional(),updatedAt:U.string().datetime().optional(),tools:U.array(Am6).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:U.object({$schema:U.string().optional(),_meta:U.record(U.string(),U.unknown()).optional(),name:U.string().describe("The server name (scope/app)"),title:U.string().optional().describe("User-friendly title"),description:U.string().optional().describe("Server description"),icons:U.array(U.object({src:U.string(),mimeType:U.string().optional(),sizes:U.array(U.string()).optional(),theme:U.enum(["light","dark"]).optional()})).optional(),remotes:U.array(U.object({type:U.enum(["http","stdio","sse"]),url:U.string().optional(),headers:U.array(U.unknown()).optional()})).optional(),packages:U.array(U.unknown()).optional(),repository:U.object({url:U.string(),source:U.string().optional(),subfolder:U.string().optional()}).optional(),version:U.string().optional(),websiteUrl:U.string().optional()})}),xa4=xB("registry_app",yW1,{readOnly:!0})});var fW1,hW1,xW1,gW1,uW1,Z90;var mW1=S(()=>{r0();NA();fW1=U.object({specversion:U.literal("1.0").describe("CloudEvents specification version"),id:U.string().describe("Unique identifier for this event (UUID recommended)"),source:U.string().describe("Connection ID of the event publisher"),type:U.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:U.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:U.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:U.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:U.string().url().optional().describe("URI to the schema for the data attribute"),data:U.unknown().optional().describe("Event payload (any JSON value)")}),hW1=U.object({events:U.array(fW1).min(1).describe("Batch of CloudEvents to process")}),xW1=U.object({success:U.boolean().optional().describe("Whether this event was processed successfully"),error:U.string().optional().describe("Error message for this event"),retryAfter:U.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),gW1=U.object({success:U.boolean().optional().describe("Batch success - applies to events not in results"),error:U.string().optional().describe("Batch error message - applies to events not in results"),processedCount:U.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:U.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:U.record(U.string(),xW1).optional().describe("Per-event results keyed by event ID")}),uW1=[{name:"ON_EVENTS",inputSchema:hW1,outputSchema:gW1}],Z90=cF(uW1)});var PA,AA,TA,EA,lW1,dW1,jA,CA,IA,RA,SA,kA,vA,_A,pW1,Tm6;var cW1=S(()=>{r0();NA();PA=U.object({type:U.string().min(1).max(255).describe("Event type identifier"),subject:U.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:U.unknown().optional().describe("Event payload"),deliverAt:U.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:U.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),AA=U.object({id:U.string().describe("Unique event ID"),type:U.string().describe("Event type"),source:U.string().describe("Source connection ID"),time:U.string().describe("Event timestamp")}),TA=U.object({eventType:U.string().min(1).max(255).describe("Event type to subscribe to"),publisher:U.string().optional().describe("Filter events by publisher connection ID"),filter:U.string().max(1000).optional().describe("JSONPath filter expression on event data")}),EA=U.object({subscription:U.object({id:U.string().describe("Subscription ID"),connectionId:U.string().describe("Subscriber connection ID"),eventType:U.string().describe("Event type pattern"),publisher:U.string().nullable().describe("Publisher connection filter"),filter:U.string().nullable().describe("JSONPath filter expression"),enabled:U.boolean().describe("Whether subscription is enabled"),createdAt:U.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:U.string().datetime().describe("Updated timestamp (ISO 8601)")})}),lW1=U.object({eventType:U.string().min(1).max(255).describe("Event type to subscribe to"),publisher:U.string().optional().describe("Filter events by publisher connection ID"),filter:U.string().max(1000).optional().describe("JSONPath filter expression on event data")}),dW1=U.object({id:U.string().describe("Subscription ID"),connectionId:U.string().describe("Subscriber connection ID"),eventType:U.string().describe("Event type pattern"),publisher:U.string().nullable().describe("Publisher connection filter"),filter:U.string().nullable().describe("JSONPath filter expression"),enabled:U.boolean().describe("Whether subscription is enabled"),createdAt:U.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:U.string().datetime().describe("Updated timestamp (ISO 8601)")}),jA=U.object({subscriptions:U.array(lW1).describe("Desired subscriptions - system will create/update/delete to match")}),CA=U.object({created:U.number().int().min(0).describe("Number of subscriptions created"),updated:U.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:U.number().int().min(0).describe("Number of subscriptions removed"),unchanged:U.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:U.array(dW1).describe("Current subscriptions after sync")}),IA=U.object({subscriptionId:U.string().describe("Subscription ID to remove")}),RA=U.object({success:U.boolean().describe("Whether unsubscribe was successful"),subscriptionId:U.string().describe("Subscription ID that was removed")}),SA=U.object({eventId:U.string().describe("Event ID to cancel")}),kA=U.object({success:U.boolean().describe("Whether cancellation was successful"),eventId:U.string().describe("Event ID that was cancelled")}),vA=U.object({eventId:U.string().describe("Event ID to acknowledge")}),_A=U.object({success:U.boolean().describe("Whether ACK was successful"),eventId:U.string().describe("Event ID that was acknowledged")}),pW1=[{name:"EVENT_PUBLISH",inputSchema:PA,outputSchema:AA},{name:"EVENT_SUBSCRIBE",inputSchema:TA,outputSchema:EA},{name:"EVENT_UNSUBSCRIBE",inputSchema:IA,outputSchema:RA},{name:"EVENT_CANCEL",inputSchema:SA,outputSchema:kA},{name:"EVENT_ACK",inputSchema:vA,outputSchema:_A},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:jA,outputSchema:CA}],Tm6=cF(pW1)});var ia4,aa4,ra4,oa4,sa4,ta4,ea4,Xr4,Yr4,Qr4,Jr4,Gr4;var nW1=S(()=>{r0();ia4=U.object({prefix:U.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:U.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:U.string().optional().describe("Token for pagination from previous response"),delimiter:U.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),aa4=U.object({objects:U.array(U.object({key:U.string().describe("Object key/path"),size:U.number().describe("Object size in bytes"),lastModified:U.string().describe("Last modified timestamp"),etag:U.string().describe("Entity tag for the object")})),nextContinuationToken:U.string().optional().describe("Token for fetching next page of results"),isTruncated:U.boolean().describe("Whether there are more results available"),commonPrefixes:U.array(U.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),ra4=U.object({key:U.string().describe("Object key/path to get metadata for")}),oa4=U.object({contentType:U.string().optional().describe("MIME type of the object"),contentLength:U.number().describe("Size of the object in bytes"),lastModified:U.string().describe("Last modified timestamp"),etag:U.string().describe("Entity tag for the object"),metadata:U.record(U.string(),U.string()).optional().describe("Custom metadata key-value pairs")}),sa4=U.object({key:U.string().describe("Object key/path to generate URL for"),expiresIn:U.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),ta4=U.object({url:U.string().describe("Presigned URL for downloading the object"),expiresIn:U.number().describe("Expiration time in seconds that was used")}),ea4=U.object({key:U.string().describe("Object key/path for the upload"),expiresIn:U.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:U.string().optional().describe("MIME type for the object being uploaded")}),Xr4=U.object({url:U.string().describe("Presigned URL for uploading the object"),expiresIn:U.number().describe("Expiration time in seconds that was used")}),Yr4=U.object({key:U.string().describe("Object key/path to delete")}),Qr4=U.object({success:U.boolean().describe("Whether the deletion was successful"),key:U.string().describe("The key that was deleted")}),Jr4=U.object({keys:U.array(U.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),Gr4=U.object({deleted:U.array(U.string()).describe("Array of successfully deleted keys"),errors:U.array(U.object({key:U.string(),message:U.string()})).describe("Array of errors for failed deletions")})});var Mf=S(()=>{NA();vW1();bW1();mW1();cW1();nW1()});var Em6,jm6,iW1;var aW1=S(()=>{r0();GG();Em6=hB.extend({avatar:U.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:U.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:U.string().describe("Virtual MCP ID to use for this assistant"),model:U.object({id:U.string().describe("Model ID"),connectionId:U.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),jm6=xB("assistant",Em6),iW1=[...jm6]});var yA,AZ,oW1,Cm6,Im6,sW1,Rm6,Sm6,km6,vm6,_m6,ym6,tW1,bm6,fm6,hm6,xm6,gm6,um6,mm6,lm6,dm6,pm6,Tr4,cm6,Er4,rW1,nm6,im6,$90,Pf;var Af=S(()=>{r0();NA();GG();yA=U.lazy(()=>U.union([U.null(),U.string(),U.number(),U.boolean(),U.record(U.string(),yA),U.array(yA)])),AZ=U.record(U.string(),U.record(U.string(),yA)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),oW1=U.object({type:U.literal("text"),text:U.string().describe("The text content"),providerOptions:AZ}),Cm6=U.object({type:U.literal("text"),text:U.string().describe("The text content"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),Im6=U.string().describe("File data as URL string"),sW1=U.object({type:U.literal("file"),filename:U.string().optional().describe("Optional filename of the file"),data:Im6,mediaType:U.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:AZ}),Rm6=U.object({type:U.literal("file"),mediaType:U.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:U.string().describe("Generated file data as base64 encoded string")}),Sm6=U.object({type:U.literal("reasoning"),text:U.string().describe("The reasoning text"),providerOptions:AZ}),km6=U.object({type:U.literal("reasoning"),text:U.string().describe("The reasoning text"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),vm6=U.object({type:U.literal("tool-call"),toolCallId:U.string().describe("ID of the tool call, used to match with tool result"),toolName:U.string().describe("Name of the tool being called"),input:U.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:U.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:AZ}),_m6=U.object({type:U.literal("tool-call"),toolCallId:U.string().describe("ID of the tool call"),toolName:U.string().describe("Name of the tool being called"),input:U.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:U.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),ym6=U.union([U.object({type:U.literal("text"),value:U.string()}),U.object({type:U.literal("json"),value:yA}),U.object({type:U.literal("error-text"),value:U.string()}),U.object({type:U.literal("error-json"),value:yA}),U.object({type:U.literal("content"),value:U.array(U.union([U.object({type:U.literal("text"),text:U.string().describe("Text content")}),U.object({type:U.literal("media"),data:U.string().describe("Base-64 encoded media data"),mediaType:U.string().describe("IANA media type")})]))})]),tW1=U.object({type:U.literal("tool-result"),toolCallId:U.string().describe("ID of the tool call that this result is associated with"),toolName:U.string().describe("Name of the tool that generated this result"),output:ym6.describe("Result of the tool call"),result:U.unknown().describe("Unknown result of the tool call"),providerOptions:AZ}),bm6=U.object({type:U.literal("tool-result"),toolCallId:U.string().describe("ID of the tool call that this result is associated with"),toolName:U.string().describe("Name of the tool that generated this result"),result:U.any().describe("Result of the tool call (JSON-serializable)"),isError:U.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:U.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),fm6=U.union([U.object({type:U.literal("source"),sourceType:U.literal("url"),id:U.string().describe("The ID of the source"),url:U.string().describe("The URL of the source"),title:U.string().optional().describe("The title of the source"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),U.object({type:U.literal("source"),sourceType:U.literal("document"),id:U.string().describe("The ID of the source"),mediaType:U.string().describe("IANA media type of the document (e.g., application/pdf)"),title:U.string().describe("The title of the document"),filename:U.string().optional().describe("Optional filename of the document"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")})]),hm6=U.object({role:U.literal("system"),content:U.string().describe("System message content"),providerOptions:AZ}),xm6=U.object({role:U.literal("user"),content:U.array(U.union([oW1,sW1])).describe("User message content parts (text or file)"),providerOptions:AZ}),gm6=U.object({role:U.literal("assistant"),content:U.array(U.union([oW1,sW1,Sm6,vm6,tW1])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:AZ}),um6=U.object({role:U.literal("tool"),content:U.array(tW1).describe("Tool message content (tool results)"),providerOptions:AZ}),mm6=U.union([hm6,xm6,gm6,um6]),lm6=U.array(mm6).describe("A list of messages forming the prompt"),dm6=U.object({prompt:lm6.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:U.number().optional().describe("Maximum number of tokens to generate"),temperature:U.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:U.number().optional().describe("Nucleus sampling parameter"),topK:U.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:U.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:U.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:U.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:U.array(U.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:U.union([U.object({type:U.literal("text")}),U.object({type:U.literal("json"),schema:U.any().optional().describe("JSON schema that the generated output should conform to"),name:U.string().optional().describe("Name of output that should be generated"),description:U.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:U.array(U.any()).optional().describe("The tools that are available for the model"),toolChoice:U.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:U.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:U.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:U.any().optional().describe("Additional provider-specific options")}),pm6=U.object({content:U.array(U.union([Cm6,Rm6,km6,_m6,bm6,fm6])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:U.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:U.looseObject({inputTokens:U.number().optional(),outputTokens:U.number().optional(),totalTokens:U.number().optional(),reasoningTokens:U.number().optional()}).describe("Usage information for the language model call"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata"),request:U.object({body:U.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:U.object({id:U.string().optional().describe("ID for the generated response"),timestamp:U.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:U.string().optional().describe("The ID of the response model that was used"),headers:U.record(U.string(),U.string()).optional().describe("Response headers"),body:U.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:U.array(U.any()).describe("Warnings for the call, e.g. unsupported settings")}),Tr4=U.object({stream:U.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:U.object({body:U.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:U.object({headers:U.record(U.string(),U.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),cm6=U.object({supportedUrls:U.record(U.string(),U.array(U.string())).describe("Supported URL patterns by media type for the provider")}),Er4=U.object({modelId:U.string().describe("The ID of the model"),logo:U.string().nullable(),description:U.string().nullable(),capabilities:U.array(U.string()),limits:U.object({contextWindow:U.number(),maxOutputTokens:U.number()}).nullable(),costs:U.object({input:U.number(),output:U.number()}).nullable(),provider:U.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),rW1=U.object({modelId:U.string().describe("The ID of the model"),callOptions:dm6}),nm6=hB.extend({logo:U.string().nullable(),description:U.string().nullable(),capabilities:U.array(U.string()),limits:U.object({contextWindow:U.number(),maxOutputTokens:U.number()}).nullable(),costs:U.object({input:U.number(),output:U.number()}).nullable(),provider:U.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),im6=xB("llm",nm6,{readOnly:!0}),$90=[{name:"LLM_METADATA",inputSchema:U.object({modelId:U.string().describe("The ID of the model")}),outputSchema:cm6},{name:"LLM_DO_STREAM",inputSchema:rW1,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:rW1,outputSchema:pm6},...im6],Pf=cF($90)});function rm6(X){let Y=[],Q=0;while(Q<X.length){let J=X[Q];if(J==="%")Y.push(".*");else if(J==="_")Y.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))Y.push("\\"+J);else Y.push(J);Q++}return Y.join("")}function uK(X){return typeof X==="string"||typeof X==="number"}function Tf(X,Y){if("conditions"in Y){let{operator:$,conditions:K}=Y;switch($){case"and":return K.every((H)=>Tf(X,H));case"or":return K.some((H)=>Tf(X,H));case"not":return!K.every((H)=>Tf(X,H));default:return!0}}let{field:Q,operator:J,value:G}=Y,W=Q.join("."),Z=K90(X,W);switch(J){case"eq":return Z===G;case"gt":return uK(Z)&&uK(G)&&Z>G;case"gte":return uK(Z)&&uK(G)&&Z>=G;case"lt":return uK(Z)&&uK(G)&&Z<G;case"lte":return uK(Z)&&uK(G)&&Z<=G;case"in":return Array.isArray(G)&&G.includes(Z);case"like":if(typeof Z!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let $=rm6(G);return new RegExp(`^${$}$`,"i").test(Z);case"contains":if(typeof Z!=="string"||typeof G!=="string")return!1;return Z.toLowerCase().includes(G.toLowerCase());default:return!0}}function K90(X,Y){let Q=Y.split("."),J=X;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function om6(X,Y){return[...X].sort((Q,J)=>{for(let G of Y){let W=G.field.join("."),Z=K90(Q,W),$=K90(J,W),K=0;if(Z==null&&$==null)continue;if(Z==null)K=G.nulls==="first"?-1:1;else if($==null)K=G.nulls==="first"?1:-1;else if(typeof Z==="string"&&typeof $==="string")K=Z.localeCompare($);else if(typeof Z==="number"&&typeof $==="number")K=Z-$;else K=String(Z).localeCompare(String($));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var am6,sm6,tm6,H90;var eW1=S(()=>{Mf();aW1();GG();Af();r0();$6();g7();am6={LLM:$90,ASSISTANTS:iW1};sm6=nF.extend({binding:U.union([U.object({}).passthrough(),U.string()]).optional()}),tm6=iF(F5),H90=e0({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:sm6,outputSchema:tm6,handler:async(X,Y)=>{await Y.access.check();let Q=_1(Y),J=X.binding?typeof X.binding==="string"?(()=>{let z=am6[X.binding.toUpperCase()];if(!z)throw Error(`Unknown binding: ${X.binding}`);return z})():X.binding:void 0,G=J?wf(J):void 0,Z=(await Y.storage.connections.list(Q.id)).filter((z)=>z.connection_type!=="VIRTUAL"),$=G?await Promise.all(Z.map(async(z)=>{if(!z.tools||z.tools.length===0)return null;return G.isImplementedBy(z.tools.map((N)=>({name:N.name,inputSchema:N.inputSchema,outputSchema:N.outputSchema})))?z:null})).then((z)=>z.filter((D)=>D!==null)):Z;if(X.where)$=$.filter((z)=>Tf(z,X.where));if(X.orderBy&&X.orderBy.length>0)$=om6($,X.orderBy);let K=$.length,H=X.offset??0,F=X.limit??100,V=$.slice(H,H+F),q=H+F<K;return{items:V,totalCount:K,hasMore:q}}})});var em6,F90;var XZ1=S(()=>{GG();$6();g7();em6=LA(F5),F90=e0({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:OA,outputSchema:em6,handler:async(X,Y)=>{let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:J}}})});var Ef=(X,Y)=>{if(Y===null||Y===void 0)return;let Q=X.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),J=Y;for(let G of Q){if(J===null||J===void 0||typeof J!=="object")return;J=J[G]}return J};function YZ1(X){let Y=X.split("::");if(Y.length!==2||!Y[0]||!Y[1])throw Error(`Invalid scope format: ${X}. Expected format: "KEY::SCOPE"`);return Y}function Xl6(X){let Y=X.split("::");if(Y.length!==2||!Y[0]||!Y[1])return null;return Y}function Yl6(X){if(typeof X==="object"&&X!==null&&"value"in X){let Y=X.value;if(typeof Y==="string")return Y}return null}function V90(X,Y){let Q={};if(!X||!Y)return Q;for(let J of Y){if(J==="*"){Q["*"]=["*"];continue}let G=Xl6(J);if(!G)continue;let[W,Z]=G,$=Ef(W,X),K=Yl6($);if(K){if(!Q[K])Q[K]=[];Q[K].push(Z)}}return Q}function QZ1(X,Y){let Q=V90(X,Y);return new Set(Object.keys(Q).filter((J)=>J!=="*"))}var q90=()=>{};class TZ{db;vault;constructor(X,Y){this.db=X;this.vault=Y}async get(X){let Y=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",X).executeTakeFirst();if(!Y)return null;return this.decryptToken(Y)}async upsert(X){let Y=new Date().toISOString(),Q=await this.vault.encrypt(X.accessToken),J=X.refreshToken?await this.vault.encrypt(X.refreshToken):null,G=X.clientSecret?await this.vault.encrypt(X.clientSecret):null;return await this.db.transaction().execute(async(W)=>{let Z=await W.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",X.connectionId).executeTakeFirst();if(Z)return await W.updateTable("downstream_tokens").set({accessToken:Q,refreshToken:J,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,updatedAt:Y}).where("id","=",Z.id).execute(),{id:Z.id,connectionId:X.connectionId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:Z.createdAt,updatedAt:Y,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint};let $=GX("dtok");return await W.insertInto("downstream_tokens").values({id:$,connectionId:X.connectionId,accessToken:Q,refreshToken:J,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,createdAt:Y,updatedAt:Y}).execute(),{id:$,connectionId:X.connectionId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:Y,updatedAt:Y,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint}})}async delete(X){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",X).execute()}isExpired(X,Y=0){if(!X.expiresAt)return!1;let J=(X.expiresAt instanceof Date?X.expiresAt:new Date(X.expiresAt)).getTime();if(Number.isNaN(J))return!0;return J-Y<Date.now()}async decryptToken(X){let Y=await this.vault.decrypt(X.accessToken),Q=X.refreshToken?await this.vault.decrypt(X.refreshToken):null,J=X.clientSecret?await this.vault.decrypt(X.clientSecret):null;return{id:X.id,connectionId:X.connectionId,accessToken:Y,refreshToken:Q,scope:X.scope,expiresAt:X.expiresAt,createdAt:X.createdAt,updatedAt:X.updatedAt,clientId:X.clientId,clientSecret:J,tokenEndpoint:X.tokenEndpoint}}}var jf=S(()=>{wZ()});async function Gl6(X,Y,Q,J){for(let W of Y){if(W==="*")continue;let[Z]=YZ1(W),$=Ef(Z,X);if($===void 0||$===null)throw Error(`Scope references key "${Z}" but it's not present in state`)}let G=QZ1(X,Y);for(let W of G){if(W.endsWith("_self"))continue;let Z=await J.storage.connections.findById(W);if(!Z||Z.organization_id!==Q)throw Error(`Referenced connection not found: ${W}`);try{await J.access.check(W)}catch($){throw Error(`Access denied to referenced connection: ${W}. ${$.message}`)}}}var Ql6,Jl6,U90;var JZ1=S(()=>{q90();jf();r0();$6();Zf();g7();Ql6=U.object({id:U.string().describe("ID of the connection to update"),data:JG1.describe("Partial connection data to update")}),Jl6=U.object({item:F5.describe("The updated connection entity")});U90=e0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:Ql6,outputSchema:Jl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);if(await Y.access.check(),!d8(Y))throw Error("User ID required to update connection");let{id:G,data:W}=X,Z=await Y.storage.connections.findById(G);if(!Z||Z.organization_id!==Q.id)throw Error("Connection not found in organization");let $=W.connection_type??Z.connection_type,K=W.connection_url??Z.connection_url;if($==="VIRTUAL"){let L=fK(K);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await Y.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");K=Xf(L)}let H=W.configuration_state??Z.configuration_state,F=W.configuration_scopes??Z.configuration_scopes??[];if(W.configuration_state!==void 0||W.configuration_scopes!==void 0){if(W.configuration_state!==void 0)H=W.configuration_state;else if(H===null)H={};if(W.configuration_scopes!==void 0)F=W.configuration_scopes??[];if(F.length>0&&H)await Gl6(H,F,Q.id,Y)}let V=W.connection_token??Z.connection_token;if(!V)try{let w=await new TZ(Y.db,Y.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await RB({id:Z.id,title:W.title??Z.title,connection_type:$,connection_url:K,connection_token:V,connection_headers:W.connection_headers??Z.connection_headers}).catch(()=>null),z=q?.length?q:null,D={...W,connection_url:K,tools:z,configuration_state:H,configuration_scopes:F},N=await Y.storage.connections.update(G,D);if((W.configuration_state!==void 0||W.configuration_scopes!==void 0)&&H&&F.length>0)try{await(await Y.createMCPProxy(G)).client.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:H,scopes:F}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:N}}})});var z90;var GZ1=S(()=>{GG();$6();g7();z90=e0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:wA,outputSchema:MA(F5),handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J)throw Error(`Connection not found: ${X.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");return await Y.storage.connections.delete(X.id),{item:J}}})});var B90;var WZ1=S(()=>{r0();$6();B90=e0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:U.object({id:U.string()}),outputSchema:U.object({id:U.string(),healthy:U.boolean(),latencyMs:U.number()}),handler:async(X,Y)=>{let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await Y.storage.connections.testConnection(X.id);return{id:X.id,...G}}})});var ZZ1=S(()=>{MW1();eW1();XZ1();JZ1();GZ1();WZ1()});import{sql as X4}from"kysely";function $Z1(X){if(X===null||X===void 0)return"NULL";if(typeof X==="number")return String(X);if(typeof X==="boolean")return X?"TRUE":"FALSE";if(typeof X==="string")return`'${X.replace(/'/g,"''")}'`;if(X instanceof Date)return`'${X.toISOString()}'`;return`'${JSON.stringify(X).replace(/'/g,"''")}'`}function $l6(X,Y){let Q=X;for(let G=Y.length;G>=1;G--){let W=`$${G}`;if(Q.includes(W))Q=Q.replaceAll(W,$Z1(Y[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,Y.length)-1;G>=0;G--){let W=J[G],Z=$Z1(Y[G]);Q=Q.slice(0,W)+Z+Q.slice(W+1)}return Q}function KZ1(X){return X.replace(/-/g,"_")}function Hl6(X){return`app_${KZ1(X)}`}function Fl6(X){return`app_role_${KZ1(X)}`}function Vl6(X){if(X instanceof Error){let Y=X.message.toLowerCase(),Q=X.code;return Q==="3F000"||Q==="42704"||Y.includes("schema")&&Y.includes("does not exist")||Y.includes("role")&&Y.includes("does not exist")}return!1}async function ql6(X,Y,Q){if(await X4`CREATE SCHEMA IF NOT EXISTS ${X4.id(Y)}`.execute(X),!(await X4`
1182
+ ${Y.stack}`;return G}}catch{}if(typeof Y.toString==="function")try{let G=Y.toString();if(G!=="[object Object]")return G}catch{}let J=Object.keys(Y);if(J.length>0)return`Object with keys: ${J.join(", ")}`;return"[object Object]"}if(typeof X==="string")return X;if(typeof X==="number"||typeof X==="boolean")return String(X);if(typeof X==="function")return`[Function: ${X.name||"anon"}]`;if(typeof X==="symbol")return X.toString();if(typeof X==="bigint")return X.toString();try{return String(X)}catch{return"Unknown value (could not convert to string)"}}function yB(X,Y){switch(typeof Y){case"string":return X.newString(Y);case"number":return X.newNumber(Y);case"boolean":return Y?X.true:X.false;case"undefined":return X.undefined;case"object":{if(Y===null)return X.null;if(Array.isArray(Y)){let J=X.newArray();return Y.forEach((G,W)=>{let Z=yB(X,G);try{X.setProp(J,String(W),Z)}finally{Z.dispose?.()}}),J}let Q=X.newObject();for(let[J,G]of Object.entries(Y)){let W=yB(X,G);try{X.setProp(Q,J,W)}finally{W.dispose?.()}}return Q}case"function":{let Q=`__hostFn_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return X.newFunction(Q,(...G)=>{try{let W=G.map(($)=>X.dump($)),Z=Y(...W);if(Z&&typeof Z.then==="function"){let $=X.newPromise();return Z.then((K)=>{try{let H=yB(X,K);$.resolve(H),H.dispose(),X.runtime.executePendingJobs()}catch(H){let F=_B(H),V=X.newString(`Promise resolution error: ${F}`);$.reject(V),V.dispose(),X.runtime.executePendingJobs()}}).catch((K)=>{let H=_B(K),F=X.newString(`Promise rejection: ${H}`);$.reject(F),F.dispose(),X.runtime.executePendingJobs()}),$.handle}return yB(X,Z)}catch(W){let Z=_B(W);return X.newString(`HostFunctionError: ${Z}`)}finally{G.forEach((W)=>W.dispose())}})}case"bigint":return X.newString(Y.toString());case"symbol":return X.newString(Y.toString());default:try{return X.newString(String(Y))}catch{return X.undefined}}}var VW1=()=>{};function UW1(X){let Y=X.runtime.executePendingJobs(100);try{if("unwrap"in Y&&typeof Y.unwrap==="function")Y.unwrap()}finally{if("dispose"in Y&&typeof Y.dispose==="function")Y.dispose()}}async function qW1(X,Y,Q){let J=Date.now(),G=X.resolvePromise(Y);while(!0){UW1(X);let W=await Promise.race([G,wu6(0).then(()=>null)]);if(W!==null)return W;if(Date.now()-J>Q)throw Error(`Timed out after ${Q}ms while awaiting a QuickJS promise`)}}async function tY0({tools:X,code:Y,timeoutMs:Q}){let Z=[];try{let J=await HW1({memoryLimitBytes:33554432,stackSizeBytes:524288});const G=Eh(Z,J.newContext({interruptAfterMs:Q}),0);const W=Eh(Z,f71(G),0);try{let F=G.evalCode(Y,"index.mjs",{strip:!0,strict:!0,type:"module"}),V=G.unwrapResult(F),q=yB(G,X);G.setProp(G.global,"tools",q);let z=G.runtime.hasPendingJob()?G.unwrapResult(await qW1(G,V,Q)):V;if(z!==V)V.dispose();let D=G.getProp(z,"default"),N=G.typeof(D);if(N!=="function")return{error:`Code must export default a function (tools). Got ${N}. Example: export default async (tools) => { /* ... */ }`,consoleLogs:W.logs};let L=G.callFunction(D,G.undefined,q),w=G.unwrapResult(L),C=await qW1(G,w,Q),T=G.unwrapResult(C);if(G.runtime.hasPendingJob())UW1(G);return{returnValue:G.dump(T),consoleLogs:W.logs}}catch(F){return console.log(F),{error:_B(F),consoleLogs:W.logs}}}catch($){var K=$,H=1}finally{uJ0(Z,K,H)}}var wu6=(X)=>new Promise((Y)=>setTimeout(Y,X));var zW1=S(()=>{FW1();VW1()});var BW1=S(()=>{zW1()});async function Mu6(X,Y){let Q;if(X.tool_selection_mode==="exclusion"){let G=(await Y.storage.connections.list(X.organization_id)).filter((Z)=>Z.status==="active"),W=new Map;for(let Z of X.connections)W.set(Z.connection_id,{selectedTools:Z.selected_tools,selectedResources:Z.selected_resources,selectedPrompts:Z.selected_prompts});Q=[];for(let Z of G){let $=W.get(Z.id);if($===void 0)Q.push({connection:Z,selectedTools:null,selectedResources:null,selectedPrompts:null});else if(($.selectedTools===null||$.selectedTools.length===0)&&($.selectedResources===null||$.selectedResources.length===0)&&($.selectedPrompts===null||$.selectedPrompts.length===0));else Q.push({connection:Z,selectedTools:$.selectedTools,selectedResources:$.selectedResources,selectedPrompts:$.selectedPrompts})}}else{let J=X.connections.map((W)=>W.connection_id),G=[];for(let W of J){let Z=await Y.storage.connections.findById(W);if(Z&&Z.status==="active")G.push(Z)}Q=G.map((W)=>{let Z=X.connections.find(($)=>$.connection_id===W.id);return{connection:W,selectedTools:Z?.selected_tools??null,selectedResources:Z?.selected_resources??null,selectedPrompts:Z?.selected_prompts??null}})}return Q}async function DW1(X,Y){return(await Y.storage.connections.list(X)).filter((J)=>J.status==="active").map((J)=>({connection:J,selectedTools:null,selectedResources:null,selectedPrompts:null}))}async function Pu6(X,Y,Q){let J=await kB.create(X,Q),G=await J.mapSettled(async(F,V)=>{try{let z=(await F.proxy.client.listTools()).tools;if(Y==="exclusion"){if(F.selectedTools&&F.selectedTools.length>0){let D=new Set(F.selectedTools);z=z.filter((N)=>!D.has(N.name))}}else if(F.selectedTools&&F.selectedTools.length>0){let D=new Set(F.selectedTools);z=z.filter((N)=>D.has(N.name))}return{connectionId:V,connectionTitle:F.connection.title,tools:z}}catch(q){return console.error(`[code-execution] Failed to list tools for connection ${V}:`,q),null}}),W=new Set,Z=[],$=new Map,K=new Set;for(let F of G){if(F.status!=="fulfilled"||!F.value)continue;let{connectionId:V,connectionTitle:q,tools:z}=F.value;K.add(q);for(let D of z){if(W.has(D.name))continue;W.add(D.name),Z.push({...D,_meta:{connectionId:V,connectionTitle:q}}),$.set(D.name,{connectionId:V,originalName:D.name})}}return{tools:Z,callTool:async(F,V)=>{let q=$.get(F);if(!q)return{content:[{type:"text",text:`Tool not found: ${F}`}],isError:!0};let z=J.get(q.connectionId);if(!z)return{content:[{type:"text",text:`Connection not found for tool: ${F}`}],isError:!0};return await z.proxy.client.callTool({name:q.originalName,arguments:V})},categories:Array.from(K).sort()}}async function bB(X){let Y=_1(X),Q,J="inclusion";if(X.connectionId){let G=await X.storage.virtualMcps.findById(X.connectionId);if(G)Q=await Mu6(G,X),J=G.tool_selection_mode;else Q=await DW1(Y.id,X)}else Q=await DW1(Y.id,X);return Pu6(Q,J,X)}function Au6(X){return X.toLowerCase().split(/[\s_\-./]+/).filter((Y)=>Y.length>=2)}function Tu6(X,Y){let Q=0,J=Y.name.toLowerCase(),G=(Y.description??"").toLowerCase(),W=Y._meta.connectionTitle.toLowerCase();for(let Z of X){if(J===Z)Q+=10;else if(J.includes(Z))Q+=3;if(G.includes(Z))Q+=2;if(W.includes(Z))Q+=1}return Q}function Uf(X,Y,Q){let J=Au6(X);if(J.length===0)return Y.slice(0,Q);return Y.map((G)=>({tool:G,score:Tu6(J,G)})).filter((G)=>G.score>0).sort((G,W)=>W.score-G.score).slice(0,Q).map((G)=>G.tool)}function zf(X,Y){let Q=new Map(Y.map((G)=>[G.name,G]));return{tools:X.map((G)=>Q.get(G)).filter((G)=>G!==void 0).map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle,inputSchema:G.inputSchema,outputSchema:G.outputSchema})),notFound:X.filter((G)=>!Q.has(G))}}async function Bf(X,Y,Q){let J=Object.fromEntries(Y.tools.map((G)=>[G.name,async(W)=>Y.callTool(G.name,W??{})]));return tY0({code:X,tools:J,timeoutMs:Q})}function Df(X){return{content:[{type:"text",text:JSON.stringify(X,null,2)}]}}function fB(X){return{content:[{type:"text",text:JSON.stringify(X,null,2)}],isError:!0}}function zA(X){let Y=new Set(Eu6);return X.filter((Q)=>!Y.has(Q.name))}var Eu6;var BA=S(()=>{BW1();Eu6=["CODE_EXECUTION_SEARCH_TOOLS","CODE_EXECUTION_DESCRIBE_TOOLS","CODE_EXECUTION_RUN_CODE"]});var eY0;var NW1=S(()=>{$6();qA();BA();eY0=e0({name:"CODE_EXECUTION_SEARCH_TOOLS",description:"Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling CODE_EXECUTION_DESCRIBE_TOOLS for detailed schemas.",inputSchema:S71,outputSchema:k71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y),J=Uf(X.query,Q.tools,X.limit);return{query:X.query,results:J.map((G)=>({name:G.name,description:G.description,connection:G._meta.connectionTitle})),totalAvailable:Q.tools.length}}})});var X90;var OW1=S(()=>{$6();qA();BA();X90=e0({name:"CODE_EXECUTION_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after CODE_EXECUTION_SEARCH_TOOLS to get full input/output schemas before executing code.",inputSchema:v71,outputSchema:_71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y);return zf(X.tools,Q.tools)}})});var Y90;var LW1=S(()=>{$6();qA();BA();Y90=e0({name:"CODE_EXECUTION_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use CODE_EXECUTION_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:y71,outputSchema:b71,handler:async(X,Y)=>{z1(Y),_1(Y),await Y.access.check();let Q=await bB(Y);return await Bf(X.code,Q,X.timeoutMs)}})});var wW1=S(()=>{NW1();OW1();LW1();qA()});var Cu6,Iu6,Q90;var MW1=S(()=>{YA();r0();$6();Zf();g7();Cu6=U.object({data:QG1.describe("Data for the new connection (id is auto-generated if not provided)")}),Iu6=U.object({item:F5.describe("The created connection entity")}),Q90=e0({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:Cu6,outputSchema:Iu6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to create connection");let G={...X.data,organization_id:Q.id,created_by:J};if(G.connection_type==="VIRTUAL"){let K=fK(G.connection_url);if(!K)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let H=await Y.storage.virtualMcps.findById(K);if(!H)throw Error(`Virtual MCP not found: ${K}`);if(H.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");G.connection_url=Xf(K)}let W=await RB({id:`pending-${Date.now()}`,title:G.title,connection_type:G.connection_type,connection_url:G.connection_url,connection_token:G.connection_token,connection_headers:G.connection_headers}).catch(()=>null),Z=W?.length?W:null,$=await Y.storage.connections.create({...G,tools:Z});return await Y.eventBus.publish(Q.id,LZ.SELF(Q.id),{type:"connection.created",data:$}),{item:$}}})});function DA(X,Y){if(X===Y)return!0;if(X==null||Y==null)return X===Y;if(typeof X!==typeof Y)return!1;if(Array.isArray(X)&&Array.isArray(Y)){if(X.length!==Y.length)return!1;return X.every((Q,J)=>DA(Q,Y[J]))}if(typeof X==="object"&&typeof Y==="object"){let Q=Object.keys(X),J=Object.keys(Y);if(Q.length!==J.length)return!1;return Q.every((G)=>J.includes(G)&&DA(X[G],Y[G]))}return!1}function su6(){return(X)=>{if(!Array.isArray(X))return!0;let Y=[];return X.every((Q)=>{if(Y.some((G)=>DA(Q,G)))return!1;return Y.push(Q),!0})}}function Nf(X,Y){return X.safeParse(Y).success}function bY(X){if(typeof X==="boolean")return X?U.any():U.never();let Y={};for(let G of Vm6)G.apply(Y,X);let Q=[];if(Y.string!==!1)Q.push(Y.string||U.string());if(Y.number!==!1)Q.push(Y.number||U.number());if(Y.boolean!==!1)Q.push(Y.boolean||U.boolean());if(Y.null!==!1)Q.push(Y.null||U.null());if(Y.array!==!1)Q.push(Y.array||U.array(U.any()));if(Y.tuple!==!1&&Y.tuple!==void 0)Q.push(Y.tuple);if(Y.object!==!1)if(Y.object)Q.push(Y.object);else{let G=U.custom((W)=>{return typeof W==="object"&&W!==null&&!Array.isArray(W)},"Must be an object, not an array");Q.push(G)}if(Y.file!==!1&&Y.file!==void 0)Q.push(Y.file);let J;if(Q.length===0)J=U.never();else if(Q.length===1)J=Q[0];else if(!Object.keys(X).some((W)=>W!=="$schema"&&W!=="title"&&W!=="description"))J=U.any();else J=U.union(Q);for(let G of qm6)J=G.apply(J,X);return J}var Ru6=class{apply(X,Y){if(!Y.type)return;let Q=Array.isArray(Y.type)?Y.type:[Y.type],J=new Set(Q);if(!J.has("string"))X.string=!1;if(!J.has("number")&&!J.has("integer"))X.number=!1;if(!J.has("boolean"))X.boolean=!1;if(!J.has("null"))X.null=!1;if(!J.has("array"))X.array=!1;if(!J.has("object"))X.object=!1;if(J.has("integer")&&X.number!==!1){let G=X.number||U.number();if(G instanceof U.ZodNumber)X.number=G.int()}}},Su6=class{apply(X,Y){if(Y.const===void 0)return;let Q=Y.const;if(X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1,typeof Q==="string")X.string=U.literal(Q);else if(typeof Q==="number")X.number=U.literal(Q);else if(typeof Q==="boolean")X.boolean=U.literal(Q);else if(Q===null)X.null=U.null();else if(Array.isArray(Q))X.array=void 0;else if(typeof Q==="object")X.object=void 0}},ku6=class{apply(X,Y){if(!Y.enum)return;if(Y.enum.length===0){if(!Y.type)X.string=!1,X.number=!1,X.boolean=!1,X.null=!1,X.array=!1,X.object=!1;return}let Q={string:Y.enum.filter((J)=>typeof J==="string"),number:Y.enum.filter((J)=>typeof J==="number"),boolean:Y.enum.filter((J)=>typeof J==="boolean"),null:Y.enum.filter((J)=>J===null),array:Y.enum.filter((J)=>Array.isArray(J)),object:Y.enum.filter((J)=>typeof J==="object"&&J!==null&&!Array.isArray(J))};X.string=this.createTypeSchema(Q.string,"string"),X.number=this.createTypeSchema(Q.number,"number"),X.boolean=this.createTypeSchema(Q.boolean,"boolean"),X.null=Q.null.length>0?U.null():!1,X.array=Q.array.length>0?void 0:!1,X.object=Q.object.length>0?void 0:!1}createTypeSchema(X,Y){if(X.length===0)return!1;if(X.length===1)return U.literal(X[0]);if(Y==="string")return U.enum(X);if(Y==="number"){let[Q,J,...G]=X;return U.union([U.literal(Q),U.literal(J),...G.map((W)=>U.literal(W))])}if(Y==="boolean")return U.union([U.literal(!0),U.literal(!1)]);return!1}},vu6=class{apply(X,Y){let Q=Y;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let J=U.file();if(Q.minLength!==void 0)J=J.min(Q.minLength);if(Q.maxLength!==void 0)J=J.max(Q.maxLength);if(Q.contentMediaType!==void 0)J=J.mime(Q.contentMediaType);X.file=J,X.string=!1}}},_u6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if(X.string===void 0)X.string=U.string()}}},yu6=class{apply(X,Y){let Q=Y;if(Q.minLength===void 0)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString)X.string=J.refine((G)=>{return Array.from(G).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},bu6=class{apply(X,Y){let Q=Y;if(Q.maxLength===void 0)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString)X.string=J.refine((G)=>{return Array.from(G).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},fu6=class{apply(X,Y){let Q=Y;if(!Q.pattern)return;if(X.string!==!1){let J=X.string||U.string();if(J instanceof U.ZodString){let G=new RegExp(Q.pattern);X.string=J.regex(G)}}}},hu6=class{apply(X,Y){let Q=Y;if(Q.minimum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.min(Q.minimum)}}},xu6=class{apply(X,Y){let Q=Y;if(Q.maximum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.max(Q.maximum)}}},gu6=class{apply(X,Y){let Q=Y;if(Q.exclusiveMinimum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)if(typeof Q.exclusiveMinimum==="number")X.number=J.gt(Q.exclusiveMinimum);else X.number=!1}}},uu6=class{apply(X,Y){let Q=Y;if(Q.exclusiveMaximum===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)if(typeof Q.exclusiveMaximum==="number")X.number=J.lt(Q.exclusiveMaximum);else X.number=!1}}},mu6=class{apply(X,Y){let Q=Y;if(Q.multipleOf===void 0)return;if(X.number!==!1){let J=X.number||U.number();if(J instanceof U.ZodNumber)X.number=J.refine((G)=>{if(Q.multipleOf===0)return!1;let W=G/Q.multipleOf,Z=Math.round(W),$=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(W-Z)<=$/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},lu6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if(X.array===void 0)X.array=U.array(U.any())}}},du6=class{apply(X,Y){let Q=Y;if(Q.minItems===void 0)return;if(X.array!==!1)X.array=(X.array||U.array(U.any())).min(Q.minItems)}},pu6=class{apply(X,Y){let Q=Y;if(Q.maxItems===void 0)return;if(X.array!==!1)X.array=(X.array||U.array(U.any())).max(Q.maxItems)}},cu6=class{apply(X,Y){let Q=Y;if(X.array===!1)return;if(Array.isArray(Q.items))X.array=X.array||U.array(U.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let J=bY(Q.items),G=U.array(J);if(X.array&&X.array instanceof U.ZodArray){let W=X.array._def;if(W.checks)W.checks.forEach((Z)=>{if(Z._zod&&Z._zod.def){let $=Z._zod.def;if($.check==="min_length"&&$.minimum!==void 0)G=G.min($.minimum);else if($.check==="max_length"&&$.maximum!==void 0)G=G.max($.maximum)}})}X.array=G}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)X.array=U.array(U.any()).max(0);else X.array=X.array||U.array(U.any());else if(typeof Q.items==="boolean"&&Q.items===!0)X.array=X.array||U.array(U.any());else if(Q.prefixItems)X.array=X.array||U.array(U.any())}},nu6=class{apply(X,Y){if(Y.type!=="array")return;let Q=Y;if(!Array.isArray(Q.items))return;if(X.array===!1)return;let J=Q.items.map((W)=>bY(W)),G;if(J.length===0)G=U.tuple([]);else G=U.tuple(J);if(Q.minItems!==void 0&&Q.minItems>J.length)G=!1;if(Q.maxItems!==void 0&&Q.maxItems<J.length)G=!1;X.tuple=G,X.array=!1}},iu6=class{apply(X,Y){let Q=Y;if(X.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)X.object=X.object||U.object({}).passthrough()}},au6=class{apply(X,Y){let Q=Y;if(Y.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if(X.object===void 0)X.object=U.object({}).passthrough()}}},ru6=class{apply(X,Y){let Q=Y;if(Q.maxProperties===void 0)return;if(X.object!==!1){let J=X.object||U.object({}).passthrough();X.object=J.refine((G)=>Object.keys(G).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},ou6=class{apply(X,Y){let Q=Y;if(Q.minProperties===void 0)return;if(X.object!==!1){let J=X.object||U.object({}).passthrough();X.object=J.refine((G)=>Object.keys(G).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},tu6=class{apply(X,Y){if(!Y.not)return X;let Q=bY(Y.not);return X.refine((J)=>!Nf(Q,J),{message:"Value must not match the 'not' schema"})}},eu6=class{apply(X,Y){if(Y.uniqueItems!==!0)return X;return X.refine(su6(),{message:"Array items must be unique"})}},Xm6=class{apply(X,Y){if(!Y.allOf||Y.allOf.length===0)return X;return Y.allOf.map((J)=>bY(J)).reduce((J,G)=>U.intersection(J,G),X)}},Ym6=class{apply(X,Y){if(!Y.anyOf||Y.anyOf.length===0)return X;let Q=Y.anyOf.length===1?bY(Y.anyOf[0]):U.union([bY(Y.anyOf[0]),bY(Y.anyOf[1]),...Y.anyOf.slice(2).map((J)=>bY(J))]);return U.intersection(X,Q)}},Qm6=class{apply(X,Y){if(!Y.oneOf||Y.oneOf.length===0)return X;let Q=Y.oneOf.map((J)=>bY(J));return X.refine((J)=>{let G=0;for(let W of Q)if(W.safeParse(J).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},Jm6=class{apply(X,Y){let Q=Y;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let G=Q.prefixItems.map((W)=>bY(W));return X.refine((W)=>{if(!Array.isArray(W))return!0;for(let Z=0;Z<Math.min(W.length,G.length);Z++)if(!Nf(G[Z],W[Z]))return!1;if(W.length>G.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let Z=bY(Q.items);for(let $=G.length;$<W.length;$++)if(!Nf(Z,W[$]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return X}},Gm6=class{apply(X,Y){let Q=Y;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return X;if(X instanceof U.ZodObject||X instanceof U.ZodRecord){let J={};if(Q.properties){for(let[G,W]of Object.entries(Q.properties))if(W!==void 0)J[G]=bY(W)}if(Q.required&&Array.isArray(Q.required)){let G=new Set(Q.required);for(let W of Object.keys(J))if(!G.has(W))J[W]=J[W].optional()}else for(let G of Object.keys(J))J[G]=J[G].optional();if(Q.additionalProperties===!1)return U.object(J);else return U.object(J).passthrough()}return X.refine((J)=>{if(typeof J!=="object"||J===null||Array.isArray(J))return!0;if(Q.properties){for(let[G,W]of Object.entries(Q.properties))if(W!==void 0){if(Object.getOwnPropertyDescriptor(J,G)!==void 0){if(!bY(W).safeParse(J[G]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let G of Q.required)if(Object.getOwnPropertyDescriptor(J,G)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let G=new Set(Object.keys(Q.properties));for(let W in J)if(!G.has(W))return!1}return!0},{message:"Object constraints validation failed"})}},Wm6=class{apply(X,Y){if(!Y.enum||Y.enum.length===0)return X;let Q=Y.enum.filter((J)=>Array.isArray(J)||typeof J==="object"&&J!==null);if(Q.length===0)return X;return X.refine((J)=>{if(typeof J!=="object"||J===null)return!0;return Q.some((G)=>DA(J,G))},{message:"Value must match one of the enum values"})}},Zm6=class{apply(X,Y){if(Y.const===void 0)return X;let Q=Y.const;if(typeof Q!=="object"||Q===null)return X;return X.refine((J)=>DA(J,Q),{message:"Value must equal the const value"})}},$m6=class{apply(X,Y){if(Y.description)X=X.describe(Y.description);return X}},Km6=class{apply(X,Y){var Q;let J=Y;if(!((Q=J.required)==null?void 0:Q.includes("__proto__"))||Y.type!==void 0)return X;return U.any().refine((G)=>this.validateRequired(G,J.required),{message:"Missing required properties"})}validateRequired(X,Y){if(typeof X!=="object"||X===null||Array.isArray(X))return!0;return Y.every((Q)=>Object.prototype.hasOwnProperty.call(X,Q))}},Hm6=class{apply(X,Y){var Q;let J=Y;if(J.contains===void 0)return X;let G=bY(J.contains),W=(Q=J.minContains)!=null?Q:1,Z=J.maxContains;return X.refine(($)=>{if(!Array.isArray($))return!0;let K=0;for(let H of $)if(Nf(G,H))K++;if(K<W)return!1;if(Z!==void 0&&K>Z)return!1;return!0},{message:"Array must contain required items matching the schema"})}},Fm6=class{apply(X,Y){let{default:Q}=Y;if(Q===void 0)return X;if(!X.safeParse(Q).success)return X;return X.default(Q)}},Vm6,qm6;var PW1=S(()=>{r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();r6();Vm6=[new Su6,new ku6,new Ru6,new vu6,new _u6,new lu6,new au6,new yu6,new bu6,new fu6,new hu6,new xu6,new gu6,new uu6,new mu6,new nu6,new du6,new pu6,new cu6,new ru6,new ou6,new iu6],qm6=[new Km6,new Wm6,new Zm6,new Xm6,new Ym6,new Qm6,new Jm6,new Gm6,new Hm6,new tu6,new eu6,new Fm6,new $m6]});class J90{constructor(X){this._url=X}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((X,Y)=>{this._socket=new WebSocket(this._url,Um6),this._socket.onerror=(Q)=>{let J="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);Y(J),this.onerror?.(J)},this._socket.onopen=()=>{X()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let J;try{J=ZJ.parse(JSON.parse(Q.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(J)}})}async close(){this._socket?.close()}send(X){return new Promise((Y,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify(X)),Y()})}}var Um6="mcp";var AW1=S(()=>{RX()});function zm6(X){let Y=X;if(!Y||typeof Y!=="object"||!("method"in Y))return null;switch(Y.method){case"initialize":{let Q=Y?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Y.jsonrpc??"2.0",id:Y.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var G90;var TW1=S(()=>{LB();G90=class G90 extends x7{constructor(X,Y){super(X,Y)}send(X,Y){let Q=zm6(X);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send(X,Y)}}});var EW1,jW1=async(X,Y,Q)=>{let J=Bm6(X.connection,Y,Q);if(!J)throw Error("Unknown MCP connection type");let G=new EW1({name:X?.name??"MCP Client",version:"1.0.0"});return await G.connect(J),{client:G,callStreamableTool:(W,Z,$)=>{if(X.connection.type!=="HTTP")throw Error("HTTP connection required");let K=new Headers(Q);if(!K.has("Authorization"))K.set("Authorization",`Bearer ${X.connection.token}`);for(let[V,q]of Object.entries(X.connection.headers??{}))K.set(V,q);let H=new URL(X.connection.url),F=H.pathname.replace(/\/+$/,"")||"/";return H.pathname=`${F}/call-tool/${encodeURIComponent(W)}`,fetch(H.href,{method:"POST",redirect:"manual",body:JSON.stringify(Z),headers:K,signal:$})}}},Bm6=(X,Y,Q)=>{if(X.type==="Websocket")return new J90(new URL(X.url));if(X.type!=="SSE"&&X.type!=="HTTP")return null;let G={...X.token?{authorization:`Bearer ${X.token}`}:{},...Q??{},..."headers"in X?X.headers||{}:{}};if(X.type==="SSE"){let W={requestInit:{headers:G,signal:Y}};if(X.token)W.eventSourceInit={fetch:(Z,$)=>{return fetch(Z,{...$,headers:{...G,Accept:"text/event-stream"},signal:Y})}};return new gF(new URL(X.url),W)}return new G90(new URL(X.url),{requestInit:{headers:G,signal:Y,credentials:"include"}})};var CW1=S(()=>{yF();Jf();AW1();RX();TW1();EW1=class EW1 extends PQ{constructor(X,Y){super(X,Y)}async listTools(X,Y){return await this.request({method:"tools/list",params:X},EP,Y)}}});function RW1(X){let Y=(Q)=>{if("connection"in X)return jW1({connection:X.connection},void 0,Q);return X.client};return new Proxy({},{get(Q,J){if(J==="toJSON")return null;if(typeof J!=="string")throw Error("Name must be a string");if(J==="listTools")return $;async function G(K,H){let F,V;if(typeof H==="object")F=J,V=H;else F??=J;let q=X?.debugId?.(),z=q?{"x-trace-debug-id":q}:void 0,{client:D,callStreamableTool:N}=await Y(z);if(X?.streamable?.[String(F)])return N(String(F),K,V?.signal??void 0);let{structuredContent:L,isError:w,content:C}=await D.callTool({name:String(F),arguments:K},void 0,{signal:V?.signal??void 0});if(w){let T=C?.[0]?.text,A=typeof T==="string"?Dm6(T):null,P=A?.code&&typeof X?.getErrorByStatusCode==="function"?X.getErrorByStatusCode(A.code,A.message,A.traceId):null;if(P)throw P;throw Error(`Tool ${String(F)} returned an error: ${JSON.stringify(L??C)}`)}return L}async function W(){let{client:K}=await Y(),{tools:H}=await K.listTools();return H}async function Z(){if(!("connection"in X))return W();let K=X.connection,H=JSON.stringify(K);try{if(!Of.has(H))Of.set(H,W());return await Of.get(H)}catch(F){console.error("Failed to list tools",F),Of.delete(H);return}}async function $(){return(await Z()??[]).map((H)=>IW1(H,G))}return G.asTool=async()=>{let H=(await Z()??[]).find((F)=>F.name===J);if(!H)throw Error(`Tool ${J} not found`);return IW1(H,G)},G}})}var Dm6=(X)=>{try{return JSON.parse(X)}catch{return X}},Of,IW1=(X,Y)=>{return{...X,id:X.name,inputSchema:X.inputSchema?bY(X.inputSchema):void 0,outputSchema:X.outputSchema?bY(X.outputSchema):void 0,execute:(Q)=>{return Y(Q.context,X.name)}}};var SW1=S(()=>{PW1();CW1();Of=new Map});function Lf(X){return RW1(X)}var Ea4;var kW1=S(()=>{SW1();Ea4=new Proxy({},{get(X,Y){if(Y==="toJSON")return null;if(Y==="forConnection")return(Q)=>Lf({connection:Q});return global[Y]}})});function wf(X){return{isImplementedBy:(Y)=>{for(let Q of X){let J=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,G=Y.find((W)=>J.test(W.name));if(!G&&Q.opt)continue;if(!G)return!1}return!0}}}var cF=(X)=>{return{...wf(X),forClient:(Y)=>{return Lf({client:Y,streamable:X.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})},forConnection:(Y)=>{return Lf({connection:Y,streamable:X.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})}}};var NA=S(()=>{kW1()});var W90,Sa4;var vW1=S(()=>{XP();W90=w6(eM(),1),Sa4=W90.createContext(null)});function iF(X){return U.object({items:U.array(X).describe("Array of collection items"),totalCount:U.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:U.boolean().optional().describe("Whether there are more items available")})}function LA(X){return U.object({item:X.nullable().describe("The retrieved item, or null if not found")})}function Lm6(X){return U.object({data:X.partial().describe("Data for the new entity (id may be auto-generated)")})}function wm6(X){return U.object({item:X.describe("The created entity with generated id")})}function Mm6(X){return U.object({id:U.string().describe("ID of the entity to update"),data:X.partial().describe("Partial entity data to update")})}function Pm6(X){return U.object({item:X.describe("The updated entity")})}function MA(X){return U.object({item:X.describe("The deleted entity")})}function xB(X,Y,Q){let J=X.toUpperCase(),G=Q?.readOnly??!1,W=[{name:`COLLECTION_${J}_LIST`,inputSchema:nF,outputSchema:iF(Y)},{name:`COLLECTION_${J}_GET`,inputSchema:OA,outputSchema:LA(Y)}];if(!G)W.push({name:`COLLECTION_${J}_CREATE`,inputSchema:Lm6(Y),outputSchema:wm6(Y),opt:!0},{name:`COLLECTION_${J}_UPDATE`,inputSchema:Mm6(Y),outputSchema:Pm6(Y),opt:!0},{name:`COLLECTION_${J}_DELETE`,inputSchema:wA,outputSchema:MA(Y),opt:!0});return W}var hB,Nm6,_W1,Om6,nF,OA,wA;var GG=S(()=>{r0();hB=U.object({id:U.string().describe("Unique identifier for the entity"),title:U.string().describe("Human-readable title for the entity"),description:U.string().nullish().describe("Description of the entity"),created_at:U.string().datetime(),updated_at:U.string().datetime(),created_by:U.string().optional(),updated_by:U.string().optional()}),Nm6=U.object({field:U.array(U.string()),operator:U.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:U.unknown()}),_W1=U.lazy(()=>U.union([Nm6,U.object({operator:U.enum(["and","or","not"]),conditions:U.array(_W1)})])),Om6=U.object({field:U.array(U.string()),direction:U.enum(["asc","desc"]),nulls:U.enum(["first","last"]).optional()}),nF=U.object({where:_W1.optional().describe("Filter expression"),orderBy:U.array(Om6).optional().describe("Sort expressions"),limit:U.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:U.number().int().min(0).optional().describe("Number of items to skip")});OA=U.object({id:U.string().describe("ID of the entity to retrieve")});wA=U.object({id:U.string().describe("ID of the entity to delete")})});var Am6,yW1,ha4;var bW1=S(()=>{r0();GG();Am6=U.object({id:U.string(),name:U.string(),description:U.string().optional(),inputSchema:U.record(U.string(),U.unknown()),outputSchema:U.record(U.string(),U.unknown()).optional()}),yW1=hB.extend({_meta:U.object({"io.decocms":U.object({id:U.string(),verified:U.boolean(),scopeName:U.string(),appName:U.string(),friendlyName:U.string().nullable().optional(),metadata:U.record(U.string(),U.unknown()).nullable().optional(),publishedAt:U.string().datetime().optional(),updatedAt:U.string().datetime().optional(),tools:U.array(Am6).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:U.object({$schema:U.string().optional(),_meta:U.record(U.string(),U.unknown()).optional(),name:U.string().describe("The server name (scope/app)"),title:U.string().optional().describe("User-friendly title"),description:U.string().optional().describe("Server description"),icons:U.array(U.object({src:U.string(),mimeType:U.string().optional(),sizes:U.array(U.string()).optional(),theme:U.enum(["light","dark"]).optional()})).optional(),remotes:U.array(U.object({type:U.enum(["http","stdio","sse"]),url:U.string().optional(),headers:U.array(U.unknown()).optional()})).optional(),packages:U.array(U.unknown()).optional(),repository:U.object({url:U.string(),source:U.string().optional(),subfolder:U.string().optional()}).optional(),version:U.string().optional(),websiteUrl:U.string().optional()})}),ha4=xB("registry_app",yW1,{readOnly:!0})});var fW1,hW1,xW1,gW1,uW1,Z90;var mW1=S(()=>{r0();NA();fW1=U.object({specversion:U.literal("1.0").describe("CloudEvents specification version"),id:U.string().describe("Unique identifier for this event (UUID recommended)"),source:U.string().describe("Connection ID of the event publisher"),type:U.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:U.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:U.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:U.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:U.string().url().optional().describe("URI to the schema for the data attribute"),data:U.unknown().optional().describe("Event payload (any JSON value)")}),hW1=U.object({events:U.array(fW1).min(1).describe("Batch of CloudEvents to process")}),xW1=U.object({success:U.boolean().optional().describe("Whether this event was processed successfully"),error:U.string().optional().describe("Error message for this event"),retryAfter:U.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),gW1=U.object({success:U.boolean().optional().describe("Batch success - applies to events not in results"),error:U.string().optional().describe("Batch error message - applies to events not in results"),processedCount:U.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:U.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:U.record(U.string(),xW1).optional().describe("Per-event results keyed by event ID")}),uW1=[{name:"ON_EVENTS",inputSchema:hW1,outputSchema:gW1}],Z90=cF(uW1)});var PA,AA,TA,EA,lW1,dW1,jA,CA,IA,RA,SA,kA,vA,_A,pW1,Tm6;var cW1=S(()=>{r0();NA();PA=U.object({type:U.string().min(1).max(255).describe("Event type identifier"),subject:U.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:U.unknown().optional().describe("Event payload"),deliverAt:U.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:U.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),AA=U.object({id:U.string().describe("Unique event ID"),type:U.string().describe("Event type"),source:U.string().describe("Source connection ID"),time:U.string().describe("Event timestamp")}),TA=U.object({eventType:U.string().min(1).max(255).describe("Event type to subscribe to"),publisher:U.string().optional().describe("Filter events by publisher connection ID"),filter:U.string().max(1000).optional().describe("JSONPath filter expression on event data")}),EA=U.object({subscription:U.object({id:U.string().describe("Subscription ID"),connectionId:U.string().describe("Subscriber connection ID"),eventType:U.string().describe("Event type pattern"),publisher:U.string().nullable().describe("Publisher connection filter"),filter:U.string().nullable().describe("JSONPath filter expression"),enabled:U.boolean().describe("Whether subscription is enabled"),createdAt:U.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:U.string().datetime().describe("Updated timestamp (ISO 8601)")})}),lW1=U.object({eventType:U.string().min(1).max(255).describe("Event type to subscribe to"),publisher:U.string().optional().describe("Filter events by publisher connection ID"),filter:U.string().max(1000).optional().describe("JSONPath filter expression on event data")}),dW1=U.object({id:U.string().describe("Subscription ID"),connectionId:U.string().describe("Subscriber connection ID"),eventType:U.string().describe("Event type pattern"),publisher:U.string().nullable().describe("Publisher connection filter"),filter:U.string().nullable().describe("JSONPath filter expression"),enabled:U.boolean().describe("Whether subscription is enabled"),createdAt:U.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:U.string().datetime().describe("Updated timestamp (ISO 8601)")}),jA=U.object({subscriptions:U.array(lW1).describe("Desired subscriptions - system will create/update/delete to match")}),CA=U.object({created:U.number().int().min(0).describe("Number of subscriptions created"),updated:U.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:U.number().int().min(0).describe("Number of subscriptions removed"),unchanged:U.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:U.array(dW1).describe("Current subscriptions after sync")}),IA=U.object({subscriptionId:U.string().describe("Subscription ID to remove")}),RA=U.object({success:U.boolean().describe("Whether unsubscribe was successful"),subscriptionId:U.string().describe("Subscription ID that was removed")}),SA=U.object({eventId:U.string().describe("Event ID to cancel")}),kA=U.object({success:U.boolean().describe("Whether cancellation was successful"),eventId:U.string().describe("Event ID that was cancelled")}),vA=U.object({eventId:U.string().describe("Event ID to acknowledge")}),_A=U.object({success:U.boolean().describe("Whether ACK was successful"),eventId:U.string().describe("Event ID that was acknowledged")}),pW1=[{name:"EVENT_PUBLISH",inputSchema:PA,outputSchema:AA},{name:"EVENT_SUBSCRIBE",inputSchema:TA,outputSchema:EA},{name:"EVENT_UNSUBSCRIBE",inputSchema:IA,outputSchema:RA},{name:"EVENT_CANCEL",inputSchema:SA,outputSchema:kA},{name:"EVENT_ACK",inputSchema:vA,outputSchema:_A},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:jA,outputSchema:CA}],Tm6=cF(pW1)});var na4,ia4,aa4,ra4,oa4,sa4,ta4,ea4,Xr4,Yr4,Qr4,Jr4;var nW1=S(()=>{r0();na4=U.object({prefix:U.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:U.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:U.string().optional().describe("Token for pagination from previous response"),delimiter:U.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),ia4=U.object({objects:U.array(U.object({key:U.string().describe("Object key/path"),size:U.number().describe("Object size in bytes"),lastModified:U.string().describe("Last modified timestamp"),etag:U.string().describe("Entity tag for the object")})),nextContinuationToken:U.string().optional().describe("Token for fetching next page of results"),isTruncated:U.boolean().describe("Whether there are more results available"),commonPrefixes:U.array(U.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),aa4=U.object({key:U.string().describe("Object key/path to get metadata for")}),ra4=U.object({contentType:U.string().optional().describe("MIME type of the object"),contentLength:U.number().describe("Size of the object in bytes"),lastModified:U.string().describe("Last modified timestamp"),etag:U.string().describe("Entity tag for the object"),metadata:U.record(U.string(),U.string()).optional().describe("Custom metadata key-value pairs")}),oa4=U.object({key:U.string().describe("Object key/path to generate URL for"),expiresIn:U.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),sa4=U.object({url:U.string().describe("Presigned URL for downloading the object"),expiresIn:U.number().describe("Expiration time in seconds that was used")}),ta4=U.object({key:U.string().describe("Object key/path for the upload"),expiresIn:U.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:U.string().optional().describe("MIME type for the object being uploaded")}),ea4=U.object({url:U.string().describe("Presigned URL for uploading the object"),expiresIn:U.number().describe("Expiration time in seconds that was used")}),Xr4=U.object({key:U.string().describe("Object key/path to delete")}),Yr4=U.object({success:U.boolean().describe("Whether the deletion was successful"),key:U.string().describe("The key that was deleted")}),Qr4=U.object({keys:U.array(U.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),Jr4=U.object({deleted:U.array(U.string()).describe("Array of successfully deleted keys"),errors:U.array(U.object({key:U.string(),message:U.string()})).describe("Array of errors for failed deletions")})});var Mf=S(()=>{NA();vW1();bW1();mW1();cW1();nW1()});var Em6,jm6,iW1;var aW1=S(()=>{r0();GG();Em6=hB.extend({avatar:U.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:U.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:U.string().describe("Virtual MCP ID to use for this assistant"),model:U.object({id:U.string().describe("Model ID"),connectionId:U.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),jm6=xB("assistant",Em6),iW1=[...jm6]});var yA,AZ,oW1,Cm6,Im6,sW1,Rm6,Sm6,km6,vm6,_m6,ym6,tW1,bm6,fm6,hm6,xm6,gm6,um6,mm6,lm6,dm6,pm6,Ar4,cm6,Tr4,rW1,nm6,im6,$90,Pf;var Af=S(()=>{r0();NA();GG();yA=U.lazy(()=>U.union([U.null(),U.string(),U.number(),U.boolean(),U.record(U.string(),yA),U.array(yA)])),AZ=U.record(U.string(),U.record(U.string(),yA)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),oW1=U.object({type:U.literal("text"),text:U.string().describe("The text content"),providerOptions:AZ}),Cm6=U.object({type:U.literal("text"),text:U.string().describe("The text content"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),Im6=U.string().describe("File data as URL string"),sW1=U.object({type:U.literal("file"),filename:U.string().optional().describe("Optional filename of the file"),data:Im6,mediaType:U.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:AZ}),Rm6=U.object({type:U.literal("file"),mediaType:U.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:U.string().describe("Generated file data as base64 encoded string")}),Sm6=U.object({type:U.literal("reasoning"),text:U.string().describe("The reasoning text"),providerOptions:AZ}),km6=U.object({type:U.literal("reasoning"),text:U.string().describe("The reasoning text"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),vm6=U.object({type:U.literal("tool-call"),toolCallId:U.string().describe("ID of the tool call, used to match with tool result"),toolName:U.string().describe("Name of the tool being called"),input:U.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:U.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:AZ}),_m6=U.object({type:U.literal("tool-call"),toolCallId:U.string().describe("ID of the tool call"),toolName:U.string().describe("Name of the tool being called"),input:U.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:U.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),ym6=U.union([U.object({type:U.literal("text"),value:U.string()}),U.object({type:U.literal("json"),value:yA}),U.object({type:U.literal("error-text"),value:U.string()}),U.object({type:U.literal("error-json"),value:yA}),U.object({type:U.literal("content"),value:U.array(U.union([U.object({type:U.literal("text"),text:U.string().describe("Text content")}),U.object({type:U.literal("media"),data:U.string().describe("Base-64 encoded media data"),mediaType:U.string().describe("IANA media type")})]))})]),tW1=U.object({type:U.literal("tool-result"),toolCallId:U.string().describe("ID of the tool call that this result is associated with"),toolName:U.string().describe("Name of the tool that generated this result"),output:ym6.describe("Result of the tool call"),result:U.unknown().describe("Unknown result of the tool call"),providerOptions:AZ}),bm6=U.object({type:U.literal("tool-result"),toolCallId:U.string().describe("ID of the tool call that this result is associated with"),toolName:U.string().describe("Name of the tool that generated this result"),result:U.any().describe("Result of the tool call (JSON-serializable)"),isError:U.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:U.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),fm6=U.union([U.object({type:U.literal("source"),sourceType:U.literal("url"),id:U.string().describe("The ID of the source"),url:U.string().describe("The URL of the source"),title:U.string().optional().describe("The title of the source"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")}),U.object({type:U.literal("source"),sourceType:U.literal("document"),id:U.string().describe("The ID of the source"),mediaType:U.string().describe("IANA media type of the document (e.g., application/pdf)"),title:U.string().describe("The title of the document"),filename:U.string().optional().describe("Optional filename of the document"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata")})]),hm6=U.object({role:U.literal("system"),content:U.string().describe("System message content"),providerOptions:AZ}),xm6=U.object({role:U.literal("user"),content:U.array(U.union([oW1,sW1])).describe("User message content parts (text or file)"),providerOptions:AZ}),gm6=U.object({role:U.literal("assistant"),content:U.array(U.union([oW1,sW1,Sm6,vm6,tW1])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:AZ}),um6=U.object({role:U.literal("tool"),content:U.array(tW1).describe("Tool message content (tool results)"),providerOptions:AZ}),mm6=U.union([hm6,xm6,gm6,um6]),lm6=U.array(mm6).describe("A list of messages forming the prompt"),dm6=U.object({prompt:lm6.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:U.number().optional().describe("Maximum number of tokens to generate"),temperature:U.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:U.number().optional().describe("Nucleus sampling parameter"),topK:U.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:U.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:U.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:U.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:U.array(U.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:U.union([U.object({type:U.literal("text")}),U.object({type:U.literal("json"),schema:U.any().optional().describe("JSON schema that the generated output should conform to"),name:U.string().optional().describe("Name of output that should be generated"),description:U.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:U.array(U.any()).optional().describe("The tools that are available for the model"),toolChoice:U.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:U.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:U.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:U.any().optional().describe("Additional provider-specific options")}),pm6=U.object({content:U.array(U.union([Cm6,Rm6,km6,_m6,bm6,fm6])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:U.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:U.looseObject({inputTokens:U.number().optional(),outputTokens:U.number().optional(),totalTokens:U.number().optional(),reasoningTokens:U.number().optional()}).describe("Usage information for the language model call"),providerMetadata:U.any().optional().describe("Additional provider-specific metadata"),request:U.object({body:U.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:U.object({id:U.string().optional().describe("ID for the generated response"),timestamp:U.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:U.string().optional().describe("The ID of the response model that was used"),headers:U.record(U.string(),U.string()).optional().describe("Response headers"),body:U.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:U.array(U.any()).describe("Warnings for the call, e.g. unsupported settings")}),Ar4=U.object({stream:U.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:U.object({body:U.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:U.object({headers:U.record(U.string(),U.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),cm6=U.object({supportedUrls:U.record(U.string(),U.array(U.string())).describe("Supported URL patterns by media type for the provider")}),Tr4=U.object({modelId:U.string().describe("The ID of the model"),logo:U.string().nullable(),description:U.string().nullable(),capabilities:U.array(U.string()),limits:U.object({contextWindow:U.number(),maxOutputTokens:U.number()}).nullable(),costs:U.object({input:U.number(),output:U.number()}).nullable(),provider:U.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),rW1=U.object({modelId:U.string().describe("The ID of the model"),callOptions:dm6}),nm6=hB.extend({logo:U.string().nullable(),description:U.string().nullable(),capabilities:U.array(U.string()),limits:U.object({contextWindow:U.number(),maxOutputTokens:U.number()}).nullable(),costs:U.object({input:U.number(),output:U.number()}).nullable(),provider:U.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),im6=xB("llm",nm6,{readOnly:!0}),$90=[{name:"LLM_METADATA",inputSchema:U.object({modelId:U.string().describe("The ID of the model")}),outputSchema:cm6},{name:"LLM_DO_STREAM",inputSchema:rW1,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:rW1,outputSchema:pm6},...im6],Pf=cF($90)});function rm6(X){let Y=[],Q=0;while(Q<X.length){let J=X[Q];if(J==="%")Y.push(".*");else if(J==="_")Y.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))Y.push("\\"+J);else Y.push(J);Q++}return Y.join("")}function uK(X){return typeof X==="string"||typeof X==="number"}function Tf(X,Y){if("conditions"in Y){let{operator:$,conditions:K}=Y;switch($){case"and":return K.every((H)=>Tf(X,H));case"or":return K.some((H)=>Tf(X,H));case"not":return!K.every((H)=>Tf(X,H));default:return!0}}let{field:Q,operator:J,value:G}=Y,W=Q.join("."),Z=K90(X,W);switch(J){case"eq":return Z===G;case"gt":return uK(Z)&&uK(G)&&Z>G;case"gte":return uK(Z)&&uK(G)&&Z>=G;case"lt":return uK(Z)&&uK(G)&&Z<G;case"lte":return uK(Z)&&uK(G)&&Z<=G;case"in":return Array.isArray(G)&&G.includes(Z);case"like":if(typeof Z!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let $=rm6(G);return new RegExp(`^${$}$`,"i").test(Z);case"contains":if(typeof Z!=="string"||typeof G!=="string")return!1;return Z.toLowerCase().includes(G.toLowerCase());default:return!0}}function K90(X,Y){let Q=Y.split("."),J=X;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function om6(X,Y){return[...X].sort((Q,J)=>{for(let G of Y){let W=G.field.join("."),Z=K90(Q,W),$=K90(J,W),K=0;if(Z==null&&$==null)continue;if(Z==null)K=G.nulls==="first"?-1:1;else if($==null)K=G.nulls==="first"?1:-1;else if(typeof Z==="string"&&typeof $==="string")K=Z.localeCompare($);else if(typeof Z==="number"&&typeof $==="number")K=Z-$;else K=String(Z).localeCompare(String($));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var am6,sm6,tm6,H90;var eW1=S(()=>{Mf();aW1();GG();Af();r0();$6();g7();am6={LLM:$90,ASSISTANTS:iW1};sm6=nF.extend({binding:U.union([U.object({}).passthrough(),U.string()]).optional()}),tm6=iF(F5),H90=e0({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:sm6,outputSchema:tm6,handler:async(X,Y)=>{await Y.access.check();let Q=_1(Y),J=X.binding?typeof X.binding==="string"?(()=>{let z=am6[X.binding.toUpperCase()];if(!z)throw Error(`Unknown binding: ${X.binding}`);return z})():X.binding:void 0,G=J?wf(J):void 0,Z=(await Y.storage.connections.list(Q.id)).filter((z)=>z.connection_type!=="VIRTUAL"),$=G?await Promise.all(Z.map(async(z)=>{if(!z.tools||z.tools.length===0)return null;return G.isImplementedBy(z.tools.map((N)=>({name:N.name,inputSchema:N.inputSchema,outputSchema:N.outputSchema})))?z:null})).then((z)=>z.filter((D)=>D!==null)):Z;if(X.where)$=$.filter((z)=>Tf(z,X.where));if(X.orderBy&&X.orderBy.length>0)$=om6($,X.orderBy);let K=$.length,H=X.offset??0,F=X.limit??100,V=$.slice(H,H+F),q=H+F<K;return{items:V,totalCount:K,hasMore:q}}})});var em6,F90;var XZ1=S(()=>{GG();$6();g7();em6=LA(F5),F90=e0({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:OA,outputSchema:em6,handler:async(X,Y)=>{let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:J}}})});var Ef=(X,Y)=>{if(Y===null||Y===void 0)return;let Q=X.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),J=Y;for(let G of Q){if(J===null||J===void 0||typeof J!=="object")return;J=J[G]}return J};function YZ1(X){let Y=X.split("::");if(Y.length!==2||!Y[0]||!Y[1])throw Error(`Invalid scope format: ${X}. Expected format: "KEY::SCOPE"`);return Y}function Xl6(X){let Y=X.split("::");if(Y.length!==2||!Y[0]||!Y[1])return null;return Y}function Yl6(X){if(typeof X==="object"&&X!==null&&"value"in X){let Y=X.value;if(typeof Y==="string")return Y}return null}function V90(X,Y){let Q={};if(!X||!Y)return Q;for(let J of Y){if(J==="*"){Q["*"]=["*"];continue}let G=Xl6(J);if(!G)continue;let[W,Z]=G,$=Ef(W,X),K=Yl6($);if(K){if(!Q[K])Q[K]=[];Q[K].push(Z)}}return Q}function QZ1(X,Y){let Q=V90(X,Y);return new Set(Object.keys(Q).filter((J)=>J!=="*"))}var q90=()=>{};class TZ{db;vault;constructor(X,Y){this.db=X;this.vault=Y}async get(X){let Y=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",X).executeTakeFirst();if(!Y)return null;return this.decryptToken(Y)}async upsert(X){let Y=new Date().toISOString(),Q=await this.vault.encrypt(X.accessToken),J=X.refreshToken?await this.vault.encrypt(X.refreshToken):null,G=X.clientSecret?await this.vault.encrypt(X.clientSecret):null;return await this.db.transaction().execute(async(W)=>{let Z=await W.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",X.connectionId).executeTakeFirst();if(Z)return await W.updateTable("downstream_tokens").set({accessToken:Q,refreshToken:J,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,updatedAt:Y}).where("id","=",Z.id).execute(),{id:Z.id,connectionId:X.connectionId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:Z.createdAt,updatedAt:Y,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint};let $=GX("dtok");return await W.insertInto("downstream_tokens").values({id:$,connectionId:X.connectionId,accessToken:Q,refreshToken:J,scope:X.scope,expiresAt:X.expiresAt?.toISOString()??null,clientId:X.clientId,clientSecret:G,tokenEndpoint:X.tokenEndpoint,createdAt:Y,updatedAt:Y}).execute(),{id:$,connectionId:X.connectionId,accessToken:X.accessToken,refreshToken:X.refreshToken,scope:X.scope,expiresAt:X.expiresAt,createdAt:Y,updatedAt:Y,clientId:X.clientId,clientSecret:X.clientSecret,tokenEndpoint:X.tokenEndpoint}})}async delete(X){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",X).execute()}isExpired(X,Y=0){if(!X.expiresAt)return!1;let J=(X.expiresAt instanceof Date?X.expiresAt:new Date(X.expiresAt)).getTime();if(Number.isNaN(J))return!0;return J-Y<Date.now()}async decryptToken(X){let Y=await this.vault.decrypt(X.accessToken),Q=X.refreshToken?await this.vault.decrypt(X.refreshToken):null,J=X.clientSecret?await this.vault.decrypt(X.clientSecret):null;return{id:X.id,connectionId:X.connectionId,accessToken:Y,refreshToken:Q,scope:X.scope,expiresAt:X.expiresAt,createdAt:X.createdAt,updatedAt:X.updatedAt,clientId:X.clientId,clientSecret:J,tokenEndpoint:X.tokenEndpoint}}}var jf=S(()=>{wZ()});async function Gl6(X,Y,Q,J){for(let W of Y){if(W==="*")continue;let[Z]=YZ1(W),$=Ef(Z,X);if($===void 0||$===null)throw Error(`Scope references key "${Z}" but it's not present in state`)}let G=QZ1(X,Y);for(let W of G){if(W.endsWith("_self"))continue;let Z=await J.storage.connections.findById(W);if(!Z||Z.organization_id!==Q)throw Error(`Referenced connection not found: ${W}`);try{await J.access.check(W)}catch($){throw Error(`Access denied to referenced connection: ${W}. ${$.message}`)}}}var Ql6,Jl6,U90;var JZ1=S(()=>{q90();jf();r0();$6();Zf();g7();Ql6=U.object({id:U.string().describe("ID of the connection to update"),data:JG1.describe("Partial connection data to update")}),Jl6=U.object({item:F5.describe("The updated connection entity")});U90=e0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:Ql6,outputSchema:Jl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);if(await Y.access.check(),!d8(Y))throw Error("User ID required to update connection");let{id:G,data:W}=X,Z=await Y.storage.connections.findById(G);if(!Z||Z.organization_id!==Q.id)throw Error("Connection not found in organization");let $=W.connection_type??Z.connection_type,K=W.connection_url??Z.connection_url;if($==="VIRTUAL"){let L=fK(K);if(!L)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let w=await Y.storage.virtualMcps.findById(L);if(!w)throw Error(`Virtual MCP not found: ${L}`);if(w.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");K=Xf(L)}let H=W.configuration_state??Z.configuration_state,F=W.configuration_scopes??Z.configuration_scopes??[];if(W.configuration_state!==void 0||W.configuration_scopes!==void 0){if(W.configuration_state!==void 0)H=W.configuration_state;else if(H===null)H={};if(W.configuration_scopes!==void 0)F=W.configuration_scopes??[];if(F.length>0&&H)await Gl6(H,F,Q.id,Y)}let V=W.connection_token??Z.connection_token;if(!V)try{let w=await new TZ(Y.db,Y.vault).get(G);if(w?.accessToken)V=w.accessToken}catch{}let q=await RB({id:Z.id,title:W.title??Z.title,connection_type:$,connection_url:K,connection_token:V,connection_headers:W.connection_headers??Z.connection_headers}).catch(()=>null),z=q?.length?q:null,D={...W,connection_url:K,tools:z,configuration_state:H,configuration_scopes:F},N=await Y.storage.connections.update(G,D);if((W.configuration_state!==void 0||W.configuration_scopes!==void 0)&&H&&F.length>0)try{await(await Y.createMCPProxy(G)).client.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:H,scopes:F}})}catch(L){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",L)}return{item:N}}})});var z90;var GZ1=S(()=>{GG();$6();g7();z90=e0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:wA,outputSchema:MA(F5),handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J)throw Error(`Connection not found: ${X.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");return await Y.storage.connections.delete(X.id),{item:J}}})});var B90;var WZ1=S(()=>{r0();$6();B90=e0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:U.object({id:U.string()}),outputSchema:U.object({id:U.string(),healthy:U.boolean(),latencyMs:U.number()}),handler:async(X,Y)=>{let Q=_1(Y);await Y.access.check();let J=await Y.storage.connections.findById(X.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await Y.storage.connections.testConnection(X.id);return{id:X.id,...G}}})});var ZZ1=S(()=>{MW1();eW1();XZ1();JZ1();GZ1();WZ1()});import{sql as X4}from"kysely";function $Z1(X){if(X===null||X===void 0)return"NULL";if(typeof X==="number")return String(X);if(typeof X==="boolean")return X?"TRUE":"FALSE";if(typeof X==="string")return`'${X.replace(/'/g,"''")}'`;if(X instanceof Date)return`'${X.toISOString()}'`;return`'${JSON.stringify(X).replace(/'/g,"''")}'`}function $l6(X,Y){let Q=X;for(let G=Y.length;G>=1;G--){let W=`$${G}`;if(Q.includes(W))Q=Q.replaceAll(W,$Z1(Y[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,Y.length)-1;G>=0;G--){let W=J[G],Z=$Z1(Y[G]);Q=Q.slice(0,W)+Z+Q.slice(W+1)}return Q}function KZ1(X){return X.replace(/-/g,"_")}function Hl6(X){return`app_${KZ1(X)}`}function Fl6(X){return`app_role_${KZ1(X)}`}function Vl6(X){if(X instanceof Error){let Y=X.message.toLowerCase(),Q=X.code;return Q==="3F000"||Q==="42704"||Y.includes("schema")&&Y.includes("does not exist")||Y.includes("role")&&Y.includes("does not exist")}return!1}async function ql6(X,Y,Q){if(await X4`CREATE SCHEMA IF NOT EXISTS ${X4.id(Y)}`.execute(X),!(await X4`
1183
1183
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
1184
1184
  `.execute(X)).rows[0]?.exists)await X4`CREATE ROLE ${X4.id(Q)} NOLOGIN`.execute(X);await X4`GRANT ${X4.id(Q)} TO CURRENT_USER`.execute(X),await X4`GRANT USAGE, CREATE ON SCHEMA ${X4.id(Y)} TO ${X4.id(Q)}`.execute(X),await X4`GRANT ALL ON ALL TABLES IN SCHEMA ${X4.id(Y)} TO ${X4.id(Q)}`.execute(X),await X4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${X4.id(Y)} TO ${X4.id(Q)}`.execute(X),await X4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${X4.id(Y)} GRANT ALL ON TABLES TO ${X4.id(Q)}`.execute(X),await X4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${X4.id(Y)} GRANT ALL ON SEQUENCES TO ${X4.id(Q)}`.execute(X),await X4`REVOKE ALL ON SCHEMA public FROM ${X4.id(Q)}`.execute(X)}async function Ul6(X,Y,Q,J){try{return await X.transaction().execute(async(G)=>{return await X4`SET LOCAL ROLE ${X4.id(Q)}`.execute(G),await X4`SET LOCAL search_path TO ${X4.id(Y)}`.execute(G),await X4.raw(J).execute(G)})}catch(G){if(Vl6(G))return await ql6(X,Y,Q),await X.transaction().execute(async(W)=>{return await X4`SET LOCAL ROLE ${X4.id(Q)}`.execute(W),await X4`SET LOCAL search_path TO ${X4.id(Y)}`.execute(W),await X4.raw(J).execute(W)});throw G}}var Zl6,Kl6,HZ1;var FZ1=S(()=>{r0();$6();Zl6=U.object({results:U.array(U.unknown()).optional(),success:U.boolean().optional()});Kl6=U.object({sql:U.string().describe("The SQL query to run"),params:U.array(U.any()).describe("The parameters to pass to the SQL query").optional()});HZ1=e0({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:Kl6,outputSchema:U.object({result:U.array(Zl6)}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=$l6(X.sql,X.params||[]);if(!Y.connectionId)throw Error("Connection context required for database access");let J=Hl6(Y.connectionId),G=Fl6(Y.connectionId);return{result:[{results:(await Ul6(Y.db,J,G,Q)).rows,success:!0}]}}})});var VZ1,Bl6,qZ1;var EZ=S(()=>{r0();Mf();VZ1=U.object({connectionId:U.string().optional().describe("Filter subscriptions by connection ID (optional)")}),Bl6=U.object({id:U.string().describe("Subscription ID"),connectionId:U.string().describe("Subscriber connection ID"),eventType:U.string().describe("Event type pattern"),publisher:U.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:U.string().nullable().describe("JSONPath filter expression"),enabled:U.boolean().describe("Whether subscription is enabled"),createdAt:U.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:U.string().datetime().describe("Updated timestamp (ISO 8601)")}),qZ1=U.object({subscriptions:U.array(Bl6).describe("List of subscriptions")})});var D90;var UZ1=S(()=>{$6();EZ();D90=e0({name:"EVENT_PUBLISH",description:"Publish an event to the event bus. Supports immediate, scheduled (deliverAt), and recurring (cron) delivery. The source is automatically set to the caller's connection ID.",inputSchema:PA,outputSchema:AA,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await Y.eventBus.publish(Q.id,J,{type:X.type,subject:X.subject,data:X.data,deliverAt:X.deliverAt,cron:X.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var N90;var zZ1=S(()=>{$6();EZ();N90=e0({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:TA,outputSchema:EA,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await Y.eventBus.subscribe(Q.id,{connectionId:J,eventType:X.eventType,publisher:X.publisher,filter:X.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var O90;var BZ1=S(()=>{$6();EZ();O90=e0({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:IA,outputSchema:RA,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await Y.eventBus.getSubscription(Q.id,X.subscriptionId);if(!G)throw Error(`Subscription not found: ${X.subscriptionId}`);if(G.connectionId!==J)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await Y.eventBus.unsubscribe(Q.id,X.subscriptionId)).success,subscriptionId:X.subscriptionId}}})});var L90;var DZ1=S(()=>{$6();EZ();L90=e0({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:SA,outputSchema:kA,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await Y.eventBus.getEvent(Q.id,X.eventId))throw Error(`Event not found: ${X.eventId}`);if(!(await Y.eventBus.cancelEvent(Q.id,X.eventId,J)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:X.eventId}}})});var w90;var NZ1=S(()=>{$6();EZ();w90=e0({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:vA,outputSchema:_A,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await Y.eventBus.ackEvent(Q.id,X.eventId,J)).success)throw Error("Failed to acknowledge event. Either the event was not found, already delivered, or you are not a subscriber.");return{success:!0,eventId:X.eventId}}})});var M90;var OZ1=S(()=>{$6();EZ();M90=e0({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:VZ1,outputSchema:qZ1,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);return await Y.access.check(),{subscriptions:(await Y.eventBus.listSubscriptions(Q.id,X.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}))}}})});var P90;var LZ1=S(()=>{$6();EZ();P90=e0({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:jA,outputSchema:CA,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=Y.connectionId;if(!J)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await Y.eventBus.syncSubscriptions(Q.id,{connectionId:J,subscriptions:X.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map((W)=>({id:W.id,connectionId:W.connectionId,eventType:W.eventType,publisher:W.publisher,filter:W.filter,enabled:W.enabled,createdAt:W.createdAt instanceof Date?W.createdAt.toISOString():W.createdAt,updatedAt:W.updatedAt instanceof Date?W.updatedAt.toISOString():W.updatedAt}))}}})});var wZ1=S(()=>{UZ1();zZ1();BZ1();DZ1();NZ1();OZ1();LZ1();EZ()});var A90,Nl6,u7,MZ1,PZ1;var gB=S(()=>{r0();A90=U.enum(["inclusion","exclusion"]).describe("Tool selection mode: 'inclusion' = include selected (default), 'exclusion' = exclude selected"),Nl6=U.object({connection_id:U.string().describe("Connection ID"),selected_tools:U.array(U.string()).nullable().describe("Selected tool names. With 'inclusion' mode: null = all tools included. With 'exclusion' mode: null = entire connection excluded"),selected_resources:U.array(U.string()).nullable().describe("Selected resource URIs or patterns. Supports * and ** wildcards for pattern matching. With 'inclusion' mode: null = all resources included."),selected_prompts:U.array(U.string()).nullable().describe("Selected prompt names. With 'inclusion' mode: null = all prompts included. With 'exclusion' mode: null = entire connection excluded.")}),u7=U.object({id:U.string().describe("Unique identifier for the virtual MCP"),title:U.string().describe("Human-readable name for the virtual MCP"),description:U.string().nullable().describe("Description of the virtual MCP"),icon:U.string().nullable().optional().describe("Icon URL for the virtual MCP"),created_at:U.string().describe("When the virtual MCP was created"),updated_at:U.string().describe("When the virtual MCP was last updated"),created_by:U.string().describe("User ID who created the virtual MCP"),updated_by:U.string().optional().describe("User ID who last updated the virtual MCP"),organization_id:U.string().describe("Organization ID this virtual MCP belongs to"),tool_selection_mode:A90.describe("Tool selection mode: 'inclusion' = include selected, 'exclusion' = exclude selected"),status:U.enum(["active","inactive"]).describe("Current status"),metadata:U.object({instructions:U.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:U.array(Nl6).describe("Connections with their selected tools (behavior depends on tool_selection_mode)")}),MZ1=U.object({title:U.string().min(1).max(255).describe("Name for the virtual MCP"),description:U.string().nullable().optional().describe("Optional description"),tool_selection_mode:A90.optional().default("inclusion").describe("Tool selection mode (defaults to 'inclusion')"),icon:U.string().nullable().optional().describe("Optional icon URL"),status:U.enum(["active","inactive"]).optional().default("active").describe("Initial status"),metadata:U.object({instructions:U.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:U.array(U.object({connection_id:U.string().describe("Connection ID"),selected_tools:U.array(U.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:U.array(U.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:U.array(U.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).describe("Connections to include/exclude (can be empty for exclusion mode)")}),PZ1=U.object({title:U.string().min(1).max(255).optional().describe("New name"),description:U.string().nullable().optional().describe("New description (null to clear)"),tool_selection_mode:A90.optional().describe("New tool selection mode"),icon:U.string().nullable().optional().describe("New icon URL (null to clear)"),status:U.enum(["active","inactive"]).optional().describe("New status"),metadata:U.object({instructions:U.string().optional().describe("MCP server instructions")}).nullable().optional().describe("Additional metadata including MCP server instructions"),connections:U.array(U.object({connection_id:U.string().describe("Connection ID"),selected_tools:U.array(U.string()).nullable().optional().describe("Selected tool names (null/undefined = all tools or full exclusion)"),selected_resources:U.array(U.string()).nullable().optional().describe("Selected resource URIs or patterns with * and ** wildcards (null/undefined = all resources)"),selected_prompts:U.array(U.string()).nullable().optional().describe("Selected prompt names (null/undefined = all prompts or full exclusion)")})).optional().describe("New connections (replaces existing)")})});var Ol6,Ll6,T90;var AZ1=S(()=>{r0();$6();gB();Ol6=U.object({data:MZ1.describe("Data for the new virtual MCP")}),Ll6=U.object({item:u7.describe("The created virtual MCP entity")}),T90=e0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:Ol6,outputSchema:Ll6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to create virtual MCP");return{item:await Y.storage.virtualMcps.create(Q.id,J,X.data)}}})});function wl6(X){let Y=[],Q=0;while(Q<X.length){let J=X[Q];if(J==="%")Y.push(".*");else if(J==="_")Y.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))Y.push("\\"+J);else Y.push(J);Q++}return Y.join("")}function mK(X){return typeof X==="string"||typeof X==="number"}function E90(X,Y){let Q=Y.split("."),J=X;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function Ml6(X,Y){return X.connections.some((Q)=>Q.connection_id===Y)}function Cf(X,Y){if("conditions"in Y){let{operator:$,conditions:K}=Y;switch($){case"and":return K.every((H)=>Cf(X,H));case"or":return K.some((H)=>Cf(X,H));case"not":return!K.every((H)=>Cf(X,H));default:return!0}}let{field:Q,operator:J,value:G}=Y,W=Q.join(".");if(W==="connection_id"){if(J!=="eq"||typeof G!=="string")return!1;return Ml6(X,G)}let Z=E90(X,W);switch(J){case"eq":return Z===G;case"gt":return mK(Z)&&mK(G)&&Z>G;case"gte":return mK(Z)&&mK(G)&&Z>=G;case"lt":return mK(Z)&&mK(G)&&Z<G;case"lte":return mK(Z)&&mK(G)&&Z<=G;case"in":return Array.isArray(G)&&G.includes(Z);case"like":if(typeof Z!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let $=wl6(G);return new RegExp(`^${$}$`,"i").test(Z);case"contains":if(typeof Z!=="string"||typeof G!=="string")return!1;return Z.toLowerCase().includes(G.toLowerCase());default:return!0}}function Pl6(X,Y){return[...X].sort((Q,J)=>{for(let G of Y){let W=G.field.join("."),Z=E90(Q,W),$=E90(J,W),K=0;if(Z==null&&$==null)continue;if(Z==null)K=G.nulls==="first"?-1:1;else if($==null)K=G.nulls==="first"?1:-1;else if(typeof Z==="string"&&typeof $==="string")K=Z.localeCompare($);else if(typeof Z==="number"&&typeof $==="number")K=Z-$;else K=String(Z).localeCompare(String($));if(K!==0)return G.direction==="desc"?-K:K}return 0})}var Al6,Tl6,j90;var TZ1=S(()=>{GG();$6();gB();Al6=nF,Tl6=iF(u7),j90=e0({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:Al6,outputSchema:Tl6,handler:async(X,Y)=>{await Y.access.check();let Q=_1(Y),J=X.where&&!("conditions"in X.where)&&X.where.field.join(".")==="connection_id"&&X.where.operator==="eq"&&typeof X.where.value==="string"?X.where.value:void 0,W=J?await Y.storage.virtualMcps.listByConnectionId(Q.id,J):await Y.storage.virtualMcps.list(Q.id);if(X.where)W=W.filter((V)=>Cf(V,X.where));if(X.orderBy&&X.orderBy.length>0)W=Pl6(W,X.orderBy);let Z=W.length,$=X.offset??0,K=X.limit??100,H=W.slice($,$+K),F=$+K<Z;return{items:H,totalCount:Z,hasMore:F}}})});var El6,jl6,C90;var EZ1=S(()=>{r0();$6();gB();El6=U.object({id:U.string().describe("ID of the virtual MCP to retrieve")}),jl6=U.object({item:u7.nullable().describe("The retrieved virtual MCP, or null if not found")}),C90=e0({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:El6,outputSchema:jl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.virtualMcps.findById(X.id);if(J&&J.organization_id!==Q.id)return{item:null};if(!J)return{item:null};return{item:J}}})});var Cl6,Il6,I90;var jZ1=S(()=>{r0();$6();gB();Cl6=U.object({id:U.string().describe("ID of the virtual MCP to update"),data:PZ1.describe("Partial virtual MCP data to update")}),Il6=U.object({item:u7.describe("The updated virtual MCP entity")}),I90=e0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:Cl6,outputSchema:Il6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to update virtual MCP");let G=await Y.storage.virtualMcps.findById(X.id);if(!G)throw Error(`Virtual MCP not found: ${X.id}`);if(G.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${X.id}`);return{item:await Y.storage.virtualMcps.update(X.id,J,X.data)}}})});var Rl6,Sl6,R90;var CZ1=S(()=>{r0();$6();gB();Rl6=U.object({id:U.string().describe("ID of the virtual MCP to delete")}),Sl6=U.object({item:u7.describe("The deleted virtual MCP entity")}),R90=e0({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:Rl6,outputSchema:Sl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.virtualMcps.findById(X.id);if(!J)throw Error(`Virtual MCP not found: ${X.id}`);if(J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${X.id}`);return await Y.storage.virtualMcps.delete(X.id),{item:J}}})});var IZ1=S(()=>{AZ1();TZ1();EZ1();jZ1();CZ1()});var vl6,S90;var RZ1=S(()=>{$6();r0();vl6=U.object({id:U.string().optional().describe("Unique log identifier"),organizationId:U.string().describe("Organization ID"),connectionId:U.string().describe("Connection ID"),connectionTitle:U.string().describe("Connection display name"),toolName:U.string().describe("Name of the tool that was called"),input:U.record(U.string(),U.unknown()).describe("Redacted tool input"),output:U.record(U.string(),U.unknown()).describe("Redacted tool output"),isError:U.boolean().describe("Whether the call resulted in an error"),errorMessage:U.string().nullish().describe("Error message if applicable"),durationMs:U.number().describe("Call duration in milliseconds"),timestamp:U.string().describe("ISO 8601 timestamp of the call"),userId:U.string().nullish().describe("User who triggered the call"),requestId:U.string().describe("Unique request identifier"),userAgent:U.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:U.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:U.record(U.string(),U.string()).nullish().describe("Custom key-value metadata attached to the log")}),S90=e0({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:U.object({connectionId:U.string().optional().describe("Filter by connection ID"),virtualMcpId:U.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:U.string().optional().describe("Filter by tool name"),isError:U.boolean().optional().describe("Filter by error status"),startDate:U.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:U.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:U.number().default(100).describe("Maximum number of results"),offset:U.number().default(0).describe("Offset for pagination"),properties:U.record(U.string(),U.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:U.array(U.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:U.record(U.string(),U.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)")}),outputSchema:U.object({logs:U.array(vl6).describe("Array of monitoring logs"),total:U.number().describe("Total number of logs matching filters"),offset:U.number().describe("Current offset for pagination"),limit:U.number().describe("Current limit for pagination")}),handler:async(X,Y)=>{let Q=_1(Y),G=X.properties||X.propertyKeys||X.propertyPatterns?{properties:X.properties,propertyKeys:X.propertyKeys,propertyPatterns:X.propertyPatterns}:void 0,W={organizationId:Q.id,connectionId:X.connectionId,virtualMcpId:X.virtualMcpId,toolName:X.toolName,isError:X.isError,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0,limit:X.limit,offset:X.offset,propertyFilters:G},Z=await Y.storage.monitoring.query(W);return{logs:Z.logs.map(($)=>({...$,timestamp:$.timestamp instanceof Date?$.timestamp.toISOString():$.timestamp})),total:Z.total,offset:X.offset,limit:X.limit}}})});var k90;var SZ1=S(()=>{$6();r0();k90=e0({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:U.object({startDate:U.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:U.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:U.object({totalCalls:U.number().describe("Total number of tool calls"),errorRate:U.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:U.number().describe("Average call duration in milliseconds"),errorRatePercent:U.string().describe("Error rate as a percentage string")}),handler:async(X,Y)=>{let J={organizationId:_1(Y).id,startDate:X.startDate?new Date(X.startDate):void 0,endDate:X.endDate?new Date(X.endDate):void 0},G=await Y.storage.monitoring.getStats(J);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var kZ1=S(()=>{RZ1();SZ1()});var v90;var vZ1=S(()=>{r0();$6();v90=e0({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:U.object({slug:U.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:U.string().min(1).max(255),description:U.string().optional()}),outputSchema:U.object({id:U.string(),name:U.string(),slug:U.string(),logo:U.string().nullable().optional(),metadata:U.any().optional(),createdAt:U.string().datetime().describe("ISO 8601 timestamp"),members:U.array(U.any()).optional()}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=d8(Y);if(!Q)throw Error("User ID required to create organization");let J=await Y.boundAuth.organization.create({name:X.name,slug:X.slug,metadata:X.description?{description:X.description}:void 0,userId:Q});if(!J)throw Error("Failed to create organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var _90;var _Z1=S(()=>{r0();$6();_90=e0({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:U.object({userId:U.string().optional()}),outputSchema:U.object({organizations:U.array(U.object({id:U.string(),name:U.string(),slug:U.string(),logo:U.string().nullable().optional(),metadata:U.any().optional(),createdAt:U.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=d8(Y),J=X.userId||Q;if(!J)throw Error("User ID required to list organizations");return{organizations:(await Y.boundAuth.organization.list(J)).map((W)=>({...W,createdAt:W.createdAt instanceof Date?W.createdAt.toISOString():W.createdAt}))}}})});var y90;var yZ1=S(()=>{r0();$6();y90=e0({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:U.object({}),outputSchema:U.object({id:U.string(),name:U.string(),slug:U.string(),logo:U.string().nullable().optional(),metadata:U.any().optional(),createdAt:U.string().datetime().describe("ISO 8601 timestamp"),members:U.array(U.any()).optional(),invitations:U.array(U.any()).optional()}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=await Y.boundAuth.organization.get();if(!Q)throw Error("No active organization found");let J=new Date,G=Q.invitations?.filter((W)=>new Date(W.expiresAt)>J);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});var b90;var bZ1=S(()=>{r0();$6();b90=e0({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:U.object({id:U.string(),slug:U.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:U.string().min(1).max(255).optional(),description:U.string().optional()}),outputSchema:U.object({id:U.string(),name:U.string(),slug:U.string(),logo:U.string().nullable().optional(),metadata:U.any().optional(),createdAt:U.string().datetime().describe("ISO 8601 timestamp")}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q={};if(X.name)Q.name=X.name;if(X.slug)Q.slug=X.slug;if(X.description)Q.metadata={description:X.description};let J=await Y.boundAuth.organization.update({organizationId:X.id,data:Q});if(!J)throw Error("Failed to update organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var f90;var fZ1=S(()=>{r0();$6();f90=e0({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:U.object({id:U.string()}),outputSchema:U.object({success:U.boolean(),id:U.string()}),handler:async(X,Y)=>{return z1(Y),await Y.access.check(),await Y.boundAuth.organization.delete(X.id),{success:!0,id:X.id}}})});var bA;var h90=S(()=>{r0();bA=U.object({title:U.string(),url:U.string(),icon:U.string()})});var x90;var hZ1=S(()=>{r0();$6();h90();x90=e0({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:U.object({}),outputSchema:U.object({organizationId:U.string(),sidebar_items:U.array(bA).nullable().optional(),enabled_plugins:U.array(U.string()).nullable().optional(),createdAt:U.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:U.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=Y.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await Y.storage.organizationSettings.get(Q);if(!J)return{organizationId:Q};return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}})});var g90;var xZ1=S(()=>{r0();$6();h90();g90=e0({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:U.object({organizationId:U.string(),sidebar_items:U.array(bA).optional(),enabled_plugins:U.array(U.string()).optional()}),outputSchema:U.object({organizationId:U.string(),sidebar_items:U.array(bA).nullable().optional(),enabled_plugins:U.array(U.string()).nullable().optional(),createdAt:U.string().datetime().describe("ISO 8601 timestamp"),updatedAt:U.string().datetime().describe("ISO 8601 timestamp")}),handler:async(X,Y)=>{if(z1(Y),await Y.access.check(),Y.organization&&Y.organization.id!==X.organizationId)throw Error("Cannot update settings for a different organization");let Q=await Y.storage.organizationSettings.upsert(X.organizationId,{sidebar_items:X.sidebar_items,enabled_plugins:X.enabled_plugins});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});var u90;var gZ1=S(()=>{r0();$6();u90=e0({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:U.object({organizationId:U.string().optional(),userId:U.string(),role:U.array(U.string())}),outputSchema:U.object({id:U.string(),organizationId:U.string(),userId:U.string(),role:U.union([U.string(),U.array(U.string())]),createdAt:U.string().datetime().describe("ISO 8601 timestamp")}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=X.organizationId||Y.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await Y.boundAuth.organization.addMember({organizationId:Q,userId:X.userId,role:X.role});if(!J)throw Error("Failed to add member");return{...J,role:J.role,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var m90;var uZ1=S(()=>{r0();$6();m90=e0({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:U.object({organizationId:U.string().optional(),memberIdOrEmail:U.string()}),outputSchema:U.object({success:U.boolean(),memberIdOrEmail:U.string()}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=X.organizationId||Y.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return await Y.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:X.memberIdOrEmail}),{success:!0,memberIdOrEmail:X.memberIdOrEmail}}})});var l90;var mZ1=S(()=>{r0();$6();l90=e0({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:U.object({limit:U.number().optional(),offset:U.number().optional()}),outputSchema:U.object({members:U.array(U.object({id:U.string(),organizationId:U.string(),userId:U.string(),role:U.string(),createdAt:U.string().datetime().describe("ISO 8601 timestamp"),user:U.object({id:U.string(),name:U.string(),email:U.string(),image:U.string().optional()}).optional()}))}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=Y.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await Y.boundAuth.organization.listMembers({organizationId:Q,limit:X.limit,offset:X.offset});return{members:(Array.isArray(J)?J:[]).map((W)=>({...W,createdAt:W.createdAt instanceof Date?W.createdAt.toISOString():W.createdAt}))}}})});var d90;var lZ1=S(()=>{r0();$6();d90=e0({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:U.object({organizationId:U.string().optional(),memberId:U.string(),role:U.array(U.string())}),outputSchema:U.object({id:U.string(),organizationId:U.string(),userId:U.string(),role:U.union([U.literal("admin"),U.literal("member"),U.literal("owner")]),createdAt:U.string().datetime().describe("ISO 8601 timestamp"),user:U.object({email:U.string(),name:U.string(),image:U.string().optional()})}),handler:async(X,Y)=>{z1(Y),await Y.access.check();let Q=X.organizationId||Y.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await Y.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:X.memberId,role:X.role});if(!J)throw Error("Failed to update member role");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var dZ1=S(()=>{vZ1();_Z1();yZ1();bZ1();fZ1();hZ1();xZ1();gZ1();uZ1();mZ1();lZ1()});var pZ1,m7,cZ1,nZ1;var aF=S(()=>{r0();pZ1=U.object({id:U.string().describe("Unique message ID"),threadId:U.string().describe("ID of the parent thread"),metadata:U.unknown().optional().describe("Optional message metadata"),parts:U.array(U.record(U.string(),U.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:U.enum(["user","assistant","system"]).describe("Message role"),createdAt:U.string().datetime().describe("Timestamp of creation"),updatedAt:U.string().datetime().describe("Timestamp of last update")}),m7=U.object({id:U.string().describe("Unique thread ID"),organizationId:U.string().describe("Organization this thread belongs to"),title:U.string().describe("Thread title"),description:U.string().nullable().describe("Thread description"),createdAt:U.string().datetime().describe("Timestamp of creation"),updatedAt:U.string().datetime().describe("Timestamp of last update"),hidden:U.boolean().optional().describe("Whether the thread is hidden"),createdBy:U.string().describe("User ID who created the thread"),updatedBy:U.string().nullable().describe("User ID who last updated the thread")}),cZ1=U.object({id:U.string().optional().describe("Optional custom ID for the thread"),title:U.string().describe("Thread title"),description:U.string().nullish().describe("Thread description")}),nZ1=U.object({title:U.string().optional().describe("New thread title"),description:U.string().nullish().describe("New thread description"),hidden:U.boolean().optional().describe("Whether the thread is hidden")})});var bl6,fl6,p90;var iZ1=S(()=>{r0();$6();aF();wZ();bl6=U.object({data:cZ1.describe("Data for the new thread (id is auto-generated if not provided)")}),fl6=U.object({item:m7.describe("The created thread entity")}),p90=e0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:bl6,outputSchema:fl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to create thread");let G=X.data.id??GX("thrd"),W=await Y.storage.threads.create({id:G,organizationId:Q.id,title:X.data.title,description:X.data.description,createdBy:J});return{item:{...W,hidden:W.hidden??!1}}}})});var hl6,xl6,c90;var aZ1=S(()=>{GG();$6();aF();r0();hl6=nF.extend({where:U.object({created_by:U.string().optional()}).optional()}),xl6=iF(m7),c90=e0({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:hl6,outputSchema:xl6,handler:async(X,Y)=>{await Y.access.check();let Q=Y.auth.user?.id;if(!Q)throw Error("User ID required to list threads");let J=_1(Y),G=X.offset??0,W=X.limit??100,{threads:Z,total:$}=await Y.storage.threads.list(J.id,Q,{limit:W,offset:G}),K=G+W<$;return{items:Z.map((H)=>({...H,hidden:H.hidden??!1})),totalCount:$,hasMore:K}}})});var gl6,n90;var rZ1=S(()=>{GG();$6();aF();gl6=LA(m7),n90=e0({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:OA,outputSchema:gl6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.threads.get(X.id);if(!J||J.organizationId!==Q.id)return{item:null};return{item:{...J,hidden:J.hidden??!1}}}})});var ul6,ml6,i90;var oZ1=S(()=>{r0();$6();aF();ul6=U.object({id:U.string().describe("ID of the thread to update"),data:nZ1.describe("Partial thread data to update")}),ml6=U.object({item:m7.describe("The updated thread entity")}),i90=e0({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:ul6,outputSchema:ml6,handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=d8(Y);if(!J)throw Error("User ID required to update thread");let{id:G,data:W}=X,Z=await Y.storage.threads.get(G);if(!Z||Z.organizationId!==Q.id)throw Error("Thread not found in organization");let $=await Y.storage.threads.update(G,{title:W.title,description:W.description,hidden:W.hidden,updatedBy:J});return{item:{...$,hidden:$.hidden??!1}}}})});var a90;var sZ1=S(()=>{GG();$6();aF();a90=e0({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:wA,outputSchema:MA(m7),handler:async(X,Y)=>{z1(Y);let Q=_1(Y);await Y.access.check();let J=await Y.storage.threads.get(X.id);if(!J)throw Error(`Thread not found: ${X.id}`);if(J.organizationId!==Q.id)throw Error(`Thread not found: ${X.id}`);return await Y.storage.threads.delete(X.id),{item:{...J,hidden:J.hidden??!1}}}})});var ll6,dl6,r90;var tZ1=S(()=>{r0();$6();aF();ll6=U.object({threadId:U.string().describe("ID of the thread to list messages for"),limit:U.number().optional().describe("Maximum number of messages to return"),offset:U.number().optional().describe("Number of messages to skip")}),dl6=U.object({items:U.array(pZ1).describe("List of thread messages"),totalCount:U.number().describe("Total number of messages in the thread"),hasMore:U.boolean().describe("Whether there are more messages available")}),r90=e0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:ll6,outputSchema:dl6,handler:async(X,Y)=>{let Q=_1(Y);await Y.access.check();let J=await Y.storage.threads.get(X.threadId);if(!J||J.organizationId!==Q.id)throw Error("Thread not found in organization");let G=X.offset??0,W=X.limit??100,{messages:Z,total:$}=await Y.storage.threads.listMessages(X.threadId,{limit:W,offset:G}),K=G+W<$;return{items:Z,totalCount:$,hasMore:K}}})});var eZ1=S(()=>{iZ1();aZ1();rZ1();oZ1();sZ1();tZ1()});var cl6,nl6,o90;var X$1=S(()=>{r0();$6();cl6=U.object({id:U.string().min(1)}),nl6=U.object({user:U.object({id:U.string(),name:U.string(),email:U.string(),image:U.string().nullable()}).nullable()}),o90=e0({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:cl6,outputSchema:nl6,handler:async(X,Y)=>{await Y.access.check(),z1(Y);let Q=d8(Y);if(!Q)throw Error("Authentication required");let J=await Y.storage.users.findById(X.id,Q);if(!J)return{user:null};return{user:{id:J.id,name:J.name,email:J.email,image:J.image??null}}}})});var Y$1=S(()=>{X$1()});var J$1={};c1(J$1,{managementMCP:()=>s90,ALL_TOOLS:()=>Q$1});var Q$1,s90=(X)=>{let Y=Q$1.map((J)=>({name:J.name,description:J.description,inputSchema:J.inputSchema,outputSchema:J.outputSchema,handler:async(G)=>{return X.access.setToolName(J.name),await J.execute(G,X)}}));return z71({name:"mcp-mesh-management",version:"1.0.0"}).withTools(Y).build()};var t90=S(()=>{B71();R71();wW1();ZZ1();FZ1();wZ1();IZ1();kZ1();dZ1();eZ1();Y$1();Q$1=[v90,_90,y90,b90,f90,x90,g90,u90,m90,l90,d90,Q90,H90,F90,U90,z90,B90,T90,j90,C90,I90,R90,HZ1,S90,k90,SY0,vY0,_Y0,kY0,D90,N90,O90,L90,w90,M90,P90,o90,eY0,X90,Y90,p90,c90,n90,i90,a90,r90]});function al6(X){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:Y}=await Promise.resolve().then(() => (t90(),J$1));return Y.map((Q)=>{return{name:Q.name,inputSchema:U.toJSONSchema(Q.inputSchema,{unrepresentable:"any"}),outputSchema:Q.outputSchema?U.toJSONSchema(Q.outputSchema,{unrepresentable:"any"}):void 0,description:Q.description}})},data:iX0(process.env.BASE_URL||"http://localhost:3000",X)},{data:nX0()},{data:cX0(X)}]}async function G$1(X,Y){try{let Q=MF(),J=new JA(process.env.ENCRYPTION_KEY||""),G=new GA(Q.db,J),W=al6(X);await Promise.all(W.map(async(Z)=>{let $=null;if(Z.permissions)$=(await WG.api.createApiKey({body:{name:`${Z.data.app_name??crypto.randomUUID()}-mcp`,userId:Y,permissions:Z.permissions,rateLimitEnabled:!1,metadata:{organization:{id:X},purpose:"default-org-connections"}}}))?.key;let K=await Z.getTools?.()??await RB({id:"pending",title:Z.data.title,connection_type:Z.data.connection_type,connection_url:Z.data.connection_url,connection_token:Z.data.connection_token,connection_headers:Z.data.connection_headers}).catch(()=>null),H=Z.data.id?Z.data.id.startsWith(`${X}_`)?Z.data.id:`${X}_${Z.data.id}`:void 0;await G.create({...Z.data,id:H,tools:K,organization_id:X,created_by:Y,connection_token:Z.data.connection_token??$})}))}catch(Q){console.error("Error creating default MCP connections:",Q)}}var W$1=S(()=>{YA();tM();XY0();YY0();Zf();r0();uB()});var e90,Z$1;var XQ0=S(()=>{e90=["owner","admin","user"],Z$1=["owner","admin"]});var rl6=(X)=>{return{defaultSSO:[{domain:X.domain,providerId:X.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:X.MS_CLIENT_ID,clientSecret:X.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${X.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:X.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified"}}}}]}},$$1=(X)=>{if(X.providerId==="microsoft")return rl6(X);throw Error(`Unsupported provider: ${X.providerId}`)};function ol6(X){return X.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function sl6(){let X=Math.floor(Math.random()*H$1.length),Y=Math.floor(Math.random()*K$1.length),Q=H$1[X]??"deco",J=K$1[Y]??"studio";return`${Q}-${J}`}var K$1,H$1,tl6,el6,If,Xd6,Yd6,Qd6,F$1,WX,V$1=void 0,Jd6,Gd6,Wd6,WG;var uB=S(()=>{md();DD0();QO0();Si();ea();aO0();fS();QL0();tM();r60();a41();W$1();XQ0();K$1=["labs","agent","studio","workspace","systems","core","cloud","works"],H$1=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"];tl6=Object.values(HO()).map((X)=>X.map((Y)=>Y.name)).flat(),el6={...wS,self:["*",...tl6]},If=W7(el6),Xd6=If.newRole({self:["*"],...mL.statements}),Yd6=If.newRole({self:["*"],...mL.statements}),Qd6=If.newRole({self:["*"],...mL.statements}),F$1=Object.values(HO()).map((X)=>X.map((Y)=>`self:${Y.name}`)).flat(),WX=oL.auth;if(WX.inviteEmailProviderId&&WX.emailProviders&&WX.emailProviders.length>0){let X=$y(WX.emailProviders,WX.inviteEmailProviderId);if(X){let Y=Zy(X);V$1=async(Q)=>{let J=Q.inviter.user?.name||Q.inviter.user?.email,G=`${process.env.BASE_URL||"http://localhost:3000"}/auth/accept-invitation?invitationId=${Q.invitation.id}`;await Y({to:Q.email,subject:`Invitation to join ${Q.organization.name}`,html:`
1185
1185
  <h2>You've been invited!</h2>
1186
1186
  <p>${J} has invited you to join <strong>${Q.organization.name}</strong>.</p>
1187
1187
  <p><a href="${G}">Click here to accept the invitation</a></p>
1188
- `})}}}Jd6=[Ca({organizationCreation:{afterCreate:async(X)=>{await G$1(X.organization.id,X.member.userId)}},ac:If,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:Z$1,resourceNameValidation:(X)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test(X)}}},roles:{user:Xd6,admin:Yd6,owner:Qd6},sendInvitationEmail:V$1}),aa({loginPage:"/login",oidcConfig:{scopes:F$1,metadata:{scopes_supported:F$1},loginPage:"/login"}}),ia({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:(X)=>{if(X.headers?.get("X-MCP-Session-Auth")==="true")return null;let Q=X.headers?.get("Authorization");if(Q?.startsWith("Bearer "))return Q.replace("Bearer ","").trim();return null},permissions:{defaultPermissions:{self:["ORGANIZATION_LIST","ORGANIZATION_GET","ORGANIZATION_MEMBER_LIST","COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","API_KEY_CREATE","API_KEY_LIST"]}},rateLimit:{enabled:!1}}),ya({defaultRole:"user",adminRoles:["admin","owner"]}),ta(),ha({jwt:{expirationTime:"5m"}}),BD0(WX.ssoConfig?$$1(WX.ssoConfig):void 0),...WX.magicLinkConfig&&WX.emailProviders&&WX.emailProviders.length>0?[sa(i41(WX.magicLinkConfig,WX.emailProviders))]:[]],Gd6=n60(),Wd6=c41(Gd6),WG=Ri({baseURL:process.env.BASE_URL||"http://localhost:3000",database:Wd6,emailAndPassword:{enabled:!0},...WX,rateLimit:{enabled:process.env.DISABLE_RATE_LIMIT!=="true",window:60,max:1e4},plugins:Jd6,databaseHooks:{user:{create:{after:async(X)=>{if(oL.autoCreateOrganizationOnSignup===!1)return;let Y=X.name?X.name.split(" ")[0]:X.email.split("@")[0],Q=3;for(let J=0;J<Q;J++){let G=`${Y} ${sl6()}`,W=ol6(G);try{await WG.api.createOrganization({body:{name:G,slug:W,userId:X.id}});return}catch(Z){if(!(Z instanceof Error&&("body"in Z)&&Z.body?.code==="ORGANIZATION_ALREADY_EXISTS")||J===Q-1){console.error("Failed to create default organization:",Z);return}}}}}}}})});async function q$1(){console.log("\uD83D\uDD10 Running Better Auth migrations...");try{let{toBeAdded:X,toBeCreated:Y,runMigrations:Q}=await KO(WG.options);if(!X.length&&!Y.length){console.log("\u2705 Better Auth schema is up to date (no migrations needed)");return}console.log("\uD83D\uDCCB Better Auth will create/update the following tables:");for(let J of[...Y,...X])console.log(` - ${J.table}`);await Q(),console.log("\u2705 Better Auth migrations completed successfully")}catch(X){console.warn("\u26A0\uFE0F Better Auth migration failed (tables may be created on first use):",X)}}var U$1=S(()=>{iZ0();uB()});var D$1={};c1(D$1,{runSeed:()=>Jx,runKyselyMigrations:()=>B$1,migrateToLatest:()=>Zd6,migrateDown:()=>$d6});import{Migrator as z$1}from"kysely";async function B$1(X){let Y=new z$1({db:X,provider:{getMigrations:()=>Promise.resolve(BT)}}),{error:Q,results:J}=await Y.migrateToLatest();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" executed successfully`);else if(G.status==="Error")console.error(`\u274C Failed to execute migration "${G.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q}async function Zd6(X){let{keepOpen:Y=!1,database:Q,skipBetterAuth:J=!1,seed:G}=X??{};if(!J&&!Q)await q$1();let W=Q??MF(),Z=async()=>{if(!Y&&!Q)console.log("\uD83D\uDD12 Closing database connection..."),await n41(W).catch(($)=>{console.warn("Warning: Error closing database:",$)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await B$1(W.db),console.log("\uD83C\uDF89 All Kysely migrations completed successfully");let $;if(G)$=await Jx(W.db,G);return await Z(),{seedResult:$}}catch($){throw await Z(),$}}async function $d6(){let X=MF(),Y=new z$1({db:X.db,provider:{getMigrations:()=>Promise.resolve(BT)}}),{error:Q,results:J}=await Y.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var N$1=S(()=>{Qx();K50();U$1();tM()});var lK;var fA=S(()=>{lK=class extends Error{res;status;constructor(X=500,Y){super(Y?.message,{cause:Y?.cause});this.res=Y?.res,this.status=X}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var O$1,Kd6,Hd6=(X,Y)=>{if(!X)return{};let Q=new Headers(X.headers);if(Y){let J=Q.get("connection");if(J){let G=J.split(",").map((Z)=>Z.trim()),W=G.filter((Z)=>!Kd6.test(Z));if(W.length>0)throw new lK(400,{message:`Invalid Connection header value: ${W.join(", ")}`});G.forEach((Z)=>{Q.delete(Z)})}}return O$1.forEach((J)=>{Q.delete(J)}),{method:X.method,body:X.body,duplex:X.body?"half":void 0,headers:Q,signal:X.signal}},Fd6=(X)=>{if(!X.headers||Array.isArray(X.headers)||X.headers instanceof Headers)return X;let Y=new Headers;for(let[Q,J]of Object.entries(X.headers))if(J==null)Y.delete(Q);else Y.set(Q,J);return X.headers=Y,X},L$1=async(X,Y)=>{let{raw:Q,customFetch:J,strictConnectionProcessing:G=!1,...W}=Y instanceof Request?{raw:Y}:Y??{},Z=new Request(X,{...Hd6(Q,G),...Fd6(W)});Z.headers.delete("accept-encoding");let $=await(J||fetch)(Z),K=new Headers($.headers);if(O$1.forEach((H)=>{K.delete(H)}),K.has("content-encoding"))K.delete("content-encoding"),K.delete("content-length");return new Response($.body,{status:$.status,statusText:$.statusText,headers:K})};var w$1=S(()=>{fA();O$1=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Kd6=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var M$1=(X)=>(Y)=>{let Q=new URL(Y.req.raw.url),J=new URL(X);return J.pathname=Q.pathname,J.search=Q.search,L$1(J,{raw:Y.req.raw,headers:{...Y.req.raw.headers}})};var P$1=S(()=>{w$1()});import{resolve as hA,dirname as Vd6,join as qd6,extname as Ud6}from"path";function Dd6(X,Y){let Q=hA(Y),J=hA(X);return J===Q||J.startsWith(Q+"/")}function Nd6({requestPath:X,clientDir:Y}){let Q=X.startsWith("/")?X.slice(1):X,J=hA(Y,Q);if(!Dd6(J,Y))return null;return J}function A$1(X,Y="../client"){let Q=new URL(X),J=Vd6(Q.pathname);return hA(J,Y)}function T$1(X={}){let{env:Y="production",devServerUrl:Q=zd6,clientDir:J=Bd6,isServerPath:G=()=>!1}=X;if(Y==="development"){let W=M$1(Q);return async function($){let K=new URL($.url);if(G(K.pathname))return null;let H={req:{raw:$,url:$.url}};return W(H)}}return async function(Z){if(Z.method!=="GET")return null;let $=new URL(Z.url),K;try{K=decodeURIComponent($.pathname)}catch{return null}if(G(K))return null;let H=Nd6({requestPath:K,clientDir:J});if(!H)return null;let F=qd6(H,"index.html"),V=hA(J,"index.html"),q=Z.headers.get("accept"),D=q?.includes("text/html")||q?.includes("*/*")&&["",".html"].includes(Ud6(H))?[F,V]:[];for(let N of[H,...D])try{let L=Bun.file(N);if(await L.exists())return new Response(L)}catch{}return null}}var zd6="http://localhost:4000",Bd6="./dist/client";var E$1=S(()=>{P$1()});function C$1(X){if(!X)return!1;try{return new URL(X).host==="api.decocms.com"&&X!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var j$1="https://api.decocms.com/mcp/registry";var YQ0=(X,Y,Q)=>{return(J,G)=>{let W=-1;return Z(0);async function Z($){if($<=W)throw Error("next() called multiple times");W=$;let K,H=!1,F;if(X[$])F=X[$][0][0],J.req.routeIndex=$;else F=$===X.length&&G||void 0;if(F)try{K=await F(J,()=>Z($+1))}catch(V){if(V instanceof Error&&Y)J.error=V,K=await Y(V,J),H=!0;else throw V}else if(J.finalized===!1&&Q)K=await Q(J);if(K&&(J.finalized===!1||H))J.res=K;return J}}};var I$1=()=>{};var R$1;var S$1=S(()=>{R$1=Symbol()});async function Od6(X,Y){let Q=await X.formData();if(Q)return Ld6(Q,Y);return{}}function Ld6(X,Y){let Q=Object.create(null);if(X.forEach((J,G)=>{if(!(Y.all||G.endsWith("[]")))Q[G]=J;else wd6(Q,G,J)}),Y.dot)Object.entries(Q).forEach(([J,G])=>{if(J.includes("."))Md6(Q,J,G),delete Q[J]});return Q}var k$1=async(X,Y=Object.create(null))=>{let{all:Q=!1,dot:J=!1}=Y,W=(X instanceof Rf?X.raw.headers:X.headers).get("Content-Type");if(W?.startsWith("multipart/form-data")||W?.startsWith("application/x-www-form-urlencoded"))return Od6(X,{all:Q,dot:J});return{}},wd6=(X,Y,Q)=>{if(X[Y]!==void 0)if(Array.isArray(X[Y]))X[Y].push(Q);else X[Y]=[X[Y],Q];else if(!Y.endsWith("[]"))X[Y]=Q;else X[Y]=[Q]},Md6=(X,Y,Q)=>{let J=X,G=Y.split(".");G.forEach((W,Z)=>{if(Z===G.length-1)J[W]=Q;else{if(!J[W]||typeof J[W]!=="object"||Array.isArray(J[W])||J[W]instanceof File)J[W]=Object.create(null);J=J[W]}})};var v$1=S(()=>{QQ0()});var GQ0=(X)=>{let Y=X.split("/");if(Y[0]==="")Y.shift();return Y},_$1=(X)=>{let{groups:Y,path:Q}=Pd6(X),J=GQ0(Q);return Ad6(J,Y)},Pd6=(X)=>{let Y=[];return X=X.replace(/\{[^}]+\}/g,(Q,J)=>{let G=`@${J}`;return Y.push([G,Q]),G}),{groups:Y,path:X}},Ad6=(X,Y)=>{for(let Q=Y.length-1;Q>=0;Q--){let[J]=Y[Q];for(let G=X.length-1;G>=0;G--)if(X[G].includes(J)){X[G]=X[G].replace(J,Y[Q][1]);break}}return X},Sf,y$1=(X,Y)=>{if(X==="*")return"*";let Q=X.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${X}#${Y}`;if(!Sf[J])if(Q[2])Sf[J]=Y&&Y[0]!==":"&&Y[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${Y})`)]:[X,Q[1],new RegExp(`^${Q[2]}$`)];else Sf[J]=[X,Q[1],!0];return Sf[J]}return null},mB=(X,Y)=>{try{return Y(X)}catch{return X.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return Y(Q)}catch{return Q}})}},Td6=(X)=>mB(X,decodeURI),WQ0=(X)=>{let Y=X.url,Q=Y.indexOf("/",Y.indexOf(":")+4),J=Q;for(;J<Y.length;J++){let G=Y.charCodeAt(J);if(G===37){let W=Y.indexOf("?",J),Z=Y.slice(Q,W===-1?void 0:W);return Td6(Z.includes("%25")?Z.replace(/%25/g,"%2525"):Z)}else if(G===63)break}return Y.slice(Q,J)},b$1=(X)=>{let Y=WQ0(X);return Y.length>1&&Y.at(-1)==="/"?Y.slice(0,-1):Y},rF=(X,Y,...Q)=>{if(Q.length)Y=rF(Y,...Q);return`${X?.[0]==="/"?"":"/"}${X}${Y==="/"?"":`${X?.at(-1)==="/"?"":"/"}${Y?.[0]==="/"?Y.slice(1):Y}`}`},kf=(X)=>{if(X.charCodeAt(X.length-1)!==63||!X.includes(":"))return null;let Y=X.split("/"),Q=[],J="";return Y.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let W=G.replace("?","");J+="/"+W,Q.push(J)}else J+="/"+G}),Q.filter((G,W,Z)=>Z.indexOf(G)===W)},JQ0=(X)=>{if(!/[%+]/.test(X))return X;if(X.indexOf("+")!==-1)X=X.replace(/\+/g," ");return X.indexOf("%")!==-1?mB(X,xA):X},f$1=(X,Y,Q)=>{let J;if(!Q&&Y&&!/[%+]/.test(Y)){let Z=X.indexOf("?",8);if(Z===-1)return;if(!X.startsWith(Y,Z+1))Z=X.indexOf(`&${Y}`,Z+1);while(Z!==-1){let $=X.charCodeAt(Z+Y.length+1);if($===61){let K=Z+Y.length+2,H=X.indexOf("&",K);return JQ0(X.slice(K,H===-1?void 0:H))}else if($==38||isNaN($))return"";Z=X.indexOf(`&${Y}`,Z+1)}if(J=/[%+]/.test(X),!J)return}let G={};J??=/[%+]/.test(X);let W=X.indexOf("?",8);while(W!==-1){let Z=X.indexOf("&",W+1),$=X.indexOf("=",W);if($>Z&&Z!==-1)$=-1;let K=X.slice(W+1,$===-1?Z===-1?void 0:Z:$);if(J)K=JQ0(K);if(W=Z,K==="")continue;let H;if($===-1)H="";else if(H=X.slice($+1,Z===-1?void 0:Z),J)H=JQ0(H);if(Q){if(!(G[K]&&Array.isArray(G[K])))G[K]=[];G[K].push(H)}else G[K]??=H}return Y?G[Y]:G},h$1,x$1=(X,Y)=>{return f$1(X,Y,!0)},xA;var oF=S(()=>{Sf={},h$1=f$1,xA=decodeURIComponent});var g$1=(X)=>mB(X,xA),Rf;var QQ0=S(()=>{fA();S$1();v$1();oF();Rf=class{raw;#X;#Y;routeIndex=0;path;bodyCache={};constructor(X,Y="/",Q=[[]]){this.raw=X,this.path=Y,this.#Y=Q,this.#X={}}param(X){return X?this.#Q(X):this.#J()}#Q(X){let Y=this.#Y[0][this.routeIndex][1][X],Q=this.#W(Y);return Q&&/\%/.test(Q)?g$1(Q):Q}#J(){let X={},Y=Object.keys(this.#Y[0][this.routeIndex][1]);for(let Q of Y){let J=this.#W(this.#Y[0][this.routeIndex][1][Q]);if(J!==void 0)X[Q]=/\%/.test(J)?g$1(J):J}return X}#W(X){return this.#Y[1]?this.#Y[1][X]:X}query(X){return h$1(this.url,X)}queries(X){return x$1(this.url,X)}header(X){if(X)return this.raw.headers.get(X)??void 0;let Y={};return this.raw.headers.forEach((Q,J)=>{Y[J]=Q}),Y}async parseBody(X){return this.bodyCache.parsedBody??=await k$1(this,X)}#G=(X)=>{let{bodyCache:Y,raw:Q}=this,J=Y[X];if(J)return J;let G=Object.keys(Y)[0];if(G)return Y[G].then((W)=>{if(G==="json")W=JSON.stringify(W);return new Response(W)[X]()});return Y[X]=Q[X]()};json(){return this.#G("text").then((X)=>JSON.parse(X))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(X,Y){this.#X[X]=Y}valid(X){return this.#X[X]}get url(){return this.raw.url}get method(){return this.raw.method}get[R$1](){return this.#Y}get matchedRoutes(){return this.#Y[0].map(([[,X]])=>X)}get routePath(){return this.#Y[0].map(([[,X]])=>X)[this.routeIndex].path}}});var vf,Ed6=(X,Y)=>{let Q=new String(X);return Q.isEscaped=!0,Q.callbacks=Y,Q},gA=async(X,Y,Q,J,G)=>{if(typeof X==="object"&&!(X instanceof String)){if(!(X instanceof Promise))X=X.toString();if(X instanceof Promise)X=await X}let W=X.callbacks;if(!W?.length)return Promise.resolve(X);if(G)G[0]+=X;else G=[X];let Z=Promise.all(W.map(($)=>$({phase:Y,buffer:G,context:J}))).then(($)=>Promise.all($.filter(Boolean).map((K)=>gA(K,Y,!1,J,G))).then(()=>G[0]));if(Q)return Ed6(await Z,W);else return Z};var ZQ0=S(()=>{vf={Stringify:1,BeforeStream:2,Stream:3}});var u$1="text/plain; charset=UTF-8",$Q0=(X,Y)=>{return{"Content-Type":X,...Y}},m$1=class{#X;#Y;env={};#Q;finalized=!1;error;#J;#W;#G;#$;#Z;#H;#K;#V;#q;constructor(X,Y){if(this.#X=X,Y)this.#W=Y.executionCtx,this.env=Y.env,this.#H=Y.notFoundHandler,this.#q=Y.path,this.#V=Y.matchResult}get req(){return this.#Y??=new Rf(this.#X,this.#q,this.#V),this.#Y}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#K??=new Headers})}set res(X){if(this.#G&&X){X=new Response(X.body,X);for(let[Y,Q]of this.#G.headers.entries()){if(Y==="content-type")continue;if(Y==="set-cookie"){let J=this.#G.headers.getSetCookie();X.headers.delete("set-cookie");for(let G of J)X.headers.append("set-cookie",G)}else X.headers.set(Y,Q)}}this.#G=X,this.finalized=!0}render=(...X)=>{return this.#Z??=(Y)=>this.html(Y),this.#Z(...X)};setLayout=(X)=>this.#$=X;getLayout=()=>this.#$;setRenderer=(X)=>{this.#Z=X};header=(X,Y,Q)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#K??=new Headers;if(Y===void 0)J.delete(X);else if(Q?.append)J.append(X,Y);else J.set(X,Y)};status=(X)=>{this.#J=X};set=(X,Y)=>{this.#Q??=new Map,this.#Q.set(X,Y)};get=(X)=>{return this.#Q?this.#Q.get(X):void 0};get var(){if(!this.#Q)return{};return Object.fromEntries(this.#Q)}#F(X,Y,Q){let J=this.#G?new Headers(this.#G.headers):this.#K??new Headers;if(typeof Y==="object"&&"headers"in Y){let W=Y.headers instanceof Headers?Y.headers:new Headers(Y.headers);for(let[Z,$]of W)if(Z.toLowerCase()==="set-cookie")J.append(Z,$);else J.set(Z,$)}if(Q)for(let[W,Z]of Object.entries(Q))if(typeof Z==="string")J.set(W,Z);else{J.delete(W);for(let $ of Z)J.append(W,$)}let G=typeof Y==="number"?Y:Y?.status??this.#J;return new Response(X,{status:G,headers:J})}newResponse=(...X)=>this.#F(...X);body=(X,Y,Q)=>this.#F(X,Y,Q);text=(X,Y,Q)=>{return!this.#K&&!this.#J&&!Y&&!Q&&!this.finalized?new Response(X):this.#F(X,Y,$Q0(u$1,Q))};json=(X,Y,Q)=>{return this.#F(JSON.stringify(X),Y,$Q0("application/json",Q))};html=(X,Y,Q)=>{let J=(G)=>this.#F(G,Y,$Q0("text/html; charset=UTF-8",Q));return typeof X==="object"?gA(X,vf.Stringify,!1,{}).then(J):J(X)};redirect=(X,Y)=>{let Q=String(X);return this.header("Location",!/[^\x00-\xFF]/.test(Q)?Q:encodeURI(Q)),this.newResponse(null,Y??302)};notFound=()=>{return this.#H??=()=>new Response,this.#H(this)}};var _f=S(()=>{QQ0();ZQ0()});var X8="ALL",l$1="all",d$1,yf="Can not add a route since the matcher is already built.",bf;var sF=S(()=>{d$1=["get","post","put","delete","options","patch"],bf=class extends Error{}});var p$1="__COMPOSED_HANDLER";var c$1=()=>{};var jd6=(X)=>{return X.text("404 Not Found",404)},n$1=(X,Y)=>{if("getResponse"in X){let Q=X.getResponse();return Y.newResponse(Q.body,Q)}return console.error(X),Y.text("Internal Server Error",500)},i$1=class X{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#X="/";routes=[];constructor(Y={}){[...d$1,l$1].forEach((W)=>{this[W]=(Z,...$)=>{if(typeof Z==="string")this.#X=Z;else this.#J(W,this.#X,Z);return $.forEach((K)=>{this.#J(W,this.#X,K)}),this}}),this.on=(W,Z,...$)=>{for(let K of[Z].flat()){this.#X=K;for(let H of[W].flat())$.map((F)=>{this.#J(H.toUpperCase(),this.#X,F)})}return this},this.use=(W,...Z)=>{if(typeof W==="string")this.#X=W;else this.#X="*",Z.unshift(W);return Z.forEach(($)=>{this.#J(X8,this.#X,$)}),this};let{strict:J,...G}=Y;Object.assign(this,G),this.getPath=J??!0?Y.getPath??WQ0:b$1}#Y(){let Y=new X({router:this.router,getPath:this.getPath});return Y.errorHandler=this.errorHandler,Y.#Q=this.#Q,Y.routes=this.routes,Y}#Q=jd6;errorHandler=n$1;route(Y,Q){let J=this.basePath(Y);return Q.routes.map((G)=>{let W;if(Q.errorHandler===n$1)W=G.handler;else W=async(Z,$)=>(await YQ0([],Q.errorHandler)(Z,()=>G.handler(Z,$))).res,W[p$1]=G.handler;J.#J(G.method,G.path,W)}),this}basePath(Y){let Q=this.#Y();return Q._basePath=rF(this._basePath,Y),Q}onError=(Y)=>{return this.errorHandler=Y,this};notFound=(Y)=>{return this.#Q=Y,this};mount(Y,Q,J){let G,W;if(J)if(typeof J==="function")W=J;else if(W=J.optionHandler,J.replaceRequest===!1)G=(K)=>K;else G=J.replaceRequest;let Z=W?(K)=>{let H=W(K);return Array.isArray(H)?H:[H]}:(K)=>{let H=void 0;try{H=K.executionCtx}catch{}return[K.env,H]};G||=(()=>{let K=rF(this._basePath,Y),H=K==="/"?0:K.length;return(F)=>{let V=new URL(F.url);return V.pathname=V.pathname.slice(H)||"/",new Request(V,F)}})();let $=async(K,H)=>{let F=await Q(G(K.req.raw),...Z(K));if(F)return F;await H()};return this.#J(X8,rF(Y,"*"),$),this}#J(Y,Q,J){Y=Y.toUpperCase(),Q=rF(this._basePath,Q);let G={basePath:this._basePath,path:Q,method:Y,handler:J};this.router.add(Y,Q,[J,G]),this.routes.push(G)}#W(Y,Q){if(Y instanceof Error)return this.errorHandler(Y,Q);throw Y}#G(Y,Q,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(Y,Q,J,"GET")))();let W=this.getPath(Y,{env:J}),Z=this.router.match(G,W),$=new m$1(Y,{path:W,matchResult:Z,env:J,executionCtx:Q,notFoundHandler:this.#Q});if(Z[0].length===1){let H;try{H=Z[0][0][0][0]($,async()=>{$.res=await this.#Q($)})}catch(F){return this.#W(F,$)}return H instanceof Promise?H.then((F)=>F||($.finalized?$.res:this.#Q($))).catch((F)=>this.#W(F,$)):H??this.#Q($)}let K=YQ0(Z[0],this.errorHandler,this.#Q);return(async()=>{try{let H=await K($);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#W(H,$)}})()}fetch=(Y,...Q)=>{return this.#G(Y,Q[1],Q[0],Y.method)};request=(Y,Q,J,G)=>{if(Y instanceof Request)return this.fetch(Q?new Request(Y,Q):Y,J,G);return Y=Y.toString(),this.fetch(new Request(/^https?:\/\//.test(Y)?Y:`http://localhost${rF("/",Y)}`,Q),J,G)};fire=()=>{addEventListener("fetch",(Y)=>{Y.respondWith(this.#G(Y.request,Y,void 0,Y.request.method))})}};var a$1=S(()=>{I$1();_f();sF();c$1();oF()});function ff(X,Y){let Q=this.buildAllMatchers(),J=(G,W)=>{let Z=Q[G]||Q[X8],$=Z[2][W];if($)return $;let K=W.match(Z[0]);if(!K)return[[],uA];let H=K.indexOf("",1);return[Z[1][H],K]};return this.match=J,J(X,Y)}var uA;var KQ0=S(()=>{sF();uA=[]});function Id6(X,Y){if(X.length===1)return Y.length===1?X<Y?-1:1:-1;if(Y.length===1)return 1;if(X===mA||X===lA)return 1;else if(Y===mA||Y===lA)return-1;if(X===hf)return 1;else if(Y===hf)return-1;return X.length===Y.length?X<Y?-1:1:Y.length-X.length}var hf="[^/]+",mA=".*",lA="(?:|/.*)",tF,Cd6,r$1=class X{#X;#Y;#Q=Object.create(null);insert(Y,Q,J,G,W){if(Y.length===0){if(this.#X!==void 0)throw tF;if(W)return;this.#X=Q;return}let[Z,...$]=Y,K=Z==="*"?$.length===0?["","",mA]:["","",hf]:Z==="/*"?["","",lA]:Z.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(K){let F=K[1],V=K[2]||hf;if(F&&K[2]){if(V===".*")throw tF;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw tF}if(H=this.#Q[V],!H){if(Object.keys(this.#Q).some((q)=>q!==mA&&q!==lA))throw tF;if(W)return;if(H=this.#Q[V]=new X,F!=="")H.#Y=G.varIndex++}if(!W&&F!=="")J.push([F,H.#Y])}else if(H=this.#Q[Z],!H){if(Object.keys(this.#Q).some((F)=>F.length>1&&F!==mA&&F!==lA))throw tF;if(W)return;H=this.#Q[Z]=new X}H.insert($,Q,J,G,W)}buildRegExpStr(){let Q=Object.keys(this.#Q).sort(Id6).map((J)=>{let G=this.#Q[J];return(typeof G.#Y==="number"?`(${J})@${G.#Y}`:Cd6.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#X==="number")Q.unshift(`#${this.#X}`);if(Q.length===0)return"";if(Q.length===1)return Q[0];return"(?:"+Q.join("|")+")"}};var HQ0=S(()=>{tF=Symbol(),Cd6=new Set(".\\+*[^]$()")});var o$1=class{#X={varIndex:0};#Y=new r$1;insert(X,Y,Q){let J=[],G=[];for(let Z=0;;){let $=!1;if(X=X.replace(/\{[^}]+\}/g,(K)=>{let H=`@\\${Z}`;return G[Z]=[H,K],Z++,$=!0,H}),!$)break}let W=X.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let Z=G.length-1;Z>=0;Z--){let[$]=G[Z];for(let K=W.length-1;K>=0;K--)if(W[K].indexOf($)!==-1){W[K]=W[K].replace($,G[Z][1]);break}}return this.#Y.insert(W,Y,J,this.#X,Q),J}buildRegExp(){let X=this.#Y.buildRegExpStr();if(X==="")return[/^$/,[],[]];let Y=0,Q=[],J=[];return X=X.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,W,Z)=>{if(W!==void 0)return Q[++Y]=Number(W),"$()";if(Z!==void 0)return J[Number(Z)]=++Y,"";return""}),[new RegExp(`^${X}`),Q,J]}};var s$1=S(()=>{HQ0()});function e$1(X){return t$1[X]??=new RegExp(X==="*"?"":`^${X.replace(/\/\*$|([.\\+*[^\]$()])/g,(Y,Q)=>Q?`\\${Q}`:"(?:|/.*)")}$`)}function Sd6(){t$1=Object.create(null)}function kd6(X){let Y=new o$1,Q=[];if(X.length===0)return Rd6;let J=X.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,F],[V,q])=>H?1:V?-1:F.length-q.length),G=Object.create(null);for(let H=0,F=-1,V=J.length;H<V;H++){let[q,z,D]=J[H];if(q)G[z]=[D.map(([L])=>[L,Object.create(null)]),uA];else F++;let N;try{N=Y.insert(z,F,q)}catch(L){throw L===tF?new bf(z):L}if(q)continue;Q[F]=D.map(([L,w])=>{let C=Object.create(null);w-=1;for(;w>=0;w--){let[T,A]=N[w];C[T]=A}return[L,C]})}let[W,Z,$]=Y.buildRegExp();for(let H=0,F=Q.length;H<F;H++)for(let V=0,q=Q[H].length;V<q;V++){let z=Q[H][V]?.[1];if(!z)continue;let D=Object.keys(z);for(let N=0,L=D.length;N<L;N++)z[D[N]]=$[z[D[N]]]}let K=[];for(let H in Z)K[H]=Q[Z[H]];return[W,K,G]}function lB(X,Y){if(!X)return;for(let Q of Object.keys(X).sort((J,G)=>G.length-J.length))if(e$1(Q).test(Y))return[...X[Q]];return}var Rd6,t$1,xf=class{name="RegExpRouter";#X;#Y;constructor(){this.#X={[X8]:Object.create(null)},this.#Y={[X8]:Object.create(null)}}add(X,Y,Q){let J=this.#X,G=this.#Y;if(!J||!G)throw Error(yf);if(!J[X])[J,G].forEach(($)=>{$[X]=Object.create(null),Object.keys($[X8]).forEach((K)=>{$[X][K]=[...$[X8][K]]})});if(Y==="/*")Y="*";let W=(Y.match(/\/:/g)||[]).length;if(/\*$/.test(Y)){let $=e$1(Y);if(X===X8)Object.keys(J).forEach((K)=>{J[K][Y]||=lB(J[K],Y)||lB(J[X8],Y)||[]});else J[X][Y]||=lB(J[X],Y)||lB(J[X8],Y)||[];Object.keys(J).forEach((K)=>{if(X===X8||X===K)Object.keys(J[K]).forEach((H)=>{$.test(H)&&J[K][H].push([Q,W])})}),Object.keys(G).forEach((K)=>{if(X===X8||X===K)Object.keys(G[K]).forEach((H)=>$.test(H)&&G[K][H].push([Q,W]))});return}let Z=kf(Y)||[Y];for(let $=0,K=Z.length;$<K;$++){let H=Z[$];Object.keys(G).forEach((F)=>{if(X===X8||X===F)G[F][H]||=[...lB(J[F],H)||lB(J[X8],H)||[]],G[F][H].push([Q,W-K+$+1])})}}match=ff;buildAllMatchers(){let X=Object.create(null);return Object.keys(this.#Y).concat(Object.keys(this.#X)).forEach((Y)=>{X[Y]||=this.#Q(Y)}),this.#X=this.#Y=void 0,Sd6(),X}#Q(X){let Y=[],Q=X===X8;if([this.#X,this.#Y].forEach((J)=>{let G=J[X]?Object.keys(J[X]).map((W)=>[W,J[X][W]]):[];if(G.length!==0)Q||=!0,Y.push(...G);else if(X!==X8)Y.push(...Object.keys(J[X8]).map((W)=>[W,J[X8][W]]))}),!Q)return null;else return kd6(Y)}};var FQ0=S(()=>{sF();oF();KQ0();HQ0();s$1();Rd6=[/^$/,[],Object.create(null)],t$1=Object.create(null)});var vd6=class{name="PreparedRegExpRouter";#X;#Y;constructor(X,Y){this.#X=X,this.#Y=Y}#Q(X,Y){let Q=this.#X[X];Q[1].forEach((J)=>J&&J.push(Y)),Object.values(Q[2]).forEach((J)=>J[0].push(Y))}#J(X,Y,Q,J,G){let W=this.#X[X];if(!G)W[2][Y][0].push([Q,{}]);else J.forEach((Z)=>{if(typeof Z==="number")W[1][Z].push([Q,G]);else W[2][Z||Y][0].push([Q,G])})}add(X,Y,Q){if(!this.#X[X]){let G=this.#X[X8],W={};for(let Z in G[2])W[Z]=[G[2][Z][0].slice(),uA];this.#X[X]=[G[0],G[1].map((Z)=>Array.isArray(Z)?Z.slice():0),W]}if(Y==="/*"||Y==="*"){let G=[Q,{}];if(X===X8)for(let W in this.#X)this.#Q(W,G);else this.#Q(X,G);return}let J=this.#Y[Y];if(!J)throw Error(`Path ${Y} is not registered`);for(let[G,W]of J)if(X===X8)for(let Z in this.#X)this.#J(Z,Y,Q,G,W);else this.#J(X,Y,Q,G,W)}buildAllMatchers(){return this.#X}match=ff};var XK1=S(()=>{sF();KQ0();FQ0()});var YK1=S(()=>{FQ0();XK1()});var VQ0=class{name="SmartRouter";#X=[];#Y=[];constructor(X){this.#X=X.routers}add(X,Y,Q){if(!this.#Y)throw Error(yf);this.#Y.push([X,Y,Q])}match(X,Y){if(!this.#Y)throw Error("Fatal error");let Q=this.#X,J=this.#Y,G=Q.length,W=0,Z;for(;W<G;W++){let $=Q[W];try{for(let K=0,H=J.length;K<H;K++)$.add(...J[K]);Z=$.match(X,Y)}catch(K){if(K instanceof bf)continue;throw K}this.match=$.match.bind($),this.#X=[$],this.#Y=void 0;break}if(W===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,Z}get activeRouter(){if(this.#Y||this.#X.length!==1)throw Error("No active router has been determined yet.");return this.#X[0]}};var QK1=S(()=>{sF()});var JK1=S(()=>{QK1()});var dA,GK1=class X{#X;#Y;#Q;#J=0;#W=dA;constructor(Y,Q,J){if(this.#Y=J||Object.create(null),this.#X=[],Y&&Q){let G=Object.create(null);G[Y]={handler:Q,possibleKeys:[],score:0},this.#X=[G]}this.#Q=[]}insert(Y,Q,J){this.#J=++this.#J;let G=this,W=_$1(Q),Z=[];for(let $=0,K=W.length;$<K;$++){let H=W[$],F=W[$+1],V=y$1(H,F),q=Array.isArray(V)?V[0]:H;if(q in G.#Y){if(G=G.#Y[q],V)Z.push(V[1]);continue}if(G.#Y[q]=new X,V)G.#Q.push(V),Z.push(V[1]);G=G.#Y[q]}return G.#X.push({[Y]:{handler:J,possibleKeys:Z.filter(($,K,H)=>H.indexOf($)===K),score:this.#J}}),G}#G(Y,Q,J,G){let W=[];for(let Z=0,$=Y.#X.length;Z<$;Z++){let K=Y.#X[Z],H=K[Q]||K[X8],F={};if(H!==void 0){if(H.params=Object.create(null),W.push(H),J!==dA||G&&G!==dA)for(let V=0,q=H.possibleKeys.length;V<q;V++){let z=H.possibleKeys[V],D=F[H.score];H.params[z]=G?.[z]&&!D?G[z]:J[z]??G?.[z],F[H.score]=!0}}}return W}search(Y,Q){let J=[];this.#W=dA;let W=[this],Z=GQ0(Q),$=[];for(let K=0,H=Z.length;K<H;K++){let F=Z[K],V=K===H-1,q=[];for(let z=0,D=W.length;z<D;z++){let N=W[z],L=N.#Y[F];if(L)if(L.#W=N.#W,V){if(L.#Y["*"])J.push(...this.#G(L.#Y["*"],Y,N.#W));J.push(...this.#G(L,Y,N.#W))}else q.push(L);for(let w=0,C=N.#Q.length;w<C;w++){let T=N.#Q[w],A=N.#W===dA?{}:{...N.#W};if(T==="*"){let b=N.#Y["*"];if(b)J.push(...this.#G(b,Y,N.#W)),b.#W=A,q.push(b);continue}let[P,j,R]=T;if(!F&&!(R instanceof RegExp))continue;let v=N.#Y[P],y=Z.slice(K).join("/");if(R instanceof RegExp){let b=R.exec(y);if(b){if(A[j]=b[0],J.push(...this.#G(v,Y,N.#W,A)),Object.keys(v.#Y).length){v.#W=A;let f=b[0].match(/\//)?.length??0;($[f]||=[]).push(v)}continue}}if(R===!0||R.test(F))if(A[j]=F,V){if(J.push(...this.#G(v,Y,A,N.#W)),v.#Y["*"])J.push(...this.#G(v.#Y["*"],Y,A,N.#W))}else v.#W=A,q.push(v)}}W=q.concat($.shift()??[])}if(J.length>1)J.sort((K,H)=>{return K.score-H.score});return[J.map(({handler:K,params:H})=>[K,H])]}};var WK1=S(()=>{sF();oF();dA=Object.create(null)});var qQ0=class{name="TrieRouter";#X;constructor(){this.#X=new GK1}add(X,Y,Q){let J=kf(Y);if(J){for(let G=0,W=J.length;G<W;G++)this.#X.insert(X,J[G],Q);return}this.#X.insert(X,Y,Q)}match(X,Y){return this.#X.search(X,Y)}};var ZK1=S(()=>{oF();WK1()});var $K1=S(()=>{ZK1()});var ZX;var KK1=S(()=>{a$1();YK1();JK1();$K1();ZX=class extends i$1{constructor(X={}){super(X);this.router=X.router??new VQ0({routers:[new xf,new qQ0]})}}});var ZG=S(()=>{KK1()});var _d6,yd6,UQ0=(X,Y)=>{if(Y&&X.indexOf(Y)===-1)return{};let Q=X.trim().split(";"),J={};for(let G of Q){G=G.trim();let W=G.indexOf("=");if(W===-1)continue;let Z=G.substring(0,W).trim();if(Y&&Y!==Z||!_d6.test(Z))continue;let $=G.substring(W+1).trim();if($.startsWith('"')&&$.endsWith('"'))$=$.slice(1,-1);if(yd6.test($)){if(J[Z]=$.indexOf("%")!==-1?mB($,xA):$,Y)break}}return J};var HK1=S(()=>{oF();_d6=/^[\w!#$%&'*.^`|~+-]+$/,yd6=/^[ !#-:<-[\]-~]*$/});var FK1=(X,Y,Q)=>{let J=X.req.raw.headers.get("Cookie");if(typeof Y==="string"){if(!J)return;let W=Y;if(Q==="secure")W="__Secure-"+Y;else if(Q==="host")W="__Host-"+Y;return UQ0(J,W)[W]}if(!J)return{};return UQ0(J)};var VK1=S(()=>{HK1()});var qK1=(X)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...X},J=((W)=>{if(typeof W==="string")if(W==="*")return()=>W;else return(Z)=>W===Z?Z:null;else if(typeof W==="function")return W;else return(Z)=>W.includes(Z)?Z:null})(Q.origin),G=((W)=>{if(typeof W==="function")return W;else if(Array.isArray(W))return()=>W;else return()=>[]})(Q.allowMethods);return async function(Z,$){function K(F,V){Z.res.headers.set(F,V)}let H=await J(Z.req.header("origin")||"",Z);if(H)K("Access-Control-Allow-Origin",H);if(Q.credentials)K("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)K("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(Z.req.method==="OPTIONS"){if(Q.origin!=="*")K("Vary","Origin");if(Q.maxAge!=null)K("Access-Control-Max-Age",Q.maxAge.toString());let F=await G(Z.req.header("origin")||"",Z);if(F.length)K("Access-Control-Allow-Methods",F.join(","));let V=Q.allowHeaders;if(!V?.length){let q=Z.req.header("Access-Control-Request-Headers");if(q)V=q.split(/\s*,\s*/)}if(V?.length)K("Access-Control-Allow-Headers",V.join(",")),Z.res.headers.append("Vary","Access-Control-Request-Headers");return Z.res.headers.delete("Content-Length"),Z.res.headers.delete("Content-Type"),new Response(null,{headers:Z.res.headers,status:204,statusText:"No Content"})}if(await $(),Q.origin!=="*")Z.header("Vary","Origin",{append:!0})}};var UK1=()=>{};function bd6(){let{process:X,Deno:Y}=globalThis;return!(typeof Y?.noColor==="boolean"?Y.noColor:X!==void 0?"NO_COLOR"in X?.env:!1)}async function zK1(){let{navigator:X}=globalThis,Y="cloudflare:workers";return!(X!==void 0&&X.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!bd6())}var BK1=()=>{};async function DK1(X,Y,Q,J,G=0,W){let Z=Y==="<--"?`${Y} ${Q} ${J}`:`${Y} ${Q} ${J} ${await xd6(G)} ${W}`;X(Z)}var fd6=(X)=>{let[Y,Q]=[",","."];return X.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Y)).join(Q)},hd6=(X)=>{let Y=Date.now()-X;return fd6([Y<1000?Y+"ms":Math.round(Y/1000)+"s"])},xd6=async(X)=>{if(await zK1())switch(X/100|0){case 5:return`\x1B[31m${X}\x1B[0m`;case 4:return`\x1B[33m${X}\x1B[0m`;case 3:return`\x1B[36m${X}\x1B[0m`;case 2:return`\x1B[32m${X}\x1B[0m`}return`${X}`},NK1=(X=console.log)=>{return async function(Q,J){let{method:G,url:W}=Q.req,Z=W.slice(W.indexOf("/",8));await DK1(X,"<--",G,Z);let $=Date.now();await J(),await DK1(X,"-->",G,Z,Q.res.status,hd6($))}};var OK1=S(()=>{BK1()});var LK1=()=>{try{return performance.now()}catch{}return Date.now()},zQ0=(X)=>{let Y={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...X};return async function(J,G){let W=[],Z=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:W,timers:Z}),Y.total)dB(J,"total",Y.totalDescription);if(await G(),Y.total)eF(J,"total");if(Y.autoEnd)Z.forEach((K,H)=>eF(J,H));if(typeof Y.enabled==="function"?Y.enabled(J):Y.enabled){J.res.headers.append("Server-Timing",W.join(","));let K=typeof Y.crossOrigin==="function"?Y.crossOrigin(J):Y.crossOrigin;if(K)J.res.headers.append("Timing-Allow-Origin",typeof K==="string"?K:"*")}}},wK1=(X,Y,Q,J,G)=>{let W=X.get("metric");if(!W){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof Q==="number"){let Z=Q.toFixed(G||1),$=J?`${Y};dur=${Z};desc="${J}"`:`${Y};dur=${Z}`;W.headers.push($)}else{let Z=Q?`${Y};desc="${Q}"`:`${Y}`;W.headers.push(Z)}},dB=(X,Y,Q)=>{let J=X.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(Y,{description:Q,start:LK1()})},eF=(X,Y,Q)=>{let J=X.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(Y);if(!G){console.warn(`Timer "${Y}" does not exist!`);return}let{description:W,start:Z}=G,$=LK1()-Z;wK1(X,Y,$,W,Q),J.timers.delete(Y)};var MK1=S(()=>{_f()});var PK1=S(()=>{MK1()});import{randomBytes as gd6}from"crypto";function AK1(){if(pA)return pA;let X=process.env.MESH_JWT_SECRET??WX.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(X)pA=new TextEncoder().encode(X);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),pA=new Uint8Array(gd6(32));return pA}async function TK1(X,Y="5m"){let Q=AK1();return await new n9(X).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(Y).sign(Q)}async function EK1(X){try{let Y=AK1(),{payload:Q}=await $8(X,Y);return Q}catch{return}}var pA=null;var BQ0=S(()=>{SQ();uB()});class DQ0{db;constructor(X){this.db=X}async create(X,Y,Q){let J=GX("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:X,created_by:Y,title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata?JSON.stringify(Q.metadata):null,tools:null,bindings:null,status:Q.status??"active",created_at:G,updated_at:G}).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((Z)=>({id:GX("agg"),parent_connection_id:J,child_connection_id:Z.connection_id,selected_tools:Z.selected_tools?JSON.stringify(Z.selected_tools):null,selected_resources:Z.selected_resources?JSON.stringify(Z.selected_resources):null,selected_prompts:Z.selected_prompts?JSON.stringify(Z.selected_prompts):null,created_at:G}))).execute();let W=await this.findById(J);if(!W)throw Error(`Failed to create virtual MCP with id: ${J}`);return W}async findById(X){return this.findByIdInternal(this.db,X)}async findByIdInternal(X,Y){let Q=await X.selectFrom("connections").selectAll().where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return null;let J=await X.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",Y).execute();return this.deserializeVirtualMCPEntity(Q,J)}async list(X){let Y=await this.db.selectFrom("connections").selectAll().where("organization_id","=",X).where("connection_type","=","VIRTUAL").execute(),Q=Y.map((W)=>W.id);if(Q.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",Q).execute(),G=new Map;for(let W of J){let Z=G.get(W.parent_connection_id)??[];Z.push(W),G.set(W.parent_connection_id,Z)}return Y.map((W)=>this.deserializeVirtualMCPEntity(W,G.get(W.id)??[]))}async listByConnectionId(X,Y){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",Y).execute()).map((K)=>K.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",X).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let W=G.map((K)=>K.id),Z=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",W).execute(),$=new Map;for(let K of Z){let H=$.get(K.parent_connection_id)??[];H.push(K),$.set(K.parent_connection_id,H)}return G.map((K)=>this.deserializeVirtualMCPEntity(K,$.get(K.id)??[]))}async update(X,Y,Q){let J=new Date().toISOString(),G={updated_at:J};if(Q.title!==void 0)G.title=Q.title;if(Q.description!==void 0)G.description=Q.description;if(Q.icon!==void 0)G.icon=Q.icon;if(Q.status!==void 0)G.status=Q.status;if(Q.metadata!==void 0)G.metadata=Q.metadata?JSON.stringify(Q.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",X).where("connection_type","=","VIRTUAL").execute(),Q.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",X).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((Z)=>({id:GX("agg"),parent_connection_id:X,child_connection_id:Z.connection_id,selected_tools:Z.selected_tools?JSON.stringify(Z.selected_tools):null,selected_resources:Z.selected_resources?JSON.stringify(Z.selected_resources):null,selected_prompts:Z.selected_prompts?JSON.stringify(Z.selected_prompts):null,created_at:J}))).execute()}let W=await this.findById(X);if(!W)throw Error("Virtual MCP not found after update");return W}async delete(X){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",X).execute(),await this.db.deleteFrom("connections").where("id","=",X).where("connection_type","=","VIRTUAL").execute()}deserializeVirtualMCPEntity(X,Y){let Q=X.created_at instanceof Date?X.created_at.toISOString():X.created_at,J=X.updated_at instanceof Date?X.updated_at.toISOString():X.updated_at,G=X.status==="active"?"active":"inactive";return{id:X.id,organization_id:X.organization_id,title:X.title,description:X.description,tool_selection_mode:"inclusion",icon:X.icon,status:G,created_at:Q,updated_at:J,created_by:X.created_by,updated_by:void 0,metadata:this.parseJson(X.metadata),connections:Y.map((W)=>({connection_id:W.child_connection_id,selected_tools:this.parseJson(W.selected_tools),selected_resources:this.parseJson(W.selected_resources),selected_prompts:this.parseJson(W.selected_prompts)}))}}parseJson(X){if(X===null)return null;if(typeof X==="string")try{return JSON.parse(X)}catch{return null}return X}}var jK1=S(()=>{wZ()});class NQ0{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(X){return oM.startActiveSpan("redactor.redact",(Y)=>{try{if(X===null||X===void 0)return X;if(typeof X==="string")return Y.setAttribute("data.type","string"),this.redactString(X);if(Array.isArray(X))return Y.setAttribute("data.type","array"),Y.setAttribute("data.length",X.length),X.map((Q)=>this.redact(Q));if(typeof X==="object"){Y.setAttribute("data.type","object");let Q={};for(let[J,G]of Object.entries(X)){let W=this.redactString(J);Q[W]=this.redact(G)}return Q}return Y.setAttribute("data.type",typeof X),X}finally{Y.end()}})}redactString(X){return oM.startActiveSpan("redactor.redactString",(Y)=>{try{Y.setAttribute("text.length",X.length);let Q=X,J=0;for(let G of this.patterns){let W=X.match(G.regex);if(W)J+=W.length,Y.setAttribute(`redaction.${G.type}.count`,W.length);Q=Q.replace(G.regex,`[REDACTED:${G.type}]`)}return Y.setAttribute("redaction.total_count",J),Q}finally{Y.end()}})}}var CK1=S(()=>{sM()});import{sql as gf}from"kysely";class OQ0{db;redactor;databaseType;constructor(X,Y="sqlite"){this.db=X;this.redactor=new NQ0,this.databaseType=Y}jsonExtract(X,Y){if(this.databaseType==="postgres")return gf`(${gf.ref(X)}::jsonb)->>${Y}`;let Q=`$.${Y}`;return gf`json_extract(${gf.ref(X)}, ${Q})`}async log(X){await this.logBatch([X])}async logBatch(X){if(X.length===0)return;let Y=X.map((Q)=>({...Q,input:this.redactor.redact(Q.input),output:this.redactor.redact(Q.output)}));await this.db.transaction().execute(async(Q)=>{await Q.insertInto("monitoring_logs").values(Y.map((J)=>this.toDbRow(J))).execute()})}async query(X){let Y=this.db.selectFrom("monitoring_logs").selectAll(),Q=this.db.selectFrom("monitoring_logs").select(($)=>$.fn.count("id").as("count"));if(X.organizationId)Y=Y.where("organization_id","=",X.organizationId),Q=Q.where("organization_id","=",X.organizationId);if(X.connectionId)Y=Y.where("connection_id","=",X.connectionId),Q=Q.where("connection_id","=",X.connectionId);if(X.virtualMcpId)Y=Y.where("virtual_mcp_id","=",X.virtualMcpId),Q=Q.where("virtual_mcp_id","=",X.virtualMcpId);if(X.toolName)Y=Y.where("tool_name","=",X.toolName),Q=Q.where("tool_name","=",X.toolName);if(X.isError!==void 0)Y=Y.where("is_error","=",X.isError?1:0),Q=Q.where("is_error","=",X.isError?1:0);if(X.startDate)Y=Y.where("timestamp",">=",X.startDate.toISOString()),Q=Q.where("timestamp",">=",X.startDate.toISOString());if(X.endDate)Y=Y.where("timestamp","<=",X.endDate.toISOString()),Q=Q.where("timestamp","<=",X.endDate.toISOString());if(X.propertyFilters){let{properties:$,propertyKeys:K,propertyPatterns:H}=X.propertyFilters;if($)for(let[F,V]of Object.entries($)){let q=this.jsonExtract("properties",F);Y=Y.where(q,"=",V),Q=Q.where(q,"=",V)}if(K&&K.length>0)for(let F of K){let V=this.jsonExtract("properties",F);Y=Y.where(V,"is not",null),Q=Q.where(V,"is not",null)}if(H)for(let[F,V]of Object.entries(H)){let q=this.jsonExtract("properties",F),z=this.databaseType==="postgres"?"ilike":"like";Y=Y.where(q,z,V),Q=Q.where(q,z,V)}}if(Y=Y.orderBy("timestamp","desc"),X.limit)Y=Y.limit(X.limit);if(X.offset)Y=Y.offset(X.offset);let[J,G]=await Promise.all([Y.execute(),Q.executeTakeFirst()]),W=Number(G?.count||0);return{logs:J.map(($)=>this.fromDbRow($)),total:W}}async getStats(X){let Y=this.db.selectFrom("monitoring_logs").where("organization_id","=",X.organizationId);if(X.startDate)Y=Y.where("timestamp",">=",X.startDate.toISOString());if(X.endDate)Y=Y.where("timestamp","<=",X.endDate.toISOString());let Q=await Y.select([(Z)=>Z.fn.count("id").as("total_count"),(Z)=>Z.fn.sum(Z.ref("is_error")).as("error_count"),(Z)=>Z.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(Q?.total_count||0),G=Number(Q?.error_count||0),W=Number(Q?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:W}}toDbRow(X){return{id:X.id||GX("log"),organization_id:X.organizationId,connection_id:X.connectionId,connection_title:X.connectionTitle,tool_name:X.toolName,input:JSON.stringify(X.input),output:JSON.stringify(X.output),is_error:X.isError?1:0,error_message:X.errorMessage||null,duration_ms:X.durationMs,timestamp:X.timestamp instanceof Date?X.timestamp.toISOString():X.timestamp,user_id:X.userId||null,request_id:X.requestId,user_agent:X.userAgent||null,virtual_mcp_id:X.virtualMcpId||null,properties:X.properties?JSON.stringify(X.properties):null}}fromDbRow(X){let Y=typeof X.input==="string"?JSON.parse(X.input):X.input,Q=typeof X.output==="string"?JSON.parse(X.output):X.output,J=typeof X.timestamp==="string"?new Date(X.timestamp):X.timestamp,G=X.properties?typeof X.properties==="string"?JSON.parse(X.properties):X.properties:null;return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,connectionTitle:X.connection_title,toolName:X.tool_name,input:Y,output:Q,isError:X.is_error===1,errorMessage:X.error_message,durationMs:X.duration_ms,timestamp:J,userId:X.user_id,requestId:X.request_id,userAgent:X.user_agent,virtualMcpId:X.virtual_mcp_id,properties:G}}}var IK1=S(()=>{CK1();wZ()});class LQ0{db;constructor(X){this.db=X}async get(X){let Y=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",X).executeTakeFirst();if(!Y)return null;return{organizationId:Y.organizationId,sidebar_items:Y.sidebar_items?typeof Y.sidebar_items==="string"?JSON.parse(Y.sidebar_items):Y.sidebar_items:null,enabled_plugins:Y.enabled_plugins?typeof Y.enabled_plugins==="string"?JSON.parse(Y.enabled_plugins):Y.enabled_plugins:null,createdAt:Y.createdAt,updatedAt:Y.updatedAt}}async upsert(X,Y){let Q=new Date().toISOString(),J=Y?.sidebar_items?JSON.stringify(Y.sidebar_items):null,G=Y?.enabled_plugins?JSON.stringify(Y.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:X,sidebar_items:J,enabled_plugins:G,createdAt:Q,updatedAt:Q}).onConflict((Z)=>Z.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:Q})).execute();let W=await this.get(X);if(!W)return{organizationId:X,sidebar_items:Y?.sidebar_items??null,enabled_plugins:Y?.enabled_plugins??null,createdAt:Q,updatedAt:Q};return W}}class wQ0{db;constructor(X){this.db=X}async findById(X,Y){let Q=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",X).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",X).where("m2.userId","=",Y))).executeTakeFirst();if(!Q)return null;return{id:Q.id,name:Q.name,email:Q.email,role:"",createdAt:Q.createdAt,updatedAt:Q.updatedAt,image:Q.image??void 0}}}var RK1="mcp.mesh";var SK1,MQ0,dK;var uf=S(()=>{SK1=class SK1 extends Error{constructor(X){super(X);this.name="UnauthorizedError"}};MQ0=class MQ0 extends Error{constructor(X){super(X);this.name="ForbiddenError"}};dK=class dK{userId;toolName;boundAuth;role;connectionId;getToolMeta;_granted=!1;constructor(X,Y,Q,J,G,W="self",Z){this.userId=Y;this.toolName=Q;this.boundAuth=J;this.role=G;this.connectionId=W;this.getToolMeta=Z}[Symbol.dispose](){this._granted=!1}setToolName(X){this.toolName=X}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...X){if(this._granted)return;if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new SK1("Authentication required. Please provide a valid OAuth token or API key.")}let Y=X.length>0?X:this.toolName?[this.toolName]:[];if(Y.length===0)throw new MQ0("No resources specified for access check");for(let Q of Y)if(await this.checkResource(Q)){this.grant();return}throw new MQ0(`Access denied to: ${Y.join(", ")}`)}async checkResource(X){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let Y={};if(this.connectionId)Y[this.connectionId]=[X];return this.boundAuth.hasPermission(Y)}async isToolPublic(){if(!this.getToolMeta)return!1;try{let X=await this.getToolMeta();if(!X)return!1;let Q=X[RK1]?.public_tool;return Q===!0||Q==="true"}catch{return!1}}granted(){return this._granted}}});function kK1(X){let Y=null;return()=>{if(Y)return Y;return Y=X().catch((Q)=>{throw Y=null,Q}),Y}}class vK1{factory;promise=null;constructor(X){this.factory=X}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(X,Y){return this.getOrCreatePromise().then(X,Y)}catch(X){return this.getOrCreatePromise().catch(X)}finally(X){return this.getOrCreatePromise().finally(X)}}function l7(X){return new vK1(X)}class PQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadPrompts())}async loadPrompts(){let X=await this.proxies.mapSettled(async(G,W)=>{try{let $=(await G.proxy.client.listPrompts()).prompts;if(this.options.selectionMode==="exclusion"){if(G.selectedPrompts&&G.selectedPrompts.length>0){let K=new Set(G.selectedPrompts);$=$.filter((H)=>!K.has(H.name))}}else if(!G.selectedPrompts||G.selectedPrompts.length===0)$=[];else{let K=new Set(G.selectedPrompts);$=$.filter((H)=>K.has(H.name))}return{connectionId:W,prompts:$}}catch(Z){return console.error(`[PromptAggregator] Failed to list prompts for connection ${W}:`,Z),{connectionId:W,prompts:[]}}}),Y=new Set,Q=[],J=new Map;for(let G of X){if(G.status!=="fulfilled")continue;let{connectionId:W,prompts:Z}=G.value;for(let $ of Z){if(Y.has($.name))continue;Y.add($.name),Q.push($),J.set($.name,W)}}return{prompts:Q,mappings:J}}async list(){return{prompts:(await this.cache).prompts}}async get(X){let Q=(await this.cache).mappings.get(X.name);if(!Q)throw Error(`Prompt not found: ${X.name}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for prompt: ${X.name}`);return await J.proxy.client.getPrompt(X)}}var _K1=()=>{};function ud6(X,Y){if(X===Y)return!0;if(!Y.includes("*"))return!1;let Q=Y.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<DOUBLE_STAR>>>").replace(/\*/g,"[^/]*").replace(/<<<DOUBLE_STAR>>>/g,".*");Q=`^${Q}$`;try{return new RegExp(Q).test(X)}catch{return!1}}function yK1(X,Y){return Y.some((Q)=>ud6(X,Q))}class AQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadResources())}async loadResources(){let X=await this.proxies.mapSettled(async(G,W)=>{try{let $=(await G.proxy.client.listResources()).resources;if(this.options.selectionMode==="exclusion"){if(G.selectedResources&&G.selectedResources.length>0)$=$.filter((K)=>!yK1(K.uri,G.selectedResources))}else if(!G.selectedResources||G.selectedResources.length===0)$=[];else $=$.filter((K)=>yK1(K.uri,G.selectedResources));return{connectionId:W,resources:$}}catch(Z){if(!(Z instanceof J1)||Z.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list resources for connection ${W}: (defaulting to empty array)`,Z);return{connectionId:W,resources:[]}}}),Y=new Set,Q=[],J=new Map;for(let G of X){if(G.status!=="fulfilled")continue;let{connectionId:W,resources:Z}=G.value;for(let $ of Z){if(Y.has($.uri))continue;Y.add($.uri),Q.push($),J.set($.uri,W)}}return{resources:Q,mappings:J}}async list(){return{resources:(await this.cache).resources}}async read(X){let Q=(await this.cache).mappings.get(X.uri);if(!Q)throw Error(`Resource not found: ${X.uri}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for resource: ${X.uri}`);return await J.proxy.client.readResource(X)}}var bK1=S(()=>{RX()});class TQ0{proxies;cache;constructor(X){this.proxies=X;this.cache=l7(()=>this.loadResourceTemplates())}async loadResourceTemplates(){let X=await this.proxies.mapSettled(async(Q,J)=>{try{let G=await Q.proxy.client.listResourceTemplates();return{connectionId:J,templates:G.resourceTemplates}}catch(G){if(!(G instanceof J1)||G.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list resource templates for connection ${J}: (defaulting to empty array)`,G);return{connectionId:J,templates:[]}}}),Y=[];for(let Q of X){if(Q.status!=="fulfilled")continue;let{templates:J}=Q.value;for(let G of J)Y.push(G)}return{templates:Y}}async list(){return{resourceTemplates:(await this.cache).templates}}}var fK1=S(()=>{RX()});function pd6(X){let Y=X.slice().sort().join(","),Q=hK1.get(Y);if(!Q){let J=U.object({name:(X.length>0?U.enum(X):U.string()).describe("The name of the tool to execute"),arguments:U.record(U.string(),U.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:U.toJSONSchema(J)},hK1.set(Y,Q)}return Q}function mK1(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas.${X.categories.length>0?` Available categories: ${X.categories.join(", ")}.`:""} Total tools: ${Y.length}.`,inputSchema:md6},handler:async(J)=>{let G=xK1.safeParse(J);if(!G.success)return fB({error:G.error.flatten()});let W=Uf(G.data.query,Y,G.data.limit);return Df({query:G.data.query,results:W.map((Z)=>({name:Z.name,description:Z.description,connection:Z._meta.connectionTitle})),totalAvailable:Y.length})}}}function lK1(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:ld6},handler:async(Q)=>{let J=gK1.safeParse(Q);if(!J.success)return fB({error:J.error.flatten()});let G=zf(J.data.tools,Y);return Df({tools:G.tools,notFound:G.notFound})}}}function cd6(X){let Y=zA(X.tools),Q=Y.map((Z)=>Z.name),J=new Map(Y.map((Z)=>[Z.name,Z])),{schema:G,jsonSchema:W}=pd6(Q);return{tool:{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:W},handler:async(Z)=>{let $=G.safeParse(Z);if(!$.success)return fB({error:$.error.flatten()});let{name:K,arguments:H}=$.data;if(!J.has(K))return{content:[{type:"text",text:`Tool not found: ${K}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return X.callTool(K,H)}}}function nd6(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:dd6},handler:async(Q)=>{let J=uK1.safeParse(Q);if(!J.success)return fB({error:J.error.flatten()});let G={...X,tools:Y},W=await Bf(J.data.code,G,J.data.timeoutMs);if(W.error)return fB(W);return Df(W)}}}function dK1(X){let Y=new Map(X.map((J)=>[J.tool.name,J.handler])),Q=X.map((J)=>J.tool.name);return{tools:X.map((J)=>J.tool),callTool:async(J,G)=>{let W=Y.get(J);if(!W)return{content:[{type:"text",text:`Unknown meta-tool: ${J}. Available: ${Q.join(", ")}`}],isError:!0};return W(G)}}}function pK1(X){switch(X){case"smart_tool_selection":return rd6;case"code_execution":return ad6;case"passthrough":default:return id6}}function cK1(X){switch(X){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}var xK1,md6,gK1,ld6,uK1,dd6,hK1,id6=(X)=>({tools:X.tools,callTool:(Y,Q)=>X.callTool(Y,Q)}),ad6=(X)=>dK1([mK1(X),lK1(X),nd6(X)]),rd6=(X)=>dK1([mK1(X),lK1(X),cd6(X)]);var EQ0=S(()=>{r0();BA();xK1=U.object({query:U.string().min(1).describe("Search query to find tools by name or description"),limit:U.number().default(10).describe("Maximum number of results to return")}),md6=U.toJSONSchema(xK1),gK1=U.object({tools:U.array(U.string()).min(1).describe("Array of tool names to get detailed schemas for")}),ld6=U.toJSONSchema(gK1),uK1=U.object({code:U.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:U.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),dd6=U.toJSONSchema(uK1),hK1=new Map});class jQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadTools())}async loadTools(){let X=await this.proxies.mapSettled(async(K,H)=>{try{let V=(await K.proxy.client.listTools()).tools;if(this.options.selectionMode==="exclusion"){if(K.selectedTools&&K.selectedTools.length>0){let q=new Set(K.selectedTools);V=V.filter((z)=>!q.has(z.name))}}else if(K.selectedTools&&K.selectedTools.length>0){let q=new Set(K.selectedTools);V=V.filter((z)=>q.has(z.name))}return{connectionId:H,connectionTitle:K.connection.title,tools:V}}catch(F){if(!(F instanceof J1)||F.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list tools ${H}: (defaulting to null)`,F);return null}}),Y=new Set,Q=[],J=new Map,G=new Set;for(let K of X){if(K.status!=="fulfilled"||!K.value)continue;let{connectionId:H,connectionTitle:F,tools:V}=K.value;G.add(F);for(let q of V){if(Y.has(q.name))continue;Y.add(q.name),Q.push({...q,_meta:{connectionId:H,connectionTitle:F}}),J.set(q.name,{connectionId:H,originalName:q.name})}}let W=async(K,H)=>{let F=J.get(K);if(!F)return{content:[{type:"text",text:`Tool not found: ${K}`}],isError:!0};let V=this.proxies.get(F.connectionId);if(!V)return{content:[{type:"text",text:`Connection not found for tool: ${K}`}],isError:!0};return await V.proxy.client.callTool({name:F.originalName,arguments:H})},$=pK1(this.options.strategy)({tools:Q,callTool:W,categories:Array.from(G).sort()});return{tools:Q,mappings:J,strategyResult:$}}async list(){return{tools:(await this.cache).strategyResult.tools}}async call(X){return(await this.cache).strategyResult.callTool(X.name,X.arguments??{})}async callStreamable(X,Y){let Q=await this.cache,J=Q.mappings.get(X);if(J){let W=this.proxies.get(J.connectionId);if(W)return W.proxy.callStreamableTool(J.originalName,Y)}let G=await Q.strategyResult.callTool(X,Y);return new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}var nK1=S(()=>{RX();EQ0()});function iK1(X,Y){if(X.connection_type!=="VIRTUAL")return!1;return fK(X.connection_url)===Y}async function od6(X,Y){let Q=await kB.create(X.connections,Y),J=new jQ0(Q,{selectionMode:X.toolSelectionMode,strategy:X.toolSelectionStrategy}),G=new AQ0(Q,{selectionMode:X.toolSelectionMode}),W=new TQ0(Q),Z=new PQ0(Q,{selectionMode:X.toolSelectionMode});return{client:{listTools:J.list.bind(J),callTool:J.call.bind(J),listResources:G.list.bind(G),readResource:G.read.bind(G),listResourceTemplates:W.list.bind(W),listPrompts:Z.list.bind(Z),getPrompt:Z.get.bind(Z)},callStreamableTool:J.callStreamable.bind(J)}}async function cA(X,Y,Q){let J;if(X.tool_selection_mode==="exclusion"){let Z=(await Y.storage.connections.list(X.organization_id)).filter((K)=>K.status==="active"&&!iK1(K,X.id)),$=new Map;for(let K of X.connections)$.set(K.connection_id,{selectedTools:K.selected_tools,selectedResources:K.selected_resources,selectedPrompts:K.selected_prompts});J=[];for(let K of Z){let H=$.get(K.id);if(H===void 0)J.push({connection:K,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((H.selectedTools===null||H.selectedTools.length===0)&&(H.selectedResources===null||H.selectedResources.length===0)&&(H.selectedPrompts===null||H.selectedPrompts.length===0));else J.push({connection:K,selectedTools:H.selectedTools,selectedResources:H.selectedResources,selectedPrompts:H.selectedPrompts})}}else{let W=X.connections.map(($)=>$.connection_id),Z=[];for(let $ of W){let K=await Y.storage.connections.findById($);if(K&&K.status==="active"&&!iK1(K,X.id))Z.push(K)}J=Z.map(($)=>{let K=X.connections.find((H)=>H.connection_id===$.id);return{connection:$,selectedTools:K?.selected_tools??null,selectedResources:K?.selected_resources??null,selectedPrompts:K?.selected_prompts??null}})}let G={connections:J,toolSelectionMode:X.tool_selection_mode,toolSelectionStrategy:Q};return od6(G,Y)}var aK1=S(()=>{g7();_K1();bK1();fK1();nK1()});var CQ0=S(()=>{aK1()});async function rK1(X){if(!X.refreshToken)return{success:!1,error:"No refresh token available"};if(!X.tokenEndpoint)return{success:!1,error:"No token endpoint available"};if(!X.clientId)return{success:!1,error:"No client ID available"};try{let Y=new URLSearchParams({grant_type:"refresh_token",refresh_token:X.refreshToken,client_id:X.clientId});if(X.clientSecret)Y.set("client_secret",X.clientSecret);if(X.scope)Y.set("scope",X.scope);let Q=await fetch(X.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Y.toString()});if(!Q.ok){let G=await Q.text();console.error(`[TokenRefresh] Failed to refresh token: ${Q.status}`,G);try{let W=JSON.parse(G);return{success:!1,error:W.error_description||W.error||`Token refresh failed: ${Q.status}`}}catch{return{success:!1,error:`Token refresh failed: ${Q.status}`}}}let J=await Q.json();return{success:!0,accessToken:J.access_token,refreshToken:J.refresh_token||X.refreshToken,expiresIn:J.expires_in,scope:J.scope}}catch(Y){return console.error("[TokenRefresh] Error refreshing token:",Y),{success:!1,error:Y instanceof Error?Y.message:"Token refresh failed"}}}function sd6(X){return new Proxy(X,{get(Q,J,G){if(J==="close")return async()=>{};if(J==="__actualClient")return Q;return Reflect.get(Q,J,G)}})}async function tK1(X,Y){let Q=XV.get(X.id);if(Q?.status==="connected"&&Q.stableClient)return Q.stableClient;if(Q?.connectPromise&&(Q.status==="connecting"||Q.status==="reconnecting"))return Q.connectPromise;let J=Q?.status==="failed",G=Q??{transport:null,client:null,stableClient:null,config:X,status:"connecting",connectPromise:null};if(!Q)XV.set(X.id,G);return G.status=J?"reconnecting":"connecting",G.connectPromise=(async()=>{try{console.log(`[StableStdio] ${J?"Respawning":"Spawning"}: ${X.id} (${X.command} ${X.args?.join(" ")??""})`);let W=new HA({command:X.command,args:X.args,env:X.env,cwd:X.cwd,stderr:"pipe"});G.transport=W;let Z=Y??new PQ({name:`mesh-stdio-${X.id}`,version:"1.0.0"});G.client=Z,G.stableClient=sd6(Z),Z.onclose=()=>{console.log(`[StableStdio] Connection closed unexpectedly: ${X.id}`),G.status="failed",G.connectPromise=null};let $=X.name||X.id,K="\x1B[2m",H="\x1B[0m";W.stderr?.on("data",(q)=>{let z=q.toString().trimEnd();if(z)console.error(`${z} ${K}[${$}]${H}`)});let F=new AbortController,V=setTimeout(()=>F.abort(),30000);try{await Promise.race([Z.connect(W),new Promise((q,z)=>{F.signal.addEventListener("abort",()=>{z(Error("Stdio connection timeout after 30s"))})})])}finally{clearTimeout(V)}return G.status="connected",console.log(`[StableStdio] Connected: ${X.id}`),G.stableClient}catch(W){console.error(`[StableStdio] Failed to connect ${X.id}:`,W),G.status="failed",G.connectPromise=null;try{await G.transport?.close()}catch{}throw W}})(),G.connectPromise}async function td6(X){let Y=XV.get(X);if(!Y)return;console.log(`[StableStdio] Force closing: ${X}`);try{if(Y.client)Y.client.onclose=void 0;await Y.client?.close()}catch{}XV.delete(X)}async function ed6(){console.log(`[StableStdio] Closing all connections (${XV.size})`);let X=Array.from(XV.keys()).map((Y)=>td6(Y));await Promise.allSettled(X),XV.clear()}var oK1="__mesh_stable_stdio_pool__",XV,sK1="__mesh_stable_stdio_shutdown_registered__";var eK1=S(()=>{yF();PY0();XV=globalThis[oK1]??(globalThis[oK1]=new Map);if(!globalThis[sK1]){globalThis[sK1]=!0;let X=async(Y)=>{await ed6(),process.exit(Y==="SIGINT"?130:143)};process.on("SIGINT",()=>X("SIGINT")),process.on("SIGTERM",()=>X("SIGTERM"))}});async function mf(X,Y){let Q=X.get("meshContext");try{let J=X.req.header("x-org-id"),G=X.req.header("x-org-slug"),W=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((z)=>z?.id):null,Z=Y?await Q.storage.virtualMcps.findById(Y):W?aX0(W):null;if(!Z)return X.json({error:"Agent not found"},404);if(W&&Z.organization_id!==W)return X.json({error:"Agent not found"},404);if(Z.status!=="active")return X.json({error:`Agent is inactive: ${Z.id}`},503);Q.connectionId=Z.id;let $=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if($)Q.organization={id:$.id,slug:$.slug,name:$.name};let K=X.req.query("mode"),H=cK1(K),F=await cA(Z,Q,H),V=new uF({name:`mcp-virtual-mcp-${Z.title}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new mF({enableJsonResponse:X.req.header("Accept")?.includes("application/json")??!1});await V.connect(q),V.server.setRequestHandler(jK,async(z)=>{return F.client.listTools()}),V.server.setRequestHandler(y7,async(z)=>{return await F.client.callTool(z.params)}),V.server.setRequestHandler(MK,async()=>{return F.client.listResources()}),V.server.setRequestHandler(AK,async(z)=>{return F.client.readResource(z.params)}),V.server.setRequestHandler(PK,async()=>{return F.client.listResourceTemplates()}),V.server.setRequestHandler(TK,async()=>{return F.client.listPrompts()}),V.server.setRequestHandler(EK,async(z)=>{return F.client.getPrompt(z.params)});try{return await q.handleRequest(X.req.raw)}finally{try{await q.close?.()}catch{}}}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),X.json({error:"Internal server error",message:G.message},500)}}var IQ0,XH1;var RQ0=S(()=>{$f();Kf();RX();ZG();CQ0();EQ0();YA();IQ0=new ZX;IQ0.all("/gateway/:virtualMcpId?",async(X)=>{let Y=X.req.param("virtualMcpId");return mf(X,Y)});IQ0.all("/virtual-mcp/:virtualMcpId?",async(X)=>{let Y=X.req.param("virtualMcpId");return mf(X,Y)});XH1=IQ0});async function YH1(X,Y){return(await Y.storage.connections.findById(X))?.connection_url??null}function Xp6(X){let Y=X.toLowerCase();return Y.includes("resource_metadata=")||Y.includes("invalid_token")||Y.includes("oauth")}async function QH1(X,Y={}){try{let Q=await fetch(X,{method:"POST",headers:{...Y,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(Xp6(J))return J}}return null}catch{return null}}async function df(X){let Q=new URL(X).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(X);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(!SQ0.includes(G.status))return G;let W=new URL(X);if(W.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),!SQ0.includes(G.status))return G;let Z=new URL(X);return Z.pathname="/.well-known/oauth-protected-resource",G=await fetch(Z.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function Yp6(X,Y){let Q=await YH1(X,Y);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await df(Q);if(G.ok){let W=await G.json();if(W.authorization_servers?.[0])return W.authorization_servers[0]}}catch{}return J}async function JH1(X){let Y=X.get("meshContext");if(!Y)Y=await pK.create(X.req.raw),X.set("meshContext",Y);return Y}async function GH1({error:X,reqUrl:Y,connectionId:Q,connectionUrl:J,headers:G}){let W=X.message?.toLowerCase()??"";if(!(X.status===401||X.code===401||X.message?.includes("401")||W.includes("unauthorized")||W.includes("invalid_token")||W.includes("api key required")||W.includes("api-key required")))return null;if(Boolean(await QH1(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Y.origin}/mcp/${Q}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function kQ0(X){let Q=new URL(X).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let Z=new URL(X);Z.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(Z);let $=new URL(X);$.pathname=`/.well-known/openid-configuration${Q}`,G.push($);let K=new URL(X);K.pathname=`${Q}/.well-known/openid-configuration`,G.push(K)}else{let Z=new URL(X);Z.pathname="/.well-known/oauth-authorization-server",G.push(Z);let $=new URL(X);$.pathname="/.well-known/openid-configuration",G.push($)}let W=null;for(let Z of G){if(W=await fetch(Z.toString(),{method:"GET",headers:{Accept:"application/json"}}),W.ok)return W;if(W.status!==404&&W.status!==401)return W}return W}var lf,SQ0,pf=(X)=>{if(!(X.hostname==="localhost"||X.hostname==="127.0.0.1"))X.protocol="https:";return X},WH1=async(X)=>{let Y=X.req.param("connectionId"),Q=await JH1(X),J=await YH1(Y,Q);if(!J)return X.json({error:"Connection not found"},404);let G=pf(new URL(X.req.url)),W=`${G.origin}/mcp/${Y}`,Z=`${G.origin}/oauth-proxy/${Y}`;try{let $=await df(J);if(!$.ok&&SQ0.includes($.status)){if(await QH1(J))return new Response(JSON.stringify({resource:W,authorization_servers:[Z],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response($.body,{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}})}if(!$.ok)return new Response($.body,{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}});let H={...await $.json(),resource:W,authorization_servers:[Z]};return new Response(JSON.stringify(H),{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}})}catch($){let K=$;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",K),X.json({error:"Failed to proxy OAuth metadata",message:K.message},502)}},ZH1;var cf=S(()=>{ZG();nf();lf=new ZX,SQ0=[404,401,406];lf.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(X)=>WH1(X));lf.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(X)=>WH1(X));lf.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(X)=>{let Y=X.req.param("connectionId"),Q=await JH1(X),J=await Yp6(Y,Q);if(!J)return X.json({error:"Connection not found or no auth server"},404);try{let G=await kQ0(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let W=await G.json(),$=`${pf(new URL(X.req.url)).origin}/oauth-proxy/${Y}`,K={...W,authorization_endpoint:W.authorization_endpoint?`${$}/authorize`:void 0,token_endpoint:W.token_endpoint?`${$}/token`:void 0,registration_endpoint:W.registration_endpoint?`${$}/register`:void 0};return new Response(JSON.stringify(K),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let W=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",W),X.json({error:"Failed to proxy auth server metadata",message:W.message},502)}});ZH1=lf});function Qp6(X){if(!X.isError)return;let Y=X.content;if(!Array.isArray(Y))return;for(let Q of Y)if(Q&&typeof Q==="object"&&"type"in Q&&Q.type==="text"&&"text"in Q&&typeof Q.text==="string")return Q.text;return}function Jp6(X){if(!X)return;let Y=X._meta;if(!Y||typeof Y!=="object"||Array.isArray(Y))return;let Q=Y.properties;if(!Q||typeof Q!=="object"||Array.isArray(Q))return;let J={};for(let[G,W]of Object.entries(Q))if(typeof W==="string")J[G]=W;return Object.keys(J).length>0?J:void 0}function Gp6(X,Y){if(!X&&!Y)return;if(!X)return Y;if(!Y)return X;return{...Y,...X}}function $H1(X){if(X&&typeof X==="object"&&!Array.isArray(X)){let Y=X,Q=Y.structuredContent;if(Q&&typeof Q==="object"&&!Array.isArray(Q))return Q;return Y}return{value:X}}async function Wp6(X,Y){let Q=X.body;if(!Q)return{text:"",truncated:!1};let J=Q.getReader(),G=new TextDecoder,W=!1,Z=0,$=[];try{while(!0){let{value:K,done:H}=await J.read();if(H)break;if(K){if(Z+=K.byteLength,Z>Y){W=!0;let F=Y-(Z-K.byteLength);if(F>0)$.push(G.decode(K.slice(0,F),{stream:!0}));break}$.push(G.decode(K,{stream:!0}))}}}finally{J.releaseLock()}return $.push(G.decode()),{text:$.join(""),truncated:W}}async function nA(X){let{ctx:Y,enabled:Q}=X,J=X.organizationId??Y.organization?.id;if(!Q||!J)return;let G=Jp6(X.request.params.arguments),W=Gp6(Y.metadata.properties,G);await Y.storage.monitoring.log({organizationId:J,connectionId:X.connectionId,connectionTitle:X.connectionTitle,toolName:X.request.params.name,input:X.request.params.arguments??{},output:X.output,isError:X.isError,errorMessage:X.errorMessage,durationMs:X.durationMs,timestamp:new Date,userId:Y.auth.user?.id||Y.auth.apiKey?.userId||null,requestId:Y.metadata.requestId,userAgent:Y.metadata.userAgent,virtualMcpId:X.virtualMcpId,properties:W})}function KH1(X){let{ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W}=X;return async(Z,$)=>{let K=Date.now();try{let H=await $(),F=Date.now()-K;return await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:$H1(H),isError:Boolean(H.isError),errorMessage:Qp6(H),durationMs:F}),H}catch(H){let F=H,V=Date.now()-K;throw await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:F.message,durationMs:V}),H}}}function HH1(X){let{ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W}=X;return async(Z,$)=>{let K=Date.now();try{let H=await $(),F=Y.organization?.id;if(Q&&F){let V=H.clone();(async()=>{try{let{text:q,truncated:z}=await Wp6(V,262144),D=Date.now()-K,N=V.headers.get("content-type")??"",L=q;if(N.includes("application/json"))try{L=q.length?JSON.parse(q):null}catch{L=q}let w=H.status>=400,C=w&&L&&typeof L==="object"&&"error"in L?L.error:void 0,T=typeof C==="string"&&C?C:w&&typeof L==="string"&&L.trim()?L.slice(0,500):w?`HTTP ${H.status} ${H.statusText}`.trim():z?"Response body truncated to 262144 bytes":void 0;await nA({ctx:Y,enabled:Q,organizationId:F,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:$H1(L),isError:w,errorMessage:T,durationMs:D})}catch(q){let z=Date.now()-K;await nA({ctx:Y,enabled:Q,organizationId:F,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:z})}})()}return H}catch(H){let F=H,V=Date.now()-K;throw await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:F.message,durationMs:V}),H}}}function Zp6(X,Y,Q){return async(J,G)=>{try{let W=J.params.name,Z=async()=>{let{tools:K}=await Q();return K.find((F)=>F.name===W)?._meta};return await new dK(X.authInstance,X.auth.user?.id??X.auth.apiKey?.userId,W,X.boundAuth,X.auth.user?.role,Y,Z).check(W),await G()}catch(W){return{content:[{type:"text",text:`Authorization failed: ${W.message}`}],isError:!0}}}}function $p6(X,Y,Q){return async(J,G)=>{try{let W=J.params.name,Z=async()=>{let{tools:K}=await Q();return K.find((F)=>F.name===W)?._meta};return await new dK(X.authInstance,X.auth.user?.id??X.auth.apiKey?.userId,W,X.boundAuth,X.auth.user?.role,Y,Z).check(W),await G()}catch(W){return new Response(JSON.stringify({error:`Authorization failed: ${W.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function FH1(X,Y,{superUser:Q}){let J=typeof X==="string"?await Y.storage.connections.findById(X,Y.organization?.id):X;if(!J)throw Error("Connection not found");let G=J?.id;if(Y.organization&&J.organization_id!==Y.organization.id)throw Error("Connection does not belong to the active organization");if(Y.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let W,Z=Y.auth.user?.connectionId,$=kK1(async()=>{let k=V90(J.configuration_state,J.configuration_scopes),h=Y.auth.user?.id??Y.auth.apiKey?.userId;if(!h){console.error("User ID required to issue configuration token");return}try{W=await TK1({sub:h,user:{id:h},metadata:{state:J.configuration_state??void 0,meshUrl:process.env.MESH_URL??Y.baseUrl,connectionId:G,organizationId:Y.organization?.id},permissions:k})}catch(t){console.error("Failed to issue configuration token:",t)}}),K=async()=>{await $();let k={...Z?{"x-caller-id":Z}:{},...Y.metadata.wellKnownForwardableHeaders??{}},h=null,t=new TZ(Y.db,Y.vault),l=await t.get(G);if(l){let J0=!!l.refreshToken&&!!l.tokenEndpoint;if(t.isExpired(l,J0?300000:0))if(J0){console.log(`[Proxy] Token expired for ${G}, attempting refresh`);let Y0=await rK1(l);if(Y0.success&&Y0.accessToken)await t.upsert({connectionId:G,accessToken:Y0.accessToken,refreshToken:Y0.refreshToken??l.refreshToken,scope:Y0.scope??l.scope,expiresAt:Y0.expiresIn?new Date(Date.now()+Y0.expiresIn*1000):null,clientId:l.clientId,clientSecret:l.clientSecret,tokenEndpoint:l.tokenEndpoint}),h=Y0.accessToken,console.log(`[Proxy] Token refreshed for ${G}`);else await t.delete(G),console.error(`[Proxy] Token refresh failed for ${G}: ${Y0.error}`)}else await t.delete(G),console.log(`[Proxy] Token expired without refresh capability for ${G}`);else h=l.accessToken}if(!h&&J.connection_token)h=J.connection_token;if(h)k.Authorization=`Bearer ${h}`;if(W)k["x-mesh-token"]=W;return k},H=J.connection_type==="STDIO",F=fF(J.connection_headers)?J.connection_headers:null,V=!H?J.connection_headers:null,q=async()=>{let k=new PQ({name:"mcp-mesh-proxy",version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}}});switch(J.connection_type){case"STDIO":{if(process.env.UNSAFE_ALLOW_STDIO_TRANSPORT!=="true")throw Error("STDIO connections are disabled in production. Set UNSAFE_ALLOW_STDIO_TRANSPORT=true to enable.");if(!F)throw Error("STDIO connection missing parameters");return tK1({id:G,name:J.title,command:F.command,args:F.args,env:F.envVars,cwd:F.cwd},k)}case"HTTP":case"Websocket":{if(!J.connection_url)throw Error(`${J.connection_type} connection missing URL`);let h=await K();if(V?.headers)Object.assign(h,V.headers);let t=new x7(new URL(J.connection_url),{requestInit:{headers:h}});return await k.connect(t),k}case"SSE":{if(!J.connection_url)throw Error("SSE connection missing URL");let h=await K();if(V?.headers)Object.assign(h,V.headers);let t=new gF(new URL(J.connection_url),{requestInit:{headers:h}});return await k.connect(t),k}case"VIRTUAL":{let h=fK(J.connection_url);if(!h)throw Error("VIRTUAL connection missing virtual MCP ID in connection_url");let t=await Y.storage.virtualMcps.findById(h);if(!t)throw Error(`Virtual MCP not found: ${h}`);let l=await cA(t,Y,"passthrough");return{callTool:(J0)=>l.client.callTool(J0),listTools:()=>l.client.listTools(),listResources:()=>l.client.listResources(),readResource:(J0)=>l.client.readResource(J0),listResourceTemplates:()=>l.client.listResourceTemplates(),listPrompts:()=>l.client.listPrompts(),getPrompt:(J0)=>l.client.getPrompt(J0),close:async()=>{},getServerCapabilities:()=>({tools:{},resources:{},prompts:{}}),getInstructions:()=>t.metadata?.instructions??void 0}}default:throw Error(`Unknown connection type: ${J.connection_type}`)}},z=async()=>{if(J.tools&&J.tools.length>0)return{tools:J.tools.map((h)=>({name:h.name,description:h.description,inputSchema:h.inputSchema,outputSchema:h.outputSchema,annotations:h.annotations,_meta:h._meta}))};let k;try{return k=await q(),await k.listTools()}finally{k?.close().catch(console.error)}},D=Q?async(k,h)=>await h():Zp6(Y,G,z),N=Q?async(k,h)=>await h():$p6(Y,G,z),L=Y.connectionId&&Y.connectionId!==G?Y.connectionId:void 0,w={enabled:XL0().enabled,connectionId:G,connectionTitle:J.title,virtualMcpId:L,ctx:Y},C=KH1(w),T=HH1(w),A=VA(C,D),P=VA(T,N),j=async(k)=>{return A(k,async()=>{let h=await q(),t=Date.now(),l={...k.params};if(l.arguments&&"_meta"in l.arguments){let{_meta:J0,...V0}=l.arguments;l.arguments=V0}return await Y.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":G,"tool.name":k.params.name}},async(J0)=>{try{let V0=await h.callTool(l,void 0,{timeout:vQ0}),Y0=Date.now()-t;return Y.meter.createHistogram("connection.proxy.duration").record(Y0,{"connection.id":G,"tool.name":k.params.name,status:"success"}),Y.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":G,"tool.name":k.params.name,status:"success"}),J0.end(),V0}catch(V0){let Y0=V0,U0=Date.now()-t;throw Y.meter.createHistogram("connection.proxy.duration").record(U0,{"connection.id":G,"tool.name":k.params.name,status:"error"}),Y.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":G,"tool.name":k.params.name,error:Y0.message}),J0.recordException(Y0),J0.end(),V0}finally{h.close().catch(console.error)}})})};return{fetch:async(k)=>{let h=new URL(k.url),t;try{t=await q()}catch(P0){let v0=J.connection_url?await GH1({error:P0,reqUrl:h,connectionId:G,connectionUrl:J.connection_url,headers:await K()}):null;if(v0)return v0;throw P0}let l=t.getServerCapabilities(),J0=t.getInstructions(),V0=l??{tools:{},resources:{},prompts:{}},Y0=new uF({name:"mcp-mesh",version:"1.0.0"},{capabilities:V0,instructions:J0}),U0=new mF({enableJsonResponse:k.headers.get("Accept")?.includes("application/json")??!1});if(await Y0.connect(U0),Y0.server.setRequestHandler(jK,()=>t.listTools()),Y0.server.setRequestHandler(y7,j),V0.resources)Y0.server.setRequestHandler(MK,()=>t.listResources()),Y0.server.setRequestHandler(AK,(P0)=>t.readResource(P0.params)),Y0.server.setRequestHandler(PK,()=>t.listResourceTemplates());if(V0.prompts)Y0.server.setRequestHandler(TK,()=>t.listPrompts()),Y0.server.setRequestHandler(EK,(P0)=>t.getPrompt(P0.params));try{return await U0.handleRequest(k)}finally{try{await t.close()}catch{}try{await U0.close?.()}catch{}}},client:{callTool:(k)=>{return j({method:"tools/call",params:k})},listTools:z,listResources:async()=>{let k;try{return k=await q(),await k.listResources()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{resources:[]};throw h}finally{k?.close().catch(console.error)}},readResource:async(k)=>{let h;try{return h=await q(),await h.readResource(k)}finally{h?.close().catch(console.error)}},listResourceTemplates:async()=>{let k;try{return k=await q(),await k.listResourceTemplates()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{resourceTemplates:[]};throw h}finally{k?.close().catch(console.error)}},listPrompts:async()=>{let k;try{return k=await q(),await k.listPrompts()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{prompts:[]};throw h}finally{k?.close().catch(console.error)}},getPrompt:async(k)=>{let h;try{return h=await q(),await h.getPrompt(k)}finally{h?.close().catch(console.error)}}},callStreamableTool:async(k,h)=>{if(J.connection_type==="VIRTUAL"){let J0=await j({method:"tools/call",params:{name:k,arguments:h}});return new Response(JSON.stringify(J0),{headers:{"Content-Type":"application/json"}})}if(!J.connection_url)throw Error("Streamable tools require HTTP connection with URL");let t=J.connection_url,l={method:"tools/call",params:{name:k,arguments:h}};return P(l,async()=>{let J0=await K();if(V?.headers)Object.assign(J0,V.headers);let V0=new URL(t);return V0.pathname=V0.pathname.replace(/\/$/,"")+`/call-tool/${l.params.name}`,await Y.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":G,"tool.name":l.params.name}},async(Y0)=>{let U0=Date.now();try{let P0=await fetch(V0.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(l.params.arguments),headers:{...J0,"Content-Type":"application/json"}}),v0=Date.now()-U0;return Y.meter.createHistogram("connection.proxy.streamable.duration").record(v0,{"connection.id":G,"tool.name":l.params.name,status:P0.ok?"success":"error"}),Y.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":G,"tool.name":l.params.name,status:P0.ok?"success":"error"}),Y0.end(),P0}catch(P0){let v0=P0,W1=Date.now()-U0;throw Y.meter.createHistogram("connection.proxy.streamable.duration").record(W1,{"connection.id":G,"tool.name":l.params.name,status:"error"}),Y.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":G,"tool.name":l.params.name,error:v0.message}),Y0.recordException(v0),Y0.end(),P0}})})}}}async function VH1(X,Y){return FH1(X,Y,{superUser:!1})}async function qH1(X,Y){return FH1(X,Y,{superUser:!0})}var af,vQ0=300000,UH1=(X,Y)=>{if(X.message.includes("not found"))return Y.json({error:X.message},404);if(X.message.includes("does not belong to the active organization"))return Y.json({error:"Connection not found"},404);if(X.message.includes("inactive"))return Y.json({error:X.message},503);return Y.json({error:"Internal server error",message:X.message},500)},zH1;var iA=S(()=>{CQ0();q90();fS();eK1();jf();g7();yF();Jf();LB();$f();Kf();RX();ZG();BQ0();uf();RQ0();cf();af=new ZX;af.all("/",async(X)=>{return mf(X,void 0)});af.all("/:connectionId",async(X)=>{let Y=X.req.param("connectionId"),Q=X.get("meshContext");try{return await(await Q.createMCPProxy(Y)).fetch(X.req.raw)}catch(J){return UH1(J,X)}});af.all("/:connectionId/call-tool/:toolName",async(X)=>{let Y=X.req.param("connectionId"),Q=X.req.param("toolName"),J=X.get("meshContext");try{let W=await(await J.createMCPProxy(Y)).client.callTool({name:Q,arguments:await X.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 UH1(G,X)}});zH1=af});class _Q0{db;constructor(X){this.db=X}async create(X){let Y=X.id??GX("thrd"),Q=new Date().toISOString();if(!X.organizationId)throw Error("organizationId is required");if(!X.createdBy)throw Error("createdBy is required");if(!X.title)X.title="New Thread - "+Q;let J={id:Y,organization_id:X.organizationId,title:X.title,description:X.description??null,created_at:Q,updated_at:Q,created_by:X.createdBy,updated_by:X.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(X){let Y=await this.db.selectFrom("threads").selectAll().where("id","=",X).executeTakeFirst();return Y?this.threadFromDbRow(Y):null}async update(X,Y){let J={updated_at:new Date().toISOString()};if(Y.title!==void 0)J.title=Y.title;if(Y.description!==void 0)J.description=Y.description;if(Y.updatedBy!==void 0)J.updated_by=Y.updatedBy;if(Y.hidden!==void 0)J.hidden=Y.hidden;await this.db.updateTable("threads").set(J).where("id","=",X).execute();let G=await this.get(X);if(!G)throw Error("Thread not found after update");return G}async delete(X){await this.db.deleteFrom("threads").where("id","=",X).execute()}async list(X,Y,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",X).where("hidden","=",!1).orderBy("updated_at","desc");if(Y)J=J.where("created_by","=",Y);let G=this.db.selectFrom("threads").select(($)=>$.fn.count("id").as("count")).where("organization_id","=",X).where("hidden","=",!1);if(Y)G=G.where("created_by","=",Y);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[W,Z]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:W.map(($)=>this.threadFromDbRow($)),total:Number(Z?.count||0)}}async saveMessages(X){let Y=new Date().toISOString(),Q=X[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=X.find((W)=>W.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=X.map((W)=>({id:W.id,thread_id:Q,metadata:W.metadata?JSON.stringify(W.metadata):null,parts:JSON.stringify(W.parts),role:W.role,created_at:W.createdAt??Y,updated_at:Y}));await this.db.transaction().execute(async(W)=>{await W.insertInto("thread_messages").values(G).execute(),await W.updateTable("threads").set({updated_at:Y}).where("id","=",Q).execute()})}async listMessages(X,Y){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",X).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((Z)=>Z.fn.count("id").as("count")).where("thread_id","=",X);if(Y?.limit)Q=Q.limit(Y.limit);if(Y?.offset)Q=Q.offset(Y.offset);let[G,W]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((Z)=>this.messageFromDbRow(Z)),total:Number(W?.count||0)}}threadFromDbRow(X){return{id:X.id,organizationId:X.organization_id,title:X.title,description:X.description,createdAt:typeof X.created_at==="string"?X.created_at:X.created_at.toISOString(),updatedAt:typeof X.updated_at==="string"?X.updated_at:X.updated_at.toISOString(),createdBy:X.created_by,updatedBy:X.updated_by,hidden:X.hidden}}messageFromDbRow(X){let Y,Q;try{Y=X.metadata?JSON.parse(X.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${X.id}:`,X.metadata,J),Y=void 0}try{Q=typeof X.parts==="string"?JSON.parse(X.parts):X.parts}catch(J){console.error(`Failed to parse parts for message ${X.id}:`,X.parts,J),Q=[]}return{id:X.id,threadId:X.thread_id,metadata:Y,parts:Q,role:X.role,createdAt:typeof X.created_at==="string"?X.created_at:X.created_at.toISOString(),updatedAt:typeof X.updated_at==="string"?X.updated_at:X.updated_at.toISOString()}}}var BH1=S(()=>{wZ()});function Kp6(X){if(!X)return;try{let Y=JSON.parse(X);if(typeof Y!=="object"||Y===null||Array.isArray(Y))return;let Q={};for(let[J,G]of Object.entries(Y))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function Hp6(X,Y){for(let[Q,J]of Object.entries(Y)){let G=X[Q];if(!G||G.length===0){let W=X["*"];if(!W||W.length===0)return!1;if(W.includes("*"))continue;for(let Z of J)if(!W.includes(Z))return!1;continue}if(G.includes("*"))continue;for(let W of J)if(!G.includes(W))return!1}return!0}function Fp6(X){let{auth:Y,headers:Q,role:J,permissions:G,userId:W}=X,Z=Y.api.hasPermission;return{hasPermission:async($)=>{if(J&&e90.includes(J))return!0;if(G)return Hp6(G,$);if(!Z)return console.error("[Auth] hasPermission API not available"),!1;try{if((await Z({headers:Q,body:{permission:$}}))?.success===!0)return!0;let H={};for(let V of Object.keys($))H[V]=["*"];return(await Z({headers:Q,body:{permission:H}}))?.success===!0}catch(K){return console.error("[Auth] Permission check failed:",K),!1}},organization:{create:async($)=>{return Y.api.createOrganization({headers:Q,body:$})},update:async($)=>{return Y.api.updateOrganization({headers:Q,body:$})},delete:async($)=>{await Y.api.deleteOrganization({headers:Q,body:{organizationId:$}})},get:async($)=>{return Y.api.getFullOrganization({headers:Q,query:$?{organizationId:$}:void 0})},list:async($)=>{return Y.api.listOrganizations({headers:Q,query:$?{userId:$}:void 0})},addMember:async($)=>{return Y.api.addMember({headers:Q,body:$})},removeMember:async($)=>{await Y.api.removeMember({headers:Q,body:$})},listMembers:async($)=>{return Y.api.listMembers({headers:Q,query:$?{organizationId:$.organizationId,limit:$.limit,offset:$.offset}:void 0})},updateMemberRole:async($)=>{return Y.api.updateMemberRole({headers:Q,body:$})}},apiKey:{create:async($)=>{return Y.api.createApiKey({body:{...$,userId:W}})},list:async()=>{return Y.api.listApiKeys({headers:Q})},update:async($)=>{return Y.api.updateApiKey({body:{...$,userId:W}})},delete:async($)=>{await Y.api.deleteApiKey({headers:Q,body:{keyId:$}})}}}}async function Vp6(X,Y,Q){if(e90.includes(Q))return;let J=await X.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Y).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 qp6(X,Y,Q,J=NH1){let G=X.headers.get("Authorization");try{let W=new Headers(X.headers);W.set("X-MCP-Session-Auth","true");let Z=await J.measure("auth_get_mcp_session",()=>Y.api.getMcpSession({headers:W}));if(Z){let $=Z.userId,K=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","=",$).executeTakeFirst()),H=K?.role,F=K?{id:K.orgId,slug:K.orgSlug,name:K.orgName}:void 0,V;if(K&&H)V=await J.measure("auth_fetch_role_permissions",()=>Vp6(Q,K.organizationId,H));return{user:{id:$,role:H},role:H,permissions:V,organization:F}}}catch(W){console.error("[Auth] OAuth session check failed:",W)}if(G?.startsWith("Bearer ")){let W=G.replace("Bearer ","").trim();try{let Z=await J.measure("auth_verify_mesh_jwt",()=>EK1(W));if(Z){let $,K=Z.metadata?.organizationId;if(Z.sub&&K)$=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",Z.sub).where("member.organizationId","=",K).executeTakeFirst()))?.role;return{user:{id:Z.sub,connectionId:Z.metadata?.connectionId,role:$},role:$,permissions:Z.permissions,organization:Z.metadata?.organizationId?{id:Z.metadata?.organizationId}:void 0}}}catch{}try{let Z=await J.measure("auth_verify_api_key",()=>Y.api.verifyApiKey({body:{key:W}}));if(Z?.valid&&Z.key){let $=Z.key.metadata?.organization,K=Z.key.permissions,H,F=Z.key.userId;if(F&&$?.id)H=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",F).where("member.organizationId","=",$.id).executeTakeFirst()))?.role;return{apiKeyId:Z.key.id,user:{id:Z.key.userId,role:H},role:H,permissions:K,organization:$?{id:$.id,slug:$.slug,name:$.name}:void 0}}}catch(Z){console.error("[Auth] API key check failed:",Z)}}try{let W=await J.measure("auth_get_session",()=>Y.api.getSession({headers:X.headers}));if(W){let Z,$;if(W.session.activeOrganizationId){let K=await J.measure("auth_get_full_organization",()=>Y.api.getFullOrganization({headers:X.headers}).catch(()=>null));if(K)Z={id:K.id,slug:K.slug,name:K.name},$=K.members?.find((F)=>F.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:$},role:$,organization:Z}}}catch(W){let Z=W;console.error("[Auth] Session check failed:",JSON.stringify({message:Z.message,body:Z.body,stack:Z.stack},null,2))}return{user:void 0}}function OH1(X){let Y=new JA(X.encryption.key),Q={connections:new GA(X.db,Y),organizationSettings:new LQ0(X.db),monitoring:new OQ0(X.db,X.databaseType),virtualMcps:new DQ0(X.db),users:new wQ0(X.db),threads:new _Q0(X.db)};return async(J,G)=>{let W=G?.timings??NH1,Z=J?.headers.get("x-caller-id")??void 0,$=J?await qp6(J,X.auth,X.db,W):{user:void 0},K=Fp6({auth:X.auth,headers:J?.headers??new Headers,role:$.role,permissions:$.permissions,userId:$.user?.id}),H={user:$.user};if($.apiKeyId)H.apiKey={id:$.apiKeyId,name:"",userId:""};let F=$.organization,V=J?new URL(J.url):new URL("http://localhost:3000"),q=process.env.BASE_URL??`${V.protocol}//${V.host}`,z=new dK(X.auth,H.user?.id,void 0,K,$.role,"self"),D={timings:W,auth:H,connectionId:Z,organization:F,storage:Q,vault:Y,authInstance:X.auth,boundAuth:K,access:z,db:X.db,tracer:X.observability.tracer,meter:X.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Up6.map((N)=>[N,J?.headers.get(N)??null]).filter(([N,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:Kp6(J?.headers.get("x-mesh-properties"))},eventBus:X.eventBus,createMCPProxy:async(N)=>{return await VH1(N,D)}};return D}}var DH1,pK,NH1,Up6;var nf=S(()=>{BQ0();XY0();YY0();jK1();IK1();uf();iA();XQ0();BH1();pK={set:(X)=>{DH1=X},create:async(X,Y)=>{return await DH1(X,Y)}},NH1={measure:async(X,Y)=>{return await Y()}},Up6=["x-hub-signature-256"]});class LH1{db;constructor(X){this.db=X}async publishEvent(X){let Y=new Date().toISOString();return await this.db.insertInto("events").values({id:X.id,organization_id:X.organizationId,type:X.type,source:X.source,specversion:"1.0",subject:X.subject??null,time:X.time,datacontenttype:X.datacontenttype??"application/json",dataschema:X.dataschema??null,data:X.data?JSON.stringify(X.data):null,cron:X.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Y,updated_at:Y}).execute(),{id:X.id,organizationId:X.organizationId,type:X.type,source:X.source,specversion:"1.0",subject:X.subject??null,time:X.time,datacontenttype:X.datacontenttype??"application/json",dataschema:X.dataschema??null,data:X.data??null,cron:X.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:Y,updatedAt:Y}}async subscribe(X){let Y=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X.organizationId).where("connection_id","=",X.connectionId).where("event_type","=",X.eventType);if(X.publisher)Y=Y.where("publisher","=",X.publisher);else Y=Y.where("publisher","is",null);if(X.filter)Y=Y.where("filter","=",X.filter);else Y=Y.where("filter","is",null);let Q=await Y.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:X.id,organization_id:X.organizationId,connection_id:X.connectionId,publisher:X.publisher??null,event_type:X.eventType,filter:X.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:X.id,organizationId:X.organizationId,connectionId:X.connectionId,publisher:X.publisher??null,eventType:X.eventType,filter:X.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(X,Y){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",X).where("organization_id","=",Y).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(X,Y){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X);if(Y)Q=Q.where("connection_id","=",Y);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(X,Y){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",X).where("organization_id","=",Y).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(X){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X.organizationId).where("enabled","=",1).where("event_type","=",X.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",X.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(X,Y,Q){if(Y.length===0)return;let J=new Date().toISOString(),G=Q??null,W=Y.map((Z)=>({id:crypto.randomUUID(),event_id:X,subscription_id:Z,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(W).execute()}async claimPendingDeliveries(X){let Y=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(W)=>W.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((Z)=>Z.or([Z("d.next_retry_at","is",null),Z("d.next_retry_at","<=",Y)])).orderBy("d.created_at","asc").limit(X)).where("status","=","pending").returning(["id"]).execute()).map((W)=>W.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((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",Y)])).orderBy("d.created_at","asc").limit(X).execute();if(G.length===0)return[];Q=G.map((W)=>W.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(X){if(X.length===0)return;let Y=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:Y}).where("id","in",X).execute()}async markDeliveriesFailed(X,Y,Q=20,J=1000,G=3600000){if(X.length===0)return;for(let W of X){let Z=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",W).executeTakeFirst();if(!Z)continue;let $=Z.attempts+1;if($>=Q)await this.db.updateTable("event_deliveries").set({attempts:$,last_error:Y,status:"failed",next_retry_at:null}).where("id","=",W).execute();else{let K=Math.min(J*Math.pow(2,$-1),G),H=new Date(Date.now()+K).toISOString();await this.db.updateTable("event_deliveries").set({attempts:$,last_error:Y,status:"pending",next_retry_at:H}).where("id","=",W).execute()}}}async updateEventStatus(X){let Y=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",X).execute();if(Y.length===0)return;let Q=Y.every((W)=>W.status==="delivered"),J=Y.some((W)=>W.status==="failed"),G=Y.some((W)=>W.status==="pending"||W.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",X).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",X).execute()}async resetStuckDeliveries(){let X=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(X.numUpdatedRows??0)}async getEvent(X,Y){let Q=await this.db.selectFrom("events").selectAll().where("id","=",X).where("organization_id","=",Y).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(X,Y,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",X).where("type","=",Y).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(X,Y,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",X).where("organization_id","=",Y).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","=",X).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(X,Y){if(X.length===0)return;let Q=new Date(Date.now()+Y).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",X).execute()}async ackDelivery(X,Y,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",X).where("organization_id","=",Y).executeTakeFirst())return{success:!1};let W=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",X).where("status","in",["pending","processing"]).where((Z)=>Z.exists(Z.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",Y))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(W)await this.updateEventStatus(X);return{success:W}}async syncSubscriptions(X){let{organizationId:Y,connectionId:Q,subscriptions:J}=X,G=(w,C)=>{return`${w}::${C??""}`},W=await this.listSubscriptions(Y,Q),Z=new Map;for(let w of W)Z.set(G(w.eventType,w.publisher),w);let $=new Map;for(let w of J)$.set(G(w.eventType,w.publisher),w);let K=new Date().toISOString(),H=[],F=[],V=[],q=0;for(let[w,C]of $){let T=Z.get(w);if(!T)H.push({id:crypto.randomUUID(),organization_id:Y,connection_id:Q,event_type:C.eventType,publisher:C.publisher??null,filter:C.filter??null,enabled:1,created_at:K,updated_at:K});else{let A=T.filter??null,P=C.filter??null;if(A!==P)F.push({id:T.id,filter:P});else q++}}for(let[w,C]of Z)if(!$.has(w))V.push(C.id);if(H.length>0)await this.db.insertInto("event_subscriptions").values(H).execute();if(F.length>0)await Promise.all(F.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:K}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let z=H.length,D=F.length,N=V.length,L=await this.listSubscriptions(Y,Q);return{created:z,updated:D,deleted:N,unchanged:q,subscriptions:L}}}function wH1(X){return new LH1(X)}function K9(X,Y,Q,J,G,W,Z,$){return K9.fromTZ(K9.tp(X,Y,Q,J,G,W,Z),$)}function yQ0(X,Y=new Date){let Q=Y.toLocaleString("en-US",{timeZone:X,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=Y.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function zp6(X,Y){let Q=new Date(Date.parse(X));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=X.substring(9);return X.includes("Z")||J.includes("-")||J.includes("+")?K9.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):K9.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),Y)}function Bp6(X){if(X===void 0&&(X={}),delete X.name,X.legacyMode=X.legacyMode===void 0?!0:X.legacyMode,X.paused=X.paused===void 0?!1:X.paused,X.maxRuns=X.maxRuns===void 0?1/0:X.maxRuns,X.catch=X.catch===void 0?!1:X.catch,X.interval=X.interval===void 0?0:parseInt(X.interval.toString(),10),X.utcOffset=X.utcOffset===void 0?void 0:parseInt(X.utcOffset.toString(),10),X.unref=X.unref===void 0?!1:X.unref,X.startAt&&(X.startAt=new V5(X.startAt,X.timezone)),X.stopAt&&(X.stopAt=new V5(X.stopAt,X.timezone)),X.interval!==null){if(isNaN(X.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(X.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(X.utcOffset!==void 0){if(isNaN(X.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(X.utcOffset<-870||X.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(X.utcOffset!==void 0&&X.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(X.unref!==!0&&X.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return X}function aA(X){return Object.prototype.toString.call(X)==="[object Function]"||typeof X=="function"||X instanceof Function}function Dp6(X){return aA(X)}function Np6(X){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(X):X&&typeof X.unref<"u"&&X.unref()}var bQ0=32,rA,TH1,MH1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(X,Y){this.pattern=X,this.timezone=Y,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 X=this.pattern.replace(/\s+/g," ").split(" ");if(X.length<5||X.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(X.length===5&&X.unshift("0"),X[3].indexOf("L")>=0&&(X[3]=X[3].replace("L",""),this.lastDayOfMonth=!0),X[3]=="*"&&(this.starDOM=!0),X[4].length>=3&&(X[4]=this.replaceAlphaMonths(X[4])),X[5].length>=3&&(X[5]=this.replaceAlphaDays(X[5])),X[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Y=new V5(new Date,this.timezone).getDate(!0);X[0]=X[0].replace("?",Y.getSeconds().toString()),X[1]=X[1].replace("?",Y.getMinutes().toString()),X[2]=X[2].replace("?",Y.getHours().toString()),this.starDOM||(X[3]=X[3].replace("?",Y.getDate().toString())),X[4]=X[4].replace("?",(Y.getMonth()+1).toString()),this.starDOW||(X[5]=X[5].replace("?",Y.getDay().toString()))}this.throwAtIllegalCharacters(X),this.partToArray("second",X[0],0,1),this.partToArray("minute",X[1],0,1),this.partToArray("hour",X[2],0,1),this.partToArray("day",X[3],-1,1),this.partToArray("month",X[4],-1,1),this.partToArray("dayOfWeek",X[5],0,rA),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(X,Y,Q,J){let G=this[X],W=X==="day"&&this.lastDayOfMonth;if(Y===""&&!W)throw TypeError("CronPattern: configuration entry "+X+" ("+Y+") is empty, check for trailing spaces.");if(Y==="*")return G.fill(J);let Z=Y.split(",");if(Z.length>1)for(let $=0;$<Z.length;$++)this.partToArray(X,Z[$],Q,J);else Y.indexOf("-")!==-1&&Y.indexOf("/")!==-1?this.handleRangeWithStepping(Y,X,Q,J):Y.indexOf("-")!==-1?this.handleRange(Y,X,Q,J):Y.indexOf("/")!==-1?this.handleStepping(Y,X,Q,J):Y!==""&&this.handleNumber(Y,X,Q,J)}throwAtIllegalCharacters(X){for(let Y=0;Y<X.length;Y++)if((Y===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(X[Y]))throw TypeError("CronPattern: configuration entry "+Y+" ("+X[Y]+") contains illegal characters.")}handleNumber(X,Y,Q,J){let G=this.extractNth(X,Y),W=parseInt(G[0],10)+Q;if(isNaN(W))throw TypeError("CronPattern: "+Y+" is not a number: '"+X+"'");this.setPart(Y,W,G[1]||J)}setPart(X,Y,Q){if(!Object.prototype.hasOwnProperty.call(this,X))throw TypeError("CronPattern: Invalid part specified: "+X);if(X==="dayOfWeek"){if(Y===7&&(Y=0),Y<0||Y>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Y);this.setNthWeekdayOfMonth(Y,Q);return}if(X==="second"||X==="minute"){if(Y<0||Y>=60)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="hour"){if(Y<0||Y>=24)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="day"){if(Y<0||Y>=31)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="month"&&(Y<0||Y>=12))throw RangeError("CronPattern: Invalid value for "+X+": "+Y);this[X][Y]=Q}handleRangeWithStepping(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(W===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+X+"'");let[,Z,$,K]=W,H=parseInt(Z,10)+Q,F=parseInt($,10)+Q,V=parseInt(K,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[Y].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Y].length+")");if(H>F)throw TypeError("CronPattern: From value is larger than to value: '"+X+"'");for(let q=H;q<=F;q+=V)this.setPart(Y,q,G[1]||J)}extractNth(X,Y){let Q=X,J;if(Q.includes("#")){if(Y!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].split("-");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+X+"'");let Z=parseInt(W[0],10)+Q,$=parseInt(W[1],10)+Q;if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(Z>$)throw TypeError("CronPattern: From value is larger than to value: '"+X+"'");for(let K=Z;K<=$;K++)this.setPart(Y,K,G[1]||J)}handleStepping(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].split("/");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+X+"'");W[0]===""&&(W[0]="*");let Z=0;W[0]!=="*"&&(Z=parseInt(W[0],10)+Q);let $=parseInt(W[1],10);if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if($===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if($>this[Y].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Y].length+")");for(let K=Z;K<this[Y].length;K+=$)this.setPart(Y,K,G[1]||J)}replaceAlphaDays(X){return X.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(X){return X.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(X){let Y=X.trim().toLowerCase();return Y==="@yearly"||Y==="@annually"?"0 0 1 1 *":Y==="@monthly"?"0 0 1 * *":Y==="@weekly"?"0 0 * * 0":Y==="@daily"?"0 0 * * *":Y==="@hourly"?"0 * * * *":X}setNthWeekdayOfMonth(X,Y){if(typeof Y!="number"&&Y==="L")this.dayOfWeek[X]=this.dayOfWeek[X]|bQ0;else if(Y===rA)this.dayOfWeek[X]=rA;else if(Y<6&&Y>0)this.dayOfWeek[X]=this.dayOfWeek[X]|TH1[Y-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Y}, Type: ${typeof Y}`)}},PH1,jZ,V5=class X{tz;ms;second;minute;hour;day;month;year;constructor(Y,Q){if(this.tz=Q,Y&&Y instanceof Date)if(!isNaN(Y))this.fromDate(Y);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Y===void 0)this.fromDate(new Date);else if(Y&&typeof Y=="string")this.fromString(Y);else if(Y instanceof X)this.fromCronDate(Y);else throw TypeError("CronDate: Invalid type ("+typeof Y+") passed to CronDate constructor")}isNthWeekdayOfMonth(Y,Q,J,G){let W=new Date(Date.UTC(Y,Q,J)).getUTCDay(),Z=0;for(let $=1;$<=J;$++)new Date(Date.UTC(Y,Q,$)).getUTCDay()===W&&Z++;if(G&rA&&TH1[Z-1]&G)return!0;if(G&bQ0){let $=new Date(Date.UTC(Y,Q+1,0)).getUTCDate();for(let K=J+1;K<=$;K++)if(new Date(Date.UTC(Y,Q,K)).getUTCDay()===W)return!1;return!0}return!1}fromDate(Y){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Y.getUTCMilliseconds(),this.second=Y.getUTCSeconds(),this.minute=Y.getUTCMinutes()+this.tz,this.hour=Y.getUTCHours(),this.day=Y.getUTCDate(),this.month=Y.getUTCMonth(),this.year=Y.getUTCFullYear(),this.apply();else{let Q=K9.toTZ(Y,this.tz);this.ms=Y.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=Y.getMilliseconds(),this.second=Y.getSeconds(),this.minute=Y.getMinutes(),this.hour=Y.getHours(),this.day=Y.getDate(),this.month=Y.getMonth(),this.year=Y.getFullYear()}fromCronDate(Y){this.tz=Y.tz,this.year=Y.year,this.month=Y.month,this.day=Y.day,this.hour=Y.hour,this.minute=Y.minute,this.second=Y.second,this.ms=Y.ms}apply(){if(this.month>11||this.day>PH1[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Y=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Y.getUTCMilliseconds(),this.second=Y.getUTCSeconds(),this.minute=Y.getUTCMinutes(),this.hour=Y.getUTCHours(),this.day=Y.getUTCDate(),this.month=Y.getUTCMonth(),this.year=Y.getUTCFullYear(),!0}else return!1}fromString(Y){if(typeof this.tz=="number"){let Q=K9.fromTZISO(Y);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(K9.fromTZISO(Y,this.tz))}findNext(Y,Q,J,G){let W=this[Q],Z;J.lastDayOfMonth&&(this.month!==1?Z=PH1[this.month]:Z=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let $=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let K=this[Q]+G;K<J[Q].length;K++){let H=J[Q][K];if(Q==="day"&&J.lastDayOfMonth&&K-G==Z&&(H=1),Q==="day"&&!J.starDOW){let F=J.dayOfWeek[($+(K-G-1))%7];if(F&&F&rA)F=this.isNthWeekdayOfMonth(this.year,this.month,K-G,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);Y.legacyMode&&!J.starDOM?H=H||F:H=H&&F}if(H)return this[Q]=K-G,W!==this[Q]?2:1}return 3}recurse(Y,Q,J){let G=this.findNext(Q,jZ[J][0],Y,jZ[J][2]);if(G>1){let W=J+1;for(;W<jZ.length;)this[jZ[W][0]]=-jZ[W][2],W++;if(G===3)return this[jZ[J][1]]++,this[jZ[J][0]]=-jZ[J][2],this.apply(),this.recurse(Y,Q,0);if(this.apply())return this.recurse(Y,Q,J-1)}return J+=1,J>=jZ.length?this:this.year>=3000?null:this.recurse(Y,Q,J)}increment(Y,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(Y,Q,0)}getDate(Y){return Y||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)):K9.fromTZ(K9.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},AH1=30000,rf,of=class{name;options;_states;fn;constructor(X,Y,Q){let J,G;if(aA(Y))G=Y;else if(typeof Y=="object")J=Y;else if(Y!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(aA(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=Bp6(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 MH1("* * * * *")},X&&(X instanceof Date||typeof X=="string"&&X.indexOf(":")>0)?this._states.once=new V5(X,this.options.timezone||this.options.utcOffset):this._states.pattern=new MH1(X,this.options.timezone),this.name){if(rf.find((W)=>W.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");rf.push(this)}return G!==void 0&&Dp6(G)&&(this.fn=G,this.schedule()),this}nextRun(X){let Y=this._next(X);return Y?Y.getDate(!1):null}nextRuns(X,Y){this._states.maxRuns!==void 0&&X>this._states.maxRuns&&(X=this._states.maxRuns);let Q=[],J=Y||this._states.currentRun||void 0;for(;X--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let X=this.nextRun(this._states.currentRun),Y=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return Y&&Q&&J&&X!==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(X){let Y=this._next(X);return Y?X instanceof V5||X instanceof Date?Y.getTime()-X.getTime():Y.getTime()-new V5(X).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let X=rf.indexOf(this);X>=0&&rf.splice(X,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(X){if(X&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");X&&(this.fn=X);let Y=this.msToNext(),Q=this.nextRun(this._states.currentRun);return Y==null||isNaN(Y)||Q===null?this:(Y>AH1&&(Y=AH1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),Y),this._states.currentTimeout&&this.options.unref&&Np6(this._states.currentTimeout),this)}async _trigger(X){if(this._states.blocking=!0,this._states.currentRun=new V5(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Y){aA(this.options.catch)&&this.options.catch(Y,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new V5(X,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(X){let Y=new Date,Q=!this._states.paused&&Y.getTime()>=X.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&aA(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(X){let Y=!!(X||this._states.currentRun),Q=!1;!X&&this.options.startAt&&this.options.interval&&([X,Y]=this._calculatePreviousRun(X,Y),Q=!X),X=new V5(X,this.options.timezone||this.options.utcOffset),this.options.startAt&&X&&X.getTime()<this.options.startAt.getTime()&&(X=this.options.startAt);let J=this._states.once||new V5(X,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,Y)),this._states.once&&this._states.once.getTime()<=X.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(X,Y){let Q=new V5(void 0,this.options.timezone||this.options.utcOffset),J=X;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 V5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;Y=!0}return J===null&&(J=void 0),[J,Y]}};var fQ0=S(()=>{K9.fromTZISO=(X,Y,Q)=>K9.fromTZ(zp6(X,Y),Q);K9.fromTZ=function(X,Y){let Q=new Date(Date.UTC(X.y,X.m-1,X.d,X.h,X.i,X.s)),J=yQ0(X.tz,Q),G=new Date(Q.getTime()-J),W=yQ0(X.tz,G);if(W-J===0)return G;{let Z=new Date(Q.getTime()-W),$=yQ0(X.tz,Z);if($-W===0)return Z;if(!Y&&$-W>0)return Z;if(Y)throw Error("Invalid date passed to fromTZ()");return G}};K9.toTZ=function(X,Y){let Q=X.toLocaleString("en-US",{timeZone:Y}).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:Y}};K9.tp=(X,Y,Q,J,G,W,Z)=>({y:X,m:Y,d:Q,h:J,i:G,s:W,tz:Z});K9.minitz=K9;rA=31|bQ0,TH1=[1,2,4,8,16],PH1=[31,28,31,30,31,30,31,31,30,31,30,31],jZ=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];rf=[]});var sf;var hQ0=S(()=>{sf={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function EH1(){return async(X,Y)=>{try{let Q=await pK.create(),J=await qH1(X,{...Q,auth:{...Q.auth,user:{id:"notify-worker"}}}),W=await Z90.forClient(J).ON_EVENTS({events:Y});return{success:W.success,error:W.error,retryAfter:W.retryAfter,results:W.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${X}:`,J),{success:!1,error:J}}}}var jH1=S(()=>{nf();Mf();iA()});function CH1(X){return{specversion:"1.0",id:X.id,source:X.source,type:X.type,time:X.time,subject:X.subject??void 0,datacontenttype:X.datacontenttype,dataschema:X.dataschema??void 0,data:X.data??void 0}}function Op6(X){let Y=new Map;for(let J of X){let G=J.subscription.connectionId,W=Y.get(G);if(W){if(W.deliveryIds.push(J.delivery.id),!W.seenEventIds.has(J.event.id))W.seenEventIds.add(J.event.id),W.events.push(CH1(J.event))}else Y.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[CH1(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of Y)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class xQ0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(X,Y){this.storage=X;this.notifySubscriber=EH1(),this.config={...sf,...Y}}async start(){if(this.running)return;let X=await this.storage.resetStuckDeliveries();if(X>0)console.log(`[EventBus] Reset ${X} 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(X){console.error("[EventBus] Error processing events:",X)}finally{this.processing=!1}}async processEvents(){let X=await this.storage.claimPendingDeliveries(this.config.batchSize);if(X.length===0)return;let Y=Op6(X),Q=new Set;for(let[J,G]of Y){try{let W=await this.notifySubscriber(G.connectionId,G.events);if(W.results&&Object.keys(W.results).length>0)await this.processPerEventResults(G,W);else if(W.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(W.retryAfter&&W.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,W.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,W.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(W){let Z=W instanceof Error?W.message:String(W);console.error(`[EventBus] Failed to notify subscription ${J}:`,Z),await this.storage.markDeliveriesFailed(G.deliveryIds,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let W of X)if(G.deliveryIds.includes(W.delivery.id))Q.add(W.event.id)}for(let J of Q)try{await this.storage.updateEventStatus(J);let G=X.find((W)=>W.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(X,Y){let Q=[],J=new Map,G=[],W=new Map;for(let Z=0;Z<X.events.length;Z++){let $=X.events?.[Z];if(!$)continue;let K=X.deliveryIds?.[Z];if(!K)continue;W.set($.id,K)}for(let Z of X.events){let $=W.get(Z.id);if(!$)continue;let K=Y.results?.[Z.id];if(K)if(K.success)Q.push($);else if(K.retryAfter&&K.retryAfter>0){let H=J.get(K.retryAfter)||[];H.push($),J.set(K.retryAfter,H)}else G.push({deliveryId:$,error:K.error||"Event processing failed"});else if(Y.success)Q.push($);else if(Y.retryAfter&&Y.retryAfter>0){let H=J.get(Y.retryAfter)||[];H.push($),J.set(Y.retryAfter,H)}else G.push({deliveryId:$,error:Y.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[Z,$]of J)await this.storage.scheduleRetryWithoutAttemptIncrement($,Z);if(G.length>0){let Z=new Map;for(let{deliveryId:$,error:K}of G){let H=Z.get(K)||[];H.push($),Z.set(K,H)}for(let[$,K]of Z)await this.storage.markDeliveriesFailed(K,$,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(X){if(!X.cron)return;try{let Q=new of(X.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${X.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(X);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${X.id}, skipping next delivery`);return}await this.storage.createDeliveries(X.id,G.map((W)=>W.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${X.id} at ${J}`)}catch(Y){console.error(`[EventBus] Failed to schedule next cron delivery for event ${X.id}:`,Y)}}}var IH1=S(()=>{fQ0();hQ0();jH1()});class gQ0{storage;worker;notifyStrategy;running=!1;constructor(X){this.storage=X.storage,this.notifyStrategy=X.notifyStrategy,this.worker=new xQ0(this.storage,X.config)}async publish(X,Y,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 F=new of(Q.cron).nextRun();if(!F)throw Error("Cron expression does not produce a next run time");J=F.toISOString()}catch(H){throw Error(`Invalid cron expression: ${H instanceof Error?H.message:String(H)}`)}let K=await this.storage.findActiveCronEvent(X,Q.type,Y,Q.cron);if(K)return K}let G=crypto.randomUUID(),W=new Date().toISOString(),Z=await this.storage.publishEvent({id:G,organizationId:X,type:Q.type,source:Y,subject:Q.subject,time:W,data:Q.data,cron:Q.cron}),$=await this.storage.getMatchingSubscriptions(Z);if($.length>0){let K=Q.deliverAt??J;if(await this.storage.createDeliveries(G,$.map((H)=>H.id),K),this.notifyStrategy&&!K)await this.notifyStrategy.notify(G).catch((H)=>{console.warn("[EventBus] Notify failed (non-critical):",H)})}return Z}async subscribe(X,Y){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:X,connectionId:Y.connectionId,publisher:Y.publisher,eventType:Y.eventType,filter:Y.filter})}async unsubscribe(X,Y){return this.storage.unsubscribe(Y,X)}async listSubscriptions(X,Y){return this.storage.listSubscriptions(X,Y)}async getSubscription(X,Y){return this.storage.getSubscription(Y,X)}async getEvent(X,Y){return this.storage.getEvent(Y,X)}async cancelEvent(X,Y,Q){return this.storage.cancelEvent(Y,X,Q)}async ackEvent(X,Y,Q){return this.storage.ackDelivery(Y,X,Q)}async syncSubscriptions(X,Y){return this.storage.syncSubscriptions({organizationId:X,...Y})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((X)=>{console.error("[EventBus] Error processing after notify:",X)})});await this.worker.processNow().catch((X)=>{console.error("[EventBus] Error processing pending events on startup:",X)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(X){console.error("[EventBus] Error stopping notify strategy:",X)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var RH1=S(()=>{fQ0();IH1()});function SH1(...X){return{async start(Y){await Promise.all(X.map((Q)=>Q.start(Y)))},async stop(){await Promise.all(X.map((Y)=>Y.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(Y){await Promise.all(X.map((Q)=>Q.notify(Y).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class tf{intervalMs;timer=null;onNotify=null;constructor(X){this.intervalMs=X}async start(X){if(this.timer)return;this.onNotify=X,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(X){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Lp6}from"kysely";class uQ0{db;pool;listenClient=null;onNotify=null;constructor(X,Y){this.db=X;this.pool=Y}async start(X){if(this.listenClient)return;this.onNotify=X;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(Y)=>{if(Y.channel===pB&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Y)=>{console.error("[PostgresNotify] Connection error:",Y),this.cleanup()}),await this.listenClient.query(`LISTEN ${pB}`),console.log("[PostgresNotify] Started LISTEN on",pB)}catch(Y){console.error("[PostgresNotify] Failed to start LISTEN:",Y),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${pB}`),console.log("[PostgresNotify] Stopped LISTEN on",pB)}catch{}this.cleanup()}}async notify(X){try{await Lp6`SELECT pg_notify(${pB}, ${X})`.execute(this.db)}catch(Y){console.warn("[PostgresNotify] Failed to send NOTIFY:",Y)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var pB="mesh_events";var kH1=()=>{};function vH1(X,Y){let Q=wH1(X.db),J=Y?.pollIntervalMs??sf.pollIntervalMs,G=X.type==="postgres"?SH1(new tf(J),new uQ0(X.db,X.pool)):new tf(J);return new gQ0({storage:Q,config:Y,notifyStrategy:G})}var _H1=S(()=>{RH1();hQ0();kH1()});var yH1;var bH1=S(()=>{yH1={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 fH1,hH1;var xH1=S(()=>{ZG();uB();bH1();fH1=new ZX;fH1.get("/config",async(X)=>{try{let Y=Object.keys(WX.socialProviders??{}),Q=Y.length>0,J=Y.map((Z)=>({name:Z,icon:yH1[Z].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",W={emailAndPassword:{enabled:WX.emailAndPassword?.enabled??!1},magicLink:{enabled:WX.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:WX.ssoConfig?{enabled:!0,providerId:WX.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return X.json({success:!0,config:W})}catch(Y){let Q=Y instanceof Error?Y.message:"Failed to load auth config";return X.json({success:!1,error:Q},500)}});hH1=fH1});function $G(X){if(X==null)return"unknown error";if(typeof X==="string")return X;if(X instanceof Error)return X.message;return JSON.stringify(X)}var U31="vercel.ai.error",wp6,gH1,uH1,O1,z31="AI_APICallError",B31,Mp6,mH1,lH1,$X,D31="AI_EmptyResponseBodyError",N31,Pp6,dH1,pH1,O31,L31="AI_InvalidArgumentError",w31,Ap6,cH1,nH1,M31,P31="AI_InvalidPromptError",A31,Tp6,iH1,aH1,YV,T31="AI_InvalidResponseDataError",E31,Ep6,rH1,oH1,b88,j31="AI_JSONParseError",C31,jp6,sH1,tH1,oA,I31="AI_LoadAPIKeyError",R31,Cp6,eH1,X31,f88,S31="AI_LoadSettingError",k31,Ip6,Y31,Q31,h88,v31="AI_NoContentGeneratedError",_31,Rp6,J31,G31,x88,y31="AI_NoSuchModelError",b31,Sp6,W31,Z31,g88,f31="AI_TooManyEmbeddingValuesForCallError",h31,kp6,$31,K31,u88,x31="AI_TypeValidationError",g31,vp6,H31,F31,EQ,u31="AI_UnsupportedFunctionalityError",m31,_p6,V31,q31,l31;var q4=S(()=>{wp6=Symbol.for(U31),O1=class X extends(uH1=Error,gH1=wp6,uH1){constructor({name:Y,message:Q,cause:J}){super(Q);this[gH1]=!0,this.name=Y,this.cause=J}static isInstance(Y){return X.hasMarker(Y,U31)}static hasMarker(Y,Q){let J=Symbol.for(Q);return Y!=null&&typeof Y==="object"&&J in Y&&typeof Y[J]==="boolean"&&Y[J]===!0}},B31=`vercel.ai.error.${z31}`,Mp6=Symbol.for(B31),$X=class extends(lH1=O1,mH1=Mp6,lH1){constructor({message:X,url:Y,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:W,cause:Z,isRetryable:$=J!=null&&(J===408||J===409||J===429||J>=500),data:K}){super({name:z31,message:X,cause:Z});this[mH1]=!0,this.url=Y,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=W,this.isRetryable=$,this.data=K}static isInstance(X){return O1.hasMarker(X,B31)}},N31=`vercel.ai.error.${D31}`,Pp6=Symbol.for(N31),O31=class extends(pH1=O1,dH1=Pp6,pH1){constructor({message:X="Empty response body"}={}){super({name:D31,message:X});this[dH1]=!0}static isInstance(X){return O1.hasMarker(X,N31)}};w31=`vercel.ai.error.${L31}`,Ap6=Symbol.for(w31),M31=class extends(nH1=O1,cH1=Ap6,nH1){constructor({message:X,cause:Y,argument:Q}){super({name:L31,message:X,cause:Y});this[cH1]=!0,this.argument=Q}static isInstance(X){return O1.hasMarker(X,w31)}},A31=`vercel.ai.error.${P31}`,Tp6=Symbol.for(A31),YV=class extends(aH1=O1,iH1=Tp6,aH1){constructor({prompt:X,message:Y,cause:Q}){super({name:P31,message:`Invalid prompt: ${Y}`,cause:Q});this[iH1]=!0,this.prompt=X}static isInstance(X){return O1.hasMarker(X,A31)}},E31=`vercel.ai.error.${T31}`,Ep6=Symbol.for(E31),b88=class extends(oH1=O1,rH1=Ep6,oH1){constructor({data:X,message:Y=`Invalid response data: ${JSON.stringify(X)}.`}){super({name:T31,message:Y});this[rH1]=!0,this.data=X}static isInstance(X){return O1.hasMarker(X,E31)}},C31=`vercel.ai.error.${j31}`,jp6=Symbol.for(C31),oA=class extends(tH1=O1,sH1=jp6,tH1){constructor({text:X,cause:Y}){super({name:j31,message:`JSON parsing failed: Text: ${X}.
1189
- Error message: ${$G(Y)}`,cause:Y});this[sH1]=!0,this.text=X}static isInstance(X){return O1.hasMarker(X,C31)}},R31=`vercel.ai.error.${I31}`,Cp6=Symbol.for(R31),f88=class extends(X31=O1,eH1=Cp6,X31){constructor({message:X}){super({name:I31,message:X});this[eH1]=!0}static isInstance(X){return O1.hasMarker(X,R31)}},k31=`vercel.ai.error.${S31}`,Ip6=Symbol.for(k31),h88=class extends(Q31=O1,Y31=Ip6,Q31){constructor({message:X}){super({name:S31,message:X});this[Y31]=!0}static isInstance(X){return O1.hasMarker(X,k31)}},_31=`vercel.ai.error.${v31}`,Rp6=Symbol.for(_31),x88=class extends(G31=O1,J31=Rp6,G31){constructor({message:X="No content generated."}={}){super({name:v31,message:X});this[J31]=!0}static isInstance(X){return O1.hasMarker(X,_31)}},b31=`vercel.ai.error.${y31}`,Sp6=Symbol.for(b31),g88=class extends(Z31=O1,W31=Sp6,Z31){constructor({errorName:X=y31,modelId:Y,modelType:Q,message:J=`No such ${Q}: ${Y}`}){super({name:X,message:J});this[W31]=!0,this.modelId=Y,this.modelType=Q}static isInstance(X){return O1.hasMarker(X,b31)}},h31=`vercel.ai.error.${f31}`,kp6=Symbol.for(h31),u88=class extends(K31=O1,$31=kp6,K31){constructor(X){super({name:f31,message:`Too many values for a single embedding call. The ${X.provider} model "${X.modelId}" can only embed up to ${X.maxEmbeddingsPerCall} values per call, but ${X.values.length} values were provided.`});this[$31]=!0,this.provider=X.provider,this.modelId=X.modelId,this.maxEmbeddingsPerCall=X.maxEmbeddingsPerCall,this.values=X.values}static isInstance(X){return O1.hasMarker(X,h31)}},g31=`vercel.ai.error.${x31}`,vp6=Symbol.for(g31),EQ=class X extends(F31=O1,H31=vp6,F31){constructor({value:Y,cause:Q}){super({name:x31,message:`Type validation failed: Value: ${JSON.stringify(Y)}.
1188
+ `})}}}Jd6=[Ca({organizationCreation:{afterCreate:async(X)=>{await G$1(X.organization.id,X.member.userId)}},ac:If,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:Z$1,resourceNameValidation:(X)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test(X)}}},roles:{user:Xd6,admin:Yd6,owner:Qd6},sendInvitationEmail:V$1}),aa({loginPage:"/login",oidcConfig:{scopes:F$1,metadata:{scopes_supported:F$1},loginPage:"/login"}}),ia({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:(X)=>{if(X.headers?.get("X-MCP-Session-Auth")==="true")return null;let Q=X.headers?.get("Authorization");if(Q?.startsWith("Bearer "))return Q.replace("Bearer ","").trim();return null},permissions:{defaultPermissions:{self:["ORGANIZATION_LIST","ORGANIZATION_GET","ORGANIZATION_MEMBER_LIST","COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","API_KEY_CREATE","API_KEY_LIST"]}},rateLimit:{enabled:!1}}),ya({defaultRole:"user",adminRoles:["admin","owner"]}),ta(),ha({jwt:{expirationTime:"5m"}}),BD0(WX.ssoConfig?$$1(WX.ssoConfig):void 0),...WX.magicLinkConfig&&WX.emailProviders&&WX.emailProviders.length>0?[sa(i41(WX.magicLinkConfig,WX.emailProviders))]:[]],Gd6=n60(),Wd6=c41(Gd6),WG=Ri({baseURL:process.env.BASE_URL||"http://localhost:3000",database:Wd6,emailAndPassword:{enabled:!0},...WX,rateLimit:{enabled:process.env.DISABLE_RATE_LIMIT!=="true",window:60,max:1e4},plugins:Jd6,databaseHooks:{user:{create:{after:async(X)=>{if(oL.autoCreateOrganizationOnSignup===!1)return;let Y=X.name?X.name.split(" ")[0]:X.email.split("@")[0],Q=3;for(let J=0;J<Q;J++){let G=`${Y} ${sl6()}`,W=ol6(G);try{await WG.api.createOrganization({body:{name:G,slug:W,userId:X.id}});return}catch(Z){if(!(Z instanceof Error&&("body"in Z)&&Z.body?.code==="ORGANIZATION_ALREADY_EXISTS")||J===Q-1){console.error("Failed to create default organization:",Z);return}}}}}}}})});async function q$1(){console.log("\uD83D\uDD10 Running Better Auth migrations...");try{let{toBeAdded:X,toBeCreated:Y,runMigrations:Q}=await KO(WG.options);if(!X.length&&!Y.length){console.log("\u2705 Better Auth schema is up to date (no migrations needed)");return}console.log("\uD83D\uDCCB Better Auth will create/update the following tables:");for(let J of[...Y,...X])console.log(` - ${J.table}`);await Q(),console.log("\u2705 Better Auth migrations completed successfully")}catch(X){console.warn("\u26A0\uFE0F Better Auth migration failed (tables may be created on first use):",X)}}var U$1=S(()=>{iZ0();uB()});var D$1={};c1(D$1,{runSeed:()=>Jx,runKyselyMigrations:()=>B$1,migrateToLatest:()=>Zd6,migrateDown:()=>$d6});import{Migrator as z$1}from"kysely";async function B$1(X){let Y=new z$1({db:X,provider:{getMigrations:()=>Promise.resolve(BT)}}),{error:Q,results:J}=await Y.migrateToLatest();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" executed successfully`);else if(G.status==="Error")console.error(`\u274C Failed to execute migration "${G.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q}async function Zd6(X){let{keepOpen:Y=!1,database:Q,skipBetterAuth:J=!1,seed:G}=X??{};if(!J&&!Q)await q$1();let W=Q??MF(),Z=async()=>{if(!Y&&!Q)console.log("\uD83D\uDD12 Closing database connection..."),await n41(W).catch(($)=>{console.warn("Warning: Error closing database:",$)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await B$1(W.db),console.log("\uD83C\uDF89 All Kysely migrations completed successfully");let $;if(G)$=await Jx(W.db,G);return await Z(),{seedResult:$}}catch($){throw await Z(),$}}async function $d6(){let X=MF(),Y=new z$1({db:X.db,provider:{getMigrations:()=>Promise.resolve(BT)}}),{error:Q,results:J}=await Y.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var N$1=S(()=>{Qx();K50();U$1();tM()});var lK;var fA=S(()=>{lK=class extends Error{res;status;constructor(X=500,Y){super(Y?.message,{cause:Y?.cause});this.res=Y?.res,this.status=X}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var O$1,Kd6,Hd6=(X,Y)=>{if(!X)return{};let Q=new Headers(X.headers);if(Y){let J=Q.get("connection");if(J){let G=J.split(",").map((Z)=>Z.trim()),W=G.filter((Z)=>!Kd6.test(Z));if(W.length>0)throw new lK(400,{message:`Invalid Connection header value: ${W.join(", ")}`});G.forEach((Z)=>{Q.delete(Z)})}}return O$1.forEach((J)=>{Q.delete(J)}),{method:X.method,body:X.body,duplex:X.body?"half":void 0,headers:Q,signal:X.signal}},Fd6=(X)=>{if(!X.headers||Array.isArray(X.headers)||X.headers instanceof Headers)return X;let Y=new Headers;for(let[Q,J]of Object.entries(X.headers))if(J==null)Y.delete(Q);else Y.set(Q,J);return X.headers=Y,X},L$1=async(X,Y)=>{let{raw:Q,customFetch:J,strictConnectionProcessing:G=!1,...W}=Y instanceof Request?{raw:Y}:Y??{},Z=new Request(X,{...Hd6(Q,G),...Fd6(W)});Z.headers.delete("accept-encoding");let $=await(J||fetch)(Z),K=new Headers($.headers);if(O$1.forEach((H)=>{K.delete(H)}),K.has("content-encoding"))K.delete("content-encoding"),K.delete("content-length");return new Response($.body,{status:$.status,statusText:$.statusText,headers:K})};var w$1=S(()=>{fA();O$1=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Kd6=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var M$1=(X)=>(Y)=>{let Q=new URL(Y.req.raw.url),J=new URL(X);return J.pathname=Q.pathname,J.search=Q.search,L$1(J,{raw:Y.req.raw,headers:{...Y.req.raw.headers}})};var P$1=S(()=>{w$1()});import{resolve as hA,dirname as Vd6,join as qd6,extname as Ud6}from"path";function Dd6(X,Y){let Q=hA(Y),J=hA(X);return J===Q||J.startsWith(Q+"/")}function Nd6({requestPath:X,clientDir:Y}){let Q=X.startsWith("/")?X.slice(1):X,J=hA(Y,Q);if(!Dd6(J,Y))return null;return J}function A$1(X,Y="../client"){let Q=new URL(X),J=Vd6(Q.pathname);return hA(J,Y)}function T$1(X={}){let{env:Y="production",devServerUrl:Q=zd6,clientDir:J=Bd6,isServerPath:G=()=>!1}=X;if(Y==="development"){let W=M$1(Q);return async function($){let K=new URL($.url);if(G(K.pathname))return null;let H={req:{raw:$,url:$.url}};return W(H)}}return async function(Z){if(Z.method!=="GET")return null;let $=new URL(Z.url),K;try{K=decodeURIComponent($.pathname)}catch{return null}if(G(K))return null;let H=Nd6({requestPath:K,clientDir:J});if(!H)return null;let F=qd6(H,"index.html"),V=hA(J,"index.html"),q=Z.headers.get("accept"),D=q?.includes("text/html")||q?.includes("*/*")&&["",".html"].includes(Ud6(H))?[F,V]:[];for(let N of[H,...D])try{let L=Bun.file(N);if(await L.exists())return new Response(L)}catch{}return null}}var zd6="http://localhost:4000",Bd6="./dist/client";var E$1=S(()=>{P$1()});function C$1(X){if(!X)return!1;try{return new URL(X).host==="api.decocms.com"&&X!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var j$1="https://api.decocms.com/mcp/registry";var YQ0=(X,Y,Q)=>{return(J,G)=>{let W=-1;return Z(0);async function Z($){if($<=W)throw Error("next() called multiple times");W=$;let K,H=!1,F;if(X[$])F=X[$][0][0],J.req.routeIndex=$;else F=$===X.length&&G||void 0;if(F)try{K=await F(J,()=>Z($+1))}catch(V){if(V instanceof Error&&Y)J.error=V,K=await Y(V,J),H=!0;else throw V}else if(J.finalized===!1&&Q)K=await Q(J);if(K&&(J.finalized===!1||H))J.res=K;return J}}};var I$1=()=>{};var R$1;var S$1=S(()=>{R$1=Symbol()});async function Od6(X,Y){let Q=await X.formData();if(Q)return Ld6(Q,Y);return{}}function Ld6(X,Y){let Q=Object.create(null);if(X.forEach((J,G)=>{if(!(Y.all||G.endsWith("[]")))Q[G]=J;else wd6(Q,G,J)}),Y.dot)Object.entries(Q).forEach(([J,G])=>{if(J.includes("."))Md6(Q,J,G),delete Q[J]});return Q}var k$1=async(X,Y=Object.create(null))=>{let{all:Q=!1,dot:J=!1}=Y,W=(X instanceof Rf?X.raw.headers:X.headers).get("Content-Type");if(W?.startsWith("multipart/form-data")||W?.startsWith("application/x-www-form-urlencoded"))return Od6(X,{all:Q,dot:J});return{}},wd6=(X,Y,Q)=>{if(X[Y]!==void 0)if(Array.isArray(X[Y]))X[Y].push(Q);else X[Y]=[X[Y],Q];else if(!Y.endsWith("[]"))X[Y]=Q;else X[Y]=[Q]},Md6=(X,Y,Q)=>{let J=X,G=Y.split(".");G.forEach((W,Z)=>{if(Z===G.length-1)J[W]=Q;else{if(!J[W]||typeof J[W]!=="object"||Array.isArray(J[W])||J[W]instanceof File)J[W]=Object.create(null);J=J[W]}})};var v$1=S(()=>{QQ0()});var GQ0=(X)=>{let Y=X.split("/");if(Y[0]==="")Y.shift();return Y},_$1=(X)=>{let{groups:Y,path:Q}=Pd6(X),J=GQ0(Q);return Ad6(J,Y)},Pd6=(X)=>{let Y=[];return X=X.replace(/\{[^}]+\}/g,(Q,J)=>{let G=`@${J}`;return Y.push([G,Q]),G}),{groups:Y,path:X}},Ad6=(X,Y)=>{for(let Q=Y.length-1;Q>=0;Q--){let[J]=Y[Q];for(let G=X.length-1;G>=0;G--)if(X[G].includes(J)){X[G]=X[G].replace(J,Y[Q][1]);break}}return X},Sf,y$1=(X,Y)=>{if(X==="*")return"*";let Q=X.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${X}#${Y}`;if(!Sf[J])if(Q[2])Sf[J]=Y&&Y[0]!==":"&&Y[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${Y})`)]:[X,Q[1],new RegExp(`^${Q[2]}$`)];else Sf[J]=[X,Q[1],!0];return Sf[J]}return null},mB=(X,Y)=>{try{return Y(X)}catch{return X.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return Y(Q)}catch{return Q}})}},Td6=(X)=>mB(X,decodeURI),WQ0=(X)=>{let Y=X.url,Q=Y.indexOf("/",Y.indexOf(":")+4),J=Q;for(;J<Y.length;J++){let G=Y.charCodeAt(J);if(G===37){let W=Y.indexOf("?",J),Z=Y.slice(Q,W===-1?void 0:W);return Td6(Z.includes("%25")?Z.replace(/%25/g,"%2525"):Z)}else if(G===63)break}return Y.slice(Q,J)},b$1=(X)=>{let Y=WQ0(X);return Y.length>1&&Y.at(-1)==="/"?Y.slice(0,-1):Y},rF=(X,Y,...Q)=>{if(Q.length)Y=rF(Y,...Q);return`${X?.[0]==="/"?"":"/"}${X}${Y==="/"?"":`${X?.at(-1)==="/"?"":"/"}${Y?.[0]==="/"?Y.slice(1):Y}`}`},kf=(X)=>{if(X.charCodeAt(X.length-1)!==63||!X.includes(":"))return null;let Y=X.split("/"),Q=[],J="";return Y.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let W=G.replace("?","");J+="/"+W,Q.push(J)}else J+="/"+G}),Q.filter((G,W,Z)=>Z.indexOf(G)===W)},JQ0=(X)=>{if(!/[%+]/.test(X))return X;if(X.indexOf("+")!==-1)X=X.replace(/\+/g," ");return X.indexOf("%")!==-1?mB(X,xA):X},f$1=(X,Y,Q)=>{let J;if(!Q&&Y&&!/[%+]/.test(Y)){let Z=X.indexOf("?",8);if(Z===-1)return;if(!X.startsWith(Y,Z+1))Z=X.indexOf(`&${Y}`,Z+1);while(Z!==-1){let $=X.charCodeAt(Z+Y.length+1);if($===61){let K=Z+Y.length+2,H=X.indexOf("&",K);return JQ0(X.slice(K,H===-1?void 0:H))}else if($==38||isNaN($))return"";Z=X.indexOf(`&${Y}`,Z+1)}if(J=/[%+]/.test(X),!J)return}let G={};J??=/[%+]/.test(X);let W=X.indexOf("?",8);while(W!==-1){let Z=X.indexOf("&",W+1),$=X.indexOf("=",W);if($>Z&&Z!==-1)$=-1;let K=X.slice(W+1,$===-1?Z===-1?void 0:Z:$);if(J)K=JQ0(K);if(W=Z,K==="")continue;let H;if($===-1)H="";else if(H=X.slice($+1,Z===-1?void 0:Z),J)H=JQ0(H);if(Q){if(!(G[K]&&Array.isArray(G[K])))G[K]=[];G[K].push(H)}else G[K]??=H}return Y?G[Y]:G},h$1,x$1=(X,Y)=>{return f$1(X,Y,!0)},xA;var oF=S(()=>{Sf={},h$1=f$1,xA=decodeURIComponent});var g$1=(X)=>mB(X,xA),Rf;var QQ0=S(()=>{fA();S$1();v$1();oF();Rf=class{raw;#X;#Y;routeIndex=0;path;bodyCache={};constructor(X,Y="/",Q=[[]]){this.raw=X,this.path=Y,this.#Y=Q,this.#X={}}param(X){return X?this.#Q(X):this.#J()}#Q(X){let Y=this.#Y[0][this.routeIndex][1][X],Q=this.#W(Y);return Q&&/\%/.test(Q)?g$1(Q):Q}#J(){let X={},Y=Object.keys(this.#Y[0][this.routeIndex][1]);for(let Q of Y){let J=this.#W(this.#Y[0][this.routeIndex][1][Q]);if(J!==void 0)X[Q]=/\%/.test(J)?g$1(J):J}return X}#W(X){return this.#Y[1]?this.#Y[1][X]:X}query(X){return h$1(this.url,X)}queries(X){return x$1(this.url,X)}header(X){if(X)return this.raw.headers.get(X)??void 0;let Y={};return this.raw.headers.forEach((Q,J)=>{Y[J]=Q}),Y}async parseBody(X){return this.bodyCache.parsedBody??=await k$1(this,X)}#G=(X)=>{let{bodyCache:Y,raw:Q}=this,J=Y[X];if(J)return J;let G=Object.keys(Y)[0];if(G)return Y[G].then((W)=>{if(G==="json")W=JSON.stringify(W);return new Response(W)[X]()});return Y[X]=Q[X]()};json(){return this.#G("text").then((X)=>JSON.parse(X))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(X,Y){this.#X[X]=Y}valid(X){return this.#X[X]}get url(){return this.raw.url}get method(){return this.raw.method}get[R$1](){return this.#Y}get matchedRoutes(){return this.#Y[0].map(([[,X]])=>X)}get routePath(){return this.#Y[0].map(([[,X]])=>X)[this.routeIndex].path}}});var vf,Ed6=(X,Y)=>{let Q=new String(X);return Q.isEscaped=!0,Q.callbacks=Y,Q},gA=async(X,Y,Q,J,G)=>{if(typeof X==="object"&&!(X instanceof String)){if(!(X instanceof Promise))X=X.toString();if(X instanceof Promise)X=await X}let W=X.callbacks;if(!W?.length)return Promise.resolve(X);if(G)G[0]+=X;else G=[X];let Z=Promise.all(W.map(($)=>$({phase:Y,buffer:G,context:J}))).then(($)=>Promise.all($.filter(Boolean).map((K)=>gA(K,Y,!1,J,G))).then(()=>G[0]));if(Q)return Ed6(await Z,W);else return Z};var ZQ0=S(()=>{vf={Stringify:1,BeforeStream:2,Stream:3}});var u$1="text/plain; charset=UTF-8",$Q0=(X,Y)=>{return{"Content-Type":X,...Y}},m$1=class{#X;#Y;env={};#Q;finalized=!1;error;#J;#W;#G;#$;#Z;#H;#K;#V;#q;constructor(X,Y){if(this.#X=X,Y)this.#W=Y.executionCtx,this.env=Y.env,this.#H=Y.notFoundHandler,this.#q=Y.path,this.#V=Y.matchResult}get req(){return this.#Y??=new Rf(this.#X,this.#q,this.#V),this.#Y}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=new Response(null,{headers:this.#K??=new Headers})}set res(X){if(this.#G&&X){X=new Response(X.body,X);for(let[Y,Q]of this.#G.headers.entries()){if(Y==="content-type")continue;if(Y==="set-cookie"){let J=this.#G.headers.getSetCookie();X.headers.delete("set-cookie");for(let G of J)X.headers.append("set-cookie",G)}else X.headers.set(Y,Q)}}this.#G=X,this.finalized=!0}render=(...X)=>{return this.#Z??=(Y)=>this.html(Y),this.#Z(...X)};setLayout=(X)=>this.#$=X;getLayout=()=>this.#$;setRenderer=(X)=>{this.#Z=X};header=(X,Y,Q)=>{if(this.finalized)this.#G=new Response(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#K??=new Headers;if(Y===void 0)J.delete(X);else if(Q?.append)J.append(X,Y);else J.set(X,Y)};status=(X)=>{this.#J=X};set=(X,Y)=>{this.#Q??=new Map,this.#Q.set(X,Y)};get=(X)=>{return this.#Q?this.#Q.get(X):void 0};get var(){if(!this.#Q)return{};return Object.fromEntries(this.#Q)}#F(X,Y,Q){let J=this.#G?new Headers(this.#G.headers):this.#K??new Headers;if(typeof Y==="object"&&"headers"in Y){let W=Y.headers instanceof Headers?Y.headers:new Headers(Y.headers);for(let[Z,$]of W)if(Z.toLowerCase()==="set-cookie")J.append(Z,$);else J.set(Z,$)}if(Q)for(let[W,Z]of Object.entries(Q))if(typeof Z==="string")J.set(W,Z);else{J.delete(W);for(let $ of Z)J.append(W,$)}let G=typeof Y==="number"?Y:Y?.status??this.#J;return new Response(X,{status:G,headers:J})}newResponse=(...X)=>this.#F(...X);body=(X,Y,Q)=>this.#F(X,Y,Q);text=(X,Y,Q)=>{return!this.#K&&!this.#J&&!Y&&!Q&&!this.finalized?new Response(X):this.#F(X,Y,$Q0(u$1,Q))};json=(X,Y,Q)=>{return this.#F(JSON.stringify(X),Y,$Q0("application/json",Q))};html=(X,Y,Q)=>{let J=(G)=>this.#F(G,Y,$Q0("text/html; charset=UTF-8",Q));return typeof X==="object"?gA(X,vf.Stringify,!1,{}).then(J):J(X)};redirect=(X,Y)=>{let Q=String(X);return this.header("Location",!/[^\x00-\xFF]/.test(Q)?Q:encodeURI(Q)),this.newResponse(null,Y??302)};notFound=()=>{return this.#H??=()=>new Response,this.#H(this)}};var _f=S(()=>{QQ0();ZQ0()});var X8="ALL",l$1="all",d$1,yf="Can not add a route since the matcher is already built.",bf;var sF=S(()=>{d$1=["get","post","put","delete","options","patch"],bf=class extends Error{}});var p$1="__COMPOSED_HANDLER";var c$1=()=>{};var jd6=(X)=>{return X.text("404 Not Found",404)},n$1=(X,Y)=>{if("getResponse"in X){let Q=X.getResponse();return Y.newResponse(Q.body,Q)}return console.error(X),Y.text("Internal Server Error",500)},i$1=class X{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#X="/";routes=[];constructor(Y={}){[...d$1,l$1].forEach((W)=>{this[W]=(Z,...$)=>{if(typeof Z==="string")this.#X=Z;else this.#J(W,this.#X,Z);return $.forEach((K)=>{this.#J(W,this.#X,K)}),this}}),this.on=(W,Z,...$)=>{for(let K of[Z].flat()){this.#X=K;for(let H of[W].flat())$.map((F)=>{this.#J(H.toUpperCase(),this.#X,F)})}return this},this.use=(W,...Z)=>{if(typeof W==="string")this.#X=W;else this.#X="*",Z.unshift(W);return Z.forEach(($)=>{this.#J(X8,this.#X,$)}),this};let{strict:J,...G}=Y;Object.assign(this,G),this.getPath=J??!0?Y.getPath??WQ0:b$1}#Y(){let Y=new X({router:this.router,getPath:this.getPath});return Y.errorHandler=this.errorHandler,Y.#Q=this.#Q,Y.routes=this.routes,Y}#Q=jd6;errorHandler=n$1;route(Y,Q){let J=this.basePath(Y);return Q.routes.map((G)=>{let W;if(Q.errorHandler===n$1)W=G.handler;else W=async(Z,$)=>(await YQ0([],Q.errorHandler)(Z,()=>G.handler(Z,$))).res,W[p$1]=G.handler;J.#J(G.method,G.path,W)}),this}basePath(Y){let Q=this.#Y();return Q._basePath=rF(this._basePath,Y),Q}onError=(Y)=>{return this.errorHandler=Y,this};notFound=(Y)=>{return this.#Q=Y,this};mount(Y,Q,J){let G,W;if(J)if(typeof J==="function")W=J;else if(W=J.optionHandler,J.replaceRequest===!1)G=(K)=>K;else G=J.replaceRequest;let Z=W?(K)=>{let H=W(K);return Array.isArray(H)?H:[H]}:(K)=>{let H=void 0;try{H=K.executionCtx}catch{}return[K.env,H]};G||=(()=>{let K=rF(this._basePath,Y),H=K==="/"?0:K.length;return(F)=>{let V=new URL(F.url);return V.pathname=V.pathname.slice(H)||"/",new Request(V,F)}})();let $=async(K,H)=>{let F=await Q(G(K.req.raw),...Z(K));if(F)return F;await H()};return this.#J(X8,rF(Y,"*"),$),this}#J(Y,Q,J){Y=Y.toUpperCase(),Q=rF(this._basePath,Q);let G={basePath:this._basePath,path:Q,method:Y,handler:J};this.router.add(Y,Q,[J,G]),this.routes.push(G)}#W(Y,Q){if(Y instanceof Error)return this.errorHandler(Y,Q);throw Y}#G(Y,Q,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(Y,Q,J,"GET")))();let W=this.getPath(Y,{env:J}),Z=this.router.match(G,W),$=new m$1(Y,{path:W,matchResult:Z,env:J,executionCtx:Q,notFoundHandler:this.#Q});if(Z[0].length===1){let H;try{H=Z[0][0][0][0]($,async()=>{$.res=await this.#Q($)})}catch(F){return this.#W(F,$)}return H instanceof Promise?H.then((F)=>F||($.finalized?$.res:this.#Q($))).catch((F)=>this.#W(F,$)):H??this.#Q($)}let K=YQ0(Z[0],this.errorHandler,this.#Q);return(async()=>{try{let H=await K($);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#W(H,$)}})()}fetch=(Y,...Q)=>{return this.#G(Y,Q[1],Q[0],Y.method)};request=(Y,Q,J,G)=>{if(Y instanceof Request)return this.fetch(Q?new Request(Y,Q):Y,J,G);return Y=Y.toString(),this.fetch(new Request(/^https?:\/\//.test(Y)?Y:`http://localhost${rF("/",Y)}`,Q),J,G)};fire=()=>{addEventListener("fetch",(Y)=>{Y.respondWith(this.#G(Y.request,Y,void 0,Y.request.method))})}};var a$1=S(()=>{I$1();_f();sF();c$1();oF()});function ff(X,Y){let Q=this.buildAllMatchers(),J=(G,W)=>{let Z=Q[G]||Q[X8],$=Z[2][W];if($)return $;let K=W.match(Z[0]);if(!K)return[[],uA];let H=K.indexOf("",1);return[Z[1][H],K]};return this.match=J,J(X,Y)}var uA;var KQ0=S(()=>{sF();uA=[]});function Id6(X,Y){if(X.length===1)return Y.length===1?X<Y?-1:1:-1;if(Y.length===1)return 1;if(X===mA||X===lA)return 1;else if(Y===mA||Y===lA)return-1;if(X===hf)return 1;else if(Y===hf)return-1;return X.length===Y.length?X<Y?-1:1:Y.length-X.length}var hf="[^/]+",mA=".*",lA="(?:|/.*)",tF,Cd6,r$1=class X{#X;#Y;#Q=Object.create(null);insert(Y,Q,J,G,W){if(Y.length===0){if(this.#X!==void 0)throw tF;if(W)return;this.#X=Q;return}let[Z,...$]=Y,K=Z==="*"?$.length===0?["","",mA]:["","",hf]:Z==="/*"?["","",lA]:Z.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(K){let F=K[1],V=K[2]||hf;if(F&&K[2]){if(V===".*")throw tF;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw tF}if(H=this.#Q[V],!H){if(Object.keys(this.#Q).some((q)=>q!==mA&&q!==lA))throw tF;if(W)return;if(H=this.#Q[V]=new X,F!=="")H.#Y=G.varIndex++}if(!W&&F!=="")J.push([F,H.#Y])}else if(H=this.#Q[Z],!H){if(Object.keys(this.#Q).some((F)=>F.length>1&&F!==mA&&F!==lA))throw tF;if(W)return;H=this.#Q[Z]=new X}H.insert($,Q,J,G,W)}buildRegExpStr(){let Q=Object.keys(this.#Q).sort(Id6).map((J)=>{let G=this.#Q[J];return(typeof G.#Y==="number"?`(${J})@${G.#Y}`:Cd6.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#X==="number")Q.unshift(`#${this.#X}`);if(Q.length===0)return"";if(Q.length===1)return Q[0];return"(?:"+Q.join("|")+")"}};var HQ0=S(()=>{tF=Symbol(),Cd6=new Set(".\\+*[^]$()")});var o$1=class{#X={varIndex:0};#Y=new r$1;insert(X,Y,Q){let J=[],G=[];for(let Z=0;;){let $=!1;if(X=X.replace(/\{[^}]+\}/g,(K)=>{let H=`@\\${Z}`;return G[Z]=[H,K],Z++,$=!0,H}),!$)break}let W=X.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let Z=G.length-1;Z>=0;Z--){let[$]=G[Z];for(let K=W.length-1;K>=0;K--)if(W[K].indexOf($)!==-1){W[K]=W[K].replace($,G[Z][1]);break}}return this.#Y.insert(W,Y,J,this.#X,Q),J}buildRegExp(){let X=this.#Y.buildRegExpStr();if(X==="")return[/^$/,[],[]];let Y=0,Q=[],J=[];return X=X.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,W,Z)=>{if(W!==void 0)return Q[++Y]=Number(W),"$()";if(Z!==void 0)return J[Number(Z)]=++Y,"";return""}),[new RegExp(`^${X}`),Q,J]}};var s$1=S(()=>{HQ0()});function e$1(X){return t$1[X]??=new RegExp(X==="*"?"":`^${X.replace(/\/\*$|([.\\+*[^\]$()])/g,(Y,Q)=>Q?`\\${Q}`:"(?:|/.*)")}$`)}function Sd6(){t$1=Object.create(null)}function kd6(X){let Y=new o$1,Q=[];if(X.length===0)return Rd6;let J=X.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,F],[V,q])=>H?1:V?-1:F.length-q.length),G=Object.create(null);for(let H=0,F=-1,V=J.length;H<V;H++){let[q,z,D]=J[H];if(q)G[z]=[D.map(([L])=>[L,Object.create(null)]),uA];else F++;let N;try{N=Y.insert(z,F,q)}catch(L){throw L===tF?new bf(z):L}if(q)continue;Q[F]=D.map(([L,w])=>{let C=Object.create(null);w-=1;for(;w>=0;w--){let[T,A]=N[w];C[T]=A}return[L,C]})}let[W,Z,$]=Y.buildRegExp();for(let H=0,F=Q.length;H<F;H++)for(let V=0,q=Q[H].length;V<q;V++){let z=Q[H][V]?.[1];if(!z)continue;let D=Object.keys(z);for(let N=0,L=D.length;N<L;N++)z[D[N]]=$[z[D[N]]]}let K=[];for(let H in Z)K[H]=Q[Z[H]];return[W,K,G]}function lB(X,Y){if(!X)return;for(let Q of Object.keys(X).sort((J,G)=>G.length-J.length))if(e$1(Q).test(Y))return[...X[Q]];return}var Rd6,t$1,xf=class{name="RegExpRouter";#X;#Y;constructor(){this.#X={[X8]:Object.create(null)},this.#Y={[X8]:Object.create(null)}}add(X,Y,Q){let J=this.#X,G=this.#Y;if(!J||!G)throw Error(yf);if(!J[X])[J,G].forEach(($)=>{$[X]=Object.create(null),Object.keys($[X8]).forEach((K)=>{$[X][K]=[...$[X8][K]]})});if(Y==="/*")Y="*";let W=(Y.match(/\/:/g)||[]).length;if(/\*$/.test(Y)){let $=e$1(Y);if(X===X8)Object.keys(J).forEach((K)=>{J[K][Y]||=lB(J[K],Y)||lB(J[X8],Y)||[]});else J[X][Y]||=lB(J[X],Y)||lB(J[X8],Y)||[];Object.keys(J).forEach((K)=>{if(X===X8||X===K)Object.keys(J[K]).forEach((H)=>{$.test(H)&&J[K][H].push([Q,W])})}),Object.keys(G).forEach((K)=>{if(X===X8||X===K)Object.keys(G[K]).forEach((H)=>$.test(H)&&G[K][H].push([Q,W]))});return}let Z=kf(Y)||[Y];for(let $=0,K=Z.length;$<K;$++){let H=Z[$];Object.keys(G).forEach((F)=>{if(X===X8||X===F)G[F][H]||=[...lB(J[F],H)||lB(J[X8],H)||[]],G[F][H].push([Q,W-K+$+1])})}}match=ff;buildAllMatchers(){let X=Object.create(null);return Object.keys(this.#Y).concat(Object.keys(this.#X)).forEach((Y)=>{X[Y]||=this.#Q(Y)}),this.#X=this.#Y=void 0,Sd6(),X}#Q(X){let Y=[],Q=X===X8;if([this.#X,this.#Y].forEach((J)=>{let G=J[X]?Object.keys(J[X]).map((W)=>[W,J[X][W]]):[];if(G.length!==0)Q||=!0,Y.push(...G);else if(X!==X8)Y.push(...Object.keys(J[X8]).map((W)=>[W,J[X8][W]]))}),!Q)return null;else return kd6(Y)}};var FQ0=S(()=>{sF();oF();KQ0();HQ0();s$1();Rd6=[/^$/,[],Object.create(null)],t$1=Object.create(null)});var vd6=class{name="PreparedRegExpRouter";#X;#Y;constructor(X,Y){this.#X=X,this.#Y=Y}#Q(X,Y){let Q=this.#X[X];Q[1].forEach((J)=>J&&J.push(Y)),Object.values(Q[2]).forEach((J)=>J[0].push(Y))}#J(X,Y,Q,J,G){let W=this.#X[X];if(!G)W[2][Y][0].push([Q,{}]);else J.forEach((Z)=>{if(typeof Z==="number")W[1][Z].push([Q,G]);else W[2][Z||Y][0].push([Q,G])})}add(X,Y,Q){if(!this.#X[X]){let G=this.#X[X8],W={};for(let Z in G[2])W[Z]=[G[2][Z][0].slice(),uA];this.#X[X]=[G[0],G[1].map((Z)=>Array.isArray(Z)?Z.slice():0),W]}if(Y==="/*"||Y==="*"){let G=[Q,{}];if(X===X8)for(let W in this.#X)this.#Q(W,G);else this.#Q(X,G);return}let J=this.#Y[Y];if(!J)throw Error(`Path ${Y} is not registered`);for(let[G,W]of J)if(X===X8)for(let Z in this.#X)this.#J(Z,Y,Q,G,W);else this.#J(X,Y,Q,G,W)}buildAllMatchers(){return this.#X}match=ff};var XK1=S(()=>{sF();KQ0();FQ0()});var YK1=S(()=>{FQ0();XK1()});var VQ0=class{name="SmartRouter";#X=[];#Y=[];constructor(X){this.#X=X.routers}add(X,Y,Q){if(!this.#Y)throw Error(yf);this.#Y.push([X,Y,Q])}match(X,Y){if(!this.#Y)throw Error("Fatal error");let Q=this.#X,J=this.#Y,G=Q.length,W=0,Z;for(;W<G;W++){let $=Q[W];try{for(let K=0,H=J.length;K<H;K++)$.add(...J[K]);Z=$.match(X,Y)}catch(K){if(K instanceof bf)continue;throw K}this.match=$.match.bind($),this.#X=[$],this.#Y=void 0;break}if(W===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,Z}get activeRouter(){if(this.#Y||this.#X.length!==1)throw Error("No active router has been determined yet.");return this.#X[0]}};var QK1=S(()=>{sF()});var JK1=S(()=>{QK1()});var dA,GK1=class X{#X;#Y;#Q;#J=0;#W=dA;constructor(Y,Q,J){if(this.#Y=J||Object.create(null),this.#X=[],Y&&Q){let G=Object.create(null);G[Y]={handler:Q,possibleKeys:[],score:0},this.#X=[G]}this.#Q=[]}insert(Y,Q,J){this.#J=++this.#J;let G=this,W=_$1(Q),Z=[];for(let $=0,K=W.length;$<K;$++){let H=W[$],F=W[$+1],V=y$1(H,F),q=Array.isArray(V)?V[0]:H;if(q in G.#Y){if(G=G.#Y[q],V)Z.push(V[1]);continue}if(G.#Y[q]=new X,V)G.#Q.push(V),Z.push(V[1]);G=G.#Y[q]}return G.#X.push({[Y]:{handler:J,possibleKeys:Z.filter(($,K,H)=>H.indexOf($)===K),score:this.#J}}),G}#G(Y,Q,J,G){let W=[];for(let Z=0,$=Y.#X.length;Z<$;Z++){let K=Y.#X[Z],H=K[Q]||K[X8],F={};if(H!==void 0){if(H.params=Object.create(null),W.push(H),J!==dA||G&&G!==dA)for(let V=0,q=H.possibleKeys.length;V<q;V++){let z=H.possibleKeys[V],D=F[H.score];H.params[z]=G?.[z]&&!D?G[z]:J[z]??G?.[z],F[H.score]=!0}}}return W}search(Y,Q){let J=[];this.#W=dA;let W=[this],Z=GQ0(Q),$=[];for(let K=0,H=Z.length;K<H;K++){let F=Z[K],V=K===H-1,q=[];for(let z=0,D=W.length;z<D;z++){let N=W[z],L=N.#Y[F];if(L)if(L.#W=N.#W,V){if(L.#Y["*"])J.push(...this.#G(L.#Y["*"],Y,N.#W));J.push(...this.#G(L,Y,N.#W))}else q.push(L);for(let w=0,C=N.#Q.length;w<C;w++){let T=N.#Q[w],A=N.#W===dA?{}:{...N.#W};if(T==="*"){let b=N.#Y["*"];if(b)J.push(...this.#G(b,Y,N.#W)),b.#W=A,q.push(b);continue}let[P,j,R]=T;if(!F&&!(R instanceof RegExp))continue;let v=N.#Y[P],y=Z.slice(K).join("/");if(R instanceof RegExp){let b=R.exec(y);if(b){if(A[j]=b[0],J.push(...this.#G(v,Y,N.#W,A)),Object.keys(v.#Y).length){v.#W=A;let f=b[0].match(/\//)?.length??0;($[f]||=[]).push(v)}continue}}if(R===!0||R.test(F))if(A[j]=F,V){if(J.push(...this.#G(v,Y,A,N.#W)),v.#Y["*"])J.push(...this.#G(v.#Y["*"],Y,A,N.#W))}else v.#W=A,q.push(v)}}W=q.concat($.shift()??[])}if(J.length>1)J.sort((K,H)=>{return K.score-H.score});return[J.map(({handler:K,params:H})=>[K,H])]}};var WK1=S(()=>{sF();oF();dA=Object.create(null)});var qQ0=class{name="TrieRouter";#X;constructor(){this.#X=new GK1}add(X,Y,Q){let J=kf(Y);if(J){for(let G=0,W=J.length;G<W;G++)this.#X.insert(X,J[G],Q);return}this.#X.insert(X,Y,Q)}match(X,Y){return this.#X.search(X,Y)}};var ZK1=S(()=>{oF();WK1()});var $K1=S(()=>{ZK1()});var ZX;var KK1=S(()=>{a$1();YK1();JK1();$K1();ZX=class extends i$1{constructor(X={}){super(X);this.router=X.router??new VQ0({routers:[new xf,new qQ0]})}}});var ZG=S(()=>{KK1()});var _d6,yd6,UQ0=(X,Y)=>{if(Y&&X.indexOf(Y)===-1)return{};let Q=X.trim().split(";"),J={};for(let G of Q){G=G.trim();let W=G.indexOf("=");if(W===-1)continue;let Z=G.substring(0,W).trim();if(Y&&Y!==Z||!_d6.test(Z))continue;let $=G.substring(W+1).trim();if($.startsWith('"')&&$.endsWith('"'))$=$.slice(1,-1);if(yd6.test($)){if(J[Z]=$.indexOf("%")!==-1?mB($,xA):$,Y)break}}return J};var HK1=S(()=>{oF();_d6=/^[\w!#$%&'*.^`|~+-]+$/,yd6=/^[ !#-:<-[\]-~]*$/});var FK1=(X,Y,Q)=>{let J=X.req.raw.headers.get("Cookie");if(typeof Y==="string"){if(!J)return;let W=Y;if(Q==="secure")W="__Secure-"+Y;else if(Q==="host")W="__Host-"+Y;return UQ0(J,W)[W]}if(!J)return{};return UQ0(J)};var VK1=S(()=>{HK1()});var qK1=(X)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...X},J=((W)=>{if(typeof W==="string")if(W==="*")return()=>W;else return(Z)=>W===Z?Z:null;else if(typeof W==="function")return W;else return(Z)=>W.includes(Z)?Z:null})(Q.origin),G=((W)=>{if(typeof W==="function")return W;else if(Array.isArray(W))return()=>W;else return()=>[]})(Q.allowMethods);return async function(Z,$){function K(F,V){Z.res.headers.set(F,V)}let H=await J(Z.req.header("origin")||"",Z);if(H)K("Access-Control-Allow-Origin",H);if(Q.credentials)K("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)K("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(Z.req.method==="OPTIONS"){if(Q.origin!=="*")K("Vary","Origin");if(Q.maxAge!=null)K("Access-Control-Max-Age",Q.maxAge.toString());let F=await G(Z.req.header("origin")||"",Z);if(F.length)K("Access-Control-Allow-Methods",F.join(","));let V=Q.allowHeaders;if(!V?.length){let q=Z.req.header("Access-Control-Request-Headers");if(q)V=q.split(/\s*,\s*/)}if(V?.length)K("Access-Control-Allow-Headers",V.join(",")),Z.res.headers.append("Vary","Access-Control-Request-Headers");return Z.res.headers.delete("Content-Length"),Z.res.headers.delete("Content-Type"),new Response(null,{headers:Z.res.headers,status:204,statusText:"No Content"})}if(await $(),Q.origin!=="*")Z.header("Vary","Origin",{append:!0})}};var UK1=()=>{};function bd6(){let{process:X,Deno:Y}=globalThis;return!(typeof Y?.noColor==="boolean"?Y.noColor:X!==void 0?"NO_COLOR"in X?.env:!1)}async function zK1(){let{navigator:X}=globalThis,Y="cloudflare:workers";return!(X!==void 0&&X.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!bd6())}var BK1=()=>{};async function DK1(X,Y,Q,J,G=0,W){let Z=Y==="<--"?`${Y} ${Q} ${J}`:`${Y} ${Q} ${J} ${await xd6(G)} ${W}`;X(Z)}var fd6=(X)=>{let[Y,Q]=[",","."];return X.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Y)).join(Q)},hd6=(X)=>{let Y=Date.now()-X;return fd6([Y<1000?Y+"ms":Math.round(Y/1000)+"s"])},xd6=async(X)=>{if(await zK1())switch(X/100|0){case 5:return`\x1B[31m${X}\x1B[0m`;case 4:return`\x1B[33m${X}\x1B[0m`;case 3:return`\x1B[36m${X}\x1B[0m`;case 2:return`\x1B[32m${X}\x1B[0m`}return`${X}`},NK1=(X=console.log)=>{return async function(Q,J){let{method:G,url:W}=Q.req,Z=W.slice(W.indexOf("/",8));await DK1(X,"<--",G,Z);let $=Date.now();await J(),await DK1(X,"-->",G,Z,Q.res.status,hd6($))}};var OK1=S(()=>{BK1()});var LK1=()=>{try{return performance.now()}catch{}return Date.now()},zQ0=(X)=>{let Y={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...X};return async function(J,G){let W=[],Z=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:W,timers:Z}),Y.total)dB(J,"total",Y.totalDescription);if(await G(),Y.total)eF(J,"total");if(Y.autoEnd)Z.forEach((K,H)=>eF(J,H));if(typeof Y.enabled==="function"?Y.enabled(J):Y.enabled){J.res.headers.append("Server-Timing",W.join(","));let K=typeof Y.crossOrigin==="function"?Y.crossOrigin(J):Y.crossOrigin;if(K)J.res.headers.append("Timing-Allow-Origin",typeof K==="string"?K:"*")}}},wK1=(X,Y,Q,J,G)=>{let W=X.get("metric");if(!W){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof Q==="number"){let Z=Q.toFixed(G||1),$=J?`${Y};dur=${Z};desc="${J}"`:`${Y};dur=${Z}`;W.headers.push($)}else{let Z=Q?`${Y};desc="${Q}"`:`${Y}`;W.headers.push(Z)}},dB=(X,Y,Q)=>{let J=X.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(Y,{description:Q,start:LK1()})},eF=(X,Y,Q)=>{let J=X.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(Y);if(!G){console.warn(`Timer "${Y}" does not exist!`);return}let{description:W,start:Z}=G,$=LK1()-Z;wK1(X,Y,$,W,Q),J.timers.delete(Y)};var MK1=S(()=>{_f()});var PK1=S(()=>{MK1()});import{randomBytes as gd6}from"crypto";function AK1(){if(pA)return pA;let X=process.env.MESH_JWT_SECRET??WX.jwt?.secret??process.env.BETTER_AUTH_SECRET;if(X)pA=new TextEncoder().encode(X);else console.warn("MESH_JWT_SECRET not set - generating random secret (not persistent)"),pA=new Uint8Array(gd6(32));return pA}async function TK1(X,Y="5m"){let Q=AK1();return await new n9(X).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt().setExpirationTime(Y).sign(Q)}async function EK1(X){try{let Y=AK1(),{payload:Q}=await $8(X,Y);return Q}catch{return}}var pA=null;var BQ0=S(()=>{SQ();uB()});class DQ0{db;constructor(X){this.db=X}async create(X,Y,Q){let J=GX("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:X,created_by:Y,title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata?JSON.stringify(Q.metadata):null,tools:null,bindings:null,status:Q.status??"active",created_at:G,updated_at:G}).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((Z)=>({id:GX("agg"),parent_connection_id:J,child_connection_id:Z.connection_id,selected_tools:Z.selected_tools?JSON.stringify(Z.selected_tools):null,selected_resources:Z.selected_resources?JSON.stringify(Z.selected_resources):null,selected_prompts:Z.selected_prompts?JSON.stringify(Z.selected_prompts):null,created_at:G}))).execute();let W=await this.findById(J);if(!W)throw Error(`Failed to create virtual MCP with id: ${J}`);return W}async findById(X){return this.findByIdInternal(this.db,X)}async findByIdInternal(X,Y){let Q=await X.selectFrom("connections").selectAll().where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return null;let J=await X.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",Y).execute();return this.deserializeVirtualMCPEntity(Q,J)}async list(X){let Y=await this.db.selectFrom("connections").selectAll().where("organization_id","=",X).where("connection_type","=","VIRTUAL").execute(),Q=Y.map((W)=>W.id);if(Q.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",Q).execute(),G=new Map;for(let W of J){let Z=G.get(W.parent_connection_id)??[];Z.push(W),G.set(W.parent_connection_id,Z)}return Y.map((W)=>this.deserializeVirtualMCPEntity(W,G.get(W.id)??[]))}async listByConnectionId(X,Y){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",Y).execute()).map((K)=>K.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",X).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let W=G.map((K)=>K.id),Z=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",W).execute(),$=new Map;for(let K of Z){let H=$.get(K.parent_connection_id)??[];H.push(K),$.set(K.parent_connection_id,H)}return G.map((K)=>this.deserializeVirtualMCPEntity(K,$.get(K.id)??[]))}async update(X,Y,Q){let J=new Date().toISOString(),G={updated_at:J};if(Q.title!==void 0)G.title=Q.title;if(Q.description!==void 0)G.description=Q.description;if(Q.icon!==void 0)G.icon=Q.icon;if(Q.status!==void 0)G.status=Q.status;if(Q.metadata!==void 0)G.metadata=Q.metadata?JSON.stringify(Q.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",X).where("connection_type","=","VIRTUAL").execute(),Q.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",X).execute(),Q.connections.length>0)await this.db.insertInto("connection_aggregations").values(Q.connections.map((Z)=>({id:GX("agg"),parent_connection_id:X,child_connection_id:Z.connection_id,selected_tools:Z.selected_tools?JSON.stringify(Z.selected_tools):null,selected_resources:Z.selected_resources?JSON.stringify(Z.selected_resources):null,selected_prompts:Z.selected_prompts?JSON.stringify(Z.selected_prompts):null,created_at:J}))).execute()}let W=await this.findById(X);if(!W)throw Error("Virtual MCP not found after update");return W}async delete(X){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",X).execute(),await this.db.deleteFrom("connections").where("id","=",X).where("connection_type","=","VIRTUAL").execute()}deserializeVirtualMCPEntity(X,Y){let Q=X.created_at instanceof Date?X.created_at.toISOString():X.created_at,J=X.updated_at instanceof Date?X.updated_at.toISOString():X.updated_at,G=X.status==="active"?"active":"inactive";return{id:X.id,organization_id:X.organization_id,title:X.title,description:X.description,tool_selection_mode:"inclusion",icon:X.icon,status:G,created_at:Q,updated_at:J,created_by:X.created_by,updated_by:void 0,metadata:this.parseJson(X.metadata),connections:Y.map((W)=>({connection_id:W.child_connection_id,selected_tools:this.parseJson(W.selected_tools),selected_resources:this.parseJson(W.selected_resources),selected_prompts:this.parseJson(W.selected_prompts)}))}}parseJson(X){if(X===null)return null;if(typeof X==="string")try{return JSON.parse(X)}catch{return null}return X}}var jK1=S(()=>{wZ()});class NQ0{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(X){return oM.startActiveSpan("redactor.redact",(Y)=>{try{if(X===null||X===void 0)return X;if(typeof X==="string")return Y.setAttribute("data.type","string"),this.redactString(X);if(Array.isArray(X))return Y.setAttribute("data.type","array"),Y.setAttribute("data.length",X.length),X.map((Q)=>this.redact(Q));if(typeof X==="object"){Y.setAttribute("data.type","object");let Q={};for(let[J,G]of Object.entries(X)){let W=this.redactString(J);Q[W]=this.redact(G)}return Q}return Y.setAttribute("data.type",typeof X),X}finally{Y.end()}})}redactString(X){return oM.startActiveSpan("redactor.redactString",(Y)=>{try{Y.setAttribute("text.length",X.length);let Q=X,J=0;for(let G of this.patterns){let W=X.match(G.regex);if(W)J+=W.length,Y.setAttribute(`redaction.${G.type}.count`,W.length);Q=Q.replace(G.regex,`[REDACTED:${G.type}]`)}return Y.setAttribute("redaction.total_count",J),Q}finally{Y.end()}})}}var CK1=S(()=>{sM()});import{sql as gf}from"kysely";class OQ0{db;redactor;databaseType;constructor(X,Y="sqlite"){this.db=X;this.redactor=new NQ0,this.databaseType=Y}jsonExtract(X,Y){if(this.databaseType==="postgres")return gf`(${gf.ref(X)}::jsonb)->>${Y}`;let Q=`$.${Y}`;return gf`json_extract(${gf.ref(X)}, ${Q})`}async log(X){await this.logBatch([X])}async logBatch(X){if(X.length===0)return;let Y=X.map((Q)=>({...Q,input:this.redactor.redact(Q.input),output:this.redactor.redact(Q.output)}));await this.db.transaction().execute(async(Q)=>{await Q.insertInto("monitoring_logs").values(Y.map((J)=>this.toDbRow(J))).execute()})}async query(X){let Y=this.db.selectFrom("monitoring_logs").selectAll(),Q=this.db.selectFrom("monitoring_logs").select(($)=>$.fn.count("id").as("count"));if(X.organizationId)Y=Y.where("organization_id","=",X.organizationId),Q=Q.where("organization_id","=",X.organizationId);if(X.connectionId)Y=Y.where("connection_id","=",X.connectionId),Q=Q.where("connection_id","=",X.connectionId);if(X.virtualMcpId)Y=Y.where("virtual_mcp_id","=",X.virtualMcpId),Q=Q.where("virtual_mcp_id","=",X.virtualMcpId);if(X.toolName)Y=Y.where("tool_name","=",X.toolName),Q=Q.where("tool_name","=",X.toolName);if(X.isError!==void 0)Y=Y.where("is_error","=",X.isError?1:0),Q=Q.where("is_error","=",X.isError?1:0);if(X.startDate)Y=Y.where("timestamp",">=",X.startDate.toISOString()),Q=Q.where("timestamp",">=",X.startDate.toISOString());if(X.endDate)Y=Y.where("timestamp","<=",X.endDate.toISOString()),Q=Q.where("timestamp","<=",X.endDate.toISOString());if(X.propertyFilters){let{properties:$,propertyKeys:K,propertyPatterns:H}=X.propertyFilters;if($)for(let[F,V]of Object.entries($)){let q=this.jsonExtract("properties",F);Y=Y.where(q,"=",V),Q=Q.where(q,"=",V)}if(K&&K.length>0)for(let F of K){let V=this.jsonExtract("properties",F);Y=Y.where(V,"is not",null),Q=Q.where(V,"is not",null)}if(H)for(let[F,V]of Object.entries(H)){let q=this.jsonExtract("properties",F),z=this.databaseType==="postgres"?"ilike":"like";Y=Y.where(q,z,V),Q=Q.where(q,z,V)}}if(Y=Y.orderBy("timestamp","desc"),X.limit)Y=Y.limit(X.limit);if(X.offset)Y=Y.offset(X.offset);let[J,G]=await Promise.all([Y.execute(),Q.executeTakeFirst()]),W=Number(G?.count||0);return{logs:J.map(($)=>this.fromDbRow($)),total:W}}async getStats(X){let Y=this.db.selectFrom("monitoring_logs").where("organization_id","=",X.organizationId);if(X.startDate)Y=Y.where("timestamp",">=",X.startDate.toISOString());if(X.endDate)Y=Y.where("timestamp","<=",X.endDate.toISOString());let Q=await Y.select([(Z)=>Z.fn.count("id").as("total_count"),(Z)=>Z.fn.sum(Z.ref("is_error")).as("error_count"),(Z)=>Z.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(Q?.total_count||0),G=Number(Q?.error_count||0),W=Number(Q?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:W}}toDbRow(X){return{id:X.id||GX("log"),organization_id:X.organizationId,connection_id:X.connectionId,connection_title:X.connectionTitle,tool_name:X.toolName,input:JSON.stringify(X.input),output:JSON.stringify(X.output),is_error:X.isError?1:0,error_message:X.errorMessage||null,duration_ms:X.durationMs,timestamp:X.timestamp instanceof Date?X.timestamp.toISOString():X.timestamp,user_id:X.userId||null,request_id:X.requestId,user_agent:X.userAgent||null,virtual_mcp_id:X.virtualMcpId||null,properties:X.properties?JSON.stringify(X.properties):null}}fromDbRow(X){let Y=typeof X.input==="string"?JSON.parse(X.input):X.input,Q=typeof X.output==="string"?JSON.parse(X.output):X.output,J=typeof X.timestamp==="string"?new Date(X.timestamp):X.timestamp,G=X.properties?typeof X.properties==="string"?JSON.parse(X.properties):X.properties:null;return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,connectionTitle:X.connection_title,toolName:X.tool_name,input:Y,output:Q,isError:X.is_error===1,errorMessage:X.error_message,durationMs:X.duration_ms,timestamp:J,userId:X.user_id,requestId:X.request_id,userAgent:X.user_agent,virtualMcpId:X.virtual_mcp_id,properties:G}}}var IK1=S(()=>{CK1();wZ()});class LQ0{db;constructor(X){this.db=X}async get(X){let Y=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",X).executeTakeFirst();if(!Y)return null;return{organizationId:Y.organizationId,sidebar_items:Y.sidebar_items?typeof Y.sidebar_items==="string"?JSON.parse(Y.sidebar_items):Y.sidebar_items:null,enabled_plugins:Y.enabled_plugins?typeof Y.enabled_plugins==="string"?JSON.parse(Y.enabled_plugins):Y.enabled_plugins:null,createdAt:Y.createdAt,updatedAt:Y.updatedAt}}async upsert(X,Y){let Q=new Date().toISOString(),J=Y?.sidebar_items?JSON.stringify(Y.sidebar_items):null,G=Y?.enabled_plugins?JSON.stringify(Y.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:X,sidebar_items:J,enabled_plugins:G,createdAt:Q,updatedAt:Q}).onConflict((Z)=>Z.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:Q})).execute();let W=await this.get(X);if(!W)return{organizationId:X,sidebar_items:Y?.sidebar_items??null,enabled_plugins:Y?.enabled_plugins??null,createdAt:Q,updatedAt:Q};return W}}class wQ0{db;constructor(X){this.db=X}async findById(X,Y){let Q=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",X).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",X).where("m2.userId","=",Y))).executeTakeFirst();if(!Q)return null;return{id:Q.id,name:Q.name,email:Q.email,role:"",createdAt:Q.createdAt,updatedAt:Q.updatedAt,image:Q.image??void 0}}}var RK1="mcp.mesh";var SK1,MQ0,dK;var uf=S(()=>{SK1=class SK1 extends Error{constructor(X){super(X);this.name="UnauthorizedError"}};MQ0=class MQ0 extends Error{constructor(X){super(X);this.name="ForbiddenError"}};dK=class dK{userId;toolName;boundAuth;role;connectionId;getToolMeta;_granted=!1;constructor(X,Y,Q,J,G,W="self",Z){this.userId=Y;this.toolName=Q;this.boundAuth=J;this.role=G;this.connectionId=W;this.getToolMeta=Z}[Symbol.dispose](){this._granted=!1}setToolName(X){this.toolName=X}grant(){return this._granted=!0,{[Symbol.dispose]:()=>{this._granted=!1}}}async check(...X){if(this._granted)return;if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new SK1("Authentication required. Please provide a valid OAuth token or API key.")}let Y=X.length>0?X:this.toolName?[this.toolName]:[];if(Y.length===0)throw new MQ0("No resources specified for access check");for(let Q of Y)if(await this.checkResource(Q)){this.grant();return}throw new MQ0(`Access denied to: ${Y.join(", ")}`)}async checkResource(X){if(!this.userId&&!this.boundAuth)return!1;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;let Y={};if(this.connectionId)Y[this.connectionId]=[X];return this.boundAuth.hasPermission(Y)}async isToolPublic(){if(!this.getToolMeta)return!1;try{let X=await this.getToolMeta();if(!X)return!1;let Q=X[RK1]?.public_tool;return Q===!0||Q==="true"}catch{return!1}}granted(){return this._granted}}});function kK1(X){let Y=null;return()=>{if(Y)return Y;return Y=X().catch((Q)=>{throw Y=null,Q}),Y}}class vK1{factory;promise=null;constructor(X){this.factory=X}getOrCreatePromise(){if(!this.promise)this.promise=this.factory();return this.promise}then(X,Y){return this.getOrCreatePromise().then(X,Y)}catch(X){return this.getOrCreatePromise().catch(X)}finally(X){return this.getOrCreatePromise().finally(X)}}function l7(X){return new vK1(X)}class PQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadPrompts())}async loadPrompts(){let X=await this.proxies.mapSettled(async(G,W)=>{try{let $=(await G.proxy.client.listPrompts()).prompts;if(this.options.selectionMode==="exclusion"){if(G.selectedPrompts&&G.selectedPrompts.length>0){let K=new Set(G.selectedPrompts);$=$.filter((H)=>!K.has(H.name))}}else if(!G.selectedPrompts||G.selectedPrompts.length===0)$=[];else{let K=new Set(G.selectedPrompts);$=$.filter((H)=>K.has(H.name))}return{connectionId:W,prompts:$}}catch(Z){return console.error(`[PromptAggregator] Failed to list prompts for connection ${W}:`,Z),{connectionId:W,prompts:[]}}}),Y=new Set,Q=[],J=new Map;for(let G of X){if(G.status!=="fulfilled")continue;let{connectionId:W,prompts:Z}=G.value;for(let $ of Z){if(Y.has($.name))continue;Y.add($.name),Q.push($),J.set($.name,W)}}return{prompts:Q,mappings:J}}async list(){return{prompts:(await this.cache).prompts}}async get(X){let Q=(await this.cache).mappings.get(X.name);if(!Q)throw Error(`Prompt not found: ${X.name}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for prompt: ${X.name}`);return await J.proxy.client.getPrompt(X)}}var _K1=()=>{};function ud6(X,Y){if(X===Y)return!0;if(!Y.includes("*"))return!1;let Q=Y.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<DOUBLE_STAR>>>").replace(/\*/g,"[^/]*").replace(/<<<DOUBLE_STAR>>>/g,".*");Q=`^${Q}$`;try{return new RegExp(Q).test(X)}catch{return!1}}function yK1(X,Y){return Y.some((Q)=>ud6(X,Q))}class AQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadResources())}async loadResources(){let X=await this.proxies.mapSettled(async(G,W)=>{try{let $=(await G.proxy.client.listResources()).resources;if(this.options.selectionMode==="exclusion"){if(G.selectedResources&&G.selectedResources.length>0)$=$.filter((K)=>!yK1(K.uri,G.selectedResources))}else if(!G.selectedResources||G.selectedResources.length===0)$=[];else $=$.filter((K)=>yK1(K.uri,G.selectedResources));return{connectionId:W,resources:$}}catch(Z){if(!(Z instanceof J1)||Z.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list resources for connection ${W}: (defaulting to empty array)`,Z);return{connectionId:W,resources:[]}}}),Y=new Set,Q=[],J=new Map;for(let G of X){if(G.status!=="fulfilled")continue;let{connectionId:W,resources:Z}=G.value;for(let $ of Z){if(Y.has($.uri))continue;Y.add($.uri),Q.push($),J.set($.uri,W)}}return{resources:Q,mappings:J}}async list(){return{resources:(await this.cache).resources}}async read(X){let Q=(await this.cache).mappings.get(X.uri);if(!Q)throw Error(`Resource not found: ${X.uri}`);let J=this.proxies.get(Q);if(!J)throw Error(`Connection not found for resource: ${X.uri}`);return await J.proxy.client.readResource(X)}}var bK1=S(()=>{RX()});class TQ0{proxies;cache;constructor(X){this.proxies=X;this.cache=l7(()=>this.loadResourceTemplates())}async loadResourceTemplates(){let X=await this.proxies.mapSettled(async(Q,J)=>{try{let G=await Q.proxy.client.listResourceTemplates();return{connectionId:J,templates:G.resourceTemplates}}catch(G){if(!(G instanceof J1)||G.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list resource templates for connection ${J}: (defaulting to empty array)`,G);return{connectionId:J,templates:[]}}}),Y=[];for(let Q of X){if(Q.status!=="fulfilled")continue;let{templates:J}=Q.value;for(let G of J)Y.push(G)}return{templates:Y}}async list(){return{resourceTemplates:(await this.cache).templates}}}var fK1=S(()=>{RX()});function pd6(X){let Y=X.slice().sort().join(","),Q=hK1.get(Y);if(!Q){let J=U.object({name:(X.length>0?U.enum(X):U.string()).describe("The name of the tool to execute"),arguments:U.record(U.string(),U.unknown()).default({}).describe("Arguments to pass to the tool")});Q={schema:J,jsonSchema:U.toJSONSchema(J)},hK1.set(Y,Q)}return Q}function mK1(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_SEARCH_TOOLS",description:`Search for available tools by name or description. Returns tool names and brief descriptions without full schemas. Use this to discover tools before calling GATEWAY_DESCRIBE_TOOLS for detailed schemas.${X.categories.length>0?` Available categories: ${X.categories.join(", ")}.`:""} Total tools: ${Y.length}.`,inputSchema:md6},handler:async(J)=>{let G=xK1.safeParse(J);if(!G.success)return fB({error:G.error.flatten()});let W=Uf(G.data.query,Y,G.data.limit);return Df({query:G.data.query,results:W.map((Z)=>({name:Z.name,description:Z.description,connection:Z._meta.connectionTitle})),totalAvailable:Y.length})}}}function lK1(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools. Call after GATEWAY_SEARCH_TOOLS to get full input/output schemas.",inputSchema:ld6},handler:async(Q)=>{let J=gK1.safeParse(Q);if(!J.success)return fB({error:J.error.flatten()});let G=zf(J.data.tools,Y);return Df({tools:G.tools,notFound:G.notFound})}}}function cd6(X){let Y=zA(X.tools),Q=Y.map((Z)=>Z.name),J=new Map(Y.map((Z)=>[Z.name,Z])),{schema:G,jsonSchema:W}=pd6(Q);return{tool:{name:"GATEWAY_CALL_TOOL",description:"Execute a tool by name. Use GATEWAY_DESCRIBE_TOOLS first to understand the input schema.",inputSchema:W},handler:async(Z)=>{let $=G.safeParse(Z);if(!$.success)return fB({error:$.error.flatten()});let{name:K,arguments:H}=$.data;if(!J.has(K))return{content:[{type:"text",text:`Tool not found: ${K}. Use GATEWAY_SEARCH_TOOLS to find available tools.`}],isError:!0};return X.callTool(K,H)}}}function nd6(X){let Y=zA(X.tools);return{tool:{name:"GATEWAY_RUN_CODE",description:'Run JavaScript code in a sandbox. Code must be an ES module that `export default`s an async function that receives (tools) as its first parameter. Use GATEWAY_DESCRIBE_TOOLS to understand the input/output schemas for a tool before calling it. Use `await tools.toolName(args)` or `await tools["tool-name"](args)` to call tools.',inputSchema:dd6},handler:async(Q)=>{let J=uK1.safeParse(Q);if(!J.success)return fB({error:J.error.flatten()});let G={...X,tools:Y},W=await Bf(J.data.code,G,J.data.timeoutMs);if(W.error)return fB(W);return Df(W)}}}function dK1(X){let Y=new Map(X.map((J)=>[J.tool.name,J.handler])),Q=X.map((J)=>J.tool.name);return{tools:X.map((J)=>J.tool),callTool:async(J,G)=>{let W=Y.get(J);if(!W)return{content:[{type:"text",text:`Unknown meta-tool: ${J}. Available: ${Q.join(", ")}`}],isError:!0};return W(G)}}}function pK1(X){switch(X){case"smart_tool_selection":return rd6;case"code_execution":return ad6;case"passthrough":default:return id6}}function cK1(X){switch(X){case"smart_tool_selection":return"smart_tool_selection";case"code_execution":return"code_execution";case"passthrough":default:return"passthrough"}}var xK1,md6,gK1,ld6,uK1,dd6,hK1,id6=(X)=>({tools:X.tools,callTool:(Y,Q)=>X.callTool(Y,Q)}),ad6=(X)=>dK1([mK1(X),lK1(X),nd6(X)]),rd6=(X)=>dK1([mK1(X),lK1(X),cd6(X)]);var EQ0=S(()=>{r0();BA();xK1=U.object({query:U.string().min(1).describe("Search query to find tools by name or description"),limit:U.number().default(10).describe("Maximum number of results to return")}),md6=U.toJSONSchema(xK1),gK1=U.object({tools:U.array(U.string()).min(1).describe("Array of tool names to get detailed schemas for")}),ld6=U.toJSONSchema(gK1),uK1=U.object({code:U.string().min(1).describe("JavaScript code to execute. It runs as an async function body; you can use top-level `return` and `await`."),timeoutMs:U.number().default(3000).describe("Max execution time in milliseconds (default: 3000).")}),dd6=U.toJSONSchema(uK1),hK1=new Map});class jQ0{proxies;options;cache;constructor(X,Y){this.proxies=X;this.options=Y;this.cache=l7(()=>this.loadTools())}async loadTools(){let X=await this.proxies.mapSettled(async(K,H)=>{try{let V=(await K.proxy.client.listTools()).tools;if(this.options.selectionMode==="exclusion"){if(K.selectedTools&&K.selectedTools.length>0){let q=new Set(K.selectedTools);V=V.filter((z)=>!q.has(z.name))}}else if(K.selectedTools&&K.selectedTools.length>0){let q=new Set(K.selectedTools);V=V.filter((z)=>q.has(z.name))}return{connectionId:H,connectionTitle:K.connection.title,tools:V}}catch(F){if(!(F instanceof J1)||F.code!==K1.MethodNotFound)console.error(`[aggregator] Failed to list tools ${H}: (defaulting to null)`,F);return null}}),Y=new Set,Q=[],J=new Map,G=new Set;for(let K of X){if(K.status!=="fulfilled"||!K.value)continue;let{connectionId:H,connectionTitle:F,tools:V}=K.value;G.add(F);for(let q of V){if(Y.has(q.name))continue;Y.add(q.name),Q.push({...q,_meta:{connectionId:H,connectionTitle:F}}),J.set(q.name,{connectionId:H,originalName:q.name})}}let W=async(K,H)=>{let F=J.get(K);if(!F)return{content:[{type:"text",text:`Tool not found: ${K}`}],isError:!0};let V=this.proxies.get(F.connectionId);if(!V)return{content:[{type:"text",text:`Connection not found for tool: ${K}`}],isError:!0};return await V.proxy.client.callTool({name:F.originalName,arguments:H})},$=pK1(this.options.strategy)({tools:Q,callTool:W,categories:Array.from(G).sort()});return{tools:Q,mappings:J,strategyResult:$}}async list(){return{tools:(await this.cache).strategyResult.tools}}async call(X){return(await this.cache).strategyResult.callTool(X.name,X.arguments??{})}async callStreamable(X,Y){let Q=await this.cache,J=Q.mappings.get(X);if(J){let W=this.proxies.get(J.connectionId);if(W)return W.proxy.callStreamableTool(J.originalName,Y)}let G=await Q.strategyResult.callTool(X,Y);return new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}var nK1=S(()=>{RX();EQ0()});function iK1(X,Y){if(X.connection_type!=="VIRTUAL")return!1;return fK(X.connection_url)===Y}async function od6(X,Y){let Q=await kB.create(X.connections,Y),J=new jQ0(Q,{selectionMode:X.toolSelectionMode,strategy:X.toolSelectionStrategy}),G=new AQ0(Q,{selectionMode:X.toolSelectionMode}),W=new TQ0(Q),Z=new PQ0(Q,{selectionMode:X.toolSelectionMode});return{client:{listTools:J.list.bind(J),callTool:J.call.bind(J),listResources:G.list.bind(G),readResource:G.read.bind(G),listResourceTemplates:W.list.bind(W),listPrompts:Z.list.bind(Z),getPrompt:Z.get.bind(Z)},callStreamableTool:J.callStreamable.bind(J)}}async function cA(X,Y,Q){let J;if(X.tool_selection_mode==="exclusion"){let Z=(await Y.storage.connections.list(X.organization_id)).filter((K)=>K.status==="active"&&!iK1(K,X.id)),$=new Map;for(let K of X.connections)$.set(K.connection_id,{selectedTools:K.selected_tools,selectedResources:K.selected_resources,selectedPrompts:K.selected_prompts});J=[];for(let K of Z){let H=$.get(K.id);if(H===void 0)J.push({connection:K,selectedTools:null,selectedResources:null,selectedPrompts:null});else if((H.selectedTools===null||H.selectedTools.length===0)&&(H.selectedResources===null||H.selectedResources.length===0)&&(H.selectedPrompts===null||H.selectedPrompts.length===0));else J.push({connection:K,selectedTools:H.selectedTools,selectedResources:H.selectedResources,selectedPrompts:H.selectedPrompts})}}else{let W=X.connections.map(($)=>$.connection_id),Z=[];for(let $ of W){let K=await Y.storage.connections.findById($);if(K&&K.status==="active"&&!iK1(K,X.id))Z.push(K)}J=Z.map(($)=>{let K=X.connections.find((H)=>H.connection_id===$.id);return{connection:$,selectedTools:K?.selected_tools??null,selectedResources:K?.selected_resources??null,selectedPrompts:K?.selected_prompts??null}})}let G={connections:J,toolSelectionMode:X.tool_selection_mode,toolSelectionStrategy:Q};return od6(G,Y)}var aK1=S(()=>{g7();_K1();bK1();fK1();nK1()});var CQ0=S(()=>{aK1()});async function rK1(X){if(!X.refreshToken)return{success:!1,error:"No refresh token available"};if(!X.tokenEndpoint)return{success:!1,error:"No token endpoint available"};if(!X.clientId)return{success:!1,error:"No client ID available"};try{let Y=new URLSearchParams({grant_type:"refresh_token",refresh_token:X.refreshToken,client_id:X.clientId});if(X.clientSecret)Y.set("client_secret",X.clientSecret);if(X.scope)Y.set("scope",X.scope);let Q=await fetch(X.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Y.toString()});if(!Q.ok){let G=await Q.text();console.error(`[TokenRefresh] Failed to refresh token: ${Q.status}`,G);try{let W=JSON.parse(G);return{success:!1,error:W.error_description||W.error||`Token refresh failed: ${Q.status}`}}catch{return{success:!1,error:`Token refresh failed: ${Q.status}`}}}let J=await Q.json();return{success:!0,accessToken:J.access_token,refreshToken:J.refresh_token||X.refreshToken,expiresIn:J.expires_in,scope:J.scope}}catch(Y){return console.error("[TokenRefresh] Error refreshing token:",Y),{success:!1,error:Y instanceof Error?Y.message:"Token refresh failed"}}}function sd6(X){return new Proxy(X,{get(Q,J,G){if(J==="close")return async()=>{};if(J==="__actualClient")return Q;return Reflect.get(Q,J,G)}})}async function tK1(X,Y){let Q=XV.get(X.id);if(Q?.status==="connected"&&Q.stableClient)return Q.stableClient;if(Q?.connectPromise&&(Q.status==="connecting"||Q.status==="reconnecting"))return Q.connectPromise;let J=Q?.status==="failed",G=Q??{transport:null,client:null,stableClient:null,config:X,status:"connecting",connectPromise:null};if(!Q)XV.set(X.id,G);return G.status=J?"reconnecting":"connecting",G.connectPromise=(async()=>{try{console.log(`[StableStdio] ${J?"Respawning":"Spawning"}: ${X.id} (${X.command} ${X.args?.join(" ")??""})`);let W=new HA({command:X.command,args:X.args,env:X.env,cwd:X.cwd,stderr:"pipe"});G.transport=W;let Z=Y??new PQ({name:`mesh-stdio-${X.id}`,version:"1.0.0"});G.client=Z,G.stableClient=sd6(Z),Z.onclose=()=>{console.log(`[StableStdio] Connection closed unexpectedly: ${X.id}`),G.status="failed",G.connectPromise=null};let $=X.name||X.id,K="\x1B[2m",H="\x1B[0m";W.stderr?.on("data",(q)=>{let z=q.toString().trimEnd();if(z)console.error(`${z} ${K}[${$}]${H}`)});let F=new AbortController,V=setTimeout(()=>F.abort(),30000);try{await Promise.race([Z.connect(W),new Promise((q,z)=>{F.signal.addEventListener("abort",()=>{z(Error("Stdio connection timeout after 30s"))})})])}finally{clearTimeout(V)}return G.status="connected",console.log(`[StableStdio] Connected: ${X.id}`),G.stableClient}catch(W){console.error(`[StableStdio] Failed to connect ${X.id}:`,W),G.status="failed",G.connectPromise=null;try{await G.transport?.close()}catch{}throw W}})(),G.connectPromise}async function td6(X){let Y=XV.get(X);if(!Y)return;console.log(`[StableStdio] Force closing: ${X}`);try{if(Y.client)Y.client.onclose=void 0;await Y.client?.close()}catch{}XV.delete(X)}async function ed6(){console.log(`[StableStdio] Closing all connections (${XV.size})`);let X=Array.from(XV.keys()).map((Y)=>td6(Y));await Promise.allSettled(X),XV.clear()}var oK1="__mesh_stable_stdio_pool__",XV,sK1="__mesh_stable_stdio_shutdown_registered__";var eK1=S(()=>{yF();PY0();XV=globalThis[oK1]??(globalThis[oK1]=new Map);if(!globalThis[sK1]){globalThis[sK1]=!0;let X=async(Y)=>{await ed6(),process.exit(Y==="SIGINT"?130:143)};process.on("SIGINT",()=>X("SIGINT")),process.on("SIGTERM",()=>X("SIGTERM"))}});async function mf(X,Y){let Q=X.get("meshContext");try{let J=X.req.header("x-org-id"),G=X.req.header("x-org-slug"),W=J?J:G?await Q.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((z)=>z?.id):null,Z=Y?await Q.storage.virtualMcps.findById(Y):W?aX0(W):null;if(!Z)return X.json({error:"Agent not found"},404);if(W&&Z.organization_id!==W)return X.json({error:"Agent not found"},404);if(Z.status!=="active")return X.json({error:`Agent is inactive: ${Z.id}`},503);Q.connectionId=Z.id;let $=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if($)Q.organization={id:$.id,slug:$.slug,name:$.name};let K=X.req.query("mode"),H=cK1(K),F=await cA(Z,Q,H),V=new uF({name:`mcp-virtual-mcp-${Z.title}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),q=new mF({enableJsonResponse:X.req.header("Accept")?.includes("application/json")??!1});await V.connect(q),V.server.setRequestHandler(jK,async(z)=>{return F.client.listTools()}),V.server.setRequestHandler(y7,async(z)=>{return await F.client.callTool(z.params)}),V.server.setRequestHandler(MK,async()=>{return F.client.listResources()}),V.server.setRequestHandler(AK,async(z)=>{return F.client.readResource(z.params)}),V.server.setRequestHandler(PK,async()=>{return F.client.listResourceTemplates()}),V.server.setRequestHandler(TK,async()=>{return F.client.listPrompts()}),V.server.setRequestHandler(EK,async(z)=>{return F.client.getPrompt(z.params)});try{return await q.handleRequest(X.req.raw)}finally{try{await q.close?.()}catch{}}}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),X.json({error:"Internal server error",message:G.message},500)}}var IQ0,XH1;var RQ0=S(()=>{$f();Kf();RX();ZG();CQ0();EQ0();YA();IQ0=new ZX;IQ0.all("/gateway/:virtualMcpId?",async(X)=>{let Y=X.req.param("virtualMcpId");return mf(X,Y)});IQ0.all("/virtual-mcp/:virtualMcpId?",async(X)=>{let Y=X.req.param("virtualMcpId");return mf(X,Y)});XH1=IQ0});async function YH1(X,Y){return(await Y.storage.connections.findById(X))?.connection_url??null}function Xp6(X){let Y=X.toLowerCase();return Y.includes("resource_metadata=")||Y.includes("invalid_token")||Y.includes("oauth")}async function QH1(X,Y={}){try{let Q=await fetch(X,{method:"POST",headers:{...Y,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(Q.status===401){let J=Q.headers.get("WWW-Authenticate");if(J){if(Xp6(J))return J}}return null}catch{return null}}async function df(X){let Q=new URL(X).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=new URL(X);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(!SQ0.includes(G.status))return G;let W=new URL(X);if(W.pathname=`/.well-known/oauth-protected-resource${Q}`,G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),!SQ0.includes(G.status))return G;let Z=new URL(X);return Z.pathname="/.well-known/oauth-protected-resource",G=await fetch(Z.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function Yp6(X,Y){let Q=await YH1(X,Y);if(!Q)return null;let J;try{J=new URL(Q).origin}catch{return null}try{let G=await df(Q);if(G.ok){let W=await G.json();if(W.authorization_servers?.[0])return W.authorization_servers[0]}}catch{}return J}async function JH1(X){let Y=X.get("meshContext");if(!Y)Y=await pK.create(X.req.raw),X.set("meshContext",Y);return Y}async function GH1({error:X,reqUrl:Y,connectionId:Q,connectionUrl:J,headers:G}){let W=X.message?.toLowerCase()??"";if(!(X.status===401||X.code===401||X.message?.includes("401")||W.includes("unauthorized")||W.includes("invalid_token")||W.includes("api key required")||W.includes("api-key required")))return null;if(Boolean(await QH1(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Y.origin}/mcp/${Q}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}async function kQ0(X){let Q=new URL(X).pathname;if(Q.endsWith("/"))Q=Q.slice(0,-1);let J=Q!==""&&Q!=="/",G=[];if(J){let Z=new URL(X);Z.pathname=`/.well-known/oauth-authorization-server${Q}`,G.push(Z);let $=new URL(X);$.pathname=`/.well-known/openid-configuration${Q}`,G.push($);let K=new URL(X);K.pathname=`${Q}/.well-known/openid-configuration`,G.push(K)}else{let Z=new URL(X);Z.pathname="/.well-known/oauth-authorization-server",G.push(Z);let $=new URL(X);$.pathname="/.well-known/openid-configuration",G.push($)}let W=null;for(let Z of G){if(W=await fetch(Z.toString(),{method:"GET",headers:{Accept:"application/json"}}),W.ok)return W;if(W.status!==404&&W.status!==401)return W}return W}var lf,SQ0,pf=(X)=>{if(!(X.hostname==="localhost"||X.hostname==="127.0.0.1"))X.protocol="https:";return X},WH1=async(X)=>{let Y=X.req.param("connectionId"),Q=await JH1(X),J=await YH1(Y,Q);if(!J)return X.json({error:"Connection not found"},404);let G=pf(new URL(X.req.url)),W=`${G.origin}/mcp/${Y}`,Z=`${G.origin}/oauth-proxy/${Y}`;try{let $=await df(J);if(!$.ok&&SQ0.includes($.status)){if(await QH1(J))return new Response(JSON.stringify({resource:W,authorization_servers:[Z],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response($.body,{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}})}if(!$.ok)return new Response($.body,{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}});let H={...await $.json(),resource:W,authorization_servers:[Z]};return new Response(JSON.stringify(H),{status:$.status,statusText:$.statusText,headers:{"Content-Type":"application/json"}})}catch($){let K=$;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",K),X.json({error:"Failed to proxy OAuth metadata",message:K.message},502)}},ZH1;var cf=S(()=>{ZG();nf();lf=new ZX,SQ0=[404,401,406];lf.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(X)=>WH1(X));lf.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(X)=>WH1(X));lf.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(X)=>{let Y=X.req.param("connectionId"),Q=await JH1(X),J=await Yp6(Y,Q);if(!J)return X.json({error:"Connection not found or no auth server"},404);try{let G=await kQ0(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let W=await G.json(),$=`${pf(new URL(X.req.url)).origin}/oauth-proxy/${Y}`,K={...W,authorization_endpoint:W.authorization_endpoint?`${$}/authorize`:void 0,token_endpoint:W.token_endpoint?`${$}/token`:void 0,registration_endpoint:W.registration_endpoint?`${$}/register`:void 0};return new Response(JSON.stringify(K),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let W=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",W),X.json({error:"Failed to proxy auth server metadata",message:W.message},502)}});ZH1=lf});function Qp6(X){if(!X.isError)return;let Y=X.content;if(!Array.isArray(Y))return;for(let Q of Y)if(Q&&typeof Q==="object"&&"type"in Q&&Q.type==="text"&&"text"in Q&&typeof Q.text==="string")return Q.text;return}function Jp6(X){if(!X)return;let Y=X._meta;if(!Y||typeof Y!=="object"||Array.isArray(Y))return;let Q=Y.properties;if(!Q||typeof Q!=="object"||Array.isArray(Q))return;let J={};for(let[G,W]of Object.entries(Q))if(typeof W==="string")J[G]=W;return Object.keys(J).length>0?J:void 0}function Gp6(X,Y){if(!X&&!Y)return;if(!X)return Y;if(!Y)return X;return{...Y,...X}}function $H1(X){if(X&&typeof X==="object"&&!Array.isArray(X)){let Y=X,Q=Y.structuredContent;if(Q&&typeof Q==="object"&&!Array.isArray(Q))return Q;return Y}return{value:X}}async function Wp6(X,Y){let Q=X.body;if(!Q)return{text:"",truncated:!1};let J=Q.getReader(),G=new TextDecoder,W=!1,Z=0,$=[];try{while(!0){let{value:K,done:H}=await J.read();if(H)break;if(K){if(Z+=K.byteLength,Z>Y){W=!0;let F=Y-(Z-K.byteLength);if(F>0)$.push(G.decode(K.slice(0,F),{stream:!0}));break}$.push(G.decode(K,{stream:!0}))}}}finally{J.releaseLock()}return $.push(G.decode()),{text:$.join(""),truncated:W}}async function nA(X){let{ctx:Y,enabled:Q}=X,J=X.organizationId??Y.organization?.id;if(!Q||!J)return;let G=Jp6(X.request.params.arguments),W=Gp6(Y.metadata.properties,G);await Y.storage.monitoring.log({organizationId:J,connectionId:X.connectionId,connectionTitle:X.connectionTitle,toolName:X.request.params.name,input:X.request.params.arguments??{},output:X.output,isError:X.isError,errorMessage:X.errorMessage,durationMs:X.durationMs,timestamp:new Date,userId:Y.auth.user?.id||Y.auth.apiKey?.userId||null,requestId:Y.metadata.requestId,userAgent:Y.metadata.userAgent,virtualMcpId:X.virtualMcpId,properties:W})}function KH1(X){let{ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W}=X;return async(Z,$)=>{let K=Date.now();try{let H=await $(),F=Date.now()-K;return await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:$H1(H),isError:Boolean(H.isError),errorMessage:Qp6(H),durationMs:F}),H}catch(H){let F=H,V=Date.now()-K;throw await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:F.message,durationMs:V}),H}}}function HH1(X){let{ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W}=X;return async(Z,$)=>{let K=Date.now();try{let H=await $(),F=Y.organization?.id;if(Q&&F){let V=H.clone();(async()=>{try{let{text:q,truncated:z}=await Wp6(V,262144),D=Date.now()-K,N=V.headers.get("content-type")??"",L=q;if(N.includes("application/json"))try{L=q.length?JSON.parse(q):null}catch{L=q}let w=H.status>=400,C=w&&L&&typeof L==="object"&&"error"in L?L.error:void 0,T=typeof C==="string"&&C?C:w&&typeof L==="string"&&L.trim()?L.slice(0,500):w?`HTTP ${H.status} ${H.statusText}`.trim():z?"Response body truncated to 262144 bytes":void 0;await nA({ctx:Y,enabled:Q,organizationId:F,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:$H1(L),isError:w,errorMessage:T,durationMs:D})}catch(q){let z=Date.now()-K;await nA({ctx:Y,enabled:Q,organizationId:F,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:`Failed to read streamable response body: ${q.message}`,durationMs:z})}})()}return H}catch(H){let F=H,V=Date.now()-K;throw await nA({ctx:Y,enabled:Q,connectionId:J,connectionTitle:G,virtualMcpId:W,request:Z,output:{},isError:!0,errorMessage:F.message,durationMs:V}),H}}}function Zp6(X,Y,Q){return async(J,G)=>{try{let W=J.params.name,Z=async()=>{let{tools:K}=await Q();return K.find((F)=>F.name===W)?._meta};return await new dK(X.authInstance,X.auth.user?.id??X.auth.apiKey?.userId,W,X.boundAuth,X.auth.user?.role,Y,Z).check(W),await G()}catch(W){return{content:[{type:"text",text:`Authorization failed: ${W.message}`}],isError:!0}}}}function $p6(X,Y,Q){return async(J,G)=>{try{let W=J.params.name,Z=async()=>{let{tools:K}=await Q();return K.find((F)=>F.name===W)?._meta};return await new dK(X.authInstance,X.auth.user?.id??X.auth.apiKey?.userId,W,X.boundAuth,X.auth.user?.role,Y,Z).check(W),await G()}catch(W){return new Response(JSON.stringify({error:`Authorization failed: ${W.message}`}),{status:403,headers:{"Content-Type":"application/json"}})}}}async function FH1(X,Y,{superUser:Q}){let J=typeof X==="string"?await Y.storage.connections.findById(X,Y.organization?.id):X;if(!J)throw Error("Connection not found");let G=J?.id;if(Y.organization&&J.organization_id!==Y.organization.id)throw Error("Connection does not belong to the active organization");if(Y.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let W,Z=Y.auth.user?.connectionId,$=kK1(async()=>{let k=V90(J.configuration_state,J.configuration_scopes),h=Y.auth.user?.id??Y.auth.apiKey?.userId;if(!h){console.error("User ID required to issue configuration token");return}try{W=await TK1({sub:h,user:{id:h},metadata:{state:J.configuration_state??void 0,meshUrl:process.env.MESH_URL??Y.baseUrl,connectionId:G,organizationId:Y.organization?.id},permissions:k})}catch(t){console.error("Failed to issue configuration token:",t)}}),K=async()=>{await $();let k={...Z?{"x-caller-id":Z}:{},...Y.metadata.wellKnownForwardableHeaders??{},"x-request-id":Y.metadata.requestId},h=null,t=new TZ(Y.db,Y.vault),l=await t.get(G);if(l){let J0=!!l.refreshToken&&!!l.tokenEndpoint;if(t.isExpired(l,J0?300000:0))if(J0){console.log(`[Proxy] Token expired for ${G}, attempting refresh`);let Y0=await rK1(l);if(Y0.success&&Y0.accessToken)await t.upsert({connectionId:G,accessToken:Y0.accessToken,refreshToken:Y0.refreshToken??l.refreshToken,scope:Y0.scope??l.scope,expiresAt:Y0.expiresIn?new Date(Date.now()+Y0.expiresIn*1000):null,clientId:l.clientId,clientSecret:l.clientSecret,tokenEndpoint:l.tokenEndpoint}),h=Y0.accessToken,console.log(`[Proxy] Token refreshed for ${G}`);else await t.delete(G),console.error(`[Proxy] Token refresh failed for ${G}: ${Y0.error}`)}else await t.delete(G),console.log(`[Proxy] Token expired without refresh capability for ${G}`);else h=l.accessToken}if(!h&&J.connection_token)h=J.connection_token;if(h)k.Authorization=`Bearer ${h}`;if(W)k["x-mesh-token"]=W;return k},H=J.connection_type==="STDIO",F=fF(J.connection_headers)?J.connection_headers:null,V=!H?J.connection_headers:null,q=async()=>{let k=new PQ({name:"mcp-mesh-proxy",version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}}});switch(J.connection_type){case"STDIO":{if(process.env.UNSAFE_ALLOW_STDIO_TRANSPORT!=="true")throw Error("STDIO connections are disabled in production. Set UNSAFE_ALLOW_STDIO_TRANSPORT=true to enable.");if(!F)throw Error("STDIO connection missing parameters");return tK1({id:G,name:J.title,command:F.command,args:F.args,env:F.envVars,cwd:F.cwd},k)}case"HTTP":case"Websocket":{if(!J.connection_url)throw Error(`${J.connection_type} connection missing URL`);let h=await K();if(V?.headers)Object.assign(h,V.headers);let t=new x7(new URL(J.connection_url),{requestInit:{headers:h}});return await k.connect(t),k}case"SSE":{if(!J.connection_url)throw Error("SSE connection missing URL");let h=await K();if(V?.headers)Object.assign(h,V.headers);let t=new gF(new URL(J.connection_url),{requestInit:{headers:h}});return await k.connect(t),k}case"VIRTUAL":{let h=fK(J.connection_url);if(!h)throw Error("VIRTUAL connection missing virtual MCP ID in connection_url");let t=await Y.storage.virtualMcps.findById(h);if(!t)throw Error(`Virtual MCP not found: ${h}`);let l=await cA(t,Y,"passthrough");return{callTool:(J0)=>l.client.callTool(J0),listTools:()=>l.client.listTools(),listResources:()=>l.client.listResources(),readResource:(J0)=>l.client.readResource(J0),listResourceTemplates:()=>l.client.listResourceTemplates(),listPrompts:()=>l.client.listPrompts(),getPrompt:(J0)=>l.client.getPrompt(J0),close:async()=>{},getServerCapabilities:()=>({tools:{},resources:{},prompts:{}}),getInstructions:()=>t.metadata?.instructions??void 0}}default:throw Error(`Unknown connection type: ${J.connection_type}`)}},z=async()=>{if(J.tools&&J.tools.length>0)return{tools:J.tools.map((h)=>({name:h.name,description:h.description,inputSchema:h.inputSchema,outputSchema:h.outputSchema,annotations:h.annotations,_meta:h._meta}))};let k;try{return k=await q(),await k.listTools()}finally{k?.close().catch(console.error)}},D=Q?async(k,h)=>await h():Zp6(Y,G,z),N=Q?async(k,h)=>await h():$p6(Y,G,z),L=Y.connectionId&&Y.connectionId!==G?Y.connectionId:void 0,w={enabled:XL0().enabled,connectionId:G,connectionTitle:J.title,virtualMcpId:L,ctx:Y},C=KH1(w),T=HH1(w),A=VA(C,D),P=VA(T,N),j=async(k)=>{return A(k,async()=>{let h=await q(),t=Date.now(),l={...k.params};if(l.arguments&&"_meta"in l.arguments){let{_meta:J0,...V0}=l.arguments;l.arguments=V0}return await Y.tracer.startActiveSpan("mcp.proxy.callTool",{attributes:{"connection.id":G,"tool.name":k.params.name,"request.id":Y.metadata.requestId}},async(J0)=>{try{let V0=await h.callTool(l,void 0,{timeout:vQ0}),Y0=Date.now()-t;return Y.meter.createHistogram("connection.proxy.duration").record(Y0,{"connection.id":G,"tool.name":k.params.name,status:"success"}),Y.meter.createCounter("connection.proxy.requests").add(1,{"connection.id":G,"tool.name":k.params.name,status:"success"}),J0.end(),V0}catch(V0){let Y0=V0,U0=Date.now()-t;throw Y.meter.createHistogram("connection.proxy.duration").record(U0,{"connection.id":G,"tool.name":k.params.name,status:"error"}),Y.meter.createCounter("connection.proxy.errors").add(1,{"connection.id":G,"tool.name":k.params.name,error:Y0.message}),J0.recordException(Y0),J0.end(),V0}finally{h.close().catch(console.error)}})})};return{fetch:async(k)=>{let h=new URL(k.url),t;try{t=await q()}catch(P0){let v0=J.connection_url?await GH1({error:P0,reqUrl:h,connectionId:G,connectionUrl:J.connection_url,headers:await K()}):null;if(v0)return v0;throw P0}let l=t.getServerCapabilities(),J0=t.getInstructions(),V0=l??{tools:{},resources:{},prompts:{}},Y0=new uF({name:"mcp-mesh",version:"1.0.0"},{capabilities:V0,instructions:J0}),U0=new mF({enableJsonResponse:k.headers.get("Accept")?.includes("application/json")??!1});if(await Y0.connect(U0),Y0.server.setRequestHandler(jK,()=>t.listTools()),Y0.server.setRequestHandler(y7,j),V0.resources)Y0.server.setRequestHandler(MK,()=>t.listResources()),Y0.server.setRequestHandler(AK,(P0)=>t.readResource(P0.params)),Y0.server.setRequestHandler(PK,()=>t.listResourceTemplates());if(V0.prompts)Y0.server.setRequestHandler(TK,()=>t.listPrompts()),Y0.server.setRequestHandler(EK,(P0)=>t.getPrompt(P0.params));try{return await U0.handleRequest(k)}finally{try{await t.close()}catch{}try{await U0.close?.()}catch{}}},client:{callTool:(k)=>{return j({method:"tools/call",params:k})},listTools:z,listResources:async()=>{let k;try{return k=await q(),await k.listResources()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{resources:[]};throw h}finally{k?.close().catch(console.error)}},readResource:async(k)=>{let h;try{return h=await q(),await h.readResource(k)}finally{h?.close().catch(console.error)}},listResourceTemplates:async()=>{let k;try{return k=await q(),await k.listResourceTemplates()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{resourceTemplates:[]};throw h}finally{k?.close().catch(console.error)}},listPrompts:async()=>{let k;try{return k=await q(),await k.listPrompts()}catch(h){if(h instanceof J1&&h.code===K1.MethodNotFound)return{prompts:[]};throw h}finally{k?.close().catch(console.error)}},getPrompt:async(k)=>{let h;try{return h=await q(),await h.getPrompt(k)}finally{h?.close().catch(console.error)}}},callStreamableTool:async(k,h)=>{if(J.connection_type==="VIRTUAL"){let J0=await j({method:"tools/call",params:{name:k,arguments:h}});return new Response(JSON.stringify(J0),{headers:{"Content-Type":"application/json"}})}if(!J.connection_url)throw Error("Streamable tools require HTTP connection with URL");let t=J.connection_url,l={method:"tools/call",params:{name:k,arguments:h}};return P(l,async()=>{let J0=await K();if(V?.headers)Object.assign(J0,V.headers);let V0=new URL(t);return V0.pathname=V0.pathname.replace(/\/$/,"")+`/call-tool/${l.params.name}`,await Y.tracer.startActiveSpan("mcp.proxy.callStreamableTool",{attributes:{"connection.id":G,"tool.name":l.params.name,"request.id":Y.metadata.requestId}},async(Y0)=>{let U0=Date.now();try{let P0=await fetch(V0.toString(),{method:"POST",redirect:"manual",body:JSON.stringify(l.params.arguments),headers:{...J0,"Content-Type":"application/json"}}),v0=Date.now()-U0;return Y.meter.createHistogram("connection.proxy.streamable.duration").record(v0,{"connection.id":G,"tool.name":l.params.name,status:P0.ok?"success":"error"}),Y.meter.createCounter("connection.proxy.streamable.requests").add(1,{"connection.id":G,"tool.name":l.params.name,status:P0.ok?"success":"error"}),Y0.end(),P0}catch(P0){let v0=P0,W1=Date.now()-U0;throw Y.meter.createHistogram("connection.proxy.streamable.duration").record(W1,{"connection.id":G,"tool.name":l.params.name,status:"error"}),Y.meter.createCounter("connection.proxy.streamable.errors").add(1,{"connection.id":G,"tool.name":l.params.name,error:v0.message}),Y0.recordException(v0),Y0.end(),P0}})})}}}async function VH1(X,Y){return FH1(X,Y,{superUser:!1})}async function qH1(X,Y){return FH1(X,Y,{superUser:!0})}var af,vQ0=300000,UH1=(X,Y)=>{if(X.message.includes("not found"))return Y.json({error:X.message},404);if(X.message.includes("does not belong to the active organization"))return Y.json({error:"Connection not found"},404);if(X.message.includes("inactive"))return Y.json({error:X.message},503);return Y.json({error:"Internal server error",message:X.message},500)},zH1;var iA=S(()=>{CQ0();q90();fS();eK1();jf();g7();yF();Jf();LB();$f();Kf();RX();ZG();BQ0();uf();RQ0();cf();af=new ZX;af.all("/",async(X)=>{return mf(X,void 0)});af.all("/:connectionId",async(X)=>{let Y=X.req.param("connectionId"),Q=X.get("meshContext");try{return await(await Q.createMCPProxy(Y)).fetch(X.req.raw)}catch(J){return UH1(J,X)}});af.all("/:connectionId/call-tool/:toolName",async(X)=>{let Y=X.req.param("connectionId"),Q=X.req.param("toolName"),J=X.get("meshContext");try{let W=await(await J.createMCPProxy(Y)).client.callTool({name:Q,arguments:await X.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 UH1(G,X)}});zH1=af});class _Q0{db;constructor(X){this.db=X}async create(X){let Y=X.id??GX("thrd"),Q=new Date().toISOString();if(!X.organizationId)throw Error("organizationId is required");if(!X.createdBy)throw Error("createdBy is required");if(!X.title)X.title="New Thread - "+Q;let J={id:Y,organization_id:X.organizationId,title:X.title,description:X.description??null,created_at:Q,updated_at:Q,created_by:X.createdBy,updated_by:X.updatedBy??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(X){let Y=await this.db.selectFrom("threads").selectAll().where("id","=",X).executeTakeFirst();return Y?this.threadFromDbRow(Y):null}async update(X,Y){let J={updated_at:new Date().toISOString()};if(Y.title!==void 0)J.title=Y.title;if(Y.description!==void 0)J.description=Y.description;if(Y.updatedBy!==void 0)J.updated_by=Y.updatedBy;if(Y.hidden!==void 0)J.hidden=Y.hidden;await this.db.updateTable("threads").set(J).where("id","=",X).execute();let G=await this.get(X);if(!G)throw Error("Thread not found after update");return G}async delete(X){await this.db.deleteFrom("threads").where("id","=",X).execute()}async list(X,Y,Q){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",X).where("hidden","=",!1).orderBy("updated_at","desc");if(Y)J=J.where("created_by","=",Y);let G=this.db.selectFrom("threads").select(($)=>$.fn.count("id").as("count")).where("organization_id","=",X).where("hidden","=",!1);if(Y)G=G.where("created_by","=",Y);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[W,Z]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:W.map(($)=>this.threadFromDbRow($)),total:Number(Z?.count||0)}}async saveMessages(X){let Y=new Date().toISOString(),Q=X[0]?.threadId;if(!Q)throw Error("threadId is required when creating multiple messages");let J=X.find((W)=>W.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=X.map((W)=>({id:W.id,thread_id:Q,metadata:W.metadata?JSON.stringify(W.metadata):null,parts:JSON.stringify(W.parts),role:W.role,created_at:W.createdAt??Y,updated_at:Y}));await this.db.transaction().execute(async(W)=>{await W.insertInto("thread_messages").values(G).execute(),await W.updateTable("threads").set({updated_at:Y}).where("id","=",Q).execute()})}async listMessages(X,Y){let Q=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",X).orderBy("created_at","asc").orderBy("id","asc"),J=this.db.selectFrom("thread_messages").select((Z)=>Z.fn.count("id").as("count")).where("thread_id","=",X);if(Y?.limit)Q=Q.limit(Y.limit);if(Y?.offset)Q=Q.offset(Y.offset);let[G,W]=await Promise.all([Q.execute(),J.executeTakeFirst()]);return{messages:G.map((Z)=>this.messageFromDbRow(Z)),total:Number(W?.count||0)}}threadFromDbRow(X){return{id:X.id,organizationId:X.organization_id,title:X.title,description:X.description,createdAt:typeof X.created_at==="string"?X.created_at:X.created_at.toISOString(),updatedAt:typeof X.updated_at==="string"?X.updated_at:X.updated_at.toISOString(),createdBy:X.created_by,updatedBy:X.updated_by,hidden:X.hidden}}messageFromDbRow(X){let Y,Q;try{Y=X.metadata?JSON.parse(X.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${X.id}:`,X.metadata,J),Y=void 0}try{Q=typeof X.parts==="string"?JSON.parse(X.parts):X.parts}catch(J){console.error(`Failed to parse parts for message ${X.id}:`,X.parts,J),Q=[]}return{id:X.id,threadId:X.thread_id,metadata:Y,parts:Q,role:X.role,createdAt:typeof X.created_at==="string"?X.created_at:X.created_at.toISOString(),updatedAt:typeof X.updated_at==="string"?X.updated_at:X.updated_at.toISOString()}}}var BH1=S(()=>{wZ()});function Kp6(X){if(!X)return;try{let Y=JSON.parse(X);if(typeof Y!=="object"||Y===null||Array.isArray(Y))return;let Q={};for(let[J,G]of Object.entries(Y))if(typeof G==="string")Q[J]=G;return Object.keys(Q).length>0?Q:void 0}catch{return}}function Hp6(X,Y){for(let[Q,J]of Object.entries(Y)){let G=X[Q];if(!G||G.length===0){let W=X["*"];if(!W||W.length===0)return!1;if(W.includes("*"))continue;for(let Z of J)if(!W.includes(Z))return!1;continue}if(G.includes("*"))continue;for(let W of J)if(!G.includes(W))return!1}return!0}function Fp6(X){let{auth:Y,headers:Q,role:J,permissions:G,userId:W}=X,Z=Y.api.hasPermission;return{hasPermission:async($)=>{if(J&&e90.includes(J))return!0;if(G)return Hp6(G,$);if(!Z)return console.error("[Auth] hasPermission API not available"),!1;try{if((await Z({headers:Q,body:{permission:$}}))?.success===!0)return!0;let H={};for(let V of Object.keys($))H[V]=["*"];return(await Z({headers:Q,body:{permission:H}}))?.success===!0}catch(K){return console.error("[Auth] Permission check failed:",K),!1}},organization:{create:async($)=>{return Y.api.createOrganization({headers:Q,body:$})},update:async($)=>{return Y.api.updateOrganization({headers:Q,body:$})},delete:async($)=>{await Y.api.deleteOrganization({headers:Q,body:{organizationId:$}})},get:async($)=>{return Y.api.getFullOrganization({headers:Q,query:$?{organizationId:$}:void 0})},list:async($)=>{return Y.api.listOrganizations({headers:Q,query:$?{userId:$}:void 0})},addMember:async($)=>{return Y.api.addMember({headers:Q,body:$})},removeMember:async($)=>{await Y.api.removeMember({headers:Q,body:$})},listMembers:async($)=>{return Y.api.listMembers({headers:Q,query:$?{organizationId:$.organizationId,limit:$.limit,offset:$.offset}:void 0})},updateMemberRole:async($)=>{return Y.api.updateMemberRole({headers:Q,body:$})}},apiKey:{create:async($)=>{return Y.api.createApiKey({body:{...$,userId:W}})},list:async()=>{return Y.api.listApiKeys({headers:Q})},update:async($)=>{return Y.api.updateApiKey({body:{...$,userId:W}})},delete:async($)=>{await Y.api.deleteApiKey({headers:Q,body:{keyId:$}})}}}}async function Vp6(X,Y,Q){if(e90.includes(Q))return;let J=await X.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Y).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 qp6(X,Y,Q,J=NH1){let G=X.headers.get("Authorization");try{let W=new Headers(X.headers);W.set("X-MCP-Session-Auth","true");let Z=await J.measure("auth_get_mcp_session",()=>Y.api.getMcpSession({headers:W}));if(Z){let $=Z.userId,K=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","=",$).executeTakeFirst()),H=K?.role,F=K?{id:K.orgId,slug:K.orgSlug,name:K.orgName}:void 0,V;if(K&&H)V=await J.measure("auth_fetch_role_permissions",()=>Vp6(Q,K.organizationId,H));return{user:{id:$,role:H},role:H,permissions:V,organization:F}}}catch(W){console.error("[Auth] OAuth session check failed:",W)}if(G?.startsWith("Bearer ")){let W=G.replace("Bearer ","").trim();try{let Z=await J.measure("auth_verify_mesh_jwt",()=>EK1(W));if(Z){let $,K=Z.metadata?.organizationId;if(Z.sub&&K)$=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",Z.sub).where("member.organizationId","=",K).executeTakeFirst()))?.role;return{user:{id:Z.sub,connectionId:Z.metadata?.connectionId,role:$},role:$,permissions:Z.permissions,organization:Z.metadata?.organizationId?{id:Z.metadata?.organizationId}:void 0}}}catch{}try{let Z=await J.measure("auth_verify_api_key",()=>Y.api.verifyApiKey({body:{key:W}}));if(Z?.valid&&Z.key){let $=Z.key.metadata?.organization,K=Z.key.permissions,H,F=Z.key.userId;if(F&&$?.id)H=(await J.measure("auth_query_membership",()=>Q.selectFrom("member").select(["member.role"]).where("member.userId","=",F).where("member.organizationId","=",$.id).executeTakeFirst()))?.role;return{apiKeyId:Z.key.id,user:{id:Z.key.userId,role:H},role:H,permissions:K,organization:$?{id:$.id,slug:$.slug,name:$.name}:void 0}}}catch(Z){console.error("[Auth] API key check failed:",Z)}}try{let W=await J.measure("auth_get_session",()=>Y.api.getSession({headers:X.headers}));if(W){let Z,$;if(W.session.activeOrganizationId){let K=await J.measure("auth_get_full_organization",()=>Y.api.getFullOrganization({headers:X.headers}).catch(()=>null));if(K)Z={id:K.id,slug:K.slug,name:K.name},$=K.members?.find((F)=>F.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:$},role:$,organization:Z}}}catch(W){let Z=W;console.error("[Auth] Session check failed:",JSON.stringify({message:Z.message,body:Z.body,stack:Z.stack},null,2))}return{user:void 0}}function OH1(X){let Y=new JA(X.encryption.key),Q={connections:new GA(X.db,Y),organizationSettings:new LQ0(X.db),monitoring:new OQ0(X.db,X.databaseType),virtualMcps:new DQ0(X.db),users:new wQ0(X.db),threads:new _Q0(X.db)};return async(J,G)=>{let W=G?.timings??NH1,Z=J?.headers.get("x-caller-id")??void 0,$=J?await qp6(J,X.auth,X.db,W):{user:void 0},K=Fp6({auth:X.auth,headers:J?.headers??new Headers,role:$.role,permissions:$.permissions,userId:$.user?.id}),H={user:$.user};if($.apiKeyId)H.apiKey={id:$.apiKeyId,name:"",userId:""};let F=$.organization,V=J?new URL(J.url):new URL("http://localhost:3000"),q=process.env.BASE_URL??`${V.protocol}//${V.host}`,z=new dK(X.auth,H.user?.id,void 0,K,$.role,"self"),D={timings:W,auth:H,connectionId:Z,organization:F,storage:Q,vault:Y,authInstance:X.auth,boundAuth:K,access:z,db:X.db,tracer:X.observability.tracer,meter:X.observability.meter,baseUrl:q,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Up6.map((N)=>[N,J?.headers.get(N)??null]).filter(([N,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:Kp6(J?.headers.get("x-mesh-properties"))},eventBus:X.eventBus,createMCPProxy:async(N)=>{return await VH1(N,D)}};return D}}var DH1,pK,NH1,Up6;var nf=S(()=>{BQ0();XY0();YY0();jK1();IK1();uf();iA();XQ0();BH1();pK={set:(X)=>{DH1=X},create:async(X,Y)=>{return await DH1(X,Y)}},NH1={measure:async(X,Y)=>{return await Y()}},Up6=["x-hub-signature-256"]});class LH1{db;constructor(X){this.db=X}async publishEvent(X){let Y=new Date().toISOString();return await this.db.insertInto("events").values({id:X.id,organization_id:X.organizationId,type:X.type,source:X.source,specversion:"1.0",subject:X.subject??null,time:X.time,datacontenttype:X.datacontenttype??"application/json",dataschema:X.dataschema??null,data:X.data?JSON.stringify(X.data):null,cron:X.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Y,updated_at:Y}).execute(),{id:X.id,organizationId:X.organizationId,type:X.type,source:X.source,specversion:"1.0",subject:X.subject??null,time:X.time,datacontenttype:X.datacontenttype??"application/json",dataschema:X.dataschema??null,data:X.data??null,cron:X.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:Y,updatedAt:Y}}async subscribe(X){let Y=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X.organizationId).where("connection_id","=",X.connectionId).where("event_type","=",X.eventType);if(X.publisher)Y=Y.where("publisher","=",X.publisher);else Y=Y.where("publisher","is",null);if(X.filter)Y=Y.where("filter","=",X.filter);else Y=Y.where("filter","is",null);let Q=await Y.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:X.id,organization_id:X.organizationId,connection_id:X.connectionId,publisher:X.publisher??null,event_type:X.eventType,filter:X.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:X.id,organizationId:X.organizationId,connectionId:X.connectionId,publisher:X.publisher??null,eventType:X.eventType,filter:X.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(X,Y){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",X).where("organization_id","=",Y).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(X,Y){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X);if(Y)Q=Q.where("connection_id","=",Y);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(X,Y){let Q=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",X).where("organization_id","=",Y).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(X){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",X.organizationId).where("enabled","=",1).where("event_type","=",X.type).where((Q)=>Q.or([Q("publisher","is",null),Q("publisher","=",X.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(X,Y,Q){if(Y.length===0)return;let J=new Date().toISOString(),G=Q??null,W=Y.map((Z)=>({id:crypto.randomUUID(),event_id:X,subscription_id:Z,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(W).execute()}async claimPendingDeliveries(X){let Y=new Date().toISOString(),Q;try{Q=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(W)=>W.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((Z)=>Z.or([Z("d.next_retry_at","is",null),Z("d.next_retry_at","<=",Y)])).orderBy("d.created_at","asc").limit(X)).where("status","=","pending").returning(["id"]).execute()).map((W)=>W.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((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",Y)])).orderBy("d.created_at","asc").limit(X).execute();if(G.length===0)return[];Q=G.map((W)=>W.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(X){if(X.length===0)return;let Y=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:Y}).where("id","in",X).execute()}async markDeliveriesFailed(X,Y,Q=20,J=1000,G=3600000){if(X.length===0)return;for(let W of X){let Z=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",W).executeTakeFirst();if(!Z)continue;let $=Z.attempts+1;if($>=Q)await this.db.updateTable("event_deliveries").set({attempts:$,last_error:Y,status:"failed",next_retry_at:null}).where("id","=",W).execute();else{let K=Math.min(J*Math.pow(2,$-1),G),H=new Date(Date.now()+K).toISOString();await this.db.updateTable("event_deliveries").set({attempts:$,last_error:Y,status:"pending",next_retry_at:H}).where("id","=",W).execute()}}}async updateEventStatus(X){let Y=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",X).execute();if(Y.length===0)return;let Q=Y.every((W)=>W.status==="delivered"),J=Y.some((W)=>W.status==="failed"),G=Y.some((W)=>W.status==="pending"||W.status==="processing");if(Q)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",X).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",X).execute()}async resetStuckDeliveries(){let X=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(X.numUpdatedRows??0)}async getEvent(X,Y){let Q=await this.db.selectFrom("events").selectAll().where("id","=",X).where("organization_id","=",Y).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(X,Y,Q,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",X).where("type","=",Y).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(X,Y,Q){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",X).where("organization_id","=",Y).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","=",X).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(X,Y){if(X.length===0)return;let Q=new Date(Date.now()+Y).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:Q}).where("id","in",X).execute()}async ackDelivery(X,Y,Q){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",X).where("organization_id","=",Y).executeTakeFirst())return{success:!1};let W=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",X).where("status","in",["pending","processing"]).where((Z)=>Z.exists(Z.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",Q).where("event_subscriptions.organization_id","=",Y))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(W)await this.updateEventStatus(X);return{success:W}}async syncSubscriptions(X){let{organizationId:Y,connectionId:Q,subscriptions:J}=X,G=(w,C)=>{return`${w}::${C??""}`},W=await this.listSubscriptions(Y,Q),Z=new Map;for(let w of W)Z.set(G(w.eventType,w.publisher),w);let $=new Map;for(let w of J)$.set(G(w.eventType,w.publisher),w);let K=new Date().toISOString(),H=[],F=[],V=[],q=0;for(let[w,C]of $){let T=Z.get(w);if(!T)H.push({id:crypto.randomUUID(),organization_id:Y,connection_id:Q,event_type:C.eventType,publisher:C.publisher??null,filter:C.filter??null,enabled:1,created_at:K,updated_at:K});else{let A=T.filter??null,P=C.filter??null;if(A!==P)F.push({id:T.id,filter:P});else q++}}for(let[w,C]of Z)if(!$.has(w))V.push(C.id);if(H.length>0)await this.db.insertInto("event_subscriptions").values(H).execute();if(F.length>0)await Promise.all(F.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:K}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let z=H.length,D=F.length,N=V.length,L=await this.listSubscriptions(Y,Q);return{created:z,updated:D,deleted:N,unchanged:q,subscriptions:L}}}function wH1(X){return new LH1(X)}function K9(X,Y,Q,J,G,W,Z,$){return K9.fromTZ(K9.tp(X,Y,Q,J,G,W,Z),$)}function yQ0(X,Y=new Date){let Q=Y.toLocaleString("en-US",{timeZone:X,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=Y.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${Q}`)}function zp6(X,Y){let Q=new Date(Date.parse(X));if(isNaN(Q))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=X.substring(9);return X.includes("Z")||J.includes("-")||J.includes("+")?K9.tp(Q.getUTCFullYear(),Q.getUTCMonth()+1,Q.getUTCDate(),Q.getUTCHours(),Q.getUTCMinutes(),Q.getUTCSeconds(),"Etc/UTC"):K9.tp(Q.getFullYear(),Q.getMonth()+1,Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),Y)}function Bp6(X){if(X===void 0&&(X={}),delete X.name,X.legacyMode=X.legacyMode===void 0?!0:X.legacyMode,X.paused=X.paused===void 0?!1:X.paused,X.maxRuns=X.maxRuns===void 0?1/0:X.maxRuns,X.catch=X.catch===void 0?!1:X.catch,X.interval=X.interval===void 0?0:parseInt(X.interval.toString(),10),X.utcOffset=X.utcOffset===void 0?void 0:parseInt(X.utcOffset.toString(),10),X.unref=X.unref===void 0?!1:X.unref,X.startAt&&(X.startAt=new V5(X.startAt,X.timezone)),X.stopAt&&(X.stopAt=new V5(X.stopAt,X.timezone)),X.interval!==null){if(isNaN(X.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(X.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(X.utcOffset!==void 0){if(isNaN(X.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(X.utcOffset<-870||X.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(X.utcOffset!==void 0&&X.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(X.unref!==!0&&X.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return X}function aA(X){return Object.prototype.toString.call(X)==="[object Function]"||typeof X=="function"||X instanceof Function}function Dp6(X){return aA(X)}function Np6(X){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(X):X&&typeof X.unref<"u"&&X.unref()}var bQ0=32,rA,TH1,MH1=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(X,Y){this.pattern=X,this.timezone=Y,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 X=this.pattern.replace(/\s+/g," ").split(" ");if(X.length<5||X.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(X.length===5&&X.unshift("0"),X[3].indexOf("L")>=0&&(X[3]=X[3].replace("L",""),this.lastDayOfMonth=!0),X[3]=="*"&&(this.starDOM=!0),X[4].length>=3&&(X[4]=this.replaceAlphaMonths(X[4])),X[5].length>=3&&(X[5]=this.replaceAlphaDays(X[5])),X[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Y=new V5(new Date,this.timezone).getDate(!0);X[0]=X[0].replace("?",Y.getSeconds().toString()),X[1]=X[1].replace("?",Y.getMinutes().toString()),X[2]=X[2].replace("?",Y.getHours().toString()),this.starDOM||(X[3]=X[3].replace("?",Y.getDate().toString())),X[4]=X[4].replace("?",(Y.getMonth()+1).toString()),this.starDOW||(X[5]=X[5].replace("?",Y.getDay().toString()))}this.throwAtIllegalCharacters(X),this.partToArray("second",X[0],0,1),this.partToArray("minute",X[1],0,1),this.partToArray("hour",X[2],0,1),this.partToArray("day",X[3],-1,1),this.partToArray("month",X[4],-1,1),this.partToArray("dayOfWeek",X[5],0,rA),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(X,Y,Q,J){let G=this[X],W=X==="day"&&this.lastDayOfMonth;if(Y===""&&!W)throw TypeError("CronPattern: configuration entry "+X+" ("+Y+") is empty, check for trailing spaces.");if(Y==="*")return G.fill(J);let Z=Y.split(",");if(Z.length>1)for(let $=0;$<Z.length;$++)this.partToArray(X,Z[$],Q,J);else Y.indexOf("-")!==-1&&Y.indexOf("/")!==-1?this.handleRangeWithStepping(Y,X,Q,J):Y.indexOf("-")!==-1?this.handleRange(Y,X,Q,J):Y.indexOf("/")!==-1?this.handleStepping(Y,X,Q,J):Y!==""&&this.handleNumber(Y,X,Q,J)}throwAtIllegalCharacters(X){for(let Y=0;Y<X.length;Y++)if((Y===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(X[Y]))throw TypeError("CronPattern: configuration entry "+Y+" ("+X[Y]+") contains illegal characters.")}handleNumber(X,Y,Q,J){let G=this.extractNth(X,Y),W=parseInt(G[0],10)+Q;if(isNaN(W))throw TypeError("CronPattern: "+Y+" is not a number: '"+X+"'");this.setPart(Y,W,G[1]||J)}setPart(X,Y,Q){if(!Object.prototype.hasOwnProperty.call(this,X))throw TypeError("CronPattern: Invalid part specified: "+X);if(X==="dayOfWeek"){if(Y===7&&(Y=0),Y<0||Y>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Y);this.setNthWeekdayOfMonth(Y,Q);return}if(X==="second"||X==="minute"){if(Y<0||Y>=60)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="hour"){if(Y<0||Y>=24)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="day"){if(Y<0||Y>=31)throw RangeError("CronPattern: Invalid value for "+X+": "+Y)}else if(X==="month"&&(Y<0||Y>=12))throw RangeError("CronPattern: Invalid value for "+X+": "+Y);this[X][Y]=Q}handleRangeWithStepping(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(W===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+X+"'");let[,Z,$,K]=W,H=parseInt(Z,10)+Q,F=parseInt($,10)+Q,V=parseInt(K,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[Y].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Y].length+")");if(H>F)throw TypeError("CronPattern: From value is larger than to value: '"+X+"'");for(let q=H;q<=F;q+=V)this.setPart(Y,q,G[1]||J)}extractNth(X,Y){let Q=X,J;if(Q.includes("#")){if(Y!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=Q.split("#")[1],Q=Q.split("#")[0]}return[Q,J]}handleRange(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].split("-");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+X+"'");let Z=parseInt(W[0],10)+Q,$=parseInt(W[1],10)+Q;if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(Z>$)throw TypeError("CronPattern: From value is larger than to value: '"+X+"'");for(let K=Z;K<=$;K++)this.setPart(Y,K,G[1]||J)}handleStepping(X,Y,Q,J){let G=this.extractNth(X,Y),W=G[0].split("/");if(W.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+X+"'");W[0]===""&&(W[0]="*");let Z=0;W[0]!=="*"&&(Z=parseInt(W[0],10)+Q);let $=parseInt(W[1],10);if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if($===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if($>this[Y].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Y].length+")");for(let K=Z;K<this[Y].length;K+=$)this.setPart(Y,K,G[1]||J)}replaceAlphaDays(X){return X.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(X){return X.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(X){let Y=X.trim().toLowerCase();return Y==="@yearly"||Y==="@annually"?"0 0 1 1 *":Y==="@monthly"?"0 0 1 * *":Y==="@weekly"?"0 0 * * 0":Y==="@daily"?"0 0 * * *":Y==="@hourly"?"0 * * * *":X}setNthWeekdayOfMonth(X,Y){if(typeof Y!="number"&&Y==="L")this.dayOfWeek[X]=this.dayOfWeek[X]|bQ0;else if(Y===rA)this.dayOfWeek[X]=rA;else if(Y<6&&Y>0)this.dayOfWeek[X]=this.dayOfWeek[X]|TH1[Y-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Y}, Type: ${typeof Y}`)}},PH1,jZ,V5=class X{tz;ms;second;minute;hour;day;month;year;constructor(Y,Q){if(this.tz=Q,Y&&Y instanceof Date)if(!isNaN(Y))this.fromDate(Y);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Y===void 0)this.fromDate(new Date);else if(Y&&typeof Y=="string")this.fromString(Y);else if(Y instanceof X)this.fromCronDate(Y);else throw TypeError("CronDate: Invalid type ("+typeof Y+") passed to CronDate constructor")}isNthWeekdayOfMonth(Y,Q,J,G){let W=new Date(Date.UTC(Y,Q,J)).getUTCDay(),Z=0;for(let $=1;$<=J;$++)new Date(Date.UTC(Y,Q,$)).getUTCDay()===W&&Z++;if(G&rA&&TH1[Z-1]&G)return!0;if(G&bQ0){let $=new Date(Date.UTC(Y,Q+1,0)).getUTCDate();for(let K=J+1;K<=$;K++)if(new Date(Date.UTC(Y,Q,K)).getUTCDay()===W)return!1;return!0}return!1}fromDate(Y){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Y.getUTCMilliseconds(),this.second=Y.getUTCSeconds(),this.minute=Y.getUTCMinutes()+this.tz,this.hour=Y.getUTCHours(),this.day=Y.getUTCDate(),this.month=Y.getUTCMonth(),this.year=Y.getUTCFullYear(),this.apply();else{let Q=K9.toTZ(Y,this.tz);this.ms=Y.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=Y.getMilliseconds(),this.second=Y.getSeconds(),this.minute=Y.getMinutes(),this.hour=Y.getHours(),this.day=Y.getDate(),this.month=Y.getMonth(),this.year=Y.getFullYear()}fromCronDate(Y){this.tz=Y.tz,this.year=Y.year,this.month=Y.month,this.day=Y.day,this.hour=Y.hour,this.minute=Y.minute,this.second=Y.second,this.ms=Y.ms}apply(){if(this.month>11||this.day>PH1[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Y=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Y.getUTCMilliseconds(),this.second=Y.getUTCSeconds(),this.minute=Y.getUTCMinutes(),this.hour=Y.getUTCHours(),this.day=Y.getUTCDate(),this.month=Y.getUTCMonth(),this.year=Y.getUTCFullYear(),!0}else return!1}fromString(Y){if(typeof this.tz=="number"){let Q=K9.fromTZISO(Y);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(K9.fromTZISO(Y,this.tz))}findNext(Y,Q,J,G){let W=this[Q],Z;J.lastDayOfMonth&&(this.month!==1?Z=PH1[this.month]:Z=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let $=!J.starDOW&&Q=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let K=this[Q]+G;K<J[Q].length;K++){let H=J[Q][K];if(Q==="day"&&J.lastDayOfMonth&&K-G==Z&&(H=1),Q==="day"&&!J.starDOW){let F=J.dayOfWeek[($+(K-G-1))%7];if(F&&F&rA)F=this.isNthWeekdayOfMonth(this.year,this.month,K-G,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);Y.legacyMode&&!J.starDOM?H=H||F:H=H&&F}if(H)return this[Q]=K-G,W!==this[Q]?2:1}return 3}recurse(Y,Q,J){let G=this.findNext(Q,jZ[J][0],Y,jZ[J][2]);if(G>1){let W=J+1;for(;W<jZ.length;)this[jZ[W][0]]=-jZ[W][2],W++;if(G===3)return this[jZ[J][1]]++,this[jZ[J][0]]=-jZ[J][2],this.apply(),this.recurse(Y,Q,0);if(this.apply())return this.recurse(Y,Q,J-1)}return J+=1,J>=jZ.length?this:this.year>=3000?null:this.recurse(Y,Q,J)}increment(Y,Q,J){return this.second+=Q.interval!==void 0&&Q.interval>1&&J?Q.interval:1,this.ms=0,this.apply(),this.recurse(Y,Q,0)}getDate(Y){return Y||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)):K9.fromTZ(K9.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},AH1=30000,rf,of=class{name;options;_states;fn;constructor(X,Y,Q){let J,G;if(aA(Y))G=Y;else if(typeof Y=="object")J=Y;else if(Y!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(aA(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=Bp6(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 MH1("* * * * *")},X&&(X instanceof Date||typeof X=="string"&&X.indexOf(":")>0)?this._states.once=new V5(X,this.options.timezone||this.options.utcOffset):this._states.pattern=new MH1(X,this.options.timezone),this.name){if(rf.find((W)=>W.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");rf.push(this)}return G!==void 0&&Dp6(G)&&(this.fn=G,this.schedule()),this}nextRun(X){let Y=this._next(X);return Y?Y.getDate(!1):null}nextRuns(X,Y){this._states.maxRuns!==void 0&&X>this._states.maxRuns&&(X=this._states.maxRuns);let Q=[],J=Y||this._states.currentRun||void 0;for(;X--&&(J=this.nextRun(J));)Q.push(J);return Q}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let X=this.nextRun(this._states.currentRun),Y=!this._states.paused,Q=this.fn!==void 0,J=!this._states.kill;return Y&&Q&&J&&X!==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(X){let Y=this._next(X);return Y?X instanceof V5||X instanceof Date?Y.getTime()-X.getTime():Y.getTime()-new V5(X).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let X=rf.indexOf(this);X>=0&&rf.splice(X,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(X){if(X&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");X&&(this.fn=X);let Y=this.msToNext(),Q=this.nextRun(this._states.currentRun);return Y==null||isNaN(Y)||Q===null?this:(Y>AH1&&(Y=AH1),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(Q),Y),this._states.currentTimeout&&this.options.unref&&Np6(this._states.currentTimeout),this)}async _trigger(X){if(this._states.blocking=!0,this._states.currentRun=new V5(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Y){aA(this.options.catch)&&this.options.catch(Y,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new V5(X,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(X){let Y=new Date,Q=!this._states.paused&&Y.getTime()>=X.getTime(),J=this._states.blocking&&this.options.protect;Q&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):Q&&J&&aA(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(X){let Y=!!(X||this._states.currentRun),Q=!1;!X&&this.options.startAt&&this.options.interval&&([X,Y]=this._calculatePreviousRun(X,Y),Q=!X),X=new V5(X,this.options.timezone||this.options.utcOffset),this.options.startAt&&X&&X.getTime()<this.options.startAt.getTime()&&(X=this.options.startAt);let J=this._states.once||new V5(X,this.options.timezone||this.options.utcOffset);return!Q&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,Y)),this._states.once&&this._states.once.getTime()<=X.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(X,Y){let Q=new V5(void 0,this.options.timezone||this.options.utcOffset),J=X;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 V5(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;Y=!0}return J===null&&(J=void 0),[J,Y]}};var fQ0=S(()=>{K9.fromTZISO=(X,Y,Q)=>K9.fromTZ(zp6(X,Y),Q);K9.fromTZ=function(X,Y){let Q=new Date(Date.UTC(X.y,X.m-1,X.d,X.h,X.i,X.s)),J=yQ0(X.tz,Q),G=new Date(Q.getTime()-J),W=yQ0(X.tz,G);if(W-J===0)return G;{let Z=new Date(Q.getTime()-W),$=yQ0(X.tz,Z);if($-W===0)return Z;if(!Y&&$-W>0)return Z;if(Y)throw Error("Invalid date passed to fromTZ()");return G}};K9.toTZ=function(X,Y){let Q=X.toLocaleString("en-US",{timeZone:Y}).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:Y}};K9.tp=(X,Y,Q,J,G,W,Z)=>({y:X,m:Y,d:Q,h:J,i:G,s:W,tz:Z});K9.minitz=K9;rA=31|bQ0,TH1=[1,2,4,8,16],PH1=[31,28,31,30,31,30,31,31,30,31,30,31],jZ=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];rf=[]});var sf;var hQ0=S(()=>{sf={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function EH1(){return async(X,Y)=>{try{let Q=await pK.create(),J=await qH1(X,{...Q,auth:{...Q.auth,user:{id:"notify-worker"}}}),W=await Z90.forClient(J).ON_EVENTS({events:Y});return{success:W.success,error:W.error,retryAfter:W.retryAfter,results:W.results}}catch(Q){let J=Q instanceof Error?Q.message:String(Q);return console.error(`[EventBus] Failed to notify connection ${X}:`,J),{success:!1,error:J}}}}var jH1=S(()=>{nf();Mf();iA()});function CH1(X){return{specversion:"1.0",id:X.id,source:X.source,type:X.type,time:X.time,subject:X.subject??void 0,datacontenttype:X.datacontenttype,dataschema:X.dataschema??void 0,data:X.data??void 0}}function Op6(X){let Y=new Map;for(let J of X){let G=J.subscription.connectionId,W=Y.get(G);if(W){if(W.deliveryIds.push(J.delivery.id),!W.seenEventIds.has(J.event.id))W.seenEventIds.add(J.event.id),W.events.push(CH1(J.event))}else Y.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[CH1(J.event)],seenEventIds:new Set([J.event.id])})}let Q=new Map;for(let[J,G]of Y)Q.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return Q}class xQ0{storage;notifySubscriber;running=!1;processing=!1;config;constructor(X,Y){this.storage=X;this.notifySubscriber=EH1(),this.config={...sf,...Y}}async start(){if(this.running)return;let X=await this.storage.resetStuckDeliveries();if(X>0)console.log(`[EventBus] Reset ${X} 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(X){console.error("[EventBus] Error processing events:",X)}finally{this.processing=!1}}async processEvents(){let X=await this.storage.claimPendingDeliveries(this.config.batchSize);if(X.length===0)return;let Y=Op6(X),Q=new Set;for(let[J,G]of Y){try{let W=await this.notifySubscriber(G.connectionId,G.events);if(W.results&&Object.keys(W.results).length>0)await this.processPerEventResults(G,W);else if(W.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(W.retryAfter&&W.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,W.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,W.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(W){let Z=W instanceof Error?W.message:String(W);console.error(`[EventBus] Failed to notify subscription ${J}:`,Z),await this.storage.markDeliveriesFailed(G.deliveryIds,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let W of X)if(G.deliveryIds.includes(W.delivery.id))Q.add(W.event.id)}for(let J of Q)try{await this.storage.updateEventStatus(J);let G=X.find((W)=>W.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(X,Y){let Q=[],J=new Map,G=[],W=new Map;for(let Z=0;Z<X.events.length;Z++){let $=X.events?.[Z];if(!$)continue;let K=X.deliveryIds?.[Z];if(!K)continue;W.set($.id,K)}for(let Z of X.events){let $=W.get(Z.id);if(!$)continue;let K=Y.results?.[Z.id];if(K)if(K.success)Q.push($);else if(K.retryAfter&&K.retryAfter>0){let H=J.get(K.retryAfter)||[];H.push($),J.set(K.retryAfter,H)}else G.push({deliveryId:$,error:K.error||"Event processing failed"});else if(Y.success)Q.push($);else if(Y.retryAfter&&Y.retryAfter>0){let H=J.get(Y.retryAfter)||[];H.push($),J.set(Y.retryAfter,H)}else G.push({deliveryId:$,error:Y.error||"Batch processing failed"})}if(Q.length>0)await this.storage.markDeliveriesDelivered(Q);for(let[Z,$]of J)await this.storage.scheduleRetryWithoutAttemptIncrement($,Z);if(G.length>0){let Z=new Map;for(let{deliveryId:$,error:K}of G){let H=Z.get(K)||[];H.push($),Z.set(K,H)}for(let[$,K]of Z)await this.storage.markDeliveriesFailed(K,$,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(X){if(!X.cron)return;try{let Q=new of(X.cron).nextRun();if(!Q){console.log(`[EventBus] Cron expression for event ${X.id} has no more runs`);return}let J=Q.toISOString(),G=await this.storage.getMatchingSubscriptions(X);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${X.id}, skipping next delivery`);return}await this.storage.createDeliveries(X.id,G.map((W)=>W.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${X.id} at ${J}`)}catch(Y){console.error(`[EventBus] Failed to schedule next cron delivery for event ${X.id}:`,Y)}}}var IH1=S(()=>{fQ0();hQ0();jH1()});class gQ0{storage;worker;notifyStrategy;running=!1;constructor(X){this.storage=X.storage,this.notifyStrategy=X.notifyStrategy,this.worker=new xQ0(this.storage,X.config)}async publish(X,Y,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 F=new of(Q.cron).nextRun();if(!F)throw Error("Cron expression does not produce a next run time");J=F.toISOString()}catch(H){throw Error(`Invalid cron expression: ${H instanceof Error?H.message:String(H)}`)}let K=await this.storage.findActiveCronEvent(X,Q.type,Y,Q.cron);if(K)return K}let G=crypto.randomUUID(),W=new Date().toISOString(),Z=await this.storage.publishEvent({id:G,organizationId:X,type:Q.type,source:Y,subject:Q.subject,time:W,data:Q.data,cron:Q.cron}),$=await this.storage.getMatchingSubscriptions(Z);if($.length>0){let K=Q.deliverAt??J;if(await this.storage.createDeliveries(G,$.map((H)=>H.id),K),this.notifyStrategy&&!K)await this.notifyStrategy.notify(G).catch((H)=>{console.warn("[EventBus] Notify failed (non-critical):",H)})}return Z}async subscribe(X,Y){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:X,connectionId:Y.connectionId,publisher:Y.publisher,eventType:Y.eventType,filter:Y.filter})}async unsubscribe(X,Y){return this.storage.unsubscribe(Y,X)}async listSubscriptions(X,Y){return this.storage.listSubscriptions(X,Y)}async getSubscription(X,Y){return this.storage.getSubscription(Y,X)}async getEvent(X,Y){return this.storage.getEvent(Y,X)}async cancelEvent(X,Y,Q){return this.storage.cancelEvent(Y,X,Q)}async ackEvent(X,Y,Q){return this.storage.ackDelivery(Y,X,Q)}async syncSubscriptions(X,Y){return this.storage.syncSubscriptions({organizationId:X,...Y})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((X)=>{console.error("[EventBus] Error processing after notify:",X)})});await this.worker.processNow().catch((X)=>{console.error("[EventBus] Error processing pending events on startup:",X)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(X){console.error("[EventBus] Error stopping notify strategy:",X)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}var RH1=S(()=>{fQ0();IH1()});function SH1(...X){return{async start(Y){await Promise.all(X.map((Q)=>Q.start(Y)))},async stop(){await Promise.all(X.map((Y)=>Y.stop().catch((Q)=>{console.error("[NotifyStrategy] Error stopping strategy:",Q)})))},async notify(Y){await Promise.all(X.map((Q)=>Q.notify(Y).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class tf{intervalMs;timer=null;onNotify=null;constructor(X){this.intervalMs=X}async start(X){if(this.timer)return;this.onNotify=X,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(X){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Lp6}from"kysely";class uQ0{db;pool;listenClient=null;onNotify=null;constructor(X,Y){this.db=X;this.pool=Y}async start(X){if(this.listenClient)return;this.onNotify=X;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(Y)=>{if(Y.channel===pB&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Y)=>{console.error("[PostgresNotify] Connection error:",Y),this.cleanup()}),await this.listenClient.query(`LISTEN ${pB}`),console.log("[PostgresNotify] Started LISTEN on",pB)}catch(Y){console.error("[PostgresNotify] Failed to start LISTEN:",Y),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${pB}`),console.log("[PostgresNotify] Stopped LISTEN on",pB)}catch{}this.cleanup()}}async notify(X){try{await Lp6`SELECT pg_notify(${pB}, ${X})`.execute(this.db)}catch(Y){console.warn("[PostgresNotify] Failed to send NOTIFY:",Y)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}var pB="mesh_events";var kH1=()=>{};function vH1(X,Y){let Q=wH1(X.db),J=Y?.pollIntervalMs??sf.pollIntervalMs,G=X.type==="postgres"?SH1(new tf(J),new uQ0(X.db,X.pool)):new tf(J);return new gQ0({storage:Q,config:Y,notifyStrategy:G})}var _H1=S(()=>{RH1();hQ0();kH1()});var yH1;var bH1=S(()=>{yH1={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 fH1,hH1;var xH1=S(()=>{ZG();uB();bH1();fH1=new ZX;fH1.get("/config",async(X)=>{try{let Y=Object.keys(WX.socialProviders??{}),Q=Y.length>0,J=Y.map((Z)=>({name:Z,icon:yH1[Z].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",W={emailAndPassword:{enabled:WX.emailAndPassword?.enabled??!1},magicLink:{enabled:WX.magicLinkConfig?.enabled??!1},socialProviders:{enabled:Q,providers:J},sso:WX.ssoConfig?{enabled:!0,providerId:WX.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G};return X.json({success:!0,config:W})}catch(Y){let Q=Y instanceof Error?Y.message:"Failed to load auth config";return X.json({success:!1,error:Q},500)}});hH1=fH1});function $G(X){if(X==null)return"unknown error";if(typeof X==="string")return X;if(X instanceof Error)return X.message;return JSON.stringify(X)}var U31="vercel.ai.error",wp6,gH1,uH1,O1,z31="AI_APICallError",B31,Mp6,mH1,lH1,$X,D31="AI_EmptyResponseBodyError",N31,Pp6,dH1,pH1,O31,L31="AI_InvalidArgumentError",w31,Ap6,cH1,nH1,M31,P31="AI_InvalidPromptError",A31,Tp6,iH1,aH1,YV,T31="AI_InvalidResponseDataError",E31,Ep6,rH1,oH1,y88,j31="AI_JSONParseError",C31,jp6,sH1,tH1,oA,I31="AI_LoadAPIKeyError",R31,Cp6,eH1,X31,b88,S31="AI_LoadSettingError",k31,Ip6,Y31,Q31,f88,v31="AI_NoContentGeneratedError",_31,Rp6,J31,G31,h88,y31="AI_NoSuchModelError",b31,Sp6,W31,Z31,x88,f31="AI_TooManyEmbeddingValuesForCallError",h31,kp6,$31,K31,g88,x31="AI_TypeValidationError",g31,vp6,H31,F31,EQ,u31="AI_UnsupportedFunctionalityError",m31,_p6,V31,q31,l31;var q4=S(()=>{wp6=Symbol.for(U31),O1=class X extends(uH1=Error,gH1=wp6,uH1){constructor({name:Y,message:Q,cause:J}){super(Q);this[gH1]=!0,this.name=Y,this.cause=J}static isInstance(Y){return X.hasMarker(Y,U31)}static hasMarker(Y,Q){let J=Symbol.for(Q);return Y!=null&&typeof Y==="object"&&J in Y&&typeof Y[J]==="boolean"&&Y[J]===!0}},B31=`vercel.ai.error.${z31}`,Mp6=Symbol.for(B31),$X=class extends(lH1=O1,mH1=Mp6,lH1){constructor({message:X,url:Y,requestBodyValues:Q,statusCode:J,responseHeaders:G,responseBody:W,cause:Z,isRetryable:$=J!=null&&(J===408||J===409||J===429||J>=500),data:K}){super({name:z31,message:X,cause:Z});this[mH1]=!0,this.url=Y,this.requestBodyValues=Q,this.statusCode=J,this.responseHeaders=G,this.responseBody=W,this.isRetryable=$,this.data=K}static isInstance(X){return O1.hasMarker(X,B31)}},N31=`vercel.ai.error.${D31}`,Pp6=Symbol.for(N31),O31=class extends(pH1=O1,dH1=Pp6,pH1){constructor({message:X="Empty response body"}={}){super({name:D31,message:X});this[dH1]=!0}static isInstance(X){return O1.hasMarker(X,N31)}};w31=`vercel.ai.error.${L31}`,Ap6=Symbol.for(w31),M31=class extends(nH1=O1,cH1=Ap6,nH1){constructor({message:X,cause:Y,argument:Q}){super({name:L31,message:X,cause:Y});this[cH1]=!0,this.argument=Q}static isInstance(X){return O1.hasMarker(X,w31)}},A31=`vercel.ai.error.${P31}`,Tp6=Symbol.for(A31),YV=class extends(aH1=O1,iH1=Tp6,aH1){constructor({prompt:X,message:Y,cause:Q}){super({name:P31,message:`Invalid prompt: ${Y}`,cause:Q});this[iH1]=!0,this.prompt=X}static isInstance(X){return O1.hasMarker(X,A31)}},E31=`vercel.ai.error.${T31}`,Ep6=Symbol.for(E31),y88=class extends(oH1=O1,rH1=Ep6,oH1){constructor({data:X,message:Y=`Invalid response data: ${JSON.stringify(X)}.`}){super({name:T31,message:Y});this[rH1]=!0,this.data=X}static isInstance(X){return O1.hasMarker(X,E31)}},C31=`vercel.ai.error.${j31}`,jp6=Symbol.for(C31),oA=class extends(tH1=O1,sH1=jp6,tH1){constructor({text:X,cause:Y}){super({name:j31,message:`JSON parsing failed: Text: ${X}.
1189
+ Error message: ${$G(Y)}`,cause:Y});this[sH1]=!0,this.text=X}static isInstance(X){return O1.hasMarker(X,C31)}},R31=`vercel.ai.error.${I31}`,Cp6=Symbol.for(R31),b88=class extends(X31=O1,eH1=Cp6,X31){constructor({message:X}){super({name:I31,message:X});this[eH1]=!0}static isInstance(X){return O1.hasMarker(X,R31)}},k31=`vercel.ai.error.${S31}`,Ip6=Symbol.for(k31),f88=class extends(Q31=O1,Y31=Ip6,Q31){constructor({message:X}){super({name:S31,message:X});this[Y31]=!0}static isInstance(X){return O1.hasMarker(X,k31)}},_31=`vercel.ai.error.${v31}`,Rp6=Symbol.for(_31),h88=class extends(G31=O1,J31=Rp6,G31){constructor({message:X="No content generated."}={}){super({name:v31,message:X});this[J31]=!0}static isInstance(X){return O1.hasMarker(X,_31)}},b31=`vercel.ai.error.${y31}`,Sp6=Symbol.for(b31),x88=class extends(Z31=O1,W31=Sp6,Z31){constructor({errorName:X=y31,modelId:Y,modelType:Q,message:J=`No such ${Q}: ${Y}`}){super({name:X,message:J});this[W31]=!0,this.modelId=Y,this.modelType=Q}static isInstance(X){return O1.hasMarker(X,b31)}},h31=`vercel.ai.error.${f31}`,kp6=Symbol.for(h31),g88=class extends(K31=O1,$31=kp6,K31){constructor(X){super({name:f31,message:`Too many values for a single embedding call. The ${X.provider} model "${X.modelId}" can only embed up to ${X.maxEmbeddingsPerCall} values per call, but ${X.values.length} values were provided.`});this[$31]=!0,this.provider=X.provider,this.modelId=X.modelId,this.maxEmbeddingsPerCall=X.maxEmbeddingsPerCall,this.values=X.values}static isInstance(X){return O1.hasMarker(X,h31)}},g31=`vercel.ai.error.${x31}`,vp6=Symbol.for(g31),EQ=class X extends(F31=O1,H31=vp6,F31){constructor({value:Y,cause:Q}){super({name:x31,message:`Type validation failed: Value: ${JSON.stringify(Y)}.
1190
1190
  Error message: ${$G(Q)}`,cause:Q});this[H31]=!0,this.value=Y}static isInstance(Y){return O1.hasMarker(Y,g31)}static wrap({value:Y,cause:Q}){return X.isInstance(Q)&&Q.value===Y?Q:new X({value:Y,cause:Q})}},m31=`vercel.ai.error.${u31}`,_p6=Symbol.for(m31),l31=class extends(q31=O1,V31=_p6,q31){constructor({functionality:X,message:Y=`'${X}' functionality not supported.`}){super({name:u31,message:Y});this[V31]=!0,this.functionality=X}static isInstance(X){return O1.hasMarker(X,m31)}}});var d31=()=>{};function JV(...X){return X.reduce((Y,Q)=>({...Y,...Q!=null?Q:{}}),{})}async function o31(X,Y){if(X==null)return Promise.resolve();let Q=Y==null?void 0:Y.abortSignal;return new Promise((J,G)=>{if(Q==null?void 0:Q.aborted){G(p31());return}let W=setTimeout(()=>{Z(),J()},X),Z=()=>{clearTimeout(W),Q==null||Q.removeEventListener("abort",$)},$=()=>{Z(),G(p31())};Q==null||Q.addEventListener("abort",$)})}function p31(){return new DOMException("Delay was aborted","AbortError")}function sA(X){return Object.fromEntries([...X.headers])}function cB(X){let Y=X.replace(/-/g,"+").replace(/_/g,"/"),Q=bp6(Y);return Uint8Array.from(Q,(J)=>J.codePointAt(0))}function WV(X){let Y="";for(let Q=0;Q<X.length;Q++)Y+=String.fromCodePoint(X[Q]);return yp6(Y)}function nB(X){if(X==null)return"unknown error";if(typeof X==="string")return X;if(X instanceof Error)return X.message;return JSON.stringify(X)}function CZ(X){return(X instanceof Error||X instanceof DOMException)&&(X.name==="AbortError"||X.name==="ResponseAborted"||X.name==="TimeoutError")}function e31({error:X,url:Y,requestBodyValues:Q}){if(CZ(X))return X;if(X instanceof TypeError&&xp6.includes(X.message.toLowerCase())){let J=X.cause;if(J!=null)return new $X({message:`Cannot connect to API: ${J.message}`,cause:J,url:Y,requestBodyValues:Q,isRetryable:!0})}return X}function Xh(X=globalThis){var Y,Q,J;if(X.window)return"runtime/browser";if((Y=X.navigator)==null?void 0:Y.userAgent)return`runtime/${X.navigator.userAgent.toLowerCase()}`;if((J=(Q=X.process)==null?void 0:Q.versions)==null?void 0:J.node)return`runtime/node.js/${X.process.version.substring(0)}`;if(X.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function gp6(X){if(X==null)return{};let Y={};if(X instanceof Headers)X.forEach((Q,J)=>{Y[J.toLowerCase()]=Q});else{if(!Array.isArray(X))X=Object.entries(X);for(let[Q,J]of X)if(J!=null)Y[Q.toLowerCase()]=J}return Y}function IZ(X,...Y){let Q=new Headers(gp6(X)),J=Q.get("user-agent")||"";return Q.set("user-agent",[J,...Y].filter(Boolean).join(" ")),Object.fromEntries(Q.entries())}function YF1(X){return X!=null}function QF1({mediaType:X,url:Y,supportedUrls:Q}){return Y=Y.toLowerCase(),X=X.toLowerCase(),Object.entries(Q).map(([J,G])=>{let W=J.toLowerCase();return W==="*"||W==="*/*"?{mediaTypePrefix:"",regexes:G}:{mediaTypePrefix:W.replace(/\*/,""),regexes:G}}).filter(({mediaTypePrefix:J})=>X.startsWith(J)).flatMap(({regexes:J})=>J).some((J)=>J.test(Y))}function tA({settingValue:X,environmentVariableName:Y}){if(typeof X==="string")return X;if(X!=null||typeof process>"u")return;if(X=process.env[Y],X==null||typeof X!=="string")return;return X}function i31(X){let Y=JSON.parse(X);if(Y===null||typeof Y!=="object")return Y;if(mp6.test(X)===!1&&lp6.test(X)===!1)return Y;return dp6(Y)}function dp6(X){let Y=[X];while(Y.length){let Q=Y;Y=[];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 W=J[G];if(W&&typeof W==="object")Y.push(W)}}}return X}function JF1(X){let{stackTraceLimit:Y}=Error;try{Error.stackTraceLimit=0}catch(Q){return i31(X)}try{return i31(X)}finally{Error.stackTraceLimit=Y}}function nQ0(X){if(X.type==="object"||Array.isArray(X.type)&&X.type.includes("object")){X.additionalProperties=!1;let{properties:Q}=X;if(Q!=null)for(let J of Object.keys(Q))Q[J]=QV(Q[J])}if(X.items!=null)X.items=Array.isArray(X.items)?X.items.map(QV):QV(X.items);if(X.anyOf!=null)X.anyOf=X.anyOf.map(QV);if(X.allOf!=null)X.allOf=X.allOf.map(QV);if(X.oneOf!=null)X.oneOf=X.oneOf.map(QV);let{definitions:Y}=X;if(Y!=null)for(let Q of Object.keys(Y))Y[Q]=QV(Y[Q]);return X}function QV(X){if(typeof X==="boolean")return X;return nQ0(X)}function $J(){return{}}function np6(X,Y){var Q,J,G;let W={type:"array"};if(((Q=X.type)==null?void 0:Q._def)&&((G=(J=X.type)==null?void 0:J._def)==null?void 0:G.typeName)!==j0.ZodAny)W.items=g4(X.type._def,{...Y,currentPath:[...Y.currentPath,"items"]});if(X.minLength)W.minItems=X.minLength.value;if(X.maxLength)W.maxItems=X.maxLength.value;if(X.exactLength)W.minItems=X.exactLength.value,W.maxItems=X.exactLength.value;return W}function ip6(X){let Y={type:"integer",format:"int64"};if(!X.checks)return Y;for(let Q of X.checks)switch(Q.kind){case"min":if(Q.inclusive)Y.minimum=Q.value;else Y.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)Y.maximum=Q.value;else Y.exclusiveMaximum=Q.value;break;case"multipleOf":Y.multipleOf=Q.value;break}return Y}function ap6(){return{type:"boolean"}}function GF1(X,Y){return g4(X.type._def,Y)}function WF1(X,Y,Q){let J=Q!=null?Q:Y.dateStrategy;if(Array.isArray(J))return{anyOf:J.map((G,W)=>WF1(X,Y,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 op6(X)}}function sp6(X,Y){return{...g4(X.innerType._def,Y),default:X.defaultValue()}}function tp6(X,Y){return Y.effectStrategy==="input"?g4(X.schema._def,Y):$J()}function ep6(X){return{type:"string",enum:Array.from(X.values)}}function Yc6(X,Y){let Q=[g4(X.left._def,{...Y,currentPath:[...Y.currentPath,"allOf","0"]}),g4(X.right._def,{...Y,currentPath:[...Y.currentPath,"allOf","1"]})].filter((G)=>!!G),J=[];return Q.forEach((G)=>{if(Xc6(G))J.push(...G.allOf);else{let W=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:Z,...$}=G;W=$}J.push(W)}}),J.length?{allOf:J}:void 0}function Qc6(X){let Y=typeof X.value;if(Y!=="bigint"&&Y!=="number"&&Y!=="boolean"&&Y!=="string")return{type:Array.isArray(X.value)?"array":"object"};return{type:Y==="bigint"?"integer":Y,const:X.value}}function ZF1(X,Y){let Q={type:"string"};if(X.checks)for(let J of X.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(Y.emailStrategy){case"format:email":HG(Q,"email",J.message,Y);break;case"format:idn-email":HG(Q,"idn-email",J.message,Y);break;case"pattern:zod":l9(Q,KG.email,J.message,Y);break}break;case"url":HG(Q,"uri",J.message,Y);break;case"uuid":HG(Q,"uuid",J.message,Y);break;case"regex":l9(Q,J.regex,J.message,Y);break;case"cuid":l9(Q,KG.cuid,J.message,Y);break;case"cuid2":l9(Q,KG.cuid2,J.message,Y);break;case"startsWith":l9(Q,RegExp(`^${lQ0(J.value,Y)}`),J.message,Y);break;case"endsWith":l9(Q,RegExp(`${lQ0(J.value,Y)}$`),J.message,Y);break;case"datetime":HG(Q,"date-time",J.message,Y);break;case"date":HG(Q,"date",J.message,Y);break;case"time":HG(Q,"time",J.message,Y);break;case"duration":HG(Q,"duration",J.message,Y);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":{l9(Q,RegExp(lQ0(J.value,Y)),J.message,Y);break}case"ip":{if(J.version!=="v6")HG(Q,"ipv4",J.message,Y);if(J.version!=="v4")HG(Q,"ipv6",J.message,Y);break}case"base64url":l9(Q,KG.base64url,J.message,Y);break;case"jwt":l9(Q,KG.jwt,J.message,Y);break;case"cidr":{if(J.version!=="v6")l9(Q,KG.ipv4Cidr,J.message,Y);if(J.version!=="v4")l9(Q,KG.ipv6Cidr,J.message,Y);break}case"emoji":l9(Q,KG.emoji(),J.message,Y);break;case"ulid":{l9(Q,KG.ulid,J.message,Y);break}case"base64":{switch(Y.base64Strategy){case"format:binary":{HG(Q,"binary",J.message,Y);break}case"contentEncoding:base64":{Q.contentEncoding="base64";break}case"pattern:zod":{l9(Q,KG.base64,J.message,Y);break}}break}case"nanoid":l9(Q,KG.nanoid,J.message,Y);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return Q}function lQ0(X,Y){return Y.patternStrategy==="escape"?Gc6(X):X}function Gc6(X){let Y="";for(let Q=0;Q<X.length;Q++){if(!Jc6.has(X[Q]))Y+="\\";Y+=X[Q]}return Y}function HG(X,Y,Q,J){var G;if(X.format||((G=X.anyOf)==null?void 0:G.some((W)=>W.format))){if(!X.anyOf)X.anyOf=[];if(X.format)X.anyOf.push({format:X.format}),delete X.format;X.anyOf.push({format:Y,...Q&&J.errorMessages&&{errorMessage:{format:Q}}})}else X.format=Y}function l9(X,Y,Q,J){var G;if(X.pattern||((G=X.allOf)==null?void 0:G.some((W)=>W.pattern))){if(!X.allOf)X.allOf=[];if(X.pattern)X.allOf.push({pattern:X.pattern}),delete X.pattern;X.allOf.push({pattern:r31(Y,J),...Q&&J.errorMessages&&{errorMessage:{pattern:Q}}})}else X.pattern=r31(Y,J)}function r31(X,Y){var Q;if(!Y.applyRegexFlags||!X.flags)return X.source;let J={i:X.flags.includes("i"),m:X.flags.includes("m"),s:X.flags.includes("s")},G=J.i?X.source.toLowerCase():X.source,W="",Z=!1,$=!1,K=!1;for(let H=0;H<G.length;H++){if(Z){W+=G[H],Z=!1;continue}if(J.i){if($){if(G[H].match(/[a-z]/)){if(K)W+=G[H],W+=`${G[H-2]}-${G[H]}`.toUpperCase(),K=!1;else if(G[H+1]==="-"&&((Q=G[H+2])==null?void 0:Q.match(/[a-z]/)))W+=G[H],K=!0;else W+=`${G[H]}${G[H].toUpperCase()}`;continue}}else if(G[H].match(/[a-z]/)){W+=`[${G[H]}${G[H].toUpperCase()}]`;continue}}if(J.m){if(G[H]==="^"){W+=`(^|(?<=[\r
1191
1191
  ]))`;continue}else if(G[H]==="$"){W+=`($|(?=[\r
1192
1192
  ]))`;continue}}if(J.s&&G[H]==="."){W+=$?`${G[H]}\r
1193
1193
  `:`[${G[H]}\r
1194
- ]`;continue}if(W+=G[H],G[H]==="\\")Z=!0;else if($&&G[H]==="]")$=!1;else if(!$&&G[H]==="[")$=!0}try{new RegExp(W)}catch(H){return console.warn(`Could not convert regex pattern at ${Y.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),X.source}return W}function $F1(X,Y){var Q,J,G,W,Z,$;let K={type:"object",additionalProperties:(Q=g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]}))!=null?Q:Y.allowedAdditionalProperties};if(((J=X.keyType)==null?void 0:J._def.typeName)===j0.ZodString&&((G=X.keyType._def.checks)==null?void 0:G.length)){let{type:H,...F}=ZF1(X.keyType._def,Y);return{...K,propertyNames:F}}else if(((W=X.keyType)==null?void 0:W._def.typeName)===j0.ZodEnum)return{...K,propertyNames:{enum:X.keyType._def.values}};else if(((Z=X.keyType)==null?void 0:Z._def.typeName)===j0.ZodBranded&&X.keyType._def.type._def.typeName===j0.ZodString&&(($=X.keyType._def.type._def.checks)==null?void 0:$.length)){let{type:H,...F}=GF1(X.keyType._def,Y);return{...K,propertyNames:F}}return K}function Wc6(X,Y){if(Y.mapStrategy==="record")return $F1(X,Y);let Q=g4(X.keyType._def,{...Y,currentPath:[...Y.currentPath,"items","items","0"]})||$J(),J=g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items","items","1"]})||$J();return{type:"array",maxItems:125,items:{type:"array",items:[Q,J],minItems:2,maxItems:2}}}function Zc6(X){let Y=X.values,J=Object.keys(X.values).filter((W)=>{return typeof Y[Y[W]]!=="number"}).map((W)=>Y[W]),G=Array.from(new Set(J.map((W)=>typeof W)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:J}}function $c6(){return{not:$J()}}function Kc6(){return{type:"null"}}function Hc6(X,Y){let Q=X.options instanceof Map?Array.from(X.options.values()):X.options;if(Q.every((J)=>(J._def.typeName in dQ0)&&(!J._def.checks||!J._def.checks.length))){let J=Q.reduce((G,W)=>{let Z=dQ0[W._def.typeName];return Z&&!G.includes(Z)?[...G,Z]:G},[]);return{type:J.length>1?J:J[0]}}else if(Q.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=Q.reduce((G,W)=>{let Z=typeof W._def.value;switch(Z){case"string":case"number":case"boolean":return[...G,Z];case"bigint":return[...G,"integer"];case"object":if(W._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(J.length===Q.length){let G=J.filter((W,Z,$)=>$.indexOf(W)===Z);return{type:G.length>1?G:G[0],enum:Q.reduce((W,Z)=>{return W.includes(Z._def.value)?W:[...W,Z._def.value]},[])}}}else if(Q.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((J,G)=>[...J,...G._def.values.filter((W)=>!J.includes(W))],[])};return Fc6(X,Y)}function Vc6(X,Y){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(X.innerType._def.typeName)&&(!X.innerType._def.checks||!X.innerType._def.checks.length))return{type:[dQ0[X.innerType._def.typeName],"null"]};let Q=g4(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function qc6(X){let Y={type:"number"};if(!X.checks)return Y;for(let Q of X.checks)switch(Q.kind){case"int":Y.type="integer";break;case"min":if(Q.inclusive)Y.minimum=Q.value;else Y.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)Y.maximum=Q.value;else Y.exclusiveMaximum=Q.value;break;case"multipleOf":Y.multipleOf=Q.value;break}return Y}function Uc6(X,Y){let Q={type:"object",properties:{}},J=[],G=X.shape();for(let Z in G){let $=G[Z];if($===void 0||$._def===void 0)continue;let K=Bc6($),H=g4($._def,{...Y,currentPath:[...Y.currentPath,"properties",Z],propertyPath:[...Y.currentPath,"properties",Z]});if(H===void 0)continue;if(Q.properties[Z]=H,!K)J.push(Z)}if(J.length)Q.required=J;let W=zc6(X,Y);if(W!==void 0)Q.additionalProperties=W;return Q}function zc6(X,Y){if(X.catchall._def.typeName!=="ZodNever")return g4(X.catchall._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]});switch(X.unknownKeys){case"passthrough":return Y.allowedAdditionalProperties;case"strict":return Y.rejectedAdditionalProperties;case"strip":return Y.removeAdditionalStrategy==="strict"?Y.allowedAdditionalProperties:Y.rejectedAdditionalProperties}}function Bc6(X){try{return X.isOptional()}catch(Y){return!0}}function Oc6(X,Y){return g4(X.type._def,Y)}function Lc6(X,Y){let J={type:"array",uniqueItems:!0,items:g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items"]})};if(X.minSize)J.minItems=X.minSize.value;if(X.maxSize)J.maxItems=X.maxSize.value;return J}function wc6(X,Y){if(X.rest)return{type:"array",minItems:X.items.length,items:X.items.map((Q,J)=>g4(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[]),additionalItems:g4(X.rest._def,{...Y,currentPath:[...Y.currentPath,"additionalItems"]})};else return{type:"array",minItems:X.items.length,maxItems:X.items.length,items:X.items.map((Q,J)=>g4(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[])}}function Mc6(){return{not:$J()}}function Pc6(){return $J()}function g4(X,Y,Q=!1){var J;let G=Y.seen.get(X);if(Y.override){let K=(J=Y.override)==null?void 0:J.call(Y,X,Y,G,Q);if(K!==pp6)return K}if(G&&!Q){let K=jc6(G,Y);if(K!==void 0)return K}let W={def:X,path:Y.currentPath,jsonSchema:void 0};Y.seen.set(X,W);let Z=Tc6(X,X.typeName,Y),$=typeof Z==="function"?g4(Z(),Y):Z;if($)Cc6(X,Y,$);if(Y.postProcess){let K=Y.postProcess($,X,Y);return W.jsonSchema=$,K}return W.jsonSchema=$,$}function $Y(X){let Y;return()=>{if(Y==null)Y=X();return Y}}function FG(X,{validate:Y}={}){return{[pQ0]:!0,_type:void 0,get jsonSchema(){if(typeof X==="function")X=X();return X},validate:Y}}function Sc6(X){return typeof X==="object"&&X!==null&&pQ0 in X&&X[pQ0]===!0&&"jsonSchema"in X&&"validate"in X}function p7(X){return X==null?FG({properties:{},additionalProperties:!1}):Sc6(X)?X:("~standard"in X)?X["~standard"].vendor==="zod"?NX(X):kc6(X):X()}function kc6(X){return FG(()=>nQ0(X["~standard"].jsonSchema.input({target:"draft-07"})),{validate:async(Y)=>{let Q=await X["~standard"].validate(Y);return"value"in Q?{success:!0,value:Q.value}:{success:!1,error:new EQ({value:Y,cause:Q.issues})}}})}function vc6(X,Y){var Q;let J=(Q=Y==null?void 0:Y.useReferences)!=null?Q:!1;return FG(()=>Rc6(X,{$refStrategy:J?"root":"none"}),{validate:async(G)=>{let W=await X.safeParseAsync(G);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function _c6(X,Y){var Q;let J=(Q=Y==null?void 0:Y.useReferences)!=null?Q:!1;return FG(()=>nQ0(CG(X,{target:"draft-7",io:"input",reused:J?"ref":"inline"})),{validate:async(G)=>{let W=await sV(X,G);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function yc6(X){return"_zod"in X}function NX(X,Y){if(yc6(X))return _c6(X,Y);else return vc6(X,Y)}async function c7({value:X,schema:Y}){let Q=await d9({value:X,schema:Y});if(!Q.success)throw EQ.wrap({value:X,cause:Q.error});return Q.value}async function d9({value:X,schema:Y}){let Q=p7(Y);try{if(Q.validate==null)return{success:!0,value:X,rawValue:X};let J=await Q.validate(X);if(J.success)return{success:!0,value:J.value,rawValue:X};return{success:!1,error:EQ.wrap({value:X,cause:J.error}),rawValue:X}}catch(J){return{success:!1,error:EQ.wrap({value:X,cause:J}),rawValue:X}}}async function bc6({text:X,schema:Y}){try{let Q=JF1(X);if(Y==null)return Q;return c7({value:Q,schema:Y})}catch(Q){if(oA.isInstance(Q)||EQ.isInstance(Q))throw Q;throw new oA({text:X,cause:Q})}}async function jQ({text:X,schema:Y}){try{let Q=JF1(X);if(Y==null)return{success:!0,value:Q,rawValue:Q};return await d9({value:Q,schema:Y})}catch(Q){return{success:!1,error:oA.isInstance(Q)?Q:new oA({text:X,cause:Q}),rawValue:void 0}}}function KF1({stream:X,schema:Y}){return X.pipeThrough(new TextDecoderStream).pipeThrough(new XA).pipeThrough(new TransformStream({async transform({data:Q},J){if(Q==="[DONE]")return;J.enqueue(await jQ({text:Q,schema:Y}))}}))}function iB(X){return X}function HF1({id:X,inputSchema:Y,outputSchema:Q,supportsDeferredResults:J}){return({execute:G,needsApproval:W,toModelOutput:Z,onInputStart:$,onInputDelta:K,onInputAvailable:H,...F})=>iB({type:"provider",id:X,args:F,inputSchema:Y,outputSchema:Q,execute:G,needsApproval:W,toModelOutput:Z,onInputStart:$,onInputDelta:K,onInputAvailable:H,supportsDeferredResults:J})}async function fY(X){if(typeof X==="function")X=X();return Promise.resolve(X)}function VF1(X){return X==null?void 0:X.replace(/\/$/,"")}function xc6(X){return X!=null&&typeof X[Symbol.asyncIterator]==="function"}async function*qF1({execute:X,input:Y,options:Q}){let J=X(Y,Q);if(xc6(J)){let G;for await(let W of J)G=W,yield{type:"preliminary",output:W};yield{type:"final",output:G}}else yield{type:"final",output:await J}}var GV=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((X,Y)=>{if(this.status.type==="resolved")X(this.status.value);else if(this.status.type==="rejected")Y(this.status.error);this._resolve=X,this._reject=Y}),this._promise}resolve(X){var Y;if(this.status={type:"resolved",value:X},this._promise)(Y=this._resolve)==null||Y.call(this,X)}reject(X){var Y;if(this.status={type:"rejected",error:X},this._promise)(Y=this._reject)==null||Y.call(this,X)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},yp6,bp6,s31="AI_DownloadError",t31,fp6,c31,n31,ef,d7=({prefix:X,size:Y=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:J="-"}={})=>{let G=()=>{let W=Q.length,Z=Array(Y);for(let $=0;$<Y;$++)Z[$]=Q[Math.random()*W|0];return Z.join("")};if(X==null)return G;if(Q.includes(J))throw new M31({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${X}${J}${G()}`},hp6,xp6,XF1="4.0.9",up6=()=>globalThis.fetch,cQ0=async({url:X,headers:Y={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:W=up6()})=>{try{let Z=await W(X,{method:"GET",headers:IZ(Y,`ai-sdk/provider-utils/${XF1}`,Xh()),signal:G}),$=sA(Z);if(!Z.ok){let K;try{K=await J({response:Z,url:X,requestBodyValues:{}})}catch(H){if(CZ(H)||$X.isInstance(H))throw H;throw new $X({message:"Failed to process error response",cause:H,statusCode:Z.status,url:X,responseHeaders:$,requestBodyValues:{}})}throw K.value}try{return await Q({response:Z,url:X,requestBodyValues:{}})}catch(K){if(K instanceof Error){if(CZ(K)||$X.isInstance(K))throw K}throw new $X({message:"Failed to process successful response",cause:K,statusCode:Z.status,url:X,responseHeaders:$,requestBodyValues:{}})}}catch(Z){throw e31({error:Z,url:X,requestBodyValues:{}})}},mp6,lp6,pp6,a31,cp6=(X)=>typeof X==="string"?{...a31,name:X}:{...a31,...X},rp6=(X,Y)=>{return g4(X.innerType._def,Y)},op6=(X)=>{let Y={type:"integer",format:"unix-time"};for(let Q of X.checks)switch(Q.kind){case"min":Y.minimum=Q.value;break;case"max":Y.maximum=Q.value;break}return Y},Xc6=(X)=>{if("type"in X&&X.type==="string")return!1;return"allOf"in X},mQ0=void 0,KG,Jc6,dQ0,Fc6=(X,Y)=>{let Q=(X.options instanceof Map?Array.from(X.options.values()):X.options).map((J,G)=>g4(J._def,{...Y,currentPath:[...Y.currentPath,"anyOf",`${G}`]})).filter((J)=>!!J&&(!Y.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return Q.length?{anyOf:Q}:void 0},Dc6=(X,Y)=>{var Q;if(Y.currentPath.toString()===((Q=Y.propertyPath)==null?void 0:Q.toString()))return g4(X.innerType._def,Y);let J=g4(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","1"]});return J?{anyOf:[{not:$J()},J]}:$J()},Nc6=(X,Y)=>{if(Y.pipeStrategy==="input")return g4(X.in._def,Y);else if(Y.pipeStrategy==="output")return g4(X.out._def,Y);let Q=g4(X.in._def,{...Y,currentPath:[...Y.currentPath,"allOf","0"]}),J=g4(X.out._def,{...Y,currentPath:[...Y.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,J].filter((G)=>G!==void 0)}},Ac6=(X,Y)=>{return g4(X.innerType._def,Y)},Tc6=(X,Y,Q)=>{switch(Y){case j0.ZodString:return ZF1(X,Q);case j0.ZodNumber:return qc6(X);case j0.ZodObject:return Uc6(X,Q);case j0.ZodBigInt:return ip6(X);case j0.ZodBoolean:return ap6();case j0.ZodDate:return WF1(X,Q);case j0.ZodUndefined:return Mc6();case j0.ZodNull:return Kc6();case j0.ZodArray:return np6(X,Q);case j0.ZodUnion:case j0.ZodDiscriminatedUnion:return Hc6(X,Q);case j0.ZodIntersection:return Yc6(X,Q);case j0.ZodTuple:return wc6(X,Q);case j0.ZodRecord:return $F1(X,Q);case j0.ZodLiteral:return Qc6(X);case j0.ZodEnum:return ep6(X);case j0.ZodNativeEnum:return Zc6(X);case j0.ZodNullable:return Vc6(X,Q);case j0.ZodOptional:return Dc6(X,Q);case j0.ZodMap:return Wc6(X,Q);case j0.ZodSet:return Lc6(X,Q);case j0.ZodLazy:return()=>X.getter()._def;case j0.ZodPromise:return Oc6(X,Q);case j0.ZodNaN:case j0.ZodNever:return $c6();case j0.ZodEffects:return tp6(X,Q);case j0.ZodAny:return $J();case j0.ZodUnknown:return Pc6();case j0.ZodDefault:return sp6(X,Q);case j0.ZodBranded:return GF1(X,Q);case j0.ZodReadonly:return Ac6(X,Q);case j0.ZodCatch:return rp6(X,Q);case j0.ZodPipeline:return Nc6(X,Q);case j0.ZodFunction:case j0.ZodVoid:case j0.ZodSymbol:return;default:return((J)=>{return})(Y)}},Ec6=(X,Y)=>{let Q=0;for(;Q<X.length&&Q<Y.length;Q++)if(X[Q]!==Y[Q])break;return[(X.length-Q).toString(),...Y.slice(Q)].join("/")},jc6=(X,Y)=>{switch(Y.$refStrategy){case"root":return{$ref:X.path.join("/")};case"relative":return{$ref:Ec6(Y.currentPath,X.path)};case"none":case"seen":{if(X.path.length<Y.currentPath.length&&X.path.every((Q,J)=>Y.currentPath[J]===Q))return console.warn(`Recursive reference detected at ${Y.currentPath.join("/")}! Defaulting to any`),$J();return Y.$refStrategy==="seen"?$J():void 0}}},Cc6=(X,Y,Q)=>{if(X.description)Q.description=X.description;return Q},Ic6=(X)=>{let Y=cp6(X),Q=Y.name!==void 0?[...Y.basePath,Y.definitionPath,Y.name]:Y.basePath;return{...Y,currentPath:Q,propertyPath:void 0,seen:new Map(Object.entries(Y.definitions).map(([J,G])=>[G._def,{def:G._def,path:[...Y.basePath,Y.definitionPath,J],jsonSchema:void 0}]))}},Rc6=(X,Y)=>{var Q;let J=Ic6(Y),G=typeof Y==="object"&&Y.definitions?Object.entries(Y.definitions).reduce((H,[F,V])=>{var q;return{...H,[F]:(q=g4(V._def,{...J,currentPath:[...J.basePath,J.definitionPath,F]},!0))!=null?q:$J()}},{}):void 0,W=typeof Y==="string"?Y:(Y==null?void 0:Y.nameStrategy)==="title"?void 0:Y==null?void 0:Y.name,Z=(Q=g4(X._def,W===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,W]},!1))!=null?Q:$J(),$=typeof Y==="object"&&Y.name!==void 0&&Y.nameStrategy==="title"?Y.name:void 0;if($!==void 0)Z.title=$;let K=W===void 0?G?{...Z,[J.definitionPath]:G}:Z:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,W].join("/"),[J.definitionPath]:{...G,[W]:Z}};return K.$schema="http://json-schema.org/draft-07/schema#",K},pQ0,fc6=()=>globalThis.fetch,ZV=async({url:X,headers:Y,body:Q,failedResponseHandler:J,successfulResponseHandler:G,abortSignal:W,fetch:Z})=>hc6({url:X,headers:{"Content-Type":"application/json",...Y},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:J,successfulResponseHandler:G,abortSignal:W,fetch:Z}),hc6=async({url:X,headers:Y={},body:Q,successfulResponseHandler:J,failedResponseHandler:G,abortSignal:W,fetch:Z=fc6()})=>{try{let $=await Z(X,{method:"POST",headers:IZ(Y,`ai-sdk/provider-utils/${XF1}`,Xh()),body:Q.content,signal:W}),K=sA($);if(!$.ok){let H;try{H=await G({response:$,url:X,requestBodyValues:Q.values})}catch(F){if(CZ(F)||$X.isInstance(F))throw F;throw new $X({message:"Failed to process error response",cause:F,statusCode:$.status,url:X,responseHeaders:K,requestBodyValues:Q.values})}throw H.value}try{return await J({response:$,url:X,requestBodyValues:Q.values})}catch(H){if(H instanceof Error){if(CZ(H)||$X.isInstance(H))throw H}throw new $X({message:"Failed to process successful response",cause:H,statusCode:$.status,url:X,responseHeaders:K,requestBodyValues:Q.values})}}catch($){throw e31({error:$,url:X,requestBodyValues:Q.values})}},n7=({errorSchema:X,errorToMessage:Y,isRetryable:Q})=>async({response:J,url:G,requestBodyValues:W})=>{let Z=await J.text(),$=sA(J);if(Z.trim()==="")return{responseHeaders:$,value:new $X({message:J.statusText,url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,isRetryable:Q==null?void 0:Q(J)})};try{let K=await bc6({text:Z,schema:X});return{responseHeaders:$,value:new $X({message:Y(K),url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,data:K,isRetryable:Q==null?void 0:Q(J,K)})}}catch(K){return{responseHeaders:$,value:new $X({message:J.statusText,url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,isRetryable:Q==null?void 0:Q(J)})}}},FF1=(X)=>async({response:Y})=>{let Q=sA(Y);if(Y.body==null)throw new O31({});return{responseHeaders:Q,value:KF1({stream:Y.body,schema:X})}},RZ=(X)=>async({response:Y,url:Q,requestBodyValues:J})=>{let G=await Y.text(),W=await jQ({text:G,schema:X}),Z=sA(Y);if(!W.success)throw new $X({message:"Invalid JSON response",cause:W.error,statusCode:Y.status,responseHeaders:Z,responseBody:G,url:Q,requestBodyValues:J});return{responseHeaders:Z,value:W.value,rawValue:W.rawValue}};var Y4=S(()=>{q4();q4();q4();q4();q4();q4();q4();r6();OK();OK();OK();dX0();q4();q4();d31();({btoa:yp6,atob:bp6}=globalThis);t31=`vercel.ai.error.${s31}`,fp6=Symbol.for(t31),ef=class extends(n31=O1,c31=fp6,n31){constructor({url:X,statusCode:Y,statusText:Q,cause:J,message:G=J==null?`Failed to download ${X}: ${Y} ${Q}`:`Failed to download ${X}: ${J}`}){super({name:s31,message:G,cause:J});this[c31]=!0,this.url=X,this.statusCode=Y,this.statusText=Q}static isInstance(X){return O1.hasMarker(X,t31)}},hp6=d7();xp6=["fetch failed","failed to fetch"];mp6=/"__proto__"\s*:/,lp6=/"constructor"\s*:/;pp6=Symbol("Let zodToJsonSchema decide on which parser to use"),a31={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"};KG={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(mQ0===void 0)mQ0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return mQ0},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-_]*$/};Jc6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");dQ0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};pQ0=Symbol.for("vercel.ai.schema")});var aQ0=I((LX8,BF1)=>{var{defineProperty:iQ0,getOwnPropertyDescriptor:gc6,getOwnPropertyNames:uc6}=Object,mc6=Object.prototype.hasOwnProperty,lc6=(X,Y)=>{for(var Q in Y)iQ0(X,Q,{get:Y[Q],enumerable:!0})},dc6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of uc6(Y))if(!mc6.call(X,G)&&G!==Q)iQ0(X,G,{get:()=>Y[G],enumerable:!(J=gc6(Y,G))||J.enumerable})}return X},pc6=(X)=>dc6(iQ0({},"__esModule",{value:!0}),X),UF1={};lc6(UF1,{SYMBOL_FOR_REQ_CONTEXT:()=>zF1,getContext:()=>cc6});BF1.exports=pc6(UF1);var zF1=Symbol.for("@vercel/request-context");function cc6(){return globalThis[zF1]?.get?.()??{}}});var eA=I((wX8,OF1)=>{var{defineProperty:rQ0,getOwnPropertyDescriptor:nc6,getOwnPropertyNames:ic6}=Object,ac6=Object.prototype.hasOwnProperty,rc6=(X,Y)=>{for(var Q in Y)rQ0(X,Q,{get:Y[Q],enumerable:!0})},oc6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of ic6(Y))if(!ac6.call(X,G)&&G!==Q)rQ0(X,G,{get:()=>Y[G],enumerable:!(J=nc6(Y,G))||J.enumerable})}return X},sc6=(X)=>oc6(rQ0({},"__esModule",{value:!0}),X),DF1={};rc6(DF1,{VercelOidcTokenError:()=>NF1});OF1.exports=sc6(DF1);class NF1 extends Error{constructor(X,Y){super(X);this.name="VercelOidcTokenError",this.cause=Y}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var PF1=I((MX8,MF1)=>{var{create:tc6,defineProperty:Yh,getOwnPropertyDescriptor:ec6,getOwnPropertyNames:Xn6,getPrototypeOf:Yn6}=Object,Qn6=Object.prototype.hasOwnProperty,Jn6=(X,Y)=>{for(var Q in Y)Yh(X,Q,{get:Y[Q],enumerable:!0})},LF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Xn6(Y))if(!Qn6.call(X,G)&&G!==Q)Yh(X,G,{get:()=>Y[G],enumerable:!(J=ec6(Y,G))||J.enumerable})}return X},sQ0=(X,Y,Q)=>(Q=X!=null?tc6(Yn6(X)):{},LF1(Y||!X||!X.__esModule?Yh(Q,"default",{value:X,enumerable:!0}):Q,X)),Gn6=(X)=>LF1(Yh({},"__esModule",{value:!0}),X),wF1={};Jn6(wF1,{findRootDir:()=>$n6,getUserDataDir:()=>Kn6});MF1.exports=Gn6(wF1);var XT=sQ0(z0("path")),Wn6=sQ0(z0("fs")),oQ0=sQ0(z0("os")),Zn6=eA();function $n6(){try{let X=process.cwd();while(X!==XT.default.dirname(X)){let Y=XT.default.join(X,".vercel");if(Wn6.default.existsSync(Y))return X;X=XT.default.dirname(X)}}catch(X){throw new Zn6.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Kn6(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(oQ0.default.platform()){case"darwin":return XT.default.join(oQ0.default.homedir(),"Library/Application Support");case"linux":return XT.default.join(oQ0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var RF1=I((PX8,IF1)=>{var{create:Hn6,defineProperty:Qh,getOwnPropertyDescriptor:Fn6,getOwnPropertyNames:Vn6,getPrototypeOf:qn6}=Object,Un6=Object.prototype.hasOwnProperty,zn6=(X,Y)=>{for(var Q in Y)Qh(X,Q,{get:Y[Q],enumerable:!0})},AF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Vn6(Y))if(!Un6.call(X,G)&&G!==Q)Qh(X,G,{get:()=>Y[G],enumerable:!(J=Fn6(Y,G))||J.enumerable})}return X},TF1=(X,Y,Q)=>(Q=X!=null?Hn6(qn6(X)):{},AF1(Y||!X||!X.__esModule?Qh(Q,"default",{value:X,enumerable:!0}):Q,X)),Bn6=(X)=>AF1(Qh({},"__esModule",{value:!0}),X),EF1={};zn6(EF1,{isValidAccessToken:()=>Ln6,readAuthConfig:()=>Nn6,writeAuthConfig:()=>On6});IF1.exports=Bn6(EF1);var YT=TF1(z0("fs")),jF1=TF1(z0("path")),Dn6=Jh();function CF1(){let X=(0,Dn6.getVercelDataDir)();if(!X)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return jF1.join(X,"auth.json")}function Nn6(){try{let X=CF1();if(!YT.existsSync(X))return null;let Y=YT.readFileSync(X,"utf8");if(!Y)return null;return JSON.parse(Y)}catch(X){return null}}function On6(X){let Y=CF1(),Q=jF1.dirname(Y);if(!YT.existsSync(Q))YT.mkdirSync(Q,{mode:504,recursive:!0});YT.writeFileSync(Y,JSON.stringify(X,null,2),{mode:384})}function Ln6(X){if(!X.token)return!1;if(typeof X.expiresAt!=="number")return!0;let Y=Math.floor(Date.now()/1000);return X.expiresAt>=Y}});var _F1=I((AX8,vF1)=>{var{defineProperty:XJ0,getOwnPropertyDescriptor:wn6,getOwnPropertyNames:Mn6}=Object,Pn6=Object.prototype.hasOwnProperty,An6=(X,Y)=>{for(var Q in Y)XJ0(X,Q,{get:Y[Q],enumerable:!0})},Tn6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Mn6(Y))if(!Pn6.call(X,G)&&G!==Q)XJ0(X,G,{get:()=>Y[G],enumerable:!(J=wn6(Y,G))||J.enumerable})}return X},En6=(X)=>Tn6(XJ0({},"__esModule",{value:!0}),X),SF1={};An6(SF1,{processTokenResponse:()=>Sn6,refreshTokenRequest:()=>Rn6});vF1.exports=En6(SF1);var tQ0=z0("os"),jn6="https://vercel.com",Cn6="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",kF1=`@vercel/oidc node-${process.version} ${(0,tQ0.platform)()} (${(0,tQ0.arch)()}) ${(0,tQ0.hostname)()}`,eQ0=null;async function In6(){if(eQ0)return eQ0;let X=`${jn6}/.well-known/openid-configuration`,Y=await fetch(X,{headers:{"user-agent":kF1}});if(!Y.ok)throw Error("Failed to discover OAuth endpoints");let Q=await Y.json();if(!Q||typeof Q.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let J=Q.token_endpoint;return eQ0=J,J}async function Rn6(X){let Y=await In6();return await fetch(Y,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":kF1},body:new URLSearchParams({client_id:Cn6,grant_type:"refresh_token",...X})})}async function Sn6(X){let Y=await X.json();if(!X.ok){let Q=typeof Y==="object"&&Y&&"error"in Y?String(Y.error):"Token refresh failed";return[Error(Q)]}if(typeof Y!=="object"||Y===null)return[Error("Invalid token response")];if(typeof Y.access_token!=="string")return[Error("Missing access_token in response")];if(Y.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof Y.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,Y]}});var Jh=I((TX8,xF1)=>{var{create:kn6,defineProperty:Gh,getOwnPropertyDescriptor:vn6,getOwnPropertyNames:_n6,getPrototypeOf:yn6}=Object,bn6=Object.prototype.hasOwnProperty,fn6=(X,Y)=>{for(var Q in Y)Gh(X,Q,{get:Y[Q],enumerable:!0})},bF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of _n6(Y))if(!bn6.call(X,G)&&G!==Q)Gh(X,G,{get:()=>Y[G],enumerable:!(J=vn6(Y,G))||J.enumerable})}return X},fF1=(X,Y,Q)=>(Q=X!=null?kn6(yn6(X)):{},bF1(Y||!X||!X.__esModule?Gh(Q,"default",{value:X,enumerable:!0}):Q,X)),hn6=(X)=>bF1(Gh({},"__esModule",{value:!0}),X),hF1={};fn6(hF1,{assertVercelOidcTokenResponse:()=>YJ0,findProjectInfo:()=>mn6,getTokenPayload:()=>pn6,getVercelCliToken:()=>gn6,getVercelDataDir:()=>xn6,getVercelOidcToken:()=>un6,isExpired:()=>cn6,loadToken:()=>dn6,saveToken:()=>ln6});xF1.exports=hn6(hF1);var QT=fF1(z0("path")),$V=fF1(z0("fs")),rB=eA(),Wh=PF1(),aB=RF1(),yF1=_F1();function xn6(){let Y=(0,Wh.getUserDataDir)();if(!Y)return null;return QT.join(Y,"com.vercel.cli")}async function gn6(){let X=(0,aB.readAuthConfig)();if(!X)return null;if((0,aB.isValidAccessToken)(X))return X.token||null;if(!X.refreshToken)return(0,aB.writeAuthConfig)({}),null;try{let Y=await(0,yF1.refreshTokenRequest)({refresh_token:X.refreshToken}),[Q,J]=await(0,yF1.processTokenResponse)(Y);if(Q||!J)return(0,aB.writeAuthConfig)({}),null;let G={token:J.access_token,expiresAt:Math.floor(Date.now()/1000)+J.expires_in};if(J.refresh_token)G.refreshToken=J.refresh_token;return(0,aB.writeAuthConfig)(G),G.token??null}catch(Y){return(0,aB.writeAuthConfig)({}),null}}async function un6(X,Y,Q){let J=`https://api.vercel.com/v1/projects/${Y}/token?source=vercel-oidc-refresh${Q?`&teamId=${Q}`:""}`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`}});if(!G.ok)throw new rB.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let W=await G.json();return YJ0(W),W}function YJ0(X){if(!X||typeof X!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in X)||typeof X.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function mn6(){let X=(0,Wh.findRootDir)();if(!X)throw new rB.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let Y=QT.join(X,".vercel","project.json");if(!$V.existsSync(Y))throw new rB.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let Q=JSON.parse($V.readFileSync(Y,"utf8"));if(typeof Q.projectId!=="string"&&typeof Q.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:Q.projectId,teamId:Q.orgId}}function ln6(X,Y){let Q=(0,Wh.getUserDataDir)();if(!Q)throw new rB.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let J=QT.join(Q,"com.vercel.token",`${Y}.json`),G=JSON.stringify(X);$V.mkdirSync(QT.dirname(J),{mode:504,recursive:!0}),$V.writeFileSync(J,G),$V.chmodSync(J,432);return}function dn6(X){let Y=(0,Wh.getUserDataDir)();if(!Y)throw new rB.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let Q=QT.join(Y,"com.vercel.token",`${X}.json`);if(!$V.existsSync(Q))return null;let J=JSON.parse($V.readFileSync(Q,"utf8"));return YJ0(J),J}function pn6(X){let Y=X.split(".");if(Y.length!==3)throw new rB.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let Q=Y[1].replace(/-/g,"+").replace(/_/g,"/"),J=Q.padEnd(Q.length+(4-Q.length%4)%4,"=");return JSON.parse(Buffer.from(J,"base64").toString("utf8"))}function cn6(X){return X.exp*1000<Date.now()}});var mF1=I((EX8,uF1)=>{var{defineProperty:JJ0,getOwnPropertyDescriptor:nn6,getOwnPropertyNames:in6}=Object,an6=Object.prototype.hasOwnProperty,rn6=(X,Y)=>{for(var Q in Y)JJ0(X,Q,{get:Y[Q],enumerable:!0})},on6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of in6(Y))if(!an6.call(X,G)&&G!==Q)JJ0(X,G,{get:()=>Y[G],enumerable:!(J=nn6(Y,G))||J.enumerable})}return X},sn6=(X)=>on6(JJ0({},"__esModule",{value:!0}),X),gF1={};rn6(gF1,{refreshToken:()=>tn6});uF1.exports=sn6(gF1);var QJ0=eA(),KV=Jh();async function tn6(){let{projectId:X,teamId:Y}=(0,KV.findProjectInfo)(),Q=(0,KV.loadToken)(X);if(!Q||(0,KV.isExpired)((0,KV.getTokenPayload)(Q.token))){let J=await(0,KV.getVercelCliToken)();if(!J)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!X)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(Q=await(0,KV.getVercelOidcToken)(J,X,Y),!Q)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token");(0,KV.saveToken)(Q,X)}process.env.VERCEL_OIDC_TOKEN=Q.token;return}});var pF1=I((jX8,dF1)=>{var{defineProperty:WJ0,getOwnPropertyDescriptor:en6,getOwnPropertyNames:Xi6}=Object,Yi6=Object.prototype.hasOwnProperty,Qi6=(X,Y)=>{for(var Q in Y)WJ0(X,Q,{get:Y[Q],enumerable:!0})},Ji6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Xi6(Y))if(!Yi6.call(X,G)&&G!==Q)WJ0(X,G,{get:()=>Y[G],enumerable:!(J=en6(Y,G))||J.enumerable})}return X},Gi6=(X)=>Ji6(WJ0({},"__esModule",{value:!0}),X),lF1={};Qi6(lF1,{getVercelOidcToken:()=>$i6,getVercelOidcTokenSync:()=>GJ0});dF1.exports=Gi6(lF1);var Wi6=aQ0(),Zi6=eA();async function $i6(){let X="",Y;try{X=GJ0()}catch(Q){Y=Q}try{let[{getTokenPayload:Q,isExpired:J},{refreshToken:G}]=await Promise.all([await Promise.resolve().then(() => w6(Jh())),await Promise.resolve().then(() => w6(mF1()))]);if(!X||J(Q(X)))await G(),X=GJ0()}catch(Q){let J=Y instanceof Error?Y.message:"";if(Q instanceof Error)J=`${J}
1195
- ${Q.message}`;if(J)throw new Zi6.VercelOidcTokenError(J);throw Q}return X}function GJ0(){let X=(0,Wi6.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!X)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return X}});var $J0=I((CX8,iF1)=>{var{defineProperty:ZJ0,getOwnPropertyDescriptor:Ki6,getOwnPropertyNames:Hi6}=Object,Fi6=Object.prototype.hasOwnProperty,Vi6=(X,Y)=>{for(var Q in Y)ZJ0(X,Q,{get:Y[Q],enumerable:!0})},qi6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Hi6(Y))if(!Fi6.call(X,G)&&G!==Q)ZJ0(X,G,{get:()=>Y[G],enumerable:!(J=Ki6(Y,G))||J.enumerable})}return X},Ui6=(X)=>qi6(ZJ0({},"__esModule",{value:!0}),X),nF1={};Vi6(nF1,{getContext:()=>zi6.getContext,getVercelOidcToken:()=>cF1.getVercelOidcToken,getVercelOidcTokenSync:()=>cF1.getVercelOidcTokenSync});iF1.exports=Ui6(nF1);var cF1=pF1(),zi6=aQ0()});async function BV1({response:X,statusCode:Y,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var W;let Z=await d9({value:X,schema:Ci6});if(!Z.success){let V=typeof X==="object"&&X!==null&&"generationId"in X?X.generationId:void 0;return new ji6({message:`Invalid error response format: ${Q}`,statusCode:Y,response:X,validationError:Z.error,cause:J,generationId:V})}let $=Z.value,K=$.error.type,H=$.error.message,F=(W=$.generationId)!=null?W:void 0;switch(K){case"authentication_error":return Zh.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:Y,cause:J,generationId:F});case"invalid_request_error":return new Oi6({message:H,statusCode:Y,cause:J,generationId:F});case"rate_limit_exceeded":return new wi6({message:H,statusCode:Y,cause:J,generationId:F});case"model_not_found":{let V=await d9({value:$.error.param,schema:Pi6});return new Ai6({message:H,statusCode:Y,modelId:V.success?V.value.modelId:void 0,cause:J,generationId:F})}case"internal_server_error":return new VV1({message:H,statusCode:Y,cause:J,generationId:F});default:return new VV1({message:H,statusCode:Y,cause:J,generationId:F})}}function cK(X,Y){var Q;if(KJ.isInstance(X))return X;if($X.isInstance(X))return BV1({response:Ii6(X),statusCode:(Q=X.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:X,authMethod:Y});return BV1({response:{},statusCode:500,defaultMessage:X instanceof Error?`Gateway request failed: ${X.message}`:"Unknown Gateway error",cause:X,authMethod:Y})}function Ii6(X){if(X.data!==void 0)return X.data;if(X.responseBody!=null)try{return JSON.parse(X.responseBody)}catch(Y){return X.responseBody}return{}}async function oB(X){let Y=await d9({value:X[TV1],schema:Ri6});return Y.success?Y.value:void 0}function NV1(X){if(X.type==="file"&&X.data instanceof Uint8Array)return{...X,data:WV(X.data)};return X}async function di6(){var X;return(X=EV1.getContext().headers)==null?void 0:X["x-vercel-id"]}function ni6(X={}){var Y,Q;let J=null,G=null,W=(Y=X.metadataCacheRefreshMillis)!=null?Y:300000,Z=0,$=(Q=VF1(X.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",K=async()=>{try{let N=await ii6(X);return IZ({Authorization:`Bearer ${N.token}`,"ai-gateway-protocol-version":ci6,[TV1]:N.authMethod,...X.headers},`ai-sdk/gateway/${pi6}`)}catch(N){throw Zh.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:N})}},H=()=>{let N=tA({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=tA({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=tA({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let C=await di6();return{...N&&{"ai-o11y-deployment-id":N},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...C&&{"ai-o11y-request-id":C}}}},F=(N)=>{return new vi6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})},V=async()=>{var N,L,w;let C=(w=(L=(N=X._internal)==null?void 0:N.currentDate)==null?void 0:L.call(N).getTime())!=null?w:Date.now();if(!J||C-Z>W)Z=C,J=new DV1({baseURL:$,headers:K,fetch:X.fetch}).getAvailableModels().then((T)=>{return G=T,T}).catch(async(T)=>{throw await cK(T,await oB(await K()))});return G?Promise.resolve(G):J},q=async()=>{return new DV1({baseURL:$,headers:K,fetch:X.fetch}).getCredits().catch(async(N)=>{throw await cK(N,await oB(await K()))})},z=function(N){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return F(N)};z.specificationVersion="v3",z.getAvailableModels=V,z.getCredits=q,z.imageModel=(N)=>{return new bi6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})},z.languageModel=F;let D=(N)=>{return new _i6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})};return z.embeddingModel=D,z.textEmbeddingModel=D,z.tools=li6,z}async function ii6(X){let Y=tA({settingValue:X.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(Y)return{token:Y,authMethod:"api-key"};return{token:await jV1.getVercelOidcToken(),authMethod:"oidc"}}var EV1,jV1,Bi6="vercel.ai.gateway.error",KJ0,aF1,rF1,KJ,OV1="GatewayAuthenticationError",Di6,oF1,sF1,tF1,Zh,LV1="GatewayInvalidRequestError",Ni6,eF1,XV1,YV1,Oi6,wV1="GatewayRateLimitError",Li6,QV1,JV1,GV1,wi6,MV1="GatewayModelNotFoundError",Mi6,WV1,Pi6,ZV1,$V1,Ai6,PV1="GatewayInternalServerError",Ti6,KV1,HV1,FV1,VV1,AV1="GatewayResponseError",Ei6,qV1,UV1,zV1,ji6,Ci6,TV1="ai-gateway-auth-method",Ri6,DV1=class{constructor(X){this.config=X}async getAvailableModels(){try{let{value:X}=await cQ0({url:`${this.config.baseURL}/config`,headers:await fY(this.config.headers()),successfulResponseHandler:RZ(Si6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(Y)=>Y}),fetch:this.config.fetch});return X}catch(X){throw await cK(X)}}async getCredits(){try{let X=new URL(this.config.baseURL),{value:Y}=await cQ0({url:`${X.origin}/v1/credits`,headers:await fY(this.config.headers()),successfulResponseHandler:RZ(ki6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return Y}catch(X){throw await cK(X)}}},Si6,ki6,vi6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(X){let{abortSignal:Y,...Q}=X;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(X){let{args:Y,warnings:Q}=await this.getArgs(X),{abortSignal:J}=X,G=await fY(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:$}=await ZV({url:this.getUrl(),headers:JV(G,X.headers,this.getModelConfigHeaders(this.modelId,!1),await fY(this.config.o11yHeaders)),body:Y,successfulResponseHandler:RZ(U.any()),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(K)=>K}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...Z,request:{body:Y},response:{headers:W,body:$},warnings:Q}}catch(W){throw await cK(W,await oB(G))}}async doStream(X){let{args:Y,warnings:Q}=await this.getArgs(X),{abortSignal:J}=X,G=await fY(this.config.headers());try{let{value:W,responseHeaders:Z}=await ZV({url:this.getUrl(),headers:JV(G,X.headers,this.getModelConfigHeaders(this.modelId,!0),await fY(this.config.o11yHeaders)),body:Y,successfulResponseHandler:FF1(U.any()),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:($)=>$}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:W.pipeThrough(new TransformStream({start($){if(Q.length>0)$.enqueue({type:"stream-start",warnings:Q})},transform($,K){if($.success){let H=$.value;if(H.type==="raw"&&!X.includeRawChunks)return;if(H.type==="response-metadata"&&H.timestamp&&typeof H.timestamp==="string")H.timestamp=new Date(H.timestamp);K.enqueue(H)}else K.error($.error)}})),request:{body:Y},response:{headers:Z}}}catch(W){throw await cK(W,await oB(G))}}isFilePart(X){return X&&typeof X==="object"&&"type"in X&&X.type==="file"}maybeEncodeFileParts(X){for(let Y of X.prompt)for(let Q of Y.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),W=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${W}`)}}return X}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(X,Y){return{"ai-language-model-specification-version":"3","ai-language-model-id":X,"ai-language-model-streaming":String(Y)}}},_i6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:X,headers:Y,abortSignal:Q,providerOptions:J}){var G;let W=await fY(this.config.headers());try{let{responseHeaders:Z,value:$,rawValue:K}=await ZV({url:this.getUrl(),headers:JV(W,Y!=null?Y:{},this.getModelConfigHeaders(),await fY(this.config.o11yHeaders)),body:{values:X,...J?{providerOptions:J}:{}},successfulResponseHandler:RZ(yi6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(H)=>H}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:$.embeddings,usage:(G=$.usage)!=null?G:void 0,providerMetadata:$.providerMetadata,response:{headers:Z,body:K},warnings:[]}}catch(Z){throw await cK(Z,await oB(W))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},yi6,bi6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:X,n:Y,size:Q,aspectRatio:J,seed:G,files:W,mask:Z,providerOptions:$,headers:K,abortSignal:H}){var F;let V=await fY(this.config.headers());try{let{responseHeaders:q,value:z,rawValue:D}=await ZV({url:this.getUrl(),headers:JV(V,K!=null?K:{},this.getModelConfigHeaders(),await fY(this.config.o11yHeaders)),body:{prompt:X,n:Y,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...$&&{providerOptions:$},...W&&{files:W.map((N)=>NV1(N))},...Z&&{mask:NV1(Z)}},successfulResponseHandler:RZ(hi6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(N)=>N}),...H&&{abortSignal:H},fetch:this.config.fetch});return{images:z.images,warnings:(F=z.warnings)!=null?F:[],providerMetadata:z.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:q}}}catch(q){throw cK(q,await oB(V))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},fi6,hi6,xi6,gi6,ui6,mi6=(X={})=>ui6(X),li6,pi6="3.0.22",ci6="0.0.1",CV1;var HJ0=S(()=>{Y4();q4();r6();r6();Y4();Y4();r6();Y4();Y4();r6();Y4();r6();Y4();r6();Y4();r6();Y4();r0();Y4();EV1=w6($J0(),1),jV1=w6($J0(),1),KJ0=Symbol.for(Bi6),KJ=class X extends(rF1=Error,aF1=KJ0,rF1){constructor({message:Y,statusCode:Q=500,cause:J,generationId:G}){super(G?`${Y} [${G}]`:Y);this[aF1]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(Y){return X.hasMarker(Y)}static hasMarker(Y){return typeof Y==="object"&&Y!==null&&KJ0 in Y&&Y[KJ0]===!0}},Di6=`vercel.ai.gateway.error.${OV1}`,oF1=Symbol.for(Di6),Zh=class X extends(tF1=KJ,sF1=oF1,tF1){constructor({message:Y="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:Y,statusCode:Q,cause:J,generationId:G});this[sF1]=!0,this.name=OV1,this.type="authentication_error"}static isInstance(Y){return KJ.hasMarker(Y)&&oF1 in Y}static createContextualError({apiKeyProvided:Y,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:W,generationId:Z}){let $;if(Y)$=`AI Gateway authentication failed: Invalid API key.
1194
+ ]`;continue}if(W+=G[H],G[H]==="\\")Z=!0;else if($&&G[H]==="]")$=!1;else if(!$&&G[H]==="[")$=!0}try{new RegExp(W)}catch(H){return console.warn(`Could not convert regex pattern at ${Y.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),X.source}return W}function $F1(X,Y){var Q,J,G,W,Z,$;let K={type:"object",additionalProperties:(Q=g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]}))!=null?Q:Y.allowedAdditionalProperties};if(((J=X.keyType)==null?void 0:J._def.typeName)===j0.ZodString&&((G=X.keyType._def.checks)==null?void 0:G.length)){let{type:H,...F}=ZF1(X.keyType._def,Y);return{...K,propertyNames:F}}else if(((W=X.keyType)==null?void 0:W._def.typeName)===j0.ZodEnum)return{...K,propertyNames:{enum:X.keyType._def.values}};else if(((Z=X.keyType)==null?void 0:Z._def.typeName)===j0.ZodBranded&&X.keyType._def.type._def.typeName===j0.ZodString&&(($=X.keyType._def.type._def.checks)==null?void 0:$.length)){let{type:H,...F}=GF1(X.keyType._def,Y);return{...K,propertyNames:F}}return K}function Wc6(X,Y){if(Y.mapStrategy==="record")return $F1(X,Y);let Q=g4(X.keyType._def,{...Y,currentPath:[...Y.currentPath,"items","items","0"]})||$J(),J=g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items","items","1"]})||$J();return{type:"array",maxItems:125,items:{type:"array",items:[Q,J],minItems:2,maxItems:2}}}function Zc6(X){let Y=X.values,J=Object.keys(X.values).filter((W)=>{return typeof Y[Y[W]]!=="number"}).map((W)=>Y[W]),G=Array.from(new Set(J.map((W)=>typeof W)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:J}}function $c6(){return{not:$J()}}function Kc6(){return{type:"null"}}function Hc6(X,Y){let Q=X.options instanceof Map?Array.from(X.options.values()):X.options;if(Q.every((J)=>(J._def.typeName in dQ0)&&(!J._def.checks||!J._def.checks.length))){let J=Q.reduce((G,W)=>{let Z=dQ0[W._def.typeName];return Z&&!G.includes(Z)?[...G,Z]:G},[]);return{type:J.length>1?J:J[0]}}else if(Q.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=Q.reduce((G,W)=>{let Z=typeof W._def.value;switch(Z){case"string":case"number":case"boolean":return[...G,Z];case"bigint":return[...G,"integer"];case"object":if(W._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(J.length===Q.length){let G=J.filter((W,Z,$)=>$.indexOf(W)===Z);return{type:G.length>1?G:G[0],enum:Q.reduce((W,Z)=>{return W.includes(Z._def.value)?W:[...W,Z._def.value]},[])}}}else if(Q.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((J,G)=>[...J,...G._def.values.filter((W)=>!J.includes(W))],[])};return Fc6(X,Y)}function Vc6(X,Y){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(X.innerType._def.typeName)&&(!X.innerType._def.checks||!X.innerType._def.checks.length))return{type:[dQ0[X.innerType._def.typeName],"null"]};let Q=g4(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function qc6(X){let Y={type:"number"};if(!X.checks)return Y;for(let Q of X.checks)switch(Q.kind){case"int":Y.type="integer";break;case"min":if(Q.inclusive)Y.minimum=Q.value;else Y.exclusiveMinimum=Q.value;break;case"max":if(Q.inclusive)Y.maximum=Q.value;else Y.exclusiveMaximum=Q.value;break;case"multipleOf":Y.multipleOf=Q.value;break}return Y}function Uc6(X,Y){let Q={type:"object",properties:{}},J=[],G=X.shape();for(let Z in G){let $=G[Z];if($===void 0||$._def===void 0)continue;let K=Bc6($),H=g4($._def,{...Y,currentPath:[...Y.currentPath,"properties",Z],propertyPath:[...Y.currentPath,"properties",Z]});if(H===void 0)continue;if(Q.properties[Z]=H,!K)J.push(Z)}if(J.length)Q.required=J;let W=zc6(X,Y);if(W!==void 0)Q.additionalProperties=W;return Q}function zc6(X,Y){if(X.catchall._def.typeName!=="ZodNever")return g4(X.catchall._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]});switch(X.unknownKeys){case"passthrough":return Y.allowedAdditionalProperties;case"strict":return Y.rejectedAdditionalProperties;case"strip":return Y.removeAdditionalStrategy==="strict"?Y.allowedAdditionalProperties:Y.rejectedAdditionalProperties}}function Bc6(X){try{return X.isOptional()}catch(Y){return!0}}function Oc6(X,Y){return g4(X.type._def,Y)}function Lc6(X,Y){let J={type:"array",uniqueItems:!0,items:g4(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items"]})};if(X.minSize)J.minItems=X.minSize.value;if(X.maxSize)J.maxItems=X.maxSize.value;return J}function wc6(X,Y){if(X.rest)return{type:"array",minItems:X.items.length,items:X.items.map((Q,J)=>g4(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[]),additionalItems:g4(X.rest._def,{...Y,currentPath:[...Y.currentPath,"additionalItems"]})};else return{type:"array",minItems:X.items.length,maxItems:X.items.length,items:X.items.map((Q,J)=>g4(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${J}`]})).reduce((Q,J)=>J===void 0?Q:[...Q,J],[])}}function Mc6(){return{not:$J()}}function Pc6(){return $J()}function g4(X,Y,Q=!1){var J;let G=Y.seen.get(X);if(Y.override){let K=(J=Y.override)==null?void 0:J.call(Y,X,Y,G,Q);if(K!==pp6)return K}if(G&&!Q){let K=jc6(G,Y);if(K!==void 0)return K}let W={def:X,path:Y.currentPath,jsonSchema:void 0};Y.seen.set(X,W);let Z=Tc6(X,X.typeName,Y),$=typeof Z==="function"?g4(Z(),Y):Z;if($)Cc6(X,Y,$);if(Y.postProcess){let K=Y.postProcess($,X,Y);return W.jsonSchema=$,K}return W.jsonSchema=$,$}function $Y(X){let Y;return()=>{if(Y==null)Y=X();return Y}}function FG(X,{validate:Y}={}){return{[pQ0]:!0,_type:void 0,get jsonSchema(){if(typeof X==="function")X=X();return X},validate:Y}}function Sc6(X){return typeof X==="object"&&X!==null&&pQ0 in X&&X[pQ0]===!0&&"jsonSchema"in X&&"validate"in X}function p7(X){return X==null?FG({properties:{},additionalProperties:!1}):Sc6(X)?X:("~standard"in X)?X["~standard"].vendor==="zod"?NX(X):kc6(X):X()}function kc6(X){return FG(()=>nQ0(X["~standard"].jsonSchema.input({target:"draft-07"})),{validate:async(Y)=>{let Q=await X["~standard"].validate(Y);return"value"in Q?{success:!0,value:Q.value}:{success:!1,error:new EQ({value:Y,cause:Q.issues})}}})}function vc6(X,Y){var Q;let J=(Q=Y==null?void 0:Y.useReferences)!=null?Q:!1;return FG(()=>Rc6(X,{$refStrategy:J?"root":"none"}),{validate:async(G)=>{let W=await X.safeParseAsync(G);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function _c6(X,Y){var Q;let J=(Q=Y==null?void 0:Y.useReferences)!=null?Q:!1;return FG(()=>nQ0(CG(X,{target:"draft-7",io:"input",reused:J?"ref":"inline"})),{validate:async(G)=>{let W=await sV(X,G);return W.success?{success:!0,value:W.data}:{success:!1,error:W.error}}})}function yc6(X){return"_zod"in X}function NX(X,Y){if(yc6(X))return _c6(X,Y);else return vc6(X,Y)}async function c7({value:X,schema:Y}){let Q=await d9({value:X,schema:Y});if(!Q.success)throw EQ.wrap({value:X,cause:Q.error});return Q.value}async function d9({value:X,schema:Y}){let Q=p7(Y);try{if(Q.validate==null)return{success:!0,value:X,rawValue:X};let J=await Q.validate(X);if(J.success)return{success:!0,value:J.value,rawValue:X};return{success:!1,error:EQ.wrap({value:X,cause:J.error}),rawValue:X}}catch(J){return{success:!1,error:EQ.wrap({value:X,cause:J}),rawValue:X}}}async function bc6({text:X,schema:Y}){try{let Q=JF1(X);if(Y==null)return Q;return c7({value:Q,schema:Y})}catch(Q){if(oA.isInstance(Q)||EQ.isInstance(Q))throw Q;throw new oA({text:X,cause:Q})}}async function jQ({text:X,schema:Y}){try{let Q=JF1(X);if(Y==null)return{success:!0,value:Q,rawValue:Q};return await d9({value:Q,schema:Y})}catch(Q){return{success:!1,error:oA.isInstance(Q)?Q:new oA({text:X,cause:Q}),rawValue:void 0}}}function KF1({stream:X,schema:Y}){return X.pipeThrough(new TextDecoderStream).pipeThrough(new XA).pipeThrough(new TransformStream({async transform({data:Q},J){if(Q==="[DONE]")return;J.enqueue(await jQ({text:Q,schema:Y}))}}))}function iB(X){return X}function HF1({id:X,inputSchema:Y,outputSchema:Q,supportsDeferredResults:J}){return({execute:G,needsApproval:W,toModelOutput:Z,onInputStart:$,onInputDelta:K,onInputAvailable:H,...F})=>iB({type:"provider",id:X,args:F,inputSchema:Y,outputSchema:Q,execute:G,needsApproval:W,toModelOutput:Z,onInputStart:$,onInputDelta:K,onInputAvailable:H,supportsDeferredResults:J})}async function fY(X){if(typeof X==="function")X=X();return Promise.resolve(X)}function VF1(X){return X==null?void 0:X.replace(/\/$/,"")}function xc6(X){return X!=null&&typeof X[Symbol.asyncIterator]==="function"}async function*qF1({execute:X,input:Y,options:Q}){let J=X(Y,Q);if(xc6(J)){let G;for await(let W of J)G=W,yield{type:"preliminary",output:W};yield{type:"final",output:G}}else yield{type:"final",output:await J}}var GV=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((X,Y)=>{if(this.status.type==="resolved")X(this.status.value);else if(this.status.type==="rejected")Y(this.status.error);this._resolve=X,this._reject=Y}),this._promise}resolve(X){var Y;if(this.status={type:"resolved",value:X},this._promise)(Y=this._resolve)==null||Y.call(this,X)}reject(X){var Y;if(this.status={type:"rejected",error:X},this._promise)(Y=this._reject)==null||Y.call(this,X)}isResolved(){return this.status.type==="resolved"}isRejected(){return this.status.type==="rejected"}isPending(){return this.status.type==="pending"}},yp6,bp6,s31="AI_DownloadError",t31,fp6,c31,n31,ef,d7=({prefix:X,size:Y=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:J="-"}={})=>{let G=()=>{let W=Q.length,Z=Array(Y);for(let $=0;$<Y;$++)Z[$]=Q[Math.random()*W|0];return Z.join("")};if(X==null)return G;if(Q.includes(J))throw new M31({argument:"separator",message:`The separator "${J}" must not be part of the alphabet "${Q}".`});return()=>`${X}${J}${G()}`},hp6,xp6,XF1="4.0.9",up6=()=>globalThis.fetch,cQ0=async({url:X,headers:Y={},successfulResponseHandler:Q,failedResponseHandler:J,abortSignal:G,fetch:W=up6()})=>{try{let Z=await W(X,{method:"GET",headers:IZ(Y,`ai-sdk/provider-utils/${XF1}`,Xh()),signal:G}),$=sA(Z);if(!Z.ok){let K;try{K=await J({response:Z,url:X,requestBodyValues:{}})}catch(H){if(CZ(H)||$X.isInstance(H))throw H;throw new $X({message:"Failed to process error response",cause:H,statusCode:Z.status,url:X,responseHeaders:$,requestBodyValues:{}})}throw K.value}try{return await Q({response:Z,url:X,requestBodyValues:{}})}catch(K){if(K instanceof Error){if(CZ(K)||$X.isInstance(K))throw K}throw new $X({message:"Failed to process successful response",cause:K,statusCode:Z.status,url:X,responseHeaders:$,requestBodyValues:{}})}}catch(Z){throw e31({error:Z,url:X,requestBodyValues:{}})}},mp6,lp6,pp6,a31,cp6=(X)=>typeof X==="string"?{...a31,name:X}:{...a31,...X},rp6=(X,Y)=>{return g4(X.innerType._def,Y)},op6=(X)=>{let Y={type:"integer",format:"unix-time"};for(let Q of X.checks)switch(Q.kind){case"min":Y.minimum=Q.value;break;case"max":Y.maximum=Q.value;break}return Y},Xc6=(X)=>{if("type"in X&&X.type==="string")return!1;return"allOf"in X},mQ0=void 0,KG,Jc6,dQ0,Fc6=(X,Y)=>{let Q=(X.options instanceof Map?Array.from(X.options.values()):X.options).map((J,G)=>g4(J._def,{...Y,currentPath:[...Y.currentPath,"anyOf",`${G}`]})).filter((J)=>!!J&&(!Y.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return Q.length?{anyOf:Q}:void 0},Dc6=(X,Y)=>{var Q;if(Y.currentPath.toString()===((Q=Y.propertyPath)==null?void 0:Q.toString()))return g4(X.innerType._def,Y);let J=g4(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","1"]});return J?{anyOf:[{not:$J()},J]}:$J()},Nc6=(X,Y)=>{if(Y.pipeStrategy==="input")return g4(X.in._def,Y);else if(Y.pipeStrategy==="output")return g4(X.out._def,Y);let Q=g4(X.in._def,{...Y,currentPath:[...Y.currentPath,"allOf","0"]}),J=g4(X.out._def,{...Y,currentPath:[...Y.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,J].filter((G)=>G!==void 0)}},Ac6=(X,Y)=>{return g4(X.innerType._def,Y)},Tc6=(X,Y,Q)=>{switch(Y){case j0.ZodString:return ZF1(X,Q);case j0.ZodNumber:return qc6(X);case j0.ZodObject:return Uc6(X,Q);case j0.ZodBigInt:return ip6(X);case j0.ZodBoolean:return ap6();case j0.ZodDate:return WF1(X,Q);case j0.ZodUndefined:return Mc6();case j0.ZodNull:return Kc6();case j0.ZodArray:return np6(X,Q);case j0.ZodUnion:case j0.ZodDiscriminatedUnion:return Hc6(X,Q);case j0.ZodIntersection:return Yc6(X,Q);case j0.ZodTuple:return wc6(X,Q);case j0.ZodRecord:return $F1(X,Q);case j0.ZodLiteral:return Qc6(X);case j0.ZodEnum:return ep6(X);case j0.ZodNativeEnum:return Zc6(X);case j0.ZodNullable:return Vc6(X,Q);case j0.ZodOptional:return Dc6(X,Q);case j0.ZodMap:return Wc6(X,Q);case j0.ZodSet:return Lc6(X,Q);case j0.ZodLazy:return()=>X.getter()._def;case j0.ZodPromise:return Oc6(X,Q);case j0.ZodNaN:case j0.ZodNever:return $c6();case j0.ZodEffects:return tp6(X,Q);case j0.ZodAny:return $J();case j0.ZodUnknown:return Pc6();case j0.ZodDefault:return sp6(X,Q);case j0.ZodBranded:return GF1(X,Q);case j0.ZodReadonly:return Ac6(X,Q);case j0.ZodCatch:return rp6(X,Q);case j0.ZodPipeline:return Nc6(X,Q);case j0.ZodFunction:case j0.ZodVoid:case j0.ZodSymbol:return;default:return((J)=>{return})(Y)}},Ec6=(X,Y)=>{let Q=0;for(;Q<X.length&&Q<Y.length;Q++)if(X[Q]!==Y[Q])break;return[(X.length-Q).toString(),...Y.slice(Q)].join("/")},jc6=(X,Y)=>{switch(Y.$refStrategy){case"root":return{$ref:X.path.join("/")};case"relative":return{$ref:Ec6(Y.currentPath,X.path)};case"none":case"seen":{if(X.path.length<Y.currentPath.length&&X.path.every((Q,J)=>Y.currentPath[J]===Q))return console.warn(`Recursive reference detected at ${Y.currentPath.join("/")}! Defaulting to any`),$J();return Y.$refStrategy==="seen"?$J():void 0}}},Cc6=(X,Y,Q)=>{if(X.description)Q.description=X.description;return Q},Ic6=(X)=>{let Y=cp6(X),Q=Y.name!==void 0?[...Y.basePath,Y.definitionPath,Y.name]:Y.basePath;return{...Y,currentPath:Q,propertyPath:void 0,seen:new Map(Object.entries(Y.definitions).map(([J,G])=>[G._def,{def:G._def,path:[...Y.basePath,Y.definitionPath,J],jsonSchema:void 0}]))}},Rc6=(X,Y)=>{var Q;let J=Ic6(Y),G=typeof Y==="object"&&Y.definitions?Object.entries(Y.definitions).reduce((H,[F,V])=>{var q;return{...H,[F]:(q=g4(V._def,{...J,currentPath:[...J.basePath,J.definitionPath,F]},!0))!=null?q:$J()}},{}):void 0,W=typeof Y==="string"?Y:(Y==null?void 0:Y.nameStrategy)==="title"?void 0:Y==null?void 0:Y.name,Z=(Q=g4(X._def,W===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,W]},!1))!=null?Q:$J(),$=typeof Y==="object"&&Y.name!==void 0&&Y.nameStrategy==="title"?Y.name:void 0;if($!==void 0)Z.title=$;let K=W===void 0?G?{...Z,[J.definitionPath]:G}:Z:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,W].join("/"),[J.definitionPath]:{...G,[W]:Z}};return K.$schema="http://json-schema.org/draft-07/schema#",K},pQ0,fc6=()=>globalThis.fetch,ZV=async({url:X,headers:Y,body:Q,failedResponseHandler:J,successfulResponseHandler:G,abortSignal:W,fetch:Z})=>hc6({url:X,headers:{"Content-Type":"application/json",...Y},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:J,successfulResponseHandler:G,abortSignal:W,fetch:Z}),hc6=async({url:X,headers:Y={},body:Q,successfulResponseHandler:J,failedResponseHandler:G,abortSignal:W,fetch:Z=fc6()})=>{try{let $=await Z(X,{method:"POST",headers:IZ(Y,`ai-sdk/provider-utils/${XF1}`,Xh()),body:Q.content,signal:W}),K=sA($);if(!$.ok){let H;try{H=await G({response:$,url:X,requestBodyValues:Q.values})}catch(F){if(CZ(F)||$X.isInstance(F))throw F;throw new $X({message:"Failed to process error response",cause:F,statusCode:$.status,url:X,responseHeaders:K,requestBodyValues:Q.values})}throw H.value}try{return await J({response:$,url:X,requestBodyValues:Q.values})}catch(H){if(H instanceof Error){if(CZ(H)||$X.isInstance(H))throw H}throw new $X({message:"Failed to process successful response",cause:H,statusCode:$.status,url:X,responseHeaders:K,requestBodyValues:Q.values})}}catch($){throw e31({error:$,url:X,requestBodyValues:Q.values})}},n7=({errorSchema:X,errorToMessage:Y,isRetryable:Q})=>async({response:J,url:G,requestBodyValues:W})=>{let Z=await J.text(),$=sA(J);if(Z.trim()==="")return{responseHeaders:$,value:new $X({message:J.statusText,url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,isRetryable:Q==null?void 0:Q(J)})};try{let K=await bc6({text:Z,schema:X});return{responseHeaders:$,value:new $X({message:Y(K),url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,data:K,isRetryable:Q==null?void 0:Q(J,K)})}}catch(K){return{responseHeaders:$,value:new $X({message:J.statusText,url:G,requestBodyValues:W,statusCode:J.status,responseHeaders:$,responseBody:Z,isRetryable:Q==null?void 0:Q(J)})}}},FF1=(X)=>async({response:Y})=>{let Q=sA(Y);if(Y.body==null)throw new O31({});return{responseHeaders:Q,value:KF1({stream:Y.body,schema:X})}},RZ=(X)=>async({response:Y,url:Q,requestBodyValues:J})=>{let G=await Y.text(),W=await jQ({text:G,schema:X}),Z=sA(Y);if(!W.success)throw new $X({message:"Invalid JSON response",cause:W.error,statusCode:Y.status,responseHeaders:Z,responseBody:G,url:Q,requestBodyValues:J});return{responseHeaders:Z,value:W.value,rawValue:W.rawValue}};var Y4=S(()=>{q4();q4();q4();q4();q4();q4();q4();r6();OK();OK();OK();dX0();q4();q4();d31();({btoa:yp6,atob:bp6}=globalThis);t31=`vercel.ai.error.${s31}`,fp6=Symbol.for(t31),ef=class extends(n31=O1,c31=fp6,n31){constructor({url:X,statusCode:Y,statusText:Q,cause:J,message:G=J==null?`Failed to download ${X}: ${Y} ${Q}`:`Failed to download ${X}: ${J}`}){super({name:s31,message:G,cause:J});this[c31]=!0,this.url=X,this.statusCode=Y,this.statusText=Q}static isInstance(X){return O1.hasMarker(X,t31)}},hp6=d7();xp6=["fetch failed","failed to fetch"];mp6=/"__proto__"\s*:/,lp6=/"constructor"\s*:/;pp6=Symbol("Let zodToJsonSchema decide on which parser to use"),a31={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"};KG={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(mQ0===void 0)mQ0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return mQ0},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-_]*$/};Jc6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");dQ0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};pQ0=Symbol.for("vercel.ai.schema")});var aQ0=I((OX8,BF1)=>{var{defineProperty:iQ0,getOwnPropertyDescriptor:gc6,getOwnPropertyNames:uc6}=Object,mc6=Object.prototype.hasOwnProperty,lc6=(X,Y)=>{for(var Q in Y)iQ0(X,Q,{get:Y[Q],enumerable:!0})},dc6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of uc6(Y))if(!mc6.call(X,G)&&G!==Q)iQ0(X,G,{get:()=>Y[G],enumerable:!(J=gc6(Y,G))||J.enumerable})}return X},pc6=(X)=>dc6(iQ0({},"__esModule",{value:!0}),X),UF1={};lc6(UF1,{SYMBOL_FOR_REQ_CONTEXT:()=>zF1,getContext:()=>cc6});BF1.exports=pc6(UF1);var zF1=Symbol.for("@vercel/request-context");function cc6(){return globalThis[zF1]?.get?.()??{}}});var eA=I((LX8,OF1)=>{var{defineProperty:rQ0,getOwnPropertyDescriptor:nc6,getOwnPropertyNames:ic6}=Object,ac6=Object.prototype.hasOwnProperty,rc6=(X,Y)=>{for(var Q in Y)rQ0(X,Q,{get:Y[Q],enumerable:!0})},oc6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of ic6(Y))if(!ac6.call(X,G)&&G!==Q)rQ0(X,G,{get:()=>Y[G],enumerable:!(J=nc6(Y,G))||J.enumerable})}return X},sc6=(X)=>oc6(rQ0({},"__esModule",{value:!0}),X),DF1={};rc6(DF1,{VercelOidcTokenError:()=>NF1});OF1.exports=sc6(DF1);class NF1 extends Error{constructor(X,Y){super(X);this.name="VercelOidcTokenError",this.cause=Y}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var PF1=I((wX8,MF1)=>{var{create:tc6,defineProperty:Yh,getOwnPropertyDescriptor:ec6,getOwnPropertyNames:Xn6,getPrototypeOf:Yn6}=Object,Qn6=Object.prototype.hasOwnProperty,Jn6=(X,Y)=>{for(var Q in Y)Yh(X,Q,{get:Y[Q],enumerable:!0})},LF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Xn6(Y))if(!Qn6.call(X,G)&&G!==Q)Yh(X,G,{get:()=>Y[G],enumerable:!(J=ec6(Y,G))||J.enumerable})}return X},sQ0=(X,Y,Q)=>(Q=X!=null?tc6(Yn6(X)):{},LF1(Y||!X||!X.__esModule?Yh(Q,"default",{value:X,enumerable:!0}):Q,X)),Gn6=(X)=>LF1(Yh({},"__esModule",{value:!0}),X),wF1={};Jn6(wF1,{findRootDir:()=>$n6,getUserDataDir:()=>Kn6});MF1.exports=Gn6(wF1);var XT=sQ0(z0("path")),Wn6=sQ0(z0("fs")),oQ0=sQ0(z0("os")),Zn6=eA();function $n6(){try{let X=process.cwd();while(X!==XT.default.dirname(X)){let Y=XT.default.join(X,".vercel");if(Wn6.default.existsSync(Y))return X;X=XT.default.dirname(X)}}catch(X){throw new Zn6.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Kn6(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(oQ0.default.platform()){case"darwin":return XT.default.join(oQ0.default.homedir(),"Library/Application Support");case"linux":return XT.default.join(oQ0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var RF1=I((MX8,IF1)=>{var{create:Hn6,defineProperty:Qh,getOwnPropertyDescriptor:Fn6,getOwnPropertyNames:Vn6,getPrototypeOf:qn6}=Object,Un6=Object.prototype.hasOwnProperty,zn6=(X,Y)=>{for(var Q in Y)Qh(X,Q,{get:Y[Q],enumerable:!0})},AF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Vn6(Y))if(!Un6.call(X,G)&&G!==Q)Qh(X,G,{get:()=>Y[G],enumerable:!(J=Fn6(Y,G))||J.enumerable})}return X},TF1=(X,Y,Q)=>(Q=X!=null?Hn6(qn6(X)):{},AF1(Y||!X||!X.__esModule?Qh(Q,"default",{value:X,enumerable:!0}):Q,X)),Bn6=(X)=>AF1(Qh({},"__esModule",{value:!0}),X),EF1={};zn6(EF1,{isValidAccessToken:()=>Ln6,readAuthConfig:()=>Nn6,writeAuthConfig:()=>On6});IF1.exports=Bn6(EF1);var YT=TF1(z0("fs")),jF1=TF1(z0("path")),Dn6=Jh();function CF1(){let X=(0,Dn6.getVercelDataDir)();if(!X)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return jF1.join(X,"auth.json")}function Nn6(){try{let X=CF1();if(!YT.existsSync(X))return null;let Y=YT.readFileSync(X,"utf8");if(!Y)return null;return JSON.parse(Y)}catch(X){return null}}function On6(X){let Y=CF1(),Q=jF1.dirname(Y);if(!YT.existsSync(Q))YT.mkdirSync(Q,{mode:504,recursive:!0});YT.writeFileSync(Y,JSON.stringify(X,null,2),{mode:384})}function Ln6(X){if(!X.token)return!1;if(typeof X.expiresAt!=="number")return!0;let Y=Math.floor(Date.now()/1000);return X.expiresAt>=Y}});var _F1=I((PX8,vF1)=>{var{defineProperty:XJ0,getOwnPropertyDescriptor:wn6,getOwnPropertyNames:Mn6}=Object,Pn6=Object.prototype.hasOwnProperty,An6=(X,Y)=>{for(var Q in Y)XJ0(X,Q,{get:Y[Q],enumerable:!0})},Tn6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Mn6(Y))if(!Pn6.call(X,G)&&G!==Q)XJ0(X,G,{get:()=>Y[G],enumerable:!(J=wn6(Y,G))||J.enumerable})}return X},En6=(X)=>Tn6(XJ0({},"__esModule",{value:!0}),X),SF1={};An6(SF1,{processTokenResponse:()=>Sn6,refreshTokenRequest:()=>Rn6});vF1.exports=En6(SF1);var tQ0=z0("os"),jn6="https://vercel.com",Cn6="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",kF1=`@vercel/oidc node-${process.version} ${(0,tQ0.platform)()} (${(0,tQ0.arch)()}) ${(0,tQ0.hostname)()}`,eQ0=null;async function In6(){if(eQ0)return eQ0;let X=`${jn6}/.well-known/openid-configuration`,Y=await fetch(X,{headers:{"user-agent":kF1}});if(!Y.ok)throw Error("Failed to discover OAuth endpoints");let Q=await Y.json();if(!Q||typeof Q.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let J=Q.token_endpoint;return eQ0=J,J}async function Rn6(X){let Y=await In6();return await fetch(Y,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":kF1},body:new URLSearchParams({client_id:Cn6,grant_type:"refresh_token",...X})})}async function Sn6(X){let Y=await X.json();if(!X.ok){let Q=typeof Y==="object"&&Y&&"error"in Y?String(Y.error):"Token refresh failed";return[Error(Q)]}if(typeof Y!=="object"||Y===null)return[Error("Invalid token response")];if(typeof Y.access_token!=="string")return[Error("Missing access_token in response")];if(Y.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof Y.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,Y]}});var Jh=I((AX8,xF1)=>{var{create:kn6,defineProperty:Gh,getOwnPropertyDescriptor:vn6,getOwnPropertyNames:_n6,getPrototypeOf:yn6}=Object,bn6=Object.prototype.hasOwnProperty,fn6=(X,Y)=>{for(var Q in Y)Gh(X,Q,{get:Y[Q],enumerable:!0})},bF1=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of _n6(Y))if(!bn6.call(X,G)&&G!==Q)Gh(X,G,{get:()=>Y[G],enumerable:!(J=vn6(Y,G))||J.enumerable})}return X},fF1=(X,Y,Q)=>(Q=X!=null?kn6(yn6(X)):{},bF1(Y||!X||!X.__esModule?Gh(Q,"default",{value:X,enumerable:!0}):Q,X)),hn6=(X)=>bF1(Gh({},"__esModule",{value:!0}),X),hF1={};fn6(hF1,{assertVercelOidcTokenResponse:()=>YJ0,findProjectInfo:()=>mn6,getTokenPayload:()=>pn6,getVercelCliToken:()=>gn6,getVercelDataDir:()=>xn6,getVercelOidcToken:()=>un6,isExpired:()=>cn6,loadToken:()=>dn6,saveToken:()=>ln6});xF1.exports=hn6(hF1);var QT=fF1(z0("path")),$V=fF1(z0("fs")),rB=eA(),Wh=PF1(),aB=RF1(),yF1=_F1();function xn6(){let Y=(0,Wh.getUserDataDir)();if(!Y)return null;return QT.join(Y,"com.vercel.cli")}async function gn6(){let X=(0,aB.readAuthConfig)();if(!X)return null;if((0,aB.isValidAccessToken)(X))return X.token||null;if(!X.refreshToken)return(0,aB.writeAuthConfig)({}),null;try{let Y=await(0,yF1.refreshTokenRequest)({refresh_token:X.refreshToken}),[Q,J]=await(0,yF1.processTokenResponse)(Y);if(Q||!J)return(0,aB.writeAuthConfig)({}),null;let G={token:J.access_token,expiresAt:Math.floor(Date.now()/1000)+J.expires_in};if(J.refresh_token)G.refreshToken=J.refresh_token;return(0,aB.writeAuthConfig)(G),G.token??null}catch(Y){return(0,aB.writeAuthConfig)({}),null}}async function un6(X,Y,Q){let J=`https://api.vercel.com/v1/projects/${Y}/token?source=vercel-oidc-refresh${Q?`&teamId=${Q}`:""}`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`}});if(!G.ok)throw new rB.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let W=await G.json();return YJ0(W),W}function YJ0(X){if(!X||typeof X!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in X)||typeof X.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function mn6(){let X=(0,Wh.findRootDir)();if(!X)throw new rB.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let Y=QT.join(X,".vercel","project.json");if(!$V.existsSync(Y))throw new rB.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let Q=JSON.parse($V.readFileSync(Y,"utf8"));if(typeof Q.projectId!=="string"&&typeof Q.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:Q.projectId,teamId:Q.orgId}}function ln6(X,Y){let Q=(0,Wh.getUserDataDir)();if(!Q)throw new rB.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let J=QT.join(Q,"com.vercel.token",`${Y}.json`),G=JSON.stringify(X);$V.mkdirSync(QT.dirname(J),{mode:504,recursive:!0}),$V.writeFileSync(J,G),$V.chmodSync(J,432);return}function dn6(X){let Y=(0,Wh.getUserDataDir)();if(!Y)throw new rB.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let Q=QT.join(Y,"com.vercel.token",`${X}.json`);if(!$V.existsSync(Q))return null;let J=JSON.parse($V.readFileSync(Q,"utf8"));return YJ0(J),J}function pn6(X){let Y=X.split(".");if(Y.length!==3)throw new rB.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let Q=Y[1].replace(/-/g,"+").replace(/_/g,"/"),J=Q.padEnd(Q.length+(4-Q.length%4)%4,"=");return JSON.parse(Buffer.from(J,"base64").toString("utf8"))}function cn6(X){return X.exp*1000<Date.now()}});var mF1=I((TX8,uF1)=>{var{defineProperty:JJ0,getOwnPropertyDescriptor:nn6,getOwnPropertyNames:in6}=Object,an6=Object.prototype.hasOwnProperty,rn6=(X,Y)=>{for(var Q in Y)JJ0(X,Q,{get:Y[Q],enumerable:!0})},on6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of in6(Y))if(!an6.call(X,G)&&G!==Q)JJ0(X,G,{get:()=>Y[G],enumerable:!(J=nn6(Y,G))||J.enumerable})}return X},sn6=(X)=>on6(JJ0({},"__esModule",{value:!0}),X),gF1={};rn6(gF1,{refreshToken:()=>tn6});uF1.exports=sn6(gF1);var QJ0=eA(),KV=Jh();async function tn6(){let{projectId:X,teamId:Y}=(0,KV.findProjectInfo)(),Q=(0,KV.loadToken)(X);if(!Q||(0,KV.isExpired)((0,KV.getTokenPayload)(Q.token))){let J=await(0,KV.getVercelCliToken)();if(!J)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!X)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(Q=await(0,KV.getVercelOidcToken)(J,X,Y),!Q)throw new QJ0.VercelOidcTokenError("Failed to refresh OIDC token");(0,KV.saveToken)(Q,X)}process.env.VERCEL_OIDC_TOKEN=Q.token;return}});var pF1=I((EX8,dF1)=>{var{defineProperty:WJ0,getOwnPropertyDescriptor:en6,getOwnPropertyNames:Xi6}=Object,Yi6=Object.prototype.hasOwnProperty,Qi6=(X,Y)=>{for(var Q in Y)WJ0(X,Q,{get:Y[Q],enumerable:!0})},Ji6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Xi6(Y))if(!Yi6.call(X,G)&&G!==Q)WJ0(X,G,{get:()=>Y[G],enumerable:!(J=en6(Y,G))||J.enumerable})}return X},Gi6=(X)=>Ji6(WJ0({},"__esModule",{value:!0}),X),lF1={};Qi6(lF1,{getVercelOidcToken:()=>$i6,getVercelOidcTokenSync:()=>GJ0});dF1.exports=Gi6(lF1);var Wi6=aQ0(),Zi6=eA();async function $i6(){let X="",Y;try{X=GJ0()}catch(Q){Y=Q}try{let[{getTokenPayload:Q,isExpired:J},{refreshToken:G}]=await Promise.all([await Promise.resolve().then(() => w6(Jh())),await Promise.resolve().then(() => w6(mF1()))]);if(!X||J(Q(X)))await G(),X=GJ0()}catch(Q){let J=Y instanceof Error?Y.message:"";if(Q instanceof Error)J=`${J}
1195
+ ${Q.message}`;if(J)throw new Zi6.VercelOidcTokenError(J);throw Q}return X}function GJ0(){let X=(0,Wi6.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!X)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return X}});var $J0=I((jX8,iF1)=>{var{defineProperty:ZJ0,getOwnPropertyDescriptor:Ki6,getOwnPropertyNames:Hi6}=Object,Fi6=Object.prototype.hasOwnProperty,Vi6=(X,Y)=>{for(var Q in Y)ZJ0(X,Q,{get:Y[Q],enumerable:!0})},qi6=(X,Y,Q,J)=>{if(Y&&typeof Y==="object"||typeof Y==="function"){for(let G of Hi6(Y))if(!Fi6.call(X,G)&&G!==Q)ZJ0(X,G,{get:()=>Y[G],enumerable:!(J=Ki6(Y,G))||J.enumerable})}return X},Ui6=(X)=>qi6(ZJ0({},"__esModule",{value:!0}),X),nF1={};Vi6(nF1,{getContext:()=>zi6.getContext,getVercelOidcToken:()=>cF1.getVercelOidcToken,getVercelOidcTokenSync:()=>cF1.getVercelOidcTokenSync});iF1.exports=Ui6(nF1);var cF1=pF1(),zi6=aQ0()});async function BV1({response:X,statusCode:Y,defaultMessage:Q="Gateway request failed",cause:J,authMethod:G}){var W;let Z=await d9({value:X,schema:Ci6});if(!Z.success){let V=typeof X==="object"&&X!==null&&"generationId"in X?X.generationId:void 0;return new ji6({message:`Invalid error response format: ${Q}`,statusCode:Y,response:X,validationError:Z.error,cause:J,generationId:V})}let $=Z.value,K=$.error.type,H=$.error.message,F=(W=$.generationId)!=null?W:void 0;switch(K){case"authentication_error":return Zh.createContextualError({apiKeyProvided:G==="api-key",oidcTokenProvided:G==="oidc",statusCode:Y,cause:J,generationId:F});case"invalid_request_error":return new Oi6({message:H,statusCode:Y,cause:J,generationId:F});case"rate_limit_exceeded":return new wi6({message:H,statusCode:Y,cause:J,generationId:F});case"model_not_found":{let V=await d9({value:$.error.param,schema:Pi6});return new Ai6({message:H,statusCode:Y,modelId:V.success?V.value.modelId:void 0,cause:J,generationId:F})}case"internal_server_error":return new VV1({message:H,statusCode:Y,cause:J,generationId:F});default:return new VV1({message:H,statusCode:Y,cause:J,generationId:F})}}function cK(X,Y){var Q;if(KJ.isInstance(X))return X;if($X.isInstance(X))return BV1({response:Ii6(X),statusCode:(Q=X.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:X,authMethod:Y});return BV1({response:{},statusCode:500,defaultMessage:X instanceof Error?`Gateway request failed: ${X.message}`:"Unknown Gateway error",cause:X,authMethod:Y})}function Ii6(X){if(X.data!==void 0)return X.data;if(X.responseBody!=null)try{return JSON.parse(X.responseBody)}catch(Y){return X.responseBody}return{}}async function oB(X){let Y=await d9({value:X[TV1],schema:Ri6});return Y.success?Y.value:void 0}function NV1(X){if(X.type==="file"&&X.data instanceof Uint8Array)return{...X,data:WV(X.data)};return X}async function di6(){var X;return(X=EV1.getContext().headers)==null?void 0:X["x-vercel-id"]}function ni6(X={}){var Y,Q;let J=null,G=null,W=(Y=X.metadataCacheRefreshMillis)!=null?Y:300000,Z=0,$=(Q=VF1(X.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",K=async()=>{try{let N=await ii6(X);return IZ({Authorization:`Bearer ${N.token}`,"ai-gateway-protocol-version":ci6,[TV1]:N.authMethod,...X.headers},`ai-sdk/gateway/${pi6}`)}catch(N){throw Zh.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:N})}},H=()=>{let N=tA({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),L=tA({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),w=tA({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{let C=await di6();return{...N&&{"ai-o11y-deployment-id":N},...L&&{"ai-o11y-environment":L},...w&&{"ai-o11y-region":w},...C&&{"ai-o11y-request-id":C}}}},F=(N)=>{return new vi6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})},V=async()=>{var N,L,w;let C=(w=(L=(N=X._internal)==null?void 0:N.currentDate)==null?void 0:L.call(N).getTime())!=null?w:Date.now();if(!J||C-Z>W)Z=C,J=new DV1({baseURL:$,headers:K,fetch:X.fetch}).getAvailableModels().then((T)=>{return G=T,T}).catch(async(T)=>{throw await cK(T,await oB(await K()))});return G?Promise.resolve(G):J},q=async()=>{return new DV1({baseURL:$,headers:K,fetch:X.fetch}).getCredits().catch(async(N)=>{throw await cK(N,await oB(await K()))})},z=function(N){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return F(N)};z.specificationVersion="v3",z.getAvailableModels=V,z.getCredits=q,z.imageModel=(N)=>{return new bi6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})},z.languageModel=F;let D=(N)=>{return new _i6(N,{provider:"gateway",baseURL:$,headers:K,fetch:X.fetch,o11yHeaders:H()})};return z.embeddingModel=D,z.textEmbeddingModel=D,z.tools=li6,z}async function ii6(X){let Y=tA({settingValue:X.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(Y)return{token:Y,authMethod:"api-key"};return{token:await jV1.getVercelOidcToken(),authMethod:"oidc"}}var EV1,jV1,Bi6="vercel.ai.gateway.error",KJ0,aF1,rF1,KJ,OV1="GatewayAuthenticationError",Di6,oF1,sF1,tF1,Zh,LV1="GatewayInvalidRequestError",Ni6,eF1,XV1,YV1,Oi6,wV1="GatewayRateLimitError",Li6,QV1,JV1,GV1,wi6,MV1="GatewayModelNotFoundError",Mi6,WV1,Pi6,ZV1,$V1,Ai6,PV1="GatewayInternalServerError",Ti6,KV1,HV1,FV1,VV1,AV1="GatewayResponseError",Ei6,qV1,UV1,zV1,ji6,Ci6,TV1="ai-gateway-auth-method",Ri6,DV1=class{constructor(X){this.config=X}async getAvailableModels(){try{let{value:X}=await cQ0({url:`${this.config.baseURL}/config`,headers:await fY(this.config.headers()),successfulResponseHandler:RZ(Si6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(Y)=>Y}),fetch:this.config.fetch});return X}catch(X){throw await cK(X)}}async getCredits(){try{let X=new URL(this.config.baseURL),{value:Y}=await cQ0({url:`${X.origin}/v1/credits`,headers:await fY(this.config.headers()),successfulResponseHandler:RZ(ki6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return Y}catch(X){throw await cK(X)}}},Si6,ki6,vi6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(X){let{abortSignal:Y,...Q}=X;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate(X){let{args:Y,warnings:Q}=await this.getArgs(X),{abortSignal:J}=X,G=await fY(this.config.headers());try{let{responseHeaders:W,value:Z,rawValue:$}=await ZV({url:this.getUrl(),headers:JV(G,X.headers,this.getModelConfigHeaders(this.modelId,!1),await fY(this.config.o11yHeaders)),body:Y,successfulResponseHandler:RZ(U.any()),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(K)=>K}),...J&&{abortSignal:J},fetch:this.config.fetch});return{...Z,request:{body:Y},response:{headers:W,body:$},warnings:Q}}catch(W){throw await cK(W,await oB(G))}}async doStream(X){let{args:Y,warnings:Q}=await this.getArgs(X),{abortSignal:J}=X,G=await fY(this.config.headers());try{let{value:W,responseHeaders:Z}=await ZV({url:this.getUrl(),headers:JV(G,X.headers,this.getModelConfigHeaders(this.modelId,!0),await fY(this.config.o11yHeaders)),body:Y,successfulResponseHandler:FF1(U.any()),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:($)=>$}),...J&&{abortSignal:J},fetch:this.config.fetch});return{stream:W.pipeThrough(new TransformStream({start($){if(Q.length>0)$.enqueue({type:"stream-start",warnings:Q})},transform($,K){if($.success){let H=$.value;if(H.type==="raw"&&!X.includeRawChunks)return;if(H.type==="response-metadata"&&H.timestamp&&typeof H.timestamp==="string")H.timestamp=new Date(H.timestamp);K.enqueue(H)}else K.error($.error)}})),request:{body:Y},response:{headers:Z}}}catch(W){throw await cK(W,await oB(G))}}isFilePart(X){return X&&typeof X==="object"&&"type"in X&&X.type==="file"}maybeEncodeFileParts(X){for(let Y of X.prompt)for(let Q of Y.content)if(this.isFilePart(Q)){let J=Q;if(J.data instanceof Uint8Array){let G=Uint8Array.from(J.data),W=Buffer.from(G).toString("base64");J.data=new URL(`data:${J.mediaType||"application/octet-stream"};base64,${W}`)}}return X}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(X,Y){return{"ai-language-model-specification-version":"3","ai-language-model-id":X,"ai-language-model-streaming":String(Y)}}},_i6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:X,headers:Y,abortSignal:Q,providerOptions:J}){var G;let W=await fY(this.config.headers());try{let{responseHeaders:Z,value:$,rawValue:K}=await ZV({url:this.getUrl(),headers:JV(W,Y!=null?Y:{},this.getModelConfigHeaders(),await fY(this.config.o11yHeaders)),body:{values:X,...J?{providerOptions:J}:{}},successfulResponseHandler:RZ(yi6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(H)=>H}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:$.embeddings,usage:(G=$.usage)!=null?G:void 0,providerMetadata:$.providerMetadata,response:{headers:Z,body:K},warnings:[]}}catch(Z){throw await cK(Z,await oB(W))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},yi6,bi6=class{constructor(X,Y){this.modelId=X,this.config=Y,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:X,n:Y,size:Q,aspectRatio:J,seed:G,files:W,mask:Z,providerOptions:$,headers:K,abortSignal:H}){var F;let V=await fY(this.config.headers());try{let{responseHeaders:q,value:z,rawValue:D}=await ZV({url:this.getUrl(),headers:JV(V,K!=null?K:{},this.getModelConfigHeaders(),await fY(this.config.o11yHeaders)),body:{prompt:X,n:Y,...Q&&{size:Q},...J&&{aspectRatio:J},...G&&{seed:G},...$&&{providerOptions:$},...W&&{files:W.map((N)=>NV1(N))},...Z&&{mask:NV1(Z)}},successfulResponseHandler:RZ(hi6),failedResponseHandler:n7({errorSchema:U.any(),errorToMessage:(N)=>N}),...H&&{abortSignal:H},fetch:this.config.fetch});return{images:z.images,warnings:(F=z.warnings)!=null?F:[],providerMetadata:z.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:q}}}catch(q){throw cK(q,await oB(V))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},fi6,hi6,xi6,gi6,ui6,mi6=(X={})=>ui6(X),li6,pi6="3.0.22",ci6="0.0.1",CV1;var HJ0=S(()=>{Y4();q4();r6();r6();Y4();Y4();r6();Y4();Y4();r6();Y4();r6();Y4();r6();Y4();r6();Y4();r0();Y4();EV1=w6($J0(),1),jV1=w6($J0(),1),KJ0=Symbol.for(Bi6),KJ=class X extends(rF1=Error,aF1=KJ0,rF1){constructor({message:Y,statusCode:Q=500,cause:J,generationId:G}){super(G?`${Y} [${G}]`:Y);this[aF1]=!0,this.statusCode=Q,this.cause=J,this.generationId=G}static isInstance(Y){return X.hasMarker(Y)}static hasMarker(Y){return typeof Y==="object"&&Y!==null&&KJ0 in Y&&Y[KJ0]===!0}},Di6=`vercel.ai.gateway.error.${OV1}`,oF1=Symbol.for(Di6),Zh=class X extends(tF1=KJ,sF1=oF1,tF1){constructor({message:Y="Authentication failed",statusCode:Q=401,cause:J,generationId:G}={}){super({message:Y,statusCode:Q,cause:J,generationId:G});this[sF1]=!0,this.name=OV1,this.type="authentication_error"}static isInstance(Y){return KJ.hasMarker(Y)&&oF1 in Y}static createContextualError({apiKeyProvided:Y,oidcTokenProvided:Q,message:J="Authentication failed",statusCode:G=401,cause:W,generationId:Z}){let $;if(Y)$=`AI Gateway authentication failed: Invalid API key.
1196
1196
 
1197
1197
  Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
1198
1198
 
@@ -1215,11 +1215,11 @@ Alternatively, you can use a provider module instead of the AI Gateway.
1215
1215
 
1216
1216
  Learn more: \x1B[34m${Q}\x1B[0m
1217
1217
 
1218
- `),{name:"GatewayAuthenticationError"})}function $T({operationId:X,telemetry:Y}){return{"operation.name":`${X}${(Y==null?void 0:Y.functionId)!=null?` ${Y.functionId}`:""}`,"resource.name":Y==null?void 0:Y.functionId,"ai.operationId":X,"ai.telemetry.functionId":Y==null?void 0:Y.functionId}}function xq1({model:X,settings:Y,telemetry:Q,headers:J}){var G;return{"ai.model.provider":X.provider,"ai.model.id":X.modelId,...Object.entries(Y).reduce((W,[Z,$])=>{if(Z==="timeout"){let K=AJ0($);if(K!=null)W[`ai.settings.${Z}`]=K}else W[`ai.settings.${Z}`]=$;return W},{}),...Object.entries((G=Q==null?void 0:Q.metadata)!=null?G:{}).reduce((W,[Z,$])=>{return W[`ai.telemetry.metadata.${Z}`]=$,W},{}),...Object.entries(J!=null?J:{}).reduce((W,[Z,$])=>{if($!==void 0)W[`ai.request.headers.${Z}`]=$;return W},{})}}function uq1({isEnabled:X=!1,tracer:Y}={}){if(!X)return Qr6;if(Y)return Y;return gq1.trace.getTracer("ai")}async function KT({name:X,tracer:Y,attributes:Q,fn:J,endWhenDone:G=!0}){return Y.startActiveSpan(X,{attributes:await Q},async(W)=>{let Z=tB.context.active();try{let $=await tB.context.with(Z,()=>J(W));if(G)W.end();return $}catch($){try{mq1(W,$)}finally{W.end()}throw $}})}function mq1(X,Y){if(Y instanceof Error)X.recordException({name:Y.name,message:Y.message,stack:Y.stack}),X.setStatus({code:tB.SpanStatusCode.ERROR,message:Y.message});else X.setStatus({code:tB.SpanStatusCode.ERROR})}async function i7({telemetry:X,attributes:Y}){if((X==null?void 0:X.isEnabled)!==!0)return{};let Q={};for(let[J,G]of Object.entries(Y)){if(G==null)continue;if(typeof G==="object"&&"input"in G&&typeof G.input==="function"){if((X==null?void 0:X.recordInputs)===!1)continue;let W=await G.input();if(W!=null)Q[J]=W;continue}if(typeof G==="object"&&"output"in G&&typeof G.output==="function"){if((X==null?void 0:X.recordOutputs)===!1)continue;let W=await G.output();if(W!=null)Q[J]=W;continue}Q[J]=G}return Q}function lq1(X){return JSON.stringify(X.map((Y)=>({...Y,content:typeof Y.content==="string"?Y.content:Y.content.map((Q)=>Q.type==="file"?{...Q,data:Q.data instanceof Uint8Array?ua6(Q.data):Q.data}:Q)})))}function dq1(X){return{inputTokens:X.inputTokens.total,inputTokenDetails:{noCacheTokens:X.inputTokens.noCache,cacheReadTokens:X.inputTokens.cacheRead,cacheWriteTokens:X.inputTokens.cacheWrite},outputTokens:X.outputTokens.total,outputTokenDetails:{textTokens:X.outputTokens.text,reasoningTokens:X.outputTokens.reasoning},totalTokens:VG(X.inputTokens.total,X.outputTokens.total),raw:X.raw,reasoningTokens:X.outputTokens.reasoning,cachedInputTokens:X.inputTokens.cacheRead}}function FJ0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function pq1(X,Y){var Q,J,G,W,Z,$,K,H,F,V;return{inputTokens:VG(X.inputTokens,Y.inputTokens),inputTokenDetails:{noCacheTokens:VG((Q=X.inputTokenDetails)==null?void 0:Q.noCacheTokens,(J=Y.inputTokenDetails)==null?void 0:J.noCacheTokens),cacheReadTokens:VG((G=X.inputTokenDetails)==null?void 0:G.cacheReadTokens,(W=Y.inputTokenDetails)==null?void 0:W.cacheReadTokens),cacheWriteTokens:VG((Z=X.inputTokenDetails)==null?void 0:Z.cacheWriteTokens,($=Y.inputTokenDetails)==null?void 0:$.cacheWriteTokens)},outputTokens:VG(X.outputTokens,Y.outputTokens),outputTokenDetails:{textTokens:VG((K=X.outputTokenDetails)==null?void 0:K.textTokens,(H=Y.outputTokenDetails)==null?void 0:H.textTokens),reasoningTokens:VG((F=X.outputTokenDetails)==null?void 0:F.reasoningTokens,(V=Y.outputTokenDetails)==null?void 0:V.reasoningTokens)},totalTokens:VG(X.totalTokens,Y.totalTokens),reasoningTokens:VG(X.reasoningTokens,Y.reasoningTokens),cachedInputTokens:VG(X.cachedInputTokens,Y.cachedInputTokens)}}function VG(X,Y){return X==null&&Y==null?void 0:(X!=null?X:0)+(Y!=null?Y:0)}function Fh(X,Y){if(X===void 0&&Y===void 0)return;if(X===void 0)return Y;if(Y===void 0)return X;let Q={...X};for(let J in Y)if(Object.prototype.hasOwnProperty.call(Y,J)){let G=Y[J];if(G===void 0)continue;let W=J in X?X[J]:void 0,Z=G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Date)&&!(G instanceof RegExp),$=W!==null&&W!==void 0&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp);if(Z&&$)Q[J]=Fh(W,G);else Q[J]=G}return Q}function Gr6({error:X,exponentialBackoffDelay:Y}){let Q=X.responseHeaders;if(!Q)return Y;let J,G=Q["retry-after-ms"];if(G){let Z=parseFloat(G);if(!Number.isNaN(Z))J=Z}let W=Q["retry-after"];if(W&&J===void 0){let Z=parseFloat(W);if(!Number.isNaN(Z))J=Z*1000;else J=Date.parse(W)-Date.now()}if(J!=null&&!Number.isNaN(J)&&0<=J&&(J<60000||J<Y))return J;return Y}async function cq1(X,{maxRetries:Y,delayInMs:Q,backoffFactor:J,abortSignal:G},W=[]){try{return await X()}catch(Z){if(CZ(Z))throw Z;if(Y===0)throw Z;let $=nB(Z),K=[...W,Z],H=K.length;if(H>Y)throw new RV1({message:`Failed after ${H} attempts. Last error: ${$}`,reason:"maxRetriesExceeded",errors:K});if(Z instanceof Error&&$X.isInstance(Z)&&Z.isRetryable===!0&&H<=Y)return await o31(Gr6({error:Z,exponentialBackoffDelay:Q}),{abortSignal:G}),cq1(X,{maxRetries:Y,delayInMs:J*Q,backoffFactor:J,abortSignal:G},K);if(H===1)throw Z;throw new RV1({message:`Failed after ${H} attempts with non-retryable error: '${$}'`,reason:"errorNotRetryable",errors:K})}}function nq1({maxRetries:X,abortSignal:Y}){if(X!=null){if(!Number.isInteger(X))throw new qG({parameter:"maxRetries",value:X,message:"maxRetries must be an integer"});if(X<0)throw new qG({parameter:"maxRetries",value:X,message:"maxRetries must be >= 0"})}let Q=X!=null?X:2;return{maxRetries:Q,retry:Wr6({maxRetries:Q,abortSignal:Y})}}function iq1({messages:X}){let Y=X.at(-1);if((Y==null?void 0:Y.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let Q={};for(let K of X)if(K.role==="assistant"&&typeof K.content!=="string"){let H=K.content;for(let F of H)if(F.type==="tool-call")Q[F.toolCallId]=F}let J={};for(let K of X)if(K.role==="assistant"&&typeof K.content!=="string"){let H=K.content;for(let F of H)if(F.type==="tool-approval-request")J[F.approvalId]=F}let G={};for(let K of Y.content)if(K.type==="tool-result")G[K.toolCallId]=K;let W=[],Z=[],$=Y.content.filter((K)=>K.type==="tool-approval-response");for(let K of $){let H=J[K.approvalId];if(H==null)throw new Qa6({approvalId:K.approvalId});if(G[H.toolCallId]!=null)continue;let F=Q[H.toolCallId];if(F==null)throw new MJ0({toolCallId:H.toolCallId,approvalId:H.approvalId});let V={approvalRequest:H,approvalResponse:K,toolCall:F};if(K.approved)W.push(V);else Z.push(V)}return{approvedToolApprovals:W,deniedToolApprovals:Z}}async function TJ0({toolCall:X,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z,onPreliminaryToolResult:$}){let{toolName:K,toolCallId:H,input:F}=X,V=Y==null?void 0:Y[K];if((V==null?void 0:V.execute)==null)return;return KT({name:"ai.toolCall",attributes:i7({telemetry:J,attributes:{...$T({operationId:"ai.toolCall",telemetry:J}),"ai.toolCall.name":K,"ai.toolCall.id":H,"ai.toolCall.args":{output:()=>JSON.stringify(F)}}}),tracer:Q,fn:async(q)=>{let z;try{let D=qF1({execute:V.execute.bind(V),input:F,options:{toolCallId:H,messages:G,abortSignal:W,experimental_context:Z}});for await(let N of D)if(N.type==="preliminary")$==null||$({...X,type:"tool-result",output:N.output,preliminary:!0});else z=N.output}catch(D){return mq1(q,D),{type:"tool-error",toolCallId:H,toolName:K,input:F,error:D,dynamic:V.type==="dynamic",...X.providerMetadata!=null?{providerMetadata:X.providerMetadata}:{}}}try{q.setAttributes(await i7({telemetry:J,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(z)}}}))}catch(D){}return{type:"tool-result",toolCallId:H,toolName:K,input:F,output:z,dynamic:V.type==="dynamic",...X.providerMetadata!=null?{providerMetadata:X.providerMetadata}:{}}}})}function _V1(X){let Y=X.filter((Q)=>Q.type==="text");if(Y.length===0)return;return Y.map((Q)=>Q.text).join("")}async function rq1({tool:X,toolCall:Y,messages:Q,experimental_context:J}){if(X.needsApproval==null)return!1;if(typeof X.needsApproval==="boolean")return X.needsApproval;return await X.needsApproval(Y.input,{toolCallId:Y.toolCallId,messages:Q,experimental_context:J})}function Kr6(X){let Y=["ROOT"],Q=-1,J=null;function G(K,H,F){switch(K){case'"':{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=H,J=H,Y.pop(),Y.push(F),Y.push("INSIDE_LITERAL");break}case"-":{Y.pop(),Y.push(F),Y.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_NUMBER");break}case"{":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_OBJECT_START");break}case"[":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_ARRAY_START");break}}}function W(K,H){switch(K){case",":{Y.pop(),Y.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=H,Y.pop();break}}}function Z(K,H){switch(K){case",":{Y.pop(),Y.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,Y.pop();break}}}for(let K=0;K<X.length;K++){let H=X[K];switch(Y[Y.length-1]){case"ROOT":G(H,K,"FINISH");break;case"INSIDE_OBJECT_START":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_KEY");break}case"}":{Q=K,Y.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(H){case":":{Y.pop(),Y.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(H,K,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{W(H,K);break}case"INSIDE_STRING":{switch(H){case'"':{Y.pop(),Q=K;break}case"\\":{Y.push("INSIDE_STRING_ESCAPE");break}default:Q=K}break}case"INSIDE_ARRAY_START":{switch(H){case"]":{Q=K,Y.pop();break}default:{Q=K,G(H,K,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(H){case",":{Y.pop(),Y.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=K,Y.pop();break}default:{Q=K;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(H,K,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{Y.pop(),Q=K;break}case"INSIDE_NUMBER":{switch(H){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=K;break}case"e":case"E":case"-":case".":break;case",":{if(Y.pop(),Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K);if(Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);break}case"}":{if(Y.pop(),Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);break}case"]":{if(Y.pop(),Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K);break}default:{Y.pop();break}}break}case"INSIDE_LITERAL":{let V=X.substring(J,K+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(Y.pop(),Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);else if(Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K)}else Q=K;break}}}let $=X.slice(0,Q+1);for(let K=Y.length-1;K>=0;K--)switch(Y[K]){case"INSIDE_STRING":{$+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{$+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{$+="]";break}case"INSIDE_LITERAL":{let F=X.substring(J,X.length);if("true".startsWith(F))$+="true".slice(F.length);else if("false".startsWith(F))$+="false".slice(F.length);else if("null".startsWith(F))$+="null".slice(F.length)}}return $}async function HT(X){if(X===void 0)return{value:void 0,state:"undefined-input"};let Y=await jQ({text:X});if(Y.success)return{value:Y.value,state:"successful-parse"};if(Y=await jQ({text:Kr6(X)}),Y.success)return{value:Y.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function oq1({toolCall:X,tools:Y,repairToolCall:Q,system:J,messages:G}){var W;try{if(Y==null){if(X.providerExecuted&&X.dynamic)return await sq1(X);throw new BJ0({toolName:X.toolName})}try{return await yV1({toolCall:X,tools:Y})}catch(Z){if(Q==null||!(BJ0.isInstance(Z)||wJ0.isInstance(Z)))throw Z;let $=null;try{$=await Q({toolCall:X,tools:Y,inputSchema:async({toolName:K})=>{let{inputSchema:H}=Y[K];return await p7(H).jsonSchema},system:J,messages:G,error:Z})}catch(K){throw new za6({cause:K,originalError:Z})}if($==null)throw Z;return await yV1({toolCall:$,tools:Y})}}catch(Z){let $=await jQ({text:X.input}),K=$.success?$.value:X.input;return{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:K,dynamic:!0,invalid:!0,error:Z,title:(W=Y==null?void 0:Y[X.toolName])==null?void 0:W.title,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata}}}async function sq1(X){let Y=X.input.trim()===""?{success:!0,value:{}}:await jQ({text:X.input});if(Y.success===!1)throw new wJ0({toolName:X.toolName,toolInput:X.input,cause:Y.error});return{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:Y.value,providerExecuted:!0,dynamic:!0,providerMetadata:X.providerMetadata}}async function yV1({toolCall:X,tools:Y}){let Q=X.toolName,J=Y[Q];if(J==null){if(X.providerExecuted&&X.dynamic)return await sq1(X);throw new BJ0({toolName:X.toolName,availableTools:Object.keys(Y)})}let G=p7(J.inputSchema),W=X.input.trim()===""?await d9({value:{},schema:G}):await jQ({text:X.input,schema:G});if(W.success===!1)throw new wJ0({toolName:Q,toolInput:X.input,cause:W.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:W.value,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:X.toolCallId,toolName:Q,input:W.value,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata,title:J.title}}function Vh(X){return({steps:Y})=>Y.length===X}async function eq1({stopConditions:X,steps:Y}){return(await Promise.all(X.map((Q)=>Q({steps:Y})))).some((Q)=>Q)}async function NJ0({content:X,tools:Y}){let Q=[],J=[];for(let W of X){if(W.type==="source")continue;if((W.type==="tool-result"||W.type==="tool-error")&&!W.providerExecuted)continue;if(W.type==="text"&&W.text.length===0)continue;switch(W.type){case"text":J.push({type:"text",text:W.text,providerOptions:W.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:W.text,providerOptions:W.providerMetadata});break;case"file":J.push({type:"file",data:W.file.base64,mediaType:W.file.mediaType,providerOptions:W.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:W.toolCallId,toolName:W.toolName,input:W.input,providerExecuted:W.providerExecuted,providerOptions:W.providerMetadata});break;case"tool-result":{let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,providerOptions:W.providerMetadata});break}case"tool-error":{let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,providerOptions:W.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:W.approvalId,toolCallId:W.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let W of X){if(!(W.type==="tool-result"||W.type==="tool-error")||W.providerExecuted)continue;let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.type==="tool-result"?W.output:W.error,errorMode:W.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,...W.providerMetadata!=null?{providerOptions:W.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function XU1(...X){let Y=X.filter((J)=>J!=null);if(Y.length===0)return;if(Y.length===1)return Y[0];let Q=new AbortController;for(let J of Y){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function qh({model:X,tools:Y,toolChoice:Q,system:J,prompt:G,messages:W,maxRetries:Z,abortSignal:$,timeout:K,headers:H,stopWhen:F=Vh(1),experimental_output:V,output:q=V,experimental_telemetry:z,providerOptions:D,experimental_activeTools:N,activeTools:L=N,experimental_prepareStep:w,prepareStep:C=w,experimental_repairToolCall:T,experimental_download:A,experimental_context:P,_internal:{generateId:j=Ur6}={},onStepFinish:R,onFinish:v,...y}){let b=Kh(X),f=WT(F),r=AJ0(K),g=Cq1(K),k=g!=null?new AbortController:void 0,h=XU1($,r!=null?AbortSignal.timeout(r):void 0,k==null?void 0:k.signal),{maxRetries:t,retry:l}=nq1({maxRetries:Z,abortSignal:h}),J0=DJ0(y),V0=IZ(H!=null?H:{},`ai/${Iq1}`),Y0=xq1({model:b,telemetry:z,headers:V0,settings:{...J0,maxRetries:t}}),U0=await fq1({system:J,prompt:G,messages:W}),P0=uq1(z);try{return await KT({name:"ai.generateText",attributes:i7({telemetry:z,attributes:{...$T({operationId:"ai.generateText",telemetry:z}),...Y0,"ai.model.provider":b.provider,"ai.model.id":b.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:W})}}}),tracer:P0,fn:async(v0)=>{var W1,N0,W0,I0,f1,x1,y0,L0;let $0=U0.messages,E0=[],{approvedToolApprovals:H0,deniedToolApprovals:D0}=iq1({messages:$0}),o0=H0.filter((K6)=>!K6.toolCall.providerExecuted);if(D0.length>0||o0.length>0){let K6=await bV1({toolCalls:o0.map((G1)=>G1.toolCall),tools:Y,tracer:P0,telemetry:z,messages:$0,abortSignal:h,experimental_context:P}),U4=[];for(let G1 of K6){let M1=await HV({toolCallId:G1.toolCallId,input:G1.input,tool:Y==null?void 0:Y[G1.toolName],output:G1.type==="tool-result"?G1.output:G1.error,errorMode:G1.type==="tool-error"?"json":"none"});U4.push({type:"tool-result",toolCallId:G1.toolCallId,toolName:G1.toolName,output:M1})}for(let G1 of D0)U4.push({type:"tool-result",toolCallId:G1.toolCall.toolCallId,toolName:G1.toolCall.toolName,output:{type:"execution-denied",reason:G1.approvalResponse.reason,...G1.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:G1.approvalResponse.approvalId}}}}});E0.push({role:"tool",content:U4})}let k0=[...H0,...D0].filter((K6)=>K6.toolCall.providerExecuted);if(k0.length>0)E0.push({role:"tool",content:k0.map((K6)=>({type:"tool-approval-response",approvalId:K6.approvalResponse.approvalId,approved:K6.approvalResponse.approved,reason:K6.approvalResponse.reason,providerExecuted:!0}))});let S0=DJ0(y),F1,k1=[],n1=[],P1=[],Q1=new Map;do{let K6=g!=null?setTimeout(()=>k.abort(),g):void 0;try{let U4=[...$0,...E0],G1=await(C==null?void 0:C({model:b,steps:P1,stepNumber:P1.length,messages:U4,experimental_context:P})),M1=Kh((W1=G1==null?void 0:G1.model)!=null?W1:b),CQ=await kq1({prompt:{system:(N0=G1==null?void 0:G1.system)!=null?N0:U0.system,messages:(W0=G1==null?void 0:G1.messages)!=null?W0:U4},supportedUrls:await M1.supportedUrls,download:A});P=(I0=G1==null?void 0:G1.experimental_context)!=null?I0:P;let{toolChoice:O,tools:_}=await vq1({tools:Y,toolChoice:(f1=G1==null?void 0:G1.toolChoice)!=null?f1:Q,activeTools:(x1=G1==null?void 0:G1.activeTools)!=null?x1:L});F1=await l(()=>{var e;return KT({name:"ai.generateText.doGenerate",attributes:i7({telemetry:z,attributes:{...$T({operationId:"ai.generateText.doGenerate",telemetry:z}),...Y0,"ai.model.provider":M1.provider,"ai.model.id":M1.modelId,"ai.prompt.messages":{input:()=>lq1(CQ)},"ai.prompt.tools":{input:()=>_==null?void 0:_.map((X0)=>JSON.stringify(X0))},"ai.prompt.toolChoice":{input:()=>O!=null?JSON.stringify(O):void 0},"gen_ai.system":M1.provider,"gen_ai.request.model":M1.modelId,"gen_ai.request.frequency_penalty":y.frequencyPenalty,"gen_ai.request.max_tokens":y.maxOutputTokens,"gen_ai.request.presence_penalty":y.presencePenalty,"gen_ai.request.stop_sequences":y.stopSequences,"gen_ai.request.temperature":(e=y.temperature)!=null?e:void 0,"gen_ai.request.top_k":y.topK,"gen_ai.request.top_p":y.topP}}),tracer:P0,fn:async(X0)=>{var n,C0,A1,i1,f0,y1,y8,kX;let y6=Fh(D,G1==null?void 0:G1.providerOptions),v4=await M1.doGenerate({...S0,tools:_,toolChoice:O,responseFormat:await(q==null?void 0:q.responseFormat),prompt:CQ,providerOptions:y6,abortSignal:h,headers:V0}),KY={id:(C0=(n=v4.response)==null?void 0:n.id)!=null?C0:j(),timestamp:(i1=(A1=v4.response)==null?void 0:A1.timestamp)!=null?i1:new Date,modelId:(y1=(f0=v4.response)==null?void 0:f0.modelId)!=null?y1:M1.modelId,headers:(y8=v4.response)==null?void 0:y8.headers,body:(kX=v4.response)==null?void 0:kX.body};return X0.setAttributes(await i7({telemetry:z,attributes:{"ai.response.finishReason":v4.finishReason.unified,"ai.response.text":{output:()=>_V1(v4.content)},"ai.response.toolCalls":{output:()=>{let UG=fV1(v4.content);return UG==null?void 0:JSON.stringify(UG)}},"ai.response.id":KY.id,"ai.response.model":KY.modelId,"ai.response.timestamp":KY.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(v4.providerMetadata),"ai.usage.promptTokens":v4.usage.inputTokens.total,"ai.usage.completionTokens":v4.usage.outputTokens.total,"gen_ai.response.finish_reasons":[v4.finishReason.unified],"gen_ai.response.id":KY.id,"gen_ai.response.model":KY.modelId,"gen_ai.usage.input_tokens":v4.usage.inputTokens.total,"gen_ai.usage.output_tokens":v4.usage.outputTokens.total}})),{...v4,response:KY}}})});let o=await Promise.all(F1.content.filter((e)=>e.type==="tool-call").map((e)=>oq1({toolCall:e,tools:Y,repairToolCall:T,system:J,messages:U4}))),G0={};for(let e of o){if(e.invalid)continue;let X0=Y==null?void 0:Y[e.toolName];if(X0==null)continue;if((X0==null?void 0:X0.onInputAvailable)!=null)await X0.onInputAvailable({input:e.input,toolCallId:e.toolCallId,messages:U4,abortSignal:h,experimental_context:P});if(await rq1({tool:X0,toolCall:e,messages:U4,experimental_context:P}))G0[e.toolCallId]={type:"tool-approval-request",approvalId:j(),toolCall:e}}let B=o.filter((e)=>e.invalid&&e.dynamic);n1=[];for(let e of B)n1.push({type:"tool-error",toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,error:nB(e.error),dynamic:!0});if(k1=o.filter((e)=>!e.providerExecuted),Y!=null)n1.push(...await bV1({toolCalls:k1.filter((e)=>!e.invalid&&G0[e.toolCallId]==null),tools:Y,tracer:P0,telemetry:z,messages:U4,abortSignal:h,experimental_context:P}));for(let e of o){if(!e.providerExecuted)continue;let X0=Y==null?void 0:Y[e.toolName];if((X0==null?void 0:X0.type)==="provider"&&X0.supportsDeferredResults){if(!F1.content.some((C0)=>C0.type==="tool-result"&&C0.toolCallId===e.toolCallId))Q1.set(e.toolCallId,{toolName:e.toolName})}}for(let e of F1.content)if(e.type==="tool-result")Q1.delete(e.toolCallId);let E=Br6({content:F1.content,toolCalls:o,toolOutputs:n1,toolApprovalRequests:Object.values(G0),tools:Y});E0.push(...await NJ0({content:E,tools:Y}));let c=new tq1({content:E,finishReason:F1.finishReason.unified,rawFinishReason:F1.finishReason.raw,usage:dq1(F1.usage),warnings:F1.warnings,providerMetadata:F1.providerMetadata,request:(y0=F1.request)!=null?y0:{},response:{...F1.response,messages:structuredClone(E0)}});PJ0({warnings:(L0=F1.warnings)!=null?L0:[],provider:M1.provider,model:M1.modelId}),P1.push(c),await(R==null?void 0:R(c))}finally{if(K6!=null)clearTimeout(K6)}}while((k1.length>0&&n1.length===k1.length||Q1.size>0)&&!await eq1({stopConditions:f,steps:P1}));v0.setAttributes(await i7({telemetry:z,attributes:{"ai.response.finishReason":F1.finishReason.unified,"ai.response.text":{output:()=>_V1(F1.content)},"ai.response.toolCalls":{output:()=>{let K6=fV1(F1.content);return K6==null?void 0:JSON.stringify(K6)}},"ai.response.providerMetadata":JSON.stringify(F1.providerMetadata),"ai.usage.promptTokens":F1.usage.inputTokens.total,"ai.usage.completionTokens":F1.usage.outputTokens.total}}));let w0=P1[P1.length-1],A0=P1.reduce((K6,U4)=>{return pq1(K6,U4.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(v==null?void 0:v({finishReason:w0.finishReason,rawFinishReason:w0.rawFinishReason,usage:w0.usage,content:w0.content,text:w0.text,reasoningText:w0.reasoningText,reasoning:w0.reasoning,files:w0.files,sources:w0.sources,toolCalls:w0.toolCalls,staticToolCalls:w0.staticToolCalls,dynamicToolCalls:w0.dynamicToolCalls,toolResults:w0.toolResults,staticToolResults:w0.staticToolResults,dynamicToolResults:w0.dynamicToolResults,request:w0.request,response:w0.response,warnings:w0.warnings,providerMetadata:w0.providerMetadata,steps:P1,totalUsage:A0,experimental_context:P}));let a1;if(w0.finishReason==="stop")a1=await(q!=null?q:Hh()).parseCompleteOutput({text:w0.text},{response:w0.response,usage:w0.usage,finishReason:w0.finishReason});return new zr6({steps:P1,totalUsage:A0,output:a1})}})}catch(v0){throw hq1(v0)}}async function bV1({toolCalls:X,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z}){return(await Promise.all(X.map(async(K)=>TJ0({toolCall:K,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z})))).filter((K)=>K!=null)}function fV1(X){let Y=X.filter((Q)=>Q.type==="tool-call");if(Y.length===0)return;return Y.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function Br6({content:X,toolCalls:Y,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let W=[];for(let Z of X)switch(Z.type){case"text":case"reasoning":case"source":W.push(Z);break;case"file":{W.push({type:"file",file:new aq1(Z),...Z.providerMetadata!=null?{providerMetadata:Z.providerMetadata}:{}});break}case"tool-call":{W.push(Y.find(($)=>$.toolCallId===Z.toolCallId));break}case"tool-result":{let $=Y.find((K)=>K.toolCallId===Z.toolCallId);if($==null){let K=G==null?void 0:G[Z.toolName];if(!((K==null?void 0:K.type)==="provider"&&K.supportsDeferredResults))throw Error(`Tool call ${Z.toolCallId} not found.`);if(Z.isError)W.push({type:"tool-error",toolCallId:Z.toolCallId,toolName:Z.toolName,input:void 0,error:Z.result,providerExecuted:!0,dynamic:Z.dynamic});else W.push({type:"tool-result",toolCallId:Z.toolCallId,toolName:Z.toolName,input:void 0,output:Z.result,providerExecuted:!0,dynamic:Z.dynamic});break}if(Z.isError)W.push({type:"tool-error",toolCallId:Z.toolCallId,toolName:Z.toolName,input:$.input,error:Z.result,providerExecuted:!0,dynamic:$.dynamic});else W.push({type:"tool-result",toolCallId:Z.toolCallId,toolName:Z.toolName,input:$.input,output:Z.result,providerExecuted:!0,dynamic:$.dynamic});break}case"tool-approval-request":{let $=Y.find((K)=>K.toolCallId===Z.toolCallId);if($==null)throw new MJ0({toolCallId:Z.toolCallId,approvalId:Z.approvalId});W.push({type:"tool-approval-request",approvalId:Z.approvalId,toolCall:$});break}}return[...W,...Q,...J]}function Uh(X,Y){let Q=new Headers(X!=null?X:{});for(let[J,G]of Object.entries(Y))if(!Q.has(J))Q.set(J,G);return Q}function Dr6({status:X,statusText:Y,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:X!=null?X:200,statusText:Y,headers:Uh(Q,{"content-type":"text/plain; charset=utf-8"})})}function YU1({response:X,status:Y,statusText:Q,headers:J,stream:G}){let W=Y!=null?Y:200;if(Q!==void 0)X.writeHead(W,Q,J);else X.writeHead(W,J);let Z=G.getReader();(async()=>{try{while(!0){let{done:K,value:H}=await Z.read();if(K)break;if(!X.write(H))await new Promise((V)=>{X.once("drain",V)})}}catch(K){throw K}finally{X.end()}})()}function Nr6({response:X,status:Y,statusText:Q,headers:J,textStream:G}){YU1({response:X,status:Y,statusText:Q,headers:Object.fromEntries(Uh(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function Or6({status:X,statusText:Y,headers:Q,stream:J,consumeSseStream:G}){let W=J.pipeThrough(new QU1);if(G){let[Z,$]=W.tee();W=Z,G({stream:$})}return new Response(W.pipeThrough(new TextEncoderStream),{status:X,statusText:Y,headers:Uh(Q,JU1)})}function Lr6({originalMessages:X,responseMessageId:Y}){if(X==null)return;let Q=X[X.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof Y==="function"?Y():Y}function wr6(X){return X.type.startsWith("data-")}function VJ0(X){return X.type.startsWith("data-")}function qJ0(X){return X.type==="text"}function UJ0(X){return X.type==="file"}function hV1(X){return X.type==="reasoning"}function OJ0(X){return X.type.startsWith("tool-")}function GU1(X){return X.type==="dynamic-tool"}function GT(X){return OJ0(X)||GU1(X)}function LJ0(X){return X.type.split("-").slice(1).join("-")}function zJ0(X){return GU1(X)?X.toolName:LJ0(X)}function Mr6({lastMessage:X,messageId:Y}){return{message:(X==null?void 0:X.role)==="assistant"?X:{id:Y,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Pr6({stream:X,messageMetadataSchema:Y,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:W,onData:Z}){return X.pipeThrough(new TransformStream({async transform($,K){await J(async({state:H,write:F})=>{var V,q,z,D;function N(T){let P=H.message.parts.filter(GT).find((j)=>j.toolCallId===T);if(P==null)throw new sB({chunkType:"tool-invocation",chunkId:T,message:`No tool invocation found for tool call ID "${T}".`});return P}function L(T){var A;let P=H.message.parts.find((v)=>OJ0(v)&&v.toolCallId===T.toolCallId),j=T,R=P;if(P!=null){if(P.state=T.state,R.input=j.input,R.output=j.output,R.errorText=j.errorText,R.rawInput=j.rawInput,R.preliminary=j.preliminary,T.title!==void 0)R.title=T.title;if(R.providerExecuted=(A=j.providerExecuted)!=null?A:P.providerExecuted,j.providerMetadata!=null)P.callProviderMetadata=j.providerMetadata}else H.message.parts.push({type:`tool-${T.toolName}`,toolCallId:T.toolCallId,state:T.state,title:T.title,input:j.input,output:j.output,rawInput:j.rawInput,errorText:j.errorText,providerExecuted:j.providerExecuted,preliminary:j.preliminary,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}function w(T){var A,P;let j=H.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===T.toolCallId),R=T,v=j;if(j!=null){if(j.state=T.state,v.toolName=T.toolName,v.input=R.input,v.output=R.output,v.errorText=R.errorText,v.rawInput=(A=R.rawInput)!=null?A:v.rawInput,v.preliminary=R.preliminary,T.title!==void 0)v.title=T.title;if(v.providerExecuted=(P=R.providerExecuted)!=null?P:j.providerExecuted,R.providerMetadata!=null)j.callProviderMetadata=R.providerMetadata}else H.message.parts.push({type:"dynamic-tool",toolName:T.toolName,toolCallId:T.toolCallId,state:T.state,input:R.input,output:R.output,errorText:R.errorText,preliminary:R.preliminary,providerExecuted:R.providerExecuted,title:T.title,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}async function C(T){if(T!=null){let A=H.message.metadata!=null?Fh(H.message.metadata,T):T;if(Y!=null)await c7({value:A,schema:Y});H.message.metadata=A}}switch($.type){case"text-start":{let T={type:"text",text:"",providerMetadata:$.providerMetadata,state:"streaming"};H.activeTextParts[$.id]=T,H.message.parts.push(T),F();break}case"text-delta":{let T=H.activeTextParts[$.id];if(T==null)throw new sB({chunkType:"text-delta",chunkId:$.id,message:`Received text-delta for missing text part with ID "${$.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});T.text+=$.delta,T.providerMetadata=(V=$.providerMetadata)!=null?V:T.providerMetadata,F();break}case"text-end":{let T=H.activeTextParts[$.id];if(T==null)throw new sB({chunkType:"text-end",chunkId:$.id,message:`Received text-end for missing text part with ID "${$.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});T.state="done",T.providerMetadata=(q=$.providerMetadata)!=null?q:T.providerMetadata,delete H.activeTextParts[$.id],F();break}case"reasoning-start":{let T={type:"reasoning",text:"",providerMetadata:$.providerMetadata,state:"streaming"};H.activeReasoningParts[$.id]=T,H.message.parts.push(T),F();break}case"reasoning-delta":{let T=H.activeReasoningParts[$.id];if(T==null)throw new sB({chunkType:"reasoning-delta",chunkId:$.id,message:`Received reasoning-delta for missing reasoning part with ID "${$.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});T.text+=$.delta,T.providerMetadata=(z=$.providerMetadata)!=null?z:T.providerMetadata,F();break}case"reasoning-end":{let T=H.activeReasoningParts[$.id];if(T==null)throw new sB({chunkType:"reasoning-end",chunkId:$.id,message:`Received reasoning-end for missing reasoning part with ID "${$.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});T.providerMetadata=(D=$.providerMetadata)!=null?D:T.providerMetadata,T.state="done",delete H.activeReasoningParts[$.id],F();break}case"file":{H.message.parts.push({type:"file",mediaType:$.mediaType,url:$.url}),F();break}case"source-url":{H.message.parts.push({type:"source-url",sourceId:$.sourceId,url:$.url,title:$.title,providerMetadata:$.providerMetadata}),F();break}case"source-document":{H.message.parts.push({type:"source-document",sourceId:$.sourceId,mediaType:$.mediaType,title:$.title,filename:$.filename,providerMetadata:$.providerMetadata}),F();break}case"tool-input-start":{let T=H.message.parts.filter(OJ0);if(H.partialToolCalls[$.toolCallId]={text:"",toolName:$.toolName,index:T.length,dynamic:$.dynamic,title:$.title},$.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-streaming",input:void 0,providerExecuted:$.providerExecuted,title:$.title,providerMetadata:$.providerMetadata});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-streaming",input:void 0,providerExecuted:$.providerExecuted,title:$.title,providerMetadata:$.providerMetadata});F();break}case"tool-input-delta":{let T=H.partialToolCalls[$.toolCallId];if(T==null)throw new sB({chunkType:"tool-input-delta",chunkId:$.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${$.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});T.text+=$.inputTextDelta;let{value:A}=await HT(T.text);if(T.dynamic)w({toolCallId:$.toolCallId,toolName:T.toolName,state:"input-streaming",input:A,title:T.title});else L({toolCallId:$.toolCallId,toolName:T.toolName,state:"input-streaming",input:A,title:T.title});F();break}case"tool-input-available":{if($.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-available",input:$.input,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata,title:$.title});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-available",input:$.input,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata,title:$.title});if(F(),W&&!$.providerExecuted)await W({toolCall:$});break}case"tool-input-error":{if($.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"output-error",input:$.input,errorText:$.errorText,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"output-error",input:void 0,rawInput:$.input,errorText:$.errorText,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata});F();break}case"tool-approval-request":{let T=N($.toolCallId);T.state="approval-requested",T.approval={id:$.approvalId},F();break}case"tool-output-denied":{let T=N($.toolCallId);T.state="output-denied",F();break}case"tool-output-available":{let T=N($.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:$.toolCallId,toolName:T.toolName,state:"output-available",input:T.input,output:$.output,preliminary:$.preliminary,providerExecuted:$.providerExecuted,title:T.title});else L({toolCallId:$.toolCallId,toolName:LJ0(T),state:"output-available",input:T.input,output:$.output,providerExecuted:$.providerExecuted,preliminary:$.preliminary,title:T.title});F();break}case"tool-output-error":{let T=N($.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:$.toolCallId,toolName:T.toolName,state:"output-error",input:T.input,errorText:$.errorText,providerExecuted:$.providerExecuted,title:T.title});else L({toolCallId:$.toolCallId,toolName:LJ0(T),state:"output-error",input:T.input,rawInput:T.rawInput,errorText:$.errorText,providerExecuted:$.providerExecuted,title:T.title});F();break}case"start-step":{H.message.parts.push({type:"step-start"});break}case"finish-step":{H.activeTextParts={},H.activeReasoningParts={};break}case"start":{if($.messageId!=null)H.message.id=$.messageId;if(await C($.messageMetadata),$.messageId!=null||$.messageMetadata!=null)F();break}case"finish":{if($.finishReason!=null)H.finishReason=$.finishReason;if(await C($.messageMetadata),$.messageMetadata!=null)F();break}case"message-metadata":{if(await C($.messageMetadata),$.messageMetadata!=null)F();break}case"error":{G==null||G(Error($.errorText));break}default:if(wr6($)){if((Q==null?void 0:Q[$.type])!=null)await c7({value:$.data,schema:Q[$.type]});let T=$;if(T.transient){Z==null||Z(T);break}let A=T.id!=null?H.message.parts.find((P)=>T.type===P.type&&T.id===P.id):void 0;if(A!=null)A.data=T.data;else H.message.parts.push(T);Z==null||Z(T),F()}}K.enqueue($)})}}))}function Ar6({messageId:X,originalMessages:Y=[],onFinish:Q,onError:J,stream:G}){let W=Y==null?void 0:Y[Y.length-1];if((W==null?void 0:W.role)!=="assistant")W=void 0;else X=W.id;let Z=!1,$=G.pipeThrough(new TransformStream({transform(q,z){if(q.type==="start"){let D=q;if(D.messageId==null&&X!=null)D.messageId=X}if(q.type==="abort")Z=!0;z.enqueue(q)}}));if(Q==null)return $;let K=Mr6({lastMessage:W?structuredClone(W):void 0,messageId:X!=null?X:""}),H=async(q)=>{await q({state:K,write:()=>{}})},F=!1,V=async()=>{if(F||!Q)return;F=!0;let q=K.message.id===(W==null?void 0:W.id);await Q({isAborted:Z,isContinuation:q,responseMessage:K.message,messages:[...q?Y.slice(0,-1):Y,K.message],finishReason:K.finishReason})};return Pr6({stream:$,runUpdateMessageJob:H,onError:J}).pipeThrough(new TransformStream({transform(q,z){z.enqueue(q)},async cancel(){await V()},async flush(){await V()}}))}function Tr6({response:X,status:Y,statusText:Q,headers:J,stream:G,consumeSseStream:W}){let Z=G.pipeThrough(new QU1);if(W){let[$,K]=Z.tee();Z=$,W({stream:K})}YU1({response:X,status:Y,statusText:Q,headers:Object.fromEntries(Uh(J,JU1).entries()),stream:Z.pipeThrough(new TextEncoderStream)})}function JT(X){let Y=X.pipeThrough(new TransformStream);return Y[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(W){var Z;if(J)return;J=!0;try{if(W)await((Z=Q.cancel)==null?void 0:Z.call(Q))}finally{try{Q.releaseLock()}catch($){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:W,value:Z}=await Q.read();if(W)return await G(!0),{done:!0,value:void 0};return{done:!1,value:Z}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(W){throw await G(!0),W}}},Y}async function EJ0({stream:X,onError:Y}){let Q=X.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){Y==null||Y(J)}finally{Q.releaseLock()}}function xV1(){let X,Y;return{promise:new Promise((J,G)=>{X=J,Y=G}),resolve:X,reject:Y}}function Er6(){let X=[],Y=null,Q=!1,J=xV1(),G=()=>{Q=!0,J.resolve(),X.forEach((Z)=>Z.cancel()),X=[],Y==null||Y.close()},W=async()=>{if(Q&&X.length===0){Y==null||Y.close();return}if(X.length===0)return J=xV1(),await J.promise,W();try{let{value:Z,done:$}=await X[0].read();if($)if(X.shift(),X.length===0&&Q)Y==null||Y.close();else await W();else Y==null||Y.enqueue(Z)}catch(Z){Y==null||Y.error(Z),X.shift(),G()}};return{stream:new ReadableStream({start(Z){Y=Z},pull:W,async cancel(){for(let Z of X)await Z.cancel();X=[],Q=!0}}),addStream:(Z)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");X.push(Z.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),X.length===0)Y==null||Y.close()},terminate:G}}function jr6(){var X,Y;return(Y=(X=globalThis==null?void 0:globalThis.performance)==null?void 0:X.now())!=null?Y:Date.now()}function Cr6({tools:X,generatorStream:Y,tracer:Q,telemetry:J,system:G,messages:W,abortSignal:Z,repairToolCall:$,experimental_context:K,generateId:H}){let F=null,V=new ReadableStream({start(T){F=T}}),q=new Set,z=new Map,D=new Map,N=!1,L=void 0;function w(){if(N&&q.size===0){if(L!=null)F.enqueue(L);F.close()}}let C=new TransformStream({async transform(T,A){let P=T.type;switch(P){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":{A.enqueue(T);break}case"file":{A.enqueue({type:"file",file:new Zr6({data:T.data,mediaType:T.mediaType})});break}case"finish":{L={type:"finish",finishReason:T.finishReason.unified,rawFinishReason:T.finishReason.raw,usage:dq1(T.usage),providerMetadata:T.providerMetadata};break}case"tool-approval-request":{let j=D.get(T.toolCallId);if(j==null){F.enqueue({type:"error",error:new MJ0({toolCallId:T.toolCallId,approvalId:T.approvalId})});break}A.enqueue({type:"tool-approval-request",approvalId:T.approvalId,toolCall:j});break}case"tool-call":{try{let j=await oq1({toolCall:T,tools:X,repairToolCall:$,system:G,messages:W});if(D.set(j.toolCallId,j),A.enqueue(j),j.invalid){F.enqueue({type:"tool-error",toolCallId:j.toolCallId,toolName:j.toolName,input:j.input,error:nB(j.error),dynamic:!0,title:j.title});break}let R=X==null?void 0:X[j.toolName];if(R==null)break;if(R.onInputAvailable!=null)await R.onInputAvailable({input:j.input,toolCallId:j.toolCallId,messages:W,abortSignal:Z,experimental_context:K});if(await rq1({tool:R,toolCall:j,messages:W,experimental_context:K})){F.enqueue({type:"tool-approval-request",approvalId:H(),toolCall:j});break}if(z.set(j.toolCallId,j.input),R.execute!=null&&j.providerExecuted!==!0){let v=H();q.add(v),TJ0({toolCall:j,tools:X,tracer:Q,telemetry:J,messages:W,abortSignal:Z,experimental_context:K,onPreliminaryToolResult:(y)=>{F.enqueue(y)}}).then((y)=>{F.enqueue(y)}).catch((y)=>{F.enqueue({type:"error",error:y})}).finally(()=>{q.delete(v),w()})}}catch(j){F.enqueue({type:"error",error:j})}break}case"tool-result":{let j=T.toolName;if(T.isError)F.enqueue({type:"tool-error",toolCallId:T.toolCallId,toolName:j,input:z.get(T.toolCallId),providerExecuted:!0,error:T.result,dynamic:T.dynamic});else A.enqueue({type:"tool-result",toolCallId:T.toolCallId,toolName:j,input:z.get(T.toolCallId),output:T.result,providerExecuted:!0,dynamic:T.dynamic});break}default:throw Error(`Unhandled chunk type: ${P}`)}},flush(){N=!0,w()}});return new ReadableStream({async start(T){return Promise.all([Y.pipeThrough(C).pipeTo(new WritableStream({write(A){T.enqueue(A)},close(){}})),V.pipeTo(new WritableStream({write(A){T.enqueue(A)},close(){T.close()}}))])}})}function zh({model:X,tools:Y,toolChoice:Q,system:J,prompt:G,messages:W,maxRetries:Z,abortSignal:$,timeout:K,headers:H,stopWhen:F=Vh(1),experimental_output:V,output:q=V,experimental_telemetry:z,prepareStep:D,providerOptions:N,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:C,experimental_transform:T,experimental_download:A,includeRawChunks:P=!1,onChunk:j,onError:R=({error:h})=>{console.error(h)},onFinish:v,onAbort:y,onStepFinish:b,experimental_context:f,_internal:{now:r=jr6,generateId:g=Ir6}={},...k}){let h=AJ0(K),t=Cq1(K),l=va6(K),J0=t!=null?new AbortController:void 0,V0=l!=null?new AbortController:void 0;return new Sr6({model:Kh(X),telemetry:z,headers:H,settings:k,maxRetries:Z,abortSignal:XU1($,h!=null?AbortSignal.timeout(h):void 0,J0==null?void 0:J0.signal,V0==null?void 0:V0.signal),stepTimeoutMs:t,stepAbortController:J0,chunkTimeoutMs:l,chunkAbortController:V0,system:J,prompt:G,messages:W,tools:Y,toolChoice:Q,transforms:WT(T),activeTools:w,repairToolCall:C,stopConditions:WT(F),output:q,providerOptions:N,prepareStep:D,includeRawChunks:P,onChunk:j,onError:R,onFinish:v,onAbort:y,onStepFinish:b,now:r,generateId:g,experimental_context:f,download:A})}function Rr6(X){let Y=void 0,Q="",J="",G=void 0,W="";function Z({controller:$,partialOutput:K=void 0}){$.enqueue({part:{type:"text-delta",id:Y,text:J,providerMetadata:G},partialOutput:K}),J=""}return new TransformStream({async transform($,K){var H;if($.type==="finish-step"&&J.length>0)Z({controller:K});if($.type!=="text-delta"&&$.type!=="text-start"&&$.type!=="text-end"){K.enqueue({part:$,partialOutput:void 0});return}if(Y==null)Y=$.id;else if($.id!==Y){K.enqueue({part:$,partialOutput:void 0});return}if($.type==="text-start"){K.enqueue({part:$,partialOutput:void 0});return}if($.type==="text-end"){if(J.length>0)Z({controller:K});K.enqueue({part:$,partialOutput:void 0});return}Q+=$.text,J+=$.text,G=(H=$.providerMetadata)!=null?H:G;let F=await X.parsePartialOutput({text:Q});if(F!==void 0){let V=JSON.stringify(F.partial);if(V!==W)Z({controller:K,partialOutput:F.partial}),W=V}}})}async function WU1(X,Y){let Q=[];if(Y==null?void 0:Y.ignoreIncompleteToolCalls)X=X.map((J)=>({...J,parts:J.parts.filter((G)=>!GT(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of X)switch(J.role){case"system":{let G=J.parts.filter((Z)=>Z.type==="text"),W=G.reduce((Z,$)=>{if($.providerMetadata!=null)return{...Z,...$.providerMetadata};return Z},{});Q.push({role:"system",content:G.map((Z)=>Z.text).join(""),...Object.keys(W).length>0?{providerOptions:W}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var W;if(qJ0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(UJ0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(VJ0(G))return(W=Y==null?void 0:Y.convertDataPart)==null?void 0:W.call(Y,G)}).filter(YF1)});break}case"assistant":{if(J.parts!=null){let G=[];async function W(){var Z,$,K,H,F,V;if(G.length===0)return;let q=[];for(let D of G)if(qJ0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(UJ0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(hV1(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(GT(D)){let N=zJ0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:N,input:D.state==="output-error"?(Z=D.input)!=null?Z:("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:N,output:await HV({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:($=Y==null?void 0:Y.tools)==null?void 0:$[N],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(VJ0(D)){let N=(K=Y==null?void 0:Y.convertDataPart)==null?void 0:K.call(Y,D);if(N!=null)q.push(N)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let z=G.filter((D)=>{var N;return GT(D)&&(D.providerExecuted!==!0||((N=D.approval)==null?void 0:N.approved)!=null)});if(z.length>0){let D=[];for(let N of z){if(((H=N.approval)==null?void 0:H.approved)!=null)D.push({type:"tool-approval-response",approvalId:N.approval.id,approved:N.approval.approved,reason:N.approval.reason,providerExecuted:N.providerExecuted});if(N.providerExecuted===!0)continue;switch(N.state){case"output-denied":{D.push({type:"tool-result",toolCallId:N.toolCallId,toolName:zJ0(N),output:{type:"error-text",value:(F=N.approval.reason)!=null?F:"Tool execution denied."},...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=zJ0(N);D.push({type:"tool-result",toolCallId:N.toolCallId,toolName:L,output:await HV({toolCallId:N.toolCallId,input:N.input,output:N.state==="output-error"?N.errorText:N.output,tool:(V=Y==null?void 0:Y.tools)==null?void 0:V[L],errorMode:N.state==="output-error"?"text":"none"}),...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let Z of J.parts)if(qJ0(Z)||hV1(Z)||UJ0(Z)||GT(Z)||VJ0(Z))G.push(Z);else if(Z.type==="step-start")await W();await W();break}break}default:{let G=J.role;throw new Ta6({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function vr6({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J}){try{if(X==null)return{success:!1,error:new qG({parameter:"messages",value:X,message:"messages parameter must be provided"})};let G=await c7({value:X,schema:kr6});if(Y)for(let W of G)await c7({value:W.metadata,schema:Y});if(Q)for(let W of G){let Z=W.parts.filter(($)=>$.type.startsWith("data-"));for(let $ of Z){let K=$.type.slice(5),H=Q[K];if(!H)return{success:!1,error:new EQ({value:$.data,cause:`No data schema found for data part ${K}`})};await c7({value:$.data,schema:H})}}if(J)for(let W of G){let Z=W.parts.filter(($)=>$.type.startsWith("tool-"));for(let $ of Z){let K=$.type.slice(5),H=J[K];if(!H)return{success:!1,error:new EQ({value:$.input,cause:`No tool schema found for tool part ${K}`})};if($.state==="input-available"||$.state==="output-available"||$.state==="output-error"&&$.input!==void 0)await c7({value:$.input,schema:H.inputSchema});if($.state==="output-available"&&H.outputSchema)await c7({value:$.output,schema:H.outputSchema})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function ZU1({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J}){let G=await vr6({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function $U1({messages:X,reasoning:Y="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(Y==="all"||Y==="before-last-message")X=X.map((G,W)=>{if(G.role!=="assistant"||typeof G.content==="string"||Y==="before-last-message"&&W===X.length-1)return G;return{...G,content:G.content.filter((Z)=>Z.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 W=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),Z=new Set,$=new Set;if(W!=null){for(let K of X.slice(-W))if((K.role==="assistant"||K.role==="tool")&&typeof K.content!=="string"){for(let H of K.content)if(H.type==="tool-call"||H.type==="tool-result")Z.add(H.toolCallId);else if(H.type==="tool-approval-request"||H.type==="tool-approval-response")$.add(H.approvalId)}}X=X.map((K,H)=>{if(K.role!=="assistant"&&K.role!=="tool"||typeof K.content==="string"||W&&H>=X.length-W)return K;let F={},V={};return{...K,content:K.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")F[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")V[q.approvalId]=F[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&Z.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&$.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")X=X.filter((G)=>G.content.length>0);return X}var gq1,tB,ai6,ri6=(X,Y)=>{for(var Q in Y)ai6(X,Q,{get:Y[Q],enumerable:!0})},gV1="AI_InvalidArgumentError",uV1,oi6,mV1,qG,si6="AI_InvalidStreamPartError",ti6,ei6,Xa6,lV1="AI_InvalidToolApprovalError",dV1,Ya6,pV1,Qa6,cV1="AI_InvalidToolInputError",nV1,Ja6,iV1,wJ0,aV1="AI_ToolCallNotFoundForApprovalError",rV1,Ga6,oV1,MJ0,sV1="AI_MissingToolResultsError",tV1,Wa6,eV1,IV1,Za6="AI_NoImageGeneratedError",$a6,Ka6,Ha6,Xq1="AI_NoObjectGeneratedError",Yq1,Fa6,Qq1,nK,Jq1="AI_NoOutputGeneratedError",Gq1,Va6,Wq1,Zq1,$q1="AI_NoSuchToolError",Kq1,qa6,Hq1,BJ0,Fq1="AI_ToolCallRepairError",Vq1,Ua6,qq1,za6,Ba6,Uq1="AI_UIMessageStreamError",zq1,Da6,Bq1,sB,Na6="AI_InvalidDataContentError",Oa6,La6,wa6,Dq1="AI_InvalidMessageRoleError",Nq1,Ma6,Oq1,Pa6,Lq1="AI_MessageConversionError",wq1,Aa6,Mq1,Ta6,Pq1="AI_RetryError",Aq1,Ea6,Tq1,RV1,Ca6="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",SV1=!1,PJ0=(X)=>{if(X.warnings.length===0)return;let Y=globalThis.AI_SDK_LOG_WARNINGS;if(Y===!1)return;if(typeof Y==="function"){Y(X);return}if(!SV1)SV1=!0,console.info(Ca6);for(let Q of X.warnings)console.warn(ja6({warning:Q,provider:X.provider,model:X.model}))},_a6,ya6=(X)=>{let Y=typeof X==="string"?cB(X):X,Q=(Y[6]&127)<<21|(Y[7]&127)<<14|(Y[8]&127)<<7|Y[9]&127;return Y.slice(Q+10)},Iq1="6.0.49",ha6=async({url:X})=>{var Y;let Q=X.toString();try{let J=await fetch(Q,{headers:IZ({},`ai-sdk/${Iq1}`,Xh())});if(!J.ok)throw new ef({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(Y=J.headers.get("content-type"))!=null?Y:void 0}}catch(J){if(ef.isInstance(J))throw J;throw new ef({url:Q,cause:J})}},xa6=(X=ha6)=>(Y)=>Promise.all(Y.map(async(Q)=>Q.isUrlSupportedByModel?null:X(Q))),Rq1,ZT,p1,_q1,ca6,yq1,na6,ia6,aa6,bq1,ra6,oa6,sa6,ta6,ea6,Xr6,Yr6,Qr6,$h,Jr6,Wr6=({maxRetries:X=2,initialDelayInMs:Y=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>cq1(G,{maxRetries:X,delayInMs:Y,backoffFactor:Q,abortSignal:J}),aq1=class{constructor({data:X,mediaType:Y}){let Q=X instanceof Uint8Array;this.base64Data=Q?void 0:X,this.uint8ArrayData=Q?X:void 0,this.mediaType=Y}get base64(){if(this.base64Data==null)this.base64Data=WV(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=cB(this.base64Data);return this.uint8ArrayData}},Zr6,$r6,Hh=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:X}){return X},async parsePartialOutput({text:X}){return{partial:X}},createElementStreamTransform(){return}}),Hr6=({schema:X,name:Y,description:Q})=>{let J=p7(X);return{name:"object",responseFormat:fY(J.jsonSchema).then((G)=>({type:"json",schema:G,...Y!=null&&{name:Y},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},W){let Z=await jQ({text:G});if(!Z.success)throw new nK({message:"No object generated: could not parse the response.",cause:Z.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});let $=await d9({value:Z.value,schema:J});if(!$.success)throw new nK({message:"No object generated: response did not match schema.",cause:$.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});return $.value},async parsePartialOutput({text:G}){let W=await HT(G);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:W.value}}},createElementStreamTransform(){return}}},Fr6=({element:X,name:Y,description:Q})=>{let J=p7(X);return{name:"array",responseFormat:fY(J.jsonSchema).then((G)=>{let{$schema:W,...Z}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:Z}},required:["elements"],additionalProperties:!1},...Y!=null&&{name:Y},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},W){let Z=await jQ({text:G});if(!Z.success)throw new nK({message:"No object generated: could not parse the response.",cause:Z.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});let $=Z.value;if($==null||typeof $!=="object"||!("elements"in $)||!Array.isArray($.elements))throw new nK({message:"No object generated: response did not match schema.",cause:new EQ({value:$,cause:"response must be an object with an elements array"}),text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});for(let K of $.elements){let H=await d9({value:K,schema:J});if(!H.success)throw new nK({message:"No object generated: response did not match schema.",cause:H.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason})}return $.elements},async parsePartialOutput({text:G}){let W=await HT(G);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))return;let $=W.state==="repaired-parse"&&Z.elements.length>0?Z.elements.slice(0,-1):Z.elements,K=[];for(let H of $){let F=await d9({value:H,schema:J});if(F.success)K.push(F.value)}return{partial:K}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:W},Z){if(W!=null)for(;G<W.length;G++)Z.enqueue(W[G])}})}}},Vr6=({options:X,name:Y,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:X}},required:["result"],additionalProperties:!1},...Y!=null&&{name:Y},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let W=await jQ({text:J});if(!W.success)throw new nK({message:"No object generated: could not parse the response.",cause:W.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("result"in Z)||typeof Z.result!=="string"||!X.includes(Z.result))throw new nK({message:"No object generated: response did not match schema.",cause:new EQ({value:Z,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return Z.result},async parsePartialOutput({text:J}){let G=await HT(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=G.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string")return;let Z=X.filter(($)=>$.startsWith(W.result));if(G.state==="successful-parse")return Z.includes(W.result)?{partial:W.result}:void 0;else return Z.length===1?{partial:Z[0]}:void 0}}},createElementStreamTransform(){return}}},qr6=({name:X,description:Y}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...X!=null&&{name:X},...Y!=null&&{description:Y}}),async parseCompleteOutput({text:Q},J){let G=await jQ({text:Q});if(!G.success)throw new nK({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await HT(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},tq1=class{constructor({content:X,finishReason:Y,rawFinishReason:Q,usage:J,warnings:G,request:W,response:Z,providerMetadata:$}){this.content=X,this.finishReason=Y,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=W,this.response=Z,this.providerMetadata=$}get text(){return this.content.filter((X)=>X.type==="text").map((X)=>X.text).join("")}get reasoning(){return this.content.filter((X)=>X.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((X)=>X.text).join("")}get files(){return this.content.filter((X)=>X.type==="file").map((X)=>X.file)}get sources(){return this.content.filter((X)=>X.type==="source")}get toolCalls(){return this.content.filter((X)=>X.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((X)=>X.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((X)=>X.dynamic===!0)}get toolResults(){return this.content.filter((X)=>X.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((X)=>X.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((X)=>X.dynamic===!0)}},Ur6,zr6=class{constructor(X){this.steps=X.steps,this._output=X.output,this.totalUsage=X.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new Zq1;return this._output}},QU1,JU1,tY8,Ir6,Sr6=class{constructor({model:X,telemetry:Y,headers:Q,settings:J,maxRetries:G,abortSignal:W,stepTimeoutMs:Z,stepAbortController:$,chunkTimeoutMs:K,chunkAbortController:H,system:F,prompt:V,messages:q,tools:z,toolChoice:D,transforms:N,activeTools:L,repairToolCall:w,stopConditions:C,output:T,providerOptions:A,prepareStep:P,includeRawChunks:j,now:R,generateId:v,onChunk:y,onError:b,onFinish:f,onAbort:r,onStepFinish:g,experimental_context:k,download:h}){this._totalUsage=new GV,this._finishReason=new GV,this._rawFinishReason=new GV,this._steps=new GV,this.outputSpecification=T,this.includeRawChunks=j,this.tools=z;let t,l=[],J0=[],V0=void 0,Y0=void 0,U0=void 0,P0={},v0=[],W1=[],N0=new Map,W0,I0={},f1={},x1=new TransformStream({async transform(F1,k1){var n1,P1,Q1,w0;k1.enqueue(F1);let{part:A0}=F1;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 b({error:hq1(A0.error)});if(A0.type==="text-start")I0[A0.id]={type:"text",text:"",providerMetadata:A0.providerMetadata},l.push(I0[A0.id]);if(A0.type==="text-delta"){let a1=I0[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`text part ${A0.id} not found`},partialOutput:void 0});return}a1.text+=A0.text,a1.providerMetadata=(n1=A0.providerMetadata)!=null?n1:a1.providerMetadata}if(A0.type==="text-end"){let a1=I0[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`text part ${A0.id} not found`},partialOutput:void 0});return}a1.providerMetadata=(P1=A0.providerMetadata)!=null?P1:a1.providerMetadata,delete I0[A0.id]}if(A0.type==="reasoning-start")f1[A0.id]={type:"reasoning",text:"",providerMetadata:A0.providerMetadata},l.push(f1[A0.id]);if(A0.type==="reasoning-delta"){let a1=f1[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`reasoning part ${A0.id} not found`},partialOutput:void 0});return}a1.text+=A0.text,a1.providerMetadata=(Q1=A0.providerMetadata)!=null?Q1:a1.providerMetadata}if(A0.type==="reasoning-end"){let a1=f1[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`reasoning part ${A0.id} not found`},partialOutput:void 0});return}a1.providerMetadata=(w0=A0.providerMetadata)!=null?w0:a1.providerMetadata,delete f1[A0.id]}if(A0.type==="file")l.push({type:"file",file:A0.file});if(A0.type==="source")l.push(A0);if(A0.type==="tool-call")l.push(A0);if(A0.type==="tool-result"&&!A0.preliminary)l.push(A0);if(A0.type==="tool-approval-request")l.push(A0);if(A0.type==="tool-error")l.push(A0);if(A0.type==="start-step")l=[],f1={},I0={},P0=A0.request,v0=A0.warnings;if(A0.type==="finish-step"){let a1=await NJ0({content:l,tools:z}),K6=new tq1({content:l,finishReason:A0.finishReason,rawFinishReason:A0.rawFinishReason,usage:A0.usage,warnings:v0,request:P0,response:{...A0.response,messages:[...J0,...a1]},providerMetadata:A0.providerMetadata});await(g==null?void 0:g(K6)),PJ0({warnings:v0,provider:X.provider,model:X.modelId}),W1.push(K6),J0.push(...a1),t.resolve()}if(A0.type==="finish")U0=A0.totalUsage,V0=A0.finishReason,Y0=A0.rawFinishReason},async flush(F1){try{if(W1.length===0){let Q1=(W==null?void 0:W.aborted)?W.reason:new Zq1({message:"No output generated. Check the stream for errors."});S0._finishReason.reject(Q1),S0._rawFinishReason.reject(Q1),S0._totalUsage.reject(Q1),S0._steps.reject(Q1);return}let k1=V0!=null?V0:"other",n1=U0!=null?U0:FJ0();S0._finishReason.resolve(k1),S0._rawFinishReason.resolve(Y0),S0._totalUsage.resolve(n1),S0._steps.resolve(W1);let P1=W1[W1.length-1];await(f==null?void 0:f({finishReason:P1.finishReason,rawFinishReason:P1.rawFinishReason,totalUsage:n1,usage:P1.usage,content:P1.content,text:P1.text,reasoningText:P1.reasoningText,reasoning:P1.reasoning,files:P1.files,sources:P1.sources,toolCalls:P1.toolCalls,staticToolCalls:P1.staticToolCalls,dynamicToolCalls:P1.dynamicToolCalls,toolResults:P1.toolResults,staticToolResults:P1.staticToolResults,dynamicToolResults:P1.dynamicToolResults,request:P1.request,response:P1.response,warnings:P1.warnings,providerMetadata:P1.providerMetadata,steps:W1,experimental_context:k})),W0.setAttributes(await i7({telemetry:Y,attributes:{"ai.response.finishReason":k1,"ai.response.text":{output:()=>P1.text},"ai.response.toolCalls":{output:()=>{var Q1;return((Q1=P1.toolCalls)==null?void 0:Q1.length)?JSON.stringify(P1.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(P1.providerMetadata),"ai.usage.inputTokens":n1.inputTokens,"ai.usage.outputTokens":n1.outputTokens,"ai.usage.totalTokens":n1.totalTokens,"ai.usage.reasoningTokens":n1.reasoningTokens,"ai.usage.cachedInputTokens":n1.cachedInputTokens}}))}catch(k1){F1.error(k1)}finally{W0.end()}}}),y0=Er6();this.addStream=y0.addStream,this.closeStream=y0.close;let L0=y0.stream.getReader(),$0=new ReadableStream({async start(F1){F1.enqueue({type:"start"})},async pull(F1){function k1(){r==null||r({steps:W1}),F1.enqueue({type:"abort",...(W==null?void 0:W.reason)!==void 0?{reason:$G(W.reason)}:{}}),F1.close()}try{let{done:n1,value:P1}=await L0.read();if(n1){F1.close();return}if(W==null?void 0:W.aborted){k1();return}F1.enqueue(P1)}catch(n1){if(CZ(n1)&&(W==null?void 0:W.aborted))k1();else F1.error(n1)}},cancel(F1){return y0.stream.cancel(F1)}});for(let F1 of N)$0=$0.pipeThrough(F1({tools:z,stopStream(){y0.terminate()}}));this.baseStream=$0.pipeThrough(Rr6(T!=null?T:Hh())).pipeThrough(x1);let{maxRetries:E0,retry:H0}=nq1({maxRetries:G,abortSignal:W}),D0=uq1(Y),o0=DJ0(J),k0=xq1({model:X,telemetry:Y,headers:Q,settings:{...o0,maxRetries:E0}}),S0=this;KT({name:"ai.streamText",attributes:i7({telemetry:Y,attributes:{...$T({operationId:"ai.streamText",telemetry:Y}),...k0,"ai.prompt":{input:()=>JSON.stringify({system:F,prompt:V,messages:q})}}}),tracer:D0,endWhenDone:!1,fn:async(F1)=>{W0=F1;let k1=await fq1({system:F,prompt:V,messages:q}),n1=k1.messages,P1=[],{approvedToolApprovals:Q1,deniedToolApprovals:w0}=iq1({messages:n1});if(w0.length>0||Q1.length>0){let a1=[...Q1,...w0].filter((O)=>O.toolCall.providerExecuted),K6=Q1.filter((O)=>!O.toolCall.providerExecuted),U4=w0.filter((O)=>!O.toolCall.providerExecuted),G1=w0.filter((O)=>O.toolCall.providerExecuted),M1,CQ=new ReadableStream({start(O){M1=O}});S0.addStream(CQ);try{for(let _ of[...U4,...G1])M1==null||M1.enqueue({type:"tool-output-denied",toolCallId:_.toolCall.toolCallId,toolName:_.toolCall.toolName});let O=[];if(await Promise.all(K6.map(async(_)=>{let o=await TJ0({toolCall:_.toolCall,tools:z,tracer:D0,telemetry:Y,messages:n1,abortSignal:W,experimental_context:k,onPreliminaryToolResult:(G0)=>{M1==null||M1.enqueue(G0)}});if(o!=null)M1==null||M1.enqueue(o),O.push(o)})),a1.length>0)P1.push({role:"tool",content:a1.map((_)=>({type:"tool-approval-response",approvalId:_.approvalResponse.approvalId,approved:_.approvalResponse.approved,reason:_.approvalResponse.reason,providerExecuted:!0}))});if(O.length>0||U4.length>0){let _=[];for(let o of O)_.push({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:await HV({toolCallId:o.toolCallId,input:o.input,tool:z==null?void 0:z[o.toolName],output:o.type==="tool-result"?o.output:o.error,errorMode:o.type==="tool-error"?"json":"none"})});for(let o of U4)_.push({type:"tool-result",toolCallId:o.toolCall.toolCallId,toolName:o.toolCall.toolName,output:{type:"execution-denied",reason:o.approvalResponse.reason}});P1.push({role:"tool",content:_})}}finally{M1==null||M1.close()}}J0.push(...P1);async function A0({currentStep:a1,responseMessages:K6,usage:U4}){var G1,M1,CQ,O,_,o;let G0=S0.includeRawChunks,B=Z!=null?setTimeout(()=>$.abort(),Z):void 0,E=void 0;function c(){if(K!=null){if(E!=null)clearTimeout(E);E=setTimeout(()=>H.abort(),K)}}function e(){if(E!=null)clearTimeout(E),E=void 0}function X0(){if(B!=null)clearTimeout(B)}t=new GV;let n=[...n1,...K6],C0=await(P==null?void 0:P({model:X,steps:W1,stepNumber:W1.length,messages:n,experimental_context:k})),A1=Kh((G1=C0==null?void 0:C0.model)!=null?G1:X),i1=await kq1({prompt:{system:(M1=C0==null?void 0:C0.system)!=null?M1:k1.system,messages:(CQ=C0==null?void 0:C0.messages)!=null?CQ:n},supportedUrls:await A1.supportedUrls,download:h}),{toolChoice:f0,tools:y1}=await vq1({tools:z,toolChoice:(O=C0==null?void 0:C0.toolChoice)!=null?O:D,activeTools:(_=C0==null?void 0:C0.activeTools)!=null?_:L});k=(o=C0==null?void 0:C0.experimental_context)!=null?o:k;let y8=Fh(A,C0==null?void 0:C0.providerOptions),{result:{stream:kX,response:y6,request:v4},doStreamSpan:KY,startTimestampMs:UG}=await H0(()=>KT({name:"ai.streamText.doStream",attributes:i7({telemetry:Y,attributes:{...$T({operationId:"ai.streamText.doStream",telemetry:Y}),...k0,"ai.model.provider":A1.provider,"ai.model.id":A1.modelId,"ai.prompt.messages":{input:()=>lq1(i1)},"ai.prompt.tools":{input:()=>y1==null?void 0:y1.map((r1)=>JSON.stringify(r1))},"ai.prompt.toolChoice":{input:()=>f0!=null?JSON.stringify(f0):void 0},"gen_ai.system":A1.provider,"gen_ai.request.model":A1.modelId,"gen_ai.request.frequency_penalty":o0.frequencyPenalty,"gen_ai.request.max_tokens":o0.maxOutputTokens,"gen_ai.request.presence_penalty":o0.presencePenalty,"gen_ai.request.stop_sequences":o0.stopSequences,"gen_ai.request.temperature":o0.temperature,"gen_ai.request.top_k":o0.topK,"gen_ai.request.top_p":o0.topP}}),tracer:D0,endWhenDone:!1,fn:async(r1)=>({startTimestampMs:R(),doStreamSpan:r1,result:await A1.doStream({...o0,tools:y1,toolChoice:f0,responseFormat:await(T==null?void 0:T.responseFormat),prompt:i1,providerOptions:y8,abortSignal:W,headers:Q,includeRawChunks:G0})})})),Y1=Cr6({tools:z,generatorStream:kX,tracer:D0,telemetry:Y,system:F,messages:n,repairToolCall:w,abortSignal:W,experimental_context:k,generateId:v}),E6=v4!=null?v4:{},b8=[],hY=[],X1,j6={},p8="other",HJ=void 0,IQ=FJ0(),Mh,xJ0=!0,zG={id:v(),timestamp:new Date,modelId:X.modelId},gJ0="";S0.addStream(Y1.pipeThrough(new TransformStream({async transform(r1,HY){var JD,GD,VT,vX,FV;if(c(),r1.type==="stream-start"){X1=r1.warnings;return}if(xJ0){let OX=R()-UG;xJ0=!1,KY.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":OX}),KY.setAttributes({"ai.response.msToFirstChunk":OX}),HY.enqueue({type:"start-step",request:E6,warnings:X1!=null?X1:[]})}let Ph=r1.type;switch(Ph){case"tool-approval-request":case"text-start":case"text-end":{HY.enqueue(r1);break}case"text-delta":{if(r1.delta.length>0)HY.enqueue({type:"text-delta",id:r1.id,text:r1.delta,providerMetadata:r1.providerMetadata}),gJ0+=r1.delta;break}case"reasoning-start":case"reasoning-end":{HY.enqueue(r1);break}case"reasoning-delta":{HY.enqueue({type:"reasoning-delta",id:r1.id,text:r1.delta,providerMetadata:r1.providerMetadata});break}case"tool-call":{HY.enqueue(r1),b8.push(r1);break}case"tool-result":{if(HY.enqueue(r1),!r1.preliminary)hY.push(r1);break}case"tool-error":{HY.enqueue(r1),hY.push(r1);break}case"response-metadata":{zG={id:(JD=r1.id)!=null?JD:zG.id,timestamp:(GD=r1.timestamp)!=null?GD:zG.timestamp,modelId:(VT=r1.modelId)!=null?VT:zG.modelId};break}case"finish":{IQ=r1.usage,p8=r1.finishReason,HJ=r1.rawFinishReason,Mh=r1.providerMetadata;let OX=R()-UG;KY.addEvent("ai.stream.finish"),KY.setAttributes({"ai.response.msToFinish":OX,"ai.response.avgOutputTokensPerSecond":1000*((vX=IQ.outputTokens)!=null?vX:0)/OX});break}case"file":{HY.enqueue(r1);break}case"source":{HY.enqueue(r1);break}case"tool-input-start":{j6[r1.id]=r1.toolName;let OX=z==null?void 0:z[r1.toolName];if((OX==null?void 0:OX.onInputStart)!=null)await OX.onInputStart({toolCallId:r1.id,messages:n,abortSignal:W,experimental_context:k});HY.enqueue({...r1,dynamic:(FV=r1.dynamic)!=null?FV:(OX==null?void 0:OX.type)==="dynamic",title:OX==null?void 0:OX.title});break}case"tool-input-end":{delete j6[r1.id],HY.enqueue(r1);break}case"tool-input-delta":{let OX=j6[r1.id],Ah=z==null?void 0:z[OX];if((Ah==null?void 0:Ah.onInputDelta)!=null)await Ah.onInputDelta({inputTextDelta:r1.delta,toolCallId:r1.id,messages:n,abortSignal:W,experimental_context:k});HY.enqueue(r1);break}case"error":{HY.enqueue(r1),p8="error";break}case"raw":{if(G0)HY.enqueue(r1);break}default:throw Error(`Unknown chunk type: ${Ph}`)}},async flush(r1){let HY=b8.length>0?JSON.stringify(b8):void 0;try{KY.setAttributes(await i7({telemetry:Y,attributes:{"ai.response.finishReason":p8,"ai.response.text":{output:()=>gJ0},"ai.response.toolCalls":{output:()=>HY},"ai.response.id":zG.id,"ai.response.model":zG.modelId,"ai.response.timestamp":zG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Mh),"ai.usage.inputTokens":IQ.inputTokens,"ai.usage.outputTokens":IQ.outputTokens,"ai.usage.totalTokens":IQ.totalTokens,"ai.usage.reasoningTokens":IQ.reasoningTokens,"ai.usage.cachedInputTokens":IQ.cachedInputTokens,"gen_ai.response.finish_reasons":[p8],"gen_ai.response.id":zG.id,"gen_ai.response.model":zG.modelId,"gen_ai.usage.input_tokens":IQ.inputTokens,"gen_ai.usage.output_tokens":IQ.outputTokens}}))}catch(vX){}finally{KY.end()}r1.enqueue({type:"finish-step",finishReason:p8,rawFinishReason:HJ,usage:IQ,providerMetadata:Mh,response:{...zG,headers:y6==null?void 0:y6.headers}});let JD=pq1(U4,IQ);await t.promise;let GD=b8.filter((vX)=>vX.providerExecuted!==!0),VT=hY.filter((vX)=>vX.providerExecuted!==!0);for(let vX of b8){if(vX.providerExecuted!==!0)continue;let FV=z==null?void 0:z[vX.toolName];if((FV==null?void 0:FV.type)==="provider"&&FV.supportsDeferredResults){if(!hY.some((OX)=>OX.type==="tool-result"&&OX.toolCallId===vX.toolCallId))N0.set(vX.toolCallId,{toolName:vX.toolName})}}for(let vX of hY)if(vX.type==="tool-result")N0.delete(vX.toolCallId);if(X0(),e(),(GD.length>0&&VT.length===GD.length||N0.size>0)&&!await eq1({stopConditions:C,steps:W1})){K6.push(...await NJ0({content:W1[W1.length-1].content,tools:z}));try{await A0({currentStep:a1+1,responseMessages:K6,usage:JD})}catch(vX){r1.enqueue({type:"error",error:vX}),S0.closeStream()}}else r1.enqueue({type:"finish",finishReason:p8,rawFinishReason:HJ,totalUsage:JD}),S0.closeStream()}})))}await A0({currentStep:0,responseMessages:P1,usage:FJ0()})}}).catch((F1)=>{S0.addStream(new ReadableStream({start(k1){k1.enqueue({type:"error",error:F1}),k1.close()}})),S0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((X)=>X[X.length-1])}get content(){return this.finalStep.then((X)=>X.content)}get warnings(){return this.finalStep.then((X)=>X.warnings)}get providerMetadata(){return this.finalStep.then((X)=>X.providerMetadata)}get text(){return this.finalStep.then((X)=>X.text)}get reasoningText(){return this.finalStep.then((X)=>X.reasoningText)}get reasoning(){return this.finalStep.then((X)=>X.reasoning)}get sources(){return this.finalStep.then((X)=>X.sources)}get files(){return this.finalStep.then((X)=>X.files)}get toolCalls(){return this.finalStep.then((X)=>X.toolCalls)}get staticToolCalls(){return this.finalStep.then((X)=>X.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((X)=>X.dynamicToolCalls)}get toolResults(){return this.finalStep.then((X)=>X.toolResults)}get staticToolResults(){return this.finalStep.then((X)=>X.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((X)=>X.dynamicToolResults)}get usage(){return this.finalStep.then((X)=>X.usage)}get request(){return this.finalStep.then((X)=>X.request)}get response(){return this.finalStep.then((X)=>X.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[X,Y]=this.baseStream.tee();return this.baseStream=Y,X}get textStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({part:X},Y){if(X.type==="text-delta")Y.enqueue(X.text)}})))}get fullStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({part:X},Y){Y.enqueue(X)}})))}async consumeStream(X){var Y;try{await EJ0({stream:this.fullStream,onError:X==null?void 0:X.onError})}catch(Q){(Y=X==null?void 0:X.onError)==null||Y.call(X,Q)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:X},Y){if(X!=null)Y.enqueue(X)}})))}get elementStream(){var X,Y,Q;let J=(X=this.outputSpecification)==null?void 0:X.createElementStreamTransform();if(J==null)throw new l31({functionality:`element streams in ${(Q=(Y=this.outputSpecification)==null?void 0:Y.name)!=null?Q:"text"} mode`});return JT(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((X)=>{var Y;return((Y=this.outputSpecification)!=null?Y:Hh()).parseCompleteOutput({text:X.text},{response:X.response,usage:X.usage,finishReason:X.finishReason})})}toUIMessageStream({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G=!0,sendSources:W=!1,sendStart:Z=!0,sendFinish:$=!0,onError:K=$G}={}){let H=Y!=null?Lr6({originalMessages:X,responseMessageId:Y}):void 0,F=(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}),N=q.type;switch(N){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(W&&q.sourceType==="url")z.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(W&&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=F(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=F(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:K(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=F(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=F(q);z.enqueue({type:"tool-output-error",toolCallId:q.toolCallId,errorText:K(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:K(q.error)});break}case"start-step":{z.enqueue({type:"start-step"});break}case"finish-step":{z.enqueue({type:"finish-step"});break}case"start":{if(Z)z.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...H!=null?{messageId:H}:{}});break}case"finish":{if($)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: ${N}`)}if(D!=null&&N!=="start"&&N!=="finish")z.enqueue({type:"message-metadata",messageMetadata:D})}}));return JT(Ar6({stream:V,messageId:H!=null?H:Y==null?void 0:Y(),originalMessages:X,onFinish:Q,onError:K}))}pipeUIMessageStreamToResponse(X,{originalMessages:Y,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:W,sendSources:Z,sendFinish:$,sendStart:K,onError:H,...F}={}){Tr6({response:X,stream:this.toUIMessageStream({originalMessages:Y,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:W,sendSources:Z,sendFinish:$,sendStart:K,onError:H}),...F})}pipeTextStreamToResponse(X,Y){Nr6({response:X,textStream:this.textStream,...Y})}toUIMessageStreamResponse({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:W,sendFinish:Z,sendStart:$,onError:K,...H}={}){return Or6({stream:this.toUIMessageStream({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:W,sendFinish:Z,sendStart:$,onError:K}),...H})}toTextStreamResponse(X){return Dr6({textStream:this.textStream,...X})}},kr6,W98,$98,_r6="AI_NoSuchProviderError",yr6,br6,fr6;var eB=S(()=>{Y4();Y4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();HJ0();Y4();Y4();Y4();Y4();q4();Y4();r6();q4();Y4();q4();Y4();r6();r6();r6();r6();r6();HJ0();q4();q4();Y4();Y4();Y4();q4();Y4();Y4();Y4();q4();Y4();Y4();r6();Y4();Y4();Y4();q4();Y4();r6();Y4();Y4();gq1=w6(H1(),1),tB=w6(H1(),1),ai6=Object.defineProperty,uV1=`vercel.ai.error.${gV1}`,oi6=Symbol.for(uV1),qG=class extends O1{constructor({parameter:X,value:Y,message:Q}){super({name:gV1,message:`Invalid argument for parameter ${X}: ${Q}`});this[mV1]=!0,this.parameter=X,this.value=Y}static isInstance(X){return O1.hasMarker(X,uV1)}};mV1=oi6;ti6=`vercel.ai.error.${si6}`,ei6=Symbol.for(ti6);Xa6=ei6;dV1=`vercel.ai.error.${lV1}`,Ya6=Symbol.for(dV1),Qa6=class extends O1{constructor({approvalId:X}){super({name:lV1,message:`Tool approval response references unknown approvalId: "${X}". No matching tool-approval-request found in message history.`});this[pV1]=!0,this.approvalId=X}static isInstance(X){return O1.hasMarker(X,dV1)}};pV1=Ya6;nV1=`vercel.ai.error.${cV1}`,Ja6=Symbol.for(nV1),wJ0=class extends O1{constructor({toolInput:X,toolName:Y,cause:Q,message:J=`Invalid input for tool ${Y}: ${$G(Q)}`}){super({name:cV1,message:J,cause:Q});this[iV1]=!0,this.toolInput=X,this.toolName=Y}static isInstance(X){return O1.hasMarker(X,nV1)}};iV1=Ja6;rV1=`vercel.ai.error.${aV1}`,Ga6=Symbol.for(rV1),MJ0=class extends O1{constructor({toolCallId:X,approvalId:Y}){super({name:aV1,message:`Tool call "${X}" not found for approval request "${Y}".`});this[oV1]=!0,this.toolCallId=X,this.approvalId=Y}static isInstance(X){return O1.hasMarker(X,rV1)}};oV1=Ga6;tV1=`vercel.ai.error.${sV1}`,Wa6=Symbol.for(tV1),IV1=class extends O1{constructor({toolCallIds:X}){super({name:sV1,message:`Tool result${X.length>1?"s are":" is"} missing for tool call${X.length>1?"s":""} ${X.join(", ")}.`});this[eV1]=!0,this.toolCallIds=X}static isInstance(X){return O1.hasMarker(X,tV1)}};eV1=Wa6;$a6=`vercel.ai.error.${Za6}`,Ka6=Symbol.for($a6);Ha6=Ka6;Yq1=`vercel.ai.error.${Xq1}`,Fa6=Symbol.for(Yq1),nK=class extends O1{constructor({message:X="No object generated.",cause:Y,text:Q,response:J,usage:G,finishReason:W}){super({name:Xq1,message:X,cause:Y});this[Qq1]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=W}static isInstance(X){return O1.hasMarker(X,Yq1)}};Qq1=Fa6;Gq1=`vercel.ai.error.${Jq1}`,Va6=Symbol.for(Gq1),Zq1=class extends O1{constructor({message:X="No output generated.",cause:Y}={}){super({name:Jq1,message:X,cause:Y});this[Wq1]=!0}static isInstance(X){return O1.hasMarker(X,Gq1)}};Wq1=Va6;Kq1=`vercel.ai.error.${$q1}`,qa6=Symbol.for(Kq1),BJ0=class extends O1{constructor({toolName:X,availableTools:Y=void 0,message:Q=`Model tried to call unavailable tool '${X}'. ${Y===void 0?"No tools are available.":`Available tools: ${Y.join(", ")}.`}`}){super({name:$q1,message:Q});this[Hq1]=!0,this.toolName=X,this.availableTools=Y}static isInstance(X){return O1.hasMarker(X,Kq1)}};Hq1=qa6;Vq1=`vercel.ai.error.${Fq1}`,Ua6=Symbol.for(Vq1),za6=class extends O1{constructor({cause:X,originalError:Y,message:Q=`Error repairing tool call: ${$G(X)}`}){super({name:Fq1,message:Q,cause:X});this[qq1]=!0,this.originalError=Y}static isInstance(X){return O1.hasMarker(X,Vq1)}};qq1=Ua6;Ba6=class extends O1{constructor(X){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${X.version} for provider "${X.provider}" and model "${X.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=X.version,this.provider=X.provider,this.modelId=X.modelId}},zq1=`vercel.ai.error.${Uq1}`,Da6=Symbol.for(zq1),sB=class extends O1{constructor({chunkType:X,chunkId:Y,message:Q}){super({name:Uq1,message:Q});this[Bq1]=!0,this.chunkType=X,this.chunkId=Y}static isInstance(X){return O1.hasMarker(X,zq1)}};Bq1=Da6;Oa6=`vercel.ai.error.${Na6}`,La6=Symbol.for(Oa6);wa6=La6;Nq1=`vercel.ai.error.${Dq1}`,Ma6=Symbol.for(Nq1),Pa6=class extends O1{constructor({role:X,message:Y=`Invalid message role: '${X}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:Dq1,message:Y});this[Oq1]=!0,this.role=X}static isInstance(X){return O1.hasMarker(X,Nq1)}};Oq1=Ma6;wq1=`vercel.ai.error.${Lq1}`,Aa6=Symbol.for(wq1),Ta6=class extends O1{constructor({originalMessage:X,message:Y}){super({name:Lq1,message:Y});this[Mq1]=!0,this.originalMessage=X}static isInstance(X){return O1.hasMarker(X,wq1)}};Mq1=Aa6;Aq1=`vercel.ai.error.${Pq1}`,Ea6=Symbol.for(Aq1),RV1=class extends O1{constructor({message:X,reason:Y,errors:Q}){super({name:Pq1,message:X});this[Tq1]=!0,this.reason=Y,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(X){return O1.hasMarker(X,Aq1)}};Tq1=Ea6;_a6=[{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]}];Rq1=U.union([U.string(),U.instanceof(Uint8Array),U.instanceof(ArrayBuffer),U.custom((X)=>{var Y,Q;return(Q=(Y=globalThis.Buffer)==null?void 0:Y.isBuffer(X))!=null?Q:!1},{message:"Must be a Buffer"})]);ZT=U.lazy(()=>U.union([U.null(),U.string(),U.number(),U.boolean(),U.record(U.string(),ZT.optional()),U.array(ZT)])),p1=U.record(U.string(),U.record(U.string(),ZT.optional())),_q1=U.object({type:U.literal("text"),text:U.string(),providerOptions:p1.optional()}),ca6=U.object({type:U.literal("image"),image:U.union([Rq1,U.instanceof(URL)]),mediaType:U.string().optional(),providerOptions:p1.optional()}),yq1=U.object({type:U.literal("file"),data:U.union([Rq1,U.instanceof(URL)]),filename:U.string().optional(),mediaType:U.string(),providerOptions:p1.optional()}),na6=U.object({type:U.literal("reasoning"),text:U.string(),providerOptions:p1.optional()}),ia6=U.object({type:U.literal("tool-call"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerOptions:p1.optional(),providerExecuted:U.boolean().optional()}),aa6=U.discriminatedUnion("type",[U.object({type:U.literal("text"),value:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("json"),value:ZT,providerOptions:p1.optional()}),U.object({type:U.literal("execution-denied"),reason:U.string().optional(),providerOptions:p1.optional()}),U.object({type:U.literal("error-text"),value:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("error-json"),value:ZT,providerOptions:p1.optional()}),U.object({type:U.literal("content"),value:U.array(U.union([U.object({type:U.literal("text"),text:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("media"),data:U.string(),mediaType:U.string()}),U.object({type:U.literal("file-data"),data:U.string(),mediaType:U.string(),filename:U.string().optional(),providerOptions:p1.optional()}),U.object({type:U.literal("file-url"),url:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("file-id"),fileId:U.union([U.string(),U.record(U.string(),U.string())]),providerOptions:p1.optional()}),U.object({type:U.literal("image-data"),data:U.string(),mediaType:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("image-url"),url:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("image-file-id"),fileId:U.union([U.string(),U.record(U.string(),U.string())]),providerOptions:p1.optional()}),U.object({type:U.literal("custom"),providerOptions:p1.optional()})]))})]),bq1=U.object({type:U.literal("tool-result"),toolCallId:U.string(),toolName:U.string(),output:aa6,providerOptions:p1.optional()}),ra6=U.object({type:U.literal("tool-approval-request"),approvalId:U.string(),toolCallId:U.string()}),oa6=U.object({type:U.literal("tool-approval-response"),approvalId:U.string(),approved:U.boolean(),reason:U.string().optional()}),sa6=U.object({role:U.literal("system"),content:U.string(),providerOptions:p1.optional()}),ta6=U.object({role:U.literal("user"),content:U.union([U.string(),U.array(U.union([_q1,ca6,yq1]))]),providerOptions:p1.optional()}),ea6=U.object({role:U.literal("assistant"),content:U.union([U.string(),U.array(U.union([_q1,yq1,na6,ia6,bq1,ra6]))]),providerOptions:p1.optional()}),Xr6=U.object({role:U.literal("tool"),content:U.array(U.union([bq1,oa6])),providerOptions:p1.optional()}),Yr6=U.union([sa6,ta6,ea6,Xr6]);Qr6={startSpan(){return $h},startActiveSpan(X,Y,Q,J){if(typeof Y==="function")return Y($h);if(typeof Q==="function")return Q($h);if(typeof J==="function")return J($h)}},$h={spanContext(){return Jr6},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Jr6={traceId:"",spanId:"",traceFlags:0};Zr6=class extends aq1{constructor(X){super(X);this.type="file"}};$r6={};ri6($r6,{array:()=>Fr6,choice:()=>Vr6,json:()=>qr6,object:()=>Hr6,text:()=>Hh});Ur6=d7({prefix:"aitxt",size:24});QU1=class extends TransformStream{constructor(){super({transform(X,Y){Y.enqueue(`data: ${JSON.stringify(X)}
1218
+ `),{name:"GatewayAuthenticationError"})}function $T({operationId:X,telemetry:Y}){return{"operation.name":`${X}${(Y==null?void 0:Y.functionId)!=null?` ${Y.functionId}`:""}`,"resource.name":Y==null?void 0:Y.functionId,"ai.operationId":X,"ai.telemetry.functionId":Y==null?void 0:Y.functionId}}function xq1({model:X,settings:Y,telemetry:Q,headers:J}){var G;return{"ai.model.provider":X.provider,"ai.model.id":X.modelId,...Object.entries(Y).reduce((W,[Z,$])=>{if(Z==="timeout"){let K=AJ0($);if(K!=null)W[`ai.settings.${Z}`]=K}else W[`ai.settings.${Z}`]=$;return W},{}),...Object.entries((G=Q==null?void 0:Q.metadata)!=null?G:{}).reduce((W,[Z,$])=>{return W[`ai.telemetry.metadata.${Z}`]=$,W},{}),...Object.entries(J!=null?J:{}).reduce((W,[Z,$])=>{if($!==void 0)W[`ai.request.headers.${Z}`]=$;return W},{})}}function uq1({isEnabled:X=!1,tracer:Y}={}){if(!X)return Qr6;if(Y)return Y;return gq1.trace.getTracer("ai")}async function KT({name:X,tracer:Y,attributes:Q,fn:J,endWhenDone:G=!0}){return Y.startActiveSpan(X,{attributes:await Q},async(W)=>{let Z=tB.context.active();try{let $=await tB.context.with(Z,()=>J(W));if(G)W.end();return $}catch($){try{mq1(W,$)}finally{W.end()}throw $}})}function mq1(X,Y){if(Y instanceof Error)X.recordException({name:Y.name,message:Y.message,stack:Y.stack}),X.setStatus({code:tB.SpanStatusCode.ERROR,message:Y.message});else X.setStatus({code:tB.SpanStatusCode.ERROR})}async function i7({telemetry:X,attributes:Y}){if((X==null?void 0:X.isEnabled)!==!0)return{};let Q={};for(let[J,G]of Object.entries(Y)){if(G==null)continue;if(typeof G==="object"&&"input"in G&&typeof G.input==="function"){if((X==null?void 0:X.recordInputs)===!1)continue;let W=await G.input();if(W!=null)Q[J]=W;continue}if(typeof G==="object"&&"output"in G&&typeof G.output==="function"){if((X==null?void 0:X.recordOutputs)===!1)continue;let W=await G.output();if(W!=null)Q[J]=W;continue}Q[J]=G}return Q}function lq1(X){return JSON.stringify(X.map((Y)=>({...Y,content:typeof Y.content==="string"?Y.content:Y.content.map((Q)=>Q.type==="file"?{...Q,data:Q.data instanceof Uint8Array?ua6(Q.data):Q.data}:Q)})))}function dq1(X){return{inputTokens:X.inputTokens.total,inputTokenDetails:{noCacheTokens:X.inputTokens.noCache,cacheReadTokens:X.inputTokens.cacheRead,cacheWriteTokens:X.inputTokens.cacheWrite},outputTokens:X.outputTokens.total,outputTokenDetails:{textTokens:X.outputTokens.text,reasoningTokens:X.outputTokens.reasoning},totalTokens:VG(X.inputTokens.total,X.outputTokens.total),raw:X.raw,reasoningTokens:X.outputTokens.reasoning,cachedInputTokens:X.inputTokens.cacheRead}}function FJ0(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function pq1(X,Y){var Q,J,G,W,Z,$,K,H,F,V;return{inputTokens:VG(X.inputTokens,Y.inputTokens),inputTokenDetails:{noCacheTokens:VG((Q=X.inputTokenDetails)==null?void 0:Q.noCacheTokens,(J=Y.inputTokenDetails)==null?void 0:J.noCacheTokens),cacheReadTokens:VG((G=X.inputTokenDetails)==null?void 0:G.cacheReadTokens,(W=Y.inputTokenDetails)==null?void 0:W.cacheReadTokens),cacheWriteTokens:VG((Z=X.inputTokenDetails)==null?void 0:Z.cacheWriteTokens,($=Y.inputTokenDetails)==null?void 0:$.cacheWriteTokens)},outputTokens:VG(X.outputTokens,Y.outputTokens),outputTokenDetails:{textTokens:VG((K=X.outputTokenDetails)==null?void 0:K.textTokens,(H=Y.outputTokenDetails)==null?void 0:H.textTokens),reasoningTokens:VG((F=X.outputTokenDetails)==null?void 0:F.reasoningTokens,(V=Y.outputTokenDetails)==null?void 0:V.reasoningTokens)},totalTokens:VG(X.totalTokens,Y.totalTokens),reasoningTokens:VG(X.reasoningTokens,Y.reasoningTokens),cachedInputTokens:VG(X.cachedInputTokens,Y.cachedInputTokens)}}function VG(X,Y){return X==null&&Y==null?void 0:(X!=null?X:0)+(Y!=null?Y:0)}function Fh(X,Y){if(X===void 0&&Y===void 0)return;if(X===void 0)return Y;if(Y===void 0)return X;let Q={...X};for(let J in Y)if(Object.prototype.hasOwnProperty.call(Y,J)){let G=Y[J];if(G===void 0)continue;let W=J in X?X[J]:void 0,Z=G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Date)&&!(G instanceof RegExp),$=W!==null&&W!==void 0&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp);if(Z&&$)Q[J]=Fh(W,G);else Q[J]=G}return Q}function Gr6({error:X,exponentialBackoffDelay:Y}){let Q=X.responseHeaders;if(!Q)return Y;let J,G=Q["retry-after-ms"];if(G){let Z=parseFloat(G);if(!Number.isNaN(Z))J=Z}let W=Q["retry-after"];if(W&&J===void 0){let Z=parseFloat(W);if(!Number.isNaN(Z))J=Z*1000;else J=Date.parse(W)-Date.now()}if(J!=null&&!Number.isNaN(J)&&0<=J&&(J<60000||J<Y))return J;return Y}async function cq1(X,{maxRetries:Y,delayInMs:Q,backoffFactor:J,abortSignal:G},W=[]){try{return await X()}catch(Z){if(CZ(Z))throw Z;if(Y===0)throw Z;let $=nB(Z),K=[...W,Z],H=K.length;if(H>Y)throw new RV1({message:`Failed after ${H} attempts. Last error: ${$}`,reason:"maxRetriesExceeded",errors:K});if(Z instanceof Error&&$X.isInstance(Z)&&Z.isRetryable===!0&&H<=Y)return await o31(Gr6({error:Z,exponentialBackoffDelay:Q}),{abortSignal:G}),cq1(X,{maxRetries:Y,delayInMs:J*Q,backoffFactor:J,abortSignal:G},K);if(H===1)throw Z;throw new RV1({message:`Failed after ${H} attempts with non-retryable error: '${$}'`,reason:"errorNotRetryable",errors:K})}}function nq1({maxRetries:X,abortSignal:Y}){if(X!=null){if(!Number.isInteger(X))throw new qG({parameter:"maxRetries",value:X,message:"maxRetries must be an integer"});if(X<0)throw new qG({parameter:"maxRetries",value:X,message:"maxRetries must be >= 0"})}let Q=X!=null?X:2;return{maxRetries:Q,retry:Wr6({maxRetries:Q,abortSignal:Y})}}function iq1({messages:X}){let Y=X.at(-1);if((Y==null?void 0:Y.role)!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let Q={};for(let K of X)if(K.role==="assistant"&&typeof K.content!=="string"){let H=K.content;for(let F of H)if(F.type==="tool-call")Q[F.toolCallId]=F}let J={};for(let K of X)if(K.role==="assistant"&&typeof K.content!=="string"){let H=K.content;for(let F of H)if(F.type==="tool-approval-request")J[F.approvalId]=F}let G={};for(let K of Y.content)if(K.type==="tool-result")G[K.toolCallId]=K;let W=[],Z=[],$=Y.content.filter((K)=>K.type==="tool-approval-response");for(let K of $){let H=J[K.approvalId];if(H==null)throw new Qa6({approvalId:K.approvalId});if(G[H.toolCallId]!=null)continue;let F=Q[H.toolCallId];if(F==null)throw new MJ0({toolCallId:H.toolCallId,approvalId:H.approvalId});let V={approvalRequest:H,approvalResponse:K,toolCall:F};if(K.approved)W.push(V);else Z.push(V)}return{approvedToolApprovals:W,deniedToolApprovals:Z}}async function TJ0({toolCall:X,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z,onPreliminaryToolResult:$}){let{toolName:K,toolCallId:H,input:F}=X,V=Y==null?void 0:Y[K];if((V==null?void 0:V.execute)==null)return;return KT({name:"ai.toolCall",attributes:i7({telemetry:J,attributes:{...$T({operationId:"ai.toolCall",telemetry:J}),"ai.toolCall.name":K,"ai.toolCall.id":H,"ai.toolCall.args":{output:()=>JSON.stringify(F)}}}),tracer:Q,fn:async(q)=>{let z;try{let D=qF1({execute:V.execute.bind(V),input:F,options:{toolCallId:H,messages:G,abortSignal:W,experimental_context:Z}});for await(let N of D)if(N.type==="preliminary")$==null||$({...X,type:"tool-result",output:N.output,preliminary:!0});else z=N.output}catch(D){return mq1(q,D),{type:"tool-error",toolCallId:H,toolName:K,input:F,error:D,dynamic:V.type==="dynamic",...X.providerMetadata!=null?{providerMetadata:X.providerMetadata}:{}}}try{q.setAttributes(await i7({telemetry:J,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(z)}}}))}catch(D){}return{type:"tool-result",toolCallId:H,toolName:K,input:F,output:z,dynamic:V.type==="dynamic",...X.providerMetadata!=null?{providerMetadata:X.providerMetadata}:{}}}})}function _V1(X){let Y=X.filter((Q)=>Q.type==="text");if(Y.length===0)return;return Y.map((Q)=>Q.text).join("")}async function rq1({tool:X,toolCall:Y,messages:Q,experimental_context:J}){if(X.needsApproval==null)return!1;if(typeof X.needsApproval==="boolean")return X.needsApproval;return await X.needsApproval(Y.input,{toolCallId:Y.toolCallId,messages:Q,experimental_context:J})}function Kr6(X){let Y=["ROOT"],Q=-1,J=null;function G(K,H,F){switch(K){case'"':{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_STRING");break}case"f":case"t":case"n":{Q=H,J=H,Y.pop(),Y.push(F),Y.push("INSIDE_LITERAL");break}case"-":{Y.pop(),Y.push(F),Y.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_NUMBER");break}case"{":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_OBJECT_START");break}case"[":{Q=H,Y.pop(),Y.push(F),Y.push("INSIDE_ARRAY_START");break}}}function W(K,H){switch(K){case",":{Y.pop(),Y.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{Q=H,Y.pop();break}}}function Z(K,H){switch(K){case",":{Y.pop(),Y.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=H,Y.pop();break}}}for(let K=0;K<X.length;K++){let H=X[K];switch(Y[Y.length-1]){case"ROOT":G(H,K,"FINISH");break;case"INSIDE_OBJECT_START":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_KEY");break}case"}":{Q=K,Y.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(H){case'"':{Y.pop(),Y.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(H){case":":{Y.pop(),Y.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{G(H,K,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{W(H,K);break}case"INSIDE_STRING":{switch(H){case'"':{Y.pop(),Q=K;break}case"\\":{Y.push("INSIDE_STRING_ESCAPE");break}default:Q=K}break}case"INSIDE_ARRAY_START":{switch(H){case"]":{Q=K,Y.pop();break}default:{Q=K,G(H,K,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(H){case",":{Y.pop(),Y.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{Q=K,Y.pop();break}default:{Q=K;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{G(H,K,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{Y.pop(),Q=K;break}case"INSIDE_NUMBER":{switch(H){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{Q=K;break}case"e":case"E":case"-":case".":break;case",":{if(Y.pop(),Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K);if(Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);break}case"}":{if(Y.pop(),Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);break}case"]":{if(Y.pop(),Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K);break}default:{Y.pop();break}}break}case"INSIDE_LITERAL":{let V=X.substring(J,K+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(Y.pop(),Y[Y.length-1]==="INSIDE_OBJECT_AFTER_VALUE")W(H,K);else if(Y[Y.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(H,K)}else Q=K;break}}}let $=X.slice(0,Q+1);for(let K=Y.length-1;K>=0;K--)switch(Y[K]){case"INSIDE_STRING":{$+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{$+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{$+="]";break}case"INSIDE_LITERAL":{let F=X.substring(J,X.length);if("true".startsWith(F))$+="true".slice(F.length);else if("false".startsWith(F))$+="false".slice(F.length);else if("null".startsWith(F))$+="null".slice(F.length)}}return $}async function HT(X){if(X===void 0)return{value:void 0,state:"undefined-input"};let Y=await jQ({text:X});if(Y.success)return{value:Y.value,state:"successful-parse"};if(Y=await jQ({text:Kr6(X)}),Y.success)return{value:Y.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}async function oq1({toolCall:X,tools:Y,repairToolCall:Q,system:J,messages:G}){var W;try{if(Y==null){if(X.providerExecuted&&X.dynamic)return await sq1(X);throw new BJ0({toolName:X.toolName})}try{return await yV1({toolCall:X,tools:Y})}catch(Z){if(Q==null||!(BJ0.isInstance(Z)||wJ0.isInstance(Z)))throw Z;let $=null;try{$=await Q({toolCall:X,tools:Y,inputSchema:async({toolName:K})=>{let{inputSchema:H}=Y[K];return await p7(H).jsonSchema},system:J,messages:G,error:Z})}catch(K){throw new za6({cause:K,originalError:Z})}if($==null)throw Z;return await yV1({toolCall:$,tools:Y})}}catch(Z){let $=await jQ({text:X.input}),K=$.success?$.value:X.input;return{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:K,dynamic:!0,invalid:!0,error:Z,title:(W=Y==null?void 0:Y[X.toolName])==null?void 0:W.title,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata}}}async function sq1(X){let Y=X.input.trim()===""?{success:!0,value:{}}:await jQ({text:X.input});if(Y.success===!1)throw new wJ0({toolName:X.toolName,toolInput:X.input,cause:Y.error});return{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:Y.value,providerExecuted:!0,dynamic:!0,providerMetadata:X.providerMetadata}}async function yV1({toolCall:X,tools:Y}){let Q=X.toolName,J=Y[Q];if(J==null){if(X.providerExecuted&&X.dynamic)return await sq1(X);throw new BJ0({toolName:X.toolName,availableTools:Object.keys(Y)})}let G=p7(J.inputSchema),W=X.input.trim()===""?await d9({value:{},schema:G}):await jQ({text:X.input,schema:G});if(W.success===!1)throw new wJ0({toolName:Q,toolInput:X.input,cause:W.error});return J.type==="dynamic"?{type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,input:W.value,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata,dynamic:!0,title:J.title}:{type:"tool-call",toolCallId:X.toolCallId,toolName:Q,input:W.value,providerExecuted:X.providerExecuted,providerMetadata:X.providerMetadata,title:J.title}}function Vh(X){return({steps:Y})=>Y.length===X}async function eq1({stopConditions:X,steps:Y}){return(await Promise.all(X.map((Q)=>Q({steps:Y})))).some((Q)=>Q)}async function NJ0({content:X,tools:Y}){let Q=[],J=[];for(let W of X){if(W.type==="source")continue;if((W.type==="tool-result"||W.type==="tool-error")&&!W.providerExecuted)continue;if(W.type==="text"&&W.text.length===0)continue;switch(W.type){case"text":J.push({type:"text",text:W.text,providerOptions:W.providerMetadata});break;case"reasoning":J.push({type:"reasoning",text:W.text,providerOptions:W.providerMetadata});break;case"file":J.push({type:"file",data:W.file.base64,mediaType:W.file.mediaType,providerOptions:W.providerMetadata});break;case"tool-call":J.push({type:"tool-call",toolCallId:W.toolCallId,toolName:W.toolName,input:W.input,providerExecuted:W.providerExecuted,providerOptions:W.providerMetadata});break;case"tool-result":{let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.output,errorMode:"none"});J.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,providerOptions:W.providerMetadata});break}case"tool-error":{let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.error,errorMode:"json"});J.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,providerOptions:W.providerMetadata});break}case"tool-approval-request":J.push({type:"tool-approval-request",approvalId:W.approvalId,toolCallId:W.toolCall.toolCallId});break}}if(J.length>0)Q.push({role:"assistant",content:J});let G=[];for(let W of X){if(!(W.type==="tool-result"||W.type==="tool-error")||W.providerExecuted)continue;let Z=await HV({toolCallId:W.toolCallId,input:W.input,tool:Y==null?void 0:Y[W.toolName],output:W.type==="tool-result"?W.output:W.error,errorMode:W.type==="tool-error"?"text":"none"});G.push({type:"tool-result",toolCallId:W.toolCallId,toolName:W.toolName,output:Z,...W.providerMetadata!=null?{providerOptions:W.providerMetadata}:{}})}if(G.length>0)Q.push({role:"tool",content:G});return Q}function XU1(...X){let Y=X.filter((J)=>J!=null);if(Y.length===0)return;if(Y.length===1)return Y[0];let Q=new AbortController;for(let J of Y){if(J.aborted)return Q.abort(J.reason),Q.signal;J.addEventListener("abort",()=>{Q.abort(J.reason)},{once:!0})}return Q.signal}async function qh({model:X,tools:Y,toolChoice:Q,system:J,prompt:G,messages:W,maxRetries:Z,abortSignal:$,timeout:K,headers:H,stopWhen:F=Vh(1),experimental_output:V,output:q=V,experimental_telemetry:z,providerOptions:D,experimental_activeTools:N,activeTools:L=N,experimental_prepareStep:w,prepareStep:C=w,experimental_repairToolCall:T,experimental_download:A,experimental_context:P,_internal:{generateId:j=Ur6}={},onStepFinish:R,onFinish:v,...y}){let b=Kh(X),f=WT(F),r=AJ0(K),g=Cq1(K),k=g!=null?new AbortController:void 0,h=XU1($,r!=null?AbortSignal.timeout(r):void 0,k==null?void 0:k.signal),{maxRetries:t,retry:l}=nq1({maxRetries:Z,abortSignal:h}),J0=DJ0(y),V0=IZ(H!=null?H:{},`ai/${Iq1}`),Y0=xq1({model:b,telemetry:z,headers:V0,settings:{...J0,maxRetries:t}}),U0=await fq1({system:J,prompt:G,messages:W}),P0=uq1(z);try{return await KT({name:"ai.generateText",attributes:i7({telemetry:z,attributes:{...$T({operationId:"ai.generateText",telemetry:z}),...Y0,"ai.model.provider":b.provider,"ai.model.id":b.modelId,"ai.prompt":{input:()=>JSON.stringify({system:J,prompt:G,messages:W})}}}),tracer:P0,fn:async(v0)=>{var W1,N0,W0,I0,f1,x1,y0,L0;let $0=U0.messages,E0=[],{approvedToolApprovals:H0,deniedToolApprovals:D0}=iq1({messages:$0}),o0=H0.filter((K6)=>!K6.toolCall.providerExecuted);if(D0.length>0||o0.length>0){let K6=await bV1({toolCalls:o0.map((G1)=>G1.toolCall),tools:Y,tracer:P0,telemetry:z,messages:$0,abortSignal:h,experimental_context:P}),U4=[];for(let G1 of K6){let M1=await HV({toolCallId:G1.toolCallId,input:G1.input,tool:Y==null?void 0:Y[G1.toolName],output:G1.type==="tool-result"?G1.output:G1.error,errorMode:G1.type==="tool-error"?"json":"none"});U4.push({type:"tool-result",toolCallId:G1.toolCallId,toolName:G1.toolName,output:M1})}for(let G1 of D0)U4.push({type:"tool-result",toolCallId:G1.toolCall.toolCallId,toolName:G1.toolCall.toolName,output:{type:"execution-denied",reason:G1.approvalResponse.reason,...G1.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:G1.approvalResponse.approvalId}}}}});E0.push({role:"tool",content:U4})}let k0=[...H0,...D0].filter((K6)=>K6.toolCall.providerExecuted);if(k0.length>0)E0.push({role:"tool",content:k0.map((K6)=>({type:"tool-approval-response",approvalId:K6.approvalResponse.approvalId,approved:K6.approvalResponse.approved,reason:K6.approvalResponse.reason,providerExecuted:!0}))});let S0=DJ0(y),F1,k1=[],n1=[],P1=[],Q1=new Map;do{let K6=g!=null?setTimeout(()=>k.abort(),g):void 0;try{let U4=[...$0,...E0],G1=await(C==null?void 0:C({model:b,steps:P1,stepNumber:P1.length,messages:U4,experimental_context:P})),M1=Kh((W1=G1==null?void 0:G1.model)!=null?W1:b),CQ=await kq1({prompt:{system:(N0=G1==null?void 0:G1.system)!=null?N0:U0.system,messages:(W0=G1==null?void 0:G1.messages)!=null?W0:U4},supportedUrls:await M1.supportedUrls,download:A});P=(I0=G1==null?void 0:G1.experimental_context)!=null?I0:P;let{toolChoice:O,tools:_}=await vq1({tools:Y,toolChoice:(f1=G1==null?void 0:G1.toolChoice)!=null?f1:Q,activeTools:(x1=G1==null?void 0:G1.activeTools)!=null?x1:L});F1=await l(()=>{var e;return KT({name:"ai.generateText.doGenerate",attributes:i7({telemetry:z,attributes:{...$T({operationId:"ai.generateText.doGenerate",telemetry:z}),...Y0,"ai.model.provider":M1.provider,"ai.model.id":M1.modelId,"ai.prompt.messages":{input:()=>lq1(CQ)},"ai.prompt.tools":{input:()=>_==null?void 0:_.map((X0)=>JSON.stringify(X0))},"ai.prompt.toolChoice":{input:()=>O!=null?JSON.stringify(O):void 0},"gen_ai.system":M1.provider,"gen_ai.request.model":M1.modelId,"gen_ai.request.frequency_penalty":y.frequencyPenalty,"gen_ai.request.max_tokens":y.maxOutputTokens,"gen_ai.request.presence_penalty":y.presencePenalty,"gen_ai.request.stop_sequences":y.stopSequences,"gen_ai.request.temperature":(e=y.temperature)!=null?e:void 0,"gen_ai.request.top_k":y.topK,"gen_ai.request.top_p":y.topP}}),tracer:P0,fn:async(X0)=>{var n,C0,A1,i1,f0,y1,y8,kX;let y6=Fh(D,G1==null?void 0:G1.providerOptions),v4=await M1.doGenerate({...S0,tools:_,toolChoice:O,responseFormat:await(q==null?void 0:q.responseFormat),prompt:CQ,providerOptions:y6,abortSignal:h,headers:V0}),KY={id:(C0=(n=v4.response)==null?void 0:n.id)!=null?C0:j(),timestamp:(i1=(A1=v4.response)==null?void 0:A1.timestamp)!=null?i1:new Date,modelId:(y1=(f0=v4.response)==null?void 0:f0.modelId)!=null?y1:M1.modelId,headers:(y8=v4.response)==null?void 0:y8.headers,body:(kX=v4.response)==null?void 0:kX.body};return X0.setAttributes(await i7({telemetry:z,attributes:{"ai.response.finishReason":v4.finishReason.unified,"ai.response.text":{output:()=>_V1(v4.content)},"ai.response.toolCalls":{output:()=>{let UG=fV1(v4.content);return UG==null?void 0:JSON.stringify(UG)}},"ai.response.id":KY.id,"ai.response.model":KY.modelId,"ai.response.timestamp":KY.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(v4.providerMetadata),"ai.usage.promptTokens":v4.usage.inputTokens.total,"ai.usage.completionTokens":v4.usage.outputTokens.total,"gen_ai.response.finish_reasons":[v4.finishReason.unified],"gen_ai.response.id":KY.id,"gen_ai.response.model":KY.modelId,"gen_ai.usage.input_tokens":v4.usage.inputTokens.total,"gen_ai.usage.output_tokens":v4.usage.outputTokens.total}})),{...v4,response:KY}}})});let o=await Promise.all(F1.content.filter((e)=>e.type==="tool-call").map((e)=>oq1({toolCall:e,tools:Y,repairToolCall:T,system:J,messages:U4}))),G0={};for(let e of o){if(e.invalid)continue;let X0=Y==null?void 0:Y[e.toolName];if(X0==null)continue;if((X0==null?void 0:X0.onInputAvailable)!=null)await X0.onInputAvailable({input:e.input,toolCallId:e.toolCallId,messages:U4,abortSignal:h,experimental_context:P});if(await rq1({tool:X0,toolCall:e,messages:U4,experimental_context:P}))G0[e.toolCallId]={type:"tool-approval-request",approvalId:j(),toolCall:e}}let B=o.filter((e)=>e.invalid&&e.dynamic);n1=[];for(let e of B)n1.push({type:"tool-error",toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,error:nB(e.error),dynamic:!0});if(k1=o.filter((e)=>!e.providerExecuted),Y!=null)n1.push(...await bV1({toolCalls:k1.filter((e)=>!e.invalid&&G0[e.toolCallId]==null),tools:Y,tracer:P0,telemetry:z,messages:U4,abortSignal:h,experimental_context:P}));for(let e of o){if(!e.providerExecuted)continue;let X0=Y==null?void 0:Y[e.toolName];if((X0==null?void 0:X0.type)==="provider"&&X0.supportsDeferredResults){if(!F1.content.some((C0)=>C0.type==="tool-result"&&C0.toolCallId===e.toolCallId))Q1.set(e.toolCallId,{toolName:e.toolName})}}for(let e of F1.content)if(e.type==="tool-result")Q1.delete(e.toolCallId);let E=Br6({content:F1.content,toolCalls:o,toolOutputs:n1,toolApprovalRequests:Object.values(G0),tools:Y});E0.push(...await NJ0({content:E,tools:Y}));let c=new tq1({content:E,finishReason:F1.finishReason.unified,rawFinishReason:F1.finishReason.raw,usage:dq1(F1.usage),warnings:F1.warnings,providerMetadata:F1.providerMetadata,request:(y0=F1.request)!=null?y0:{},response:{...F1.response,messages:structuredClone(E0)}});PJ0({warnings:(L0=F1.warnings)!=null?L0:[],provider:M1.provider,model:M1.modelId}),P1.push(c),await(R==null?void 0:R(c))}finally{if(K6!=null)clearTimeout(K6)}}while((k1.length>0&&n1.length===k1.length||Q1.size>0)&&!await eq1({stopConditions:f,steps:P1}));v0.setAttributes(await i7({telemetry:z,attributes:{"ai.response.finishReason":F1.finishReason.unified,"ai.response.text":{output:()=>_V1(F1.content)},"ai.response.toolCalls":{output:()=>{let K6=fV1(F1.content);return K6==null?void 0:JSON.stringify(K6)}},"ai.response.providerMetadata":JSON.stringify(F1.providerMetadata),"ai.usage.promptTokens":F1.usage.inputTokens.total,"ai.usage.completionTokens":F1.usage.outputTokens.total}}));let w0=P1[P1.length-1],A0=P1.reduce((K6,U4)=>{return pq1(K6,U4.usage)},{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0,reasoningTokens:void 0,cachedInputTokens:void 0});await(v==null?void 0:v({finishReason:w0.finishReason,rawFinishReason:w0.rawFinishReason,usage:w0.usage,content:w0.content,text:w0.text,reasoningText:w0.reasoningText,reasoning:w0.reasoning,files:w0.files,sources:w0.sources,toolCalls:w0.toolCalls,staticToolCalls:w0.staticToolCalls,dynamicToolCalls:w0.dynamicToolCalls,toolResults:w0.toolResults,staticToolResults:w0.staticToolResults,dynamicToolResults:w0.dynamicToolResults,request:w0.request,response:w0.response,warnings:w0.warnings,providerMetadata:w0.providerMetadata,steps:P1,totalUsage:A0,experimental_context:P}));let a1;if(w0.finishReason==="stop")a1=await(q!=null?q:Hh()).parseCompleteOutput({text:w0.text},{response:w0.response,usage:w0.usage,finishReason:w0.finishReason});return new zr6({steps:P1,totalUsage:A0,output:a1})}})}catch(v0){throw hq1(v0)}}async function bV1({toolCalls:X,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z}){return(await Promise.all(X.map(async(K)=>TJ0({toolCall:K,tools:Y,tracer:Q,telemetry:J,messages:G,abortSignal:W,experimental_context:Z})))).filter((K)=>K!=null)}function fV1(X){let Y=X.filter((Q)=>Q.type==="tool-call");if(Y.length===0)return;return Y.map((Q)=>({toolCallId:Q.toolCallId,toolName:Q.toolName,input:Q.input}))}function Br6({content:X,toolCalls:Y,toolOutputs:Q,toolApprovalRequests:J,tools:G}){let W=[];for(let Z of X)switch(Z.type){case"text":case"reasoning":case"source":W.push(Z);break;case"file":{W.push({type:"file",file:new aq1(Z),...Z.providerMetadata!=null?{providerMetadata:Z.providerMetadata}:{}});break}case"tool-call":{W.push(Y.find(($)=>$.toolCallId===Z.toolCallId));break}case"tool-result":{let $=Y.find((K)=>K.toolCallId===Z.toolCallId);if($==null){let K=G==null?void 0:G[Z.toolName];if(!((K==null?void 0:K.type)==="provider"&&K.supportsDeferredResults))throw Error(`Tool call ${Z.toolCallId} not found.`);if(Z.isError)W.push({type:"tool-error",toolCallId:Z.toolCallId,toolName:Z.toolName,input:void 0,error:Z.result,providerExecuted:!0,dynamic:Z.dynamic});else W.push({type:"tool-result",toolCallId:Z.toolCallId,toolName:Z.toolName,input:void 0,output:Z.result,providerExecuted:!0,dynamic:Z.dynamic});break}if(Z.isError)W.push({type:"tool-error",toolCallId:Z.toolCallId,toolName:Z.toolName,input:$.input,error:Z.result,providerExecuted:!0,dynamic:$.dynamic});else W.push({type:"tool-result",toolCallId:Z.toolCallId,toolName:Z.toolName,input:$.input,output:Z.result,providerExecuted:!0,dynamic:$.dynamic});break}case"tool-approval-request":{let $=Y.find((K)=>K.toolCallId===Z.toolCallId);if($==null)throw new MJ0({toolCallId:Z.toolCallId,approvalId:Z.approvalId});W.push({type:"tool-approval-request",approvalId:Z.approvalId,toolCall:$});break}}return[...W,...Q,...J]}function Uh(X,Y){let Q=new Headers(X!=null?X:{});for(let[J,G]of Object.entries(Y))if(!Q.has(J))Q.set(J,G);return Q}function Dr6({status:X,statusText:Y,headers:Q,textStream:J}){return new Response(J.pipeThrough(new TextEncoderStream),{status:X!=null?X:200,statusText:Y,headers:Uh(Q,{"content-type":"text/plain; charset=utf-8"})})}function YU1({response:X,status:Y,statusText:Q,headers:J,stream:G}){let W=Y!=null?Y:200;if(Q!==void 0)X.writeHead(W,Q,J);else X.writeHead(W,J);let Z=G.getReader();(async()=>{try{while(!0){let{done:K,value:H}=await Z.read();if(K)break;if(!X.write(H))await new Promise((V)=>{X.once("drain",V)})}}catch(K){throw K}finally{X.end()}})()}function Nr6({response:X,status:Y,statusText:Q,headers:J,textStream:G}){YU1({response:X,status:Y,statusText:Q,headers:Object.fromEntries(Uh(J,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:G.pipeThrough(new TextEncoderStream)})}function Or6({status:X,statusText:Y,headers:Q,stream:J,consumeSseStream:G}){let W=J.pipeThrough(new QU1);if(G){let[Z,$]=W.tee();W=Z,G({stream:$})}return new Response(W.pipeThrough(new TextEncoderStream),{status:X,statusText:Y,headers:Uh(Q,JU1)})}function Lr6({originalMessages:X,responseMessageId:Y}){if(X==null)return;let Q=X[X.length-1];return(Q==null?void 0:Q.role)==="assistant"?Q.id:typeof Y==="function"?Y():Y}function wr6(X){return X.type.startsWith("data-")}function VJ0(X){return X.type.startsWith("data-")}function qJ0(X){return X.type==="text"}function UJ0(X){return X.type==="file"}function hV1(X){return X.type==="reasoning"}function OJ0(X){return X.type.startsWith("tool-")}function GU1(X){return X.type==="dynamic-tool"}function GT(X){return OJ0(X)||GU1(X)}function LJ0(X){return X.type.split("-").slice(1).join("-")}function zJ0(X){return GU1(X)?X.toolName:LJ0(X)}function Mr6({lastMessage:X,messageId:Y}){return{message:(X==null?void 0:X.role)==="assistant"?X:{id:Y,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Pr6({stream:X,messageMetadataSchema:Y,dataPartSchemas:Q,runUpdateMessageJob:J,onError:G,onToolCall:W,onData:Z}){return X.pipeThrough(new TransformStream({async transform($,K){await J(async({state:H,write:F})=>{var V,q,z,D;function N(T){let P=H.message.parts.filter(GT).find((j)=>j.toolCallId===T);if(P==null)throw new sB({chunkType:"tool-invocation",chunkId:T,message:`No tool invocation found for tool call ID "${T}".`});return P}function L(T){var A;let P=H.message.parts.find((v)=>OJ0(v)&&v.toolCallId===T.toolCallId),j=T,R=P;if(P!=null){if(P.state=T.state,R.input=j.input,R.output=j.output,R.errorText=j.errorText,R.rawInput=j.rawInput,R.preliminary=j.preliminary,T.title!==void 0)R.title=T.title;if(R.providerExecuted=(A=j.providerExecuted)!=null?A:P.providerExecuted,j.providerMetadata!=null)P.callProviderMetadata=j.providerMetadata}else H.message.parts.push({type:`tool-${T.toolName}`,toolCallId:T.toolCallId,state:T.state,title:T.title,input:j.input,output:j.output,rawInput:j.rawInput,errorText:j.errorText,providerExecuted:j.providerExecuted,preliminary:j.preliminary,...j.providerMetadata!=null?{callProviderMetadata:j.providerMetadata}:{}})}function w(T){var A,P;let j=H.message.parts.find((y)=>y.type==="dynamic-tool"&&y.toolCallId===T.toolCallId),R=T,v=j;if(j!=null){if(j.state=T.state,v.toolName=T.toolName,v.input=R.input,v.output=R.output,v.errorText=R.errorText,v.rawInput=(A=R.rawInput)!=null?A:v.rawInput,v.preliminary=R.preliminary,T.title!==void 0)v.title=T.title;if(v.providerExecuted=(P=R.providerExecuted)!=null?P:j.providerExecuted,R.providerMetadata!=null)j.callProviderMetadata=R.providerMetadata}else H.message.parts.push({type:"dynamic-tool",toolName:T.toolName,toolCallId:T.toolCallId,state:T.state,input:R.input,output:R.output,errorText:R.errorText,preliminary:R.preliminary,providerExecuted:R.providerExecuted,title:T.title,...R.providerMetadata!=null?{callProviderMetadata:R.providerMetadata}:{}})}async function C(T){if(T!=null){let A=H.message.metadata!=null?Fh(H.message.metadata,T):T;if(Y!=null)await c7({value:A,schema:Y});H.message.metadata=A}}switch($.type){case"text-start":{let T={type:"text",text:"",providerMetadata:$.providerMetadata,state:"streaming"};H.activeTextParts[$.id]=T,H.message.parts.push(T),F();break}case"text-delta":{let T=H.activeTextParts[$.id];if(T==null)throw new sB({chunkType:"text-delta",chunkId:$.id,message:`Received text-delta for missing text part with ID "${$.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});T.text+=$.delta,T.providerMetadata=(V=$.providerMetadata)!=null?V:T.providerMetadata,F();break}case"text-end":{let T=H.activeTextParts[$.id];if(T==null)throw new sB({chunkType:"text-end",chunkId:$.id,message:`Received text-end for missing text part with ID "${$.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});T.state="done",T.providerMetadata=(q=$.providerMetadata)!=null?q:T.providerMetadata,delete H.activeTextParts[$.id],F();break}case"reasoning-start":{let T={type:"reasoning",text:"",providerMetadata:$.providerMetadata,state:"streaming"};H.activeReasoningParts[$.id]=T,H.message.parts.push(T),F();break}case"reasoning-delta":{let T=H.activeReasoningParts[$.id];if(T==null)throw new sB({chunkType:"reasoning-delta",chunkId:$.id,message:`Received reasoning-delta for missing reasoning part with ID "${$.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});T.text+=$.delta,T.providerMetadata=(z=$.providerMetadata)!=null?z:T.providerMetadata,F();break}case"reasoning-end":{let T=H.activeReasoningParts[$.id];if(T==null)throw new sB({chunkType:"reasoning-end",chunkId:$.id,message:`Received reasoning-end for missing reasoning part with ID "${$.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});T.providerMetadata=(D=$.providerMetadata)!=null?D:T.providerMetadata,T.state="done",delete H.activeReasoningParts[$.id],F();break}case"file":{H.message.parts.push({type:"file",mediaType:$.mediaType,url:$.url}),F();break}case"source-url":{H.message.parts.push({type:"source-url",sourceId:$.sourceId,url:$.url,title:$.title,providerMetadata:$.providerMetadata}),F();break}case"source-document":{H.message.parts.push({type:"source-document",sourceId:$.sourceId,mediaType:$.mediaType,title:$.title,filename:$.filename,providerMetadata:$.providerMetadata}),F();break}case"tool-input-start":{let T=H.message.parts.filter(OJ0);if(H.partialToolCalls[$.toolCallId]={text:"",toolName:$.toolName,index:T.length,dynamic:$.dynamic,title:$.title},$.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-streaming",input:void 0,providerExecuted:$.providerExecuted,title:$.title,providerMetadata:$.providerMetadata});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-streaming",input:void 0,providerExecuted:$.providerExecuted,title:$.title,providerMetadata:$.providerMetadata});F();break}case"tool-input-delta":{let T=H.partialToolCalls[$.toolCallId];if(T==null)throw new sB({chunkType:"tool-input-delta",chunkId:$.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${$.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});T.text+=$.inputTextDelta;let{value:A}=await HT(T.text);if(T.dynamic)w({toolCallId:$.toolCallId,toolName:T.toolName,state:"input-streaming",input:A,title:T.title});else L({toolCallId:$.toolCallId,toolName:T.toolName,state:"input-streaming",input:A,title:T.title});F();break}case"tool-input-available":{if($.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-available",input:$.input,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata,title:$.title});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"input-available",input:$.input,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata,title:$.title});if(F(),W&&!$.providerExecuted)await W({toolCall:$});break}case"tool-input-error":{if($.dynamic)w({toolCallId:$.toolCallId,toolName:$.toolName,state:"output-error",input:$.input,errorText:$.errorText,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata});else L({toolCallId:$.toolCallId,toolName:$.toolName,state:"output-error",input:void 0,rawInput:$.input,errorText:$.errorText,providerExecuted:$.providerExecuted,providerMetadata:$.providerMetadata});F();break}case"tool-approval-request":{let T=N($.toolCallId);T.state="approval-requested",T.approval={id:$.approvalId},F();break}case"tool-output-denied":{let T=N($.toolCallId);T.state="output-denied",F();break}case"tool-output-available":{let T=N($.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:$.toolCallId,toolName:T.toolName,state:"output-available",input:T.input,output:$.output,preliminary:$.preliminary,providerExecuted:$.providerExecuted,title:T.title});else L({toolCallId:$.toolCallId,toolName:LJ0(T),state:"output-available",input:T.input,output:$.output,providerExecuted:$.providerExecuted,preliminary:$.preliminary,title:T.title});F();break}case"tool-output-error":{let T=N($.toolCallId);if(T.type==="dynamic-tool")w({toolCallId:$.toolCallId,toolName:T.toolName,state:"output-error",input:T.input,errorText:$.errorText,providerExecuted:$.providerExecuted,title:T.title});else L({toolCallId:$.toolCallId,toolName:LJ0(T),state:"output-error",input:T.input,rawInput:T.rawInput,errorText:$.errorText,providerExecuted:$.providerExecuted,title:T.title});F();break}case"start-step":{H.message.parts.push({type:"step-start"});break}case"finish-step":{H.activeTextParts={},H.activeReasoningParts={};break}case"start":{if($.messageId!=null)H.message.id=$.messageId;if(await C($.messageMetadata),$.messageId!=null||$.messageMetadata!=null)F();break}case"finish":{if($.finishReason!=null)H.finishReason=$.finishReason;if(await C($.messageMetadata),$.messageMetadata!=null)F();break}case"message-metadata":{if(await C($.messageMetadata),$.messageMetadata!=null)F();break}case"error":{G==null||G(Error($.errorText));break}default:if(wr6($)){if((Q==null?void 0:Q[$.type])!=null)await c7({value:$.data,schema:Q[$.type]});let T=$;if(T.transient){Z==null||Z(T);break}let A=T.id!=null?H.message.parts.find((P)=>T.type===P.type&&T.id===P.id):void 0;if(A!=null)A.data=T.data;else H.message.parts.push(T);Z==null||Z(T),F()}}K.enqueue($)})}}))}function Ar6({messageId:X,originalMessages:Y=[],onFinish:Q,onError:J,stream:G}){let W=Y==null?void 0:Y[Y.length-1];if((W==null?void 0:W.role)!=="assistant")W=void 0;else X=W.id;let Z=!1,$=G.pipeThrough(new TransformStream({transform(q,z){if(q.type==="start"){let D=q;if(D.messageId==null&&X!=null)D.messageId=X}if(q.type==="abort")Z=!0;z.enqueue(q)}}));if(Q==null)return $;let K=Mr6({lastMessage:W?structuredClone(W):void 0,messageId:X!=null?X:""}),H=async(q)=>{await q({state:K,write:()=>{}})},F=!1,V=async()=>{if(F||!Q)return;F=!0;let q=K.message.id===(W==null?void 0:W.id);await Q({isAborted:Z,isContinuation:q,responseMessage:K.message,messages:[...q?Y.slice(0,-1):Y,K.message],finishReason:K.finishReason})};return Pr6({stream:$,runUpdateMessageJob:H,onError:J}).pipeThrough(new TransformStream({transform(q,z){z.enqueue(q)},async cancel(){await V()},async flush(){await V()}}))}function Tr6({response:X,status:Y,statusText:Q,headers:J,stream:G,consumeSseStream:W}){let Z=G.pipeThrough(new QU1);if(W){let[$,K]=Z.tee();Z=$,W({stream:K})}YU1({response:X,status:Y,statusText:Q,headers:Object.fromEntries(Uh(J,JU1).entries()),stream:Z.pipeThrough(new TextEncoderStream)})}function JT(X){let Y=X.pipeThrough(new TransformStream);return Y[Symbol.asyncIterator]=function(){let Q=this.getReader(),J=!1;async function G(W){var Z;if(J)return;J=!0;try{if(W)await((Z=Q.cancel)==null?void 0:Z.call(Q))}finally{try{Q.releaseLock()}catch($){}}}return{async next(){if(J)return{done:!0,value:void 0};let{done:W,value:Z}=await Q.read();if(W)return await G(!0),{done:!0,value:void 0};return{done:!1,value:Z}},async return(){return await G(!0),{done:!0,value:void 0}},async throw(W){throw await G(!0),W}}},Y}async function EJ0({stream:X,onError:Y}){let Q=X.getReader();try{while(!0){let{done:J}=await Q.read();if(J)break}}catch(J){Y==null||Y(J)}finally{Q.releaseLock()}}function xV1(){let X,Y;return{promise:new Promise((J,G)=>{X=J,Y=G}),resolve:X,reject:Y}}function Er6(){let X=[],Y=null,Q=!1,J=xV1(),G=()=>{Q=!0,J.resolve(),X.forEach((Z)=>Z.cancel()),X=[],Y==null||Y.close()},W=async()=>{if(Q&&X.length===0){Y==null||Y.close();return}if(X.length===0)return J=xV1(),await J.promise,W();try{let{value:Z,done:$}=await X[0].read();if($)if(X.shift(),X.length===0&&Q)Y==null||Y.close();else await W();else Y==null||Y.enqueue(Z)}catch(Z){Y==null||Y.error(Z),X.shift(),G()}};return{stream:new ReadableStream({start(Z){Y=Z},pull:W,async cancel(){for(let Z of X)await Z.cancel();X=[],Q=!0}}),addStream:(Z)=>{if(Q)throw Error("Cannot add inner stream: outer stream is closed");X.push(Z.getReader()),J.resolve()},close:()=>{if(Q=!0,J.resolve(),X.length===0)Y==null||Y.close()},terminate:G}}function jr6(){var X,Y;return(Y=(X=globalThis==null?void 0:globalThis.performance)==null?void 0:X.now())!=null?Y:Date.now()}function Cr6({tools:X,generatorStream:Y,tracer:Q,telemetry:J,system:G,messages:W,abortSignal:Z,repairToolCall:$,experimental_context:K,generateId:H}){let F=null,V=new ReadableStream({start(T){F=T}}),q=new Set,z=new Map,D=new Map,N=!1,L=void 0;function w(){if(N&&q.size===0){if(L!=null)F.enqueue(L);F.close()}}let C=new TransformStream({async transform(T,A){let P=T.type;switch(P){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":{A.enqueue(T);break}case"file":{A.enqueue({type:"file",file:new Zr6({data:T.data,mediaType:T.mediaType})});break}case"finish":{L={type:"finish",finishReason:T.finishReason.unified,rawFinishReason:T.finishReason.raw,usage:dq1(T.usage),providerMetadata:T.providerMetadata};break}case"tool-approval-request":{let j=D.get(T.toolCallId);if(j==null){F.enqueue({type:"error",error:new MJ0({toolCallId:T.toolCallId,approvalId:T.approvalId})});break}A.enqueue({type:"tool-approval-request",approvalId:T.approvalId,toolCall:j});break}case"tool-call":{try{let j=await oq1({toolCall:T,tools:X,repairToolCall:$,system:G,messages:W});if(D.set(j.toolCallId,j),A.enqueue(j),j.invalid){F.enqueue({type:"tool-error",toolCallId:j.toolCallId,toolName:j.toolName,input:j.input,error:nB(j.error),dynamic:!0,title:j.title});break}let R=X==null?void 0:X[j.toolName];if(R==null)break;if(R.onInputAvailable!=null)await R.onInputAvailable({input:j.input,toolCallId:j.toolCallId,messages:W,abortSignal:Z,experimental_context:K});if(await rq1({tool:R,toolCall:j,messages:W,experimental_context:K})){F.enqueue({type:"tool-approval-request",approvalId:H(),toolCall:j});break}if(z.set(j.toolCallId,j.input),R.execute!=null&&j.providerExecuted!==!0){let v=H();q.add(v),TJ0({toolCall:j,tools:X,tracer:Q,telemetry:J,messages:W,abortSignal:Z,experimental_context:K,onPreliminaryToolResult:(y)=>{F.enqueue(y)}}).then((y)=>{F.enqueue(y)}).catch((y)=>{F.enqueue({type:"error",error:y})}).finally(()=>{q.delete(v),w()})}}catch(j){F.enqueue({type:"error",error:j})}break}case"tool-result":{let j=T.toolName;if(T.isError)F.enqueue({type:"tool-error",toolCallId:T.toolCallId,toolName:j,input:z.get(T.toolCallId),providerExecuted:!0,error:T.result,dynamic:T.dynamic});else A.enqueue({type:"tool-result",toolCallId:T.toolCallId,toolName:j,input:z.get(T.toolCallId),output:T.result,providerExecuted:!0,dynamic:T.dynamic});break}default:throw Error(`Unhandled chunk type: ${P}`)}},flush(){N=!0,w()}});return new ReadableStream({async start(T){return Promise.all([Y.pipeThrough(C).pipeTo(new WritableStream({write(A){T.enqueue(A)},close(){}})),V.pipeTo(new WritableStream({write(A){T.enqueue(A)},close(){T.close()}}))])}})}function zh({model:X,tools:Y,toolChoice:Q,system:J,prompt:G,messages:W,maxRetries:Z,abortSignal:$,timeout:K,headers:H,stopWhen:F=Vh(1),experimental_output:V,output:q=V,experimental_telemetry:z,prepareStep:D,providerOptions:N,experimental_activeTools:L,activeTools:w=L,experimental_repairToolCall:C,experimental_transform:T,experimental_download:A,includeRawChunks:P=!1,onChunk:j,onError:R=({error:h})=>{console.error(h)},onFinish:v,onAbort:y,onStepFinish:b,experimental_context:f,_internal:{now:r=jr6,generateId:g=Ir6}={},...k}){let h=AJ0(K),t=Cq1(K),l=va6(K),J0=t!=null?new AbortController:void 0,V0=l!=null?new AbortController:void 0;return new Sr6({model:Kh(X),telemetry:z,headers:H,settings:k,maxRetries:Z,abortSignal:XU1($,h!=null?AbortSignal.timeout(h):void 0,J0==null?void 0:J0.signal,V0==null?void 0:V0.signal),stepTimeoutMs:t,stepAbortController:J0,chunkTimeoutMs:l,chunkAbortController:V0,system:J,prompt:G,messages:W,tools:Y,toolChoice:Q,transforms:WT(T),activeTools:w,repairToolCall:C,stopConditions:WT(F),output:q,providerOptions:N,prepareStep:D,includeRawChunks:P,onChunk:j,onError:R,onFinish:v,onAbort:y,onStepFinish:b,now:r,generateId:g,experimental_context:f,download:A})}function Rr6(X){let Y=void 0,Q="",J="",G=void 0,W="";function Z({controller:$,partialOutput:K=void 0}){$.enqueue({part:{type:"text-delta",id:Y,text:J,providerMetadata:G},partialOutput:K}),J=""}return new TransformStream({async transform($,K){var H;if($.type==="finish-step"&&J.length>0)Z({controller:K});if($.type!=="text-delta"&&$.type!=="text-start"&&$.type!=="text-end"){K.enqueue({part:$,partialOutput:void 0});return}if(Y==null)Y=$.id;else if($.id!==Y){K.enqueue({part:$,partialOutput:void 0});return}if($.type==="text-start"){K.enqueue({part:$,partialOutput:void 0});return}if($.type==="text-end"){if(J.length>0)Z({controller:K});K.enqueue({part:$,partialOutput:void 0});return}Q+=$.text,J+=$.text,G=(H=$.providerMetadata)!=null?H:G;let F=await X.parsePartialOutput({text:Q});if(F!==void 0){let V=JSON.stringify(F.partial);if(V!==W)Z({controller:K,partialOutput:F.partial}),W=V}}})}async function WU1(X,Y){let Q=[];if(Y==null?void 0:Y.ignoreIncompleteToolCalls)X=X.map((J)=>({...J,parts:J.parts.filter((G)=>!GT(G)||G.state!=="input-streaming"&&G.state!=="input-available")}));for(let J of X)switch(J.role){case"system":{let G=J.parts.filter((Z)=>Z.type==="text"),W=G.reduce((Z,$)=>{if($.providerMetadata!=null)return{...Z,...$.providerMetadata};return Z},{});Q.push({role:"system",content:G.map((Z)=>Z.text).join(""),...Object.keys(W).length>0?{providerOptions:W}:{}});break}case"user":{Q.push({role:"user",content:J.parts.map((G)=>{var W;if(qJ0(G))return{type:"text",text:G.text,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(UJ0(G))return{type:"file",mediaType:G.mediaType,filename:G.filename,data:G.url,...G.providerMetadata!=null?{providerOptions:G.providerMetadata}:{}};if(VJ0(G))return(W=Y==null?void 0:Y.convertDataPart)==null?void 0:W.call(Y,G)}).filter(YF1)});break}case"assistant":{if(J.parts!=null){let G=[];async function W(){var Z,$,K,H,F,V;if(G.length===0)return;let q=[];for(let D of G)if(qJ0(D))q.push({type:"text",text:D.text,...D.providerMetadata!=null?{providerOptions:D.providerMetadata}:{}});else if(UJ0(D))q.push({type:"file",mediaType:D.mediaType,filename:D.filename,data:D.url});else if(hV1(D))q.push({type:"reasoning",text:D.text,providerOptions:D.providerMetadata});else if(GT(D)){let N=zJ0(D);if(D.state!=="input-streaming"){if(q.push({type:"tool-call",toolCallId:D.toolCallId,toolName:N,input:D.state==="output-error"?(Z=D.input)!=null?Z:("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:N,output:await HV({toolCallId:D.toolCallId,input:D.input,output:D.state==="output-error"?D.errorText:D.output,tool:($=Y==null?void 0:Y.tools)==null?void 0:$[N],errorMode:D.state==="output-error"?"json":"none"}),...D.callProviderMetadata!=null?{providerOptions:D.callProviderMetadata}:{}})}}else if(VJ0(D)){let N=(K=Y==null?void 0:Y.convertDataPart)==null?void 0:K.call(Y,D);if(N!=null)q.push(N)}else throw Error(`Unsupported part: ${D}`);Q.push({role:"assistant",content:q});let z=G.filter((D)=>{var N;return GT(D)&&(D.providerExecuted!==!0||((N=D.approval)==null?void 0:N.approved)!=null)});if(z.length>0){let D=[];for(let N of z){if(((H=N.approval)==null?void 0:H.approved)!=null)D.push({type:"tool-approval-response",approvalId:N.approval.id,approved:N.approval.approved,reason:N.approval.reason,providerExecuted:N.providerExecuted});if(N.providerExecuted===!0)continue;switch(N.state){case"output-denied":{D.push({type:"tool-result",toolCallId:N.toolCallId,toolName:zJ0(N),output:{type:"error-text",value:(F=N.approval.reason)!=null?F:"Tool execution denied."},...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}case"output-error":case"output-available":{let L=zJ0(N);D.push({type:"tool-result",toolCallId:N.toolCallId,toolName:L,output:await HV({toolCallId:N.toolCallId,input:N.input,output:N.state==="output-error"?N.errorText:N.output,tool:(V=Y==null?void 0:Y.tools)==null?void 0:V[L],errorMode:N.state==="output-error"?"text":"none"}),...N.callProviderMetadata!=null?{providerOptions:N.callProviderMetadata}:{}});break}}}if(D.length>0)Q.push({role:"tool",content:D})}G=[]}for(let Z of J.parts)if(qJ0(Z)||hV1(Z)||UJ0(Z)||GT(Z)||VJ0(Z))G.push(Z);else if(Z.type==="step-start")await W();await W();break}break}default:{let G=J.role;throw new Ta6({originalMessage:J,message:`Unsupported role: ${G}`})}}return Q}async function vr6({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J}){try{if(X==null)return{success:!1,error:new qG({parameter:"messages",value:X,message:"messages parameter must be provided"})};let G=await c7({value:X,schema:kr6});if(Y)for(let W of G)await c7({value:W.metadata,schema:Y});if(Q)for(let W of G){let Z=W.parts.filter(($)=>$.type.startsWith("data-"));for(let $ of Z){let K=$.type.slice(5),H=Q[K];if(!H)return{success:!1,error:new EQ({value:$.data,cause:`No data schema found for data part ${K}`})};await c7({value:$.data,schema:H})}}if(J)for(let W of G){let Z=W.parts.filter(($)=>$.type.startsWith("tool-"));for(let $ of Z){let K=$.type.slice(5),H=J[K];if(!H)return{success:!1,error:new EQ({value:$.input,cause:`No tool schema found for tool part ${K}`})};if($.state==="input-available"||$.state==="output-available"||$.state==="output-error"&&$.input!==void 0)await c7({value:$.input,schema:H.inputSchema});if($.state==="output-available"&&H.outputSchema)await c7({value:$.output,schema:H.outputSchema})}}return{success:!0,data:G}}catch(G){return{success:!1,error:G}}}async function ZU1({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J}){let G=await vr6({messages:X,metadataSchema:Y,dataSchemas:Q,tools:J});if(!G.success)throw G.error;return G.data}function $U1({messages:X,reasoning:Y="none",toolCalls:Q=[],emptyMessages:J="remove"}){if(Y==="all"||Y==="before-last-message")X=X.map((G,W)=>{if(G.role!=="assistant"||typeof G.content==="string"||Y==="before-last-message"&&W===X.length-1)return G;return{...G,content:G.content.filter((Z)=>Z.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 W=G.type==="all"?void 0:G.type==="before-last-message"?1:Number(G.type.slice(12).slice(0,-9)),Z=new Set,$=new Set;if(W!=null){for(let K of X.slice(-W))if((K.role==="assistant"||K.role==="tool")&&typeof K.content!=="string"){for(let H of K.content)if(H.type==="tool-call"||H.type==="tool-result")Z.add(H.toolCallId);else if(H.type==="tool-approval-request"||H.type==="tool-approval-response")$.add(H.approvalId)}}X=X.map((K,H)=>{if(K.role!=="assistant"&&K.role!=="tool"||typeof K.content==="string"||W&&H>=X.length-W)return K;let F={},V={};return{...K,content:K.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")F[q.toolCallId]=q.toolName;else if(q.type==="tool-approval-request")V[q.approvalId]=F[q.toolCallId];if((q.type==="tool-call"||q.type==="tool-result")&&Z.has(q.toolCallId)||(q.type==="tool-approval-request"||q.type==="tool-approval-response")&&$.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")X=X.filter((G)=>G.content.length>0);return X}var gq1,tB,ai6,ri6=(X,Y)=>{for(var Q in Y)ai6(X,Q,{get:Y[Q],enumerable:!0})},gV1="AI_InvalidArgumentError",uV1,oi6,mV1,qG,si6="AI_InvalidStreamPartError",ti6,ei6,Xa6,lV1="AI_InvalidToolApprovalError",dV1,Ya6,pV1,Qa6,cV1="AI_InvalidToolInputError",nV1,Ja6,iV1,wJ0,aV1="AI_ToolCallNotFoundForApprovalError",rV1,Ga6,oV1,MJ0,sV1="AI_MissingToolResultsError",tV1,Wa6,eV1,IV1,Za6="AI_NoImageGeneratedError",$a6,Ka6,Ha6,Xq1="AI_NoObjectGeneratedError",Yq1,Fa6,Qq1,nK,Jq1="AI_NoOutputGeneratedError",Gq1,Va6,Wq1,Zq1,$q1="AI_NoSuchToolError",Kq1,qa6,Hq1,BJ0,Fq1="AI_ToolCallRepairError",Vq1,Ua6,qq1,za6,Ba6,Uq1="AI_UIMessageStreamError",zq1,Da6,Bq1,sB,Na6="AI_InvalidDataContentError",Oa6,La6,wa6,Dq1="AI_InvalidMessageRoleError",Nq1,Ma6,Oq1,Pa6,Lq1="AI_MessageConversionError",wq1,Aa6,Mq1,Ta6,Pq1="AI_RetryError",Aq1,Ea6,Tq1,RV1,Ca6="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",SV1=!1,PJ0=(X)=>{if(X.warnings.length===0)return;let Y=globalThis.AI_SDK_LOG_WARNINGS;if(Y===!1)return;if(typeof Y==="function"){Y(X);return}if(!SV1)SV1=!0,console.info(Ca6);for(let Q of X.warnings)console.warn(ja6({warning:Q,provider:X.provider,model:X.model}))},_a6,ya6=(X)=>{let Y=typeof X==="string"?cB(X):X,Q=(Y[6]&127)<<21|(Y[7]&127)<<14|(Y[8]&127)<<7|Y[9]&127;return Y.slice(Q+10)},Iq1="6.0.49",ha6=async({url:X})=>{var Y;let Q=X.toString();try{let J=await fetch(Q,{headers:IZ({},`ai-sdk/${Iq1}`,Xh())});if(!J.ok)throw new ef({url:Q,statusCode:J.status,statusText:J.statusText});return{data:new Uint8Array(await J.arrayBuffer()),mediaType:(Y=J.headers.get("content-type"))!=null?Y:void 0}}catch(J){if(ef.isInstance(J))throw J;throw new ef({url:Q,cause:J})}},xa6=(X=ha6)=>(Y)=>Promise.all(Y.map(async(Q)=>Q.isUrlSupportedByModel?null:X(Q))),Rq1,ZT,p1,_q1,ca6,yq1,na6,ia6,aa6,bq1,ra6,oa6,sa6,ta6,ea6,Xr6,Yr6,Qr6,$h,Jr6,Wr6=({maxRetries:X=2,initialDelayInMs:Y=2000,backoffFactor:Q=2,abortSignal:J}={})=>async(G)=>cq1(G,{maxRetries:X,delayInMs:Y,backoffFactor:Q,abortSignal:J}),aq1=class{constructor({data:X,mediaType:Y}){let Q=X instanceof Uint8Array;this.base64Data=Q?void 0:X,this.uint8ArrayData=Q?X:void 0,this.mediaType=Y}get base64(){if(this.base64Data==null)this.base64Data=WV(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=cB(this.base64Data);return this.uint8ArrayData}},Zr6,$r6,Hh=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:X}){return X},async parsePartialOutput({text:X}){return{partial:X}},createElementStreamTransform(){return}}),Hr6=({schema:X,name:Y,description:Q})=>{let J=p7(X);return{name:"object",responseFormat:fY(J.jsonSchema).then((G)=>({type:"json",schema:G,...Y!=null&&{name:Y},...Q!=null&&{description:Q}})),async parseCompleteOutput({text:G},W){let Z=await jQ({text:G});if(!Z.success)throw new nK({message:"No object generated: could not parse the response.",cause:Z.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});let $=await d9({value:Z.value,schema:J});if(!$.success)throw new nK({message:"No object generated: response did not match schema.",cause:$.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});return $.value},async parsePartialOutput({text:G}){let W=await HT(G);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:W.value}}},createElementStreamTransform(){return}}},Fr6=({element:X,name:Y,description:Q})=>{let J=p7(X);return{name:"array",responseFormat:fY(J.jsonSchema).then((G)=>{let{$schema:W,...Z}=G;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:Z}},required:["elements"],additionalProperties:!1},...Y!=null&&{name:Y},...Q!=null&&{description:Q}}}),async parseCompleteOutput({text:G},W){let Z=await jQ({text:G});if(!Z.success)throw new nK({message:"No object generated: could not parse the response.",cause:Z.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});let $=Z.value;if($==null||typeof $!=="object"||!("elements"in $)||!Array.isArray($.elements))throw new nK({message:"No object generated: response did not match schema.",cause:new EQ({value:$,cause:"response must be an object with an elements array"}),text:G,response:W.response,usage:W.usage,finishReason:W.finishReason});for(let K of $.elements){let H=await d9({value:K,schema:J});if(!H.success)throw new nK({message:"No object generated: response did not match schema.",cause:H.error,text:G,response:W.response,usage:W.usage,finishReason:W.finishReason})}return $.elements},async parsePartialOutput({text:G}){let W=await HT(G);switch(W.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let Z=W.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))return;let $=W.state==="repaired-parse"&&Z.elements.length>0?Z.elements.slice(0,-1):Z.elements,K=[];for(let H of $){let F=await d9({value:H,schema:J});if(F.success)K.push(F.value)}return{partial:K}}}},createElementStreamTransform(){let G=0;return new TransformStream({transform({partialOutput:W},Z){if(W!=null)for(;G<W.length;G++)Z.enqueue(W[G])}})}}},Vr6=({options:X,name:Y,description:Q})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:X}},required:["result"],additionalProperties:!1},...Y!=null&&{name:Y},...Q!=null&&{description:Q}}),async parseCompleteOutput({text:J},G){let W=await jQ({text:J});if(!W.success)throw new nK({message:"No object generated: could not parse the response.",cause:W.error,text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});let Z=W.value;if(Z==null||typeof Z!=="object"||!("result"in Z)||typeof Z.result!=="string"||!X.includes(Z.result))throw new nK({message:"No object generated: response did not match schema.",cause:new EQ({value:Z,cause:"response must be an object that contains a choice value."}),text:J,response:G.response,usage:G.usage,finishReason:G.finishReason});return Z.result},async parsePartialOutput({text:J}){let G=await HT(J);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let W=G.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string")return;let Z=X.filter(($)=>$.startsWith(W.result));if(G.state==="successful-parse")return Z.includes(W.result)?{partial:W.result}:void 0;else return Z.length===1?{partial:Z[0]}:void 0}}},createElementStreamTransform(){return}}},qr6=({name:X,description:Y}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...X!=null&&{name:X},...Y!=null&&{description:Y}}),async parseCompleteOutput({text:Q},J){let G=await jQ({text:Q});if(!G.success)throw new nK({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:J.response,usage:J.usage,finishReason:J.finishReason});return G.value},async parsePartialOutput({text:Q}){let J=await HT(Q);switch(J.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return J.value===void 0?void 0:{partial:J.value}}},createElementStreamTransform(){return}}},tq1=class{constructor({content:X,finishReason:Y,rawFinishReason:Q,usage:J,warnings:G,request:W,response:Z,providerMetadata:$}){this.content=X,this.finishReason=Y,this.rawFinishReason=Q,this.usage=J,this.warnings=G,this.request=W,this.response=Z,this.providerMetadata=$}get text(){return this.content.filter((X)=>X.type==="text").map((X)=>X.text).join("")}get reasoning(){return this.content.filter((X)=>X.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map((X)=>X.text).join("")}get files(){return this.content.filter((X)=>X.type==="file").map((X)=>X.file)}get sources(){return this.content.filter((X)=>X.type==="source")}get toolCalls(){return this.content.filter((X)=>X.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((X)=>X.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((X)=>X.dynamic===!0)}get toolResults(){return this.content.filter((X)=>X.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((X)=>X.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((X)=>X.dynamic===!0)}},Ur6,zr6=class{constructor(X){this.steps=X.steps,this._output=X.output,this.totalUsage=X.totalUsage}get finalStep(){return this.steps[this.steps.length-1]}get content(){return this.finalStep.content}get text(){return this.finalStep.text}get files(){return this.finalStep.files}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return this.finalStep.reasoning}get toolCalls(){return this.finalStep.toolCalls}get staticToolCalls(){return this.finalStep.staticToolCalls}get dynamicToolCalls(){return this.finalStep.dynamicToolCalls}get toolResults(){return this.finalStep.toolResults}get staticToolResults(){return this.finalStep.staticToolResults}get dynamicToolResults(){return this.finalStep.dynamicToolResults}get sources(){return this.finalStep.sources}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.finalStep.warnings}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get request(){return this.finalStep.request}get usage(){return this.finalStep.usage}get experimental_output(){return this.output}get output(){if(this._output==null)throw new Zq1;return this._output}},QU1,JU1,sY8,Ir6,Sr6=class{constructor({model:X,telemetry:Y,headers:Q,settings:J,maxRetries:G,abortSignal:W,stepTimeoutMs:Z,stepAbortController:$,chunkTimeoutMs:K,chunkAbortController:H,system:F,prompt:V,messages:q,tools:z,toolChoice:D,transforms:N,activeTools:L,repairToolCall:w,stopConditions:C,output:T,providerOptions:A,prepareStep:P,includeRawChunks:j,now:R,generateId:v,onChunk:y,onError:b,onFinish:f,onAbort:r,onStepFinish:g,experimental_context:k,download:h}){this._totalUsage=new GV,this._finishReason=new GV,this._rawFinishReason=new GV,this._steps=new GV,this.outputSpecification=T,this.includeRawChunks=j,this.tools=z;let t,l=[],J0=[],V0=void 0,Y0=void 0,U0=void 0,P0={},v0=[],W1=[],N0=new Map,W0,I0={},f1={},x1=new TransformStream({async transform(F1,k1){var n1,P1,Q1,w0;k1.enqueue(F1);let{part:A0}=F1;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 b({error:hq1(A0.error)});if(A0.type==="text-start")I0[A0.id]={type:"text",text:"",providerMetadata:A0.providerMetadata},l.push(I0[A0.id]);if(A0.type==="text-delta"){let a1=I0[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`text part ${A0.id} not found`},partialOutput:void 0});return}a1.text+=A0.text,a1.providerMetadata=(n1=A0.providerMetadata)!=null?n1:a1.providerMetadata}if(A0.type==="text-end"){let a1=I0[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`text part ${A0.id} not found`},partialOutput:void 0});return}a1.providerMetadata=(P1=A0.providerMetadata)!=null?P1:a1.providerMetadata,delete I0[A0.id]}if(A0.type==="reasoning-start")f1[A0.id]={type:"reasoning",text:"",providerMetadata:A0.providerMetadata},l.push(f1[A0.id]);if(A0.type==="reasoning-delta"){let a1=f1[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`reasoning part ${A0.id} not found`},partialOutput:void 0});return}a1.text+=A0.text,a1.providerMetadata=(Q1=A0.providerMetadata)!=null?Q1:a1.providerMetadata}if(A0.type==="reasoning-end"){let a1=f1[A0.id];if(a1==null){k1.enqueue({part:{type:"error",error:`reasoning part ${A0.id} not found`},partialOutput:void 0});return}a1.providerMetadata=(w0=A0.providerMetadata)!=null?w0:a1.providerMetadata,delete f1[A0.id]}if(A0.type==="file")l.push({type:"file",file:A0.file});if(A0.type==="source")l.push(A0);if(A0.type==="tool-call")l.push(A0);if(A0.type==="tool-result"&&!A0.preliminary)l.push(A0);if(A0.type==="tool-approval-request")l.push(A0);if(A0.type==="tool-error")l.push(A0);if(A0.type==="start-step")l=[],f1={},I0={},P0=A0.request,v0=A0.warnings;if(A0.type==="finish-step"){let a1=await NJ0({content:l,tools:z}),K6=new tq1({content:l,finishReason:A0.finishReason,rawFinishReason:A0.rawFinishReason,usage:A0.usage,warnings:v0,request:P0,response:{...A0.response,messages:[...J0,...a1]},providerMetadata:A0.providerMetadata});await(g==null?void 0:g(K6)),PJ0({warnings:v0,provider:X.provider,model:X.modelId}),W1.push(K6),J0.push(...a1),t.resolve()}if(A0.type==="finish")U0=A0.totalUsage,V0=A0.finishReason,Y0=A0.rawFinishReason},async flush(F1){try{if(W1.length===0){let Q1=(W==null?void 0:W.aborted)?W.reason:new Zq1({message:"No output generated. Check the stream for errors."});S0._finishReason.reject(Q1),S0._rawFinishReason.reject(Q1),S0._totalUsage.reject(Q1),S0._steps.reject(Q1);return}let k1=V0!=null?V0:"other",n1=U0!=null?U0:FJ0();S0._finishReason.resolve(k1),S0._rawFinishReason.resolve(Y0),S0._totalUsage.resolve(n1),S0._steps.resolve(W1);let P1=W1[W1.length-1];await(f==null?void 0:f({finishReason:P1.finishReason,rawFinishReason:P1.rawFinishReason,totalUsage:n1,usage:P1.usage,content:P1.content,text:P1.text,reasoningText:P1.reasoningText,reasoning:P1.reasoning,files:P1.files,sources:P1.sources,toolCalls:P1.toolCalls,staticToolCalls:P1.staticToolCalls,dynamicToolCalls:P1.dynamicToolCalls,toolResults:P1.toolResults,staticToolResults:P1.staticToolResults,dynamicToolResults:P1.dynamicToolResults,request:P1.request,response:P1.response,warnings:P1.warnings,providerMetadata:P1.providerMetadata,steps:W1,experimental_context:k})),W0.setAttributes(await i7({telemetry:Y,attributes:{"ai.response.finishReason":k1,"ai.response.text":{output:()=>P1.text},"ai.response.toolCalls":{output:()=>{var Q1;return((Q1=P1.toolCalls)==null?void 0:Q1.length)?JSON.stringify(P1.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(P1.providerMetadata),"ai.usage.inputTokens":n1.inputTokens,"ai.usage.outputTokens":n1.outputTokens,"ai.usage.totalTokens":n1.totalTokens,"ai.usage.reasoningTokens":n1.reasoningTokens,"ai.usage.cachedInputTokens":n1.cachedInputTokens}}))}catch(k1){F1.error(k1)}finally{W0.end()}}}),y0=Er6();this.addStream=y0.addStream,this.closeStream=y0.close;let L0=y0.stream.getReader(),$0=new ReadableStream({async start(F1){F1.enqueue({type:"start"})},async pull(F1){function k1(){r==null||r({steps:W1}),F1.enqueue({type:"abort",...(W==null?void 0:W.reason)!==void 0?{reason:$G(W.reason)}:{}}),F1.close()}try{let{done:n1,value:P1}=await L0.read();if(n1){F1.close();return}if(W==null?void 0:W.aborted){k1();return}F1.enqueue(P1)}catch(n1){if(CZ(n1)&&(W==null?void 0:W.aborted))k1();else F1.error(n1)}},cancel(F1){return y0.stream.cancel(F1)}});for(let F1 of N)$0=$0.pipeThrough(F1({tools:z,stopStream(){y0.terminate()}}));this.baseStream=$0.pipeThrough(Rr6(T!=null?T:Hh())).pipeThrough(x1);let{maxRetries:E0,retry:H0}=nq1({maxRetries:G,abortSignal:W}),D0=uq1(Y),o0=DJ0(J),k0=xq1({model:X,telemetry:Y,headers:Q,settings:{...o0,maxRetries:E0}}),S0=this;KT({name:"ai.streamText",attributes:i7({telemetry:Y,attributes:{...$T({operationId:"ai.streamText",telemetry:Y}),...k0,"ai.prompt":{input:()=>JSON.stringify({system:F,prompt:V,messages:q})}}}),tracer:D0,endWhenDone:!1,fn:async(F1)=>{W0=F1;let k1=await fq1({system:F,prompt:V,messages:q}),n1=k1.messages,P1=[],{approvedToolApprovals:Q1,deniedToolApprovals:w0}=iq1({messages:n1});if(w0.length>0||Q1.length>0){let a1=[...Q1,...w0].filter((O)=>O.toolCall.providerExecuted),K6=Q1.filter((O)=>!O.toolCall.providerExecuted),U4=w0.filter((O)=>!O.toolCall.providerExecuted),G1=w0.filter((O)=>O.toolCall.providerExecuted),M1,CQ=new ReadableStream({start(O){M1=O}});S0.addStream(CQ);try{for(let _ of[...U4,...G1])M1==null||M1.enqueue({type:"tool-output-denied",toolCallId:_.toolCall.toolCallId,toolName:_.toolCall.toolName});let O=[];if(await Promise.all(K6.map(async(_)=>{let o=await TJ0({toolCall:_.toolCall,tools:z,tracer:D0,telemetry:Y,messages:n1,abortSignal:W,experimental_context:k,onPreliminaryToolResult:(G0)=>{M1==null||M1.enqueue(G0)}});if(o!=null)M1==null||M1.enqueue(o),O.push(o)})),a1.length>0)P1.push({role:"tool",content:a1.map((_)=>({type:"tool-approval-response",approvalId:_.approvalResponse.approvalId,approved:_.approvalResponse.approved,reason:_.approvalResponse.reason,providerExecuted:!0}))});if(O.length>0||U4.length>0){let _=[];for(let o of O)_.push({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:await HV({toolCallId:o.toolCallId,input:o.input,tool:z==null?void 0:z[o.toolName],output:o.type==="tool-result"?o.output:o.error,errorMode:o.type==="tool-error"?"json":"none"})});for(let o of U4)_.push({type:"tool-result",toolCallId:o.toolCall.toolCallId,toolName:o.toolCall.toolName,output:{type:"execution-denied",reason:o.approvalResponse.reason}});P1.push({role:"tool",content:_})}}finally{M1==null||M1.close()}}J0.push(...P1);async function A0({currentStep:a1,responseMessages:K6,usage:U4}){var G1,M1,CQ,O,_,o;let G0=S0.includeRawChunks,B=Z!=null?setTimeout(()=>$.abort(),Z):void 0,E=void 0;function c(){if(K!=null){if(E!=null)clearTimeout(E);E=setTimeout(()=>H.abort(),K)}}function e(){if(E!=null)clearTimeout(E),E=void 0}function X0(){if(B!=null)clearTimeout(B)}t=new GV;let n=[...n1,...K6],C0=await(P==null?void 0:P({model:X,steps:W1,stepNumber:W1.length,messages:n,experimental_context:k})),A1=Kh((G1=C0==null?void 0:C0.model)!=null?G1:X),i1=await kq1({prompt:{system:(M1=C0==null?void 0:C0.system)!=null?M1:k1.system,messages:(CQ=C0==null?void 0:C0.messages)!=null?CQ:n},supportedUrls:await A1.supportedUrls,download:h}),{toolChoice:f0,tools:y1}=await vq1({tools:z,toolChoice:(O=C0==null?void 0:C0.toolChoice)!=null?O:D,activeTools:(_=C0==null?void 0:C0.activeTools)!=null?_:L});k=(o=C0==null?void 0:C0.experimental_context)!=null?o:k;let y8=Fh(A,C0==null?void 0:C0.providerOptions),{result:{stream:kX,response:y6,request:v4},doStreamSpan:KY,startTimestampMs:UG}=await H0(()=>KT({name:"ai.streamText.doStream",attributes:i7({telemetry:Y,attributes:{...$T({operationId:"ai.streamText.doStream",telemetry:Y}),...k0,"ai.model.provider":A1.provider,"ai.model.id":A1.modelId,"ai.prompt.messages":{input:()=>lq1(i1)},"ai.prompt.tools":{input:()=>y1==null?void 0:y1.map((r1)=>JSON.stringify(r1))},"ai.prompt.toolChoice":{input:()=>f0!=null?JSON.stringify(f0):void 0},"gen_ai.system":A1.provider,"gen_ai.request.model":A1.modelId,"gen_ai.request.frequency_penalty":o0.frequencyPenalty,"gen_ai.request.max_tokens":o0.maxOutputTokens,"gen_ai.request.presence_penalty":o0.presencePenalty,"gen_ai.request.stop_sequences":o0.stopSequences,"gen_ai.request.temperature":o0.temperature,"gen_ai.request.top_k":o0.topK,"gen_ai.request.top_p":o0.topP}}),tracer:D0,endWhenDone:!1,fn:async(r1)=>({startTimestampMs:R(),doStreamSpan:r1,result:await A1.doStream({...o0,tools:y1,toolChoice:f0,responseFormat:await(T==null?void 0:T.responseFormat),prompt:i1,providerOptions:y8,abortSignal:W,headers:Q,includeRawChunks:G0})})})),Y1=Cr6({tools:z,generatorStream:kX,tracer:D0,telemetry:Y,system:F,messages:n,repairToolCall:w,abortSignal:W,experimental_context:k,generateId:v}),E6=v4!=null?v4:{},b8=[],hY=[],X1,j6={},p8="other",HJ=void 0,IQ=FJ0(),Mh,xJ0=!0,zG={id:v(),timestamp:new Date,modelId:X.modelId},gJ0="";S0.addStream(Y1.pipeThrough(new TransformStream({async transform(r1,HY){var JD,GD,VT,vX,FV;if(c(),r1.type==="stream-start"){X1=r1.warnings;return}if(xJ0){let OX=R()-UG;xJ0=!1,KY.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":OX}),KY.setAttributes({"ai.response.msToFirstChunk":OX}),HY.enqueue({type:"start-step",request:E6,warnings:X1!=null?X1:[]})}let Ph=r1.type;switch(Ph){case"tool-approval-request":case"text-start":case"text-end":{HY.enqueue(r1);break}case"text-delta":{if(r1.delta.length>0)HY.enqueue({type:"text-delta",id:r1.id,text:r1.delta,providerMetadata:r1.providerMetadata}),gJ0+=r1.delta;break}case"reasoning-start":case"reasoning-end":{HY.enqueue(r1);break}case"reasoning-delta":{HY.enqueue({type:"reasoning-delta",id:r1.id,text:r1.delta,providerMetadata:r1.providerMetadata});break}case"tool-call":{HY.enqueue(r1),b8.push(r1);break}case"tool-result":{if(HY.enqueue(r1),!r1.preliminary)hY.push(r1);break}case"tool-error":{HY.enqueue(r1),hY.push(r1);break}case"response-metadata":{zG={id:(JD=r1.id)!=null?JD:zG.id,timestamp:(GD=r1.timestamp)!=null?GD:zG.timestamp,modelId:(VT=r1.modelId)!=null?VT:zG.modelId};break}case"finish":{IQ=r1.usage,p8=r1.finishReason,HJ=r1.rawFinishReason,Mh=r1.providerMetadata;let OX=R()-UG;KY.addEvent("ai.stream.finish"),KY.setAttributes({"ai.response.msToFinish":OX,"ai.response.avgOutputTokensPerSecond":1000*((vX=IQ.outputTokens)!=null?vX:0)/OX});break}case"file":{HY.enqueue(r1);break}case"source":{HY.enqueue(r1);break}case"tool-input-start":{j6[r1.id]=r1.toolName;let OX=z==null?void 0:z[r1.toolName];if((OX==null?void 0:OX.onInputStart)!=null)await OX.onInputStart({toolCallId:r1.id,messages:n,abortSignal:W,experimental_context:k});HY.enqueue({...r1,dynamic:(FV=r1.dynamic)!=null?FV:(OX==null?void 0:OX.type)==="dynamic",title:OX==null?void 0:OX.title});break}case"tool-input-end":{delete j6[r1.id],HY.enqueue(r1);break}case"tool-input-delta":{let OX=j6[r1.id],Ah=z==null?void 0:z[OX];if((Ah==null?void 0:Ah.onInputDelta)!=null)await Ah.onInputDelta({inputTextDelta:r1.delta,toolCallId:r1.id,messages:n,abortSignal:W,experimental_context:k});HY.enqueue(r1);break}case"error":{HY.enqueue(r1),p8="error";break}case"raw":{if(G0)HY.enqueue(r1);break}default:throw Error(`Unknown chunk type: ${Ph}`)}},async flush(r1){let HY=b8.length>0?JSON.stringify(b8):void 0;try{KY.setAttributes(await i7({telemetry:Y,attributes:{"ai.response.finishReason":p8,"ai.response.text":{output:()=>gJ0},"ai.response.toolCalls":{output:()=>HY},"ai.response.id":zG.id,"ai.response.model":zG.modelId,"ai.response.timestamp":zG.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Mh),"ai.usage.inputTokens":IQ.inputTokens,"ai.usage.outputTokens":IQ.outputTokens,"ai.usage.totalTokens":IQ.totalTokens,"ai.usage.reasoningTokens":IQ.reasoningTokens,"ai.usage.cachedInputTokens":IQ.cachedInputTokens,"gen_ai.response.finish_reasons":[p8],"gen_ai.response.id":zG.id,"gen_ai.response.model":zG.modelId,"gen_ai.usage.input_tokens":IQ.inputTokens,"gen_ai.usage.output_tokens":IQ.outputTokens}}))}catch(vX){}finally{KY.end()}r1.enqueue({type:"finish-step",finishReason:p8,rawFinishReason:HJ,usage:IQ,providerMetadata:Mh,response:{...zG,headers:y6==null?void 0:y6.headers}});let JD=pq1(U4,IQ);await t.promise;let GD=b8.filter((vX)=>vX.providerExecuted!==!0),VT=hY.filter((vX)=>vX.providerExecuted!==!0);for(let vX of b8){if(vX.providerExecuted!==!0)continue;let FV=z==null?void 0:z[vX.toolName];if((FV==null?void 0:FV.type)==="provider"&&FV.supportsDeferredResults){if(!hY.some((OX)=>OX.type==="tool-result"&&OX.toolCallId===vX.toolCallId))N0.set(vX.toolCallId,{toolName:vX.toolName})}}for(let vX of hY)if(vX.type==="tool-result")N0.delete(vX.toolCallId);if(X0(),e(),(GD.length>0&&VT.length===GD.length||N0.size>0)&&!await eq1({stopConditions:C,steps:W1})){K6.push(...await NJ0({content:W1[W1.length-1].content,tools:z}));try{await A0({currentStep:a1+1,responseMessages:K6,usage:JD})}catch(vX){r1.enqueue({type:"error",error:vX}),S0.closeStream()}}else r1.enqueue({type:"finish",finishReason:p8,rawFinishReason:HJ,totalUsage:JD}),S0.closeStream()}})))}await A0({currentStep:0,responseMessages:P1,usage:FJ0()})}}).catch((F1)=>{S0.addStream(new ReadableStream({start(k1){k1.enqueue({type:"error",error:F1}),k1.close()}})),S0.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then((X)=>X[X.length-1])}get content(){return this.finalStep.then((X)=>X.content)}get warnings(){return this.finalStep.then((X)=>X.warnings)}get providerMetadata(){return this.finalStep.then((X)=>X.providerMetadata)}get text(){return this.finalStep.then((X)=>X.text)}get reasoningText(){return this.finalStep.then((X)=>X.reasoningText)}get reasoning(){return this.finalStep.then((X)=>X.reasoning)}get sources(){return this.finalStep.then((X)=>X.sources)}get files(){return this.finalStep.then((X)=>X.files)}get toolCalls(){return this.finalStep.then((X)=>X.toolCalls)}get staticToolCalls(){return this.finalStep.then((X)=>X.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then((X)=>X.dynamicToolCalls)}get toolResults(){return this.finalStep.then((X)=>X.toolResults)}get staticToolResults(){return this.finalStep.then((X)=>X.staticToolResults)}get dynamicToolResults(){return this.finalStep.then((X)=>X.dynamicToolResults)}get usage(){return this.finalStep.then((X)=>X.usage)}get request(){return this.finalStep.then((X)=>X.request)}get response(){return this.finalStep.then((X)=>X.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[X,Y]=this.baseStream.tee();return this.baseStream=Y,X}get textStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({part:X},Y){if(X.type==="text-delta")Y.enqueue(X.text)}})))}get fullStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({part:X},Y){Y.enqueue(X)}})))}async consumeStream(X){var Y;try{await EJ0({stream:this.fullStream,onError:X==null?void 0:X.onError})}catch(Q){(Y=X==null?void 0:X.onError)==null||Y.call(X,Q)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return JT(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:X},Y){if(X!=null)Y.enqueue(X)}})))}get elementStream(){var X,Y,Q;let J=(X=this.outputSpecification)==null?void 0:X.createElementStreamTransform();if(J==null)throw new l31({functionality:`element streams in ${(Q=(Y=this.outputSpecification)==null?void 0:Y.name)!=null?Q:"text"} mode`});return JT(this.teeStream().pipeThrough(J))}get output(){return this.finalStep.then((X)=>{var Y;return((Y=this.outputSpecification)!=null?Y:Hh()).parseCompleteOutput({text:X.text},{response:X.response,usage:X.usage,finishReason:X.finishReason})})}toUIMessageStream({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G=!0,sendSources:W=!1,sendStart:Z=!0,sendFinish:$=!0,onError:K=$G}={}){let H=Y!=null?Lr6({originalMessages:X,responseMessageId:Y}):void 0,F=(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}),N=q.type;switch(N){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(W&&q.sourceType==="url")z.enqueue({type:"source-url",sourceId:q.id,url:q.url,title:q.title,...q.providerMetadata!=null?{providerMetadata:q.providerMetadata}:{}});if(W&&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=F(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=F(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:K(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=F(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=F(q);z.enqueue({type:"tool-output-error",toolCallId:q.toolCallId,errorText:K(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:K(q.error)});break}case"start-step":{z.enqueue({type:"start-step"});break}case"finish-step":{z.enqueue({type:"finish-step"});break}case"start":{if(Z)z.enqueue({type:"start",...D!=null?{messageMetadata:D}:{},...H!=null?{messageId:H}:{}});break}case"finish":{if($)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: ${N}`)}if(D!=null&&N!=="start"&&N!=="finish")z.enqueue({type:"message-metadata",messageMetadata:D})}}));return JT(Ar6({stream:V,messageId:H!=null?H:Y==null?void 0:Y(),originalMessages:X,onFinish:Q,onError:K}))}pipeUIMessageStreamToResponse(X,{originalMessages:Y,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:W,sendSources:Z,sendFinish:$,sendStart:K,onError:H,...F}={}){Tr6({response:X,stream:this.toUIMessageStream({originalMessages:Y,generateMessageId:Q,onFinish:J,messageMetadata:G,sendReasoning:W,sendSources:Z,sendFinish:$,sendStart:K,onError:H}),...F})}pipeTextStreamToResponse(X,Y){Nr6({response:X,textStream:this.textStream,...Y})}toUIMessageStreamResponse({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:W,sendFinish:Z,sendStart:$,onError:K,...H}={}){return Or6({stream:this.toUIMessageStream({originalMessages:X,generateMessageId:Y,onFinish:Q,messageMetadata:J,sendReasoning:G,sendSources:W,sendFinish:Z,sendStart:$,onError:K}),...H})}toTextStreamResponse(X){return Dr6({textStream:this.textStream,...X})}},kr6,G98,Z98,_r6="AI_NoSuchProviderError",yr6,br6,fr6;var eB=S(()=>{Y4();Y4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();q4();HJ0();Y4();Y4();Y4();Y4();q4();Y4();r6();q4();Y4();q4();Y4();r6();r6();r6();r6();r6();HJ0();q4();q4();Y4();Y4();Y4();q4();Y4();Y4();Y4();q4();Y4();Y4();r6();Y4();Y4();Y4();q4();Y4();r6();Y4();Y4();gq1=w6(H1(),1),tB=w6(H1(),1),ai6=Object.defineProperty,uV1=`vercel.ai.error.${gV1}`,oi6=Symbol.for(uV1),qG=class extends O1{constructor({parameter:X,value:Y,message:Q}){super({name:gV1,message:`Invalid argument for parameter ${X}: ${Q}`});this[mV1]=!0,this.parameter=X,this.value=Y}static isInstance(X){return O1.hasMarker(X,uV1)}};mV1=oi6;ti6=`vercel.ai.error.${si6}`,ei6=Symbol.for(ti6);Xa6=ei6;dV1=`vercel.ai.error.${lV1}`,Ya6=Symbol.for(dV1),Qa6=class extends O1{constructor({approvalId:X}){super({name:lV1,message:`Tool approval response references unknown approvalId: "${X}". No matching tool-approval-request found in message history.`});this[pV1]=!0,this.approvalId=X}static isInstance(X){return O1.hasMarker(X,dV1)}};pV1=Ya6;nV1=`vercel.ai.error.${cV1}`,Ja6=Symbol.for(nV1),wJ0=class extends O1{constructor({toolInput:X,toolName:Y,cause:Q,message:J=`Invalid input for tool ${Y}: ${$G(Q)}`}){super({name:cV1,message:J,cause:Q});this[iV1]=!0,this.toolInput=X,this.toolName=Y}static isInstance(X){return O1.hasMarker(X,nV1)}};iV1=Ja6;rV1=`vercel.ai.error.${aV1}`,Ga6=Symbol.for(rV1),MJ0=class extends O1{constructor({toolCallId:X,approvalId:Y}){super({name:aV1,message:`Tool call "${X}" not found for approval request "${Y}".`});this[oV1]=!0,this.toolCallId=X,this.approvalId=Y}static isInstance(X){return O1.hasMarker(X,rV1)}};oV1=Ga6;tV1=`vercel.ai.error.${sV1}`,Wa6=Symbol.for(tV1),IV1=class extends O1{constructor({toolCallIds:X}){super({name:sV1,message:`Tool result${X.length>1?"s are":" is"} missing for tool call${X.length>1?"s":""} ${X.join(", ")}.`});this[eV1]=!0,this.toolCallIds=X}static isInstance(X){return O1.hasMarker(X,tV1)}};eV1=Wa6;$a6=`vercel.ai.error.${Za6}`,Ka6=Symbol.for($a6);Ha6=Ka6;Yq1=`vercel.ai.error.${Xq1}`,Fa6=Symbol.for(Yq1),nK=class extends O1{constructor({message:X="No object generated.",cause:Y,text:Q,response:J,usage:G,finishReason:W}){super({name:Xq1,message:X,cause:Y});this[Qq1]=!0,this.text=Q,this.response=J,this.usage=G,this.finishReason=W}static isInstance(X){return O1.hasMarker(X,Yq1)}};Qq1=Fa6;Gq1=`vercel.ai.error.${Jq1}`,Va6=Symbol.for(Gq1),Zq1=class extends O1{constructor({message:X="No output generated.",cause:Y}={}){super({name:Jq1,message:X,cause:Y});this[Wq1]=!0}static isInstance(X){return O1.hasMarker(X,Gq1)}};Wq1=Va6;Kq1=`vercel.ai.error.${$q1}`,qa6=Symbol.for(Kq1),BJ0=class extends O1{constructor({toolName:X,availableTools:Y=void 0,message:Q=`Model tried to call unavailable tool '${X}'. ${Y===void 0?"No tools are available.":`Available tools: ${Y.join(", ")}.`}`}){super({name:$q1,message:Q});this[Hq1]=!0,this.toolName=X,this.availableTools=Y}static isInstance(X){return O1.hasMarker(X,Kq1)}};Hq1=qa6;Vq1=`vercel.ai.error.${Fq1}`,Ua6=Symbol.for(Vq1),za6=class extends O1{constructor({cause:X,originalError:Y,message:Q=`Error repairing tool call: ${$G(X)}`}){super({name:Fq1,message:Q,cause:X});this[qq1]=!0,this.originalError=Y}static isInstance(X){return O1.hasMarker(X,Vq1)}};qq1=Ua6;Ba6=class extends O1{constructor(X){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${X.version} for provider "${X.provider}" and model "${X.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=X.version,this.provider=X.provider,this.modelId=X.modelId}},zq1=`vercel.ai.error.${Uq1}`,Da6=Symbol.for(zq1),sB=class extends O1{constructor({chunkType:X,chunkId:Y,message:Q}){super({name:Uq1,message:Q});this[Bq1]=!0,this.chunkType=X,this.chunkId=Y}static isInstance(X){return O1.hasMarker(X,zq1)}};Bq1=Da6;Oa6=`vercel.ai.error.${Na6}`,La6=Symbol.for(Oa6);wa6=La6;Nq1=`vercel.ai.error.${Dq1}`,Ma6=Symbol.for(Nq1),Pa6=class extends O1{constructor({role:X,message:Y=`Invalid message role: '${X}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:Dq1,message:Y});this[Oq1]=!0,this.role=X}static isInstance(X){return O1.hasMarker(X,Nq1)}};Oq1=Ma6;wq1=`vercel.ai.error.${Lq1}`,Aa6=Symbol.for(wq1),Ta6=class extends O1{constructor({originalMessage:X,message:Y}){super({name:Lq1,message:Y});this[Mq1]=!0,this.originalMessage=X}static isInstance(X){return O1.hasMarker(X,wq1)}};Mq1=Aa6;Aq1=`vercel.ai.error.${Pq1}`,Ea6=Symbol.for(Aq1),RV1=class extends O1{constructor({message:X,reason:Y,errors:Q}){super({name:Pq1,message:X});this[Tq1]=!0,this.reason=Y,this.errors=Q,this.lastError=Q[Q.length-1]}static isInstance(X){return O1.hasMarker(X,Aq1)}};Tq1=Ea6;_a6=[{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]}];Rq1=U.union([U.string(),U.instanceof(Uint8Array),U.instanceof(ArrayBuffer),U.custom((X)=>{var Y,Q;return(Q=(Y=globalThis.Buffer)==null?void 0:Y.isBuffer(X))!=null?Q:!1},{message:"Must be a Buffer"})]);ZT=U.lazy(()=>U.union([U.null(),U.string(),U.number(),U.boolean(),U.record(U.string(),ZT.optional()),U.array(ZT)])),p1=U.record(U.string(),U.record(U.string(),ZT.optional())),_q1=U.object({type:U.literal("text"),text:U.string(),providerOptions:p1.optional()}),ca6=U.object({type:U.literal("image"),image:U.union([Rq1,U.instanceof(URL)]),mediaType:U.string().optional(),providerOptions:p1.optional()}),yq1=U.object({type:U.literal("file"),data:U.union([Rq1,U.instanceof(URL)]),filename:U.string().optional(),mediaType:U.string(),providerOptions:p1.optional()}),na6=U.object({type:U.literal("reasoning"),text:U.string(),providerOptions:p1.optional()}),ia6=U.object({type:U.literal("tool-call"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerOptions:p1.optional(),providerExecuted:U.boolean().optional()}),aa6=U.discriminatedUnion("type",[U.object({type:U.literal("text"),value:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("json"),value:ZT,providerOptions:p1.optional()}),U.object({type:U.literal("execution-denied"),reason:U.string().optional(),providerOptions:p1.optional()}),U.object({type:U.literal("error-text"),value:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("error-json"),value:ZT,providerOptions:p1.optional()}),U.object({type:U.literal("content"),value:U.array(U.union([U.object({type:U.literal("text"),text:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("media"),data:U.string(),mediaType:U.string()}),U.object({type:U.literal("file-data"),data:U.string(),mediaType:U.string(),filename:U.string().optional(),providerOptions:p1.optional()}),U.object({type:U.literal("file-url"),url:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("file-id"),fileId:U.union([U.string(),U.record(U.string(),U.string())]),providerOptions:p1.optional()}),U.object({type:U.literal("image-data"),data:U.string(),mediaType:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("image-url"),url:U.string(),providerOptions:p1.optional()}),U.object({type:U.literal("image-file-id"),fileId:U.union([U.string(),U.record(U.string(),U.string())]),providerOptions:p1.optional()}),U.object({type:U.literal("custom"),providerOptions:p1.optional()})]))})]),bq1=U.object({type:U.literal("tool-result"),toolCallId:U.string(),toolName:U.string(),output:aa6,providerOptions:p1.optional()}),ra6=U.object({type:U.literal("tool-approval-request"),approvalId:U.string(),toolCallId:U.string()}),oa6=U.object({type:U.literal("tool-approval-response"),approvalId:U.string(),approved:U.boolean(),reason:U.string().optional()}),sa6=U.object({role:U.literal("system"),content:U.string(),providerOptions:p1.optional()}),ta6=U.object({role:U.literal("user"),content:U.union([U.string(),U.array(U.union([_q1,ca6,yq1]))]),providerOptions:p1.optional()}),ea6=U.object({role:U.literal("assistant"),content:U.union([U.string(),U.array(U.union([_q1,yq1,na6,ia6,bq1,ra6]))]),providerOptions:p1.optional()}),Xr6=U.object({role:U.literal("tool"),content:U.array(U.union([bq1,oa6])),providerOptions:p1.optional()}),Yr6=U.union([sa6,ta6,ea6,Xr6]);Qr6={startSpan(){return $h},startActiveSpan(X,Y,Q,J){if(typeof Y==="function")return Y($h);if(typeof Q==="function")return Q($h);if(typeof J==="function")return J($h)}},$h={spanContext(){return Jr6},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Jr6={traceId:"",spanId:"",traceFlags:0};Zr6=class extends aq1{constructor(X){super(X);this.type="file"}};$r6={};ri6($r6,{array:()=>Fr6,choice:()=>Vr6,json:()=>qr6,object:()=>Hr6,text:()=>Hh});Ur6=d7({prefix:"aitxt",size:24});QU1=class extends TransformStream{constructor(){super({transform(X,Y){Y.enqueue(`data: ${JSON.stringify(X)}
1219
1219
 
1220
1220
  `)},flush(X){X.enqueue(`data: [DONE]
1221
1221
 
1222
- `)}})}},JU1={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};tY8=$Y(()=>NX(U.union([U.strictObject({type:U.literal("text-start"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("text-delta"),id:U.string(),delta:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("text-end"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("error"),errorText:U.string()}),U.strictObject({type:U.literal("tool-input-start"),toolCallId:U.string(),toolName:U.string(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-input-delta"),toolCallId:U.string(),inputTextDelta:U.string()}),U.strictObject({type:U.literal("tool-input-available"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-input-error"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),errorText:U.string(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-approval-request"),approvalId:U.string(),toolCallId:U.string()}),U.strictObject({type:U.literal("tool-output-available"),toolCallId:U.string(),output:U.unknown(),providerExecuted:U.boolean().optional(),dynamic:U.boolean().optional(),preliminary:U.boolean().optional()}),U.strictObject({type:U.literal("tool-output-error"),toolCallId:U.string(),errorText:U.string(),providerExecuted:U.boolean().optional(),dynamic:U.boolean().optional()}),U.strictObject({type:U.literal("tool-output-denied"),toolCallId:U.string()}),U.strictObject({type:U.literal("reasoning-start"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("reasoning-delta"),id:U.string(),delta:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("reasoning-end"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("source-url"),sourceId:U.string(),url:U.string(),title:U.string().optional(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("source-document"),sourceId:U.string(),mediaType:U.string(),title:U.string(),filename:U.string().optional(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("file"),url:U.string(),mediaType:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.custom((X)=>typeof X==="string"&&X.startsWith("data-"),{message:'Type must start with "data-"'}),id:U.string().optional(),data:U.unknown(),transient:U.boolean().optional()}),U.strictObject({type:U.literal("start-step")}),U.strictObject({type:U.literal("finish-step")}),U.strictObject({type:U.literal("start"),messageId:U.string().optional(),messageMetadata:U.unknown().optional()}),U.strictObject({type:U.literal("finish"),finishReason:U.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:U.unknown().optional()}),U.strictObject({type:U.literal("abort"),reason:U.string().optional()}),U.strictObject({type:U.literal("message-metadata"),messageMetadata:U.unknown()})])));Ir6=d7({prefix:"aitxt",size:24});kr6=$Y(()=>NX(U.array(U.object({id:U.string(),role:U.enum(["system","user","assistant"]),metadata:U.unknown().optional(),parts:U.array(U.union([U.object({type:U.literal("text"),text:U.string(),state:U.enum(["streaming","done"]).optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("reasoning"),text:U.string(),state:U.enum(["streaming","done"]).optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("source-url"),sourceId:U.string(),url:U.string(),title:U.string().optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("source-document"),sourceId:U.string(),mediaType:U.string(),title:U.string(),filename:U.string().optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("file"),mediaType:U.string(),filename:U.string().optional(),url:U.string(),providerMetadata:p1.optional()}),U.object({type:U.literal("step-start")}),U.object({type:U.string().startsWith("data-"),id:U.string().optional(),data:U.unknown()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("input-streaming"),input:U.unknown().optional(),providerExecuted:U.boolean().optional(),callProviderMetadata:p1.optional(),output:U.never().optional(),errorText:U.never().optional(),approval:U.never().optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("input-available"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.never().optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("approval-requested"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.never().optional(),reason:U.never().optional()})}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("approval-responded"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.boolean(),reason:U.string().optional()})}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-available"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.unknown(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),preliminary:U.boolean().optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-error"),input:U.unknown(),rawInput:U.unknown().optional(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.string(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-denied"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!1),reason:U.string().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("input-streaming"),providerExecuted:U.boolean().optional(),callProviderMetadata:p1.optional(),input:U.unknown().optional(),output:U.never().optional(),errorText:U.never().optional(),approval:U.never().optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("input-available"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.never().optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("approval-requested"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.never().optional(),reason:U.never().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("approval-responded"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.boolean(),reason:U.string().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-available"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.unknown(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),preliminary:U.boolean().optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-error"),providerExecuted:U.boolean().optional(),input:U.unknown(),rawInput:U.unknown().optional(),output:U.never().optional(),errorText:U.string(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-denied"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!1),reason:U.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));W98=d7({prefix:"aiobj",size:24}),$98=d7({prefix:"aiobj",size:24});yr6=`vercel.ai.error.${_r6}`,br6=Symbol.for(yr6);fr6=br6});function FU1(X){if(!X?.trim())return`You are an AI assistant running in an MCP Mesh environment.
1222
+ `)}})}},JU1={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};sY8=$Y(()=>NX(U.union([U.strictObject({type:U.literal("text-start"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("text-delta"),id:U.string(),delta:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("text-end"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("error"),errorText:U.string()}),U.strictObject({type:U.literal("tool-input-start"),toolCallId:U.string(),toolName:U.string(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-input-delta"),toolCallId:U.string(),inputTextDelta:U.string()}),U.strictObject({type:U.literal("tool-input-available"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-input-error"),toolCallId:U.string(),toolName:U.string(),input:U.unknown(),providerExecuted:U.boolean().optional(),providerMetadata:p1.optional(),dynamic:U.boolean().optional(),errorText:U.string(),title:U.string().optional()}),U.strictObject({type:U.literal("tool-approval-request"),approvalId:U.string(),toolCallId:U.string()}),U.strictObject({type:U.literal("tool-output-available"),toolCallId:U.string(),output:U.unknown(),providerExecuted:U.boolean().optional(),dynamic:U.boolean().optional(),preliminary:U.boolean().optional()}),U.strictObject({type:U.literal("tool-output-error"),toolCallId:U.string(),errorText:U.string(),providerExecuted:U.boolean().optional(),dynamic:U.boolean().optional()}),U.strictObject({type:U.literal("tool-output-denied"),toolCallId:U.string()}),U.strictObject({type:U.literal("reasoning-start"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("reasoning-delta"),id:U.string(),delta:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("reasoning-end"),id:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("source-url"),sourceId:U.string(),url:U.string(),title:U.string().optional(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("source-document"),sourceId:U.string(),mediaType:U.string(),title:U.string(),filename:U.string().optional(),providerMetadata:p1.optional()}),U.strictObject({type:U.literal("file"),url:U.string(),mediaType:U.string(),providerMetadata:p1.optional()}),U.strictObject({type:U.custom((X)=>typeof X==="string"&&X.startsWith("data-"),{message:'Type must start with "data-"'}),id:U.string().optional(),data:U.unknown(),transient:U.boolean().optional()}),U.strictObject({type:U.literal("start-step")}),U.strictObject({type:U.literal("finish-step")}),U.strictObject({type:U.literal("start"),messageId:U.string().optional(),messageMetadata:U.unknown().optional()}),U.strictObject({type:U.literal("finish"),finishReason:U.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:U.unknown().optional()}),U.strictObject({type:U.literal("abort"),reason:U.string().optional()}),U.strictObject({type:U.literal("message-metadata"),messageMetadata:U.unknown()})])));Ir6=d7({prefix:"aitxt",size:24});kr6=$Y(()=>NX(U.array(U.object({id:U.string(),role:U.enum(["system","user","assistant"]),metadata:U.unknown().optional(),parts:U.array(U.union([U.object({type:U.literal("text"),text:U.string(),state:U.enum(["streaming","done"]).optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("reasoning"),text:U.string(),state:U.enum(["streaming","done"]).optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("source-url"),sourceId:U.string(),url:U.string(),title:U.string().optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("source-document"),sourceId:U.string(),mediaType:U.string(),title:U.string(),filename:U.string().optional(),providerMetadata:p1.optional()}),U.object({type:U.literal("file"),mediaType:U.string(),filename:U.string().optional(),url:U.string(),providerMetadata:p1.optional()}),U.object({type:U.literal("step-start")}),U.object({type:U.string().startsWith("data-"),id:U.string().optional(),data:U.unknown()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("input-streaming"),input:U.unknown().optional(),providerExecuted:U.boolean().optional(),callProviderMetadata:p1.optional(),output:U.never().optional(),errorText:U.never().optional(),approval:U.never().optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("input-available"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.never().optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("approval-requested"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.never().optional(),reason:U.never().optional()})}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("approval-responded"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.boolean(),reason:U.string().optional()})}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-available"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.unknown(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),preliminary:U.boolean().optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-error"),input:U.unknown(),rawInput:U.unknown().optional(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.string(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.literal("dynamic-tool"),toolName:U.string(),toolCallId:U.string(),state:U.literal("output-denied"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!1),reason:U.string().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("input-streaming"),providerExecuted:U.boolean().optional(),callProviderMetadata:p1.optional(),input:U.unknown().optional(),output:U.never().optional(),errorText:U.never().optional(),approval:U.never().optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("input-available"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.never().optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("approval-requested"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.never().optional(),reason:U.never().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("approval-responded"),input:U.unknown(),providerExecuted:U.boolean().optional(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.boolean(),reason:U.string().optional()})}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-available"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.unknown(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),preliminary:U.boolean().optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-error"),providerExecuted:U.boolean().optional(),input:U.unknown(),rawInput:U.unknown().optional(),output:U.never().optional(),errorText:U.string(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!0),reason:U.string().optional()}).optional()}),U.object({type:U.string().startsWith("tool-"),toolCallId:U.string(),state:U.literal("output-denied"),providerExecuted:U.boolean().optional(),input:U.unknown(),output:U.never().optional(),errorText:U.never().optional(),callProviderMetadata:p1.optional(),approval:U.object({id:U.string(),approved:U.literal(!1),reason:U.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));G98=d7({prefix:"aiobj",size:24}),Z98=d7({prefix:"aiobj",size:24});yr6=`vercel.ai.error.${_r6}`,br6=Symbol.for(yr6);fr6=br6});function FU1(X){if(!X?.trim())return`You are an AI assistant running in an MCP Mesh environment.
1223
1223
 
1224
1224
  ## About MCP Mesh
1225
1225