@decocms/mesh 2.72.1 → 2.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/client/assets/{AlertCircle-BOIQEKjW.js → AlertCircle-C_hR5usO.js} +1 -1
  2. package/dist/client/assets/{ArrowUp-BRclUYsx.js → ArrowUp-DnJUZ1OS.js} +1 -1
  3. package/dist/client/assets/{Calendar-DydX5uRn.js → Calendar-Dnf0_EY9.js} +1 -1
  4. package/dist/client/assets/{Check-Bkb61eVw.js → Check-Sa4xK5Hg.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-ZkjIkaWv.js → CheckCircle-DRhauZbp.js} +1 -1
  6. package/dist/client/assets/{CheckDone01-BusS8ANA.js → CheckDone01-I6GfoGdi.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-DqJTvBdv.js → ChevronDown-DmXLJeAy.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-BBcOJkyP.js → ChevronRight-By4KEpZh.js} +1 -1
  9. package/dist/client/assets/{Code01-DEMYMNLO.js → Code01-h_k8K-1e.js} +1 -1
  10. package/dist/client/assets/{Copy01-BvgMlJ5t.js → Copy01-jvqvZrKj.js} +1 -1
  11. package/dist/client/assets/{DotsHorizontal-C3Pu-YCA.js → DotsHorizontal-CQJNqVgu.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DMOP2SMU.js → DotsVertical-gLXmVMYI.js} +1 -1
  13. package/dist/client/assets/{Download01-VwSgop8U.js → Download01-BKmVPJWY.js} +1 -1
  14. package/dist/client/assets/{Edit01-ByF-cYbh.js → Edit01-BT8zEtQL.js} +1 -1
  15. package/dist/client/assets/{File02-D6OcKUS4.js → File02-BNE7fmK0.js} +1 -1
  16. package/dist/client/assets/{File06-CkTcogsG.js → File06-WU23pV9H.js} +1 -1
  17. package/dist/client/assets/{FilterLines-BL17m8OO.js → FilterLines-DJEB3mgx.js} +1 -1
  18. package/dist/client/assets/{Globe02-CwdZK2H5.js → Globe02-Dp5eUbS2.js} +1 -1
  19. package/dist/client/assets/{Grid01-zbmmdox0.js → Grid01-CSAsqBFD.js} +1 -1
  20. package/dist/client/assets/{Home02-DPzckV1r.js → Home02-BUr926Eo.js} +1 -1
  21. package/dist/client/assets/{Image01-BuXlAy8i.js → Image01-BnbXZOf7.js} +1 -1
  22. package/dist/client/assets/{Inbox01-Czow08Bp.js → Inbox01-XFeiQPbg.js} +1 -1
  23. package/dist/client/assets/{InfoCircle-C8GtqndP.js → InfoCircle-5xWfOa8P.js} +1 -1
  24. package/dist/client/assets/{LinkExternal01-DJasjN8P.js → LinkExternal01-BJLPX8tt.js} +1 -1
  25. package/dist/client/assets/{List-BvAv-Mbv.js → List-kXpaJIIp.js} +1 -1
  26. package/dist/client/assets/{Loading01-DOPFYU4m.js → Loading01-D8zw0cyg.js} +1 -1
  27. package/dist/client/assets/{Lock01-BALKEl0l.js → Lock01-DCDiY4HG.js} +1 -1
  28. package/dist/client/assets/{Pin01-Dk_x7uai.js → Pin01-DWsvacVo.js} +1 -1
  29. package/dist/client/assets/{Play-CjfPPVn_.js → Play-Yhg_pcqU.js} +1 -1
  30. package/dist/client/assets/{Plus-WaQ7hmj5.js → Plus-BBD2SckJ.js} +1 -1
  31. package/dist/client/assets/{SearchMd-Ds-ERWzq.js → SearchMd-CGuwiAQe.js} +1 -1
  32. package/dist/client/assets/{Settings01-CMNXJNnf.js → Settings01-D7-sGWon.js} +1 -1
  33. package/dist/client/assets/{Share07-w2-wABEW.js → Share07-C8iek9k4.js} +1 -1
  34. package/dist/client/assets/{Terminal-CrrxpXUI.js → Terminal-CyioLjuI.js} +1 -1
  35. package/dist/client/assets/{Tool01-Cn8FHCpZ.js → Tool01-DF-lT9RC.js} +1 -1
  36. package/dist/client/assets/{Trash01-C-euKa34.js → Trash01-CLqhrRia.js} +1 -1
  37. package/dist/client/assets/{Upload01-Dc0hOrKX.js → Upload01-DrtXkSgF.js} +1 -1
  38. package/dist/client/assets/{Users03-zsvZ9QWQ.js → Users03-oV4Gx6fu.js} +1 -1
  39. package/dist/client/assets/{X-DUGfq2_H.js → X-CuhyLwhM.js} +1 -1
  40. package/dist/client/assets/{XClose-Cv_qbaYN.js → XClose-BFt2trBc.js} +1 -1
  41. package/dist/client/assets/{agent-connections-preview-C15fpCN8.js → agent-connections-preview-D4bn0NTx.js} +1 -1
  42. package/dist/client/assets/{agent-detail-BQXrWX9M.js → agent-detail-D8YR1Y7H.js} +1 -1
  43. package/dist/client/assets/{agents-NgYS-NWl.js → agents-BMyluA59.js} +1 -1
  44. package/dist/client/assets/{alert-dialog-B4H6MrIT.js → alert-dialog-BxcV0D_1.js} +2 -2
  45. package/dist/client/assets/{auth-catchall-GUc2KujY.js → auth-catchall-DLJkIPQ0.js} +1 -1
  46. package/dist/client/assets/{avatar-B-AS-16N.js → avatar-D3z5_V3I.js} +1 -1
  47. package/dist/client/assets/{badge-BFm6jM0d.js → badge-BklHLRcK.js} +1 -1
  48. package/dist/client/assets/{binder-C4CQlgMb.js → binder-ak1AkjZY.js} +1 -1
  49. package/dist/client/assets/{breadcrumb-Cvo4WJJ5.js → breadcrumb-B_Yxwj4p.js} +1 -1
  50. package/dist/client/assets/{button-Cl3WMTWk.js → button-CcO5M7F7.js} +1 -1
  51. package/dist/client/assets/{card-B-73zAje.js → card-BNt4WjQv.js} +1 -1
  52. package/dist/client/assets/{checkbox-kN_xGJfO.js → checkbox-CirsSPdM.js} +1 -1
  53. package/dist/client/assets/{circle-alert-BEtzK3t3.js → circle-alert-BcHtOytY.js} +1 -1
  54. package/dist/client/assets/{collection-detail-C9AV2Fn9.js → collection-detail-iX-6m_0X.js} +2 -2
  55. package/dist/client/assets/{collection-search-Aeh0FXZR.js → collection-search-Cyt8_oQV.js} +1 -1
  56. package/dist/client/assets/{collection-tab-CgMRLj1Y.js → collection-tab-Cbay3Q2-.js} +1 -1
  57. package/dist/client/assets/{collection-table-wrapper-CmBNNf0K.js → collection-table-wrapper-CFNweZN1.js} +1 -1
  58. package/dist/client/assets/{collection-tabs-2AUf3kZ2.js → collection-tabs-Dh2bhvAY.js} +1 -1
  59. package/dist/client/assets/{command-DICG2vo0.js → command-8Q_FGz0v.js} +1 -1
  60. package/dist/client/assets/{connect-DoxLTvbh.js → connect-1mhMrmD4.js} +1 -1
  61. package/dist/client/assets/{connection-card-ChzuU2dT.js → connection-card-BGd7kcn-.js} +1 -1
  62. package/dist/client/assets/connection-detail-dEdcHJ4u.js +1 -0
  63. package/dist/client/assets/connections-DmGFiu1f.js +1 -0
  64. package/dist/client/assets/{constants-1q3hobyw.js → constants-DuSOM18S.js} +1 -1
  65. package/dist/client/assets/constants-QC26G_cT.js +1 -0
  66. package/dist/client/assets/{create-organization-dialog-DWV2eGAF.js → create-organization-dialog-j_P7xuhv.js} +1 -1
  67. package/dist/client/assets/create-project-dialog-C-mSn_Ux.js +1 -0
  68. package/dist/client/assets/{dialog-BmGDp4UV.js → dialog-B_iTVR3h.js} +1 -1
  69. package/dist/client/assets/dropdown-menu-BTPpCOPE.js +1 -0
  70. package/dist/client/assets/{dynamic-plugin-layout-C_HHJRk0.js → dynamic-plugin-layout-BsqDni3U.js} +1 -1
  71. package/dist/client/assets/{empty-state-oU8PNga_.js → empty-state--JD6ZxUc.js} +1 -1
  72. package/dist/client/assets/{empty-state-DFIrBrC-.js → empty-state-Ct1fZFlf.js} +1 -1
  73. package/dist/client/assets/{env-vars-editor-Bmnp2cvo.js → env-vars-editor-B4EebJEK.js} +1 -1
  74. package/dist/client/assets/{error-boundary-D7C5xzme.js → error-boundary-DlgelpJG.js} +1 -1
  75. package/dist/client/assets/{extract-connection-data-CQQ4ZZEG.js → extract-connection-data-BM37afPK.js} +1 -1
  76. package/dist/client/assets/file-browser-DQeqPq9E.js +2 -0
  77. package/dist/client/assets/form-CSsv2IBt.js +1 -0
  78. package/dist/client/assets/grid-view-DBKftgaD.js +1 -0
  79. package/dist/client/assets/home-D16zlSya.js +1 -0
  80. package/dist/client/assets/{index-9vOB29ZB.js → index-BHu7Lc_d.js} +1 -1
  81. package/dist/client/assets/{index-BV-rIyOx.js → index-Bn2rDd42.js} +6 -6
  82. package/dist/client/assets/{index-CxyQJKsK.js → index-Bo7hWTur.js} +1 -1
  83. package/dist/client/assets/{index-5T3tdhiA.js → index-CHcJPAjT.js} +1 -1
  84. package/dist/client/assets/{index-BA6gcyzW.js → index-CZtqakWK.js} +14 -14
  85. package/dist/client/assets/{index-Dolyg0HI.js → index-DJCm-wAr.js} +1 -1
  86. package/dist/client/assets/index-DZ7G-bvr.js +1 -0
  87. package/dist/client/assets/index-a2nqbblp.js +1 -0
  88. package/dist/client/assets/{index-fCCl5Un_.js → index-fr6MaGoE.js} +1 -1
  89. package/dist/client/assets/{infiniteQueryObserver-CrYps4St.js → infiniteQueryObserver-VnhrjjoH.js} +1 -1
  90. package/dist/client/assets/{input-Dv5qvD5N.js → input-DBvMwxwE.js} +1 -1
  91. package/dist/client/assets/integration-icon-C8seGsuO.js +1 -0
  92. package/dist/client/assets/label-BjQxQJkg.js +1 -0
  93. package/dist/client/assets/layout-ZTsfxACA.js +1 -0
  94. package/dist/client/assets/{localstorage-keys-Ds2uOTRP.js → localstorage-keys-BhunmwZg.js} +1 -1
  95. package/dist/client/assets/{login-BpnfmGBt.js → login-H0BwFxqL.js} +1 -1
  96. package/dist/client/assets/{mcp-oauth-C_XpjqFg.js → mcp-oauth-ZUujauBG.js} +1 -1
  97. package/dist/client/assets/{mcp-server-card-CiGvO9aP.js → mcp-server-card-KgRAONYw.js} +1 -1
  98. package/dist/client/assets/{mcp-server-detail-SQfpDpYc.js → mcp-server-detail-Ce9SGjoZ.js} +2 -2
  99. package/dist/client/assets/members-C925BdC6.js +3 -0
  100. package/dist/client/assets/{monaco-editor-q53ZLBJ5.js → monaco-editor-D7Ghoc8y.js} +1 -1
  101. package/dist/client/assets/{monitoring-CK4xcQzM.js → monitoring-DI8QAuDx.js} +19 -19
  102. package/dist/client/assets/{oauth-callback-CeLfnx5m.js → oauth-callback-DqKFxIqr.js} +1 -1
  103. package/dist/client/assets/page-B2cjdb1f.js +1 -0
  104. package/dist/client/assets/{page-jzi-88Nr.js → page-DCfXF14g.js} +1 -1
  105. package/dist/client/assets/plugin-empty-state-BYB8Yhjv.js +1 -0
  106. package/dist/client/assets/plugin-header-CLRCQ1W3.js +1 -0
  107. package/dist/client/assets/popover-BkKSdvGf.js +1 -0
  108. package/dist/client/assets/{project-layout-CH4wXxX2.js → project-layout-DzX_Lv0I.js} +1 -1
  109. package/dist/client/assets/project-settings-lapjGGi3.js +1 -0
  110. package/dist/client/assets/projects-list-DZgOrcLS.js +1 -0
  111. package/dist/client/assets/{registry-utils-CqOx6XXE.js → registry-utils-BsLp7zXK.js} +1 -1
  112. package/dist/client/assets/{resizable-CZuYHBhW.js → resizable-CdUSPFqv.js} +1 -1
  113. package/dist/client/assets/select-J2aavKNi.js +1 -0
  114. package/dist/client/assets/{shell-layout-BxNK1bDI.js → shell-layout-DOBmQ9ah.js} +2 -2
  115. package/dist/client/assets/{spinner-BPZfVVyD.js → spinner-Bn-tqgsf.js} +1 -1
  116. package/dist/client/assets/{store-invite-ICTVmn8_.js → store-invite-C8stGp_k.js} +1 -1
  117. package/dist/client/assets/switch-CG0LWjwI.js +1 -0
  118. package/dist/client/assets/{table-BBnlXDKe.js → table-BNxQWMxG.js} +1 -1
  119. package/dist/client/assets/{tasks-CpdqRpYU.js → tasks-C_RAoHGr.js} +1 -1
  120. package/dist/client/assets/{textarea-DK_SwVx9.js → textarea-CKlKOzV4.js} +1 -1
  121. package/dist/client/assets/{tools-list-B5iaOgKy.js → tools-list-D0G5KWHg.js} +1 -1
  122. package/dist/client/assets/{typewriter-title-C_OsyMAQ.js → typewriter-title-BqfnndCW.js} +2 -2
  123. package/dist/client/assets/{use-binding-BVOuBiur.js → use-binding-Dgjl_Htk.js} +1 -1
  124. package/dist/client/assets/{use-connection-B8DnjeO8.js → use-connection-CVk8Bzpz.js} +1 -1
  125. package/dist/client/assets/{use-create-virtual-mcp-7fubOknm.js → use-create-virtual-mcp-BpXLuk-p.js} +1 -1
  126. package/dist/client/assets/{use-deco-chat-open-cMRvRYVG.js → use-deco-chat-open-CfZI9mqc.js} +5 -5
  127. package/dist/client/assets/{use-install-from-registry-ClVbT6BY.js → use-install-from-registry-5UUqPBO7.js} +1 -1
  128. package/dist/client/assets/{use-list-state-DjV5kR97.js → use-list-state-D_1V56-b.js} +1 -1
  129. package/dist/client/assets/{use-llm-H-K3anTg.js → use-llm-Ca3pgrIB.js} +1 -1
  130. package/dist/client/assets/{use-mcp-prompts-Chz_2-6S.js → use-mcp-prompts-Cn7tm6ug.js} +1 -1
  131. package/dist/client/assets/{use-mcp-tools-CXMetymP.js → use-mcp-tools-Ddi2i1Nb.js} +1 -1
  132. package/dist/client/assets/{use-mobile-B2CDnK8i.js → use-mobile-p03CcGW0.js} +1 -1
  133. package/dist/client/assets/{use-organization-settings-Bu92wRjl.js → use-organization-settings-DHZKDAPt.js} +1 -1
  134. package/dist/client/assets/{use-project-CzroiUzj.js → use-project-D-mK4K9b.js} +1 -1
  135. package/dist/client/assets/{use-virtual-mcp-ayu_K6US.js → use-virtual-mcp-C83o4Rih.js} +1 -1
  136. package/dist/client/assets/useInfiniteQuery-DDUEUpOZ.js +1 -0
  137. package/dist/client/assets/{useMutation-BOrtlNTb.js → useMutation-CnTeRHmv.js} +1 -1
  138. package/dist/client/assets/useQuery-Ct96KcZp.js +1 -0
  139. package/dist/client/assets/utils-Ckc2UwOp.js +1 -0
  140. package/dist/client/assets/{view-mode-toggle-CHHKGadJ.js → view-mode-toggle-CJkT6m07.js} +1 -1
  141. package/dist/client/assets/{workflow-BBKpGvON.js → workflow-2rDY9uo2.js} +1 -1
  142. package/dist/client/index.html +1 -1
  143. package/dist/server/cli.js +150 -150
  144. package/dist/server/migrate.js +1 -1
  145. package/dist/server/server.js +129 -129
  146. package/package.json +1 -1
  147. package/dist/client/assets/connection-detail-CVNpoyUm.js +0 -1
  148. package/dist/client/assets/connections-BHOwcUB0.js +0 -1
  149. package/dist/client/assets/constants-DzWq-50V.js +0 -1
  150. package/dist/client/assets/create-project-dialog-49RtElmv.js +0 -1
  151. package/dist/client/assets/dropdown-menu-6IaHSzwJ.js +0 -1
  152. package/dist/client/assets/file-browser-CHtfSNHu.js +0 -2
  153. package/dist/client/assets/form-qYB4UriD.js +0 -1
  154. package/dist/client/assets/grid-view-B4Eut3Xi.js +0 -1
  155. package/dist/client/assets/home-BYm3DFU4.js +0 -1
  156. package/dist/client/assets/index-BYzsWn1B.js +0 -1
  157. package/dist/client/assets/index-Vp0uDDij.js +0 -1
  158. package/dist/client/assets/integration-icon-DKM9NBX1.js +0 -1
  159. package/dist/client/assets/layout-B7afTuaN.js +0 -1
  160. package/dist/client/assets/members-CQSBREQS.js +0 -3
  161. package/dist/client/assets/page-CrfNBuC7.js +0 -1
  162. package/dist/client/assets/plugin-empty-state-Bnssy2Oj.js +0 -1
  163. package/dist/client/assets/plugin-header-DoQQAOys.js +0 -1
  164. package/dist/client/assets/popover-DuZ2ZN5J.js +0 -1
  165. package/dist/client/assets/project-settings-CKgnjrBp.js +0 -1
  166. package/dist/client/assets/projects-list-D0sSao6e.js +0 -1
  167. package/dist/client/assets/select-ODRW9YrY.js +0 -1
  168. package/dist/client/assets/switch-B-1QAIh-.js +0 -1
  169. package/dist/client/assets/useInfiniteQuery-TqDHdib1.js +0 -1
  170. package/dist/client/assets/useQuery-DDYln2BW.js +0 -1
  171. package/dist/client/assets/utils-CfR4kXxZ.js +0 -1
@@ -418,7 +418,7 @@ ${X.stack}`;return Q}try{let G=JSON.stringify(X,null,2);if(G!=="{}"&&G.length<10
418
418
  Stack trace:
419
419
  ${X.stack}`;return G}}catch{}if(typeof X.toString==="function")try{let G=X.toString();if(G!=="[object Object]")return G}catch{}let J=Object.keys(X);if(J.length>0)return`Object with keys: ${J.join(", ")}`;return"[object Object]"}if(typeof Y==="string")return Y;if(typeof Y==="number"||typeof Y==="boolean")return String(Y);if(typeof Y==="function")return`[Function: ${Y.name||"anon"}]`;if(typeof Y==="symbol")return Y.toString();if(typeof Y==="bigint")return Y.toString();try{return String(Y)}catch{return"Unknown value (could not convert to string)"}}function lB(Y,X){switch(typeof X){case"string":return Y.newString(X);case"number":return Y.newNumber(X);case"boolean":return X?Y.true:Y.false;case"undefined":return Y.undefined;case"object":{if(X===null)return Y.null;if(Array.isArray(X)){let J=Y.newArray();return X.forEach((G,K)=>{let W=lB(Y,G);try{Y.setProp(J,String(K),W)}finally{W.dispose?.()}}),J}let Q=Y.newObject();for(let[J,G]of Object.entries(X)){let K=lB(Y,G);try{Y.setProp(Q,J,K)}finally{K.dispose?.()}}return Q}case"function":{let Q=`__hostFn_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return Y.newFunction(Q,(...G)=>{try{let K=G.map((Z)=>Y.dump(Z)),W=X(...K);if(W&&typeof W.then==="function"){let Z=Y.newPromise();return W.then((H)=>{try{let F=lB(Y,H);Z.resolve(F),F.dispose(),Y.runtime.executePendingJobs()}catch(F){let V=mB(F),q=Y.newString(`Promise resolution error: ${V}`);Z.reject(q),q.dispose(),Y.runtime.executePendingJobs()}}).catch((H)=>{let F=mB(H),V=Y.newString(`Promise rejection: ${F}`);Z.reject(V),V.dispose(),Y.runtime.executePendingJobs()}),Z.handle}return lB(Y,W)}catch(K){let W=mB(K);return Y.newString(`HostFunctionError: ${W}`)}finally{G.forEach((K)=>K.dispose())}})}case"bigint":return Y.newString(X.toString());case"symbol":return Y.newString(X.toString());default:try{return Y.newString(String(X))}catch{return Y.undefined}}}var kH6=()=>{};function _H6(Y){let X=Y.runtime.executePendingJobs(100);try{if("unwrap"in X&&typeof X.unwrap==="function")X.unwrap()}finally{if("dispose"in X&&typeof X.dispose==="function")X.dispose()}}async function vH6(Y,X,Q){let J=Date.now(),G=Y.resolvePromise(X);while(!0){_H6(Y);let K=await Promise.race([G,Rp4(0).then(()=>null)]);if(K!==null)return K;if(Date.now()-J>Q)throw Error(`Timed out after ${Q}ms while awaiting a QuickJS promise`)}}async function wY0({tools:Y,code:X,timeoutMs:Q}){let W=[];try{let J=await SH6({memoryLimitBytes:33554432,stackSizeBytes:524288});const G=tB(W,J.newContext({interruptAfterMs:Q}),0);const K=tB(W,QH6(G),0);try{let V=G.evalCode(X,"index.mjs",{strip:!0,strict:!0,type:"module"}),q=G.unwrapResult(V),$=lB(G,Y);G.setProp(G.global,"tools",$);let B=G.runtime.hasPendingJob()?G.unwrapResult(await vH6(G,q,Q)):q;if(B!==q)q.dispose();let U=G.getProp(B,"default"),O=G.typeof(U);if(O!=="function")return{error:`Code must export default a function (tools). Got ${O}. Example: export default async (tools) => { /* ... */ }`,consoleLogs:K.logs};let L=G.callFunction(U,G.undefined,$),M=G.unwrapResult(L),C=await vH6(G,M,Q),R=G.unwrapResult(C);if(G.runtime.hasPendingJob())_H6(G);return{returnValue:G.dump(R),consoleLogs:K.logs}}catch(V){return console.log(V),{error:mB(V),consoleLogs:K.logs}}}catch(Z){var H=Z,F=1}finally{oP(W,H,F)}}var Rp4=(Y)=>new Promise((X)=>setTimeout(X,Y));var yH6=x(()=>{jH6();kH6()});var fH6=x(()=>{yH6()});async function Sp4(Y,X){let Q=Y.connections.map((K)=>K.connection_id),J=[];for(let K of Q){let W=await X.storage.connections.findById(K);if(W&&W.status==="active")J.push(W)}return J.map((K)=>{let W=Y.connections.find((Z)=>Z.connection_id===K.id);return{connection:K,selectedTools:W?.selected_tools??null,selectedResources:W?.selected_resources??null,selectedPrompts:W?.selected_prompts??null}})}async function hH6(Y,X){return(await X.storage.connections.list(Y)).filter((J)=>J.status==="active").map((J)=>({connection:J,selectedTools:null,selectedResources:null,selectedPrompts:null}))}async function jp4(Y,X){let Q=new Map;for(let $ of Y)Q.set($.connection.id,$);let J=Y.map(($)=>$.connection),G=new Map,K=await Promise.allSettled(J.map(async($)=>{try{let B=await X.createMCPProxy($);return{connection:$,proxy:B}}catch(B){return console.warn(`[code-execution] Failed to create proxy for connection ${$.id}:`,B),null}}));for(let $ of K)if($.status==="fulfilled"&&$.value)G.set($.value.connection.id,$.value);let W=await Promise.allSettled(Array.from(G.entries()).map(async([$,B])=>{try{let O=(await B.proxy.listTools()).tools,L=Q.get($);if(L?.selectedTools&&L.selectedTools.length>0){let M=new Set(L.selectedTools);O=O.filter((C)=>M.has(C.name))}return{connectionId:$,connectionTitle:B.connection.title,tools:O}}catch(U){return console.error(`[code-execution] Failed to list tools for connection ${$}:`,U),null}})),Z=new Set,H=[],F=new Map;for(let $ of W){if($.status!=="fulfilled"||!$.value)continue;let{connectionId:B,connectionTitle:U,tools:O}=$.value;for(let L of O){if(Z.has(L.name))continue;Z.add(L.name),H.push({...L,_meta:{connectionId:B,connectionTitle:U}}),F.set(L.name,B)}}let V=async($,B)=>{let U=F.get($);if(!U)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};let O=G.get(U);if(!O)return{content:[{type:"text",text:`Connection not found for tool: ${$}`}],isError:!0};return await O.proxy.callTool({name:$,arguments:B})},q=[];for(let[,$]of G)q.push($.proxy.close().catch(()=>{}));return await Promise.all(q),{tools:H,callTool:V}}async function dB(Y){let X=H6(Y),Q;if(Y.connectionId){let J=await Y.storage.virtualMcps.findById(Y.connectionId,Y.organization?.id);if(J)Q=await Sp4(J,Y);else Q=await hH6(X.id,Y)}else Q=await hH6(X.id,Y);return jp4(Q,Y)}function kp4(Y){return Y.toLowerCase().split(/[\s_\-./]+/).filter((X)=>X.length>=2)}function vp4(Y,X){let Q=0,J=X.name.toLowerCase(),G=(X.description??"").toLowerCase(),K=(X._meta?.connectionTitle??"").toLowerCase();for(let W of Y){if(J===W)Q+=10;else if(J.includes(W))Q+=3;if(G.includes(W))Q+=2;if(K.includes(W))Q+=1}return Q}function bH6(Y,X,Q){let J=kp4(Y);if(J.length===0)return X.slice(0,Q);return X.map((G)=>({tool:G,score:vp4(J,G)})).filter((G)=>G.score>0).sort((G,K)=>K.score-G.score).slice(0,Q).map((G)=>G.tool)}function xH6(Y,X){let Q=new Map(X.map((G)=>[G.name,G]));return{tools:Y.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:Y.filter((G)=>!Q.has(G))}}async function uH6(Y,X,Q){let J=Object.fromEntries(X.tools.map((G)=>[G.name,async(K)=>X.callTool(G.name,K??{})]));return wY0({code:Y,tools:J,timeoutMs:Q})}var Af=x(()=>{fH6()});var PY0;var gH6=x(()=>{C6();CP();Af();PY0=R0({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:o36,outputSchema:s36,handler:async(Y,X)=>{y0(X),H6(X),await X.access.check();let Q=await dB(X),J=bH6(Y.query,Q.tools,Y.limit);return{query:Y.query,results:J.map((G)=>({name:G.name,description:G.description,connection:G._meta?.connectionTitle??""})),totalAvailable:Q.tools.length}}})});var TY0;var mH6=x(()=>{C6();CP();Af();TY0=R0({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:t36,outputSchema:e36,handler:async(Y,X)=>{y0(X),H6(X),await X.access.check();let Q=await dB(X);return xH6(Y.tools,Q.tools)}})});var AY0;var lH6=x(()=>{C6();CP();Af();AY0=R0({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:YH6,outputSchema:XH6,handler:async(Y,X)=>{y0(X),H6(X),await X.access.check();let Q=await dB(X);return await uH6(Y.code,Q,Y.timeoutMs)}})});var dH6=x(()=>{gH6();mH6();lH6();CP()});var yp4,fp4,EY0;var pH6=x(()=>{I7();_0();C6();Df();eK();yp4=N.object({data:yO.describe("Data for the new connection (id is auto-generated if not provided)")}),fp4=N.object({item:cY.describe("The created connection entity")}),EY0=R0({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection in the organization",inputSchema:yp4,outputSchema:fp4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to create connection");let G={...Y.data,organization_id:Q.id,created_by:J};if(G.connection_type==="VIRTUAL"){let H=s3(G.connection_url);if(!H)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let F=await X.storage.virtualMcps.findById(H);if(!F)throw Error(`Virtual MCP not found: ${H}`);if(F.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");G.connection_url=t3(H)}let K=await xB({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),W=K?.length?K:null,Z=await X.storage.connections.create({...G,tools:W});return await X.eventBus.publish(Q.id,eJ.SELF(Q.id),{type:"connection.created",data:Z}),{item:Z}}})});function RP(Y,X){if(Y===X)return!0;if(Y==null||X==null)return Y===X;if(typeof Y!==typeof X)return!1;if(Array.isArray(Y)&&Array.isArray(X)){if(Y.length!==X.length)return!1;return Y.every((Q,J)=>RP(Q,X[J]))}if(typeof Y==="object"&&typeof X==="object"){let Q=Object.keys(Y),J=Object.keys(X);if(Q.length!==J.length)return!1;return Q.every((G)=>J.includes(G)&&RP(Y[G],X[G]))}return!1}function Gc4(){return(Y)=>{if(!Array.isArray(Y))return!0;let X=[];return Y.every((Q)=>{if(X.some((G)=>RP(Q,G)))return!1;return X.push(Q),!0})}}function Ef(Y,X){return Y.safeParse(X).success}function qY(Y){if(typeof Y==="boolean")return Y?N.any():N.never();let X={};for(let G of Nc4)G.apply(X,Y);let Q=[];if(X.string!==!1)Q.push(X.string||N.string());if(X.number!==!1)Q.push(X.number||N.number());if(X.boolean!==!1)Q.push(X.boolean||N.boolean());if(X.null!==!1)Q.push(X.null||N.null());if(X.array!==!1)Q.push(X.array||N.array(N.any()));if(X.tuple!==!1&&X.tuple!==void 0)Q.push(X.tuple);if(X.object!==!1)if(X.object)Q.push(X.object);else{let G=N.custom((K)=>{return typeof K==="object"&&K!==null&&!Array.isArray(K)},"Must be an object, not an array");Q.push(G)}if(X.file!==!1&&X.file!==void 0)Q.push(X.file);let J;if(Q.length===0)J=N.never();else if(Q.length===1)J=Q[0];else if(!Object.keys(Y).some((K)=>K!=="$schema"&&K!=="title"&&K!=="description"))J=N.any();else J=N.union(Q);for(let G of Lc4)J=G.apply(J,Y);return J}var hp4=class{apply(Y,X){if(!X.type)return;let Q=Array.isArray(X.type)?X.type:[X.type],J=new Set(Q);if(!J.has("string"))Y.string=!1;if(!J.has("number")&&!J.has("integer"))Y.number=!1;if(!J.has("boolean"))Y.boolean=!1;if(!J.has("null"))Y.null=!1;if(!J.has("array"))Y.array=!1;if(!J.has("object"))Y.object=!1;if(J.has("integer")&&Y.number!==!1){let G=Y.number||N.number();if(G instanceof N.ZodNumber)Y.number=G.int()}}},bp4=class{apply(Y,X){if(X.const===void 0)return;let Q=X.const;if(Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1,typeof Q==="string")Y.string=N.literal(Q);else if(typeof Q==="number")Y.number=N.literal(Q);else if(typeof Q==="boolean")Y.boolean=N.literal(Q);else if(Q===null)Y.null=N.null();else if(Array.isArray(Q))Y.array=void 0;else if(typeof Q==="object")Y.object=void 0}},xp4=class{apply(Y,X){if(!X.enum)return;if(X.enum.length===0){if(!X.type)Y.string=!1,Y.number=!1,Y.boolean=!1,Y.null=!1,Y.array=!1,Y.object=!1;return}let Q={string:X.enum.filter((J)=>typeof J==="string"),number:X.enum.filter((J)=>typeof J==="number"),boolean:X.enum.filter((J)=>typeof J==="boolean"),null:X.enum.filter((J)=>J===null),array:X.enum.filter((J)=>Array.isArray(J)),object:X.enum.filter((J)=>typeof J==="object"&&J!==null&&!Array.isArray(J))};Y.string=this.createTypeSchema(Q.string,"string"),Y.number=this.createTypeSchema(Q.number,"number"),Y.boolean=this.createTypeSchema(Q.boolean,"boolean"),Y.null=Q.null.length>0?N.null():!1,Y.array=Q.array.length>0?void 0:!1,Y.object=Q.object.length>0?void 0:!1}createTypeSchema(Y,X){if(Y.length===0)return!1;if(Y.length===1)return N.literal(Y[0]);if(X==="string")return N.enum(Y);if(X==="number"){let[Q,J,...G]=Y;return N.union([N.literal(Q),N.literal(J),...G.map((K)=>N.literal(K))])}if(X==="boolean")return N.union([N.literal(!0),N.literal(!1)]);return!1}},up4=class{apply(Y,X){let Q=X;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let J=N.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);Y.file=J,Y.string=!1}}},gp4=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if(Y.string===void 0)Y.string=N.string()}}},mp4=class{apply(Y,X){let Q=X;if(Q.minLength===void 0)return;if(Y.string!==!1){let J=Y.string||N.string();if(J instanceof N.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},lp4=class{apply(Y,X){let Q=X;if(Q.maxLength===void 0)return;if(Y.string!==!1){let J=Y.string||N.string();if(J instanceof N.ZodString)Y.string=J.refine((G)=>{return Array.from(G).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},dp4=class{apply(Y,X){let Q=X;if(!Q.pattern)return;if(Y.string!==!1){let J=Y.string||N.string();if(J instanceof N.ZodString){let G=new RegExp(Q.pattern);Y.string=J.regex(G)}}}},pp4=class{apply(Y,X){let Q=X;if(Q.minimum===void 0)return;if(Y.number!==!1){let J=Y.number||N.number();if(J instanceof N.ZodNumber)Y.number=J.min(Q.minimum)}}},cp4=class{apply(Y,X){let Q=X;if(Q.maximum===void 0)return;if(Y.number!==!1){let J=Y.number||N.number();if(J instanceof N.ZodNumber)Y.number=J.max(Q.maximum)}}},np4=class{apply(Y,X){let Q=X;if(Q.exclusiveMinimum===void 0)return;if(Y.number!==!1){let J=Y.number||N.number();if(J instanceof N.ZodNumber)if(typeof Q.exclusiveMinimum==="number")Y.number=J.gt(Q.exclusiveMinimum);else Y.number=!1}}},ip4=class{apply(Y,X){let Q=X;if(Q.exclusiveMaximum===void 0)return;if(Y.number!==!1){let J=Y.number||N.number();if(J instanceof N.ZodNumber)if(typeof Q.exclusiveMaximum==="number")Y.number=J.lt(Q.exclusiveMaximum);else Y.number=!1}}},ap4=class{apply(Y,X){let Q=X;if(Q.multipleOf===void 0)return;if(Y.number!==!1){let J=Y.number||N.number();if(J instanceof N.ZodNumber)Y.number=J.refine((G)=>{if(Q.multipleOf===0)return!1;let K=G/Q.multipleOf,W=Math.round(K),Z=Math.min(Math.abs(G)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(K-W)<=Z/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},rp4=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if(Y.array===void 0)Y.array=N.array(N.any())}}},op4=class{apply(Y,X){let Q=X;if(Q.minItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||N.array(N.any())).min(Q.minItems)}},sp4=class{apply(Y,X){let Q=X;if(Q.maxItems===void 0)return;if(Y.array!==!1)Y.array=(Y.array||N.array(N.any())).max(Q.maxItems)}},tp4=class{apply(Y,X){let Q=X;if(Y.array===!1)return;if(Array.isArray(Q.items))Y.array=Y.array||N.array(N.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let J=qY(Q.items),G=N.array(J);if(Y.array&&Y.array instanceof N.ZodArray){let K=Y.array._def;if(K.checks)K.checks.forEach((W)=>{if(W._zod&&W._zod.def){let Z=W._zod.def;if(Z.check==="min_length"&&Z.minimum!==void 0)G=G.min(Z.minimum);else if(Z.check==="max_length"&&Z.maximum!==void 0)G=G.max(Z.maximum)}})}Y.array=G}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)Y.array=N.array(N.any()).max(0);else Y.array=Y.array||N.array(N.any());else if(typeof Q.items==="boolean"&&Q.items===!0)Y.array=Y.array||N.array(N.any());else if(Q.prefixItems)Y.array=Y.array||N.array(N.any())}},ep4=class{apply(Y,X){if(X.type!=="array")return;let Q=X;if(!Array.isArray(Q.items))return;if(Y.array===!1)return;let J=Q.items.map((K)=>qY(K)),G;if(J.length===0)G=N.tuple([]);else G=N.tuple(J);if(Q.minItems!==void 0&&Q.minItems>J.length)G=!1;if(Q.maxItems!==void 0&&Q.maxItems<J.length)G=!1;Y.tuple=G,Y.array=!1}},Yc4=class{apply(Y,X){let Q=X;if(Y.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)Y.object=Y.object||N.object({}).passthrough()}},Xc4=class{apply(Y,X){let Q=X;if(X.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if(Y.object===void 0)Y.object=N.object({}).passthrough()}}},Qc4=class{apply(Y,X){let Q=X;if(Q.maxProperties===void 0)return;if(Y.object!==!1){let J=Y.object||N.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},Jc4=class{apply(Y,X){let Q=X;if(Q.minProperties===void 0)return;if(Y.object!==!1){let J=Y.object||N.object({}).passthrough();Y.object=J.refine((G)=>Object.keys(G).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},Wc4=class{apply(Y,X){if(!X.not)return Y;let Q=qY(X.not);return Y.refine((J)=>!Ef(Q,J),{message:"Value must not match the 'not' schema"})}},Zc4=class{apply(Y,X){if(X.uniqueItems!==!0)return Y;return Y.refine(Gc4(),{message:"Array items must be unique"})}},Kc4=class{apply(Y,X){if(!X.allOf||X.allOf.length===0)return Y;return X.allOf.map((J)=>qY(J)).reduce((J,G)=>N.intersection(J,G),Y)}},Hc4=class{apply(Y,X){if(!X.anyOf||X.anyOf.length===0)return Y;let Q=X.anyOf.length===1?qY(X.anyOf[0]):N.union([qY(X.anyOf[0]),qY(X.anyOf[1]),...X.anyOf.slice(2).map((J)=>qY(J))]);return N.intersection(Y,Q)}},Fc4=class{apply(Y,X){if(!X.oneOf||X.oneOf.length===0)return Y;let Q=X.oneOf.map((J)=>qY(J));return Y.refine((J)=>{let G=0;for(let K of Q)if(K.safeParse(J).success){if(G++,G>1)return!1}return G===1},{message:"Value must match exactly one of the oneOf schemas"})}},Vc4=class{apply(Y,X){let Q=X;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let G=Q.prefixItems.map((K)=>qY(K));return Y.refine((K)=>{if(!Array.isArray(K))return!0;for(let W=0;W<Math.min(K.length,G.length);W++)if(!Ef(G[W],K[W]))return!1;if(K.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 W=qY(Q.items);for(let Z=G.length;Z<K.length;Z++)if(!Ef(W,K[Z]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return Y}},qc4=class{apply(Y,X){let Q=X;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return Y;if(Y instanceof N.ZodObject||Y instanceof N.ZodRecord){let J={};if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0)J[G]=qY(K)}if(Q.required&&Array.isArray(Q.required)){let G=new Set(Q.required);for(let K of Object.keys(J))if(!G.has(K))J[K]=J[K].optional()}else for(let G of Object.keys(J))J[G]=J[G].optional();if(Q.additionalProperties===!1)return N.object(J);else return N.object(J).passthrough()}return Y.refine((J)=>{if(typeof J!=="object"||J===null||Array.isArray(J))return!0;if(Q.properties){for(let[G,K]of Object.entries(Q.properties))if(K!==void 0){if(Object.getOwnPropertyDescriptor(J,G)!==void 0){if(!qY(K).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 K in J)if(!G.has(K))return!1}return!0},{message:"Object constraints validation failed"})}},$c4=class{apply(Y,X){if(!X.enum||X.enum.length===0)return Y;let Q=X.enum.filter((J)=>Array.isArray(J)||typeof J==="object"&&J!==null);if(Q.length===0)return Y;return Y.refine((J)=>{if(typeof J!=="object"||J===null)return!0;return Q.some((G)=>RP(J,G))},{message:"Value must match one of the enum values"})}},zc4=class{apply(Y,X){if(X.const===void 0)return Y;let Q=X.const;if(typeof Q!=="object"||Q===null)return Y;return Y.refine((J)=>RP(J,Q),{message:"Value must equal the const value"})}},Bc4=class{apply(Y,X){if(X.description)Y=Y.describe(X.description);return Y}},Uc4=class{apply(Y,X){var Q;let J=X;if(!((Q=J.required)==null?void 0:Q.includes("__proto__"))||X.type!==void 0)return Y;return N.any().refine((G)=>this.validateRequired(G,J.required),{message:"Missing required properties"})}validateRequired(Y,X){if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;return X.every((Q)=>Object.prototype.hasOwnProperty.call(Y,Q))}},Dc4=class{apply(Y,X){var Q;let J=X;if(J.contains===void 0)return Y;let G=qY(J.contains),K=(Q=J.minContains)!=null?Q:1,W=J.maxContains;return Y.refine((Z)=>{if(!Array.isArray(Z))return!0;let H=0;for(let F of Z)if(Ef(G,F))H++;if(H<K)return!1;if(W!==void 0&&H>W)return!1;return!0},{message:"Array must contain required items matching the schema"})}},Oc4=class{apply(Y,X){let{default:Q}=X;if(Q===void 0)return Y;if(!Y.safeParse(Q).success)return Y;return Y.default(Q)}},Nc4,Lc4;var cH6=x(()=>{B9();B9();B9();B9();B9();B9();B9();B9();B9();B9();B9();B9();B9();B9();Nc4=[new bp4,new xp4,new hp4,new up4,new gp4,new rp4,new Xc4,new mp4,new lp4,new dp4,new pp4,new cp4,new np4,new ip4,new ap4,new ep4,new op4,new sp4,new tp4,new Qc4,new Jc4,new Yc4],Lc4=[new Uc4,new $c4,new zc4,new Kc4,new Hc4,new Fc4,new Vc4,new qc4,new Dc4,new Wc4,new Zc4,new Oc4,new Bc4]});class CY0{constructor(Y){this._url=Y}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((Y,X)=>{this._socket=new WebSocket(this._url,Mc4),this._socket.onerror=(Q)=>{let J="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);X(J),this.onerror?.(J)},this._socket.onopen=()=>{Y()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let J;try{J=WQ.parse(JSON.parse(Q.data))}catch(G){this.onerror?.(G);return}this.onmessage?.(J)}})}async close(){this._socket?.close()}send(Y){return new Promise((X,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify(Y)),X()})}}var Mc4="mcp";var nH6=x(()=>{TX()});function wc4(Y){let X=Y;if(!X||typeof X!=="object"||!("method"in X))return null;switch(X.method){case"initialize":{let Q=X?.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:X.jsonrpc??"2.0",id:X.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var IY0;var iH6=x(()=>{W2();IY0=class IY0 extends Aq{constructor(Y,X){super(Y,X)}send(Y,X){let Q=wc4(Y);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send(Y,X)}}});var aH6,rH6=async(Y,X,Q)=>{let J=Pc4(Y.connection,X,Q);if(!J)throw Error("Unknown MCP connection type");let G=new aH6({name:Y?.name??"MCP Client",version:"1.0.0"});return await G.connect(J),{client:G,callStreamableTool:(K,W,Z)=>{if(Y.connection.type!=="HTTP")throw Error("HTTP connection required");let H=new Headers(Q);if(!H.has("Authorization"))H.set("Authorization",`Bearer ${Y.connection.token}`);for(let[q,$]of Object.entries(Y.connection.headers??{}))H.set(q,$);let F=new URL(Y.connection.url),V=F.pathname.replace(/\/+$/,"")||"/";return F.pathname=`${V}/call-tool/${encodeURIComponent(K)}`,fetch(F.href,{method:"POST",redirect:"manual",body:JSON.stringify(W),headers:H,signal:Z})}}},Pc4=(Y,X,Q)=>{if(Y.type==="Websocket")return new CY0(new URL(Y.url));if(Y.type!=="SSE"&&Y.type!=="HTTP")return null;let G={...Y.token?{authorization:`Bearer ${Y.token}`}:{},...Q??{},..."headers"in Y?Y.headers||{}:{}};if(Y.type==="SSE"){let K={requestInit:{headers:G,signal:X}};if(Y.token)K.eventSourceInit={fetch:(W,Z)=>{return fetch(W,{...Z,headers:{...G,Accept:"text/event-stream"},signal:X})}};return new MP(new URL(Y.url),K)}return new IY0(new URL(Y.url),{requestInit:{headers:G,signal:X,credentials:"include"}})};var oH6=x(()=>{dI();I90();nH6();TX();iH6();aH6=class aH6 extends LZ{constructor(Y,X){super(Y,X)}async listTools(Y,X){return await this.request({method:"tools/list",params:Y},GO,X)}}});function eH6(Y){let X=(Q)=>{if("connection"in Y)return rH6({connection:Y.connection},void 0,Q);return Y.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 Z;async function G(H,F=J){let V=Y?.debugId?.(),q=V?{"x-trace-debug-id":V}:void 0,{client:$,callStreamableTool:B}=await X(q);if(Y?.streamable?.[String(F)])return B(String(F),H);let{structuredContent:U,isError:O,content:L}=await $.callTool({name:String(F),arguments:H});if(O){let C=L?.[0]?.text,R=typeof C==="string"?sH6(C):null,E=R?.code&&typeof Y?.getErrorByStatusCode==="function"?Y.getErrorByStatusCode(R.code,R.message,R.traceId):null;if(E)throw E;throw Error(`Tool ${String(F)} returned an error: ${JSON.stringify(U??L)}`)}if(U!==void 0)return U;let M=L?.[0]?.text;return typeof M==="string"?sH6(M):void 0}async function K(){let{client:H}=await X(),{tools:F}=await H.listTools();return F}async function W(){if(!("connection"in Y))return K();let H=Y.connection,F=JSON.stringify(H);try{if(!Cf.has(F))Cf.set(F,K());return await Cf.get(F)}catch(V){console.error("Failed to list tools",V),Cf.delete(F);return}}async function Z(){return(await W()??[]).map((F)=>tH6(F,G))}return G.asTool=async()=>{let F=(await W()??[]).find((V)=>V.name===J);if(!F)throw Error(`Tool ${J} not found`);return tH6(F,G)},G}})}var sH6=(Y)=>{try{return JSON.parse(Y)}catch{return Y}},Cf,tH6=(Y,X)=>{return{...Y,id:Y.name,inputSchema:Y.inputSchema?qY(Y.inputSchema):void 0,outputSchema:Y.outputSchema?qY(Y.outputSchema):void 0,execute:(Q)=>{return X(Q.context,Y.name)}}};var YF6=x(()=>{cH6();oH6();Cf=new Map});function If(Y){return eH6(Y)}var Qt1;var XF6=x(()=>{YF6();Qt1=new Proxy({},{get(Y,X){if(X==="toJSON")return null;if(X==="forConnection")return(Q)=>If({connection:Q});return global[X]}})});function Rf(Y){return{isImplementedBy:(X)=>{for(let Q of Y){let J=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,G=X.find((K)=>J.test(K.name));if(!G&&Q.opt)continue;if(!G)return!1}return!0}}}var FV=(Y)=>{return{...Rf(Y),forClient:(X)=>{return If({client:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})},forConnection:(X)=>{return If({connection:X,streamable:Y.reduce((Q,J)=>{return Q[J.name]=J.streamable===!0,Q},{})})}}};var SP=x(()=>{XF6()});function uW(Y){return N.object({items:N.array(Y).describe("Array of collection items"),totalCount:N.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:N.boolean().optional().describe("Whether there are more items available")})}function kP(Y){return N.object({item:Y.nullable().describe("The retrieved item, or null if not found")})}function Ec4(Y){return N.object({data:Y.partial().describe("Data for the new entity (id may be auto-generated)")})}function Cc4(Y){return N.object({item:Y.describe("The created entity with generated id")})}function Ic4(Y){return N.object({id:N.string().describe("ID of the entity to update"),data:Y.partial().describe("Partial entity data to update")})}function Rc4(Y){return N.object({item:Y.describe("The updated entity")})}function _P(Y){return N.object({item:Y.describe("The deleted entity")})}function cB(Y,X,Q){let J=Y.toUpperCase(),G=Q?.readOnly??!1,K=[{name:`COLLECTION_${J}_LIST`,inputSchema:xW,outputSchema:uW(X)},{name:`COLLECTION_${J}_GET`,inputSchema:jP,outputSchema:kP(X)}];if(!G)K.push({name:`COLLECTION_${J}_CREATE`,inputSchema:Ec4(X),outputSchema:Cc4(X),opt:!0},{name:`COLLECTION_${J}_UPDATE`,inputSchema:Ic4(X),outputSchema:Rc4(X),opt:!0},{name:`COLLECTION_${J}_DELETE`,inputSchema:vP,outputSchema:_P(X),opt:!0});return K}var pB,Tc4,QF6,Ac4,xW,jP,vP;var bJ=x(()=>{_0();pB=N.object({id:N.string().describe("Unique identifier for the entity"),title:N.string().describe("Human-readable title for the entity"),description:N.string().nullish().describe("Description of the entity"),created_at:N.string().datetime(),updated_at:N.string().datetime(),created_by:N.string().optional(),updated_by:N.string().optional()}),Tc4=N.object({field:N.array(N.string()),operator:N.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:N.unknown()}),QF6=N.lazy(()=>N.union([Tc4,N.object({operator:N.enum(["and","or","not"]),conditions:N.array(QF6)})])),Ac4=N.object({field:N.array(N.string()),direction:N.enum(["asc","desc"]),nulls:N.enum(["first","last"]).optional()}),xW=N.object({where:QF6.optional().describe("Filter expression"),orderBy:N.array(Ac4).optional().describe("Sort expressions"),limit:N.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:N.number().int().min(0).optional().describe("Number of items to skip")});jP=N.object({id:N.string().describe("ID of the entity to retrieve")});vP=N.object({id:N.string().describe("ID of the entity to delete")})});var Sc4,JF6,qt1;var GF6=x(()=>{_0();bJ();Sc4=N.object({id:N.string(),name:N.string(),description:N.string().optional(),inputSchema:N.record(N.string(),N.unknown()),outputSchema:N.record(N.string(),N.unknown()).optional()}),JF6=pB.extend({_meta:N.object({"io.decocms":N.object({id:N.string(),verified:N.boolean(),scopeName:N.string(),appName:N.string(),friendlyName:N.string().nullable().optional(),metadata:N.record(N.string(),N.unknown()).nullable().optional(),publishedAt:N.string().datetime().optional(),updatedAt:N.string().datetime().optional(),tools:N.array(Sc4).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:N.object({$schema:N.string().optional(),_meta:N.record(N.string(),N.unknown()).optional(),name:N.string().describe("The server name (scope/app)"),title:N.string().optional().describe("User-friendly title"),description:N.string().optional().describe("Server description"),icons:N.array(N.object({src:N.string(),mimeType:N.string().optional(),sizes:N.array(N.string()).optional(),theme:N.enum(["light","dark"]).optional()})).optional(),remotes:N.array(N.object({type:N.enum(["http","stdio","sse"]),url:N.string().optional(),headers:N.array(N.unknown()).optional()})).optional(),packages:N.array(N.unknown()).optional(),repository:N.object({url:N.string(),source:N.string().optional(),subfolder:N.string().optional()}).optional(),version:N.string().optional(),websiteUrl:N.string().optional()})}),qt1=cB("registry_app",JF6,{readOnly:!0})});var WF6,ZF6,KF6,HF6,FF6,jc4;var VF6=x(()=>{_0();SP();WF6=N.object({specversion:N.literal("1.0").describe("CloudEvents specification version"),id:N.string().describe("Unique identifier for this event (UUID recommended)"),source:N.string().describe("Connection ID of the event publisher"),type:N.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:N.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:N.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:N.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:N.string().url().optional().describe("URI to the schema for the data attribute"),data:N.unknown().optional().describe("Event payload (any JSON value)")}),ZF6=N.object({events:N.array(WF6).min(1).describe("Batch of CloudEvents to process")}),KF6=N.object({success:N.boolean().optional().describe("Whether this event was processed successfully"),error:N.string().optional().describe("Error message for this event"),retryAfter:N.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),HF6=N.object({success:N.boolean().optional().describe("Batch success - applies to events not in results"),error:N.string().optional().describe("Batch error message - applies to events not in results"),processedCount:N.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:N.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:N.record(N.string(),KF6).optional().describe("Per-event results keyed by event ID")}),FF6=[{name:"ON_EVENTS",inputSchema:ZF6,outputSchema:HF6}],jc4=FV(FF6)});var yP,fP,hP,bP,qF6,$F6,xP,uP,gP,mP,lP,dP,pP,cP,zF6,kc4;var BF6=x(()=>{_0();SP();yP=N.object({type:N.string().min(1).max(255).describe("Event type identifier"),subject:N.string().max(255).optional().describe("Subject/resource identifier (e.g., order ID)"),data:N.unknown().optional().describe("Event payload"),deliverAt:N.string().datetime().optional().describe("Scheduled delivery time (ISO 8601). Omit for immediate delivery."),cron:N.string().max(100).optional().describe("Cron expression for recurring delivery. Use EVENT_CANCEL to stop.")}),fP=N.object({id:N.string().describe("Unique event ID"),type:N.string().describe("Event type"),source:N.string().describe("Source connection ID"),time:N.string().describe("Event timestamp")}),hP=N.object({eventType:N.string().min(1).max(255).describe("Event type to subscribe to"),publisher:N.string().optional().describe("Filter events by publisher connection ID"),filter:N.string().max(1000).optional().describe("JSONPath filter expression on event data")}),bP=N.object({subscription:N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:N.string().datetime().describe("Updated timestamp (ISO 8601)")})}),qF6=N.object({eventType:N.string().min(1).max(255).describe("Event type to subscribe to"),publisher:N.string().optional().describe("Filter events by publisher connection ID"),filter:N.string().max(1000).optional().describe("JSONPath filter expression on event data")}),$F6=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:N.string().datetime().describe("Updated timestamp (ISO 8601)")}),xP=N.object({subscriptions:N.array(qF6).describe("Desired subscriptions - system will create/update/delete to match")}),uP=N.object({created:N.number().int().min(0).describe("Number of subscriptions created"),updated:N.number().int().min(0).describe("Number of subscriptions with filter updated"),deleted:N.number().int().min(0).describe("Number of subscriptions removed"),unchanged:N.number().int().min(0).describe("Number of subscriptions unchanged"),subscriptions:N.array($F6).describe("Current subscriptions after sync")}),gP=N.object({subscriptionId:N.string().describe("Subscription ID to remove")}),mP=N.object({success:N.boolean().describe("Whether unsubscribe was successful"),subscriptionId:N.string().describe("Subscription ID that was removed")}),lP=N.object({eventId:N.string().describe("Event ID to cancel")}),dP=N.object({success:N.boolean().describe("Whether cancellation was successful"),eventId:N.string().describe("Event ID that was cancelled")}),pP=N.object({eventId:N.string().describe("Event ID to acknowledge")}),cP=N.object({success:N.boolean().describe("Whether ACK was successful"),eventId:N.string().describe("Event ID that was acknowledged")}),zF6=[{name:"EVENT_PUBLISH",inputSchema:yP,outputSchema:fP},{name:"EVENT_SUBSCRIBE",inputSchema:hP,outputSchema:bP},{name:"EVENT_UNSUBSCRIBE",inputSchema:gP,outputSchema:mP},{name:"EVENT_CANCEL",inputSchema:lP,outputSchema:dP},{name:"EVENT_ACK",inputSchema:pP,outputSchema:cP},{name:"EVENT_SYNC_SUBSCRIPTIONS",inputSchema:xP,outputSchema:uP}],kc4=FV(zF6)});var vc4,_c4,yc4,fc4,hc4,bc4,xc4,uc4,gc4,mc4,lc4,dc4,nP;var Sf=x(()=>{_0();vc4=N.object({prefix:N.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:N.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:N.string().optional().describe("Token for pagination from previous response"),delimiter:N.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),_c4=N.object({objects:N.array(N.object({key:N.string().describe("Object key/path"),size:N.number().describe("Object size in bytes"),lastModified:N.string().describe("Last modified timestamp"),etag:N.string().describe("Entity tag for the object")})),nextContinuationToken:N.string().optional().describe("Token for fetching next page of results"),isTruncated:N.boolean().describe("Whether there are more results available"),commonPrefixes:N.array(N.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),yc4=N.object({key:N.string().describe("Object key/path to get metadata for")}),fc4=N.object({contentType:N.string().optional().describe("MIME type of the object"),contentLength:N.number().describe("Size of the object in bytes"),lastModified:N.string().describe("Last modified timestamp"),etag:N.string().describe("Entity tag for the object"),metadata:N.record(N.string(),N.string()).optional().describe("Custom metadata key-value pairs")}),hc4=N.object({key:N.string().describe("Object key/path to generate URL for"),expiresIn:N.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),bc4=N.object({url:N.string().describe("Presigned URL for downloading the object"),expiresIn:N.number().describe("Expiration time in seconds that was used")}),xc4=N.object({key:N.string().describe("Object key/path for the upload"),expiresIn:N.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:N.string().optional().describe("MIME type for the object being uploaded")}),uc4=N.object({url:N.string().describe("Presigned URL for uploading the object"),expiresIn:N.number().describe("Expiration time in seconds that was used")}),gc4=N.object({key:N.string().describe("Object key/path to delete")}),mc4=N.object({success:N.boolean().describe("Whether the deletion was successful"),key:N.string().describe("The key that was deleted")}),lc4=N.object({keys:N.array(N.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),dc4=N.object({deleted:N.array(N.string()).describe("Array of successfully deleted keys"),errors:N.array(N.object({key:N.string(),message:N.string()})).describe("Array of errors for failed deletions")}),nP=[{name:"LIST_OBJECTS",inputSchema:vc4,outputSchema:_c4},{name:"GET_OBJECT_METADATA",inputSchema:yc4,outputSchema:fc4},{name:"GET_PRESIGNED_URL",inputSchema:hc4,outputSchema:bc4},{name:"PUT_PRESIGNED_URL",inputSchema:xc4,outputSchema:uc4},{name:"DELETE_OBJECT",inputSchema:gc4,outputSchema:mc4},{name:"DELETE_OBJECTS",inputSchema:lc4,outputSchema:dc4}]});var RY0=x(()=>{SP();GF6();VF6();BF6();Sf()});var pc4,cc4,UF6;var DF6=x(()=>{_0();bJ();pc4=pB.extend({avatar:N.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:N.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:N.string().describe("Virtual MCP ID to use for this assistant"),model:N.object({id:N.string().describe("Model ID"),connectionId:N.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),cc4=cB("assistant",pc4),UF6=[...cc4]});var iP,gW,NF6,nc4,ic4,LF6,ac4,rc4,oc4,sc4,tc4,ec4,MF6,Yn4,Xn4,Qn4,Jn4,Gn4,Wn4,Zn4,Kn4,Hn4,Fn4,ft1,Vn4,ht1,OF6,qn4,$n4,SY0,bt1;var wF6=x(()=>{_0();SP();bJ();iP=N.lazy(()=>N.union([N.null(),N.string(),N.number(),N.boolean(),N.record(N.string(),iP),N.array(iP)])),gW=N.record(N.string(),N.record(N.string(),iP)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),NF6=N.object({type:N.literal("text"),text:N.string().describe("The text content"),providerOptions:gW}),nc4=N.object({type:N.literal("text"),text:N.string().describe("The text content"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),ic4=N.string().describe("File data as URL string"),LF6=N.object({type:N.literal("file"),filename:N.string().optional().describe("Optional filename of the file"),data:ic4,mediaType:N.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:gW}),ac4=N.object({type:N.literal("file"),mediaType:N.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:N.string().describe("Generated file data as base64 encoded string")}),rc4=N.object({type:N.literal("reasoning"),text:N.string().describe("The reasoning text"),providerOptions:gW}),oc4=N.object({type:N.literal("reasoning"),text:N.string().describe("The reasoning text"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),sc4=N.object({type:N.literal("tool-call"),toolCallId:N.string().describe("ID of the tool call, used to match with tool result"),toolName:N.string().describe("Name of the tool being called"),input:N.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:N.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:gW}),tc4=N.object({type:N.literal("tool-call"),toolCallId:N.string().describe("ID of the tool call"),toolName:N.string().describe("Name of the tool being called"),input:N.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:N.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),ec4=N.union([N.object({type:N.literal("text"),value:N.string()}),N.object({type:N.literal("json"),value:iP}),N.object({type:N.literal("error-text"),value:N.string()}),N.object({type:N.literal("error-json"),value:iP}),N.object({type:N.literal("content"),value:N.array(N.union([N.object({type:N.literal("text"),text:N.string().describe("Text content")}),N.object({type:N.literal("media"),data:N.string().describe("Base-64 encoded media data"),mediaType:N.string().describe("IANA media type")})]))})]),MF6=N.object({type:N.literal("tool-result"),toolCallId:N.string().describe("ID of the tool call that this result is associated with"),toolName:N.string().describe("Name of the tool that generated this result"),output:ec4.describe("Result of the tool call"),result:N.unknown().describe("Unknown result of the tool call"),providerOptions:gW}),Yn4=N.object({type:N.literal("tool-result"),toolCallId:N.string().describe("ID of the tool call that this result is associated with"),toolName:N.string().describe("Name of the tool that generated this result"),result:N.any().describe("Result of the tool call (JSON-serializable)"),isError:N.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:N.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),Xn4=N.union([N.object({type:N.literal("source"),sourceType:N.literal("url"),id:N.string().describe("The ID of the source"),url:N.string().describe("The URL of the source"),title:N.string().optional().describe("The title of the source"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")}),N.object({type:N.literal("source"),sourceType:N.literal("document"),id:N.string().describe("The ID of the source"),mediaType:N.string().describe("IANA media type of the document (e.g., application/pdf)"),title:N.string().describe("The title of the document"),filename:N.string().optional().describe("Optional filename of the document"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata")})]),Qn4=N.object({role:N.literal("system"),content:N.string().describe("System message content"),providerOptions:gW}),Jn4=N.object({role:N.literal("user"),content:N.array(N.union([NF6,LF6])).describe("User message content parts (text or file)"),providerOptions:gW}),Gn4=N.object({role:N.literal("assistant"),content:N.array(N.union([NF6,LF6,rc4,sc4,MF6])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:gW}),Wn4=N.object({role:N.literal("tool"),content:N.array(MF6).describe("Tool message content (tool results)"),providerOptions:gW}),Zn4=N.union([Qn4,Jn4,Gn4,Wn4]),Kn4=N.array(Zn4).describe("A list of messages forming the prompt"),Hn4=N.object({prompt:Kn4.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:N.number().optional().describe("Maximum number of tokens to generate"),temperature:N.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:N.number().optional().describe("Nucleus sampling parameter"),topK:N.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:N.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:N.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:N.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:N.array(N.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:N.union([N.object({type:N.literal("text")}),N.object({type:N.literal("json"),schema:N.any().optional().describe("JSON schema that the generated output should conform to"),name:N.string().optional().describe("Name of output that should be generated"),description:N.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:N.array(N.any()).optional().describe("The tools that are available for the model"),toolChoice:N.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:N.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:N.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:N.any().optional().describe("Additional provider-specific options")}),Fn4=N.object({content:N.array(N.union([nc4,ac4,oc4,tc4,Yn4,Xn4])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:N.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:N.looseObject({inputTokens:N.number().optional(),outputTokens:N.number().optional(),totalTokens:N.number().optional(),reasoningTokens:N.number().optional()}).describe("Usage information for the language model call"),providerMetadata:N.any().optional().describe("Additional provider-specific metadata"),request:N.object({body:N.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:N.object({id:N.string().optional().describe("ID for the generated response"),timestamp:N.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:N.string().optional().describe("The ID of the response model that was used"),headers:N.record(N.string(),N.string()).optional().describe("Response headers"),body:N.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:N.array(N.any()).describe("Warnings for the call, e.g. unsupported settings")}),ft1=N.object({stream:N.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:N.object({body:N.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:N.object({headers:N.record(N.string(),N.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),Vn4=N.object({supportedUrls:N.record(N.string(),N.array(N.string())).describe("Supported URL patterns by media type for the provider")}),ht1=N.object({modelId:N.string().describe("The ID of the model"),logo:N.string().nullable(),description:N.string().nullable(),capabilities:N.array(N.string()),limits:N.object({contextWindow:N.number(),maxOutputTokens:N.number()}).nullable(),costs:N.object({input:N.number(),output:N.number()}).nullable(),provider:N.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),OF6=N.object({modelId:N.string().describe("The ID of the model"),callOptions:Hn4}),qn4=pB.extend({logo:N.string().nullable(),description:N.string().nullable(),capabilities:N.array(N.string()),limits:N.object({contextWindow:N.number(),maxOutputTokens:N.number()}).nullable(),costs:N.object({input:N.number(),output:N.number()}).nullable(),provider:N.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),$n4=cB("llm",qn4,{readOnly:!0}),SY0=[{name:"LLM_METADATA",inputSchema:N.object({modelId:N.string().describe("The ID of the model")}),outputSchema:Vn4},{name:"LLM_DO_STREAM",inputSchema:OF6,streamable:!0},{name:"LLM_DO_GENERATE",inputSchema:OF6,outputSchema:Fn4},...$n4],bt1=FV(SY0)});function nB(){return!1}function jf(Y,X){return Y===eJ.DEV_ASSETS(X)}function iB(Y,X){let Q=Sd(X,Y),J=new Date().toISOString();return{id:Q.id??eJ.DEV_ASSETS(Y),title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:Q.app_name??null,app_id:Q.app_id??null,organization_id:Y,created_by:"system",created_at:J,updated_at:J,connection_type:Q.connection_type,connection_url:Q.connection_url??null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata??null,tools:zn4,bindings:["OBJECT_STORAGE"],status:"active"}}var zn4;var kf=x(()=>{Sf();I7();_0();zn4=nP.map((Y)=>({name:Y.name,description:`${Y.name} operation for local file storage`,inputSchema:N.toJSONSchema(Y.inputSchema),outputSchema:N.toJSONSchema(Y.outputSchema)}))});function Un4(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function W3(Y){return typeof Y==="string"||typeof Y==="number"}function vf(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>vf(Y,F));case"or":return H.some((F)=>vf(Y,F));case"not":return!H.every((F)=>vf(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join("."),W=jY0(Y,K);switch(J){case"eq":return W===G;case"gt":return W3(W)&&W3(G)&&W>G;case"gte":return W3(W)&&W3(G)&&W>=G;case"lt":return W3(W)&&W3(G)&&W<G;case"lte":return W3(W)&&W3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=Un4(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function jY0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function Dn4(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=jY0(Q,K),Z=jY0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var Bn4,On4,Nn4,kY0;var PF6=x(()=>{RY0();DF6();bJ();wF6();Sf();I7();_0();C6();kf();eK();Bn4={LLM:SY0,ASSISTANTS:UF6,OBJECT_STORAGE:nP};On4=xW.extend({binding:N.union([N.object({}).passthrough(),N.string()]).optional(),include_virtual:N.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false.")}),Nn4=uW(cY),kY0=R0({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",inputSchema:On4,outputSchema:Nn4,handler:async(Y,X)=>{await X.access.check();let Q=H6(X),J=Y.binding?typeof Y.binding==="string"?(()=>{let $=Bn4[Y.binding.toUpperCase()];if(!$)throw Error(`Unknown binding: ${Y.binding}`);return $})():Y.binding:void 0,G=J?Rf(J):void 0,K=await X.storage.connections.list(Q.id,{includeVirtual:Y.include_virtual??!1});if(nB()){let $=B5(),B=eJ.DEV_ASSETS(Q.id);if(!K.some((U)=>U.id===B)){let U=iB(Q.id,$);K.unshift(U)}}let W=G?await Promise.all(K.map(async($)=>{if(!$.tools||$.tools.length===0)return null;return G.isImplementedBy($.tools.map((U)=>({name:U.name,inputSchema:U.inputSchema,outputSchema:U.outputSchema})))?$:null})).then(($)=>$.filter((B)=>B!==null)):K;if(Y.where)W=W.filter(($)=>vf($,Y.where));if(Y.orderBy&&Y.orderBy.length>0)W=Dn4(W,Y.orderBy);let Z=W.length,H=Y.offset??0,F=Y.limit??100,V=W.slice(H,H+F),q=H+F<Z;return{items:V,totalCount:Z,hasMore:q}}})});var Ln4,vY0;var TF6=x(()=>{bJ();C6();kf();eK();Ln4=kP(cY),vY0=R0({name:"COLLECTION_CONNECTIONS_GET",description:"Get connection details by ID",inputSchema:jP,outputSchema:Ln4,handler:async(Y,X)=>{let Q=H6(X);if(await X.access.check(),nB()&&jf(Y.id,Q.id))return{item:iB(Q.id,B5())};let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:J}}})});var _f=(Y,X)=>{if(X===null||X===void 0)return;let Q=Y.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),J=X;for(let G of Q){if(J===null||J===void 0||typeof J!=="object")return;J=J[G]}return J};function AF6(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])throw Error(`Invalid scope format: ${Y}. Expected format: "KEY::SCOPE"`);return X}function Mn4(Y){let X=Y.split("::");if(X.length!==2||!X[0]||!X[1])return null;return X}function wn4(Y){if(typeof Y==="object"&&Y!==null&&"value"in Y){let X=Y.value;if(typeof X==="string")return X}return null}function Pn4(Y,X){let Q={};if(!Y||!X)return Q;for(let J of X){if(J==="*"){Q["*"]=["*"];continue}let G=Mn4(J);if(!G)continue;let[K,W]=G,Z=_f(K,Y),H=wn4(Z);if(H){if(!Q[H])Q[H]=[];Q[H].push(W)}}return Q}function EF6(Y,X){let Q=Pn4(Y,X);return new Set(Object.keys(Q).filter((J)=>J!=="*"))}var CF6=()=>{};class _Y0{db;vault;constructor(Y,X){this.db=Y;this.vault=X}async get(Y){let X=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",Y).executeTakeFirst();if(!X)return null;return this.decryptToken(X)}async upsert(Y){let X=new Date().toISOString(),Q=await this.vault.encrypt(Y.accessToken),J=Y.refreshToken?await this.vault.encrypt(Y.refreshToken):null,G=Y.clientSecret?await this.vault.encrypt(Y.clientSecret):null;return await this.db.transaction().execute(async(K)=>{let W=await K.selectFrom("downstream_tokens").select(["id","createdAt"]).where("connectionId","=",Y.connectionId).executeTakeFirst();if(W)return await K.updateTable("downstream_tokens").set({accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,updatedAt:X}).where("id","=",W.id).execute(),{id:W.id,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:W.createdAt,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint};let Z=Y3("dtok");return await K.insertInto("downstream_tokens").values({id:Z,connectionId:Y.connectionId,accessToken:Q,refreshToken:J,scope:Y.scope,expiresAt:Y.expiresAt?.toISOString()??null,clientId:Y.clientId,clientSecret:G,tokenEndpoint:Y.tokenEndpoint,createdAt:X,updatedAt:X}).execute(),{id:Z,connectionId:Y.connectionId,accessToken:Y.accessToken,refreshToken:Y.refreshToken,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:X,updatedAt:X,clientId:Y.clientId,clientSecret:Y.clientSecret,tokenEndpoint:Y.tokenEndpoint}})}async delete(Y){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",Y).execute()}isExpired(Y,X=0){if(!Y.expiresAt)return!1;let J=(Y.expiresAt instanceof Date?Y.expiresAt:new Date(Y.expiresAt)).getTime();if(Number.isNaN(J))return!0;return J-X<Date.now()}async decryptToken(Y){let X=await this.vault.decrypt(Y.accessToken),Q=Y.refreshToken?await this.vault.decrypt(Y.refreshToken):null,J=Y.clientSecret?await this.vault.decrypt(Y.clientSecret):null;return{id:Y.id,connectionId:Y.connectionId,accessToken:X,refreshToken:Q,scope:Y.scope,expiresAt:Y.expiresAt,createdAt:Y.createdAt,updatedAt:Y.updatedAt,clientId:Y.clientId,clientSecret:J,tokenEndpoint:Y.tokenEndpoint}}}var IF6=x(()=>{UP()});async function En4(Y,X,Q,J){for(let K of X){if(K==="*")continue;let[W]=AF6(K),Z=_f(W,Y);if(Z===void 0||Z===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let G=EF6(Y,X);for(let K of G){if(K.endsWith("_self"))continue;let W=await J.storage.connections.findById(K);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${K}`);try{await J.access.check(K)}catch(Z){throw Error(`Access denied to referenced connection: ${K}. ${Z.message}`)}}}var Tn4,An4,yY0;var RF6=x(()=>{CF6();IF6();_0();C6();Df();eK();Tn4=N.object({id:N.string().describe("ID of the connection to update"),data:fO.describe("Partial connection data to update")}),An4=N.object({item:cY.describe("The updated connection entity")});yY0=R0({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update an existing MCP connection in the organization",inputSchema:Tn4,outputSchema:An4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to update connection");let{id:G,data:K}=Y,W=await X.storage.connections.findById(G);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let Z=K.connection_type??W.connection_type,H=K.connection_url??W.connection_url;if(Z==="VIRTUAL"){let T=s3(H);if(!T)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let I=await X.storage.virtualMcps.findById(T);if(!I)throw Error(`Virtual MCP not found: ${T}`);if(I.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=t3(T)}let F=K.configuration_state??W.configuration_state??{},V=K.configuration_scopes??W.configuration_scopes??[];if(K.configuration_state!==void 0||K.configuration_scopes!==void 0){if(K.configuration_state!==void 0)F=K.configuration_state??{};else if(F===null||F===void 0)F={};if(K.configuration_scopes!==void 0)V=K.configuration_scopes??[];if(V.length>0)await En4(F,V,Q.id,X)}let q=K.connection_token??W.connection_token;if(!q)try{let I=await new _Y0(X.db,X.vault).get(G);if(I?.accessToken)q=I.accessToken}catch{}let $=await xB({id:W.id,title:K.title??W.title,connection_type:Z,connection_url:H,connection_token:q,connection_headers:K.connection_headers??W.connection_headers}).catch(()=>null),B=$?.length?$:null,U={...K,connection_url:H,tools:B,configuration_state:F,configuration_scopes:V,updated_by:J},O=await X.storage.connections.update(G,U);if((K.configuration_state!==void 0||K.configuration_scopes!==void 0)&&F&&V)try{let L=[];try{const T=tB(L,await X.createMCPProxy(G),1);await T.callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:F,scopes:V}});await T.close().catch(console.error)}catch(M){var C=M,R=1}finally{var E=oP(L,C,R);E&&await E}}catch(T){console.error("Failed to invoke ON_MCP_CONFIGURATION callback",T)}return{item:O}}})});var fY0;var SF6=x(()=>{bJ();C6();eK();fY0=R0({name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete a connection",inputSchema:vP,outputSchema:_P(cY),handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J)throw Error(`Connection not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error("Connection not found in organization");if(J.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");return await X.storage.connections.delete(Y.id),{item:J}}})});var hY0;var jF6=x(()=>{_0();C6();hY0=R0({name:"CONNECTION_TEST",description:"Test connection health and latency",inputSchema:N.object({id:N.string()}),outputSchema:N.object({id:N.string(),healthy:N.boolean(),latencyMs:N.number()}),handler:async(Y,X)=>{let Q=H6(X);await X.access.check();let J=await X.storage.connections.findById(Y.id);if(!J||J.organization_id!==Q.id)throw Error("Connection not found");let G=await X.storage.connections.testConnection(Y.id);return{id:Y.id,...G}}})});var kF6=x(()=>{pH6();PF6();TF6();RF6();SF6();jF6()});import{sql as s4}from"kysely";function vF6(Y){if(Y===null||Y===void 0)return"NULL";if(typeof Y==="number")return String(Y);if(typeof Y==="boolean")return Y?"TRUE":"FALSE";if(typeof Y==="string")return`'${Y.replace(/'/g,"''")}'`;if(Y instanceof Date)return`'${Y.toISOString()}'`;return`'${JSON.stringify(Y).replace(/'/g,"''")}'`}function Rn4(Y,X){let Q=Y;for(let G=X.length;G>=1;G--){let K=`$${G}`;if(Q.includes(K))Q=Q.replaceAll(K,vF6(X[G-1]))}let J=[];for(let G=0;G<Q.length;G++)if(Q[G]==="?")J.push(G);for(let G=Math.min(J.length,X.length)-1;G>=0;G--){let K=J[G],W=vF6(X[G]);Q=Q.slice(0,K)+W+Q.slice(K+1)}return Q}function _F6(Y){return Y.replace(/-/g,"_")}function jn4(Y){return`app_${_F6(Y)}`}function kn4(Y){return`app_role_${_F6(Y)}`}function vn4(Y){if(Y instanceof Error){let X=Y.message.toLowerCase(),Q=Y.code;return Q==="3F000"||Q==="42704"||Q==="22023"||X.includes("schema")&&X.includes("does not exist")||X.includes("role")&&X.includes("does not exist")}return!1}async function _n4(Y,X,Q){if(await s4`CREATE SCHEMA IF NOT EXISTS ${s4.id(X)}`.execute(Y),!(await s4`
420
420
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
421
- `.execute(Y)).rows[0]?.exists)await s4`CREATE ROLE ${s4.id(Q)} NOLOGIN`.execute(Y);await s4`GRANT ${s4.id(Q)} TO CURRENT_USER`.execute(Y),await s4`GRANT USAGE, CREATE ON SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`GRANT ALL ON ALL TABLES IN SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${s4.id(X)} GRANT ALL ON TABLES TO ${s4.id(Q)}`.execute(Y),await s4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${s4.id(X)} GRANT ALL ON SEQUENCES TO ${s4.id(Q)}`.execute(Y),await s4`REVOKE ALL ON SCHEMA public FROM ${s4.id(Q)}`.execute(Y)}async function yn4(Y,X,Q,J){try{return await Y.transaction().execute(async(G)=>{return await s4`SET LOCAL ROLE ${s4.id(Q)}`.execute(G),await s4`SET LOCAL search_path TO ${s4.id(X)}`.execute(G),await s4.raw(J).execute(G)})}catch(G){if(vn4(G))return await _n4(Y,X,Q),await Y.transaction().execute(async(K)=>{return await s4`SET LOCAL ROLE ${s4.id(Q)}`.execute(K),await s4`SET LOCAL search_path TO ${s4.id(X)}`.execute(K),await s4.raw(J).execute(K)});throw G}}var In4,Sn4,yF6;var fF6=x(()=>{_0();C6();In4=N.object({results:N.array(N.unknown()).optional(),success:N.boolean().optional()});Sn4=N.object({sql:N.string().describe("The SQL query to run"),params:N.array(N.any()).describe("The parameters to pass to the SQL query").optional()});yF6=R0({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:Sn4,outputSchema:N.object({result:N.array(In4)}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Rn4(Y.sql,Y.params||[]);if(!X.connectionId)throw Error("Connection context required for database access");let J=jn4(X.connectionId),G=kn4(X.connectionId);return{result:[{results:(await yn4(X.db,J,G,Q)).rows,success:!0}]}}})});var hF6,hn4,bF6;var mW=x(()=>{_0();RY0();hF6=N.object({connectionId:N.string().optional().describe("Filter subscriptions by connection ID (optional)")}),hn4=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:N.string().datetime().describe("Updated timestamp (ISO 8601)")}),bF6=N.object({subscriptions:N.array(hn4).describe("List of subscriptions")})});var bY0;var xF6=x(()=>{C6();mW();bY0=R0({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:yP,outputSchema:fP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await X.eventBus.publish(Q.id,J,{type:Y.type,subject:Y.subject,data:Y.data,deliverAt:Y.deliverAt,cron:Y.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var xY0;var uF6=x(()=>{C6();mW();xY0=R0({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:hP,outputSchema:bP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await X.eventBus.subscribe(Q.id,{connectionId:J,eventType:Y.eventType,publisher:Y.publisher,filter:Y.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var uY0;var gF6=x(()=>{C6();mW();uY0=R0({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:gP,outputSchema:mP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await X.eventBus.getSubscription(Q.id,Y.subscriptionId);if(!G)throw Error(`Subscription not found: ${Y.subscriptionId}`);if(G.connectionId!==J)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await X.eventBus.unsubscribe(Q.id,Y.subscriptionId)).success,subscriptionId:Y.subscriptionId}}})});var gY0;var mF6=x(()=>{C6();mW();gY0=R0({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:lP,outputSchema:dP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await X.eventBus.getEvent(Q.id,Y.eventId))throw Error(`Event not found: ${Y.eventId}`);if(!(await X.eventBus.cancelEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:Y.eventId}}})});var mY0;var lF6=x(()=>{C6();mW();mY0=R0({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:pP,outputSchema:cP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await X.eventBus.ackEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to acknowledge event. Either the event was not found, already delivered, or you are not a subscriber.");return{success:!0,eventId:Y.eventId}}})});var lY0;var dF6=x(()=>{C6();mW();lY0=R0({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:hF6,outputSchema:bF6,handler:async(Y,X)=>{y0(X);let Q=H6(X);return await X.access.check(),{subscriptions:(await X.eventBus.listSubscriptions(Q.id,Y.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}))}}})});var dY0;var pF6=x(()=>{C6();mW();dY0=R0({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:xP,outputSchema:uP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await X.eventBus.syncSubscriptions(Q.id,{connectionId:J,subscriptions:Y.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map((K)=>({id:K.id,connectionId:K.connectionId,eventType:K.eventType,publisher:K.publisher,filter:K.filter,enabled:K.enabled,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var cF6=x(()=>{xF6();uF6();gF6();mF6();lF6();dF6();pF6();mW()});var aB=x(()=>{H2()});var xn4,un4,pY0;var nF6=x(()=>{_0();C6();aB();xn4=N.object({data:bO.describe("Data for the new virtual MCP")}),un4=N.object({item:ZQ.describe("The created virtual MCP entity")}),pY0=R0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:xn4,outputSchema:un4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to create virtual MCP");return{item:await X.storage.virtualMcps.create(Q.id,J,Y.data)}}})});function gn4(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function Z3(Y){return typeof Y==="string"||typeof Y==="number"}function cY0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function mn4(Y,X){return Y.connections.some((Q)=>Q.connection_id===X)}function yf(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>yf(Y,F));case"or":return H.some((F)=>yf(Y,F));case"not":return!H.every((F)=>yf(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join(".");if(K==="connection_id"){if(J!=="eq"||typeof G!=="string")return!1;return mn4(Y,G)}let W=cY0(Y,K);switch(J){case"eq":return W===G;case"gt":return Z3(W)&&Z3(G)&&W>G;case"gte":return Z3(W)&&Z3(G)&&W>=G;case"lt":return Z3(W)&&Z3(G)&&W<G;case"lte":return Z3(W)&&Z3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=gn4(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function ln4(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=cY0(Q,K),Z=cY0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var dn4,pn4,nY0;var iF6=x(()=>{bJ();C6();aB();dn4=xW,pn4=uW(ZQ),nY0=R0({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:dn4,outputSchema:pn4,handler:async(Y,X)=>{await X.access.check();let Q=H6(X),J=Y.where&&!("conditions"in Y.where)&&Y.where.field.join(".")==="connection_id"&&Y.where.operator==="eq"&&typeof Y.where.value==="string"?Y.where.value:void 0,K=J?await X.storage.virtualMcps.listByConnectionId(Q.id,J):await X.storage.virtualMcps.list(Q.id);if(Y.where)K=K.filter((q)=>yf(q,Y.where));if(Y.orderBy&&Y.orderBy.length>0)K=ln4(K,Y.orderBy);let W=K.length,Z=Y.offset??0,H=Y.limit??100,F=K.slice(Z,Z+H),V=Z+H<W;return{items:F,totalCount:W,hasMore:V}}})});var cn4,nn4,iY0;var aF6=x(()=>{_0();C6();aB();cn4=N.object({id:N.string().describe("ID of the virtual MCP to retrieve")}),nn4=N.object({item:ZQ.nullable().describe("The retrieved virtual MCP, or null if not found")}),iY0=R0({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:cn4,outputSchema:nn4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(J&&J.organization_id!==Q.id)return{item:null};if(!J)return{item:null};return{item:J}}})});var in4,an4,aY0;var rF6=x(()=>{_0();C6();aB();in4=N.object({id:N.string().describe("ID of the virtual MCP to update"),data:xO.describe("Partial virtual MCP data to update")}),an4=N.object({item:ZQ.describe("The updated virtual MCP entity")}),aY0=R0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:in4,outputSchema:an4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to update virtual MCP");let G=await X.storage.virtualMcps.findById(Y.id);if(!G)throw Error(`Virtual MCP not found: ${Y.id}`);if(G.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return{item:await X.storage.virtualMcps.update(Y.id,J,Y.data)}}})});var rn4,on4,rY0;var oF6=x(()=>{_0();C6();aB();rn4=N.object({id:N.string().describe("ID of the virtual MCP to delete")}),on4=N.object({item:ZQ.describe("The deleted virtual MCP entity")}),rY0=R0({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:rn4,outputSchema:on4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(!J)throw Error(`Virtual MCP not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return await X.storage.virtualMcps.delete(Y.id),{item:J}}})});var sF6=x(()=>{nF6();iF6();aF6();rF6();oF6()});var oY0,K68,F7,tF6,eF6;var rB=x(()=>{_0();oY0=N.object({title:N.string().optional(),readOnlyHint:N.boolean().optional(),destructiveHint:N.boolean().optional(),idempotentHint:N.boolean().optional(),openWorldHint:N.boolean().optional()}),K68=N.object({"tool.fn":N.string().describe("JavaScript ES module code that exports a default async function")}),F7=N.object({id:N.string().describe("Unique identifier for the virtual tool (auto-generated)"),name:N.string().min(1).max(255).describe("Tool name (must be unique within the Virtual MCP)"),description:N.string().optional().describe("Human-readable description of what the tool does"),inputSchema:N.record(N.string(),N.unknown()).describe("JSON Schema defining the tool's input parameters"),outputSchema:N.record(N.string(),N.unknown()).optional().describe("JSON Schema defining the tool's output (optional)"),annotations:oY0.optional().describe("MCP tool annotations"),code:N.string().describe("JavaScript ES module code. Must export default an async function: export default async (tools, args) => { ... }"),connection_dependencies:N.array(N.string()).describe("Connection IDs that this tool depends on (specified by the creator)"),created_at:N.string().describe("When the virtual tool was created"),updated_at:N.string().describe("When the virtual tool was last updated")}),tF6=N.object({name:N.string().min(1).max(255).describe("Tool name (must be unique within the Virtual MCP)"),description:N.string().optional().describe("Human-readable description"),inputSchema:N.record(N.string(),N.unknown()).describe("JSON Schema defining the tool's input parameters"),outputSchema:N.record(N.string(),N.unknown()).optional().describe("JSON Schema for output"),annotations:oY0.optional().describe("MCP tool annotations"),code:N.string().describe("JavaScript ES module code. Must export default an async function: export default async (tools, args) => { ... }"),connection_dependencies:N.array(N.string()).optional().describe("Connection IDs that this tool depends on. Creates indirect aggregations to prevent deletion of referenced connections.")}),eF6=N.object({name:N.string().min(1).max(255).optional().describe("New tool name"),description:N.string().nullable().optional().describe("New description (null to clear)"),inputSchema:N.record(N.string(),N.unknown()).optional().describe("New input schema"),outputSchema:N.record(N.string(),N.unknown()).nullable().optional().describe("New output schema (null to clear)"),annotations:oY0.nullable().optional().describe("New annotations (null to clear)"),code:N.string().optional().describe("New JavaScript code"),connection_dependencies:N.array(N.string()).optional().describe("Connection IDs that this tool depends on. Replaces existing dependencies if provided.")})});var tn4,en4,sY0;var YV6=x(()=>{_0();C6();rB();tn4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP to add the tool to"),data:tF6.describe("Virtual tool data")}),en4=N.object({item:F7.describe("The created virtual tool")}),sY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_CREATE",description:"Create a new virtual tool on a Virtual MCP. The tool code should be a JavaScript ES module that exports a default async function: export default async (tools, args) => { ... }. Specify connection_dependencies to indicate which connections this tool uses.",inputSchema:tn4,outputSchema:en4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=Y.data.connection_dependencies??[];return{item:await X.storage.virtualMcps.createVirtualTool(Y.virtual_mcp_id,Y.data,G)}}})});var Yi4,Xi4,tY0;var XV6=x(()=>{_0();C6();rB();Yi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP to list tools for"),limit:N.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:N.number().int().min(0).optional().describe("Number of items to skip")}),Xi4=N.object({items:N.array(F7).describe("Array of virtual tools"),totalCount:N.number().int().min(0).optional().describe("Total number of virtual tools"),hasMore:N.boolean().optional().describe("Whether there are more items available")}),tY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_LIST",description:"List all virtual tools for a Virtual MCP",inputSchema:Yi4,outputSchema:Xi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{items:[],totalCount:0,hasMore:!1};let G=await X.storage.virtualMcps.listVirtualTools(Y.virtual_mcp_id),K=G.length,W=Y.offset??0,Z=Y.limit??100,H=G.slice(W,W+Z),F=W+Z<K;return{items:H,totalCount:K,hasMore:F}}})});var Qi4,Ji4,eY0;var QV6=x(()=>{_0();C6();rB();Qi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Name of the virtual tool to retrieve")}),Ji4=N.object({item:F7.nullable().describe("The retrieved virtual tool, or null if not found")}),eY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_GET",description:"Get a virtual tool by name from a Virtual MCP",inputSchema:Qi4,outputSchema:Ji4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name)}}})});var Gi4,Wi4,YX0;var JV6=x(()=>{_0();C6();rB();Gi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Current name of the virtual tool to update"),data:eF6.describe("Partial virtual tool data to update")}),Wi4=N.object({item:F7.describe("The updated virtual tool")}),YX0=R0({name:"COLLECTION_VIRTUAL_TOOLS_UPDATE",description:"Update an existing virtual tool on a Virtual MCP. Specify connection_dependencies to update which connections this tool uses.",inputSchema:Gi4,outputSchema:Wi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);if(!await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name))throw Error(`Virtual tool not found: ${Y.name}`);let K=Y.data.connection_dependencies;return{item:await X.storage.virtualMcps.updateVirtualTool(Y.virtual_mcp_id,Y.name,Y.data,K)}}})});var Zi4,Ki4,XX0;var GV6=x(()=>{_0();C6();rB();Zi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Name of the virtual tool to delete")}),Ki4=N.object({item:F7.describe("The deleted virtual tool")}),XX0=R0({name:"COLLECTION_VIRTUAL_TOOLS_DELETE",description:"Delete a virtual tool from a Virtual MCP",inputSchema:Zi4,outputSchema:Ki4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name);if(!G)throw Error(`Virtual tool not found: ${Y.name}`);return await X.storage.virtualMcps.deleteVirtualTool(Y.virtual_mcp_id,Y.name),{item:G}}})});var WV6=x(()=>{YV6();XV6();QV6();JV6();GV6()});var Fi4,QX0;var ZV6=x(()=>{C6();_0();Fi4=N.object({id:N.string().optional().describe("Unique log identifier"),organizationId:N.string().describe("Organization ID"),connectionId:N.string().describe("Connection ID"),connectionTitle:N.string().describe("Connection display name"),toolName:N.string().describe("Name of the tool that was called"),input:N.record(N.string(),N.unknown()).describe("Redacted tool input"),output:N.record(N.string(),N.unknown()).describe("Redacted tool output"),isError:N.boolean().describe("Whether the call resulted in an error"),errorMessage:N.string().nullish().describe("Error message if applicable"),durationMs:N.number().describe("Call duration in milliseconds"),timestamp:N.string().describe("ISO 8601 timestamp of the call"),userId:N.string().nullish().describe("User who triggered the call"),requestId:N.string().describe("Unique request identifier"),userAgent:N.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:N.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:N.record(N.string(),N.string()).nullish().describe("Custom key-value metadata attached to the log")}),QX0=R0({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:N.object({connectionId:N.string().optional().describe("Filter by connection ID"),virtualMcpId:N.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:N.string().optional().describe("Filter by tool name"),isError:N.boolean().optional().describe("Filter by error status"),startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:N.number().default(20).describe("Maximum number of results"),offset:N.number().default(0).describe("Offset for pagination"),properties:N.record(N.string(),N.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:N.array(N.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:N.record(N.string(),N.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:N.record(N.string(),N.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:N.object({logs:N.array(Fi4).describe("Array of monitoring logs"),total:N.number().describe("Total number of logs matching filters"),offset:N.number().describe("Current offset for pagination"),limit:N.number().describe("Current limit for pagination")}),handler:async(Y,X)=>{let Q=H6(X),G=Y.properties||Y.propertyKeys||Y.propertyPatterns||Y.propertyInValues?{properties:Y.properties,propertyKeys:Y.propertyKeys,propertyPatterns:Y.propertyPatterns,propertyInValues:Y.propertyInValues}:void 0,K={organizationId:Q.id,connectionId:Y.connectionId,virtualMcpId:Y.virtualMcpId,toolName:Y.toolName,isError:Y.isError,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0,limit:Y.limit,offset:Y.offset,propertyFilters:G},W=await X.storage.monitoring.query(K);return{logs:W.logs.map((Z)=>({...Z,timestamp:Z.timestamp instanceof Date?Z.timestamp.toISOString():Z.timestamp})),total:W.total,offset:Y.offset,limit:Y.limit}}})});var JX0;var KV6=x(()=>{C6();_0();JX0=R0({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:N.object({startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:N.object({totalCalls:N.number().describe("Total number of tool calls"),errorRate:N.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:N.number().describe("Average call duration in milliseconds"),errorRatePercent:N.string().describe("Error rate as a percentage string")}),handler:async(Y,X)=>{let J={organizationId:H6(X).id,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0},G=await X.storage.monitoring.getStats(J);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var HV6=x(()=>{ZV6();KV6()});var GX0;var FV6=x(()=>{_0();C6();GX0=R0({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:N.object({slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:N.string().min(1).max(255),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),members:N.array(N.any()).optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=L8(X);if(!Q)throw Error("User ID required to create organization");let J=await X.boundAuth.organization.create({name:Y.name,slug:Y.slug,metadata:Y.description?{description:Y.description}:void 0,userId:Q});if(!J)throw Error("Failed to create organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var WX0;var VV6=x(()=>{_0();C6();WX0=R0({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:N.object({userId:N.string().optional()}),outputSchema:N.object({organizations:N.array(N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=L8(X),J=Y.userId||Q;if(!J)throw Error("User ID required to list organizations");return{organizations:(await X.boundAuth.organization.list(J)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var ZX0;var qV6=x(()=>{_0();C6();ZX0=R0({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:N.object({}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),members:N.array(N.any()).optional(),invitations:N.array(N.any()).optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=await X.boundAuth.organization.get();if(!Q)throw Error("No active organization found");let J=new Date,G=Q.invitations?.filter((K)=>new Date(K.expiresAt)>J);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});var KX0;var $V6=x(()=>{_0();C6();KX0=R0({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:N.object({id:N.string(),slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:N.string().min(1).max(255).optional(),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q={};if(Y.name)Q.name=Y.name;if(Y.slug)Q.slug=Y.slug;if(Y.description)Q.metadata={description:Y.description};let J=await X.boundAuth.organization.update({organizationId:Y.id,data:Q});if(!J)throw Error("Failed to update organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var HX0;var zV6=x(()=>{_0();C6();HX0=R0({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:N.object({id:N.string()}),outputSchema:N.object({success:N.boolean(),id:N.string()}),handler:async(Y,X)=>{return y0(X),await X.access.check(),await X.boundAuth.organization.delete(Y.id),{success:!0,id:Y.id}}})});var aP;var FX0=x(()=>{_0();aP=N.object({title:N.string(),url:N.string(),icon:N.string()})});var VX0;var BV6=x(()=>{_0();C6();FX0();VX0=R0({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:N.object({}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).nullable().optional(),enabled_plugins:N.array(N.string()).nullable().optional(),createdAt:N.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.storage.organizationSettings.get(Q);if(!J)return{organizationId:Q};return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}})});var qX0;var UV6=x(()=>{_0();C6();FX0();qX0=R0({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).optional(),enabled_plugins:N.array(N.string()).optional()}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).nullable().optional(),enabled_plugins:N.array(N.string()).nullable().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{if(y0(X),await X.access.check(),X.organization&&X.organization.id!==Y.organizationId)throw Error("Cannot update settings for a different organization");let Q=await X.storage.organizationSettings.upsert(Y.organizationId,{sidebar_items:Y.sidebar_items,enabled_plugins:Y.enabled_plugins});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});var $X0;var DV6=x(()=>{_0();C6();$X0=R0({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:N.object({organizationId:N.string().optional(),userId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.string(),N.array(N.string())]),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.addMember({organizationId:Q,userId:Y.userId,role:Y.role});if(!J)throw Error("Failed to add member");return{...J,role:J.role,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var zX0;var OV6=x(()=>{_0();C6();zX0=R0({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:N.object({organizationId:N.string().optional(),memberIdOrEmail:N.string()}),outputSchema:N.object({success:N.boolean(),memberIdOrEmail:N.string()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return await X.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:Y.memberIdOrEmail}),{success:!0,memberIdOrEmail:Y.memberIdOrEmail}}})});var BX0;var NV6=x(()=>{_0();C6();BX0=R0({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:N.object({limit:N.number().optional(),offset:N.number().optional()}),outputSchema:N.object({members:N.array(N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.string(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().optional()}).optional()}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.listMembers({organizationId:Q,limit:Y.limit,offset:Y.offset});return{members:(Array.isArray(J)?J:[]).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var UX0;var LV6=x(()=>{_0();C6();UX0=R0({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:N.object({organizationId:N.string().optional(),memberId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.literal("admin"),N.literal("member"),N.literal("owner")]),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),user:N.object({email:N.string(),name:N.string(),image:N.string().optional()})}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:Y.memberId,role:Y.role});if(!J)throw Error("Failed to update member role");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var MV6=x(()=>{FV6();VV6();qV6();$V6();zV6();BV6();UV6();DV6();OV6();NV6();LV6()});var $i4,ff,zi4,VV,wV6,hf;var qV=x(()=>{_0();$i4=N.object({banner:N.string().nullable(),bannerColor:N.string().nullable(),icon:N.string().nullable(),themeColor:N.string().nullable()}),ff=N.object({banner:N.string().nullable().optional(),bannerColor:N.string().nullable().optional(),icon:N.string().nullable().optional(),themeColor:N.string().nullable().optional()}),zi4=N.object({id:N.string(),title:N.string(),icon:N.string().nullable()}),VV=N.object({id:N.string(),organizationId:N.string(),slug:N.string(),name:N.string(),description:N.string().nullable(),enabledPlugins:N.array(N.string()).nullable(),ui:$i4.nullable(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")}),wV6=VV.omit({organizationId:!0}).extend({boundConnections:N.array(zi4)}),hf=N.object({id:N.string(),projectId:N.string(),pluginId:N.string(),connectionId:N.string().nullable(),settings:N.record(N.string(),N.unknown()).nullable(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")})});var DX0;var PV6=x(()=>{_0();C6();qV();DX0=R0({name:"PROJECT_LIST",description:"List all projects in an organization",inputSchema:N.object({organizationId:N.string().describe("Organization ID to list projects for")}),outputSchema:N.object({projects:N.array(wV6)}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=await X.storage.projects.list(Y.organizationId),J=Q.map((K)=>K.id),G=await X.storage.projectPluginConfigs.getBoundConnectionsForProjects(J);return{projects:Q.map((K)=>({id:K.id,slug:K.slug,name:K.name,description:K.description,enabledPlugins:K.enabledPlugins,ui:K.ui,boundConnections:G.get(K.id)??[],createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var OX0;var TV6=x(()=>{_0();C6();qV();OX0=R0({name:"PROJECT_GET",description:"Get a project by ID or slug",inputSchema:N.object({organizationId:N.string().describe("Organization ID"),projectId:N.string().optional().describe("Project ID (either this or slug required)"),slug:N.string().optional().describe("Project slug (either this or projectId required)")}).refine((Y)=>Y.projectId||Y.slug,{message:"Either projectId or slug must be provided"}),outputSchema:N.object({project:VV.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=null;if(Y.projectId)Q=await X.storage.projects.get(Y.projectId);else if(Y.slug)Q=await X.storage.projects.getBySlug(Y.organizationId,Y.slug);if(!Q)return{project:null};return{project:{id:Q.id,organizationId:Q.organizationId,slug:Q.slug,name:Q.name,description:Q.description,enabledPlugins:Q.enabledPlugins,ui:Q.ui,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}}})});var NX0;var AV6=x(()=>{_0();I7();C6();qV();NX0=R0({name:"PROJECT_CREATE",description:"Create a new project in an organization",inputSchema:N.object({organizationId:N.string().describe("Organization ID"),slug:N.string().min(1).max(100).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").describe("URL-friendly identifier"),name:N.string().min(1).max(200).describe("Display name"),description:N.string().max(1000).nullable().optional().describe("Project description"),enabledPlugins:N.array(N.string()).nullable().optional().describe("Plugin IDs to enable"),ui:ff.nullable().optional().describe("UI customization")}),outputSchema:N.object({project:VV}),handler:async(Y,X)=>{y0(X),await X.access.check();let{organizationId:Q,slug:J,name:G,description:K,enabledPlugins:W,ui:Z}=Y;if(J===xJ)throw Error(`Slug "${xJ}" is reserved`);if(await X.storage.projects.getBySlug(Q,J))throw Error(`Project with slug "${J}" already exists in this organization`);let F=Z?{banner:Z.banner??null,bannerColor:Z.bannerColor??null,icon:Z.icon??null,themeColor:Z.themeColor??null}:null,V=await X.storage.projects.create({organizationId:Q,slug:J,name:G,description:K??null,enabledPlugins:W??null,ui:F});return{project:{id:V.id,organizationId:V.organizationId,slug:V.slug,name:V.name,description:V.description,enabledPlugins:V.enabledPlugins,ui:V.ui,createdAt:V.createdAt instanceof Date?V.createdAt.toISOString():V.createdAt,updatedAt:V.updatedAt instanceof Date?V.updatedAt.toISOString():V.updatedAt}}}})});var LX0;var EV6=x(()=>{_0();C6();qV();LX0=R0({name:"PROJECT_UPDATE",description:"Update a project's details",inputSchema:N.object({projectId:N.string().describe("Project ID to update"),name:N.string().min(1).max(200).optional().describe("New display name"),description:N.string().max(1000).nullable().optional().describe("New description"),enabledPlugins:N.array(N.string()).nullable().optional().describe("Updated plugin IDs"),ui:ff.nullable().optional().describe("Updated UI customization")}),outputSchema:N.object({project:VV.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,name:J,description:G,enabledPlugins:K,ui:W}=Y,Z={};if(J!==void 0)Z.name=J;if(G!==void 0)Z.description=G;if(K!==void 0)Z.enabledPlugins=K;if(W!==void 0)Z.ui=W?{banner:W.banner??null,bannerColor:W.bannerColor??null,icon:W.icon??null,themeColor:W.themeColor??null}:null;let H=await X.storage.projects.update(Q,Z);if(!H)return{project:null};return{project:{id:H.id,organizationId:H.organizationId,slug:H.slug,name:H.name,description:H.description,enabledPlugins:H.enabledPlugins,ui:H.ui,createdAt:H.createdAt instanceof Date?H.createdAt.toISOString():H.createdAt,updatedAt:H.updatedAt instanceof Date?H.updatedAt.toISOString():H.updatedAt}}}})});var MX0;var CV6=x(()=>{_0();I7();C6();MX0=R0({name:"PROJECT_DELETE",description:"Delete a project (cannot delete org-admin)",inputSchema:N.object({projectId:N.string().describe("Project ID to delete")}),outputSchema:N.object({success:N.boolean(),message:N.string().optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q}=Y,J=await X.storage.projects.get(Q);if(!J)return{success:!1,message:"Project not found"};if(J.slug===xJ)return{success:!1,message:"Cannot delete the org-admin project"};return{success:await X.storage.projects.delete(Q)}}})});var wX0;var IV6=x(()=>{_0();C6();qV();wX0=R0({name:"PROJECT_PLUGIN_CONFIG_GET",description:"Get plugin configuration for a project",inputSchema:N.object({projectId:N.string().describe("Project ID"),pluginId:N.string().describe("Plugin ID")}),outputSchema:N.object({config:hf.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,pluginId:J}=Y,G=await X.storage.projectPluginConfigs.get(Q,J);if(!G)return{config:null};return{config:{id:G.id,projectId:G.projectId,pluginId:G.pluginId,connectionId:G.connectionId,settings:G.settings,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var PX0;var RV6=x(()=>{_0();C6();qV();kf();PX0=R0({name:"PROJECT_PLUGIN_CONFIG_UPDATE",description:"Update or create plugin configuration for a project",inputSchema:N.object({projectId:N.string().describe("Project ID"),pluginId:N.string().describe("Plugin ID"),connectionId:N.string().nullable().optional().describe("MCP connection to bind"),settings:N.record(N.string(),N.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:N.object({config:hf}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,pluginId:J,connectionId:G,settings:K}=Y,W=L8(X),Z=await X.storage.projects.get(Q);if(!Z)throw Error(`Project not found: ${Q}`);let H=G?await X.storage.connections.findById(G):null;if(G&&Z.organizationId&&!H&&nB()){if(jf(G,Z.organizationId)){if(!W)throw Error("User ID required to create dev-assets connection");let V=iB(Z.organizationId,B5());await X.storage.connections.create({...V,organization_id:Z.organizationId,created_by:W})}}let F=await X.storage.projectPluginConfigs.upsert(Q,J,{connectionId:G,settings:K});return{config:{id:F.id,projectId:F.projectId,pluginId:F.pluginId,connectionId:F.connectionId,settings:F.settings,createdAt:F.createdAt instanceof Date?F.createdAt.toISOString():F.createdAt,updatedAt:F.updatedAt instanceof Date?F.updatedAt.toISOString():F.updatedAt}}}})});var SV6=x(()=>{PV6();TV6();AV6();EV6();CV6();IV6();RV6()});var TX0;var jV6=x(()=>{_0();C6();TX0=R0({name:"TAGS_LIST",description:"List all tags in an organization",inputSchema:N.object({}),outputSchema:N.object({tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);return{tags:(await X.storage.tags.listOrgTags(Q.id)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});var AX0;var kV6=x(()=>{_0();C6();AX0=R0({name:"TAGS_CREATE",description:"Create a new tag in an organization",inputSchema:N.object({name:N.string().min(1).max(50).describe("Tag name")}),outputSchema:N.object({tag:N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")})}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X),J=await X.storage.tags.createTag(Q.id,Y.name);return{tag:{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():String(J.createdAt)}}}})});var EX0;var vV6=x(()=>{_0();C6();EX0=R0({name:"TAGS_DELETE",description:"Delete a tag from an organization (removes from all members)",inputSchema:N.object({tagId:N.string().describe("Tag ID to delete")}),outputSchema:N.object({success:N.boolean()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X),J=await X.storage.tags.getTag(Y.tagId);if(!J)throw Error("Tag not found");if(J.organizationId!==Q.id)throw Error("Tag does not belong to this organization");return await X.storage.tags.deleteTag(Y.tagId),{success:!0}}})});var CX0;var _V6=x(()=>{_0();C6();CX0=R0({name:"MEMBER_TAGS_GET",description:"Get tags assigned to a member",inputSchema:N.object({memberId:N.string().describe("Member ID")}),outputSchema:N.object({tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);return{tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var IX0;var yV6=x(()=>{_0();C6();IX0=R0({name:"MEMBER_TAGS_SET",description:"Set tags for a member (replaces all existing tags)",inputSchema:N.object({memberId:N.string().describe("Member ID"),tagIds:N.array(N.string()).describe("Array of tag IDs to assign")}),outputSchema:N.object({success:N.boolean(),tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);for(let K of Y.tagIds){let W=await X.storage.tags.getTag(K);if(!W)throw Error(`Tag not found: ${K}`);if(W.organizationId!==Q.id)throw Error(`Tag does not belong to this organization: ${K}`)}return await X.storage.tags.setMemberTags(Y.memberId,Y.tagIds),{success:!0,tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var fV6=x(()=>{jV6();kV6();vV6();_V6();yV6()});var hV6,V7,bV6,xV6;var $V=x(()=>{_0();hV6=N.object({id:N.string().describe("Unique message ID"),threadId:N.string().describe("ID of the parent thread"),metadata:N.unknown().optional().describe("Optional message metadata"),parts:N.array(N.record(N.string(),N.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:N.enum(["user","assistant","system"]).describe("Message role"),createdAt:N.string().datetime().describe("Timestamp of creation"),updatedAt:N.string().datetime().describe("Timestamp of last update")}),V7=N.object({id:N.string().describe("Unique thread ID"),organizationId:N.string().describe("Organization this thread belongs to"),title:N.string().describe("Thread title"),description:N.string().nullable().describe("Thread description"),createdAt:N.string().datetime().describe("Timestamp of creation"),updatedAt:N.string().datetime().describe("Timestamp of last update"),hidden:N.boolean().optional().describe("Whether the thread is hidden"),createdBy:N.string().describe("User ID who created the thread"),updatedBy:N.string().nullable().describe("User ID who last updated the thread")}),bV6=N.object({id:N.string().optional().describe("Optional custom ID for the thread"),title:N.string().describe("Thread title"),description:N.string().nullish().describe("Thread description")}),xV6=N.object({title:N.string().optional().describe("New thread title"),description:N.string().nullish().describe("New thread description"),hidden:N.boolean().optional().describe("Whether the thread is hidden")})});var Di4,Oi4,RX0;var uV6=x(()=>{_0();C6();$V();UP();Di4=N.object({data:bV6.describe("Data for the new thread (id is auto-generated if not provided)")}),Oi4=N.object({item:V7.describe("The created thread entity")}),RX0=R0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:Di4,outputSchema:Oi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to create thread");let G=Y.data.id??Y3("thrd"),K=await X.storage.threads.create({id:G,organizationId:Q.id,title:Y.data.title,description:Y.data.description,createdBy:J});return{item:{...K,hidden:K.hidden??!1}}}})});var Ni4,Li4,SX0;var gV6=x(()=>{bJ();C6();$V();_0();Ni4=xW.extend({where:N.object({created_by:N.string().optional()}).optional()}),Li4=uW(V7),SX0=R0({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:Ni4,outputSchema:Li4,handler:async(Y,X)=>{await X.access.check();let Q=X.auth.user?.id;if(!Q)throw Error("User ID required to list threads");let J=H6(X),G=Y.offset??0,K=Y.limit??100,{threads:W,total:Z}=await X.storage.threads.list(J.id,Q,{limit:K,offset:G}),H=G+K<Z;return{items:W.map((F)=>({...F,hidden:F.hidden??!1})),totalCount:Z,hasMore:H}}})});var Mi4,jX0;var mV6=x(()=>{bJ();C6();$V();Mi4=kP(V7),jX0=R0({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:jP,outputSchema:Mi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J||J.organizationId!==Q.id)return{item:null};return{item:{...J,hidden:J.hidden??!1}}}})});var wi4,Pi4,kX0;var lV6=x(()=>{_0();C6();$V();wi4=N.object({id:N.string().describe("ID of the thread to update"),data:xV6.describe("Partial thread data to update")}),Pi4=N.object({item:V7.describe("The updated thread entity")}),kX0=R0({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:wi4,outputSchema:Pi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to update thread");let{id:G,data:K}=Y,W=await X.storage.threads.get(G);if(!W||W.organizationId!==Q.id)throw Error("Thread not found in organization");let Z=await X.storage.threads.update(G,{title:K.title,description:K.description,hidden:K.hidden,updatedBy:J});return{item:{...Z,hidden:Z.hidden??!1}}}})});var vX0;var dV6=x(()=>{bJ();C6();$V();vX0=R0({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:vP,outputSchema:_P(V7),handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J)throw Error(`Thread not found: ${Y.id}`);if(J.organizationId!==Q.id)throw Error(`Thread not found: ${Y.id}`);return await X.storage.threads.delete(Y.id),{item:{...J,hidden:J.hidden??!1}}}})});function pV6(Y){if(!Y)return null;if("field"in Y&&Y.field[0]==="threadId"&&Y.operator==="eq")return String(Y.value);if("conditions"in Y)for(let X of Y.conditions){let Q=pV6(X);if(Q)return Q}return null}var Ti4,_X0;var cV6=x(()=>{bJ();C6();$V();Ti4=uW(hV6),_X0=R0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:xW,outputSchema:Ti4,handler:async(Y,X)=>{let Q=H6(X);await X.access.check();let J=pV6(Y.where);if(!J)throw Error("threadId filter is required in where clause");let G=await X.storage.threads.get(J);if(!G||G.organizationId!==Q.id)return{items:[],totalCount:0,hasMore:!1};let K=Y.offset??0,W=Y.limit??100,{messages:Z,total:H}=await X.storage.threads.listMessages(J,{limit:W,offset:K}),F=K+W<H;return{items:Z,totalCount:H,hasMore:F}}})});var nV6=x(()=>{uV6();gV6();mV6();lV6();dV6();cV6()});var Ei4,Ci4,yX0;var iV6=x(()=>{_0();C6();Ei4=N.object({id:N.string().min(1)}),Ci4=N.object({user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().nullable()}).nullable()}),yX0=R0({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:Ei4,outputSchema:Ci4,handler:async(Y,X)=>{await X.access.check(),y0(X);let Q=L8(X);if(!Q)throw Error("Authentication required");let J=await X.storage.users.findById(Y.id,Q);if(!J)return{user:null};return{user:{id:J.id,name:J.name,email:J.email,image:J.image??null}}}})});var aV6=x(()=>{iV6()});var oV6={};h6(oV6,{managementMCP:()=>ji4,ALL_TOOLS:()=>rV6});var Ri4,Si4,rV6,ji4=async(Y)=>{let X=null;if(Y.organization)X=(await Y.storage.organizationSettings.get(Y.organization.id))?.enabled_plugins??null;let J=_36(rV6,X).map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema,outputSchema:K.outputSchema,handler:async(W)=>{return Y.access.setToolName(K.name),await K.execute(W,Y)}}));return fK6({name:"mcp-mesh-management",version:"1.0.0"}).withTools(J).build()};var sV6=x(()=>{hK6();s90();r36();dH6();kF6();fF6();cF6();sF6();WV6();HV6();MV6();SV6();fV6();nV6();aV6();Ri4=[GX0,WX0,ZX0,KX0,HX0,VX0,qX0,$X0,zX0,BX0,UX0,EY0,kY0,vY0,yY0,fY0,hY0,pY0,nY0,iY0,aY0,rY0,sY0,tY0,eY0,YX0,XX0,yF6,QX0,JX0,e90,XY0,QY0,YY0,bY0,xY0,uY0,gY0,mY0,lY0,dY0,yX0,PY0,TY0,AY0,RX0,SX0,jX0,kX0,vX0,_X0,TX0,AX0,EX0,CX0,IX0,DX0,OX0,NX0,LX0,MX0,wX0,PX0],Si4=y36(),rV6=[...Ri4,...Si4]});pd();import{Migrator as Zq6,sql as lW}from"kysely";var wH0={benchmark:()=>Promise.resolve().then(() => (MH0(),LH0)).then((Y)=>Y.seed)};async function PH0(Y,X){let Q=wH0[X];if(!Q)throw Error(`Unknown seed: ${X}. Available: ${Object.keys(wH0).join(", ")}`);let J=await Q();console.log(`\uD83C\uDF31 Running seed: ${X}`);let G=await J(Y);return console.log(`\u2705 Seed "${X}" completed`),G}R7();dQ();R7();dQ();TY();L9();var T8=(Y,X="ms")=>{return new Date(Date.now()+(X==="sec"?Y*1000:Y))},e2=new WeakMap;function Xq0(Y,X){let Q=X.fields,J={};for(let G in Y){let K=Q[G];if(!K){J[G]=Y[G];continue}if(K.returned===!1)continue;J[G]=Y[G]}return J}function YR(Y,X){if(!e2.has(Y))e2.set(Y,new Map);let Q=e2.get(Y);if(Q.has(X))return Q.get(X);let J={...X==="user"?Y.user?.additionalFields:{},...X==="session"?Y.session?.additionalFields:{}};for(let G of Y.plugins||[])if(G.schema&&G.schema[X])J={...J,...G.schema[X].fields};return e2.get(Y).set(X,J),J}function M9(Y,X){return{...Xq0(X,{fields:YR(Y,"user")}),id:X.id}}function HG(Y,X){return Xq0(X,{fields:YR(Y,"session")})}function Hc(Y,X){let Q=X.action||"create",J=X.fields,G=Object.assign(Object.create(null),null);for(let K in J){if(K in Y){if(J[K].input===!1){if(J[K].defaultValue!==void 0){if(Q!=="update"){G[K]=J[K].defaultValue;continue}}if(Y[K])throw new i("BAD_REQUEST",{message:`${K} is not allowed to be set`});continue}if(J[K].validator?.input&&Y[K]!==void 0){G[K]=J[K].validator.input["~standard"].validate(Y[K]);continue}if(J[K].transform?.input&&Y[K]!==void 0){G[K]=J[K].transform?.input(Y[K]);continue}G[K]=Y[K];continue}if(J[K].defaultValue!==void 0&&Q==="create"){if(typeof J[K].defaultValue==="function"){G[K]=J[K].defaultValue();continue}G[K]=J[K].defaultValue;continue}if(J[K].required&&Q==="create")throw new i("BAD_REQUEST",{message:`${K} is required`})}return G}function XR(Y,X={},Q){return Hc(X,{fields:YR(Y,"user"),action:Q})}function Fc(Y,X){return Hc(X,{fields:YR(Y,"session")})}function rY(Y,X){if(!X)return Y;for(let Q in X){let J=X[Q]?.modelName;if(J)Y[Q].modelName=J;for(let G in Y[Q].fields){let K=X[Q]?.fields?.[G];if(!K)continue;Y[Q].fields[G].fieldName=K}}return Y}kX();_0();var oR6="127.0.0.1";function bZ(Y,X){if(X.advanced?.ipAddress?.disableIpTracking)return null;if(x7()||pq())return oR6;let Q="headers"in Y?Y.headers:Y,J=X.advanced?.ipAddress?.ipAddressHeaders||["x-forwarded-for"];for(let G of J){let K="get"in Q?Q.get(G):Q[G];if(typeof K==="string"){let W=K.split(",")[0].trim();if(sR6(W))return W}}return null}function sR6(Y){if(y3().safeParse(Y).success)return!0;if(f3().safeParse(Y).success)return!0;return!1}AY();ZG();kX();f8();import{sql as VG}from"kysely";async function Zq0(Y,X){let Q;if(!Y.database){let J=KQ(Y),G=Object.keys(J).reduce((W,Z)=>{return W[Z]=[],W},{}),{memoryAdapter:K}=await Promise.resolve().then(() => (Wq0(),Gq0));Q=K(G)(Y)}else if(typeof Y.database==="function")Q=Y.database(Y);else Q=await X(Y);if(!Q.transaction)b6.warn("Adapter does not correctly implement transaction function, patching it automatically. Please update your adapter implementation."),Q.transaction=async(J)=>{return J(Q)};return Q}async function Uc(Y){return Zq0(Y,async(X)=>{let{createKyselyAdapter:Q}=await Promise.resolve().then(() => (Bc(),zc)),{kysely:J,databaseType:G,transaction:K}=await Q(X);if(!J)throw new S6("Failed to initialize database adapter");let{kyselyAdapter:W}=await Promise.resolve().then(() => (Bc(),zc));return W(J,{type:G||"sqlite",debugLogs:X.database&&"debugLogs"in X.database?X.database.debugLogs:!1,transaction:K})(X)})}function Kq0(Y,X){let Q=X.hooks;async function J(H,F,V){let q=await HQ(),$=H;for(let O of Q||[]){let L=O[F]?.create?.before;if(L){let M=await L($,q);if(M===!1)return null;if(typeof M==="object"&&"data"in M)$={...$,...M.data}}}let B=V?await V.fn($):null,U=!V||V.executeMainFn?await(await U1(Y)).create({model:F,data:$,forceAllowId:!0}):B;for(let O of Q||[]){let L=O[F]?.create?.after;if(L)await L(U,q)}return U}async function G(H,F,V,q){let $=await HQ(),B=H;for(let L of Q||[]){let M=L[V]?.update?.before;if(M){let C=await M(H,$);if(C===!1)return null;if(typeof C==="object"&&"data"in C)B={...B,...C.data}}}let U=q?await q.fn(B):null,O=!q||q.executeMainFn?await(await U1(Y)).update({model:V,update:B,where:F}):U;for(let L of Q||[]){let M=L[V]?.update?.after;if(M)await M(O,$)}return O}async function K(H,F,V,q){let $=await HQ(),B=H;for(let L of Q||[]){let M=L[V]?.update?.before;if(M){let C=await M(H,$);if(C===!1)return null;if(typeof C==="object"&&"data"in C)B={...B,...C.data}}}let U=q?await q.fn(B):null,O=!q||q.executeMainFn?await(await U1(Y)).updateMany({model:V,update:B,where:F}):U;for(let L of Q||[]){let M=L[V]?.update?.after;if(M)await M(O,$)}return O}async function W(H,F,V){let q=await HQ(),$=null;try{$=(await(await U1(Y)).findMany({model:F,where:H,limit:1}))[0]||null}catch(O){}if($)for(let O of Q||[]){let L=O[F]?.delete?.before;if(L){if(await L($,q)===!1)return null}}let B=V?await V.fn(H):null,U=!V||V.executeMainFn?await(await U1(Y)).delete({model:F,where:H}):B;if($)for(let O of Q||[]){let L=O[F]?.delete?.after;if(L)await L($,q)}return U}async function Z(H,F,V){let q=await HQ(),$=[];try{$=await(await U1(Y)).findMany({model:F,where:H})}catch(O){}for(let O of $)for(let L of Q||[]){let M=L[F]?.delete?.before;if(M){if(await M(O,q)===!1)return null}}let B=V?await V.fn(H):null,U=!V||V.executeMainFn?await(await U1(Y)).deleteMany({model:F,where:H}):B;for(let O of $)for(let L of Q||[]){let M=L[F]?.delete?.after;if(M)await M(O,q)}return U}return{createWithHooks:J,updateWithHooks:G,updateManyWithHooks:K,deleteWithHooks:W,deleteManyWithHooks:Z}}var HR=(Y,X)=>{let{logger:Q,options:J}=X,G=J.secondaryStorage,K=J.session?.expiresIn||604800,{createWithHooks:W,updateWithHooks:Z,updateManyWithHooks:H,deleteWithHooks:F,deleteManyWithHooks:V}=Kq0(Y,X);async function q($){if(!G)return;let B=await G.get(`active-sessions-${$.id}`);if(!B)return;let U=Date.now(),O=(T1(B)||[]).filter((L)=>L.expiresAt>U);await Promise.all(O.map(async({token:L})=>{let M=await G.get(L);if(!M)return;let C=T1(M);if(!C)return;let R=Math.max(Math.floor(new Date(C.session.expiresAt).getTime()-U)/1000,0);await G.set(L,JSON.stringify({session:C.session,user:$}),Math.floor(R))}))}return{createOAuthUser:async($,B)=>{return VN(Y,async()=>{let U=await W({createdAt:new Date,updatedAt:new Date,...$},"user",void 0);return{user:U,account:await W({...B,userId:U.id,createdAt:new Date,updatedAt:new Date},"account",void 0)}})},createUser:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$,email:$.email?.toLowerCase()},"user",void 0)},createAccount:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"account",void 0)},listSessions:async($)=>{if(G){let B=await G.get(`active-sessions-${$}`);if(!B)return[];let U=T1(B)||[],O=Date.now(),L=U.filter((C)=>C.expiresAt>O),M=[];for(let C of L){let R=await G.get(C.token);if(R){let E=T1(R);if(!E)return[];let T=HG(X.options,{...E.session,expiresAt:new Date(E.session.expiresAt)});M.push(T)}}return M}return await(await U1(Y)).findMany({model:"session",where:[{field:"userId",value:$}]})},listUsers:async($,B,U,O)=>{return await(await U1(Y)).findMany({model:"user",limit:$,offset:B,sortBy:U,where:O})},countTotalUsers:async($)=>{let B=await(await U1(Y)).count({model:"user",where:$});if(typeof B==="string")return parseInt(B);return B},deleteUser:async($)=>{if(G)await G.delete(`active-sessions-${$}`);if(!G||J.session?.storeSessionInDatabase)await V([{field:"userId",value:$}],"session",void 0);await V([{field:"userId",value:$}],"account",void 0),await F([{field:"id",value:$}],"user",void 0)},createSession:async($,B,U,O)=>{let L=await HQ().catch(()=>null),M=L?.headers||L?.request?.headers,{id:C,...R}=U||{},E=Fc(L?.context.options??J,{}),T={ipAddress:L?.request||L?.headers?bZ(L?.request||L?.headers,L?.context.options)||"":"",userAgent:M?.get("user-agent")||"",...R,expiresAt:B?T8(86400,"sec"):T8(K,"sec"),userId:$,token:o8(32),createdAt:new Date,updatedAt:new Date,...E,...O?R:{}};return await W(T,"session",G?{fn:async(I)=>{let S=await G.get(`active-sessions-${$}`),k=[],_=Date.now();if(S)k=T1(S)||[],k=k.filter((d)=>d.expiresAt>_);let y=k.sort((d,Y0)=>d.expiresAt-Y0.expiresAt),f=y.at(-1)?.expiresAt;if(y.push({token:T.token,expiresAt:T.expiresAt.getTime()}),!f||f<T.expiresAt.getTime())f=T.expiresAt.getTime();let o=Math.max(Math.floor((f-_)/1000),0);if(o>0)await G.set(`active-sessions-${$}`,JSON.stringify(y),o);let m=await Y.findOne({model:"user",where:[{field:"id",value:$}]}),v=Math.max(Math.floor((T.expiresAt.getTime()-_)/1000),0);if(v>0)await G.set(T.token,JSON.stringify({session:I,user:m}),v);return I},executeMainFn:J.session?.storeSessionInDatabase}:void 0)},findSession:async($)=>{if(G){let L=await G.get($);if(!L&&!J.session?.storeSessionInDatabase)return null;if(L){let M=T1(L);if(!M)return null;return{session:HG(X.options,{...M.session,expiresAt:new Date(M.session.expiresAt),createdAt:new Date(M.session.createdAt),updatedAt:new Date(M.session.updatedAt)}),user:M9(X.options,{...M.user,createdAt:new Date(M.user.createdAt),updatedAt:new Date(M.user.updatedAt)})}}}let B=await(await U1(Y)).findOne({model:"session",where:[{value:$,field:"token"}],join:{user:!0}});if(!B)return null;let{user:U,...O}=B;if(!U)return null;return{session:HG(X.options,O),user:M9(X.options,U)}},findSessions:async($)=>{if(G){let U=[];for(let O of $){let L=await G.get(O);if(L){let M=T1(L);if(!M)return[];let C={session:{...M.session,expiresAt:new Date(M.session.expiresAt)},user:{...M.user,createdAt:new Date(M.user.createdAt),updatedAt:new Date(M.user.updatedAt)}};U.push(C)}}return U}let B=await(await U1(Y)).findMany({model:"session",where:[{field:"token",value:$,operator:"in"}],join:{user:!0}});if(!B.length)return[];if(B.some((U)=>!U.user))return[];return B.map((U)=>{let{user:O,...L}=U;return{session:L,user:O}})},updateSession:async($,B)=>{return await Z(B,[{field:"token",value:$}],"session",G?{async fn(U){let O=await G.get($),L=null;if(O){let M=T1(O);if(!M)return null;return L={...M.session,...U},L}else return null},executeMainFn:J.session?.storeSessionInDatabase}:void 0)},deleteSession:async($)=>{if(G){let B=await G.get($);if(B){let{session:U}=T1(B)??{};if(!U){Q.error("Session not found in secondary storage");return}let O=U.userId,L=await G.get(`active-sessions-${O}`);if(L){let M=T1(L)||[],C=Date.now(),R=M.filter((T)=>T.expiresAt>C&&T.token!==$),E=R.sort((T,I)=>T.expiresAt-I.expiresAt).at(-1)?.expiresAt;if(R.length>0&&E&&E>Date.now())await G.set(`active-sessions-${O}`,JSON.stringify(R),Math.floor((E-C)/1000));else await G.delete(`active-sessions-${O}`)}else Q.error("Active sessions list not found in secondary storage")}if(await G.delete($),!J.session?.storeSessionInDatabase||X.options.session?.preserveSessionInDatabase)return}await(await U1(Y)).delete({model:"session",where:[{field:"token",value:$}]})},deleteAccounts:async($)=>{await V([{field:"userId",value:$}],"account",void 0)},deleteAccount:async($)=>{await F([{field:"id",value:$}],"account",void 0)},deleteSessions:async($)=>{if(G){if(typeof $==="string"){let B=await G.get(`active-sessions-${$}`),U=B?T1(B):[];if(!U)return;for(let O of U)await G.delete(O.token)}else for(let B of $)if(await G.get(B))await G.delete(B);if(!J.session?.storeSessionInDatabase||X.options.session?.preserveSessionInDatabase)return}await V([{field:Array.isArray($)?"token":"userId",value:$,operator:Array.isArray($)?"in":void 0}],"session",void 0)},findOAuthUser:async($,B,U)=>{let O=await(await U1(Y)).findMany({model:"account",where:[{value:B,field:"accountId"}],join:{user:!0}}).then((L)=>{return L.find((M)=>M.providerId===U)});if(O)if(O.user)return{user:O.user,accounts:[O]};else{let L=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}]});if(L)return{user:L,accounts:[O]};return null}else{let L=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}]});if(L)return{user:L,accounts:await(await U1(Y)).findMany({model:"account",where:[{value:L.id,field:"userId"}]})||[]};else return null}},findUserByEmail:async($,B)=>{let U=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}],join:{...B?.includeAccounts?{account:!0}:{}}});if(!U)return null;let{account:O,...L}=U;return{user:L,accounts:O??[]}},findUserById:async($)=>{if(!$)return null;return await(await U1(Y)).findOne({model:"user",where:[{field:"id",value:$}]})},linkAccount:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"account",void 0)},updateUser:async($,B)=>{let U=await Z(B,[{field:"id",value:$}],"user",void 0);return await q(U),await q(U),U},updateUserByEmail:async($,B)=>{let U=await Z(B,[{field:"email",value:$.toLowerCase()}],"user",void 0);return await q(U),await q(U),U},updatePassword:async($,B)=>{await H({password:B},[{field:"userId",value:$},{field:"providerId",value:"credential"}],"account",void 0)},findAccounts:async($)=>{return await(await U1(Y)).findMany({model:"account",where:[{field:"userId",value:$}]})},findAccount:async($)=>{return await(await U1(Y)).findOne({model:"account",where:[{field:"accountId",value:$}]})},findAccountByProviderId:async($,B)=>{return await(await U1(Y)).findOne({model:"account",where:[{field:"accountId",value:$},{field:"providerId",value:B}]})},findAccountByUserId:async($)=>{return await(await U1(Y)).findMany({model:"account",where:[{field:"userId",value:$}]})},updateAccount:async($,B)=>{return await Z(B,[{field:"id",value:$}],"account",void 0)},createVerificationValue:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"verification",void 0)},findVerificationValue:async($)=>{let B=await(await U1(Y)).findMany({model:"verification",where:[{field:"identifier",value:$}],sortBy:{field:"createdAt",direction:"desc"},limit:1});if(!J.verification?.disableCleanup)await(await U1(Y)).deleteMany({model:"verification",where:[{field:"expiresAt",value:new Date,operator:"lt"}]});return B[0]},deleteVerificationValue:async($)=>{await(await U1(Y)).delete({model:"verification",where:[{field:"id",value:$}]})},deleteVerificationByIdentifier:async($)=>{await(await U1(Y)).delete({model:"verification",where:[{field:"identifier",value:$}]})},updateVerificationValue:async($,B)=>{return await Z(B,[{field:"id",value:$}],"verification",void 0)}}};function Hq0(Y){let X=KQ(Y),Q={};for(let J in X){let G=X[J],K=G.fields,W={};if(Object.entries(K).forEach(([Z,H])=>{if(W[H.fieldName||Z]=H,H.references){let F=X[H.references.model];if(F)W[H.fieldName||Z].references={...H.references,model:F.modelName,field:H.references.field}}}),Q[G.modelName]){Q[G.modelName].fields={...Q[G.modelName].fields,...W};continue}Q[G.modelName]={fields:W,order:G.order||1/0}}return Q}var JS6={postgres:{string:["character varying","varchar","text","uuid"],number:["int4","integer","bigint","smallint","numeric","real","double precision"],boolean:["bool","boolean"],date:["timestamptz","timestamp","date"],json:["json","jsonb"]},mysql:{string:["varchar","text","uuid"],number:["integer","int","bigint","smallint","decimal","float","double"],boolean:["boolean","tinyint"],date:["timestamp","datetime","date"],json:["json"]},sqlite:{string:["TEXT"],number:["INTEGER","REAL"],boolean:["INTEGER","BOOLEAN"],date:["DATE","INTEGER"],json:["TEXT"]},mssql:{string:["varchar","nvarchar","uniqueidentifier"],number:["int","bigint","smallint","decimal","float","double"],boolean:["bit","smallint"],date:["datetime2","date","datetime"],json:["varchar","nvarchar"]}};function Fq0(Y,X,Q){function J(K){return K.toLowerCase().split("(")[0].trim()}if(X==="string[]"||X==="number[]")return Y.toLowerCase().includes("json");let G=JS6[Q];return(Array.isArray(X)?G.string.map((K)=>K.toLowerCase()):G[X].map((K)=>K.toLowerCase())).includes(J(Y))}async function GS6(Y){try{let X=await VG`SHOW search_path`.execute(Y);if(X.rows[0]?.search_path)return X.rows[0].search_path.split(",").map((Q)=>Q.trim()).map((Q)=>Q.replace(/^["']|["']$/g,"")).filter((Q)=>!Q.startsWith("$"))[0]||"public"}catch(X){}return"public"}async function DN(Y){let X=Hq0(Y),Q=nq(Y.logger),{kysely:J,databaseType:G}=await $2(Y);if(!G)Q.warn("Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this."),G="sqlite";if(!J)Q.error("Only kysely adapter is supported for migrations. You can use `generate` command to generate the schema, if you're using a different adapter."),process.exit(1);let K="public";if(G==="postgres"){K=await GS6(J),Q.debug(`PostgreSQL migration: Using schema '${K}' (from search_path)`);try{if(!(await VG`
421
+ `.execute(Y)).rows[0]?.exists)await s4`CREATE ROLE ${s4.id(Q)} NOLOGIN`.execute(Y);await s4`GRANT ${s4.id(Q)} TO CURRENT_USER`.execute(Y),await s4`GRANT USAGE, CREATE ON SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`GRANT ALL ON ALL TABLES IN SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${s4.id(X)} TO ${s4.id(Q)}`.execute(Y),await s4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${s4.id(X)} GRANT ALL ON TABLES TO ${s4.id(Q)}`.execute(Y),await s4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${s4.id(X)} GRANT ALL ON SEQUENCES TO ${s4.id(Q)}`.execute(Y),await s4`REVOKE ALL ON SCHEMA public FROM ${s4.id(Q)}`.execute(Y)}async function yn4(Y,X,Q,J){try{return await Y.transaction().execute(async(G)=>{return await s4`SET LOCAL ROLE ${s4.id(Q)}`.execute(G),await s4`SET LOCAL search_path TO ${s4.id(X)}`.execute(G),await s4.raw(J).execute(G)})}catch(G){if(vn4(G))return await _n4(Y,X,Q),await Y.transaction().execute(async(K)=>{return await s4`SET LOCAL ROLE ${s4.id(Q)}`.execute(K),await s4`SET LOCAL search_path TO ${s4.id(X)}`.execute(K),await s4.raw(J).execute(K)});throw G}}var In4,Sn4,yF6;var fF6=x(()=>{_0();C6();In4=N.object({results:N.array(N.unknown()).optional(),success:N.boolean().optional()});Sn4=N.object({sql:N.string().describe("The SQL query to run"),params:N.array(N.any()).describe("The parameters to pass to the SQL query").optional()});yF6=R0({name:"DATABASES_RUN_SQL",description:"Run a SQL query against the database",inputSchema:Sn4,outputSchema:N.object({result:N.array(In4)}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Rn4(Y.sql,Y.params||[]);if(!X.connectionId)throw Error("Connection context required for database access");let J=jn4(X.connectionId),G=kn4(X.connectionId);return{result:[{results:(await yn4(X.db,J,G,Q)).rows,success:!0}]}}})});var hF6,hn4,bF6;var mW=x(()=>{_0();RY0();hF6=N.object({connectionId:N.string().optional().describe("Filter subscriptions by connection ID (optional)")}),hn4=N.object({id:N.string().describe("Subscription ID"),connectionId:N.string().describe("Subscriber connection ID"),eventType:N.string().describe("Event type pattern"),publisher:N.string().nullable().describe("Publisher connection filter (null = all publishers)"),filter:N.string().nullable().describe("JSONPath filter expression"),enabled:N.boolean().describe("Whether subscription is enabled"),createdAt:N.string().datetime().describe("Created timestamp (ISO 8601)"),updatedAt:N.string().datetime().describe("Updated timestamp (ISO 8601)")}),bF6=N.object({subscriptions:N.array(hn4).describe("List of subscriptions")})});var bY0;var xF6=x(()=>{C6();mW();bY0=R0({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:yP,outputSchema:fP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to publish events. Use a connection-scoped token.");let G=await X.eventBus.publish(Q.id,J,{type:Y.type,subject:Y.subject,data:Y.data,deliverAt:Y.deliverAt,cron:Y.cron});return{id:G.id,type:G.type,source:G.source,time:G.time}}})});var xY0;var uF6=x(()=>{C6();mW();xY0=R0({name:"EVENT_SUBSCRIBE",description:"Subscribe to events of a specific type. The subscriber is automatically set to the caller's connection.",inputSchema:hP,outputSchema:bP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to subscribe. Use a connection-scoped token.");let G=await X.eventBus.subscribe(Q.id,{connectionId:J,eventType:Y.eventType,publisher:Y.publisher,filter:Y.filter});return{subscription:{id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var uY0;var gF6=x(()=>{C6();mW();uY0=R0({name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events by removing a subscription.",inputSchema:gP,outputSchema:mP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to unsubscribe. Use a connection-scoped token.");let G=await X.eventBus.getSubscription(Q.id,Y.subscriptionId);if(!G)throw Error(`Subscription not found: ${Y.subscriptionId}`);if(G.connectionId!==J)throw Error("Cannot unsubscribe from a subscription owned by another connection");return{success:(await X.eventBus.unsubscribe(Q.id,Y.subscriptionId)).success,subscriptionId:Y.subscriptionId}}})});var gY0;var mF6=x(()=>{C6();mW();gY0=R0({name:"EVENT_CANCEL",description:"Cancel a recurring event to stop future deliveries. Only the publisher can cancel their own events.",inputSchema:lP,outputSchema:dP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to cancel events. Use a connection-scoped token.");if(!await X.eventBus.getEvent(Q.id,Y.eventId))throw Error(`Event not found: ${Y.eventId}`);if(!(await X.eventBus.cancelEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to cancel event. Either the event is already completed/failed, or you are not the publisher.");return{success:!0,eventId:Y.eventId}}})});var mY0;var lF6=x(()=>{C6();mW();mY0=R0({name:"EVENT_ACK",description:"Acknowledge delivery of an event. Call after successfully processing an event received via ON_EVENTS with retryAfter.",inputSchema:pP,outputSchema:cP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to acknowledge events. Use a connection-scoped token.");if(!(await X.eventBus.ackEvent(Q.id,Y.eventId,J)).success)throw Error("Failed to acknowledge event. Either the event was not found, already delivered, or you are not a subscriber.");return{success:!0,eventId:Y.eventId}}})});var lY0;var dF6=x(()=>{C6();mW();lY0=R0({name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions, optionally filtered by connection ID.",inputSchema:hF6,outputSchema:bF6,handler:async(Y,X)=>{y0(X);let Q=H6(X);return await X.access.check(),{subscriptions:(await X.eventBus.listSubscriptions(Q.id,Y.connectionId)).map((G)=>({id:G.id,connectionId:G.connectionId,eventType:G.eventType,publisher:G.publisher,filter:G.filter,enabled:G.enabled,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}))}}})});var dY0;var pF6=x(()=>{C6();mW();dY0=R0({name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state. Creates new, deletes removed, updates changed filters. Subscriptions are identified by (eventType, publisher).",inputSchema:xP,outputSchema:uP,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=X.connectionId;if(!J)throw Error("Connection ID required to sync subscriptions. Use a connection-scoped token.");let G=await X.eventBus.syncSubscriptions(Q.id,{connectionId:J,subscriptions:Y.subscriptions});return{created:G.created,updated:G.updated,deleted:G.deleted,unchanged:G.unchanged,subscriptions:G.subscriptions.map((K)=>({id:K.id,connectionId:K.connectionId,eventType:K.eventType,publisher:K.publisher,filter:K.filter,enabled:K.enabled,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var cF6=x(()=>{xF6();uF6();gF6();mF6();lF6();dF6();pF6();mW()});var aB=x(()=>{H2()});var xn4,un4,pY0;var nF6=x(()=>{_0();C6();aB();xn4=N.object({data:bO.describe("Data for the new virtual MCP")}),un4=N.object({item:ZQ.describe("The created virtual MCP entity")}),pY0=R0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a new MCP virtual MCP in the organization",inputSchema:xn4,outputSchema:un4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to create virtual MCP");return{item:await X.storage.virtualMcps.create(Q.id,J,Y.data)}}})});function gn4(Y){let X=[],Q=0;while(Q<Y.length){let J=Y[Q];if(J==="%")X.push(".*");else if(J==="_")X.push(".");else if(/[.*+?^${}()|[\]\\]/.test(J))X.push("\\"+J);else X.push(J);Q++}return X.join("")}function Z3(Y){return typeof Y==="string"||typeof Y==="number"}function cY0(Y,X){let Q=X.split("."),J=Y;for(let G of Q){if(J==null||typeof J!=="object")return;J=J[G]}return J}function mn4(Y,X){return Y.connections.some((Q)=>Q.connection_id===X)}function yf(Y,X){if("conditions"in X){let{operator:Z,conditions:H}=X;switch(Z){case"and":return H.every((F)=>yf(Y,F));case"or":return H.some((F)=>yf(Y,F));case"not":return!H.every((F)=>yf(Y,F));default:return!0}}let{field:Q,operator:J,value:G}=X,K=Q.join(".");if(K==="connection_id"){if(J!=="eq"||typeof G!=="string")return!1;return mn4(Y,G)}let W=cY0(Y,K);switch(J){case"eq":return W===G;case"gt":return Z3(W)&&Z3(G)&&W>G;case"gte":return Z3(W)&&Z3(G)&&W>=G;case"lt":return Z3(W)&&Z3(G)&&W<G;case"lte":return Z3(W)&&Z3(G)&&W<=G;case"in":return Array.isArray(G)&&G.includes(W);case"like":if(typeof W!=="string"||typeof G!=="string")return!1;if(G.length>100)return!1;let Z=gn4(G);return new RegExp(`^${Z}$`,"i").test(W);case"contains":if(typeof W!=="string"||typeof G!=="string")return!1;return W.toLowerCase().includes(G.toLowerCase());default:return!0}}function ln4(Y,X){return[...Y].sort((Q,J)=>{for(let G of X){let K=G.field.join("."),W=cY0(Q,K),Z=cY0(J,K),H=0;if(W==null&&Z==null)continue;if(W==null)H=G.nulls==="first"?-1:1;else if(Z==null)H=G.nulls==="first"?1:-1;else if(typeof W==="string"&&typeof Z==="string")H=W.localeCompare(Z);else if(typeof W==="number"&&typeof Z==="number")H=W-Z;else H=String(W).localeCompare(String(Z));if(H!==0)return G.direction==="desc"?-H:H}return 0})}var dn4,pn4,nY0;var iF6=x(()=>{bJ();C6();aB();dn4=xW,pn4=uW(ZQ),nY0=R0({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",inputSchema:dn4,outputSchema:pn4,handler:async(Y,X)=>{await X.access.check();let Q=H6(X),J=Y.where&&!("conditions"in Y.where)&&Y.where.field.join(".")==="connection_id"&&Y.where.operator==="eq"&&typeof Y.where.value==="string"?Y.where.value:void 0,K=J?await X.storage.virtualMcps.listByConnectionId(Q.id,J):await X.storage.virtualMcps.list(Q.id);if(Y.where)K=K.filter((q)=>yf(q,Y.where));if(Y.orderBy&&Y.orderBy.length>0)K=ln4(K,Y.orderBy);let W=K.length,Z=Y.offset??0,H=Y.limit??100,F=K.slice(Z,Z+H),V=Z+H<W;return{items:F,totalCount:W,hasMore:V}}})});var cn4,nn4,iY0;var aF6=x(()=>{_0();C6();aB();cn4=N.object({id:N.string().describe("ID of the virtual MCP to retrieve")}),nn4=N.object({item:ZQ.nullable().describe("The retrieved virtual MCP, or null if not found")}),iY0=R0({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get an MCP virtual MCP by ID",inputSchema:cn4,outputSchema:nn4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(J&&J.organization_id!==Q.id)return{item:null};if(!J)return{item:null};return{item:J}}})});var in4,an4,aY0;var rF6=x(()=>{_0();C6();aB();in4=N.object({id:N.string().describe("ID of the virtual MCP to update"),data:xO.describe("Partial virtual MCP data to update")}),an4=N.object({item:ZQ.describe("The updated virtual MCP entity")}),aY0=R0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update an MCP virtual MCP",inputSchema:in4,outputSchema:an4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to update virtual MCP");let G=await X.storage.virtualMcps.findById(Y.id);if(!G)throw Error(`Virtual MCP not found: ${Y.id}`);if(G.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return{item:await X.storage.virtualMcps.update(Y.id,J,Y.data)}}})});var rn4,on4,rY0;var oF6=x(()=>{_0();C6();aB();rn4=N.object({id:N.string().describe("ID of the virtual MCP to delete")}),on4=N.object({item:ZQ.describe("The deleted virtual MCP entity")}),rY0=R0({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete an MCP virtual MCP",inputSchema:rn4,outputSchema:on4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.id);if(!J)throw Error(`Virtual MCP not found: ${Y.id}`);if(J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.id}`);return await X.storage.virtualMcps.delete(Y.id),{item:J}}})});var sF6=x(()=>{nF6();iF6();aF6();rF6();oF6()});var oY0,K68,F7,tF6,eF6;var rB=x(()=>{_0();oY0=N.object({title:N.string().optional(),readOnlyHint:N.boolean().optional(),destructiveHint:N.boolean().optional(),idempotentHint:N.boolean().optional(),openWorldHint:N.boolean().optional()}),K68=N.object({"tool.fn":N.string().describe("JavaScript ES module code that exports a default async function")}),F7=N.object({id:N.string().describe("Unique identifier for the virtual tool (auto-generated)"),name:N.string().min(1).max(255).describe("Tool name (must be unique within the Virtual MCP)"),description:N.string().optional().describe("Human-readable description of what the tool does"),inputSchema:N.record(N.string(),N.unknown()).describe("JSON Schema defining the tool's input parameters"),outputSchema:N.record(N.string(),N.unknown()).optional().describe("JSON Schema defining the tool's output (optional)"),annotations:oY0.optional().describe("MCP tool annotations"),code:N.string().describe("JavaScript ES module code. Must export default an async function: export default async (tools, args) => { ... }"),connection_dependencies:N.array(N.string()).describe("Connection IDs that this tool depends on (specified by the creator)"),created_at:N.string().describe("When the virtual tool was created"),updated_at:N.string().describe("When the virtual tool was last updated")}),tF6=N.object({name:N.string().min(1).max(255).describe("Tool name (must be unique within the Virtual MCP)"),description:N.string().optional().describe("Human-readable description"),inputSchema:N.record(N.string(),N.unknown()).describe("JSON Schema defining the tool's input parameters"),outputSchema:N.record(N.string(),N.unknown()).optional().describe("JSON Schema for output"),annotations:oY0.optional().describe("MCP tool annotations"),code:N.string().describe("JavaScript ES module code. Must export default an async function: export default async (tools, args) => { ... }"),connection_dependencies:N.array(N.string()).optional().describe("Connection IDs that this tool depends on. Creates indirect aggregations to prevent deletion of referenced connections.")}),eF6=N.object({name:N.string().min(1).max(255).optional().describe("New tool name"),description:N.string().nullable().optional().describe("New description (null to clear)"),inputSchema:N.record(N.string(),N.unknown()).optional().describe("New input schema"),outputSchema:N.record(N.string(),N.unknown()).nullable().optional().describe("New output schema (null to clear)"),annotations:oY0.nullable().optional().describe("New annotations (null to clear)"),code:N.string().optional().describe("New JavaScript code"),connection_dependencies:N.array(N.string()).optional().describe("Connection IDs that this tool depends on. Replaces existing dependencies if provided.")})});var tn4,en4,sY0;var YV6=x(()=>{_0();C6();rB();tn4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP to add the tool to"),data:tF6.describe("Virtual tool data")}),en4=N.object({item:F7.describe("The created virtual tool")}),sY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_CREATE",description:"Create a new virtual tool on a Virtual MCP. The tool code should be a JavaScript ES module that exports a default async function: export default async (tools, args) => { ... }. Specify connection_dependencies to indicate which connections this tool uses.",inputSchema:tn4,outputSchema:en4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=Y.data.connection_dependencies??[];return{item:await X.storage.virtualMcps.createVirtualTool(Y.virtual_mcp_id,Y.data,G)}}})});var Yi4,Xi4,tY0;var XV6=x(()=>{_0();C6();rB();Yi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP to list tools for"),limit:N.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:N.number().int().min(0).optional().describe("Number of items to skip")}),Xi4=N.object({items:N.array(F7).describe("Array of virtual tools"),totalCount:N.number().int().min(0).optional().describe("Total number of virtual tools"),hasMore:N.boolean().optional().describe("Whether there are more items available")}),tY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_LIST",description:"List all virtual tools for a Virtual MCP",inputSchema:Yi4,outputSchema:Xi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{items:[],totalCount:0,hasMore:!1};let G=await X.storage.virtualMcps.listVirtualTools(Y.virtual_mcp_id),K=G.length,W=Y.offset??0,Z=Y.limit??100,H=G.slice(W,W+Z),F=W+Z<K;return{items:H,totalCount:K,hasMore:F}}})});var Qi4,Ji4,eY0;var QV6=x(()=>{_0();C6();rB();Qi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Name of the virtual tool to retrieve")}),Ji4=N.object({item:F7.nullable().describe("The retrieved virtual tool, or null if not found")}),eY0=R0({name:"COLLECTION_VIRTUAL_TOOLS_GET",description:"Get a virtual tool by name from a Virtual MCP",inputSchema:Qi4,outputSchema:Ji4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)return{item:null};return{item:await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name)}}})});var Gi4,Wi4,YX0;var JV6=x(()=>{_0();C6();rB();Gi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Current name of the virtual tool to update"),data:eF6.describe("Partial virtual tool data to update")}),Wi4=N.object({item:F7.describe("The updated virtual tool")}),YX0=R0({name:"COLLECTION_VIRTUAL_TOOLS_UPDATE",description:"Update an existing virtual tool on a Virtual MCP. Specify connection_dependencies to update which connections this tool uses.",inputSchema:Gi4,outputSchema:Wi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);if(!await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name))throw Error(`Virtual tool not found: ${Y.name}`);let K=Y.data.connection_dependencies;return{item:await X.storage.virtualMcps.updateVirtualTool(Y.virtual_mcp_id,Y.name,Y.data,K)}}})});var Zi4,Ki4,XX0;var GV6=x(()=>{_0();C6();rB();Zi4=N.object({virtual_mcp_id:N.string().describe("ID of the Virtual MCP"),name:N.string().describe("Name of the virtual tool to delete")}),Ki4=N.object({item:F7.describe("The deleted virtual tool")}),XX0=R0({name:"COLLECTION_VIRTUAL_TOOLS_DELETE",description:"Delete a virtual tool from a Virtual MCP",inputSchema:Zi4,outputSchema:Ki4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.virtualMcps.findById(Y.virtual_mcp_id);if(!J||J.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let G=await X.storage.virtualMcps.getVirtualTool(Y.virtual_mcp_id,Y.name);if(!G)throw Error(`Virtual tool not found: ${Y.name}`);return await X.storage.virtualMcps.deleteVirtualTool(Y.virtual_mcp_id,Y.name),{item:G}}})});var WV6=x(()=>{YV6();XV6();QV6();JV6();GV6()});var Fi4,QX0;var ZV6=x(()=>{C6();_0();Fi4=N.object({id:N.string().optional().describe("Unique log identifier"),organizationId:N.string().describe("Organization ID"),connectionId:N.string().describe("Connection ID"),connectionTitle:N.string().describe("Connection display name"),toolName:N.string().describe("Name of the tool that was called"),input:N.record(N.string(),N.unknown()).describe("Redacted tool input"),output:N.record(N.string(),N.unknown()).describe("Redacted tool output"),isError:N.boolean().describe("Whether the call resulted in an error"),errorMessage:N.string().nullish().describe("Error message if applicable"),durationMs:N.number().describe("Call duration in milliseconds"),timestamp:N.string().describe("ISO 8601 timestamp of the call"),userId:N.string().nullish().describe("User who triggered the call"),requestId:N.string().describe("Unique request identifier"),userAgent:N.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:N.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:N.record(N.string(),N.string()).nullish().describe("Custom key-value metadata attached to the log")}),QX0=R0({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls in the organization",inputSchema:N.object({connectionId:N.string().optional().describe("Filter by connection ID"),excludeConnectionIds:N.array(N.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:N.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:N.string().optional().describe("Filter by tool name"),isError:N.boolean().optional().describe("Filter by error status"),startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:N.number().default(20).describe("Maximum number of results"),offset:N.number().default(0).describe("Offset for pagination"),properties:N.record(N.string(),N.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:N.array(N.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:N.record(N.string(),N.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:N.record(N.string(),N.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:N.object({logs:N.array(Fi4).describe("Array of monitoring logs"),total:N.number().describe("Total number of logs matching filters"),offset:N.number().describe("Current offset for pagination"),limit:N.number().describe("Current limit for pagination")}),handler:async(Y,X)=>{let Q=H6(X),G=Y.properties||Y.propertyKeys||Y.propertyPatterns||Y.propertyInValues?{properties:Y.properties,propertyKeys:Y.propertyKeys,propertyPatterns:Y.propertyPatterns,propertyInValues:Y.propertyInValues}:void 0,K={organizationId:Q.id,connectionId:Y.connectionId,excludeConnectionIds:Y.excludeConnectionIds,virtualMcpId:Y.virtualMcpId,toolName:Y.toolName,isError:Y.isError,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0,limit:Y.limit,offset:Y.offset,propertyFilters:G},W=await X.storage.monitoring.query(K);return{logs:W.logs.map((Z)=>({...Z,timestamp:Z.timestamp instanceof Date?Z.timestamp.toISOString():Z.timestamp})),total:W.total,offset:Y.offset,limit:Y.limit}}})});var JX0;var KV6=x(()=>{C6();_0();JX0=R0({name:"MONITORING_STATS",description:"Get aggregated statistics for tool call monitoring",inputSchema:N.object({startDate:N.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:N.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:N.object({totalCalls:N.number().describe("Total number of tool calls"),errorRate:N.number().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:N.number().describe("Average call duration in milliseconds"),errorRatePercent:N.string().describe("Error rate as a percentage string")}),handler:async(Y,X)=>{let J={organizationId:H6(X).id,startDate:Y.startDate?new Date(Y.startDate):void 0,endDate:Y.endDate?new Date(Y.endDate):void 0},G=await X.storage.monitoring.getStats(J);return{...G,errorRatePercent:(G.errorRate*100).toFixed(2)}}})});var HV6=x(()=>{ZV6();KV6()});var GX0;var FV6=x(()=>{_0();C6();GX0=R0({name:"ORGANIZATION_CREATE",description:"Create a new organization",inputSchema:N.object({slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:N.string().min(1).max(255),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),members:N.array(N.any()).optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=L8(X);if(!Q)throw Error("User ID required to create organization");let J=await X.boundAuth.organization.create({name:Y.name,slug:Y.slug,metadata:Y.description?{description:Y.description}:void 0,userId:Q});if(!J)throw Error("Failed to create organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var WX0;var VV6=x(()=>{_0();C6();WX0=R0({name:"ORGANIZATION_LIST",description:"List all organizations user has access to",inputSchema:N.object({userId:N.string().optional()}),outputSchema:N.object({organizations:N.array(N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=L8(X),J=Y.userId||Q;if(!J)throw Error("User ID required to list organizations");return{organizations:(await X.boundAuth.organization.list(J)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var ZX0;var qV6=x(()=>{_0();C6();ZX0=R0({name:"ORGANIZATION_GET",description:"Get organization details by slug or ID",inputSchema:N.object({}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),members:N.array(N.any()).optional(),invitations:N.array(N.any()).optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=await X.boundAuth.organization.get();if(!Q)throw Error("No active organization found");let J=new Date,G=Q.invitations?.filter((K)=>new Date(K.expiresAt)>J);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});var KX0;var $V6=x(()=>{_0();C6();KX0=R0({name:"ORGANIZATION_UPDATE",description:"Update an existing organization",inputSchema:N.object({id:N.string(),slug:N.string().min(1).max(50).regex(/^[a-z0-9-]+$/).optional(),name:N.string().min(1).max(255).optional(),description:N.string().optional()}),outputSchema:N.object({id:N.string(),name:N.string(),slug:N.string(),logo:N.string().nullable().optional(),metadata:N.any().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q={};if(Y.name)Q.name=Y.name;if(Y.slug)Q.slug=Y.slug;if(Y.description)Q.metadata={description:Y.description};let J=await X.boundAuth.organization.update({organizationId:Y.id,data:Q});if(!J)throw Error("Failed to update organization");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var HX0;var zV6=x(()=>{_0();C6();HX0=R0({name:"ORGANIZATION_DELETE",description:"Delete an organization",inputSchema:N.object({id:N.string()}),outputSchema:N.object({success:N.boolean(),id:N.string()}),handler:async(Y,X)=>{return y0(X),await X.access.check(),await X.boundAuth.organization.delete(Y.id),{success:!0,id:Y.id}}})});var aP;var FX0=x(()=>{_0();aP=N.object({title:N.string(),url:N.string(),icon:N.string()})});var VX0;var BV6=x(()=>{_0();C6();FX0();VX0=R0({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings",inputSchema:N.object({}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).nullable().optional(),enabled_plugins:N.array(N.string()).nullable().optional(),createdAt:N.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.storage.organizationSettings.get(Q);if(!J)return{organizationId:Q};return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}})});var qX0;var UV6=x(()=>{_0();C6();FX0();qX0=R0({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings",inputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).optional(),enabled_plugins:N.array(N.string()).optional()}),outputSchema:N.object({organizationId:N.string(),sidebar_items:N.array(aP).nullable().optional(),enabled_plugins:N.array(N.string()).nullable().optional(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{if(y0(X),await X.access.check(),X.organization&&X.organization.id!==Y.organizationId)throw Error("Cannot update settings for a different organization");let Q=await X.storage.organizationSettings.upsert(Y.organizationId,{sidebar_items:Y.sidebar_items,enabled_plugins:Y.enabled_plugins});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});var $X0;var DV6=x(()=>{_0();C6();$X0=R0({name:"ORGANIZATION_MEMBER_ADD",description:"Add a member to an organization",inputSchema:N.object({organizationId:N.string().optional(),userId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.string(),N.array(N.string())]),createdAt:N.string().datetime().describe("ISO 8601 timestamp")}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.addMember({organizationId:Q,userId:Y.userId,role:Y.role});if(!J)throw Error("Failed to add member");return{...J,role:J.role,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var zX0;var OV6=x(()=>{_0();C6();zX0=R0({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from an organization",inputSchema:N.object({organizationId:N.string().optional(),memberIdOrEmail:N.string()}),outputSchema:N.object({success:N.boolean(),memberIdOrEmail:N.string()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return await X.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:Y.memberIdOrEmail}),{success:!0,memberIdOrEmail:Y.memberIdOrEmail}}})});var BX0;var NV6=x(()=>{_0();C6();BX0=R0({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in an organization",inputSchema:N.object({limit:N.number().optional(),offset:N.number().optional()}),outputSchema:N.object({members:N.array(N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.string(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().optional()}).optional()}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.listMembers({organizationId:Q,limit:Y.limit,offset:Y.offset});return{members:(Array.isArray(J)?J:[]).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}))}}})});var UX0;var LV6=x(()=>{_0();C6();UX0=R0({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update a member's role in an organization",inputSchema:N.object({organizationId:N.string().optional(),memberId:N.string(),role:N.array(N.string())}),outputSchema:N.object({id:N.string(),organizationId:N.string(),userId:N.string(),role:N.union([N.literal("admin"),N.literal("member"),N.literal("owner")]),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),user:N.object({email:N.string(),name:N.string(),image:N.string().optional()})}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=Y.organizationId||X.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let J=await X.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:Y.memberId,role:Y.role});if(!J)throw Error("Failed to update member role");return{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}}})});var MV6=x(()=>{FV6();VV6();qV6();$V6();zV6();BV6();UV6();DV6();OV6();NV6();LV6()});var $i4,ff,zi4,VV,wV6,hf;var qV=x(()=>{_0();$i4=N.object({banner:N.string().nullable(),bannerColor:N.string().nullable(),icon:N.string().nullable(),themeColor:N.string().nullable()}),ff=N.object({banner:N.string().nullable().optional(),bannerColor:N.string().nullable().optional(),icon:N.string().nullable().optional(),themeColor:N.string().nullable().optional()}),zi4=N.object({id:N.string(),title:N.string(),icon:N.string().nullable()}),VV=N.object({id:N.string(),organizationId:N.string(),slug:N.string(),name:N.string(),description:N.string().nullable(),enabledPlugins:N.array(N.string()).nullable(),ui:$i4.nullable(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")}),wV6=VV.omit({organizationId:!0}).extend({boundConnections:N.array(zi4)}),hf=N.object({id:N.string(),projectId:N.string(),pluginId:N.string(),connectionId:N.string().nullable(),settings:N.record(N.string(),N.unknown()).nullable(),createdAt:N.string().datetime().describe("ISO 8601 timestamp"),updatedAt:N.string().datetime().describe("ISO 8601 timestamp")})});var DX0;var PV6=x(()=>{_0();C6();qV();DX0=R0({name:"PROJECT_LIST",description:"List all projects in an organization",inputSchema:N.object({organizationId:N.string().describe("Organization ID to list projects for")}),outputSchema:N.object({projects:N.array(wV6)}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=await X.storage.projects.list(Y.organizationId),J=Q.map((K)=>K.id),G=await X.storage.projectPluginConfigs.getBoundConnectionsForProjects(J);return{projects:Q.map((K)=>({id:K.id,slug:K.slug,name:K.name,description:K.description,enabledPlugins:K.enabledPlugins,ui:K.ui,boundConnections:G.get(K.id)??[],createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt,updatedAt:K.updatedAt instanceof Date?K.updatedAt.toISOString():K.updatedAt}))}}})});var OX0;var TV6=x(()=>{_0();C6();qV();OX0=R0({name:"PROJECT_GET",description:"Get a project by ID or slug",inputSchema:N.object({organizationId:N.string().describe("Organization ID"),projectId:N.string().optional().describe("Project ID (either this or slug required)"),slug:N.string().optional().describe("Project slug (either this or projectId required)")}).refine((Y)=>Y.projectId||Y.slug,{message:"Either projectId or slug must be provided"}),outputSchema:N.object({project:VV.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=null;if(Y.projectId)Q=await X.storage.projects.get(Y.projectId);else if(Y.slug)Q=await X.storage.projects.getBySlug(Y.organizationId,Y.slug);if(!Q)return{project:null};return{project:{id:Q.id,organizationId:Q.organizationId,slug:Q.slug,name:Q.name,description:Q.description,enabledPlugins:Q.enabledPlugins,ui:Q.ui,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}}})});var NX0;var AV6=x(()=>{_0();I7();C6();qV();NX0=R0({name:"PROJECT_CREATE",description:"Create a new project in an organization",inputSchema:N.object({organizationId:N.string().describe("Organization ID"),slug:N.string().min(1).max(100).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").describe("URL-friendly identifier"),name:N.string().min(1).max(200).describe("Display name"),description:N.string().max(1000).nullable().optional().describe("Project description"),enabledPlugins:N.array(N.string()).nullable().optional().describe("Plugin IDs to enable"),ui:ff.nullable().optional().describe("UI customization")}),outputSchema:N.object({project:VV}),handler:async(Y,X)=>{y0(X),await X.access.check();let{organizationId:Q,slug:J,name:G,description:K,enabledPlugins:W,ui:Z}=Y;if(J===xJ)throw Error(`Slug "${xJ}" is reserved`);if(await X.storage.projects.getBySlug(Q,J))throw Error(`Project with slug "${J}" already exists in this organization`);let F=Z?{banner:Z.banner??null,bannerColor:Z.bannerColor??null,icon:Z.icon??null,themeColor:Z.themeColor??null}:null,V=await X.storage.projects.create({organizationId:Q,slug:J,name:G,description:K??null,enabledPlugins:W??null,ui:F});return{project:{id:V.id,organizationId:V.organizationId,slug:V.slug,name:V.name,description:V.description,enabledPlugins:V.enabledPlugins,ui:V.ui,createdAt:V.createdAt instanceof Date?V.createdAt.toISOString():V.createdAt,updatedAt:V.updatedAt instanceof Date?V.updatedAt.toISOString():V.updatedAt}}}})});var LX0;var EV6=x(()=>{_0();C6();qV();LX0=R0({name:"PROJECT_UPDATE",description:"Update a project's details",inputSchema:N.object({projectId:N.string().describe("Project ID to update"),name:N.string().min(1).max(200).optional().describe("New display name"),description:N.string().max(1000).nullable().optional().describe("New description"),enabledPlugins:N.array(N.string()).nullable().optional().describe("Updated plugin IDs"),ui:ff.nullable().optional().describe("Updated UI customization")}),outputSchema:N.object({project:VV.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,name:J,description:G,enabledPlugins:K,ui:W}=Y,Z={};if(J!==void 0)Z.name=J;if(G!==void 0)Z.description=G;if(K!==void 0)Z.enabledPlugins=K;if(W!==void 0)Z.ui=W?{banner:W.banner??null,bannerColor:W.bannerColor??null,icon:W.icon??null,themeColor:W.themeColor??null}:null;let H=await X.storage.projects.update(Q,Z);if(!H)return{project:null};return{project:{id:H.id,organizationId:H.organizationId,slug:H.slug,name:H.name,description:H.description,enabledPlugins:H.enabledPlugins,ui:H.ui,createdAt:H.createdAt instanceof Date?H.createdAt.toISOString():H.createdAt,updatedAt:H.updatedAt instanceof Date?H.updatedAt.toISOString():H.updatedAt}}}})});var MX0;var CV6=x(()=>{_0();I7();C6();MX0=R0({name:"PROJECT_DELETE",description:"Delete a project (cannot delete org-admin)",inputSchema:N.object({projectId:N.string().describe("Project ID to delete")}),outputSchema:N.object({success:N.boolean(),message:N.string().optional()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q}=Y,J=await X.storage.projects.get(Q);if(!J)return{success:!1,message:"Project not found"};if(J.slug===xJ)return{success:!1,message:"Cannot delete the org-admin project"};return{success:await X.storage.projects.delete(Q)}}})});var wX0;var IV6=x(()=>{_0();C6();qV();wX0=R0({name:"PROJECT_PLUGIN_CONFIG_GET",description:"Get plugin configuration for a project",inputSchema:N.object({projectId:N.string().describe("Project ID"),pluginId:N.string().describe("Plugin ID")}),outputSchema:N.object({config:hf.nullable()}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,pluginId:J}=Y,G=await X.storage.projectPluginConfigs.get(Q,J);if(!G)return{config:null};return{config:{id:G.id,projectId:G.projectId,pluginId:G.pluginId,connectionId:G.connectionId,settings:G.settings,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});var PX0;var RV6=x(()=>{_0();C6();qV();kf();PX0=R0({name:"PROJECT_PLUGIN_CONFIG_UPDATE",description:"Update or create plugin configuration for a project",inputSchema:N.object({projectId:N.string().describe("Project ID"),pluginId:N.string().describe("Plugin ID"),connectionId:N.string().nullable().optional().describe("MCP connection to bind"),settings:N.record(N.string(),N.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:N.object({config:hf}),handler:async(Y,X)=>{y0(X),await X.access.check();let{projectId:Q,pluginId:J,connectionId:G,settings:K}=Y,W=L8(X),Z=await X.storage.projects.get(Q);if(!Z)throw Error(`Project not found: ${Q}`);let H=G?await X.storage.connections.findById(G):null;if(G&&Z.organizationId&&!H&&nB()){if(jf(G,Z.organizationId)){if(!W)throw Error("User ID required to create dev-assets connection");let V=iB(Z.organizationId,B5());await X.storage.connections.create({...V,organization_id:Z.organizationId,created_by:W})}}let F=await X.storage.projectPluginConfigs.upsert(Q,J,{connectionId:G,settings:K});return{config:{id:F.id,projectId:F.projectId,pluginId:F.pluginId,connectionId:F.connectionId,settings:F.settings,createdAt:F.createdAt instanceof Date?F.createdAt.toISOString():F.createdAt,updatedAt:F.updatedAt instanceof Date?F.updatedAt.toISOString():F.updatedAt}}}})});var SV6=x(()=>{PV6();TV6();AV6();EV6();CV6();IV6();RV6()});var TX0;var jV6=x(()=>{_0();C6();TX0=R0({name:"TAGS_LIST",description:"List all tags in an organization",inputSchema:N.object({}),outputSchema:N.object({tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);return{tags:(await X.storage.tags.listOrgTags(Q.id)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});var AX0;var kV6=x(()=>{_0();C6();AX0=R0({name:"TAGS_CREATE",description:"Create a new tag in an organization",inputSchema:N.object({name:N.string().min(1).max(50).describe("Tag name")}),outputSchema:N.object({tag:N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")})}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X),J=await X.storage.tags.createTag(Q.id,Y.name);return{tag:{...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():String(J.createdAt)}}}})});var EX0;var vV6=x(()=>{_0();C6();EX0=R0({name:"TAGS_DELETE",description:"Delete a tag from an organization (removes from all members)",inputSchema:N.object({tagId:N.string().describe("Tag ID to delete")}),outputSchema:N.object({success:N.boolean()}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X),J=await X.storage.tags.getTag(Y.tagId);if(!J)throw Error("Tag not found");if(J.organizationId!==Q.id)throw Error("Tag does not belong to this organization");return await X.storage.tags.deleteTag(Y.tagId),{success:!0}}})});var CX0;var _V6=x(()=>{_0();C6();CX0=R0({name:"MEMBER_TAGS_GET",description:"Get tags assigned to a member",inputSchema:N.object({memberId:N.string().describe("Member ID")}),outputSchema:N.object({tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);return{tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var IX0;var yV6=x(()=>{_0();C6();IX0=R0({name:"MEMBER_TAGS_SET",description:"Set tags for a member (replaces all existing tags)",inputSchema:N.object({memberId:N.string().describe("Member ID"),tagIds:N.array(N.string()).describe("Array of tag IDs to assign")}),outputSchema:N.object({success:N.boolean(),tags:N.array(N.object({id:N.string(),organizationId:N.string(),name:N.string(),createdAt:N.string().describe("ISO 8601 timestamp")}))}),handler:async(Y,X)=>{y0(X),await X.access.check();let Q=H6(X);if(!await X.storage.tags.verifyMemberOrg(Y.memberId,Q.id))throw Error(`Member not found in this organization: ${Y.memberId}`);for(let K of Y.tagIds){let W=await X.storage.tags.getTag(K);if(!W)throw Error(`Tag not found: ${K}`);if(W.organizationId!==Q.id)throw Error(`Tag does not belong to this organization: ${K}`)}return await X.storage.tags.setMemberTags(Y.memberId,Y.tagIds),{success:!0,tags:(await X.storage.tags.getMemberTags(Y.memberId)).map((K)=>({...K,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():String(K.createdAt)}))}}})});var fV6=x(()=>{jV6();kV6();vV6();_V6();yV6()});var hV6,V7,bV6,xV6;var $V=x(()=>{_0();hV6=N.object({id:N.string().describe("Unique message ID"),threadId:N.string().describe("ID of the parent thread"),metadata:N.unknown().optional().describe("Optional message metadata"),parts:N.array(N.record(N.string(),N.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:N.enum(["user","assistant","system"]).describe("Message role"),createdAt:N.string().datetime().describe("Timestamp of creation"),updatedAt:N.string().datetime().describe("Timestamp of last update")}),V7=N.object({id:N.string().describe("Unique thread ID"),organizationId:N.string().describe("Organization this thread belongs to"),title:N.string().describe("Thread title"),description:N.string().nullable().describe("Thread description"),createdAt:N.string().datetime().describe("Timestamp of creation"),updatedAt:N.string().datetime().describe("Timestamp of last update"),hidden:N.boolean().optional().describe("Whether the thread is hidden"),createdBy:N.string().describe("User ID who created the thread"),updatedBy:N.string().nullable().describe("User ID who last updated the thread")}),bV6=N.object({id:N.string().optional().describe("Optional custom ID for the thread"),title:N.string().describe("Thread title"),description:N.string().nullish().describe("Thread description")}),xV6=N.object({title:N.string().optional().describe("New thread title"),description:N.string().nullish().describe("New thread description"),hidden:N.boolean().optional().describe("Whether the thread is hidden")})});var Di4,Oi4,RX0;var uV6=x(()=>{_0();C6();$V();UP();Di4=N.object({data:bV6.describe("Data for the new thread (id is auto-generated if not provided)")}),Oi4=N.object({item:V7.describe("The created thread entity")}),RX0=R0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread in the organization",inputSchema:Di4,outputSchema:Oi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to create thread");let G=Y.data.id??Y3("thrd"),K=await X.storage.threads.create({id:G,organizationId:Q.id,title:Y.data.title,description:Y.data.description,createdBy:J});return{item:{...K,hidden:K.hidden??!1}}}})});var Ni4,Li4,SX0;var gV6=x(()=>{bJ();C6();$V();_0();Ni4=xW.extend({where:N.object({created_by:N.string().optional()}).optional()}),Li4=uW(V7),SX0=R0({name:"COLLECTION_THREADS_LIST",description:"List all threads in the organization with filtering, sorting, and pagination",inputSchema:Ni4,outputSchema:Li4,handler:async(Y,X)=>{await X.access.check();let Q=X.auth.user?.id;if(!Q)throw Error("User ID required to list threads");let J=H6(X),G=Y.offset??0,K=Y.limit??100,{threads:W,total:Z}=await X.storage.threads.list(J.id,Q,{limit:K,offset:G}),H=G+K<Z;return{items:W.map((F)=>({...F,hidden:F.hidden??!1})),totalCount:Z,hasMore:H}}})});var Mi4,jX0;var mV6=x(()=>{bJ();C6();$V();Mi4=kP(V7),jX0=R0({name:"COLLECTION_THREADS_GET",description:"Get thread details by ID",inputSchema:jP,outputSchema:Mi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J||J.organizationId!==Q.id)return{item:null};return{item:{...J,hidden:J.hidden??!1}}}})});var wi4,Pi4,kX0;var lV6=x(()=>{_0();C6();$V();wi4=N.object({id:N.string().describe("ID of the thread to update"),data:xV6.describe("Partial thread data to update")}),Pi4=N.object({item:V7.describe("The updated thread entity")}),kX0=R0({name:"COLLECTION_THREADS_UPDATE",description:"Update an existing thread in the organization",inputSchema:wi4,outputSchema:Pi4,handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=L8(X);if(!J)throw Error("User ID required to update thread");let{id:G,data:K}=Y,W=await X.storage.threads.get(G);if(!W||W.organizationId!==Q.id)throw Error("Thread not found in organization");let Z=await X.storage.threads.update(G,{title:K.title,description:K.description,hidden:K.hidden,updatedBy:J});return{item:{...Z,hidden:Z.hidden??!1}}}})});var vX0;var dV6=x(()=>{bJ();C6();$V();vX0=R0({name:"COLLECTION_THREADS_DELETE",description:"Delete a thread",inputSchema:vP,outputSchema:_P(V7),handler:async(Y,X)=>{y0(X);let Q=H6(X);await X.access.check();let J=await X.storage.threads.get(Y.id);if(!J)throw Error(`Thread not found: ${Y.id}`);if(J.organizationId!==Q.id)throw Error(`Thread not found: ${Y.id}`);return await X.storage.threads.delete(Y.id),{item:{...J,hidden:J.hidden??!1}}}})});function pV6(Y){if(!Y)return null;if("field"in Y&&Y.field[0]==="threadId"&&Y.operator==="eq")return String(Y.value);if("conditions"in Y)for(let X of Y.conditions){let Q=pV6(X);if(Q)return Q}return null}var Ti4,_X0;var cV6=x(()=>{bJ();C6();$V();Ti4=uW(hV6),_X0=R0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List all messages for a specific thread",inputSchema:xW,outputSchema:Ti4,handler:async(Y,X)=>{let Q=H6(X);await X.access.check();let J=pV6(Y.where);if(!J)throw Error("threadId filter is required in where clause");let G=await X.storage.threads.get(J);if(!G||G.organizationId!==Q.id)return{items:[],totalCount:0,hasMore:!1};let K=Y.offset??0,W=Y.limit??100,{messages:Z,total:H}=await X.storage.threads.listMessages(J,{limit:W,offset:K}),F=K+W<H;return{items:Z,totalCount:H,hasMore:F}}})});var nV6=x(()=>{uV6();gV6();mV6();lV6();dV6();cV6()});var Ei4,Ci4,yX0;var iV6=x(()=>{_0();C6();Ei4=N.object({id:N.string().min(1)}),Ci4=N.object({user:N.object({id:N.string(),name:N.string(),email:N.string(),image:N.string().nullable()}).nullable()}),yX0=R0({name:"USER_GET",description:"Get a user by id (restricted to shared organizations)",inputSchema:Ei4,outputSchema:Ci4,handler:async(Y,X)=>{await X.access.check(),y0(X);let Q=L8(X);if(!Q)throw Error("Authentication required");let J=await X.storage.users.findById(Y.id,Q);if(!J)return{user:null};return{user:{id:J.id,name:J.name,email:J.email,image:J.image??null}}}})});var aV6=x(()=>{iV6()});var oV6={};h6(oV6,{managementMCP:()=>ji4,ALL_TOOLS:()=>rV6});var Ri4,Si4,rV6,ji4=async(Y)=>{let X=null;if(Y.organization)X=(await Y.storage.organizationSettings.get(Y.organization.id))?.enabled_plugins??null;let J=_36(rV6,X).map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema,outputSchema:K.outputSchema,handler:async(W)=>{return Y.access.setToolName(K.name),await K.execute(W,Y)}}));return fK6({name:"mcp-mesh-management",version:"1.0.0"}).withTools(J).build()};var sV6=x(()=>{hK6();s90();r36();dH6();kF6();fF6();cF6();sF6();WV6();HV6();MV6();SV6();fV6();nV6();aV6();Ri4=[GX0,WX0,ZX0,KX0,HX0,VX0,qX0,$X0,zX0,BX0,UX0,EY0,kY0,vY0,yY0,fY0,hY0,pY0,nY0,iY0,aY0,rY0,sY0,tY0,eY0,YX0,XX0,yF6,QX0,JX0,e90,XY0,QY0,YY0,bY0,xY0,uY0,gY0,mY0,lY0,dY0,yX0,PY0,TY0,AY0,RX0,SX0,jX0,kX0,vX0,_X0,TX0,AX0,EX0,CX0,IX0,DX0,OX0,NX0,LX0,MX0,wX0,PX0],Si4=y36(),rV6=[...Ri4,...Si4]});pd();import{Migrator as Zq6,sql as lW}from"kysely";var wH0={benchmark:()=>Promise.resolve().then(() => (MH0(),LH0)).then((Y)=>Y.seed)};async function PH0(Y,X){let Q=wH0[X];if(!Q)throw Error(`Unknown seed: ${X}. Available: ${Object.keys(wH0).join(", ")}`);let J=await Q();console.log(`\uD83C\uDF31 Running seed: ${X}`);let G=await J(Y);return console.log(`\u2705 Seed "${X}" completed`),G}R7();dQ();R7();dQ();TY();L9();var T8=(Y,X="ms")=>{return new Date(Date.now()+(X==="sec"?Y*1000:Y))},e2=new WeakMap;function Xq0(Y,X){let Q=X.fields,J={};for(let G in Y){let K=Q[G];if(!K){J[G]=Y[G];continue}if(K.returned===!1)continue;J[G]=Y[G]}return J}function YR(Y,X){if(!e2.has(Y))e2.set(Y,new Map);let Q=e2.get(Y);if(Q.has(X))return Q.get(X);let J={...X==="user"?Y.user?.additionalFields:{},...X==="session"?Y.session?.additionalFields:{}};for(let G of Y.plugins||[])if(G.schema&&G.schema[X])J={...J,...G.schema[X].fields};return e2.get(Y).set(X,J),J}function M9(Y,X){return{...Xq0(X,{fields:YR(Y,"user")}),id:X.id}}function HG(Y,X){return Xq0(X,{fields:YR(Y,"session")})}function Hc(Y,X){let Q=X.action||"create",J=X.fields,G=Object.assign(Object.create(null),null);for(let K in J){if(K in Y){if(J[K].input===!1){if(J[K].defaultValue!==void 0){if(Q!=="update"){G[K]=J[K].defaultValue;continue}}if(Y[K])throw new i("BAD_REQUEST",{message:`${K} is not allowed to be set`});continue}if(J[K].validator?.input&&Y[K]!==void 0){G[K]=J[K].validator.input["~standard"].validate(Y[K]);continue}if(J[K].transform?.input&&Y[K]!==void 0){G[K]=J[K].transform?.input(Y[K]);continue}G[K]=Y[K];continue}if(J[K].defaultValue!==void 0&&Q==="create"){if(typeof J[K].defaultValue==="function"){G[K]=J[K].defaultValue();continue}G[K]=J[K].defaultValue;continue}if(J[K].required&&Q==="create")throw new i("BAD_REQUEST",{message:`${K} is required`})}return G}function XR(Y,X={},Q){return Hc(X,{fields:YR(Y,"user"),action:Q})}function Fc(Y,X){return Hc(X,{fields:YR(Y,"session")})}function rY(Y,X){if(!X)return Y;for(let Q in X){let J=X[Q]?.modelName;if(J)Y[Q].modelName=J;for(let G in Y[Q].fields){let K=X[Q]?.fields?.[G];if(!K)continue;Y[Q].fields[G].fieldName=K}}return Y}kX();_0();var oR6="127.0.0.1";function bZ(Y,X){if(X.advanced?.ipAddress?.disableIpTracking)return null;if(x7()||pq())return oR6;let Q="headers"in Y?Y.headers:Y,J=X.advanced?.ipAddress?.ipAddressHeaders||["x-forwarded-for"];for(let G of J){let K="get"in Q?Q.get(G):Q[G];if(typeof K==="string"){let W=K.split(",")[0].trim();if(sR6(W))return W}}return null}function sR6(Y){if(y3().safeParse(Y).success)return!0;if(f3().safeParse(Y).success)return!0;return!1}AY();ZG();kX();f8();import{sql as VG}from"kysely";async function Zq0(Y,X){let Q;if(!Y.database){let J=KQ(Y),G=Object.keys(J).reduce((W,Z)=>{return W[Z]=[],W},{}),{memoryAdapter:K}=await Promise.resolve().then(() => (Wq0(),Gq0));Q=K(G)(Y)}else if(typeof Y.database==="function")Q=Y.database(Y);else Q=await X(Y);if(!Q.transaction)b6.warn("Adapter does not correctly implement transaction function, patching it automatically. Please update your adapter implementation."),Q.transaction=async(J)=>{return J(Q)};return Q}async function Uc(Y){return Zq0(Y,async(X)=>{let{createKyselyAdapter:Q}=await Promise.resolve().then(() => (Bc(),zc)),{kysely:J,databaseType:G,transaction:K}=await Q(X);if(!J)throw new S6("Failed to initialize database adapter");let{kyselyAdapter:W}=await Promise.resolve().then(() => (Bc(),zc));return W(J,{type:G||"sqlite",debugLogs:X.database&&"debugLogs"in X.database?X.database.debugLogs:!1,transaction:K})(X)})}function Kq0(Y,X){let Q=X.hooks;async function J(H,F,V){let q=await HQ(),$=H;for(let O of Q||[]){let L=O[F]?.create?.before;if(L){let M=await L($,q);if(M===!1)return null;if(typeof M==="object"&&"data"in M)$={...$,...M.data}}}let B=V?await V.fn($):null,U=!V||V.executeMainFn?await(await U1(Y)).create({model:F,data:$,forceAllowId:!0}):B;for(let O of Q||[]){let L=O[F]?.create?.after;if(L)await L(U,q)}return U}async function G(H,F,V,q){let $=await HQ(),B=H;for(let L of Q||[]){let M=L[V]?.update?.before;if(M){let C=await M(H,$);if(C===!1)return null;if(typeof C==="object"&&"data"in C)B={...B,...C.data}}}let U=q?await q.fn(B):null,O=!q||q.executeMainFn?await(await U1(Y)).update({model:V,update:B,where:F}):U;for(let L of Q||[]){let M=L[V]?.update?.after;if(M)await M(O,$)}return O}async function K(H,F,V,q){let $=await HQ(),B=H;for(let L of Q||[]){let M=L[V]?.update?.before;if(M){let C=await M(H,$);if(C===!1)return null;if(typeof C==="object"&&"data"in C)B={...B,...C.data}}}let U=q?await q.fn(B):null,O=!q||q.executeMainFn?await(await U1(Y)).updateMany({model:V,update:B,where:F}):U;for(let L of Q||[]){let M=L[V]?.update?.after;if(M)await M(O,$)}return O}async function W(H,F,V){let q=await HQ(),$=null;try{$=(await(await U1(Y)).findMany({model:F,where:H,limit:1}))[0]||null}catch(O){}if($)for(let O of Q||[]){let L=O[F]?.delete?.before;if(L){if(await L($,q)===!1)return null}}let B=V?await V.fn(H):null,U=!V||V.executeMainFn?await(await U1(Y)).delete({model:F,where:H}):B;if($)for(let O of Q||[]){let L=O[F]?.delete?.after;if(L)await L($,q)}return U}async function Z(H,F,V){let q=await HQ(),$=[];try{$=await(await U1(Y)).findMany({model:F,where:H})}catch(O){}for(let O of $)for(let L of Q||[]){let M=L[F]?.delete?.before;if(M){if(await M(O,q)===!1)return null}}let B=V?await V.fn(H):null,U=!V||V.executeMainFn?await(await U1(Y)).deleteMany({model:F,where:H}):B;for(let O of $)for(let L of Q||[]){let M=L[F]?.delete?.after;if(M)await M(O,q)}return U}return{createWithHooks:J,updateWithHooks:G,updateManyWithHooks:K,deleteWithHooks:W,deleteManyWithHooks:Z}}var HR=(Y,X)=>{let{logger:Q,options:J}=X,G=J.secondaryStorage,K=J.session?.expiresIn||604800,{createWithHooks:W,updateWithHooks:Z,updateManyWithHooks:H,deleteWithHooks:F,deleteManyWithHooks:V}=Kq0(Y,X);async function q($){if(!G)return;let B=await G.get(`active-sessions-${$.id}`);if(!B)return;let U=Date.now(),O=(T1(B)||[]).filter((L)=>L.expiresAt>U);await Promise.all(O.map(async({token:L})=>{let M=await G.get(L);if(!M)return;let C=T1(M);if(!C)return;let R=Math.max(Math.floor(new Date(C.session.expiresAt).getTime()-U)/1000,0);await G.set(L,JSON.stringify({session:C.session,user:$}),Math.floor(R))}))}return{createOAuthUser:async($,B)=>{return VN(Y,async()=>{let U=await W({createdAt:new Date,updatedAt:new Date,...$},"user",void 0);return{user:U,account:await W({...B,userId:U.id,createdAt:new Date,updatedAt:new Date},"account",void 0)}})},createUser:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$,email:$.email?.toLowerCase()},"user",void 0)},createAccount:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"account",void 0)},listSessions:async($)=>{if(G){let B=await G.get(`active-sessions-${$}`);if(!B)return[];let U=T1(B)||[],O=Date.now(),L=U.filter((C)=>C.expiresAt>O),M=[];for(let C of L){let R=await G.get(C.token);if(R){let E=T1(R);if(!E)return[];let T=HG(X.options,{...E.session,expiresAt:new Date(E.session.expiresAt)});M.push(T)}}return M}return await(await U1(Y)).findMany({model:"session",where:[{field:"userId",value:$}]})},listUsers:async($,B,U,O)=>{return await(await U1(Y)).findMany({model:"user",limit:$,offset:B,sortBy:U,where:O})},countTotalUsers:async($)=>{let B=await(await U1(Y)).count({model:"user",where:$});if(typeof B==="string")return parseInt(B);return B},deleteUser:async($)=>{if(G)await G.delete(`active-sessions-${$}`);if(!G||J.session?.storeSessionInDatabase)await V([{field:"userId",value:$}],"session",void 0);await V([{field:"userId",value:$}],"account",void 0),await F([{field:"id",value:$}],"user",void 0)},createSession:async($,B,U,O)=>{let L=await HQ().catch(()=>null),M=L?.headers||L?.request?.headers,{id:C,...R}=U||{},E=Fc(L?.context.options??J,{}),T={ipAddress:L?.request||L?.headers?bZ(L?.request||L?.headers,L?.context.options)||"":"",userAgent:M?.get("user-agent")||"",...R,expiresAt:B?T8(86400,"sec"):T8(K,"sec"),userId:$,token:o8(32),createdAt:new Date,updatedAt:new Date,...E,...O?R:{}};return await W(T,"session",G?{fn:async(I)=>{let S=await G.get(`active-sessions-${$}`),k=[],_=Date.now();if(S)k=T1(S)||[],k=k.filter((d)=>d.expiresAt>_);let y=k.sort((d,Y0)=>d.expiresAt-Y0.expiresAt),f=y.at(-1)?.expiresAt;if(y.push({token:T.token,expiresAt:T.expiresAt.getTime()}),!f||f<T.expiresAt.getTime())f=T.expiresAt.getTime();let o=Math.max(Math.floor((f-_)/1000),0);if(o>0)await G.set(`active-sessions-${$}`,JSON.stringify(y),o);let m=await Y.findOne({model:"user",where:[{field:"id",value:$}]}),v=Math.max(Math.floor((T.expiresAt.getTime()-_)/1000),0);if(v>0)await G.set(T.token,JSON.stringify({session:I,user:m}),v);return I},executeMainFn:J.session?.storeSessionInDatabase}:void 0)},findSession:async($)=>{if(G){let L=await G.get($);if(!L&&!J.session?.storeSessionInDatabase)return null;if(L){let M=T1(L);if(!M)return null;return{session:HG(X.options,{...M.session,expiresAt:new Date(M.session.expiresAt),createdAt:new Date(M.session.createdAt),updatedAt:new Date(M.session.updatedAt)}),user:M9(X.options,{...M.user,createdAt:new Date(M.user.createdAt),updatedAt:new Date(M.user.updatedAt)})}}}let B=await(await U1(Y)).findOne({model:"session",where:[{value:$,field:"token"}],join:{user:!0}});if(!B)return null;let{user:U,...O}=B;if(!U)return null;return{session:HG(X.options,O),user:M9(X.options,U)}},findSessions:async($)=>{if(G){let U=[];for(let O of $){let L=await G.get(O);if(L){let M=T1(L);if(!M)return[];let C={session:{...M.session,expiresAt:new Date(M.session.expiresAt)},user:{...M.user,createdAt:new Date(M.user.createdAt),updatedAt:new Date(M.user.updatedAt)}};U.push(C)}}return U}let B=await(await U1(Y)).findMany({model:"session",where:[{field:"token",value:$,operator:"in"}],join:{user:!0}});if(!B.length)return[];if(B.some((U)=>!U.user))return[];return B.map((U)=>{let{user:O,...L}=U;return{session:L,user:O}})},updateSession:async($,B)=>{return await Z(B,[{field:"token",value:$}],"session",G?{async fn(U){let O=await G.get($),L=null;if(O){let M=T1(O);if(!M)return null;return L={...M.session,...U},L}else return null},executeMainFn:J.session?.storeSessionInDatabase}:void 0)},deleteSession:async($)=>{if(G){let B=await G.get($);if(B){let{session:U}=T1(B)??{};if(!U){Q.error("Session not found in secondary storage");return}let O=U.userId,L=await G.get(`active-sessions-${O}`);if(L){let M=T1(L)||[],C=Date.now(),R=M.filter((T)=>T.expiresAt>C&&T.token!==$),E=R.sort((T,I)=>T.expiresAt-I.expiresAt).at(-1)?.expiresAt;if(R.length>0&&E&&E>Date.now())await G.set(`active-sessions-${O}`,JSON.stringify(R),Math.floor((E-C)/1000));else await G.delete(`active-sessions-${O}`)}else Q.error("Active sessions list not found in secondary storage")}if(await G.delete($),!J.session?.storeSessionInDatabase||X.options.session?.preserveSessionInDatabase)return}await(await U1(Y)).delete({model:"session",where:[{field:"token",value:$}]})},deleteAccounts:async($)=>{await V([{field:"userId",value:$}],"account",void 0)},deleteAccount:async($)=>{await F([{field:"id",value:$}],"account",void 0)},deleteSessions:async($)=>{if(G){if(typeof $==="string"){let B=await G.get(`active-sessions-${$}`),U=B?T1(B):[];if(!U)return;for(let O of U)await G.delete(O.token)}else for(let B of $)if(await G.get(B))await G.delete(B);if(!J.session?.storeSessionInDatabase||X.options.session?.preserveSessionInDatabase)return}await V([{field:Array.isArray($)?"token":"userId",value:$,operator:Array.isArray($)?"in":void 0}],"session",void 0)},findOAuthUser:async($,B,U)=>{let O=await(await U1(Y)).findMany({model:"account",where:[{value:B,field:"accountId"}],join:{user:!0}}).then((L)=>{return L.find((M)=>M.providerId===U)});if(O)if(O.user)return{user:O.user,accounts:[O]};else{let L=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}]});if(L)return{user:L,accounts:[O]};return null}else{let L=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}]});if(L)return{user:L,accounts:await(await U1(Y)).findMany({model:"account",where:[{value:L.id,field:"userId"}]})||[]};else return null}},findUserByEmail:async($,B)=>{let U=await(await U1(Y)).findOne({model:"user",where:[{value:$.toLowerCase(),field:"email"}],join:{...B?.includeAccounts?{account:!0}:{}}});if(!U)return null;let{account:O,...L}=U;return{user:L,accounts:O??[]}},findUserById:async($)=>{if(!$)return null;return await(await U1(Y)).findOne({model:"user",where:[{field:"id",value:$}]})},linkAccount:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"account",void 0)},updateUser:async($,B)=>{let U=await Z(B,[{field:"id",value:$}],"user",void 0);return await q(U),await q(U),U},updateUserByEmail:async($,B)=>{let U=await Z(B,[{field:"email",value:$.toLowerCase()}],"user",void 0);return await q(U),await q(U),U},updatePassword:async($,B)=>{await H({password:B},[{field:"userId",value:$},{field:"providerId",value:"credential"}],"account",void 0)},findAccounts:async($)=>{return await(await U1(Y)).findMany({model:"account",where:[{field:"userId",value:$}]})},findAccount:async($)=>{return await(await U1(Y)).findOne({model:"account",where:[{field:"accountId",value:$}]})},findAccountByProviderId:async($,B)=>{return await(await U1(Y)).findOne({model:"account",where:[{field:"accountId",value:$},{field:"providerId",value:B}]})},findAccountByUserId:async($)=>{return await(await U1(Y)).findMany({model:"account",where:[{field:"userId",value:$}]})},updateAccount:async($,B)=>{return await Z(B,[{field:"id",value:$}],"account",void 0)},createVerificationValue:async($)=>{return await W({createdAt:new Date,updatedAt:new Date,...$},"verification",void 0)},findVerificationValue:async($)=>{let B=await(await U1(Y)).findMany({model:"verification",where:[{field:"identifier",value:$}],sortBy:{field:"createdAt",direction:"desc"},limit:1});if(!J.verification?.disableCleanup)await(await U1(Y)).deleteMany({model:"verification",where:[{field:"expiresAt",value:new Date,operator:"lt"}]});return B[0]},deleteVerificationValue:async($)=>{await(await U1(Y)).delete({model:"verification",where:[{field:"id",value:$}]})},deleteVerificationByIdentifier:async($)=>{await(await U1(Y)).delete({model:"verification",where:[{field:"identifier",value:$}]})},updateVerificationValue:async($,B)=>{return await Z(B,[{field:"id",value:$}],"verification",void 0)}}};function Hq0(Y){let X=KQ(Y),Q={};for(let J in X){let G=X[J],K=G.fields,W={};if(Object.entries(K).forEach(([Z,H])=>{if(W[H.fieldName||Z]=H,H.references){let F=X[H.references.model];if(F)W[H.fieldName||Z].references={...H.references,model:F.modelName,field:H.references.field}}}),Q[G.modelName]){Q[G.modelName].fields={...Q[G.modelName].fields,...W};continue}Q[G.modelName]={fields:W,order:G.order||1/0}}return Q}var JS6={postgres:{string:["character varying","varchar","text","uuid"],number:["int4","integer","bigint","smallint","numeric","real","double precision"],boolean:["bool","boolean"],date:["timestamptz","timestamp","date"],json:["json","jsonb"]},mysql:{string:["varchar","text","uuid"],number:["integer","int","bigint","smallint","decimal","float","double"],boolean:["boolean","tinyint"],date:["timestamp","datetime","date"],json:["json"]},sqlite:{string:["TEXT"],number:["INTEGER","REAL"],boolean:["INTEGER","BOOLEAN"],date:["DATE","INTEGER"],json:["TEXT"]},mssql:{string:["varchar","nvarchar","uniqueidentifier"],number:["int","bigint","smallint","decimal","float","double"],boolean:["bit","smallint"],date:["datetime2","date","datetime"],json:["varchar","nvarchar"]}};function Fq0(Y,X,Q){function J(K){return K.toLowerCase().split("(")[0].trim()}if(X==="string[]"||X==="number[]")return Y.toLowerCase().includes("json");let G=JS6[Q];return(Array.isArray(X)?G.string.map((K)=>K.toLowerCase()):G[X].map((K)=>K.toLowerCase())).includes(J(Y))}async function GS6(Y){try{let X=await VG`SHOW search_path`.execute(Y);if(X.rows[0]?.search_path)return X.rows[0].search_path.split(",").map((Q)=>Q.trim()).map((Q)=>Q.replace(/^["']|["']$/g,"")).filter((Q)=>!Q.startsWith("$"))[0]||"public"}catch(X){}return"public"}async function DN(Y){let X=Hq0(Y),Q=nq(Y.logger),{kysely:J,databaseType:G}=await $2(Y);if(!G)Q.warn("Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this."),G="sqlite";if(!J)Q.error("Only kysely adapter is supported for migrations. You can use `generate` command to generate the schema, if you're using a different adapter."),process.exit(1);let K="public";if(G==="postgres"){K=await GS6(J),Q.debug(`PostgreSQL migration: Using schema '${K}' (from search_path)`);try{if(!(await VG`
422
422
  SELECT schema_name
423
423
  FROM information_schema.schemata
424
424
  WHERE schema_name = ${K}